What is Real-time CORBA?
See also: What is CORBA?
CORBA, as a standard, has continued to evolve over the last decade, and has been accepted by many industries as the preferred middleware solution as evidenced by the large industry involvement within the Object Management Group (OMG). Some of the most exciting standards development has come from the Real-time, Embedded, and Specialized Systems Platform Task Force of the Object Management Group in the form of CORBA enhancements designed for the real-time and embedded developer.
A team of diverse companies, including representatives from telecommunications, aerospace, and CORBA vendors jointly authored the Real-time CORBA Specification. OIS was a key contributor in the development of the specification, co-authoring and taking a leading role in pushing the specification to completion. The development of the specification was complex as there were many different viewpoints of the concepts of soft and hard real-time requirements and what types of behavior the communication protocols needed to ensure end-to-end predictability in a real-time system. Consequently, different perceptions still exist about soft and hard real-time requirements and the components required to ensure end-to-end predictability. The end result of the standardization effort was agreement that the standard would be based on the concepts necessary to support fixed priority scheduling.
End-To-End System Predictability
Fixed Priority Scheduling
Real-time CORBA introduces a piece of data called Real-time CORBA Priority. Real-time CORBA Priority specifies how to relate native operating system priority throughout the system in a consistent manner, and how to handle communication requests from the client application, through the middleware layer, over the network, and up to the server application without unexpected priority inversions. When a client invokes an operation to a server, the client's native operating system priority is mapped to a Real-time CORBA Priority, and the new priority is mapped as part of the message to the server. The following illustration shows the real-time priority mapping function of the client/server application, through a CORBA implementation.
When the Server receives a message, the server-side ORB maps the priority to the server's operating system native priority level, and invokes the operation on the server at the same relative priority level as the client. The resulting effort is a distributed priority inheritance, providing end-to-end predictability in the same manner that would be expected for an operation to occur in a single process.
A critical component of system behavior is the network, with the transport mechanism selected affecting predictability and performance, as well as the Quality of Service (QoS) parameters. Since many real-time systems require either higher performance or greater predictability than currently available through TCP/IP, OIS has developed a number of proprietary methods allowing different protocols within their CORBA implementation. In the ORBexpress Product Line, we provide the ability to plug in other transports, regardless if they are streaming/non-streaming or reliable/non-reliable.
Real-Time Distributed Systems
In addition, classic real-time scheduling theory such as rate monotonic analysis (RMA) does not encompass the scheduling of multiple processors, much less the scheduling of multiple processors and multiple support bandwidth. Distributed system designers face a difficult task in determining the scheduling of the processors, busses and networks for the systems.
The use of CORBA in real-time and embedded systems provides both the distributed communication as well as the framework for enabling the incremental replacement of system components. CORBA provides the location transparency for the objects within a system. This allows for changes in object location without system re-architecture. Systems can be prototyped as monolithic, simulated on a network, and deployed on an airframe bus. The location of the system objects can be determined via actual system benchmarks. CORBA also abstracts the communications transport. New products can be built with better transport technologies without rebuilding existing software.
In the past, real-time CORBA had difficulty in achieving deterministic characteristics within a given system architecture. However, new generation ORBs, such as ORBexpress, have been designed specifically to minimize the ORB memory footprint and bound the latencies inherent within a system.
The OMG has continued to advance these efforts by introducing and enhancing CORBA standards targeted for those systems requiring predictable behavior, such as embedded and real-time systems.
Soft Real-Time CORBA
Hard Real-Time CORBA
However, if a well-constructed ORB is given a predictable operating system (i.e. a real-time operating system) and a deterministic transport, the expected end result is a bounded, end-to-end invocation between a client and server.
In order to achieve these bounded communication results, the ORB must:
Only by designing a hard real-time system, including these critical components, will the designer achieve the hard real-time results expected.