Combining meta information management and reflection in an architecture for configurable and reconfigurable middleware

The last decade has seen the emergence and popularisation of middleware technologies, such as the OMG’s Common Object Request Broker Architecture (CORBA), Microsoft’s Distributed Component Object Model (DCOM) and Sun’s Java RMI. These technologies have profoundly changed the way distributed applications are developed. In particular, they enable the large-scale deployment of applications in distributed heterogeneous environments, by making transparent the distribution aspects and enabling the developers to focus on application concerns. Importantly, the dissemination of distributed systems technology has also stimulated the emergence of new application areas, such as distributed multimedia and mobile applications. However, due to the dynamic nature of these new applications, current middleware technologies have proven inadequate. The major reason for this is the currently dominating “black-box” philosophy for middleware design, which precludes the flexible configuration and adaptation of a platform in order to suit the particular and evolving requirements of different applications. This thesis proposes a solution to these limitations by adopting an open-ended approach to the design of middleware platforms. To this end, a middleware architecture is developed which combines the use of meta-information management techniques, for the definition of customised platform configurations, with objectoriented reflection, which allows the dynamic adaptation of the platform. The integration of the two techniques is based on a well-defined meta-model, which prescribes, in a unified way, the structure and contents of the meta-information handled by both the meta-information management facility and the reflection

[1]  Graham N. C. Kirby,et al.  Using Reflection to Support Type-Safe Evolution in Persistent Systems , 1996 .

[2]  Twittie Senivongse Evolution transparency for distributed service types , 1997 .

[3]  Guido Rossum,et al.  Extending and embedding the python interpreter , 1995 .

[4]  Robert J. Stroud Transparency and reflection in distributed systems , 1993, OPSR.

[5]  Nick Roussopoulos,et al.  Metadata Management , 1986, Computer.

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

[7]  Craig Thompson Workshop on compositional software architectures: workshop report , 1998, SOEN.

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

[9]  Frank Schubert A Reflective Architecture for an Adaptable Object-Oriented Operating System Based on C++ , 1997, ECOOP Workshops.

[10]  Pierre Cointe Metaclasses are first class: The ObjVlisp Model , 1987, OOPSLA 1987.

[11]  Brian Henderson-Sellers,et al.  To meta or not to meta , 2000 .

[12]  Warren Smith,et al.  A directory service for configuring high-performance distributed computations , 1997, Proceedings. The Sixth IEEE International Symposium on High Performance Distributed Computing (Cat. No.97TB100183).

[13]  Fabio Kon,et al.  2K: A Reflective, Component-Based Operating System for Rapidly Changing Environments , 1998, ECOOP Workshops.

[14]  E. Carrapatoso,et al.  A reflective component-based and architecture aware framework to manage architecture composition , 2001, Proceedings 3rd International Symposium on Distributed Objects and Applications.

[15]  G.S. Blair,et al.  Integrating meta-information management and reflection in middleware , 2000, Proceedings DOA'00. International Symposium on Distributed Objects and Applications.

[16]  Gordon S. Blair,et al.  The Role of Reflective Middleware in Supporting the Engineering of Dynamic Applications , 1999, Reflection and Software Engineering.

[17]  Keith Cheverst,et al.  Reflection: A Solution For Highly Adaptive Mobile Systems , 2000 .

[18]  Shih-Fu Chang,et al.  Overview of the MPEG-7 standard , 2001, IEEE Trans. Circuits Syst. Video Technol..

[19]  Daniel G. Bobrow,et al.  CLOS: integrating object-oriented and functional programming , 1991, CACM.

[20]  Morris Sloman,et al.  Interactive configuration management for distributed object systems , 1997, Proceedings First International Enterprise Distributed Object Computing Workshop.

[21]  Jean Bézivin,et al.  Towards a True Reflective Modeling Scheme , 1999, Reflection and Software Engineering.

[22]  Brian Foote,et al.  Reflective facilities in Smalltalk-80 , 1989, OOPSLA 1989.

[23]  Philip A. Bernstein,et al.  Microsoft Repository Version 2 and the Open Information Model , 1999, Inf. Syst..

[24]  Wolfgang Emmerich,et al.  Engineering Distributed Objects , 2000, Lecture Notes in Computer Science.

[25]  Vinny Cahill,et al.  Meta-Object Protocols for C++: The Iguana Approach. , 1996 .

[26]  Peter F. Linington,et al.  Types, invariants, and epochs: specifying changes in RM-ODP and ODP information language , 1997 .

[27]  Jadwiga Indulska,et al.  Meta-Meta is better-better! , 1997, DAIS.

[28]  Simon M. Kaplan,et al.  Open, distributed coordination with finesse , 1998, SAC '98.

[29]  Brian Cantwell Smith,et al.  The implementation of procedurally reflective languages , 1984, LFP '84.

[30]  Shigeru Chiba,et al.  A metaobject protocol for fault-tolerant CORBA applications , 1998, Proceedings Seventeenth IEEE Symposium on Reliable Distributed Systems (Cat. No.98CB36281).

[31]  S. S. Iyengar A universal repository architecture using the OMG UML and MOF , 1998, Proceedings Second International Enterprise Distributed Object Computing (Cat. No.98EX244).

[32]  Tom Fitzpatrick Open component-oriented multimedia middleware for adaptive distributed applications , 2000 .

[33]  Thomas Ledoux Adaptability in Mobile Agent Systems using Reflection , 2000 .

[34]  D. Stemple,et al.  Integrating Reflection, Strong Typing and Static Checking , 1997 .

[35]  Michael Golm,et al.  MetaJava - A Platform for Adaptable Operating-System Mechanisms , 1997, ECOOP Workshops.

[36]  Jadwiga Indulska,et al.  Types and their management in open distributed systems , 1997, Distributed Syst. Eng..

[37]  J. V. Gurp,et al.  Separation of Concerns : A Case Study , 2001 .

[38]  G. vanRossum Extending and embedding the Python interpreter , 1995 .

[39]  Jadwiga Indulska,et al.  A Type Management System for an ODP Trader , 1993, Open Distributed Processing.

[40]  Gordon S. Blair,et al.  Supporting dynamic QoS management functions in a reflective middleware platform , 2000, IEE Proc. Softw..

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

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

[43]  Jean-Bernard Stefani,et al.  Open Distributed Processing and Multimedia , 1997 .

[44]  F. Tom Open Component-Oriented Multimedia Middleware for Adaptive Distributed Applications , 2000 .

[45]  Gordon S. Blair,et al.  Experiments with an architecture for reflective middleware , 2000, Integr. Comput. Aided Eng..

[46]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[47]  Claudia Pons,et al.  Dimensions and dichotomy in metamodeling , 1998, FM-Trends 1998.

[48]  Valérie Issarny,et al.  The Role of Software Architecture in Constraining Adaptation in Component-Based Middleware Platforms , 2000, Middleware.

[49]  Brian Foote Object-Oriented Reflective Metalevel Architectures: Pyrite or Panacea? A Position Paper for the ECOOP/OOPSLA '90 Workshop on Reflection and Metalevel Architectures , 1990 .

[50]  Ian Welch,et al.  From Dalang to Kava - The Evolution of a Reflective Java Extension , 1999, Reflection.

[51]  Twittie Senivongse,et al.  A model for evolution of services in distributed systems , 1996 .

[52]  Gordon S. Blair,et al.  Configurable & Reconfigurable Group Services in a Component Based Middleware Environment , 2000 .

[53]  Geoff Coulson,et al.  The Design of a Flexible Communications Framework for Next-Generation Middleware , 2000, DOA.

[54]  Yasuhiko Yokote,et al.  Using Meta-Objects to Support Optimisation in the Apertos Operating System , 1995, COOTS.

[55]  Mehmet Aksit,et al.  Aspects and Crosscutting in Layered Middleware Systems , 2000 .

[56]  Shigeru Chiba,et al.  A metaobject protocol for C++ , 1995, OOPSLA.

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

[58]  Eric G. Manning,et al.  Designing meta-interfaces for object-oriented operating systems , 1997, 1997 IEEE Pacific Rim Conference on Communications, Computers and Signal Processing, PACRIM. 10 Years Networking the Pacific Rim, 1987-1997.

[59]  Tatsuo Nakajima,et al.  An approach for constructing mobile applications using service proxies , 1996, Proceedings of 16th International Conference on Distributed Computing Systems.

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

[61]  Douglas C. Schmidt,et al.  Usenix Conference on Object-oriented Technologies and Systems (coots '01) the Design and Performance of Meta-programming Mechanisms for Object Request Broker Middleware , 2022 .

[62]  Mark Lutz,et al.  Programming Python , 1996 .

[63]  Franz J. Hauck,et al.  AspectIX An Aspect-Oriented and CORBACompliant ORB Architecture , 1998 .

[64]  Peyman Oreizy,et al.  On the role of software architectures in runtime system reconfiguration , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

[65]  Yasuhiko Yokote,et al.  The Apertos reflective operating system: the concept and its implementation , 1992, OOPSLA '92.

[66]  Winfried Lamersdorf,et al.  Type management: A key to software reuse in open distributed systems , 1999 .

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

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

[69]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[70]  Jacques Ferber,et al.  Computational reflection in class based object-oriented languages , 1989, OOPSLA '89.

[71]  George Coulouris,et al.  Distributed systems - concepts and design , 1988 .

[72]  Matthias Jarke,et al.  On meta-modeling , 1998 .

[73]  Vinny Cahill,et al.  Making meta-object protocols practical for operating systems , 1995, Proceedings of International Workshop on Object Orientation in Operating Systems.

[74]  Klemens Böhm,et al.  Metadata for multimedia documents , 1994, SGMD.

[75]  Aart van Halteren,et al.  Using Message Reflection in a Management Architecture for CORBA , 2000, DSOM.

[76]  Jeff McAffer Meta-level Programming with CodA , 1995, ECOOP.

[77]  Peyman Oreizy,et al.  On the role of software architectures in runtime system reconfiguration , 1998, IEE Proc. Softw..

[78]  J. McAffer,et al.  Meta-level architecture support for distributed objects , 1995, Proceedings of International Workshop on Object Orientation in Operating Systems.

[79]  Terence R. Smith,et al.  The Meta-Information Environment of Digital Libraries , 1996, D Lib Mag..

[80]  Gregor Kiczales,et al.  The need for customizable operating systems , 1993, Proceedings of IEEE 4th Workshop on Workstation Operating Systems. WWOS-III.

[81]  Colin Atkinson,et al.  Meta-level Independent Modelling , 2000 .

[82]  Peter F. Linington,et al.  RIVUS: A Stream Template Language for Capturing Multimedia Requirements , 1995, COST 237 Workshop.

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

[84]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[85]  Andreas Paepcke,et al.  Open Implementations and Metaobject Protocols , 1994 .

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

[87]  Fumio Teraoka,et al.  A Reflective Architecture for an Object-Oriented Distributed Operating System , 1989, ECOOP.

[88]  Yasuhiko Yokote,et al.  Adaptive Operating System Design using Reflection , 1995, OBPDC.

[89]  Axel Uhl,et al.  Model-Driven Architecture , 2002, OOIS Workshops.

[90]  Shigeru Chiba,et al.  Load-Time Structural Reflection in Java , 2000, ECOOP.

[91]  Geoff Coulson,et al.  What is Reflective Middleware , 2001 .

[92]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

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

[94]  Shigeru Chiba,et al.  Reflection and Meta-level Architectures: State of the Art and Future Trends , 2000, ECOOP Workshops.

[95]  Morris Sloman,et al.  Configuration management for distributed software services , 1995, Integrated Network Management.

[96]  Pierre Cointe Reflective languages and metalevel architectures , 1996, CSUR.

[97]  Lea Kutvonen Management of Application Federations , 1997, DAIS.

[98]  J. Stefani,et al.  Submission to the Tina`96 Conference: Binding and Streams: the Retina Approach Binding and Streams: the Retina Approach , 1996 .

[99]  Thomas Ledoux,et al.  OpenCorba: A Reflektive Open Broker , 1999, Reflection.

[100]  Roy H. Campbell,et al.  Reflective ORBs: Supporting Robust, Time-Critical Distribution , 1997, ECOOP Workshops.

[101]  Shigeru Chiba,et al.  OpenJava: A Class-Based Macro System for Java , 1999, Reflection and Software Engineering.

[102]  Fabio Kon,et al.  Supporting Dynamic Reconfiguration in the dynamicTAO Reflective ORB , 1999 .

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

[104]  Reidar Conradi,et al.  Version models for software configuration management , 1998, CSUR.

[105]  Dirk Riehle,et al.  Metadata and active object-models , 1998, OOPSLA Addendum.

[106]  Tatsuya Suda,et al.  Reflective object-oriented distributed system for heterogeneous multimedia environments , 1996, Comput. Commun..

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

[108]  C. M. Sperberg-McQueen,et al.  Extensible markup language , 1997 .

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

[110]  岡村 英明 A study on multi-model reflection framework in distributed environments , 1995 .

[111]  Cecília M. F. Rubira,et al.  A Reflective Object-Oriented Architecture for Developing Fault-Tolerant Software , 1997, J. Braz. Comput. Soc..

[112]  Heinrich J. Stüttgen,et al.  Transport services for multimedia applications on broadband networks , 1990, Comput. Commun..

[113]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[114]  Yutaka Ishikawa Reflection facilities and realistic programming , 1991, SIGP.

[115]  Alex Villazón,et al.  A Reflective Active Network Node , 2000, IWAN.

[116]  Gordon S. Blair,et al.  The Importance of Resource Management in Engineering Distributed Objects , 2000, EDO.

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

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

[119]  Walter Cazzola,et al.  Channel Reification: a reflective approach to fault-tolerant software development , 2000 .

[120]  Gordon S. Blair,et al.  Specifying Real-Time Behaviour in Distributed Software Architectures , 2000 .

[121]  Frank Eliassen,et al.  Trading and Negotiating Stream Bindings , 2000, Middleware.

[122]  Colin Atkinson,et al.  Meta-modelling for distributed object environments , 1997, Proceedings First International Enterprise Distributed Object Computing Workshop.