composing adaptive software authors philip k. mckinley, seyed masoud sadjadi, eric p. kasten, betty...
TRANSCRIPT
![Page 1: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/1.jpg)
Composing Adaptive Software
AuthorsPhilip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten,
Betty H.C. Cheng
Presented by Ana RodriguezJune 21, 2006
![Page 2: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/2.jpg)
06/21/2006 Composing Adaptive Software 2
Overview
IntroductionEnabling TechnologiesCompositional Adaptation TaxonomyKey ChallengesConclusion
![Page 3: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/3.jpg)
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
![Page 4: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/4.jpg)
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
![Page 5: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/5.jpg)
06/21/2006 Composing Adaptive Software 5
Enabling Technologies
Main Supporting Technologies: Separation of concerns, computational reflection, component-based design
![Page 6: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/6.jpg)
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
![Page 7: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/7.jpg)
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
![Page 8: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/8.jpg)
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
![Page 9: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/9.jpg)
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
![Page 10: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/10.jpg)
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
![Page 11: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/11.jpg)
06/21/2006 Composing Adaptive Software 11
Component-based Design
![Page 12: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/12.jpg)
06/21/2006 Composing Adaptive Software 12
Middleware
Middleware – layers of services separating applications from operating systems and network protocols
![Page 13: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/13.jpg)
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
![Page 14: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/14.jpg)
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
![Page 15: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/15.jpg)
06/21/2006 Composing Adaptive Software 15
Compositional Adaptation Taxonomy
How to ComposeWhen to ComposeWhere to Compose
![Page 16: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/16.jpg)
06/21/2006 Composing Adaptive Software 16
How to Compose
![Page 17: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/17.jpg)
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
![Page 18: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/18.jpg)
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
![Page 19: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/19.jpg)
06/21/2006 Composing Adaptive Software 19
When to Compose
Use of composition time as the classification metric for adaptive applications
![Page 20: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/20.jpg)
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
![Page 21: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/21.jpg)
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
![Page 22: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/22.jpg)
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
![Page 23: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/23.jpg)
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
![Page 24: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/24.jpg)
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.
![Page 25: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/25.jpg)
06/21/2006 Composing Adaptive Software 25
Question 1
How is inserting the code for new behavior different from adding a plugin?
![Page 26: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/26.jpg)
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?
![Page 27: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/27.jpg)
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?
![Page 28: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/28.jpg)
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?
![Page 29: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006](https://reader031.vdocuments.mx/reader031/viewer/2022032709/56649eb05503460f94bb622c/html5/thumbnails/29.jpg)
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?