1 / 29

Composing Adaptive Software

Composing Adaptive Software. Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006. Overview. Introduction Enabling Technologies Compositional Adaptation Taxonomy Key Challenges Conclusion. Introduction.

shepherdc
Download Presentation

Composing Adaptive Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Composing Adaptive Software AuthorsPhilip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. ChengPresented by Ana Rodriguez June 21, 2006

  2. Overview • Introduction • Enabling Technologies • Compositional Adaptation Taxonomy • Key Challenges • Conclusion 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 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 Composing Adaptive Software

  5. Enabling Technologies Main Supporting Technologies: Separation of concerns, computational reflection, component-based design Composing Adaptive Software

  6. 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 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 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 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 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 time • Dynamic Composition – add, remove, reconfigure components at runtime • Promotes software reuse Composing Adaptive Software

  11. Component-based Design Composing Adaptive Software

  12. Middleware • Middleware – layers of services separating applications from operating systems and network protocols Composing Adaptive Software

  13. Middleware Schmidt’s Middleware Layers • 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 Composing Adaptive Software

  14. Middleware and Adaptation CORBA call sequence • Based on an object-oriented programming paradigm • Many approaches work by intercepting and modifying messages Composing Adaptive Software

  15. Compositional Adaptation Taxonomy • How to Compose • When to Compose • Where to Compose Composing Adaptive Software

  16. How to Compose Composing Adaptive Software

  17. 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 Composing Adaptive Software

  18. 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 Composing Adaptive Software

  19. When to Compose Use of composition time as the classification metric for adaptive applications 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 Composing Adaptive Software

  21. 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 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 Composing Adaptive Software

  23. 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 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. Composing Adaptive Software

  25. Question 1 How is inserting the code for new behavior different from adding a plugin? 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? 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? 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? 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? Composing Adaptive Software

More Related