Assignment 2, CS-701, Fall 1997

Object Broker Project

Due Date: This assignment is due by midnight December 23, 1997. There will be no "late points" or extensions for this project. If you don't finish the entire project, hand in whatever you have finished by the deadline.

Deliverables: Create a project directory for this project, and email me its path when you are ready to submit the assignment. The project directory is to contain nothing except a subdirectory named RCS and, possibly, a file named README. A README file is neither required nor expected for this assignment, but I will read it if you leave one in the project directory. Use a README file rather than email to tell me any way(s) in which your project deviates from the assignment that I should know about.

One requirement for this assignment is to develop a sequence of use cases from a common code base. Each use case will have its own revsion number as listed in the description of the project below. The first use case will be known as "Step 1," the next one will be "Step 2," etc. From an empty project directory (except for the RCS subdirectory), a use case is created by issuing the following command:

      mk COFLAGS=-r<n>
In this command, <n> is the revision number for the use case to be built. Consult the handout page on Using RCS for more information on how this will work with your Makefile for the project.

Requirements: In addition to the information given here, be sure to consult the Grading Form for this assignment, which includes additional information about the requirements for this project.

Project Description

For this assignment, an object manager is defined as a program that manages classes and class instances (objects). An object manager knows how to create and delete class instances, how to provide lists of the classes and class instances being managed, and how to invoke class and instance methods for the classes and objects under its management.

An object broker is defined as a program that knows how to locate the object manager for a class or class instance and which acts as an intermediary between the class manager and programs that need to invoke the class and instance methods managed by an object manager.

For this assignment you will be developing three separate programs that communicate with each other using our own CSSOOOBP ("Computer Science Seven-Oh-One Object Broker Protocol"). (CSSOOOBP is pronounced "cuss soup.") The programs will communicate with each other using lower-level network socket protocols.

We will start by developing the object manager program called om and a client program called ou (object user) that accesses the om. We will gradually add functionality to both of these programs until they provide enough functionality to warrent development of the third program, ob (object broker).

Use Cases


  1.  om and ou Exchange Datagrams

  2.  om Writes a Log File

  2a. Change Structure of om Source Code

  3.  The Object Broker First Appears

  4.  ob and om Communicate

  5.  ou and om Communicate Through ob


Christopher Vickery
Computer Science Department, Queens College of CUNY