Programming Services with Correlation Sets

Correlation sets define a powerful mechanism for routing incoming communications to the correct running session within a server, by inspecting the content of the received messages. We present a language for programming services based on correlation sets taking into account key aspects of service-oriented systems, such as distribution, loose coupling, open-endedness and integration. Distinguishing features of our approach are the notion of correlation aliases and an asynchronous communication model. Our language is equipped with formal syntax, semantics, and a typing system for ensuring desirable properties of programs with respect to correlation sets. We provide an implementation as an extension of the JOLIE language and apply it to a nontrivial real-world example of a fully-functional distributed user authentication system.

[1]  David S. Rosenblum,et al.  QoS-Aware Service Composition in Dino , 2007, ECOWS 2007.

[2]  Francesco Tiezzi,et al.  A Formal Account of WS-BPEL , 2008, COORDINATION.

[3]  I. Melzer Web Services Description Language , 2010 .

[4]  Francisco Curbera,et al.  Web Services Business Process Execution Language Version 2.0 , 2007 .

[5]  Farhad Arbab,et al.  Coordination Models and Languages , 1998, Adv. Comput..

[6]  Ivan Lanese,et al.  Dynamic Fault Handling Mechanisms for Service-Oriented Applications , 2008, 2008 Sixth European Conference on Web Services.

[7]  Jan Vitek,et al.  ECOOP 2008 - Object-Oriented Programming, 22nd European Conference, Paphos, Cyprus, July 7-11, 2008, Proceedings , 2008, ECOOP.

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

[9]  Nobuko Yoshida,et al.  Session-Based Distributed Programming in Java , 2008, ECOOP.

[10]  Winfried Lamersdorf,et al.  Service-Oriented Computing - ICSOC 2006, 4th International Conference, Chicago, IL, USA, December 4-7, 2006, Proceedings , 2006, ICSOC.

[11]  Richard M. Stallman Free software foundation (FSF) , 2003 .

[12]  Francesco Tiezzi,et al.  A tool for rapid development of WS-BPEL applications , 2010, SIAP.

[13]  Terrence A. Brooks,et al.  World Wide Web Consortium (W3C) , 2010 .

[14]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[15]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[16]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[17]  Gianluigi Zavattaro,et al.  Composing Services with JOLIE , 2007, Fifth European Conference on Web Services (ECOWS'07).

[18]  Ivan Lanese,et al.  Dynamic Error Handling in Service Oriented Applications , 2009, Fundam. Informaticae.

[19]  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.

[20]  Roberto Gorrieri,et al.  SOCK : A calculus for service oriented computing , 2006 .