@article{eprints1563, volume = {77}, pages = {189--213}, number = {3}, title = {Using formal methods to develop WS-BPEL applications}, year = {2012}, journal = {Science of Computer Programming}, publisher = {Elsevier}, author = {Alessandro Lapadula and Rosario Pugliese and Francesco Tiezzi}, keywords = {Service-oriented architectures, Web services, Formal methods, WS-BPEL, Operational semantics, Compilers}, abstract = {In recent years, WS-BPEL has become a de facto standard language for orchestration of Web Services. However, there are still some well-known difficulties that make programming in WS-BPEL a tricky task. In this paper, we firstly point out major loose points of the WS-BPEL specification by means of many examples, some of which are also exploited to test and compare the behaviour of three of the most known freely available WS-BPEL engines. We show that, as a matter of fact, these engines implement different semantics, which undermines portability of WS-BPEL programs over different platforms. Then we introduce Blite, a prototypical orchestration language equipped with a formal operational semantics, which is closely inspired by, but simpler than, WS-BPEL. Indeed, Blite is designed around some of WS-BPEL distinctive features like partner links, process termination, message correlation, long-running business transactions and compensation handlers. Finally, we present BliteC, a software tool supporting a rapid and easy development of WS-BPEL applications via translation of service orchestrations written in Blite into executable WS-BPEL programs. We illustrate our approach by means of a running example borrowed from the official specification of WS-BPEL.}, url = {http://eprints.imtlucca.it/1563/} }