整合 WebSphere ILOG JRules 与 IBM Content Manager Enterprise Edition
简介:?自动决策在内容管理系统中变得越来越重要。核心应用逻辑中的外化决策逻辑能够根据动态的业务需求管理和快速修改业务规则。IBM WebSphere ILOG JRules 是一个业务规则管理系统(BRMS),它有许多制作、部署和管理业务规则的功能,管理者可以通过它更好、更快地作出决策。IBM WebSphere ILOG JRules 和 IBM Content Manager Enterprise Edition 的整合扩大了内容管理解决方案在一个组织中更有效管理业务决策的范围。
本文首先阐述了整合 IBM Content Manager Enterprise Edition 与 IBM WebSphere ILOG JRules 的方法。然后概述了事件框架,简单介绍了 ILOG JRules 业务规则管理系统,本文使用一个贷款场景来说明如何开发一个定制的事件处理器从而将 ILOG JRules 整合到一个内容管理应用中。
?
如上图所示,事件框架实现了 3 个主要功能:
事件订阅允许用户确定一个项目类型和与该项目相关联的事件。在事件订阅过程中,事件订阅数据存储在 Content Manager 库服务器数据库的配置表中。配置数据是通过使用 Content Manager 系统管理客户端配置的。管理员订阅这些事件,然后通过监控这些事件了解一个具体项目类型及其属性。事件监控会在事件发生时记录这些事件,生成事件消息,然后消息被发送到一个 Java Message Service (JMS) 消息队列。事件监控专注于生成事件消息。通过使用 Content Manager 的 Java? 和 C++ API 接口,应用就能够与库服务器进行交互,并将生成的数据保存到数据库中。库服务器会在事件发生时根据配置记录这些事件。所记录的事件会被记录到库服务器数据库的一个事件队列表中。一个事件包含事件类型、事件 ID、项目信息和属性数据。事件监视器能根据配置数据从事件队列表取出事件数据,将事件转换成 JMS 消息,然后将 JMS 消息放回到一个 JMS 事件队列中。事件处理从 JMS 队列查询事件消息,然后基于业务逻辑处理这些消息。事件处理专注于事件消息使用。事件处理器会从 JMS 队列读取包含事件数据的 JMS 消息。事件处理器能够将应用逻辑整合到 Content Manager 文档属性中。处理整合的事件处理器是由支持 FileNet Business Process Manager 的 Content Manager 提供的,但是如果要整合其他应用,您必须开发定制的事件处理器。如上图所示,ILOG JRules 组件分成了 3 个方面:
Rule Studio 是一个支持业务规则应用开发的基于 Eclipse 的集成开发环境。应用开发人员可以利用 Eclipse 集成环境开发 Java 项目和规则项目。当开发一个业务规则项目时,开发人员需要规定初始规则,设计规则模板和通过文件夹管理和组织规则。通过使用 Decision Validation Services,开发人员就能够根据验证和故障修复场景测试这些规则。 Rule Team Server 是一个基于 Web 的规则管理和授权环境,它允许业务用户查看、创建和修改规则。业务分析人员可以在应用开发过程中和开发完成后使用 Rule Team Server 编写和维护业务规则。通过 Rule Studio,开发人员将规则项目发布到 Rule Team Server,然后周期性地同步业务用户成果和 Rule Studio 的副本。Rule Execution Server 能够让管理员访问他们需要监控的已部署规则集,管理决策服务和执行审计。Rule Execution Server 是一个规则执行环境(Java SE 和 Java EE),它与规则引擎交互。Rule Execution Server 具备处理管理、性能、安全性和与业务规则执行相关的日志功能。RuleApp 是 Rule Execution Server 规定的格式。它包含了规则集,并且打包在一个 JAR 文件中的,其中包含了执行所需要的所有东西(规则、规则流等)。规则集既可以部署在 Rule Studio 也可以部署在 Rule Team Server 上。如图 4 所示,我们定义了三个操作列表(SubmittedWL、ApprovedWL 和 RejectedWL),它们将监控各个操作区的工作项。
图 4. 贷款申请过程的操作列表
Content Manager 中定义了贷款申请处理的 Loan 项目类型。 如图 5 所示,它由以下属性组成:
LoanNumber — 贷款的唯一标识符 LastName — 贷款人的姓 FirstName — 贷款人的名字 CreditScore — 贷款人信用评分 YearlyIncome — 贷款人的年收入 LoanAmount — 贷款额 InterestRate — 贷款利率 Duration — 贷款期限 Notification — 通知接收人的电子邮件地址
图 5. Loan 项目类型
Library Server Configuration 对话框(图 6)中的 Enable Event Subscription 复选框必须选中,以便激活一个库服务器实例的事件日志功能。在项目类型级别,图 7 显示一个项目类型 Loan 的事件订阅例子。这个项目类型所订阅的事件是 Add Item 和 Update Item 事件。当管理员单击 Event Subscription 页面的 Add 按钮时,页面就会显示一个 Define Event Subscription 对话框。管理员也可以选择 General integration 选项,因为这个场景是与一个通用外部应用有关的。这个 Loan 项目类型的所有文档属性都会被选中,以便在 Add Item 和 Update Item 事件中进行监控。
图 6. Library Server Configuration
图 7. 事件订阅
本文的重点是整合 ILOG JRules 和 Content Manager,以及一个贷款例子的业务规则。这个贷款例子来自于 IBM WebSphere ILOG JRules 信息中心(见 参考资料 中的信息中心链接)的“Getting started”小节。
图 8 显示了贷款例子所使用的两组业务规则:
合格标准 最小信用评分 — 保证信用评分不小于 200。最小收入 — 保证满足最小年收入要求。还款和信用评分对比 — 保证贷款-收入比例和信用评分都是可接受的。验证 最大贷款数额 — 保证最大贷款数额不超过 $1,000,000。在图中,ILOG Rule Team Server 的 Explore 选项卡中显示了两组规则。对于本场景,业务规则是通过 Rule Studio 发布到 Rule Team Server 的,并且它们是以一个规则归档文件(jar 格式)部署的。Rule Execution Server 是一个规则运行环境。为了简单起见,我们选择了 Java SE 规则会话类型,并且在一个规则会话中嵌入 Java SE 运行单元。
图 8. ILOG JRules 业务规则
图 9 说明了一个业务规则是如何表示的。它在 Rule Team Server 的 Compose 选项卡中显示了最小信用评分业务规则的内容。这个规则规定如果借款人的信用评分小于 200,贷款申请就会被拒绝。
图 9. 最小信用评分
?
下面概括了一个贷款申请场景在整合体系架构中是如何流转的。
贷款代理人在 Content Manager 中创建一个项目类型 Loan 的贷款申请文档。 当贷款申请文档创建之后,Content Manager 服务器会自动启动一个贷款申请过程实例。这个贷款申请会进入 SubmitLoan 操作区等待评估。 管理员配置 Loan 项目类型监控文档创建和修改分别对应的一个 Add Item 事件或 Update Item 事件。因此,库服务器会插入一个事件数据到事件队列表中。这个事件数据包括了诸如贷款号、贷款数额和通知等属性。 事件监视器会扫描事件队列表查找提交的记录,然后查询贷款文档的 Add Item 或 Update Item 事件。这个事件监视器能将配置信息和从事件队列表所查询的事件数据转换到一个自解释的通用基础事件(CBE)格式事件消息中。然后它会将这个事件消息发送给 一个 Java Message Service (JMS) 队列。 有一个定制的事件处理器负责监听 JMS 队列,它可以从队列查询文档创建事件和修改事件。这个事件处理器会解析 CBE 格式的事件数据,然后将贷款信息封装到请求中并发送到 ILOG JRules 规则引擎进行评估。 当接收到请求时,ILOG JRules 规则引擎就会执行这些业务规则,然后返回贷款申请的评估结果。 在接收到 ILOG JRules 规则引擎返回的响应后,事件处理器会将贷款申请转发到贷款申请过程中的正确的操作区(Approved 或 Rejected),同时发送一个电子邮件到通知列表中的接收人。?
?
当贷款代理人为他的客户提交了一个贷款申请后,这个提交操作会自动创建一个事件,这个事件会触发定制的事件处理器来处理这个申请。图 12 描述一个完整的输入界面,其中贷款代理人可以输入以下信息:
贷款号: 01-234-5678-8姓: Doe名: John信用评分: 310年收入: 30000贷款数额: 500000利率: 0.05期限: 240通知: user@host.com
图 12. 贷款申请信息
在这个特殊的案例中,根据 ILOG JRules 规则引擎的评估响应,这个贷款申请被拒绝了,因为:
与信用评分相比,债务-收入太高债务-收入比例太大结果,定制的事件处理器会将贷款申请从 SubmitLoan 操作区移到 Rejected 操作区。图 13 显示 RejectedWL 工作列表现在包含了这个贷款的贷款申请信息。
图 13. RejectedWL 工作列表
图 14 是一个事件通知例子,在这里它是由定制的事件处理器发送的电子邮件。这个事件通知包含了下面的信息:
事件信息,如主机名、数据库、事件类型、消息 ID 和项目类型贷款信息,如贷款号、姓、名、信用评分、年收入、贷款数额、利率和期限带有评估详细信息的审批状态
图 14. 电子邮件通知
?
描述名字大小下载方法本文样例程序myEventHandler.zip10KBHTTP
?
参考资料
学习
WebSphere ILOG Business Rule Management Systems (BRMS) 最佳实践在线研讨会系列:了解更多关于业务规则管理的信息。WebSphere ILOG Business Rule Management Systems 论坛
了解更多关于 WebSphere ILOG JRules的信息。
参考 IBMWebSphere ILOG JRules 信息中心 中详细的 WebSphere ILOG JRules 文档。
“使用 Web Services 整合 IBM FileNet P8 BPM 和 IBM WebSphere ILOG JRules”(developerWorks,2010 年 5 月):了解如何同时管理业务规则和业务过程。
在 developerWorks 的 ECM 专区,获取提高您的 IBM Enterprise Content Management 产品技能的资源。
浏览 技术书店,寻找关于这些或其他主题的图书。
?
原文:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-1005ilogjrulescontentmanager/index.html?ca=drs-
?
?
?
?
?
?
?