sysma s oftware e ngineering for s ervice - o riented and a utonomic s ystems - i ntroduction to a...
TRANSCRIPT
SysMA
Software Engineering for Service-Oriented and Autonomic
Systems - Introduction to Autonomic Systems-
Lucca (Italy) – October, 2014
Francesco Tiezzi([email protected])
In co-operation with ASCENS members, in particularR. De Nicola (IMT), M. Loreti (UNIFI) and R. Pugliese (UNIFI)
Software-Intensive Distributed Systems (SIDS)– large-scale, decentralised, heterogeneous, highly-
dynamic, open-ended, adaptive, …
– SIDS feature complex interactions among components
– SIDS may interact with other systems, devices, sensors, people, …
Software-intensive distributed systems
2
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 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 everywhere
3
Embedded automotive systems
Robotic systems
Cloud systems
e-Health systemsBusiness processes(web services)
Autonomic Computing paradigm permits mastering the challenges posed by such systems
Autonomic systemsModern 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
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
4
This class of complex systems is also referred with term ensembles [IST Coordinated Action InterLink]
This class of complex systems is also referred with term ensembles [IST Coordinated Action InterLink]
Autonomic systems
Autonomic Computing
Challenge: mastering the complexity
Inspiration: management of a massively complex systems, the human bodyby the autonomic nervous system
5
vision
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
•executing plan actions
6
IBM’s MAPE-K loop
7
Autonomic Computing: Self-∗ properties
Current computing Autonomic computing
Self-configuration
Corporate data centers have 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, …
8
Embedded automotive systems
Robotic systems
Cloud systems
e-Health systemsBusiness processes(web services)
Autonomic systems: robot swarm example
A simple swarm robotics scenarioRobots 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•to inform each other about locations
A simple swarm robotics scenarioRobots 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•to inform each other about locations
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)
9
Autonomic systems: issues and challenges
The challenge is engineering trustworthy autonomic systems The challenge is engineering trustworthy autonomic systems
10
Autonomic systems: engineering approach
This calls for a formal-based approach for engineering trustworthy autonomic systems
This calls for a formal-based approach for engineering trustworthy autonomic systems
11
• Design• Modelling• Analysis• Programming• Deployment
Autonomic systems: engineering approach
This calls for a formal-based approach for engineering trustworthy autonomic systems
This calls for a formal-based approach for engineering trustworthy autonomic systems
This calls for a formal-based approach for engineering trustworthy autonomic systems
This calls for a formal-based approach for engineering trustworthy autonomic systems
12
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…
• It is even more critical when concurrency and interactions enter the game…
Warmup example
•Consider the code x = 1; y = x++ + x++;•What is the value of x and y after its execution?
Autonomic systems: engineering approach
13
Why formal-based?•understanding the overall behaviour resulting from system interactions can be tricky and error-prone
•solid mathematical foundations lay the basis for formal reasoning on systems behavior (hence, for developing trustworthy systems)
This calls for a formal-based methodology for engineering trustworthy SIS
This calls for a formal-based methodology for engineering trustworthy SISThe programmer can avoid operator ++, but •we cannot afford to stop building complex systems•we need to build trustworthy systems
The programmer can avoid operator ++, but •we cannot afford to stop building complex systems•we need to build trustworthy systems
Autonomic systems: engineering approach
Formal-based approach for engineering autonomic systems
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
Linguistic approach: languages play a key role on the engineering of systems
Why do we need a new language for each specific application domain?
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
Challenge for language designersdevise appropriate abstractions and linguistic primitives to deal with the specificities of the systems under consideration
17
Formal-based approach for engineering trustworthy systems
Linguistic approach: languages play a key role on the engineering of systems
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
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
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