Reflective- Adaptive Middleware Leila Jalali Distributed Systems Middleware – ICS 237 Prof. Venkatasubramanian Fall 2008 Outline Overview: Motivation Background Key Paradigms Motivation Background Taxonomy Examples Conclusion Key Paradigms Taxonomy Examples Conclusion 2 Motivation Overview: Motivation Problem – complexity of interprocess communication – heterogeneity of platforms – changing conditions Background Key Paradigms Taxonomy Examples Conclusion Functional Environmental Traditional Middleware – addresses the first two problems to some extent – is limited in supporting adaptation Reflective and Adaptive Middleware – addresses all three problems – still ongoing research 3 Background Overview: Motivation Background Traditional Middleware Middleware Classification by Emmerich [1] Key Paradigms Taxonomy Traditional Middleware Examples Conclusion Transactional Middleware Message-Oriented Middleware Procedural Middleware Object-Oriented Middleware Object-Oriented Middleware CORBA Java RMI DCOM 4 Computational Reflection Overview: Motivation Background Key Paradigms Reflection Taxonomy Examples Conclusion The ability of a program to reason about, and possibly alter, its own behavior Enables a system to “open up” its implementation details for such analysis without revealing the unnecessary parts or compromising portability. Terminology Base-level Meta-level Reification MOP Meta Level Meta Object Protocols Base Level Relationship between meta-level and base-level objects 5 Why Reflective Middleware? Overview: Motivation Background Key Paradigms Reflection Taxonomy Examples Conclusion Wireless communication, mobile computing and real-time applications demand – High adaptability dynamic customization of systems, services and communication protocols – Safe flexibility constrain composition of services and protocols in order to prevent functional interference that could lead to an inconsistent state of the system required to protect the system from security threats and failure – Cost-effective QoS guarantees 6 Reflection Overview: Motivation Background Key Paradigms Reflection Taxonomy Examples Conclusion Provides a plug-and-play environment for enabling run-time modification of policies An efficient technique to build composable middleware Features – Separation of concerns – Flexibility, Adaptability – Composition Implies concurrent execution of multiple resource management policies 7 Reflection & Reification Overview: Motivation – Behavioral reflection – Structural reflection Background Key Paradigms Reflection Taxonomy Examples Reflection Metaobject protocol – reflection + object-oriented programming Conclusion Meta-level Reification Reflection Base-level Reification Overview: Motivation Background Key Paradigms Reflection Taxonomy Examples Conclusion What can you reify? – Structural reflection: the models of your program (MDA), the structure of structured files (e.g. XML DTDs), the classes of a program, the code of a program (AST), the object structures (rarely), the bytecode of a class. at design-time, compile-time, at load-time, or at runtime. – Behavioral reflection: the object behavior (e.g. when they change states), the interaction between the objects (e.g. when a client invokes a remote object, when an invocation arrives on an object). at runtime, (design-time, compile time – partial reification). Outline Overview: Motivation Background Key Paradigms Motivation Background Taxonomy Examples Big Picture Key Paradigms Conclusion Taxonomy Examples Conclusion 10 Middleware Layers Overview: Background Key Paradigms Taxonomy Schmidt decomposed middleware into four layers: – Domain-Services MW Layers Adaptation Type App. Domain Examples Tailored to a specific class of distributed applications – Common-Services Conclusion Functionality such as fault tolerance, security, load balancing and transactions – Distribution Programming-language abstraction – Host-Infrastructure Application Platform-abstraction Note: an adaptive middleware project may fall in more than one layer. Domain-Services Middleware Layers Motivation Common-Services Distribution Host-Infrastructure Kernel kernel boundary process boundary layer boundary Middleware layers [8] 11 Adaptation Type Overview: Adaptive Middleware Motivation Static Middleware Background Key Paradigms Taxonomy Development Time Customizable Configurable Compile Time Startup Time Dynamic Middleware Tunable Mutable Run Time Adaptation Type Application Lifetime MW Layers Adaptation Type Static Middleware – Customizable Middleware App. Domain Examples Conclusion Enables developers to compile (and link) customized versions of applications. – Configurable Middleware Enables administrators to configure the middleware after compile time. Dynamic Middleware – Tunable Middleware Enables administrators to fine-tune applications during run time. – Mutable Middleware Enables administrators to dynamically adapt applications at run time. Note: an adaptive middleware project may provide more that one adaptation. 12 Application Domain Overview: Adaptive Middleware Motivation Background QoS-Oriented Middleware Dependable Middleware Embedded Middleware Key Paradigms Taxonomy MW Layers – supports real-time and multimedia applications – Example: Adaptation Type App. domain Examples QoS-Oriented Middleware Conclusion video conferencing and Internet telephony Dependable Middleware – supports critical distributed applications that are required to be correctly operational – Example: military command and control and medical applications Embedded Middleware – supports small footprints – Examples: smart phones, hand-held devices, and industrial controllers Note: there is a lot of overlap among these groups. 13 Outline Overview: Motivation Background Key Paradigms Motivation Background Taxonomy Examples Conclusion Key Paradigms Taxonomy Examples Conclusion QoS-Oriented Middleware Overview: Motivation QoS-Oriented Middleware Background Key Paradigms Taxonomy Examples Real-Time Middleware Stream-Oriented Middleware Reflection-Oriented Middleware Aspect-Oriented Middleware QoS-Oriented TLAM Conclusion Reflection-Oriented Middleware – Computational reflection is the primary focus TLAM Overview: Motivation System (Meta) Level Background Key Paradigms Two Level Meta Architecture (TLAM) Replication Access Control DGC Taxonomy Migration Examples Checkpointing QoS-Oriented TLAM Remote Creation Conclusion Distributed Snapshot Directory Services Application (Base) Level Core services allow to isolate complex interactions -- useful for managing composition of services Reflective middleware framework – CompOSE|Q Motivation Background Key Paradigms QoS Broker Taxonomy Request Mgmt Examples Data Mgmt QoS-Oriented TLAM Conclusion Application Objects Message Scheduling Clock Sync Interaction with Core Services Remote Creation Request Scheduling Data Placement De-replication Replication Distributed Snapshot Migration Core Services Directory Services Conclusion and Future Work Overview: Motivation – A classification for traditional middleware – Supporting paradigms for reflection – A taxonomy of adaptive middleware Background Key Paradigms Taxonomy Examples Conclusion Conclusion Future Work – – – – Domain-services middleware Common-services middleware Embedded middleware Mutable middleware Safe adaptation – Higher-level paradigms References Overview: Motivation Background Key Paradigms Taxonomy Examples Conclusion [1] Wolfgang Emmerich. Software engineering and middleware: a roadmap. In Proceedings of the Conference on The future of Software engineering, pages 117-129, 2000. [2] http://www.cs.wustl.edu/~schmidt/corba-overview.html. [3] Pattie Maes. Concepts and experiments in computational reflection. In Proceedings of the ACM Conference on Object-Oriented Languages (OOPSLA), December 1987. [4] G. Kiczales, J. d. Rivieres, and D. G. Bobrow. The Art of Metaobject Protocols. MIT Press, 1991. [5] Clemens Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, 1999. [6] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements od Reusable ObjectOriented Software. Addison-Wesley Professional Computing Series. Addison-Wesley Publishing Company, New York, NY, 1995. [7] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Videira Lopes, J. M. Loingtier, and J. Irwin. Aspect-oriented programming. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). SpringerVerlag LNCS 1241, June 1997. [8] Douglas C. Schmidt. Middleware for real-time and embedded systems. Communications of the ACM, 45(6), June 2002. [9] D. C. Schmidt, D. L. Levine, and S. Mungee. The design of the TAO real-time object request broker. Computer Communications, 21(4):294-324, April 1998. [10] Fabio Kon, Manuel Román, Ping Liu, Jina Mao, Tomonori Yamane, Luiz Claudio Magalhaes, and Roy H. Campbell. Monitoring, security, and dynamic configuration with the dynamicTAO reflective ORB. In Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms (Middleware 2000), New York, April 2000. [11] T. Fitzpatrick, G. Blair, G. Coulson, N. Davies, and P. Robin. Supporting adaptive multimedia applications through open bindings. In Proceedings of International Conference on Congurable Distributed Systems (ICCDS'98), May 1998. [12] R. Koster. A Middleware Platform for Information Flows. PhD thesis, Department of Computer Science, University of Kaiserslautern, Germany, July 2002. [13] John A. Zinky, David E. Bakken, and Richard E. Schantz. Architectural support for quality of service for CORBA objects. Theory and Practice of Object Systems, 3(1), 1997. [14] Nalini Venkatasubramanian, CompOSE|Q – A QoS enabaled Customizable Middleware Framework for Distributed Computing., Distributed Middleware Workshop, Proceedings of the IEEE Intl. Conference on Distributed Computing Systems (ICDCS '99), June 1999. Overview: Motivation Background Key Paradigms Taxonomy Examples Conclusion Thank you!