A high-performance end system architecture for real-time CORBA

Many application domains (e.g., avionics, telecommunications, and multimedia) require real-time guarantees from the underlying networks, operating systems, and middleware components to achieve their quality of service (QoS) requirements. In addition to providing end-to-end QoS guarantees, applications in these domains must be flexible and reusable. Requirements for flexibility and reusability motivate the use of object-oriented middleware like the Common Object Request Broker Architecture (CORBA). However, the performance of current CORBA implementations is not yet suited for hard real-time systems (e.g., avionics) and constrained latency systems (e.g., teleconferencing). This article describes the architectural features and optimizations required to develop real-time ORB end systems that can deliver end-to-end QoS guarantees to applications. While some operating systems, networks, and protocols now support real-time scheduling, they do not provide integrated solutions. The main thrust of this article is that advances in real-time distributed object computing can be achieved only by systematically pinpointing performance bottlenecks; optimizing the performance of networks, ORB end systems, common services, and applications; and simultaneously integrating techniques and tools that simplify application development.

[1]  Douglas C. Schmidt,et al.  Experience Using Design Patterns to Evolve Communication Software Across Diverse OS Platforms , 1995, ECOOP.

[2]  Philipp Hoschka,et al.  Automating Performance Optimisation by Heuristic Analysis of a Formal Specification , 1996, FORTE.

[3]  Douglas C. Schmidt,et al.  An object-oriented framework for dynamically configuring extensible distributed systems , 1994, Distributed Syst. Eng..

[4]  Dawson R. Engler,et al.  DPF: Fast, Flexible Message Demultiplexing Using Dynamic Code Generation , 1996, SIGCOMM.

[5]  Douglas C. Schmidt,et al.  Software Tools for Automating the Migration From DCE to CORBA , 1998 .

[6]  Samuel J. Leffler,et al.  The design and implementation of the 4.3 BSD Unix operating system , 1991, Addison-Wesley series in computer science.

[7]  Guru M. Parulkar,et al.  Bringing real-time scheduling theory and practice closer for multimedia computing , 1996, SIGMETRICS '96.

[8]  Douglas C. Schmidt,et al.  Reactor: an object behavioral pattern for concurrent event demultiplexing and event handler dispatching , 1995 .

[9]  Krithi Ramamritham,et al.  Distributed Scheduling of Tasks with Deadlines and Resource Requirements , 1989, IEEE Trans. Computers.

[10]  G. Parulkar,et al.  a I t P m : a Strategy for Integrating IP with ATM , 1995 .

[11]  Douglas C. Schmidt,et al.  A Family of Design Patterns for Applications-Level Gateways , 1996, Theory Pract. Object Syst..

[12]  Guru M. Parulkar,et al.  Efficient user-space protocol implementations with QoS guarantees using real-time upcalls , 1998, TNET.

[13]  P. Druschel,et al.  Network subsystem design , 1993, IEEE Network.

[14]  Douglas C. Schmidt,et al.  The performance of the CORBA dynamic invocation interface and dynamic skeleton interface over high-speed ATM networks , 1996, Proceedings of GLOBECOM'96. 1996 IEEE Global Telecommunications Conference.

[15]  Aniruddha S. Gokhale,et al.  Evaluating CORBA latency and scalability over high-speed ATM networks , 1997, Proceedings of 17th International Conference on Distributed Computing Systems.

[16]  Douglas C. Schmidt,et al.  Optimizing the Performance of the CORBA Internet Inter-ORB Protocol Over ATM , 1997 .

[17]  Guru M. Parulkar,et al.  Design of the APIC: A high performance ATM host-network interface chip , 1995, Proceedings of INFOCOM'95.

[18]  Douglas C. Schmidt A family of design patterns for flexibly configuring network services in distributed systems , 1996, Proceedings of International Conference on Configurable Distributed Systems.

[19]  James W. Layland,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[20]  Douglas C. Schmidt,et al.  Half-sync/half-async: an architectural pattern for efficient and well-structured concurrent I/O , 1996 .

[21]  Douglas C. Schmidt,et al.  aItPm: a strategy for integrating IP with ATM , 1995, SIGCOMM '95.

[22]  Douglas C. Schmidt,et al.  ASX: An Object-Oriented Framework for Developing Distributed Applications , 1994, C++ Conference.

[23]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[24]  Douglas C. Schmidt,et al.  Measuring the performance of parallel message-based process architectures , 1995, Proceedings of INFOCOM'95.

[25]  Larry L. Peterson,et al.  Increasing network throughput by integrating protocol layers , 1993, TNET.

[26]  Guru M. Parulkar,et al.  The APIC approach to high performance network interface design: protected DMA and other techniques , 1997, Proceedings of INFOCOM '97.

[27]  Douglas C. Schmidt,et al.  An OO Encapsulation of Lightweight OS Concurrency Mechanisms in the ACE Toolkit , 1995 .

[28]  Silvano Maffeis,et al.  Adding Group Communication and Fault-Tolerance to CORBA , 1995, COOTS.

[29]  Keith Bostic,et al.  The design and implementa-tion of the 4.4BSD operating system , 1996 .

[30]  Douglas C. Schmidt,et al.  ADAPTIVE: a flexible and adaptive transport system architecture to support lightweight protocols for multimedia applications on high-speed networks , 1992, Proceedings of the First International Symposium on High-Performance Distributed Computing. (HPDC-1).

[31]  Douglas C. Schmidt,et al.  Object-oriented framework for high-performance electronic medical imaging , 1996, Electronic Imaging.

[32]  Douglas C. Schmidt,et al.  Design and Performance of an Object-Oriented Framework for High-Speed Electronic Medical Imaging , 1996, Comput. Syst..

[33]  Douglas C. Schmidt,et al.  Acceptor and Connector Design Patterns for Initializing Communication Services , 1997 .

[34]  Guru M. Parulkar,et al.  Design of Universal Continuous Media I/O , 1995, NOSSDAV.

[35]  Jong-Deok Choi,et al.  Automatic construction of sparse data flow evaluation graphs , 1991, POPL '91.

[36]  Steven McCanne,et al.  The BSD Packet Filter: A New Architecture for User-level Packet Capture , 1993, USENIX Winter.

[37]  Douglas C. Schmidt,et al.  Transport System Architecture Services for High-Performance Communications Systems , 1993, IEEE J. Sel. Areas Commun..

[38]  David D. Clark,et al.  Architectural considerations for a new generation of protocols , 1990, SIGCOMM '90.

[39]  Douglas C. Schmidt Scalable High-Performance Event Filtering for Dynamic Multi-point Applications , 1998 .

[40]  Douglas C. Schmidt,et al.  Object-Oriented Components for High-speed Network Programming , 1995, COOTS.

[41]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[42]  Prashant Jain,et al.  Service Configurator: A Pattern for Dynamic Configuration of Services , 1997, COOTS.

[43]  James O. Coplien,et al.  Pattern languages of program design , 1995 .

[44]  Guru M. Parulkar,et al.  Real-time Upcalls: A Mechanism to Provide Real-time Processing Guarantees , 1995 .

[45]  Larry L. Peterson,et al.  A language-based approach to protocol implementation , 1993, TNET.

[46]  Mark Klein,et al.  A practitioner's handbook for real-time analysis - guide to rate monotonic analysis for real-time systems , 1993, The Kluwer international series in engineering and computer science.

[47]  Aniruddha S. Gokhale,et al.  Measuring the Performance of Communication Middleware on High-Speed Networks , 1996, SIGCOMM.

[48]  Martina Zitterbart,et al.  Language support for flexible, application-tailored protocol configuration , 1993, 1993 18th Conference on Local Computer Networks.

[49]  Steve Vinoski,et al.  CORBA: integrating diverse applications within distributed heterogeneous environments , 1997, IEEE Commun. Mag..

[50]  Douglas C. Schmidt,et al.  Active object: an object behavioral pattern for concurrent programming , 1996 .

[51]  David L. Levine,et al.  The Design and Performance of a Hard Real-Time Object Event Service , 1997, OOPSLA.