What makes distributed systems complex? -heterogeneity -openness -security -scalability -failure handling -concurrency -transparency DNS - why is it a good example of a distributed system? Models - client/server, multiple servers, proxies/caches, p2p Models - synchronous versus asynchronous systems Failure models - crash, byzantine Concurrency - multi-threaded programming Middleware - RPC, distributed objects, marshalling, stub Web Services - REST/SOAP/XML-RPC, compare to RMI Clock sync - synch, async, berkeley (internal/external) Logical time - causal ordering (happened-before), lamport, vector (why use vector instead of lamport?), cuts/global state (consistent, inconsistent) Failure detection - keep alive messages Mutual Exclusion - safety/liveness -central server, token ring, mutlicast and logical clocks (mcast provides ordering) Election - ring, bully Consensus - possible in sync w/ < 1/3 failure, impossible if communication unreliable, impossible in async Sample Questions: 1. What makes DNS scalable? 2. Is the following URI RESTful? Why or why not? http://host.com?requestType=listContents&dir=home 3. Describe one reason a developer would choose to use a SOAP API over a REST API. 4. Suppose a client wishes to synchronize its time with a UTC time server. It sends a synchronization message that takes 5 time units to reach the server, the server takes 3 time units the process the request, and once the response is sent, the travel time to reach the client is 6 time units. The server responds that the current time is time 20. To what time will the client set its clock under the following conditions: A. In a synchronous system where the maximum delay is 11 time units and the minimum delay is 5 time units. B. In an asynchronous system using CristianÕs synchronization algorithm. 5. After the synchronization, will the clock in the synchronous system or the clock in the asynchronous system have the smallest skew? 6. Assume a group of processes uses a ring-based algorithm for mutual exclusion. In the worst possible case, how many messages will be sent between the time a process requests entry to a critical section and when it receives the token. Explain your answer. 7. Can the central server algorithm for mutal exclusion tolerate the failure of a client node? Explain your answer.