Importing WS-BPEL 2.0 process definitions

Using the WS-BPEL 2.0 standard with IBM Integration Designer

This article describes how to import WS-BPEL 2.0 process definitions into IBM® Integration Designer V8.0 or V7.5 (or WebSphere® Integration Developer V7.0) and how to install and use a software add-on to accomplish this task. The article also provides a summary of necessary transformations that take place when the process definitions are imported, along with a description of follow-up actions if warnings occur during the import.

Share:

Dieter Koenig (dieterkoenig@de.ibm.com), Senior Technical Staff Member, IBM

Dieter König photoDieter 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 (smoser@de.ibm.com), WebSphere BPM Architect, IBM

Simon Moser photoSimon 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.



November 2012 (First published 05 January 2011)

Introduction

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):

  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.
  2. Start IBM Integration Designer (or WebSphere Integration Developer 7.0).
  3. Select Help > Install new Software.
  4. Select OK in the pop-up dialog.
  5. In the "Available Software" dialog, select the Available Software Sites tab.
  6. Select Add.
  7. In the "Add" dialog, select Local.
  8. Browse to the directory where you unpacked the zip file from Step 1, such as D:\bpel2i.
  9. Click OK.
  10. Select the BPEL2.0 Importer entry and click Install.
  11. Finish the Install Wizard.
Figure 1. Installing the WS-BPEL 2.0 importer plug-in
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
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
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
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:
  • Namespace definitions added for the BPEL4WS 1.1 and IBM extensions.
  • Attribute targetNamespace – value added if an empty string is detected.
  • Attribute @queryLanguage value changed to XPath 1.0 URL from BPEL4WS 1.1.
  • Attribute @expressionLanguage value changed to XPath 1.0 URL from BPEL4WS 1.1.
  • Extension attribute @wpc:displayName added with a value equal to the process name.
  • Extension attribute @wpc:executionMode added with the value "longRunning".
  • Extension attribute @wpc:id added to all child elements where supported.
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 types element 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
CWZBP0271E Unsupported extensions element deleted from process element. None – declaration only
CWZBP0272E Unsupported messageExchanges element deleted from {process|scope} element. Verify the correlation of inbound message activities and corresponding reply activities.
CWZBP0273E Unsupported partnerLinks element deleted from scope element. Rearrange the process logic; consider moving the scope into a separate subprocess.
CWZBP0274E Unsupported correlationSets element deleted from scope element. Rearrange the process logic; consider moving the scope into a separate subprocess.
CWZBP0275E 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.


Conclusion

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.


Downloads

DescriptionNameSize
BPEL Importer (IID 8.0.x)bpel2i_80x_site.zip99KB
BPEL Importer (IID 7.5.x)bpel2i_75x_site.zip96KB
BPEL Importer (WID 7.0)bpel2i_700x_site.zip96KB

Resources

Learn

Discuss

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into WebSphere on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=WebSphere
ArticleID=606015
ArticleTitle=Importing WS-BPEL 2.0 process definitions
publish-date=11052012