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.
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:
selecting between multiple object implementations
creating passive, single-, or multi-threaded objects
fragmenting or replicating object state
using reliable, unreliable or multicast protocols for invocations
specifying compressed or secure protocols for data exchange
Essentially, attributes provide a top-to-bottom configuration mechanism that
can be used at all layers of COBS. 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 OTL is fully functional and supports the configuration of several styles
of object invocation and object name specification mechanisms. The
configurability of the OTL will be extended as warranted by applications under
development.