Skip to main content

\(\mathcal {G}o\mathcal {A}t\): Attribute-Based Interaction in Google Go

  • Conference paper
  • First Online:
Book cover Leveraging Applications of Formal Methods, Verification and Validation. Distributed Systems (ISoLA 2018)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 11246))

Included in the following conference series:

Abstract

The attribute-based interaction paradigm has been proposed as an appropriate tool to program the interactions of Collective Adaptive Systems where a group of components can interact according to their run-time properties and the environment they operate in. It has been shown that the novel paradigm is very expressive by means of encoding other well-known interaction paradigms. However, the question on the tradeoff between its expressiveness and its efficiency, when implemented to program distributed and collective systems, is still to be answered. In a previous work, we proposed three distributed communication infrastructures to handle message exchange for the attribute-based paradigm and we proved their correctness. In this paper, we describe an actual implementation of these infrastructures in Google Go. We describe an attribute-based programming API, named \(\mathcal {G}o\mathcal {A}t\), that is parametric with respect to the infrastructure that mediates the interaction between components and an Eclipse plugin for \(\mathcal {G}o\mathcal {A}t\) to program in a high-level syntax which can be automatically used to generate formally verifiable Go code. Finally, we discuss the performance of the API by considering a non-trivial case study.

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.

    The \(\mathcal {G}o\mathcal {A}t\) API:https://giulio-garbi.github.io/goat/.

  2. 2.

    The simulator: https://github.com/giulio-garbi/AbCSimulator_vertex.

References

  1. The Go programming language. https://golang.org/doc/. Accessed 17 Oct 2017

  2. Abd Alrahman, Y., De Nicola, R., Loreti, M.: On the power of attribute-based communication. In: Albert, E., Lanese, I. (eds.) FORTE 2016. LNCS, vol. 9688, pp. 1–18. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-39570-8_1

    Chapter  Google Scholar 

  3. Abd Alrahman, Y., De Nicola, R., Loreti, M.: Programming of CAS systems by relying on attribute-based communication. In: Margaria, T., Steffen, B. (eds.) ISoLA 2016, Part I. LNCS, vol. 9952, pp. 539–553. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-47166-2_38

    Chapter  Google Scholar 

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

    Book  Google Scholar 

  5. Alrahman, Y.A., De Nicola, R., Garbi, G., Loreti, M.: A distributed coordination infrastructure for attribute-based interaction. In: Baier, C., Caires, L. (eds.) FORTE 2018. LNCS, vol. 10854, pp. 1–20. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-92612-4_1

    Chapter  Google Scholar 

  6. Alrahman, Y.A., De Nicola, R., Loreti, M., Tiezzi, F., Vigo, R.: A calculus for attribute-based communication. In: Proceedings of the 30th Annual ACM Symposium on Applied Computing, pp. 1840–1845, SAC 2015. ACM (2015). https://doi.org/10.1145/2695664.2695668

  7. Chang, J.M., Maxemchuk, N.F.: Reliable broadcast protocols. ACM Trans. Comput. Syst. 2, 251–273 (1984). https://doi.org/10.1145/989.357400

  8. Chockler, G.V., Keidar, I., Vitenberg, R.: Group communication specifications: a comprehensive study. ACM Comput. (CSUR) 33(4), 427–469 (2001)

    Article  Google Scholar 

  9. Cristian, F.: Asynchronous atomic broadcast. IBM Tech. Discl. Bull. 33(9), 115–116 (1991)

    Google Scholar 

  10. Cristian, F., Mishra, S.: The pinwheel asynchronous atomic broadcast protocols. In: Second International Symposium on Autonomous Decentralized Systems, 1995. Proceedings, ISADS 1995, pp. 215–221. IEEE (1995). https://doi.org/10.1109/ISADS.1995.398975

  11. De Nicola, R., Duong, T., Inverso, O., Trubiani, C.: AErlang: empowering Erlang with attribute-based communication. In: Jacquet, J.-M., Massink, M. (eds.) COORDINATION 2017. LNCS, vol. 10319, pp. 21–39. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-59746-1_2

    Chapter  Google Scholar 

  12. Ene, C., Muntean, T.: A broadcast-based calculus for communicating systems. In: Parallel and Distributed Processing Symposium, International, vol. 3, p. 30149b. IEEE Computer Society (2001)

    Google Scholar 

  13. Eugster, P.T., Felber, P.A., Guerraoui, R., Kermarrec, A.M.: The many faces of publish/subscribe. ACM Comput. Surv. 35(2), 114–131 (2003). https://doi.org/10.1145/857076.857078

  14. Fischer, M.J., Lynch, N.A., Paterson, M.S.: Impossibility of distributed consensus with one faulty process. J. ACM 32(2), 374–382 (1985). https://doi.org/10.1145/3149.214121

  15. Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978)

    Article  Google Scholar 

  16. Jensen, T.R., Toft, B.: Graph Coloring Problems, vol. 39. Wiley, New York (1995)

    Google Scholar 

  17. Maggs, B.M., Sitaraman, R.K.: Algorithmic nuggets in content delivery. SIGCOMM Comput. Commun. Rev. 45(3), 52–66 (2015). https://doi.org/10.1145/2805789.2805800

  18. Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, ii. Inf. Comput. 100(1), 41–77 (1992)

    Article  MathSciNet  Google Scholar 

  19. Pike, R.: Go at Google. In: Proceedings of the 3rd Annual Conference on Systems, Programming, and Applications: Software for Humanity, pp. 5–6, SPLASH 2012. ACM, New York (2012). https://doi.org/10.1145/2384716.2384720

  20. Robertson, J.B.: Continuous-time Markov Chains (W. J. Anderson). SIAM Rev. 36(2), 316–317 (1994). https://doi.org/10.1137/1036084

  21. Schulze, T.P.: Efficient kinetic Monte Carlo simulation. J. Comput. Phys. 227(4), 2455–2462 (2008). http://www.sciencedirect.com/science/article/pii/S0021999107004755

  22. Vukolić, M.: The quest for scalable blockchain fabric: Proof-of-Work vs. BFT replication. In: Camenisch, J., Kesdoğan, D. (eds.) iNetSec 2015. LNCS, vol. 9591, pp. 112–125. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-39028-4_9

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yehia Abd Alrahman .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Abd Alrahman, Y., De Nicola, R., Garbi, G. (2018). \(\mathcal {G}o\mathcal {A}t\): Attribute-Based Interaction in Google Go. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification and Validation. Distributed Systems. ISoLA 2018. Lecture Notes in Computer Science(), vol 11246. Springer, Cham. https://doi.org/10.1007/978-3-030-03424-5_19

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-03424-5_19

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-03423-8

  • Online ISBN: 978-3-030-03424-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics