Top Banner
A White-box Perspective on Self-Adaptation and Self-Awareness (with a focus on Reflective Russian Dolls) Alberto Lluch Lafuente [email protected] 10th-16th June 2012 Edinburgh ascens autonomic service component ensembles Roberto Bruni, University of Pisa Andrea Corradini, University of Pisa Fabio Gadducci, University of Pisa Andrea Vandin, IMT Lucca
68
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: A white-box perspective on self-adaptation and self-awareness

A White-box Perspective on Self-Adaptation and Self-Awareness

(with a focus on Reflective Russian Dolls)

Alberto Lluch [email protected]

10th-16th June 2012 Edinburgh

ascensautonomic service component ensembles

Roberto Bruni, University of Pisa

Andrea Corradini, University of Pisa

Fabio Gadducci, University of Pisa

Andrea Vandin, IMT Lucca

Page 2: A white-box perspective on self-adaptation and self-awareness

why adaptation?

Page 3: A white-box perspective on self-adaptation and self-awareness

ascensautonomic service component ensembles

Page 4: A white-box perspective on self-adaptation and self-awareness

“...open-ended, highly parallel, massively distributed systems...

...made of self-aware, self-adaptive, [...], autonomic components.”

- ascens-ist.eu

ensembles

Page 5: A white-box perspective on self-adaptation and self-awareness

Robot Swarms

E-vehicles

Page 6: A white-box perspective on self-adaptation and self-awareness

“...build ensembles in a way that combines

software engineering, formal methods and autonomic, adaptive, self-aware systems.”

- ascens-ist.eu

the goal of ascens

Page 7: A white-box perspective on self-adaptation and self-awareness

what isadaptation?

Page 8: A white-box perspective on self-adaptation and self-awareness

- Lotfi A. Zadeh, Proceedings of the

IEEE, 1963

Page 9: A white-box perspective on self-adaptation and self-awareness

“... changing something (itself, others, the environment) so that it would be more suitable or fit for some purpose than it would have otherwise been”

- T. Lints, “The essentials in defining adaptation”,

4th Annual IEEE Systems Conference

adaptation

Page 10: A white-box perspective on self-adaptation and self-awareness

“Self-adaptive software evaluates its own behavior and changes behavior when the evaluation indicates that […] better functionality or performance is possible.”

- Laddaga, R. “Self-adaptive software”,Technical Repeport 98-12, DARPA BAA, 1997.

adaptation in software systems

Page 11: A white-box perspective on self-adaptation and self-awareness

“Self-adaptive software modifies its own behavior in response to changes in its operating environment.”

- P. Oreizy, et al, “An architecture-based approach to self-adaptive software”. IEEE Intelligent Sys. 14, 3, 54–62, 1999

adaptation in software systems

Page 12: A white-box perspective on self-adaptation and self-awareness

“A software system is self-adaptive if it modifies its behaviour as a reaction to a change in itself or its context to maintain/improve goal achievement”

adaptation in software systems

Page 13: A white-box perspective on self-adaptation and self-awareness

what's the problem with software?

Most programs... ...“change behaviour” (e.g. conditional branching);

...“to react to external perturbations” (e.g. inputs);

...“to reach goals” (e.g. functional requirements).

How do we distinguish...

...an adaptive software from a non adaptive one?

...adaptation logic from application logic?

Page 14: A white-box perspective on self-adaptation and self-awareness

is this adaptation?...if f(x) thendo_this;

elsedo_that;

endif...

Page 15: A white-box perspective on self-adaptation and self-awareness

“if the hill is too steep then

assemble with other robots and try again”

is this adaptation?

Page 16: A white-box perspective on self-adaptation and self-awareness

is this adaptation?

...

if (tooSteep || ... ){ setLight(green); setState(Anti_Phototaxis); } ..

Page 17: A white-box perspective on self-adaptation and self-awareness

“Obstacle avoidance may count as adaptive behaviour if […] obstacles appear rarely. [...]

If the ‘normal’ environment is […] obstacle-rich, then avoidance becomes [...] “normal” behaviour rather than an adaptation.”

- Ezequiel di Paolo, course on “Adaptive Systems”,

University of Sussex, Spring 2006.

is obstacle avoidance adaptive?

Page 18: A white-box perspective on self-adaptation and self-awareness

black-box adaptation

In other fields (e.g. Biology, Control Theory)

systems have a “default” behaviour & goal;

adaptation reacts to “external perturbations”.

Page 19: A white-box perspective on self-adaptation and self-awareness

white-box adaptation

Page 20: A white-box perspective on self-adaptation and self-awareness

(1) Why? (e.g. robustness? performance? goals?)(2) When? (e.g. reactively or proactively?)(3) Where? (e.g. which architectural level?)(4) What? (e.g. which artifacts?)(5) Who? (e.g. autonomic managers? humans?)(6) How? (e.g. which actions, in which order?)

- M. Salehie et al., “Self-adaptive software: Landscape and research challenges”. ACM Transactions on Autonomous and Adaptive Systems 4(2), 2009

- R. Laddag. “Active software”. Int. Workshop on Self-Adaptive Software. 11–26, 2000

5W1H (six honest men)

Page 21: A white-box perspective on self-adaptation and self-awareness

“A software system is self-adaptive if it modifies its behaviour as a reaction to a change in itself or its context to maintain/improve goal achievement”

this talk...

...focuses on the “HOW”

Page 22: A white-box perspective on self-adaptation and self-awareness

desiderata

Conceptual white-box definitions of adaptation...

… useful to disambiguate “adaptivity”;

… general enough & consistent with the literature;

… useful for designing & analysing adaptive systems.

Page 23: A white-box perspective on self-adaptation and self-awareness

“program = control + data”

- Niklaus Wirth, “Algorithms + Data Structures = Programs”,

Prentice-Hall (1976)

what is a program?

Page 24: A white-box perspective on self-adaptation and self-awareness

what is a program?

CONTROL DATA

Data can be used to

store information;

influence the control;

both.

Page 25: A white-box perspective on self-adaptation and self-awareness

“adaptable program = control + data

what is an adaptable program?

Page 26: A white-box perspective on self-adaptation and self-awareness

“adaptable program = control + data

what is an adaptable program?

control data + the rest ”

Page 27: A white-box perspective on self-adaptation and self-awareness

CONTROL OTHER DATA

CONTROL DATA

what is an adaptable program?

“adaptation is the run-time modification of control data”

Page 28: A white-box perspective on self-adaptation and self-awareness

“...adaptable if it has a distinguished collection of CD that can be modified at runtime.”

“...adaptive if its control data is modified at runtime for some computation.”

“...self-adaptive if it modifies its own control data at runtime.”

a program is...

Page 29: A white-box perspective on self-adaptation and self-awareness

are these definitions...

… useful to disambiguate “adaptivity”?

… general enough & consistent with the literature?

… useful for designing & analysing adaptive systems?

Page 30: A white-box perspective on self-adaptation and self-awareness

on ambiguity

The choice of CD is (of course) arbitrary:

The same system can be adaptive in different ways!

but...

...the responsibility of declaring

“what is the adaptive behaviour”

is passed from the observer to the designer.

Page 31: A white-box perspective on self-adaptation and self-awareness

is this adaptation?

...

if (tooSteep || ... ){ setLight(green); setState(Anti_Phototaxis); } ..

is the state a control data?

Page 32: A white-box perspective on self-adaptation and self-awareness

design & analysis: control data & effectors

Monitor ExecuteKnowledge

Analyze Plan

AUTONOMIC MANAGER

CONTROL

CD

EFFECTORMANAGED ELEMENT

Page 33: A white-box perspective on self-adaptation and self-awareness

design & analysis: MAPE-K

Monitor ExecuteKnowledge

Analyze Plan

AUTONOMIC MANAGER

MANAGED ELEMENT

Control Data

Control Data

Con

trol

Page 34: A white-box perspective on self-adaptation and self-awareness

design & analysis:

adaptation towers

M EK

A P

MANAGED ELEMENT

CD

M EK

A P

CD

M EK

A P

CD

CD

CONTROL

CD

CONTROL

CD

Page 35: A white-box perspective on self-adaptation and self-awareness

design & analysis: architectural styles

CONTROL

CD

CONTROL

CD

do we want this?

Page 36: A white-box perspective on self-adaptation and self-awareness

Identify some control data such that

its modification coincides with

adaptation (as understood by the authors)

consistency with literature

Page 37: A white-box perspective on self-adaptation and self-awareness

generality

CONTROL DATA

configuration variables programs

models

aspects

contexts

policies

rules

Page 38: A white-box perspective on self-adaptation and self-awareness

some examples

Aspect-Oriented Computing [Salvaneschi et al. 2011]

Service Component Ensemble Language [De Nicola et al. 2012]

Specification-carrying programs [Pavlovic 2000]

Context-Oriented Computing [Ghezzi et al. 2011]

IBM's MAPE-K [Horn 2001]

Run-time architectural models [Oreizy et al. 1999]

FORMS [Weyns et al. 2012]

Model-based adaptation [Zhang&Cheng 2006]

Coordination contexts [Andrade&Fiadeiro 2002]

Non-deterministic interactions [Broy et al. 2009]

Adaptation patterns [Cabri et al. 2011]

...

Reflective Russian Dolls [Meseguer&Talcott 2002]

THIS TALK

Page 39: A white-box perspective on self-adaptation and self-awareness

reflectiverussiandolls

Page 40: A white-box perspective on self-adaptation and self-awareness

- J. Meseguer et al., “Semantic models for distributed object reflection”, ECOOP 2002, LNCS 2374. Springer, 1–36.

Page 41: A white-box perspective on self-adaptation and self-awareness

logicalreflection

Page 42: A white-box perspective on self-adaptation and self-awareness

reflection tower

Page 43: A white-box perspective on self-adaptation and self-awareness

reflection tower

Page 44: A white-box perspective on self-adaptation and self-awareness

reflection tower

Page 45: A white-box perspective on self-adaptation and self-awareness

reflection tower

Page 46: A white-box perspective on self-adaptation and self-awareness

adaptation tower

Page 47: A white-box perspective on self-adaptation and self-awareness

adaptation tower

Page 48: A white-box perspective on self-adaptation and self-awareness

adaptation tower

Page 49: A white-box perspective on self-adaptation and self-awareness

what is Maude?

“A high-level, declarative languagethat supports both equationaland rewriting logic computation”

– maude.cs.uiuc.edu

Page 50: A white-box perspective on self-adaptation and self-awareness

mod m(x) is

import m1, m2,...

sort s1, s2,...

ops f, g,...

eq f(...) = ...

rl l => r

endm

modular, functional, rule-based, etc.

Page 51: A white-box perspective on self-adaptation and self-awareness

models of concurrent computation: equational programming, lambda calculi, Petri nets, process algebras (CCS and pi-calculus), actors, operational semantics of languages (via K, SOS): Java, C, Python, Haskell, agent

languages, active networks languages, hardware description languages, logical framework and metatool: linear logic, translations between theorem provers, type systems, open calculus of constructions, tile logic distributed architectures and components: UML, OCL, MOF, Service architectures and

middlewares, open distributed processing, models, specification and analysis of communication protocols: active networks, wireless sensor networks, firewire leader election protocol, modeling and analysis of

security protocols: cryptographic protocol specification language CAPSL, MSR, security specification formalism, Maude-NPA, real-time, biological,

probabilistic systems: real-time maude, pathway logic...

Maude is also a semantic framework

Page 52: A white-box perspective on self-adaptation and self-awareness

Maude is tool supported

An Interpreter; Debuggers (declarative/interactive); Model checkers (e.g. LTL); Confluence & Termination checkers; A theorem prover; ...

Page 53: A white-box perspective on self-adaptation and self-awareness

META-LEVEL is a module (the universal theory) where– modules, terms, rules, equations, sorts, etc. are data.– matching, rule application, rewriting, etc. are functions.

META-LEVEL is a module so...

it can be treated as data again, and again...

enabling the tower of reflection.Meta-programming applications

– transformation of modules;– analysis of modules;– ...– adaptation.

maude supports logical reflection

Page 54: A white-box perspective on self-adaptation and self-awareness

nested configurations

Page 55: A white-box perspective on self-adaptation and self-awareness

message filtering & replication

Page 56: A white-box perspective on self-adaptation and self-awareness

black-box adaptation

Page 57: A white-box perspective on self-adaptation and self-awareness

white-box adaptation

Page 58: A white-box perspective on self-adaptation and self-awareness

white-box adaptation

state rules

interpreter

state rules

manager

(black-box component)

(white-box component)

Page 59: A white-box perspective on self-adaptation and self-awareness

self-awareness

interpreter

state rules

manager

(white-box component)

“Self-Awareness means

that the system is aware of

its self states

and behaviors. ”

- M.G. Hinchey, et al, “Self-managing software”. IEEE Computer 39(2) 107–109, 2006.

Page 60: A white-box perspective on self-adaptation and self-awareness

reflective russian dolls

Page 61: A white-box perspective on self-adaptation and self-awareness

reflective russian dolls

Page 62: A white-box perspective on self-adaptation and self-awareness

mobility

Page 63: A white-box perspective on self-adaptation and self-awareness

“formal” autonomic managers

Monitor ExecuteKnowledge

Analyze Plan

AUTONOMIC MANAGER

CONTROL

CD

EFFECTORMANAGED ELEMENT

model checking,

logical inference

Page 64: A white-box perspective on self-adaptation and self-awareness

concludingremarks

Page 65: A white-box perspective on self-adaptation and self-awareness

summaryWhite box-adaptation: Focus on “how” rather than “why”; Adaptation logic decided by the designers, rather than observers;

“Control Data” white box criteria: “adaptable program = control + {control data + other data}”; Wide spectrum of control data: from “parameters” to “programs”;

Reflective Russian Dolls: Support formal techniques for adaptation and awareness; Rely on logical reflection and wrapping techniques;

Page 66: A white-box perspective on self-adaptation and self-awareness

main references M. Salehie, L. Tahvildari, Self-adaptive software: Landscape and research

challenges. ACM Transactions on Autonomous and Adaptive Systems 4 (2), 2009.

R. Bruni, A. Corradini, F. Gadducci, A. Lluch Lafuente, A. Vandin, A Conceptual Framework for Adaptation, Proceedings of the 15th International Conference on the Fundamentals of Software Engineering (FASE’12), LNCS, vol. 7212, pp. 240–254, Springer (2012), draft available at http://eprints.imtlucca.it/1059

J. Meseguer, C. Talcott, Semantic models for distributed object reflection. In ECOOP 2002, B. Magnusson, Ed. LNCS Series, vol. 2374. Springer, 1–36, 2002.

R. Bruni, A. Corradini, F. Gadducci, A. Lluch Lafuente, A. Vandin, Modelling and analyzing adaptive self-assembling strategies with Maude, Pre-proceedings of the International Workshop on Rewriting Logic and its Applications (WRLA'12), 2012, draft available at http://eprints.imtlucca.it/1048/

Page 67: A white-box perspective on self-adaptation and self-awareness

Thanks!