|dc.description.abstract||Business processes are increasingly used by organizations to automate their activities. Written in languages like WS-BPEL, they allow an institution to describe precisely its internal operations. As the pace of change increases, however, both organizations and their internal processes are required to be more flexible; they have to account for an increasing amount of externally-driven environment state, or context, and modify their behavior accordingly. This puts a significant burden on business-process programmers, who now have to source, track, and update context from multiple entities, in addition to implementing and maintaining core business logic. Implementing this state-maintenance logic in a WS-BPEL business process is involved. This is because WS-BPEL business processes are modeled as if they were the only thing operating in, and making changes to, the business environment. This mental model does not reflect the real world, where organizations and entities depend on state that is outside their control – state that is modified independent of, and concurrent with, the organization’s activities. This makes it hard for business-process programmers to write context-dependent processes in a concise manner.
This thesis presents a solution to this problem based on the notion of a context variable for WS-BPEL business processes. It describes how context variables are designed using the WS-BPEL language-extension mechanism, and how these variables can be used in business processes. It also outlines an architecture for offering context in the web services environment that uses constructs from the WS-Resource Framework specification. It shows how changes in context can be propagated from these context sources to WS-BPEL context variables using WS-Notification-based publish/subscribe. The design also includes a standards-compliant method for extending web-service responses with references to context sources. Finally, a prototype validating the overall system is described, and enhancements for increasing the utility of context variables proposed.
This solution offers significant advantages: it builds on established practices and well-understood message-exchange patterns, leverages widely used languages, frameworks and specifications, is standards compliant, and has a low barrier-to-entry for business-process programmers. Moreover, when compared to existing alternatives, this solution requires significantly less process logic and fewer interface changes to maintain constantly changing environment state.||en