Distributed Computing on Distributed Memory

  • Andreas PrinzEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11150)


Distributed computation is formalized in several description languages for computation, as e.g. Unified Modeling Language (UML), Specification and Description Language (SDL), and Concurrent Abstract State Machines (CASM). All these languages focus on the distribution of computation, which is somewhat the same as concurrent computation. In addition, there is also the aspect of distribution of state, which is often neglected. Distribution of state is most commonly represented by communication between active agents. This paper argues that it is desirable to abstract from the communication and to consider abstract distributed state. This includes semantic handling of conflict resolution, e.g. in connection with data replication. The need for abstract distribution of state is discussed and a novel semantics for concurrency based on an abstract distributed state is presented. This semantics uses runs over so-called multistates, and hides the internal communication for replica handling. This way, distributed computation is described over an abstract memory model.



This work benefited from many discussions with Egon Börger and Klaus-Dieter Schewe. In particular, the modelling of Cassandra in CASM is joint work with them. I am grateful for the helpful comments of the anonymous reviewers.


  1. 1.
    Apache Software Foundation: Apache Cassandra 2.0—Documentation. (2016)
  2. 2.
    Best, E.: Semantics of Sequential and Parallel Programs. Prentice Hall, Upper Saddle River (1996)zbMATHGoogle Scholar
  3. 3.
    Börger, E., Schewe, K.D.: Concurrent abstract state machines. Acta Inf. 53(5), 469–492 (2016)MathSciNetCrossRefGoogle Scholar
  4. 4.
    Börger, E., Schewe, K.D.: Communication in abstract state machines. J. Univ. Comp. Sci. 23(2), 129–145 (2017)MathSciNetGoogle Scholar
  5. 5.
    Börger, E., Stärk, R.F.: Abstract State Machines: A Method for High-Level System Design and Analysis. Springer (2003)Google Scholar
  6. 6.
    Ferrarotti, F., Schewe, K.D., Tec, L., Wang, Q.: A new thesis concerning synchronised parallel computing—simplified parallel ASM thesis. Theor. Comp. Sci. 649, 25–53 (2016)MathSciNetCrossRefGoogle Scholar
  7. 7.
    Gilbert, S., Lynch, N.: Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant web services. SIGACT News 33(2), 51–59 (2002). Scholar
  8. 8.
    Gosling, J., Joy, B., Steele, G.L., Bracha, G., Buckley, A.: The Java Language Specification, Java SE 8 Edition. Addison-Wesley Professional, 1st edn. (2014)Google Scholar
  9. 9.
    Gurevich, Y.: Evolving algebras 1993: lipari guide. In: Börger, E. (ed.) Specification and Validation Methods. Oxford University Press (1995)Google Scholar
  10. 10.
    Gurevich, Y.: Sequential abstract-state machines capture sequential algorithms. ACM Trans. Comp. Logic 1(1), 77–111 (2000)MathSciNetCrossRefGoogle Scholar
  11. 11.
    Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978). Scholar
  12. 12.
    ITU: Z.100 series, specification and description language SDL. Technical Report, International Telecommunication Union (2011)Google Scholar
  13. 13.
    Lamport, L., Lynch, N.: Distributed computing: models and methods. In: Handbook of Theoretical Computer Science, pp. 1157–1199. Elsevier (1990)Google Scholar
  14. 14.
    Manson, J., Pugh, W., Adve, S.V.: The java memory model. SIGPLAN Not. 40(1), 378–391 (2005). Scholar
  15. 15.
    Milner, R.: A Calculus of Communicating Systems. Springer, New York (1982)zbMATHGoogle Scholar
  16. 16.
    Mironov, A.M.: Theory of processes CoRR abs/1009.2259 (2010)Google Scholar
  17. 17.
    Nakamoto, S.: Bitcoin: A peer-to-peer electronic cash system.
  18. 18.
    Narayanan, A., Bonneau, J., Felten, E., Miller, A., Goldfeder, S.: Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction. Princeton University Press, Princeton (2016)zbMATHGoogle Scholar
  19. 19.
    Object Management Group (OMG): Action Language for Foundational UML (Alf), Version 1.1. OMG Document Number formal, 04 July 2017 (2017).
  20. 20.
    Object Management Group (OMG): OMG® Unified Modeling Language® (OMG UML®), Version 2.5.1. OMG Document Number formal, 05 December 2017.
  21. 21.
    Object Management Group (OMG): Semantics of a Foundational Subset for Executable UML Models (fUML), Version 1.3. OMG Document Number formal, 02 July 2017.
  22. 22.
    Prinz, A., Sherratt, E.: Distributed ASM - pitfalls and solutions. In: Aït-Ameur, Y., Schewe, K.D. (eds.) Abstract State Machines, Alloy, B, TLA, VDM and Z - Proceedings of the 4th International Conference (ABZ 2014). Lecture Notes in Computer Science, vol. 8477, pp. 210–215. Springer, Heidelberg (2014)Google Scholar
  23. 23.
    Rabl, T., Sadoghi, M., Jacobsen, H.A., Gómez-Villamor, S., Muntés-Mulero, V., Mankowskii, S.: Solving big data challenges for enterprise application performance management. PVLDB 5(12), 1724–1735 (2012)Google Scholar
  24. 24.
    Tanenbaum, A.S., Van Steen, M.: Distributed Systems. Prentice-Hall (2007)Google Scholar
  25. 25.
    Winskel, G., Nielsen, M.: Models for concurrency. In: Abramsky, S., Gabbay, D., Maibaum, T.S.E. (eds.) Handbook of Logic and the Foundations of Computer Science: Semantic Modelling, vol. 4, pp. 1–148. Oxford University Press (1995)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  1. 1.Department of ICTUniversity of AgderAgderNorway

Personalised recommendations