IBM's Intelligent Operation Center (IOC) is designed to allow cities, other government organizations, and commercial entities to have a single, integrated view of the organization, including activities, events, and incidents, which are more serious events that require greater attention (see Storm Incident). For events and incidents with a short duration of 48 hours or less, such as a storm, IOC acts as a platform for managing an organization's response.
However, recovery from a storm may take weeks or even months. For situations of this nature, a different tool is needed – one meant to manage workflows over such durations. IBM BPM supports processes running for days, weeks or months and is ideal for managing longer recovery situations such as that described the Storm Incident).
This article describes how to integrate IOC with IBM Business Process Manager (IBM BPM). It covers techniques you can use with IOC V1.5 and the related Smarter Cities products based on it, IBM Intelligent Operations for Water (IOW) and IBM Intelligent Operations for Transportation (IOT).
This article walks you through the steps to integrate IOC and BPM by implementing simple configurations in the IOC and BPM environments.
What is IOC?
Key capabilities of the IOC include:
- An executive dashboard, to provide a unified view of operations across the city or organization
- Situational awareness, enabled by receiving alerts, which can be displayed as events or escalated to incidents, for further attention and action
- The ability to define key performance indicators (KPIs), which can be tracked, managed and reported against in near real time
- Integration with nearly any information system in the organization through IOC's data integration wizard or, for more complex cases, its Enterprise Service Bus
- Collaboration across IOC users via IOC's built-in instant messaging system
- Connection to social media to enable gathering and analyzing of public information
- Historical reporting against the information collected
- A defined and supported programming model, including a rich set of RESTful services, to allow ISVs, services teams and customers to extend and adapt the IOC
In addition, IOC provides an important capability to define and execute standard operating procedures (SOPs), which describe the actions to be taken in response to various kinds of alerts. These SOPs may be triggered when an operator observes that a KPI has changed state, such as a water quality indicator going from green to red, or in response to an alert, such as notification of approaching severe weather or a major traffic incident. These SOPs can support both manual and automated activities and send those activities to people who are signed into the IOC in a given role. For many situations, especially those of relatively short duration (less than 48 hours), the IOC SOP capability fits the needs of customers very well.
In some situations, however, the IOC SOPs won't be all that is needed. Consider the case where a city has been hit by severe weather. IOC-based SOPs work well in preparing for the storm and in managing response while the storm is in progress. However, recovery from a storm may take weeks or even months. For these situations, a different tool is needed to manage workflows over such long durations. Integrating IBM BPM with IOC provides this functionality by enabling workflows that need to run over longer durations to be defined and invoked.
What is IBM BPM?
IBM BPM automates and executes processes that improve human and system performance, and provide operational and administrative visibility. Processes can run for days, weeks and even months. As a process executes, tasks are assigned to personnel and progress is monitored. Administrators and managers can add personnel, and reassign or reprioritize work as problems are detected. BPM provides out-of-the-box dashboards for visualizing the progress of individual tasks, an entire process, or all executing processes. It also provides functionality for customizing reporting.
BPM supports continuous optimization of business processes. When combined with the IOC, operations center workers can play a critical role in business process management. They understand what their problems are and can provide insight on how these problems can be fixed. BPM's process automation capabilities are leveraged to increase workers' efficiency and the productivity of systems support operations. As processes execute, BPM collects information in real time related to wait times and end-to-end system performance. This real-time information enables administrators, managers and other operations center workers to visualize problems as they develop and to take necessary action. For example, operations center personnel can re-prioritize work or assign additional personnel. Finally, IBM BPM process information is stored in a data warehouse. Out-of-the-box reports and reporting tools enable users to analyze historic data and run simulations to make continuous process improvements.
Integrating BPM and IOC
In this article, we'll describe how to integrate the IBM Intelligent Operation Center with IBM BPM. The integration of IOC and BPM can be achieved at different levels:
- Triggering a process flow in BPM on the arrival of an event in IOC using Undercover Agents
- Sending events from BPM to IOC
- Utilizing the business rules engine, IBM Operational Decision Management (IBM ODM), integrated in IOC to invoke BPM process flows
- Integrate BPM coaches into the IOC dashboard
This article focues on the first two integration levels. For further details on integrating IBM ODM in BPM and integrating coaches into WebSphere Portal, which is the underlying technology of the IOC dashboard, refer to the IBM BPM Information Center.
The WebSphere® Message Broker and WebSphere MQ components of IOC are the main integration components between IOC and BPM. Communication between the two subsystems is via JMS messages. These messages are published and consumed by each component as required. Figure 1 illustrates the solution architecture.
Figure 1. The IOC solution architecture
IOC uses the IOC.CAP.IN queue to receive incoming events (Common Alerting Protocol or CAP messages). In order to intercept those messages and trigger a workflow in BPM, another message queue (EVENT.IN) has been configured, which receives all incoming events. This queue is intended to support cases where event messages might be more appropriately directed to another node in the overall solution. If your solution is such that all incoming messages will first be handled by IOC, then an additional queue is not required and messages can be dropped directly onto the IOC.CAP.IN queue. If you elect to have an additional queue, such as is used in this instance, then a broker flow will then be triggered, which will forward the message to the standard IOC.CAP.IN queue, transform the message to required message format for BPM, and forward the message to BPM. Note that you must ensure proper licensing for WebSphere Message Broker, such that it may be used, as in this example, to integrate multiple parts of the solution beyond IOC.
If a workflow in BPM needs to send a message to IOC (in the CAP format), the message can be sent directly to the IOC.CAP.IN queue using the standard IBM BPM integration services.
The following sections describe a detailed guide for how to configure the integration between IOC and BPM.
Trigger a process flow in BPM on the arrival of an event in IOC
The execution of the business process definition (BPD) in BPM is started by an incoming message event. The message event has attached an undercover agent to receive the event message.
To allow the Process Server to start BPDs from incoming message events and
UCAs, you must set the
property in Process Server's configuration to true. To do this, add the
following line to the 100Custom.xml configuration file on the Process
In order to invoke the UCA and start the process, a JMS message is sent to the BPM Event Manager. This component has a queue to receive event messages in the BPM WebSphere Application Server instance and is named jms/eventqueue.
The following message has been defined to invoke the UCA:
<eventmsg> <event processApp="MyProcessID">startProcess</event> <parameters> <parameter> <key>event</key> <value>I am a start value!</value> </parameter> </parameters> </eventmsg>
processApp attribute of the
event element must match the name of the process application
to be started, which is the process application's acronym. The
value element takes an arbitrary value for the
event parameter and passes it as input parameter to the BPD.
By default, the value of the
event parameter is populated
with the event title of the CAP event. In order to send other or
additional parameters, you can customize the ESQL script that is part of
the Message Broker flow.
Integrate external events
External events are sent to the EVENT.IN queue and are processed by a broker flow. In order to set up the required input queue and to deploy the provided broker flow, follow these steps:
- In MQ Explorer right-click Queues and select
New => Local Queue. Enter
EVENT.INas the name for the queue and click Finish.
- The broker flow is published using the Message Broker Toolkit. Open
the Message Broker Toolkit and select File =>
Import from the menu to import the provided broker flow,
as shown in Figure 2.
Figure 2. Import a broker flow
- Select Existing Projects into Workspace, as shown in
Figure 3. Select Existing Projects into Workspace
- Click Select archive file and select the provided
broker flow project export IntegrationDemo.zip, as shown in Figure 4.
Figure 4. Select the archive file
- Click Finish to import the project.
- In order to deploy the project you need to create a BAR file for the
project. To do this, select New => BAR File from
Figure 5. Create new BAR file for deployment
- Specify a name for the BAR file (such as
Figure 6. Specify the BAR file name
- In the options for the BAR file, select the Integration
Demo project and select Compile and in-line
resources. Click Build and Save to
update the BAR file, as shown in Figure 7.
Figure 7. Build and save the BAR file
- After the BAR file iss successfully built, click OK.
Figure 8 shows the result.
Figure 8. BAR file build completion
- To deploy the broker flow, right-click on the previously created BAR
file and select Deploy, as shown in Figure 9.
Note: If a previous version of this broker flow is already deployed, delete it first before deploying the flow.
Figure 9. Deploying the BAR file
- Select the default execution group on the
IOC_Broker and click Finish, as
shown in Figure 10. Note that you could also deploy the
broker flow to a custom execution group (which must be created first).
Figure 10. Selecting the execution group for deployment
Integrate BPM with MQ
Create MQ channel for MQ Link integration Create remote queue BPM WebSphere Application Server Management
Create an MQ channel for MQ Link integration
BPM provides a standard event queue that can be used to trigger events in BPM. However this queue resides on the local WebSphere Application Server service integration bus (SIBus). In order to make this queue accessible via MQ, you need to define a channel on MQ that can be used by a WebSphere MQ link to integrate the message buses.
Note: The following instructions use
myBPMCell01 as the cell name for the BPM environment. You
need to replace this with the cell name for your local environment.
- In order to create a sender channel, you first need to create a
transmission queue for that channel. To do that, open the MQ Explorer,
right-click on the Queues folder and select
New => Local Queue, as shown in Figure 11.
PROCSVR.myBPMCell01.Busas the name for the transmission queue. This must match the remote Queue Manager name, which can be obtained from the BPM WebSphere Application Server Admin Console.
Figure 11. Create the transmission queue
- Click Next and select Transmission
under Usage, as shown in Figure 12.
Figure 12. Changing queue properties
- In order to start the channel automatically, you need to specify a
trigger for the transmission queue. To do this, go to the
Triggering entry and set the Trigger
Control to On, as shown in Figure 13. For the Initiation queue, select
the default channel init queue
SYSTEM.CHANNEL.INITQ. For Trigger data, specify the name of the channel (which we'll set up in the next step). In this example, we'll use
IOC_to_BPMas the name.
Figure 13. Change triggering properties
- After you've created the transmission queue, create a sender channel
by right-clicking Advanced => Channels and
selecting New => Sender Channel. Specify the name
of the channel as
IOC_to_BPM, as shown in Figure 14.
Figure 14. Create the sender channel
- On the next screen, enter
procsvr.mydomain.com (5560)as the Connection name (select a name that matches the hostname of your BPM Process Server) and select the previously created transmission queue PROCSVRr.myBPMCell01.Bus, as shown in Figure 15.
Figure 15. Specify the transmission queue name
- Click Finish to create the channel. An additional receiver channel is not required for the integration with the BPM SIBus because messages from BPM to MQ will be sent directly to MQ and not sent via the bus integration.
Create remote queue
After you've set up the sender channel, you can configure the remote BPM event queue on MQ.
- Right-click Queues and select New =>
Remote Queue Definition. Enter
BPM.INas the name of the queue, as shown in Figure 16.
Figure 16. Create the remote queue definition
- On the next page, select the previously created transmission queue
PROCSVR.myBPMCell01.Bus and enter the name of the
remote queue manager, as shown in Figure 17. This is the
same name as the transmission queue, in our case,
Figure 17. Specifying the remote queue name
Integrate the Application Server SIBus with MQ
In order to integrate the local WebSphere Application Server SIBus with MQ, we'll use an MQ link. This allows messages to be passed between different buses. Follow these steps to set up an MQ link for the BPM Application Server SIBus:
- Select Service integration => Buses and select the
Figure 18. Select the Application Server SIBus for BPM
- On the following page, click Foreign bus connections
and click New.
Figure 19. Create a new foreign bus connection
- Select Direct connection and click
Figure 20. Create a direct connection
- Select WebSphere MQ as the foreign bus type.
Figure 21. Select WebSphere MQ as the foreign bus type
- Leave the virtual queue manager name set to the default of
Figure 22. Set the virtual queue manager name
- On the next screen, enter the foreign bus name
IOC.MB.QMand provide a name for the MQ link, such as
- Deselect Enable Service Integration Bus to WebSphere MQ
message flow and select Enable WebSphere MQ to
Service Integration Bus message flow. Enter the WebSphere
MQ sender channel name of
IOC_to_BPMas defined previously. Set the SIB inbound user ID to a userid that has permission to publish on the event.in queue (such as
bpmadmin). This is the user that MQ link will use to send messages to the local SIBus.
Figure 23. Enter the foreign bus and link name
- Click Finish and save the MQ link configuration.
Enabling sending of events from BPM to IOC
Messages from a BPD to IOC are sent directly to the IOC.CAP.IN queue in
WebSphere MQ. IOC will pick up those messages and process them
accordingly. Therefore, an integration service must be defined in the BPD
using Java™ integration to import the Java class
teamworks.MQMessages from the out-of-the-box integration.jar
The integration service invokes the method
putMessage of this
class with the data mapping that specifies all necessary parameters and
settings. No additional configuration of the queue is needed.
Figure 24. Sending events from BPM to IOC
Validating the integration
After the configuration of all components is finished, you can test the integration by sending a test message to the newly defined EVENT.IN queue. You can use MQ Explorer to put the test message on the queue. To do this, right-click the queue and select Put test message.
Figure 25. Test the integration of BPM and IOC
The message should be picked up by the deployed Message Broker flow. If the Current queue depth displayed for the queue is something other than zero, this means that the broker flow was not deployed correctly. In this case, verify the steps for the deployment of the broker flow and try again after removing all previously sent test messages from the queue.
After the message is processed by the broker flow, it should be delivered to IOC and displayed in the event list. If it is not displayed there, validate that the message is a valid CAP message. If the message is valid, but still is not displayed in IOC, follow the troubleshooting instructions in the IOC Information Center.
In parallel, the message will also be delivered to the BPM event.in queue, starting a new process instance. If this is not working, validate that the MQ channel is configured correctly. The channel should be in the Active state after the message is put on the queue. If the channel state is reported as Retrying, the configuration of the channel or the MQ link is incorrect. Verify the configuration steps and retry after deleting all test messages in the BPM.IN queue.
This article described the integration of IBM Intelligent Operation Center with IBM Business Process Manager. IOC can manage an organization's response to an incident for a period of days. However, when a response spans weeks or months, organizations will want to utilize BPM for response management.
In this article, you learned how to configure IOC and BPM to send a triggering event from IOC to BPM using an undercover agent, and to send an event from BPM to IOC. You stepped through the simple configurations to achieve the integration between IOC and BPM.
Part 2 of this series will describe how to take advantage of new capabilities introduced in IOC V1.6.
The authors would like to thank our IBM IOC and IBM BPM teammates Dave Soroka and Scott Simmons for their advice, review, and comments on this article.
|Integration demo project||IntegrationDemo.zip||3KB|
- IBM IOC Information Center
- IBM BPM Information Center
- IBM Software Services for WebSphere: Find out how IBM expertise in cutting-edge and proven technologies can help you achieve your business and IT goals.
- 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.