Tools for Analysis of BPEL4WS Programs

The Business Process Execution Language for Web Services (BPEL4WS) is an evolving standard to compose web services that interact over the Internet. In this language, one of the basic activities is the invocation of a web service operation. Basic activities are combined into structured activities not only using ordinary sequential control flow constructs (like sequence, switch and while), but also concurrency and synchronization constructs (like flow, pick and links).

In my current research, I focus on the development of tools to analyze BPEL4WS programs. A large variety of analyses are applicable to BPEL4WS programs. These range from, for example, checking if each link in a BPEL4WS program has a unique source and target, which is a typical example of validation, to, for example, checking if a join condition contains any negative occurrences of links, which is more advisory in nature (the BPEL4WS specification allows for such negatives occurrences, but these negative occurrences may give rise to side effects, as we have shown) and could be captured under the heading "best practices." The former type of analysis is an essential ingredient of any implementation of BPEL4WS. The latter type, although not essential, provides the BPEL4WS programmer with very useful feedback as well.

As a secondary research direction, we plan to continue our study of language features of BPEL4WS. We focus on those features that, we believe, are somewhat problematic (like, for example, join conditions with negative occurrences of links). We study such features in depth and we attempt to propose restrictions of or alternatives to those features. We hope that our suggestions have impact on the specification or implementation of BPEL4WS. In this way, we contribute to a language that is easier to use for the BPEL4WS programmer.

This research is supported by IBM and the Natural Sciences and Research Council of Canada.