ASSIGNMENT DESCRIPTION:
Your assignment is to (1) describe a specific distributed systems problem,
(2) propose a solution, and then (3) implement the solution in a computer
programming language on an operating system. Since this semester
we have a "very diverse computer science background" class, you may choose
any programming language or any operating system. You must arrange
enough time and instructions to the instructor or T.A. to examine your
work if the chosen operating system is not a UNIX or Windows system.
There is a "default" project for you to choose if you would not like to
create your own project. There are a set of examples. These
examples are in our public domain ftp directory. Please click at
the following link: ftp://mason.gmu.edu/tnguy1/cs571s01.
In this directory, you will find examples of projects completed at Virginia
Tech (VT), project descriptions from previous CS571 at GMU, and other examples.
Note that these projects and solutions are for references only.
Do not use these examples as your work: it is considered a violation
of the Honor Code.
PROGRAMMING PROJECT DESCRIPTION (Refs: GMU CS571 Fall 2000 and Virgina Tech CS5204)
Your programming project is to complete a modified version of projects done at GMU or at Virginia Tech as follows:
" A programming project produces a well-designed executing system that solves a specified distributed programming problem. Programming projects may be implemented using either:
Each programming project will involve a team of up to three students. The students on a team will each receive the same grade for the project. The students may select their own partners and may divide the work in any appropriate way. It is expected that both students will contribute equally to the work and benefit equally from the learning associated with the project. It is considered a violation of the Honor Code for one student to allow another student not to contribute to the project as an equal partner. Problems with equal participation should be brought to the attention of the instructor at the earliest possible time. Students may also collaborate on the installation of the software needed for the project and they may collaborate on achieving a basic understanding of the mechanisms of each system. However, each team's design and code must represent that team's creative work.
Default Project
The default programming project is a simple electronic commerce system. The system consists of four different machines for the client, two "stores", and a "bank." The system allows the client to view and purchase items from either store. As part of the purchase order, the client provides an "account number" which the store will verify by contacting the "bank". Before authorizing the expenditure, the bank will seek confirmation from the client that the amount and the store are acceptable. The interaction between the client and the store should be asynchronous. That is, the client should not block waiting for the store to reply to it requests to view or purchase items. This allows the client to conduct business with several stores simultaneously.
Deliverables:
A final report is required this project. The deliverables should include a hard copy final report and a floppy disk (in Windows format) containing the final report, your program code and instructions for the instructor or T.A. to install and test your program.
The final report should follow this outline:
DUE DATE:
Thursday, April 20, 2001.