Model-checking web services business activity protocols

Web services business activity (WS-BA) specification defines two coordination protocols BAwCC (Business Agreement with Coordination Completion) and BAwPC (Business Agreement with Participant Completion) that ensure a consistent agreement on the outcome of long-running distributed applications. To verify fundamental properties of the protocols, we provide formal analyses in the model checker Uppaal. Our analyses are supported by a newly developed tool chain, where in the first step we translate tables with state-transition protocol descriptions into an intermediate XML format, and in the second step we translate this format into a network of communicating state machines directly suitable for verification in Uppaal. Our results show that the WS-BA protocols, as described in the standard specification, violate correct operation by reaching invalid states for all underlying communication media except for a perfect FIFO. Hence, we propose changes to the protocols and a further investigation of the modified protocols suggests that in case of the BAwCC protocol, messages should be received in the same order as they are sent to preserve correct behaviour, while BAwPC is now correct even for asynchronous, unordered, lossy and duplicating media. Another important property of communication protocols is that all parties always reach, under certain fairness assumptions, their final states. Based on an automatic verification with different communication models, we prove that our enhanced protocols satisfy this property whereas the original protocols do not. All verification results presented in this article were performed in a fully automatic way using our new tool csv2uppaal.

[1]  Joseph Sifakis,et al.  The Algebra of Timed Processes, ATP: Theory and Application , 1994, Inf. Comput..

[2]  Lori A. Clarke,et al.  Verification of communication protocols using data flow analysis , 1996, SIGSOFT '96.

[3]  Matjaz B. Juric,et al.  Business Process Execution Language for Web Services BPEL and BPEL4WS 2nd Edition , 2006 .

[4]  Jan Mendling,et al.  Business Process Execution Language for Web Services , 2006, EMISA Forum.

[5]  Anders P. Ravn,et al.  Modelling and Verification of Web Services Business Activity Protocol , 2011, TACAS.

[6]  Nancy A. Lynch,et al.  Reliable communication over unreliable channels , 1994, JACM.

[7]  Anders P. Ravn,et al.  Proceedings of the 5th International Workshop of Harnessing Theories for Tool Support in Software (TTSS'11) , 2011 .

[8]  Niels Lohmann Communication models for services , 2010, ZEUS.

[9]  Daniel Brand,et al.  On Communicating Finite-State Machines , 1983, JACM.

[10]  Matjaz B. Juric,et al.  Business process execution language for web services , 2004 .

[11]  Anders P. Ravn,et al.  A Formal Analysis of the Web Services Atomic Transaction Protocol with UPPAAL , 2010, ISoLA.

[12]  Leslie Lamport,et al.  Formal specification of a Web services protocol , 2007, J. Log. Algebraic Methods Program..

[13]  J OsterweilLeon,et al.  Verification of communication protocols using data flow analysis , 1996 .

[14]  Kim G. Larsen,et al.  A Tutorial on Uppaal , 2004, SFM.

[15]  Paul Greenfield,et al.  Consistency for Web Services Applications , 2005, VLDB.

[16]  Friedrich H. Vogt,et al.  Implementing Web service protocols in SOA: WS-Coordination and WS-BusinessActivity , 2005, Seventh IEEE International Conference on E-Commerce Technology Workshops.

[17]  Philippe Schnoebelen,et al.  Verifying lossy channel systems has nonprimitive recursive complexity , 2002, Inf. Process. Lett..

[18]  Anders P. Ravn,et al.  Tool Supported Analysis of Web Services Protocols , 2011 .

[19]  Alain Finkel,et al.  Decidability of the termination problem for completely specified protocols , 1994, Distributed Computing.

[20]  Andreas Reuter,et al.  Transaction Processing: Concepts and Techniques , 1992 .

[21]  Nissim Francez,et al.  Appraising fairness in languages for distributed programming , 2005, Distributed Computing.