Integrating IBM's Intelligent Operation Center with Business Process Manager

Using IBM BPM and IBM IOC together to manage long-term incidents

This article describes how integrating IBM® Intelligent Operations Center (IOC) with IBM Business Process Manager (BPM) can help organizations manage long-term responses to serious incidents. You'll learn how to do the simple configurations necessary to enable sending a triggering event from IOC to BPM and returning information from BPM to IOC. This content is part of the IBM Business Process Management Journal.

Share:

Andreas Rudnick (rudnik@de.ibm.com), Senior IT Architect , IBM

Andreas Rudnick photoAndreas Rudnik is a Senior IT Architect in the Lab Services organization of Industry Solutions Software. He works with clients and IBM teams in the implementation of Smarter Cities solutions around Intelligent Operations Center and related products. Prior to that role, Andreas was a lead architect in IBM's SOA Advanced Technology team.



Anthony Carrato (tony.carrato@us.ibm.com), Solution Architect , IBM

Anthony Carrato photoTony Carrato is a Solution Architect on the worldwide Solution Architecture team for Industry Solutions software. He supports IBM teams and customers around the world on designing and implementing Smarter Cities solutions.



Alan Dickman (adickman@us.ibm.com), Solution Architect, IBM

Alan Dickman photoAlan Dickman is one of several North American Business Process Management Solution Architects who work with IBM customers to define technical solutions to address business pain points and meet business needs. In 2010, Mr. Dickman received an IBM GBS Global Technical Award for his contributions to the IBM’s Advanced Meter Infrastructure program.



Allen Smith (allens@us.ibm.com ), Chief Programmer, IBM Intelligent Operations Center, IBM

Allen Smith photoAllen Smith is the Chief Programmer for the IBM Intelligent Operations Center. He has over 28 years of IT experience in development, marketing, support and services. He is an IBM Senior Certified IT Specialist.



04 December 2013

Introduction

Storm Incident:

Climate on the Eastern Plains of Colorado can be described as semi-arid. The state normally receives 15 to 25 inches (380 to 640 millimeters) of rainfall annually. From September 9th through the 15th of 2013, almost 8 inches of rain (198 millimeters) fell on Colorado flooding or impacting an area the size of Connecticut. Major roads into the mountains were washed away and towns were cut off. The Colorado Office of Emergency Management confirmed that 1500 homes were destroyed and 11,750 people were evacuated to 520 shelters. With winter coming, it could take a year to fully respond to the damage caused by the rain.

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:

IBM BPM provides another method for integrating with IOC. Information can be exchanged using an interface that conforms to the IBM service component architecture (SCA). That method will not be described in this article.

  1. Triggering a process flow in BPM on the arrival of an event in IOC using Undercover Agents
  2. Sending events from BPM to IOC
  3. Utilizing the business rules engine, IBM Operational Decision Management (IBM ODM), integrated in IOC to invoke BPM process flows
  4. 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
The IOC solution architecture

Click to see larger image

Figure 1. The IOC solution architecture

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 <enable-start-bpd-from-uca> property in Process Server's configuration to true. To do this, add the following line to the 100Custom.xml configuration file on the Process Server profile:
<enable-start-bpd-from-uca>true</enable-start-bpd-from-uca>

For example:
C:\IBM\BPM\8.5\BPM\Lombardi\process-server\configTemplate\100Custom.xml

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>

Note: The 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:

  1. In MQ Explorer right-click Queues and select New => Local Queue. Enter EVENT.IN as the name for the queue and click Finish.
  2. 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
    Import a broker flow

    Click to see larger image

    Figure 2. Import a broker flow

    Import a broker flow
  3. Select Existing Projects into Workspace, as shown in Figure 3.
    Figure 3. Select Existing Projects into Workspace
    Select Existing Projects into Workspace
  4. 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
    Select the archive file
  5. Click Finish to import the project.
  6. In order to deploy the project you need to create a BAR file for the project. To do this, select New => BAR File from the menu.
    Figure 5. Create new BAR file for deployment
    Create new BAR file for deployment

    Click to see larger image

    Figure 5. Create new BAR file for deployment

    Create new BAR file for deployment
  7. Specify a name for the BAR file (such as Integration Demo).
    Figure 6. Specify the BAR file name
    Specify the BAR file name
  8. 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
    Build and save the BAR file

    Click to see larger image

    Figure 7. Build and save the BAR file

    Build and save the BAR file
  9. After the BAR file iss successfully built, click OK. Figure 8 shows the result.
    Figure 8. BAR file build completion
    BAR file build completion
  10. 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
    Deploying the BAR file

    Click to see larger image

    Figure 9. Deploying the BAR file

    Deploying the BAR file
  11. 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
    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.

  1. 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.

    Enter PROCSVR.myBPMCell01.Bus as 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
    Create the transmission queue
  2. Click Next and select Transmission under Usage, as shown in Figure 12.
    Figure 12. Changing queue properties
    Changing queue properties
  3. 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_BPM as the name.
    Figure 13. Change triggering properties
    Change triggering properties
  4. 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
    Create the sender channel
  5. 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
    Specify the transmission queue name
  6. 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.

  1. Right-click Queues and select New => Remote Queue Definition. Enter BPM.IN as the name of the queue, as shown in Figure 16.
    Figure 16. Create the remote queue definition
    Create the remote queue definition
  2. 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, eventqueue.
    Figure 17. Specifying the remote queue name
    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:

  1. Select Service integration => Buses and select the PROCSVR.myBPMCell01.Bus.
    Figure 18. Select the Application Server SIBus for BPM
    Select the Application Server SI Bus for BPM

    Click to see larger image

    Figure 18. Select the Application Server SIBus for BPM

    Select the Application Server SI Bus for BPM
  2. On the following page, click Foreign bus connections and click New.
    Figure 19. Create a new foreign bus connection
    Create a new foreign bus connection

    Click to see larger image

    Figure 19. Create a new foreign bus connection

    Create a new foreign bus connection
  3. Select Direct connection and click Next.
    Figure 20. Create a direct connection
    Create a direct connection

    Click to see larger image

    Figure 20. Create a direct connection

    Create a direct connection
  4. Select WebSphere MQ as the foreign bus type.
    Figure 21. Select WebSphere MQ as the foreign bus type
    Select WebSphere MQ as the foreign bus type

    Click to see larger image

    Figure 21. Select WebSphere MQ as the foreign bus type

    Select WebSphere MQ as the foreign bus type
  5. Leave the virtual queue manager name set to the default of PROCSVR.myBPMCell01.Bus.
    Figure 22. Set the virtual queue manager name
    Set the virtual queue manager name

    Click to see larger image

    Figure 22. Set the virtual queue manager name

    Set the virtual queue manager name
  6. On the next screen, enter the foreign bus name IOC.MB.QM and provide a name for the MQ link, such as IOC.MB.QM.Link.
  7. 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_BPM as 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
    Enter the foreign bus and link name

    Click to see larger image

    Figure 23. Enter the foreign bus and link name

    Enter the foreign bus and link name
  8. 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 file.

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
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
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.


Conclusion

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.


Acknowledgements

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.


Download

DescriptionNameSize
Integration demo projectIntegrationDemo.zip3KB

Resources

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into Business process management on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Business process management
ArticleID=954219
ArticleTitle=Integrating IBM's Intelligent Operation Center with Business Process Manager
publish-date=12042013