Session types for safe Web service orchestration

Abstract We address the general problem of interaction safety in Web service orchestrations. By considering an essential subset of the BPEL orchestration language, we define SeB, a session based style of this subset. We discuss the formal semantics of SeB and present its main properties. We take a new approach to address the formal semantics which is based on a translation into so-called control graphs. Our semantics accounts for BPEL control links and addresses the static semantics that prescribes the valid usage of variables. We also provide the semantics of service configurations. During a session, a client and a service can engage in a complex series of interactions. By means of the provided semantics, we define precisely what is meant by interaction safety. We then introduce session types in order to prescribe the correct orderings of these interactions. Service providers must declare their provided and required session types. We define a typing algorithm that checks if a service orchestration behaves according to its declared provided and required types. Using a subtyping relation defined on session types, we show that any configuration of well-typed service partners with compatible session types are interaction safe, i.e., involved partners never receive unexpected messages.

[1]  Karsten Wolf,et al.  Operating guidelines - an automata-theoretic foundation for the service-oriented architecture , 2005, Fifth International Conference on Quality Software (QSIC'05).

[2]  Nobuko Yoshida,et al.  Safe Parallel Programming with Session Java , 2011, COORDINATION.

[3]  Antonio Vallecillo,et al.  Typing the Behavior of Software Components using Session Types , 2006, Fundam. Informaticae.

[4]  Roberto Bruni,et al.  Sessions and Pipelines for Structured Service Programming , 2008, FMOODS.

[5]  Rudolf Schmid,et al.  Organization for the advancement of structured information standards , 2002 .

[6]  Gianluigi Zavattaro,et al.  Behavioural contracts with request-response operations , 2013, Sci. Comput. Program..

[7]  Francesco Tiezzi,et al.  Using formal methods to develop WS-BPEL applications , 2012, Sci. Comput. Program..

[8]  Ivan Lanese,et al.  Disciplining Orchestration and Conversation in Service-Oriented Computing , 2007, Fifth IEEE International Conference on Software Engineering and Formal Methods (SEFM 2007).

[9]  Niels Lohmann,et al.  Why Does My Service Have No Partners? , 2009, WS-FM.

[10]  Francesco Tiezzi,et al.  A Calculus for Orchestration of Web Services , 2007, ESOP.

[11]  Alain Kerbrat,et al.  CADP - A Protocol Validation and Verification Toolbox , 1996, CAV.

[12]  Elie Najm,et al.  Session Types for Orchestration Charts , 2008, COORDINATION.

[13]  Roberto Bruni,et al.  Multiparty Sessions in SOC , 2008, COORDINATION.

[14]  DumasMarlon,et al.  Formal semantics and analysis of control flow in WS-BPEL , 2007 .

[15]  Natalia Sidorova,et al.  Can I find a partner? Undecidability of partner existence for open nets , 2008, Inf. Process. Lett..

[16]  Cosimo Laneve,et al.  The Pairing of Contracts and Session Types , 2008, Concurrency, Graphs and Models.

[17]  Nobuko Yoshida,et al.  Language Primitives and Type Discipline for Structured Communication-Based Programming Revisited: Two Systems for Higher-Order Session Communication , 2007, Electron. Notes Theor. Comput. Sci..

[18]  Niels Lohmann,et al.  Extending the compatibility notion for abstract WS-BPEL processes , 2008, WWW.

[20]  Jayadev Misra,et al.  The Orc Programming Language , 2009, FMOODS/FORTE.

[21]  Oliver Kopp,et al.  Deriving Explicit Data Links in WS-BPEL Processes , 2008, 2008 IEEE International Conference on Services Computing.

[22]  Luca Padovani,et al.  A theory of contracts for Web services , 2007, TOPL.

[23]  Simon J. Gay,et al.  Types and Subtypes for Client-Server Interactions , 1999, ESOP.

[24]  M. Mislove,et al.  Mathematical Foundations of Programming Semantics , 1993, Lecture Notes in Computer Science.

[25]  José Luiz Fiadeiro,et al.  An interface theory for service-oriented design , 2011, Theor. Comput. Sci..

[26]  Luca Cardelli,et al.  Operations on Records , 1989, Mathematical Foundations of Programming Semantics.

[27]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[28]  Niels Lohmann,et al.  A Feature-Complete Petri Net Semantics for WS-BPEL 2.0 , 2007, WS-FM.

[29]  Luca Padovani,et al.  Foundations of session types , 2009, PPDP '09.

[30]  Wil M. P. van der Aalst,et al.  Formal semantics and analysis of control flow in WS-BPEL , 2007, Sci. Comput. Program..

[31]  Axel Martens,et al.  Analyzing Web Service Based Business Processes , 2005, FASE.

[32]  Vasco Thudichum Vasconcelos,et al.  Language Primitives and Type Discipline for Structured Communication-Based Programming Revisited: Two Systems for Higher-Order Session Communication , 1998, SecReT@ICALP.

[33]  Roberto Bruni,et al.  SCC: A Service Centered Calculus , 2006, WS-FM.

[34]  Francesco Tiezzi,et al.  A calculus for orchestration of web services , 2012, J. Appl. Log..

[35]  Francesco Tiezzi,et al.  A WSDL-based type system for asynchronous WS-BPEL processes , 2011, Formal Methods Syst. Des..

[36]  Philip Wadler,et al.  A Syntax for Linear Logic , 1993, MFPS.

[37]  Ugo Dal Lago,et al.  Soft Session Types , 2011, EXPRESS.

[38]  Mirko Viroli A core calculus for correlation in orchestration languages , 2007, J. Log. Algebraic Methods Program..

[39]  J. F. Groote,et al.  State space reduction using partial τ-confluence , 2000 .

[40]  Vasco Thudichum Vasconcelos,et al.  Session Typing for a Featherweight Erlang , 2011, COORDINATION.