190 likes | 361 Views
Distributed Systems. Multiple software components on multiple computers running as a single system. Computers can be close or distant Homogeneous or heterogeneous Managed as a unit or disparate
E N D
Distributed Systems • Multiple software components on multiple computers running as a single system. • Computers can be close or distant • Homogeneous or heterogeneous • Managed as a unit or disparate • Distribution will only grow as networks and computing devices become even more ubiquitous, wireless Distributed Systems - I
Distributed SystemsExamples • Domain Name service (DNS) • World Wide Web • Campus-wide File Systems • Email services: POP3, IMAP, MS Exchange • ATM networks • Electronic stock-trading “floors” • “Smart” house Distributed Systems - I
Distributed SystemsFeatures • Resource sharing • Of disks, printers, software packages, etc. Distributed Systems - I
Distributed SystemsFeatures • Resource sharing • Openness • Supports addition of new (non-proprietary) resources • Heterogeneous components Distributed Systems - I
Distributed SystemsFeatures • Resource sharing • Openness • Concurrency • Multiple communicating processes Distributed Systems - I
Distributed SystemsFeatures • Resource sharing • Openness • Concurrency • Scalability • Capacity can be “easily” increased Distributed Systems - I
Distributed SystemsFeatures • Resource sharing • Openness • Concurrency • Scalability • Fault tolerance • Continued operation in the face of limited (hw/sw) failure Distributed Systems - I
Distributed SystemsFeatures • Resource sharing • Openness • Concurrency • Scalability • Fault tolerance • Transparency • Distribution practically invisible to users Distributed Systems - I
Distributed SystemsDisadvantages • Complexity • Harder to test • System performance depends on network, relative speed of computers, resource location relative to computers • Additional design issues Distributed Systems - I
Distributed SystemsDisadvantages • Complexity • Security • Possibility of eavesdropping on traffic (inter-processor communication) an added concern Distributed Systems - I
Distributed SystemsDisadvantages • Complexity • Security • Manageability • Heterogeneity (of hw/sw) can cause strange interactions among computers Distributed Systems - I
Distributed SystemsDisadvantages • Complexity • Security • Manageability • Unpredictability • Networked communication can be unreliable; time to complete unpredictable • Quality of Service Distributed Systems - I
Client-server Architectures • Client processes make requests of server processes • Can often be structured in (three) layers • Presentation • Application processing • Data management • See Section 11.2 of Sommerville for details Distributed Systems - I
Client-server Architectures • Two-tier (c-s architecture) • Thin client • Presentation only • Fat client • Presentation and processing Distributed Systems - I
Two-tier ArchitecturesThin or Fat Clients? • Thin clients • Increases load on server, network • Doesn’t scale as well • Fat clients • Reduce processing load on server • Increases load on clients • Harder to manage; applications often evolve Distributed Systems - I
“Two tiers good, three tiers better” • Three-tier (c-s architecture) • Distinct processes for each layer (client-server-server) • Server processes easily split onto distinct processors, if/when necessary • More scalable (can replicate processing servers) • E.g. database-backed web service (flight search/reservation system, web banking) Distributed Systems - I
Web browser Web browser Web server Web server Web browser Web browser Database-based WWW service Web browser DBMS Web server Web browser Web browser Distributed Systems - I
Distributed Object Architectures • Object-oriented design • No client/server distinction • System as a collection of distributed objects • Objects map to processes, not (necessarily) processors • Communication via middleware (a “software bus”) Distributed Systems - I
Distributed Object ArchitecturesMiddleware • CORBA† (Common Object Request Broker Architecture) • Java RMI (Remote Method Invocation) • DCOM (Distributed Component Object Model) • .NET †See Section 11.4 of Sommerville for details Distributed Systems - I