规则引擎是基于规则的专家系统的核心部分,主要由三部分组成:规则库(Knowledge base)+Working Memory(Fact base)+推理机(规则引擎),规则引擎根据既定事实和知识库按照一定的算法执行推理逻辑得到正确的结果。 规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。 目前,市面上应用产生了众多的规则引擎。开源规则引擎的代表是Drools;商业规则引擎的代表是ILog。
Drools是一款基于Java的开源规则引擎,所以在使用Drools之前需要在开发机器上安装好JDK环境,Drools5要求的JDK版本要在1.5或以上。
Drools是一款基于Java的开源规则引擎,所以在使用Drools之前需要在开发机器上安装好JDK环境,Drools5要求的JDK版本要在1.5或以上。
Drools是一款基于Java的开源规则引擎,所以在使用Drools之前需要在开发机器上安装好JDK环境,Drools5要求的JDK版本要在1.5或以上。
Drools是一款基于Java的开源规则引擎,所以在使用Drools之前需要在开发机器上安装好JDK环境,Drools5要求的JDK版本要在1.5或以上。
在 Drools 当中,规则的编译与运行要通过Drools 提供的各种API 来实现,这些API 总体来讲可以分为三类:规则编译、规则收集和规则的执行。完成这些工作的API 主要有KnowledgeBuilder、KnowledgeBase、StatefulKnowledgeSession、StatelessKnowledgeSession、、等,它们起到了对规则文件进行收集、编译、查错、插入fact、设置global、执行规则或规则流等作用:
Drools是一个使用基于规则的方法实现的专家系统的规则引擎,更准确的说属于产生式规则系统。规则引擎这个术语是非常不明确的,因为任何以任意形式使用能够应用于数据生成结果的规则的系统都可以称为规则引擎。
在介绍规则系统的文章中,经常提到的一句话是:任何事物都会改变,唯一不变的是变化。Drools同样也不例外。目前Drools已经从Codehaus中独立出来,转投JBoss这座靠山,目前最新发布版本是3.0.4。目前名称叫JBoss Rules,但为了描述方便,这里仍称为Drools。Drools 3与前面分析的2.5版本比较在很多方面都发生了改变。
本文档是描述如何去使用Drools的文档,重点放在规则的语法和用法上,可让读者在编写规则是查阅,因此对于Drools的实现原理就不会详尽的介绍,如果读者有兴趣可以联系本文作者索取相关资料。在大型商业系统中,业务规则、商业逻辑等等都会比较复杂。而且在很多大型系统当中,很多业务规则、商业逻辑并不是一成不变的。甚至当系统进入生产阶段时,客户的业务规则、商业逻辑也会改变。某些系统要求甚至更高,要求能24小时不停机,并且能够实时修改商业规则。这就对商业系统提出了较大的挑战。如果将这些可变的规则直接编写到代码里面的话,业务规则一旦改变,就要修改代码。并由此带来编译、打包、发布等等问题。这对于生产系统来说是极不方便的。因此,如何考虑把一些可变的业务规则抽取到外面,使这些业务规则独立于程序代码。并最好是能够实时的修改业务规则,这样就可以做到不用打包编译发布等等。因此,规则引擎营运而生。
Drools是Redhat公司JBoss业务逻辑智能模块。www.jboss.org/drools/ Drools是处理规则的专家系统。
Drools规则引擎介绍Drools是Jboss公司旗下一款开源的规则引擎,它完整的实现了Rete算法;提供了强大的EclipsePlugin开发支持;通过使用其中的DSL(DomainSpecificLanguage),可以实现用自然语言方式来描述业务规则,使得业务分析人员也可以看懂业务规则代码。最新版本Drools5提供了基于WEB的BRMS——Guvnor,Guvnor提供了规则管理的知识库,通过它可以实现规则的版本控制,及规则的在线修改与编译,使得开发人员和系统管理人员可以在线管理业务规则。