CSCI.4220/CSCI.6964 Network Programming
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.
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
Let us look at some of the details:
You need to create an auction server. The server should support at least
the following methods:
- join auction
- leave auction
- bid on an item.
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
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
All the exceptions must be properly handled.
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:
- A "professional looking" GUI including pictures for items on sale, and
a clock displaying "time-to-bid" for given items.
- The ability to include new items on sale in the auction server.
- Authentication to the auction server/user management.
- Encryption (perhaps using SSL) for remote method invocation.
Grading will be split in the following way:
- 60% correctness (Does it do what it's supposed to?)
- 20% error handling (Can it easily be crashed?)
- 20% documentation (Is it easy to read and understand the code?)
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
files, along with a README file describing the project and its
- 10% penalty for a one-day late submission.
- 25% penalty for up to a three-day late submission.
- Submissions more than 3 days late will not be accepted.