Introduction to Distributed Systems INF5040/9040 Autumn 2017 Lecturer:
31 Slides7.30 MB
Introduction to Distributed Systems INF5040/9040 Autumn 2017 Lecturer: Eli Gjørven (ifi/UiO) August 22, 2017
Outline Definition of a distributed system Goals of a distributed system Implications of distributed systems Pitfalls in developing distributed systems Types of distributed systems INF5040, ifi/UiO 2
From a Single Computer to DS 1945-1985: Computers Large and expensive Operated independently 1985-now: two advances in technology Powerful microprocessors High-speed computer networks Result: Distributed Systems Putting together computing systems composed of a large number of computers connected by a high-speed network INF5040, ifi/UiO 3
What Is a Distributed System? Definition Operational perspective: A A distributed distributed system system is is one one in in which which hardware hardware or or software software components, components, located located at at networked networked computers, computers, communicate communicate and and coordinate coordinate their their actions actions only only by by passing passing messages. messages. [Coulouris] User perspective: A A distributed distributed system system is is aa collection collection of of independent independent computers computers that that appears appears to to its its users users as as aa single single coherent coherent system. system. [Tanenbaum] INF5040, ifi/UiO 4
What Is a Distributed System? A DS organized as middleware extending over multiple machines offering each application the same interface INF5040, ifi/UiO 5
Examples of Distributed Systems Web search Indexing the entire contents of the Web Massively multiplayer online games Very large number of users sharing a virtual world. Financial trading Real time access and processing of a wide rage of information sources. Delivery of items of interest in a timely manner INF5040, ifi/UiO 6
Outline Definition of a distributed system Goals of a distributed system Implications of distributed systems Pitfalls in developing distributed systems Types of distributed systems INF5040, ifi/UiO 7
Goals of Distributed Systems Resource sharing Distribution transparency Openness Scalability Fault tolerance Allowing heterogeneity INF5040, ifi/UiO 8
Resource Sharing Making resources accessible: accessing remote resources sharing them in a controlled and efficient way Examples: printers, storages, files, etc. One reason to share: economics e.g., 1-to-many printer access, rather than 1-to-1 Resource managers control access, offer a scheme for naming, and control concurrency A resource sharing model describes how resources are made available resources can be used service provider and user interact with each other INF5040, ifi/UiO 9
Models for Resource Sharing Client-server resource model Server processes act as resource managers, and offer services (collection of procedures) Client processes send requests to servers HTTP implements a client-server resource model Object-based resource model Any entity in a process is modeled as an object with a message based interface that provides access to its operations Any shared resource is modeled as an object Object-based middleware (CORBA, Java RMI) defines object-based resource models INF5040, ifi/UiO 10
Distribution Transparency An important goal of a DS: hiding the fact that its processes and resources are physically distributed across multiple computers Definition: A distributed system that is able to present itself to its users and applications as if it were only a single computer system is said to be transparent. What kind of transparency? INF5040, ifi/UiO 11
Forms of Transparency Degree of transparency Situations in which full transparency is not good – better to expose than to mask effects of distribution? Trade-off between a high degree of transparency and performance INF5040, ifi/UiO 12
Openness Definition: An open distributed system is a system that offers services according to standard rules that describe syntax and semantics of those services. E.g., in computer networks: format, content, and meaning of messages In DS: services specified through interfaces Interface Definition Language (IDL): syntax Web Service Definition Language (WSDL): syntax Semantics? the hard part to specify Extensibility: an open DS can be extended and improved incrementally add or replace components INF5040, ifi/UiO 13
Scalability Scalability in three dimensions: Scalable in size: Users and resources can easily be added Geographically scalable: Users and resources may lie far apart Administratively scalable: The system spans many administrative organizations Scaling up along these dimensions often come with a performance cost Scalability denotes the ability of a system to handle future scaling up Examples: Internet: Size, geography and number of administrative organizations has grown enormously Google: scaled over the years to handle O(100) billion queries a month, expected query time 0.2 secs. INF5040, ifi/UiO 14
Scalability Problems Problems with size scalability: Often caused by centralized solutions Problems with geographical scalability: traditional synchronous communication in LAN unreliable communications in WAN Problems with administrative scalability: Conflicting policies, complex management, security problems INF5040, ifi/UiO 15
Scaling Techniques Distribution splitting a resource (such as data) into smaller parts, and spreading the parts across the system (cf DNS) Replication replicate resources (services, data) across the system increases availability, helps to balance load caching (special form of replication) Hiding communication latencies avoid waiting for responses to remote service requests (use asynchronous communication or design to reduce the amount of remote requests) INF5040, ifi/UiO 16
Fault Tolerance Hardware, software and network fail!! DS must maintain availability even in cases where hardware/software/network have low reliability Failures in distributed systems are partial makes error handling particularly difficult Many techniques for handling failures Detecting failures (checksum) Masking failures (retransmission in protocols) Tolerating failures (as in web-browsers) Recovery from failures (roll back) Redundancy (replicate servers in failure-independent ways) INF5040, ifi/UiO 17
Example: Google File System Goals: Fault tolerance INF5040, ifi/UiO 18
Outline Definition of a distributed system Goals of a distributed system Implications of distributed systems Pitfalls in developing distributed systems Types of distributed systems INF5040, ifi/UiO 19
Implications of Distributed Systems Concurrency components execute in concurrent processes that read and update shared resources. Requires coordination No global clock makes coordination difficult (ordering of events) Independent failure of components “partial failure” & incomplete information Unreliable communication Loss of connection and messages. Message bit errors Unsecure communication Possibility of unauthorised recording and modification of messages Expensive communication Communication between computers usually has less bandwidth, longer latency, and costs more, than between independent processes on the same computer INF5040, ifi/UiO 20
Pitfalls When Developing DS False assumptions made by first time developer: The network is reliable. The network is secure. The network is homogeneous. The topology does not change. Latency is zero. Bandwidth is infinite. Transport cost is zero. There is one administrator. INF5040, ifi/UiO 21
Outline Definition of a distributed system Goals of a distributed system Implications of distributed systems Pitfalls in developing distributed systems Types of distributed systems INF5040, ifi/UiO 22
Types of Distributed Systems Type1: Distributed Computing Systems Used for high performance computing tasks Cluster and Cloud computing systems Grid computing systems Type2: Distributed Information Systems Systems mainly for management and integration of business functions Transaction processing systems Enterprise application integration Type3: Distributed Pervasive (or Ubiquitous) Systems Mobile and embedded systems Home systems Sensor networks INF5040, ifi/UiO 23
Type1: Cluster Computing Systems Collection of similar PCs, closely connected, all run same OS, e.g.: A collection of computing nodes master node Master runs middleware: parallel execution and management INF5040, ifi/UiO 24
Type1: Grid Computing Systems Federation of autonomous and heterogeneous computer systems (HW,OS,.), several adm domains A layered architecture for grid computing systems INF5040, ifi/UiO 25
Type1: Distributed Computing as a Utility View: distributed resources as a commodity or utility Resources are provided by service suppliers and effectively rented rather than owned by the end user. The term cloud computing capture the vision of computing as a utility SaaS Clients Internet LotusLive Google App Engine PaaS IaaS INF5040, ifi/UiO SalesForce CRM 26 26
Type2: Enterprise Application Integration Allowing existing applications to directly exchange information using communication middleware Middleware as a communication facilitator in enterprise application integration INF5040, ifi/UiO 27
Type2: Example Communication Middleware: CORBA Clients may invoke methods of remote objects without worrying about: object location, programming language, operating system platform, communication protocols or hardware. X invoke Z’s method foo() Y IDL IDL Z foo() IDL Object Object Request Request Broker Broker (ORB) (ORB) INF5040, ifi/UiO Different programming languages (or object models) Common object model RMI over IIOP 28
Type3: Distributed Pervasive Systems Pervasive systems: exploiting the increasing integration of services and (small/tiny) computing devices in our everyday physical world (Mobile) Devices: discover the environment (its services) and establish themselves in this environment as best as possible. Requirements for pervasive applications Embrace contextual changes Encourage ad hoc and dynamic composition Recognize sharing as the default INF5040, ifi/UiO 29
Type3: Example: Smart Home System Integrates personal devices (mobile, wearables, .) Integrates home apparatus (light, alarms, entertainment systems, termostat control.) Self-configuring and self-managing Takes care of your information (music, photo, video, calendar, health information ) Protects your personal space from others! Exampe: Google home INF5040, ifi/UiO 31
Summary Distributed systems: components located in a network that communicates and coordinates their actions exclusively by sending messages. Goals like resource sharing, distribution transparency, openness, scalability, fault tolerance and heterogeneity can be satisfied by distributed systems Consequences of distributed systems Independent failure of components Unsecure communication No global clock Many pitfalls when developing distributed systems Novel applications in pervasive systems: e.g., smart homes INF5040, ifi/UiO 32