Projects for Distributed Systems


Project 1. The design and implementation of RMI using Java

This project is intended to reinforce the material in Section 5.2.5 on the implementation of RMI and the material in Section 4.3 on marshalling and Java object serialization. It also gives students experience in the use of the Java API to TCP sockets (Section 4.2.4) and of the use of reflection in Java.

This project is available as a set of Browsable pages on the book web site. It is also available as a downloadable Archive of html pages and Java files. We allow 3-4 afternoons for this project.

Project 2. The design and implementation of a sequencer multicast protocol using Java

This project reinforces the material in Section 11.4.3 on how to achieve total ordering with a sequencer. It also gives students experience in the use of the Java API to IP multicast (Section 4.5.1). We allow 3-4 afternoons for this project. This project is available as a set of Browsable pages on the book web site.

Project 3. The design and implementation of a Task Bag server using CORBA or Java RMI

This project is loosely based on the Linda model for parallel computation and consolidates the knowledge from Chapter 12 about synchronization in servers. If the CORBA variant is chosen, it gives students experience in the use of CORBA which is presented in Chapter 17. This project is available as a single Browsable page on the book web site. We allow 3 half days for this project. Those using CORBA should be aware that Section 17.2.1 is described for Java 2 version 1.3 or earlier. For version 1.4 see Java CORBA with Java version 1.4.

Project 4. The use of the Unix interface to UDP sockets to implement a simple RPC framework in C++

This project consolidates the basic knowledge about RPC implementation in Chapters 4 and 5 and gives students experience in constructing programs that use Unix sockets with UDP. This project is available as a Browsable page on the book web site, together with a sample program and a downloadable PDF file containing notes on Sockets in Unix. We allow 3-4 afternoons for this project.

Project 5. Operating systems experiments

This project is designed to exemplify and explore some of the issues raised in Chapter 6. Ideally the experiments should be undertaken before the study of Chapter 6. They require an understanding of the basics of operating systems and interprocess communication. There are two sets of experiments, we allow two afternoons for each set. This project is available as a Browsable page on the book web site.

Project 6. A prototype for a stateless file server and its cache mechanisms

This project illustrates the concepts about file servers and caching described in Chapter 8 by requiring the student to make a stateless file server and a client library that implements caching. This project is available as a set of Browsable Pages on the book web page. This project is designed to be carried out by individuals, taking about 3-4 afternoons.