Module Code: COMP321101 Module Title: Distributed Systems
Examination Information
Question 2
(a) In a ubiquitous computing system devices use the Universal Plug and Play Protocol (UPnP) to discover each other and make sure that they can set up communication channels between them. What kind of core requirement does this fulfil for such a distributed system? [2 marks] (b) You are asked to build a data analytics application that integrates two RESTful Web services provisioned by a company called Analytics4U. Which factors would you consider for your application performance provision? [4 marks] (c) Consider a network consisting of 5 computers, A (coordinator), B, C, D, and E. At 09:01 the coordinator decides to synchronise the clock of all computers in the network. The time format is HH:MM. At that moment, the clock of the computers in the network shows the following: B(08:53), C(09:02), D(08:56), E(09:03). Apply the Berkeley clock synchronisation algorithm to this situation, show the stages of computation, and explain the outcome of the synchronisation. The time needed for computation and for network communication is negligible. [4 marks] (d) Many distributed algorithms require one process to act as coordinator, at least initially. If a process detects that the original coordinator is no longer responding to requests, it initiates a new election. Consider a group of 6 nodes labelled 0..5. Initially node 5 is the coordinator but it crashes. Node 2 is the first node to notice that the coordinator has crashed. Describe the election using: (i) the bully algorithm; (ii) the ring algorithm where the nodes are arranged in a logical ring and only communicate with their upstream neighbours. Your answer should define the types of messages exchanged between nodes. It should also clearly indicate all messages exchanged between nodes in the election process and which node is elected as the new coordinator. [5 marks] (e) A client sends the same command to each of n servers in a distributed system and then waits for the servers to execute the command. Ideally, the client should receive n matching results from the servers. However, messages are asynchronous, failures can be Byzantine and f servers may be malicious. Show that n ≥ 3f + 1 must hold for the client to always be able to identify the correct result. [5 marks] [Question 2 Total: 20 marks]