开放式规则流引擎分析方法、装置、终端设备及存储介质与流程

文档序号:17475316发布日期:2019-04-20 06:05阅读:139来源:国知局
开放式规则流引擎分析方法、装置、终端设备及存储介质与流程

本发明涉及数据分析领域,尤其涉及一种开放式规则流引擎分析方法、装置、终端设备及存储介质。



背景技术:

目前,在互联网时代,越来越多的业务场景适合采用规则引擎解决方案,drools是常用的开源业务规则引擎,但执行过程并不透明,相当于一个黑盒,无法知晓每一时刻所用到的数据变量的具体的值与其变化趋势,条件与子条件的命中与否,从而无法跟踪规则执行的具体情况,加大了规则调试及数据分析的难度。



技术实现要素:

本发明的主要目的在于提出一种开放式规则流引擎分析方法、装置、终端设备及存储介质,旨在解决现有技术中无法跟踪规则执行情况的技术问题。

为实现上述目的,本发明提供一种开放式规则流引擎分析方法,所述开放式规则流引擎分析方法包括以下步骤:

获取待分析业务数据,将所述待分析业务数据写入预设多个规则流中进行执行;

提取每一个所述规则流中各分支的节点信息,在所述节点信息中执行脚本监控程序,以使所述脚本监控程序记录当前节点的执行信息;

根据所述执行信息对多个所述规则流进行比对分析;

根据分析结果确定目标规则流并进行优化。

优选地,所述提取每一个所述规则流中各分支的节点信息,在所述节点信息中执行脚本监控程序,以使所述脚本监控程序记录当前节点的执行信息,包括:

提取每一个所述规则流中各分支的节点信息,获取预先存有的脚本监控程序,在所述节点信息上设置所述脚本监控程序并执行,以使所述脚本监控程序记录当前节点的执行信息。

优选地,所述提取每一个所述规则流中各分支的节点信息,获取预先存有的脚本监控程序,在所述节点信息上设置所述脚本监控程序并执行,以使所述脚本监控程序记录当前节点的执行信息之前,所述方法还包括:

获取历史节点信息表,根据所述历史节点信息表查找所述规则流中各分支的节点信息。

优选地,所述根据所述执行信息对多个所述规则流进行比对分析之前,所述方法还包括:

获取所述脚本监控程序记录的当前节点的执行信息,提取所述当前节点中的变量信息,根据所述变量信息在所述执行信息中查找对应的使用信息,将所述变量信息和对应的使用信息生成预设使用表,并将所述预设使用表作为快照信息;

所述根据所述执行信息对多个所述规则流进行比对分析,包括:

提取所述快照信息中的变量信息以及对应的使用信息,根据所述使用信息统计所述规则流中的变量的使用次数,根据所述变量信息以及所述使用次数对多个所述规则流进行比对分析。

优选地,所述根据分析结果确定目标规则流并进行优化,包括:

根据所述变量信息以及所述使用次数对所述规则流进行由大至小排序,从排序结果中选取前预设个数的规则流作为所述目标规则流,并查找所述目标规则流中的使用次数未达到预设阈值的变量信息,以及从排序结果中选取达到所述预设阈值的变量信息对应的参考规则流;

将所述目标规则流中的所述未达到预设阈值的变量信息进行删除以及将所述参考规则流中达到所述预设阈值的变量信息合并至所述目标规则流。

优选地,所述执行信息包括执行的变量,执行的变量的值以及规则流中的命中规则;

所述根据所述执行信息对多个所述规则流进行比对分析之后,所述方法还包括:

接收用户的查看指令,根据所述查看指令展示所述执行的变量,执行的变量的值以及规则流中的命中规则。

优选地,所述根据分析结果确定目标规则流并进行优化之后,所述方法包括:

接收用户输入的修改指令,根据所述修改指令对所述目标规则流进行在线修改。

此外,为实现上述目的,本发明还提出一种开放式规则流引擎分析装置,所述开放式规则流引擎分析装置包括:

获取模块,用于获取待分析业务数据,将所述待分析业务数据写入预设多个规则流中进行执行;

执行模块,用于提取每一个所述规则流中各分支的节点信息,在所述节点信息中执行脚本监控程序,以使所述脚本监控程序记录当前节点的执行信息;

分析模块,用于根据所述执行信息对多个所述规则流进行比对分析;

优化模块,用于根据分析结果确定目标规则流并进行优化。

此外,为实现上述目的,本发明还提出一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的开放式规则流引擎分析程序,所述开放式规则流引擎分析程序配置为实现如上所述的开放式规则流引擎分析方法的步骤。

此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有开放式规则流引擎分析程序,所述开放式规则流引擎分析程序被处理器执行时实现如上文所述的开放式规则流引擎分析方法的步骤。

本发明提出的开放式规则流引擎分析方法,通过获取规则流的节点信息,在节点上设有脚本监控程序,通过脚本监控程序监控各规则流的执行情况,并根据执行情况对各规则流进行比对分析,实现对规则流的优化。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的终端设备结构示意图;

图2为本发明开放式规则流引擎分析方法第一实施例的流程示意图;

图3为本发明开放式规则流引擎分析方法第二实施例的流程示意图;

图4为本发明开放式规则流引擎分析方法第三实施例的流程示意图;

图5为本发明开放式规则流引擎分析装置第一实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的终端设备结构示意图。

如图1所示,该终端设备可以包括:处理器1001,例如cpu,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如按键,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及开放式规则流引擎分析程序。

在图1所示的终端设备中,网络接口1004主要用于连接外网,与其他网络设备进行数据通信;用户接口1003主要用于连接用户终端,与终端进行数据通信;本发明终端设备通过处理器1001调用存储器1005中存储的开放式规则流引擎分析程序,并执行本发明实施例提供的开放式规则流引擎分析的实施方法。

基于上述硬件结构,提出本发明开放式规则流引擎分析方法实施例。

参照图2,图2为本发明开放式规则流引擎分析方法第一实施例的流程示意图。

在第一实施例中,所述开放式规则流引擎分析方法包括以下步骤:

步骤s10,获取待分析业务数据,将所述待分析业务数据写入预设多个规则流中进行执行。

需要说明的是,本实施例主要基于drools的规则流引擎,所述业务数据为用户的个人信息,还可为与用户相关的交易记录等,本实施对此并不限制,在本实施例中,以用户的个人信息为例进行说明,例如对合法用户进行信用卡发放业务,首先获取当前用户的个人信息,其中,个人信息包括姓名、性别、年龄、学历、电话、所在公司、职位、月收入、是否有房、是否有车、是否有信用卡等,从而通过用户的信息数据对用户进行分析。

在本实施例中,所述预设多个规则流可为制定的判定条件,例如包括规则1如果申请人既没房也没车,同时学历为大专及以下,并且月薪少于3000,那么不通过;规则2如果申请人既没房也没车,同时学历为大专或本科,并且月薪少于5000,那么不通过等,首先调用这些规则进行验证,如果这些规则全部通过,则进入发放信用卡流程。

在针对规则流还设有各个分支,以上时对合法用户流程的判定规则,在执行之后,还可设有分支针对合法用户的信用卡发放规则,例如包括规则1,如果申请人有房有车,或者月收入在20000以上,那么发放的信用卡信用额度为15000,规则2,如果申请人没房没车,但月收入在10000~20000之间,那么发放的信用卡信用额度为6000等规则,从而通过更精确的规则流的判定,筛选去满足条件的用户以及执行结果,实现业务的智能化。

需要说明的是,在本实施例中,对于规则1即没房也没车来说,是否有房和是否有车为当前节点的使用变量,通过跟踪记录变量的值、变量的值的变化情况以及条件命中情况分析整个规则流的业务执行逻辑。

步骤s20,提取每一个所述规则流中各分支的节点信息,在所述节点信息中执行脚本监控程序,以使所述脚本监控程序记录当前节点的执行信息。

需要说明的是,在该规则流引擎系统设计时,将规则流中各节点设有触发属性,即在各个节点执行时,调用脚本监控程序记录在分支流程中节点的执行情况,例如对于用户a的个人信息为本科,月薪收入4000,可检测到这条数据流为通过规则2的分支执行,即规则流中的规则2命中,而并没有执行规则1,且可以跟踪到当前用户a的学历信息、月薪收入具体是多少,从而可分析出变量的使用情况和规则的命中情况,实现对规则流的有效分析。

在具体实现中,针对规则1如果申请人既没房也没车,同时学历为大专及以下,并且月薪水少于5000,规则2如果申请人既没房也没车,同时学历为大专或本科,并且月薪少于5000,通过节点设置的脚本监控程序判断用户合法性的节点上,还可设在合法用户的信用卡发放规则的节点上,从而实现对各个节点的使用情况的监控。

步骤s30,根据所述执行信息对多个所述规则流进行比对分析。

在本实施例中,由于各个节点的脚本监控程序可监控各个节点的使用情况,从而可根据各个节点的使用情况进行比对分析,例如对于节点1使用的规则1如果申请人既没房也没车,同时学历为大专及以下,并且与薪水少于3000,那么不通过,以及规则2如果申请人既没房也没车,同时学历为大专或本科,并且月薪少于5000,对于用户a的个人信息为本科,月薪收入4000,可监测到这条数据流为通过规则2的分支执行,即规则流中的规则2命中,而并没有执行规则1,且可以跟踪到使用变量为月薪,使用变量月薪的值的变化情况,即在变量月薪的值为3000时并没有命中,在变量月薪的值为5000时命中,从而可统计出使用变量的情况,并得出月薪值为5000对应的规则2比规则1更优,从而可实现对各个规则流的对比分析。

步骤s40,根据分析结果确定目标规则流并进行优化。

需要说明的是,所述目标规则流为命中的规则流,可将命中的规则流进行统计,从而生成更符合当前业务数据的规则流,并可对规则流进行处理,实现对当前规则流的优化,提高数据处理效率。

本实施例通过上述方案,通过获取规则流的节点信息,在节点上设有脚本监控程序,通过脚本监控程序监控各规则流的执行情况,并根据执行情况对各规则流进行比对分析,实现对规则流的优化。

进一步地,如图3所示,基于第一实施例提出本发明开放式规则流引擎分析方法第二实施例,在本实施例中,所述步骤s20,包括:

步骤s201,提取每一个所述规则流中各分支的节点信息,获取预先存有的脚本监控程序,在所述节点信息上设置所述脚本监控程序并执行,以使所述脚本监控程序记录当前节点的执行信息。

需要说明的是,一般情况下,常用的业务规则引擎为开源的,但执行过程并不透明,因此无法知晓每一时刻所用到的数据变量的具体的值与其变化趋势,条件与子条件的命中与否,从而无法跟踪规则执行的具体情况,加大了规则调试及数据分析的难度,而本实施例中,在各节点上设有脚本监控程序,通过所述脚本监控程序监控各节点的使用情况,从而可实时跟踪各节点上变量的值以及变量的变化情况,实现对各规则流的分析比对。

进一步地,所述步骤s201之前,所述方法还包括:

步骤s202,获取历史节点信息表,根据所述历史节点信息表查找所述规则流中各分支的节点信息。

在本实施例中,为了实现对各节点的监控,首先需要确定各规则流中的各节点信息,可通过建立历史节点信息表,通过历史节点信息表与当前规则流进行比对,从而查找到各分支的节点信息。

在具体实现中,还可通过在设计规则流时,将各分支的节点信息打上预设标签,通过所述预设标签即可查找到各分支的节点信息,并将各分支的节点信息列入历史节点信息表,从而通过查找所述历史节点信息表确定各分支的节点信息,例如根据历史节点信息表,可判断出规则1的节点信息包括,节点1没房也没车,节点2学历为大专及以下,节点3薪水少于3000,从而实现对规则流的逻辑判断。

本实施例提供的方案,通过判断出规则流中各分支的节点信息,在节点信息上设有脚本监控程序,通过所述脚本监控程序实现对各节点使用情况的记录,从而实现在规则流引擎中对各规则流进行透明化分析。

进一步地,如图4所示,基于第一实施例或第二实施例提出本发明开放式规则流引擎分析方法第三实施例,在本实施例中,基于第一实施例进行说明,所述步骤s30之前,所述方法还包括:

步骤s301,获取所述脚本监控程序记录的当前节点的执行信息,提取所述当前节点中的变量信息,根据所述变量信息在所述执行信息中查找对应的使用信息,将所述变量信息和对应的使用信息生成预设使用表,并将所述预设使用表作为快照信息。

在本实施例中,所述脚本监控信息可通过快照的形式进行记录,在可通过其他方式进行记录,本实施例对此不作限制,在本实施例中,以快照的形式为最优进行说明,由于在较大系统中的规则流使用情况数据较大,在这种情况下,快照的形式进行缓存的数据一般占用空间较小,从而通过快照的形式记录数据的流向减少系统的使用空间,提高系统的运行效率。

在具体实现中,可通过获取脚本监控程序记录的当前节点的执行信息,所述执行信息可包括包括执行的变量,执行的变量的值以及规则流中的命中规则,还可包括变量的使用信息,提取当前节点中变量信息,从所述执行信息中得到变量信息以及对应的使用信息,将变量信息的执行情况保存在一个表中,通过表记录所述变量的使用信息,所述表即为所述快照信息。

所述步骤s30,包括:

步骤s302,提取所述快照信息中的变量信息以及对应的使用信息,根据所述使用信息统计所述规则流中的变量的使用次数,根据所述变量信息以及所述使用次数对多个所述规则流进行比对分析。

需要说明的是,在本实施例中,通过规则流中的变量以及变量的使用信息,其中所述使用信息为所述变量的使用次数,通过统计所述使用次数,对过个规则流中使用的参数,以及参数的使用次数的差异进行比对分析,从而对规则流中的具体变量进行更细化的分析,实现对规则流中的数据分析。

进一步地,所述步骤s40,包括:

步骤s401,根据所述变量信息以及所述使用次数对所述规则流进行由大至小排序,从排序结果中选取前预设个数的规则流作为所述目标规则流,并查找所述目标规则流中的使用次数未达到预设阈值的变量信息,以及从排序结果中选取达到所述预设阈值的变量信息对应的参考规则流。

需要说明的是,所述预设阈值为变量的使用次数的参考信息,例如5次,还可为其他阈值,本实施例对此不做限制,在本实施例中,以5次为例进行说明。

在本实施例中为了获取目标规则流,通过比较多个规则流中的变量以及使用次数,将使用次数最多的变量所在的规则流作为所述目标规则流,从而多个规则流中选择出更符合业务需求的规则流,提高规则流判断的准确性。

在具体实现中,除了根据排序结果选取使用次数最多的变量所在的规则流作为所述目标规则流之外,还可通过将排序后的规则流中选取变量信息达到预设阈值的规则流,从而保证优化后的规则流更符合业务的需求。

步骤s402,将所述目标规则流中的所述未达到预设阈值的变量信息进行删除以及将所述参考规则流中达到所述预设阈值的变量信息合并至所述目标规则流。

为了实现规则流的优化,在本实施例中,将使用次数比较少,或者并没有使用的变量则认为时冗余的变量,浪费规则流的判断资源,在这种情况下,可将这些冗余的变量进行删除,以及通过获取使用变量信息达到预设阈值的参考规则流,将参考规则流中的达到预设阈值的变量合并至所述目标规则流,从而提高规则流的判断效率,实现对规则流的优化。

进一步地,所述执行信息包括执行的变量,执行的变量的值以及规则流中的命中规则,所述步骤s30之后,所述方法还包括:

步骤s303,接收用户的查看指令,根据所述查看指令展示所述执行的变量,执行的变量的值以及规则流中的命中规则。

在本实施例中,由于在规则流中可根据监控的变量的使用情况,例如首先,获取规则流中的各个变量,在脚本信息中获取使用的变量的情况,因此,只有该变量使用过才会在脚本信息中采集到,没有采集到的变量信息即为未使用变量信息,可将采集的使用过的变量信息间接获取到未使用的变量信息,实现对变量的使用情况的分析,显示不同规则流的差异还可对采集的变量信息进行分析,确定哪些变量使用较多,从而该变量对应的规则更符合业务的信息匹配需求。

在本实施例中,还通过脚本监控多个规则流中的变量的使用情况与规则的命中情况,例如规则2中的学位的变量与规则1中的薪资的命中率高,在这种情况下,可见通过学位这个变量可更快速地匹配到目标用户,从而实现对规则流的透明化分析。

进一步地,所述步骤s40之后,所述方法还包括:

步骤s403,接收用户输入的修改指令,根据所述修改指令对所述目标规则流进行在线修改。

在本实施例中,由于基于drools规则流引擎调用的设备可设有guvnor,guvnor是一种drools的规则管理平台,通过guvnor可实现对规则的管理与动态编译,从而快速的相应业务的变化需求以及对规则的修改,并且drools规则引擎实现业务逻辑与业务规则的分离,实现业务规则的集中管理,可以动态修改业务规则,还可通过其他规则管理平台,本实施例对此不作限制。

本实施例提供的方案,还通过脚本监控多个规则流中的变量的使用情况与规则的命中情况,从而可实现对规则流的优化,可更快速地匹配到目标用户,并实现对规则流的透明化分析。

本发明进一步提供一种开放式规则流引擎分析装置。

参照图5,图5为本发明开放式规则流引擎分析装置第一实施例的功能模块示意图。

本发明开放式规则流引擎分析装置第一实施例中,该开放式规则流引擎分析装置包括:

获取模块10,用于获取待分析业务数据,将所述待分析业务数据写入预设多个规则流中进行执行。

需要说明的是,本实施例主要基于drools的规则流引擎,所述业务数据为用户的个人信息,还可为与用户相关的交易记录等,本实施对此并不限制,在本实施例中,以用户的个人信息为例进行说明,例如对合法用户进行信用卡发放业务,首先获取当前用户的个人信息,其中,个人信息包括姓名、性别、年龄、学历、电话、所在公司、职位、月收入、是否有房、是否有车、是否有信用卡等,从而通过用户的信息数据对用户进行分析。

在本实施例中,所述预设多个规则流可为制定的判定条件,例如包括规则1如果申请人既没房也没车,同时学历为大专及以下,并且月薪少于3000,那么不通过;规则2如果申请人既没房也没车,同时学历为大专或本科,并且月薪少于5000,那么不通过等,首先调用这些规则进行验证,如果这些规则全部通过,则进入发放信用卡流程。

在针对规则流还设有各个分支,以上时对合法用户流程的判定规则,在执行之后,还可设有分支针对合法用户的信用卡发放规则,例如包括规则1,如果申请人有房有车,或者月收入在20000以上,那么发放的信用卡信用额度为15000,规则2,如果申请人没房没车,但月收入在10000~20000之间,那么发放的信用卡信用额度为6000等规则,从而通过更精确的规则流的判定,筛选去满足条件的用户以及执行结果,实现业务的智能化。

需要说明的是,在本实施例中,对于规则1即没房也没车来说,是否有房和是否有车为当前节点的使用变量,通过跟踪记录变量的值、变量的值的变化情况以及条件命中情况分析整个规则流的业务执行逻辑。

执行模块20,用于提取每一个所述规则流中各分支的节点信息,在所述节点信息中执行脚本监控程序,以使所述脚本监控程序记录当前节点的执行信息。

需要说明的是,在该规则流引擎系统设计时,将规则流中各节点设有触发属性,即在各个节点执行时,调用脚本监控程序记录在分支流程中节点的执行情况,例如对于用户a的个人信息为本科,月薪收入4000,可检测到这条数据流为通过规则2的分支执行,即规则流中的规则2命中,而并没有执行规则1,且可以跟踪到当前用户a的学历信息、月薪收入具体是多少,从而可分析出变量的使用情况和规则的命中情况,实现对规则流的有效分析。

在具体实现中,针对规则1如果申请人既没房也没车,同时学历为大专及以下,并且月薪水少于5000,规则2如果申请人既没房也没车,同时学历为大专或本科,并且月薪少于5000,通过节点设置的脚本监控程序判断用户合法性的节点上,还可设在合法用户的信用卡发放规则的节点上,从而实现对各个节点的使用情况的监控。

分析模块30,用于根据所述执行信息对多个所述规则流进行比对分析。

在本实施例中,由于各个节点的脚本监控程序可监控各个节点的使用情况,从而可根据各个节点的使用情况进行比对分析,例如对于节点1使用的规则1如果申请人既没房也没车,同时学历为大专及以下,并且与薪水少于3000,那么不通过,以及规则2如果申请人既没房也没车,同时学历为大专或本科,并且月薪少于5000,对于用户a的个人信息为本科,月薪收入4000,可监测到这条数据流为通过规则2的分支执行,即规则流中的规则2命中,而并没有执行规则1,且可以跟踪到使用变量为月薪,使用变量月薪的值的变化情况,即在变量月薪的值为3000时并没有命中,在变量月薪的值为5000时命中,从而可统计出使用变量的情况,并得出月薪值为5000对应的规则2比规则1更优,从而可实现对各个规则流的对比分析。

优化模块40,用于根据分析结果确定目标规则流并进行优化。

需要说明的是,所述目标规则流为命中的规则流,可将命中的规则流进行统计,从而生成更符合当前业务数据的规则流,并可对规则流进行处理,实现对当前规则流的优化,提高数据处理效率。

本实施例通过上述方案,通过获取规则流的节点信息,在节点上设有脚本监控程序,通过脚本监控程序监控各规则流的执行情况,并根据执行情况对各规则流进行比对分析,实现对规则流的优化。

此外,为实现上述目的,本发明还提出一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的开放式规则流引擎分析程序,所述开放式规则流引擎分析程序配置为实现如上文所述的开放式规则流引擎分析方法的步骤。

此外,本发明实施例还提出一种存储介质,所述存储介质上存储有开放式规则流引擎分析程序,所述开放式规则流引擎分析程序被处理器执行如上文所述的开放式规则流引擎分析方法的步骤。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台智能终端(可以是手机,计算机,终端设备,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1