本公开涉及业务核对技术领域,具体而言,涉及一种基于规则引擎的业务核对方法、装置及设备。
背景技术:
业务参数巡检,是软件系统针对业务处理逻辑是否正确的校验,可通过输入、输出参数按照业务规则进行核对,故,在下文中,业务参数巡检也称业务核对。
目前,可针对不同的业务场景,编写不同的核对脚本,最后统一运行核对脚本来对业务进行核对。但,在编写每个核对脚本时,均需分析需要使用的日志,且业务场景的复杂度决定了核对脚本的复杂度。
技术实现要素:
有鉴于此,本说明书的一个或多个实施例提出一种基于规则引擎的业务核对方法、装置及设备,以提高业务核对效率。
根据本说明书一个或多个实施例的第一个方面,提供了一种基于规则引擎的业务核对方法,包括:
确定与待核对业务匹配的业务规则集合;
遍历所述业务规则集合中的各业务规则,将所述待核对业务的业务数据输入至少一个数据节点,以使所述至少一个数据节点基于所述业务规则集合确定待核对的业务规则以及基于所述业务数据确定出与各待核对的业务规则对应的业务参数;
根据对应于各待核对的业务规则的业务参数运行各待核对的业务规则,得到对应于各待核对的业务规则的业务核对结果。
可选的,确定与待核对业务匹配的业务规则集合,包括:
确定与所述待核对业务所属的应用的应用标识和/或待核对业务的业务场景匹配的业务规则集合。
可选的,各所述数据节点基于各自的预设筛选条件从所述业务规则集合中筛选得到待核对的业务规则,以及基于各自的预设取值表达式从所述业务数据中筛选得到待核对的业务规则对应的业务参数。
可选的,根据对应于各待核对的业务规则的业务参数运行各待核对的业务规则,得到对应于各待核对的业务规则的业务核对结果,包括:
将待核对的业务规则的规则表达式以及与待核对的业务规则对应的业务参数输入规则解析器进行解析,得到解析结果;
根据所述解析结果确定对应于待核对的业务规则的业务核对结果。
可选的,所述方法还包括:
在将待核对的业务规则的规则表达式以及与待核对的业务规则对应的业务参数输入规则解析器进行解析之前,使所述规则解析器重载支持数组作为运算参数的运算符号。
可选的,所述方法还包括:
在得到待核对的业务规则以及所述业务参数之后,将所述待核对的业务规则放入队列,将所述业务参数放入规则引擎上下文;
根据对应于各待核对的业务规则的业务参数运行各待核对的业务规则,得到对应于各待核对的业务规则的业务核对结果,包括:
消费所述队列中的待核对的业务规则,以及从规则引擎上下文中获取对应于待核对的业务规则的业务参数,将待核对的业务规则以及对应于待核对业务规则的业务参数输入规则解析器,得到解析结果;
根据所述解析结果确定对应于待核对的业务规则的业务核对结果,包括:
响应于所述解析结果为解析通过,确定待核对的业务规则核对通过,响应于解析结果为解析失败,确定待核对的业务规则核对失败。
可选的,所述方法还包括:
在确定与待核对业务匹配的业务规则集合之前,获取来自业务系统的所述业务数据,其中,所述待核对业务为已在所述业务系统中处理完成的业务,所述业务数据为处理所述待核对业务过程中产生的业务上下文。
可选的,所述方法还包括:
在获取所述业务数据之后,将所述业务数据转换为键-值对,其中,所述键-值对中,键包括所述业务数据的对应的属性信息,值表示所述业务数据的取值。
根据本说明书一个或多个实施例的第二个方面,提供了一种基于规则引擎的业务核对装置,包括:
第一确定模块,用于确定与待核对业务匹配的业务规则集合;
第二确定模块,用于遍历所述业务规则集合中的各业务规则,将所述待核对业务的业务数据输入至少一个数据节点,以使所述至少一个数据节点基于所述业务规则集合确定待核对的业务规则以及基于所述业务数据确定出与各待核对的业务规则对应的业务参数;
核对模块,用于根据对应于各待核对的业务规则的业务参数运行各待核对的业务规则,得到对应于各待核对的业务规则的业务核对结果。
可选的,所述第一确定模块用于:
确定与所述待核对业务所属的应用的应用标识和/或待核对业务的业务场景匹配的业务规则集合。
可选的,各所述数据节点基于各自的预设筛选条件从所述业务规则集合中筛选得到待核对的业务规则,以及基于各自的预设取值表达式从所述业务数据中筛选得到待核对的业务规则对应的业务参数。
可选的,所述核对模块,包括:
输入单元,用于将待核对的业务规则的规则表达式以及与待核对的业务规则对应的业务参数输入规则解析器进行解析,得到解析结果;
确定单元,用于根据所述解析结果确定对应于待核对的业务规则的业务核对结果。
可选的,所述装置还包括:
重载模块,用于在将待核对的业务规则的规则表达式以及与待核对的业务规则对应的业务参数输入规则解析器进行解析之前,使所述规则解析器重载支持数组作为运算参数的运算符号。
可选的,所述装置还包括:
存入模块,用于在得到待核对的业务规则以及所述业务参数之后,将所述待核对的业务规则放入队列,将所述业务参数放入规则引擎上下文;
所述核对模块用于:
消费所述队列中的待核对的业务规则,以及从规则引擎上下文中获取对应于待核对的业务规则的业务参数,将待核对的业务规则以及对应于待核对业务规则的业务参数输入规则解析器,得到解析结果;
所述确定单元用于,响应于所述解析结果为解析通过,确定待核对的业务规则核对通过,响应于解析结果为解析失败,确定待核对的业务规则核对失败。
可选的,所述装置还包括:
获取模块,用于在确定与待核对业务匹配的业务规则集合之前,获取来自业务系统的所述业务数据,其中,所述待核对业务为已在所述业务系统中处理完成的业务,所述业务数据为处理所述待核对业务过程中产生的业务上下文。
可选的,所述装置还包括:
转换模块,用于在获取所述业务数据之后,将所述业务数据转换为键-值对,其中,所述键-值对中,键包括所述业务数据的对应的属性信息,值表示所述业务数据的取值。
根据本说明书一个或多个实施例的第三个方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任意一种基于规则引擎的业务核对方法。
从上面所述可以看出,本说明书一个或多个实施例的基于规则引擎的业务核对方法,在对业务进行核对时,通过定义规则引擎中的数据节点,确定筛选出与待核对的业务中待核对的业务规则,以及待核对的业务规则规则对应的业务参数业务数据,再在规则引擎中基于对应于待核对的业务规则的业务数据参数执行相应业务规则,得到对应于待核对的各业务规则的业务核对结果,从而使得业务核对逻辑可通过规则配置的方式形成核对规则,从而可利用规则引擎已有的规则匹配以及规则执行功能来处理业务核对流程,进而可通过规则引擎按照待核对业务匹配并执行规则,从而得到业务核对结果,提高了业务核对的效率。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一个或多个实施例的提供的业务系统框架示意图;
图2是本说明书一个或多个实施例提供的一种基于规则引擎的业务核对方法的流程图;
图3是本说明书一个或多个实施例提供的一种规则模型的示意图;
图4是本说明书一个或多个实施例提供的基于规则引擎的业务核对方法的流程图;
图5是根据本说明书一个或多个实施例的基于规则引擎的业务核对装置的框图;
图6是根据本说明书一个或多个实施例所提供的一种更为具体的电子设备硬件结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
在本说明书的一个或多个实施例中,如图1所示,涉及业务系统11以及规则引擎12,其中,业务系统11例如为业务提供方,规则引擎12中可包括业务提供方定制的业务规则。业务系统11在处理业务时,可根据接收到的业务数据从规则引擎12中调用相应业务规则进行业务决策。其中,业务提供方可对其定制的业务规则进行划分,形成如图1中所示的业务规则集合1至业务规则集合n,其中,n为正整数。为了核对业务处理逻辑的正确性(以下简称业务核对),当一个业务处理完成时,规则引擎12可从业务系统11中获取待核对业务的业务数据,基于该业务数据为待核对业务进行数据准备,得到待核对业务对应的业务规则以及各业务规则对应的业务数据,基于对应于待核对的业务规则对应的业务数据运行该业务规则,可得到业务核对结果。
图2是根据本说明书一个或多个实施例的一种基于规则引擎的业务核对方法的流程图,该方法可以由规则引擎执行,如图2所示,该方法包括:
步骤202:确定与待核对业务匹配的业务规则集合;
其中,待核对业务例如可以是上述业务系统提供的业务,终端设备通过安装应用程序,可通过执行该应用程序请求业务系统处理业务。业务例如是业务系统可执行的各种业务处理逻辑(也称业务处理流程),以支付业务系统为例,业务处理逻辑例如是业务系统根据接收到的支付请求响应该支付请求的处理流程。其中,业务规则是指对业务定义和约束的描述,用于维持业务结构或控制和影响业务的行为。业务规则可将业务系统处理的业务逻辑从程序代码中抽取出来,将其转变为简单的业务规则,以结构化的业务规则数据来表示业务行为,采用类自然语言来描述,并集中存储在规则库中。业务规则可由业务人员创建、实时更新和调试,业务规则之间的复杂逻辑关系由可规则引擎处理。
例如,可确定与所述待核对业务所属的应用的标识和/或待核对业务的业务场景匹配的业务规则集合,得到与待核对业务匹配的业务规则集合。应用的标识例如可以是业务系统提供的应用的名称或代码等。业务场景例如是执行业务处理流程的场景。其中,不同的业务场景例如对应于不同的业务提供方,例如,以支付业务系统为例,不同购物平台发送的交易数据对应于不同的业务场景。
例如,一个规则集合中可包括预先按照业务规则的分类划分好的同一类的业务规则,其中,业务规则可以业务场景进行分类,或者,还可按照业务规则所实现的功能进行分类。
步骤204:遍历所述业务规则集合中的各业务规则,将所述待核对业务的业务数据输入至少一个数据节点,以使所述至少一个数据节点基于所述业务规则集合确定待核对的业务规则以及基于所述业务数据确定出与各待核对的业务规则对应的业务参数;
例如,各数据节点可基于各自预先设置的筛选规则从业务规则集合中筛选出参与业务核对的业务规则。对于一个业务规则集合来说,并非该集合中所有的业务规则在各业务场景中均会被使用,所以可根据业务规则预先配置数据节点的筛选条件;又例如,对于一些业务场景,业务参数的取值具有一定的数值限制,例如,对用户等级的校验,对最低消费金额的校验等,故,可通过为数据节点配置取值表达式来对业务参数进行筛选。
其中,业务规则对应的业务参数可以是在处理上述待核对业务过程中,运行该业务规则的业务参数,例如,业务规则为a≥b,其中,a的取值以及b的取值为业务参数。
步骤206:根据对应于各待核对的业务规则的业务参数运行各待核对的业务规则,得到对应于各待核对的业务规则的业务核对结果。
本说明书一个或多个实施例的基于规则引擎的业务核对方法,在对业务进行核对时,通过规则引擎中的数据节点,确定出与待核对业务中待核对的业务规则,以及待核对的业务规则对应的业务参数,再在规则引擎中基于对应于待核对的业务规则的业务参数执行相应业务规则,得到对应于待核对的业务规则的业务核对结果,从而使得业务核对逻辑可通过规则配置的方式形成核对规则,从而可利用规则引擎已有的规则匹配以及规则执行功能来处理业务核对流程,提高了业务核对的效率。
在本说明书的一个或多个实施例中,确定与待核对业务匹配的业务规则集合可包括:确定与所述待核对业务所属的应用的应用标识和/或待核对业务的业务场景匹配的业务规则集合。举一个例子,待核对业务为某购物app对应的业务,则该购物app的标识为待核对业务所属的应用的应用标识。例如,规则引擎可根据应用的名称(为应用的标识的一个示例)以及待核对业务的业务场景从业务系统的缓存中匹配到待核对的业务规则集合,其中,业务系统在一段时间内调用过的业务规则存储于业务系的缓存中。
在本说明书的一个或多个实施例中,各所述数据节点基于各自的预设筛选条件从所述业务规则集合中筛选得到待核对的业务规则,以及基于各自的预设取值表达式从所述业务数据中筛选得到待核对的业务规则对应的业务参数。例如,规则引擎运行时,遍历业务规则集合,对于各业务规则,使业务数据依次流经预先配置的多个数据节点中的各数据节点,各数据节点运行预先配置的筛选条件以及取值表达式,通过筛选条件从业务规则集合中筛选出待核对的业务规则,通过取值表达式对流经数据节点的业务数据进行取值,以得到对应于待核对的业务规则的业务参数;其中,筛选条件如果运行失败,表示当前业务规则无需进行后续核对,也即,该业务规则并非待核对的业务规则,而筛选条件运行成功的业务规则被确定为待核对的业务规则。为各数据节点配置筛选条件可使得业务数据经过各数据节点时,可筛除一些不必要核对的业务规则,从而减少需核对的业务规则,可提高业务核对效率。举例说明,业务数据以一个数组为例,假设该数组中存在两个对象,每个对象具有两个属性,第一个对象是a=1、b=2,第二个对象是a=2,b=2,假设上述筛选条件是数值大于1,则,两个对象中,a=1不满足这个筛选条件,则a=1、b=2这条业务规则被过滤掉,a=2,b=2这条业务规则满足筛选条件,被留下,再利用取值表达式,取数组项中满足筛选条件的对象的值,即取a=2,b=2中b=2的值。
再举一个例子,假设在一条业务数据中,用户使用账户余额以及账户中的红包组合的方式付款,其中,使用账户余额支付10元,使用红包支付2元,则在该条业务数据中,资产类型(其中,资产类型可以是上述例子中的对象a)包括:账户余额以及红包,资产金额的数值(资产金额的数值可以是上述例子中的对象b)包括10以及2,假设业务数据经过的数据节点的筛选条件为:资产=账户余额,则该条业务数据经过数据节点时,使用余额付款的业务规则被保留,使用红包支付的业务规则被过滤掉,对于使用余额付款的业务数据,通过数据节点的取值表达式进行取值,例如,使用取值表达式dolar(b)对使用余额付款的业务数据进行取值,取得的数值为10,则数值10即为使用余额进行付款的业务规则对应的业务参数,在对业务规则进行核对时,使用该业务参数对业务规则执行的正确性进行核对。
在本说明书的一个或多个实施例中,根据对应于各待核对的业务规则的业务参数运行各待核对的业务规则,得到对应于各待核对的业务规则的业务核对结果可包括:将待核对的业务规则的规则表达式以及与待核对的业务规则对应的业务参数输入规则解析器进行解析,得到解析结果;根据所述解析结果确定对应于待核对的业务规则的业务核对结果。例如,可将当前待核对的业务规则以及与该业务规则对应的业务参数作为规则解析器的输入,在规则解析器中对待核对的业务规则进行解析,如果待核对的业务规则解析成功,则可确定当前待核对的业务规则的业务核对结果为通过,如果待核对的业务规则解析失败,则可确定当前待核对的业务规则的业务核对结果失败。举一个例子,假设待核对的业务规则的取值表达式为a=b,该业务规则对应的业务参数中,a的取值为1,b的取值为2,则在规则解析器对该业务规则进行核对时,将a=1,以及b=2代入取值表达式a=b,则业务规则解析失败,从而可得到上述业务规则的业务核对结果为失败。
在本说明书的一个或多个实施例中,在将待核对的业务规则的规则表达式以及与待核对的业务规则对应的业务参数输入规则解析器进行解析之前,使所述规则解析器重载支持数组作为运算参数的运算符号。例如,规则解析器重载的运算符可包括:!=,==,>,>=,<,<=,!等,规则解析器在重载了这些运算符后,可支持数组类型参数作为运算数,举个例子,对于参数$a>1,参数a为一个数组,那么数组a中所有项均满足大于1的条件返回true,否则返回为false,其余以此类推。如果规则解析器并未重载这些运算符,则如需处理对数组类型的参数,则需编写如下脚本:map($a,(x)=>(if(x>1)true;elsefalse))。显然,规则解析器预先加载上述运算符可提高规则解析器的处理效率。此外,为了进行业务核对,规则引擎还可支持in以及contains等关键字与字符串处理内置函数。其中,规则解析器例如可以使用aviator引擎或mvel引擎。
在本说明书的一个或多个实施例中,为了提高规则引擎的执行效率,在进行业务核对时,可采用生产者以及消费者模式,其中,生产者可以是在业务核对过程中用于得到待核对业务规则的规则引擎匹配器,消费者可以是用于消费待核对业务规则的规则引擎执行器,在生产者以及消费者模式中,生产者以及消费者是两类线程,为了解耦生产者和消费者的关系,二者可采用共享的数据区域,生产者生产数据之后直接放置在共享数据区中,并不需要关心消费者的行为,而消费者只需要从共享数据区中去获取数据,无需关心生产者的行为,该共享数据区域中具备线程间并发协作的功能,以使生产者以及消费者这两种线程可并发协作。基于规则引擎匹配器和规则引擎执行器之间的生产者以及消费者的关系,在对待核对的业务规则进行数据准备时,规则引擎匹配器将其基于上述筛选条件筛选得到的待核对的业务规则放入队列中,将其基于上述取值表达式得到的对应于待核对的业务规则的参数放入规则引擎上下文中,取值规则引擎上下文可存储于数据总线中,在进行业务核对时,通过规则引擎执行器消费队列中的待核对的业务规则,对于各待核对的业务规则,从规则引擎上下文中获取对应的业务参数,从而可基于规则引擎匹配器和规则引擎执行器之间的多线程并发协作,使得业务规则运算在ms级别,从而提高了业务核对效率。基于此,上述基于规则引擎的业务核对方法还可包括:在得到待核对的业务规则以及所述业务参数之后,将所述待核对的业务规则放入队列,将所述业务参数放入规则引擎上下文;根据对应于各待核对的业务规则的业务参数运行各待核对的业务规则,得到对应于各待核对的业务规则的业务核对结果,包括:消费所述队列中的待核对的业务规则,以及从规则引擎上下文中获取对应于待核对的业务规则的业务参数,将待核对的业务规则以及对应于待核对业务规则的业务参数输入规则解析器,得到解析结果;根据所述解析结果确定对应于待核对的业务规则的业务核对结果,包括:响应于所述解析结果为解析通过,确定待核对的业务规则核对通过,响应于解析结果为解析失败,确定待核对的业务规则核对失败。
需要说明的是,由于上述多个数据节点之间具有数据上的依赖性,例如,b数据节点需要使用a数据节点产生的数据,故,如果经过上述多个数据节点筛选得到的待核对的业务规则以及对应于该业务规则的业务参数均放入队列,则会使得业务规则集合中的业务规则均执行完才可去队列中获取相应业务参数,这样显然是不可行的,所以,在上文中,将筛选得到的待核的业务规则放入队列,将对应于待核对的业务规则的业务数据放入规则引擎上下文中。
在本说明书的一个或多个实施例中,上述基于规则引擎的业务核对方法还可包括:在确定与待核对业务匹配的业务规则集合之前,获取来自业务系统的所述业务数据,其中,所述待核对业务为已在所述业务系统中处理完成的业务,所述业务数据为处理所述待核对业务过程中产生的业务上下文。举个例子,对于一待核对业务a,在业务系统处理完该业务a时,业务系统可将该业务a的业务上下文发送给规则引擎,以触发规则引擎对该业务a进行业务核对,从而可在业务执行后,即触发业务核对流程,可及时获知业务处理逻辑的正确性。
在本说明书的一个或多个实施例中,上述基于规则引擎的业务核对方法还可包括:在获取所述业务数据之后,将所述业务数据转换为键-值(key-value)对,其中,所述键-值对中,键包括所述业务数据的对应的属性信息,值表示所述业务数据的取值。举例说明,假设有一个类,类名是a,这个类中有个属性为b,b这个类中有个属性为c,则c描述为a.b.c,其中,a假设为一笔交易,b为该交易是某购物app发起,c为该交易的金额。规则引擎可将a.b.c处理为a.b.c=1,其中,c为参数名,a.b表示c参数的一种属性信息,即,c参数是属于b这个类,以及b是属于a这个类,1是参数c的取值。
图3是本说明书一个或多个实施例提供的一种规则模型的示意图,如图3所示,规则模型包括:数据准备模块31以及表达式集32。其中,数据准备模块31包括n个数据节点,数据节点的个数可根据待核对的业务规则的复杂度进行扩展,数据节点可预先配置有筛选条件和取值表达式,当业务数据流经数据节点时,运行数据节点的筛选条件和取值表达式,将得到的数据节点的值(即,上述业务参数)放入规则引擎上下文中。对于各待核对的业务规则,如果筛选条件执行失败,则该业务规则的数据准备失败,该业务规则不参与业务核对,如果筛选条件执行成功,则该业务规则的数据准备成功,将该业务规则放入队列中。规则执行表达式集在对业务进行核对时,从队列中获取业务规则,从规则引擎上下文中获取与业务规则对应的业务数据。
图4是本说明书一个或多个实施例提供的基于规则引擎的业务核对方法的流程图,如图4所示,该方法可由业务系统、规则引擎匹配器以及规则引擎执行器配合执行,其中,规则引擎匹配器以及规则引擎执行器可以设置于规则引擎中,该方法可包括如下处理:
步骤402:埋点获取待核对业务运行上下文;
步骤404:将业务系统接口的出入参数转换为key-value对;
以上步骤402以及步骤404可由业务系统执行;
步骤406:根据应用名称、业务场景从业务系统的缓存中匹配待核对业务对应的业务规则集合;
步骤408:遍历业务规则集合,进行数据准备,由于上文中以对数据准备进行了详细说明,此处不再赘述。
步骤410:将筛选得到的业务数据放入数据总线,业务规则放入队列中;
以上步骤406至步骤410可由规则引擎执行器执行;
步骤412:遍历业务规则队列;
步骤414:获取本次循环得到的业务规则;
步骤416:从数据总线中获取当前循环得到的业务规则对应的业务参数;
步骤418:将当前循环得到的业务规则以及该业务规则对应的业务数据输入规则解析器进行执行;
步骤420:判断步骤418的执行结果是否通过,如果通过,执行步骤422,如果通过,执行步骤424;
步骤422:返回业务核对通过,并返回执行步骤414,继续核对其他业务规则;
步骤424:返回执行失败的业务规则与对应的业务参数。
需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
图5是根据本说明书一个或多个实施例的基于规则引擎的业务核对装置的框图,如图5所示,该装置50包括:第一确定模块51,用于确定与待核对业务匹配的业务规则集合;第二确定模块52,用于遍历所述业务规则集合中的各业务规则,将所述待核对业务的业务数据输入至少一个数据节点,以使所述至少一个数据节点基于所述业务规则集合确定待核对的业务规则以及基于所述业务数据确定出与各待核对的业务规则对应的业务参数;核对模块53,用于根据对应于各待核对的业务规则的业务参数运行各待核对的业务规则,得到对应于各待核对的业务规则的业务核对结果。
在本说明书的一个或多个实施例中,所述第一确定模块可用于:确定与所述待核对业务所属的应用的应用标识和/或待核对业务的业务场景匹配的业务规则集合。
在本说明书的一个或多个实施例中,各所述数据节点基于各自的预设筛选条件从所述业务规则集合中筛选得到待核对的业务规则,以及基于各自的预设取值表达式从所述业务数据中筛选得到待核对的业务规则对应的业务参数。
在本说明书的一个或多个实施例中,所述核对模块可包括:输入单元,用于将待核对的业务规则的规则表达式以及与待核对的业务规则对应的业务参数输入规则解析器进行解析,得到解析结果;确定单元,用于根据所述解析结果确定对应于待核对的业务规则的业务核对结果。
在本说明书的一个或多个实施例中,所述装置还可包括:重载模块,用于在将待核对的业务规则的规则表达式以及与待核对的业务规则对应的业务参数输入规则解析器进行解析之前,使所述规则解析器重载支持数组作为运算参数的运算符号。
在本说明书的一个或多个实施例中,所述装置还可包括:存入模块,用于在得到待核对的业务规则以及所述业务参数之后,将所述待核对的业务规则放入队列,将所述业务参数放入规则引擎上下文;所述核对模块用于:消费所述队列中的待核对的业务规则,以及从规则引擎上下文中获取对应于待核对的业务规则的业务参数,将待核对的业务规则以及对应于待核对业务规则的业务参数输入规则解析器,得到解析结果;所述确定单元用于,响应于所述解析结果为解析通过,确定待核对的业务规则核对通过,响应于解析结果为解析失败,确定待核对的业务规则核对失败。
在本说明书的一个或多个实施例中,所述装置还可包括:获取模块,用于在确定与待核对业务匹配的业务规则集合之前,获取来自业务系统的所述业务数据,其中,所述待核对业务为已在所述业务系统中处理完成的业务,所述业务数据为处理所述待核对业务过程中产生的业务上下文。
在本说明书的一个或多个实施例中,所述装置还可包括:转换模块,用于在获取所述业务数据之后,将所述业务数据转换为键-值对,其中,所述键-值对中,键包括所述业务数据的对应的属性信息,值表示所述业务数据的取值。
图6示出了本说明一个或多个实施例所提供的一种更为具体的电子设备硬件结构示意图,如图6所示,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用rom(readonlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本公开难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
本公开的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
1.一种基于规则引擎的业务核对方法,包括:
确定与待核对业务匹配的业务规则集合;
遍历所述业务规则集合中的各业务规则,将所述待核对业务的业务数据输入至少一个数据节点,以使所述至少一个数据节点基于所述业务规则集合确定待核对的业务规则以及基于所述业务数据确定出与各待核对的业务规则对应的业务参数;
根据对应于各待核对的业务规则的业务参数运行各待核对的业务规则,得到对应于各待核对的业务规则的业务核对结果。
2.根据权利要求1所述的方法,确定与待核对业务匹配的业务规则集合,包括:
确定与所述待核对业务所属的应用的应用标识和/或待核对业务的业务场景匹配的业务规则集合。
3.根据权利要求1所述的方法,
各所述数据节点基于各自的预设筛选条件从所述业务规则集合中筛选得到待核对的业务规则,以及基于各自的预设取值表达式从所述业务数据中筛选得到待核对的业务规则对应的业务参数。
4.根据权利要求1所述的方法,根据对应于各待核对的业务规则的业务参数运行各待核对的业务规则,得到对应于各待核对的业务规则的业务核对结果,包括:
将待核对的业务规则的规则表达式以及与待核对的业务规则对应的业务参数输入规则解析器进行解析,得到解析结果;
根据所述解析结果确定对应于待核对的业务规则的业务核对结果。
5.根据权利要求4所述的方法,所述方法还包括:
在将待核对的业务规则的规则表达式以及与待核对的业务规则对应的业务参数输入规则解析器进行解析之前,使所述规则解析器重载支持数组作为运算参数的运算符号。
6.根据权利要求1所述的方法,所述方法还包括:
在得到待核对的业务规则以及所述业务参数之后,将所述待核对的业务规则放入队列,将所述业务参数放入规则引擎上下文;
根据对应于各待核对的业务规则的业务参数运行各待核对的业务规则,得到对应于各待核对的业务规则的业务核对结果,包括:
消费所述队列中的待核对的业务规则,以及从规则引擎上下文中获取对应于待核对的业务规则的业务参数,将待核对的业务规则以及对应于待核对业务规则的业务参数输入规则解析器,得到解析结果;
根据所述解析结果确定对应于待核对的业务规则的业务核对结果,包括:
响应于所述解析结果为解析通过,确定待核对的业务规则核对通过,响应于解析结果为解析失败,确定待核对的业务规则核对失败。
7.根据权利要求1所述的方法,所述方法还包括:
在确定与待核对业务匹配的业务规则集合之前,获取来自业务系统的所述业务数据,其中,所述待核对业务为已在所述业务系统中处理完成的业务,所述业务数据为处理所述待核对业务过程中产生的业务上下文。
8.根据权利要求7所述的方法,所述方法还包括:
在获取所述业务数据之后,将所述业务数据转换为键-值对,其中,所述键-值对中,键包括所述业务数据的对应的属性信息,值表示所述业务数据的取值。
9.一种基于规则引擎的业务核对装置,包括:
第一确定模块,用于确定与待核对业务匹配的业务规则集合;
第二确定模块,用于遍历所述业务规则集合中的各业务规则,将所述待核对业务的业务数据输入至少一个数据节点,以使所述至少一个数据节点基于所述业务规则集合确定待核对的业务规则以及基于所述业务数据确定出与各待核对的业务规则对应的业务参数;
核对模块,用于根据对应于各待核对的业务规则的业务参数运行各待核对的业务规则,得到对应于各待核对的业务规则的业务核对结果。
10.根据权利要求9所述的装置,所述第一确定模块用于:
确定与所述待核对业务所属的应用的应用标识和/或待核对业务的业务场景匹配的业务规则集合。
11.根据权利要求9所述的装置,
各所述数据节点基于各自的预设筛选条件从所述业务规则集合中筛选得到待核对的业务规则,以及基于各自的预设取值表达式从所述业务数据中筛选得到待核对的业务规则对应的业务参数。
12.根据权利要求9所述的装置,所述核对模块,包括:
输入单元,用于将待核对的业务规则的规则表达式以及与待核对的业务规则对应的业务参数输入规则解析器进行解析,得到解析结果;
确定单元,用于根据所述解析结果确定对应于待核对的业务规则的业务核对结果。
13.根据权利要求12所述的装置,所述装置还包括:
重载模块,用于在将待核对的业务规则的规则表达式以及与待核对的业务规则对应的业务参数输入规则解析器进行解析之前,使所述规则解析器重载支持数组作为运算参数的运算符号。
14.根据权利要求9所述的装置,所述装置还包括:
存入模块,用于在得到待核对的业务规则以及所述业务参数之后,将所述待核对的业务规则放入队列,将所述业务参数放入规则引擎上下文;
所述核对模块用于:
消费所述队列中的待核对的业务规则,以及从规则引擎上下文中获取对应于待核对的业务规则的业务参数,将待核对的业务规则以及对应于待核对业务规则的业务参数输入规则解析器,得到解析结果;
所述确定单元用于,响应于所述解析结果为解析通过,确定待核对的业务规则核对通过,响应于解析结果为解析失败,确定待核对的业务规则核对失败。
15.根据权利要求9所述的装置,所述装置还包括:
获取模块,用于在确定与待核对业务匹配的业务规则集合之前,获取来自业务系统的所述业务数据,其中,所述待核对业务为已在所述业务系统中处理完成的业务,所述业务数据为处理所述待核对业务过程中产生的业务上下文。
16.根据权利要求15所述的装置,所述装置还包括:
转换模块,用于在获取所述业务数据之后,将所述业务数据转换为键-值对,其中,所述键-值对中,键包括所述业务数据的对应的属性信息,值表示所述业务数据的取值。
17.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至8任一项所述的基于规则引擎的业务核对方法。
技术总结