Reflective- Adaptive Middleware Reflective- Adaptive Middleware Leila Jalali Distributed Systems Middleware – ICS 237 Prof. Venkatasubramanian Fall 2008
Jan 12, 2016
Reflective- Adaptive MiddlewareReflective- Adaptive Middleware
Leila Jalali
Distributed Systems Middleware – ICS 237
Prof. Venkatasubramanian
Fall 2008
2
OutlineOutline
Motivation
Background
Key Paradigms
Taxonomy
Examples
Key Paradigms
Background
Motivation
Taxonomy
Examples
OvervieOverview:w:
Conclusion
Conclusion
3
MotivationMotivation
Problem– complexity of interprocess communication– heterogeneity of platforms– changing conditions
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
OvervieOverview:w:Motivation
Background
Key Paradigms
Taxonomy
Examples
Conclusion
4
BackgroundBackground
Traditional Middleware Middleware Classification by Emmerich [1]
Motivation
Background
OvervieOverview:w:
Traditional Middleware
Message-Oriented Middleware
Transactional Middleware
ProceduralMiddleware
Object-Oriented Middleware
Object-Oriented Middleware
Java RMICORBA DCOM
Key Paradigms
Taxonomy
Examples
Conclusion
5
Computational ReflectionComputational Reflection
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
Key Paradigms
OvervieOverview:w:
Reflection
Relationship between meta-level and base-level objects
Base-level Meta-level Reification MOP
Motivation
Background
Taxonomy
Examples
Conclusion
Base Level
Meta Level Meta Object Protocols
6
Why Reflective Middleware?Why Reflective Middleware?
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
Key Paradigms
OvervieOverview:w:
Reflection
Motivation
Background
Taxonomy
Examples
Conclusion
7
ReflectionReflection
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
Key Paradigms
OvervieOverview:w:
Reflection
Motivation
Background
Taxonomy
Examples
Conclusion
Reflection & ReificationReflection & Reification
Reflection– Behavioral reflection– Structural reflection
Metaobject protocol – reflection + object-oriented programming
Meta-level
Base-level
Reification Reflection
Key Paradigms
OvervieOverview:w:
Reflection
Motivation
Background
Taxonomy
Examples
Conclusion
ReificationReification
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).
Key Paradigms
OvervieOverview:w:
Reflection
Motivation
Background
Taxonomy
Examples
Conclusion
10
OutlineOutline
Taxonomy
Background
Motivation
Key Paradigms
Examples
Taxonomy
OvervieOverview:w:
Conclusion
Motivation
Background
Key Paradigms
Examples
Big Picture
Conclusion
11
Kernel
Application
Distribution
Common-Services
Host-Infrastructure
Domain-Services
Mid
dlew
are
Lay
ers
kernel boundary process boundarylayer boundary
Middleware LayersMiddleware Layers
– Domain-Services Tailored to a specific
class of distributed applications
– Common-Services Functionality such as
fault tolerance, security, load balancing and transactions
– Distribution Programming-language
abstraction
– Host-Infrastructure Platform-abstraction
Taxonomy
OvervieOverview:w:
MW Layers
Adaptation Type
App. Domain
Schmidt decomposed middleware into four layers:
Motivation
Background
Key Paradigms
Examples
Conclusion
Middleware layers [8]
Note: an adaptive middleware project may fall in more than one layer.
Note: an adaptive middleware project may fall in more than one layer.
12
Adaptation TypeAdaptation Type
Static Middleware– Customizable Middleware
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.
Taxonomy
OvervieOverview:w:
Adaptation Type
MW Layers
App. Domain
Development Time
Adaptive Middleware
Static Middleware
Customizable Configurable Tunable Mutable
Compile Time Startup Time Run Time
Dynamic Middleware
Adaptation Type
Application Lifetime
Motivation
Background
Key Paradigms
Examples
Conclusion
Note: an adaptive middleware project may provide more that one adaptation.
13
Application DomainApplication Domain
QoS-Oriented Middleware– supports real-time and multimedia applications– Example:
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
Taxonomy
OvervieOverview:w:
App. domain
MW Layers
Adaptation Type
Adaptive Middleware
Dependable MiddlewareQoS-Oriented Middleware Embedded Middleware
Motivation
Background
Key Paradigms
Examples
Conclusion
Note: there is a lot of overlap among these groups.
OutlineOutline
Examples
Background
Motivation
Key Paradigms
Taxonomy
Examples
OvervieOverview:w:
Conclusion
Motivation
Background
Key Paradigms
Taxonomy
Conclusion
QoS-Oriented MiddlewareQoS-Oriented Middleware
Reflection-Oriented Middleware– Computational reflection is the primary focus
QoS-Oriented Middleware
Stream-Oriented Middleware
Real-Time Middleware
Reflection-Oriented Middleware
Aspect-Oriented Middleware
OvervieOverview:w:
QoS-Oriented
TLAM
Motivation
Background
Key Paradigms
Taxonomy
Examples
Conclusion
TLAMTLAMOvervieOverview:w:
TLAM
QoS-Oriented
Motivation
Background
Key Paradigms
Taxonomy
Examples
Conclusion
Core services allow to isolate complex interactions -- useful for managing composition of services
DistributedSnapshot
Remote Creation
Directory Services
Replication
Migration
DGC
Check-pointing
AccessControl
System (Meta) Level
Application (Base) Level
Two Level Meta Architecture (TLAM)
Reflective middleware framework – Reflective middleware framework – CompOSE|QCompOSE|Q
RemoteCreation
RemoteCreation
DistributedSnapshotDistributedSnapshot
DirectoryServicesDirectoryServices
QoSBroker
QoSBroker
MigrationMigrationReplicationReplication
RequestMgmt
DataMgmt
MessageScheduling
RequestScheduling
Data Placement De-replication
Clock SyncClock Sync
Interactionwith
Core Services
CoreServices
ApplicationObjects
TLAM
QoS-Oriented
Motivation
Background
Key Paradigms
Taxonomy
Examples
Conclusion
Conclusion and Future WorkConclusion and Future Work
Conclusion– A classification for traditional middleware– Supporting paradigms for reflection– A taxonomy of adaptive middleware
Future Work– Domain-services middleware– Common-services middleware– Embedded middleware– Mutable middleware
Safe adaptation
– Higher-level paradigms
Conclusion
OvervieOverview:w:Motivation
Background
Key Paradigms
Taxonomy
Examples
ReferencesReferences[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 Object-
Oriented 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). Springer-Verlag 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.
OvervieOverview:w:Motivation
Background
Key Paradigms
Taxonomy
Examples
Conclusion
OvervieOverview:w:
Thank you!
Motivation
Background
Key Paradigms
Taxonomy
Examples
Conclusion