基于业务规则引擎的管理系统的应用研究
2010-11-22余军阳
余军阳
(浙江出入境检验检疫局,浙江 杭州 310012)
0 引 言
随着各类信息管理系统在各行各业的不断普及深化,业务数据量越来越多时,很多待处理的业务信息仅按照一定的业务规则,机械地由人工操作来完成会成为一项费时费力的任务[1].如何充分利用信息自动化技术,对机械人工操作的业务处理工作,通过共性分析设置科学的业务规则引擎由计算机处理,这样既能提高业务工作效能,又能解放业务人员生产力,降低人力成本.因此该文提出了一种基于业务规则引擎的管理系统的应用设计方案,根据业务处理流程情况,事先设置业务规则引擎,通过业务规则的校验,把符合规则的数据交由计算机后台高效处理,而且业务规则引擎可随着实际业务的改变而优化以适应业务的变化,增强应用系统的适用性和重用性,提高业务处理的效能,为企业实现节省时间、人力成本等目标.
1 系统总体框架设计
1.1 业务需求分析
分析各类业务处理流程,需要实现以下几方面:1) 数据的采集,通过各类业务应用管理系统采集各类业务的电子信息;2) 业务规则的制订,通过对简单机械的人工业务操作分析,提取其共性的业务规则;3) 业务规则的抽象化,通过对业务规则的分析,抽象出计算机能处理的判断规则;4) 业务规则引擎,采集的数据根据业务规则引擎判断是否存储到符合规则数据库;5) 信息的处理,对符合业务规则引擎的数据,交由后台业务服务端程序高效处理[2].
针对上述需求,进行基于业务规则引擎的管理系统的应用研究,应用研究的目标是通过计算机根据业务规则引擎快速地校验符合规则的数据,然后利用后台计算机高效处理业务信息.如图1所示,主要涉及两大部分:用户端和业务端.其中业务端包括业务应用服务器、业务数据库、业务规则引擎应用服务器、符合规则数据库和后台业务服务端群组成[3];其中用户端包括用户的台式电脑、笔记本电脑等终端设备.
图1 系统框架图
1.2 各模块功能和流程
图2 总体业务流程图
基于业务规则引擎的管理系统各模块的功能和流程如下:1) 用户端:主要由各类应用管理系统提供用户信息交互的功能,如业务数据提交、信息查询等;2) 业务应用服务器:接受用户通过应用管理系统提交的各类业务数据或请求,提供各类业务服务的平台;3) 业务数据库:通过业务应用服务器提交的各类业务数据存储的数据仓库;4) 业务规则引擎应用服务器:企业管理员根据实际业务情况,事先设置业务规则,并根据实际业务的需求,调整相应的业务规则引擎.通过对业务数据库数据的筛选,符合业务规则引擎的数据提交到符合规则数据库,如果不符合业务规则的数据通过业务提醒助手交由人工处理,然后回写到业务数据库[4];5) 后台业务服务端群:主要并发处理符合业务规则的数据,然后回写到业务数据库.
1.3 业务流程
根据业务规则引擎需求的总体分析,业务端主要由业务规则引擎和后台业务处理端群组成(见图2).
业务规则引擎主要用于数据校验功能,然后由后台业务处理端群根据不同业务规则引擎执行不同的业务操作.
通过用户端提交业务数据到业务数据库,各类业务规则引擎对各类数据进行校验后存储到符合业务规则数据库.为了防止后台业务处理端同时争抢同一个业务号,引入数据缓冲池技术解决资源争抢问题.各类后台业务处理端定时扫描数据缓冲池,定时扫描的时间间隔可以动态设置,这样设计可以根据实际业务量情况动态调优.当数据缓冲池有数据,后台业务处理端就取走一批数据,而不是每次只取走一个业务号,这样可以防止多个后台业务处理端不停地扫描数据缓冲池,后台业务端取到一批数据后,判断该业务是否已经被处理,如果没有就进行业务操作,接着取下一个业务号,直到当前批次业务被处理结束.
2 业务规则引擎
如图2所示,业务规则引擎在整个系统中具有非常重要的作用,因此,在设计该部分的时候,要做到业务数据校验的快速和高效,业务规则设置和调整的灵活方便.
2.1 业务规则引擎设置
图3 业务规则引擎结构图
1) 业务规则引擎由一条或多条子业务规则组成,具有类似树形目录结构的上下级关系.每一条子规则包含有以下元素(如图3所示).
【规则名称和描述】:定义规则的名称和规则的含义;【表达式】:用于设置各条件的逻辑关系.例如:()、||,&&等运算符;【顺序号】:用于设置同一级规则执行的先后次序;【是否有效】:用于设置当前规则是否有效;【依赖】:用于说明当前规则设置的依据;【正向跳转】:当满足表达式时,跳转到设置的规则处开始执行;【反向跳转】:当不满足表达时,跳转到设置的规则处开始执行;【有效开始时间】:设置规则生效的时间;【有效结束时间】:设置规则失效的时间;【条件维护】:设置规则的条件,可添加多个条件;【结论】:分正结论和反结论两种,满足表达式时,执行正结论,不满足表达式时,执行反结论;【子规则集合】:用于包含子规则的集合.
2) 业务规则引擎的执行总是从父目录开始执行起,当父规则条件不满足,子规则不会执行;
3) 结论优先原则,正结论优先指当满足该条件的时候,就继续校验下条规则,直到符合所有的子规则,就结束该次校验,并把数据放入符合规则数据库,反之就结束;反结论优先指不满足该条件时,就继续校验下条规则,所有的反结论都不符合,就结束该次校验,并把数据放入符合规则数据库,反之就结束.
2.2 规则表达式
表达式可以由一条或多条语句组成,当多条语句组成时,语句间的连接由以下几类运算表示.
1) 括号运算:“()”表示括号内的为一个整体;2) 和运算:“&&”表示“并且”;3) 或运算:“‖”表示“或者”.例如:A&&((B‖C)&&(D‖E))组成一个完整的表达式.
2.3 规则的条件
表1 字段类型的操作符关系
条件设置主要是描述语句中的判断依据、范围选择、数值比较等常规的条件判别.
条件设置的结构由3部分组成:左边项、操作符、右边项.
1) 左边项:根据各个业务应用的实际情况设置,该部分主要来源于各类业务表的元素.
2) 操作符:用于判断左边项和右边项的逻辑关系,主要包括:= =、< >、<、>、>=、<=、Between、Not between、Match、No match、Contains、Not contains等逻辑关系,主要字段类型的操作符关系,如表1所示,打“√”表示支持,打“×”表示不支持.
3) 右边项:根据左边项的业务表元素设置,主要包括:静态字符串、静态字符串集、静态别名结果集、动态SQL查询结果集.
2.4 规则判断后的结论
结论用于业务规则判断后的结果描述,如果当前批次业务不满足业务规则时,就自动记录不满足的原因,然后跳出业务规则引擎,管理员事后可追查某一单业务为何不满足业务规则的依据.结论分为固定结论和自定义结论.固定结论是事先定义的处理逻辑描述.自定义结论根据业务需求动态设置并使用.
2.5 效能分析
业务应用系统的数据量越大,采用业务规则引擎的管理系统效能就越高,相应节省人力劳动成本就越多.业务规则引擎制定的越细化、越规范,处理效率就越高,相应的后台业务端执行的效能也越快.业务规则引擎的制定应尽量科学,避免子规则引擎层数太多,因为每单业务都需要执行判断,如子规则数目和层数太多势必会降低系统的判断执行效率.应该根据实际业务量情况,科学设计数据缓冲池的大小以及后台业务端群的数目及定时扫描的频率.该研究已应用于多家大型企业的计费和业务处理系统,达到了提高业务处理效率和准确率,减少前台业务人员数量,节省相应人员办公开支等目的.
3 结束语
文章阐述了基于业务规则引擎的管理系统的应用研究,给出了系统结构框架,进行了具体的业务流程的分析,并详细解释了业务规则引擎的设置结构.采用业务规则引擎的管理系统有助于降低人工成本,减少人为操作误差,规范业务处理过程,提高业务处理效能,增强管理系统的业务安全性、系统的重用性和适用性.该模式适用于日常业务信息量大、流程规范的企业应用,例如:电信、银行、医院、电力、金融等需要大量人工处理业务的单位.下一步将重点研究:1) 业务规则引擎的性能调优,进而提高整体系统的效能;2) 引入智能业务引擎库,在调优的基础上实现智能的给决策或管理人员科学的业务优化方案.
[1] 王李军,陶明亮,张曙,等.面向业务规则引擎研究[J].计算机工程,2007(24):52-56.
[2] 林峰,严隽薇.工作流引擎规范接口的设计与实现[J].成组技术与生产现代化,2006(4):8-11.
[3] 黄皞,潘正运,梁冰,等.业务规则引擎Ilog JRules工作引擎的工作机制分析[J].微计算机信息,2006(24):112-114.
[4] 孙勇强,邓咏梅,李续武.基于EJB的业务规则引擎的设计和实现[J].计算机工程,2005(20):220-222.