biological immunity and software resilience: two faces of the same coin?
TRANSCRIPT
Università degli Studi dell’Aquila
Software Engineering for Resilient Systems7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris
Biological Immunity and Software Resilience: two faces of the same coin?
Marco Autili, Amleto Di Salle, Francesco Gallo, Alexander Perucci, Massimo Tivoli
7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris
Massimo TivoliPhD / Associate Professor
Dep. of Information Engineering, Computer Science and Mathematics –University of L’Aquila
Marco AutiliPhD / Assistant Professor
Dep. of Information Engineering, Computer Science and Mathematics –University of L’Aquila
Amleto Di SallePhD
Dep. of Information Engineering, Computer Science and Mathematics –University of L’Aquila
Alexander PerucciPhD Student
Dep. of Information Engineering, Computer Science and Mathematics –University of L’Aquila
Francesco GalloPhD / Research Fellow
Dep. of Information Engineering, Computer Science and Mathematics –University of L’Aquila
Roadmap
• Introduction• Software Resilience• Immune System Actor Model Overview
• Bio-inspired concept architecture for resilient systems • Consideration and Future Works
7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris
Roadmap
• Introduction• Software Resilience• Immune System
• Actor Model Overview• Bio-inspired concept architecture for resilient systems • Consideration and Future Works
7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris
Roadmap
• Introduction• Software Resilience• Immune System
• Actor Model Overview• Bio-inspired concept architecture for resilient systems • Consideration and Future Works
7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris
Roadmap
• Introduction• Software Resilience• Immune System
• Actor Model Overview• Bio-inspired concept architecture for resilient systems • Consideration and Future Works
7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris
Introduction
Biological Immunity and Software Resilience are two faces of the same coin?
7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris
Introduction
Biological Immunity and Software Resilience are two faces of the same coin?
?7th International Workshop on Software Engineering for
Resilient Systems, 7-‐8th September 2015, Paris
Introduction – Software Resilience
Resilient systems have the ability to endure and successfully recover fromdisturbances by identifying problems and mobilizing the available resources tocope with the disturbance. Resiliency lets a system recover from disruptions,variations, and a degradation of expected working conditions1.
[1] - Synergy between biology and systems resilience - Ashik Chandra
7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris
Introduction - Immune System
?Biological systems are resilient? And in particular, Immune System is resilient?
7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris
Introduction - Immune System
?Immune systems are highly adaptive and scalable, with the ability to cope withmultiple data sources, fuse information together, makes decisions, havemultiple interacting agents, operate in a distributed manner over a multiplescales, and have a memory structure to facilitate learning in order to defencebody against infectious organism (pathogens) and other invaders.
Biological systems are resilient? And in particular, Immune System is resilient?
7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris
Introduction - Immune System
?7th International Workshop on Software Engineering for
Resilient Systems, 7-‐8th September 2015, Paris
Introduction - System Resilient and Immune System
?Biological systems are resilient? And in particular, Immune System is resilient?
Resilient systems have the ability to endure and successfully recover fromdisturbances by identifying problems and mobilizing the available resources tocope with the disturbance. Resiliency lets a system recover from disruptions,variations, and a degradation of expected working conditions.
Immune systems are highly adaptive and scalable, with the ability to cope withmultiple data sources, fuse information together, makes decisions, havemultiple interacting agents, operate in a distributed manner over a multiplescales, and have a memory structure to facilitate learning in order to defencebody against infectious organism (pathogens) and other invaders.
7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris
Introduction – System Resilient and Immune System
?Biological systems are resilient? And in particular, Immune System is resilient?
Resilient systems have the ability to endure and successfully recover fromdisturbances by identifying problems and mobilizing the available resources tocope with the disturbance. Resiliency lets a system recover from disruptions,variations, and a degradation of expected working conditions.
Immune systems are highly adaptive and scalable, with the ability to cope withmultiple data sources, fuse information together, makes decisions, havemultiple interacting agents, operate in a distributed manner over a multiplescales, and have a memory structure to facilitate learning in order to defencebody against infectious organism (pathogens) and other invaders.
May be Yes
7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris
Actor Model Overview
How we combine Immune System and Resilient Software?
Actor Model is a formal mathematical model of concurrent computation, andactually several programming language employing the notion of actor (ex.Java, Scala)
The Actor Model is characterized by:
• inherent concurrency of computation within and among Actors, • dynamic creation/replication of Actors, • interaction only through direct asynchronous message passing.
Resilience is achieved through replication, containment, isolation anddelegation mechanisms.
7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris
Actor Model Overview
We focus on the Akka toolkit2, which is a framework that natively permits aprogramming style based on the Actor Model.
The Actor Model is characterized by:
• inherent concurrency of computation within and among Actors, • dynamic creation/replication of Actors, • interaction only through direct asynchronous message passing.
Resilience is achieved through replication, containment, isolation anddelegation mechanisms.
7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris
[2] - http://akka.io
Bio-‐inspired concept architecture for resilient systems -‐ I
?-‐ The System actor creates the KillerSupervisor , HelperSupervisor andConsumerSupervisoractors
- The supervisor actors are in charge of detecting changes, intrusions, failures, and undesired behaviours
- Supervisor actors are in charge of creating respective sub actors, namely KillerActor , HelperActor andConsumerActor
-‐ Each message activates specific instances ofHelperActor and KillerActor
7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris
Bio-inspired concept architecture for resilient systems - II
Agility:undesired behaviours or changes represent the softwarecounterpart of pathogens.
Redundancy:Akka toolkit offers persistence.
Dynamic learning:if some change or undesired behaviour occurs at run time,and the affected actor is not able to manage it, the actorinitially treats it as an unknown message.
Flexibility:the actors can be dynamically produced or replicated, withoutblocking the system.
Robustness:it uses the let it crash policy to manage the programmeddeath of faulty components that can be dynamically killed orstopped for preserving the system functioning
7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris
Consideration and Future Works - I
From our point view…..YES
Biological Immunity and Software Resilience are two faces of the same coin?
7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris
Consideration and Future Works - II- automatic recognition of software failures/changes;
- dynamic learning of the solutions required to correctly react to the recognized failures/changes;
- modular actuation of the (learned) solution, without compromising the over all system function;
- self-stabilization of the self-*actions;
- multilayer management of failures/changes (and related strategies) in a modular, yet cohesive, waydepending on the affected layer(s), e.g., application, middleware, operating system, network layer.
7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris
Consideration and Future Works - II- automatic recognition of software failures/changes;
- dynamic learning of the solutions required to correctly react to the recognized failures/changes;
- modular actuation of the (learned) solution, without compromising the over all system function;
- self-stabilization of the self-*actions;
- multilayer management of failures/changes (and related strategies) in a modular, yet cohesive, waydepending on the affected layer(s), e.g., application, middleware, operating system, network layer.
The opportunity to explore to use our formalism to create executable software models of biologicalsystems can be used for predictions, preparation and elimination of unnecessary, dangerous orunethical laboratory experiments
7th International Workshop on Software Engineering for Resilient Systems, 7-‐8th September 2015, Paris