USENIX Conference Policies
Design Considerations and Performance Optimizations for Real-time ORBs
First-generation CORBA middleware was reasonably successful at meeting the demands of request/response applications with best-effort quality of service (QoS) requirements. Supporting applications with more stringent QoS requirements poses new challenges for next-generation real-time CORBA middleware, however. This paper provides three contributions to the design and optimization of real-time CORBA middleware. First, we outline the challenges faced by real-time ORBs implementers, focusing on optimization principle patterns that can be applied to CORBA's Object Adapter and ORB Core. Second, we describe how TAO, our real-time CORBA implementation, addresses these challenges and applies key ORB optimization principle patterns. Third, we present the results of empirical benchmarks that compare the impact of TAO's design strategies on ORB efficiency, predictability, and scalability.
Our findings indicate that ORBs must be highly configurable and adaptable to meet the QoS requirements for a wide range of real-time applications. In addition, we show how TAO can be configured to perform predictably and scalably, which is essential to support real-time applications. A key result of our work is to demonstrate that the ability of CORBA ORBs to support real-time systems is mostly an implementation detail. Thus, relatively few changes are required to the standard CORBA reference model and programming API to support real-time applications.
author = {Aniruddha Gokhale and Irfan Pyarali and Carlos O{\textquoteright}Ryan and Douglas Schmidt and Vishal Kachroo and Alexander Arulanthu and Nanbor Wang},
title = {Design Considerations and Performance Optimizations for Real-time {ORBs}},
booktitle = {5th Conference on Object-Oriented Technologies and Systems (COOTS 99)},
year = {1999},
address = {San Diego, CA},
url = {https://www.usenix.org/conference/coots-99/design-considerations-and-performance-optimizations-real-time-orbs},
publisher = {USENIX Association},
month = may
}