Java规则引擎与其API应用详解

2016-02-19 12:31 4 1 收藏

下面是个Java规则引擎与其API应用详解教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - 编程语言 】

  本文对Java规则引擎与其API(JSR-94)及相关实现做了较具体的介绍,对其体系结构和API应用有较详尽的描述,并指出Java规则引擎,规则语言,JSR-94的相互关系,以及JSR-94的不足之处和展望
  
  本文对Java规则引擎与其API(JSR-94)及相关实现做了较具体的介绍,对其体系结构和API应用有较详尽的描述,并指出Java规则引擎,规则语言,JSR-94的相互关系,以及JSR-94的不足之处和展望
  
  复杂企业级项目的开发以及其中随外部条件不断变化的业务规则(business logic),迫切需要分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时(即商务时间)可以动态地治理和修改从而提供软件系统的柔性和适应性。规则引擎正是应用于上述动态环境中的一种解决方法。
  
  本文第一部分简要介绍了规则引擎的产生背景和基于规则的专家系统,第二部分介绍了什么是规则引擎及其架构和算法,第三部分介绍了商业产品和开源项目实现等各种Java规则引擎,第四部分对Java规则引擎API(JSR-94)作了具体介绍,讲解了其体系结构,治理API和运行时API及相关安全问题,第五部分则对规则语言及其标准化作了探讨,第六部分给出了一个使用Java规则引擎API的简单示例,第七部分给予小结和展望。
  
  1、 介绍
  
  1.1 规则引擎产生背景
  
  企业治理者对企业级IT系统的开发有着如下的要求:(1)为提高效率,治理流程必须自动化,即使现代商业规则异常复杂(2)市场要求业务规则经常变化,IT系统必须依据业务规则的变化快速、低成本的更新(3)为了快速、低成本的更新,业务人员应能直接治理IT系统中的规则,不需要程序开发人员参与。
  
  而项目开发人员则碰到了以下问题:(1)程序=算法+数据结构,有些复杂的商业规则很难推导出算法和抽象出数据模型(2)软件工程要求从需求-设计-编码,然而业务规则经常在需求阶段可能还没有明确,在设计和编码后还在变化,业务规则往往嵌在系统各处代码中(3)对程序员来说,系统已经维护、更新困难,更不可能让业务人员来治理。
  
  基于规则的专家系统的出现给开发人员以解决问题的契机。规则引擎由基于规则的专家系统中的推理引擎发展而来。下面简要介绍一下基于规则的专家系统。
  
  1.2 基于规则的专家系统(RBES)
  
  专家系统是人工智能的一个分支,它模拟人类的推理方式,使用试探性的方法进行推理,并使用人类能理解的术语解释和证实它的推理结论。专家系统有很多分类:神经网络、基于案例推理和基于规则系统等。
  
  RBES包括三部分:Rule Base(knowledge base)、Working Memory(fact base)和Inference Engine(推理引擎)。它们的结构如下所示:
  
  图1.基于规则的专家系统组成
  Java规则引擎与其API应用详解
  
  如上图所示,推理引擎包括三部分:Pattern Matcher、Agenda和Execution Engine。Pattern Matcher何时执行哪个规则;Agenda治理PatternMatcher挑选出来的规则的执行次序;Execution Engine负责执行规则和其他动作。
  
  推理引擎通过决定哪些规则满足事实或目标,并授予规则优先级,满足事实或目标的规则被加入议程。存在两者推理方式:演绎法(Forward-Chaining正向链)和归纳法(Backward-Chaining反向链)。演绎法从一个初始的事实出发,不断地应用规则得出结论(或执行指定的动作)。而归纳法则是从假设出发,不断地寻找符合假设的事实。 QQread.com 推出各大专业服务器评测 Linux服务器的安全性能 SUN服务器 HP服务器 DELL服务器 IBM服务器 联想服务器 浪潮服务器 曙光服务器 同方服务器 华硕服务器 宝德服务器

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

来源:https://www.tulaoshi.com/n/20160219/1601112.html

延伸阅读
标签: Java JAVA基础
简单介绍一下Java关于xml的API,这样大家看到了缩写就知道是干什么的了。水平有限,多多包涵。 1、JAXP(Java API for XML Parsing) 2、JAXB(Java API for XML Binding) 3、JAXM(Java API for XML Messaging) 4、JAX-RPC(Java API for XML-RPC) 1、JAXP定义了在Java中使用DOM, SAX, XSLT的...
Reflection是Java 程序开发语言的特征之一,它答应运行中的 Java 程序对自身进行检查,或者说"自审",并能直接操作程序的内部属性。例如,使用它能获得 Java 类中各成员的名称并显示出来。 Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C 或者 C++ 中就没有办法在程...
网球规则,网球女单规则,详解网球女单决赛规则 网球的基本规则 (一) 发球 1.发球前的规定 发球员在发球前应先站在端线后、中点和边线的假定延长线之间的区域里,用手将球向空中任何方向抛起,在球接触地面以前,用球拍击球(仅能用一只手的运动员,可用球拍将球抛起)。球拍与球接触时,就算完成球的发送。 ...
除了基于屏幕的组件外,你还应该掌握使用表单把多个组件组织到一个屏幕上去。这一部分将讨论Form类和可以放置到表单上去的组件。 1. Form 一个表单对象是一个screen,它可以包含任意的项,包括只读的和可编辑的文本框,图像,日期域,gauge以及选项组组件。前面已提到,任何Item类的子类都可以放置到表单对象上去。Form类的构造器如下: ...
     在Servlet之前Java服务器端编程使用C或Perl编写复杂的CGI来实现来完成,Java Servlet API的出现极大地简化了Java在服务器端编程的复杂性同时能最大限度地发挥Java的的整体优势。 在这个专题中我们由浅入深地向大家介绍Java Servlet的基本特征、开发环境的配置以及Servlet的一些主要API类。 Servlet慨述 Ser...

经验教程

935

收藏

47
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部