Business Process Management (BPM) provides a well-defined approach that enables business process evolution within and across organizations, with special focus on process improvement. The goal of BPM is to make business processes more effective, more efficient, and more capable of adapting to a rapidly changing environment.
To achieve those objectives, Business Activity Monitoring (BAM) is a key ingredient. BAM enables the aggregation, analysis, and presentation of real-time metrics related to the activities that are performed by the participants of business processes.
IBM Business Process Manager provides some basic built-in BAM capabilities. However, as organizations look at expanding the scope of their BAM beyond business processes, and want to take advantage of superior analytics, very often IBM Business Process Manager is used in conjunction with IBM Business Monitor.
IBM Business Monitor enables you to monitor and correlate activities that occur in a variety of different environments, including IBM Business Process Manager. It provides exceptional presentation capabilities, notifications, and alerts, and it ships with the Cognos Business Intelligence Server for superior reporting.
When business processes are designed and implemented in IBM Business Process Manager V7.5 or V8.0.x and are monitored using IBM Business Monitor V7.5 or V8.0.x, you have a choice of different topologies: you can configure both products to share the same runtime application servers, or place them in separate servers. It is important that you understand how the runtime topology influences the development and deployment procedures. It is also worth noting that IBM Business Process Manager V8.5 cannot coexist with IBM Business Monitor V8.0 or V7.5 on the same runtime server; in fact, the two products must be configured in separate cells. Therefore, the considerations related to the topology where IBM Business Monitor and IBM Business Process Manager are in separate cells also apply to BPM V8.5.
This article focuses on this particular aspect of combining IBM Business Process Manager and IBM Business Monitor. Our objective is to make you aware of the various topological options, and to help you appreciate how the choice of topology affects the way you need to develop, package, and deploy your BPM and BAM solution.
Before you start the development phase of your BAM project, it is important that you take into account how the various runtime environments are set up. These runtime environments not only include the development environment, but also other installations such as the pre-production and production environments.
IBM Business Process Manager requires, at the very minimum, two separate environments:
- The Process Center environment, which provides the central repository where development teams share assets and manage multiple versions of them. The Process Center can also be used for "playback," or immediate unit test, of business processes.
- The Process Server runtime environment, where you can deploy "snapshots," or versions, of your business process applications.
Normally, you will need a single Process Center environment and one or more Process Server environments for different purposes, such as integration testing, quality assurance, production, and so on. The Process Center keeps record of these Process Server environments in a server registry. From the Process Center, an administrator can deploy and maintain deployed versions of the process applications to the various Process Server environments.
When you deploy a BPM solution from Process Center to Process Server, each process application is deployed as a single unit. Process applications may contain a variety of different components, such as business processes, integration services, and monitoring assets (monitor models), but at the time of deployment all the components belonging to the same process application are deployed together, on the same Process Server instance.
Because of this, you need to make the right implementation and topological decisions regarding how to monitor business processes.
Following are the topological options available for setting up IBM Business Monitor and Process Center or Process Server environments:
- Process Center/Process Server and Business Monitor engines are
installed in the same runtime server or cluster, as shown in Figure 1.
This can be a standalone server, or a clustered environment, where
both components live in the same AppTarget cluster.
Figure 1. Process Center/Process Server and Business Monitor in the same server or cluster
- Process Center/Process Server server and Business Monitor are
installed in different runtime servers or clusters. In this case,
Business Monitor runs in a separate JVM, or cluster of JVMs. This
topology allows for greater isolation, and it comes in two
- Both components run in the same cell, although they are
configured to run in separate clusters, as shown in Figure 2.
This topology is also called the "five-cluster topology."
Figure 2. Process Center/Process Server and Business Monitor in the different clusters, but within the same cell
- Each component is installed in a completely separate cell, which creates a cross-cells topology, as shown in Figure 3.
Figure 3. Process Center/Process Server and Business Monitor in a cross-cells topology
- Both components run in the same cell, although they are configured to run in separate clusters, as shown in Figure 2. This topology is also called the "five-cluster topology."
In the rest of this article, we'll discuss how each topological choice influences the way you should be implementing business monitoring.
Monitoring processes when Business Monitor and Process Center are collocated
Let's take a look at the steps that you need to perform to monitor a process when both Business Monitor and Process Center (or Process Server) are collocated on the same cluster or server. We'll use the Hiring Sample application that is provided with Process Center to show how you can monitor a business process with Business Monitor using out-of-the-box development functionality.
In the case of collocation, it's very simple to enable monitoring with Business Monitor. By default, when both Business Monitor and Process Center or Process Server are collocated, the CEI events that Business Monitor needs are automatically produced by the process engine, and sent to the generated monitor model, which is deployed on the Business Monitor engine. Business Monitor dashboards in Business Space are automatically generated as well.
Here are the key steps you need to perform to enable monitoring:
- Enable tracking for the data items you want to monitor:
- Open the Hiring Sample process application in Process Designer.
- In the Business Process Diagram, switch to the Variables tab.
- Expand the requisition private variable.
- Select the department field, and then make sure that Track this Field is selected.
- Select the location field, then make sure that Track this Field is selected.
- Select the gmApproval field, and then make sure that Track this Field is selected.
- Enable Business Monitor monitoring for the Hiring Sample process:
- Switch to the Overview tab.
- In Monitor Settings, check the Enable
process monitoring through IBM Business Monitor,
as shown in Figure 4, and save the changes.
Figure 4. Enabling Process Monitoring
- Click File => Update Tracking Definitions.
Figure 5. Update tracking definitions
This step may take a minute or so to complete. When it is done, you'll see a dialog box saying the task has been completed.
That's it! Just by completing these few simple steps, you've generated and deployed the necessary monitor model. You can see it in the Integrated Solutions Console, as shown in Figure 6, by selecting Applications => Application types => Monitor Model. The new model is called bmon_HSS_main.
Figure 6. Monitor model in the Admin Console
Looking at monitored data in Business Space
Let's now take a look at Business Space to verify that monitored information is represented correctly in the Business Monitor dashboards.
- Open Business Space; for example, by navigating to http://localhost:9080/BSpace in a default installation.
- In Business Space, you can see there is a new space called
HSS_HiringSample_Main 20130324-103237, as shown in Figure 7.
Figure 7. New space in Business Space
- Notice that several pages and widgets are generated for you by
default. In Standard HR Open New Position Instances
an Instance widget was created automatically. There you can observe
metrics related to the department, location and gmApproval business
Figure 8. Instances widget without any instances
- Run some new instances of the Hiring Sample process. When new
instances are executed, the corresponding events are sent
automatically to the monitor model and new information appears in the
widget (after the widget refresh time or a page refresh).
Figure 9. Instance view widget without any instances
Monitoring processes when BPM and Business Monitor run in different servers
In the previous section, we discussed the steps you need to take to enable monitoring when Business Monitor is collocated with Process Center or Process Server. Things are quite different when the two components are running in separate servers. In this case, you need to perform the following steps:
- Create and deploy a monitor model to the server where Business Monitor is installed and running. This monitor model needs to be created and deployed separately from the business process application that contains the process you're running. You use the IBM Integration Designer tool to author the monitor model.
- Make sure that the events generated by the process can reach the
monitor model. There are two scenarios for this:
- If Business Monitor and BPM are in the same cell but in different clusters, the common event infrastructure (CEI) events are sent via the CEI messaging engine, which is configured by default. No additional configuration is required.
- In a cross-cell set-up, you have two additional options:
- Configure the CEI messaging engine in the BPM server (or cluster) and then configure the queue bypass settings to allow the transmission of events from BPM to Business Monitor.
- If the previous option cannot be used (because of architectural decisions, such as using a centralized ESB), events should be sent to Business Monitor server programmatically (using the REST API, for example).
Once you have completed the required set-up, complete the following steps to create and deploy the monitor model:
- Open IBM Integration Designer, and verify the connection to Process
Center, by selecting Windows => Preferences => Business
Integration => Process Center, as shown in Figure 10.
Figure 10. Verify connection to Process Center
- Switch to the Process Center perspective and open the Hiring Sample
Process application in the Integration Designer workspace, as shown in
Figure 11. Open the process application in the workspace
- Right-click on Hiring Sample Main, and select
Generate Monitor Model to create a new monitor
model for this process application, as shown in Figure 12.
Figure 12. Generate a new monitor model
- Click Next in the Generate Monitor Model dialog, then click Yes to create a new project.
- Select the events you want to monitor, as shown in Figure 13. In this
example, we'll select them all. Normally, you would need to decide
which events are relevant to monitor your process.
Figure 13. Select events to monitor
- Click Next and check the generated monitor model
preview, as shown in Figure 14.
Figure 14. Previewing the Monitor Model
- Click Finish and then Yes to switch
to the Business Monitoring perspective. A new monitor model has been
created and you can analyze it in detail in each tab, as shown in
Figure 15. In a real application, you would use this as a template and
modify anything you need to change.
Figure 15. Generated monitor model
- Right-click on the monitor model and select Generate Monitor
Java EE Projects, as shown in Figure 16.
Figure 16. Generate Java EE projects
Deploy the EAR file on the monitor environment
Now that you have an enterprise application generated, you can export it from the Integration Designer and deploy it to the Business Monitor server by doing the following:
- Select File => Export => Java EE => EAR file, and click Next.
- Make sure that the selected EAR project is HiringSampleMonitoringModelApplication, then select the destination folder where you want the EAR file to be exported, and select the target runtime. In our example, the target runtime is IBM Business Monitor 8.0 on WebSphere Application Server.
- Click Finish to export the EAR file.
Figure 17. Export the EAR file
- You can now deploy the monitor model using the administrative console.
Open the console, and navigate to Applications => Monitor
Models => Install, as shown in Figure 18.
Figure 18. Install the monitor model
- Select the EAR file you just exported and click Next.
- Depending on the configuration, the following steps could be slightly different. We are going to use the simplest path. Select Fast Path and click Next.
- Skip to Step 3 (Metadata for Modules) and click Next.
- In Step 4, Configure security for the monitor model,
select the security group you want to use. In this case we are going
to use root, as shown in Figure 19.
Figure 19. Configure security
- Go to Step 5 (Summary) and click Finish. When the message Application HiringSampleMonitoringModelApplication installed successfully appears, save the changes.
The monitor model starts automatically and its dashboard is also created automatically. You can check it in Business Space as we did before. As in the previous case, you can kick off a few instances of the process to trigger changes in the dashboards.
Now that you understand how different topological choices influence solution development, you may ask what are the pros and cons of collocating Business Monitor and Process Server in the same cell. Some of the advantages of collocation are:
- Simpler configuration (no cross-cell configuration is required) and a simpler operational environment (one cell for Process Center and one cell for each Process Server environment, rather than a potential proliferation of cells).
- Governance of all assets through Process Center.
- For simpler BPMN applications, monitor models are transparently generated and self-deployed, and manual authoring of monitor models is always an option.
Having separate cells for the Business Monitor and BPM, however, has to the following advantages:
- The two products can scale independently. You can assign a different number of nodes to run business processes, and to the monitoring infrastructure.
- There is better isolation – separate cells can be managed and maintained individually.
- There is independence in terms of product maintenance – there is no need to check for codependencies when applying fixpacks.
Here we have described how to develop a simple process and how to monitor it in the two different topological scenarios. While this article provided a simple example of such development, you should now be able to extrapolate the steps that are necessary to address more complex scenarios, and you should now understand the trade-offs of adopting the various topological choices.
- IBM Business Monitor V8.0.1 Information Center
- IBM Business Monitor V8.0.1 Information Center
- IBM Business Process Manager V8.0.1 information center
- IBM Business Process Manager V7.5 Production Topogies
- developerWorks BPM zone: Get the latest technical resources on IBM BPM solutions, including downloads, demos, articles, tutorials, events, webcasts, and more.
- IBM BPM Journal: Get the latest articles and columns on BPM solutions in this quarterly journal, also available in both Kindle and PDF versions.