Importing BPEL code from ARIS SOA Architect into WebSphere Integration Developer

This tutorial describes business-driven development with the ARIS2WebSphere methodology to automatically generate a BPEL process from ARIS SOA Architect® and import this process into WebSphere® Integration Developer. Sample scripts for ARIS SOA Architect and a plugin for WebSphere Integration Developer are provided. The tutorial also describes best practices for using the methodology.

Henning Burgmann (henning.burgmann@de.ibm.com), Senior IT Specialist, IBM

Photo of Henning BurgmannHenning Burgmann is a Senior IT Specialist with IBM Software Services for WebSphere in Germany. Henning has focused on J2EE development, especially in connection with WebSphere Application Server and WebSphere Process Server. He has many years of experience designing and developing business processes for customers. He has been working for IBM since 1996.



Sebastian Hillig (sebastian.hillig@de.ibm.com), Client Technical Specialist, IBM

Photo of Sebastian HilligSebastian Hillig is an IT Specialist with the German Technical Sales Team, focusing on Business Process Management. When there was a request to develop a plugin to import EPCs into WebSphere Integration Developer, Plamen Kiradjiev asked him to support the idea of "Aris2Websphere". He took over this challenge and implemented this plugin in collaboration with Simon Moser in a short period of time.



Plamen Kiradjiev (kiradjiev@de.ibm.com), Executive IT Architect, IBM

Photo of Plamen KiradjievPlamen Kiradjiev is an Executive IT Architect and leads the WebSphere Automotive and Discrete Manufacturing Community of Practice in Germany.



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.



06 July 2011

Before you start

Many customers model their business processes with the ARIS SOA Architect tool and transform their Business Process Execution Language (BPEL) process manually into WebSphere Integration Developer (hereafter called Integration Developer) to implement business processes. We will describe the business-driven development (BDD) with the ARIS2WebSphere methodology. This methodology automatically generates the BPEL process from ARIS SOA Architect and imports this into WebSphere Integration Developer. We will also describe best practices for using the methodology.

Objectives

In this tutorial, you will learn how to configure your modeling and development tools and how to install the provided script for ARIS SOA Architect as well as the provided plugin for Integration Developer (see the Downloads section of the tutorial). We will lead you through the modeling, exporting, importing, and development tasks of the ARIS2WebSphere method. We will also cover best practices, open issues, and workarounds.

Prerequisites

You should have basic knowledge of ARIS SOA Architect and Integration Developer. The tutorial is intended for business analysts and integration developers.

System requirements

To install the provided script, IBM WID SOA Connectivity, you need ARIS SOA Architect V7.1.

Furthermore, we provide slightly different plugins for versions 6.2 and 7.0 of WebSphere Integration Developer.

Duration

This tutorial takes about 3 hours to complete.


Introduction to the ARIS2WebSphere methodology

Introduction to business-driven development

With the increased use of business-driven development, the business side becomes more involved in the requirements definition phase. Business analysts define a meta model in the business language in the form of detailed and formalized process flows that include data definitions and service requests. The business side owns this process model. The latter is the contract between the business department and the implementing IT provider.

A business-driven development is a variation of model-driven development with a form of specification that is closer to the business analysts than the UML notation. From the process model, it is possible to generate executable workflows as shown in this article. Furthermore, the process model is an important element of the business requirements. Further requirement refinements like use cases can be derived.

For details about business-driven development, see the article on Business-driven development.

Overview of the ARIS2WebSphere method

Figure 1 shows an overview of steps to complete and the tools to use to follow the ARIS2WebSphere method:

Figure 1. The ARIS2WebSphere approach
General steps in the ARIS2WebSphere approach

The steps shown in Figure 1 are:

  1. Create the EPC process hierarchy: The business analyst defines the process steps, business data, business calls, and user interface masks with ARIS SOA Architect in the form of Event-driven Process Chains (EPC) process models.
  2. Create data and service definitions: The process engineer models concrete business objects in form of service data objects (SDO) and service definitions in the form of web service definition language (WSDL) descriptions with Integration Developer.
  3. Import data and services: The process engineer imports the data object and service definitions from the previous step into ARIS SOA Architect and connects the business data with the data objects and the business calls with the service definitions. Furthermore, some minor manual modifications to the EPC model are necessary.
  4. Transform EPC via ARIS2WebSphere: The process engineer transforms the EPC model in ARIS SOA Architect to a BPEL model. Then he transforms the BPEL model with the ARIS2WebSphere script and exports the BPEL model.
  5. Orchestrate services: The process engineer imports the BPEL model into Integration Developer and the integration specialist maps the business services on more technical middleware services that form the application logic.
  6. Generate and deploy code: The integration specialist builds executable code and delivers these modules to the system administrators. The system administrator deploys the modules on the WebSphere Process Server runtime environment.

Tool configuration

You need to prepare ARIS SOA Architect and Integration Developer to execute the transformation and import steps.

Set up ARIS SOA Architect

This section describes the steps you need to take to install the extensions to ARIS SOA Architect. The configuration steps are necessary to enhance the BPEL 1.1 code with IBM's human tasks extensions. The following steps need to be executed for the ARIS server machine with administrative rights. In the case of a local server, you can execute the steps locally on your machine.

Download the WebSphere extensions for ARIS

  1. Download the archive deliverables_20100623.zip containing the ARIS extensions from the Downloads section.
  2. Unpack the compressed file. You see the following files:
    • d9f8ae40-815c-11dc-76d7-c6c236deb6cf.rlib
    • BPEL attributes for EPC2BPEL4IBM.amc
    • IBM EPC2BPEL.apx
    • IBM WID SOA Connectivity Part 1.arx

Replace the transformation rule library

The standard transformation EPC2BPEL needs to be enhanced to the variant EPC2BPEL4IBM. This transformation is stored in a standard product library of ARIS.

  1. Change into the installation directory of ARIS.
  2. Change into the servers sub directory name. In the case of a local server, the directory name is LocalServer.
  3. Change into the transformationRules sub directory.
  4. Save a copy of the library, d9f8ae40-815c-11dc-76d7-c6c236deb6cf.rlib.
  5. Copy the library, d9f8ae40-815c-11dc-76d7-c6c236deb6cf.rlib, from the zip file into that directory.

Import the filter

  1. Start ARIS.
  2. Change into the Administration view.
  3. Open in the navigation panel for your server and the directories, Configuration > Conventions.
  4. Right-click Filter and select Import.
  5. Activate all check boxes in the dialog window that opens.
  6. Choose via the Browse button the location of the file, BPEL attributes for EPC2BPEL4IBM.amc, and confirm with OK as shown in Figure 2.
    Figure 2. Import the filter into ARIS
    Import the filter into ARIS

Set the default filter

  1. Select the menu View > Options.
  2. Select Log in in the Selection tab.
  3. Press the ... button to the right of Filter.
  4. Choose the LOCAL server as shown in Figure 3.
  5. Select the Entire method filter.
  6. Confirm two times with OK.
    Figure 3. Set the default filter
    Set the default filter

Import the report script

  1. Stay in the Administration view of ARIS.
  2. Open in the navigation panel for your server the following directory, Evaluations > Reports.
  3. Right-click Reports and select New > Category.
  4. Enter IBM WebSphere and confirm with OK.
  5. Select the new category and click Import reports at the top toolbar.
  6. As shown in Figure 4, choose via the location of the file, IBM WID SOA Connectivity Part 1.arx, and confirm with OK.
    Figure 4. Import the report script into ARIS
    Import the report script into ARIS

Import the semantic check

For the semantic check that needs to be imported, make sure that there are no hidden relationships. That means relationships that are modeled, but not visible in the EPC diagram.

  1. Stay in the Administration view of ARIS.
  2. Open in the navigation panel for your server the following directory, Evaluations > Semantic checks.
  3. Right-click Profiles and select Import profile.
  4. Choose the IBM EPC2BPEL.apx file in the opened dialog and confirm with Open.
  5. Select the check box for activating the rule type as shown in Figure 5 and confirm with OK.
    Figure 5. Import the report script into ARIS
    Import the semantic check into ARIS

Install the plugin ARIS to WebSphere Import Wizard in Integration Developer

This section describes the steps you need to install the "ARIS to WebSphere Import Wizard" plugin. For both versions of Integration Developer, the installation steps are basically the same. For version 6.2, you need to copy an additional library to a common directory.

Download the WebSphere Integration Developer plugins

  1. Download the appropriate versions of the extensions to ARIS from the Downloads section.
  2. Unpack the compressed file. You see the following directory structure:
    • For version 7.0:
      • ARIS2WebSphereImporter
        • features
        • plugins
        • artifacts.jar
        • content.jar
    • For version 6.2:
      • com.ibm.wbit.migration.wsadie_6.2.400.v20101220_1032.jar
      • ARIS2WebSphereImporter
        • features
        • plugins
        • artifacts.jar
        • content.jar

Install the plugin ARIS to WebSphere Import Wizard for WebSphere Integration Developer V7.0

  1. Start Integration Developer.
  2. Select the menu Help > Software Updates.
  3. Confirm the information dialog about installation manager with OK.
  4. Click the Available Software tab and the Add Site button.
  5. Press the Local button in the next dialog and select the ARIS2WebSphereImporter directory that you previously extracted (see the Download the WebSphere Integration Developer plugins section).
  6. Confirm the site location with OK.
  7. Expand the new site Exported Repository and select ARIS to WebSphere Importer Feature.
  8. Press the Install button.
  9. Confirm the selected feature in the next dialog with Next.
  10. Select the I accept the terms of the license agreement radio button as shown in Figure 6 and confirm with Finish.
  11. Confirm to restart Integration Developer by clicking Yes.
    Figure 6. Install plugin ARIS to the WebSphere Import Wizard
    Install plugin ARIS to WebSphere Import Wizard

Install the plugin ARIS to WebSphere Import Wizard for WebSphere Integration Developer V6.2

Fix for the SDPShared library

The fix for "com.ibm.wbit.migration.wsadie" to support the ARIS to WebSphere Import Wizard will be integrated in the next fixpack for Integration Developer V6.2.0.4. Therefore, the additional Steps 1 to 4 in this section are no longer necessary if you have already installed Integration Developer V6.2.0.4.

  1. Shutdown Integration Developer if it is running.
  2. Locate your SDP shared plugin directory (the default is C:\Program Files\IBM\SDPShared\plugins).
  3. Copy the com.ibm.wbit.migration.wsadie_6.2. 400.v20101220_1032.jar file into the SDPShared plugin directory.
  4. Start Integration Developer with the –clean option from a command line.
  5. Proceed with the same steps as for version 7.0 (see the Install the plugin ARIS to WebSphere Import Wizard for WebSphere Integration Developer V7.0 section).

Basic preparation in ARIS

Import the sample ARIS model

This section provides steps to import and download the sample ARIS model.

Download the sample ARIS model

  1. Download the backups of the ARIS sample model from the Downloads section in this tutorial.
  2. Unpack the compressed file A2W_sample_adb.zip. You see the following files:
    1. A2W_sample_0_initial.adb: This contains the initial model with EPCs from business side.
    2. A2W_sample_1_soa.adb: This contains the model after importing the SOA profile.
    3. A2W_sample_2_datacluster.adb: This contains the model after "SOAfying" the EPCs.
    4. A2W_sample_3_services.adb: This contains the model after importing data structures and services.
    5. A2W_sample_4_a2w_script.adb: This contains the model after generating the BPEL processes and executing the ARIS2WebSphere script.
    6. A2W_sample_5_final.adb: This contains the final model after the manual corrections.

Restore the initial sample ARIS model

  1. Change into the Explorer view of ARIS.
  2. Right-click in the navigation panel on your server and select restore.
  3. Select the previously extracted backup file, A2W_sample_0_initial.adb, and confirm with Finish.
  4. Confirm the import information with OK.
    Figure 7. Restore the initial sample ARIS model
    Restore the initial sample ARIS model

Description of the sample process models

The sample consists of two process models: MainProcess and SimpleProcess. The MainProcess contains two human tasks, one choice, and a call to the sub process SimpleProcess. The MainProcess is asynchronous as it does not need to return a result. The SimpleProcess calls a service, contains a human task, and needs to return its results to the MainProcess. Therefore, it is a synchronous process. Figure 8 and Figure 9 show the two EPC models.

Figure 8. EPC model of the MainProcess
EPC model of the MainProcess
Figure 9. EPC model of the SimpleProcess
EPC model of the SimpleProcess

Import the SOA profile

  1. Right-click the imported database A2W_sample_0_initial.adb in the navigation panel and select Import > SOA.
  2. Select the main group.
  3. Click the New group button.
  4. Enter the name SOA profile.
  5. Start the SOA import with OK (see Figure 10).
  6. Confirm the import information with OK.
    Figure 10. Import the SOA profile
    Import the SOA profile

SOAfying the EPC process models in ARIS

The EPC process model you received from the business analysts has to be modified. The following general rules apply:

  • Ideally, use one data cluster through the process.
  • Avoid meshes.
  • Every start event has to be linked to a data cluster because it corresponds to the Receive BPEL activity.
  • For the synchronous processes, the end event has to be linked to a data cluster because it corresponds to the Reply BPEL activity (if present).

In the next sections, you will modify the sample model according to these rules.

Copy the EPC

  1. Change into the Explorer view of ARIS.
  2. Expand A2W_sample_0_initial > Main group > Processes.
  3. Right-click Business and select Copy.
  4. Right-click Processes and select Paste.
  5. Right-click the Business (1) folder and select Rename.
  6. Enter SOA and press Enter.
  7. Expand the sub folders of SOA and rename the EPCs as follows (see Figure 11):
    • from: SimpleProcess - From Business
      to: SimpleProcess
    • from: MainProcess - From Business
      to: MainProcess
Figure 11. Copy the EPC
Copy the EPC

Copy the data clusters

  1. Change into the Designer view of ARIS if it is not already active.
  2. Open the process model: Main group > Processes > SOA > 1. Simple Process > SimpleProcess.
  3. Right-click on one BusinessItem1 and select Copy.
  4. Right-click the white space in the diagram and select Paste.
  5. Place the copy to the right of the start event Start Simple by clicking with the left mouse.
  6. Create a connection by pressing the F11 key.
  7. Connect BusinessItem1 and Start Simple by clicking on the data cluster and on the event (Figure 12).
  8. Repeat the previous five steps for the event End Simple at the bottom.
  9. Create in the same way a copy of the data cluster BusinessItem1 for the function Call Service 1.
  10. Take care that you click first on the function to get the connection's direction right.
  11. Leave the default setting has output of for the connection.
  12. Create a copy of the data cluster for the human task, Human Task 1.
  13. Start this time the connection from the data cluster and leave the setting is input for.
  14. Repeat the previous steps in an analogous way for the process model: Main group > Processes > SOA > 2. Main Process calling Simple Process > MainProcess. Note that the names are different and that there are two human tasks.
    Figure 12. Copy the data clusters
    Copy the data clusters

Create data and service definitions in WebSphere Integration Developer

The next two sections show how to import the sample business objects and interfaces into Integration Developer. You can create your own business objects, interfaces, and mediation logic with the standard Integration Developer functions and use those for the following steps.

The screenshots are taken from Integration Developer V7.0.0.3, but there is no difference in the import or modelling part for V6.2.0.3.

Download the project interchange files

  1. Download the project interchange files from the Downloads section.
  2. Unpack the compressed file A2WTest_pi.zip. You see the following files:
    • A2WTest_0_start_pi.zip: This contains the business objects and interfaces.
    • A2WTest_1_final_pi.zip: This contains the final solution.

Import the sample business objects and interfaces into WebSphere Integration Developer

  1. Start Integration Developer.
  2. Switch to a new workspace, such as A2WTest via File > Switch Workspace > Other.
  3. Close the Getting started view.
  4. Start the import dialog by selecting File > Import.
  5. Choose Other > Project Interchange.
  6. Select the location of the previously extracted file, A2WTest_0_start_pi.zip, and press Next.
  7. Click Select all and Finish.
  8. Examine the imported business objects and interfaces in the A2WTest_Lib module (see Figure 13).
  9. You can examine the test mediations in the A2WTest_ESB and A2WTest_Service modules, if you like.
    Figure 13. Import business objects and interfaces
    Import business objects and interfaces

Import data structures and services into ARIS

Import XSD and WSDL files

Import directories

Instead of using the SOA Profile directory as an import target for the XSD and the WSDL files, you can create your own group for this purpose. This makes it easier to delete all imported objects, including the created artifacts, such as changing an existing interface.

  1. Start ARIS.
  2. Change into the Explorer view.
  3. Right-click Main group > SOA Profile > XSD Datatypes.
  4. Select Import > Data structures.
  5. Select the BO1.xsd file in the A2WTest_Lib directory within your workspace location.
  6. Click the Next button.
  7. Select the Create data structure visualization flag and click the Finish button.
  8. Examine the import results and confirm the dialog with Close.
  9. Repeat the previous steps for the BO2.xsd file. Note that the dependent business objects, Adress.xsd and MetaData.xsd, are imported automatically.
  10. Right-click Main group > SOA Profile > WSDL Profile .
  11. Select Import > Service description.
  12. Select the A2WTest_ESB_BusServiceExport1.wsdl file in the A2WTest_Lib directory within your workspace location.
  13. Click the Finish button.
  14. Examine the import results shown in Figure 14 and confirm the dialog with Close.
  15. Repeat the previous steps for the A2WTest_ESB_SubProcBusIFExport1.wsdl file .
    Figure 14. Import XSD and WSDL files
    Import XSD and WSDL files

Assign data structures

  1. Open the class diagram, Glossary, by double-clicking on Main group > Data > Glossary .
  2. Drag a class symbol from the Symbols palette.
  3. Enter BO1 as the class name.
  4. In the next dialog, select Use an existing object, select the class in the table, and click OK.
  5. Connect BusinessItem1 with BO1 by pressing F11.
  6. Repeat the same steps for BusinessItem2 and BO2 (see Figure 15).
    Figure 15. Assign data structures
    Assign data structures

Assign services

Reorganize

Do not forget to reorganize. Otherwise, you receive errors during the validation and transformation steps.

  1. Open the access diagram: Main group > SOA profile > WSDL Profile > A2WTest_ESB_BusServiceExport1.wsdl.
  2. Copy the software service BusService (the blue box).
  3. Open the process model: Main group > Processes > SOA > 1. Simple Process > SimpleProcess.
  4. Position the software service on the white space and connect it to the Call Service 1 function.
  5. Delete the application system named Business System from the diagram.
  6. Open the process model: Main group > Processes > SOA > 2. Main Process calling Simple Process > MainProcess.
  7. Delete the application system named Business System from the diagram.
  8. Open the access diagram: Main group > SOA profile > WSDL Profile > A2WTest_ESB_SubProcBusIFExport1.wsdl.
  9. Copy the software service SubProcBusIF.
  10. Position the software service in the process model: Main group > Processes > SOA > 2. Main Process calling Simple Process > MainProcess, and connect it to the Call SubProcess activity (see Figure 16).
  11. Delete Group2 that is connected to the Call SubProcess activity.
  12. Change into the Administration view.
  13. Right-click on your database, A2W_sample_0_initial, and choose Reorganize.
  14. Confirm the dialog with Yes.
  15. Choose Yes if you want to see the results of this operation.
  16. Change back into the Explorer view.
    Figure 16. Assign service BusService for Simple Process
    Assign service BusService for Simple Process

Validation steps in ARIS

SOA validation

  1. Right-click the process model: Main group > Processes > SOA > 1. Simple Process > SimpleProcess, and select SOA > Validate business process.
  2. Check the results in your browser (see Figure 17) and correct any errors, if occurred.
  3. Repeat the validation for Main group > Processes > SOA > 2. Main Process calling Simple Process > MainProcess.
    Figure 17. SOA validation Simple Process
    SOA validation Simple Process

EPC2BPEL validation

  1. Right-click the process model: Main group > Processes > SOA > 1. Simple Process > SimpleProcess, and select Evaluate > Start semantic check.
  2. Select the IBM EPC2BPEL profile and click Next.
  3. Choose your preferred output format (such as PDF), leave the other defaults for the output settings, and click Finish.
  4. Check the output results (Figure 18) and correct errors, if any occurred.
  5. Repeat the validation for Main group > Processes > SOA > 2. Main Process calling Simple Process > MainProcess.
    Figure 18. EPC2BPEL validation Simple Process
    EPC2BPEL validation Simple Process

Transformation steps in ARIS and transfer to WebSphere Integration Developer

EPC2BPEL transformation

  1. Open in the designer view the process model: Main group > Processes > SOA > 1. Simple Process > SimpleProcess.
  2. Click the More attributes button on the Attributes tab in the Properties panel.
  3. Below BPEL attributes, select the Generate Scopes and assigns 71 attribute.
  4. Confirm with OK.
  5. Deactivate the new attribute by deselecting the corresponding check box that appeared in the Properties panel.
  6. Select the last event, End Simple, and add the Generate Callback attribute.
  7. Deactivate this attribute, too.
  8. Open the process model: Main group > Processes > SOA > 2. Main Process calling Simple Process > MainProcess.
  9. Deactivate the new attributes for this EPC, too.
  10. Close all open process models and save the changes.
  11. Create the following new groups:
    • Main group > Processes > BPEL
    • Main group > Processes > BPEL > 1. Simple Process
    • Main group > Processes > BPEL > 2. Main Process calling Simple Process
  12. Right-click the process model: Main group > Processes > SOA > 1. Simple Process > SimpleProcess, and select SOA > Transform business process into BPEL process.
  13. Change the target group to Main group > Processes > BPEL / 1. Simple Process.
  14. Change the BPEL process type to Synchronous as shown in Figure 19.
  15. Leave the rest of the defaults and click Finish.
  16. Confirm the warnings with OK.
  17. Repeat the transformation step for the process model: Main group > Processes > SOA > 2. Main Process calling Simple Process > MainProcess.
  18. Choose the group: Main group > Processes > BPEL > 2. Main Process calling Simple Process.
  19. Set the BPEL process type to Asynchronous.
    Figure 19. EPC2BPEL transformation Simple Process
    EPC2BPEL transformation Simple Process

ARIS2WebSphere transformation script

  1. Close all open BPEL models and save the changes.
  2. Right-click the BPEL process: Main group > Processes > BPEL > 1. Simple Process > SimpleProcess, and select Evaluate > Start report.
  3. Choose the IBM WebSphere category in the drop-down box.
  4. Select the IBM WID SOA Connectivity Part 1 report and click Next as shown in Figure 20.
  5. Leave the defaults and press the Finish button.
  6. Confirm the script results with OK.
  7. Repeat the previous step for the BPEL model: Main group > Processes > BPEL > 2. Main Process calling Simple Process > MainProcess.
    Figure 20. ARIS2WebSphere transformation Simple Process
    ARIS2WebSphere transformation Simple Process

Manual corrections in ARIS

This section describes manual corrections that are necessary due to open issues (see Open issues and workarounds).

Change the parameter type for the human tasks

  1. Open the BPEL allocation diagram for the human task: Main group > Processes > BPEL > 1. Simple Process > Details > Human_Task_1.
  2. Right-click the carryHuman_Task_1 operation and select Properties.
  3. In the dialog, choose UML properties - Operation > Parameters.
  4. Click on the drop-down box on the right side of the input qualifier and choose Use 'classifier'.
  5. Enter BusinessItem1MT in the Find what: field as shown in Figure 21.
  6. Search the type by clicking Start search.
  7. Select the search result and click OK.
  8. Change the type for the output parameter in the same way.
  9. Confirm the parameter changes with OK.
  10. Repeat the correction steps for Human_Task_-_Decision and Human_Task_2 of the MainProcess using BusinessItem2MT.
    Figure 21. Change parameter type for Human_Task_1
    Change parameter type for Human_Task_1

Set the stereotype xmlNamespace for the port types of the human task partner links

This correction is only necessary for BPEL processes that contain more than one human task. Therefore, you need to correct only the BPEL process, MainProcess.

  1. Open the BPEL allocation diagram: Main group > Processes > BPEL > 2. Main Process calling Simple Process > Details > MainProcess.
  2. Select the BPEL elements tab in the Properties window.
  3. Expand the navigation tree below the partner link, nullHuman_Task_-_Decision.
  4. Right-click the Human_Task_-_DecisionHumanTaskPT port type and select Properties as shown in Figure 22.
  5. Select UML properties - Interface > General.
  6. Click the Properties 'Namespace:' button.
  7. Select UML properties - Package > Stereotypes.
  8. Select xmlNamespace and move it with the arrow from the unassigned to the assigned stereotypes side.
  9. Confirm the changes two times with OK.
  10. Since the change occurs on the package scope, you do not need to repeat the steps for Human_Task_2HumanTaskPT.
    Figure 22. Set the stereotype xmlNamespace for the port type Human_Task_-_DecisionHumanTaskPT
    Set the stereotype xmlNamespace for the port type Human_Task_-_DecisionHumanTaskPT

Delete the callback port type

This correction is only necessary for asynchronous BPEL processes. Therefore, you need to correct only the BPEL process, MainProcess.

  1. Open the BPEL allocation diagram: Main group > Processes > BPEL > 2. Main Process calling Simple Process > Details > MainProcess.
  2. Locate the MainProcessPTCallback port type in the main window as shown in Figure 23.
  3. Right-click this port type and select Delete.
  4. Save your changes.
    Figure 23. Delete the callback port type
    Delete the callback port type

Transfer from ARIS to WebSphere Integration Developer

BPEL export from ARIS

  1. Close all open BPEL models.
  2. Right-click the BPEL process: Main group > Processes > BPEL > 1. Simple Process > SimpleProcess, and select Export > In BPEL/WSDL format.
  3. Choose an export directory.
  4. Be sure that the Export ARIS-specific extensions check box is not selected as shown in Figure 24 and press OK.
  5. Check the log file by pressing Yes in the next dialog.
  6. Repeat the previous step for the BPEL model: Main group > Processes > BPEL > 2. Main Process calling Simple Process > MainProcess.
    Figure 24. BPEL export for SimpleProcess
    BPEL export for SimpleProcess

WebSphere Integration Developer Import via the ARIS plugin

  1. Start Integration Developer.
  2. Select the menu File > Import.
  3. In the next dialog, select Business Integration > ARIS Import Wizard and press Next.
  4. Specify SimpleProcess as the module name as shown in Figure 25.
  5. Choose the previously exported SimpleProcess.zip with the Browse button.
  6. Select the check box for the A2WTest_Lib library and click Finish.
  7. Repeat these steps for MainProcess.
    Figure 25. BPEL import for SimpleProcess
    BPEL export for SimpleProcess

Build the WebSphere Integration Developer solution

Implement case activities

After importing MainProcess, you will see some build errors. These disappear after implementing the case logic in the business process.

  1. Open the process by double-clicking on MainProcess > Integration Logic > Processes > MainProcess.
  2. Select the case activity above the Call_SubProcess activity.
  3. Select the details in the Properties view.
  4. Choose Xpath 1.0 as the Expression Language as shown in Figure 26.
  5. Enter the xpath expression: $process_input/meta/subProcessToBeCalled = true().
  6. For the other case activity, enter the xpath expression: $process_input/meta/subProcessToBeCalled != true().
  7. Save your changes.
    Figure 26. Implement case activities of the MainProcess
    Implement case activities of the MainProcess

Create the library for the generated interfaces

  1. Create a new library called A2WTest_GenLib.
  2. Add it to the dependencies in the A2WTest_Lib library.
  3. Move all interfaces from the SimpleProcess module into the new library.
  4. Save your changes.

Wire the SimpleProcess

  1. Open the assembly diagram by double-clicking on SimpleProcess > Assembly Diagram.
  2. Generate an export by right-clicking on SimpleProcess and choosing Generate Export... > SCA Binding.
  3. Drag and drop the BusServiceExport2 export from the A2WTest_ESB module on the assembly diagram.
  4. Choose Import with SCA binding.
  5. Rename the new import to BusServiceImport.
  6. Wire the reference partner BusServicePL to BusServiceImport as shown in Figure 27.
  7. Save your changes.
    Figure 27. Wire the SimpleProcess
    Wire the SimpleProcess

Wire the MainProcess

  1. Open the assembly diagram by double-clicking on MainProcess > Assembly Diagram.
  2. Drag and drop the SubProcBusIFExport2 export from the A2WTest_ESB module on the assembly diagram.
  3. Choose Import with SCA binding.
  4. Rename the new import to SubProcBusImport.
  5. Wire the reference partner SubProcBusIFPL to SubProcBusImport.
  6. Drag a human task from the palette and rename it to StartMain.
  7. Wire StartMain to MainProcess as shown in Figure 28.
  8. Confirm the creation of a reference with OK.
  9. Generate the implementation for StartMain.
  10. Save your changes.
Figure 28. Wire the MainProcess
Wire the MainProcess

Wire the sub process call in the ESB mediation

  1. Add the dependency for the A2WTest_GenLib library to the A2WTest_ESB module.
  2. Open the assembly diagram by double-clicking on A2WTest_ESB > Assembly Diagram.
  3. Drag and drop the SimpleProcessExport export from the SimpleProcess module on the assembly diagram.
  4. Choose Import with SCA binding and close the dialog asking for dependencies with No.
  5. Rename the new import to SimpleProcessImport.
  6. Wire Main2SubMediation to SimpleProcessImport as shown in Figure 29.
  7. Confirm the creation of a matching reference with OK.
  8. Generate a mediation flow implementation for the Main2SubMediation component.
  9. Choose the implementation template, Operation Map, and wire the callSubProc and process operations.
  10. Map the name, street, and city fields in the xslt map, input_map_req_1, of the request flow.
  11. Repeat the steps for the response flow with the reverse mapping.
  12. Change the Join Transaction qualifier to False for the SubProcBusIF and SimpleProcessPT interfaces.
  13. Save all changes.
    Figure 29. Wire the sub process call in the ESB
    Wire the sub process call in the ESB

Solution overview

  1. Open the solution diagram by double-clicking on A2WSolutionStart > Solution Diagram.
  2. Drag and drop the SimpleProcess and MainProcess modules on to the solution diagram as shown in Figure 30.
  3. Save your changes.
    Figure 30. Solution overview
    Solution overview

Best practices and lessons learned

WebSphere Integration Developer module structure

  • Use one module per process you generate. This gives you flexibility for a particular process changes. The drawback is that inter-process communication is less efficient.
  • Create your library with business object definitions and interfaces as well as your ESB module before you start with ARIS2WebSphere.
  • Use an ESB module for connecting business interfaces (used by the ARIS process) and technical (existing services) interfaces.
  • Use a ProcessMap module for mapping between stable and generated process interfaces (the former are used for inter-process communication).

ARIS2WebSphere business-driven development best practices

  • Change management starts on the business side, that means in ARIS.
  • You need to adjust the current ARIS modeling conventions to the needs of SOA.
  • If your customer has special needs, you can create customer-specific scripts within ARIS for the automated takeover of the EPC into Integration Developer.
  • You should minimize the technical adjustments within Integration Developer.
  • Take over the technical adjustments back to the business model in ARIS to avoid repeating changes.
  • If you define the business objects and interfaces early, you can separate the tasks of process integration and service integration. This leads to a higher degree of parallel development.
  • Use mediation modules between processes respectively, between processes (stable versus generated process interfaces) and services (business versus technical interfaces).
  • You need to move the generated process interfaces to the common business library module. This has two specifics:
    • Rename the human task interface (which is copied with the process interface).
    • Be aware that the name space definitions might get damaged in the corresponding process. If this happens, you can fix the error by using the previous version from the history.
  • Adjust the transaction SCA attributes for the imports to asynchronous and not participate in global transaction for long-running called processes. Otherwise, you will get transaction timeouts.

EPC SOA best practices

  • SOA profiles have to be imported.
  • Create the following groups:
    • Data – for the imported data objeccts (XSD files)
    • Processes – for the process hierarchy
    • Profile – for the SOA Profile
    • Services – for the imported Service descriptions (WSDL files)
  • The used data (XSDs) has to be imported and the generated UML classes mapped to the appropriate data clusters in a Glossary class diagram.
  • The services (WSDLs with bindings and service part) have to be imported.
  • Do not use OR because it is non-deterministic. Use XOR instead.
  • Do not use OF meshes because every AND/XOR has to be closed before opening a new one.
  • Each function has to use the appropriate input and output objects (data clusters).
  • Each output object has to match the input one from the succeeding action. Otherwise, a transformation service has to be included (to avoid later need for assigns).
  • You have the following alternatives to model the start or end of a process:
    • Event with assigned data cluster
    • System Function with Output Data Cluster at the beginning (BPEL Receive) and input one at the end (Reply)
  • Reorganize the ARIS database after each change in the process model.
  • Execute the EPC2BPEL transformation only for validated EPCs. This means both validation steps.
  • After the BPEL transformation, the appropriate operation has to be chosen in case of multi-operation services. In this case, you get a warning message.
  • For the case of an asynchronous processes, where you have no reply activity:
    • Delete the generated callback-requester port type in the BPEL allocation diagram.
    • Set the symbol of property of the end-event to empty.
  • If you want to bring back technical changes to ARIS, copy the XPath condition expressions to the BPMN properties of the particular link in the EPC model (after a simple condition XOR respectively, the last arrow in the loop before XOR).

Open issues and workarounds

Table 1 lists open issues and workarounds, if possible.

Table 1. Open issues and workarounds
IdShort descriptionDetailed descriptionWork aroundComment
E1ASTs / PartnerLinkTypesIf the AST name of the imported WSDL matches the one from the business AST, the PartnerLnkType is not generated.Check during EPC2BPEL for a relationship to the UML class. Otherwise, ignore the AST workaround and manually remove the relationship to the old AST.
E3PortLinkType wsdlIf missing the link to the PortLinkType wsdl, the appropriate import has to be added to the process WSDL.
E4BPEL NamespaceMissing BPEL namespace in the partnerlinktype.
E5.aCallback generationCallback generation in BPEL allocation diagram for asynchronous processesDelete callback manually in allocation diagram.The unnecessary interface CallbackPT remains and should be deleted in Integration Developer after the import.
E5.bTwo exits for the BPEL process.Two exits for the BPEL process in case of an asynchronous EPC process.Delete the second exit manually.
E5.cVariable for the second exitA variable for the second exit is defined incorrectly with a part name of "payload".Manually delete the two variables in the allocation diagram.
E6Missing stereotype for port typesMissing stereotype xmlNamespace for port types.The name dependency is suspected, eventually the "-".
E7PerformanceMore than a minute EPC2BPEL transformation with a dozen functions in EPC.
E12Missing UML stereotypesError message during the BPEL export saying that the Human Task Port type namespace has no UML stereotype.Add the xmlNamespace stereotype to all the generated Human Task PTs from the BPEL assembly diagram.Changing one of the Human Type Porttype namespace stereotypes was enough to avoid the error.
E13Unable to import a WSDL with two different messages as input/outputError message: Either the file does not exist or is invalid, or the URI you specified is invalid.No contradiction with the specification.

Conclusion

In this tutorial, you have learned to generate a BPEL process from ARIS SOA Architect and how to orchestrate a running application in WebSphere Integration Developer. You also learned about the advantages of business-driven development and how to avoid common pitfalls.


Downloads

DescriptionNameSize
Plugin ARIS to WebSphere Importer for WID 7.0ARIS2WebSphereImporter_v7.0.0.3.zip100KB
Plugin ARIS to WebSphere Importer for WID 6.2ARIS2WebSphereImporter_v6.2.0.3.zip1139KB
WebSphere extensions for ARIS SOA Architect 7.1deliverables_20100623.zip814KB
Sample process models for ARISA2W_sample_adb.zip655KB
Sample project interchange files for WIDA2WTest_pi.zip204KB

Resources

Learn

Get products and technologies

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 Business process management on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Business process management, WebSphere, SOA and web services
ArticleID=696948
ArticleTitle=Importing BPEL code from ARIS SOA Architect into WebSphere Integration Developer
publish-date=07062011