Software SelfAdaptation A survey of the field Selfadaptive

  • Slides: 27
Download presentation
Software Self-Adaptation A survey of the field “Self-adaptive software evaluates its own behavior and

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 SWE 796 – Spring 2008

o o o Introduction Why change? causes Change what? effects Choices, choices … Are

o o o Introduction Why change? causes Change what? effects Choices, choices … Are we there yet? SWE 796 - Spring ‘ 08 2

need for runtime change timescale for change complexity mobility - we must take account

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 o o o enabler for change capability (Moore’s law) o Robertson, P. , Laddaga, R. and Shrobe, H. , Introduction: The First International Workshop on Self. Adaptive Software, Oxford UK 2000 1 SWE 796 - Spring ‘ 08 3

Change drives adaptation Self-adaptation Causes of change • self-healing • requirements • self-optimizing •

Change drives adaptation Self-adaptation Causes of change • self-healing • requirements • self-optimizing • faults • resources not trivial ! SWE 796 - Spring ‘ 08 4

Change drives adaptation Causes of change • requirements • faults • resources SWE 796

Change drives adaptation Causes of change • requirements • faults • resources SWE 796 - Spring ‘ 08 Self-adaptation • self-healing • self-optimizing 5

Different focus based on change handled SWE 796 - Spring ‘ 08 6

Different focus based on change handled SWE 796 - Spring ‘ 08 6

o What is a resource? n n n “simple”, i. e. CPU, energy, network

o What is a resource? n n n “simple”, i. e. CPU, energy, network bandwidth service, i. e. speech recognition composite service, i. e. speech-to-speech SWE 796 - Spring ‘ 08 7

Effects of change o o o Software parameters (fidelity) Algorithms, switch the executing code

Effects of change o o o Software parameters (fidelity) Algorithms, switch the executing code redeployment of components Use of resources Services SWE 796 - Spring ‘ 08 8

different models & mechanisms, SWE 796 - Spring ‘ 08 9

different models & mechanisms, SWE 796 - Spring ‘ 08 9

SWE 796 - Spring ‘ 08 10

SWE 796 - Spring ‘ 08 10

process control loops feedback loop Shaw, M. , Beyond Objects: A software design paradigm

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 SWE 796 - Spring ‘ 08 11

Control loop for self-* systems Autonomic Computing: An architectural blueprint for autonomic computing, IBM,

Control loop for self-* systems Autonomic Computing: An architectural blueprint for autonomic computing, IBM, June 2006 (Fourth Ed. ). SWE 796 - Spring ‘ 08 12

Adaptation at different levels Autonomic Computing: An architectural blueprint for autonomic computing, IBM, June

Adaptation at different levels Autonomic Computing: An architectural blueprint for autonomic computing, IBM, June 2006 (Fourth Ed. ). SWE 796 - Spring ‘ 08 13

architecture-based self-adaptation o o Model composed of components & connectors n Specific to C

architecture-based self-adaptation o o Model composed of components & connectors n Specific to C 2, Weaves [Oreizy+, 1999] n Architecture is generic, reusable adaptation mechanism [Garlan+, 2004] Mechanisms for adaptation based on n Knowledge, potential to adapt the mechanism itself [Georgas+, 2004] n Self-adaptation language, Stitch [Cheng+, 2007] n Hierarchical parallel finite state machines (HFSM) [Karsai+, 2001] SWE 796 - Spring ‘ 08 14

architecture of self-adaptation o o peer-to-peer, aggregator-escalator-peer, Chain-of-configurators (Chain-ofresponsibility pattern, Visitor pattern) [Hawthorn+, 2005]

architecture of self-adaptation o o peer-to-peer, aggregator-escalator-peer, Chain-of-configurators (Chain-ofresponsibility pattern, Visitor pattern) [Hawthorn+, 2005] Evaluation using ABAS [Neti+, 2007] SWE 796 - Spring ‘ 08 15

SWE 796 - Spring ‘ 08 16

SWE 796 - Spring ‘ 08 16

No model of the system per se o Agent transfers internal state, Port. Based

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

Model of the system o Contained within each runtime component, autonomous [Georgiadis+, 2002] SWE

Model of the system o Contained within each runtime component, autonomous [Georgiadis+, 2002] SWE 796 - Spring ‘ 08 18

SWE 796 - Spring ‘ 08 19

SWE 796 - Spring ‘ 08 19

search solutions – random & centralized control o o population-based model Mechanisms: crossover, mutation,

search solutions – random & centralized control o o 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] n Generate state diagrams for processing components SWE 796 - Spring ‘ 08 20

compose a solution, distributed o Cell inspired n n n o Cell automata [George+,

compose a solution, distributed o Cell inspired n n n o Cell automata [George+, 2002] n o no specific model simple “instructions” local communication shows self-healing, very low-level Cell inspired agents [Nagpal+, 2003] n Self-assembly, computational synthesis SWE 796 - Spring ‘ 08 21

SWE 796 - Spring ‘ 08 22

SWE 796 - Spring ‘ 08 22

o Managing a resource at the O/S level n o conserve energy by adapting

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

o Managing multiple users n Microeconomics/centralized – auction protocol[Capra+, 2003] o n everybody wins!

o Managing multiple users n Microeconomics/centralized – auction protocol[Capra+, 2003] o n everybody wins! Maximize the sum of bids received Microeconomics/distributed – congestion pricing[Neugebauer+, 2000] o each user is charged depending on the “scarcity” of the resource requested SWE 796 - Spring ‘ 08 24

Causes of change Self-adaptation • requirements • self-healing • faults • self-optimizing • resources

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

Question: Who, what, when, adapts the adapting mechanisms? SWE 796 - Spring ‘ 08

Question: Who, what, when, adapts the adapting mechanisms? SWE 796 - Spring ‘ 08 26

Thank You !!! Questions ? ? ? SWE 796 - Spring ‘ 08 27

Thank You !!! Questions ? ? ? SWE 796 - Spring ‘ 08 27