Applying Patterns to Design a High-performance, Real-time Pluggable Protocols Framework for OO Communication Middleware

To be an effective platform for performance-sensitive real-time and embedded applications, off-the-shelf CORBA middleware must preserve communication-layer quality of service (QoS) properties to applications end-to-end. However, the standard CORBA’s GIOP/IIOP interoperability protocols are not well suited for applications that cannot tolerate the message footprint size, latency, and jitter associated with general-purpose messaging and transport protocols. It is essential, therefore, to develop standard pluggable protocols frameworks that allow custom messaging and transport protocols to be configured flexibly and used transparently by applications. This paper provides three contributions to research on pluggable protocols frameworks for performance-sensitive OO communication middleware. First, we outline the key design challenges faced by pluggable protocols developers. Second, we describe how TAO, our high-performance, real-time CORBA-compliant ORB, addresses these challenges by applying design patterns in its pluggable protocols framework. Third, we present the results of benchmarks that pinpoint the impact of TAO’s patterns-oriented OO design on its end-toend efficiency, predictability, and scalability. Our results demonstrate how applying optimizations and patterns to OO communication middleware can yield highly flexible/reusable designs and highly efficient/predictable implementations. In particular, the overall round-trip latency of a TAO two-way method invocation using the standard interORB protocol and using a commercial, off-the-self Pentium II Xeon 400 MHz workstation running in loopback mode is 125 secs. The ORB middleware accounts for approximately 48% or 60 secs of the total round-trip latency. These results illustrate that (1) OO communication middleware performance This work was supported in part by Boeing, DARPA contract 97

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

[2]  Douglas C. Schmidt,et al.  Optimizing a corba iiop protocol engine for minimal footprint multimedia systems , 1998 .

[3]  Larry L. Peterson,et al.  The x-Kernel: An Architecture for Implementing Network Protocols , 1991, IEEE Trans. Software Eng..

[4]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[5]  Douglas C. Schmidt,et al.  External Polymorphism An Object Structural Pattern for Transparently Extending C++ Concrete Data Types , 1998 .

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

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

[8]  Douglas C. Schmidt,et al.  The design and performance of a real-time CORBA event service , 1997, OOPSLA '97.

[9]  Thorsten von Eicken,et al.  U-Net: a user-level network interface for parallel and distributed computing , 1995, SOSP.

[10]  Douglas C. Schmidt,et al.  ADAPTIVE: A dynamically assembled protocol transformation, integration and evaluation environment , 1993, Concurr. Pract. Exp..

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

[12]  Scott Pakin,et al.  Efficient layering for high speed communication: Fast Messages 2.x , 1998, Proceedings. The Seventh International Symposium on High Performance Distributed Computing (Cat. No.98TB100244).

[13]  Dennis M. Ritchie,et al.  A stream input-output system , 1990 .

[14]  Douglas C. Schmidt,et al.  Applying patterns to develop extensible ORB middleware , 1999, IEEE Commun. Mag..

[15]  Henning Schulzrinne,et al.  RTP: A Transport Protocol for Real-Time Applications , 1996, RFC.

[16]  Calton Pu,et al.  Harnessing user-level networking architectures for distributed object computing over high-speed networks , 1998 .

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

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

[19]  D. Schmidt,et al.  The Design and Performance of RIO A Real-time I / O Subsystem for ORB Endsystems , 1999 .

[20]  Douglas C. Schmidt,et al.  The design and performance of a real-time I/O subsystem , 1999, Proceedings of the Fifth IEEE Real-Time Technology and Applications Symposium.

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

[22]  Douglas C. Schmidt,et al.  The design and performance of a CORBA audio/video streaming service , 1999, Proceedings of the 32nd Annual Hawaii International Conference on Systems Sciences. 1999. HICSS-32. Abstracts and CD-ROM of Full Papers.

[23]  Steve Vinoski,et al.  Advanced CORBA® Programming with C++ , 1999 .

[24]  Ralph Johnson,et al.  A framework for network protocol software , 1995, OOPSLA.

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