WebSphere Message Broker 针对 Curam 的设置

过程概述

Cúram 事件适配器将事件发布到 SOAP 端点。作为 Intelligent Operations Center 组成部分的 WebSphere Message Broker 安装可用于显示 SOAP 端点引用,以接收由 Cúram 事件适配器发布的消息。

Cúram 事件适配器发布到 SOAP 端点的消息的格式与 Intelligent Operations Center 要求的格式略有不同。例如,事件包装在 SOAP 包络中。下文提供了 Cúram 事件适配器发布的样本 CAP 事件。WebSphere Message Broker 也可用于从 SOAP 包络中抽取 CAP 消息并除去其他多余元素,从而使其严格遵守 Intelligent Operations Center 所要求的 CAP 消息格式。最后,WebSphere Message Broker 可用于将变换后的 CAP 消息转发给 Intelligent Operations Center,其方式是将消息重新定向到适当的 Intelligent Operations Center 输入队列。

样本 CAP 事件

下面是 Cúram 事件适配器发送的具有 SOAP 包络的样本 CAP 事件:

图 1. 具有 SOAP 包络的样本 CAP 事件
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
  <soapenv:Body>
    <ns1:publishEvent xmlns:ns1="http://remote.bs.publiclayer.ws.ea.curam">
      <xmlMessage>
        <cap:alert xmlns:cap="urn:oasis:names:tc:emergency:cap:1.2" xmlns:xsi="http://www.w3.org/2001/
XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:emergency:cap:1.2-CAP-v1.2-os.xsd">
              <cap:identifier>d2a42209-33a5-4fcc-8658-0fc2c08c95da</cap:identifier>
              <cap:sender>IBMCuramSample</cap:sender>
              <cap:sent>2012-07-12T15:11:14+01:00</cap:sent>
              <cap:status>Actual</cap:status>
              <cap:msgType>Alert</cap:msgType>
              <cap:scope>Public</cap:scope>
              <cap:code>KPI</cap:code>
              <cap:info>
                <cap:category>Other</cap:category>
                <cap:event>ea.ipa.pd</cap:event>
                <cap:urgency>Unknown</cap:urgency>
                <cap:severity>Moderate</cap:severity>
                <cap:certainty>Observed</cap:certainty>
                <cap:headline>Sample CAP Event</cap:headline>
                <cap:description>Sample CAP Event Description</cap:description>
                <cap:onset>2012-07-12T15:11:14+01:00</cap:onset>
                <cap:senderName>IBMCuramSample</cap:senderName>
                <cap:parameter>
                  <cap:valueName>DisposalDateTime</cap:valueName>
                  <cap:value>2012-07-12 15:11:14</cap:value>
                </cap:parameter>
                <cap:parameter>
                  <cap:valueName>DisposalDuration</cap:valueName>
                  <cap:value>0</cap:value>
                </cap:parameter>
                <cap:parameter>
                  <cap:valueName>ProgramType</cap:valueName>
                  <cap:value>areference</cap:value>
                </cap:parameter>
                <cap:parameter>
                  <cap:valueName>DisposalResult</cap:valueName>
                  <cap:value>Deny</cap:value>
                </cap:parameter>
              </cap:info>
            </cap:alert>
          </xmlMessage>
      </ns1:publishEvent>
  </soapenv:Body>
</soapenv:Envelope>

创建 WebSphere Message Broker 流

本节描述如何在 Intelligent Operations Center WebSphere Message Broker 安装内创建 Message Broker 流,以接收和处理 Cúram 事件适配器发送的 CAP 消息。此流将接受 Cúram SOAP 消息,将这些消息变换为 Intelligent Operations Center 所要求的精确格式,然后再将修改后的消息转发到 Intelligent Operations Center 输入队列。创建流中包含的步骤如下:

  1. 在 WebSphere Message Broker Toolkit 内创建新的消息流文件 (.msgflow)。
  2. SOAP 输入:创建 SOAPInput 节点显示 SOAP 端点,以接受并处理 Cúram 事件适配器发送的消息。必须使用 EventAdaptorService.wsdl 可部署 WSDL 文件配置节点。此文件可在 Cúram 开发安装的 EJBServer\components\EventAdaptor\axis\EventAdaptorService 中找到。
  3. 创建节点,以将 Cúram 事件适配器发送的消息变换为 Intelligent Operations Center 要求的格式。其中包含除去 SOAP 包络、抽取 CAP 消息和除去多余 HTTP 头。可使用以下步骤实现此目的:
    1. SOAP 抽取:创建 SOAPExtract 节点以除去 SOAP 包络,只允许处理 SOAP 的主体。
    2. XSL 变换:使用 XSL 变换抽取父 <xmlMessage> 元素内的 CAP 消息。例如,以下 XSL 变换可用作基本 XSL 变换:
      图 2. 样本 XSL 变换
      <?xml version="1.0" encoding="UTF-8"?>
      <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
        <xsl:output indent="yes"/>
        <xsl:template match="/">
        	<xsl:copy-of select="//xmlMessage/node()"/>
        </xsl:template>
      </xsl:stylesheet>
    3. HTTP 头:使用 HTTPHeader 节点删除输入消息中的所有 HTTP 头。
    4. 重置内容描述符:使用 ResetContentDescriptor 节点请求以 XMLNSC 解析器解析消息。
  4. MQ 输出:最后,需要将变换后的消息交付到 Intelligent Operations Center IOC.CAP.IN MQ 队列中。使用 MQOutput 节点将其交付到 IOC.CAP.IN MQ 队列中。

消息流创建后,应生成 BAR 文件。然后应将此 BAR 文件部署到 Intelligent Operations Center WebSphere Message Broker 实例中。