Abstract
We propose Klaim as a suitable base for a novel choreographic framework. More precisely we advocate Klaim as a suitable language onto which to project data-driven global specifications based on distributed tuple spaces. These specifications, akin to behavioural types, describe the coordination from a global point of view. Differently from behavioural types though, our specifications express the data flow across distributed tuple spaces rather than detailing the communication pattern of processes. We devise a typing system to validate Klaim programs against projections of our global specifications. An interesting feature of our typing approach is that well-typed systems have an arbitrary number of participants. In standard approaches based on behavioural types, this is often achieved at the cost of considerable technical complications.
Research partly supported by the EU H2020 RISE programme under the Marie Skłodowska-Curie grant agreement No. 778233, by UBACyT projects 20020170100544BA and 20020170100086BA, and CONICET project PIP 11220130100148CO, by the EU COST Action IC1405, by the MIUR PRINs 201784YSZ5 ASPRA: Analysis of program analyses and 2017FTXR7S IT-MaTTerS: Methods and tools for trustworthy smart systems, and by University of Pisa PRA_2018_66 DECLWARE: Metodologie dichiarative per la progettazione e il deployment di applicazioni.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
The diagram has been drawn with the BeePMN tool https://www.beepmn.com.
- 3.
Klaim allows code mobility, which for the sake of simplicity is disregarded here. See however the discussion in Sect. 5.
- 4.
The reader should not be confused by the meaning of being different from that of : this is because iteration and termination require some implicit interactions driven by towards the other roles in , as discussed in Sect. 3.1.
- 5.
Edges of Hasse diagrams are usually not oriented; here we use arrows so to draw order relations between events also horizontally.
- 6.
References
Bettini, L., et al.: The Klaim project: theory and practice. In: Priami, C. (ed.) GC 2003. LNCS, vol. 2874, pp. 88–150. Springer, Heidelberg (2003). https://doi.org/10.1007/978-3-540-40042-4_4
Bocchi, L., Honda, K., Tuosto, E., Yoshida, N.: A theory of design-by-contract for distributed multiparty interactions. In: Gastin, P., Laroussinie, F. (eds.) CONCUR 2010. LNCS, vol. 6269, pp. 162–176. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-15375-4_12
Bocchi, L., Melgratti, H., Tuosto, E.: Resolving non-determinism in choreographies. In: Shao, Z. (ed.) ESOP 2014. LNCS, vol. 8410, pp. 493–512. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-642-54833-8_26
Castagna, G., Dezani-Ciancaglini, M., Padovani, L.: On global types and multiparty session. Log. Methods Comput. Sci. 8(1), 1–45 (2012)
Castro, D., Hu, R., Jongmans, S., Ng, N., Yoshida, N.: Distributed programming using role-parametric session types in go: statically-typed endpoint APIs for dynamically-instantiated communication structures. In: POPL 2019, PACMPL, vol. 3, pp. 29:1–29:30. ACM (2019)
De Nicola, R., Ferrari, G.L., Pugliese, R.: KLAIM: a kernel language for agents interaction and mobility. IEEE Trans. Softw. Eng. 24(5), 315–330 (1998)
Denielou, P.-M., Yoshida, N., Bejleri, A., Hu, R.: Parameterised multiparty session types. Log. Methods Comput. Sci. 8(4), 1–46 (2012)
Dezani-Ciancaglini, M., de’Liguoro, U.: Sessions and session types: an overview. In: Laneve, C., Su, J. (eds.) WS-FM 2009. LNCS, vol. 6194, pp. 1–28. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-14458-5_1
Gaifman, H., Pratt, V.R.: Partial order models of concurrency and the computation of functions. In: LICS 1987, pp. 72–85. IEEE Computer Society (1987)
Gelernter, D.: Generative communication in Linda. ACM Trans. Program. Lang. Syst. 7(1), 80–112 (1985)
Guanciale, R., Tuosto, E.: An abstract semantics of the global view of choreographies. In: Bartoletti, M., Henrio, L., Knight, S., Vieira, H.T. (eds.) ICE 2016, EPTCS, vol. 223, pp. 67–82 (2016)
Guanciale, R., Tuosto, E.: Semantics of global views of choreographies. Log. Algebraic Methods Program. 95, 17–40 (2018)
Honda, K., Vasconcelos, V.T., Kubo, M.: Language primitives and type discipline for structured communication-based programming. In: Hankin, C. (ed.) ESOP 1998. LNCS, vol. 1381, pp. 122–138. Springer, Heidelberg (1998). https://doi.org/10.1007/BFb0053567
Honda, K., Yoshida, N., Carbone, M.: Multiparty asynchronous session types. In: Necula, G.C., Wadler, P. (eds.) POPL 2008, pp. 273–284 (2008)
Hüttel, H., et al.: Foundations of session types and behavioural contracts. ACM Comput. Surv. 49(1), 3:1–3:36 (2016)
Yoshida, N., Deniélou, P.-M., Bejleri, A., Hu, R.: Parameterised multiparty session types. In: Ong, L. (ed.) FoSSaCS 2010. LNCS, vol. 6014, pp. 128–145. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-12032-9_10
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Bruni, R., Corradini, A., Gadducci, F., Melgratti, H., Montanari, U., Tuosto, E. (2019). Data-Driven Choreographies à la Klaim. In: Boreale, M., Corradini, F., Loreti, M., Pugliese, R. (eds) Models, Languages, and Tools for Concurrent and Distributed Programming. Lecture Notes in Computer Science(), vol 11665. Springer, Cham. https://doi.org/10.1007/978-3-030-21485-2_11
Download citation
DOI: https://doi.org/10.1007/978-3-030-21485-2_11
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-21484-5
Online ISBN: 978-3-030-21485-2
eBook Packages: Computer ScienceComputer Science (R0)