Autonomic Computing (Tiezzi)

advertisement
SysMA
SOFTWARE ENGINEERING FOR SERVICEORIENTED AND AUTONOMIC SYSTEMS
- INTRODUCTION TO AUTONOMIC SYSTEMS-
Francesco Tiezzi
(francesco.tiezzi@imtlucca.it)
Lucca (Italy) – October, 2014
In co-operation with ASCENS members, in particular
R. De Nicola (IMT), M. Loreti (UNIFI) and R. Pugliese (UNIFI)
Software-intensive distributed systems
Software-intensive systems are those complex systems
where software contributes essential influences to the
design, construction, deployment and evolution of the
system as a whole
[IEEE Standard 1471]
Software-Intensive Distributed Systems (SIDS)
– large-scale, decentralised, heterogeneous, highlydynamic, open-ended, adaptive, …
– SIDS feature complex interactions among components
– SIDS may interact with other systems, devices,
sensors, people, …
2
Software-intensive distributed
systems everywhere
Embedded automotive
systems
Robotic
systems
Cloud systems
Business processes
(web services)
e-Health systems
3
Autonomic systems
Modern software-intensive systems feature
•
•
•
•
massive numbers of components
complex interactions
operating in open and non-deterministic environments
dynamically adapting to new requirements, technologies
and environmental conditions
This class of complex systems is also referred
with term ensembles [IST Coordinated Action InterLink]
Autonomic Computing paradigm permits mastering
the challenges posed by such systems
Autonomic
systems
4
Autonomic Computing
vision
Challenge: mastering the
complexity
Inspiration: management
of a massively complex
systems, the human body
by the autonomic
nervous system
5
Autonomic Computing
Systems can manage themselves by continuously
• monitoring their behaviour (self-awareness) and their
working environment (context-awareness)
• analysing the acquired knowledge to identify changes
• planning reconfigurations
Analyze
• executing plan actions
Monitor
Knowledge
Plan
Execute
IBM’s MAPE-K loop
6
Autonomic Computing:
Self-∗ properties
Current computing
Self-configuration Corporate data centers have
Autonomic computing
multiple vendors and platforms.
Installing, configuring, and
integrating systems is time
consuming and error prone.
Automated configuration of
components and systems follows
high-level policies. Rest of system
adjusts automatically and
seamlessly.
Self-optimization
Systems have hundreds of
manually set, nonlinear tuning
parameters, and their number
increases with each release.
Components and systems
continually seek opportunities to
improve their own performance
and efficiency.
Self-healing
Problem determination in large,
complex systems can take a
team of programmers weeks.
System automatically detects,
diagnoses, and repairs localized
software and hardware problems.
Self-protection
Detection of and recovery from
attacks and cascading failures is
manual.
System automatically defends
against malicious attacks or
cascading failures. It uses early
warning to anticipate and prevent
systemwide failures.
Self-awareness, Self-organization, Self-expression, …
7
Autonomic systems:
robot swarm example
Embedded automotive
systems
Robotic
systems
A simple swarm robotics scenario
Robots of a swarm have to reach different target zones
according to their assigned tasks (help other robots, reach a
safe area, clear a minefield, etc.)
Robots have:
• limited battery lifetime
• to discover the location of the target
Business processes
e-Health
systems
• to inform each other about
locations
(web services)
Cloud systems
8
Autonomic systems:
issues and challenges
Complexity in their development is due to
– complex interactions among components and
with humans and other systems
(understand the emergent behaviour)
– distributed and concurrent nature
– large size
– open and non-deterministic operating
environments (need of adaptation)
The challenge is engineering trustworthy
autonomic systems
9
Autonomic systems:
engineering approach
This calls for a formal-based approach for
engineering trustworthy autonomic systems
10
Autonomic systems:
engineering approach
This calls for a formal-based approach for
engineering trustworthy autonomic systems
•
•
•
•
•
Design
Modelling
Analysis
Programming
Deployment
11
Autonomic systems:
engineering approach
example
This calls for aWarmup
formal-based
approach for
• engineering
Consider the trustworthy
code x = 1; autonomic
y = x++ + systems
x++;
• What is the value of x and y after its execution?
Why formal-based?
• understanding the overall behaviour resulting from
system interactions can be tricky and error-prone
• It is even more critical when concurrency and
interactions enter the game…
12
Autonomic systems:
engineering approach
This calls for a formal-based methodology
for engineering trustworthy SIS
The programmer can avoid operator ++, but
Why
• weformal-based?
cannot afford to stop building complex
systems
• understanding
the overall behaviour resulting from
• system
we need
to build trustworthy
systems
interactions
can be tricky and
error-prone
• solid mathematical foundations lay the basis for
formal reasoning on systems behavior (hence, for
developing trustworthy systems)
13
Formal-based approach for
engineering autonomic systems
14
Formal-based approach for
engineering trustworthy systems
Ingredients of the approach
1. specification language
–
–
equipped with a formal semantics
the semantics associates mathematical models to language terms
2. verification techniques
–
–
built on top of the models
logics used to express properties of interest for the considered
application domain
3. software support
–
–
–
programming framework
runtime environment
verification tools
15
Formal-based approach for
engineering trustworthy systems
Linguistic approach: languages play a key
role on the engineering of systems
Why do we need a new language for each
specific application domain?
Systems must be specified as naturally as possible
• distinctive aspects of the domain are first-class
citizens
intuitive/concise spec., no encodings
• high-level abstract models
feasible analysis
• analysis results are in terms of system features,
not their low-level representation
feedbacks
16
Formal-based approach for
engineering trustworthy systems
Linguistic approach: languages play a key
role on the engineering of systems
Challenge for language designers
devise appropriate abstractions and linguistic
primitives to deal with the specificities of the
systems under consideration
17
Formal-based approach at work
on autonomic systems
Instantiation of the general approach
1. specification language
– SCEL
– FACPL
2. verification techniques
– Model checking with Spin
– Simulation and statistical model checking
3. programming framework and runtime environment
– jRESP
18
Autonomic systems as Ensembles
Our appoach
Systems are structured as Autonomic Components (AC)
dynamically forming AC ensembles (ACE) via interactions
• AC have an interface exposing component attributes
Attribute-based communication
Predicates over AC attributes dynamically specify ACE as
targets of communication actions
Ensembles are not rigid networks but rather highly flexible structures
where components linkages are dynamically established
19
Autonomic systems as Ensembles
20
For further details, please visit
http://rap.dsi.unifi.it/scel/
21
Download