Queriable BPEL Variables
Original Publication Date: 2004-Apr-29
Included in the Prior Art Database: 2004-Apr-29
Business Process Execution Language for Web Services (BPEL4WS) is an evolving OASIS standard for defining business processes that orchestrate the execution of Web Services. The language provides for the definition of variables. These variables are used in receiving data from invoked Web Services as well as sending data to Web Services. A workflow management system could use these variables to provide query capabilities, such as locating process instances whose variables hold specified values. Without any further information, the workflow management system is not able to carry this type of queries efficiently. It is suggested that additional information is provided for BPEL variables, which allows the workflow management system to optimize the handling of those queries.
Queriable BPEL Variables
Business Process Execution Language for Web Services (BPEL4WS) is an evolving OASIS standard for defining business processes that orchestrate the execution of Web Services. The language provides for the definition of variables . These variables are used in receiving data from invoked Web Services as well as sending data to Web Services. Manipulation of the variables is via the <assign> activity. Variables are defined via the <variable> statement. The set of variables is enclosed in the <variables> element. Variables can either be of type WSDL messages or XML schema. The following code snippet defines a variable which holds, within an order process, the order number:
<variable name="OrderNumber type="xsd:integer"/>
A workflow management system could use these variables to provide query capabilities for locating process instances. For example, it could support a query for locating the order process for a particular order. The appropriate query would look like (using SQL like syntax) SELECT INSTANCE FROM OrderProcess WHERE OrderNumber=1234. It tells the workflow management system to locate process instances for the OrderProcess process model where the variable OderNumber holds the value 1234. Such a query is only efficient if the workflow management system keeps the information about the variables in such a form that the information can be queried very efficiently. One approach is to keep the variables in a relational table and have appropriate indexes built on it. In the example one would have a table with a column for the order number and a column for the process instance identifier (assuming that a process instance is uniquely identified via a process instance identifier). Furthermore the column is indexed, that means a particular value for the order number can be found very efficiently . When the workflow management now receives such a query, it uses the provided order number to locate the appropriate process instance identifier and then uses the process instance identifier to obtain all information about the process instance .
Generation of the tables may be done by the workflow management system when receiving the appropriate BPEL definition or may be done by a tool used to defined the business process.
If the variable is...