140 likes | 432 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
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
Distributed SystemsFeatures • Resource Sharing • Of disks, printers, software packages, etc. • Openness • Supports addition of new (non-proprietary) resources; heterogeneous components • Concurrency • Multiple communicating processes Distributed Systems
Distributed SystemsFeatures • Scalability • Capacity can be “easily” increased • Fault Tolerance • Continued operation in the face of limited (hw/sw) failure • Transparency • Distribution practically invisible to users Distributed Systems
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
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
Client-server Architectures • Two-tier (c-s architecture) • Thin client • Presentation only • Fat client • Presentation and processing Distributed Systems
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
“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
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
Peer-to-peer Architecture • Communication among the peers (“client” no longer appropriate) encouraged • Pure Peer-to-Peer: no dedicated server processes at all • Hybrid examples: Napster, ICQ, AIM • Pure examples: Gnutella, Morpheus Distributed Systems
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
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