Formal Aspects of Computing

, Volume 26, Issue 5, pp 865–918 | Cite as

The stream-based service-centred calculus: a foundation for service-oriented programming

  • Luís Cruz-Filipe
  • Ivan Lanese
  • Francisco Martins
  • António Ravara
  • Vasco Thudichum Vasconcelos
Original Article


We give a formal account of stream-based, service-centered calculus (SSCC), a calculus for modelling service-based systems, suitable to describe both service composition (orchestration) and the protocols that services follow when invoked (conversation). The calculus includes primitives for defining and invoking services, for isolating conversations (called sessions) among clients and servers, and for orchestrating services. The calculus is equipped with a reduction and a labelled transition semantics related by an equivalence result. SSCC provides a good trade-off between expressive power for modelling and simplicity for analysis. We assess the expressive power by modelling van der Aalst workflow patterns and an automotive case study from the European project Sensoria. For analysis, we present a simple type system ensuring compatibility of client and service protocols. We also study the behavioural theory of the calculus, highlighting some axioms that capture the behaviour of the different primitives. As a final application of the theory, we define and prove correct some program transformations. These allow to start modelling a system from a typical UML Sequence Diagram, and then transform the specification to match the service-oriented programming style, thus simplifying its implementation using web services technology.


Induction Hypothesis Parallel Composition Label Transition System Session Communication Service Invocation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. AAA+07.
    Alves A, Arkin A, Askary S, Barreto C, Bloch B, Curbera F, Ford M, Goland Y, Guízar A, Kartha N, Liu CK, Khalaf R, König D, Marin M, Mehta V, Thatte S, van der Rijn D, Yendluri P, Yiu A (2007) Business Process Execution Language for Web Services. Version 2.0Google Scholar
  2. ACKM03.
    Alonso G, Casati F, Kuno H, Machiraju V (2003) Web services—concepts, architectures and applications. Springer, BerlinGoogle Scholar
  3. Amb04.
    Ambler SW (2004) The Object Primer: agile model-driven development with UML 2.0. Cambridge University Press, CambridgeCrossRefGoogle Scholar
  4. Bar84.
    Barendregt HP (1984) The lambda calculus: its syntax and semantics. North Holland, AmsterdamzbMATHGoogle Scholar
  5. BBC+06.
    Boreale M, Bruni R, Caires L, De Nicola R, Lanese I, Loreti M, Martins F, Montanari U, Ravara A, Sangiorgi D, Vasconcelos V, Zavattaro G (2006) SCC: a service centered calculus. In: Bravetti M, Núñez M, Zavattaro G (eds) Proc. of WS-FM 2006. LNCS, vol 4184. Springer, Berlin, pp 38–57Google Scholar
  6. BBNL08.
    Boreale M, Bruni R, De Nicola R, Loreti M (2008) Sessions and pipelines for structured service programming. In: Barthe G, de Boer FS (eds) Proc. of FMOODS’08. LNCS, vol 5051. Springer, Berlin, pp 19–38Google Scholar
  7. BBNL14.
    Boreale M, Bruni R, De Nicola R, Loreti M (2014) Caspis: a calculus of sessions, pipelines and services. Math Struct Comput Sci (to appear)Google Scholar
  8. BCC+04.
    Bellwood T, Capell S, Clément L, Colgrave J, Dovey MJ, Feygin D, Hately A, Kochman R, Macias P, Novotny M, Paolucci M, von Riegen C, Rogers T, Sycara K, Wenzel P, Wu Z (2004) UDDI Version 3.0Google Scholar
  9. BFF+06.
    Banci M, Fantechi A, Ficarra M, Giannini S, Santanni F (2006) Automotive case study: a UML description of scenarios. Internal report from the Sensoria EU IST projectGoogle Scholar
  10. BGG+06.
    Busi N, Gorrieri R, Guidi C, Lucchi R, Zavattaro G (2006) SOCK: a calculus for service oriented computing. In: Dan A, Lamersdorf W (eds) Proc. of ICSOC’06. LNCS, vol 4294. Springer, Berlin, pp 327–338Google Scholar
  11. BHTY10.
    Bocchi L, Honda K, Tuosto E, Yoshida N (2010) A theory of design-by-contract for distributed multiparty interactions. In: Gastin P, Laroussinie F (eds) Proc of CONCUR 2010 LNCS, vol 6269. Springer, Berlin, pp 162–176Google Scholar
  12. BLMT08.
    Bruni R, Lanese I, Melgratti HC, Tuosto E (2008) Multiparty sessions in SOC. In: Lea D, Zavattaro G (eds) Proc. of COORDINATION’08. LNCS, vol 5052. Springer, Berlin, pp 67–82Google Scholar
  13. BM08.
    Bruni R, Mezzina LG (2008) Types and deadlock freedom in a calculus of services, sessions and pipelines. In: Meseguer J, Rosu G (eds) Proc of AMAST’08 LNCS, vol 5140. Springer, Berlin, pp 100–115Google Scholar
  14. CCMW01.
    Christensen E, Curbera F, Meredith G, Weerawarana S (2001) WSDL: Web Services Definition Language. World Wide Web ConsortiumGoogle Scholar
  15. CFLM+07.
    Cruz-Filipe L, Lanese I, Martins F, Ravara A, Vasconcelos VT (2007) Bisimulations in SSCC. DI/FCUL TR 07–37, Department of Informatics, Faculty of Sciences, University of LisbonGoogle Scholar
  16. CFLM+08.
    Cruz-Filipe L, Lanese I, Martins F, Ravara A, Vasconcelos VT (2008) Behavioural theory at work: program transformations in a service-centred calculus. In: Barthe G, de Boer F (eds) Proc of FMOODS’08 LNCS, vol 5051. Springer, Berlin, pp 59–77Google Scholar
  17. CHY07.
    Carbone M, Honda K, Yoshida N (2007) Structured communication-centred programming for web services. In: De Nicola R (eds) Proc. of ESOP’07. LNCS, vol 4421. Springer, Berlin, pp 2–17Google Scholar
  18. CM13.
    Carbone M, Montesi F (2013) Deadlock-freedom-by-design: multiparty asynchronous global programming. In: Giacobazzi R, Cousot R (eds) Proc. of POPL 2013. ACM Press, New York, pp 263–274Google Scholar
  19. CNP+11.
    Caires L, De Nicola R, Pugliese R, Vasconcelos VT, Zavattaro G (2011) Core calculi for service-oriented computing. In: Wirsing M, Hölzl MM (eds) Results of the SENSORIA Project. LNCS, vol 6582. Springer, Berlin, pp 153–188Google Scholar
  20. CPM06.
    Cook WR, Patwardhan S, Misra J (2006) Workflow patterns in Orc. In: Ciancarini P, Wiklicky H (eds) Proc. of COORDINATION’06. LNCS, vol 4038. Springer, Berlin, pp 82–96Google Scholar
  21. CV10.
    Caires L, Vieira HT (2010) Conversation types. Theoret Comput Sci 411(51–52): 4399–4440CrossRefzbMATHMathSciNetGoogle Scholar
  22. GH05.
    Gay SJ, Hole MJ (2005) Subtyping for session types in the pi calculus. Acta Inform 42(2–3): 191–225CrossRefzbMATHMathSciNetGoogle Scholar
  23. GHM+07.
    Gudgin M, Hadley M, Mendelsohn N, Moreau J-J, Nielsen HF, Karmarkar A, Lafon Y (2007) Simple Object Access Protocol (SOAP) 1.2. World Wide Web ConsortiumGoogle Scholar
  24. GtBB+06.
    Gnesi S, ter Beek M, Baumeister H, Hoelzl M, Moiso C, Koch N, Zobel A, Alessandrini M (2006) D8.0: Case studies scenario description. Deliverable from the Sensoria EU IST projectGoogle Scholar
  25. HVK98.
    Honda K, Vasconcelos VT, Kubo M (1998) Language primitives and type disciplines for structured communication-based programming. In: Hankin C (eds) Proc. of ESOP’98. LNCS, vol 1381. Springer, Berlin, pp 22–138Google Scholar
  26. HYC08.
    Honda K, Yoshida N, Carbone M (2008) Multiparty asynchronous session types. In: Necula GC, Wadler P (eds) Proc. of POPL’08. ACM Press, New York, pp 273–284Google Scholar
  27. Jol.
  28. KCM06.
    Kitchin D, Cook WR, Misra J (2006) A language for task orchestration and its semantic properties. In: Baier C, Hermanns H (eds) Proc. of CONCUR’06. LNCS, vol 4137. Springer, Berlin, pp 477–491Google Scholar
  29. LGMZ08.
    Lanese I, Guidi C, Montesi F, Zavattaro G (2008) Bridging the gap between interaction- and process-oriented choreographies. In: Cerone A, Gruner S (eds) Proc. of SEFM’08. IEEE Computer Society, Washington, pp 323–332Google Scholar
  30. LPT07.
    Lapadula A, Pugliese R, Tiezzi F (2007) A calculus for orchestration of web services. In: De Nicola R (eds) Proc. of ESOP’07. LNCS, vol 4421. Springer, Berlin, pp 33–47Google Scholar
  31. LRV11.
    Lanese I, Ravara A, Vieira HT (2011) Behavioral theory for session-oriented calculi. In: Wirsing M, Hölzl MM (eds) Results of the SENSORIA Project. LNCS, vol 6582. Springer, Berlin, pp 189–213Google Scholar
  32. LS03.
    Levi F, Sangiorgi D (2003) Mobile safe ambients. ACM Trans. Program. Lang. Syst. 25(1): 1–69CrossRefGoogle Scholar
  33. LVMR07a.
    Lanese I, Vasconcelos VT, Martins F, Ravara A (2007) Disciplining orchestration and conversation in service-oriented computing. In: Proc. of SEFM 2007. IEEE Computer Society Press, Washington, DC, pp 305–314Google Scholar
  34. LVMR07b.
    Lanese I, Vasconcelos VT, Martins F, Ravara A (2007) Disciplining orchestration and conversation in service-oriented computing. DI/FCUL TR 07–3, Department of Informatics, Faculty of Sciences, University of LisbonGoogle Scholar
  35. MC07.
    Misra J, Cook WR (2007) Computation orchestration: a basis for wide-area computing. J Softw Syst Model 6(1): 83–110CrossRefGoogle Scholar
  36. MC11.
    Montesi F, Carbone M (2011) Programming services with correlation sets. In: Kappel G, Maamar Z, Motahari-Nezhad HR (eds) Proc. of ICSOC 2011. LNCS, vol 7084. Springer, Berlin, pp 125–141Google Scholar
  37. MGZ07.
    Montesi F, Guidi C, Zavattaro G (2007) Composing services with JOLIE. In: Proc. of ECOWS’07. IEEE Computer Society Press, Washington, DC, pp 13–22Google Scholar
  38. Pie02.
    Pierce BC (2002) Types and Programming Languages. MIT Press, CambridgeGoogle Scholar
  39. pro.
    Sensoria project. Software engineering for service-oriented overlay computers.
  40. PT95.
    Pierce BC, Turner DN (1995) Concurrent objects in a process calculus. In: Ito T, Yonezawa A (eds) Proc. of TPPP’94. LNCS, vol 907. Springer, Berlin, pp 187–215Google Scholar
  41. SW01.
    Sangiorgi D, Walker D (2001) The π-calculus: a theory of mobile processes. Cambridge University Press, CambridgeGoogle Scholar
  42. THK94.
    Takeuchi K, Honda K, Kubo M (1994) An interaction-based language and its typing system. In: Halatsis C, Maritsas DG, Philokyprou G, Theodoridis S (eds) Proc. of PARLE’94. LNCS, vol 817. Springer, Berlin, pp 398–413Google Scholar
  43. VCS08.
    Vieira HT, Caires L, Seco JC (2008) The conversation calculus: a model of service-oriented computation. In: Drossopoulou S (eds) Proc. of ESOP’08. LNCS, vol 4960. Springer, Berlin, pp 269–283Google Scholar
  44. vdAtHKB03.
    van der Aalst W, ter Hofstede A, Kiepuszewski B, Barros AP (2003) Workflow patterns. Distrib Parallel Databases 14(1): 5–51CrossRefGoogle Scholar
  45. VGR06.
    Vasconcelos VT, Gay S, Ravara A (2006) Typechecking a multithreaded functional language with session types. Theoret Comput Sci 368(1–2): 64–87CrossRefzbMATHMathSciNetGoogle Scholar
  46. YV06.
    Yoshida N, Vasconcelos VT (2006) Language primitives and type discipline for structured communication-based programming revisited: two systems for higher-order session communication. In: Proc. of SecReT’06. ENTCS, vol 171, issue 4, pp 73–93Google Scholar

Copyright information

© British Computer Society 2013

Authors and Affiliations

  • Luís Cruz-Filipe
    • 1
  • Ivan Lanese
    • 2
  • Francisco Martins
    • 3
  • António Ravara
    • 4
  • Vasco Thudichum Vasconcelos
    • 3
  1. 1.Escola Superior Náutica Infante Dom HenriqueOeirasPortugal
  2. 2.Focus TeamUniversity of Bologna/INRIABolognaItaly
  3. 3.Universidade de LisboaFaculdade de Ciências & LaSIGELisbonPortugal
  4. 4.Universidade Nova de LisboaFaculdade de Ciências e Tecnologia & CITICaparicaPortugal

Personalised recommendations