一种基于轻量规则的业务处理引擎及业务系统的处理方法
技术领域
本发明属于业务处理技术领域,尤其是一种基于轻量规则的业务处理引擎及业务系统的处理方法。
背景技术
现有的业务规则引擎,主要依赖Rete算法及类Rete算法进行规则匹配,着重研究复杂的规则条件下如何提高规则的匹配速度,并需要解决规则间的冲突。Rete算法及类Rete算法需要大量的存储空间进行中间状态的存储,在处理大量规则的情况下可能会耗尽设备的存储空间。传统的规则引擎较为笨重,引入规则引擎时需要引入大量框架代码逻辑,同时规则的编写较为复杂,导致规则引擎的易用性不佳,在敏捷开发过程中效果不好。
发明内容
本发明的发明目的是提供一种基于轻量规则的业务处理引擎及业务系统的处理方法,能够提供轻量级规则解析及匹配机制,实现业务系统的灵活控制。
为达到上述目的,本发明所采用的技术方案是:
一种基于轻量规则的业务处理引擎,包括解析器、匹配器和执行器,所述解析器用于解析规则库输入的规则,并将解析后的规则发送至匹配器;所述匹配器用于接收用户请求参数、接收解析器发送的规则、储存规则、将用户请求参数和规则进行匹配生成匹配的规则列表以及发送匹配的规则列表至执行器;所述执行器用于接收匹配器发送的匹配的规则列表和对匹配的规则列表进行执行。
进一步的,所述规则包括规则头、条件块以及行为块。
进一步的,所述解析器根据规则模板对规则库输入的规则进行解析,遍历所有规则中的所有条件,去重后得到全部条件的集合;并建立条件-规则的映射关系,记录该条件在哪条规则中出现;规则库输入的规则经过解析器处理后,可得到全部条件的列表及条件与规则的映射关系,以及包含所有规则的一个计数器,计数器初始值均为0。
进一步的,所述匹配器的匹配方法包括如下步骤:
步骤一、匹配器遍历所有的条件列表,并将请求参数按照条件列表进行匹配判断,若用户请求参数符合当前的条件,则在对应的规则的计数器中增加1;
步骤二、遍历完所有的条件后,可得到计数器中的数据值,计数器中的计数值代表某条规则中条件符合的个数;
步骤三、对计数器中的所有规则进行遍历,当计数器中该规则的计数与该规则本身带有的条件数量相等时,说明该规则的所有条件均满足,即可以执行该规则的动作,放入匹配规则列表中;
步骤四、完成计数器中所有规则的遍历后,便得到了本次请求所需要执行的规则及其相应的动作;
步骤五、得到匹配规则后,将所需执行的规则交由执行器进行执行。
一种业务系统的处理方法,所述业务系统包括上述的任意一种基于轻量规则的业务处理引擎和业务处理逻辑;所述业务系统的处理方法包括如下步骤:
S1.用户请求输入轻量规则的业务处理引擎后,通过规则匹配和规则执行后,对用户的请求参数进行修改,并将修改后的参数交由业务处理逻辑进行处理;
S2.业务处理逻辑与外部资源方系统交互完成后,再将处理结果返回至用户侧。
由于采用上述技术方案,本发明具有以下有益效果:
本发明包括解析器和匹配器,提供了轻量级规则解析及匹配功能,能够有效地节省了储存空间,有利于实现业务系统的灵活控制,本发明提供了易用的简化规则,从而便于前端及业务人员编写。
附图说明
图1是本发明中业务处理引擎的结构示意图;
图2是本发明中规则模板的结构示意图;
图3是本发明中解析器的工作流程图;
图4是本发明中匹配器的工作流程图;
图5是本发明中业务系统处理方法的工作流程图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
如图1所示,一种基于轻量规则的业务处理引擎,包括解析器、匹配器和执行器,解析器用于解析规则库输入的规则,并将解析后的规则发送至匹配器;匹配器用于接收用户请求参数、接收解析器发送的规则、储存规则、将用户请求参数和规则进行匹配生成匹配的规则列表以及发送匹配的规则列表至执行器;执行器用于接收匹配器发送的匹配的规则列表和对匹配的规则列表进行执行。
如图2所示,规则包括规则头、条件块以及行为块。规则头以rule标识开始,后接规则名称;条件块以if标识开始,条件块内部可编写多个条件,以换行符分隔不同的条件。各个条件之间是“与(and)”的关系,“或(or)”关系需编写在同一个条件内,如逻辑:A and(Bor C),需编写成:
if
A
B or C
A是一个条件,B or C作为一个条件;行为块以then标识开始,行为块内部可编写多个行为。当某一规则的所有条件满足时,其行为块中的所有行为将会被执行。
如图3所示,解析器根据规则模板对规则库输入的规则进行解析,遍历所有规则中的所有条件,去重后得到全部条件的集合;并建立条件-规则的映射关系,记录该条件在哪条规则中出现。例如,条件1在规则A及规则C中出现,那么就会建立条件1到规则A和规则C的指向关系;其余条件的指向关系以此类推,解析器处理后的数据存储于LHS缓存中。规则库输入的规则经过解析器处理后,可得到全部条件的列表及条件与规则的映射关系,以及包含所有规则的一个计数器,计数器初始值均为0。
如图4所示,匹配器的匹配方法包括如下步骤:
匹配器遍历所有的条件列表,并将请求参数按照条件列表进行匹配判断,若用户请求参数符合当前的条件,则在对应的规则的计数器中增加1;遍历完所有的条件后,可得到计数器中的数据值,计数器中的计数值代表某条规则中条件符合的个数;对计数器中的所有规则进行遍历,当计数器中该规则的计数与该规则本身带有的条件数量相等时,说明该规则的所有条件均满足,即可以执行该规则的动作,放入匹配规则列表中;完成计数器中所有规则的遍历后,便得到了本次请求所需要执行的规则及其相应的动作。以图3为例,计数器中所有规则的初始值均为0,假设条件1,3,4在某一参数下为真,条件2不为真,那么最终规则A计数为2,规则B计数为1,规则C计数为3;且规则A自身条件数为3,规则B条件数为2,规则C条件数为3;即规则C满足所有条件,可以执行该规则。
得到匹配规则后,将所需执行的规则交由执行器进行执行。例如,可设定某一业务规则:当版本号大于184,且渠道号为vac,且订购的产品id为006032,那么将给予95折的折扣。
编写的规则如下:
rule‘营销折扣’
if
version>184
channel=vac
productid=006032
then
discount=0.95
如图5所示,一种业务系统的处理方法,业务系统包括上述的任意一种基于轻量规则的业务处理引擎和业务处理逻辑;业务系统的处理方法包括如下步骤:
S1.用户请求输入轻量规则的业务处理引擎后,通过规则匹配和规则执行后,对用户的请求参数进行修改,并将修改后的参数交由业务处理逻辑进行处理;
S2.业务处理逻辑与外部资源方系统交互完成后,再将处理结果返回至用户侧。
轻量规则引擎接收两个输入,分别为用户请求输入和规则库输入。规则库可由业务人员进行维护,通过修改规则库,无需进行业务系统的代码发布即可实现系统行为的变更。
上述说明是针对本发明较佳实施例的详细说明,但实施例并非用以限定本发明的专利申请范围,凡本发明所提示的技术精神下所完成的同等变化或修饰变更,均应属于本发明所涵盖专利范围。