使用复杂事件处理实现实时企业,第 1 部分: 来自 IBM 的实际企业场景将向您展示如何实现

本文使用现实世界中的场景,说明对支持复杂事件处理的框架的需要。本文是包括两个部分的系列中的第一部分,该系列介绍如何使用这些框架来帮助在错误出现之前确定错误。 本文来自于 IBM Business Process Management Journal

Akram Bou-Ghannam, Ph.D., 高级认证执行 IT 架构师, IBM

Bou-Ghannam 博士 是一位高级认证执行 IT 架构师,在 IBM 负责领导企业业务信息(Enterprise Business Information,EBI)方面的 SOA 实现。他目前正在全力推动 EBI 方面的 SOA 转换,重点在于创建可重用的业务、集成和信息服务,以及使用可重用资产构建 SOA 应用程序。他感兴趣的领域包括 SOA、智能自治代理、自动计算和 IT 体系结构及方法。Bou-Ghannam 博士是一名 IBM Master Inventor,并发表了多部内部和外部出版物。



Paul Faulkner, 认证 IT 专家, IBM

Paul Faulkner 的照片Paul Faulkner 是 IBM Software Services for WebSphere 的一名认证 IT 专家,致力于信息系统集成。Paul 曾设计并实现复杂集成模式,包括策略驱动的企业服务总线(Enterprise Service Bus,ESB)和涉及复杂业务事件处理的解决方案。Paul 拥有 20 多年的 IT 从业经验,并在大多数时间里从事中间件解决方案的开发。他曾出席过多种会议。



2009 年 3 月 19 日

引言

在本文中,我们将使用来自 IBM 的实际场景,即“新产品声明”端到端业务流程,演示复杂事件处理(complex event processing,CEP)框架如何能够帮助您实现实时企业。实时企业能够识别出现的情况、在威胁出现之前预测和响应威胁,以及发现和利用机会。该框架的核心是提供事件处理引擎的 WebSphere Business Events(以下称为 Business Events),以及提供丰富仪表板的 WebSphere Business Monitor(以下称为 Monitor)。事件转换和连接功能由 WebSphere Message Broker (Message Broker) 以及通用发布与订阅服务(Generalized Publish and Subscribe Services,GPASS)提供。

在本系列的第 1 部分中,我们将介绍如何使用 CEP 框架,在 IBM 产品和价格目录中的错误出现并影响客户之前,帮助确定这些错误。在 CEP 框架的帮助下,IBM 可以确保目录数据设置是完整、正确和及时的,以支持诸如新产品声明(New Product Announcement,NPA)等关键业务流程。此实现帮助解决了 IBM 的数据质量问题,从而提高了信誉、客户满意度和收入。该框架和所有关联的参考实现已作为一个合作模型的基础做了文档记录,此模型允许在其他服务合作中重用该框架,以支持任何端到端业务流程。

在下面几个部分中,我们将介绍 NPA 场景,并提供 CEP 和实时操作业务智能需要的概述。然后我们将介绍我们的 CEP 框架的体系结构,即体现该远景的预测性实时操作业务智能工具(Predictive Real-time Operational Business Intelligence Tool,PROBIT)。下一步,我们将描述如何使用各种 IBM 产品实现该体系结构。最后,我们将介绍来自 IBM 企业的 NPA 用例场景,并描述使用 PROBIT 来管理 NPA 流程的参考实现。


NPA 场景

本部分介绍来自 IBM 企业的新产品声明(New Product Announcement,NPA)场景,并解释为什么需要某种使用 CEP 的解决方案方法。在实现 NPA 场景时,一个非常明显的需求是支持 CEP 以实现实时企业的引擎或框架。解决方案是在以下 IBM 产品的基础上,构建称为预测性实时操作业务智能工具或 PROBIT 的 CEP 框架:

  • WebSphere Business Events 是运行时事件关联引擎和用于设置事件处理规则、流和交互的集成开发环境。
  • WebSphere Business Monitor 提供丰富的仪表板功能和高级警报功能。
  • [可选] WebSphere Message Broker 提供基于内容的筛选、中介和路由,以促进与大容量系统的实时集成。

此外,PROBIT 还利用通用发布与订阅服务 (GPASS)([1]、[2])将事件分发给事件使用者。


IBM 企业中对实时操作业务智能的需要

IBM 定期向客户和业务合作伙伴提供产品和价格数据(目录)。当某个地方出错时,例如目录中遗漏了某个产品,或目录中某个产品的价格不正确,通常会影响客户,从而又负面影响 IBM 的信誉,并且会直接影响 IBM 的收入。IBM 希望能够在错误影响到客户之前确定导致目录错误的模式。

当前创建、更新和发布产品及价格信息(目录)的流程非常复杂,在企业中的应用程序之间高度分散。诸如 NPA 流程或价格操作流程等企业业务流程驱动并影响目录开发以及在整个企业中的分发操作。为了确定可能导致目录错误的模式(并快速和适当地对这些模式的检测结果采取行动),我们需要捕获、评估和关联整个企业中所涉及到的各个系统和组织中的多个事件,如图 1 所示。因此,我们采取来防止目录错误发生的操作不是由单个事件触发的,而是由不同时间在不同上下文中发生的事件的复杂组合所触发的。此问题所需的处理类型称为复杂事件处理或 CEP。图 1 演示了处理各种 NPA 事件的 CEP 组件。

图 1. 应用于 NPA 流程的 CEP
NPA 流程中的 CEP

CEP 概述

CEP 是新出现的规程,它处理多个通常具有不同类型并来自不同事件源的事件。单独的事件通常没有提供内在的业务价值,但是在与特定上下文相关的情况下进行检测并与其他事件聚合在一起的时候,则可能会检测出复杂的事件模式。然后您可以使用这些模式实现自动化的解决方案和警报机制。CEP 采用了诸如跨许多事件的复杂模式检测等技术,并通过事件层次结构和事件之间的关系使用规则处理算法进行事件关联和抽象。因果关系、成员关系、计时和事件驱动的流程分析用于确定哪些事件有意义。CEP 系统查找业务事件数据中的模式,并帮助在企业中实现操作业务智能。通过考虑事件之间的关系,CEP 系统能够“融会贯通”并得出先前无法获得的见识,以支持更快速和更好的操作决策。

一般来讲,事件处理通过在有关企业中发生的事情的观察结果基础上获得有助于决策制定的见识,从而向应用程序添加了一个动态维度。它可以帮助确定趋势、威胁、机会和需要采取行动的业务情况。使用 CEP,您可以“分析、关联低级事件并将其总结为适合于以人类的术语通知人们或触发自动化流程的高级事件”。 [3]

那么,CEP 系统的特征是什么呢,或者换句话说,最适合于 CEP 的应用程序特征是什么呢?当机会和威胁在不可预测的时间出现时,事件驱动的系统必须在外部确定的时间响应事件。这些系统在环境更改时采取行动,而不只是按照预先计划的时间表采取行动。通常,CEP 适用于需要将许多组件实时聚集在一起以便完成任务的业务场景。如果您在处理动态流程(其特征更改得相当频繁)、非线性流程(其计时和顺序不可预测,因而无法预先定义)和需要实时响应外部事件的流程(连续地受到系统必须适应的外部事件的影响),则 CEP 是最适合的。


预测性实时业务智能工具 (PROBIT):环境感知性框架的体系结构和远景

事件处理系统接收来自事件生产者的事件,处理这些事件,可能作为处理结果而创建新事件,并将经过处理的事件发送给事件使用者,如图 2 所示。事件处理功能包括验证、充实、路由、转换、编排和模式检测。

企业环境中的应用程序、文件、数据库、Feed、人员、传感器数据等形成了各种信息和事件生产者及使用者。事件是一种抽象,表示某件事情已经发生或正在发生这一事实,例如股票交易、客户订单、地址更改等等。计算机应用程序创建事件对象(计算机记录)来表示或报告事件。通知是包括一个事件对象的计算机消息(例如 XML 消息)。

图 2. CEP 组件
CEP 组件

图 3 显示了能够为预测性实时操作业务智能提供环境感知性的智能系统的高级体系结构。此高级体系结构形成了 PROBIT 工具体系结构的基础。此体系结构划分为各个抽象层,从外部环境层开始,然后是感测和执行层、连接层,以及认知层。

外部环境由企业中所有的应用程序和系统组成,包括人员。这些应用程序构成了企业中的操作业务环境,并且是有关企业中发生的事情的观察结果来源。监视、捕获和处理这些观察结果可以帮助确定企业中需要对其作出反应的趋势、威胁、机会以及业务情况。因此外部环境不仅包括各个事件生产者,而且还包括各个事件使用者。

感测和执行层由感测外部环境并采取行动的组件组成。传感器是检测并捕获环境中所发生事件的组件。例如,某个地址更改事件可能表示 John Doe 在今天上午 8 点更改了其地址这一事实。可以将这些事件记录到数据库中的 Changed Address 表中。传感器组件可以是一段代码,例如某个脚本、存储过程等等,它监视 Changed Address 表并在每次创建新记录时生成事件对象(例如以 XML 消息的形式)。传感器组件还可以对观察数据进行筛选,然后将其转换和变换为不同的格式。例如,传感器组件可以将地址更改事件作为 WS-Notification [4] 标准 Notify 消息发布,其中事件对象 XML 包含在 Notify 消息的有效负载中。传感器组件至少必须执行监视和检测功能,以检测所发生的事件并创建事件对象来表示该事件。在图 3 所示的体系结构中,传感器组件还必须将包括实际事件对象的通知消息发布到连接层中的代理组件。传感器组件还可能包括筛选、转换和变换功能。

执行者组件对环境采取行动。该行动通常会更改环境的状态,例如通过设置某个标志,指示地址现已视为有效并且已通过地址标准化过程准备就绪,从而更改数据库应用程序的状态。该行动还可能涉及通过电子邮件、电话或寻呼机通知就环境中的某些威胁向人们发出警报。执行者的输入是某个事件对象。环境中的事件使用者也许无法使用当前形式的事件对象。例如,使用者可能是 SAP 应用程序,只能通过特定 SAP 接口或 API(如 SAP RFC 或 BAPI 接口)使用 SAP 类型的对象(例如 SAP IDOC)。在此情况下,执行者必须充当 SAP 适配器,不仅要建立与 SAP 系统的连接(例如通过 RFC 客户端),而且还要将事件对象转换为 SAP 对象格式。因此执行者扩展特定 SAP 接口,并将事件对象转换为 SAP 对象格式。在此情况下,执行者充当代理或中介,代表事件使用者使用、转换事件对象并将其发送给使用者。

图 3. PROBIT 逻辑体系结构
PROBIT 逻辑体系结构

在 PROBIT 体系结构的上下文中,连接层主要突出体现了一个代理组件。代理的主要作用是将事件从事件生产者路由到事件使用者。请注意,认知层中的 CEP 引擎也是事件使用者。代理组件功能可以通过某个发布与订阅框架来实现,例如通用发布与订阅服务 (GPASS) [1,2]。一般来讲,连接层表示 SOA 的企业服务总线(Enterprise Service Bus,ESB)体系结构构造。您可以更简单地将其视为这样一个层,此层提供整个企业和扩展企业中的异步和同步通信,并使用诸如消息、方法调用、服务集成和 FTP 等技术。此层通过将点对点连接与接口本身分离,从而将服务虚拟化。服务接口放在第三方代理中,这有助于您更好地管理接口,并支持更快速和更灵活的应用程序耦合和分离。由于您可以找到所有的应用程序和接口,因此可以更容易地重用它们。

认知层包含承载和处理业务规则的引擎,并表示业务领域知识。CEP 组件就是这样一个能够帮助检测环境或企业中重要模式的引擎。CEP 组件是接收并处理多个事件的事件使用者,这些事件通常具有不同的类型并来自不同的事件源。如前所述,CEP 采用各种技术来查找业务事件数据中的模式,并帮助在企业中实现操作业务智能。CEP 组件还是生成事件(通常是确定所检测到的模式的高级事件)的事件生产者。订阅这些事件的其他事件使用者通过各自的对应代理(适配器、代理或执行者)经由代理组件接收这些事件。


SOA 世界中的 PROBIT 体系结构

图 4 表示 PROBIT 体系结构的 SOA 视图。此体系结构将事件处理服务与 SOA 信息访问和分布体系结构 [5] 合并在一起。在此体系结构中,事件处理组件的大部分感测和执行由信息服务构成。例如,数据事件监视服务通过检测信息源中的更改并创建和发布事件,从而执行“传感器”功能。语义和逻辑服务可以根据需要帮助转换或变换事件对象。

图 4 所示的连接和互操作性服务构成了 ESB 并执行如图 3 所示的事件代理功能。可以使用诸如 Message Broker 或 WebSphere ESB 等 IBM ESB 产品实现此功能。

图 4. PROBIT SOA 体系结构
PROBIT SOA 体系结构

CEP 组件表示为事件处理服务的一部分。CEP 服务使用和处理事件,并产生新的更高级事件。可以使用 Business Events 实现此功能。但是,Business Events 支持的仪表板功能在能力方面非常有限。对于高级仪表板和业务活动监视(如图 4 所示),您可以使用 Monitor。

可以使用 IBM Information Server 及其工具开发如图 4 所示的信息服务。有些语义和逻辑数据转换服务可以使用 WebSphere Transformation Extender 来实现。其他需要与诸如 SAP 或 CRM Siebel 等企业应用程序集成的服务很容易使用 IBM WebSphere Adapter 产品来进行开发。

下一个部分将更详细地描述用于实现 PROBIT 体系结构的 IBM 产品。


使用 IBM 产品实现 PROBIT 体系结构

我们采用来实现 PROBIT 框架解决方案体系结构的方法使用了各种 IBM 产品,包括 Business Events、Monitor 和 Message Broker。要全面实现如图 3 和图 4 所示的各个 PROBIT 体系结构组件,您可以使用以下 IBM 产品:

PROBIT 组件用于实现该组件的 IBM 产品
事件处理服务和 CEP 组件可以将 Business Events 用作关联引擎或运行时,以便确定多个不同事件之间的交互模式。可以使用 Business Events 构建时环境创建交互集或事件关联规则。Business Events 通过提供轻松处理业务流程活动上下文(即其存在与否、计时、顺序以及与其他活动的关系)的能力,从而支持复杂业务流程。Business Events 为完整的 CEP 支持提供了基础。
业务活动监视——仪表板警报和通知Monitor 是全面的业务活动监视(business activity monitoring,BAM)软件,为用户提供了业务流程和操作的实时端到端视图。Monitor 提供了可自定义的业务仪表板,可以计算和显示关键性能指标(key performance indicator,KPI),以及从业务流程、业务活动数据和来自广泛信息源的业务事件中得出的度量。业务用户可以通过各种途径查看这些 KPI、度量和警报,包括轻量级 Web 界面、诸如 Blackberry 设备和 iPhone 等智能电话、公司门户以及桌面。使用 Monitor,业务用户可以在尽量不涉及 IT 的情况下设置和管理警报。

Monitor 不仅是 Business Events 所处理的事件的仪表板可视化,而且还提供了事件处理功能,这些功能支持对业务活动的认识,并且能够检测与业务执行状况有关的业务情况。

连接/代理组件Message Broker 是功能强大的信息代理,允许消息形式的业务数据和信息在不同应用程序之间以及跨越多种硬件和软件平台流动。可以对流经 Message Broker 的数据应用规则,以便路由、存储、检索和转换信息。Message Broker 提供了通用连接,包括 Web 服务,以及任意类型到任意类型的数据转换。Monitor 是 IBM 提供的 ESB 产品之一。

用例:管理 IBM 中的 NPA 业务流程

IBM 定期向客户和业务合作伙伴提供产品和价格数据(目录)。当前创建、更新和发布产品及价格信息的流程非常复杂,在企业中的应用程序之间高度分散。当前流程依赖信息流中多个数据点的同步才能提供正确的数据。所提供的信息从多个分布在整个企业中的不同来源收集而来。相同的信息经常由不同的应用程序在不同的时间输入(多重数据输入),从而导致数据不一致。为了使流程取得成功,必须在信息流中的正确时间提供正确的信息。否则,流程管理的及时信息不会及时到达客户和业务合作伙伴。客户和合作伙伴在没有接收到所需信息时发起问题报告。例如,业务合作伙伴可能抱怨 EDI 零部件价格文件中缺少产品 X。

问题确定非常困难并且非常耗时。它涉及到多个团队和技能集。当某个地方出错时,在流中追溯以确定何时及何处发生错误将非常复杂和耗时。此外,为了满足新项目和活动的需求,修改当前流程和环境的数据流以及确保数据流得到正确设置和正确同步将非常困难、代价很高并且非常耗时。

当您在企业转换活动中修改数据流时,确保正确设置和同步数据的过程非常复杂,并且会影响您满足成本和时间表的能力,对于系统集成测试(System Integration Test,SIT)来说尤其是如此。拥有不仅可以在问题出现时帮助确定问题,而且可以在数据错误影响客户之前帮助确定数据错误的工具,这将是非常有利的。这样的工具将对业务产生积极的影响。此外,在测试前确保数据设置的完整性和正确性可以避免由于数据错误导致的测试失败,从而降低测试成本。

除了捕获和监视当前事件以外,此解决方案还通过捕获过去的 NPA 的历史记录视图,从而提供了报告统计数据的方法。


参考实现:

本系列的第 2 部分将提供实现用于管理 IBM NPA 的解决方案的深入详细信息。该参考实现将让您了解如何捕获多个系统中的事件,并对它们进行关联以产生复杂事件场景。第 2 部分还将讨论如何将 Business Events 与 Message Broker 集成以提供基于内容的筛选,以及与 Monitor 集成以实现高级仪表板和警报机制。

图 5 显示了该参考实现中实现的组件。

图 5. 参考实现
参考实现

总结

在本文中,我们使用来自 IBM 的实际场景强调了对支持 CEP 以实现实时企业的框架的需要。我们为您提供了 CEP 以及实时操作业务智能需要的概述,并描述了预测性实时操作业务智能工具 (PROBIT) 的体系结构。PROBIT 支持实时企业,这样的企业能够实时识别出现的情况、在威胁出现之前预测和响应威胁,以及发现和利用机会。此框架的核心是提供事件处理引擎的 WebSphere Business Events,以及提供丰富仪表板的 WebSphere Business Monitor。

在本系列的第 2 部分中,您将了解如何实现事件处理解决方案来管理 IBM NPA。您还将了解如何将 WebSphere Business Events 与 WebSphere Message Broker 集成以提供基于内容的筛选,以及与 WebSphere Business Monitor 集成以实现高级仪表板和警报机制。

参考资料

条评论

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=WebSphere, SOA and web services
ArticleID=375143
ArticleTitle=使用复杂事件处理实现实时企业,第 1 部分: 来自 IBM 的实际企业场景将向您展示如何实现
publish-date=03192009