sysma s oftware e ngineering for s ervice - o riented and a utonomic s ystems - i ntroduction to a...

21
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 particular R. De Nicola (IMT), M. Loreti (UNIFI) and R.

Upload: felicity-phillips

Post on 18-Dec-2015

225 views

Category:

Documents


0 download

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

20

Autonomic systems as Ensembles

For further details, please visit

http://rap.dsi.unifi.it/scel/

21