-
什么是规则引擎
规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。
优点:
l声明式编程
l逻辑和数据分离
l速度和可扩展性
知识集中化
缺点:
l复杂性提高
l需要学习新的规则脚本语法
l引入新组件的风险
-
规则引擎实现
•效率:规则条件的匹配决定了引擎的性能。
•算法:Charles L. Forgy发明了一种叫Rete的算法,解决了这个问题。
•常见的规则引擎产品:
开源的drools、JLisa、QlExpress,商业的Ilog、旗正等。
表达式引擎Aviator。
-
drools规则引擎
Drools是一款基于java语言的开源规则引擎,基于RETE算法实现。
由工作区数据及规则库在推理引擎中进行模式匹配,进而生成agenda,包含了中间结果数据。
它是一个动态的链式执行过程,中间结果数据继续匹配规则,进而产生结果,直到最终退出返回结果。
-
drools规则文件 一般是drl文件
package package-name(必须)
imports (需要导入的类名)
globals (全局变量)
functions (函数)
queries (查询)
rule “name”
attributes ---->