Presentation is loading. Please wait.

Presentation is loading. Please wait.

Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.

Similar presentations


Presentation on theme: "Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006."— Presentation transcript:

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

2 06/21/2006Composing Adaptive Software2 Overview Introduction Enabling Technologies Compositional Adaptation Taxonomy Key Challenges Conclusion

3 06/21/2006Composing Adaptive Software3 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

4 06/21/2006Composing Adaptive Software4 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

5 06/21/2006Composing Adaptive Software5 Enabling Technologies Main Supporting Technologies: Separation of concerns, computational reflection, component-based design

6 06/21/2006Composing Adaptive Software6 Separation of Concerns Business Logic Crosscutting Concerns QoS, energy consumption, fault tolerance, security Most widely used approach is Aspect- Oriented Programming (AOP) Provides abstraction techniques, language constructs Disentangles crosscutting concerns

7 06/21/2006Composing Adaptive Software7 Separation of Concerns Development Time Pointcuts are identified Compile Time Weave different aspects of the program together Run Time Program with new behavior

8 06/21/2006Composing Adaptive Software8 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

9 06/21/2006Composing Adaptive Software9 Computational Reflection Metaobject Protocol (MOP) – introspectation and intercession base-level objects Structural Reflection – class hierarchy, object interconnection, and data types Behavioral Reflection – computational semantics

10 06/21/2006Composing Adaptive Software10 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 time Dynamic Composition – add, remove, reconfigure components at runtime Promotes software reuse

11 06/21/2006Composing Adaptive Software11 Component-based Design

12 06/21/2006Composing Adaptive Software12 Middleware Middleware – layers of services separating applications from operating systems and network protocols

13 06/21/2006Composing Adaptive Software13 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

14 06/21/2006Composing Adaptive Software14 Middleware and Adaptation Based on an object-oriented programming paradigm Many approaches work by intercepting and modifying messages CORBA call sequence

15 06/21/2006Composing Adaptive Software15 Compositional Adaptation Taxonomy How to Compose When to Compose Where to Compose

16 06/21/2006Composing Adaptive Software16 How to Compose

17 06/21/2006Composing Adaptive Software17 How to Compose Composer - entity that uses techniques from Table 2 to adapt an application Who can be the composer? Human Piece of software Transparency – refers to whether an application or system is aware of the “infrastructure” needed for recomposition

18 06/21/2006Composing Adaptive Software18 When to Compose At development, compile, or load time (Static Composition) Pros: Easier to ensure no anomalous behavior Cons: Limited Dynamism At runtime (Dynamic Composition) Pros: Very powerful Cons: Difficult to use traditional testing and formal verification techniques

19 06/21/2006Composing Adaptive Software19 When to Compose Use of composition time as the classification metric for adaptive applications

20 06/21/2006Composing Adaptive Software20 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

21 06/21/2006Composing Adaptive Software21 Where to Compose Application Code Program code using language that directly supports dynamic recomposition e.g. CLOS, Python Weave adaptive code into functional code e.g. AspectJ, Composition Filters

22 06/21/2006Composing Adaptive Software22 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

23 06/21/2006Composing Adaptive Software23 Conclusion Compositional adaptation is powerful Lack of supporting development environments Without tools to automatically generate and verify code it would impact system integrity and security

24 06/21/2006Composing Adaptive Software24 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.Composing adaptive software 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.A taxonomy of compositional adaptation

25 06/21/2006Composing Adaptive Software25 Question 1 How is inserting the code for new behavior different from adding a plugin?

26 06/21/2006Composing Adaptive Software26 Question 2 In order to achieve the separation of concerns, how do you decide which requirements are functional or non functional?

27 06/21/2006Composing Adaptive Software27 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?

28 06/21/2006Composing Adaptive Software28 Question 4 The paper states that "reflection enables a system to reveal selected details of its implementation without compromising portability", can you explain?

29 06/21/2006Composing Adaptive Software29 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?


Download ppt "Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006."

Similar presentations


Ads by Google