UMBC  |  CSEE  |  Tarr  |  CS491D

CMSC491D Design Patterns In Java

Fall 2000

Project 2

RMI Auction Server Project

Due Date: December 4, 2000


Project Description

In this project, you will be implementing a simple auction server using RMI. The server will be used to maintain a list of items available for auction purchase. Clients will be allowed to make bids on available items or put new items up for auction. Clients can also be notified when the current bid on a particular item changes.

This application will require that both the client and server have remote objects. The server has a remote object which implements the following interface:

      public interface AuctionServer extends Remote {
         public void placeItemForBid(String ownerName, String itemName, 
           String itemDesc, double startBid, int auctionTime) 
           throws RemoteException;
         public void bidOnItem(String bidderName, String itemName, 
           double bid) throws RemoteException;
         public Item[] getItems() throws RemoteException;
         public void registerListener(AuctionListener al, String itemName) 
           throws RemoteException
      }

These methods do the following:

Any client object which desires to be notified of changes in the bid status of a specific item must implement the following interface:

      public interface AuctionListener extends Remote {
         public void update(Item item) throws RemoteException;
      }
The update() method of this interface does the following:


Project Requirements

Use the above interfaces to write a working version of the RMI auction server application. Implement both the server and the client programs.

Implement the client interface any way you like, either textual or graphical.

Test your application with at least three auction items, two clients and the server.

Your project code must also be well documented and use a reasonable indentation style. In particular, places where design patterns are implemented should be noted in the code.

Finally, a short report, no more than five pages in length, should be submitted describing the design patterns that appear in your project, either as part of the RMI framework itself or explicitly as part of your server or client implementation.


Project Grading

Your project will be graded according to the following criteria:

As in all your work, NO COPYING OR PLAGIARISM. If such is detected, no credit for the project will be given and appropriate actions for academic dishonesty will be taken.


Project Submission

You must submit the following: Submit all of the above using the submit program. To submit, you type
        submit cs491d project2 <filenamelist>
where filenamelist is a list of one or more files. You can submit a file as often as you like; the latest file submitted overwrites any previous submissions. To list the names of the files you have submitted, type
        submitls cs491d project2
To remove a previously submitted file, type
        submitrm cs491d project2 <filename>


Project Due Date

This project is due December 4, 2000. You have a seven day, automatic, no-need-for-a-lame-excuse grace period.

No project will be accepted after December 11, 2000. NO EXCEPTIONS! NO EXCUSES!


Bob Tarr
University of Maryland, Baltimore County
tarr@umbc.edu
UMBC  |  CSEE  |  Tarr  |  CS491D