Real-Time CORBA

A growing class of real-time systems require end-to-end support for various quality-of-service (QoS) aspects, including bandwidth, latency, jitter and dependability. Applications include command and control, manufacturing process control, videoconferencing, large-scale distributed interactive simulation, and testbeam data acquisition. These systems require support for stringent QoS requirements. To meet this challenge, developers are turning to distributed object computing middleware, such as the Common Object Request Broker Architecture (CORBA), an Object Management Group (OMG) industry standard. In complex real-time systems, DOC middleware resides between applications and the underlying operating systems, protocol stacks and hardware. CORBA helps decrease the cycle time and effort required to develop high-quality systems by composing applications using reusable software component services rather than building them entirely from scratch. The Real-Time CORBA specification includes features to manage CPU, network and memory resources.

The Real-time CORBA (RT-CORBA) 1.2 specification defines standard features that support end-to-end predictability for operations in fixed-priority CORBA applications. This specification extends the existing CORBA standard and the OMG Messaging specification. In particular, RT-CORBA 1.2 leverages features from GIOP/IIOP version 1.1 and the Messaging specification’s QoS policy framework. An ORB endsystem consists of network interfaces, operating system I/O subsystems and communication protocols, and CORBA-compliant middleware components and services. The RT-CORBA specification identifies capabilities that must be vertically (i.e., network interface <-> application layer) and horizontally (i.e., peer-to-peer) integrated and managed by ORB endsystems to ensure end-to-end predictable behavior for activities that flow between CORBA clients and servers. The figure below illustrates how the various RT-CORBA features relate to the existing CORBA standard.

RealTime CORBA

 

The following summarises these capabilities, starting from the lowest level of abstraction and building up to higher-level services and applications.

1. Communication infrastructure resource management: An RT-CORBA endsystem must leverage policies and mechanisms in the underlying communication infrastructure that support resource guarantees. This support can range from (1) managing the choice of the connection used for a particular invocation to (2) exploiting advanced QoS features, such as controlling the ATM virtual circuit cell pacing rate.

2. OS scheduling mechanisms: ORBs exploit OS mechanisms to schedule application-level activities end-to-end. Since the RT-CORBA specification targets fixed-priority real-time systems, these mechanisms correspond to managing OS thread scheduling priorities. The RT-CORBA specification focuses on operating systems that allow applications to specify scheduling priorities and policies. For example, the real-time extensions in IEEE POSIX 1003.1c define a static priority FIFO scheduling policy that meets this requirement.

3. Real-Time ORB endsystem: ORBs are responsible for communicating requests between clients and servers transparently. A real-time ORB endsystem must provide standard interfaces that allow applications to specify their resource requirements to the ORB. The policy framework defined by the OMG Messaging specification allows applications to configure ORB endsystem resources, such as thread priorities, buffers for message queueing, transport-level connections, and network signaling, in order to control ORB behavior.

4. Real-time services and applications: Having a real-time ORB manage endsystem and communication resources only provides a partial solution. Real-time CORBA ORBs must also preserve efficient, scalable, and predictable behavior end-to-end for higher-level services and application components. For example, a global scheduling service can be used to manage and schedule distributed resources. Such a scheduling service can interact with an ORB to provide mechanisms that support the specification and enforcement of end-to-end operation timing behavior. Application developers can then structure their programs to exploit the features exported by the real-time ORB and its associated higher-level services. To manage these capabilities, RT-CORBA defines standard interfaces and QoS policies that allow applications to configure and control (1) processor resources via thread pools, priority mechanisms, intra-process mutexes, and a global scheduling service, (2) communication resources via protocol properties and explicit bindings, and (3) memory resources via buffering requests in queues and bounding the size of thread pools. Applications typically specify these real-time QoS policies along with other policies when they call standard ORB operations, such as create POA or validate connection. For instance, when an object reference is created using a QoS-enabled POA, the POA ensures that any server-side policies that affect client-side requests are embedded within a tagged component in the object reference. This enables clients who invoke operations on such object references to honor the policies required by the target object.


Related Technologies

CORBA | CORBA/e | MinimumCORBA | CORBA IDL | CORBA CCM | CORBA COS | CORBA & DDS | Open Source CORBA

Related PrismTech OpenFusion CORBA Products

OpenFusion RTOrb Java Edition | OpenFusion e*ORB