ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:198.30KB ,
资源ID:7715926      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7715926.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ILOG JRules 规则集应用与客户端的集成.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ILOG JRules 规则集应用与客户端的集成.docx

1、ILOG JRules 规则集应用与客户端的集成ILOG JRules 规则集应用与客户端的集成 2010年10月11日 来源:ibm 作者:王增光 信天骄 黄若波 收藏本文 重点讨论了规则应用程序中的执行对象模型 (XOM) 的 Java 设计方式以及此种方式给规则的编写和执行带来的好处,并在最后给出一种基于 Web 服务调用方式的部署在 Rule Execution Server 环境下的规则集与客户机的集成方案和实现过程。 本文首先介绍了所举实例中要应用的 ILOG JRules V7.0 架构中的主要部分及特性。其次,以设计和实现一个业务规则集应用的开发与集成场景举例,详述了业务规则应

2、用的开发、部署和客户端对其调用的过程。重点讨论了规则应用程序中的执行对象模型 (XOM) 的 Java 设计方式以及此种方式给规则的编写和执行带来的好处,并在最后给出一种基于 Web 服务调用方式的部署在 Rule Execution Server 环境下的规则集与客户机的集成方案和实现过程。简介通常情况下,如果企业的业务策略在应用程序中实现的时候,随着业务的发展和策略的不断变化,这种实现方式就会变得越来越复杂、缺少灵活性而造成无法做出快速的反应。而业务规则管理系统 (Business Rule Management System ,BRMS) 的出现,对于应用程序的开发者和业务用户来讲,则提

3、供一种对业务策略的管理更加有效的解决方案。应用业务规则管理系统,开发者和架构师可以在独立于应用逻辑之外去管理业务逻辑,允许业务用户独立于企业的 IT 部门去管理业务策略。与此同时,像 SOA 这样的 IT 架构的出现,使业务逻辑可以在业务规则管理系统中封装成供应用程序和业务流程调用的规则服务。IBM ILOG JRules 就是一个很好的允许业务人员和 IT 开发人员使用的业务规则管理系统,它可以提高业务发展,使业务策略自动化。在对规则集调用的过程中,根据 XOM 和设计需求,可以采用 POJO、EJB、JMS、Web 服务等调用方式。本文结合场景实例提出了一种基于 Web 服务的调用实现方式

4、,同时,在 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: 适用于规

5、则应用程序的集成开发环境 (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

6、) 资源适配器。Rule Execution Server 包括一个 Web 管理控制台,可以对部署在上面的规则集进行有效的版本控制和管理。Rule Execution Server 与 Rule Studio 和 Rule Team Server 完全集成,可以同时支持开发人员和策略管理者的业务规则部署。具有下列特性:易用性好:在集成了 Eclipse 的环境中工作,通过自动更正和“智能规则”轻松快速地使用与自然语言一致的规则语言编写规则;使用静态规则分析检测冲突和冗余;规则流的创建可以进行可视化的组装和拆分,并满足所设计的粒度要求;可独立于应用逻辑对业务规则应用程序进行快速部署和调试;管理

7、方便:通过基于权限的规则访问向业务人员提供控制权的同时,维护应用程序完整性;通过测试、共同调试和重构进行反复开发;使用单一界面和规则库管理代码和规则;同时应对多个发布周期,在准备下一个产品发布的同时维护仍在进行的产品发布;可控性:通过受控的执行过程来报告和监控规则;查看有关所有规则变更和部署地完整历史记录;业务规则应用场景描述在保险或金融等行业解决方案中,如员工的薪水计算或员工的升迁降职处理,都会根据员工的各项指标和企业管理条例来进行相应的计算和处理,这个过程中就要涉及到大量的业务策略或规则。本文将以员工薪水计算功能中的业务规则应用开发与集成场景为举例,不同的规则决定不同的薪水计算方式,但由于

8、实际需求中,这些规则又是灵活多变的,因此,把薪水计算的规则提取出来并应用 ILOG JRules 使其在不影响应用程序代码性能的前提下进行独立地快速开发、调试、部署和管理,并以一种 Web 服务的调用方式对其与任意客户端进行集成,是一种非常好的解决方案执行对象模型 (XOM) 的设计执行对象模型是一种在规则被执行的过程中要基于的一种对象模型。业务规则通过业务对象模型 (BOM) 中的词汇和术语来编写,之后被 ILOG JRules 编译成 ILOG Rule Language(IRL) 语言,在规则的运行状态中,规则引擎可以访问 XOM 中的属性和方法。在 JRules 中,执行模型的实现方式

9、主要可分为二种,一种是 Java Classes,即 JAVA XOM;另一种是 XML Schema,即 Dynamic Classes。规则引擎访问 XOM 时依据 XOM 的实现方式而采用不同的访问方式。例如,若采用 JAVA XOM,则要将它打包到应用程序端中并随之一起部署,在运行的时候,应用程序的类加载器会使执行环境可以访问它。在不同的情况下,可以根据实际需求来选择 XOM 的设计和实现方式,但 Java 类的实现方式相比之下,更加易用,因为它不仅含有属性,而且类中定义的方法会给业务规则的设计和编写过程带来很大的方便和灵活性。因此,本文中设计 XOM 选择了 Java 类的实现方式,

10、通过自动解析 Java 类,用它的方法和属性来创建业务对象模型 (Business Object Model)。然后就可以通过业务对象模型中所包含的词汇术语来编写规则。清单 1 为执行对象模型的部分代码,即设计为一个 Java 类,其中类 Agent 的设计在本例中代表员工信息。该类也会定义为规则集的输入和输出参数,当它作为规则集的输入时,它的基本属性中包括了薪水计算规则用到的一些前提条件;在规则的执行过程中,它的一些属性会保存中间变量值;当计算规则执行结束后,它的一些属性值为代表薪水计算的各项结果并被保存,作为输出参数返回到客户端。此类中的方法的灵活之处在于它可以用来计算一些中间变量值或实现

11、一些较为复杂的计算过程等,以提供给业务规则执行时调用 ( 与 XSD Schema 方式相比作用较明显 )。清单 1. 设计执行对象模型部分代码示例PublicclassAgent/以下属性为计算的前提条件变量(部分)privateDateonboardDate;/入司日期private Stringrank;/职级private double performanceAmount;/业绩额private Boolean workState;/是否在职private StringrankHistory;/职位和时间历史记录private DatecomputationDate;/计算薪水的日期.

12、/以下为薪水计算规则执行过程中所需的中间变量(部分)public Boolean qualified=false;/是否有授予某项奖金资格public int onboardYearNum=-1;/入司年份public int onboardMonthNum=-1;/入司月public int onboardDayNum=-1;/入司日./以下属性为保存计算结果变量private double startupsSubsidy;/创业津贴private double quarterAward;/个人季度奖金private doubletotalAmount;/薪水总计额度*设计方法*/计算月平均

13、业绩额publicdoublecomputeMonthlyAmount().PublicdoublegetXXX()PublicdoublesetXXX().完成规则集开发、部署的其它主要步骤在本例中完成以上工作之后和对规则集的调用之前,还需要依次完成下列主要步骤:首先在 Rule Studio 中创建一个规则工程,在设计阶段导入 Java Excution Object Model,即 XOM。然后通过工具解析导入的 XOM 自动创建业务对象模型 (Business Object Model),至此,我们可以看到用来编写业务规则的词汇和术语。在接下来的业务规则的编写过程中,就可以定义规则分类

14、包,并应用 ILOG JRules 支持的三种自然语言、决策表或决策树的方式直观地对规则进行灵活快速地编写。定义规则集的输入和输出参数。在规则流 (ruleflow) 的设计过程中,一个规则集只能定义一个主规则流 (main flow task 属性为 true),它包含规则集执行的入口和出口,但一个规则集可以支持多个子规则流 (main flow task 属性为 false),每一个子规则流又是由执行起点和终点、一条或多条业务规则、判断分支等共同组成,而一个主规则流又可以根据业务规则需要由多个子规则流组装而成。这样的规则流的设计粒度就可以达到我们所要求的粒度,可以对主规则流进行灵活的拆分和

15、组装,非常灵活、方便快捷。在完成了上述的工作以后,就可以在 Rule Studio 工具中自动创建将规则集打包的规则应用工程 RuleApp,并把它实时部署到 Rule Execution Server 上,之后就可以通过规则路径去调用 RuleApp 中的 Ruleset,同时,通过 Web 权限管理控制台就可以对其进行有效管理。至此,在本例中已成功完成了业务规则集的开发和部署,也可以在 Rule Studio 中进行调试。业务规则应用与客户端的集成实现基于 Web 服务调用方式的业务规则应用与客户端的集成模型调用过程如图 1 所示:图 1. 客户端对 ILOG JRules 规则集调用集成

16、模型查看原图(大图)在本文给出的调用模型中,需要先将规则应用部署在运行在 Web 服务器中规则执行环境 Rule Execution Server 中。调用的实现过程中,主要先采用 POJO 会话方式对规则集进行本地调用,再将本地调用规则集的 Java 类利用 Axis 发布成 Web 服务,最后在应用程序客户端创建调用此规则服务的代码,即成功实现了以 Web 服务方式调用规则应用的目的,从而实现与客户端的良好集成,这种调用方式效率很高。由于先采用对规则集的本地调用,因此,需要将具有本地调用规则集功能的 Web 服务工程和规则执行环境 Rule Execution Server 部署在相同的

17、Web 服务器上。在可管理的规则执行环境 Rule Execution Server 中,规则引擎由 Execution Unit (XU) 来控制,而 Execution Unit(XU) 是一个资源适配器,它能够管理规则引擎,装载规则集,以及在应用程序和规则引擎之间传递数据。XU 处理规则集执行的低层细节,如池和多线程处理,并能提供对资源的访问和管理热部署。应用服务器或应用程序客户机使用 XU 连接规则引擎。创建调用规则集应用的 Web 服务工程下面给出具有本地调用规则集功能的 Web 服务的工程目录结构,如图 2 所示:图 2. 调用规则集的 WebService 工程文件目录结构图在本

18、例中,创建本地调用规则集的 Web 服务工程并将其命名为 IncomeService,从服务发布成功后的目录结构图中,可以清楚看到所需要和生成的各个主要文件。下面对一些重要的文件和代码进行给出示例和说明。创建本地调用规则集的核心类本例中调用规则集的核心类是一个 Java 类,例中名为:ComputeIncomeBean.java;它获得来自于客户调用服务时的输入参数,在成功调用并执行薪水计算规则集后,获得保存有计算结果的参数 Agent,并将其作为服务的输出参数返回给客户端。清单 2. 本地调用规则集的核心类源代码示例publicclassComputeIncomeBeanpublicAgen

19、tcomputeAgentIncome(Agentagent)StringexecutionError=null;StringrulesetVersion=Messages.getString(latest);IlrSessionFactorysessionFactory=null;try/getarulesessionif(sessionFactory=null)sessionFactory=newIlrJ2SESessionFactory();/CreateasessionrequestobjectIlrSessionRequestsessionRequest=sessionFactory

20、.createRequest();/rulesetPath=/ComputeSalaryApp/2.0/ComputeSalaryStringrulesetPath=Messages.getString(rulesetPath);if(!rulesetVersion.equalsIgnoreCase(Messages.getString(latest)rulesetPath=rulesetPath+/+rulesetVersion;sessionRequest.setRulesetPath(IlrPath.parsePath(rulesetPath);/Enabletracetoretriev

21、einfoonexecutedrulessessionRequest.setTraceEnabled(true);sessionRequest.getTraceFilter().setInfoAllFilters(true);/SettheinputparametersfortheexecutionoftherulesMapinputParameters=sessionRequest.getInputParameters();inputParameters.put(agent,agent);IlrStatelessSessionsession=sessionFactory.createStat

22、elessSession();/executeandgettheresponseforthisrequestIlrSessionResponseresponse=session.execute(sessionRequest);IlrExecutionTracesessionTrace=response.getRulesetExecutionTrace();agent=(Agent)response.getOutputParameters().get(agent);returnagent;使用 context.xml 配置数据源在 META-INF 的目录下,创建一个 context.xml 文

23、件,在该文件中添加配置数据源信息。Reloadable 属性如果为 true,则 tomcat 会自动检测应用程序的 /WEB-INF/lib 和 /WEB-INF/classes 目录的变化,自动装载新的应用程序,可以在不重起 tomcat 的情况下改变应用程序。name 表示指定的 JNDI 名称,必须为 jdbc/resdatasource,type 表示数据源类型,使用标准的 javax.sql.DataSource。清单 3. context.xml 文件源代码将调用规则集的核心类发布成 Web 服务利用工具将类 ComputeIncomeBean.java 发布成 Web Serv

24、ices,并自动生成 Web 服务描述文件 ComputeIncomeBean.wsdl 和 Web 服务部署描述文件 deploy.wsdd。发布 Web 服务操作如图 3 所示:图 3. 利用工具创建 Web 服务查看原图(大图)创建或修改服务器端配置文件 server-config.wsdd该文件记录了 axis 已发布的 Web 服务的描述信息。每当部署一个新的 Web 服务时,新服务的描述信息要加入到 server-config.wsdd 中。将 deploy.wsdd 文件中 标签中的内容(即发布的服务描述信息)拷贝添加到 erver-config.wsdd 文件中。清单 4 展示了拷贝部分的重要代码。清单 4. server-config.wsdd 文件新增服务描述信息部分源代码示例导入 Web 服务工程库要用到的重要 JAR 包同时,要将 XOM 的 Java 类导出,agentbom.jar 文件包放到项目的 lib 库文件中,调用规则引擎的核心代码中要用到此类,并将其作为 Web 服务的参数。同时还要把调用规则引擎时主要用到的 jrules-res-execution.jar 包也放入库中。如图 4 所示图 4. Web 服务工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1