Based on last years lecture notes, used by Juha Takkinen Definition of a Distributed System (1) A distributed system is: A collection of.
Download ReportTranscript Based on last years lecture notes, used by Juha Takkinen Definition of a Distributed System (1) A distributed system is: A collection of.
Based on last years lecture notes, used by Juha Takkinen Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its users as a single coherent system. Definition of a Distributed System (2) Figure 1-1. A distributed system organized as middleware. The middleware layer extends over multiple machines, and offers each application the same interface. Examples of Distributed Systems • Network of workstations at a university • Workflow information system supporting automatic order processing • World Wide Web Goals of Distributed Systems What makes it worth the effort? • • • • Connecting Users and Resources Transparency Openness Scalability Transparency in a Distributed System Transparency Description Access Hide differences in data representation and how a resource is accessed Location Hide where a resource is located Migration Hide that a resource may move to another location Relocation Hide that a resource may be moved to another location while in use Replication Hide that a ,ultiple copies of a resource exist Concurrency Hide that a resource may be shared by several competitive users Failure Hide the failure and recovery of a resource Persistence Hide whether a (software) resource is in memory or on disk Different forms of transparency in a distributed system. Openness • Services are offered according to standard rules that describe syntax and semantics • E.g., Interface Definition Language • Interoperability and portability • Separating Policy from Mechanism! Scalability (Problems) Concept Example Centralized services A single server for all users Centralized data A single on-line telephone book Centralized algorithms Doing routing based on complete information Examples of scalability limitations. Scaling Techniques • Scalability problems appear as performance problems • Three basic techniques: – hiding communication latency – distribution – replication • Asynchronous communication • Divide and conquer • Caching (consistency!) Scaling Techniques (1) 1.4 The difference between letting: a) a server or b) a client check forms as they are being filled Scaling Techniques (2) 1.5 An example of dividing the DNS name space into zones. More Scaling • • • • CDN (e.g., akamai) Youtube, Facebook VoD Google Common Pitfalls • • • • • • • • The network is reliable The network is secure The network is homogenous The topology does not change Latency is zero Bandwidth is infinite Transport cost is zero There is one administrator Example types of systems • Distributed computing • Cluster vs grid computing • Distributed information systems • Transactions (incl. nested) • Distributed pervasive systems • Home: plug and play • eHealth (BAN) • Sensor networks Networked software: Architectural Styles (1) • • • • Layered architectures Object-based architectures Data-centered architectures Event-based architectures Architectural Styles (2) Figure 2-1. The (a) layered architectural style and … Architectural Styles (3) Figure 2-1. (b) The object-based architectural style. Architectural styles (4) data-centric: e.g. web-based distributed systems • shared distributed file system • communication through files Architectural Styles (5) Figure 2-2. (a) The event-based architectural style and … Architectural Styles (6) Figure 2-2. (b) The shared data-space architectural style. Event-based and data-centric! Centralized Architectures Figure 2-3. General interaction between a client and a server. Application Layering • The user-interface level • The processing level • The data level Processing Level 1-28 The general organization of an Internet search engine into three different layers Multitiered Architectures (1) The simplest organization is to have only two types of machines: • A client machine containing only the programs implementing (part of) the user-interface level • A server machine containing the rest, – the programs implementing the processing and data level Physical two-tired Architectures 1-29 Alternative client-server organizations (a) – (e). Multitiered Architectures (2) 1-30 An example of a server acting as a client. Modern Architectures 1-31 An example of horizontal distribution of a Web service. Decentralized Architectures • Vertical distribution • Horizontal distribution • Peer-to-peer distribution Overlays and p2p • Distributed Hash tables (DHT) • Chord • CAN • Unstructured • Gnutella • Super peers • Hybrid Hybrid of client-server and p2p • Edge-server system • CDN • Collaborative • BitTorrent •