BPEL Variables as Materialization of SQL Queries
Original Publication Date: 2004-Aug-27
Included in the Prior Art Database: 2004-Aug-27
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. External data can only be made available through invocation of a Web Service that retrieves the data and another Web Service to write the data back to the appropriate data store. The disadvantage of this solution is the overloading of the process model with auxiliary information that should be hidden from the users and administrators of the business process. It is suggested that external data is manifested as BPEL variables by introducing appropriate declarations and that the workflow management system automatically takes care of the retrieval and update of external information.
BPEL Variables as Materialization of SQL Queries BPEL Variables as Materialization of SQL QueriesBPEL Variables as Materialization of SQL Queries BPEL Variables as Materialization of SQL Queries
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 a process, the address of the customer. The variable is defined as an XML complex type (customerAddress) consisting of several simple types, such as customer number, street, ZIP code, town, and state
<variable name="CustomerAddress" type="customerAddress"/>
A variable can be assigned a value through several mechanisms, such as (1)
an <assign> activity, (2) the output message of a synchronous <invoke> activity, or
(3) the input message of a <receive> activity. The mechanisms (2) and (3) are the only ones that provide for the assignment of external data to BPEL variables . Thus, if one wants to have external data within the process, one has to use a Web Service that fills an appropriate BPEL variable that represents the external data . The disadvantage of this approach is that it clutters the business process with conceptually unnecessary activities.
We suggest to overcome these shortcomings with a mechanism that provides for the automatic materialization of BPEL variables from external data and the automatic dematerialization of BPEL variables to external data . Materialization means retrieving the external data from the external data store and storing the retrieved data into a BPEL variable. Dematerialization means writing the contents of the BPEL variable to the external store.
There are many different mechanisms that can be used for materialization and demateriali...