Mirko Viroli, Jacob Beal, Ferruccio Damiani,
Danilo Pianini
Proceedings of the IEEE Conference on Self-Adaptive and Self-Organising Systems 2015 (SASO 2015), pages 81–90
2015
Self-organising systems are notoriously difficult to engineer, particularly due to the interactions between complex specifications and the simultaneous need for efficiency and for resilience to faults and changes in execution conditions. We address this problem with an engineering methodology that separates these three aspects, allowing each to be engineered independently. Beginning with field calculus, we identify the largest known sub-language of self-stabilising programs, guaranteed to eventually attain correct behaviour despite any perturbation in state or topology. Construction of complex systems is then facilitated by identifying “building block” operators expressed in this language, into which many complex specifications can be readily factored, thereby attaining resilience but possibly with improvable efficiency. Efficient implementation may then be achieved by substituting high-performance coordination mechanisms that are asymptotically equivalent to particular applications of building block operators. We illustrate this workflow by construction and simulation of example applications for evacuation alerts and for live estimation of crowd feedback at mass events.
keywords
Aggregate computing, computational fields, self-stabilisation
funding project
CINA — Compositionality, Interaction, Negotiation, Autonomicity for the future ICT society
(01/01/2013–31/12/2015)