AbstractIn recent years, WS-BPEL has become a de facto standard language for the 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 first 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 best-known freely available WS-BPEL engines. We show that, in fact, these engines implement different semantics, which undermines the 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 t...