Introducing IBM Business Process Manager V7.5

In this article, you'll step through an example that illustrates how IBM® Business Process Manager Advanced V7.5 brings together the capabilities of both WebSphere® Process Server and WebSphere Lombardi Edition into a single product, simplifying the integration between BPMN and BPEL processes and providing a single repository and governance for process applications. This content is part of the IBM Business Process Management Journal.

Marc Fasbinder, Consulting I/T Specialist, IBM

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



29 June 2011

Introduction

In April of this year at the Impact 2011 conference, IBM announced a new software offering, IBM Business Process Manager Version 7.5, hereafter called Business Process Manager. This new offering represents the merger of IBM's WebSphere Process Server (hereafter called Process Server) and WebSphere Lombardi Edition (hereafter called Lombardi Edition) into a single software offering.

In a previous developerWorks column, I discussed how Process Server and Lombardi Edition had different takes on BPM, and were complementary to each other. Business Process Manager now enables you to use the best features from each of the previous offerings, combined together into a single solution.

Business Process Manager Express and Business Process Manager Standard run BPMN processes, providing the functionality of Lombardi Edition. Business Process Manager Advanced adds the ability to run BPEL processes, providing the functionality of both Lombardi Edition and Process Server. This article focuses on Business Process Manager Advanced.

A key concept from Lombardi Edition that is expanded on in Business Process Manager is that of a central repository for all process artifacts, called the Process Center. All of the items you build are stored and governed by the Process Center. The Process Center is a process repository, focusing on assets at the process level. It can work with WebSphere Service Registry and Repository, which provides governance at the service level.

The tool used by BPMN process designers who formerly used the Lombardi Authoring Environment is now called the IBM Process Designer (hereafter called Process Designer). The tool used by BPEL developers who previously used WebSphere Integration Developer is now called the IBM Integration Designer (hereafter called Integration Designer).


Business scenario

In a previous developerWorks article, I showed how you could create a human-centric process in Lombardi Edition, and invoke an integration-centric process in Process Server. In this article, you'll see how the same scenario can be performed using Business Process Manager V7.5, and how having the Process Center as a common repository makes the development and deployment effort easier. The first scenario will show a top-down design, where you start with a BPMN process in Process Designer and create a new service to be implemented in Integration Developer. The second scenario will show a bottoms-up design, where you create an asset in Integration Developer and make it available to Process Designer for use in a BPMN process.


Working with the BPEL process

For the purposes of this article, a pre-built process is provided. You'll begin by importing the process, exploring it, and exposing it as a Web service. A project interchange file is provided for you to download and unzip.

Import the process

The Process Center manages process applications. You can access the Process Center from Process Designer, Integration Designer, or from a web browser. Since you'll begin with a BPEL process, you'll use Integration Designer for this section. Process applications consist of artifacts created in Process Designer, Integration Designer, or both. This enables you to manage all relevant artifacts in a single container, the Process App.

  1. Start Process Designer.
  2. The Process Center screen is displayed. If it is not, navigate to the Process Center by clicking the button labeled Process Center at the top right of the screen.
  3. Click Import Process App to import an existing process application. Click Browse and navigate to the BPM75Integration.twx file you downloaded and unzipped. Select the file, then click Open.
  4. Click Next, and wait for the file to be uploaded. Click OK to complete the import.
    Figure 1. Creating a new process application
    Creating a new process application
  5. Click OK to complete the import.

Explore the process

Now let's explore the BPEL process you just imported.

  1. Start Integration Designer. If it opens up in a workspace, click the Process Center icon at the top right.
  2. Find the BPM75Integration process application and click Open in workspace.
  3. Expand BPM75Integration_Implementatoin =gt; Integration Logic => BPEL Process, then double-click BPEL_Process_Process. The process editor opens, as shown in Figure 2.
    Figure 2. The BPEL process
    The BPEL process
  4. The process has three invoke activities that invoke three different services. BPEL processes in Process Server can be transactional, short-running (microflow) processes, which are run in memory for maximum performance, or can be long-running, stateful processes. The BPMN processes you'll explore later in this article are always long-running.
  5. In the BPM75Integration_Implementation folder, double-click Assembly Diagram. The assembly editor opens with a view of the integration components from the project. As Figure 3 shows, the process is wired to three components representing the services to be invoked. The process is wired on the left side to an SCA Export, which exposes the process as a service to other applications. The export uses Advanced Integration binding, which is new to Business Process Manager V7.5.
Figure 3. Assembly diagram
Assembly diagram

In the previous developerWorks article, you needed to add a web services interface for the process, store the URL for the WSDL, then paste it into the BPMN development tool. In the next section, you'll see how items from the Integration Designer are available for use in the Process Designer. This enables the integration eveloper to create services in Integration Designer and store them in the Process Center, so that BPMN process developers can access them through drag-and-drop. The Advanced Integration binding enables you to use the BPEL implementation, without having to know the URL for the WSDL as you did in previous versions.

In previous versions, after you imported a project interchange file into Integration Developer, it was only stored in the workspace and still needed to be deployed to the server. Business Process Manager uses the shared model architecture from Lombardi Edition, which means that when you store a Process App in the Process Center, it is both stored for development and deployed to runtime. Since you imported the process application in a previous step, you don't need to do anything now to deploy it.


Building the BPMN process

You'll now use the Process Designer tool to create a BPMN process that calls the BPEL process you just explored.

  1. Start Process Designer.
  2. Click the Process Center icon to navigate to the Process Center, if you are not already there.
  3. In the Process Center, find the BPM75Integration process application, and click Open in Designer to the right of it, as shown in Figure 4.
    Figure 4. Opening the process application
    Opening the process application
  4. Hover over Processes on the left. When the + appears, click it, then click Business Process Definition to add a new process. Name the process Request Approval, and click Finish.
  5. Drag-and-drop a swimlane from the palette on the right, into the process diagram.
  6. Drag-and-drop four tasks from the palette on the right into the process diagram, as shown in Figure 5.
    Figure 5. Tasks added to the process
    Tasks added to the process
  7. Click on the first task. Change the name to Enter Request Data.
  8. Change the name of the second task to Validate Request.
  9. Change the name of the third task to Send For Processing.
  10. Change the name of the last task to View Results.
  11. Click the Sequence Flow icon to change from select mode to wiring mode, as shown in Figure 6. Click the first task, move the mouse to the second task and click again to wire them together. Similarly, wire the other tasks and the Start and End events, until your process looks like Figure 6.
    Figure 6. Process with tasks wired
    Process with tasks wired
  12. Click on the top swimlane with the two tasks. Change the name to Requester.
  13. Click on the swimlane with the Validate Request task, and rename it to QA.
  14. Click Ctrl-S to save.

You have now completed the BPMN diagram. Next, you'll implement the tasks.

Implement the tasks

Three of the tasks are steps performed by people. For these steps, you'll create human task services. A Lombardi Edition style human task service in a BPMN process is similar to a Process Server style human task, in that they present work to people using a web-based task list along with forms for displaying data and enabling user input so that you can perform your business task. However, there is one major difference: whereas a Process Server style human task generally shows a single form, a Lombardi Edition human task service often uses multiple forms (called “coaches”), along with conditional logic, and the ability to invoke services in between the coaches. For example, you might first display a screen of instructions, with an input field and a Next button to navigate forward. A service step might look up information from the input field, then navigate to a different coach screen, depending on the outcome of the lookup. Figure 7 shows an example of a more complex human task service.

Figure 7. Complex human task service
Complex human task service

To keep things simple for this article, the human task services will be single coach screens, without any extra logic or service invocations. A wizard generates the human task services for you. All you need to do is to specify the input and output for the task. In order to do this, you first need to add a variable.

  1. Click the Variables tab at the top, and click Add Private.
  2. Change the name of the new variable to requestData.
  3. By default, the variable is a String, but the human task services need to show request data. The Request data type was defined in the BPEL process, which is part of the overall Process App. To select the Request data type, click Select to see all of the available data types. Type REQ to filter the list, until you see the data type you are searching for. Click Request to select it.
  4. Check Has Default. This initializes the complex variable type for use in the process. The variable should now look like Figure 8.
    Figure 8. requestData variable
    requestData variable
  5. Click the Diagram tab to return to the process diagram, then right-click Enter Request Data and select Activity Wizard. The Activity wizard displays, as shown in Figure 9. Click Next. The activity needs an input and an output. Since there is only one variable defined in the process, input and output are both set to true. If you had multiple variables, you can select which ones to use. Keep the defaults and click Finish.
    Figure 9. Activity wizard
    Activity wizard
  6. The wizard generates the implementation, including data mapping. Double-click Enter Request to edit the implementation. You'll see the diagram, as shown in Figure 10. A generated coach is wired to the start and stop nodes. The only button in the coach is OK, which you see on the wire going to End.
    Figure 10. Generated human task servic
    Generated human task servic
  7. To see the coach, double-click Coach. You'll see the generated form, as shown in Figure 11.
    Figure 11. Generated coach screen
    Generated coach screen
  8. In a real implementation, you would modify the default coach screen. Make a simple change to the form. Click the Type field to select it. In the properties, notice that it has a control type of Input Text. Click the Control Type drop-down menu, and choose Single Select. This changes this field from simple text to a drop-down menu.
  9. To define the options in the menu, click the Presentation tab, then click Add. Change the value to New and the display text to New Request. Add a second option with a value of Update and a description of Update Request. Your screen should now look similar to Figure 12.
    Figure 12. Setting up the dropdown list
    Setting up the dropdown list
  10. Click Ctrl-S to save. When you save an item in Process Designer, it is stored to the Process Center, which means it is saved and deployed at the same time. You can now play back the coach by clicking the Run Service icon at the top right. This will open the coach in a web browser. You can try out the dropdown and enter values in the other fields. When you click OK, you'll be asked whether you want to close the window. Click Yes.
  11. Close the coach by clicking X on the tab with the name. You are now back at the process.
  12. Repeat step 5 for the Validate Request and View Results tasks.

You have now generated the human task services for the process. All that remains is to specify the advanced integration service (AIS) for the Send for Processing step.

  1. Right-click Send For Processing, and select Activity Wizard. Since this task is in the System swimlane, the choices are different. For Service Type, select Advanced Integration Service. Select Attach an existing service, then click Select. From the list, select BPEL_Process, as shown in Figure 13.
    Figure 13. Selecting the AIS
    Selecting the AIS
  2. Click Finish. The task in the process is now set up to invoke the AIS.
  3. In the properties of Send For Processing, click the Data Mapping tab. For the input, change tw.local.Input to tw.local.requestData, or use the selection icon to select it.
  4. Change tw.local.Output to tw.local.requestData.

Expose the process

The last thing to do is to expose the process so that users can start it from the Process Portal.

  1. Click the Overview tab at the top.
  2. In the Exposing section, for Expose to Start, click Select, then click All Users.
  3. Repeat for Expose business data and Expose performance metrics. Your screen should now look similar to Figure 14.
    Figure 14. Process overview settings
    Process overview settings
  4. The process is now complete. Click Ctrl-S to save.

Versioning of Process Apps is provided through snapshots which, as the name implies, are simply images of everything that you have at a point in time. It is a snapshot of a Process App that gets deployed to a server. It is therefore best to give a snapshot a useful name, to enable easier version management:

  1. Click the camera icon at the top right of the screen, labeled Snapshot.
  2. Enter the name Completed Process Version 1 then click OK.

In previous versions, for Lombardi Edition to call Process Server you needed to create an integration service which called a web service, discover the WSDL for the service, then connect it all up. With Business Process Manager V7.5, connecting the two systems is much simpler, since all artifacts are stored in the shared repository of the Process Center.

In addition, the Process Center provides governance. Process Apps are deployed as a unit, and versioned. If you make a change to the BPEL process, a new version of the Process App is deployed, keeping everything in sync. In previous versions without this governance, you could make a change to the BPEL process that could break the integration with the BPMN process.


Test the process

Now let's test the process, first using the Process Portal.

  1. Select Start => All Programs => IBM => BPM Advanced 7.5 => Profiles => ProcCtr01 => Process Portal.
  2. Log in as tw_admin with password tw_admin.
  3. To start a new process, under Inbox click New, as shown in Figure 15, then click Request Approval. The process starts and a message is displayed.
    Figure 15. Starting from the Process Portal
    Starting from the Process Portal
  4. You'll see a window telling you the process has been started. Close the window. You'll see an Enter Request Data task appear under Instances. Click the green arrow in the Run column at the right to run this task. When prompted whether the task should be assigned to you, click OK.
  5. The Enter Process Data coach is displayed. Enter a name, type and amount, then click OK.
  6. A Validate Request task appears. As above, run the task. You may have to click Inbox again to refresh the screen if the task was not ready when the screen refreshed.
  7. The automatic Send For Processing task is run. This may take a few minutes the first time. You may need to refresh your Process Portal in order to see the last process task. When View Results appears in your task list, run the task as above. The process is now complete.
  8. Repeat step 3 to start another process instance.

Using the federated task list

Now let's explore a new feature of Business Process Manager V7.5: a federated task list available in Business Space. IBM Business Space is not a separate product, but rather a Web 2.0 front-end used by applications across the IBM BPM portfolio. Each product provides a set of widgets that are built using the iWidget standard. The widgets previously provided with WebSphere Process Server enabled you to view and process tasks assigned to you. These widgets have been extended to enable both Process Server style human tasks, as well as Lombardi Edition style human task services.

  1. Open a web browser, and navigate to http://localhost:9080/mum/resources/bootstrap/login.jsp.
  2. Log in with a user ID of admin and a password of admin.
  3. Click Manage Spaces => Create Space.
  4. Enter the name Workflow, then select Create a new space using a template.
  5. In the dropdown list, select Advanced Task and Process Management, then click Save. Your new space now appears in the list. Click Workflow to open it. When the space opens, click on the Manage Tasks tab.
  6. In the Tasks widget, you'll see an Enter Request Data task. Click the icon to the right to Accept and edit the task, as shown in Figure 16.
    Figure 16. Opening the task
    Opening the task
  7. In the Task Information widget, the coach is rendered. Enter some values and click OK.

This federated task list enables you to process human tasks from both BPMN and BPEL style processes in a single place. Customers using both heritage products (WebSphere Process Server and WebSphere Lombardi Edition) now have a single place to do their work. You can also create customized solutions by customizing your own spaces, or creating your own widgets.


Extended scenario

You've seen now how Process Designer can easily access artifacts created in Integration Designer. This is an example of bottoms-up development, where service artifacts are created first, then are used by the BPMN process developers. There are also cases where a BPMN process is being created, and the developer realizes that a step of the process needs to perform integration work. A typical user of Process Designer is not technical enough to design a WSDL document for a service. In the past, communicating what was needed to the more technical developers required manual effort, and much work on both sides. In this section, you'll learn how you can specify what is needed for a new service, in a top-down development scenario.

Add a new process step

  1. In the BPMN business process diagram, drag and drop a new task into the System swimlane at the end of the process.
  2. Name the new task Update System. Wire the process so that Update System follows the View Results step. Your process should now look like Figure 17.
Figure 17. Process with new step added
Process with new step added

Define a new advanced integration service

In this scenario, as a non-technical BPMN process designer, you don't know how to go out to a backend system to perform an update. You do know what the inputs and outputs are from the process data, and you'd simply like to have a technical developer do the work required for this step. To do so, you'll simply create a new AIS, which can be implemented by the technical developers.

  1. Right-click Update System and select Activity Wizard.
  2. For Service Type, select Advanced Integration Service.
  3. For Service Selection, ensure that Create New Service is selected, then click Finish. By default, the only local variable (requestData) is used for the input and output. If you have multiple variables, you can specify which ones are to be used for input and output.
  4. Click Ctrl-S to save the process.

That's it! You have created the AIS, which the technical developers can now go off and implement. Even though the service is not yet implemented, you can still play back your process to test it.

Develop the advanced integration service

You'll now play the role of the technical developer and implement the service.

  1. If not already open, start Integration Designer. From the Process Center, select Open in workspace for BPM75Integration.
  2. The process application has been updated since you last worked with it. Integration Developer detects that something has changed. Right-click BPM75Integration and select Refresh from Process Center. This goes out to the repository and brings back the updates. As shown in Figure 18, an unimplemented AIS named Update System now appears in the project.
    Figure 18. Project with unimplemented AIS
    Project with unimplemented AIS
  3. Right-click Update System and select Implement. As Figure 19 shows, you are presented with a list of options for how you want to implement the AIS.
    Figure 19. Implementation options
    Implementation options
  4. For this example, select Java component and click Finish. The Java™ editor opens.
  5. At the bottom of the Java code, replace return null with the two lines shown in Listing 1.
Listing 1. Lines of Java code
requestData.setString(“Type”,”Completed”);
return requestData;
  1. Click Ctrl-S to save, then close the Java editor by clicking the X at the top of the tab.
  2. The code is complete and can be tested in Integration Developer, but one last step remains: it has to be sent back to the repository. Right-click BPM75Integration and select Refresh and Publish. The Java component is published to the Process Center, and is deployed to the server.

Test the completed process

Now that the BPMN process has been updated and deployed, including the new service component, run a new instance of the Request Approval process. You can use Business Space, Process Portal or the Inspector view in Process Designer. Figure 20 shows the results in the Inspector view, with the Type field updated to Completed by the Java code in the AiS.

Figure 20. Completed process
Completed process

Conclusion

In this article, you learned how IBM Business Process Manager Advanced V7.5 is the next step in IBM's BPM evolution, bringing together the capabilities of both Process Server and Lombardi Edition into a single product, with many new features and functions. You learned how integration between BPMN and BPEL processes has been simplified by IBM Business Process Manager V7.5, and how the Process Center provides a central repository for process applications, along with governance. You learned how the non-technical BPMN process developers and more technical integration designers can collaborate together to create a process application. You also learned about the federated task list available in Business Space.


Download

DescriptionNameSize
Project interchange fileBPM75Integration.zip507KB

Resources

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
ArticleID=682369
ArticleTitle=Introducing IBM Business Process Manager V7.5
publish-date=06292011