Drools的学习成本还是比较高的,比如Fact、资产、工作空间、工作台、KieSession等,下面针对一些常用的术语或者概念进行解释,如下:
- KIE:即Knowledge Is EveryThing的缩写,KIE包含多个不同但相关的项目,为业务的自动化和管理提供完整的解决方案;
- Business Central:是一个功能齐全的Web应用程序,用于自定义业务规则和流程的可视化组合,也就是Workbench;
- 资产:所有的.drl文件、决策表等统称为资产;
- .drl:所有规则文件的后缀;
- 决策表:用EXCEL编写的规则,即.xls/.xlsx格式的规则文件;
- RuleBase:是规则存储的抽象,用于存放业务人员编写的规则;
- Fact(事实):又叫待检对象或者叫应用数据,将一个普通的JavaBean插入到Working Memory后的对象就是Fact对象(普通JAVABEAN插入到工作内存后变成Fact),不是原对象的克隆,是源对象的引用;
- WorkingMemory(工作空间):存放要匹配规则的事实也就说,存放的是业务对象,即JavaBean(插入到工作内存以后就变成了Fact)
- KieBase:用于存储所有应用程序和知识定义,包含rules, processes, functions和type models。KieBase本身不包含数据,KieBase可以插入数据以及可以确定从哪个流程实例开始创建session。KieBase的创建相对重量级,而会话的创建就显得非常轻量级,因此建议KieBase尽可能缓存重复创建的session,KieContainer已经自动提供了相关的缓存机制
- KieContainer:可以理解KieContainer是KieBase的容器;
- KieSession:存储和执行运行时数据,用于与规则引擎进行交互的会话,是基于KieBase创建的,它会包含运行时数据(事实),并对运行时数据事实进行规则运算。我们通过KieContainer创建KieSession是一种较为方便的做法,其实他本质上是从KieBase中创建出来;
- Pattern Matcher: 匹配器,将Rule Base中的所有规则与Working Memory中的Fact对象进行模式匹配,匹配成功的规则将被激活并放入Agenda中;
- Agenda:用于存放通过匹配器模式匹配完成后且被激活的规则;
- Execution Engine:执行引擎,执行Agenda中被激活的规则
- FactHandler对象:是插入到WorkingMemory中Fact对象的引用句柄,通过FactHandler对象可以实现对对应的Fact对象的删除及修改等操作;
- jBPM:工作流引擎,是一个单独的服务,可以使用jBPM来描述实现某些目标所需执行的步骤,然后建模自己的业务。