Title: A Survey of Adaptive Middleware
1A Survey of Adaptive Middleware
- SeyedMasoud Sadjadi
- www.cse.msu.edu/sadjadis
- Software Engineering and Networking Systems
Laboratory - Department of Computer Science and Engineering
- Michigan State University
- www.cse.msu.edu/sens
2Agenda
Motivation
Overview
Motivation
Background
Background
Key Paradigms
Taxonomy
Examples
Key Paradigms
Big Picture
Conclusion
Taxonomy
Examples
Big Picture
Conclusion
3Motivation
Overview
- 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
- Adaptive Middleware
- addresses all three problems
- still ongoing research
Motivation
Background
Key Paradigms
Taxonomy
Examples
Big Picture
Conclusion
4Background
Overview
- Traditional Middleware
- connectivity software
- below application and above operation system
layer - provides high-level programming abstractions
- Middleware Classification by Emmerich 1
Motivation
Background
Taxonomy
OO MW
Key Paradigms
Taxonomy
Examples
Big Picture
Conclusion
5CORBA
Overview
- CORBA
- Common Object Request Broker Architecture.
- A distributed object framework by OMG.
- Supports distributed object-oriented computing
across heterogeneous hardware devices, operating
systems, network protocols, and programming
languages.
Motivation
Background
Taxonomy
OO MW
Key Paradigms
Taxonomy
Examples
- Components
- Object
- Servant
- Client
- IDL Compiler
- Stub
- Skeleton
- ORB Core
- GIOP/IIOP
Big Picture
Conclusion
CORBA architecture 2.
6Java RMI DCOM
Overview
- Java RMI
- Java Remote Method Invocation.
- A Java distributed object framework by JavaSoft.
- Supports distributed computing across
heterogeneous hardware devices and operating
systems using the Java Virtual Machine (JVM). - Serialization.
- DCOM
- Distributed Component Object Model.
- A Windows distributed object framework by
Microsoft. - An extension to the COM that supports
heterogeneous programming languages and network
protocols. - Provides a binary standard like C vtable.
- Object proxies and object stubs in DCOM are
referred as IDL stubs and IDL skeleton in
CORBA, respectively!
Motivation
Background
Taxonomy
OO MW
Key Paradigms
Taxonomy
Examples
Big Picture
Conclusion
7Agenda
Motivation
Overview
Motivation
Background
Background
Key Paradigms
Taxonomy
Examples
Key Paradigms
Big Picture
Conclusion
Taxonomy
Examples
Big Picture
Conclusion
8Computational Reflection
Overview
- The ability of a program to reason about, and
possibly alter, its own behavior 3. - Enables a system to open up its implementation
details for such analysis without revealing the
unnecessary parts or compromising portability
4. - Terminology
Motivation
Background
Key Paradigms
Reflection
CBD
AOP
Patterns
- Base-level
- Meta-level
- MOP
- Casually connected
- Per-ORB, per-class, per-object, and per-interface
reflection
Taxonomy
Examples
Big Picture
Conclusion
Relationship between meta-level and base-level
objects.
9Component-Based Design
Overview
- Software components
- Software units that can be independently
produced, deployed, and composed by third parties
5. - Self-contained
- Commodity-of-the-shelf (COTS)
- Component-based design (CBD)
- large scale reuse of software
- Composition
- late binding
- Component-Based Middleware
- DCOM
- EJB
- CCM
Motivation
Background
Key Paradigms
Reflection
CBD
AOP
Patterns
Taxonomy
Examples
Big Picture
Conclusion
Independent Components
10Aspect-Oriented Programming
Overview
- Complex programs are composed of different
intervened cross-cutting concerns 6. - Cross-cutting concerns
- Properties or areas of interest such as QoS,
energy consumption, fault tolerance, and
security. - Terminology
Motivation
Background
Key Paradigms
Reflection
CBD
AOP
Basic Functionality
Cross-Cutting Aspects
Patterns
- Aspect
- Basic Functionality
- Aspect Language
- Aspect Weaver
- Static
- Dynamic
- Woven Code
Taxonomy
Examples
Big Picture
Conclusion
Aspect Weaver
Woven Code
AOP in action.
11Software Design Patterns
Overview
- Enables reuse of best software design practices
7. - Benefits
- common vocabulary for communicating insight and
experience about recurring problems - Patterns commonly used in adaptive middleware
Motivation
Background
Key Paradigms
Reflection
CBD
AOP
- Façade
- Wrapper
- Interceptor
- Strategy
- Service Configurator
- Virtual Component
Patterns
Taxonomy
Examples
Big Picture
Conclusion
Class diagram.
12Agenda
Motivation
Overview
Motivation
Background
Background
Key Paradigms
Taxonomy
Examples
Key Paradigms
Big Picture
Conclusion
Taxonomy
Examples
Big Picture
Conclusion
13Middleware Layers
Overview
- Schmidt 8 decomposed middleware into four
layers
Motivation
Background
- 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
Key Paradigms
Taxonomy
MW Layers
Adaptation Type
App. Domain
Examples
Middleware Layers
Big Picture
Conclusion
Note an adaptive middleware project may fall in
more than one layer.
Middleware layers 8
14Adaptation Type
Overview
Motivation
Background
Key Paradigms
Taxonomy
MW Layers
- 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.
Adaptation Type
App. Domain
Examples
Big Picture
Conclusion
- Note an adaptive middleware project may provide
more that one adaptation.
15Application Domain
Overview
Motivation
Background
Key Paradigms
- QoS-Oriented Middleware
- supports real-time and multimedia applications
- Example
- avionics systems, 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
MW Layers
Adaptation Type
App. domain
Examples
Big Picture
Conclusion
- Note there is a lot of overlap among these
groups.
16Agenda
Motivation
Overview
Motivation
Background
Background
Key Paradigms
Taxonomy
Examples
Key Paradigms
Big Picture
Conclusion
Taxonomy
Examples
Big Picture
Conclusion
17QoS-Oriented Middleware
Overview
Motivation
Background
Key Paradigms
Taxonomy
- Real-Time Middleware
- Required to meet the deadlines defined by
real-time applications - Hard and soft real-time middleware
- Stream-Oriented Middleware
- Provides a continuous data streaming abstraction
- Reflection-Oriented Middleware
- Computational reflection is the primary focus
- Aspect-Oriented Middleware
- AOP is the primary focus
Examples
QoS-Oriented
Dependable
Embedded
Big Picture
Conclusion
18Real-Time Middleware
Overview
- TAO
- Schmidt et al.
- CORBA compliant ORB
- Classification
- Distribution layer
- Configurable and Tunable MW
- Real-time MW
Motivation
Background
Key Paradigms
Taxonomy
Examples
QoS-Oriented
Dependable
Embedded
TAO Architecture 9.
Big Picture
- DynamicTAO
- UIUC
- A reflective TAO
- Classification
- Distribution layer
- Tunable MW
- Real-time MW
Conclusion
Reified DynamicTAO 10.
19Stream-Oriented Middleware
- Open-ORB
- Lancaster University
- ORB-wide reflection
- Classification
- Distribution layer
- Mutable MW
Overview
Motivation
Background
Key Paradigms
Taxonomy
Examples
QoS-Oriented
Dependable
Open-ORB explicit binding 11.
Embedded
Big Picture
- Squirrel over Infopipes
- University of Kaiserslautern
- Classification
- Distribution layer
- Customizable and Tunable MW
Conclusion
Squirrel over Infopipes 12.
20Aspect-Oriented Middleware
Overview
- QuO
- BBN Technologies
- Classification
- Common-services layer
- Customizable MW
- Aspect-oriented MW
- Static AOP
Motivation
Background
Key Paradigms
Taxonomy
Examples
QoS-Oriented
Dependable
Embedded
QuO 13.
Big Picture
- AspectIX
- University of Erlangen-Nürnberg
- Classification
- Distribution layer
- Tunable MW
- Aspect-oriented MW
- Dynamic AOP
Conclusion
Dynamic weaving of aspects in AspectIX 14.
21Dependable Middleware
Dependable Middleware
Overview
Motivation
Background
Fault-Tolerant Middleware
Reliable-Communication Middleware
Load-Balancer Middleware
Key Paradigms
Taxonomy
- Reliable Communication Middleware
- provides reliable communication services
- residing at the host-infrastructure layer
- Fault-Tolerant Middleware
- continue operating in the presence of faults
- Load-Balancer Middleware
- continue operation even in the presence of high
load
Examples
QoS-Oriented
Dependable
Embedded
Big Picture
Conclusion
22Reliable Middleware
- Rocks
- University of Wisconsin
- Classification
- Host-infra. layer
- Configurable MW
- Reliable-commu. MW
- Racks
- University of Wisconsin
- Classification
- Common-services layer
- Configurable MW
- Reliable-commu. MW
Overview
Motivation
Background
Key Paradigms
Taxonomy
Examples
QoS-Oriented
Dependable
Embedded
Big Picture
Conclusion
Racks architecture 15.
Rocks architecture 15.
23Fault-Tolerance Middleware
Overview
- IRL
- Baldoni et al.
- Classification
- Common-services layer
- Configurable MW
- Fault-Tolerant MW
Motivation
Background
Key Paradigms
Taxonomy
Examples
IRL architecture 16.
QoS-Oriented
Dependable
Embedded
- Eternal
- UCSB and Eternal Systems
- Classification
- Host-infra. layer
- Configurable MW
- Fault-Tolerant MW
Big Picture
Conclusion
Eternal architecture 17.
24Embedded Middleware
Overview
Motivation
Background
Key Paradigms
Taxonomy
- Minimum Middleware
- Enables minimum footprint applications
- For a specific application-domain
- Fixed minimum core
- For one specific application
- No fixed core
- Swappable Middleware
- Enables optional portions of middleware to swap
in and out dynamically - Fixed minimum core
Examples
QoS-Oriented
Dependable
Embedded
Big Picture
Conclusion
25Swappable Middleware
Overview
- EmbeddedJava
- Sun Microsystems
- Classification
- Host-infra. layer
- Customizable MW
- Minimum MW
Motivation
Background
Key Paradigms
Taxonomy
Examples
QoS-Oriented
Dependable
EmbeddedJava architecture 18.
Embedded
Big Picture
- ZEN
- Schmidt et al.
- Classification
- Distribution layer
- Configurable and Tunable MW
- Swappable MW
Conclusion
ZEN architecture 19.
26Agenda
Motivation
Overview
Motivation
Background
Background
Key Paradigms
Taxonomy
Examples
Key Paradigms
Big Picture
Conclusion
Taxonomy
Examples
Big Picture
Conclusion
27Application Domain MW Layers
Overview
- Embedded Middleware
- All-in-one vs. Layered
- Common-Services
- Domain-Services
- Many standards may be proprietary?
- Need more attention
Motivation
Background
Key Paradigms
Taxonomy
Examples
Big Picture
Conclusion
28Adaptation Type MW Layers
Overview
- Hybrid Adaptation
- Common-Services Layer
- Customizable, Tunable, Mutable
- Mutable Middleware
- Very powerful
- Safe adaptation
-
Motivation
Background
Key Paradigms
Taxonomy
Examples
Big Picture
Conclusion
29Key Paradigms and Standards
Overview
- Computational Reflection
- Component-Based Design
- Aspect-Oriented Programming
- Software-Design Patterns
- Reliable- Communication Middleware
- CORBA
- Java RMI
- DCOM
Motivation
Background
Key Paradigms
Taxonomy
Examples
Big Picture
Conclusion
30Conclusion and Future Work
Overview
- Conclusion
- A classification for traditional middleware
- Supporting paradigms for adaptation
- A taxonomy of adaptive middleware
- Classifying adaptive middleware projects
- Future Work
- Domain-services middleware
- Common-services middleware
- Embedded middleware
- Feature interaction
- Mutable middleware
- Safe adaptation
- Higher-level paradigms
Motivation
Background
Key Paradigms
Taxonomy
Examples
Big Picture
Conclusion
31References
- 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-overvie
w.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 Martin Geier, Martin Steckermeier, Ulrich
Becker, Franz J. Hauck, Erich Meier, and Uwe
Rastofer. Support for mobility and replication in
the AspectIX architecture. Technical Report
TR-I4-98-05, Univ. of Erlangen-Nuernberg, IMMD
IV, 1998. - 15 Victor C. Zandy and Barton P. Miller.
Reliable network connections. In ACM MobiCom
2002, Atlanta, September 2002. - 16 C. Marchetti, L. Verde, and R. Baldoni.
CORBA request portable interceptors A
performance analysis. In the 3nd International
Symposium on Distributed Objects and Applications
(DOA 2001), Rome, Italy, Sept. 2001. - 17 L. Moser, P. Melliar-Smith, P. Narasimhan,
L. Tewksbury, and V. Kalogeraki. The eternal
system an architecture for enterprise
applications. In the 3rd International Enterprise
Distributed Object Computing Conference
(EDOC'99), July 1999. - 18 Sun Microsystems. EmbeddedJava Application
Environment. http//java.sun.com/products/embedded
java/. - 19 Raymond Klefstad, Douglas C. Schmidt, and
Carlos O'Ryan. Towards highly configurable
real-time object request brokers. In Fifth IEEE
International Symposium on Object-Oriented
Real-Time Distributed Computing, April - May 2002.
Overview
Motivation
Background
Key Paradigms
Taxonomy
Examples
Big Picture
Conclusion
32Overview
Motivation
Background
Key Paradigms
Taxonomy
Examples
Big Picture
Conclusion
Thank you!