首页 / 软件开发 / 数据结构与算法 / ILOG JRules规则集应用与客户端的集成
ILOG JRules规则集应用与客户端的集成2010-10-28 IBM 王增光 信天骄 黄若波本文首先介绍了所举实例中要应用的 ILOG JRules V7.0 架构中的主要部分及特性。其次,以设计和实现一个业务规则集应用的开发与集成场景举例,详述了业务规则应用的开发、部署和客户端对其调用的过程。重点讨论了规则应用程序中的执行对象模型 (XOM) 的 Java 设计方式以及此种方式给规则的编写和执行带来的好处,并在最后给出一种基于 Web 服务调用方式的部署在 Rule Execution Server 环境下的规则集与客户机的集成方案和实现过程。简介通常情况下,如果企业的业务策略在应用程序中实现的时候,随着业务的发展和策略的不断变化,这种实现方式就会变得越来越复杂、缺少灵活性而造成无法做出快速的反应。而业务规则管理系统 (Business Rule Management System ,BRMS) 的出现,对于应用程序的开发者和业务用户来讲,则提供一种对业务策略的管理更加有效的解决方案。应用业务规则管理系统,开发者和架构师可以在独立于应用逻辑之外去管理业务逻辑,允许业务用户独立于企业的 IT 部门去管理业务策略。与此同时,像 SOA 这样的 IT 架构的出现,使业务逻辑可以在业务规则管理系统中封装成供应用程序和业务流程调用的规则服务。IBM ILOG JRules 就是一个很好的允许业务人员和 IT 开发人员使用的业务规则管理系统,它可以提高业务发展,使业务策略自动化。在对规则集调用的过程中,根据 XOM 和设计需求,可以采用 POJO、EJB、JMS、Web 服务等调用方式。本文结合场景实例提出了一种基于 Web 服务的调用实现方式,同时,在 ILOG JRules V7.0 的使用指南文档中,也介绍了一种用 JAX-WS 2.1.1 将规则集部署为决策服务的调用方式,如感兴趣,请参见指南 Integrating into an enterprise application部分。本文给出的方案中选用 Axis 创建调用规则集的 Web 服务,调用过程效率高、响应快,编程更加方便、灵活,且能满足 SOA 的架构要求。本文应用 ILOG JRules 架构的主要部分及特性ILOG JRules V7.0 通过一组创新模块来创建、管理和部署业务规则,从而实现完善的性能。ILOG JRules Rule Studio: 适用于规则应用程序的集成开发环境 (IDE) 。Rule Studio 直接针对 IDE 的 Eclipse 系列,其中包括 Eclipse IDE。Rule Studio 支持对 ILOG JRules Rule Execution Server 进行规则集调试和部署,还可以通过 Rule Team Server 实现业务规则的编写者之间的协作。ILOG JRules Execution Server: 是一个稳定的与 J2SE 和 J2EE 兼容的可管理的规则执行环境,运行在 Web 服务器或应用程序服务器上。它将规则引擎打包作为一个 Java Connector Architecture(J2C) 资源适配器。Rule Execution Server 包括一个 Web 管理控制台,可以对部署在上面的规则集进行有效的版本控制和管理。Rule Execution Server 与 Rule Studio 和 Rule Team Server 完全集成,可以同时支持开发人员和策略管理者的业务规则部署。具有下列特性:易用性好:在集成了 Eclipse 的环境中工作,通过自动更正和“智能规则”轻松快速地使用与自然语言一致的规则语言编写规则;使用静态规则分析检测冲突和冗余;规则流的创建可以进行可视化的组装和拆分,并满足所设计的粒度要求;可独立于应用逻辑对业务规则应用程序进行快速部署和调试;管理方便:通过基于权限的规则访问向业务人员提供控制权的同时,维护应用程序完整性;通过测试、共同调试和重构进行反复开发;使用单一界面和规则库管理代码和规则;同时应对多个发布周期,在准备下一个产品发布的同时维护仍在进行的产品发布;可控性:通过受控的执行过程来报告和监控规则;查看有关所有规则变更和部署地完整历史记录;业务规则应用场景描述在保险或金融等行业解决方案中,如员工的薪水计算或员工的升迁降职处理,都会根据员工的各项指标和企业管理条例来进行相应的计算和处理,这个过程中就要涉及到大量的业务策略或规则。本文将以员工薪水计算功能中的业务规则应用开发与集成场景为举例,不同的规则决定不同的薪水计算方式,但由于实际需求中,这些规则又是灵活多变的,因此,把薪水计算的规则提取出来并应用 ILOG JRules 使其在不影响应用程序代码性能的前提下进行独立地快速开发、调试、部署和管理,并以一种 Web 服务的调用方式对其与任意客户端进行集成,是一种非常好的解决方案。