2013
Journal article  Open Access

Session types for safe Web service orchestration

Michaux J., Najm E., Fantechi A.

Orchestration  Computational Theory and Mathematics  Web services  Theoretical Computer Science  BPEL  Software  Interaction-safety  Behavioural compatibility  Session types  Logic 

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.

Source: The journal of logic and algebraic programming 82 (2013): 282–310. doi:10.1016/j.jlap.2013.05.004

Publisher: North-Holland,, New York, N.Y. , Stati Uniti d'America


Metrics



Back to previous page
BibTeX entry
@article{oai:it.cnr:prodotti:302140,
	title = {Session types for safe Web service orchestration},
	author = {Michaux J. and Najm E. and Fantechi A.},
	publisher = {North-Holland,, New York, N.Y. , Stati Uniti d'America},
	doi = {10.1016/j.jlap.2013.05.004},
	journal = {The journal of logic and algebraic programming},
	volume = {82},
	pages = {282–310},
	year = {2013}
}