Integrating WebSphere Process Server V7 and Lombardi Teamworks

On December 12th, 2009, IBM® announced the acquisition of Lombardi®, a leading provider of business process management (BPM) solutions. This article will show you how to integrate Lombardi BPM with your existing WebSphere® BPM solutions. You will learn how to model and implement a process using the Lombardi tools, and then integrate them with WebSphere Process Server V7.



Lombardi's BPM suite is comprised of two products: Blueprint® and Teamworks®. With the IBM acquisition, they will be known as IBM Blueprint and WebSphere Lombardi Edition (hereafter called Lombardi Edition). However, since the first release with the IBM branding was not available as of the writing of this article, the name Teamworks will be used throughout.

Lombardi Teamworks is a BPM solution with a unique shared-model architecture for rapid development and deployment. The development environment enables process modeling and simulation, as well as process development. Processes are saved to a single database, used for both development and runtime – when you save a process, you are deploying it as well. Business monitoring is also included, along with a process portal for end users.

Lombardi Blueprint is a Web-based tool enabling process discovery in a collaborative environment. Non-technical users can quickly capture process milestones and steps and create BPMN process diagrams. You can also capture information about the process and perform basic analysis. Teamworks® users can subscribe to blueprints, easily bringing them down into the development environment.

The BPEL process

For the purposes of this article, a pre-built process has been provided. You will begin by importing the process, exploring it, and exposing it as a Web service. A project interchange file is available for you to download from this article. This file was created for WebSphere Process Server V7.0.0.2 (hereafter called Process Server).

Importing the process

  1. Start WebSphere Integration Developer (hereafter called Integration Developer) in an empty workspace.
  2. Right-click the Projects pane, and select Import.
  3. Select Other - Project Interchange, then click Next.
  4. Navigate to the file that you downloaded, and select it. Click Select All to include all of the projects contained within, then click Finish. The projects import into Integration Developer.

Exploring the process

Expand the folders WPS_Project Integration Logic Processes, then double-click WPS_Process. The process editor opens, as shown in Figure 1.

Figure 1. The BPEL process
The BPEL process

The process has three invoke activities that invoke three different services. Integration centric processes in Process Server can be transactional short-running (microflow) processes, which are run in memory for maximum performance. For details about transactionality in Process Server, see Exploring WebSphere Process Server transactionality.

Expose the process as a Web service

You can call the process through a Web services interface by adding a Web services export into the service component architecture (SCA) diagram:

  1. In WPS_Project, double-click Assembly Diagram. The assembly diagram editor opens.
  2. Click the Inbound Exports folder to display the available options. Drag-and-drop a Web service component onto the assembly diagram.
  3. You are prompted to specify an interface. Click Browse..., select CallWPS, and click OK.
  4. Click Next. A list of transport options is displayed. As of this time, Teamworks does not support SOAP 1.2, so keep the default of SOAP 1.1/HTTP and click Next.
  5. Keep the default value of “Use the port type (interface) namespace” and click Finish.
  6. An export named “WSExport1” is added to the assembly diagram. Wire WSExport1 to the interface of WPS_Process. Your assembly diagram now looks similar to Figure 2.
    Figure 2. Completed assembly diagram
    Completed assembly diagram
    The Web service you will call at runtime has a URL, which you will need to note.
  7. Open a text editor and create a new file.
  8. In the assembly diagram, click WSExport1.
  9. Click Properties, then click the Binding tab.
  10. Select all the text in the Address field and copy it to the clipboard. It is similar to http://localhost:9080/WPS_ProjectWeb/sca/WSExport1.
  11. Paste the text into the text editor and save the file for later usage.
  12. Save and close the assembly diagram.

You have now added a Web services interface to the process.

Deploy the process

You need to start the server to deploy a module. If you have not done so already, start the server and wait for the startup to complete.

  1. Right-click the server and select Add and Remove Projects.
  2. Click Add All, then click Finish.
  3. The projects are deployed to the server and started.

You are done working in Integration Developer for now. You can minimize the window for the time being.

Create a model in Blueprint

Blueprint is the Web-based environment from Lombardi for process discovery, documentation, and analysis. You can collaborate with others online, even to the point of multiple people working on the same process at the same time. If you are not a Blueprint user, you can click the Get it Now button on the Blueprint site for a free 30-day trial.

You will begin by creating a discovery map, which documents the high level milestones and activities in a process. You will then create a process based on your discovery map and enhance it with further information.

  1. Click Create a Process on the top left, as shown in Figure 3. For the process name, use Request Approval. For the project name, select Create a new project. Enter a project name of your choice, then click Done.
    Figure 3. Creating a process
    Creating a process
  2. The Discovery Map editor opens. By default, there are two milestones and one activity defined. Select the text Milestone 1 as shown in Figure 4, and replace it with Create Request.
    Figure 4. Rename milestone
    Rename milestone
  3. Select the text Activity and replace it with Enter Request Data.
  4. Enter for a new line and type Validate Request.
  5. Select the text Milestone 2 and replace it with Process Request.
  6. Enter for a new line, then press Tab to indent in to the activity level. Type Send For Processing.
  7. Press Enter for a new line. Press Shift+Tab back to the milestone level, and type Notification.
  8. Press Enter for a new line. Press Tab to indent in to the activity level. Type View Results.

    You have now defined all of the milestones and activities in your process, which looks similar to Figure 5. You could also have clicked Add Milestone or Add Activity, rather than entering a new line.

    Figure 5. Completed discovery map
    Completed discovery map
  9. Double-click Send For Processing. You can document information about this activity, such as who does the work (participant), cycle time, known problems, and other relevant information. For this introductory sample, you will not add anything else at this time. Click X to close the pop-up.

You will now create a process diagram from your discovery map:

  1. At the top right, from the View pulldown menu, select Process Diagram. In the dialog box, click Create Diagram. The process diagram opens, as shown in Figure 6.
    Figure 6. Initial process diagram
    Initial process diagram
  2. The three project milestones are represented in the diagram, along with the activities. Had you entered information about participants, the swimlanes would have been created for you. A swimlane is a horizontal area that contains process steps, which are performed by the same resource. In this case, you will do it manually. Click Add Swimlane and type QA.
  3. Add a second swimlane called Automatic.
  4. Click Unassigned in the original swimlane. Rename it to Requestor.
  5. Drag Validate Request into the QA swimlane.
  6. Drag Send For Processing into the Automatic swimlane.

You have now completed the process diagram. Once complete, you can share the process in a variety of formats. On the upper right-side, there are icons to click to print or to save the process in a PowerPoint. You will now explore other export options.

  1. At the top left, click your project name. You will see the project view with any processes you have started in the project, along with information such as project maturity. Since you did not define details, such as problems, goals and measurements, your process has a fairly low maturity rating.
    Figure 7. Project view
    Project view
  2. Click Export, as shown on Figure 7, to see other options. You can export to XML Process Definition Language (XPDL), which IBM FileNet BPM uses for its runtime definitions, Business Process Modeling Notation (BPMN), or WebSphere Business Modeler XML. These export options enable you to start with Blueprint, then later determine the best runtime for your particular project.
  3. You will not be exporting at this time. Click X to close the dialog box.

You are now done in Blueprint. You can log off and close the browser.

Complete the model in Teamworks

Teamworks is the name of the Lombardi environment. A shared database is used for build time, runtime, and the performance data warehouse. To start, double-click the Teamworks icon, or Start All Programs Teamworks - Teamworks authoring environment.

  1. You will first subscribe to the process you defined in Blueprint.
  2. When prompted to log on, use tw_admin for both the user name and password.
  3. The authoring environment opens up. If you do not see a screen similar to Figure 8, then click Process Center at the top right.
    Figure 8. Process Center
    Process Center
  4. The Process Center manages and processes applications. At the far right, click Create New Process App. For the name, use Request Application. Enter an acronym, such as REQ and a description, then click Create.
  5. Request Application now shows in the list of process apps. To the right of Request Application, click Open in Designer. The Process Designer opens, as shown in Figure 9.
    Figure 9. Process Designer
    Process Designer
  6. Rather than having to export from Blueprint, then import into Teamworks, a different metaphor is used. You can subscribe to a Blueprint and have it brought down into Teamworks. As Figure 9 shows, there is a category on the left side for Blueprints. Hover the mouse over Blueprint, and a + sign appears to its right. Click the + sign, then select Subscribe to Blueprint Process.
  7. In the logon screen, enter your username and password from Blueprint and click Next. Select your account and click Next.
  8. You will see a list of processes. Scroll down to your project if necessary, and select the check box for Request Approval. Click Finish.

You are now subscribed to the process.

Explore the process in Teamworks

The Teamworks authoring environment has many similarities to Blueprint with added functionality. To begin, explore the process you just subscribed to.

  1. On the left, click Processes. As Figure 10 shows, a list will emerge with several items that were imported when you subscribed to the Blueprint. Double-click Request Approval.
    Figure 10. Selecting the process
    Selecting the process
  2. The process opens in the Business Process Designer, as Figure 11 shows. It looks similar to the process in Blueprint. Any information or documentation you had added to the process is preserved when it is brought into Teamworks. Since Teamworks features a shared model environment, the process you see is not only a model, it is also executable.
    Figure 11. Request approval in the Business Process Designer
    Request approval in the Business Process Designer
  3. Click one of the activities. The properties are shown at the bottom of the screen. There are different tabs where you can define additional information. In this case, you will not need to change any settings.
  4. Click Automatic to the left of the swimlane. The swimlane's properties are displayed.
  5. Click the checkbox Is System Lane to indicate that the swimlane is not used for human tasks.
  6. For Default Lane Participant Group, click Select..., then click System Data. This tells Teamworks not to assign work to people, but to the System, which is a predefined role for the automated steps.
  7. If you do not have access to Blueprint, you can create the process here by dragging and dropping elements from the palette onto the process diagram.

Import the WSDL

Each activity in the diagram has an implementation. “Send For Processing” will use a Web services call to trigger the BPEL process in Process Server. You will now create the implementation for the Web service.

  1. On the left side of the screen, hover the mouse over Implementation. Click the + sign that appears, then click Integration Service, as Figure 12 shows. Enter CallWPS for the name and click Finish.
    Figure 12. Adding a new implementation
    Adding a new implementation
  2. CallWPS opens in the editor, with just a start and end node. To the right in the Common folder, drag-and-drop Web Service Integration onto the canvas, as Figure 13 shows.
    Figure 13. Adding a Web service integration
    Adding a Web service integration
  3. In the properties on the General tab, change Untitled1 to WPS Web Service, then click the Implementation tab.
  4. Open the text file you saved earlier with the URL for the service. Copy it to the clipboard.
  5. Open a Web browser, and paste in the URL, followed by ?wsdl. For example: http://localhost:9080/WPS_ProjectWeb/sca/WSExport1?wsdl. The WSDL document is displayed and the URI in the browser is updated to that of the WSDL. Copy this new URI to the clipboard.
  6. In the Implementation tab, paste the URL into the WSDL URI field, as shown in Figure 14, then click the Discover button. A password is not required, so click Discover.
    Figure 14. Setting the WSDL URI
    Setting the WSDL URI
  7. You may see the progress indicator moving in the lower right of the screen for a moment. Once the discovery is complete, click the Operation pull-down menu. Select the startProcess(Request) operation that the tool discovered. A user name and a password are not required for this service.
  8. Click Generate Types to create type definitions for any variables used in the service. In this case, there is only the Request type in the WSDL. The startProcess operation is automatically selected since it is the only operation in the WSDL. Click Next. A list of types and their mappings to Teamworks is displayed. Click Next. A message tells you that the type generation is complete. Click Finish. You can now use the Request data type in your process.
  9. In a real life implementation, you use the activities in the palette to add logic in case a fault was returned, retries if the service is not available, or other processing logic you may need. In this case, you will simply wire WPS Web Service to the start and end nodes.
  10. To begin wiring, click the Sequence Flow icon, as shown in Figure 15. Hover over the Start node. The pointer will change to show a plug, and four dots appear around Start. Click Start near whichever point you want to wire out from, then move the pointer to WPS Web Service. Three wiring points appear on each side. Move the pointer to whichever you want to connect to and click it. Repeat to wire WPS Web Service to End. Click Selection Tool or Esc. Press Ctrl+S or select File > Save to save all of your work so far.
    Figure 15. Sequence flow icon
    Sequence flow icon

    To get data into and out of the service, an input and an output are required. At the top, click Variables to see the Variables tab, as Figure 16 shows.

    Figure 16. Variables tab
    Variables tab
  11. Click Add Input. An input named “Untitled1” is created with a default type of “String”. Rename Untitled1 to RequestInput. In the Details section, click Select... to choose a different data type. A long list of all the data types in the system appears. To filter down the list in order to find request, type the letter “r”, then type the letter “e”, an then type the letter “q”. As Figure 17 shows, the list is now filtered down to only the Request data type. Click Request.
    Figure 17. Selecting the Request data type
    Selecting the Request data type
  12. Click Add Output. As with the previous step, rename the variable to RequestOuput and select the Request data type.
  13. Now that you have the input and output defined, you need to map them to the data used in the implementation. Click Diagram, then click WPS Web Service. In the properties, click Data Mapping. Next to input mapping, click the selection icon as shown in Figure 18. Double-click RequestInput (Request).
    Figure 18. Data mapping
    Data mapping
  14. Repeat the step for the output mapping, selecting RequestOutput this time.
  15. CallWPS is now complete. Press Ctrl+S to save. To close it, click X as shown in Figure 19.
    Figure 19. Close CallWPS
    Close CallWPS

Create a process variable

You are now back in the Business Process Designer. The tasks in the process will use a variable to pass information between them. The process activities read and write data to and from variables, similar to how it is done in a BPEL activity. You will now create a private variable for the process.

  1. Across the top, notice that the Diagram tab is selected. Click the Variables tab to display it.
  2. On the Variables tab, click Add Private. A new private variable Untitled1 appears in the list on the left. Change the name Untitled1 to ProcessData.
  3. The default type for the new variable is “String”. To select the proper type, in the Details section, click Select... and then select Request for the data type.
  4. Click the checkbox Has Default. This initializes the variable so you can use it in the process. Only complex variables need to be initialized.
  5. The ProcessData variable now uses the Request data type. Press Ctrl+S to save, then click Diagram.

The variable is now completed.

Generate human task services

The three tasks in the Requestor and QA swimlanes are performed by humans. They will each require a human task service to be defined. Each of these services can display forms for human interaction, which are called “coaches”. A coach helps guide a person through the steps of their work. Each task can have multiple coaches, for example, if you needed to perform a screen flow. You can also mix in automatic steps to retrieve data needed by the users and perform logic, such as looping back or branching based on the user's input. In other words, each of the high level tasks is mapped to something like a subprocess. In this simple example, each human service will have only one step, a simple coach to display the data. A wizard is provided to make the creation of human task services simpler.

  1. Right-click Enter Request and select Activity Wizard... A dialog box appears for the Activity wizard, as shown in Figure 20. 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 20. Activity Wizard
    Activity Wizard
  2. The wizard generates the implementation, including data mapping. Double-click Enter Request to edit the implementation. You will see the diagram, as shown in Figure 21. 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. If you add other buttons, you can add other connections, such as Cancel.
    Figure 21. Human task service
    Human task service
  3. To see the coach, double-click Coach or click the Coaches tab, and then click Coach. You will see the generated form, as shown in Figure 22.
    Figure 22. Generated coach
    Generated coach
  4. You will now 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 will change this field from a simple text to a drop-down menu.
  5. To define the options in the menu, click the Presentation tab. 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 now looks similar to Figure 23.
    Figure 23. Setting up the drop-down list
    Setting up the drop-down list
  6. To test the update, click Preview at the bottom of the coach. As shown in Figure 24, you can see your drop-down list.
    Figure 24. Previewing the update
    Previewing the update
  7. You are now done with this coach. Press Ctrl+S to save. Click X to close Enter Request Data. You are now back in the diagram of the Business Process Designer.
  8. Repeat Step 1 to generate a human task service for Validate Request and View Results. Do not make any changes to the generated coaches. Press Ctrl+S to save.

You have now created all of the human task services required for your process.

Initial process test

Even though you have not yet tied the Web services implementation you defined to the Send For Processing activity, you can test the process. Remember that when you define the activities in the diagram, the process is ready to run as soon as you save it. You will now start a process instance and test out the Enter Request Data activity.

  1. At the top right of the screen, click the Run Process button as shown in Figure 25.
    Figure 25. Run process
    Run process
  2. You may see the progress indicator at the bottom right of the window for a moment. The screen moves from the Designer perspective to Inspector, as shown in Figure 26. In the Inspector perspective, you can still see and edit the business process diagram, with the current step highlighted. You are also presented with information about the running process. At the top right, you can see that a process instance is running. The top right shows that the task Enter Request Data is in a “Received” status, which means it is ready to run. The Execution State shows details about the data.
    Figure 26. Inspector perspective
    Inspector perspective
  3. In the top right, click Task:Enter Request Data to select it, then click the Run Selected Task button, which looks just like the Run Process button in Figure 25.
  4. A dialog box appears to select which user should run this task. Select tw_user and click OK.
  5. When prompted for a password, use tw_user and click OK. On the next pop-up, you can optionally have the system remember the password so that you do not need to type it each time. You now see the running coach, as shown in Figure 27.
    Figure 27. Coach at runtime
    Coach at runtime
  6. The coach looks just as it did when you previewed it. However this time, it is running. Enter your name. Select New Request for the type, 1000 for the amount, and then click OK. You see a message that the service has finished. You can close the browser window.
  7. Back in the process inspector, click the Refresh button, as shown in Figure 28. The diagram updates with a yellow halo around the Validate Request activity. Enter Request Data is now in a “Closed” status, while Validate Request is now in a “Received” status.
    Figure 28. Refreshed diagram
    Refreshed diagram
  8. To understand the shared development environment of Teamworks, you will not proceed further with testing at this point. Instead, with the process still running, click Designer at the top left to return to the Designer perspective.

Update the process

The automatic activity Send For Processing is not yet tied to the implementation you defined earlier. As with human task services, a wizard is provided to make this easier for you to do.

  1. Right-click Send For Processing, then select Activity Wizard...
  2. For Service Type, select System Service.
  3. For Service Selection, click Attach an existing Service, then click Select...
  4. Select CallWPS. The Activity wizard now looks similar to Figure 29.
    Figure 29. Completed Activity wizard
    Completed Activity wizard
  5. Click Finish. You have now selected the CallWPS implementation to be used by this activity. All that remains to do is some data mapping.
  6. With Send For Processing selected, click the Data Mapping tab. The wizard filled in the name of the implementation's input, which does not exist at the process level. This error is indicated by underlining RequestInput to warn you that it does not exist. Click the Select button as shown in Figure 30, and double-click ProcessData (Request).
    Figure 30. Data mapping
    Data mapping
  7. Repeat the previous step to select ProcessData (Request) for the output mapping as well.
  8. Press Ctrl+S to save.

End-to-end test

When you save the process, you update not only the definition of the process, but the running process instance as well. To verify this, you will continue the test you previously started.

  1. Click Inspector at the top of the screen. You are returned to the Inspector perspective with the process still running.
  2. At the top right, select Task: Validate Request, and click the Run Task button. Select tw_user, then click OK.
  3. In the Web browser, the task opens. You will see the data from the previous task. The QA resource inspects the data here. Before proceeding, bring Integration Developer back into focus. Select Window Show View Console to display the server console. You will see the startup information. Right-click in the console view and select Clear.
  4. Return to your Web browser. Click OK to complete the task. The next task is the automatic task to call the Web service. You now see messages appearing in the console, as shown in Figure 31.
  5. When you call the service for the first time, the Web server has to initialize and load a number of resources. Since you are running everything on a PC, there is sometimes a timing issue the first time you attempt to trigger the service. If you receive a set of Java™ console errors, return to the Designer perspective, run another test, and it will work the second time.
    Figure 31. Console messages
    Console messages
  6. Run the View Results task. Notice how the status was updated by the automated service.

You have now tested the process from a developer's perspective.

Run the process

You will now run the process from an end-user's perspective. To have the process show up in the process portal, it must first be exposed.

  1. Return to the Design perspective and click the Overview tab.
  2. In the section Exposing, for Expose to Start, click Select..., then click All Users.
  3. Repeat for Expose business data and Expose performance metrics. Your screen now looks similar to Figure 32. Press Ctrl+S to save.
    Figure 32. Exposing the process to start
    Exposing the process to start
  4. Before you run the process, you will explore one more feature of Teamworks called “snapshots”, which is how Teamworks performs versioning.
  5. At the top right of the screen, click the camera icon labeled Snapshot.
  6. Enter the name Completed process, then click OK.
  7. In the lower left, in the revision history section, you will now see "Completed Process".
  8. In revision history, click the Details icon as shown in Figure 33. You will see a list of revisions from every time you saved.
    Figure 33. Revision history
    Revision history
  9. Scroll down towards the bottom of the list and click on one of the items, such as Integration Service. You will see in the editor what your project looked like from that time. You can take multiple snapshots and go back in time to see how things stood at a previous time. You can also deploy snapshots to a server if you have a development, test, and production environment.
  10. Go back to the top of the list and click on your most recent save.
  11. To see the process from an end user's perspective, select Start > All Programs > Teamworks 7 > Teamworks Process Portal.
  12. Log in with tw_user for both the user name and password. The process portal is displayed. It may take a few moments at first, depending on the speed of your machine.
  13. To start a new process, under Inbox, click New, as shown in Figure 34, then click Request Approval. The process starts and a message is displayed.
    Figure 34. Starting a new process
    Starting a new process
  14. You will 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, the task will be assigned to you. Click OK.
  15. The Enter Process Data coach is displayed. Enter a name, type, and amount, then click OK.
  16. A Validate Request task appears. As above, run the task.
  17. Due to timing, the screen may refresh before the automatic task completes. If you do not see the last task, click Inbox under My Tasks, so you do not need to wait for an automatic screen refresh. Run the View Results task.
  18. Start another Request Approval process.
  19. Under My ScoreBoards, click My Performance. A scorecard with your performance is displayed, as shown in Figure 35. By default, a number of metrics are defined for every task and every process. You only have one task, and it is currently on track. If you had multiple tasks waiting for your work, the pie chart at the top left shows you how many of them are on track or delayed.
    Figure 35. My Performance
    My Performance

The data gathered from monitoring is stored in the performance data warehouse. You can compare this data with simulation values using the Optimizer perspective in Teamworks. A forthcoming article will cover this topic in greater depth.

You have now run the process end-to-end from an end user's perspective.


This article showed you how you can integrate Lombardi Teamworks with WebSphere Process Server. You learned the basics of creating a process in Teamworks, along with several key features such as snapshots, a shared model, blueprints, and the process portal.


Project interchange fileWPS_Project.zip29KB



Get products and technologies



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

Zone=Business process management, WebSphere
ArticleTitle=Integrating WebSphere Process Server V7 and Lombardi Teamworks