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包,建立业务模型;新建规则包,为规则包选择可用的业务模型;在规则包内新建规则,定义规则的详细信息,规则只能使用所在规则包关联的业务模型。

业务模型管理

新增业务模型
点击“新增业务模型”菜单,出现文件上传页面,选择要上传的jar文件,此jar文件中应该只包含需要建立业务模型的类,且文件大小不能大于4M。jar文件上传后,并不会存储,只是作为临时文件,在当前请求有效。
文件上传成功后,会跳转到业务模型管理页面,页面中以树的形式列出了jar包中的所有类。找到要建立业务模型的类,点击类名前的记事本图标,系统会以延迟加载的方式列出该类所有可用方法,如方法有参数,则列出了方法参数类型的全类名。

 


文章评论

{{loginInfo.name}}登录后参与评论
登录 发表评论
{{post.usrName}}回复{{post.replytoUserName}}