Skip to main content

Actor-Based Designs for Distributed Self-organisation Programming

  • Chapter
  • First Online:
Active Object Languages: Current Research Trends

Abstract

Self-organisation and collective adaptation are highly desired features for several kinds of large-scale distributed systems including robotic swarms, computational ecosystems, wearable collectives, and Internet-of-Things systems. These kinds of distributed processes, addressing functional and non-functional aspects of complex socio-technical systems, can emerge in an engineered/controlled way from (re)active decentralised activity and interaction across all physical and logical system devices. In this work, we study how the Actors programming model can be adopted to support collective self-organising behaviours. Specifically, we analyse the features of the Actors model, such as reactivity, asynchrony, and locality, that are instrumental for implementing the adaptive coordination of large-scale systems, and discuss potential actor-based designs, from simple ad-hoc implementation of algorithms to a full-fledged general toolkit. In particular, the approach is incarnated in the aggregate computing paradigm, which stands as a comprehensive engineering approach for self-organisation. This is based on Akka, and can be fully programmed in the Scala programming language thanks to the ScaFi aggregate computing toolkit.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 74.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    The ScaFi built-in operator evaluates all the arguments and returns the value of if is true or the value of otherwise.

  2. 2.

    https://github.com/metaphori/experiment-actor-design-selforg.

  3. 3.

    https://github.com/scafi/scafi.

  4. 4.

    https://scafi.github.io/.

  5. 5.

    A sketch of an actor-based implementation of the channel is given in the provided repository.

References

  1. Agha, G.: Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge (1986)

    Book  Google Scholar 

  2. Aguzzi, G., Casadei, R., Viroli, M.: Towards reinforcement learning-based aggregate computing. In: ter Beek, M.H., Sirjani, M. (eds.) COORDINATION 2022. IFIP Advances in Information and Communication Technology, vol. 13271, pp. 72–91. Springer, Cham (2022). https://doi.org/10.1007/978-3-031-08143-9_5

    Chapter  Google Scholar 

  3. Albert, E., et al.: Formal modeling and analysis of resource management for cloud architectures: an industrial case study using real-time ABS. Serv. Orient. Comput. Appl. 8, 323–339 (2014)

    Article  Google Scholar 

  4. Arcangeli, J., Boujbel, R., Leriche, S.: Automatic deployment of distributed software systems: definitions and state of the art. J. Syst. Softw. 103, 198–218 (2015). https://doi.org/10.1016/j.jss.2015.01.040

    Article  Google Scholar 

  5. Armstrong, J.: Programming erlang: software for a concurrent world. Program. Erlang 1–548 (2013)

    Google Scholar 

  6. Atzori, L., Iera, A., Morabito, G.: The internet of things: a survey. Comput. Netw. 54(15), 2787–2805 (2010). https://doi.org/10.1016/j.comnet.2010.05.010

    Article  Google Scholar 

  7. Audrito, G., Casadei, R., Damiani, F., Viroli, M.: Compositional blocks for optimal self-healing gradients. In: SASO, pp. 91–100. IEEE (2017). https://doi.org/10.1109/SASO.2017.18

  8. Audrito, G., Viroli, M., Damiani, F., Pianini, D., Beal, J.: A higher-order calculus of computational fields. ACM Trans. Comput. Log. 20(1), 5:1–5:55 (2019). https://doi.org/10.1145/3285956

  9. Bagheri, M., Akkaya, I., Khamespanah, E., Khakpour, N., Sirjani, M., Movaghar, A., Lee, E.A.: Coordinated actors for reliable self-adaptive systems. In: Kouchnarenko, O., Khosravi, R. (eds.) FACS 2016. LNCS, vol. 10231, pp. 241–259. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-57666-4_15

    Chapter  Google Scholar 

  10. Bagheri, M., et al.: Coordinated actor model of self-adaptive track-based traffic control systems. J. Syst. Softw. 143, 116–139 (2018). https://doi.org/10.1016/j.jss.2018.05.034

    Article  Google Scholar 

  11. Bainomugisha, E., Carreton, A.L., Cutsem, T.V., Mostinckx, S., Meuter, W.D.: A survey on reactive programming. ACM Comput. Surv. 45(4), 52:1–52:34 (2013). https://doi.org/10.1145/2501654.2501666

  12. El Ballouli, R., Bensalem, S., Bozga, M., Sifakis, J.: Four exercises in programming dynamic reconfigurable systems: methodology and solution in DR-BIP. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018, Part III. LNCS, vol. 11246, pp. 304–320. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03424-5_20

    Chapter  Google Scholar 

  13. Bittencourt, L.F., et al.: The internet of things, fog and cloud continuum: integration and challenges. Internet Things 3–4, 134–155 (2018). https://doi.org/10.1016/j.iot.2018.09.005

    Article  Google Scholar 

  14. de Boer, F.S., et al.: A survey of active object languages. ACM Comput. Surv. 50(5), 76:1–76:39 (2017). https://doi.org/10.1145/3122848

  15. Boissier, O., Bordini, R.H., Hubner, J., Ricci, A.: Multi-agent Oriented Programming: Programming Multi-agent Systems Using JaCaMo. MIT Press, Cambridge (2020)

    Google Scholar 

  16. Bonabeau, E., Dorigo, M., Theraulaz, G.: Swarm Intelligence: From Natural to Artificial Systems. Santa Fe Institute Studies in the Sciences of Complexity. Oxford University Press, Inc., Oxford (1999)

    Google Scholar 

  17. Brambilla, M., Ferrante, E., Birattari, M., Dorigo, M.: Swarm robotics: a review from the swarm engineering perspective. Swarm Intell. 7(1), 1–41 (2013). https://doi.org/10.1007/s11721-012-0075-2

    Article  Google Scholar 

  18. Brandauer, S., et al.: Parallel objects for multicores: a glimpse at the parallel language Encore. In: Bernardo, M., Johnsen, E.B. (eds.) SFM 2015. LNCS, vol. 9104, pp. 1–56. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-18941-3_1

    Chapter  Google Scholar 

  19. Busoniu, L., Babuska, R., Schutter, B.D.: A comprehensive survey of multiagent reinforcement learning. IEEE Trans. Syst. Man Cybern. Part C 38(2), 156–172 (2008). https://doi.org/10.1109/TSMCC.2007.913919

    Article  Google Scholar 

  20. Caromel, D., Henrio, L.: A Theory of Distributed Objects: Asynchrony-Mobility-Groups-Components. Springer, Heidelberg (2005). https://doi.org/10.1007/b138812

    Book  Google Scholar 

  21. Casadei, R.: Artificial collective intelligence engineering: a survey of concepts and perspectives. Artif. Life 1–35 (2023). https://doi.org/10.1162/artl_0408

  22. Casadei, R.: Macroprogramming: concepts, state of the art, and opportunities of macroscopic behaviour modelling. ACM Comput. Surv. (2023). https://doi.org/10.1145/3579353

    Article  Google Scholar 

  23. Casadei, R.: Metaphori/experiment-actor-design-selforg: actor- based Designs for self-organising systems (2023). https://doi.org/10.5281/zenodo.8377727

  24. Casadei, R., Fortino, G., Pianini, D., Placuzzi, A., Savaglio, C., Viroli, M.: A methodology and simulation-based toolchain for estimating deployment performance of smart collective services at the edge. IEEE Internet Things J. 9(20), 20136–20148 (2022). https://doi.org/10.1109/JIOT.2022.3172470

    Article  Google Scholar 

  25. Casadei, R., Pianini, D., Placuzzi, A., Viroli, M., Weyns, D.: Pulverization in cyber-physical systems: engineering the self-organizing logic separated from deployment. Future Internet 12(11), 203 (2020). https://doi.org/10.3390/fi12110203

    Article  Google Scholar 

  26. Casadei, R., Viroli, M., Aguzzi, G., Pianini, D.: ScaFi: a scala DSL and toolkit for aggregate programming. SoftwareX 20, 101248 (2022). https://doi.org/10.1016/j.softx.2022.101248

    Article  Google Scholar 

  27. Coullon, H., Henrio, L., Loulergue, F., Robillard, S.: Component-based distributed software reconfiguration: a verification-oriented survey. ACM Comput. Surv. (2023). https://doi.org/10.1145/3595376

  28. De Nicola, R., Jähnichen, S., Wirsing, M.: Rigorous engineering of collective adaptive systems: special section. Int. J. Softw. Tools Technol. Transf. 22(4), 389–397 (2020). https://doi.org/10.1007/s10009-020-00565-0

    Article  Google Scholar 

  29. De Wolf, T., Holvoet, T.: Emergence versus self-organisation: different concepts but promising when combined. In: Brueckner, S.A., Di Marzo Serugendo, G., Karageorgos, A., Nagpal, R. (eds.) ESOA 2004. LNCS (LNAI), vol. 3464, pp. 1–15. Springer, Heidelberg (2005). https://doi.org/10.1007/11494676_1

    Chapter  Google Scholar 

  30. Franklin, S., Graesser, A.: Is it an agent, or just a program?: A taxonomy for autonomous agents. In: Müller, J.P., Wooldridge, M.J., Jennings, N.R. (eds.) ATAL 1996. LNCS, vol. 1193, pp. 21–35. Springer, Heidelberg (1997). https://doi.org/10.1007/BFb0013570

    Chapter  Google Scholar 

  31. Gamma, E., Helm, R., Johnson, R., Johnson, R.E., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Pearson Deutschland GmbH (1995)

    Google Scholar 

  32. Gershenson, C.: Design and Control of Self-organizing Systems. CopIt Arxives (2007)

    Google Scholar 

  33. Hewitt, C.: A universal modular actor formalism for artificial intelligence. In: Proceedings of IJCAI (1973)

    Google Scholar 

  34. Johnsen, E.B., Hähnle, R., Schäfer, J., Schlatte, R., Steffen, M.: ABS: a core language for abstract behavioral specification. In: Aichernig, B.K., de Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2010. LNCS, vol. 6957, pp. 142–164. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-25271-6_8

    Chapter  Google Scholar 

  35. Johnsen, E.B., Schlatte, R., Tapia Tarifa, S.L.: Integrating deployment architectures and resource consumption in timed object-oriented models. J. Log. Algebraic Methods Program. 84(1), 67–91 (2015). https://doi.org/10.1016/j.jlamp.2014.07.001

    Article  Google Scholar 

  36. Kephart, J.O., Chess, D.M.: The vision of autonomic computing. Computer 36(1), 41–50 (2003). https://doi.org/10.1109/MC.2003.1160055

    Article  MathSciNet  Google Scholar 

  37. Koster, J.D., Cutsem, T.V., Meuter, W.D.: 43 years of actors: a taxonomy of actor models and their key properties. In: Clebsch, S., Desell, T., Haller, P., Ricci, A. (eds.) Proceedings of the 6th International Workshop on Programming Based on Actors, Agents, and Decentralized Control, AGERE 2016, Amsterdam, The Netherlands, 30 October 2016, pp. 31–40. ACM (2016). https://doi.org/10.1145/3001886.3001890

  38. Mamei, M., Zambonelli, F., Leonardi, L.: Co-fields: a physically inspired approach to motion coordination. IEEE Pervasive Comput. 3(2), 52–61 (2004). https://doi.org/10.1109/MPRV.2004.1316820

    Article  Google Scholar 

  39. Martius, G., Herrmann, J.M.: Variants of guided self-organization for robot control. Theory Biosci. 131(3), 129–137 (2012). https://doi.org/10.1007/s12064-011-0141-0

    Article  Google Scholar 

  40. Montesi, F.: Choreographic programming. Ph.D. thesis (2014). https://pure.itu.dk/ws/files/78733848/m13_phd.pdf

  41. Nagpal, R., Shrobe, H., Bachrach, J.: Organizing a global coordinate system from local information on an ad hoc sensor network. In: Zhao, F., Guibas, L. (eds.) IPSN 2003. LNCS, vol. 2634, pp. 333–348. Springer, Heidelberg (2003). https://doi.org/10.1007/3-540-36978-3_22

    Chapter  Google Scholar 

  42. Nicola, R.D., Loreti, M., Pugliese, R., Tiezzi, F.: A formal approach to autonomic systems programming: the SCEL language. ACM Trans. Auton. Adapt. Syst. 9(2), 7:1–7:29 (2014). https://doi.org/10.1145/2619998

  43. Nicola, R.D., Maggi, A., Sifakis, J.: The DReAM framework for dynamic reconfigurable architecture modelling: theory and applications. Int. J. Softw. Tools Technol. Transf. 22(4), 437–455 (2020). https://doi.org/10.1007/s10009-020-00555-2

    Article  Google Scholar 

  44. Parunak, H.V.D., Brueckner, S.A.: Software engineering for self-organizing systems. Knowl. Eng. Rev. 30(4), 419–434 (2015). https://doi.org/10.1017/S0269888915000089

    Article  Google Scholar 

  45. Pianini, D., Casadei, R., Viroli, M., Mariani, S., Zambonelli, F.: Time-fluid field-based coordination through programmable distributed schedulers. Log. Methods Comput. Sci. 17(4) (2021). https://doi.org/10.46298/lmcs-17(4:13)2021

  46. Roestenburg, R., Williams, R., Bakker, R.: Akka in Action. Simon and Schuster (2016)

    Google Scholar 

  47. Salehie, M., Tahvildari, L.: Self-adaptive software: landscape and research challenges. ACM Trans. Auton. Adapt. Syst. 4(2), 14:1–14:42 (2009). https://doi.org/10.1145/1516533.1516538

  48. Samarasinghe, D., Lakshika, E., Barlow, M., Kasmarik, K.: Automatic synthesis of swarm behavioural rules from their atomic components. In: Aguirre, H.E., Takadama, K. (eds.) Proceedings of the Genetic and Evolutionary Computation Conference, GECCO 2018, Kyoto, Japan, 15–19 July 2018, pp. 133–140. ACM (2018). https://doi.org/10.1145/3205455.3205546

  49. Singh, V.K., Singh, G., Pande, S.: Emergence, self-organization and collective intelligence - modeling the dynamics of complex collectives in social and organizational settings. In: UKSim, pp. 182–189. IEEE (2013). https://doi.org/10.1109/UKSim.2013.77

  50. Sirjani, M., Movaghar, A., Shali, A., De Boer, F.S.: Modeling and verification of reactive systems using Rebeca. Fund. Inform. 63(4), 385–410 (2004)

    MathSciNet  Google Scholar 

  51. Trianni, V.: Evolutionary Swarm Robotics - Evolving Self-organising Behaviours in Groups of Autonomous Robots. Studies in Computational Intelligence, vol. 108. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-77612-3

    Book  Google Scholar 

  52. Varela, C.A., Agha, G.: Programming dynamically reconfigurable open systems with SALSA. ACM SIGPLAN Not. 36(12), 20–34 (2001). https://doi.org/10.1145/583960.583964

    Article  Google Scholar 

  53. Viroli, M., Audrito, G., Beal, J., Damiani, F., Pianini, D.: Engineering resilient collective adaptive systems by self-stabilisation. ACM Trans. Model. Comput. Simul. 28(2) (2018). https://doi.org/10.1145/3177774

  54. Viroli, M., Beal, J., Damiani, F., Audrito, G., Casadei, R., Pianini, D.: From distributed coordination to field calculus and aggregate computing. J. Log. Algebraic Methods Program. 109 (2019). https://doi.org/10.1016/j.jlamp.2019.100486

  55. Viroli, M., Casadei, R., Pianini, D.: On execution platforms for large-scale aggregate computing. In: Lukowicz, P., Krüger, A., Bulling, A., Lim, Y., Patel, S.N. (eds.) Proceedings of the 2016 ACM International Joint Conference on Pervasive and Ubiquitous Computing, UbiComp Adjunct 2016, Heidelberg, Germany, 12–16 September 2016, pp. 1321–1326. ACM (2016). https://doi.org/10.1145/2968219.2979129

  56. Wolf, T.D., Holvoet, T.: Designing self-organising emergent systems based on information flows and feedback-loops. In: SASO, pp. 295–298. IEEE Computer Society (2007). https://doi.org/10.1109/SASO.2007.16

  57. Wooldridge, M.J.: An Introduction to MultiAgent Systems, 2nd edn. Wiley, Hoboken (2009)

    Google Scholar 

  58. Zhang, K., Yang, Z., Basar, T.: Multi-agent reinforcement learning: a selective overview of theories and algorithms. CoRR abs/1911.10635 (2019). http://arxiv.org/abs/1911.10635

Download references

Acknowledgements

This work has been partially supported by the MUR PRIN 2020 Project “COMMON-WEARS” (2020HCWWLP) and the EU/MUR FSE REACT-EU PON R &I 2014–2020. This study was carried out within the Agritech National Research Center and received funding from the European Union Next-GenerationEU (PIANO NAZIONALE DI RIPRESA E RESILIENZA (PNRR) - MISSIONE 4 COMPONENTE 2, INVESTIMENTO 1.4 - D.D. 1032 17/06/2022, CN00000022). This publication is also part of the project NODES which has received funding from the MUR - M4C2 1.5 of PNRR with grant agreement no. ECS00000036. This manuscript reflects only the authors’ views and opinions, neither the European Union nor the European Commission can be considered responsible for them.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ferruccio Damiani .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Casadei, R., Damiani, F., Torta, G., Viroli, M. (2024). Actor-Based Designs for Distributed Self-organisation Programming. In: de Boer, F., Damiani, F., Hähnle, R., Broch Johnsen, E., Kamburjan, E. (eds) Active Object Languages: Current Research Trends. Lecture Notes in Computer Science, vol 14360. Springer, Cham. https://doi.org/10.1007/978-3-031-51060-1_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-51060-1_2

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-51059-5

  • Online ISBN: 978-3-031-51060-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics