The Room Reservation Megamodule
Catherine Tornabene
December 19, 1996

We want to create a simple room reservation megamodule that will 
demonstrate how a megamodule might behave and also demonstrate
the commonalities between CORBA, DCE, and ActiveX.  

The room reservation program is a simple module.  It is designed to be
used by a CHAIMS program, but as a megamodule it is completely functional
without CHAIMS.  The interface of the megamodule is extremely simple 
and command line driven.  

The functionality is limited and consists of three major applications, 
described below.  The module will first be written as a single process 
program to ensure that it works.  The module will then be split into
a client/server model incorporating DCE, ActiveX, and CORBA.


There are three major functions of the room reservation system:
  
1)  Reserve a room in Building X.

This option will permit a user to reserve a room based on the time 
desired, the number of people attending, and the length of the meeting.  
We will also record the subject of the meeting (i.e., "CHAIMS meeting") 
and the name under which the room is reserved.  We will assume that
every time a room is needed it must be reserved (i.e., no quarter
long meetings). 

2)  Cancel a room reservation in Building X.

This option will permit a user to cancel a room reservation.  We will not
worry overmuch about security in this application and assume that 
everybody in Building X is nice to each other and don't cancel
each other's reservations.  


3)  List the rooms

This option actually has three different sub-options depending on
the command line options specified.  One will simply list 
all the rooms in the building by displaying their room number and size.  
The next one will show all the reservations made in the building for a
given day and time.  The last will show the reservations for a given day 
in a given room.  It will also show the name of the meeting and the name
of the person the room is reserved under.


Since our focus is not on user interface issues of the megamodule, the
megamodule itself will be command line driven.  We will be able to 
demonstrate its functionality using the command line options.  


Options needed to reserve a room (and example of their use):

-t 12:00          time in 24hr format
-d 19961206       the date of the meeting in yyyymmdd
-l 2              the length of the meeting in hours -- default is 1 hr.
-n 7              the number of people attending
-m "description"  a description of the meeting
-w "Catherine"    the name of the person the reservation is under
-r 101		  the room desired for the reservation (optional)

Options needed to cancel a reservation:

The options -r, -t, -d, -w, and -m options described above are needed 
to cancel a room.  In addition, a new option -C must be used to specify
that this reservation is to be cancelled.
 


Options needed to list the rooms:

-l                         list all rooms in the building
-l with -d, -t options     list all reservations at given day and time
-l with -d, -r options     list all reservations at given day in given
                           room

12/16/96ct