SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Towards a Foundational API for Resilient Distributed
Systems Design
Matteo Francia1, Danilo Pianini1, Jacob Beal2, Mirko Viroli1
1Alma Mater Studiorum—Universit`a di Bologna
2Raytheon BBN Technologies
2nd eCAS Workshop on Engineering Collective Adaptive Systems
2017-09-22 – Tucson, AZ, USA
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 1 / 27
Outline
1 Introduction
Device-centric engineering in the IoT era
Distributed system as a single entity
Resilient building blocks
2 A foundational library for aggregate programming
Goal and methodology
Meta patterns
Organization
Testing environment
3 Evaluation
Meet the VIP
Resource allocation
4 Conclusion
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 2 / 27
Introduction
Outline
1 Introduction
Device-centric engineering in the IoT era
Distributed system as a single entity
Resilient building blocks
2 A foundational library for aggregate programming
Goal and methodology
Meta patterns
Organization
Testing environment
3 Evaluation
Meet the VIP
Resource allocation
4 Conclusion
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 2 / 27
Introduction Device-centric engineering in the IoT era
Computing everywhere
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 3 / 27
Introduction Device-centric engineering in the IoT era
Device-centric engineering
Low-level details impact system design
Communication protocols
Fault tolerance
Power saving policy
...
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 4 / 27
Introduction Distributed system as a single entity
The aggregate programming stack
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 5 / 27
Introduction Distributed system as a single entity
Level 1: Field Calculus
“Everything is a field”
Stateless rounds
3 constructs
(a) State (rep x e0 e)
(b) Neighborhood (nbr x)
(c) Restriction (if c e0 e1)
H A
A
D
H
T
H
K
B
(a) rep (b) nbr
(c) if
Figure: Field calculus constructsFrancia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 6 / 27
Introduction Distributed system as a single entity
Protelis
A concrete implementation of field calculus
Functional paradigm
Java-family syntax
Java interoperability
P ::= I F s; ;; Program
I ::= import m ;; Imports
F ::= def f(x) {s;} ;; Fun definition
s ::= e | let x = e ;; Statement
e ::= ;; Expression
| f(e) | f.apply(e) ;; Fun call
| rep(x<-w){s;} ;; State
| if(e){s;} else {s ;};; Restriction
| nbr{s;} ;; Neighborhood
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 7 / 27
Introduction Resilient building blocks
Back to the stack
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 8 / 27
Introduction Resilient building blocks
Level 2: Building blocks
Coordination in 4 patterns:
G Spreading
C Aggregation
T Evaporation
S Clustering
With nice features:
Self-stabilization [VBDP15]
Composability [BV14]
Substitutability [VAB+17]
Similar in functionality to basic
patterns in bio-inspired
coordination [FSM+13]
(a) G: spreading (b) C: aggregation
3
1
7
2
4
3
3
1
0
(c) T: evaporation (d) S: clustering
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 9 / 27
A foundational library for aggregate programming
Outline
1 Introduction
Device-centric engineering in the IoT era
Distributed system as a single entity
Resilient building blocks
2 A foundational library for aggregate programming
Goal and methodology
Meta patterns
Organization
Testing environment
3 Evaluation
Meet the VIP
Resource allocation
4 Conclusion
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 9 / 27
A foundational library for aggregate programming Goal and methodology
Aggregate programming
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 10 / 27
A foundational library for aggregate programming Goal and methodology
Level 3: protelis-lang
GOALS
Collect existing algorithms
Classify them by scope
Fill in missing patterns
Encapsulate coordination best practices “under the hood”
Two-stages:
1 Search in existing literature
2 Compare with existing abstractions and technologies
[FSM+13, BDU+13]
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 11 / 27
A foundational library for aggregate programming Meta patterns
multiInstance
A
A
B
B
Idea
Running multiple copies of a process in parallel, one for each identified
“source” and aggregate their outputs
This pattern can be leveraged for several applications:
1 Temporal replication [PBV16];
2 acquire information coming from a dynamic number of sources;
3 extend the application scope of existing algorithms.
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 12 / 27
A foundational library for aggregate programming Organization
Library structure
Specialized building blocks
Plus meta-programming
protelis
coord state
time
countDown
cyclicTimer
limitedMemory
T
...
meta
boundSpreading
multiInstance
multiRegion
publishSubscribe
...
sparsechoice
S
spreading
broadcast
crfGradient
distanceTo
distanceBetween
flexGradient
gradcast
G
...
accumulation
average
C
cMultiSum
cMultiMin
consensus
countDevices
...
nonselfstabilizing
accumulation
gossip
...
nonselfstabilizing
time
gossipEver
...
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 13 / 27
A foundational library for aggregate programming Organization
Code snippet
module protelis:coord:spreading
/** Propagation of information from a source.
* @param source bool , whether the device is a source
* @param initial T, information spread by the source
* @param metric () -> num , how to estimate distance
* @param accumulate (T) -> T, how to accumulate information
* @return T, accumulated value
*/
def G(source , initial , metric , accumulate) {
/* implementation with rep , nbr , if ... */
}
/** Distance to the closest source.
* @param source bool , whether the device is a source
* @return num , field distances to the closest source
*/
def distanceTo(source) {
G(source , 0, nbrRange , (v) -> { v + nbrRange.apply () })
}
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 14 / 27
A foundational library for aggregate programming Testing environment
Automated testing I
Testing is a serious concern, as we need to:
verify the correctness of the implementation
prevent regressions
Most of the algorithms in protelis-lang are distributed
testing locally provides information of little use
a simulated environment is required
We exploited Alchemist [PMV13] for testing on simulated networks
Every test is composed of:
An Alchemist YAML specification, commented with the expected result
A Protelis source file
All the provided functions are tested
If a bug is found and solved, a regression test is included
Testing happens at every build
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 15 / 27
A foundational library for aggregate programming Testing environment
Automated testing II
Alchemist
Simulator
Protelis-Lang
Protelis code
Protelis-Test
initialise
check
YAML
# {0 0.00, 1 1.00, 2 2.00, 3 1.00, 4 1.41, 5 2.41, ...}
network-model:
type: EuclideanDistance
parameters: [1.5]
displacements:
- in:
type: Grid # ...
programs:
- program: distanceTo
/* import lang , spreading , time */
let src = uid =="0" || uid =="5" && timeSinceStart () <=50;
distanceTo(src)
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 16 / 27
A foundational library for aggregate programming Testing environment
Testing example: distanceTo
Stabilization: network converges to a stable state
Self-Stabilization: network converges after perturbations
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 17 / 27
Evaluation
Outline
1 Introduction
Device-centric engineering in the IoT era
Distributed system as a single entity
Resilient building blocks
2 A foundational library for aggregate programming
Goal and methodology
Meta patterns
Organization
Testing environment
3 Evaluation
Meet the VIP
Resource allocation
4 Conclusion
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 17 / 27
Evaluation
Evaluation in crowded scenarios
Two scenarios with 1000 devices each
Meet the VIP: steering people towards POIs with fixed capacity
Resource allocation: coordination of emergency responders to
people requesting aid
Comparing functionality and complexity of two implementations
BB “Building-blocks-only” solution not using any library code
Not allowed to use any code from the library
Self stabilizing based on the G/C/T/S blocks
L Solution with library code (L), including multiInstance
Must improve over BB by using multiInstance
Allowed to use any of function of protelis-lang to reduce code
complexity
To reproduce them: https://bitbucket.org/mfrancia/2017-ecas-experiments
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 18 / 27
Evaluation Meet the VIP
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 19 / 27
Evaluation Meet the VIP
Meet the VIP I
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 20 / 27
Evaluation Meet the VIP
Meet the VIP II
Improved functionality
0 5 10 15 20 25
Simulation time (mins)
0
200
400
Devices
Asymmetric - attendees to POI Thr
L-A
L-B
L-C
BB-A
BB-B
BB-C
BB can only allocate attendees to the closest POI, resulting in
over-crowded areas
underutilized areas
L enables to count attendees in each POI, allowing a balanced and fair
allocation
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 21 / 27
Evaluation Meet the VIP
Meet the VIP III
Complexity comparison
BB is 8 lines of code
L is 19 lines of code
With 11 more lines of code, L overcomes BB’s partitioning issues and
enables novel capabilities
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 22 / 27
Evaluation Resource allocation
Resource Allocation I
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 23 / 27
Evaluation Resource allocation
Resource Allocation II
Improved functionality
0 5 10 15 20
Simulation time (mins)
0.0
2.5
5.0
Resources
Asymmetric - resources serving needs L-A
L-B
L-C
L-D
BB-A
BB-B
BB-C
BB-D
BB allocates responders only to the closest need
L is capable of a more complex allocation, for instance:
Responders are allocated to the emergency with the least allocated
resources until its needs are satisfied
If two emergencies have the same amount of resources, responders are
allocated to the closest one
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 24 / 27
Evaluation Resource allocation
Resource Allocation III
Complexity comparison
BB is 29 lines of code
L is 17 lines of code
Here L achieves a better allocation policy in fewer lines of code
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 25 / 27
Conclusion
Outline
1 Introduction
Device-centric engineering in the IoT era
Distributed system as a single entity
Resilient building blocks
2 A foundational library for aggregate programming
Goal and methodology
Meta patterns
Organization
Testing environment
3 Evaluation
Meet the VIP
Resource allocation
4 Conclusion
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 25 / 27
Conclusion
Conclusion
With more than 150 functions, protelis-lang:
offers a systematic coverage of the state-of-the art of coordination
abstractions;
Many distributed functions are usable out of the box
Reduces the abstraction gap when engineering aggregate programs;
Less lines of code for the same application
Introduces multiInstance.
Overcomes the limitations of the building blocks
Paves the way to a novel family of meta patterns
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 26 / 27
Conclusion
References I
Jacob Beal, Stefan Dulman, Kyle Usbeck, Mirko Viroli, and Nikolaus Correll.
Organizing the aggregate: Languages for spatial computing.
In Marjan Mernik, editor, Formal and Practical Aspects of Domain-Specific Languages:
Recent Developments, chapter 16, pages 436–501. IGI Global, 2013.
A longer version available at: tt http://arxiv.org/abs/1202.5509.
Jacob Beal and Mirko Viroli.
Building blocks for aggregate programming of self-organising applications.
In Eighth IEEE International Conference on Self-Adaptive and Self-Organizing Systems
Workshops, SASOW 2014, London, United Kingdom, September 8-12, 2014, pages 8–13,
2014.
Jose Luis Fernandez-Marquez, Giovanna Di Marzo Serugendo, Sara Montagna, Mirko
Viroli, and Josep Llu´ıs Arcos.
Description and composition of bio-inspired design patterns: a complete overview.
Natural Computing, 12(1):43–67, 2013.
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 26 / 27
Conclusion
References II
Danilo Pianini, Jacob Beal, and Mirko Viroli.
Improving gossip dynamics through overlapping replicates.
In Coordination Models and Languages - 18th IFIP WG 6.1 International Conference,
COORDINATION 2016, Held as Part of the 11th International Federated Conference on
Distributed Computing Techniques, DisCoTec 2016, Heraklion, Crete, Greece, June 6-9,
2016, Proceedings, pages 192–207, 2016.
Danilo Pianini, Sara Montagna, and Mirko Viroli.
Chemical-oriented simulation of computational systems with ALCHEMIST.
J. Simulation, 7(3):202–215, 2013.
Mirko Viroli, Giorgio Audrito, Jacob Beal, Ferruccio Damiani, and Danilo Pianini.
Engineering resilient collective adaptive systems by self-stabilisation.
ACM Transactions on Modeling and Computer Simulation (TOMACS), 2017.
Submitted for publication.
Mirko Viroli, Jacob Beal, Ferruccio Damiani, and Danilo Pianini.
Efficient engineering of complex self-organising systems by self-stabilising fields.
In 2015 IEEE 9th International Conference on Self-Adaptive and Self-Organizing Systems,
Cambridge, MA, USA, September 21-25, 2015, pages 81–90, 2015.
Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 27 / 27

Contenu connexe

Tendances

A Metadata Model for Peer-to-Peer Media Distribution
A Metadata Model for Peer-to-Peer Media DistributionA Metadata Model for Peer-to-Peer Media Distribution
A Metadata Model for Peer-to-Peer Media Distribution
Alpen-Adria-Universität
 
Intelligible Machine Learning with Malibu for bioinformatics ...
Intelligible Machine Learning with Malibu for bioinformatics ...Intelligible Machine Learning with Malibu for bioinformatics ...
Intelligible Machine Learning with Malibu for bioinformatics ...
butest
 

Tendances (8)

A Metadata Model for Peer-to-Peer Media Distribution
A Metadata Model for Peer-to-Peer Media DistributionA Metadata Model for Peer-to-Peer Media Distribution
A Metadata Model for Peer-to-Peer Media Distribution
 
Jacques Magen - Future Internet Research and Experimentation (FIRE): Successf...
Jacques Magen - Future Internet Research and Experimentation (FIRE): Successf...Jacques Magen - Future Internet Research and Experimentation (FIRE): Successf...
Jacques Magen - Future Internet Research and Experimentation (FIRE): Successf...
 
FUTEBOL - Federated Union of Telecommunications Research Facilities for an EU...
FUTEBOL - Federated Union of Telecommunications Research Facilities for an EU...FUTEBOL - Federated Union of Telecommunications Research Facilities for an EU...
FUTEBOL - Federated Union of Telecommunications Research Facilities for an EU...
 
Integrating Performance Modeling in Industrial Automation through AutomationM...
Integrating Performance Modeling in Industrial Automation through AutomationM...Integrating Performance Modeling in Industrial Automation through AutomationM...
Integrating Performance Modeling in Industrial Automation through AutomationM...
 
FIT@BR – a Future Internet Testbed in Brazil
FIT@BR – a Future Internet Testbed in BrazilFIT@BR – a Future Internet Testbed in Brazil
FIT@BR – a Future Internet Testbed in Brazil
 
On The Evolution of CAEX: A Language Engineering Perspective
On The Evolution of CAEX: A Language Engineering PerspectiveOn The Evolution of CAEX: A Language Engineering Perspective
On The Evolution of CAEX: A Language Engineering Perspective
 
AutomationML: A Model-Driven View
AutomationML: A Model-Driven ViewAutomationML: A Model-Driven View
AutomationML: A Model-Driven View
 
Intelligible Machine Learning with Malibu for bioinformatics ...
Intelligible Machine Learning with Malibu for bioinformatics ...Intelligible Machine Learning with Malibu for bioinformatics ...
Intelligible Machine Learning with Malibu for bioinformatics ...
 

Similaire à Towards a Foundational API for Resilient Distributed Systems Design

An Ad-hoc Smart Gateway Platform for the Web of Things (IEEE iThings 2013 Bes...
An Ad-hoc Smart Gateway Platform for the Web of Things (IEEE iThings 2013 Bes...An Ad-hoc Smart Gateway Platform for the Web of Things (IEEE iThings 2013 Bes...
An Ad-hoc Smart Gateway Platform for the Web of Things (IEEE iThings 2013 Bes...
Darren Carlson
 
Engineering Complex Computational Ecosystems (PhD defense)
Engineering Complex Computational Ecosystems (PhD defense)Engineering Complex Computational Ecosystems (PhD defense)
Engineering Complex Computational Ecosystems (PhD defense)
Danilo Pianini
 
Per Blixt - Fire results from call 5 and plans for call 7
Per Blixt - Fire results from call 5 and plans for call 7Per Blixt - Fire results from call 5 and plans for call 7
Per Blixt - Fire results from call 5 and plans for call 7
Fire Conference 2010
 
Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype ...
Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype ...Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype ...
Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype ...
Martin Chapman
 

Similaire à Towards a Foundational API for Resilient Distributed Systems Design (20)

Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...
Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...
Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...
 
Reproducible bioinformatics pipelines with Docker and Anduril
Reproducible bioinformatics pipelines with Docker and AndurilReproducible bioinformatics pipelines with Docker and Anduril
Reproducible bioinformatics pipelines with Docker and Anduril
 
5 Thomas Magedanz
5  Thomas Magedanz5  Thomas Magedanz
5 Thomas Magedanz
 
An Ad-hoc Smart Gateway Platform for the Web of Things (IEEE iThings 2013 Bes...
An Ad-hoc Smart Gateway Platform for the Web of Things (IEEE iThings 2013 Bes...An Ad-hoc Smart Gateway Platform for the Web of Things (IEEE iThings 2013 Bes...
An Ad-hoc Smart Gateway Platform for the Web of Things (IEEE iThings 2013 Bes...
 
Ws2001 sessione8 cibella_tuoto
Ws2001 sessione8 cibella_tuotoWs2001 sessione8 cibella_tuoto
Ws2001 sessione8 cibella_tuoto
 
Lessons Learned from Porting HelenOS to RISC-V
Lessons Learned from Porting HelenOS to RISC-VLessons Learned from Porting HelenOS to RISC-V
Lessons Learned from Porting HelenOS to RISC-V
 
Reproducible Science and Deep Software Variability
Reproducible Science and Deep Software VariabilityReproducible Science and Deep Software Variability
Reproducible Science and Deep Software Variability
 
Engineering Complex Computational Ecosystems (PhD defense)
Engineering Complex Computational Ecosystems (PhD defense)Engineering Complex Computational Ecosystems (PhD defense)
Engineering Complex Computational Ecosystems (PhD defense)
 
Isab 11 for_slideshare
Isab 11 for_slideshareIsab 11 for_slideshare
Isab 11 for_slideshare
 
Per Blixt - Fire results from call 5 and plans for call 7
Per Blixt - Fire results from call 5 and plans for call 7Per Blixt - Fire results from call 5 and plans for call 7
Per Blixt - Fire results from call 5 and plans for call 7
 
How to be a bioinformatician
How to be a bioinformaticianHow to be a bioinformatician
How to be a bioinformatician
 
A replication study of the top performing systems in SemEval twitter sentimen...
A replication study of the top performing systems in SemEval twitter sentimen...A replication study of the top performing systems in SemEval twitter sentimen...
A replication study of the top performing systems in SemEval twitter sentimen...
 
Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...
Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...
Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...
 
IPython: A Modern Vision of Interactive Computing (PyData SV 2013)
IPython: A Modern Vision of Interactive Computing (PyData SV 2013)IPython: A Modern Vision of Interactive Computing (PyData SV 2013)
IPython: A Modern Vision of Interactive Computing (PyData SV 2013)
 
Decoder Open Research Webinar
Decoder Open Research WebinarDecoder Open Research Webinar
Decoder Open Research Webinar
 
Pycon 2011
Pycon 2011Pycon 2011
Pycon 2011
 
FOMI2017 - Reusing Domain Ontologies in Linked Building Data: the Case of Bui...
FOMI2017 - Reusing Domain Ontologies in Linked Building Data: the Case of Bui...FOMI2017 - Reusing Domain Ontologies in Linked Building Data: the Case of Bui...
FOMI2017 - Reusing Domain Ontologies in Linked Building Data: the Case of Bui...
 
Deep inside the Cloud Managements Platforms: the OpenStack case study
Deep inside the Cloud Managements Platforms: the OpenStack case studyDeep inside the Cloud Managements Platforms: the OpenStack case study
Deep inside the Cloud Managements Platforms: the OpenStack case study
 
Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype ...
Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype ...Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype ...
Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype ...
 
Sciunits: Resuable Research Object
Sciunits: Resuable Research Object Sciunits: Resuable Research Object
Sciunits: Resuable Research Object
 

Plus de Danilo Pianini

SAPERE WP1 Alchemist status at 02/2013
SAPERE WP1 Alchemist status at 02/2013SAPERE WP1 Alchemist status at 02/2013
SAPERE WP1 Alchemist status at 02/2013
Danilo Pianini
 
Recipes for Sabayon: cook your own Linux distro within two hours
Recipes for Sabayon: cook your own Linux distro within two hoursRecipes for Sabayon: cook your own Linux distro within two hours
Recipes for Sabayon: cook your own Linux distro within two hours
Danilo Pianini
 

Plus de Danilo Pianini (20)

Time fluid field-based Coordination
Time fluid field-based CoordinationTime fluid field-based Coordination
Time fluid field-based Coordination
 
Versioning and License selection
Versioning and License selectionVersioning and License selection
Versioning and License selection
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Enforce reproducibility: dependency management and build automation
Enforce reproducibility: dependency management and build automationEnforce reproducibility: dependency management and build automation
Enforce reproducibility: dependency management and build automation
 
Productive parallel teamwork: Decentralized Version Control Systems
Productive parallel teamwork: Decentralized Version Control SystemsProductive parallel teamwork: Decentralized Version Control Systems
Productive parallel teamwork: Decentralized Version Control Systems
 
Computational Fields meet Augmented Reality: Perspectives and Challenges
Computational Fields meet Augmented Reality: Perspectives and ChallengesComputational Fields meet Augmented Reality: Perspectives and Challenges
Computational Fields meet Augmented Reality: Perspectives and Challenges
 
Continuous integration and delivery
Continuous integration and deliveryContinuous integration and delivery
Continuous integration and delivery
 
Democratic process and electronic platforms: concerns of an engineer
Democratic process and electronic platforms: concerns of an engineerDemocratic process and electronic platforms: concerns of an engineer
Democratic process and electronic platforms: concerns of an engineer
 
Simulating Large-scale Aggregate MASs with Alchemist and Scala
Simulating Large-scale Aggregate MASs with Alchemist and ScalaSimulating Large-scale Aggregate MASs with Alchemist and Scala
Simulating Large-scale Aggregate MASs with Alchemist and Scala
 
Software development made serious
Software development made seriousSoftware development made serious
Software development made serious
 
Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...
Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...
Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...
 
SAPERE Analysis tools
SAPERE Analysis toolsSAPERE Analysis tools
SAPERE Analysis tools
 
Engineering computational ecosystems (2nd year PhD seminar)
Engineering computational ecosystems (2nd year PhD seminar)Engineering computational ecosystems (2nd year PhD seminar)
Engineering computational ecosystems (2nd year PhD seminar)
 
From Engineer to Alchemist, There and Back Again: An Alchemist Tale
From Engineer to Alchemist, There and Back Again: An Alchemist TaleFrom Engineer to Alchemist, There and Back Again: An Alchemist Tale
From Engineer to Alchemist, There and Back Again: An Alchemist Tale
 
SAPERE WP1 Alchemist status at 02/2013
SAPERE WP1 Alchemist status at 02/2013SAPERE WP1 Alchemist status at 02/2013
SAPERE WP1 Alchemist status at 02/2013
 
Engineering Computational Ecosystems
Engineering Computational EcosystemsEngineering Computational Ecosystems
Engineering Computational Ecosystems
 
Recipes for Sabayon: cook your own Linux distro within two hours
Recipes for Sabayon: cook your own Linux distro within two hoursRecipes for Sabayon: cook your own Linux distro within two hours
Recipes for Sabayon: cook your own Linux distro within two hours
 
A Framework to Specify and Verify Computational Fields for Pervasive Computin...
A Framework to Specify and Verify Computational Fields for Pervasive Computin...A Framework to Specify and Verify Computational Fields for Pervasive Computin...
A Framework to Specify and Verify Computational Fields for Pervasive Computin...
 
Towards a comprehensive approach to spontaneous self-composition in pervasive...
Towards a comprehensive approach to spontaneous self-composition in pervasive...Towards a comprehensive approach to spontaneous self-composition in pervasive...
Towards a comprehensive approach to spontaneous self-composition in pervasive...
 
Gradient-based Self-organisation Patterns of Anticipative Adaptation
Gradient-based Self-organisation Patterns of Anticipative AdaptationGradient-based Self-organisation Patterns of Anticipative Adaptation
Gradient-based Self-organisation Patterns of Anticipative Adaptation
 

Dernier

Seismic Method Estimate velocity from seismic data.pptx
Seismic Method Estimate velocity from seismic  data.pptxSeismic Method Estimate velocity from seismic  data.pptx
Seismic Method Estimate velocity from seismic data.pptx
AlMamun560346
 
Pests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdf
PirithiRaju
 
Disentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTDisentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOST
Sérgio Sacani
 
Formation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksFormation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disks
Sérgio Sacani
 
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptxSCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
RizalinePalanog2
 
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdfPests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
PirithiRaju
 

Dernier (20)

Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)
 
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls AgencyHire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
 
Animal Communication- Auditory and Visual.pptx
Animal Communication- Auditory and Visual.pptxAnimal Communication- Auditory and Visual.pptx
Animal Communication- Auditory and Visual.pptx
 
Seismic Method Estimate velocity from seismic data.pptx
Seismic Method Estimate velocity from seismic  data.pptxSeismic Method Estimate velocity from seismic  data.pptx
Seismic Method Estimate velocity from seismic data.pptx
 
Isotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoIsotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on Io
 
COST ESTIMATION FOR A RESEARCH PROJECT.pptx
COST ESTIMATION FOR A RESEARCH PROJECT.pptxCOST ESTIMATION FOR A RESEARCH PROJECT.pptx
COST ESTIMATION FOR A RESEARCH PROJECT.pptx
 
Pests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdf
 
Green chemistry and Sustainable development.pptx
Green chemistry  and Sustainable development.pptxGreen chemistry  and Sustainable development.pptx
Green chemistry and Sustainable development.pptx
 
Nanoparticles synthesis and characterization​ ​
Nanoparticles synthesis and characterization​  ​Nanoparticles synthesis and characterization​  ​
Nanoparticles synthesis and characterization​ ​
 
Disentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTDisentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOST
 
Formation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksFormation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disks
 
All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...
All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...
All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...
 
SAMASTIPUR CALL GIRL 7857803690 LOW PRICE ESCORT SERVICE
SAMASTIPUR CALL GIRL 7857803690  LOW PRICE  ESCORT SERVICESAMASTIPUR CALL GIRL 7857803690  LOW PRICE  ESCORT SERVICE
SAMASTIPUR CALL GIRL 7857803690 LOW PRICE ESCORT SERVICE
 
Zoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdfZoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdf
 
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptxSCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
 
Biological Classification BioHack (3).pdf
Biological Classification BioHack (3).pdfBiological Classification BioHack (3).pdf
Biological Classification BioHack (3).pdf
 
Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )
 
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdfPests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
 
High Class Escorts in Hyderabad ₹7.5k Pick Up & Drop With Cash Payment 969456...
High Class Escorts in Hyderabad ₹7.5k Pick Up & Drop With Cash Payment 969456...High Class Escorts in Hyderabad ₹7.5k Pick Up & Drop With Cash Payment 969456...
High Class Escorts in Hyderabad ₹7.5k Pick Up & Drop With Cash Payment 969456...
 
Botany 4th semester file By Sumit Kumar yadav.pdf
Botany 4th semester file By Sumit Kumar yadav.pdfBotany 4th semester file By Sumit Kumar yadav.pdf
Botany 4th semester file By Sumit Kumar yadav.pdf
 

Towards a Foundational API for Resilient Distributed Systems Design

  • 1. Towards a Foundational API for Resilient Distributed Systems Design Matteo Francia1, Danilo Pianini1, Jacob Beal2, Mirko Viroli1 1Alma Mater Studiorum—Universit`a di Bologna 2Raytheon BBN Technologies 2nd eCAS Workshop on Engineering Collective Adaptive Systems 2017-09-22 – Tucson, AZ, USA Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 1 / 27
  • 2. Outline 1 Introduction Device-centric engineering in the IoT era Distributed system as a single entity Resilient building blocks 2 A foundational library for aggregate programming Goal and methodology Meta patterns Organization Testing environment 3 Evaluation Meet the VIP Resource allocation 4 Conclusion Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 2 / 27
  • 3. Introduction Outline 1 Introduction Device-centric engineering in the IoT era Distributed system as a single entity Resilient building blocks 2 A foundational library for aggregate programming Goal and methodology Meta patterns Organization Testing environment 3 Evaluation Meet the VIP Resource allocation 4 Conclusion Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 2 / 27
  • 4. Introduction Device-centric engineering in the IoT era Computing everywhere Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 3 / 27
  • 5. Introduction Device-centric engineering in the IoT era Device-centric engineering Low-level details impact system design Communication protocols Fault tolerance Power saving policy ... Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 4 / 27
  • 6. Introduction Distributed system as a single entity The aggregate programming stack Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 5 / 27
  • 7. Introduction Distributed system as a single entity Level 1: Field Calculus “Everything is a field” Stateless rounds 3 constructs (a) State (rep x e0 e) (b) Neighborhood (nbr x) (c) Restriction (if c e0 e1) H A A D H T H K B (a) rep (b) nbr (c) if Figure: Field calculus constructsFrancia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 6 / 27
  • 8. Introduction Distributed system as a single entity Protelis A concrete implementation of field calculus Functional paradigm Java-family syntax Java interoperability P ::= I F s; ;; Program I ::= import m ;; Imports F ::= def f(x) {s;} ;; Fun definition s ::= e | let x = e ;; Statement e ::= ;; Expression | f(e) | f.apply(e) ;; Fun call | rep(x<-w){s;} ;; State | if(e){s;} else {s ;};; Restriction | nbr{s;} ;; Neighborhood Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 7 / 27
  • 9. Introduction Resilient building blocks Back to the stack Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 8 / 27
  • 10. Introduction Resilient building blocks Level 2: Building blocks Coordination in 4 patterns: G Spreading C Aggregation T Evaporation S Clustering With nice features: Self-stabilization [VBDP15] Composability [BV14] Substitutability [VAB+17] Similar in functionality to basic patterns in bio-inspired coordination [FSM+13] (a) G: spreading (b) C: aggregation 3 1 7 2 4 3 3 1 0 (c) T: evaporation (d) S: clustering Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 9 / 27
  • 11. A foundational library for aggregate programming Outline 1 Introduction Device-centric engineering in the IoT era Distributed system as a single entity Resilient building blocks 2 A foundational library for aggregate programming Goal and methodology Meta patterns Organization Testing environment 3 Evaluation Meet the VIP Resource allocation 4 Conclusion Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 9 / 27
  • 12. A foundational library for aggregate programming Goal and methodology Aggregate programming Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 10 / 27
  • 13. A foundational library for aggregate programming Goal and methodology Level 3: protelis-lang GOALS Collect existing algorithms Classify them by scope Fill in missing patterns Encapsulate coordination best practices “under the hood” Two-stages: 1 Search in existing literature 2 Compare with existing abstractions and technologies [FSM+13, BDU+13] Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 11 / 27
  • 14. A foundational library for aggregate programming Meta patterns multiInstance A A B B Idea Running multiple copies of a process in parallel, one for each identified “source” and aggregate their outputs This pattern can be leveraged for several applications: 1 Temporal replication [PBV16]; 2 acquire information coming from a dynamic number of sources; 3 extend the application scope of existing algorithms. Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 12 / 27
  • 15. A foundational library for aggregate programming Organization Library structure Specialized building blocks Plus meta-programming protelis coord state time countDown cyclicTimer limitedMemory T ... meta boundSpreading multiInstance multiRegion publishSubscribe ... sparsechoice S spreading broadcast crfGradient distanceTo distanceBetween flexGradient gradcast G ... accumulation average C cMultiSum cMultiMin consensus countDevices ... nonselfstabilizing accumulation gossip ... nonselfstabilizing time gossipEver ... Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 13 / 27
  • 16. A foundational library for aggregate programming Organization Code snippet module protelis:coord:spreading /** Propagation of information from a source. * @param source bool , whether the device is a source * @param initial T, information spread by the source * @param metric () -> num , how to estimate distance * @param accumulate (T) -> T, how to accumulate information * @return T, accumulated value */ def G(source , initial , metric , accumulate) { /* implementation with rep , nbr , if ... */ } /** Distance to the closest source. * @param source bool , whether the device is a source * @return num , field distances to the closest source */ def distanceTo(source) { G(source , 0, nbrRange , (v) -> { v + nbrRange.apply () }) } Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 14 / 27
  • 17. A foundational library for aggregate programming Testing environment Automated testing I Testing is a serious concern, as we need to: verify the correctness of the implementation prevent regressions Most of the algorithms in protelis-lang are distributed testing locally provides information of little use a simulated environment is required We exploited Alchemist [PMV13] for testing on simulated networks Every test is composed of: An Alchemist YAML specification, commented with the expected result A Protelis source file All the provided functions are tested If a bug is found and solved, a regression test is included Testing happens at every build Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 15 / 27
  • 18. A foundational library for aggregate programming Testing environment Automated testing II Alchemist Simulator Protelis-Lang Protelis code Protelis-Test initialise check YAML # {0 0.00, 1 1.00, 2 2.00, 3 1.00, 4 1.41, 5 2.41, ...} network-model: type: EuclideanDistance parameters: [1.5] displacements: - in: type: Grid # ... programs: - program: distanceTo /* import lang , spreading , time */ let src = uid =="0" || uid =="5" && timeSinceStart () <=50; distanceTo(src) Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 16 / 27
  • 19. A foundational library for aggregate programming Testing environment Testing example: distanceTo Stabilization: network converges to a stable state Self-Stabilization: network converges after perturbations Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 17 / 27
  • 20. Evaluation Outline 1 Introduction Device-centric engineering in the IoT era Distributed system as a single entity Resilient building blocks 2 A foundational library for aggregate programming Goal and methodology Meta patterns Organization Testing environment 3 Evaluation Meet the VIP Resource allocation 4 Conclusion Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 17 / 27
  • 21. Evaluation Evaluation in crowded scenarios Two scenarios with 1000 devices each Meet the VIP: steering people towards POIs with fixed capacity Resource allocation: coordination of emergency responders to people requesting aid Comparing functionality and complexity of two implementations BB “Building-blocks-only” solution not using any library code Not allowed to use any code from the library Self stabilizing based on the G/C/T/S blocks L Solution with library code (L), including multiInstance Must improve over BB by using multiInstance Allowed to use any of function of protelis-lang to reduce code complexity To reproduce them: https://bitbucket.org/mfrancia/2017-ecas-experiments Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 18 / 27
  • 22. Evaluation Meet the VIP Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 19 / 27
  • 23. Evaluation Meet the VIP Meet the VIP I Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 20 / 27
  • 24. Evaluation Meet the VIP Meet the VIP II Improved functionality 0 5 10 15 20 25 Simulation time (mins) 0 200 400 Devices Asymmetric - attendees to POI Thr L-A L-B L-C BB-A BB-B BB-C BB can only allocate attendees to the closest POI, resulting in over-crowded areas underutilized areas L enables to count attendees in each POI, allowing a balanced and fair allocation Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 21 / 27
  • 25. Evaluation Meet the VIP Meet the VIP III Complexity comparison BB is 8 lines of code L is 19 lines of code With 11 more lines of code, L overcomes BB’s partitioning issues and enables novel capabilities Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 22 / 27
  • 26. Evaluation Resource allocation Resource Allocation I Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 23 / 27
  • 27. Evaluation Resource allocation Resource Allocation II Improved functionality 0 5 10 15 20 Simulation time (mins) 0.0 2.5 5.0 Resources Asymmetric - resources serving needs L-A L-B L-C L-D BB-A BB-B BB-C BB-D BB allocates responders only to the closest need L is capable of a more complex allocation, for instance: Responders are allocated to the emergency with the least allocated resources until its needs are satisfied If two emergencies have the same amount of resources, responders are allocated to the closest one Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 24 / 27
  • 28. Evaluation Resource allocation Resource Allocation III Complexity comparison BB is 29 lines of code L is 17 lines of code Here L achieves a better allocation policy in fewer lines of code Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 25 / 27
  • 29. Conclusion Outline 1 Introduction Device-centric engineering in the IoT era Distributed system as a single entity Resilient building blocks 2 A foundational library for aggregate programming Goal and methodology Meta patterns Organization Testing environment 3 Evaluation Meet the VIP Resource allocation 4 Conclusion Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 25 / 27
  • 30. Conclusion Conclusion With more than 150 functions, protelis-lang: offers a systematic coverage of the state-of-the art of coordination abstractions; Many distributed functions are usable out of the box Reduces the abstraction gap when engineering aggregate programs; Less lines of code for the same application Introduces multiInstance. Overcomes the limitations of the building blocks Paves the way to a novel family of meta patterns Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 26 / 27
  • 31. Conclusion References I Jacob Beal, Stefan Dulman, Kyle Usbeck, Mirko Viroli, and Nikolaus Correll. Organizing the aggregate: Languages for spatial computing. In Marjan Mernik, editor, Formal and Practical Aspects of Domain-Specific Languages: Recent Developments, chapter 16, pages 436–501. IGI Global, 2013. A longer version available at: tt http://arxiv.org/abs/1202.5509. Jacob Beal and Mirko Viroli. Building blocks for aggregate programming of self-organising applications. In Eighth IEEE International Conference on Self-Adaptive and Self-Organizing Systems Workshops, SASOW 2014, London, United Kingdom, September 8-12, 2014, pages 8–13, 2014. Jose Luis Fernandez-Marquez, Giovanna Di Marzo Serugendo, Sara Montagna, Mirko Viroli, and Josep Llu´ıs Arcos. Description and composition of bio-inspired design patterns: a complete overview. Natural Computing, 12(1):43–67, 2013. Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 26 / 27
  • 32. Conclusion References II Danilo Pianini, Jacob Beal, and Mirko Viroli. Improving gossip dynamics through overlapping replicates. In Coordination Models and Languages - 18th IFIP WG 6.1 International Conference, COORDINATION 2016, Held as Part of the 11th International Federated Conference on Distributed Computing Techniques, DisCoTec 2016, Heraklion, Crete, Greece, June 6-9, 2016, Proceedings, pages 192–207, 2016. Danilo Pianini, Sara Montagna, and Mirko Viroli. Chemical-oriented simulation of computational systems with ALCHEMIST. J. Simulation, 7(3):202–215, 2013. Mirko Viroli, Giorgio Audrito, Jacob Beal, Ferruccio Damiani, and Danilo Pianini. Engineering resilient collective adaptive systems by self-stabilisation. ACM Transactions on Modeling and Computer Simulation (TOMACS), 2017. Submitted for publication. Mirko Viroli, Jacob Beal, Ferruccio Damiani, and Danilo Pianini. Efficient engineering of complex self-organising systems by self-stabilising fields. In 2015 IEEE 9th International Conference on Self-Adaptive and Self-Organizing Systems, Cambridge, MA, USA, September 21-25, 2015, pages 81–90, 2015. Francia, Pianini, Beal, Viroli (UniBo, BBN) protelis-lang 2017-09-18 – eCAS 27 / 27