FCPP: an efficient and extensible Field Calculus framework

The Field Calculus is a promising language for the self-organisation of distributed devices, allowing to express on a high level of abstraction complex distributed algorithms with robust behaviour guarantees. This language has been argued to be fruitfully applicable to many different contexts: wireless sensor networks, internet of things, self-organising edge, fog or cloud computing scenarios, and simulations of such. However, existing implementations of this language rely on the Java Virtual Machine and have an high performance overhead, impairing their usability in contexts where performance is critical (cloud) or computational resources are tightly bounded (WSN/IoT).In this paper we present FCPP, a novel implementation of the Field Calculus as a C++ library. The library is built as a component-based system, in order to be easily extensible to fit different contexts. Furthermore, it leverages C++ template patterns to allow compile-time optimisation and minimal performance overhead, and enables fine-grained parallelism for scalability in self-organising cloud applications. A case study of an edge simulation shows the performance improvement compared to existing Field Calculus implementations, while preserving the same level of abstraction. This translates to a significant speed-up in the development process of distributed algorithms, paving the way towards application scenarios for which existing tools are unsuitable: microcontroller systems and self-organising cloud.

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

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

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

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

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

[6]  Franco Zambonelli,et al.  Case studies for self-organization in computer science , 2006, J. Syst. Archit..

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

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

[9]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

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

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

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

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

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

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

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

[17]  K. J. Ray Liu,et al.  Adaptive negative cycle detection in dynamic graphs , 2001, ISCAS 2001. The 2001 IEEE International Symposium on Circuits and Systems (Cat. No.01CH37196).

[18]  Mirko Viroli,et al.  From distributed coordination to field calculus and aggregate computing , 2019, J. Log. Algebraic Methods Program..

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

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

[21]  Howard I. Cannon Flavors : A non-hierarchical approach to object-oriented programming , 2007 .

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

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

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

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

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

[27]  John C. Mitchell,et al.  F-bounded polymorphism for object-oriented programming , 1989, FPCA.