A Survey of Adaptive Middleware

Developing distributed applications is a difficult task due to three major problems: the complexity of programming interprocess communication, the need to support services across heterogeneous platforms, and the need to adapt to changing conditions. Traditional middleware (such as CORBA, DCOM, and Java RMI) addresses the first two problems to some extent through the use of a “black-box” approach, such as encapsulation in object-oriented programming. However, traditional middleware is limited in its ability to support adaptation. To address all the three problems, adaptive middleware has evolved from traditional middleware. In addition to the object-oriented programming paradigm, adaptive middleware employs several other key technologies including computational reflection, component-based design, aspect-oriented programming, and software design patterns. This survey paper proposes a three-dimensional taxonomy that categorizes different adaptive middleware approaches. Examples of each category are described and compared in detail. Suggestions for future research are also provided.

[1]  Yasuhiko Yokote Kerner Structuring of Object-Oriented Operating Systems: The Apertos Approach , 1993, ISOTAS.

[2]  Shigeru Chiba A study of a Compile-time Metaobject Protocol , 1996 .

[3]  Douglas C. Schmidt,et al.  Towards highly configurable real-time object request brokers , 2002, Proceedings Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISIRC 2002.

[4]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[5]  Calton Pu,et al.  Infopipes for composing distributed information flows , 2001, M3W.

[6]  Rachid Guerraoui,et al.  Towards Reliable CORBA: Integration vs. Service Approach , 1997 .

[7]  Louise E. Moser,et al.  The Totem system , 1995, Twenty-Fifth International Symposium on Fault-Tolerant Computing. Digest of Papers.

[8]  Len Gilman,et al.  Distributed Computing with IBM? MQSeries , 1996 .

[9]  Gregory T. Sullivan Aspect-oriented programming using reflection and metaobject protocols , 2001, CACM.

[10]  Satoshi Matsuoka,et al.  Object-Oriented Concurrent Reflective Languages can be Implemented Efficiently , 1992, OOPSLA.

[11]  Douglas C. Schmidt,et al.  Middleware for real-time and embedded systems , 2002, CACM.

[12]  Vikram S. Adve,et al.  Language and Compiler Support for Adaptive Distributed Applications , 2001, LCTES/OM.

[13]  Gordon S. Blair,et al.  An Efficient Component Model for the Construction of Adaptive Middleware , 2001, Middleware.

[14]  Wolfgang Emmerich,et al.  Software engineering and middleware: a roadmap , 2000, ICSE '00.

[15]  Douglas C. Schmidt,et al.  Evaluating meta-programming mechanisms for ORB middleware , 2001 .

[16]  Pattie Maes,et al.  Concepts and experiments in computational reflection , 1987, OOPSLA '87.

[17]  Rainer Koster,et al.  A middleware platform for information flows , 2002 .

[18]  Vinny Cahill,et al.  Supporting Unanticipated Dynamic Adaptation of Application Behaviour , 2002, ECOOP.

[19]  Gregor Kiczales,et al.  Beyond the Black Box: Open Implementation , 1996, IEEE Softw..

[20]  Seyed Masoud Sadjadi,et al.  Architecture and operation of an adaptable communication substrate , 2003, The Ninth IEEE Workshop on Future Trends of Distributed Computing Systems, 2003. FTDCS 2003. Proceedings..

[21]  Gordon S. Blair,et al.  Adaptive middleware for mobile multimedia applications , 1997, Proceedings of 7th International Workshop on Network and Operating System Support for Digital Audio and Video (NOSSDAV '97).

[22]  Karl Lieberherr,et al.  Adaptive Object-Oriented Software , 1995 .

[23]  Nalini Venkatasubramanian Safe 'composability' of middleware services , 2002, CACM.

[24]  Robbert van Renesse,et al.  Building Adaptive Systems Using Ensemble , 1998, Softw. Pract. Exp..

[25]  John A. Zinky,et al.  Architectural Support for Quality of Service for CORBA Objects , 1997, Theory Pract. Object Syst..

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

[27]  Akinori Yonezawa,et al.  Reflection in an object-oriented concurrent language , 1988, OOPSLA '88.

[28]  Douglas B. Orr,et al.  Application of meta-protocols to improve OS services , 1995, Proceedings 5th Workshop on Hot Topics in Operating Systems (HotOS-V).

[29]  Robbert van Renesse,et al.  Horus: a flexible group communication system , 1996, CACM.

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

[31]  Barton P. Miller,et al.  Reliable network connections , 2002, MobiCom '02.

[32]  ChuHao-hua,et al.  QoS-aware resource management for distributed multimedia applications , 1998 .

[33]  Roy Friedman,et al.  Client-side enhancements using portable interceptors , 2001, Proceedings Sixth International Workshop on Object-Oriented Real-Time Dependable Systems.

[34]  Kelvin Nilsen,et al.  Issues in the Design and Implementation of Real-Time Java , 1998 .

[35]  Fabio Kon,et al.  Monitoring, Security, and Dynamic Configuration with the dynamicTAO Reflective ORB , 2000, Middleware.

[36]  Andrew T. Campbell,et al.  Managing complexity: middleware explained , 1999 .

[37]  D. Schmidt,et al.  Virtual Component A Design Pattern for Memory-Constrained Embedded Applications , 2002 .

[38]  Roberto Baldoni,et al.  Active software replication through a three-tier approach , 2002, 21st IEEE Symposium on Reliable Distributed Systems, 2002. Proceedings..

[39]  Robbert van Renesse,et al.  Reliable Distributed Computing with the Isis Toolkit , 1994 .

[40]  Douglas C. Schmidt,et al.  The ADAPTIVE Communication Environment An Object-Oriented Network Programming Toolkit for Developing Communication Software , 1993 .

[41]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[42]  Priya Narasimhan,et al.  The Eternal system: an architecture for enterprise applications , 1999, Proceedings Third International Enterprise Distributed Object Computing. Conference (Cat. No.99EX366).

[43]  Roberto Baldoni,et al.  CORBA request portable interceptors: a performance analysis , 2001, Proceedings 3rd International Symposium on Distributed Objects and Applications.

[44]  Roy H. Campbell,et al.  Quarterware for middleware , 1998, Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183).

[45]  Mario Tokoro,et al.  Al-1/d: a distributed programming system with multi-model reflection framework , 1992 .

[46]  Matti A. Hiltunen,et al.  Coyote: a system for constructing fine-grain configurable communication services , 1998, TOCS.

[47]  Gordon S. Blair,et al.  Supporting adaptive multimedia applications through open bindings , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

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

[49]  William H. Sanders,et al.  AQuA: an adaptive architecture that provides dependable distributed objects , 1998, Proceedings Seventeenth IEEE Symposium on Reliable Distributed Systems (Cat. No.98CB36281).

[50]  Fabio Kon,et al.  Reflective Middleware: From Your Desk to Your Hand , 2001, IEEE Distributed Syst. Online.

[51]  Gordon S. Blair,et al.  The case for reflective middleware , 2002, CACM.

[52]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[53]  Calton Pu,et al.  Thread transparency in information flow middleware , 2001, Softw. Pract. Exp..

[54]  Michael Atighetchi,et al.  Packaging quality of service control behaviors for reuse , 2002, Proceedings Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISIRC 2002.

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

[56]  Walter Cazzola,et al.  mChaRM: a Reflective Middleware for Communication-Based Reflection , 2000 .

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

[58]  Jean-Charles Fabre,et al.  A Metaobject Architecture for Fault-Tolerant Distributed Systems: The FRIENDS Approach , 1998, IEEE Trans. Computers.

[59]  Christian R. Becker Kurt Geihs MAQS - Management for Adaptive QoS-enabled Services , 1997 .

[60]  Brian Cantwell Smith,et al.  Reflection and semantics in LISP , 1984, POPL.

[61]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[62]  Lodewijk Bergmans,et al.  Composing crosscutting concerns using composition filters , 2001, CACM.

[63]  Charles Simonyi,et al.  The Death of Computer Languages, The Birth of Intentional Programming , 1995 .

[64]  Ossama Othman The Design, Optimization, and Performance of an Adaptive Middlware Load Balancing Service , 2002 .

[65]  M. van Steen,et al.  The Architectural Design of Globe: A Wide-Area Distributed System , 1997 .

[66]  Ramana Rao,et al.  Implementational Reflection in Silica , 1991, ECOOP.

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

[68]  Thomas Ledoux,et al.  - 1-TWO-STEP WEAVING WITH REFLECTION USING ASPECTJ , 2001 .

[69]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture , 1996 .

[70]  Karl Lieberherr,et al.  Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns , 1995 .

[71]  Priya Narasimhan,et al.  The Interception Approach to Reliable Distributed CORBA Objects , 1997, COOTS.

[72]  Seyed Masoud Sadjadi,et al.  An aspect-oriented approach to dynamic adaptation , 2002, WOSS '02.

[73]  Carl L. Hall Building client/server applications using TUXEDO , 1996 .

[74]  Fabio Kon,et al.  LegORB and Ubiquitous CORBA , 2000 .

[75]  D. C. Sharp,et al.  Reducing avionics software cost through component based product line development , 1998, 17th DASC. AIAA/IEEE/SAE. Digital Avionics Systems Conference. Proceedings (Cat. No.98CH36267).

[76]  Eugene S. Hudders CICS: A Guide to Internal Structure , 1994 .

[77]  Franz J. Hauck,et al.  Support for Mobility and Replication in the AspectIX Architecture , 1998, ECOOP Workshops.

[78]  Chris J. Scheiman,et al.  Extending the operating system at the user level: the Ufo global file system , 1997 .