2.05k likes | 2.06k Views
Outline. Announcement Existing distributed systems Final Review. Announcement. The final exam will be 5:30 – 7:30 pm on April 29. 2003 in LOV 103 The exam will be open-book and open-note You can have at most three hours (if necessary). Existing Distributed Systems.
E N D
Outline • Announcement • Existing distributed systems • Final Review COP5611
Announcement • The final exam will be • 5:30 – 7:30 pm on April 29. 2003 in LOV 103 • The exam will be open-book and open-note • You can have at most three hours (if necessary) COP5611
Existing Distributed Systems • There are commercial as well as experimental distributed systems available • In general, theses systems are not generic distributed systems as defined in this class • Rather, they are designed to offer some good specific services (with the hope to generate profits from those services) • These are mainly based on the chapters from the book by A. S. Tanenbaum and M. van Steen COP5611
Distributed Object-based Systems • Distributed object-based systems • In these systems, everything is treated as an object and clients are offered services and resources in the form of objects they can invoke • Examples • CORBA • Microsoft’s DCOM • Globe (Global Object-Based Environment) COP5611
CORBA COP5611
GLOBE COP5611
Object Model • The general organization of a CORBA system. COP5611
Distributed Document-based Systems • A simple paradigm • Everything is a document • A distributed document-based system allows a user to exchange information • Examples • World wide web • Can be viewed as a huge distributed system consisting of millions of clients and servers • Lotus notes • Primarily based on databases COP5611
World Wide Web • WWW is essentially a huge client-server system with millions of servers distributed worldwide • Each server maintains a collection of documents • Each document is stored as a file • Or can be generated on request (ASP, JSP, PHP, ....) • The simplest way to refer to a document is by means of a reference called Uniform Resource Locator • A client interacts with servers with browsers COP5611
The World Wide Web • Overall organization of the Web. COP5611
Architectural Overview • The principle of using server-side CGI programs. COP5611
Architectural Overview – cont. • Architectural details of a client and server in the Web. COP5611
Web Proxy Caching • The principle of cooperative caching COP5611
Server Replication • The principle working of the Akami CDN. COP5611
Security COP5611
Lotus Notes • The general organization of a Lotus Notes system. COP5611
Processes in Lotus Notes COP5611
Processes in Lotus Notes – cont. • Request handling in a cluster of Domino servers. COP5611
Distributed Coordination-based Systems • Newer generation of distributed systems • Various components of a system are inherently distributed • One of the major issues is coordination of activities COP5611
TIB / Rendezvous COP5611
TIB / Rendezvous – cont. COP5611
Overview of Jini COP5611
Jini Architecture COP5611
Communication Events in Jini COP5611
Announcement • Final exam will be on April 29, 2003 • From 5:30-7:30 PM (8:30 PM at most you can have) • At Love 103 • It is an open-book, open-note exam • Please plan to come around 5:20 pm so that we can start as early as possible COP5611
Important Topics • These are the main focus for the purpose of the final exam • However, other topics are not excluded entirely • Important ones • Logical clocks/vector clocks • Causal ordering of messages • Consistent global state/checkpoint • Lamport’s algorithm for mutual exclusion (Lab 1 also included) • Lab 2 • Distributed scheduling algorithms / issues • Synchronous checkpointing and recovery/asynchronous checkpointing and recovery • Commit protocols / non-blocking commit protocols • Static voting protocols • Access matrix model / Implementation issues COP5611
Distributed Systems • A distributed system is a collection of independent computers that appears to its users as a single coherent system • Independent computers mean that they do not share memory or clock • The computers communicate with each other by exchanging messages over a communication network • Distributed operating systems are much like the traditional operating systems • Resource management • User friendliness • The key concept is transparency COP5611
Clients and Servers • General interaction between a client and a server. COP5611
Layered Protocols • Layers, interfaces, and protocols in the OSI model. COP5611
Network Layer • The primary task of a network layer is routing • The most widely used network protocol is the connection-less IP (Internet Protocol) • Each IP packet is routed to its destination independent of all others • A connection-oriented protocol is gaining popularity • Virtual channel in ATM networks COP5611
Transport Layer • This layer is the last part of a basic network protocol stack • In other words, this layer can be used by application developers • An important aspect of this layer is to provide end-to-end communication • The Internet transport protocol is called TCP (Transmission Control Protocol) • The Internet protocol also supports a connectionless transport protocol called UDP (Universal Datagram Protocol) COP5611
Sockets – cont. • Connection-oriented communication pattern using sockets. COP5611
A Multithreaded Server COP5611
The Message Passing Model • The message passing model provides two basic communication primitives • Send and receive • Send has two logical parameters, a message and its destination • Receive has two logical parameters, the source and a buffer for storing the message COP5611
Semantics of Send and Receive Primitives • There are several design issues regarding send and receive primitives • Buffered or un-buffered • Blocking vs. non-blocking primitives • With blocking primitives, the send does not return control until the message has been sent or received and the receive does not return control until a message is copied to the buffer • With non-blocking primitives, the send returns control as the message is copied and the receive signals its intention to receive a message and provide a buffer for it COP5611
Semantics of Send and Receive Primitives – cont. • Synchronous vs. asynchronous primitives • With synchronous primitives, a SEND primitive is blocked until a corresponding RECEIVE primitive is executed • With asynchronous primitives, a SEND primitive does not block if there is no corresponding execution of a RECEIVE primitive • The messages are buffered COP5611
Remote Procedure Call • RPC is designed to hide all the details from programmers • Overcome the difficulties with message-passing model • It extends the conventional local procedure calls to calling procedures on remote computers COP5611
Inherent Limitations of a Distributed System • Absence of a global clock • In a centralized system, time is unambiguous • In a distributed system, there exists no system wide common clock • In other words, the notion of global time does not exist • Impact of the absence of global time • Difficult to reason about temporal order of events • Makes it harder to collect up-to-date information on the state of the entire system COP5611
Inherent Limitations of a Distributed System • Absence of shared memory • An up-to-date state of the entire system is not available to any individual process • This information, however, is necessary to reason about the system’s behavior, debugging, recovering from failures COP5611
Lamport’s Logical Clocks • Logical clocks • For a wide of algorithms, what matters is the internal consistency of clocks, not whether they are close to the real time • For these algorithms, the clocks are often called logical locks • Lamport proposed a scheme to order events in a distributed system using logical clocks COP5611
Lamport’s Logical Clocks – cont. • Definitions • Happened before relation • Happened before relation () captures the causal dependencies between events • It is defined as follows • a b, if a and b are events in the same process and a occurred before b. • a b, if a is the event of sending a message m in a process and b is the event of receipt of the same message m by another process • If a b and b c, then a c, i.e., “” is transitive COP5611
Lamport’s Logical Clocks – cont. • Definitions – continued • Causally related events • Event a causally affects event b if a b • Concurrent events • Two distinct events a and b are said to be concurrent (denoted by a || b) if a b and b a • For any two events, either a b, b a, or a || b COP5611
Lamport’s Logical Clocks – cont. • Implementation rules • [IR1] Clock Ci is incremented between any two successive events in process Pi Ci := Ci + d ( d > 0) • [IR2] If event a is the sending of message m by process Pi, then message m is assigned a timestamp tm = Ci(a). On receiving the same message m by process Pj, Cj is set to Cj := max(Cj, tm + d) COP5611
An Example COP5611
Total Ordering Using Lamport’s Clocks • If a is any event at process Pi and b is any event at process Pj, then a => b if and only if either • Where is any arbitrary relation that totally orders the processes to break ties COP5611
A Limitation of Lamport’s Clocks • In Lamport’s system of logical clocks • If a b, then C(a) < C(b) • The reverse if not necessarily true if the events have occurred on different processes COP5611
A Limitation of Lamport’s Clocks COP5611