Java规则引擎.docVIP

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java规则引擎

基于Java的规则引擎 目 录 1. 简介 3 1.1 业务规则 3 1.2 规则引擎产生背景 3 2. 规则引擎 5 2.1 业务规则 5 2.2 规则引擎 5 2.3 规则引擎的使用方式 5 2.4 规则引擎架构与推理 6 2.5 规则引擎的算法 7 3. Java规则引擎 8 3.1 Java规则引擎商业产品 8 3.2 规则引擎产品特点分析 9 3.2.1 IBM WebSphere ILOG JRules 9 3.2.2 Redhat JBoss Dools 12 3.2.3 JESS 12 4. Java规则引擎API(JSR94) 14 4.1 简介 14 4.2 简介Java规则引擎API体系结构 14 3.2.4 规则管理API 14 3.2.5 运行时API 15 4.3 Java规则引擎API安全问题 16 4.4 异常与日志 16 4.5 JSR94小结 17 5 规则语言 18 1. 简介 1.1 业务规则 一个业务规则包含一组条件和在此条件下执行的操作.它们表示业务规则应用程序的一段业务逻辑。业务规则通常应该由业务分析人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技术人员使用面向对象的技术语言或脚本来定制。 业务规则的理论基础是:设置一个或多个条件,当满足这些条件时会触发一个或多个操作。 1.2 规则引擎产生背景 复杂企业级项目的开发以及其中随外部条件不断变化的业务规则(business logic),迫切需要分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时(即商务时间)可以动态地管理和修改从而提供软件系统的柔性和适应性。规则引擎正是应用于上述动态环境中的一种解决方法。 企业管理者对企业级IT系统的开发有着如下的要求: 1. 为提高效率,管理流程必须自动化,即使现代商业规则异常复杂; 2. 市场要求业务规则经常变化,IT系统必须依据业务规则的变化快速、低成本的更新; 3. 为了快速、低成本的更新,业务人员应能直接管理IT系统中的规则,不需要程序开发人员参与。 而项目开发人员则碰到了以下问题: 4 程序=算法+数据结构,有些复杂的商业规则很难推导出算法和抽象出数据模型; 5 软件工程要求从需求-设计-编码,然而业务规则常常在需求阶段可能还没有明确,在设计和编码后还在变化,业务规则往往嵌在系统各处代码中; 6 对程序员来说,系统已经维护、更新困难,更不可能让业务人员来管理。 基于规则的专家系统的出现给开发人员以解决问题的契机。规则引擎由基于规则的专家系统中的推理引擎发展而来。 2. 规则引擎 2.1 业务规则 一个业务规则包含一组条件和在此条件下执行的操作,它们表示业务规则应用程序的一段业务逻辑。业务规则通常应该由业务分析人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技术人员使用面向对象的技术语言或脚本来定制。业务规则的理论基础是:设置一个或多个条件,当满足这些条件时会触发一个或多个操作。 2.2 规则引擎 什么是规则引擎?规则引擎是如何执行规则的?这可以称之为“什么”与“如何”的问题。到底规则引擎是什么还是目前业界一个比较有争议的问题,在JSR-94种也几乎没有定义。可以这样认为充分定义和解决了“如何”的问题,“什么”问题本质上也迎刃而解。也许这又是一种“先有蛋还是先有鸡”哲学争论。今后标准规则语言的定义和推出及相关标准的制定应该可以给这样的问题和争论划上一个句号。本文中,暂且这样述说什么是规则引擎:规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据规则做出业务决策。 2.3 规则引擎的使用方式 由于规则引擎是软件组件,所以只有开发人员才能够通过程序接口的方式来使用和控制它,规则引擎的程序接口至少包含以下几种API:  加载和卸载规则集的API;  数据操作的API;  引擎执行的API。 开发人员在程序中使用规则引擎基本遵循以下5个典型的步骤:  创建规则引擎对象;  向引擎中加载规则集或更换规则集;  向引擎提交需要被规则集处理的数据对象集合;  命令引擎执行;  导出引擎执行结果,从引擎中撤出处理过的数据。 使用了规则引擎之后,许多涉及业务逻辑的程序代码基本被这五个典型步骤所取代。 一个开放的业务规则引擎应该可以“嵌入”在应用程序的任何位置,不同位置的规则引擎可以使用不同的规则集,用于处理不同的数据对象。此外,对使用引擎的数量没有限制。 2.4 规则引擎架构与推理 规则引擎的架构如下图所示: 规则引擎的推理步骤如下: a.将初始数据(fact)输入至工作内存(Wo

文档评论(0)

phltaotao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档