ITEC801 Introduction to Distributed Systems
Total Marks: 20
Due date: Monday 2nd October 2017
Question 1 (5 marks) Case Study 1
Choose either BitTorrent or Skype. Describe the architecture of the one you choose. What are the peers and super peers? What are the protocols used? Where is information stored?
Note: proprietary aspects might be difficult to find out, but you should make a best attempt to do so.
(2-4 pages, 800-1,500 words)
Question 2 (5 marks) Case Study 2
Choose either Mercurial or Git – programming code repositories. Describe how your choice works differently to centralized systems such as CVS and Subversion. Answer the same questions as in question 1.
(2-4 pages, 800-1,500 words)
Question 3 (10 marks) Protocol Design
Hostnet is a distributed system that hostels have decided to set up to manage bookings. They have decided not to use a centralized system, but to keep booking data themselves. Each hostel also wants to use their existing systems which differ in operating systems (Linux, MacOS, Windows) and versions.
End users use an app that connects to a hostel system near them. How can the system best provide this initial connection information?
Once connected to an initial system, a user will search for a hostel at their destination. Consider how to arrange systems as an overlay, is this structured or unstructured?
Systems can also come and go. What happens to the overlay when this happens?
Design application protocols to disseminate system availability information. Also design protocols to enable the user to search and make bookings.
From the characterization of protocols in the lecture of IPC decide which combination of attributes you need, that is text- or binary-based, etc.
You need to consider Salzer and Reed’s End-to-End argument – how much of the reliability factor can you leave to transport protocols and how much must be handled at the application layer.
Your protocol must be designed to be future-proofed so that new services can be added and existing message formats can be changed.
Now you need to cover the three aspects of protocol design:
Syntax – the format of the messages
Semantics – what do the fields in the message mean and error handling if that can’t be fulfilled
Timing – coordination between sender and receiver covering timeout situations.
For syntax, such formalisms as EBNF could be used, although not required.
For semantics, we could use formalisms such as denotational and axiomatic semantics, however, they would require a whole course to explain. The clue is in axiomatic. You can informally describe the axioms – the assumptions that are made for a correct system. For example a type given to a field is an axiom. “This field must be a string”. A tighter axiom would be “This field must be an ASCII string” - that is rather than EBCDIC or other character encoding. If you do not have this character type restriction, you would have to dynamically type the string with another field “string_type” which tells the receiver to interpret it as ASCII, EBCDIC, or UTF. This is what semantics is about – how the receiver interprets the message.
For protocols, we also need timing – that is, how long do we wait until we can assume messages have been lost. You can express these with the timing diagrams we introduced in the IPC lecture.
(5 to 10 pages)
Please submit assignments as PDF documents to TurnItIn.
The following criteria will factor in the assessment of this assignment:
• understanding of the subject matter;
• relevance of answer written and of the arguments proposed;
• planning and organization;
• logical coherence;
• critical evaluation;
• comprehensiveness of research;
• evidence of synthesis;
• innovation / creativity / originality;
• utilization of proper academic [or other] style (e.g. citation of references) ?wherever required.
The language used with appropriate spelling / grammar / punctuation must be of a sufficient standard to permit assessment of the above criteria.
You should be well aware of the University's plagiarism policy. In this assignment, you must be particularly careful to avoid plagiarising your articles or any other sources of information. If you wish to directly quote any portion of another document, you must enclose your quotation in quotation marks and immediately following the quotation you must identify your source. It is important that you do not attempt to write your answers by pasting together pieces of text that you find on the Internet. You need to write your own words and phrases that express your own ideas. You must also list all sources used in your answer/essay in a bibliography at the end of the answer/essay.