The recently emerging BPEL standard (Business Process Execution Language), also identified as BPELWS or BPEL4WS , takes standardization a big step forward. Developed jointly by BEA systems, IBM and Microsoft , BPEL combines and replaces IBM's Web Services Flow Language (WSFL) and Microsoft's XLANG. IT provides an XML based language to describe not only the interface between the participants in the process, but also the full operational logic of the process and its execution flow. A BPEL specification, once written, can be compiled into executable code that implements the described business process.
Declarative BPEL specifications greatly simplify the task of software development for business processes. More interestingly from an information management perspective, they also provide an important new mine of information. Consider for instance a user who tries to understand how a particular business, say a travel agency, operates. She may want to find answers to questions like the following.
Answering such questions is extremely hard (if not possible) when the business process logic is coded in a complex program. It is potentially much easier given a declarative specification like BPEL. But to support such queries, one needs a data model, an adequate query language, and an efficient execution engine for it.
The Business Process Querying (BPQ) project is divided into several subprojects, aimed, respectively, at developing advanced tools for (1) querying process specifications, (2) monitoring processes at run time, and (3) querying process audit trails.
Following is a short introduction to each of the subprojects.
Business Process Query Language (BP-QL) is a novel query language for querying business process specifications. The BP-QL language is based on an intuitive model of business processes, an abstraction of the emerging BPEL standard. It allows users to query business processes visually, in a manner very analogous to how such processes are typically specified, and can be employed in a distributed setting, where process components may be provided by distinct providers (peers).
Our system implementation complies with real life standards for business process specifications, XML, and Web services. On the theoretical side we have also studied the theoretical background behind a general abstraction of BP-QL. We suggest a generic algorithm for querying both structural and behavioral properties of processes, show that its data complexity of our algorithm is polynomial, and that unless P=NP the efficiency of our algorithm is asymptotically optimal.
Reasoning over Business Processes must operate, in practice, under terms of uncertainty and partial information, of various flavors. First, when executions are logged to form execution traces, the stored traces typically contain only partial information on the activities that were actually performed, due to lack of storage space, confidentiality, and more. Second, even in the presence of fully detailed execution traces, prediction of future process flow must operate in terms of uncertainty, as execution traces depend on external effects, such as users, other applications, servers response time, etc. We offer various models for both Partial Tracing and unknown External Effects, and algorithms that allow query evaluation in presence of such partial information.
Business Process Monitoring Query Language (BP-Mon) is a query language aimed at querying the runtime events that are generated by a BPEL process instance. Unlike BP-QL which queries the specifications, BP-Mon queries the actual execution flow of a live and running BPEL process and therefore allows to monitor processes at run time. For instance, consider an on-line auctioning system defined as a BPEL process. BP-Mon queries can be used to performs the following monitoring tasks on the process:
A monitoring query can last for the life time of a single process instance, or run "forever", reporting aggregates at specified time interval, or issuing notifications whenever certain conditions are satisfied. BP-Mon has a graphical user interface, very similar to BPEL's editors, that allows for simple formulation of queries over the execution flow.
Implementation-wise, BP-Mon queries are translated into actual BPEL processes that perform the monitoring. These monitoring processes are deployed onto a regular BPEL platform. Therefore, no additional software is needed in order to execute BP-Mon queries besides the standard BPEL software.
BP-Ex, much like BP-Mon, is designed to query business process instance. The main difference is that while the BP-Mon queries are evaluated at run time on the "live" process, BP-Ex analyses execution traces (logs) of past BPEL instances. The challenge here is to deal with a massive amount of information and developing specific data structures and optimization techniques to allow for efficient processing.
The following people have taken part in the above projects: