各版本Drools官方文档:
https://docs.jboss.org/drools/release/7.1.0.Final/drools-docs/html_single/index.html
https://docs.jboss.org/drools/release/7.30.0.Final/drools-docs/html_single/index.html#_welcome
https://docs.jboss.org/drools/release/6.4.0.Final/drools-docs/html_single/index.html#d0e23
什么是规则引擎
规则引擎是由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。
Drools 原理
DRL 解释执行流程
Drools 规则是在 Java 应用程序上运行的,其要执行的步骤顺序由代码确定。为了实现这一点,Drools 规则引擎将业务规则转换成执行树,如下图所示:
规则引擎工作方式
Drools 规则引擎基于 ReteOO 算法(对面向对象系统的Rete算法进行了增强和优化的实现),它将事实(Fact)与规则进行匹配,以推断相应的规则结果,这个过程称之为模式匹配。
规则引擎默认不会在规则评估时立即执行业务规则,除非我们强制指定。当我们到达一个事实(Fact)与规则相匹配的节点时,规则评估会将规则操作与触发数据添加到一个叫作议程(Agenda)的组件中,如果同一个事实(Fact)与多个规则相匹配,就认为这些规则是冲突的,议程(Agenda)使用冲突解决策略(Conflict Resolution strategy)管理这些冲突规则的执行顺序。整个生命周期中,规则评估与规则执行之间有着明确的分割。规则操作的执行可能会导致事实(Fact)的更新,从而与其它规则相匹配,导致它们的触发,称之为前向链接。如图:
初入Drools, 有问题欢迎指出
收集的资料引用
文档:05 KIESession 与 StatelessKIESession...
链接:http://note.youdao.com/noteshare?id=c2afb802be8288ebcbde1e4feae225b2&sub=A9FECDDAD86E412EA6E58D4107430022
文档:04 kmodule.xml.note
链接:http://note.youdao.com/noteshare?id=c6b89a422f37783164a68646f6f9c241&sub=196D1B724EB940FBB891D1492D3467DC
文档:03 KIE 介绍.note
链接:http://note.youdao.com/noteshare?id=c089f9558e23ad02ea21cb8cb8e636cd&sub=3EB8474327854E6792842B0A9CE8ABB7
文档:02 KIE API解析:https://blog.csdn.net/wo541075754/article/details/75004575
文档:01 KIE概念&FACT对象.note
链接:http://note.youdao.com/noteshare?id=80a44b483580cf60a5a0903124bacbf1&sub=2AE088B9248C4D32893C6461E27FB69D