In 2007, OASIS adopted the Web Services - Business Process Execution Language 2.0 (WS-BPEL) standard for modeling business processes. The main objective of the standard is providing a portable exchange format for business process definitions.
The IBM Business Process
Manager (BPM) product supports the majority of the concepts of
WS-BPEL 2.0. However, some of the WS-BPEL language elements in IBM BPM
Version are still using the syntax defined in the preliminary BPEL4WS
1.1 specification. Many of the language differences are purely related to
the WS-BPEL syntax, while the runtime semantics of the affected language
elements is identical. For example, in the WS-BPEL 2.0 standard, the
switch and terminate
activities have been renamed to if/else and
exit, respectively, while keeping their
semantics exactly the same.
As a result, when business processes are modeled in compliance with the WS-BPEL 2.0 standard, manual rework is necessary before these processes are consumed by IBM Integration Designer (hereafter called Integration Designer). To substantially reduce this rework, this article describes an import tool that transforms the affected WS-BPEL 2.0 language elements into semantically equivalent language elements understood by Integration Designer.
Installing the WS-BPEL 2.0 Importer plug-in
To install the WS-BPEL 2.0 importer plug-in (see Figure 1):
- Unzip the provided
bpel2i_80x_site.zip (for IBM Integration Designer 8.0.x),
bpel2i_75x_site.zip (for IBM Integration Designer 7.5.x), or
bpel2i_700x_site.zip (for WebSphere Integration Developer 7.0.x)
file to a directory, such as
D:\bpel2i. - Start IBM Integration Designer (or WebSphere Integration Developer 7.0).
- Select Help > Install new Software.
- Select OK in the pop-up dialog.
- In the "Available Software" dialog, select the Available Software Sites tab.
- Select Add.
- In the "Add" dialog, select Local.
- Browse to the directory where you unpacked the zip file from Step 1,
such as
D:\bpel2i. - Click OK.
- Select the BPEL2.0 Importer entry and click Install.
- Finish the Install Wizard.
Figure 1. Installing the WS-BPEL 2.0 importer plug-in
Importing a WS-BPEL 2.0 process
The importer for WS-BPEL 2.0 process definitions is invoked like any other import, such as selecting File > Import. In the Business Integration category, you find the new BPEL 2.0 Import Wizard (see Figure 2).
Figure 2. The importer for WS-BPEL 2.0 process definitions
When the importer for WS-BPEL 2.0 is selected, it prompts you for a module name and a directory in the file system, which contains the WS-BPEL 2.0, WSDL, XML Schema, and possibly other artifacts. Optionally, you can select whether the SCA assembly components are generated for each imported WS-BPEL process (see Figure 3).
Figure 3. Directory containing WS-BPEL 2.0 process definitions
When you select Finish, the importer processes the WS-BPEL 2.0 process definitions and WSDL 1.1 artifacts with WS-BPEL 2.0 extension elements in the specified directory or nested subdirectories.
It creates a new module with the specified name, and includes the transformed BPEL and WSDL artifacts. Most of the other artifacts are copied into the module without change, very few are filtered out. The results are as close to processes executable on the IBM BPM runtime as possible.
For unsupported elements or attributes, messages are displayed after the transformation has finished (see Figure 4). Note that in this messages window, you may select one or more messages manually, or all messages by pressing Ctrl+A, and copy the selected messages with Ctrl+C to the system clipboard.
Figure 4. Result dialog with transformation messages
WS-BPEL 2.0 language transformations
Table 1 summarizes the WS-BPEL 2.0 language elements and attributes that are transformed.
Table 1. WS-BPEL 2.0 transformation steps
| WS-BPEL 2.0 element/attribute | Transformation |
|---|---|
| BPEL | |
WS-BPEL 2.0 root element process
| New or transformed attributes of the
process element:
|
WS-BPEL 2.0 exit activity | Renamed to the BPEL4WS 1.1 terminate
activity. |
WS-BPEL if-elseif-else activity | Renamed to the BPEL4WS 1.1 switch
activity. |
WS-BPEL compensateScope activity | Renamed to the BPEL4WS 1.1 compensate
activity with @target attribute. |
WS-BPEL 2.0 extension namespace declaration element
extensions
| Deleted – a warning message is issued. |
WS-BPEL 2.0 validate activity | Replaced by an empty activity in order
to preserve the flow links – a warning
message is issued. |
WS-BPEL 2.0 assign activity child
element copy/from
| Added a BPEL4WS 1.1 expression wrapper
element for the XPath expressions and removed the WS-BPEL 2.0
literal wrapper element for the XML
literals. |
WS-BPEL 2.0 assign activity child
element copy/to
| Replaced the XPath expression by the standard
variable and
part elements. |
WS-BPEL 2.0 activities referencing web service operations
(invoke,
receive,
reply, ...) | Replaced the fromParts element by the
IBM extension element wpc:output and
the toParts element by the IBM
extension element wpc:input.
|
WS-BPEL 2.0 flow activity | Deleted the links element if it has no
link child elements. |
WS-BPEL 2.0 attribute assign/@validate
| Deleted – not supported; a warning message is issued if
validate="yes" was specified. |
WS-BPEL 2.0 attribute
copy/@keepSrcElementName
| Deleted – not supported; a warning message is issued if
keepSrcElementName="yes" was specified.
|
WS-BPEL 2.0 attribute
{process|scope}/@exitOnStandardFault
| Deleted – not supported; a warning message is issued if
exitOnStandardFault="yes" was
specified. |
WS-BPEL 2.0 attribute
partnerLink/@initializePartnerRole
| Deleted – a warning message is issued. |
WS-BPEL 2.0 attribute
correlation/@pattern
| Deleted invalid use in the invoke
activity referencing a one-way operation – a warning message is
issued. |
XML 1.0 attributes @ID and
@space
| Deleted |
| Vendor-specific extension attributes | Deleted |
| WSDL | |
WSDL 1.1 root element definitions
| Namespace definitions added for BPEL4WS 1.1; reordered contents by moving the WS-BPEL extension child elements to the top. |
WSDL 1.1 WS-BPEL 2.0 extension element
partnerLinkType
| Replaced the role element with the
BPEL4WS 1.1 syntax. |
| WSDL 1.1 BPEL4WS 1.0 (!) extension elements and attributes | Replaced with the corresponding BPEL4WS 1.1 elements and attributes. |
WSDL 1.1 and WS-BPEL 2.0 attribute
import/@location
| Removed the invalid URL protocol definition. |
The WS-BPEL 2.0 importer automatically transforms a number of syntax elements and attributes as shown in Table 1. However, some concepts of the WS-BPEL 2.0 standard are not implemented in IBM BPM, such as scoped partner links or scoped correlation sets or termination handlers.
The following error situations may occur after importing a WS-BPEL 2.0 process definition:
- Missing correlation sets: While the WS-BPEL 2.0 standard does not mandate the presence of correlation set definitions for processes with multiple inbound message activities, they are still required in IBM BPM.
-
Duplicate XML schema element/type definitions: Some vendor
tools treat XML schema definitions inlined in WSDL
typeselement strictly as local definitions that only apply to the WSDL artifact itself, while IBM BPM makes these XML schema elements or types globally visible. - Interface operations must be implemented: Some vendor tools allow WSDL interfaces to be implemented partially, while IBM BPM mandates that all operations of an interface must be implemented by the process if the interface is referenced by the “myRole” side of a partner link.
When unsupported WS-BPEL 2.0 elements or attributes are encountered during the transformation, a corresponding transformation message is created as shown in Table 2.
Table 2. WS-BPEL 2.0 transformation messages
| Transformation message | Follow-up action |
|---|---|
| Informational messages | |
CWZBP0250I Value for targetNamespace attribute added.
| None |
CWZBP0251I Invalid protocol prefix deleted from import location attribute.
| None |
CWZBP0252I Invalid pattern attribute deleted from correlation element for an invoke referencing a one-way operation.
| None |
| Warning messages | |
CWZBP0260W Unsupported {queryLanguage|expressionLanguage} attribute value changed to XPath 1.0 URL.
| Validate the usage of XPath 1.0 inside the expression. |
CWZBP0261W Unsupported documentation element deleted from {parent} element.
| Insert new wpc:description or
wpc:documentation elements as
appropriate. |
CWZBP0262W Unsupported attribute ignoreMissingFromData="yes" replaced by process attribute wpc:ignoreMissingData.
| Validate that the global use of the attribute is correct. |
| Error messages | |
CWZBP0270E
Import element with unsupported import type deleted from process element.
| None – not required |
CWZBP0271
E Unsupported extensions element deleted from process element.
| None – declaration only |
CWZBP0272
E Unsupported messageExchanges element deleted from {process|scope} element.
| Verify the correlation of inbound message activities and
corresponding reply activities. |
CWZBP0273
E Unsupported partnerLinks element deleted from scope element.
| Rearrange the process logic; consider moving the scope into a separate subprocess. |
CWZBP0274
E Unsupported correlationSets element deleted from scope element.
| Rearrange the process logic; consider moving the scope into a separate subprocess. |
CWZBP0275
E Unsupported terminationHandler element deleted from scope element.
| Revise the process logic. |
CWZBP0280E Unsupported validate activity replaced by empty activity.
| Consider using the SCA interface data validation or Java activities with a business object validation. |
CWZBP0281E Unsupported extension activity replaced by empty activity.
| Revise the process logic. |
CWZBP0290E Unsupported attribute exitOnStandardFault="yes" deleted from {process|scope} element.
| Consider using the explicit fault handlers with the
terminate activity. |
CWZBP0291E Unsupported attribute messageExchange deleted from {parent} element.
| Verify the correlation of inbound message activities and
corresponding reply activities. |
CWZBP0292E Unsupported attribute initializePartnerRole="no" deleted from partnerLink element.
| None |
CWZBP0293E Unsupported attribute validate="yes" deleted from assign element.
| Consider using the SCA interface data validation or Java activities with a business object validation. |
CWZBP0294E Unsupported attribute keepSrcElementName="yes" deleted from copy element.
| Revise the assignment logic. |
Note that the usage of the WS-BPEL 2.0
doXslTransform() XPath extension function is
not detected and not reported. If you are using this function within your
BPEL process, we recommend that you manually replace it by either a data
map activity, or a separate service invoked from the process; for example,
implemented by a mediation flow.
This article described how to import WS-BPEL 2.0 process definitions into IBM Integration Designer V8.0 or V7.5 (or WebSphere Integration Developer V7.0). You learned how to substantially reduce the amount of manual rework required to consume a WS-BPEL 2.0 process definition, but also gained a deeper understanding of the WS-BPEL support in IBM Business Process Manager.
| Description | Name | Size | Download method |
|---|---|---|---|
| BPEL Importer (IID 8.0.x) | bpel2i_80x_site.zip | 99KB | HTTP |
| BPEL Importer (IID 7.5.x) | bpel2i_75x_site.zip | 96KB | HTTP |
| BPEL Importer (WID 7.0) | bpel2i_700x_site.zip | 96KB | HTTP |
Information about download methods
Learn
-
OASIS
standard Web Services - Business Process Execution Language (WS-BPEL)
2.0
-
IBM Business Process Manager product page
-
WebSphere
Integration Developer product page
-
WebSphere Process
Server product page
-
IBM
Business Process Management zone
Discuss

Dieter Koenig is a Software Architect for IBM Business Process Management products. He is a member of several OASIS technical committees for the standardization of Web Services Business Process Execution Language (WS-BPEL) and Service Component Architecture (SCA) specifications.

Simon Moser is a Software Engineer and Architect with the Business Process Solutions Group at IBM’s Software Laboratory in Boeblingen, Germany. He has published many papers and given talks at international conferences, mainly in the area of Web service systems and business processes. He holds a M.Eng degree in Computer Science and Engineering from the Technical University of Ilmenau, Germany.




