Design an Auctioning System using Java RMI for the following specifications. The details of the system is shown as below:
Description of the Problem
You are asked to design and implement a simple distributed auctioning system using Java RMI. Crucially, this overall problem is organised into three sub-problems of increasing difficulty: basic auctioning system.
Basic Auctioning System
You are asked to implement a distributed auctioning system. This auctioning system should consist of a central auctioning server and two separate client programs:
• The first client program should enable a seller to create a new auction for an item offered for sale. The seller should be able to provide a starting price and a minimum acceptable price (reserve price). Creating the auction will return an auction id. At some point in the future, the seller should be able to close the auction using the same client program, by quoting the auction id. When the seller closes an auction, the client program should either indicate who the winner is, along with their details (see below), or else indicate that the reserve price has not been reached.
• The second client program should enable potential buyers to bid for auctioned items. Firstly, the program should enable buyers to browse the list of currently active auctions with their current highest bid (but not the reserve price, which is secret). The client program should then enable a buyer to bid for a selected item, by entering the buyer’s details (name and e-mail).
• The auctioning server should then deal with requests from the two client programs and maintain the state of the ongoing auctions.
You are not expected to provide a sophisticated user interface for the two client programs (a simple text based interface will suffice).