COBS Architecture

COBS Architecture

The COBS system architecture is summarized in Figure 1. The Object Transport Layer (OTL) is a central component of the system architecture. It is designed to support the operation and inter-operation of a variety of programming models, including: traditional CORBA-style object systems, systems with more complex distributed or fragmented objects, and explicitly reactive object systems like the Event Reaction Architecture. A key feature of the design is the use of object and invocation attribute lists.

 
Figure 1: COBS System Architecture 

Attributes are name-value pairs that control system characteristics and provide a uniform mechanism through which the behavior of all layers of the COBS architecture can be configured to achieve the required performance. Among the system characteristics which can be controlled by applications are:

Attributes are associated with every object operation and so can affect the behavior of any system component involved in performing that operation. Each system component processes the attributes that it understands and the remaining attributes are passed on. When object operations cross machine boundaries, the operation attributes are passed on as well so that the receiving systems behavior can be customized. The range of attributes is not limited or predefined. Because attributes can be examined as well as specified at the application level, they can be used by applications for customizing their own functional behavior as well as for configuring the underlying system.

The Object Transport Layer of COBS is built on top an instrumented version of the Georgia Tech Cthreads library. This library provides user-level threads support on a variety of uniprocessors and shared memory multiprocessors. The instrumentation support in Cthreads allows system and application performance information to be extracted for on-line or post-mortem performance analysis or tuning. This data extraction is done with minimal system perturbation and should prove invaluable in tuning applications and experimenting with new system configurations and protocols.

In order to insulate the system from machine differences and provide for efficient heterogeneous operation, a portable binary I/O package (PBIO) is being used in several situations. PBIO is a self-describing data meta-format capable of representing structured information and transmitting it between machines in a reader-makes-right protocol. COBS uses PBIO above the network layer for the transmission of attributes and other information required for its operation. Above the OTL, PBIO is used for packaging invocation parameters for transmission between machines.



Greg Eisenhauer
Fri Feb 23 12:36:27 EST 1996