SDSU CS 596: Client Server Programming
Room Service Project

[To Lecture Notes Index]
San Diego State University -- This page last updated May 12, 1995

Room Service Project
Assignment Due Date: May 17, 1995

In an attempt to reduce the amount of work required for the project, we have modified the project for the course. You are no longer required to implement the room scheduler. You just have to produce a design document. Read the modified assignment description. An expanded description of the design document is available now.

State University Institute of Technology (SUIT) wishes to implement an on-line class room scheduling system (Ross). A class room has the following attributes:
Size - the number of chairs in the room
Location - the building containing the room
Special features - does the room contain a TV, windows, running water, or an internet connection
Desirability measure -
1: for administrators only
2: can be scheduled by administrators, staff and faculty but not by students
3: normal class room, anyone can schedule it
4: barely usable, who would want to use it?

Class rooms can be reserved for regular classes that meet all semester at the same time, by extension courses, for department meetings and department seminars, by faculty to meet with students and students for study groups. Only the Dean's secretary can schedule regular classes and extension courses. Each college controls a fixed set of class rooms. Some colleges share buildings, like BAM. All rooms are controlled by a college. Anyone can schedule an empty room after the college that controls the room has scheduled their regular courses. Only currently enrolled students, active faculty, and current staff can reserve rooms. Anyone can query for the schedule of any room.

A user may request to schedule a room explicitly by giving the room number and time required. A request may query for a list of rooms that satisfy a list of parameters: need a room that holds 20 people with an Internet connection on next Friday afternoon for an hour between 1 and 5 in BAM. The result would be a list all rooms meeting the parameters. One can request a list of all rooms available at a given time in a specific building or on the entire campus. A user may wish to just give a list of parameters for a room and have a room selected for them. Anyone on the internet with a Ross client can request the room number, location and time for a scheduled activity (class, seminar, study group, etc.)

For political reasons, each college maintains a Ross server on a UNIX machine. Each college server maintains a list of its students, faculty and staff. When you use a Ross client, it must connect to your colleges server. A college server contacts other college servers to handle request for rooms outside of its control. The location of college servers can change. Everyone associated with SUIT is issued a unique ID . As you are in charge of the Ross system, you can determine the format of the ID and any password that you might require.

Your are to design the protocol for Ross. Further more you are to design server and client for Ross. You are to turn in a design document. This document should contain: the protocol, high level description of the system architecture, key abstractions, scenarios that illustrate how the parts of the system will operate. We have hired some off-shore programmers. Your design document will be used by them to implement Ross.