1 / 27

Software Self-Adaptation

Software Self-Adaptation. A survey of the field “Self-adaptive software evaluates its own behavior and changes behavior when the evaluation indicates it is not accomplishing what the software is intended to do, or when better functionality or performance is possible”.

joshua
Download Presentation

Software Self-Adaptation

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. Software Self-Adaptation A survey of the field “Self-adaptive software evaluates its own behavior and changes behavior when the evaluation indicates it is not accomplishing what the software is intended to do, or when better functionality or performance is possible”. - DARPA Broad Agency Announcement 98/12 - Advisor: Prof. J.P. Sousa Student: Nikolaos Abatzis SWE796 – Spring 2008

  2. Introduction • Why change? causes • Change what? effects • Choices, choices … • Are we there yet?

  3. need for runtime change • timescale for change • complexity • mobility - we must take account of the environment (embedded systems are majority of systems around ~98%)1 enabler for change • capability (Moore’s law) 1 Robertson, P., Laddaga, R. and Shrobe, H., Introduction: The First International Workshop on Self-Adaptive Software, Oxford UK 2000

  4. Change drives adaptation • Self-adaptation • self-healing • self-optimizing • Causes of change • requirements • faults • resources not trivial!

  5. Change drives adaptation • Causes of change • requirements • faults • resources • Self-adaptation • self-healing • self-optimizing

  6. Different focus based on change handled

  7. What is a resource? • “simple”, i.e. CPU, energy, network bandwidth • service, i.e. speech recognition • composite service, i.e. speech-to-speech

  8. Effects of change • Software parameters (fidelity) • Algorithms, switch the executing code • redeployment of components • Use of resources • Services

  9. different models & mechanisms,

  10. process control loops feedback loop Shaw, M., Beyond Objects: A software design paradigm based on process control, in ACM Software Engineering notes, 20(1), January 1995, 27-38

  11. Control loop for self-* systems Autonomic Computing: An architectural blueprint for autonomic computing, IBM, June 2006 (Fourth Ed.).

  12. Adaptation at different levels Autonomic Computing: An architectural blueprint for autonomic computing, IBM, June 2006 (Fourth Ed.).

  13. architecture-based self-adaptation • Model composed of components & connectors • Specific to C2, Weaves [Oreizy+, 1999] • Architecture is generic, reusable adaptation mechanism [Garlan+, 2004] • Mechanisms for adaptation based on • Knowledge, potential to adapt the mechanism itself [Georgas+, 2004] • Self-adaptation language, Stitch [Cheng+, 2007] • Hierarchical parallel finite state machines (HFSM) [Karsai+, 2001]

  14. architecture of self-adaptation • peer-to-peer, aggregator-escalator-peer, Chain-of-configurators (Chain-of-responsibility pattern, Visitor pattern) [Hawthorn+, 2005] • Evaluation using ABAS [Neti+, 2007]

  15. No model of the system per se • Agent transfers internal state, Port-Based agents [Dixon+,2000] • Use an adaptation automaton to map old process states to new states [Biyani+,2007] • Agents dynamically change commitments which puts them in specific roles, situated (in an environment) multiagent systems (MAS) [Weyns+,2007]

  16. Model of the system • Contained within each runtime component, autonomous [Georgiadis+, 2002]

  17. search solutions – random & centralized control • population-based model • Mechanisms: crossover, mutation, selection, fitness • Genetic algorithms [Whitley, 1994]. Genetic programming, use algorithms to generate programs! [Poli+,2008] • Evolution platform – AVIDA [Golsby+,2007] • Generate state diagrams for processing components

  18. compose a solution, distributed • Cell inspired • no specific model • simple “instructions” • local communication • Cell automata [George+, 2002] • shows self-healing, very low-level • Cell inspired agents [Nagpal+, 2003] • Self-assembly, computational synthesis

  19. Managing a resource at the O/S level • conserve energy by adapting the fidelity of the data presented to an application (Odyssey)[Flinn+,1999] • Managing multiple resources • Maximize a utility function for a user executing one or more tasks given available resources and their QoS, Environment Manager – Aura [Sousa+,2003] • Choice of runtime execution platform, given bandwidth, CPU, memory and energy considerations, tactics – Chroma [Balan+,2003]

  20. Managing multiple users • Microeconomics/centralized – auction protocol[Capra+,2003] • everybody wins! Maximize the sum of bids received • Microeconomics/distributed – congestion pricing[Neugebauer+,2000] • each user is charged depending on the “scarcity” of the resource requested

  21. Causes of change • requirements • faults • resources • Self-adaptation • self-healing • self-optimizing • Many promising approaches exist, bringing tools from control theory, biology, economics, utility theory, artificial intelligence, etc. • System complexity, environment, embedded systems have to deal with change. They need to adapt to it. • Adapting topology, resource usage, fidelity. No on-the-fly application modification, not yet anyways.

  22. Question: Who, what, when, adapts the adapting mechanisms?

  23. Thank You !!! Questions ???

More Related