Upload
henry-randall
View
216
Download
0
Tags:
Embed Size (px)
Citation preview
Composing Adaptive Software
AuthorsPhilip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten,
Betty H.C. Cheng
Presented by Ana RodriguezJune 21, 2006
06/21/2006 Composing Adaptive Software 2
Overview
IntroductionEnabling TechnologiesCompositional Adaptation TaxonomyKey ChallengesConclusion
06/21/2006 Composing Adaptive Software 3
Introduction
Software adaptation – software that can adapt dynamically to changes in its environment and non-functional requirements.
Increased interest in adaptive systems due to the following: Ubiquitous Computing – dissolving traditional
boundaries for how, when, and where humans and computers interact
Growing demand for autonomic computing
06/21/2006 Composing Adaptive Software 4
Introduction
Two approaches for implementing dynamic adaptation in software: Parameter Adaptation – modifies program
variables that determine behavior Limitation: Cannot adopt new strategies
Compositional Adaptation – allows software to modify its structure and behavior dynamically in response to changes in its executing environment
Enables dynamic recomposition of software during execution
06/21/2006 Composing Adaptive Software 5
Enabling Technologies
Main Supporting Technologies: Separation of concerns, computational reflection, component-based design
06/21/2006 Composing Adaptive Software 6
Separation of Concerns
Business LogicCrosscutting Concerns
QoS, energy consumption, fault tolerance, security
Most widely used approach is Aspect-Oriented Programming (AOP)Provides abstraction techniques, language
constructsDisentangles crosscutting concerns
06/21/2006 Composing Adaptive Software 7
Separation of Concerns
Development Time Pointcuts are identified
Compile Time Weave different aspects
of the program together
Run Time Program with new
behavior
06/21/2006 Composing Adaptive Software 8
Computational Reflection
A program’s ability to reason about, and possibly alter, its own behavior
Comprised of two activities: Introspection – observe its own behavior Intercession – act on these observations
and modify its own behavior
06/21/2006 Composing Adaptive Software 9
Computational Reflection
Metaobject Protocol (MOP) – introspectation and intercession base-level objects Structural Reflection – class hierarchy, object interconnection, and data types Behavioral Reflection – computational semantics
06/21/2006 Composing Adaptive Software 10
Component-based Design
Software Components – software units that third parties can independently develop, deploy, and compose
Two types of composition: Static Composition – combine several
components at compile timeDynamic Composition – add, remove,
reconfigure components at runtimePromotes software reuse
06/21/2006 Composing Adaptive Software 11
Component-based Design
06/21/2006 Composing Adaptive Software 12
Middleware
Middleware – layers of services separating applications from operating systems and network protocols
06/21/2006 Composing Adaptive Software 13
Middleware
Host-infrastructure Middleware High-level API
Distribution Middleware High-level programming abstraction
Common Middleware Services Fault tolerance, security, persistence
Domain-specific Middleware Services Matches class of applications
Schmidt’s Middleware Layers
06/21/2006 Composing Adaptive Software 14
Middleware and Adaptation
Based on an object-oriented programming paradigm Many approaches work by intercepting and modifying messages
CORBA call sequence
06/21/2006 Composing Adaptive Software 15
Compositional Adaptation Taxonomy
How to ComposeWhen to ComposeWhere to Compose
06/21/2006 Composing Adaptive Software 16
How to Compose
06/21/2006 Composing Adaptive Software 17
How to Compose
Composer - entity that uses techniques from Table 2 to adapt an application
Who can be the composer?HumanPiece of software
Transparency – refers to whether an application or system is aware of the “infrastructure” needed for recomposition
06/21/2006 Composing Adaptive Software 18
When to Compose
At development, compile, or load time (Static Composition)Pros: Easier to ensure no anomalous
behaviorCons: Limited Dynamism
At runtime (Dynamic Composition)Pros: Very powerfulCons: Difficult to use traditional testing and
formal verification techniques
06/21/2006 Composing Adaptive Software 19
When to Compose
Use of composition time as the classification metric for adaptive applications
06/21/2006 Composing Adaptive Software 20
Where to Compose
Middleware Layers Host-infrastructure layer
Adaptable communication services e.g. ACE
Virtual Machine e.g. JVM, CLR
Distribution, Common Services, Domain-specific Services
Portability across virtual machines Pros: Support Transparent Adaptation Cons: Transparent Adaptation is middleware
platform dependent
06/21/2006 Composing Adaptive Software 21
Where to Compose
Application CodeProgram code using language that directly
supports dynamic recompositione.g. CLOS, Python
Weave adaptive code into functional codee.g. AspectJ, Composition Filters
06/21/2006 Composing Adaptive Software 22
Key Challenges
Assurance Certify all components for correctness with respect to their
specifications Ensure system still executes in an safe manner during the
adaptation process Security
Ensure integrity of data and conceal adaptive actions Interoperability
Coordinate adaptation across system layers and platforms Decision Making
Decide how, when, and where to adapt the system
06/21/2006 Composing Adaptive Software 23
Conclusion
Compositional adaptation is powerfulLack of supporting development
environmentsWithout tools to automatically generate
and verify code it would impact system integrity and security
06/21/2006 Composing Adaptive Software 24
References
Philip K. McKinley, S. M. Sadjadi, Eric P. Kasten, and Betty H. C. Cheng. Composing adaptive software. IEEE Computer, pages 56-64, July 2004.
Philip K. McKinley, S. Masoud Sadjadi, Eric P. Kasten, and Betty H. C. Cheng. A taxonomy of compositional adaptation. Technical Report MSU-CSE-04-17, Department of Computer Science, Michigan State University, East Lansing, Michigan, May 2004.
06/21/2006 Composing Adaptive Software 25
Question 1
How is inserting the code for new behavior different from adding a plugin?
06/21/2006 Composing Adaptive Software 26
Question 2
In order to achieve the separation of concerns, how do you decide which requirements are functional or non functional?
06/21/2006 Composing Adaptive Software 27
Question 3
When third party component is used to recompose (and re-compile) a piece of software, is that any different from creating a new piece of software with reusable components?
06/21/2006 Composing Adaptive Software 28
Question 4
The paper states that "reflection enables a system to reveal selected details of its implementation without compromising portability", can you explain?
06/21/2006 Composing Adaptive Software 29
Question 5
Doesn't decision making in adaptive software have to be “hardwired” into the system at some point? If so, how can the software be said to be dynamic?