A white-box perspective on self-adaptation and self-awareness
1. A White-box Perspective on Self-Adaptation and Self-Awareness
(with a focus on Reflective Russian Dolls)
Alberto Lluch Lafuente
alberto.lluch@imtlucca.it
ascens
autonomic service component ensembles
Roberto Bruni, University of Pisa
Andrea Corradini, University of Pisa
Fabio Gadducci, University of Pisa
Andrea Vandin, IMT Lucca
10th-16th June 2012 Edinburgh
6. the goal of ascens
“...build ensembles in a way that combines
software engineering,
formal methods and
autonomic, adaptive, self-aware systems.”
- ascens-ist.eu
8. - Lotfi A. Zadeh,
Proceedings of the
IEEE, 1963
9. adaptation
“... 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
10. adaptation in software systems
“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.
11. adaptation in software systems
“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
12. adaptation in software systems
“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”
13. 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?
15. is this adaptation?
“if the hill is too steep then
assemble with other robots and try again”
16. is this adaptation?
...
if (tooSteep || ... ){
setLight(green);
setState(Anti_Phototaxis);
}
..
17. is obstacle avoidance adaptive?
“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.
18. black-box adaptation
In other fields (e.g. Biology, Control Theory)
systems have a “default” behaviour & goal;
adaptation reacts to “external perturbations”.
20. 5W1H (six honest men)
(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
21. this talk...
...focuses on the “HOW”
“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”
22. desiderata
Conceptual white-box definitions of adaptation...
… useful to disambiguate “adaptivity”;
… general enough & consistent with the literature;
… useful for designing & analysing adaptive systems.
23. what is a program?
“program = control + data”
- Niklaus Wirth, “Algorithms + Data Structures = Programs”,
Prentice-Hall (1976)
24. what is a program?
CONTROL DATA
Data can be used to
store information;
influence the control;
both.
25. what is an adaptable program?
“adaptable program =
control + data
26. what is an adaptable program?
“adaptable program =
control + data
control data + the rest ”
27. what is an adaptable program?
CONTROL DATA
CONTROL OTHER DATA
“adaptation is the run-time
modification of control data”
28. a program is...
“...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.”
29. are these definitions...
… useful to disambiguate “adaptivity”?
… general enough & consistent with the literature?
… useful for designing & analysing adaptive systems?
30. 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.
31. is this adaptation?
...
if (tooSteep || ... ){
setLight(green);
is the state a control data?
setState(Anti_Phototaxis);
}
..
32. design & analysis: control data & effectors
AUTONOMIC MANAGER
Analyze Plan
Monitor Knowledge Execute
EFFECTOR
MANAGED ELEMENT
CD
CONTROL
33. design & analysis: MAPE-K
Control
AUTONOMIC MANAGER
Data
Analyze Plan
Control
Monitor Knowledge Execute
Control
Data
MANAGED ELEMENT
34. CD
design & analysis:
A P
adaptation towers
M K E
CD CD
A P
CONTROL M E
K
CD
CD A P
M K E
CONTROL
CD
MANAGED ELEMENT
35. design & analysis: architectural styles
CD CD
CONTROL CONTROL
do we want this?
51. Maude is also a semantic framework
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...
52. Maude is tool supported
An Interpreter;
Debuggers (declarative/interactive);
Model checkers (e.g. LTL);
Confluence & Termination checkers;
A theorem prover;
...
53. maude supports logical reflection
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.
58. white-box adaptation
manager
state rules state rules
(black-box component)
interpreter
(white-box component)
59. self-awareness
“Self-Awareness means
that the system is aware of manager
its self states
and behaviors. ” state rules
- M.G. Hinchey, et al, “Self-managing
software”. IEEE Computer 39(2) 107–109, 2006. interpreter
(white-box component)
63. “formal” autonomic managers
model checking,
AUTONOMIC MANAGER
logical inference
Analyze Plan
Monitor Knowledge Execute
EFFECTOR
MANAGED ELEMENT
CD
CONTROL
65. summary
White 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;
66. 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/