Engineering Resilient Collective Adaptive Systems by Self-Stabilisation

Collective adaptive systems are an emerging class of networked computational systems particularly suited for application domains such as smart cities, complex sensor networks, and the Internet of Things. These systems tend to feature large-scale, heterogeneity of communication model (including opportunistic peer-to-peer wireless interaction) and require inherent self-adaptiveness properties to address unforeseen changes in operating conditions. In this context, it is extremely difficult (if not seemingly intractable) to engineer reusable pieces of distributed behaviour to make them provably correct and smoothly composable. Building on the field calculus, a computational model (and associated toolchain) capturing the notion of aggregate network-level computation, we address this problem with an engineering methodology coupling formal theory and computer simulation. On the one hand, functional properties are addressed by identifying the largest-to-date field calculus fragment generating self-stabilising behaviour, guaranteed to eventually attain a correct and stable final state despite any transient perturbation in state or topology and including highly reusable building blocks for information spreading, aggregation, and time evolution. On the other hand, dynamical properties are addressed by simulation, empirically evaluating the different performances that can be obtained by switching between implementations of building blocks with provably equivalent functional properties. Overall, our methodology sheds light on how to identify core building blocks of collective behaviour and how to select implementations that improve system performance while leaving overall system function and resiliency properties unchanged.

[1]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[2]  Jacob Beal,et al.  Operational semantics of proto , 2013, Sci. Comput. Program..

[3]  Mohamed G. Gouda,et al.  Adaptive Programming , 1991, IEEE Trans. Software Eng..

[4]  G ValiantLeslie A bridging model for parallel computation , 1990 .

[5]  Seth Copen Goldstein,et al.  Meld: A declarative approach to programming ensembles , 2007, 2007 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[6]  Pranay Chaudhuri,et al.  A self-stabilizing algorithm for strong fairness , 1998, Computing.

[7]  Jacob Beal,et al.  Efficient Engineering of Complex Self-Organising Systems by Self-Stabilising Fields , 2015, 2015 IEEE 9th International Conference on Self-Adaptive and Self-Organizing Systems.

[8]  Marco Schneider,et al.  Self-stabilization , 1993, CSUR.

[9]  Mirko Viroli,et al.  Chemical-oriented simulation of computational systems with ALCHEMIST , 2013, J. Simulation.

[10]  B. Awerbuch,et al.  Distributed program checking: a paradigm for building self-stabilizing distributed protocols , 1991, [1991] Proceedings 32nd Annual Symposium of Foundations of Computer Science.

[11]  Dominique Lavenier,et al.  RELACS for systolic programming , 1993, Proceedings of International Conference on Application Specific Array Processors (ASAP '93).

[12]  Jacob Beal,et al.  A Calculus of Computational Fields , 2013, ESOCC Workshops.

[13]  Mirko Viroli,et al.  Towards Aggregate Programming in Scala , 2016, PMLDC@ECOOP.

[14]  Philip Wadler,et al.  Featherweight Java: a minimal core calculus for Java and GJ , 2001, TOPL.

[15]  Franco Zambonelli,et al.  A coordination model of pervasive service ecosystems , 2015, Sci. Comput. Program..

[16]  Jacob Beal,et al.  Self-Adaptation to Device Distribution Changes , 2016, 2016 IEEE 10th International Conference on Self-Adaptive and Self-Organizing Systems (SASO).

[17]  Jacob Beal,et al.  Aggregate Programming for the Internet of Things , 2015, Computer.

[18]  Imran A. Pirwani,et al.  A Composite Stabilizing Data Structure , 2001, WSS.

[19]  Jacob Beal,et al.  Organizing the Aggregate: Languages for Spatial Computing , 2012, ArXiv.

[20]  Radhika Nagpal Programmable self-assembly: constructing global shape using biologically-inspired local interactions and origami mathematics , 2001 .

[21]  Jean-Louis Giavitto,et al.  Computations in Space and Space in Computations , 2004, UPP.

[22]  Viktor Kuncak,et al.  Synthesis of fixed-point programs , 2013, 2013 Proceedings of the International Conference on Embedded Software (EMSOFT).

[23]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[24]  Anish Arora,et al.  Closure and Convergence: A Foundation of Fault-Tolerant Computing , 1993, IEEE Trans. Software Eng..

[25]  Jacob Beal,et al.  Flexible self-healing gradients , 2009, SAC '09.

[26]  Ryan Newton,et al.  Region streams: functional macroprogramming for sensor networks , 2004, DMSN '04.

[27]  Franco Zambonelli,et al.  Programming pervasive and mobile computing applications: The TOTA approach , 2009, TSEM.

[28]  Mirko Viroli,et al.  Compositional Blocks for Optimal Self-Healing Gradients , 2017, 2017 IEEE 11th International Conference on Self-Adaptive and Self-Organizing Systems (SASO).

[29]  Jacob Beal,et al.  Self-adaptation to device distribution in the internet of things , 2022 .

[30]  Edsger W. Dijkstra EWD391 Self-stabilization in spite of distributed control , 1973 .

[31]  V. Michael Bove,et al.  Programming a paintable computer , 2002 .

[32]  Mirko Viroli,et al.  Optimally-Self-Healing Distributed Gradient Structures Through Bounded Information Speed , 2017, COORDINATION.

[33]  Mirko Viroli,et al.  A Calculus of Self-stabilising Computational Fields , 2014, COORDINATION.

[34]  David E. Culler,et al.  Hood: a neighborhood abstraction for sensor networks , 2004, MobiSys '04.

[35]  Radhika Nagpal,et al.  A theory of local-to-global algorithms for one-dimensional spatial multi-agent systems , 2008 .

[36]  Wei Hong,et al.  Proceedings of the 5th Symposium on Operating Systems Design and Implementation Tag: a Tiny Aggregation Service for Ad-hoc Sensor Networks , 2022 .

[37]  Jacob Beal,et al.  Code Mobility Meets Self-organisation: A Higher-Order Calculus of Computational Fields , 2015, FORTE.

[38]  Reza Olfati-Saber,et al.  Consensus and Cooperation in Networked Multi-Agent Systems , 2007, Proceedings of the IEEE.

[39]  Jacob Beal,et al.  A type-sound calculus of computational fields , 2016, Sci. Comput. Program..

[40]  Jacob Beal,et al.  Protelis: practical aggregate programming , 2015, SAC.

[41]  Mirko Viroli,et al.  Type-based Self-stabilisation for Computational Fields , 2015, Log. Methods Comput. Sci..

[42]  Jacob Beal,et al.  A Lyapunov analysis for the robust stability of an adaptive Bellman-Ford algorithm , 2016, 2016 IEEE 55th Conference on Decision and Control (CDC).

[43]  Attila Kondacs Biologically-inspired Self-Assembly of 2D Shapes, Using Global-to-local Compilation , 2003, IJCAI 2003.

[44]  Peter R. Cappello,et al.  The SDEF Programming System , 1989, J. Parallel Distributed Comput..

[45]  A. Giusti,et al.  Mobile Data Collection in Sensor Networks : The Tiny Lime Middleware , 2005 .

[46]  S. Strogatz,et al.  Synchronization of pulse-coupled biological oscillators , 1990 .

[47]  Franco Zambonelli,et al.  A survey on nature-inspired metaphors for pervasive service ecosystems , 2011, Int. J. Pervasive Comput. Commun..

[48]  Daniel Coore,et al.  Botanical computing: a developmental approach to generating interconnect topologies on an amorphous computer , 1999 .

[49]  Carlo Curino,et al.  Mobile data collection in sensor networks: The TinyLime , 2005, Pervasive Mob. Comput..

[50]  Jacob Beal,et al.  Fast self-healing gradients , 2008, SAC '08.

[51]  PiccoGian Pietro,et al.  Mobile data collection in sensor networks , 2005 .

[52]  Ugo Montanari,et al.  Asynchronous Distributed Execution Of Fixpoint-Based Computational Fields , 2016, Log. Methods Comput. Sci..

[53]  Shlomi Dolev,et al.  SuperStabilizing protocols for dynamic distributed systems , 1995, PODC '95.

[54]  Jacob Beal,et al.  Improving Gossip Dynamics Through Overlapping Replicates , 2016, COORDINATION.

[55]  Jacob Beal,et al.  Error in Self-Stabilizing Spanning-Tree Estimation of Collective State , 2017, 2017 IEEE 2nd International Workshops on Foundations and Applications of Self* Systems (FAS*W).

[56]  Shlomi Dolev,et al.  Self Stabilization , 2004, J. Aerosp. Comput. Inf. Commun..

[57]  Yong Yao,et al.  The cougar approach to in-network query processing in sensor networks , 2002, SGMD.

[58]  Jacob Beal,et al.  Aggregate Programming: From Foundations to Applications , 2016, SFM.

[59]  Olivier Michel,et al.  Computational models for integrative and developmental biology , 2002 .

[60]  Marjan Mernik,et al.  Formal and Practical Aspects of Domain-Specific Languages: Recent Developments , 2012 .

[61]  Jacob Beal,et al.  Building Blocks for Aggregate Programming of Self-Organising Applications , 2014, 2014 IEEE Eighth International Conference on Self-Adaptive and Self-Organizing Systems Workshops.