文档介绍:2(上)-用BPM、业务规则和商业智能创建智能的、灵活的解决方案
简介
    这是对集成了业务流程管理(business process management,BPM)、业务规则(business rule)和商业智能(business intelligence)的随需应变场景进行探索的系列文章中的第二篇。本文主要关注将外部业务规则集成到业务流程中的这种集成,并考察在我们假想的公司 IFM 中如何将业务规则集成到业务流程。
    在上一篇文章(1、2)中,CIO Christina White 听说了业务流程管理技术的诸多好处,因此让她的一个架构师 Greg Thomas 进行调查研究。Greg 发现,不仅通过将业务流程从应用程序逻辑移出到 BPM 引擎中可以带来巨大的利益,而且将最易变的逻辑转移到业务规则引擎中可以提供更大的灵活性,甚至允许业务分析员访问规则。Christina 认为定价问题非常适合作为他们第一次实施这种技术时所处理的问题。
   本文主要关注在业务流程中规则的使用。首先我们简要地考察一下如何将外部数据源(例如规则引擎)与业务流程挂钩。然后我们将谈到一些特定的规则引擎,并展示如何分别使用这些规则引擎构造简单的定价规则。最后,我们再深入研究在本场景中用到的 WICS 组件,尤其是从业务流程中访问外部规则时用到的一些组件。
连接到业务流程
    Christina 和 Greg 很快就被说服为 BPM 使用 WICS,因为使用 WICS 把外部应用程序和数据源连接到业务逻辑做起来比较容易。WebSphere Business Integrator Adapter 技术使得连接外部源(external source)成为可能。通常将 WICS 描述为一种“hub-and-spoke(中心辐射型)”架构,以 WebSphere InterChange Server 作为中心(hub),以连接外部应用程序和数据源的适配器作为辐条(spoke)。
    很多遗留应用程序(例如 SAP)和数据源(例如文本文件、XML 和 JDBC)都可以使用 WBI Adapters。对于其他应用程序和数据源,可以编写定制的适配器。所有适配器都提供相同的基本功能:它们在 WICS 中业务流程所期望的格式与外部应用程序和数据源所要求的格式之间转换数据。
    如上图所示,WICS 业务流程逻辑操作业务对象(Business Objects),而适配器这个组件则负责在业务对象与特定应用程序所支持的任何格式之间转换数据。Greg 很快就认识到可以使用一个定制的适配器来连接规则引擎和 WICS 业务流程。他注意到,对于所有适配器,面向 WICS 的接口基本上是一样的,但是每个适配器在其面向应用程序的接口方面却有所不同。对于规则引擎,面向应用程序的接口可以编写成它所暴露的任何 API。
    WBI 提供了一个 Web 服务适配器,这种适配器可以把 WICS 业务流程连接到 Web 服务。在编写了必要的 Web 服务接口之后,可以非常容易地结合带有 Web 服务支持的规则引擎(例如 ILOG JRules)以及其他规则引擎来使用这种适配器。
了解规则
    本系列的前一篇文章介绍了各种不同的规则引擎。其中提到的规则处理器类型包括简单型(simple)、数据中心型(data-centric)和面向事务型(transaction-oriented)。规则有很多种。在感知并响应(sense-and-respond )规则引擎(Tivoli TEC)中,规则被指定作为对事件的响应。说明性(declarative)规则指定有何事发生,这与程序性(procedural)规则不同,后者指定“事情是如何发生的”。说明性规则表现了判定逻辑(decision-logic)规则引擎(Blaze、JRules 和 BRBeans)的特点。约束和关系规则在以数据为中心的事务性规则引擎(Versata)中占主导地位。解决方案空间(solution-space)约束规则在那些基于约束标准(JRules)从备选方案中计算出“最适合”结果的引擎中得以使用。Greg 只关注三种规则引擎:Versata、BRBeans 和 ILOG JRules。
    Versata Logic Server 是 Versata 公司的产品。这里考虑的其他规则引擎都是“判定逻辑”规则引擎。与此相反,Versata 支持事务逻辑,并且是面向数据操作的。Versata 有一个功能完备的开发环境,但是没有基于 Web 的工具来修改规则。Versata 经常在由基于事务的和基于流程的规则逻辑组成的数据为中心的 Java 应用程序以及 Web 或应用程序 GUI 表示层