Outline • Overview CS4513 • Goals • Software Distributed Computer • Client Server Systems Introduction Definition of a Distributed System The Rise of Distributed Systems • Computer hardware prices falling, power increasing Examples: – If cars the same, Rolls Royce would cost 1 dollar and -The Web get 1 billion miles per gallon (with 200 page manual to -Processor Pool open the door) -Airline • Network connectivity increasing Reservation – Everyone is connected with fat pipes • It is easy to connect hardware together • Definition: a distributed system is A distributed system organized as middleware. – A collection of independent computers that appears Note that the middleware layer extends over multiple machines. to its users as a single coherent system. Users can interact with the system in a consistent way, regardless of where the interaction takes place. Note: Middleware may be “part” of application in practice. Transparency in a Distributed System Scalability Problems • As distributed systems grow, centralized solutions Transparency Description are limited Hide differences in data representation and how a resource is Access accessed – Consider LAN name resolution vs. WAN Location Hide where a resource is located Concept Example Migration Hide that a resource may move to another location Centralized services A single server for all users Hide that a resource may be moved to another location while Relocation in use Centralized data A single on-line telephone book Hide that a resource may be shared by several competitive Replication users Doing routing based on complete Centralized algorithms information Hide that a resource may be shared by several competitive Concurrency users • Sometimes, hard to avoid (consider a bank) Failure Hide the failure and recovery of a resource • Need to collect information in distributed fashion Persistence Hide whether a (software) resource is in memory or on disk and distributed in a distributed fashion • Challenges: Different forms of transparency in a distributed system. – geography, ownership domains, time synchronization 1
Scaling Techniques: Hiding Scaling Techniques: Distribution Communication Latency • Especially important for interactive applications • If possible, do asynchronous communication - Not always possible when client has nothing to do 1.5 Example: DNS name space into zones ( nl.vu.cs.fluit – z1 gives address of vu gives address of cs) • Instead, can hide latencies Scaling Techniques: Replication Outline • Copy of information to increase availability • Overview (done) and decrease centralized load • Goals – Example: P2P networks (Gnutella +) (done) distribute copies uniformly or in proportion • Software ← to use • Client Server – Example: CDNs (akamai) – Example: Caching is a replication decision made by client • Issue: Consistency of replicated information – Example: Web Browser cache Uniprocessor Operating Systems Software Concepts System Description Main Goal Tightly-coupled operating system for multi- Hide and manage DOS processors and homogeneous multicomputers hardware resources Loosely-coupled operating system for Offer local services NOS heterogeneous multicomputers (LAN and to remote clients WAN) Additional layer atop of NOS implementing Provide distribution Middleware general-purpose services transparency • DOS (Distributed Operating Systems) • NOS (Network Operating Systems) • Separating applications from operating • Middleware system code through a microkernel – Can extend to multiple computers 2
Distributed Operating Systems Network Operating System • OSes can be different (Windows or Linux) • But no longer have shared memory • Typical services: rlogin, rcp – Provide message passing – Can try to provide distributed shared memory – Fairly primitive way to share files • But tough to get acceptable performance Network Operating System Network Operating System • Can have one computer provide files transparently • Different clients may mount the servers in different places for others (NFS) • Inconsistencies in view make NOSes harder, in general for – (try a “ df” on the WPI hosts to see. Similar to a “mount network drive” in Windows) users than DOSes. – But easier to scale by adding computers Positioning Middleware Outline • Network OS not transparent. Distributed OS not independent of computers. • Overview – Middleware can help (done) • Goals (done) • Software (done) • Client Server ← • Much middleware built in-house to help use networked operating systems (distributed transactions, better comm, RPC) • Unfortunately, many different standards 3
Client-Server Implementation Levels Clients and Servers • Thus far, have not talked about organization of processes – Again, many choices but most agree upon is client-server • If can do so without connection, quite simple • If underlying connection is unreliable, not trivial • Example of an Internet search engine • Resend. What if receive twice? – UI on client • Use TCP for reliable connection (most Inet apps) – Processing can be on client or server • Not always appropriate for high-speed LAN connection or – Data level is server, keeps consistency interactive applications Multitiered Architectures Multitiered Architectures: 3 tiers • Server may act as a client • Thin client (a) to Fat client (e) – Example would be transaction monitor across multiple databases – (d) and (e) popular for NOS environments Modern Architectures: Horizontal • Rather than vertical, distribute servers across nodes – Example of Web server “farm” for load balancing – Clients, too (peer-to-peer systems) 4
Recommend
More recommend