通过一段时间的学习,对于drools有了更加深入的了解。通过一篇文章对之前学习的知识进行一个总结:
1.drools的面向用户
drools的定位在于开源,所以drools本身不是面向业务人员而是技术人员,这一点和ilog有着本质的区别,ilog作为商用规则引擎的龙头,在模型定制、汉化、自然规则语言方面都已经十分成熟。drools则属于一个还在发展上升的软件有着自己的局限性,表现在其模板定制,汉化以及各种不稳定上。
2.模型定制
规则引擎模型采用树状结构,其规则定制的理念源于模型的这种设计,预定义一层层剥开
这样设计的好处在于模型和规则独立开来,在模型设计时不需考虑规则如何定制,只需模拟真实业务场景进行设计即可。
而drools模型定制对象和对象之间是离散,之间的逻辑关系需要借助主键,这样的设计不适合在复杂的业务场景中进行规则定制。
3.规则汉化
规则引擎汉化是基于模型的,在模型定制初期即已经完成汉化。
drools的汉化是基于语句的汉化:
//created on: 2014-9-4
package com.sinosoft.rules
//list any import classes here.
import com.model.Policy;
import com.model.Insured;
expander Commen.dsl
//declare any global variables here
rule "NBPR0001"
when
存在这样一个被保人
-被保人年龄大于18
-性别是'female'
存在这样一张个人保单
-被保人是个人保单中一员
-个人保单累计保额打大于1000
then
返回"被保人为成年女性,且整单保额大于1000";
end