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:
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.