实战Drools规则引擎
上QQ阅读APP看书,第一时间看更新

1.5.3 决策引擎

决策引擎(Decision Engine)是Drools的核心,也可以称作Drools的“大脑”。如图1-6所示,决策引擎从生产内存(Production Memory)中加载定义的规则,再从工作内存(Working Memory)中读取事实对象,然后根据规则条件,用Phreak算法进行模式匹配(Pattern Matching),也就是执行规则定义中的“如果”部分,如果匹配成功就把相应的动作(规则定义中的“那么”)部分放到议程(Agenda)队列中。

图1-6 决策引擎

❑议程是规则引擎的触发事件队列,所有已经匹配的规则都会在议程中排队,等待规则引擎逐个执行。

❑生产内存是保存编译后的Drools规则的位置。

❑工作内存是事实对象(数据)的存放位置,外部提供给规则引擎的陈述事实和规则引擎产生或修改后的推断事实都保存在工作内存中。

❑Phreak算法是新版Drools引入的、改进后的ReteOO算法,它会将编译后的规则组成Phreak网络,保存在生产内存中。(4.4节将会详细介绍Phreak算法。)