程序代写代做代考 Java scheme database distributed system Page 1 of 3

Page 1 of 3

School of Engineering and Computing Sciences, University of Durham
MSc ISEB – Distributed Computing

Coursework Description and Assessment

1. Introduction

This document outlines the coursework and the marking criteria of the module assessment for
Distributed Computing. The module assessment is completely based on this coursework. The aim of
this coursework is to implement a distributed system of a gadget franchise system.

2. Motivation

This coursework is for you to demonstrate your understanding in distributed computing and your
ability to implement a distributed system.

3. Scenario

Main System Components
The franchisor authorizes many franchisees to open retail branches at different locations in the UK.
The franchisor also owns a purchasing centre to handle gadget re-ordering from all retail branches.
The main components of the gadget franchise system are shown as follows.

Servers:
y Branch Server: Each branch has a server to manage its own sales, customer information

and local gadget stock information. Since each branch may be owned by a different owner, a
branch server cannot access any gadget stock information from any other branch server.

y Re-ordering Server: This re-ordering server is running at the purchasing centre to handle
gadget re-ordering requests from all retail branches.

Clients:
y Branch Client Computers for Salesperson: A salesperson at a branch can access the

information stored in the branch server through some sales terminals (client computers).

System Information:
y Gadgets: For the gadgets, the branch server maintains gadget information (such as name,

type, brand, … etc.) and the stock levels of all gadgets. Note that each branch can hold a
different set of gadgets according to its own sales strategy.

y Customers: For the customers, the branch server maintains both the personal and
purchase information of all customers of a branch. The salespersons can add new
customers, search a customer by his/her name, and edit information (e.g., add information
about a new sales to a customer’s purchase history).

Note that the main focus of this coursework is working out the distributed system architecture and its
components. User interface and database design are out of the scope of this coursework. You are
suggested to implement your work using a text-based user interface and a memory-based data
structure (e.g. array) to store and update system information.

Re-ordering Sub-System
Out of stock handling: When a customer wants to buy a piece of gadget that is not available in a
branch, there are two options to handle the situation according to the customer’s decision. A
salesperson at the branch can request and transfer that gadget item from any other branch. The
available date of the gadget item will be added to the purchase order. Alternatively, the salesperson
will transfer the customer information to another branch for handling his/her purchase. Therefore, the

Page 2 of 3

current branch will no longer handle this purchase. If no other branch has that gadget item available or
the customer insists to obtain the gadget at this particular branch, a re-ordering action is then taken.

Routine re-ordering: On the other hand, a routine re-ordering action will be taken at scheduled times
for selected gadget items based on the sales strategy (Note that you are required to come up with a
few samples in order to simulate this aspect).

4. Coursework Requirements

You are required to design a distributed system based on the scenario described in section 3 and
implement it using Java Sockets or Java RMI. The tasks are divided into parts as follows:

Part 1 – Report Writing: System Design and Discussion (50%)

x Lay out and explain the system architecture and components that you have used to implement
the distributed system:

o Introduction and explanation of the implementation (10%)
o Analysis of system architecture and design issues for the main system components

(10%) and the re-ordering sub-system (10%)
x Discuss how you address advanced distributed system issues, including fault tolerance,

security and scalability (15%)
x Demonstrate writing skills based on documentation quality and use of references (5%)

Part 2 – Implementation (50%)

x Implement branch servers and branch clients for the main system components (30%)
x Extend the branch servers and branch clients to support the re-ordering sub-system (20%)

Marking Criteria and Deliverable Requirements

x Identification: Add your Z code (not your name) at the beginning inside each programming
source code file and at the head of each page of the report

x Implementation: Marks will be awarded based on the design of program modules, the

amount of functionality implemented, the suitability of your chosen approach and the quality of
code (layout, style and structure). The assessment focuses on the distributed aspects of the
system, so you should not focus on the user interface and database implementation at the
expense of the underlying distributed system.

x Report: The report should contain at most 2500 words. Emphasis is on the report quality, but
not the number of words. The report must contain the following sections:

Abstract

y This section summaries the work you have successfully done.

System Design

y This section elaborates in detail the system architecture of your design and evaluates possible
approaches that you have considered.

y You also need to explain why the final design was chosen, including the choice of technology.

y Discussion of the advantages and disadvantages of the design.

Implementation

y This section includes a simple user and installation guide.

y You need to explicitly state the use of any code that you did not develop yourself and that is not
part of the standard Java APIs or Java Socket or RMI APIs.

Page 3 of 3

y Do not describe classes, methods and variables (We will inspect the code anyway); instead,
provide a diagram showing the relationship between important classes/components.

y Indicate which parts of the required distributed system have been met.

System Analysis and Conclusions

y This section discusses how you address advanced distributed system issues, including fault
tolerance, security and scalability.

y This section also allows you to reflect on your design and implementation, indicating what
aspects of the system work well, and which aspects do not work well.

y As a conclusion, you should include a brief discussion of any system aspects you want to
change if you had a chance to do the project again.

References

y Use references appropriately.

x Marking: The pass mark is 50%. Within the mark scheme outlined above, marks will be given

based on relevance, depth of analysis and level of detail of your work.

Note: Be aware of plagiarism rules – https://www.dur.ac.uk/learningandteaching.handbook/6/2/4/

https://www.dur.ac.uk/learningandteaching.handbook/6/2/4/