Principles and Patterns of High-performance and Real-time Distributed Object Computing

(Tutorial at PODC97)

By Douglas C. Schmidt

Tutorial Abstract

Developing robust, extensible, reusable, and efficient distributed and real-time distributed applications is hard. Distributed Object Computing (DOC) technology is a promising means to alleviate key sources of inherent and accidental complexity in distributed applications. At the heart of DOC technology are Object Request Brokers (ORBs), which facilitate communication between local and remote objects. ORBs alleviate many tedious, error-prone, and non-portable aspects of creating and managing distributed applications and reusable service components. This enables researchers and developers to build and deploy complex applications rapidly and robustly, rather than wrestling endlessly with low-level infrastructure concerns. Widely used ORBs covered in this tutorial include CORBA, DCOM, and Java RMI.

Although DOC ORBs are well-suited for conventional request/response-style applications (such as network element management), they are not yet suitable for applications with stringent quality of service (QoS) requirements. In particular, existing DOC specifications and implementations lack key features (e.g., periodic processing and priority guarantees) and optimizations (e.g., latency reduction) required by QoS-sensitive applications in domains such as telecommunications and avionics. Therefore, in addition to providing an overview of existing DOC tools and techniques, this tutorial describes the principles, patterns, and performance optimizations that ORBs require to meet application QoS requirements, including:

The discussion will discuss recent research progress on real-time ORBs, focusing on real-time Object Adapters, which employ advanced concurrency patterns to support multiple real-time dispatching strategies (including real-time upcalls and real-time threads) and demultiplexing strategies that associates client requests with target objects in constant time. The tutorial will also describe the optimization principles that must be applied to improve the performance of real-time ORBs. These principles include optimizing for the common case; eliminating gratuitous waste; replacing general purpose methods with specialized, efficient ones; precomputing values; storing redundant state to speed up expensive operations; and passing information between layers.

Speaker Bio

Dr. Schmidt is a faculty member of the Computer Science and Radiology deparments at Washington University in St. Louis, Missouri, USA. His research focuses on design patterns, implementation, and experimental analysis of object-oriented techniques that facilitate the development of high-performance, real-time distributed object computing systems on parallel processing platforms running over high-speed ATM networks. Dr. Schmidt has served as the editor-in-chief of the C++ Report and is the chief architect and implementor of the ACE concurrent network programming framework and The ACE ORB (TAO), which is a high-performance, real-time CORBA ORB.

Maintained by