The aim of this is to implement a distributed system for a major computer manufacturerand distributor called Banana. Banana builds smartphones, laptops and desktop computers, which are thensold in Ban
The aim of this is to implement a distributed system for a major computer manufacturerand distributor called Banana. Banana builds smartphones, laptops and desktop computers, which are thensold in Ban
The aim of this is to implement a distributed system for a major computer manufacturer
and distributor called Banana. Banana builds smartphones, laptops and desktop computers, which are then
sold in Banana owned shops around the world.
The Java based practical aspect of this module involves building a distributed system using Java RMI. Below we detail the three levels of requirement:
Basic Requirements
• Each Banana owned shop has its own Branch Server. The Branch Server should store information regarding the products that shop sells and their stock levels. It should also store customer information
such their name and purchase history.
• Each Banana owned shop will have multiple tills (or Branch Clients) where a salesperson can access
stock levels and customer information aswell as confirm product sales.
You should develop the Branch Server and Branch Client using Java RMI. Note that the information you decide
to store on the Branch Server is not particularly important, you should focus on working out the architecture
of the distributed system.
Intermediate Requirements
• All Banana products (smartphones, laptops and desktop computers) are built and stored at Banana Headquarters. Information regarding the number of each product in storage is kept on the Product Server at
Banana HQ.
• Consider when a customer wants to buy a product that is out of stock in a particular Banana shop, or
wants to buy more stock than is currently available. The salesperson should be able to view all available
products (even if that shop doesn’t yet stock them) and request additional stock from Banana HQ via
their till (Branch Client).
You should develop the Product Server using Java RMI, and edit your Branch Server and Branch Client from
the basic requirements in order to add this additional functionality.
Advanced Requirements
• The number of Banana owned shops has grown rapidly, and the single Product Server at Banana HQ is
now being overwhelmed with requests from shops. All traffic to Banana HQ should be passed through
a Load Balancer, which should then split the requests it receives between multiple Product Servers.
You should develop the Load Balancer using Java RMI, and edit your Branch Server and Product Server from
the intermediate requirements as appropriate. For simplicity I suggest that each Product Server should deal
with unique products. I.e. One Product Server contains only smartphone products, another Product Server
contains only laptop products. Then the Load Balancer can split requests based on product type.