Applying patterns to develop a pluggable protocols framework for ORB middleware

To be an effective platform for performance-sensitive applications, off-the-shelf CORBA middleware must preserve the communication-layer quality of service (QoS) properties of applications end-to-end. However, the standard CORBA GIOP/IIOP interoperability protocols are not well-suited for applications with stringent message footprint size, latency, and jitter requirements. It is essential, therefore, to develop standard pluggable protocols frameworks that allow custom messaging and transport protocols to be configured flexibly and used transparantly by applications. This chapter provides three contributions to the study of pluggable protocols frameworks for performance-sensitive CORBA middleware. First, we outline the key design challenges faced by pluggable protocols developers. Second, we describe how we resolved these challenges by developing a plug-gable protocols framework for TAO, which is our high-performance, real-time CORBA-compliant ORB. Third, we present the results of benchmarks that pinpoint the impact of TAO's pluggable protocols framework on its end-to-end efficiency and predictability. Our results demonstrate how the application of optimizations and patterns to CORBA middleware can yield both highly flexible/reusable designs and highly efficient/predictable implementations. These results illustrate that (1) CORBA middleware performance is largely an implementation detail and (2) the next generation of optimized, standards-based CORBA middleware can replace many ad hoc and proprietary solut

[1]  Douglas C. Schmidt,et al.  Evaluating Architectures for Multi-threaded CORBA Object Request Brokers , 1998 .

[2]  Douglas C. Schmidt,et al.  The design and performance of a scable ORB architecture for COBRA asynchronous messaging , 2000 .

[3]  Aniruddha S. Gokhale,et al.  Using principle patterns to optimize real-time ORBs , 2000, IEEE Concurr..

[4]  Douglas C. Schmidt Evaluating architectures for multithreaded object request brokers , 1998, CACM.

[5]  Douglas C. Schmidt,et al.  Applying a pattern language to develop extensible ORB middleware , 2001 .

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

[7]  D. Schmidt,et al.  Applying Design Patterns and Frameworks to Develop Object-Oriented Communication Software , 1997 .

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

[9]  Douglas C. Schmidt,et al.  A pattern language for efficient, predictable, scalable, and flexible dispatching mechanisms for distributed object computing middleware , 2000, Proceedings Third IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2000) (Cat. No. PR00607).

[10]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

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

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

[13]  Aniruddha S. Gokhale,et al.  Applying Patterns to Improve the Performance of Fault Tolerant CORBA , 2000, HiPC.

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

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

[16]  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).

[17]  Douglas C. Schmidt,et al.  The design of the TAO real-time object request broker , 1998, Comput. Commun..

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

[19]  Douglas C. Schmidt,et al.  Applying reflective middleware techniques to optimize a QoS-enabled CORBA component model implementation , 2000, Proceedings 24th Annual International Computer Software and Applications Conference. COMPSAC2000.

[20]  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.

[21]  Aniruddha S. Gokhale,et al.  DOORS: towards high-performance fault tolerant CORBA , 2000, Proceedings DOA'00. International Symposium on Distributed Objects and Applications.

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

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

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

[25]  Luiz Fernando Capretz,et al.  OBJECT-ORIENTED CONCEPTS , 1996 .

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

[27]  B. F. Castro Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael. Pattern-oriented software architecture: a system of patterns, John Wiley & Sons Ltd, 1996 , 1997 .

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

[29]  A. Watson,et al.  OMG (Object Management Group) architecture and CORBA (common object request broker architecture) specification , 2002 .

[30]  Douglas C. Schmidt,et al.  Applying a scalable CORBA event service to large-scale distributed interactive simulations , 1999, Proceedings. Fifth International Workshop on Object-Oriented Real-Time Dependable Systems.

[31]  Douglas C. Schmidt,et al.  Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects , 2013 .

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

[33]  Massachusett Framingham,et al.  The Common Object Request Broker: Architecture and Specification Version 3 , 2003 .

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

[35]  Douglas C. Schmidt,et al.  Evaluating policies and mechanisms for supporting embedded, real-time applications with CORBA 3.0 , 2000, Proceedings Sixth IEEE Real-Time Technology and Applications Symposium. RTAS 2000.

[36]  Douglas C. Schmidt,et al.  The Design and Performance of a Scalable ORB Architecture for CORBA Asynchronous Messaging , 2000, Middleware.

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

[38]  Aniruddha S. Gokhale,et al.  Optimizing a CORBA Internet inter-ORB protocol (IIOP) engine for minimal footprint embedded multimedia systems , 1999, IEEE J. Sel. Areas Commun..

[39]  Fabio Kon,et al.  Supporting Automatic Configuration of Component-Based Distributed Systems , 1999, COOTS.