Aspect-oriented workflow languages: AO4BPEL and applications

This thesis focuses on the modularity of workflow process specifications. In particular, it studies the expression support for crosscutting concerns and workflow changes in current workflow languages and workflow management systems. To illustrate the issues, two workflow languages are considered: a visual graphbased language and the Web Service composition language BPEL. This thesis starts by describing the implementation of several crosscutting concerns such as data collection for billing, activity execution time measurement, and security in typical processes of a travel agency. When examining the resulting workflow specifications, the following observations are made. First, the workflow constructs that implement a crosscutting concern cannot be encapsulated in a separate module with a well-defined interface. They are rather scattered across the specifications of several workflow processes. Second, the workflow specifications that result after adding the implementation of a crosscutting concern are tangled. That is, the workflow constructs that implement the business logic are intertwined with the workflow constructs that implement the other concerns. This leads to monolithic and complex workflow process specifications that are hard to understand, reuse, maintain, and evolve. Moreover, this thesis studies the expression of workflow changes such as adding business logic to a travel process to search for a rental car, or replacing a partner service. Thereby, the following observations are made. In static workflow management systems such as BPEL-based ones, the workflow constructs that implement a workflow change must be integrated directly in the specifications of the workflow processes that are affected by that change. There is no module concept for encapsulating these constructs and expressing the workflow change as a separate first-class entity. In adaptive workflow management systems, the same problems exist because these systems also lack a module concept for encapsulating workflow changes and expressing them as separate first-class entities. This makes understanding, tracing, and managing workflow changes difficult. The modularity problems mentioned so far are due to the lack of appropriate decomposition mechanisms in current workflow languages. To solve these problems, a concern-based decomposition of workflow specifications is proposed. This decomposition technique is incorporated in a new type of workflow languages that are called aspect-oriented workflow languages. These languages introduce concepts from Aspect-Oriented Software Development such as aspects and pointcuts to the domains of workflow modeling and workflow specification. At the workflow modeling level, this thesis extends the graph-based language that was mentioned earlier with new constructs that graphically represent aspect-oriented concepts such as pointcuts, advice, and aspects. The resulting extension, which is called aspectual workflow graphs, illustrates the concepts of aspect-oriented workflow languages in a simple way independently of any specific workflow language. At the workflow specification level, this thesis presents requirements to aspect-oriented workflow languages and the core concepts of such languages. In particular, the join point models, the pointcut languages, the advice languages, and the composition mechanisms of aspects and processes will be discussed. Moreover, this thesis introduces a specific aspect-oriented workflow language for Web Service composition called AO4BPEL. The design and implementation of AO4BPEL can be considered as a proof-of-concept for aspect-oriented workflow languages. This thesis shows using examples how workflow aspects support a better modularization of crosscutting concerns and workflow changes. Moreover, AO4BPEL aspects increase the flexibility and adaptability of BPEL processes, as they can be used to modify BPEL processes at runtime. In addition, this thesis presents two applications of AO4BPEL to show the value and usefulness of aspect-oriented workflow languages. In the first application, a process container framework for providing middleware support to BPEL processes is proposed. In this framework, the nonfunctional requirements of the process activities such as security, reliable messaging, and transactions are specified declaratively using a deployment descriptor. These requirements are enforced using a process container that is inspired by enterprise component models. The process container is implemented as a light-weight and extensible container using a set of AO4BPEL aspects that are generated automatically from the deployment descriptor. The container calls middleware Web Services to enforce non-functional requirements such as security, reliable messaging, and transactions. These Web Services are implemented by extending Open Source implementations of WS-* specifications such as WSSecurity and WS-AtomicTransaction. In the second application, a hybrid approach to Web Service composition is introduced. This approach separates the implementation of the business rules from the BPEL process according to the principles of the Business Rules Approach. At the implementation level, AO4BPEL aspects are used to implement all types of business rules in a separate and modular way.