CEG 730: Distributed Computing Principles

Winter 2012 Projects

C-RPC Download 730-WB-C-RPC Source Code | wbadmin.c | 730-WB-C-RPC-HTML | Acceptance Test | RPC Flow Diagram | RPC Marshalling the Parameters | Linux Setup for 730-WB-C-RPC P1 |

Java-RMI Download 730-WB-Java-RMI-2012 Source Code | 730-WB-Java-RMI-HTML | Acceptance Test

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.

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

  1. C/C++ and RPC,
  2. Java RMI and/or Jini, JavaSpaces

that implement the WhiteBoard (WB)  paradigm. In each of these, you will start from a working and well-documented program written by Mateti.

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.

References

  1. Oracle.com, ONC+ Developer's Guide; http://docs.sun.com/app/docs/doc/816-1435; Reference.  This is a highly recommended complete book on RPC. Several tutorials are available on the web (use a search engine to find links). E.g., http://www.cs.rutgers.edu/~pxk/rutgers/notes/rpc/index.html
  2. MS Windows RPC http://msdn.microsoft.com Recommended Reading.
  3. Java tutorial, http://download.oracle.com/javase/tutorial/ Recommended Reading. RMI Trail: Required Reading.
  4. XML-RPC http://www.xmlrpc.com/ Reference.
  5. Andrews, Chapter 9. Required Reading.

Copyright © 2012 Prabhaker Mateti