增强基于 IBM Intelligent Operations Center 的应用程序

如何处理活动

IBM Intelligent Operations Center 支持标准的操作过程。在发生某个事故时,会为一个过程中定义的每一步创建一个活动。本文将介绍架构师和开发人员可如何修改现有的工件和开发新工件,在一个活动中向用户提供数据或从用户那里收集数据,然后记录提供的数据和收集的数据,将它们传播给同一个事故中的后续活动。

Aidan Clarke, IT 架构师, IBM

Aidan Clarke 的照片Aidan 是 IBM 软件部门的一名 IT 架构师。他拥有 30 多年 IT 行业经验,主要担任软件开发职位。他目前是 Industry Solutions 组织的成员,研究 IBM i2 Intelligence Analysis 产品组合。



Brian Daly, 软件开发人员, IBM

Brian Daly 是一名软件开发人员,是位于爱尔兰 Mulhuddart 的 Technology Campus 的 IBM Industry Solutions Development 小组的成员。他开发了扩展行业解决方案产品的新内容。



Artur Grzenkowicz, 高级软件工程师, IBM

Artur Grzenkowicz 是爱尔兰 IBM Dublin 软件实验室的一名高级软件工程师。他从事 Java Platform, Enterprise Edition Lotus Quickr 模板领域的工作。



Kevin Keating, 软件工程师, IBM

Kevin Keating 的照片Kevin Keating 是一名软件工程师,也是 IBM Software Group 的 Industry Products 部门成员。他开发了使用 Intelligent Operations Center 的公共安全演示。



Vincent Kelly, 开发经理, IBM

Vincent Kelly 的照片Vincent Kelly 是一名开发经理,在 Industry Solutions Group 的爱尔兰实验室工作。他目前效力于 Public Safety 部门,致力于研究新收购的 i2 产品。在担任此职位之前,他在跨 IM 和 Lotus 领域的开发和测试部门担任过各种管理职位。



Jamie O'Leary, 软件工程师, IBM

Jamie O'Leary 的照片在 Lotus Connections 产品家族中使用 Java 2 Platform, Enterprise Edition (J2EE) 开发 Web 前端和社会搜索工具多年后,Jamie 调到了 Industry Solutions 部门,他在这里开发了原生平台应用程序与 J2EE 服务之间的后端集成。目前 Jamie 正在开发 Intelligent Operations Center 的原型扩展。



2013 年 4 月 23 日

简介

不同的业务领域需要不同的解决方案来满足其操作管理和协调需求。例如,一个主要建筑工程的具体需求与应急响应指挥中心或体育场的操作中心的需求有很大的差异。

但是,这些领域存在许多共同的基本结构需求:

  • 来自现场的警告
  • 需要组建的响应团队
  • 需要支持的标准预案流程
  • 需要通过关键指标跟踪的性能
  • 需要执行的改进

IBM Intelligent Operation Center 是一个软件环境,通过提供一个支持这些功能的架构来支持实现这类解决方案。它提供了多个集成点,解决方案交付组织可通过这些集成点提供领域加速器。IBM Intelligent Operations Center V1.5 United States Software Announcement 212 – 250,2012 年 7 月 3 日(参阅 参考资料)提供了更多细节。

标准预案流程

标准预案流程(SOP)是一个预定义的步骤集合,用于确保通过协调人员、产品、属性和流程有效地响应事故。可以将步骤进一步定义为一系列活动;它们可能无需反馈即可开始操作,或者可能在 SOP 继续到下一步之前需要一定程度的反馈。不同活动需要的具体反馈不同。

存在着一些共同的需求:系统需要知道一个活动何时启动和何时结束;人们需要进行沟通;需要发出新警告。Intelligent Operations Center 通过它集成的 IBM Tivoli Service Request Manager 提供了其中一些功能。

SOP 实现的一种常见用例(Intelligent Operations Center 目前还未提供)是用于需要一些预定义的反馈或来自操作员的一组特定数据的活动。通常使用表单来支持这一用例。Federal Emergency Management Agency (FEMA) 网站提供了丰富的表单,它们的应用范围涵盖了不同的活动(参阅 参考资料)。

Tivoli Service Request Manager 中的标准预案流程

需要使用三个 Intelligent Operations Center 工件在 Tivoli Service Request Manager 中创建 SOP:一个标准预案流程、一个选择器矩阵和一个响应计划。SOP 包含构成一个过程的完成步骤和活动。公共安全上下文中的一个 SOP 示例如 图 1 所示。

它包含两个步骤,一个将触发一个工作流。这两个步骤都分配了角色。(分配角色和工作流是可选的。)

图 1. Tivoli Service Request Manager 控制台中的 SOP 示例
Tivoli Service Request Manager 控制台中的 SOP 示例

(查看 图 1 的放大版。)

SOP Selection Matrix 应用程序用于构建一个 SOP 选择器矩阵,该矩阵基于事件类别、严重性、确定性和紧急性来定义 SOP 选择器值。炸弹威胁 SOP 的 SOP 选择矩阵的矩阵和值为 7,可在 图 1 中看到。

然后使用一个响应计划,在 SOP 选择器值和一个要应用的 SOP 之间定义一个链接,参见 图 2

当在 Tivoli Service Request Manager 中创建一个 Intelligent Operations Center 事故时,通过来自 Intelligent Operations Center 的一个事件来触发 Tivoli Service Request Manager,然后基于 SOP 选择器矩阵(基于事件参数)为 Intelligent Operations Center 事故选择一个 SOP 选择器值。Intelligent Operations Center 事件触发 Tivoli Service Request Manager 来创建一个事故。将事件的参数应用于选择器矩阵来创建一个选择器值,然后将该值与 Intelligent Operations Center 响应计划相匹配,这可确定分配给事件的 SOP。

图 2. Tivoli Service Request Manager 控制台中的响应计划示例
Tivoli Service Request Manager 控制台中的响应计划示例

(查看 图 2 的放大版。)

当前的 Intelligent Operations Center SOP 方法

每次收到警告类型的 Common Alerting Protocol (CAP) 消息,都会在 Tivoli Service Request Manager 中创建一个 Intelligent Operations Center 事故。一个 SOP 应用于该事故,Intelligent Operations Center 控制台中的活动 portlet 显示任何链接的活动。

尽管 Intelligent Operations Center 提供的 portlet 允许与底层 Tivoli Service Request Manager 活动进行某种程度的交互,但这种交互是有限的,更改并不总是会在底层工件中反映出来。为了编辑 Intelligent Operations Center 事故和活动,以便在 Tivoli Service Request Manager 中完全反映出这些更改,Intelligent Operations Center 提供了 Tivoli Service Request Manager Web UI 的一个链接。这个 UI 未采用一般的 Intelligent Operations Center UI 方法,可能难以供 Intelligent Operations Center 用户使用。

表单

我们看看一种扩展 Intelligent Operations Center 的方法,它以表单形式支持特定于请求活动的反馈。我们不会关注表单的开发或业务场景。

Intelligent Operations Center 需要使用以下主要组件来支持特定于活动的表单:

  • 一个注册表,用于维护活动与表单之间的关系
  • 一个表单容器 portlet,它会反映在活动选择上
  • 一种持久化活动实例的数据结构的机制
  • 一种结束活动的机制

以下是我们实现这些组件的方法。


我们对当前方法的补充

主要用例是将特定于活动的数据提供给用户,从他们那里收集数据,持久存储该数据,并在一个常见活动的上下文中使用它。为了支持此用例,我们使用并扩展了一些现有的 Intelligent Operations Center portlet 的功能。

我们还使用事故的纬度和经度来检索额外的事故数据,以便查找哪些记录的资源位于事故地点附近。这些额外信息存储并链接到一个事故,以便同一个事故中的不同活动可以查看和修改它们。我们还提供了一项额外功能,允许直接更新一个活动的状态,该功能以前是通过 Tivoli Service Request Manager 用户界面使用 Intelligent Operations Center 所提供的一个链接来完成的。

图 3 中的图表显示了目前增加的对活动功能的 Intelligent Operations Center 支持。左侧是当前的 Intelligent Operations Center 流,右侧是我们增加的功能。右侧编号中的数字表示我们的软件组件所实现的步骤顺序。我们将在本文的下一节中详细介绍它们。

图 3. 我们在当前 Intelligent Operations Center 上的方法
该图表显示了我们在当前 Intelligent Operations Center 上的方法

使用我们的方法的示例场景

所提供的解决方案的灵感源于对支持与恶劣天气应急管理相关的一些标准预案流程的需求。在 Intelligent Operations Center 识别了一个已升级为事故的事件后,将依据相应的 SOP 启动一系列活动。

事实上,一些活动可能要求多个 Intelligent Operations Center 用户执行一些手动步骤,比如事故操作员、事故指挥员或其他公共安全官员。

下面描述了发生的过程:

  • CAP 传入
  • 出现适合事故操作员的活动
  • 操作员选择相应的活动
  • 显示一个表单,它显示事故附近需要选择的资源
  • 操作员选择资源
  • 将活动标记为完成
  • 出现下一个活动
  • 事故指挥员看到操作员选择的资源列表
  • 指挥员授权资源
  • 活动标记为完成

活动 portlet 修改

我们克隆并修改了标准的 Intelligent Operations Center 活动 portlet 代码,以支持允许与检索额外活动数据的 servlet 通信的额外功能。

在用户选择活动后,portlet 使用 dojo.xhrGet method 方法调用 servlet。servlet URL 接受两个参数:名为 getActivityInformationactivityID 的操作。dojo.xhrGet 方法还加载一个回调函数,在从服务器返回数据时,会调用该函数。返回的数据为 JSON 格式。在同一个回调函数中,从 dojo.xhrGet servlet 调用解析的响应使用 dojo.publish 方法来发布。然后,活动数据可由活动 portlet 所在的同一个页面上的其他 portlet 和小部件使用。在我们的示例中,表单 portlet(我们稍后将介绍)使用了它们。


检索额外的活动数据的 Servlet

当一个用户从修改的活动 portlet 选择一个活动时,活动 portlet 会将与所选活动相关的信息发布给一个 Dojo 主题。发布给该主题的信息应能够惟一地识别一个 SOP 中与此活动对应的步骤,也就是一个步骤类型

我们将步骤编号和 SOP 标识符 (ID) 串联在一起作为我们的活动类型,例如 type = WCONFIRMED_20 用于对应于一个名为 “WCONFIRMED” 的 SOP 中的第 20 步的活动。

此信息为在活动 portlet 中提供,所以我们使用了一个 servlet,从 Tivoli Service Request Manager Web 服务 MXWO 和 MXINCIDENT 检索该信息。我们之所以使用 Tivoli Service Request Manager Web 服务,是因为 Intelligent Operations Center 数据库没有将 SOP ID 存储在它的任何表中。

servlet 获取一个逗号分隔的活动 ID 列表作为参数,返回一个 JSON 元素数组,其中每个元素包含一个活动的以下信息:

表 1. servlet 为每个活动返回的 JSON 元素
元素名称 描述
sequenceNo SOP 中的步骤编号(来自 MXWO Web 服务的 WOSEQUENCE)。
ticketId 与活动关联的事故的 ID。(来自 MXWO Web 服务的 ORIGRECORDID)。
activityId 活动 ID(MXWO Web 服务中的 WONUM)。
SoPId SOP 的标识符(来自 MXINCIDENT Web 服务的 TEMPLATEID)。
uniqueStepIdentifier 活动的 “类型”,它是 SoPId 和 sequenceNo 的串联结果。

表单 portlet

表单 portlet 的设计是为了满足收集数据并将其与正在发生的事故相关联的期望。当处理应急事件时,可能必须填充表单来批准资源分配,或者记录在一个活动中检索的、可提供给以后阶段中的另一个活动的信息。

为了实现此目的,我们开发了一个通用容器,它可加载不同的小部件或 “表单” 来输入数据或显示以前收集的数据。我将表单本身与一个标准预案流程中的活动相关联,以便在标准预案流程中的某个特定活动生效时,让容器显示正确的表单。

实现

表单 portlet 有两个主要功能。第一个功能是操作选定的活动,显示用于处理它的正确表单。加载的表单将拥有自己的逻辑,所以容器只需知道要实例化的表单。第二个功能是在表单完成后结束活动。

实例化一个表单

当选择一个活动时,使用一个 Dojo 发布将一条消息通过网页传播。表单容器会订阅此发布,并使用发送的信息来确定要加载的正确表单。数据库中的一个注册表会将活动 ID 映射到表单类名,允许 API 调用传回一个与所选活动有关联的表单小部件的类名。通过使用反射,表单容器将创建目标表单的一个实例,传入与活动相关的信息。

表单生命周期

每个表单小部件是一个 Dojo 风格的小部件,它拥有自己的模板和 API 集合。使用在创建时传递给表单的信息,表单小部件可联系各种 API 来确定当前的事故类型、位置等。每个表单都可以拥有支持它处理不同活动的独特功能。例如,一个表单可能创建一个表单来显示事故领域中的资源,允许操作员选择想要的资源来处理某种情形。然后表单可以使用 API 调用将用户输入持久存储到后端。在查看其他活动时,这些持久存储的数据可用在事故的其他表单中。在表单到达它想要的端点后,就会通知容器它已完成操作。

结束一个活动

提交一个表单后,它将一条消息传回给容器,让容器知道它的生命周期已完成。在收到此消息时,容器会调用一个 API 来结束它为其显示当前表单的活动。然后容器将处于空闲状态,直到选择了一个拥有相应的表单的新活动。


更新活动状态的 servlet

这个 servlet 允许在 Tivoli Service Request Manager 中更新一个活动的状态。传递的参数是 activityId 和新状态。servlet 使用 MXWO Web 服务将指定服务的状态更新为指定的新状态。


数据库中的其他表

以下表被添加到 Intelligent Operations Center 数据库。

IOC.JSON

在处理一个事故期间,用户可将数据输入到一个表单中,作为与该事故关联的活动的一部分。这个注册表将用户输入的数据记录到这些表单上。

对于一个用户填充的每个表单,该表都会为其提供一个行。此表拥有以下字段:

表 2. IOC.JSON 字段和描述
文件名 描述
ID 表的主键。
INCIDENT_ID 事故的 ID。
FORM_ID 标识事故中的一个表单。
JSON 使用此表单从用户收集的数据。

每个表单实例与一个事故相关联,可在一个事故的上下文中惟一标识。

IOC.FORMID

这将一个表单类型与 SOP 中的一个步骤相关联。表单 portlet 使用此表,基于一个活动类型确定要显示哪个表。我们之前已看到一个活动的类型为 SOP 标识符与序号的串联结果。该表拥有以下字段:

表 3. IOC.FORMID 字段描述
字段 描述
ID 此表的主键。
SoP_STEP 活动的类型,也就是 SOP 标识符与序号的串联结果。
FORM_ID 标识一个表单类型。

结束语

IBM Intelligent Operation Center 是一个提供了多个集成点的软件平台,解决方案交付组织可通过这些集成点提供领域加速器。我们演示了一种可能的方式,软件架构师和开发人员可使用它解决问题,为支持标准预案流程的活动实现一个解决方案。Intelligent Operations Center 基于 IBM 产品,它非常可靠和灵活,能够添加客户需要的实现。

参考资料

学习

获得产品和技术

  • 评估软件:查找更多的试用软件。下载试用版,在线、在沙盒环境中使用产品,或者在云中访问它。
  • IBM Smarter City Solutions on Cloud:IBM Intelligent Operations Center on IBM SmartCloud 以单个价格提供了一个直观、基于用户的订阅服务,其中包含所有成本,包括硬件、软件、维护、支持和网络。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Industries
ArticleID=877283
ArticleTitle=增强基于 IBM Intelligent Operations Center 的应用程序
publish-date=04232013