|
CEG 730: Distributed Computing PrinciplesWinter 2011 Projects |
Our whiteboard is a simulation of a typical class room whiteboard mounted on a wall but allowing multiple people to simultaneously use the board. There are many open source and commercial implementations of this idea. To keep our project size within 1500 lines of code, we drastically simplify it to (i) draw no more than zig-zag lines, and (ii) no text display. The multiple people are just you remotely working from multiple machines.
In 730, we start with two client-server programs using
that implement the WhiteBoard (WB) paradigm. In each of these, you will start from a working and well-documented program written by Mateti. Download from the links given on the home page.
Project P0: Weight == 0%; Your first task is to make and run the C/X11/RPC version so that the server is on one node, and there are at least four clients on four different nodes and two different whiteboards. Turn in printouts of the X11 screen. Quickly scan the code. Bring a print-out of the source code to class.
Project P1: Weight == 15%; Extend the P0 server as follows so that it now responds to messages from a new ``client'' that we would call wbadmin. A simple example of wbadmin.c is given at the top of this page.
Project P2: Weight == 10%; Re-design the P1 above but using Java, RMI, Jini and/or JavaSpaces. Whether we will use Jini + JavaSpaces or limit ourselves to Java RMI will depend on how our class is progressing.
Topics covered: Remote Procedure Calls (RPC), and Clients and Servers. Implementation of RPC. Stub generation, marshaling arbitrary data structures. Sun XDR and RPCGEN. Study of an RPC example. Remote Method Invocation (RMI) and Object Serialization of Java.