Coursework Description
Distributed Computing 2018/19 COMP51715
Module Coordinator: Dr. Rob Powell
The summative assessment for this module will consist of ONE Java based project, and ONE written assign- ment. The aim of this coursework is to implement a distributed system for a new startup business called DropFiles. DropFiles want to offer users free file storage and file sharing facilities.
Java RMI Practical Assignment (65%)
The Java based practical aspect of this module involves building a distributed system using Java RMI. Be- low we detail the two levels of requirement:
Basic Requirements
• You should develop the server system for DropFiles. This should be a two-tier server, consisting of a collection of national servers, and a single global server. Clients are only permitted to upload files to their local national server. If a file has resided on a national server for more than a certain amount of time (you can decide for testing purposes), then it should be uploaded to the global server and removed from the national server. Should a user request to download this file it should be first transferred back to the national server, and then sent to the appropriate user.
• You should also develop a client to allow users to upload/download/delete files on the DropFiles sys- tem. The client should also show users a list of files they currently have stored with DropFiles.
You should develop the Client and Server systems using Java RMI. Note that the types and sizes of files you decide to store on the Server is not particularly important, you should focus on working out the architecture of the distributed system.
Advanced Requirements
• Develop a second server system for DropFiles that utilises a peer-to-peer architecture instead. In this system, once a user uploads a file to their local peer, that peer should send a copy of the same file to every other peer in the server system. Also if a user deletes a file from their local peer, that file should be deleted from every peer. The aim is that all peers in the server system will contain exactly the same data.
• Develop a new client that has the same functionality as before but also allows users to share files with a particular user.
You should develop the new client and server system using Java RMI.
When submitting the Java project please submit four separate folders (Basic Server, Basic Client, Advanced Server, Advanced Client), zipped into an easy to open archive.
1
Written Assignment (35%)
The written assignment should be at most 4 pages of A4, including any diagrams, and must use a minimum of 10pt font. It should contain the following sections:
i. Abstract:
• A summary of the work you have achieved.
ii. Implementation:
• Provide an installation and user guide.
• Identify how various components of the implementation meet the requirements.
• Provide a diagram outlining the relationships and communication channels between the different components of the implementation.
iii. Analysis:
• Identify the advantages and disadvantages of the basic and advanced systems, thinking in particular about Distributed Computing theory.
• Discussyourtestingprocedures.Arethereanyaspectsofyourimplementationthatworkparticularly well or particularly poorly?
• What problems did you encounter during the implementation. Did these force you to change your design of the system architecture?
iv. Conclusion:
• If you were given additional time, what changes or additions would you make to your implementa- tion?
• If you were to begin the design and implementation again, what changes would you make? This could include changes to technology, your design process and personal aspects such as time manage- ment.
v. References:
• You must cite and reference any aspects of the report that you have not written yourself. • Be aware of plagiarism rules.
2