{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,26]],"date-time":"2026-03-26T21:28:06Z","timestamp":1774560486345,"version":"3.50.1"},"reference-count":35,"publisher":"Springer Science and Business Media LLC","issue":"4","license":[{"start":{"date-parts":[[2020,2,28]],"date-time":"2020-02-28T00:00:00Z","timestamp":1582848000000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2020,2,28]],"date-time":"2020-02-28T00:00:00Z","timestamp":1582848000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/501100005760","name":"University of Gothenburg","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100005760","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Int J Softw Tools Technol Transfer"],"published-print":{"date-parts":[[2020,8]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Collective adaptive systems exhibit a particular notion of interaction where environmental conditions largely influence interactions. Previously, we proposed a calculus, named<jats:italic>AbC<\/jats:italic>, to model and reason about CAS. The calculus proved to be effective by naturally modelling essential CAS features. However, the question on the tradeoff between its expressiveness and its efficiency, when implemented to program CAS applications, is to be answered. In this article, we propose an efficient and distributed coordination infrastructure for<jats:italic>AbC<\/jats:italic>. We prove its correctness, and we evaluate its performance. The main novelty of our approach is that<jats:italic>AbC<\/jats:italic>components are infrastructure agnostic. Thus the code of a component does not specify how messages are routed in the infrastructure but rather what properties a target component must satisfy. We also developed a Go API, named<jats:inline-formula><jats:alternatives><jats:tex-math>$$\\mathcal {G}{} \\textit{o}\\mathcal {A}{} \\textit{t}$$<\/jats:tex-math><mml:math xmlns:mml=\"http:\/\/www.w3.org\/1998\/Math\/MathML\"><mml:mrow><mml:mi>G<\/mml:mi><mml:mrow\/><mml:mi>o<\/mml:mi><mml:mi>A<\/mml:mi><mml:mrow\/><mml:mi>t<\/mml:mi><\/mml:mrow><\/mml:math><\/jats:alternatives><\/jats:inline-formula>, and an Eclipse plugin to program in a high-level syntax which can be automatically used to generate matching Go code. We showcase our development through a non-trivial case study.<\/jats:p>","DOI":"10.1007\/s10009-020-00553-4","type":"journal-article","created":{"date-parts":[[2020,2,28]],"date-time":"2020-02-28T14:02:32Z","timestamp":1582898552000},"page":"477-496","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":4,"title":["A distributed API for coordinating AbC programs"],"prefix":"10.1007","volume":"22","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-4866-6931","authenticated-orcid":false,"given":"Yehia","family":"Abd Alrahman","sequence":"first","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2836-4434","authenticated-orcid":false,"given":"Giulio","family":"Garbi","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2020,2,28]]},"reference":[{"key":"553_CR1","doi-asserted-by":"crossref","unstructured":"Abd Alrahman, Y., De Nicola, R., Loreti, M.: On the power of attribute-based communication. In: Formal Techniques for Distributed Objects, Components, and Systems\u201436th IFIP International Conference, FORTE. Springer, pp. 1\u201318 (2016)","DOI":"10.1007\/978-3-319-39570-8_1"},{"key":"553_CR2","doi-asserted-by":"crossref","unstructured":"Abd Alrahman, Y., De Nicola, R., Loreti, M.: Programming of CAS systems by relying on attribute-based communication. In: Leveraging Applications of Formal Methods, Verification and Validation: Foundational Techniques\u20147th International Symposium, ISoLA \u201916, Proceedings, Part I. Springer, pp. 539\u2013553 (2016)","DOI":"10.1007\/978-3-319-47166-2_38"},{"key":"553_CR3","doi-asserted-by":"crossref","unstructured":"Abd Alrahman, Y., De Nicola, R., Loreti, M.: Programming the Interactions of Collective Adaptive Systems by Relying on Attribute-based Communication. ArXiv e-prints (2017)","DOI":"10.1007\/978-3-319-47166-2_38"},{"key":"553_CR4","doi-asserted-by":"crossref","unstructured":"Abd Alrahman, Y., De\u00a0Nicola, R., Loreti, M., Tiezzi, F., Vigo, R.: A calculus for attribute-based communication. In: Proceedings of the 30th Annual ACM Symposium on Applied Computing, SAC \u201915. ACM, pp. 1840\u20131845 (2015)","DOI":"10.1145\/2695664.2695668"},{"key":"553_CR5","doi-asserted-by":"publisher","DOI":"10.7551\/mitpress\/1086.001.0001","volume-title":"Actors: A Model of Concurrent Computation in Distributed Systems","author":"G Agha","year":"1986","unstructured":"Agha, G.: Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge (1986)"},{"key":"553_CR6","unstructured":"Alrahman, Y.A., De Nicola, R., Garbi, G.: GoAt: Attribute-based interaction in Google go. In: Leveraging Applications of Formal Methods, Verification and Validation. Distributed Systems\u20148th International Symposium, ISoLA 2018, pp. 288\u2013303 (2018)"},{"key":"553_CR7","doi-asserted-by":"crossref","unstructured":"Alrahman, Y.A., De Nicola, R., Garbi, G., Loreti, M.: A distributed coordination infrastructure for attribute-based interaction. In: Formal Techniques for Distributed Objects, Components, and Systems\u201438th IFIP WG 6.1 International Conference, FORTE 2018, Proceedings, pp. 1\u201320 (2018)","DOI":"10.1007\/978-3-319-92612-4_1"},{"key":"553_CR8","doi-asserted-by":"publisher","first-page":"152","DOI":"10.1007\/978-3-030-21485-2_10","volume-title":"Models, Languages, and Tools for Concurrent and Distributed Programming","author":"YA Alrahman","year":"2019","unstructured":"Alrahman, Y.A., Mezzina, C.A., Vieira, H.T.: Testing for coordination fidelity. In: Boreale, M., Corradini, F., Loreti, M., Pugliese, R. (eds.) Models, Languages, and Tools for Concurrent and Distributed Programming, pp. 152\u2013169. Springer, Berlin (2019)"},{"key":"553_CR9","doi-asserted-by":"publisher","first-page":"104457","DOI":"10.1016\/j.ic.2019.104457","volume":"268","author":"YA Alrahman","year":"2019","unstructured":"Alrahman, Y.A., Nicola, R.D., Loreti, M.: A calculus for collective-adaptive systems and its behavioural theory. Inf. Comput. 268, 104457 (2019)","journal-title":"Inf. Comput."},{"key":"553_CR10","unstructured":"Alrahman, Y.A., Perelli, G., Piterman, N.: A computational framework for adaptive systems and its verification. CoRR (2019). arXiv:1906.10793"},{"key":"553_CR11","doi-asserted-by":"publisher","first-page":"100487","DOI":"10.1016\/j.jlamp.2019.100487","volume":"109","author":"YA Alrahman","year":"2019","unstructured":"Alrahman, Y.A., Vieira, H.T.: A coordination protocol language for power grid operation control. J. Log. Algebraic Methods Program. 109, 100487 (2019)","journal-title":"J. Log. Algebraic Methods Program."},{"issue":"3","key":"553_CR12","doi-asserted-by":"publisher","first-page":"191","DOI":"10.1162\/artl.1997.3.3.191","volume":"3","author":"E Bonabeau","year":"1997","unstructured":"Bonabeau, E.: From classical models of morphogenesis to agent-based models of pattern formation. Artif. Life 3(3), 191\u2013211 (1997)","journal-title":"Artif. Life"},{"issue":"11\u201312","key":"553_CR13","doi-asserted-by":"publisher","first-page":"1257","DOI":"10.1002\/spe.767","volume":"36","author":"E Bruneton","year":"2006","unstructured":"Bruneton, E., Coupaye, T., Leclercq, M., Qu\u00e9ma, V., Stefani, J.-B.: The fractal component model and its support in Java. Softw. Pract. Exp. 36(11\u201312), 1257\u20131284 (2006)","journal-title":"Softw. Pract. Exp."},{"issue":"12","key":"553_CR14","doi-asserted-by":"publisher","first-page":"50","DOI":"10.1109\/MC.2016.377","volume":"49","author":"T Bures","year":"2016","unstructured":"Bures, T., Plasil, F., Kit, M., Tuma, P., Hoch, N.: Software abstractions for component interaction in the internet of things. IEEE Comput. 49(12), 50\u201359 (2016)","journal-title":"IEEE Comput."},{"key":"553_CR15","volume-title":"Self-organization in Biological Systems. Princeton studies in complexity","author":"S Camazine","year":"2003","unstructured":"Camazine, S., Deneubourg, J., Franks, N.R., Sneyd, J., Theraulaz, G.: Self-organization in Biological Systems. Princeton studies in complexity. Princeton University Press, Princeton (2003)"},{"key":"553_CR16","doi-asserted-by":"publisher","first-page":"251","DOI":"10.1145\/989.357400","volume":"2","author":"J-M Chang","year":"1984","unstructured":"Chang, J.-M., Maxemchuk, N.F.: Reliable broadcast protocols. ACM Trans. Comput. Syst. 2, 251\u2013273 (1984)","journal-title":"ACM Trans. Comput. Syst."},{"issue":"9","key":"553_CR17","first-page":"115","volume":"33","author":"F Cristian","year":"1991","unstructured":"Cristian, F.: Asynchronous atomic broadcast. IBM Tech. Discl. Bull. 33(9), 115\u2013116 (1991)","journal-title":"IBM Tech. Discl. Bull."},{"key":"553_CR18","unstructured":"Cristian, F., Mishra, S.: The pinwheel asynchronous atomic broadcast protocols. In: Second International Symposium on Autonomous Decentralized Systems, 1995. Proceedings. ISADS 95, pp. 215\u2013221. IEEE (1995)"},{"key":"553_CR19","doi-asserted-by":"publisher","first-page":"3","DOI":"10.1007\/978-3-319-16310-9_1","volume-title":"Software Engineering for Collective Autonomic Systems-The ASCENS Approach","author":"R De Nicola","year":"2015","unstructured":"De Nicola, R., Latella, D., Lluch-Lafuente, A., Loreti, M., Margheri, A., Massink, M., Morichetta, A., Pugliese, R., Tiezzi, F., Vandin, A.: The SCEL language: design, implementation, verification. In: Wirsing, M., H\u00f6lzl, M., Koch, N., Mayer, P. (eds.) Software Engineering for Collective Autonomic Systems-The ASCENS Approach, pp. 3\u201371. Springer, Berlin (2015)"},{"key":"553_CR20","doi-asserted-by":"crossref","unstructured":"Ferscha, A.: Collective adaptive systems. In: Adjunct Proceedings of the 2015 ACM International Joint Conference on Pervasive and Ubiquitous Computing and Proceedings of the 2015 ACM International Symposium on Wearable Computers, UbiComp\/ISWC\u201915 Adjunct, pp. 893\u2013895, New York, NY, USA. ACM (2015)","DOI":"10.1145\/2800835.2809508"},{"issue":"2","key":"553_CR21","doi-asserted-by":"publisher","first-page":"374","DOI":"10.1145\/3149.214121","volume":"32","author":"MJ Fischer","year":"1985","unstructured":"Fischer, M.J., Lynch, N.A., Paterson, M.S.: Impossibility of distributed consensus with one faulty process. J. ACM 32(2), 374\u2013382 (1985)","journal-title":"J. ACM"},{"issue":"3","key":"553_CR22","doi-asserted-by":"publisher","first-page":"125","DOI":"10.5381\/jot.2008.7.3.a4","volume":"7","author":"R Hirschfeld","year":"2008","unstructured":"Hirschfeld, R., Costanza, P., Nierstrasz, O.: Context-oriented programming. J. Object Technol. 7(3), 125\u2013151 (2008)","journal-title":"J. Object Technol."},{"issue":"8","key":"553_CR23","doi-asserted-by":"publisher","first-page":"666","DOI":"10.1145\/359576.359585","volume":"21","author":"CAR Hoare","year":"1978","unstructured":"Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666\u2013677 (1978)","journal-title":"Commun. ACM"},{"key":"553_CR24","volume-title":"Graph Coloring Problems","author":"TR Jensen","year":"1995","unstructured":"Jensen, T.R., Toft, B.: Graph Coloring Problems, vol. 39. Wiley, New York (1995)"},{"key":"553_CR25","doi-asserted-by":"crossref","unstructured":"Klarl, A., Cichella, L., Hennicker, R.: From Helena ensemble specifications to executable code. In: Formal Aspects of Component Software\u201411th International Symposium, FACS 2014, pp. 183\u2013190 (2014)","DOI":"10.1007\/978-3-319-15317-9_11"},{"key":"553_CR26","unstructured":"Kleiner, A., Farinelli, A., Ramchurn, S.D., Shi, B., Maffioletti, F., Reffato, R.: Rmasbench: benchmarking dynamic multi-agent coordination in urban search and rescue. In: International Conference on Autonomous Agents and Multi-Agent Systems, AAMAS \u201913, Saint Paul, MN, USA, May 6\u201310, 2013, pp. 1195\u20131196 (2013)"},{"issue":"3","key":"553_CR27","doi-asserted-by":"publisher","first-page":"52","DOI":"10.1145\/2805789.2805800","volume":"45","author":"BM Maggs","year":"2015","unstructured":"Maggs, B.M., Sitaraman, R.K.: Algorithmic nuggets in content delivery. SIGCOMM Comput. Commun. Rev. 45(3), 52\u201366 (2015)","journal-title":"SIGCOMM Comput. Commun. Rev."},{"issue":"1","key":"553_CR28","doi-asserted-by":"publisher","first-page":"41","DOI":"10.1016\/0890-5401(92)90009-5","volume":"100","author":"R Milner","year":"1992","unstructured":"Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, II. Inf. Comput. 100(1), 41\u201377 (1992)","journal-title":"Inf. Comput."},{"key":"553_CR29","doi-asserted-by":"publisher","first-page":"195","DOI":"10.1016\/j.jlap.2004.03.008","volume":"60\u201361","author":"PD Mosses","year":"2004","unstructured":"Mosses, P.D.: Modular structural operational semantics. J. Log. Algebraic Program. 60\u201361, 195\u2013228 (2004)","journal-title":"J. Log. Algebraic Program."},{"issue":"7","key":"553_CR30","doi-asserted-by":"publisher","first-page":"877","DOI":"10.1002\/rob.21601","volume":"33","author":"J Parker","year":"2016","unstructured":"Parker, J., Nunes, E., Godoy, J., Gini, M.L.: Exploiting spatial locality and heterogeneity of agents for search and rescue teamwork. J. Field Robot. 33(7), 877\u2013900 (2016)","journal-title":"J. Field Robot."},{"key":"553_CR31","doi-asserted-by":"crossref","unstructured":"Prasad, K.: A calculus of broadcasting systems. In: TAPSOFT\u201991, pp. 338\u2013358. Springer (1991)","DOI":"10.1007\/3-540-53982-4_19"},{"issue":"2","key":"553_CR32","doi-asserted-by":"publisher","first-page":"316","DOI":"10.1137\/1036084","volume":"36","author":"JB Robertson","year":"1994","unstructured":"Robertson, J.B.: Continuous-time Markov chains (W. J. anderson). SIAM Rev. 36(2), 316\u2013317 (1994)","journal-title":"SIAM Rev."},{"issue":"4","key":"553_CR33","doi-asserted-by":"publisher","first-page":"2455","DOI":"10.1016\/j.jcp.2007.10.021","volume":"227","author":"TP Schulze","year":"2008","unstructured":"Schulze, T.P.: Efficient kinetic monte carlo simulation. J. Comput. Phys. 227(4), 2455\u20132462 (2008)","journal-title":"J. Comput. Phys."},{"key":"553_CR34","doi-asserted-by":"publisher","first-page":"112","DOI":"10.1007\/978-3-319-39028-4_9","volume-title":"Open Problems in Network Security","author":"M Vukoli\u0107","year":"2016","unstructured":"Vukoli\u0107, M.: The quest for scalable blockchain fabric: proof-of-work vs. bft replication. In: Camenisch, J., Kesdo\u011fan, D. (eds.) Open Problems in Network Security, pp. 112\u2013125. Springer, Cham (2016)"},{"key":"553_CR35","volume-title":"Software Engineering for Collective Autonomic Systems\u2014The ASCENS Approach. Lecture Notes in Computer Science","year":"2015","unstructured":"Wirsing, M., H\u00f6lzl, M.M., Koch, N., Mayer, P. (eds.): Software Engineering for Collective Autonomic Systems\u2014The ASCENS Approach. Lecture Notes in Computer Science, vol. 8998. Springer, Berlin (2015)"}],"container-title":["International Journal on Software Tools for Technology Transfer"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10009-020-00553-4.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/article\/10.1007\/s10009-020-00553-4\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10009-020-00553-4.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,10,16]],"date-time":"2022-10-16T22:08:03Z","timestamp":1665958083000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/s10009-020-00553-4"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,2,28]]},"references-count":35,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2020,8]]}},"alternative-id":["553"],"URL":"https:\/\/doi.org\/10.1007\/s10009-020-00553-4","relation":{},"ISSN":["1433-2779","1433-2787"],"issn-type":[{"value":"1433-2779","type":"print"},{"value":"1433-2787","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,2,28]]},"assertion":[{"value":"28 February 2020","order":1,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}]}}