System Documentation for

the Distributed Database System

The Distributed Database program was developed as a fourth year project in the distributed systems course in the department of Computer Science at the University of British Columbia ( This project was completed by Jennifer Fung and Philip Henderson. Some of the code was also provided by the professor for the course, for the IPC section. This application was written entirely in Java, and uses TCP/IP as the basis for other higher level communication protocols.

Overview of the design:
The distributed database system (DDS) is built using a remote procedure call (RPC) protocol for the remote invocation of methods on a remote database server by a remote client. The RPC protocol was developed on top of an IPC (inter-process communication) layer to handle reliable message passing between computers using "at-most-once" semantics.

When the system is running, there are actually three programs running in concert: a Database Server application, a Name Server application, and a Database Client application. Both the Database Server and the Database Client applications use the Name Server to register their classes and distributed objects for other remote machines to use.

All three of these applications use Java reflection technology to allow all remote invocations to be handled by a parent proxy class (Client proxy or Server Proxy) on generic objects.

The rest of the documentation for this project is organized as follows:

Description of important data structures
Argument list for all messages passed
Description of major design decisions
How the Distributed Database System Works:
Limitations of our design:
Test Documentation
Known bugs and sample output


[ Home][Portfolio index]