OFFICE
北京市海淀区北清路68号用友软件园A座
PHONE
86-10-62431800
EMAIL
support@itari.com.cn
规则引擎
2013-01-15 16:35:38 作者:ITARI 来源
复杂企业级项目的开发以及其中随外部条件不断变化的业务规则(business logic),迫切需要分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时(即商务时间)可以动态地管理和修改从而提供软件系统的柔性和适应性。规则引擎正是应用于上述动态环境中的一种解决方法。
Java规则引擎是推理引擎的一种,java规则引擎将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。Java规则引擎接受数据输入,解释业务规则,并根据规则作出业务决策。
规则引擎包括三部分:Rule Base(knowledge base)、Working Memory(fact base)和Rule Engine(推理引擎)。它们的结构如下所示:
规则引擎结构图
如左图所示,规则引擎包括三部分:Pattern Matcher、Agenda和Execution Engine。Pattern Matcher决定选择执行哪个规则,何时执行规则;Agenda管理PatternMatcher挑选出来的规则的执行次序;Execution Engine负责执行规则和其他动作。
规则引擎的推理步骤如下:
-
1.将初始数据(fact)输入Working Memory。
2.使用Pattern Matcher比较规则(rule)和数据(fact)。
3.如果执行规则存在冲突(conflict),即同时激活了多个规则,将冲突的规则放入冲突集合。
4.解决冲突,将激活的规则按顺序放入Agenda。
5.使用规则引擎执行Agenda中的规则。重复步骤2至5,直到执行完毕所有Agenda中的规则。
用户首先将需要建立成业务模型的类打成.jar文件,通过业务模型管理功能导入jar包,建立业务模型;新建规则包,为规则包选择可用的业务模型;在规则包内新建规则,定义规则的详细信息,规则只能使用所在规则包关联的业务模型。
文章评论