Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1007/978-3-030-61362-4_25guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Step-Wise Development of Provably Correct Actor Systems

Published: 20 October 2020 Publication History

Abstract

Concurrent and distributed software is widespread, but is inherently complex. The Actor model avoids the common pitfall of shared mutable state and interprocess communication is done via asynchronous message passing. Actors are used in Erlang, the Akka framework, and many others. In this paper we discuss the formal development of actor systems via refinement. We start with an abstract specification and introduce details until the final model can be translated into an actor program. In each refinement, we show that the abstract properties are still preserved. Agha’s classical factorial algorithm serves as a demonstrating example. To the best of our knowledge we are the first who formally prove that his actor system computes factorials. We use Event-B as a modelling language together with interactive theorem proving and SMT solving for verification.

References

[1]
Abrial JR Modeling in Event-B: System and Software Engineering 2010 Cambridge Cambridge University Press
[2]
Abrial JR, Butler MJ, Hallerstede S, Hoang TS, Mehta F, and Voisin L Rodin: an open toolset for modelling and reasoning in Event-B Int. J. Softw. Tools Technol. Transfer 2010 12 6 447-466
[3]
Agha G Actors: A Model of Concurrent Computation in Distributed Systems 1986 Cambridge MIT Press
[4]
Albert E et al. Formal modeling and analysis of resource management for cloud architectures: an industrial case study using Real-Time ABS Serv. Oriented Comput. Appl. 2014 8 4 323-339
[5]
Armstrong, J.: Programming Erlang: Software for a Concurrent World. Pragmatic Programmers, The Pragmatic Bookshelf, 2nd edn (2013)
[6]
Armstrong J, Virding R, and Williams M Concurrent Programming in ERLANG 1993 Upper Saddle River Prentice Hall
[7]
Arnold K, Gosling J, and Holmes D The Java Programming Language 2000 Boston Addison-Wesley
[8]
Ball T, Cook B, Levin V, and Rajamani SK Boiten EA, Derrick J, and Smith G SLAM and static driver verifier: technology transfer of formal methods inside Microsoft Integrated Formal Methods 2004 Heidelberg Springer 1-20
[9]
Bevemyr, J.: How Cisco is using Erlang for intent-based networking (2018). https://youtu.be/077-XJv6PLQ, Code Beam Stockholm
[10]
Boehm, H.J., Adve, S.V.: Foundations of the C++ concurrency memory model. In: Gupta, R., Amarasinghe, S.P. (eds.) Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation, Tucson, AZ, USA, 7–13 June 2008, pp. 68–78. ACM (2008)
[11]
Cesarini, F.: Which companies are using Erlang, and why?, 11 September 2019. https://www.erlang-solutions.com/blog/which-companies-are-using-erlang-and-why-mytopdogstatus.html
[12]
Charalambides, M., Dinges, P., Agha, G.: Parameterized concurrent multi-party session types. In: Kokash, N., Ravara, A. (eds.) Proceedings 11th International Workshop on Foundations of Coordination Languages and Self Adaptation, FOCLASA 2012, Newcastle, U.K., 8 September 2012. EPTCS, vol. 91, pp. 16–30 (2012)
[13]
Charalambides M, Palmskog K, and Agha G Boreale M, Corradini F, Loreti M, and Pugliese R Types for progress in actor programs Models, Languages, and Tools for Concurrent and Distributed Programming 2019 Cham Springer 315-339
[15]
Din CC, Bubel R, and Hähnle R Felty AP and Middeldorp A KeY-ABS: a deductive verification tool for the concurrent modelling language ABS Automated Deduction – CADE-25 2015 Cham Springer 517-526
[16]
Din CC, Tapia Tarifa SL, Hähnle R, and Johnsen EB Butler M, Conchon S, and Zaïdi F History-based specification and verification of scalable concurrent and distributed systems Formal Methods and Software Engineering 2015 Cham Springer 217-233
[17]
Déharbe D, Fontaine P, Guyot Y, Voisin L, et al. Derrick J et al. SMT solvers for Rodin Abstract State Machines, Alloy, B, VDM, and Z 2012 Heidelberg Springer 194-207
[18]
Ericsson: Erlang celebrates 20 years as open source, 31 May 2018. https://www.ericsson.com/en/news/2018/5/erlang-celebrates-20-years-as-open-source
[19]
Hewitt, C.: Actor model of computation: scalable robust information systems. arXiv (2010). http://arxiv.org/abs/1008.1459
[20]
Johnsen EB, Hähnle R, Schäfer J, Schlatte R, and Steffen M Aichernig BK, de Boer FS, and Bonsangue MM ABS: a core language for abstract behavioral specification Formal Methods for Components and Objects 2011 Heidelberg Springer 142-164
[21]
[22]
Lightbend: Akka Typed Documentation (2019). https://doc.akka.io/docs/akka/2.5/typed/actors.html
[23]
Maderbacher, B.: Proof-based development of actor systems. Master’s thesis, Graz University of Technology, Institute of Software Technology, December 2019. Supervisor: Bernhard K. Aichernig
[24]
Metz, C.: Why WhatsApp Only Needs 50 Engineers for Its 900M Users. WIRED (2015). https://www.wired.com/2015/09/whatsapp-serves-900-million-users-50-engineers/
[25]
Musser, D.R., Varela, C.A.: Structured reasoning about actor systems. In: Jamali, N., Ricci, A., Weiss, G., Yonezawa, A. (eds.) Proceedings of the 2013 Workshop on Programming Based on Actors, Agents, and Decentralized Control, AGERE!@SPLASH 2013, Indianapolis, IN, USA, 27–28 October 2013, pp. 37–48. ACM (2013)
[26]
Newcombe C, Rath T, Zhang F, Munteanu B, Brooker M, and Deardeuff M How Amazon web services uses formal methods Commun. ACM 2015 58 4 66-73
[27]
Odersky, M., Spoon, L., Venners, B.: Programming in Scala. Artima Inc. (2008)
[28]
Savage S, Burrows M, Nelson G, Sobalvarro P, and Anderson TE Eraser: a dynamic data race detector for multithreaded programs ACM Trans. Comput. Syst. 1997 15 4 391-411
[29]
Sirjani M Lohstroh M, Derler P, and Sirjani M Power is overrated, go for friendliness! expressiveness, faithfulness, and usability in modeling: the actor experience Principles of Modeling 2018 Cham Springer 423-448
[30]
Sirjani, M., Movaghar, A., Shali, A., de Boer, F.S.: Modeling and verification of reactive systems using Rebeca. Fundamenta Informaticae 63(4), 385–410 (2004). http://content.iospress.com/articles/fundamenta-informaticae/fi63-4-05
[31]
WhatsApp: 1 million is so 2011, 06 January 2012. https://blog.whatsapp.com/196/1-million-is-so-2011
[32]
Yasutake, S., Watanabe, T.: Actario: a framework for reasoning about actor systems. Technical report, Tokyo Institute of Technology (2015)

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
Leveraging Applications of Formal Methods, Verification and Validation: Verification Principles: 9th International Symposium on Leveraging Applications of Formal Methods, ISoLA 2020, Rhodes, Greece, October 20–30, 2020, Proceedings, Part I
Oct 2020
595 pages
ISBN:978-3-030-61361-7
DOI:10.1007/978-3-030-61362-4

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 20 October 2020

Author Tags

  1. Actors
  2. Refinement
  3. Proof-based development
  4. Formal method
  5. Event-B
  6. Verification

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 0
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media