Skip to main content

Programming Actor-Based Collective Adaptive Systems

  • Chapter
  • First Online:
Programming with Actors

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 10789))

Abstract

In recent years, we are witnessing a growing interest in large-scale situated systems, such as those falling under the umbrella of pervasive computing, Cyber-Physical Systems, and the Internet of Things. The actor model is a natural choice for designing and implementing such systems, thanks to the ability of actors to address distribution, autonomy of control, and asynchronous communication: namely, it is convenient to view the pervasive cyberspace as an environment densely inhabited by mobile situated actors. But how can an actor-centric development approach be fruitfully used to engineer a complex coordination strategy, where a myriad of devices/actors performs adaptive distributed sensing/processing/acting?

Aggregate computing has been proposed as an emerging paradigm that faces this general problem by adopting a global, system-level stance, allowing to specify and functionally compose collective behaviours by operating on diffused data structures, known as “computational fields”. In this paper, we develop on the idea of integrating the actor model and aggregate computing, presenting a software framework where declarative global-level system specifications are automatically turned into an underlying system of Scala/Akka actors carrying complex coordination tasks involving large sets of devices spread over the pervasive computing system.

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 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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.

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

  2. 2.

    Injection of new code clearly raises security concerns which we do not address here: we simply assume that all the devices participating to the same aggregate application can be trusted.

  3. 3.

    The simulation is publicly available at the following repository: https://bitbucket.org/metaphori/demo-aggregate-agere16.

References

  1. Akka. http://akka.io. Accessed 1 Feb 2017

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

    Google Scholar 

  3. Armstrong, J.: Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf, Raleigh (2007)

    Google Scholar 

  4. Beal, J., Bachrach, J.: Infrastructure for engineered emergence in sensor/actuator networks. IEEE Intell. Syst. 21, 10–19 (2006)

    Article  Google Scholar 

  5. Beal, J., Dulman, S., Usbeck, K., Viroli, M., Correll, N.: Organizing the aggregate: languages for spatial computing. CoRR, abs/1202.5509 (2012)

    Google Scholar 

  6. Beal, J., Pianini, D., Viroli, M.: Aggregate programming for the Internet of Things. IEEE Comput. 48(9), 22–30 (2015)

    Article  Google Scholar 

  7. Beal, J., Viroli, M.: Space–time programming. Phil. Trans. R. Soc. Lond. A Math. Phys. Eng. Sci. 373(2046) (2015). https://doi.org/10.1098/rsta.2014.0220

  8. Beal, J., Viroli, M., Pianini, D., Damiani, F.: Self-adaptation to device distribution changes. In: Cabri, G., Picard, G., Suri, N. (eds.) 10th IEEE International Conference on Self-Adaptive and Self-Organizing Systems, SASO 2016, Augsburg, Germany, 12–16 September 2016, pp. 60–69 (2016). Best paper of IEEE SASO 2016

    Google Scholar 

  9. Callsen, C.J., Agha, G.: Open heterogeneous computing in actorspace. J. Parallel Distrib. Comput. 21(3), 289–300 (1994)

    Article  Google Scholar 

  10. Casadei, R., Viroli, M.: Towards aggregate programming in Scala. In: First Workshop on Programming Models and Languages for Distributed Computing, PMLDC 2016, pp. 5:1–5:7. ACM, New York (2016)

    Google Scholar 

  11. Damiani, F., Viroli, M.: Type-based self-stabilisation for computational fields. Log. Methods Comput. Sci. 11(4), 1–53 (2015)

    Article  MathSciNet  Google Scholar 

  12. Damiani, F., Viroli, M., Pianini, D., Beal, J.: Code mobility meets self-organisation: a higher-order calculus of computational fields. In: Graf, S., Viswanathan, M. (eds.) FORTE 2015. LNCS, vol. 9039, pp. 113–128. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-19195-9_8

    Chapter  Google Scholar 

  13. Derler, B.P., Lee, E.A., Vincentelli, A.S.: Modeling cyber physical systems. Proc. IEEE 100(1), 13–28 (2012)

    Article  Google Scholar 

  14. Fernandez-Marquez, J.L., Serugendo, G.D.M., Montagna, S., Viroli, M., Arcos, J.L.: Description and composition of bio-inspired design patterns: a complete overview. Nat. Comput. 12(1), 43–67 (2013)

    Article  MathSciNet  Google Scholar 

  15. Haubenwaller, A.M., Vandikas, K.: Computations on the edge in the Internet of Things. Procedia Comput. Sci. 52, 29–34 (2015)

    Article  Google Scholar 

  16. Hiesgen, R., Charousset, D., Schmidt, T.C.: Embedded actors - towards distributed programming in the IoT. In: 2014 IEEE Fourth International Conference on Consumer Electronics Berlin (ICCE-Berlin), pp. 371–375. IEEE (2014)

    Google Scholar 

  17. Latronico, E., Lee, E.A., Lohstroh, M., Shaver, C., Wasicek, A., Weber, M.: A vision of swarmlets. IEEE Internet Comput. 19(2), 20–28 (2015)

    Article  Google Scholar 

  18. Mamei, M., Zambonelli, F.: Programming pervasive and mobile computing applications: the TOTA approach. ACM Trans. Softw. Eng. Methodol. 18(4), 1–56 (2009)

    Article  Google Scholar 

  19. Mrissa, M., Médini, L., Jamont, J.-P., Le Sommer, N., Laplace, J.: An avatar architecture for the web of things. IEEE Internet Comput. 19(2), 30–38 (2015)

    Article  Google Scholar 

  20. Ngu, A.H., Gutierrez, M., Metsis, V., Nepal, S., Sheng, Q.Z.: IoT middleware: a survey on issues and enabling technologies. IEEE Internet Things J. 4(1), 1–20 (2017)

    Article  Google Scholar 

  21. Ni, Y., Kremer, U., Stere, A., Iftode, L.: Programming ad-hoc networks of mobile and resource-constrained devices. ACM SIGPLAN Not. 40(6), 249–260 (2005)

    Article  Google Scholar 

  22. Odersky, M., et al.: An overview of the Scala programming language. Technical report (2004)

    Google Scholar 

  23. Persson, P., Angelsmark, O.: Calvin-merging cloud and IoT. Procedia Comput. Sci. 52, 210–217 (2015)

    Article  Google Scholar 

  24. Pianini, D., Viroli, M., Beal, J.: Protelis: practical aggregate programming. In: Proceedings of ACM SAC 2015, Salamanca, Spain, pp. 1846–1853. ACM (2015)

    Google Scholar 

  25. Reppy, J., Samuels, L.: Bulk-synchronous communication mechanisms in Diderot (2015)

    Google Scholar 

  26. Sivieri, A., Mottola, L., Cugola, G.: Building Internet of Things software with ELIoT. Comput. Commun. 89, 141–153 (2016)

    Article  Google Scholar 

  27. Valiant, L.G.: A bridging model for parallel computation. Commun. ACM 33(8), 103–111 (1990)

    Article  Google Scholar 

  28. Vallejos, J., Gonzalez Boix, E., Bainomugisha, E., Costanza, P., De Meuter, W., Tanter, É.: Towards resilient partitioning of pervasive computing services. In: Proceedings of the 3rd Workshop on Software Engineering for Pervasive Services (SEPS 2008), pp. 15–20, January 2008

    Google Scholar 

  29. Van Cutsem, T., et al.: AmbientTalk: programming responsive mobile peer-to-peer applications with actors. Comput. Lang. Syst. Struct. 40(3), 112–136 (2014)

    Google Scholar 

  30. Vernon, V.: Reactive Messaging Patterns with the Actor Model: Applications and Integration in Scala and Akka, 1st edn. Addison-Wesley Professional, Boston (2015)

    Google Scholar 

  31. Viroli, M., Audrito, G., Damiani, F., Pianini, D., Beal, J.: A higher-order calculus of computational fields. CoRR, abs/1610.08116 (2016)

    Google Scholar 

  32. Viroli, M., Beal, J., Damiani, F., Pianini, D.: Efficient engineering of complex self-organising systems by self-stabilising fields. In: IEEE Self-Adaptive and Self-Organizing Systems 2015, pp. 81–90. IEEE, September 2015

    Google Scholar 

  33. Viroli, M., Casadei, R., Pianini, D.: On execution platforms for large-scale aggregate computing. In: Workshop on Collective Adaptation in Very Large Scale Ubicomp: Towards a Superorganism of Wearables, Ubicomp 2016. ACM, New York (2016)

    Google Scholar 

  34. Zambonelli, F.: Key abstractions for IoT-oriented software engineering. IEEE Softw. 34(1), 38–45 (2017)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Roberto Casadei .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Casadei, R., Viroli, M. (2018). Programming Actor-Based Collective Adaptive Systems. In: Ricci, A., Haller, P. (eds) Programming with Actors. Lecture Notes in Computer Science(), vol 10789. Springer, Cham. https://doi.org/10.1007/978-3-030-00302-9_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-00302-9_4

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-00301-2

  • Online ISBN: 978-3-030-00302-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics