next up previous contents
Next: Functional Overview of Up: CASCADE Previous: Design Philosophy

Architecture and Structure of CASCADE

Structural Architecture

CASCADE is a testbed that operates as a functional tool for collaborative authoring. The system currently has two forms. An ``X/Unix'' form and an ``SQL/RPC'' (client/server) form. The X/Unix form is a large executable based on more than 200 modules that does all of the CASCADE work based on information stored in the Unix file system and a series of flat files. The interface is X/Motif and is served from the application across the network to a workstation. This form of CASCADE is relatively easy for developers to work with, can be quickly modified, and can have new features installed in minutes. At the same times, it does not scale well, nor does it work well over congested networks. For that purpose, CASCADE is in the process of being redesigned as a true client server application. The code has been split into client and server portions and the server in being redesigned piece by piece to replace the Unix and flat file information with information from an SQL compliant database residing on the server. Instead of processing all of the information on the server and shipping X to the clients, the SQL version will use RPC protocols. The clients will be manifest to the users as interfaces written in the native form of the platform they use -- Windows, X, Mac. While the X/Unix prototype is useful for demonstrating general functionality, it will be abandoned in the future for two reasons:

Clients will make a network connection to a server that will mediate access to the document components--located in a variety of different places. The server will provide network-transparent access to the document components and will initiate intelligent retrieval of remote documents so as to insure timely display of the document components that an individual might want to see. The structural architecture of the client/server version, shown in Figure gif, has been designed to facilitate the incorporation of functions, tools and agents to support authoring and to support research on mechanisms to offload cognitive tasks nonessential to the authoring process.

Figure: Structural Architecture

The client and server software using RPC will be developed with an eye to CORBA. Ultimately, CORBA-compliant clients will communicate with other CORBA-compliant objects as needed. The server will remain a significant partner in the communication, but CORBA compliance will allow local communication and service as well as direct service from the SQL/CORBA compliant DBMS as needed.gif

Agent Architecture

The agent architecture is an important component of the research effort. Agents will be developed so that they may be executed as independent software entities constructed to be CORBA compliant. Specific agent functions may also be developed in line as components of the CASCADE client or server modules--for purposes of efficiency. The term ``agent'' is used increasingly in the literature and means very different things to different people. We view agents as pieces of code that undertake tasks on behalf of a user of the system. Agents might be classified based upon the sophistication of the service provided. We believe that 5 levels may be a more appropriate classing for the kinds of tasks we have in mind.

Executive agents would be responsible for contributing planning level skills involving the entire group, or subgroups-- for example, an agent that enforced Robert's rules of order on a meeting might operate at this level.

Collaborative agents would be responsible for independent action and direct contribution where the action involved more than one individual--for example, an agent entrusted with setting up a meeting that included as many of the important actors as possible would be of the is class.

Contributory agents would be responsible for direct contribution to action where the action involves only a single individual--for example, an agent that reviewed comments and presented a classified list grouping comments into ``substantive arguments'', ``references and examples'', and ``grammatical corrections'' would be of this class.

Communications agents would be responsible for managing communications-- for example, mailing materials to a group, or coordinating responses to a ballot.

Service agents would be responsible for providing low level services to individuals or system components. The nature of these tasks is such that they are universal and generally trusted--for example, logging and reporting activity, managing directory information , etc.

next up previous contents
Next: Functional Overview of Up: CASCADE Previous: Design Philosophy

Michael Spring
Fri Jan 31 13:59:00 EST 1997