APP下载

NxBRE规则引擎在评选系统中的应用

2018-02-28张园田龙洋

电子技术与软件工程 2018年23期

张园田 龙洋

摘要

规则引擎是一个具有非常广阔的应用前景的现代计算机技术。针对全国工程勘察设计大师评选系统中的复杂、易变业务逻辑的特殊需求,引入前向规则推理理论。在.net平台下运用NxBRE规则引擎,实现了针对不同行业的评选流程逻辑的便捷控制,为.net平台下复杂业务逻辑应用提供了一种高效的解决方案。

【关键词】规则引擎 NxBRE 评选系统

全国工程勘察设计大师评选系统,即评选系统。将业务流程和规则引擎应用于评选系统,不仅仅是实现了信息化的评选流程,而且还可以依据勘察设计行业下不同专业组的不同需求,不需要经过程序设计人员,单由业务人员就可以灵活更改评选的规则。大大增强了系统的灵活性和可扩展性。

1 背景

NxBRE是.net平台下的首款开源轻量级的业务规则引擎,它提供两种不同的推理手段:流引擎(Flow Engine)和推论引擎(Inference Engine)。流引擎是程序的外部实体通过XML来控制进程流,它基本上是一个C#的封装,提供所有的流控制命令Of/then/else,while,foreach等),再加上商业对象关系和规则;推理引擎是一个正向串行的演绎法(data driven)引擎,支持概念相似的论据,询问和推断(定义在RuleMI-Data10G)、相似规则的优先级,互斥和预处理(建立在众多的商业引擎内),它的设计路线是鼓励在专家设计的商业规则与程序员建立的商业对象之间进行分离。

评选系统的实质是由多人经过一整套流程按规则进行参评的过程行为。鉴于上述情况,评选系统的规则引擎的选取符合NxBRE规则引擎的特点,因此决定将NxBRE规则引擎应用于评选系统。

2 NxBRE规则引擎工作机制

传统规则引擎系统中的规则处理模块,主要是由三部分组成,即规则库、工作内存和推理引擎。而NxBRE规则引擎处理模块的核心是Working Memory(工作内存),它是由正在运行中的事实库和一个潜在的空闲的事实库组成,这个潜在的空闲事实库是基于操作模式的,可以是全局的、局部的或隔离的。

3 基于NxBRE的评选系统设计业务流程

评选系统的目的是要最终评选出本年度的勘察工程设计大师,整个评选需要经过一整套缜密的评选流程,而且此流程是由多种角色共同协助完成。

与传统的设计模式类似,基于规则引擎的评选系统的开发模式也包含企业服务的业务流程设计。由于引入了规则引擎,使得业务流程和业务规则分离,因此业务流程的设计大大简化,不再需要繁琐的和庞大的条件判断,减轻业务程序的负担。业务流程的设计遵从图1的服务模型。

4 评选系统的实现

4.1 数据库设计

针对本系统的业务规则,采用基于E-R模型的数据库设计方法,具体实现的表结构部分如图2所示。

这里我们列出了3个具有代表性的数据库表,这3张表中列出的都是系统中的用户信息,但其侧重点各有不同。其中tbl_sysusers表存放的是当前系统中的全部用户,侧重区别用户的类型;tbl_rptmaininto存放的则是参评的用户详细信息。

4.2 业务规则代码化

代码化的过程是将评选流程服务具体到实际应用过程,其实就是程序代码的实现过程。在这个过程中,需要遵循不同的评选流程。重要部分的规则如下:

rulebase“special policies rulebase”

rule“special for architecture”

if

The APPlicant has made outstandingcontributions in the architecture industry

and

The Applicant hasnt Applied in the lastselect

thendeduct

The system will use the architectureselection progress on this Applicants selection

rule“special for energy source”

if

The Applicant has made outstandingcontributions in the energy source industry

and

The APPlicant hasnt Applied in the lastselect

then deduct

The system will use the energy sourceselection progress on this Applicant' s selection

上述規则表明如果是建筑行业的评选,需要满足如下2个条件:

(1)申请人在建筑行业有过杰出贡献。

(2)申请人没有参加上一次的评选。

4.3 程序界面展示

按照上述逻辑,我们做出了全国工程勘察设计大师评选系统,如图3所示。

5 结束语

从前面的讨论可以看出,采用规则引擎可以有效地将业务规则和业务逻辑进行分离,非常适合业务逻辑比较复杂的应用系统,能够快速完成规则匹配,提高系统的性能。

参考文献

[1]熊智,徐江燕,王高举,李江,蔡伟鸿.基于角色和规则引擎的UCON应用模型[J].计算机工程与设计,2013,34(03):831-836.

[2]余文姣,黄梦醒,朱东海.基于改进规则引擎的农业知识推荐系统[J].计算机工程与设计,2012,33(06):2295-2299.

[3]陶晓俊,朱敏.基于规则引擎的业务服务开发模式[J].计算机技术与发展,2008,18(02):115-118.