From distributed coordination to field calculus and aggregate computing

Abstract Aggregate computing is an emerging approach to the engineering of complex coordination for distributed systems, based on viewing system interactions in terms of information propagating through collectives of devices, rather than in terms of individual devices and their interaction with their peers and environment. The foundation of this approach is the distillation of a number of prior approaches, both formal and pragmatic, proposed under the umbrella of field-based coordination, and culminating into the field calculus, a universal functional programming model for the specification and composition of collective behaviours with equivalent local and aggregate semantics. This foundation has been elaborated into a layered approach to engineering coordination of complex distributed systems, building up to pragmatic applications through intermediate layers encompassing reusable libraries of program components. Furthermore, some of these components are formally shown to satisfy formal properties like self-stabilisation, which transfer to whole application services by functional composition. In this survey, we trace the development and antecedents of field calculus, review the field calculus itself and the current state of aggregate computing theory and practice, and discuss a roadmap of current research directions with implications for the development of a broad range of distributed systems.

[1]  D. Corkill Blackboard Systems , 1991 .

[2]  Jacob Beal,et al.  Engineering Resilient Collective Adaptive Systems by Self-Stabilisation , 2017, ACM Trans. Model. Comput. Simul..

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

[4]  Franco Zambonelli,et al.  Spatial Coordination of Pervasive Services through Chemical-Inspired Tuple Spaces , 2011, TAAS.

[5]  Alois Ferscha,et al.  Collective adaptive systems , 2015, UbiComp/ISWC Adjunct.

[6]  Mirko Viroli,et al.  Towards attack-resistant Aggregate Computing using trust mechanisms , 2018, Sci. Comput. Program..

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

[8]  Jacob Beal,et al.  An Aggregate Computing Approach to Self-Stabilizing Leader Election , 2018, 2018 IEEE 3rd International Workshops on Foundations and Applications of Self* Systems (FAS*W).

[9]  Jacob Beal,et al.  Resiliency with Aggregate Computing: State of the Art and Roadmap , 2016, FORECAST@STAF.

[10]  S. Dasgupta,et al.  Parametric Lyapunov functions for uncertain systems: the multiplier approach , 1999 .

[11]  Minyue Fu,et al.  Integral quadratic constraint approach vs. multiplier approach , 2005, Autom..

[12]  B. Paden,et al.  Lyapunov stability theory of nonsmooth systems , 1993, Proceedings of 32nd IEEE Conference on Decision and Control.

[13]  Christine Julien,et al.  Resource discovery with evolving tuples , 2007, ESSPE '07.

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

[15]  Mirko Viroli,et al.  Run-Time Management of Computation Domains in Field Calculus , 2016, 2016 IEEE 1st International Workshops on Foundations and Applications of Self* Systems (FAS*W).

[16]  Mirko Viroli,et al.  Aggregate Graph Statistics , 2017, ALP4IoT@iFM.

[17]  Martin Odersky,et al.  Unifying functional and object-oriented programming with Scala , 2014, Commun. ACM.

[18]  Andrea Omicini,et al.  A framework for modelling and implementing self-organising coordination , 2009, SAC '09.

[19]  Jacob Beal,et al.  Towards a Foundational API for Resilient Distributed Systems Design , 2017, 2017 IEEE 2nd International Workshops on Foundations and Applications of Self* Systems (FAS*W).

[20]  Mirko Viroli,et al.  On the collective sort problem for distributed tuple spaces , 2009, Sci. Comput. Program..

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

[22]  Mireille E. Broucke,et al.  Stabilisation of infinitesimally rigid formations of multi-robot networks , 2009, Int. J. Control.

[23]  Ronaldo Menezes,et al.  Adaptiveness in Linda-Based Coordination Models , 2003, Engineering Self-Organising Systems.

[24]  Mirko Viroli,et al.  Self-organising Coordination Regions: A Pattern for Edge Computing , 2019, COORDINATION.

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

[26]  Ilias Gerostathopoulos,et al.  DEECO: an ensemble-based component system , 2013, CBSE '13.

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

[28]  Antonio Brogi,et al.  The concurrent language, Shared Prolog , 1991, TOPL.

[29]  D.G. Bell,et al.  NASA World Wind: Opensource GIS for Mission Operations , 2007, 2007 IEEE Aerospace Conference.

[30]  Boudewijn R. Haverkort,et al.  Mean-field framework for performance evaluation of push-pull gossip protocols , 2011, Perform. Evaluation.

[31]  Alessandro Ricci,et al.  Aggregate plans for multiagent systems , 2017, Int. J. Agent Oriented Softw. Eng..

[32]  Douglas C. Schmidt,et al.  Middleware for real-time and embedded systems , 2002, CACM.

[33]  Chris Fallin,et al.  Flipping bits in memory without accessing them: An experimental study of DRAM disturbance errors , 2014, 2014 ACM/IEEE 41st International Symposium on Computer Architecture (ISCA).

[34]  Jacques Ferber,et al.  Multi-agent systems - an introduction to distributed artificial intelligence , 1999 .

[35]  Weisong Shi,et al.  Edge Computing: Vision and Challenges , 2016, IEEE Internet of Things Journal.

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

[37]  Rolf Hennicker,et al.  Foundations for Ensemble Modeling - The Helena Approach - Handling Massively Distributed Systems with ELaborate ENsemble Architectures , 2014, Specification, Algebra, and Software.

[38]  Mirko Viroli,et al.  Biochemical Tuple Spaces for Self-organising Coordination , 2009, COORDINATION.

[39]  Pramod Singh Rathore,et al.  An Overview of Blockchain Technology: Architecture, Consensus Algorithm, and Its Challenges , 2020, Blockchain Technology and the Internet of Things.

[40]  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 .

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

[42]  Franco Zambonelli,et al.  MARS: A Programmable Coordination Architecture for Mobile Agents , 2000, IEEE Internet Comput..

[43]  Diego Latella,et al.  Continuous approximation of collective system behaviour: A tutorial , 2013, Perform. Evaluation.

[44]  Jacob Beal,et al.  Adaptive Opportunistic Airborne Sensor Sharing , 2018, ACM Trans. Auton. Adapt. Syst..

[45]  Franco Zambonelli,et al.  A survey of autonomic communications , 2006, TAAS.

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

[47]  Murat Arcak,et al.  Passivity as a Design Tool for Group Coordination , 2007, IEEE Transactions on Automatic Control.

[48]  Michael Hamburg,et al.  Spectre Attacks: Exploiting Speculative Execution , 2018, 2019 IEEE Symposium on Security and Privacy (SP).

[49]  Mirko Viroli,et al.  Aggregate Processes in Field Calculus , 2019, COORDINATION.

[50]  Jacob Beal Programming an Amorphous Computational Medium , 2004, UPP.

[51]  Ugo Montanari,et al.  A Fixpoint-Based Calculus for Graph-Shaped Computational Fields , 2015, COORDINATION.

[52]  Andrea Omicini,et al.  Coordination artifacts: environment-based coordination for intelligent agents , 2004, Proceedings of the Third International Joint Conference on Autonomous Agents and Multiagent Systems, 2004. AAMAS 2004..

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

[54]  Seif Haridi,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[55]  Mirko Viroli On competitive self-composition in pervasive services , 2013, Sci. Comput. Program..

[56]  Ludovic Henrio,et al.  Programming distributed and adaptable autonomous components—the GCM/ProActive framework , 2015, Softw. Pract. Exp..

[57]  Mourad Debbabi,et al.  Security hardening of open source software , 2006, PST.

[58]  Glynn Winskel,et al.  Event Structures , 1986, Advances in Petri Nets.

[59]  Rocco De Nicola,et al.  KLAIM: A Kernel Language for Agents Interaction and Mobility , 1998, IEEE Trans. Software Eng..

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

[61]  Victor R. Lesser,et al.  A survey of multi-agent organizational paradigms , 2004, The Knowledge Engineering Review.

[62]  Jacob Beal,et al.  Robust Stability of Spreading Blocks in Aggregate Computing , 2018, 2018 IEEE Conference on Decision and Control (CDC).

[63]  Jacob Beal,et al.  Distributed Recovery for Enterprise Services , 2015, 2015 IEEE 9th International Conference on Self-Adaptive and Self-Organizing Systems.

[64]  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.

[65]  Zibin Zheng,et al.  An Overview of Blockchain Technology: Architecture, Consensus, and Future Trends , 2017, 2017 IEEE International Congress on Big Data (BigData Congress).

[66]  Matt Welsh,et al.  Programming Sensor Networks Using Abstract Regions , 2004, NSDI.

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

[68]  Jacob Beal,et al.  Space–time programming , 2015, Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences.

[69]  Giancarlo Fortino,et al.  A development approach for collective opportunistic Edge-of-Things services , 2019, Inf. Sci..

[70]  Jacob Beal,et al.  The share Operator for Field-Based Coordination , 2019, COORDINATION.

[71]  Andrea Omicini,et al.  From tuple spaces to tuple centres , 2001, Sci. Comput. Program..

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

[73]  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).

[74]  Brian D. O. Anderson,et al.  The small-gain theorem, the passivity theorem and their equivalence , 1972 .

[75]  Jacob Beal,et al.  Superdiffusive Dispersion and Mixing of Swarms , 2015, ACM Trans. Auton. Adapt. Syst..

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

[77]  Martin Odersky,et al.  Type classes as objects and implicits , 2010, OOPSLA.

[78]  Giuseppe Piro,et al.  When Renewable Energy Meets LoRa: A Feasibility Analysis on Cable-Less Deployments , 2018, IEEE Internet of Things Journal.

[79]  Andrea Giorgetti,et al.  Emerging Distributed Programming Paradigm for Cyber-Physical Systems Over LoRaWANs , 2018, 2018 IEEE Globecom Workshops (GC Wkshps).

[80]  Leslie Lamport,et al.  The Byzantine Generals Problem , 1982, TOPL.

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

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

[83]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[84]  Jacob Beal Trading accuracy for speed in approximate consensus , 2016, Knowl. Eng. Rev..

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

[86]  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).

[87]  Robert Barton,et al.  Fog Computing Conceptual Model , 2018 .

[88]  Nicholas R. Jennings,et al.  Coordination in software agent systems , 1996 .

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

[90]  Ronaldo Menezes,et al.  Using Swarm Intelligence in Linda Systems , 2003, ESAW.

[91]  H. P Nii,et al.  Blackboard Systems , 1986 .

[92]  Jacob Beal,et al.  Opportunistic Sharing of Airborne Sensors , 2016, 2016 International Conference on Distributed Computing in Sensor Systems (DCOSS).

[93]  Alan Wood,et al.  Scoped Coordination in Open Distributed Systems , 2000, COORDINATION.

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

[95]  Jane Hillston,et al.  Modelling and Analysis of Collective Adaptive Systems with CARMA and its Tools , 2016, SFM.

[96]  Giancarlo Fortino,et al.  Modelling and simulation of Opportunistic IoT Services with Aggregate Computing , 2019, Future Gener. Comput. Syst..

[97]  Tyler H. Summers,et al.  Control of Minimally Persistent Leader-Remote-Follower and Coleader Formations in the Plane , 2011, IEEE Transactions on Automatic Control.

[98]  Mirko Viroli,et al.  Effective Collective Summarisation of Distributed Data in Mobile Multi-Agent Systems , 2019, AAMAS.

[99]  Ronaldo Menezes,et al.  Coordination of Distributed Components Using LogOp , 2003, PDPTA.

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

[101]  Andrea Omicini,et al.  Transparent Protection of Aggregate Computations from Byzantine Behaviours via Blockchain , 2018, Goodtechs '18.

[102]  Victoria Ungureanu,et al.  Law-governed interaction: a coordination and control mechanism for heterogeneous distributed systems , 2000, TSEM.

[103]  Amy L. Murphy,et al.  LIME: A coordination model and middleware supporting mobility of hosts and agents , 2006, TSEM.

[104]  Zhong-Ping Jiang,et al.  A Lyapunov formulation of the nonlinear small-gain theorem for interconnected ISS systems , 1996, Autom..

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

[106]  Jacob Beal,et al.  Composable continuous-space programs for robotic swarms , 2010, Neural Computing and Applications.

[107]  Raghuraman Mudumbai,et al.  Toward Predicting Distributed Systems Dynamics , 2015, 2015 IEEE International Conference on Self-Adaptive and Self-Organizing Systems Workshops.

[108]  Mirko Viroli,et al.  Optimal single-path information propagation in gradient-based algorithms , 2018, Sci. Comput. Program..

[109]  Jacob Beal,et al.  Linda in Space-Time: An Adaptive Coordination Model for Mobile Ad-Hoc Environments , 2012, COORDINATION.

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

[111]  Franco Zambonelli,et al.  Co-Fields: Towards a Unifying Approach to the Engineering of Swarm Intelligent Systems , 2002, ESAW.

[112]  Andrea Omicini,et al.  Coordination models and languages: from parallel computing to self-organisation , 2011, The Knowledge Engineering Review.

[113]  Utz Roedig,et al.  LoRa for the Internet of Things , 2016, EWSN.

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

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

[116]  Michael Hamburg,et al.  Meltdown: Reading Kernel Memory from User Space , 2018, USENIX Security Symposium.

[117]  Jacob Beal,et al.  From Field-Based Coordination to Aggregate Computing , 2018, COORDINATION.

[118]  Mirko Viroli,et al.  Collective Abstractions and Platforms for Large-Scale Self-Adaptive IoT , 2018, 2018 IEEE 3rd International Workshops on Foundations and Applications of Self* Systems (FAS*W).

[119]  Olivier Boissier,et al.  Developing organised multiagent systems using the MOISE+ model: programming issues at the system and agent levels , 2007, Int. J. Agent Oriented Softw. Eng..

[120]  Jacob Beal,et al.  Space-Time Universality of Field Calculus , 2018, COORDINATION.

[121]  Olivier Boissier,et al.  Organization Oriented Programming: From Closed to Open Organizations , 2006, ESAW.

[122]  Mirko Viroli,et al.  Simulating large-scale aggregate MASs with alchemist and scala , 2016, 2016 Federated Conference on Computer Science and Information Systems (FedCSIS).

[123]  Franco Zambonelli,et al.  Engineering self-organising systems : nature-inspired approaches to software engineering , 2004 .

[124]  Jacob Beal A Tactical Command Approach to Human Control of Vehicle Swarms , 2012, AAAI Fall Symposium: Human Control of Bioinspired Swarms.

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

[126]  H. Van Dyke Parunak,et al.  Concurrent Modeling of Alternative Worlds with Polyagents , 2006, MABS.

[127]  Jacob Beal,et al.  Infrastructure for engineered emergence on sensor/actuator networks , 2006, IEEE Intelligent Systems.

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

[129]  Mirko Viroli,et al.  On Distributed Runtime Verification by Aggregate Computing , 2018, VORTEX@ECOOP/ISSTA.

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

[131]  Andrea Omicini,et al.  Self Organization in Coordination Systems Using a WordNet-Based Ontology , 2010, 2010 Fourth IEEE International Conference on Self-Adaptive and Self-Organizing Systems.

[132]  Raja Lavanya,et al.  Fog Computing and Its Role in the Internet of Things , 2019, Advances in Computer and Electrical Engineering.

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

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

[135]  Wenwu Yu,et al.  An Overview of Recent Progress in the Study of Distributed Multi-Agent Coordination , 2012, IEEE Transactions on Industrial Informatics.

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

[137]  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).

[138]  Mirko Viroli,et al.  A Higher-Order Calculus of Computational Fields , 2016, ACM Trans. Comput. Log..

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

[140]  KarageorgosAnthony,et al.  Self-organization in multi-agent systems , 2005 .

[141]  Bill Tomlinson,et al.  Safety, Security, Now Sustainability: The Nonfunctional Requirement for the 21st Century , 2014, IEEE Software.

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

[143]  William C. Frederick,et al.  A Combinatory Logic , 1995 .

[144]  Tobin J. Lehman,et al.  T Spaces , 1998, IBM Syst. J..

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

[146]  A. Church A Set of Postulates for the Foundation of Logic , 1932 .

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

[148]  Roberto Gorrieri,et al.  Coordination Models: A Guided Tour , 2001, Coordination of Internet Agents: Models, Technologies, and Applications.

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

[150]  Mirko Viroli,et al.  Distributed Real-Time Shortest-Paths Computations with the Field Calculus , 2018, 2018 IEEE Real-Time Systems Symposium (RTSS).

[151]  Ken Arnold,et al.  JavaSpaces¿ Principles, Patterns, and Practice , 1999 .

[152]  Mirko Viroli,et al.  On execution platforms for large-scale aggregate computing , 2016, UbiComp Adjunct.

[153]  Marc Esteva,et al.  On the formal specification of electronic institutions , 2001 .

[154]  Peter Beike,et al.  The Definition Of Standard Ml Revised , 2016 .

[155]  Mirko Viroli,et al.  Programming Actor-Based Collective Adaptive Systems , 2018, Programming with Actors.

[156]  Mirko Viroli,et al.  Description and composition of bio-inspired design patterns: a complete overview , 2012, Natural Computing.

[157]  Masayuki Fujita,et al.  Passivity-Based Control and Estimation in Networked Robotics , 2015 .

[158]  J. Aronson Safety , 2009, BMJ : British Medical Journal.

[159]  Herbert Bos,et al.  Throwhammer: Rowhammer Attacks over the Network and Defenses , 2018, USENIX ATC.

[160]  Rajiv Bhatia,et al.  Urban Civics: An IoT middleware for democratizing crowdsensed data in smart societies , 2015, 2015 IEEE 1st International Forum on Research and Technologies for Society and Industry Leveraging a better tomorrow (RTSI).

[161]  Giorgio Audrito,et al.  Resilient Blocks for Summarising Distributed Data , 2017, ALP4IoT@iFM.

[162]  Vincenzo Ciancia,et al.  Spatio-temporal model checking of vehicular movement in public transport systems , 2018, International Journal on Software Tools for Technology Transfer.

[163]  Rocco De Nicola,et al.  A Formal Approach to Autonomic Systems Programming: The SCEL Language , 2014, TAAS.

[164]  Jacob Beal,et al.  Building Spatial Computers , 2007 .

[165]  Raymond Roestenburg,et al.  Akka in Action , 2016 .

[166]  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.