Applying optimization principle patterns to design real-time ORBs

  • Authors:
  • Irfan Pyarali;Carlos O'Ryan;Douglas Schmidt;Nanbor Wang;Vishal Kachroo;Aniruddha Gokhale

  • Affiliations:
  • Washington University, St. Louis, MO;Washington University, St. Louis, MO;Washington University, St. Louis, MO;Washington University, St. Louis, MO;Washington University, St. Louis, MO;Bell Labs, Lucent Technologies, Murray Hill, NJ

  • Venue:
  • COOTS'99 Proceedings of the 5th conference on USENIX Conference on Object-Oriented Technologies & Systems - Volume 5
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.