CS 4/594: Distributed Systems
Spring 2010
Micah Beck instructor
Class Project
Due 4/30 in or before class.
Electronic submission to sellers@cs.utk.edu prefered.
For your project, you are to create a peer-to-peer chat client that works in
the local area network.
- You can use UDP or TCP communication. You may use a topology file that
lists all possible participating clients
(or you can use UDP broadcast to find all peers in the local area network).
- Upon startup, your client should search for other instances of the client
and connect to an ongoing chat when possible.
If no other clients are detected, a new chat session should be created.
- Your chat client should create periodic checkpoints of the session along
a consistent cut, storing the state of the session and any messages in the
channels.
- Your client should handle as many error conditions as possible without
restarting (eg loss of a peer). However, some conditions can be better handled
by resetting to a saved state. Any client should be able to request a reset to
a saved state at any time.
- In order to generate non-trivial channel state, you should introduce
artificial communication delays of at least 1-10 sec (as much as 30 sec may be
required, depending on traffic).
- This specification will be elaborated further as issues arise.