基于Rete算法的规则引擎JBoss RUIes

来源 :计算机时代 | 被引量 : 0次 | 上传用户:pickbaobei
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:规则引擎是一种嵌入在应用程序中的组件。起源于基于规则的专家系统。它可以在应用系统中分离商业决策逻辑和程序逻辑。目前的商用规则引擎,包括JBoss Rules,基本上都是基于Ret算法。文章先叙述了规则引擎的原理及Java规则引擎工作机制,然后介绍了Drools中改进后的Ret算法,最后以实例说明了如何在应用程序中使用JBossRules来管理规则。
  关键词:规则引擎;Rete算法;JBoss Rules;Drools
  
  0 引言
  
  任何软件开发过程都是从需求到设计再到编码的,企业应用系统也如此。在传统企业应用系统开发中,业务规则是由用户在需求分析阶段提供,内嵌在程序代码中,它使用复杂的if-else语句来构成,一旦开发完成,便不易变更。然而现实情况却是业务规则往往频繁地变更,往往在设计和编码完成后还在变化,每一项规则的变化都需要开发人员对那些复杂的if-else语句进行修改,这无疑增加了系统的更新成本。正因为如此,所以企业管理者希望业务人员能够直接管理应用系统中的规则,不需要程序开发人员的参与。但问题是,很多复杂的规则,对于开发人员也很难推导出算法和抽象出数据模型,且业务规则往往嵌在系统的各处代码中,不可能让非开发人员管理。于是规则引擎应运而生,它的出现给开发人员带来了解决上述问题的契机。
  
  1 业务规则及规则引擎
  
  一个业务规则由一组条件和在此条件下执行的操作组成,它们表示业务规则应用程序的一段业务逻辑。业务规则通常应该由业务人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技术人员使用面向对象的技术语言脚本来定制。业务规则的理论基础是:设置一个或多个条件,当满足条件时会触发一个或多个操作。
  规则引擎是一种嵌入在应用程序中的组件,它起源于基于规则的专家系统(RBES),而基于规则的专家系统又是专家系统的一个分支。专家系统属于人工智能的范畴,它模仿人类的推理方式,使用试探性的方法进行推理。并使用人类能理解的术语解释和证明它的推理结论。规则引擎的任务是把当前提交给引擎的数据对象与加载在引擎中的业务规则进行比较,激活那些符合当前数据状态下的业务规则。根据业务规则中声明的执行逻辑,对当前数据对象执行对应的操作。
  
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:采用Rational Rose工具对徐州工程学院新生入学报到系统进行了需求模型、静态模型、动态模型及实现模型的建模。在建模过程中,使用UML将系统的分析、设计和实现有机地集成起来,以便可以在更高抽象层次上进行系统维护,并提高系统的可扩展性。  关键词:统一建模语言;新生入学报到系统;建模;设计
期刊
摘要:目前嘉兴中医院营养科的管理业务,从食谱制定、订餐员订餐、现金收取、订餐表编制到配餐下料以及库房管理,全部采用手工劳动,工作繁琐,劳动强度大,而且在现金结算找零的过程中容易出现差错及交叉感染等问题。文章所描述的IC卡医院营养订餐管理系统用IC卡结算餐费,用计算机制定食谱,编制订餐表,安排配餐下料,科学安排库房库存的管理,有效地提高了营养科的管理水平,降低了管理人员的劳动强度,使医院后勤管理服务
期刊
摘要:对一个C程序的问题,结合其对应的汇编进行深入分析,着重探讨了什操作和参数进栈的问题,  关键词:C语言;汇编;参数进栈;指针    0 引言    C语言是计算机系学习编程的入门语言,尽管是基础,但是涉及的问题很多,有些题目也很值得思考。本人在教学实践中,碰到如下一道题目,感受颇多,因此做了些总结和拓展分析,以抛砖引玉,请大家共同思考。
期刊
摘要:Protel是目前广大电气电子技术人员十分熟悉和喜爱的绘图软件,但在使用中常会遇到一些问题。文章针对在原理图设计中出现的若干问题进行分析、总结,并介绍一些解决方法和绘图技巧。  关键词:Protel;原理图;设计;技巧
期刊
摘要:PHP技术是目前最流行的动态网站开发语言之一,它与Apache、MySQL的紧密集成更加速了它的普及。文章简要介绍了ASP、JSP、PHP三种动态网站开发技术的优缺点,以Linux9.2为例详细介绍了在Unix类系统上搭建AMP平台的过程和注意事项。  关键词:Unix类操作系统;AMP(Apache+MySQL+PHP)平台;搭建;动态网站开发
期刊
摘要:随着Web应用软件的快速发展,作为保证Web软件正确性和可靠性的重要手段,Web应用软件测试受到了人们越来越多的重视。文章从web软件体系结构出发,分析了Web软件测试的主要特点和难点,指出了传统软件测试与Web软件测试之间的差别。总结了Web软件测试的内容和方法。这些对于提高和改善Web软件的质量具有指导意义。  关键词:Web;软件游览;体系结构;方法    0 引言    随着Inte
期刊
摘要:C语言程序设计作为高等院校计算机类专业学生开设的第一门程序设计课程,对于学生程序设计能力的培养具有重要的意义。文章在剖析程序设计能力基本要素和概念的基础上,分析了当前C语言课程授课模式和不足,进而提出了C语言授课目标,并归纳了在教学实践中应注意的五个方面,以提高C语言授课质量,达到C语言教学关于程序设计能力培养的目标。  关键词:程序设计能力;C语言;教学;授课模式
期刊
摘要:着重分析了编译原理课程中的LL(1)预测分析器的设计算法。对于给定的代码,求出FIRST、FOLLOW和SELECT集,构造相应的LL(1)预测分析器,给出预测分析表,并对求解FIRST集和FOLLOW集中存在的环问题提出了解决算法。  关键词:FIRST;FOLLOW;SELECT;LL(1);算法
期刊
摘要:鉴于可视化程序设计课程在学生实践能力培养方面的重要性,提出了新的基于.NET的可视化程序设计课程的教学内容,并利用项目教学法对可视化程序设计课程进行教学改革与探索,取得了良好的效果。  关键词:可视化;.NET;教学改革;项目    0 引言    信息与计算科学是一个内容非常广泛的学科。教育部数学与统计学教学指导委员会数学类教学指导分委员会经过调查后,建议将信息与计算科学专业的课程分为四个
期刊
摘要:基于SmallWorld在金华电业局配网GIS项目上的具体实践,论述了如何更好地发挥SmanWorld平台在配网管理上的一些应用优势。以及所需注意的几个问题。  关键词:配网;GIS;SmallWorld;拓扑;数据库    0 引言    浙江省电力公司把SmallWorld作为全省GIS的统一平台,省公司下属的各个供电局必须在SmallWorld的平台上进行GIS的开发应用。金华电业局配
期刊