Support for OMG Real-Time CORBA 1.0
specification has been added to TAO. For an overview of Real-time
CORBA features, please see the C/C++ Users
Journal columns written by Douglas Schmidt and Steve Vinoski. For a
detailed design discussions and results of empirical performance
analyzes of TAO's Real-time CORBA implementation, please see the DOC group's
Real-time
CORBA research page.
As usual, questions, comments, and contributions should be posted
to a github issue or discussion (best) or by filling out the TAO/PROBLEM-REPORT-FORM. Please indicate "RTCORBA"
in the component field when submitting a bug report.
Points of contact for the project are:
Following is the complete list of features from the Real-Time CORBA 1.0 specification
that are currently supported in TAO. (These do not include work
in progress).
- Real-Time ORB
- Real-Time POA
- Real-Time Current
- Priority Mappings
- Client_Propagated Priority Model
- Server_Declared Priority Model
- Server Protocol Policy
- Client Protocol Policy
- Priority Banded Connections
- Explicit Binding
- Private Connections
- Invocation Timeout
- RT Mutex
- POA Threadpools
The following features are not currently supported, and there are no immediate plans
for their implementation:
- POA Threadpool request buffering
- POA Threadpool thread borrowing
- Priority Transforms
- ORBinit command-line option
- Currently, persistent objects are not supported for RT POAs. We
need to add this feature.
- Currently, purging of connection only happens for the lane of
the thread that runs out of connection. We need to change this
such that we allow system wide purging.
- Currently, all user-created threads are part of the default
thread pool. There is nothing done to separate out these threads
into different (implicit) lanes based on their priorities. We may
need to add this separation to get better/predictable behavior
with respect to sharing of resources across threads of different
priorities.
- Currently, some CDR memory pools are global. We should
reevaluate them to see which of them can be made a per-lane
resource.
- Improve current RT CORBA implementation through benchmarking and
optimizations, resolving known bugs and issues, adding examples,
and other enhancements.
- Implement an alternative real-time orb architecture using a
queue-per-lane approach, as described in the TAO Real-Time Architecture
section. In this approach, each threadpool lane owns a queue,
while I/O resources are being shared among all the threadpool
lanes of the same priority within a server. Strategize TAO to use
either queue-per-lane or reactor-per-lane
implementation, and compare the two.
- As both real-time and fault tolerance implementations mature
separately, explore issues in combining them, and, ultimately,
enable TAO to provide applications with both real-time and fault
tolerance support at the same time.