software self-adaptation a survey of the field “self-adaptive software evaluates its own behavior...
Post on 21-Dec-2015
216 views
TRANSCRIPT
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. SousaStudent: Nikolaos AbatzisSWE796 – Spring 2008
SWE 796 - Spring ‘08 2
Introduction Why change? causes Change what? effects Choices, choices … Are we there yet?
SWE 796 - Spring ‘08 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
SWE 796 - Spring ‘08 4
Change drives adaptation
Causes of change
•requirements
•faults
•resources
Self-adaptation
•self-healing
•self-optimizing
not trivial !
SWE 796 - Spring ‘08 5
Change drives adaptation
Causes of change
•requirements
•faults
•resources
Self-adaptation
•self-healing
•self-optimizing
SWE 796 - Spring ‘08 6
Different focus based on change handled
SWE 796 - Spring ‘08 7
What is a resource? “simple”, i.e. CPU, energy, network
bandwidth service, i.e. speech recognition composite service, i.e. speech-to-speech
SWE 796 - Spring ‘08 8
Effects of change
Software parameters (fidelity) Algorithms, switch the executing code redeployment of components Use of resources Services
SWE 796 - Spring ‘08 9
different models & mechanisms,
SWE 796 - Spring ‘08 10
SWE 796 - Spring ‘08 11
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 12
Control loop for self-* systems
Autonomic Computing: An architectural blueprint for autonomic computing, IBM, June 2006 (Fourth Ed.).
SWE 796 - Spring ‘08 13
Adaptation at different levels
Autonomic Computing: An architectural blueprint for autonomic computing, IBM, June 2006 (Fourth Ed.).
SWE 796 - Spring ‘08 14
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]
SWE 796 - Spring ‘08 15
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]
SWE 796 - Spring ‘08 16
SWE 796 - Spring ‘08 17
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]
SWE 796 - Spring ‘08 18
Model of the system Contained within each runtime
component, autonomous [Georgiadis+, 2002]
SWE 796 - Spring ‘08 19
SWE 796 - Spring ‘08 20
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
SWE 796 - Spring ‘08 21
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
SWE 796 - Spring ‘08 22
SWE 796 - Spring ‘08 23
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]
SWE 796 - Spring ‘08 24
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
SWE 796 - Spring ‘08 25
Many promising approaches exist, bringing tools from control theory, biology, economics, utility theory, artificial intelligence, etc.
Causes of change
•requirements
•faults
•resources
Self-adaptation
•self-healing
•self-optimizing
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.
SWE 796 - Spring ‘08 26
Question: Who, what, when, adapts the adapting
mechanisms?
SWE 796 - Spring ‘08 27
Thank You !!!
Questions ???