Formal Aspects of Computing

, Volume 27, Issue 4, pp 613–640 | Cite as

An algebraic theory for web service contracts

  • Cosimo LaneveEmail author
  • Luca Padovani
Original Article


We study the foundations of Web service technologies for connecting abstract and concrete service definitions and for discovering services according to their observable behavior. We pursue this study addressing a subset of BPEL activities that include concurrency constructs. We present a formal semantics—called compliance preorder—of this subset of BPEL and we define a behavioral type discipline that guarantees the correctness of client-server interactions. The types of our discipline, called contracts, are De Nicola and Hennessy tau-less, finite-state CCS processes. We show that contracts are BPEL normal forms according to the compliance preorder and that the compliance preorder does coincide with a well-known equivalence in concurrency theory, the must-testing preorder. The compliace preorder is not fully adequate for discovering Web services though, since it does not support width and depth extensions of Web services. To address this issue, we propose a sound generalization of the compliance preorder, called subcontract relation, that admits a notion of principal service contract—the dual contract—compliant with a given client contract and that exhibits good precongruence properties when choreographies of Web services are considered.


Web services BPEL Contracts Compliance Must-testing Subcontract Dual contract Choreography 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Abr90.
    Abramsky S (1990) The lazy lambda calculus. In: Proceedings of research topics in functional programming, Addison-Wesley, Boston, MA, pp 65–116Google Scholar
  2. AIS11.
    Aceto L, Ingolfsdottir A, Srba J (2011) The algoritmics of bisimilarity. In: Sangiorgi D, Rutten J (eds) Advanced topics in bisimulation and coinduction of Cambridge tracts in theoretical computer science, chapter 3, vol 52. Cambridge University Press, pp 100–172Google Scholar
  3. Alv07.
    Alves A et al. (2007) Web Services Business Process Execution Language Version 2.0.
  4. BBB+02.
    Banerji A, Bartolini C, Beringer D, Chopella V et al. (2002) Web Services Conversation Language (WSCL) 1.0.
  5. BCd09.
    Barbanera F, Capecchi S, de’Liguoro U (2009) Typing asymmetric client-server interaction. In: Proceedings of fundamentals of software engineering, third IPM international conference, FSEN 2009, Kish Island, Iran, April 15–17, 2009, revised selected papers, of Lecture Notes in Computer Science, vol 5961. Springer, pp 97–112Google Scholar
  6. BCF03.
    Benzaken V, Castagna G, Frisch A (2003) CDuce: an XML-centric general-purpose language. SIGPLAN Not 38(9): 51–63CrossRefGoogle Scholar
  7. Ber13.
    Bernardi G (2013) Behavioural Equivalences for Web Services. PhD thesis, University of DublinGoogle Scholar
  8. BGZ09.
    Busi N, Gabbrielli M, Zavattaro G (2009) On the expressive power of recursion, replication and iteration in process calculi. Math Struct Comput Sci 19(6): 1191–1222CrossRefGoogle Scholar
  9. BH12.
    Bernardi G, Hennessy M (2012) Modelling session types using contracts. In: Proceedings of the 27th annual ACM symposium on applied computing, SAC ’12, ACM, New York, pp 1941–1946Google Scholar
  10. BHR84.
    Brookes SD, Hoare CAR, Roscoe AW (1984) A theory of communicating sequential processes. J ACM 31(3): 560–599CrossRefGoogle Scholar
  11. BKL01.
    Beringer D, Kuno H, Lemon M (2001) Using WSCL in a UDDI Registry 1.0, UDDI Working draft best practices document.
  12. BLZ09.
    Bravetti M, Lanese I, Zavattaro G (2009) Contract-driven implementation of choreographies. In: Proceedings of trustworthy global computing, lecture notes in computer science, vol. 5474. Springer, pp 1–18Google Scholar
  13. BMPR09.
    Bugliesi M, Macedonio D, Pino L, Rossi S (2009) Compliance preorders for web services. In: Proceedings of WS-FM, lecture notes in computer science, vol. 6194. Springer, pp 76–91Google Scholar
  14. BS98.
    Boreale M, Sangiorgi D (1998) Bisimulation in name-passing calculi without matching. In: Proceedings of logic in computer science, 1998. thirteenth annual IEEE Symposium, pp 165–175Google Scholar
  15. BZ07.
    Bravetti M, Zavattaro G (2007) Towards a unifying theory for choreography conformance and contract compliance. In Proceedings of SC 2007, LNCS, vol 4829. Springer, pp 34–50Google Scholar
  16. BZ08.
    Bravetti M, Zavattaro G (2008) A foundational theory of contracts for multi-party service composition. Fundam Inform 89(4): 451–478Google Scholar
  17. BZ09a.
    Bravetti M, Zavattaro G (2009) Contract-based discovery and composition of web services. In: Proceedings of SFM’09, lecture notes in computer science, vol 5569. Springer, pp 261–295Google Scholar
  18. BZ09b.
    Bravetti M, Zavattaro G (2009) A theory of contracts for strong service compliance. Math Struct Comput Sci 19: 601–638CrossRefGoogle Scholar
  19. CCLP06.
    Carpineti S, Castagna G, Laneve C, Padovani L (2006) A formal account of contracts for web services. In: Proceedings of WS-FM, 3rd international workshop on web services and formal methods, in LNCS, vol 4184. Springer, pp 148–162Google Scholar
  20. CCMW01.
    Christensen E, Curbera F, Meredith G, Weerawarana S (2001) Web services description language (WSDL) 1.1.
  21. CGP09.
    Castagna G, Gesbert N, Padovani L (2009) A theory of contracts for web services. ACM Trans Program Lang Syst 31(5): 19CrossRefGoogle Scholar
  22. CHY07.
    Carbone M, Honda K, Yoshida N (2007) Structured communication-centered programming for web services. In: Proceedings of 16th European symposium on programming, (ESOP’07), LNCS 4421. Springer, pp 2–17Google Scholar
  23. CLP09.
    Carpineti S, Laneve C, Padovani L (2009) PiDuce: A project for experimenting web services technologies. Sci Comput Program 74(10): 777–811CrossRefGoogle Scholar
  24. Cos95.
    Di Cosmo R (1995) Isomorphisms of types: from Lambda calculus to information retrieval and language desig. Birkhauser, Basel. ISBN-0-8176-3763-XGoogle Scholar
  25. CP09.
    Castagna G, Padovani L (2009) Contracts for mobile processes. In: Proceedings of the 20th international conference on concurrency theory (CONCUR’09), of LNCS, vol 5710. Springer, pp 211–228Google Scholar
  26. CPS93.
    Cleaveland R, Parrow J, Steffen B (1993) The concurrency workbench: a semantics-based tool for the verification of concurrent systems. ACM Trans Program Lang Syst 15(1): 36–72CrossRefGoogle Scholar
  27. CRR02.
    Chaki S, Rajamani SK, Rehof J (2002) Types as models: model checking message-passing programs. SIGPLAN Not 37(1): 45–57CrossRefGoogle Scholar
  28. DH84.
    De Nicola R, Hennessy M (1984) Testing equivalences for processes. Theor Comput Sci 34: 83–133CrossRefGoogle Scholar
  29. DH87.
    De Nicola R, Hennessy M (1987) CCS without τ’s. In: Proceedings of TAPSOFT’87/CAAP’87, LNCS 249. Springer, pp 138–152Google Scholar
  30. FL01.
    Fournet C, Laneve C (2001) Bisimulations in the join-calculus. Theor Comput Sci 266(1–2): 569–603CrossRefGoogle Scholar
  31. GH05.
    Gay S, Hole M (2005) Subtyping for session types in the π-calculus. Acta Informatica 42(2–3): 191–225CrossRefGoogle Scholar
  32. Hen88.
    Hennessy M (1988) Algebraic theory of processes: foundation of computing. MIT PressGoogle Scholar
  33. Hon93.
    Honda K (1993) Types for dyadic interaction. In: Proceedings of CONCUR’93, LNCS 715. Springer, pp 509–523Google Scholar
  34. HP03.
    Hosoya H, Pierce BC (2003) XDuce: a statically typed XML processing language. ACM Trans Internet Tech 3(2): 117–148CrossRefGoogle Scholar
  35. HVK98.
    Honda K, Vasconcelos VT, Kubo M (1998) Language primitives and type disciplines for structured communication-based programming. In: Proceedings of ESOP’98, LNCS 1381. Springer, New York, pp 122–138Google Scholar
  36. HYC08.
    Honda K, Yoshida N, Carbone M (2008) Multiparty asynchronous session types. In: Proceedings of POPL 2008. ACM, pp 273–284Google Scholar
  37. IK01.
    Igarashi A, Kobayashi N (2001) A generic type system for the pi-calculus. In: Proceedings of POPL 2001, ACM, pp 128–141Google Scholar
  38. KBR+05.
    Kavantzas N, Burdett D, Ritzinger G, Fletcher T, Lafon Y, Barreto C (2005) Web services choreography description language 1.0.
  39. LP07.
    Laneve C, Padovani L (2007) The must preorder revisited: an algebraic theory for web services contracts. In: Proceedings of CONCUR’07, LNCS 4703. Springer, pp 212–225Google Scholar
  40. LP08.
    Laneve C, Padovani L (2008) The pairing of contracts and session types. In: Proceedings of concurrency, graphs and models, lecture notes in computer science, vol. 5065. Springer, New York, pp 681–700Google Scholar
  41. LP13.
    Laneve C, Padovani L (2013) An algebraic theory for web service contracts. In: Proceedings of 10th international conference on integrated formal methods, LNCS, vol. 7940. Springer, New York, pp 301–315Google Scholar
  42. Mil82.
    Milner R (1982) A calculus of communicating systems. SpringerGoogle Scholar
  43. Mil89.
    Milner R (1989) Communication and concurrency. Prentice Hall, Upper Saddle River, NJGoogle Scholar
  44. NN94.
    Nielson HR, Nielson F (1994) Higher-order concurrent programs with finite communication topology (extended abstract). In: Proceedings of POPL’94. ACM Press, New York, pp 84–97Google Scholar
  45. OVvdA+07.
    Ouyang C, Verbeek E, van der Aalst WMP, Breutel S, Dumas M, ter Hofstede AHM (2007) Formal semantics and analysis of control flow in ws-bpel. Sci Comput Program 67(2–3):162–198Google Scholar
  46. Pad08.
    Padovani L (2008) Contract-directed synthesis of simple orchestrators. In: Proceedings of the 19th international conference on concurrency theory (CONCUR’08), LNCS, vol 5201. Springer, New York, pp 131–146Google Scholar
  47. Pad09.
    Padovani L (2009) Contract-based discovery and adaptation of web services, LNCS, vol 5569. Springer, New York, pp 213–260Google Scholar
  48. Pad10.
    Padovani L (2010) Contract-based discovery of web services modulo simple orchestrators. Theor Comput Sci 411: 3328–3347CrossRefGoogle Scholar
  49. Pad13.
    Padovani L (2013) Fair subtyping for open session types. In: Proceedings of 40th international colloquium on automata, languages, and programming, part II, LNCS, vol 7966. Springer, New York, pp 373–384Google Scholar
  50. Pad14.
    Padovani L (2014) Fair subtyping for multi-party session types. Math Struct Comput Sci, pp 1–41Google Scholar
  51. PS93.
    Pitts AM, Stark IDB (1993) Observable properties of higher order functions that dynamically create local names, or what’s new? In: Proceedings of 18th international symposium on mathematical foundations of computer science, lecture notes in computer science, vol 711. Springer, New York, pp 122–141Google Scholar
  52. Rit93.
    Rittri M (1993) Retrieving library functions by unifying types modulo linear isomorphism. In: Proceedings of RAIRO theoretical informatics and applications 27(6): 523–540Google Scholar

Copyright information

© British Computer Society 2015

Authors and Affiliations

  1. 1.Dipartimento di Informatica - Scienza e IngegneriaUniversità di BolognaBolognaItaly
  2. 2.Dipartimento di InformaticaUniversità di TorinoTurinItaly

Personalised recommendations