使用 Oracle WebCenter、Oracle Coherence 和 Oracle Business Activity Monitoring 实现集成的实时智能

作者:Mark Farabaugh、Sri Ayyeppen 和 Harish Gaur


提供对关键数据的下一代访问。


Oracle 融合中间件模式文章系列的一部分。

2010 年 3 月发布

下载:
  Oracle Fusion Middleware

简介

应用程序用户从未像现在这样需要实时智能作为用户体验的一部分,并且希望能够随时随地无需搜索即可实时访问各种汇总信息和关键绩效指标 (KPI)。一位处理事务的银行柜员在面对客户时通常需要该客户的实时智能信息。如果没有这种信息,则该柜员无法就储蓄或更改投资方式提供合理建议,也无法根据新信息建议可采取的行动。这意味着失去交叉销售和追加销售新产品和新服务的机会。如果这位银行柜员具有现行的共同基金利率、客户的投资方式以及客户投资健康状况的实时智能信息,他就能够(比如说)建议该客户短期内将资金从一个低利率的账户转移到一个表现更好的货币市场账户。

然而,仅有智能是不够的。一旦收集到智能信息,要解决的下一个问题是可访问性。用户如何能够访问此关键数据?传统上有许多方法可以采用,包括打印纸质报表。

传统应用程序总是将数据输入或数据管理功能与报告和分析功能相分离。这两种功能分别由两个不同的应用程序、两个不同的信息门户或两种不同的技术来处理。

我们想象一下 Enterprise 2.0 (E2.0) 的世界,其中每位信息工作者都被赋予了决策能力,从而预先消除了主要瓶颈问题。在这里,宝贵的点滴信息被视作黄金,用户无论何时何地需要这些信息都可以获得。那为何不这样对待对业务来说十分关键的分析信息呢?用户一直需要这些宝贵的历史或实时业务智能 (BI) 信息来帮助他们更好地创建和管理事务。

通过结合使用 BI 和 E2.0,我们能够将信息管理和分析组合到同一上下文环境和事务中。在本文中,我们将组成一个具有上下文实时业务洞察力的参考架构。我们将以 DJO(一家提供高质量整形外科设备的全球领先供应商)为例,通过一个真实的示例来说明如何使用 Oracle WebCenter、Oracle Business Activity Monitoring 和 Oracle Coherence 来实现这一目标。

了解实时智能

那么,什么是实时 BI?为了了解什么是实时 BI,我们先来了解一个企业内三种不同类型的 BI:

  • 历史智能。经过数年或数月的时间汇集起来的信息,一般保存在数据仓库环境中。以数分钟或数小时的时间运行报告,以便通过收集大量数据产生深入的智能。
  • 近乎实时的智能。最近几周或几天汇集起来的数据,一般保存在事务数据库中。该信息由关闭事务应用程序的报告工具生成。
  • 实时智能通过最近几天或几小时的数据汇集而成的信息,一般保存在内存中以便快速访问。该信息由分析引擎生成,具有短期的重要性或相关性。

对实时智能的需要变得日益迫切,这是因为传统的企业资源计划应用程序和自己开发的门户最关注的只是能够创建订单、管理客户信息、更新财务信息等事务。事务被视为数据管理重点的时代已经过去了。您必须将流程作为一个整体来看待。在事务过程中更新客户和财务信息时创建订单的能力十分重要。企业正在帮助用户成长为流程中的决策者,从而避免多步骤的事务流程。随着越来越多的企业采用这种做法,实时智能成为所有决策流程的关键。

构建一个上下文相关的实时 BI 应用程序需要结合使用以下四种关键技术:Web 2.0 框架、业务活动监视 (BAM)、网格缓存和面向服务的架构 (SOA),如图 1 所示。

图 1:一个实时 BI 应用程序的构建块。
  • Web 2.0 门户。此门户提供内容、呈现和社交网络功能以产生高度交互的用户体验。最终用户将使用此门户深入洞察实时业务活动。
  • 业务活动监视。该技术使应用程序能够捕获业务活动过程中的重要事件。这些事件经过汇集、分析之后,通过一个 Web 2.0 门户以易于理解的 KPI 的形式呈现。要知道 BAM 不同于 BI 使用的信息板。BI 提供历史智能,而 BAM 实时或近乎实时地处理事件。
  • 网格缓存。数据网格缓存技术通过将非动态事件在内存中进行缓存来提高应用程序的性能。这使得 Web 2.0 门户在获取相对静态的数据时不必与 BAM/SOA 层进行对话,从而可提供极佳的性能和可伸缩性。
  • 面向服务的架构.这一层与 BAM 层一起为事件驱动式架构提供了一个平台。SOA 负责通过集成各种企业应用程序来编排关键业务流程。在流程执行过程中,BAM 层可捕获触发的事件,或者因传入的事件而触发的触发器可激活服务。SOA 和 BAM 的集成一般通过 Java 消息服务 (JMS) 来进行。

在下一节中,我们将组成一个参考架构,并提供一个方法来构建一个上下文相关的实时智能应用程序。

参考架构

如前所述,该应用程序需要集成 Web 2.0 门户、SOA、BAM 和一个网格缓存解决方案(图 2)。

图 2:实时 BI 架构。

处理过程包括六个步骤:
  1. 事件生成和流程编排。通过一个松散耦合的编排流程对所有需要分析的流程活动进行建模。这有助于在需要的时候高效地更改模式以及任何作为应用程序事件的一部分捕获的信息。Oracle BPEL Process Manager (PM) 允许用户建立基于标准的 (BPEL) 业务流程模型,因此可帮助完成此工作。利用 Oracle BPEL PM,分析人员可以添加活动传感器来监视 BPEL 流程中活动的执行,或者添加错误传感器以捕获任何失败。在这一步中,流程编排层生成各种事件,这些事件通过 JMS 或类似的中介和企业服务总线 (ESB) 进行传递。
  2. 事件检测和接收。JMS 总线提供了一个将事件通过流程传入 BAM 引擎的途径。JMS 消息传递队列允许多个端点系统使用业务生成的事件。
  3. 处理和筛选。所有捕获的事件都要经过筛选、相互关联和分析,以估量它们对关键 KPI 和服务级别协议 (SLA) 的影响。任何新的相关信息都将通报给最终用户。在用户查看活动报告的同时,BAM 引擎不断地更新该活动报告。这些更新不断进行,直至用户关闭该报告。
  4. 实时可用性。BAM 引擎通常附带一个内置的数据缓存。然而,对于大型企业解决方案,可能无法在速度和可伸缩性之间进行权衡取舍。在这种情况下,内存中数据缓存解决方案可显著提升应用程序性能。在这一步中,根据数据更改的频率对数据网格缓存进行刷新,来自 Web 2.0 门户的后续请求由缓存进行处理。Oracle Coherence 通过内存中数据网格层提供此功能,最多可缓存 1TB 的数据。此方法不但能够提升应用程序性能,还可以降低应用程序对硬件的依附性。
  5. 表示和可视化。在这一步中,将向用户展示具有强大视觉冲击力的信息。开发人员可以使用声明式框架建立动态数据对象的模型以捕获底层智能信息。Oracle 应用开发框架数据可视化 (ADF DVT) 组件是一组丰富的交互式 Oracle ADF Faces 组件,为数据显示和分析提供了重要的图形化和表格化功能。
  6. 用户交互和个性化。Web 2.0 门户 (Oracle WebCenter) 允许用户将各种信息汇集到个性化信息板中。BAM 图表、业务流程中的工作流活动、用于调整 KPI 的界面以及定义规则和筛选器的功能全部集中在一个屏幕上。通过提供额外的集成和运行时定制选项,直接赋予最终用户控制能力,使他们能按自己希望的方式划分和分析数据。

图 3 突出显示了所有六个步骤。

图 3:实现实时 BI 的六个步骤。


至此,我们回顾了这个参考架构和构建这样的应用程序的六个步骤,下面我们将重点讨论 DJO Global 公司一个类似应用程序的真实实现。

在 DJO 构建一个实时呼叫中心应用程序

DJ Orthopedics (DJO) 总部位于加利福尼亚州维斯塔,设计、生产和分销一系列技术先进的产品和服务用于急慢性整形外科和脊柱类疾病的预防、治疗和康复。作为其赔付业务的一部分,DJO 运行呼叫中心来处理全美所有地区的私人和政府医疗保险索赔事务。呼叫中心还为患者提供医疗保健设备,处理保险公司的索赔事务。诊所和患者在其索赔过程中提供关键医疗信息。呼叫中心与医疗保险提供商通过电子数据交互 (EDI) 事务来进行交互。

有关客户和订单的信息通过自定义的数据库、第三方系统和 Oracle E-Business Suite 发布。然而,在这种配置下,呼叫中心代理无权访问实时汇集的客户信息。

进行索赔处理工作的代理必须实时查看与特定索赔有关的每日或每周的呼叫活动。呼叫中心管理员需要实时预测信息和负载分布信息以处理索赔、判定趋势并实时处理现金流。

为了提供对必要信息的访问,DJO 决定构建一个实时 BI 应用程序,该应用程序支持呼叫中心用户交互并显示有关以下内容的实时信息:

  • 呼叫活动
  • 订单活动
  • 财务活动
  • 个人产能目标

架构

DJO Global 选择结合使用 Oracle ADF、Oracle Coherence、Oracle BPEL PM 和 Oracle BAM 来构建这个解决方案(参见图 4),以 Oracle E-Business Suite 为核心来提供所有流程,包括订单管理、合同管理、完成、发货、财务以及订单到现金。

图 4:呼叫中心实时洞察应用程序。

我们来使用票据对帐 DJO 用例了解一下该架构的这些组成部分。DJO 按保险提供商组织所有患者索赔事务,并将索赔票据发送给保险公司以获得赔付。通过 Oracle SOA Suite 由业务到业务的流程支持这些外部事务。保险公司直接支付给银行,银行向 DJO 回送 EDI 文件,内含支付说明信息。须将此信息与发送给保险公司的源信息进行对账,以确认并结束已支付的记录。如果对不上账,则 DJO 对由于各种原因未支付的记录进行处理。

在有些情况下,过去几个月的待处理事务可能仍在等待支付。收到新文件或裁定新索赔时需要实时智能信息。需要能够实时查看到当天已处理的记录数、已发送等待赔付的总记录数、已收到的总付款以及待处理的对账。

作为此对账过程的一部分,包括以下多个步骤:

  1. 获取原始源记录。
  2. 将源记录发送给保险公司。
  3. 收到新的付款并进行对账。
  4. 将代理需要处理并与患者一起完成的索赔事务通知给代理。
  5. 如果由保险公司支付,需要在 AR 中填写信息并应对收据进行确认。

因此,需要一个呼叫中心代理和票据代理均可查看的实时信息板,以便进行协作、处理和调整。

设计目标 解决方案的方法
呼叫中心代理和票据代理需要视觉丰富的信息板以便查看票据和订单活动。 利用 Oracle ADF DVT 进行显示
在请求时应立即能得到对账信息(预期为每秒 1000 个事务)。 Oracle Coherence 作为内存中数据网格来收集和显示数据。
一旦得到新的对账信息,应立即更新信息板。代理应能对各种格式(图表、图形)的数据进行分析。 Oracle BAM
集成订单和票据数据的流程应自动进行。流程和策略应能轻松适应新的医疗监管规则。 使用作为 Oracle SOA Suite 的一部分由 Oracle BPEL PM 管理的 BPEL 引擎。

现在我们了解了所有这些部分如何一起构成了票据对账用例环境,下面我们来逐步了解上面概要介绍的六个步骤。

  1. 事件生成和流程编排
    一旦收到新的票据对账数据,Oracle E-Business Suite 就触发新事件。许多 Oracle E-Business Suite 产品使用 Oracle Workflow Business Event System 进行业务流程集成。尽管这不是在业务流程中集成 Oracle E-Business Suite 的唯一可用方法,但它确实能使 ESB BPEL 流程成为使用标准 Oracle E-Business Suite 功能的事件驱动的流程。

    Oracle E-Business Suite 将实时数据传递给“票据监视”BPEL 流程。在 Oracle E-Business Suite 中作为数据验证模板创建一个票据模式(XML 模式定义,即 XSD)。

    图 5:用于验证的票据模式 (XSD)。


    Oracle E-Business Suite 事件利用该票据 XSD 将数据传递给票据监视 BPEL 流程进行编排。
  2. 事件检测和接收
    票据监视 BPEL 流程接收来自 Oracle E-Business Suite 的票据对账数据,充实该数据,然后将其发送到 BAM 层。图 6 和图 7 提供了票据监视流程的两个视图。图 6 是该 BPEL 流程的服务组件架构 (SCA) 视图,图 7 是该流程的传统视图,显示了该流程如何转换数据并将数据发送到 BAM。

    图 6:指明将信息编排发送给 BAM 的 BPEL 流程的 SCA。

    图 7:BPEL 编排以进行数据转换和存储。
  3. 在本例中,Oracle BPEL PM 使用 Oracle BAM Web 服务与 Oracle BAM 集成。另一种方法是通过 JMS 总线发送信息。利用 Oracle BAM Web 服务,用户可以构建将数据发布到 Oracle BAM 服务器以供实时图表和信息板使用的应用程序。任何可与标准 Web 服务进行对话的客户端均可使用这些 API 将数据发布到 Oracle BAM。

    在本例中,可以使用 Oracle BAM Web 服务(使用 ICommand Web 服务)访问 Oracle BAM 服务器中的数据对象。如图 8 所示,配置了一个 ICommand Web 服务伙伴链接。
  4. 图 8:对 BAM 的示例 iCommand 服务配置。
  5. 一旦 BPEL 将数据发布到 BAM 服务器,就会对数据进行处理和筛选。
  6. 处理和筛选
    Oracle BAM 接收来自 BPEL 流程的票据对账数据,然后在票据数据对象的帮助下,在 BAM 信息板中显示该数据。票据数据对象反映了在 BAM 中为显示、分析、报警等目的而捕获的业务数据。执行票据监视 BPEL 流程之后,通过一个 ICommand Web 服务调用来填充票据数据对象。在图 9 中,您可以看到该票据数据对象的定义以及填充的数据。
    图 9:BAM 中票据数据对象的定义。
  7. 可借助筛选器将数据限定为一个子集,从而只显示需要的业务信息。还可以使用筛选器定义一些 KPI 或 SLA,从而显示与这些条件相匹配(或不匹配)的内容。图 10 中对数据进行了筛选,从而在信息板中只显示一周前的票据对账数据。
  8. 图 10:用于显示一周前票据数据的筛选规则
  9. 一旦保存并筛选了数据,经过处理的信息就显示在 BAM 信息板中。对于如何建立图表并在信息板中显示数据,Oracle BAM Architect 流程将给予您相应的指导。
  10. 图 11:在 BAM 信息板中显示经过筛选的信息。
  11. 然而,对于票据代理和呼叫中心代理来说,仅有 BAM 信息板是不够的。代理们希望在与患者和保险公司打交道时能在自己的信息板中看到此信息。因此,下一步需要将此信息整合到总信息板中。
  12. 实时可用性
    下一步是在 Oracle Coherence 中缓存重要 BAM 数据,以便最终在 Oracle ADF 用户界面上显示该数据。我们来看看如何完成这一工作。

    一个定期调度执行的 BPEL 票据存储流程从 BAM 中检索数据并将数据传给 Oracle 数据库表(图 12)。
  13. 图 12:票据存储流程将票据数据保存在数据库中,最终由 Oracle Coherence 缓存该数据。
    票据存储 BPEL 流程使用 ICommand Web 服务将数据从 BAM 数据对象检索到一个 XML 文件。生成 Invoices.xml 文件之后,该流程使用文件适配器服务检索这个 XML 文件的内容。

    然后票据存储 BPEL 流程使用 XSL 转换来准备一个集合对象,其中包含 Invoices.xml 文件中的所有票据内容。最后,该流程通过传入生成的集合对象来调用一个 PL/SQL 过程。该 PL/SQL 过程将数据存储到 Invoices 数据库表中。它更新现有记录、创建新记录(如果记录不存在)。

    下一步是配置 Oracle Coherence 缓存以反映该应用程序的这个数据存储。通过在 Oracle JDeveloper 中配置该应用程序使之与 Oracle Coherence 集成。在 Oracle JDeveloper 中,我们通过工作区定义来引用 Oracle Coherence 缓存配置文件。
  14. 图 13:在 Oracle JDeveloper 中配置 Oracle Coherence。

    在该 ADF 应用程序的 Java 配置中添加以下几行代码:
    • Dtangosol.coherence.distributed.localstorage=false
    • Dtangosol.coherence.log.level=3
    • Dtangosol.coherence.cacheconfig=[ConfigLocation]\invoice-cache-config.xml

    使用这些配置代码,该信息现在可用于 Oracle ADF 模型层以便通过 ADF 视图组件显示出来。

    有关详细信息,请参见在 Oracle JDeveloper 中创建 Oracle Coherence 缓存
  15. 表示和可视化
    现在我们可以使用该缓存中的可用信息在一个 Web 应用程序中显示该信息了。

    为了增强在 Oracle Coherence 显示事件信息的可视化功能,我们使用作为 Oracle ADF 11g 的一部分的 Oracle ADF DVT 组件。Oracle ADF 中的 DVT 组件可用于构建数据的图形化表示,如条形图、计量器、甘特图和地图。DVT 组件的最大特点是声明式模型,通过该模型,可在 Oracle ADF 11g 中将缓存封装到作为模型-视图-控制器模式一部分的模型层中。该模型有助于视图对象保留从 Oracle Coherence 缓存中检索的实时数据。
  16. 图 14:Oracle Coherence 数据与 Oracle ADF 11g DVT 整合在一起,封装到一个任务流中。
  17. 这些图表封装到一个 ADF 任务流中作为一个门户或应用程序中可重用的用户界面组件。另外,还使任务流组件可供 Oracle WebCenter 的业务字典特性所使用。
  18. 用户交互和个性化
    现在我们来看看用户如何使用这些组件进行数据交互、个性化数据以及控制信息的显示。

    图 15 中的信息板显示了整个应用程序的视图。票据代理和呼叫中心代理得到了个性化的视图,视图中同时显示各种 KPI(工作列表、订单、患者详情、付款人、患者备注、医生详情)。其结果是一个集中的视图,其中包含客户信息并提供与这些客户进行有见解的讨论的机会。
  19. 图 15:Oracle ADF 11g 显示包括 BAM 图形(对于图形显示,只是示例数据)的信息板视图。

总结

通过结合使用 BI 和 E2.0,我们能够将信息管理和分析功能组合到同一上下文环境和事务中。该解决方案可以轻松地演化为一个复杂事件处理与在线分析处理相结合的架构,从而进一步扩展功能以充分利用业务智能。

.

致谢

非常感谢 Gana Duraiswamy 和 Sandeep Reddy(他们是 Keste 的解决方案领头人),他们构建并实现了该解决方案。


Mark Farabaugh Mark Farabaugh 是位于加利福尼亚州维斯塔的 DJO 公司的一位副总裁,领导 DJO 将所有传统 ERP 应用程序整合为单个 Oracle eBS R12 全局实例的多年计划。Mark 作为一位 IT 专家拥有 20 多年的经验,曾致力于为大型跨国公司实现 ERP、BI、CRM、FP&A 之类的 Oracle 企业应用程序。
Sri Ayyeppen Sri Ayyeppen 是 Keste(Oracle 的一个白金合作伙伴)的创始人之一和 CTO,他是使用 Oracle 管理软件、技术和基础架构提供复杂解决方案的领先团队的负责人。Sri 最近成为 2010 年度 Oracle 副 CTO 之一。
Harish Gaur Harish Gaur 是 Oracle 融合中间件产品管理总监。在这一职位上,他与战略客户密切合作,使用 Oracle SOA 技术实现了面向服务的架构。Harish 与人联合编写了《The BPEL Cookbook》(由 Packt Press 出版)。
false ,,,,,,,,,,,,,,,,