Purpose
-------

The RPS2/PIP Integration Project is chartered to combine two 
similar process flow control systems using modern programming and
communications technologies, JAVA and CORBA.  The goal of this 
project is an easily customized and maintained system portable to 
many platforms.

This document describes the objects that make up the system and 
their organization, including their relationships and function.
 
 
Big Picture
-----------

The system is object based.  The following diagram shows the 
general relationship of objects within the system:

                             Controller 
                                 |
            +--------------------+------------------+
            |                    |                  |
      User Interface     Master Preference       Toolset
                                 |                  |
                         Toolset Preference        Tool
                                 |                  |
                          Tool Preference        Service
                                 |
                           Prefence Data
     
                        Object Relationships
     
 The system relays messages within the system using the following objects:    
               
               Status
               Error
               Warning
               Log
               FinalStatus



Class Heirarchy
---------------

BaseRPS2Object
	UI
		GUI
		CLI (Command-line interface)
	Controller
	Toolset
		RPS2 (PP->Trans->CASM->DG->Submit)
		PIP (Trans->CASM->DBUpdate->PMDBLoad->NGSS->Spike)
	Tool
		PP
		Trans
		CASM
		DG
		Spike
		NGSS
		PMDBLoad
		DBUpdate
		Submit
	Message
		Status
		Error
		Log
		FinalStatus
	Preference
	Proposal



Parent Relationship
-------------------

Controller
	Messages
	GUI
	RPS2Toolset
		PPTool
			Preference
		TransTool
			Preference
		CASMTool
			Preference
		DGTool
			Preference
		SubmitTool
			Preference
	PIPToolset
		TransTool
			Preference
		CASMTool
			Preference
		DBUpdateTool
			Preference
		PMDBLoadTool
			Preference
		NGSSTool
			Preference
		SpikeTool
			Preference
	Proposal
     
                       
Controller
----------

The controller is a container class that holds all the other objects.
It keeps track of existing toolsets and proposals, and allows messages
to be sent to the appropriate places, such as from tool to GUI.  The
controller itself has only a few methods that handle this intermediate
role, and does not do any decision making, The controller is also
responsible for all file accesses needed by the control program, such
as resource files, log files, and the change files used to determine
what processing needs to be done.


User Interface
--------------

The user interface consists of both a command line interface and a
graphical interface.  The graphical interface mimics the current 
RPS2 interface.  It simplifies the capability of processing 
multiple proposals simultaneously.

When a proposal if openend, the GUI creates a new tab pane for the
proposal.  The pane displays controls and status information for 
the proposal.  Open proposals are also displayed on the file menu 
after the "exit" menu item.  The proposals are identified by 
directory and proposal number.  If the user has access to 
multiple toolsets, the toolset is prepended to the toolset menu 
item.  


Toolsets
--------

Insert the tool_set file here.


Tool           
----

Insert the tool file here.


Services
-------- 

Describe the services as CORBA interface objects that connect the 
tool to the remote or local process.


Preferences
-----------

Insert the preference file here.


Messaging
---------

Insert the messaging document here.


Task Descriptions
-----------------

Insert the tasks/pseudo code file here.


Interfaces
----------

Insert the interfaces file here.

Insert the interface_matrix file here.


Integrating CORBA Tools
-----------------------

Insert corba_tools file here.


Integrating Non-CORBA Tools
---------------------------

Insert non_corba_tools file here.


Acronyms
--------

Insert acronyms file here.


Schedule
--------

Insert schedule file here.