CS4103 Distributed Systems
Richard Connor
Formal Practical (Programming) Coursework Description
Value: 60% of the coursework component
Deadline: as stated on MMS
The purpose of this coursework is:
a. To build an example distributed system, learning how to use the GWT technology
b. To implement a message-passing system, with communication among browser
windows acting as independent processes
c. To implement the Paxos synod algorithm as used to achieve consensus in most
modern distributed systems.
More informative descriptions of these three parts are contained in separate documents.
The coursework will be assessed in four parts as follows:
1. A GWT/Servlet implementation of a system which passes simple messages among
different browser processes
2. implementation of the Paxos synod algorithm built over this message-passing
system, where each process proposes a value and the system reaches quiescence
with the same value being seen by all processes
3. a successfully built executable Web Archive project to demonstrate the above
4. a report detailing your experience and thoughts on the project, the GWT/Servlet
technology, and the underlying protocol. (indicative length: 1500 words plus
diagrams/screenshots)
Deliverables
Hand in via MMS, by 9.00pm, Monday 14th March:
• a single document in PDF format containing your report on the project
• a single zip file containing all of your Java code
• a second zip file comprising a fully-compiled WAR file
Marking
See the standard mark descriptors in the School Student Handbook:
http://info.cs.st-andrews.ac.uk/student-handbook/learning-
teaching/feedback.html#Mark_Descriptors
Examples on this scale:
A “competent” attempt could for example show evidence of the successful use of the GWT/Servlet
framework to pass messages between client and server via non-blocking RPC, and the use of this
framework to pass Lamport time-ordered messages among client processes.
A “good” attempt might include a functional WAR file which demonstrates inter-process
communication of proposed and learned values, and a report explaining how the Paxos protocol
has been achieved in the GWT/Servlet framework.
An “excellent” attempt might include a functionally correct implementation of the Paxos
protocol, and evidence of its use to resolve a non-trivial consensus situation (eg where different
values are concurrently proposed.)
Lateness
The standard penalty for late submission applies (Scheme B: 1 mark per 8 hour period, or part
thereof):
http://info.cs.st-andrews.ac.uk/student-handbook/learning-teaching/assessment.html#lateness-
penalties
Good Academic Practice
The University policy on Good Academic Practice applies:
https://www.st-andrews.ac.uk/students/rules/academicpractice/