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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
The \(\mathcal {G}o\mathcal {A}t\) API:https://giulio-garbi.github.io/goat/.
- 2.
The simulator: https://github.com/giulio-garbi/AbCSimulator_vertex.
References
The Go programming language. https://golang.org/doc/. Accessed 17 Oct 2017
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
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
Agha, G.: Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge (1986)
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
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
Chang, J.M., Maxemchuk, N.F.: Reliable broadcast protocols. ACM Trans. Comput. Syst. 2, 251–273 (1984). https://doi.org/10.1145/989.357400
Chockler, G.V., Keidar, I., Vitenberg, R.: Group communication specifications: a comprehensive study. ACM Comput. (CSUR) 33(4), 427–469 (2001)
Cristian, F.: Asynchronous atomic broadcast. IBM Tech. Discl. Bull. 33(9), 115–116 (1991)
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
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
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)
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
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
Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978)
Jensen, T.R., Toft, B.: Graph Coloring Problems, vol. 39. Wiley, New York (1995)
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
Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, ii. Inf. Comput. 100(1), 41–77 (1992)
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
Robertson, J.B.: Continuous-time Markov Chains (W. J. Anderson). SIAM Rev. 36(2), 316–317 (1994). https://doi.org/10.1137/1036084
Schulze, T.P.: Efficient kinetic Monte Carlo simulation. J. Comput. Phys. 227(4), 2455–2462 (2008). http://www.sciencedirect.com/science/article/pii/S0021999107004755
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
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer Nature Switzerland AG
About this paper
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)