CSCI.4220/CSCI.6964 Network Programming
Fall, 2002
Programming Assignment 5

This assignment is to be done either individually or in pairs. Do not show your code to any other group and do not look at any other group's code. Do not put your code in a public directory or otherwise make it public. However, you may get all the help you need from the TAs or the instructor. You are encouraged to use the WebCT Discussions page to post problems so that other students can also see the answers.

Objective:

The goal of this assignment is to use either Java's Remote Method Invocation or CORBA, to create an online auction.

People can join the auction, leave the auction, and bid for an item in the auction. The current price of an item gets flashed as soon as anybody bids a valid price for the item. This is similar to the online stock market where the current prices of the shares are flashed as soon as their value changes.

Let us look at some of the details:

You need to create an auction server. The server should support at least the following methods: You can read the initial list of items and minimum prices from a file or from standard input. When somebody joins the auction, you need to send the items on sale and their current price.

Then, you need to create a client, either as an applet, or as an application. The client joins the auction, displays the items for sale along with their current price, and lets the user place a bid for a particular item.

Since multiple clients will be bidding at the same time, the methods on the server must be properly synchronized. Whenever any client makes a successful bid, the current price at all the clients must reflect this change. [Hint: You need to use RMI or CORBA to call back the clients from the server.]

All the exceptions must be properly handled.

Extensions:

Completion of one of this extensions will result in a better grade; however, groups of more than one person MUST complete this extension to receive a full grade. It should also be noted that, if you have an idea for a different extension, ask either the instructor or TAs for approval:

Grading:

Grading will be split in the following way:

Submission:

The due date for this project is October 15th, 2002, 11:55pm EST. You should use the assignments drop-off box located at the course's WebCT page. Upload a JAR file containing all the relevant documented Java files, along with a README file describing the project and its usage.

Late Submissions: