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. Following their successful rollout of their new comptuer system, DropFiles want to make their system more scalable to grow customer numbers. The aim of this coursework is to implement a distributed system to help DropFiles grow their business.
Java RMI Practical Assignment (60%)
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
The Chief Technical Officer at DropFiles has realised that the previous system design of having a single Na- tional Server per country was causing problems. The National Server became overloaded when a large number of Clients tried to connect at the same time, causing the system to crash. To remedy this problem, DropFiles have decided to add more National Servers to their system and develop a Load Balancer.
• You should develop a Client to allow users to upload/download/delete files on the DropFiles system. The Client should accept a username and be able to show users a list of files they currently have stored with DropFiles.
• You should develop a server-side Load Balancer to accept Client requests. All requests from Clients to National Servers, and all responses, should pass through the Load Balancer. You should split requests based on the username supplied by the Client. E.g. Clients with usernames starting with the letters A-H get sent to National Server 1, usernames starting with letters I-P get sent to National Server 2, and usernames starting with letters Q-Z get sent to National Server 3.
• You should develop a National Server class that allows you to create a number of National Server in- stances that receive incoming requests and provide responses.
You should develop the Client, Load Balancer and National Server 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
• Modify the Load Balancer to use a round robin algorithm to select which server to send a request to.
• Modify the National Server class to use the new Load Balancer. All National Server instances must now contain the same data, as the same Client may make requests to different National Servers. You may use your Load Balancer to achieve strict consistency.
You should develop the new Load Balancer and National Server using Java RMI.
When submitting the Java project please submit two separate folders (Basic System and Advanced System), zipped into an easy to open archive.
1
Written Assignment (40%)
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