CEG 730: Distributed Computing Principles

Winter 2011 Projects

wbadmin.c | Acceptance Test | 730-WB-C-RPC-HTML | RPC Flow Diagram | RPC Marshalling the Parameters

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. 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.

Reading List

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.

  1. Programming with ONC RPC, a tutorial by Digital (Compaq), 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. 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.
  3. Ed Petron, Remote Procedure Calls, October 1st, 1997; http://www.linuxjournal.com/article/2204 Introductory article.
  4. John Bloomer, Power Programming with RPC, February 1992, Pages 518, ISBN 10: 0-937175-77-3 | ISBN 13: 9780937175774; http://oreilly.com/catalog/9780937175774/   Another complete book on RPC.
  5. MS Windows RPC http://msdn.microsoft.com
  6. Java tutorial, http://download.oracle.com/javase/tutorial/
  7. Andrews, Chapter 9

Copyright © 2011 Prabhaker Mateti (937) 775 5114