%0 Journal Article %@ 0167-6423 %A Lapadula, Alessandro %A Pugliese, Rosario %A Tiezzi, Francesco %D 2012 %F eprints:1563 %I Elsevier %J Science of Computer Programming %K Service-oriented architectures, Web services, Formal methods, WS-BPEL, Operational semantics, Compilers %N 3 %P 189-213 %T Using formal methods to develop WS-BPEL applications %U http://eprints.imtlucca.it/1563/ %V 77 %X 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.