Web service applications are dynamic, highly distributed, and loosely coupled orchestrations of services that accomplish business goals by executing services offered by partners. This dependence on partner services allows the development of more flexible, modular applications, but also makes these applications notoriously difficult to debug. For example, partners can make changes to their services during execution, so applications built from these services can display new behaviour at runtime, and statically checked properties of the system may no longer hold. We have done preliminary work in specifying the notion of (behavioural) correctness of such services, doing runtime monitoring and, when the property is violated, performing property-guided recovery. [1-5]

The work in this direction is continuing under the co-direction of M. Chechik and J. Simmonds, who is now an assistant professor in Chile. We are interested in significantly expanding the framework presented in [1-2]. For example, our property-guided recovery techniques are limited to simple safety (i.e., the system avoids certain forbidden behaviours) and liveness (i.e., the system executes some desired behaviour) properties. One next step is to investigate how to recover from more complex properties, like those specified using the Specification Pattern System [6]. Another issue is that our properties only talk about the occurrence and order of system events -- properties involving data are specified by introducing extra system events in the application definition. This is a highly intrusive approach, and it limits the dynamic introduction of new monitoring rules. There is also the question of also monitoring non-functional properties, which are usually specified in the form of Service Level Agreements (SLAs) for web service applications.

Our framework exploits redundancies in the application logic in order to generate recovery plans. There are cases when there is not enough compensation or redundancy in the application to permit the computation of recovery plans according to our approach. Various research groups [7-9] have studied the problem of web service composition, where semantic descriptions of web services are used to generate non-trivial web service compositions. We will study how to integrate these techniques with our framework in order to suggest new action plans when recovery using existing actions is not possible. We are also interested in a more dynamic plan computation and reconfiguration, using, most likely, SAT-based planning algorithms. We will also work to improve the precision and efficiency of our framework, as well as its usability.

Students interested in doing a Masters in this project should have an interest in web technologies (BPEL, SOA, etc.) and a solid understanding of formal specifications, SAT and SMT solvers, as well as an interest in planning.


[1] J. Simmonds, S. Ben-David, M. Chechik. "Monitoring and Recovery of Web Service Applications". Book chapter in Smart Internet Technologies, J. Cordy, M. Chignell, J. Ng, eds., April 2010.

[2] J. Simmonds, S. Ben-David, M. Chechik. "Guided Recovery for Web Service Applications". 15 pages. In Proceedings of Foundations of Software Engineering (FSE'10), November 2010.

[3] J. Simmonds, M. Chechik. "RUMOR: Monitoring and Recovery of BPEL Applications". In Proceedings of International Conference on Automated Software Engineering, September 2010, pages 345-346. Tools paper.

[4] J. Simmonds, S. Ben-David, M. Chechik. "Optimizing Computation of Recovery Plans for BPEL Applications". In Proceedings of ASE'10 Workshop on Testing and Verification of Web Systems, EPTCS Volume 35, pp. 3-14, September 2010.

[5] J. Simmonds, Y. Gan, S. Nejati, B. O'Farrell, E. Litani, J. Waterhouse, M. Chechik. "Runtime Monitoring of Web Service Conversations". In IEEE Transactions on Service Computing, 2(3), pages 223-244, 2009.

[6] M. Dwyer, G. Avrunin, J. Corbett. "Patterns in Property Specifications for Finite-State Verification". In Proceedings of 21st International Conference on Software Engineering (ICSE'99), pages 411-420, 1999.

[7] D. McDermott. "Estimated-Regression Planning for Interactions with Web Services". In Proceedings of the Sixth International Conference on Artificial Intelligence Planning Systems (AIPS ’02), pages 204-211. AAAI, 2002.

[8] S. Narayanan, S. McIlraith. "Simulation, Verification and Automated Composition of Web Services". In Proceedings of the 11th International Conference on World Wide Web (WWW ’02), pages 77-88. ACM, 2002.

[9] P. Traverso, M. Pistore. "Automated Composition of Semantic Web Services into Executable Processes". In Proceedings of the International Semantic Web Conference (ISWC ’04), pages 380-394, 2004.