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 V184.108.40.206 (hereafter called Process Server).
Importing the process
- Start WebSphere Integration Developer (hereafter called Integration Developer) in an empty workspace.
- Right-click the Projects pane, and select Import.
- Select Other - Project Interchange, then click Next.
- Navigate to the WPS_Process.zip 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 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:
- In WPS_Project, double-click Assembly Diagram. The assembly diagram editor opens.
- Click the Inbound Exports folder to display the available options. Drag-and-drop a Web service component onto the assembly diagram.
- You are prompted to specify an interface. Click Browse..., select CallWPS, and click OK.
- 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.
- Keep the default value of “Use the port type (interface) namespace” and click Finish.
- 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
The Web service you will call at runtime has a URL, which you will need to note.
- Open a text editor and create a new file.
- In the assembly diagram, click WSExport1.
- Click Properties, then click the Binding tab.
- Select all the text in the Address field and copy it to the
clipboard. It is similar to
- Paste the text into the text editor and save the file for later usage.
- 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.
- Right-click the server and select Add and Remove Projects.
- Click Add All, then click Finish.
- 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.
- 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
- 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
- Select the text Activity and replace it with Enter Request Data.
- Enter for a new line and type
- Select the text Milestone 2 and replace it with Process Request.
- Enter for a new line, then press Tab to indent in to the
activity level. Type
Send For Processing.
- Press Enter for a new line. Press Shift+Tab back to the
milestone level, and type
- Press Enter for a new line. Press Tab to indent in to
the activity level. Type
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
- 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:
- 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
- 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
- Add a second swimlane called Automatic.
- Click Unassigned in the original swimlane. Rename it to
- Drag Validate Request into the QA swimlane.
- 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.
- 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
- 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.
- 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.
- You will first subscribe to the process you defined in Blueprint.
- When prompted to log on, use
tw_adminfor both the user name and password.
- The authoring environment opens up. If you do not see a screen
similar to Figure 8, then click Process Center at the top
Figure 8. Process Center
- 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
REQand a description, then click Create.
- 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
- 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.
- In the logon screen, enter your username and password from Blueprint and click Next. Select your account and click Next.
- 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.
- 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
- 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
Figure 11. Request approval in the Business Process Designer
- 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.
- Click Automatic to the left of the swimlane. The swimlane's properties are displayed.
- Click the checkbox Is System Lane to indicate that the swimlane is not used for human tasks.
- 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.
- 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.
- 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
CallWPSfor the name and click Finish.
Figure 12. Adding a new implementation
- 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
- In the properties on the General tab, change Untitled1 to WPS Web Service, then click the Implementation tab.
- Open the text file you saved earlier with the URL for the service. Copy it to the clipboard.
- Open a Web browser, and paste in the URL, followed by ?wsdl.
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.
- 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
- 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.
- 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.
- 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.
- 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
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
- 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
- Click Add Output. As with the previous step, rename the
RequestOuputand select the Request data type.
- 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
- Repeat the step for the output mapping, selecting RequestOutput this time.
- CallWPS is now complete. Press Ctrl+S to save. To close it,
click X as shown in Figure 19.
Figure 19. 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.
- Across the top, notice that the Diagram tab is selected. Click the Variables tab to display it.
- On the Variables tab, click Add Private. A new private
variable Untitled1 appears in the list on the left. Change the
name Untitled1 to
- 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.
- Click the checkbox Has Default. This initializes the variable so you can use it in the process. Only complex variables need to be initialized.
- 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.
- 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
- 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
- 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
- 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.
- To define the options in the menu, click the Presentation tab.
Click Add. Change the value to
Newand the display text to
New Request. Add a second option with a value of
Updateand a description of
Update Request. Your screen now looks similar to Figure 23.
Figure 23. Setting up the drop-down list
- 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
- 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.
- 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.
- At the top right of the screen, click the Run Process button
as shown in Figure 25.
Figure 25. Run process
- 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
- 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.
- A dialog box appears to select which user should run this task. Select tw_user and click OK.
- When prompted for a password, use
tw_userand 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
- 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.
- 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
- 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.
- Right-click Send For Processing, then select Activity Wizard...
- For Service Type, select System Service.
- For Service Selection, click Attach an existing Service, then click Select...
- Select CallWPS. The Activity wizard now looks similar to
Figure 29. Completed Activity wizard
- Click Finish. You have now selected the CallWPS implementation to be used by this activity. All that remains to do is some data mapping.
- 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
- Repeat the previous step to select ProcessData (Request) for the output mapping as well.
- Press Ctrl+S to save.
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.
- Click Inspector at the top of the screen. You are returned to the Inspector perspective with the process still running.
- At the top right, select Task: Validate Request, and click the Run Task button. Select tw_user, then click OK.
- 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.
- 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.
- 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
- 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.
- Return to the Design perspective and click the Overview tab.
- In the section Exposing, for Expose to Start, click Select..., then click All Users.
- 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
- Before you run the process, you will explore one more feature of Teamworks called “snapshots”, which is how Teamworks performs versioning.
- At the top right of the screen, click the camera icon labeled Snapshot.
- Enter the name
Completed process, then click OK.
- In the lower left, in the revision history section, you will now see "Completed Process".
- 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
- 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.
- Go back to the top of the list and click on your most recent save.
- To see the process from an end user's perspective, select Start > All Programs > Teamworks 7 > Teamworks Process Portal.
- 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.
- 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
- 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.
- The Enter Process Data coach is displayed. Enter a name, type, and amount, then click OK.
- A Validate Request task appears. As above, run the task.
- 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.
- Start another Request Approval process.
- 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
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 file||WPS_Project.zip||29KB|
- WebSphere business process management site
- developerWorks WebSphere business process management zone
- Lombardi acquisition announcement
- WebSphere Lombardi Edition site
- IBM BPM Blueprint site