Parallel & Distributed Computer Systems Chapter 01: Distributed Systems by Dr. Aymen AKREMI, Ph.D Email: amakremi@uqu.edu.sa Course Material Web site: http://www.amansystem.com/?c=people/akremi/DPS 1
Outline Defining distributed system Why distribution? Examples of distributed systems Distributed system characteristics Middleware positioning Goals and challenges of distributed systems Type of distributed systems 2
Definition of a Distributed System A distributed system is a collection of independent computers that appears to its users as a single coherent system or as a single system Features: No shared memory – message-based communication Each runs its own local OS Heterogeneity Ideal: to present a single-system image: The distributed system “ looks like ” a single computer rather than a collection of separate computers. 3
Why distributed systems Sharing of information and systems Possibility to add component improves Availability, reliability, fault tolerance, performance, scalability 4
Examples of distributed systems(1) The internet: Net of nets Global access to “ everybody ” (data, service, other … ) Enormous size (open ended) No single authority Hardware resources (reduce costs) Data resources (shared usage of information) Service resources (search engines, computers-supported cooperative working) Service vs. server (node or process) 5
Examples of distributed systems(2) Mobile and ubiquitous computing: Portable devices Laptops Handheld devices Wearable devices Devices embedded in applications Mobile computing Location-aware computing Ubiquitous computing, pervasive computing 6
Distributed systems characteristics To present a single-system image: Hide internal organization, communication details Provide uniform interface Easily expandable Adding new computers is hidden from users Continuous availability Failures in one component can be covered by other components Partitioned or replicated data: Increased performance, reliability, fault tolerance No global Clock Nodes in networks have different and independent clock Supported by middleware 7
Middleware positioning “ Middleware is a class of software technologies designed to help manage the complexity and heterogeneity inherent in distributed systems. It is defined as a layer of software above the operating system but below the application program that provides a common programming abstraction across a distributed system ” 8
Role of Middleware (MW) (1) In some early research systems: MW tried to provide the illusion that a collection of separate machines was a single computer. E.g. NOW project: GLUNIX middleware Today: clustering software allows independent computers to work together closely MW also supports seamless access to remote services, doesn ’ t try to look like a general-purpose OS Examples of MW: CORBA (Common Object Request Broker Architecture) DCOM (Distributed Component Object Management RMI (Remote Method Invocation) SOAP (Simple Object Access Protocol) 9
Role of Middleware (MW) (2) All of the previous examples support communication across a network: They provide protocols that allow a program running on one kind of computer, using one kind of operating system, to call a program running on another computer with a different operating system The communicating programs must be running the same middleware. 10
Goals and challenges of distributed systems
Goals of distributed systems Resource Accessibility (sharing) 1) Distribution Transparency 2) Openness 3) Scalability 4) Security 5) System design accessibility 6) 12
Resource sharing Support user access to remote resources (printers, data files, web pages, CPU cycles) and the fair sharing of the resources Economics of sharing expensive resources Performance enhancement – due to multiple processors; also due to ease of collaboration and info exchange Groupware: tools to support collaboration Resource sharing introduces several challenges: Naming Access control Security Availability Mutual exclusion of users, fairness Consistency in some cases 13
Distribution transparency Software hides some of the details of the distribution of system resources. Makes the system more user friendly. A distributed system that appears to its users & applications to be a single computer system is said to be transparent . Users & apps should be able to access remote resources in the same way they access local resources. The users should be unaware of where the services are located and also the transferring from a local machine to a remote one should also be transparent. Transparency has several dimensions. 14
Type of transparencies 15
Challenges for transparencies Replication and migration cause need for ensuring consistency and distributed decision-making Failure modes Concurrency heterogeneity 16
Omission and arbitrary failures 17
Timing failures 18
Failure Handling More components => increased fault rate Increased possibilities More redundancy => more possibilities for faults tolerance No centralized control => no fatal failure Issues Detecting failures Masking failures Recovery from failures T olerating failures Redundancy 19
Concurrency Concurrency: users and applications should be able to access shared data or objects without interference between each other. Several simultaneous users=> integrity of data Mutual exclusion Synchronization Replicated data: consistency of information? Update Failure Clock User interface Partitioned data: how to determine the state of the system? Order of messages? There is no global clock! 20
Heterogeneity Heterogeneity of Networks ‘ Computer hardware Operating systems Programming language Implementation of different developers Portability, interoperability Mobile code, adaptability (applets, agents) Middleware Degree of transparency? Latency? Location based services? 21
Openness An open distributed system “… offers services according to standard rules that describe the syntax and semantics of those services. ” In other words, the interfaces to the system are clearly specified and freely available . Compare to network protocols Not proprietary Interface Definition/Description Languages (IDL): used to describe the interfaces between software components, usually in a distributed system Definitions are language & machine independent Support communication between systems using different OS/programming languages; e.g. a C++ program running on Windows communicates with a Java program running on UNIX Communication is usually RPC-based. 22
Examples of IDLs IDL: Interface Description Language The original WSDL: Web Services Description Language Provides machine-readable descriptions of the services OMG IDL: used for RPC in CORBA OMG – Object Management Group … 23
Open systems support … Interoperability : the ability of two different systems or applications to work together A process that needs a service should be able to talk to any process that provides the service. Multiple implementations of the same service may be provided, as long as the interface is maintained Portability : an application designed to run on one distributed system can run on another system which implements the same interface. Extensibility : Easy to add new components, features 24
Scalability(1) The system will remain effective when there is a significant increase in: Number of resources Number of users The architecture and the implementation must allow it The algorithms must be efficient under the circumstances to be expected Example: the internet 25
Scalability (2) Controlling the cost of physical resources Controlling performance loss Preventing software resources running out Avoiding performance bottlenecks Mechanisms (implement functions)& Policies (how to use the mechanisms) Scaling solutions Asynchronous communication, decreased messaging Caching (all sorts of hierarchical memories: data is closer to the user => no wait/ assumes rather stable data!) Distribution i.e. partitioning of tasks or information (domains) (e.g., DNS) 26
Security Security: confidentiality, integrity, availability Vulnerable components Channels (links <-> end-to-end paths) Eavesdropping, Denial of service Tampering, replying, masquerading Processes (clients, services, outsiders) Server: client ’ s identity, client ’ s server identity Unauthorized access (insecure access model) Unauthorized information flow (insecure flow model) Threats Information leakage Integrity violation Denial of service Illegitimate usage 27
Recommend
More recommend