Con guring Real-time Aspects in Component
Middleware
Nanbor Wang1, Christopher Gill2, Venkita Subramonian2, and Douglas C.
Schmidt3
Tech-X Corp, Boulder, CO
1
abqf2b@r.postjobfree.com
Distributed Object Computing Group, Washington University, St. Louis
2
fcdgill, abqf2b@r.postjobfree.com
Institute for Software Integrated Systems, Vanderbilt University, Nashville
3
abqf2b@r.postjobfree.com
Abstract. This paper makes two contributions to the study of con g-
uring real-time aspects into quality of service QoS -enabled component
middleware and distributed real-time and embedded DRE systems. First,
it compares and contrasts the integration of real-time aspects into DRE
systems using conventional QoS-enabled distributed object computing DOC
middleware versus QoS-enabled component middleware. Second, it presents
experiments that evaluate several real-time aspects con gured in The ACE
ORB TAO versus in the Component-Integrated ACE ORB CIAO .
Our results show that QoS-enabled component middleware implementa-
tions can o er real-time performance that is comparable to DOC middle-
ware, while o ering greater exibility in composing and con guring key
DRE system aspects.
Keywords. Real-time aspects, Component middleware, Real-time CORBA, CORBA
Component Model.
1 Introduction
Developers of complex distributed real-time and embedded DRE systems need
middleware technologies that o er 1 explicit con gurability of policies and
mechanisms for systemic aspects, such as real-time quality of service QoS , so
that developers can meet the stringent QoS requirements of modern DRE sys-
tems and 2 a programming model that explicitly separates systemic aspects
from application functionality so developers can untangle code that manages
systemic and functional aspects, resulting in systems that are less brittle and
costly to develop, maintain, and extend. This section rst describes how conven-
tional real-time distributed object computing DOC middleware and compo-
nent middleware technologies each provide one of these requisite capabilities, but
not the other. We then describe our approach, which integrates con gurability
of real-time DOC middleware within a standards-based component middleware
programming model.
Limitations with existing middleware technologies. Component middleware 1
technologies are an emerging paradigm that provides mechanisms to con gure
and control key distributed computing aspects, such as connecting event sources
to event sinks and managing transactional behavior, separate from the functional
aspects of the application. Conventional component middleware platforms, such
as the Java 2 Enterprise Edition J2EE and the CORBA Component Model
CCM , are designed to address the QoS needs of enterprise application do-
mains such as work ow processing, inventory management, and accounting sys-
tems , which focus largely on scalability and transactional dependability. Other
domains, however, require additional constraints to meet application require-
ments, e.g., over 99 of all microprocessors are now used for DRE systems 2
that control processes and devices in physical, chemical, biological, or defense
industries.
Examples of DRE systems include distributed sensor networks, ight avion-
ics systems, naval combat management systems, and nancial trading systems,
which have stringent QoS requirements. In these types of systems the right an-
swer delivered too late becomes the wrong answer, i.e., failure to meet QoS
requirements can lead to catastrophic consequences. Research over the past
decade 3 5 has shown that the coordinated management of application and
system resources is essential to ensure QoS. Conventional component middle-
ware, however, does not provide adequate abstractions to control the mecha-
nisms for managing these behaviors and thus is not suitable for applications in
these domains.
Since the time e ort required to develop and validate DRE systems pre-
cludes developers from implementing these systems from scratch, attempts have
been made to extend standard middleware speci cations so they provide better
abstractions for controlling and managing domain-speci c aspects. For example,
Real-time CORBA 1.x 6 which is part of the DOC middleware CORBA 2.x
speci cation 7 introduces QoS-enabled extensions that allow DRE systems
to con gure and control 1 processor resources via thread pools, priority
mechanisms, intra-process mutexes, and a global scheduling service for real-time
applications with xed priorities, 2 communication resources via protocol prop-
erties and explicit bindings to server objects using priority bands and private
connections, and 3 memory resources via bu ering requests in queues and
bounding the size of thread pools.
Although CORBA 2.x provides mechanisms to con gure and control resource
allocations of the underlying endsystem to meet real-time requirements, it lacks
the exible higher level abstractions that component middleware provides to
separate real-time policy con gurations from application functionality. Manu-
ally integrating real-time aspects within CORBA 2.x application code is there-
fore unduly time consuming, tedious, and error-prone 8 . It is therefore hard
for developers to con gure, validate, modify, and evolve complex DRE systems
consistently using QoS-enabled DOC middleware, such as CORBA 2.x and Real-
time CORBA.
Solution approach ! Integrating real-time QoS aspects into component middle-
ware. To resolve the limitations with the status quo described above, we are
integrating 1 component middleware, which enables behavioral aspects to be
speci ed declaratively and woven into application functionality automatically
rather than programmed imperatively by hand with 2 QoS-enabled DOC
middleware, which supports end-to-end QoS speci cation and enforcement, to
create QoS-enabled component middleware. Successful integration of these two
approaches requires the resolution of the following challenges:
The component middleware's con guration infrastructure must be extended
to incorporate speci cation interfaces, tunable policies, and enforcement
mechanisms for real-time aspects and
The performance and predictability of the resulting QoS-enabled component
middleware's runtime environment must be validated empirically to ensure
it supports the desired real-time properties end-to-end.
This paper extends our prior work 9, 10 by comparing the complexity of
programming CORBA 2.x DOC middleware features directly in the ACE ORB
TAO 11 which implements the CORBA 2.x DOC middleware standard in-
cluding Real-time CORBA versus con guring them via component middleware
features in the context of the Component-Integrated ACE ORB CIAO 10
which is a QoS-enabled implementation of CORBA 3.x CCM speci cation im-
plemented atop TAO .4 It also presents experiments that compare the real-time
performance of an example DRE system implemented in TAO and CIAO. Our
results show that QoS-enabled component middleware implementations can o er
performance and predictability similar to that of real-time DOC ORB middle-
ware, while improving exibility to compose and con gure key DRE system QoS
aspects.
Paper organization. The remainder of this paper is organized as follows: Sec-
tion 2 illustrates how our work on CIAO overcomes limitations with earlier work
on component and DOC middleware; Section 3 presents experiments comparing
TAO and CIAO's real-time performance; Section 4 surveys related work on com-
ponent models and integration of real-time aspects in middleware; and Section 5
presents concluding remarks.
2 Composing Real-time Behaviors into DRE Applications
In conventional component middleware, there are multiple software development
roles, such as component designers, assemblers, and packagers. QoS-enabled com-
ponent middleware supports yet another development role the Qosketeer 3
who is responsible for performing QoS provisioning. QoS provisioning involves
pre allocating CPU resources, reserving network bandwidth connections, and
TAO, CIAO, and the tests described in this paper are available as open-source from
4
deuce.doc.wustl.edu Download.html.
monitoring enforcing the proper use of system resources at runtime to meet or
exceed application and system QoS requirements 12 .
To improve component reusability and provision resources robustly through-
out a QoS-enabled component middleware platform, QoS provisioning speci -
cations should be decoupled from component implementations and speci ed in-
stead via component composition metadata, such as ... This decoupling enables
QoS provisioning speci cations to be checked and synthesized via model-based
tools 9, 13, which increase the level of abstraction and automation of the DRE
system development process. This separation of concerns also makes DRE sys-
tems more exible, easier to maintain, and easier to extend with new QoS capa-
bilities to handle changing operational contexts. As DRE systems grow in scope
and criticality, however, a key challenge is to decouple reusable, multi-purpose,
o -the-shelf, resource management aspects from aspects that need customization
for speci c needs of each system. This section describes how CIAO addresses this
challenge, presents an example DRE system that motivates our work on CIAO,
and then uses this example to compare the development process using conven-
tional DOC middleware technologies versus CIAO.
2.1 Supporting Real-time Aspects in CIAO
QoS provisioning requires component middleware that can meet the QoS re-
quirements of the DRE systems it supports. The interfaces and mechanisms for
QoS provisioning in the underlying operating systems and ORBs in conventional
component middleware platforms do not provide adequate support for develop-
ing and deploying DRE systems with stringent QoS requirements, as follows:
Since QoS provisioning must be done end-to-end, i.e., it needs to be ap-
plied to many interacting components, implementing QoS provisioning logic
internally in each component hampers reusability.
Since 1 some resources such as Real-time CORBA thread pools in CORBA
2.x 6 can only be provisioned within a broader execution unit i.e., a
component server rather than a component and 2 component designers
often have no a priori knowledge about other components, the component
itself is not the right place to provision QoS.
Since 1 some QoS assurance mechanisms such as checking whether rates
of interactions between components violate speci ed constraints a ect com-
ponent interconnections and 2 a reusable component implementation may
not know how it will be composed with other components, it is not generally
possible for components to perform QoS assurance in isolation.
Since 1 many QoS provisioning policies and mechanisms cannot work prop-
erly without installation of customized ORB modules such as and 2
there are inherent trade-o s between certain QoS requirements such as high
throughput and low latency , it is hard for QoS provisioning mechanisms im-
plemented within components to foresee incompatibilities without knowing
the end-to-end QoS requirements a priori.
To address the limitations of conventional component middleware in DRE
system domains, therefore, it is necessary to make QoS provisioning policies an
integral part of component middleware, while also decoupling QoS provision-
ing policies from component functionality. Over the past several years, we have
developed extensions to conventional component middleware that support com-
posing real-time aspects and mechanisms more e ectively by:
Separating the concerns of managing QoS resources from those of compo-
nent design and development so QoS management code is decoupled from
components and system modules that span multiple nodes in a distributed
system, and
Making component implementations more robust and reusable since QoS
provisioning via real-time aspects can now be composed with DRE systems
transparently to the component implementations.
These extensions have been integrated into the CIAO 10, which is our QoS-
enabled CCM implementation that separates the programming and provisioning
of QoS concerns as outlined above. Figure 1 depicts the key elements in the CIAO
architecture. Key building blocks in CIAO support the three major categories of
Client Client C nent e l
C nent e e
Cni ti n in Container Co onent o e
Co onent
e te et
oe
e ti n
e eren e
t ti n
t et n le
C
e le t
e o o i ie
Co onent
li C nentC nne ti n
t ti n
e te o ro ert e i i ti n
a tor
el
el
e ni ea ie
t ti n o o i ie
l in
e li
e ni e ni
e ni
e te t ti n
l in l in
l in
Fig. 1. Key Elements in CIAO
CCM: 1 component implementation, 2 deployment and con guration, and 3
application runtime. CIAO applies a range of aspect-oriented 14 development
techniques to support the separation and composition of real-time behaviors and
other con guration concerns that must be consistent throughout many parts of
the software.
To support the composition of real-time behaviors, CIAO extends the build-
ing blocks in the component implementation" and application runtime" sup-
port categories of CCM to allow developers of DRE systems to specify the re-
quired real-time behaviors and to associate them with components in various
parts of an application. In particular, application components and the runtime
environment managed by CIAO can be con gured to support the speci ed be-
haviors. For example, CIAO's real-time component server runtime environment
and containers can be con gured to enforce di erent QoS aspects, such as pri-
orities or rates of invocation.
CIAO's real-time enhancements to CCM de ne a new le format known
as the real-time component assembly descriptor RTCAD to the set of XML
descriptors that can can be composed into an existing application assembly.
An RTCAD le contains de nitions of policy sets that specify key real-time be-
haviors and the resources required to enforce the behaviors. The resources and
policies de ned in CIAO's RTCAD les can be speci ed for individual compo-
nent instances. Qosketeers can then use CCM D&C tools to deploy the resulting
application assembly onto platforms that support the speci ed real-time require-
ments. The remainder of this section present an example that shows how CIAO's
real-time CCM enhancements can decouple QoS aspects from DRE system com-
ponents and enable them to be composed separately.
2.2 An Example DRE System
To illustrate CIAO's support for composing real-time aspects into DRE systems
concretely, we rst describe an example DRE system from the domain of avionics
mission computing 8 . Sections 2.3 and 2.4 then examine the steps required to
develop and evolve this example using CORBA 2.x versus CIAO's real-time
enhancements to the CORBA 3.x CCM speci cation. Figure 2 illustrates the
TIME
14:34:06
POSITION
N 43 39' W 93 21'
Rate Generator GPS Subsystem Graphical Display
Fig. 2. Example DRE Avionics System
following primary software entities in our example DRE avionics system:
1. A Rate Generator, which wraps a hardware timer that triggers the pushing
of events at speci c periodic rates to event consumers that register for those
events.
2. A GPS Subsystem, which wraps one or more hardware devices for naviga-
tion. Since there is a delay in getting the location reading from the hardware
directly, a cached location value is served via the exposed interface to pro-
vide immediate response. The cached location value is refreshed when the
GPS software receives a triggering event and causes the controlling software
to activate the GPS hardware for updated coordinates. A subsequent trig-
gering event is then pushed to registered consumers to notify the availability
of a refreshed location value.
3. A Graphical Display, which wraps the hardware for a heads-up display
device in the cockpit to provide visual information to the pilot. This device
displays a cached location value that is updated by querying an interface
when the controlling software receives a triggering event.
This example is representative of a class of DRE systems where clusters of
closely-interacting components are connected via specialized networking devices,
such as VME-bus backplanes. Although the functional characteristics of these
systems may di er, they often share the rate-activated computation and dis-
play output QoS constraints illustrated here.
2.3 Comparing DRE System Development using CORBA 2.x
versus CIAO
The rst step in developing a DRE system with either the CORBA 2.x DOC mid-
dleware speci cation supported by TAO or the CORBA 3.x CCM middleware
speci cation supported by CIAO involves de ning interfaces for the interac-
tions between software entities. For example, to implement our example DRE
avionics system using real-time DOC features of CORBA 2.x, a developer must
rst de ne the interface for interactions, such as sending the triggering message
and querying the GPS for the current location reading. After these interfaces
are de ned, implementing the avionics example using CORBA 2.x involves the
following steps:
1. Develop servant implementations for previously de ned interfaces. These
implementations are often speci c to system hardware.
2. Determine the location of each servant implementation in the network of
controllers. Hardware layout often dictates the selection of locations.
3. Based on decisions made in the previous steps, implement each server pro-
cess as follows: 1 initialize and con gure the ORB and hardware devices,
2 initialize and con gure POAs to suit the needs of di erent servant imple-
mentations, 3 instantiate servants, register them with POAs, and activate
them, 4 if needed, initialize and con gure an event delivery mechanism,
5 acquire necessary object references for the system, i.e., connect the ref-
erenced objects to this process, and 6 facilitate synchronization with other
services and server processes so they are initialized in the right order.
4. Deploy the assembled implementations to the target platforms manually or
via proprietary scripts.
Figure 3 presents a CORBA 2.x design for our example DRE avionics system.
As the list of steps above indicates, much of the overall system functionality in
CORBA 2.x is implemented in the server process and involves complex coordi-
nation among con guration and initialization code for speci c hardware, ORB,
POA, object connections, and initialization. This complexity is inherent to the
CORBA 2.x development paradigm and requires careful programming of all ob-
jects and server processes involved.
In contrast, the CIAO CCM-based development paradigm provides a more
scalable environment for managing key aspects of developing DRE systems. Fig-
ure 4 presents a CIAO CCM-based design for our example DRE avionics system,
where each hardware device is wrapped within a component implementation. Af-
ter the interfaces de ning the interactions between hardware devices are de ned,
CIAO's development lifecycle involves the following steps:
Fig. 3. CORBA 2.x Scenario for the DRE Avionics System
Fig. 4. CIAO Scenario for the DRE Avionics System
1. Identify a unit of installation as a component interface and design how the
component interacts with external components by de ning the component's
ports and attributes. It is straightforward to identify the software component
interfaces in this example since they map directly to hardware components.
2. For each type of component, developers create one or more component imple-
mentations e.g., for di erent hardware or internal algorithms and bundle
them as component packages.
3. An implementation of the DRE system can then be composed by de ning
a CCM assembly le where developers 1 select the component implemen-
tations to use from a pool of available component packages which need
not involve con guring any platform or runtime requirements, such as in
the ORB or POA , 2 describe how to instantiate component instances us-
ing these component implementations, and 3 specify connections between
component instances.
4. Deploy the DRE system onto its runtime platforms using the standard CCM
Deployment and Con guration D&C framework and tools 15 .
Compared with CORBA 2.x, CIAO's CCM-based development paradigm
handles much of the complexity for DRE system developers. Developers can
therefore focus on the domain problems at each development stage, without being
distracted by low-level implementation details of the con guration platform,
ORB, POA, and servant activation that are not related directly to application
logic. Moreover, CIAO provides many exible ways to con gure a DRE system.
For example, the actual rate for the rate generator component can be speci ed as
a default attribute value in a CCM component package and or be overwritten in
an application assembly by a Qosketeer. In contrast, CORBA 2.x systems require
direct modi cations to the application code, often by developer responsible for
implementing the application functionality.
2.4 Comparing DRE System Evolution Using CORBA 2.x versus
CIAO
When an existing DRE system is modi ed due to changes in DRE system re-
quirements or available hardware, the bene ts of CIAO's development paradigm
become even clearer. For example, consider how our avionics example could be
extended to include a collision warning subsystem to notify the pilot of immi-
nent danger, consisting of a Rate Generator, a Collision Radar, and a Warning
Display. Due to the critical nature of the collision warning subsystem, an addi-
tional requirement for this extension is that the collision warning subsystem be
allocated resources in preference to the navigation subsystem. For example, the
collision warning subsystem may run at a slow rate but it would likely always
run at a higher priority than that of the navigation subsystem since when a col-
lision alert was sounded, the pilot would perform an evasive maneuver to avoid
a collision, rather than worrying about the exact location of the aircraft.
To evolve the solutions described in Section 2.3 to meet these new require-
ments, developers of DRE systems must rst create the new software entities
for the collision warning system and then integrate their functional aspects into
existing applications. In addition, systemic QoS aspects, such as designation of
thread pools and assignment of thread pool priorities, must be performed to
ensure preferential operation of the collision warning subsystem.
Extending a CORBA 2.x implementation of our example DRE avionics sys-
tem would require developers to perform the following steps:
1. Create new servant implementations for the Collision Radar, Warning Dis-
play, and possibly Rate Generator.
2. Recon gure ORBs and POAs to accommodate and activate the new interface
implementations.
3. Modify code at di erent points in the two subsystems to assign priorities,
allocate thread pools, and set other ORB and POA policies so they interact
and synchronize appropriately during system execution.
With CORBA 2.x, moreover, adding the code for resource allocation and real-
time policy speci cations would require additional intrusive modi cations to
application code, beyond those needed to integrate the subsystems's functional
aspects.
Figure 5 illustrates how a CIAO-based implementation can be con gured
rather than programmed to support the new extensions outlined above. A key
observation is that in CIAO the added components have the same interfaces as
Fig. 5. Extended DRE Avionics System Scenario in CIAO
the original example DRE system, even though they require di erent implemen-
tations to interact with di erent hardware devices, including a collision radar
and the warning light speaker in the cockpit instrument cluster.
With CIAO's extensions to the CCM development paradigm, extending our
example DRE avionics system becomes relatively straightforward, requiring the
following steps:
1. Component developers write the new component implementations and pack-
age the new implementations with component metadata.
2. Application developers use the new component implementation packages to
compose the additional functionality into the new DRE avionics system via
the standard CCM D&C assembly format.
3. Qosketeers then de ne the QoS aspects i.e., resources and policies asso-
ciated with end-to-end real-time behavior, using CIAO's RTCAD format
described in Section 2.1.
This aspect-oriented approach for con guring real-time properties supported by
CIAO requires neither changes to the component implementations in our exam-
ple DRE system nor any customized server modi cations. Instead, this approach
allows the real-time behavior of our example DRE avionics system to be changed
simply by composing the new real-time behaviors into its application assembly
speci cation via CIAO's RTCAD format. Creating modi cations and variants
to DRE systems with di erent real-time behaviors therefore largely reduces to
deploying di erent application assemblies with CIAO. Moreover, many of these
separate development steps can be separated into di erent development roles, so
that developers such as Qosketeers can acquire and apply specialized expertise
in particular focus areas of the overall DRE system development process.
3 Performance Evaluation
Section 2 presented a qualitative comparison of the steps involved in develop-
ing and evolving DRE systems using CORBA 2.x vs. CORBA 3.x. This section
presents the design and results of experiments that quantitatively evaluate the
e ectiveness of CIAO's support for composing systemic QoS aspects to achieve
real-time behavior. These experiments illustrate how di erent real-time behav-
iors can be composed and con gured into existing applications via CIAO's real-
time extensions described in Section 2.1. To achieve this goal, all experiments
used components whose functional implementation was amenable to but de-
coupled from any real-time aspects.
The components used in the experiments presented in this section consisted
of 1 a client component that initiated processing and 2 a worker component
that performed a speci ed workload, akin to the relationship between the Rate
Generator and GPS components in Figure 4. Di erent real-time aspects were
then composed with these components in the experiments to model the following
two types of tests:
TAO real-time tests, which were presented in earlier work on the real-time
features of CORBA 2.x in TAO 16 . In these tests, procedures for di erent
tests were hard-coded into many client and server execution paths which, in
turn, depend on complicated logic and scripts to determine the exact tests
to perform.
CIAO real-time tests, where di erent tests were composed rather than
programmed by selecting and connecting di erent combinations of compo-
nents and systemic policies. Fewer component implementations were there-
fore implemented to perform the tests using CIAO.
In addition to empirically evaluating CIAO and TAO, these two types of tests
highlight the bene ts of the CIAO development paradigm illustrated in Sec-
tions 2.3 and 2.4. In particular, the variations in QoS aspects were managed
directly via reuse of CIAO con guration mechanisms and speci cation formats,
rather than through additional manual programming with C++ in the TAO
CORBA 2.x approach.
3.1 Testbed Hardware and Software
Two single-CPU 2.8 Ghz Pentium-4 computers with 512 MB of memory and 512
KB of on-chip cache memory served as deployment targets, providing the execu-
tion environment for the experiments performed in this chapter. Both machines
ran KURT-Linux 17 2.4.18, which provides a highly predictable experimenta-
tion platform. Two other single-CPU 2.53 Ghz Pentium-4 computers with the
same OS and memory con guration as the 2.8 Ghz machines were used to de-
ploy the test programs. All four machines were connected via switched 100 Mbps
Ethernet.
All test programs, libraries, and tools were based on TAO version 1.3.5 and
CIAO version 0.3.5 and compiled using GCC version 3.2 with no embedded
debug information, and with the highest level of optimization O3 . All compo-
nent implementations used in the test are implemented using the CCM session
component category, which provides the functionality most relevant to the DRE
systems. To remove spurious variability from the tests, all application processes
ran as root in the KURT-Linux real-time scheduling class, using the sched fifo
policy.
The basic interactions in the TAO real-time tests occurred between a test
object component provided by the server and a client invoking an operation
on the object component, thus requesting the server to perform an increment of
CPU-intensive work. Di erent tests were derived from di erent con gurations of
the server and client. For example, the number of objects components handled
by the server and their real-time constraints were varied. Clients were also con-
gured with di erent numbers of threads, each invoking operations in the server
with di erent workloads in di erent ways, e.g., at a xed rate vs. continuously.
CIAO real-time tests needed only two basic component types, called Con-
troller and Worker, to emulate the TAO real-time tests. A Worker component
provides a common interface that contained an operation that a client invoked
with an in parameter named work to specify the amount of work to perform.
The CIAO real-time tests only required one Worker component that performed
the speci ed amount of CPU computation when requested.
A Controller component uses a common interface to request that a connected
Worker component perform a unit of work. Several Controller implementations
were provided for the experiments. Each Controller implemented a particular
invocation strategy, such as continuous or rate-based at 25, 50, or 75 Hz rates .
A Controller component also supports an interface for starting and stopping
the test operation and outputting the statistic results observed in the controller.
Multiple Controllers thus acted as the source of execution threads invoking oper-
ations at the server component at di erent rates. These experiments were based
on the component design architecture found in modern avionics mission com-
puting systems, as described in Section 2.2.
3.2 Experiment 1: CIAO vs. TAO Invocation Performance
Experiment goal. This experiment evaluated the performance overhead to com-
ponentize DRE systems with the real-time features in CORBA 2.x enabled in the
TAO ORB and using CIAO's real-time component server environment described
in Section 2.1. Although TAO and CIAO can be con gured without support for
Real-time CORBA features, those features are needed by many types of DRE
systems, such as the example avionics application shown in Figure 2. We there-
fore focused on the performance of TAO and CIAO with Real-time CORBA
features enabled.
Experiment design. The implementation of this test in TAO consisted of a pair
of servants running on two test machines. The CIAO implementation of this test
used two component implementations, where one provides the target interface,
while the other component uses the same interface to invoke the benchmarking
operation. The CIAO test was built by using standard OMG tools to deploy the
two components to the same two machines used for the TAO test.
Experiment 1 measured and compared performance by invoking a simple
operation repeatedly in each test using either TAO or CIAO. We measured
the latency of each call and the number of calls made per second. We then
computed statistics to quantify the variability and average performance of each
implementation, i.e., in terms of average throughput and latency, maximum
latency of all calls, maximum latency of the lower 99 of the calls, and the
standard deviation in the latency of all calls.
Compared to TAO, an operation invocation on a CIAO component incurred
an additional virtual method call when a generated servant forwards the invo-
cation to the executor. Likewise, when a component invokes an operation on a
receptacle interface, it must rst retrieve the object reference stored in the con-
tainer before invoking the operation on it. The cost for both the virtual method
call and the retrieval of an object reference should ideally be predictable and
small. This experiment therefore selected an operation signature with a small
message payload, which made the overhead of CIAO stand out in comparison
and o ers an approximation of the worst-case CIAO performance di erence for
non-trivial operation invocations. Not including the length of other protocol
headers, an 8 byte message payload was sent over the network, which reduced
the time spent marshaling the data and sending the message over the network.
Experiment results. Figure 6 shows the throughput results measured in this
test, which were 8,420 and 8,107 calls sec for TAO and CIAO, respectively.
These results show that CIAO incurs a 3.7 reduction in average throughput
compared to TAO when CORBA 2.x real-time features are enabled in both
ORBs. The latency and variability results from this experiment are shown in
Figure 7. This gure shows the average latencies of TAO and CIAO calls were
118.9 sec and 122.9 sec, respectively, indicating an increase of 4 sec 3.4
in average latency. This result is consistent with the real-time ORB and CIAO
real-time component server throughput results, and shows that the overhead
imposed by CIAO's implementation when using CORBA 2.x real-time features
is relatively small.
The other graphs in Figure 7 show the standard deviations, 99 latency
bounds, and maximum measured latencies for TAO and CIAO with CORBA
2.x real-time features enabled. The standard deviations were again both small,
i.e., less than 2 sec for both TAO and CIAO real-time tests. TAO's measured
real-time latency had 99 of all samples under 123 sec, and 99 of the mea-
surements for CIAO fell within 127 sec. In both cases, 99 of all samples fell
within 4 sec above their average latencies. The maximum latency results for
TAO and CIAO tests were also comparable, at 182 sec for TAO and 219 sec
for CIAO.
Analysis of results. The results depicted in Figure 7 show that with real-time
features enabled the average- and worst-case performance for CIAO was slightly
worse than for TAO, but was reasonably close overall. The results demonstrate
10000
9000
8000 TAO + RT-ORB
8420 CIAO + RT
7000 Component
Throughput (calls/sec)
Server
8107
6000
5000
4000
3000
2000
1000
0
Fig. 6. Throughput Comparison between TAO and CIAO
that CIAO incurs only a small amount of overhead for supporting various CCM
mechanisms and interfaces. As the payload size increases, moreover, CIAO's
relative performance overhead in terms of throughput and latency will diminish
accordingly. In addition, the results show that CIAO does not greatly a ect jitter
relative to TAO. In general, these results demonstrate the suitability of CIAO
in the DRE application domain.
3.3 Experiment 2: Multiple Fixed-rate Controller Worker Pairs
Experiment goal. This experiment evaluates the behavior of a server handling
multiple worker threads over a range of workload without any real-time schedul-
ing, priority assignment or admission control at the middleware level.
Experiment design. This experiment consisted of three Controller Worker pairs
running concurrently. Each controller made requests to the worker at its respec-
tive xed rate of 25, 50, and 75 Hz i.e., at 25, 50, and 75 times per second,
respectively . The worker handles requests from each individual Controller by
doing the speci ed amount of work in separate threads. When invoking an op-
eration on the Worker, a Controller will block until the invocation returns from
the Worker. If a Worker can not handle the request at the given rate, therefore,
a Controller will not be able to invoke operations at its designed rate.
This experiment measures the rate at which each of the three Controllers
can make requests to the Worker components under di erent workloads. The
total work performed by all three worker threads eventually exceeds the amount
Mean 99%
140 140
123 127
122.9
118.9
120 120
100 100
80 80
( s)
( s)
60 60
40 40
20 20
0 0
Standard Deviation Maximum
2.0 250
219
182
1.58
1.38 200
1.5
150
( s)
( s)
1.0
100
0.5
50
0.0 0
Fig. 7. Latency Comparison between TAO and CIAO
of work the server can handle since the server's capability to perform work is
limited by the speed of its CPU. Since all three worker threads perform the
same amount of work, we expect one or more worker threads will not be able
to maintain the designated rate when the workload increases to the point where
the server can no longer complete the 150 requested invocations per second.
Experiment results. Figure 8 shows the measured results from the experiment.
This gure shows that when the workload increases initially from 20, all three
Controllers can achieve their designed rates. After the workload increases to
above 110, however, the 75 Hz Controller starts falling short of its target rate.
Similarly, above a workload of 130 repetitions the 50 Hz Controller also falls short
of its target rate. Above 210 repetitions all three Controllers fail to perform at
their designed rates of invocation.
Analysis of results. As expected, there is only a bounded amount of computation
power and the rate at which Worker components can handle requests eventually
decreases as workload increases. Indiscriminately failing to meet the invocation
rate of controllers, however, is often not acceptable for DRE systems. Instead,
certain tasks must meet their execution rates even if there are not enough com-
putation resources to enable all tasks to run at the speci ed rates.
25hz 50hz 75hz
80
70
60
Throughputs (calls/sec)
50
40
30
20
10
0
20
40
60
80
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
Work Load
Fig. 8. Achievable Rates vs. Workload
3.4 Experiment 3: Prioritized Workers using Threadpools with
Lanes
Experiment goal. This experiment evaluates the e ectiveness of composing real-
time behaviors into an application using the CORBA 2.x threadpools with lanes
strategy to manage the reservation of processing resources. In a thread pool
model without lanes, all threads in a thread pool have the same assigned priority
and the priority is changed to match the priority of a client making the request.
In the thread pool model with lanes, conversely, threads in a pool are divided
into lanes that are assigned di erent priorities. The priority of the threads does
not change once assigned.
Experiment design. This experiment allocates a single thread pool with multiple
lanes for di erent priorities. Although the CIAO deployment tools still create
multiple containers for host component of di erent priorities, they all share the
same thread pool using this approach. We rst assigned priorities according to an
increase rate, increase priority" IRIP strategy, also known as the Rate Mono-
tonic 18 assignment of priorities. The same experiment is also performed with
the anti-RMS increase rate, decrease priority" IRDP strategy, to demonstrate
CIAO's ability to con gure a wide range of strategies for priority assignment and
other real-time aspects.
Experiment results. The result of using threadpool with lanes with the IRIP
strategy is shown in Figure 9. This approach yields the same result as that of
using RMS with individual threadpools. Similarly, the result of composing the
anti-RMS real-time behaviors with threadpool with lanes in Figure 10 shows
that alternative priority assignments, such as IRDP, can be enforced e ectively
for thread pools with lanes.
25 Hz (Low Prio) 50 Hz (Mid Prio) 75 Hz (High Prio)
80
70
60
Throughputs (calls/sec)
50
40
30
20
10
0
20
40
60
80
0
0
0
0
0
0
0
0
0
0
0
0
10
12
14
16
18
20
22
24
26
28
30
32
Work Amounts
Fig. 9. IRIP with Threadpool Lanes
Analysis of results. The results in Figure 9 and 10 show that the composed real-
time behaviors successfully added the desired real-time aspects, i.e., prioritizing
task handling. In the experiments, real-time aspects were composed at di erent
stages, i.e., real-time CORBA policies and resources at the component assembly
stage and certain real-time ORB con gurations at the deployment stage. More-
over, the applied RTCAD le utilized CIAO's support for composing real-time
aspects at di erent granularities in an application, i.e., threadpool con gurations
at the per-ORB level and sets of real-time policies at the container level.
The bene t of the CIAO development paradigm is evident when compar-
ing the equivalent experiment programs used in TAO see 16 and those used
in CIAO that are described here. TAO's real-time experiments require com-
plex logic in both the client and server test programs and the collaboration of
complicated script to cover con gurations for all real-time behaviors performed.
In comparison, the CIAO-based tests are composed by using component imple-
mentations and XML de nitions to specify the test applications and real-time
behaviors, which is much easier to manage and maintain. Since XML de nitions
for key component properties are directly readable rather than being entangled
with application code systems built using the CIAO development paradigm are
also easier to analyze.
3.5 Summary of Results
The experiments described in this section show that CIAO adds only a small
amount of overhead, by comparing the performance of a CIAO application to an
equivalent one based on TAO. Moreover, the proportion of overhead is expected
to diminish with any increase in the size of an operation payload.
The current implementation of CIAO does, however, demand more secondary
storage and primary memory for running CIAO applications, due to the addi-
25 Hz (High Prio) 50 Hz (Mid Prio) 75 Hz (Low Prio)
80
70
60
Throughputs (calls/sec)
50
40
30
20
10
0
20
40
60
80
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
Work Amounts
Fig. 10. IRDP with Threadpool Lanes
tional code required to provide a common CCM runtime environment consisting
of containers and component servers. For simple test applications, this over-
head may be relatively large, though for large-scale DRE systems the additional
storage requirement is expected to be less signi cant compared to the storage
requirements of the applications themselves. The extra footprint and storage
space required by CIAO is also expected to lessen as implementation of CIAO
matures and when the dependencies on unused libraries are removed as future
work.
This section also showed that CIAO's runtime support for real-time applica-
tions imposes only a small amount of overhead to the overall performance and
does not adversely a ect predictability. Moreover, we have shown how CIAO's
real-time extensions particularly its RTCAD les that de ne the aspects i.e.,
resources and policies associated with end-to-end real-time behavior enable
the composition of real-time behaviors into an application exibly and e ec-
tively. Since developers can now integrate real-time behaviors throughout an
entire application end-to-end, these extensions make developing, maintaining,
and validating large-scale DRE systems easier.
The experiments performed in this work were modeled after existing TAO
real-time tests that validate TAO's CORBA 2.x Real-time CORBA features 19 .
Comparing CIAO's implementations to their TAO-based counterparts, one strik-
ing di erence is how easy it is to develop and modify CIAO-based tests. Develop-
ing TAO test programs requires writing new tests i.e., several speci c programs
are required to provide di erent test
ciao.dvi