Orchestrating Tuple-Based Languages

  • Rocco De Nicola
  • Andrea Margheri
  • Francesco Tiezzi
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7173)


The World Wide Web can be thought of as a global computing architecture supporting the deployment of distributed networked applications. Currently, such applications can be programmed by resorting mainly to two distinct paradigms: one devised for orchestrating distributed services, and the other designed for coordinating distributed (possibly mobile) agents. In this paper, the issue of designing a programming language aiming at reconciling orchestration and coordination is investigated. Taking as starting point the orchestration calculus Orc and the tuple-based coordination language Klaim, a new formalism is introduced combining concepts and primitives of the original calculi. To demonstrate feasibility and effectiveness of the proposed approach, a prototype implementation of the new formalism is described and it is then used to tackle a case study dealing with a simplified but realistic electronic marketplace, where a number of on-line stores allow client applications to access information about their goods and to place orders.


Global computing Orchestration Coordination Tuple-based languages Formal methods Software tools 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Orc Reference Manual. Technical report, University of Texas at Austin (2011),
  2. 2.
    Bettini, L., De Nicola, R., Falassi, D., Lacoste, M., Loreti, M.: A Flexible and Modular Framework for Implementing Infrastructures for Global Computing. In: Kutvonen, L., Alonistioti, N. (eds.) DAIS 2005. LNCS, vol. 3543, pp. 181–193. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  3. 3.
    Bettini, L., De Nicola, R., Loreti, M.: Implementing Session Centered Calculi. In: Wang, A.H., Zavattaro, G. (eds.) COORDINATION 2008. LNCS, vol. 5052, pp. 17–32. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  4. 4.
    Bettini, L., De Nicola, R., Pugliese, R.: Klava: a Java Package for Distributed and Mobile Applications. Software - Practice and Experience 32(14), 1365–1394 (2002)zbMATHCrossRefGoogle Scholar
  5. 5.
    Bettini, L., De Nicola, R., Pugliese, R.: X-Klaim and Klava: Programming Mobile Code. In: TOSCA 2001. ENTCS, vol. 62. Elsevier (2001)Google Scholar
  6. 6.
    Bettini, L., Bono, V., De Nicola, R., Ferrari, G.-L., Gorla, D., Loreti, M., Moggi, E., Pugliese, R., Tuosto, E., Venneri, B.: The Klaim Project: Theory and Practice. In: Priami, C. (ed.) GC 2003. LNCS, vol. 2874, pp. 88–150. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  7. 7.
    Boreale, M., Bruni, R., De Nicola, R., Loreti, M.: Sessions and Pipelines for Structured Service Programming. In: Barthe, G., de Boer, F.S. (eds.) FMOODS 2008. LNCS, vol. 5051, pp. 19–38. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  8. 8.
    Buscemi, M.G., Montanari, U.: CC-Pi: A Constraint-Based Language for Specifying Service Level Agreements. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 18–32. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  9. 9.
    Busi, N., Gorrieri, R., Guidi, C., Lucchi, R., Zavattaro, G.: Choreography and Orchestration: A Synergic Approach for System Design. In: Benatallah, B., Casati, F., Traverso, P. (eds.) ICSOC 2005. LNCS, vol. 3826, pp. 228–240. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  10. 10.
    Busi, N., Gorrieri, R., Guidi, C., Lucchi, R., Zavattaro, G.: Choreography and Orchestration Conformance for System Design. In: Ciancarini, P., Wiklicky, H. (eds.) COORDINATION 2006. LNCS, vol. 4038, pp. 63–81. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  11. 11.
    Carbone, M., Honda, K., Yoshida, N.: Structured Communication-Centred Programming for Web Services. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 2–17. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  12. 12.
    Cardelli, L., Gordon, A.D.: Mobile ambients. Theoretical Computer Science 240(1), 177–213 (2000)MathSciNetzbMATHCrossRefGoogle Scholar
  13. 13.
    Carpineti, S., Laneve, C., Padovani, L.: PiDuce - a project for experimenting Web services technologies. Science of Comput. Program. 74(10), 777–811 (2009)MathSciNetzbMATHCrossRefGoogle Scholar
  14. 14.
    Ciancarini, P., Rossi, D.: Jada - Coordination and Communication for Java Agents. In: Tschudin, C.F., Ryan, M. (eds.) MOS 1996. LNCS, vol. 1222, pp. 213–226. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  15. 15.
    De Nicola, R., Ferrari, G., Pugliese, R.: KLAIM: A Kernel Language for Agents Interaction and Mobility. Trans. on Software Engineering 24(5), 315–330 (1998)CrossRefGoogle Scholar
  16. 16.
    De Nicola, R., Gorla, D., Pugliese, R.: On the expressive power of KLAIM-based calculi. Theor. Comput. Sci. 356(3), 387–421 (2006)MathSciNetzbMATHCrossRefGoogle Scholar
  17. 17.
    Denti, E., Natali, A., Omicini, A.: On the expressive power of a language for programming coordination media. In: SAC, pp. 169–177. ACM (1998)Google Scholar
  18. 18.
    Behrens, H., et al.: Xtext 1.0 (2010),
  19. 19.
    Ferrari, G., Guanciale, R., Strollo, D.: Event Based Service Coordination over Dynamic and Heterogeneous Networks. In: Dan, A., Lamersdorf, W. (eds.) ICSOC 2006. LNCS, vol. 4294, pp. 453–458. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  20. 20.
    Ferrari, G., Guanciale, R., Strollo, D.: JSCL: A Middleware for Service Coordination. In: Najm, E., Pradat-Peyre, J.-F., Donzeau-Gouge, V.V. (eds.) FORTE 2006. LNCS, vol. 4229, pp. 46–60. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  21. 21.
    Fournet, C., Gonthier, G., Levy, J.J., Maranget, L., Remy, D.: A Calculus of Mobile Agents. In: Sassone, V., Montanari, U. (eds.) CONCUR 1996. LNCS, vol. 1119, pp. 406–421. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  22. 22.
    Gelernter, D.: Generative Communication in Linda. ACM Transactions on Programming Languages and Systems 7(1), 80–112 (1985)zbMATHCrossRefGoogle Scholar
  23. 23.
    Guidi, C., Lucchi, R., Gorrieri, R., Busi, N., Zavattaro, G.: SOCK: A Calculus for Service Oriented Computing. In: Dan, A., Lamersdorf, W. (eds.) ICSOC 2006. LNCS, vol. 4294, pp. 327–338. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  24. 24.
    Hennessy, M., Riely, J.: Resource access control in systems of mobile agents. Information and Computation 173(1), 82–120 (2002)MathSciNetzbMATHCrossRefGoogle Scholar
  25. 25.
    Honda, K., Yoshida, N., Carbone, M.: Multiparty asynchronous session types. In: POPL, pp. 273–284. ACM Press (2008)Google Scholar
  26. 26.
    Kitchin, D., Quark, A., Cook, W., Misra, J.: The Orc Programming Language. In: Lee, D., Lopes, A., Poetzsch-Heffter, A. (eds.) FMOODS 2009. LNCS, vol. 5522, pp. 1–25. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  27. 27.
    Lanese, I., Guidi, C., Montesi, F., Zavattaro, G.: Bridging the Gap between Interaction- and Process-Oriented Choreographies. In: SEFM, pp. 323–332. IEEE (2008)Google Scholar
  28. 28.
    Lapadula, A., Pugliese, R., Tiezzi, F.: A Calculus for Orchestration of Web Services. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 33–47. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  29. 29.
    Margheri, A., De Nicola, R., Tiezzi, F.: Orchestrating Tuple-based Languages (full version). Technical report, IMT Advanced Studies Lucca (2011),
  30. 30.
    Milner, R., Parrow, J., Walker, D.: A Calculus of Mobile Processes, I and II. Information and Computation 100(1), 1–40, 41–77 (1992)Google Scholar
  31. 31.
    Misra, J., Cook, W.R.: Computation Orchestration: A Basis for Wide-Area Computing. Journal of Software and Systems Modeling 6(1), 83–110 (2007)CrossRefGoogle Scholar
  32. 32.
    Montesi, F., Guidi, C., Lucchi, R., Zavattaro, G.: JOLIE: a Java Orchestration Language Interpreter Engine. In: MTCoord. ENTCS, vol. 181, pp. 19–33. Elsevier (2007)Google Scholar
  33. 33.
    OASIS WSBPEL TC. Web Services Business Process Execution Language Version 2.0. Technical report, OASIS (April 2007)Google Scholar
  34. 34.
    Peltz, C.: Web Services Orchestration and Choreography. Computer 36(10), 46–52 (2003)CrossRefGoogle Scholar
  35. 35.
    Picco, G.P., Murphy, A.L., Roman, G.: Lime: Linda meets mobility. In: ICSE, pp. 368–377. ACM (1999)Google Scholar
  36. 36.
    Rowstron, A.I.T.: WCL: A Co-ordination Language for Geographically Distributed Agents. World Wide Web 1(3), 167–179 (1998)CrossRefGoogle Scholar
  37. 37.
    Tolksdorf, R.: Laura: A Coordination Language for Open Distributed Systems. In: ICDCS, pp. 39–46. IEEE (1993)Google Scholar
  38. 38.
    van der Aalst, W.M.P., ter Hofstede, A.H.M., Kiepuszewski, B., Barros, A.P.: Workflow Patterns. Distributed and Parallel Databases 14(1), 5–51 (2003)CrossRefGoogle Scholar
  39. 39.
    Wand, M., Siveroni, I.: Constraint systems for useless variable elimination. In: POPL, pp. 291–302. ACM (1999)Google Scholar
  40. 40.
    Wehrman, I., Kitchin, D., Cook, W.R., Misra, J.: A timed semantics of orc. Theoretical Computer Science 402(2-3), 234–248 (2008)MathSciNetzbMATHCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Rocco De Nicola
    • 1
    • 2
  • Andrea Margheri
    • 1
  • Francesco Tiezzi
    • 2
  1. 1.Dipartimento di Sistemi e InformaticaUniveristà degli Studi di FirenzeItaly
  2. 2.IMT - Institute for Advanced StudiesLuccaItaly

Personalised recommendations