Business process standards, Part 2: How the standards are used in WebSphere products

In Part 1 of this article, you learned about three common business process standards: BPMN, XPDL and WS-BPEL. In Part 2, we'll talk about how those standards get implemented in several key IBM® products, and look at a practical example of how you can export a process model from WebSphere Business Modeler using these standards.

Marc Fasbinder, Consulting I/T Specialist, WebSphere Software Technical Sales, IBM

Photo of Marc FasbinderMarc Fasbinder is an I/T Specialist at IBM with the WebSphere Technical Sales team in Southfield, Michigan.



24 October 2007

Introduction

Part 1 described three important business process standards. In Part 2, we'll talk about how those standards get implemented in several key IBM products. Almost all emerging standards are moving targets, as they go from proposals to specifications to ratified standards. Due to the varying maturity of the standards, usage of them varies across IBM products.

BPMN

As described in Part 1, Business Process Modeling Notation (BPMN) provides a standard notation for business process diagrams to ensure consistency. It also defines how the elements of a BPMN diagram map to WS-BPEL.

BPMN in WebSphere® Business Modeler

WebSphere Business Modeler (Modeler) is not fully BPMN-compliant, but it is influenced by BPMN. The icons used for various objects in a Modeler process model are based on those from the BPMN specification, as shown in Figure 1:

Figure 1. Modeler and BPMN icons
Figure 1. Modeler and BPMN icons

Modeler does not support all of the shapes in the BPMN specification, nor does it always use the BPMN shape. However, in most cases, there is a close correlation between Business Modeler and BPMN. Business Modeler provides the ability to export process models to WS-BPEL. Therefore, although Modeler is not fully BPMN-compliant, it accomplishes both major goals of the specification. Because of IBM's commitment to the standard, it is expected that future releases will move towards full support of the standard.

BPMN in FileNet®

FileNet Business Process Manager includes a Microsoft™ Visio based Process Modeler, along with a Process Designer, Process Analyzer, and Process Simulator. Process Modeler includes a set of BPMN stencils and templates for Visio, as shown in Figure 2:

Figure 2. FileNet BPMN shapes for Visio
Figure 2. FileNet BPMN shapes for Visio

These diagrams can be directly mapped to process definitions in XML Process Definition Language (XPDL). As shown in Figure 3, the graphic representation of the XPDL in Filenet Process Designer uses a different notation than BPMN, adding colors and specialized icons to differentiate the tasks.

Figure 3. FileNet process
Figure 3. FileNet process

XPDL

XPDL provides an XML format for the storage of BPMN diagrams to facilitate exchange of process models among vendors.

XPDL in WebSphere Business Modeler

WebSphere Business Modeler V6.1 enables you to export processes as XPDL files, which you can then import into the FileNet Business Process Manager for further refinement. There are some limitations to the export. For example, Modeler does not impose a maximum length on item names, which may cause them to be truncated in FileNet, and Business Modeler supports complex data types, whereas FileNet does not. These types of variations may require some rework. For Modeler V6.0.2.1, this same function is available in the free BA77 SupportPac.

XPDL in FileNet

The FileNet Process Designer is a Web-based process design tool that can read and produce portable process definitions in XPDL. Version 4.0.0 can export processes into an XPDL format, while Version 4.0.2 adds the support for importing XPDL. This allows the Process Designer to interface with other modeling tools such as WebSphere Business Modeler.

WS-BPEL

WS-BPEL is an execution language to describe the behavior of business processes in a standards-based environment. Processes can use Web services to invoke business functions, and the process itself can be exposed as a Web service.

WS-BPEL in WebSphere Business Modeler

A non-technical business analyst can create the initial process model in Modeler. Technical users can then add additional attributes to prepare the model for export to the I/T tool set. One of the export targets from Modeler is WebSphere Process Server. When exporting to the Process Server, the process model is exported as WS-BPEL, along with other artifacts needed in Process Server, such as WSDL, XSD, the SCA assembly diagram, and so forth.

WS-BPEL in WebSphere Process Server

WS-BPEL is used as the execution language in Process Server. WebSphere Integration Developer, which provides the tools for Process Server, includes a graphic WS-BPEL editor as well as a visual debugger. Process Server was released before WS-BPEL was ratified as a final standard. It uses WS-BPEL to choreograph the flow of a business process, building on WS-BPEL version 1.1, with major capabilities from WS-BPEL v2.0.

Both Process Server and Integration Developer support extensions to WS-BPEL, including Java™ snippets and Java expressions, similar to the BPELJ specification, along with human tasks, similar to BPEL4People. There are other extensions for quality of service, such as grouping multiple activities into a single transaction, or short-running flows. You can disable these extensions for a process in the advanced settings of the New Business Process wizard. The IBM Information Server plugin for WebSphere Integration Developer provides an Information Service BPEL activity that enables a process to make SQL calls directly to relational databases.

Figure 4 shows the BPEL editor in WebSphere Integration Developer. The XML constructs defined in the WS-BPEL standard are represented graphically, such as the invoke activity called Step 1, the variable RequestData, and the request partner link called Step1_Interface.

Figure 4. Business editor process in WebSphere Integration Developer
Figure 4. Business editor process in WebSphere Integration Developer

WS-BPEL in WebSphere Business Integration Server Foundation

The predecessor to Process Server was WebSphere Business Integration Server Foundation V5.1. Server Foundation also used WS-BPEL to choreograph the business process, building on Version 1.1 of the draft specification. The tooling that supported Server Foundation was WebSphere Studio Application Developer Integration Edition.

WS-BPEL in WebSphere Portal

WebSphere Portal Enable V6 or higher includes a workflow capability that uses the Business Process Choreographer component of Process Server. Simple Web-based tools are used to define the work flow. The use of work flow in Portal is limited to human tasks. If integration flows are needed, you can use Process Server to provide the full range of process functionality.

Business process example

Figure 5 shows a business process modeled in WebSphere Business Modeler. In this process, the flow of control is indicated with the black lines, while the flow of data is indicated with blue lines from the tasks to the repositories. The first step of the process is a map, which is used to direct the incoming data to a pair of repositories. The sample project is included as a download with this article.

Figure 5. Sample process model
Figure 5. Sample process model

Export the process to WS-BPEL

  1. In Business Modeler, right-click Export Project in the project tree, then select Export.
  2. In the Export dialog, select WebSphere Process Server, then click Next,
  3. Specify a target directory, then click Finish.
  4. Open the project in Integration Developer.

Figure 6 shows the results of the export. The map activity in the business process model was transformed into a Java activity called Map. The business items in the business process model have become BPEL variables, such as floatVariable. The tasks in the business process model have been transformed into BPEL invoke activities, such as Approve. The expression logic in the simple decision called Decision was transformed into transition conditions on the connectors flowing out of the Check Credit History invoke activity.

Figure 6. WS-BPEL process editor
Figure 6. WS-BPEL process editor

The generated WS-BPEL, shown in Listing 1, is an XML document that includes the constructs necessary in an execution language, such as the condition for how to transition from one activity to the next, partner links for services to invoke, and an interface partner advertising how the process itself can be invoked.

Listing 1. WS-BPEL
<?xml version="1.0" encoding="UTF-8"?>
<bpws:process xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/"
xmlns:ns="http://Processes/LoanProcessingArtifacts"
xmlns:ns0="http://Processes/LoanProcessing/LoanProcessingInterface"
xmlns:ns1="http://Processes/LoanProcessing/CheckCreditHistoryInterface"
xmlns:ns2="http://Processes/LoanProcessing/ApproveInterface"
xmlns:ns3="http://Processes/LoanProcessing/RejectInterface"
xmlns:ns4="http://Processes/LoanProcessing/SendResponseInterface"
xmlns:wpc="http://www.ibm.com/xmlns/prod/websphere/business-process/6.0.0/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
name="LoanProcessing" suppressJoinFailure="yes"
targetNamespace="http://Processes/LoanProcessing"
wpc:autonomy="peer" wpc:displayName="Loan Processing"
wpc:executionMode="longRunning" wpc:id="1000"
wpc:validFrom="2007-08-28T04:22:34">
  <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
location="LoanProcessingInterface.wsdl"
namespace="http://Processes/LoanProcessing/LoanProcessingInterface"/>
  <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
location="CheckCreditHistory0550137218Interface.wsdl"
namespace="http://Processes/LoanProcessing/CheckCreditHistoryInterface"/>
  <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
location="Approve01373358028Interface.wsdl"
namespace="http://Processes/LoanProcessing/ApproveInterface"/>
  <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
location="Reject1523800978Interface.wsdl"
namespace="http://Processes/LoanProcessing/RejectInterface"/>
  <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
location="SendResponse01167886200Interface.wsdl"
namespace="http://Processes/LoanProcessing/SendResponseInterface"/>
  <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
location="LoanProcessingArtifacts.wsdl"
namespace="http://Processes/LoanProcessingArtifacts"/>
  <bpws:partnerLinks>
    <bpws:partnerLink myRole="LoanProcessingService"
name="LoanProcessingPartner"
partnerLinkType="ns:LoanProcessingPartnerLink"/>
    <bpws:partnerLink name="CheckCreditHistoryPartner"
partnerLinkType="ns:CheckCreditHistoryPartnerLink"
partnerRole="CheckCreditHistoryService"/>
    <bpws:partnerLink name="ApprovePartner"
partnerLinkType="ns:ApprovePartnerLink" partnerRole="ApproveService"/>
    <bpws:partnerLink name="RejectPartner"
partnerLinkType="ns:RejectPartnerLink" partnerRole="RejectService"/>
    <bpws:partnerLink name="SendResponsePartner"
partnerLinkType="ns:SendResponsePartnerLink"
partnerRole="SendResponseService"/>
  </bpws:partnerLinks>
  <bpws:variables>
    <bpws:variable name="floatVariable2" type="xsd:float" wpc:id="1001"/>
    <bpws:variable name="stringVariable2" type="xsd:string" wpc:id="1002"/>
    <bpws:variable name="stringVariable3" type="xsd:string" wpc:id="1003"/>
    <bpws:variable name="stringVariable" type="xsd:string" wpc:id="1004"/>
    <bpws:variable name="floatVariable" type="xsd:float" wpc:id="1005"/>
  </bpws:variables>
  <bpws:flow name="LoanProcessing_Flow" wpc:displayName="LoanProcessing_Flow"
wpc:id="1006">
    <bpws:links>
      <bpws:link name="Input2_to_MapInput2"/>
      <bpws:link name="MapOutput_to_CheckCreditHistoryInput"/>
      <bpws:link name="DecisionOutput_to_ApproveInput">
        <wpc:description>Yes</wpc:description>
      </bpws:link>
      <bpws:link name="DecisionOutput2_to_RejectInput">
        <wpc:description>No</wpc:description>
      </bpws:link>
      <bpws:link name="InputCriterion2_to_MergeOutputCriterion"/>
      <bpws:link name="InputCriterion22_to_MergeOutputCriterion"/>
      <bpws:link name="OutputCriterionToLoanProcessing_OutputCriterion"/>
    </bpws:links>
    <bpws:receive createInstance="yes" name="LoanProcessing_InputCriterion"
operation="InputCriterion" partnerLink="LoanProcessingPartner"
portType="ns0:LoanProcessing" wpc:displayName="Loan ProcessingReceive"
wpc:id="1007">
      <wpc:output>
        <wpc:parameter name="Input" variable="stringVariable"/>
        <wpc:parameter name="Input2" variable="floatVariable"/>
      </wpc:output>
      <bpws:sources>
        <bpws:source linkName="Input2_to_MapInput2"/>
      </bpws:sources>
    </bpws:receive>
    <bpws:invoke name="Map" operation="null" partnerLink="null"
portType="wpc:null" wpc:displayName="Map" wpc:id="1008">
      <wpc:script>
        <wpc:javaCode><![CDATA[// Add Implementation Codes here
// Map the contents of variables 'stringVariable floatVariable '
to variable 'stringVariable2 floatVariable2 ']]></wpc:javaCode>
      </wpc:script>
      <bpws:targets>
        <bpws:target linkName="Input2_to_MapInput2"/>
      </bpws:targets>
      <bpws:sources>
        <bpws:source linkName="MapOutput_to_CheckCreditHistoryInput"/>
      </bpws:sources>
    </bpws:invoke>
    <bpws:invoke name="CheckCreditHistory_InputCriterion"
operation="InputCriterion" partnerLink="CheckCreditHistoryPartner"
portType="ns1:CheckCreditHistory" wpc:displayName="Check Credit History"
wpc:id="1009">
      <wpc:input>
        <wpc:parameter name="Input2" variable="stringVariable2"/>
      </wpc:input>
      <wpc:output>
        <wpc:parameter name="Output2" variable="stringVariable3"/>
      </wpc:output>
      <bpws:targets>
        <bpws:target linkName="MapOutput_to_CheckCreditHistoryInput"/>
      </bpws:targets>
      <bpws:sources>
        <bpws:source linkName="DecisionOutput_to_ApproveInput">
          <bpws:transitionCondition expressionLanguage=
"http://www.ibm.com/xmlns/prod/websphere/business-process/
expression-lang/java/6.0.0/"><![CDATA[return 
((floatVariable2.floatValue()) < (100.0));
]]></bpws:transitionCondition>
        </bpws:source>
        <bpws:source linkName="DecisionOutput2_to_RejectInput">
          <bpws:transitionCondition expressionLanguage=
"http://www.ibm.com/xmlns/prod/websphere/business-process/
expression-lang/java/6.0.0/"><![CDATA[return 
((((floatVariable2.floatValue()) == (floatVariable2.floatValue()))) 
&amp;amp;amp;amp;&amp;amp;amp;amp; (!(((floatVariable2.floatValue()) < (100.0)))));
]]></bpws:transitionCondition>
        </bpws:source>
      </bpws:sources>
    </bpws:invoke>
    <bpws:invoke name="Approve_InputCriterion" operation="InputCriterion"
partnerLink="ApprovePartner" portType="ns2:Approve" wpc:displayName="Approve"
wpc:id="1010">
      <wpc:input>
        <wpc:parameter name="Input2" variable="stringVariable2"/>
      </wpc:input>
      <wpc:output/>
      <bpws:targets>
        <bpws:target linkName="DecisionOutput_to_ApproveInput"/>
      </bpws:targets>
      <bpws:sources>
        <bpws:source linkName="InputCriterion2_to_MergeOutputCriterion"/>
      </bpws:sources>
    </bpws:invoke>
    <bpws:invoke name="Reject_InputCriterion" operation="InputCriterion"
partnerLink="RejectPartner" portType="ns3:Reject" wpc:displayName="Reject"
wpc:id="1011">
      <wpc:input>
        <wpc:parameter name="Input2" variable="stringVariable2"/>
      </wpc:input>
      <wpc:output/>
      <bpws:targets>
        <bpws:target linkName="DecisionOutput2_to_RejectInput"/>
      </bpws:targets>
      <bpws:sources>
        <bpws:source linkName="InputCriterion22_to_MergeOutputCriterion"/>
      </bpws:sources>
    </bpws:invoke>
    <bpws:invoke name="SendResponse_InputCriterion" operation="InputCriterion"
partnerLink="SendResponsePartner" portType="ns4:SendResponse"
wpc:displayName="Send Response" wpc:id="1012">
      <wpc:input>
        <wpc:parameter name="Input2" variable="stringVariable2"/>
      </wpc:input>
      <wpc:output/>
      <bpws:targets>
        <bpws:joinCondition expressionLanguage=
"http://www.ibm.com/xmlns/prod/websphere/business-process/
expression-lang/java/6.0.0/"><![CDATA[return 
((getLinkStatus("InputCriterion2_to_MergeOutputCriterion")) 
|| (getLinkStatus("InputCriterion22_to_MergeOutputCriterion")));
]]></bpws:joinCondition>
        <bpws:target linkName="InputCriterion2_to_MergeOutputCriterion"/>
        <bpws:target linkName="InputCriterion22_to_MergeOutputCriterion"/>
      </bpws:targets>
      <bpws:sources>
        <bpws:source linkName="OutputCriterionToLoanProcessing_OutputCriterion"/>
      </bpws:sources>
    </bpws:invoke>
    <bpws:reply name="LoanProcessing_OutputCriterion" operation="InputCriterion"
partnerLink="LoanProcessingPartner" portType="ns0:LoanProcessing"
wpc:displayName="Loan ProcessingReply" wpc:id="1013">
      <wpc:input/>
      <bpws:targets>
        <bpws:target linkName="OutputCriterionToLoanProcessing_OutputCriterion"/>
      </bpws:targets>
    </bpws:reply>
  </bpws:flow>
</bpws:process>

Export the process to XPDL

You can export Process Modeler processes to XPDL using the BA77 FileNet Integration SupportPac. After installing the SupportPac, export the process as follows:

  1. In Business Modeler, right-click Export Project in the project tree, and select Export.
  2. In the Export dialog, select FileNet Business Process Manager, then click Next.
  3. Specify an export directory, then click Finish.

As shown in Listing 2, the XPDL representation of the process has some similarities to WS-BPEL, such as defining the steps of the process, the flow of data, and the flow of control. The second line indicates that it is using an XPDL extension defined by FileNet, in order to use XPDL as a run-time language.

Listing 2. XPDL
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://www.wfmc.org/2004/XPDL2.0alpha"
xmlns:fn="http://www.filenet.com/ns/fnpe/2005/07/pe/schema
/XPDLExtension" Id="1" Name="Project 1">
  <PackageHeader>
    <XPDLVersion>2.0</XPDLVersion>
    <Created>28 Aug 2007 22:36:36 GMT</Created>
    <Description>Created from Websphere Business Modeler
    </Description>
  </PackageHeader>
  <TypeDeclarations>
    <TypeDeclaration Id="attachment" Name="attachment">
      <BasicType Type="STRING"/>
    </TypeDeclaration>
    <TypeDeclaration Id="participant" Name="participant">
      <BasicType Type="STRING"/>
    </TypeDeclaration>
    <TypeDeclaration Id="xml" Name="xml">
      <BasicType Type="STRING"/>
    </TypeDeclaration>
  </TypeDeclarations>
  <WorkflowProcesses>
    <WorkflowProcess DefaultStartActivityId="BLM-1dcdf65eacb98f9b3ce346dd63bfea33"
    Id="Loan Processing" 
Name="Loan Processing">
      <ProcessHeader>
        <Description></Description>
        <fn:WorkflowDefinition 
AuthorTool="Websphere Business Modeler 6.0.2.1"/>
      </ProcessHeader>
      <DataFields>
        <DataField Id="LoanAmount" IsArray="FALSE" Name="LoanAmount">
          <DataType>
            <BasicType Type="FLOAT"/>
          </DataType>
        </DataField>
        <DataField Id="CustomerID" IsArray="FALSE" Name="CustomerID">
          <DataType>
            <BasicType Type="STRING"/>
          </DataType>
        </DataField>
        <DataField Id="CreditHistoryResult" IsArray="FALSE" Name="CreditHistoryResult">
          <DataType>
            <BasicType Type="STRING"/>
          </DataType>
        </DataField>
      </DataFields>
      <Activities>
        <Activity Id="BLM-1dcdf65eacb98f9b3ce346dd63bfea33" 
	Name="LaunchStep" StartActivity="true">
          <Implementation>
            <Task>
              <TaskApplication Name="LaunchStep">
                <DataMappings>
                  <DataMapping Direction="INOUT" Formal="CustomerID">
                    <Actual>CustomerID</Actual>
                    <fn:Parameter IsArray="false" Type="string"/>
                  </DataMapping>
                  <DataMapping Direction="INOUT" Formal="LoanAmount">
                    <Actual>LoanAmount</Actual>
                    <fn:Parameter IsArray="false" Type="float"/>
                  </DataMapping>
                </DataMappings>
              </TaskApplication>
            </Task>
          </Implementation>
        </Activity>
        <Activity Id="BLM-57f20cd21115fe485af4ee813b0e0f73"
	Name="Check Credit History">
          <Implementation>
            <Task>
              <TaskApplication Name="Check Credit History">
                <DataMappings>
                  <DataMapping Direction="IN" Formal="CustomerID">
                    <Actual>CustomerID</Actual>
                    <fn:Parameter IsArray="false" Type="string"/>
                  </DataMapping>
                  <DataMapping Direction="OUT" 
		  Formal="CreditHistoryResult">
                    <Actual>CreditHistoryResult</Actual>
                    <fn:Parameter IsArray="false" Type="string"/>
                  </DataMapping>
                </DataMappings>
              </TaskApplication>
            </Task>
          </Implementation>
          <TransitionRestrictions>
            <TransitionRestriction>
              <Split Type="OR">
                <TransitionRefs/>
              </Split>
            </TransitionRestriction>
          </TransitionRestrictions>
        </Activity>
        <Activity Id="BLM-c3e15331d897e154af5b202727043302" 
	Name="Approve">
          <Implementation>
            <Task>
              <TaskApplication Name="Approve">
                <DataMappings>
                  <DataMapping Direction="IN" Formal="CustomerID">
                    <Actual>CustomerID</Actual>
                    <fn:Parameter IsArray="false" Type="string"/>
                  </DataMapping>
                </DataMappings>
              </TaskApplication>
            </Task>
          </Implementation>
        </Activity>
        <Activity Id="BLM-b9bfa2f98617a71d0be00e0e76db2053" 
	Name="Reject">
          <Implementation>
            <Task>
              <TaskApplication Name="Reject">
                <DataMappings>
                  <DataMapping Direction="IN" Formal="CustomerID">
                    <Actual>CustomerID</Actual>
                    <fn:Parameter IsArray="false" Type="string"/>
                  </DataMapping>
                </DataMappings>
              </TaskApplication>
            </Task>
          </Implementation>
        </Activity>
        <Activity Id="BLM-fff20764c5af8c8bd40c1db58976da2c"
	Name="Send Response">
          <Implementation>
            <Task>
              <TaskApplication Name="Send Response">
                <DataMappings>
                  <DataMapping Direction="IN" Formal="CustomerID">
                    <Actual>CustomerID</Actual>
                    <fn:Parameter IsArray="false" Type="string"/>
                  </DataMapping>
                </DataMappings>
              </TaskApplication>
            </Task>
          </Implementation>
          <TransitionRestrictions>
            <TransitionRestriction>
              <Join Type="XOR"/>
            </TransitionRestriction>
          </TransitionRestrictions>
        </Activity>
      </Activities>
      <Transitions>
        <Transition From="BLM-57f20cd21115fe485af4ee813b0e0f73" 
Id="BLM-e65b5aca84dac030fc701f63398e22ae_BLM-
c3e15331d897e154af5b202727043302" 
To="BLM-c3e15331d897e154af5b202727043302">
          <Condition Type="CONDITION">LoanAmount < 
100.0</Condition>
        </Transition>
        <Transition From="BLM-57f20cd21115fe485af4ee813b0e0f73" 
Id="BLM-e65b5aca84dac030fc701f63398e22ae_BLM-
b9bfa2f98617a71d0be00e0e76db2053" 
To="BLM-b9bfa2f98617a71d0be00e0e76db2053">
          <Condition Type="CONDITION">LoanAmount = 
LoanAmount</Condition>
        </Transition>
        <Transition From="BLM-c3e15331d897e154af5b202727043302" 
Id="BLM-c3e15331d897e154af5b202727043302_BLM-
3af79b509babd49c8070e8b915570359" 
To="BLM-fff20764c5af8c8bd40c1db58976da2c"/>
        <Transition From="BLM-b9bfa2f98617a71d0be00e0e76db2053" 
Id="BLM-b9bfa2f98617a71d0be00e0e76db2053_BLM-
3af79b509babd49c8070e8b915570359" 
To="BLM-fff20764c5af8c8bd40c1db58976da2c"/>
        <Transition From="BLM-1dcdf65eacb98f9b3ce346dd63bfea33" 
Id="BLM-1dcdf65eacb98f9b3ce346dd63bfea33_BLM-
57f20cd21115fe485af4ee813b0e0f73" 
To="BLM-57f20cd21115fe485af4ee813b0e0f73"/>
      </Transitions>
    </WorkflowProcess>
  </WorkflowProcesses>
</Package>

Summary

In Part 1 of this article, you learned about three of the important standards for business processes: BPMN, which describes what a business process model should look like; XPDL, which describes how the model should be stored; and WS-BPEL, which describes how to run the process. In Part 2, you learned how IBM products implement these standards, and saw a practical example of how you can export a business process to either WS-BPEL or XPDL from WebSphere Business Modeler.


Download

DescriptionNameSize
Sample codeExportSample.zip64KB

Resources

Learn

Get products and technologies

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, SOA and web services, Business process management
ArticleID=263817
ArticleTitle=Business process standards, Part 2: How the standards are used in WebSphere products
publish-date=10242007