CN111338716A - 基于规则引擎的数据处理方法、装置及终端设备 - Google Patents
基于规则引擎的数据处理方法、装置及终端设备 Download PDFInfo
- Publication number
- CN111338716A CN111338716A CN202010129897.3A CN202010129897A CN111338716A CN 111338716 A CN111338716 A CN 111338716A CN 202010129897 A CN202010129897 A CN 202010129897A CN 111338716 A CN111338716 A CN 111338716A
- Authority
- CN
- China
- Prior art keywords
- rule
- file
- type
- processed
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请适用于规则引擎技术领域,提供了基于规则引擎的数据处理方法、装置及终端设备,所述方法包括:对待处理业务数据的规则包进行识别,确定所述规则包中所包括的规则文件的类型,其中所述规则文件的类型包括普通规则文件和规则流文件;根据所述规则文件的类型,分别使用与所述普通规则文件或所述规则流文件对应的命令,对所述待处理业务数据进行命令封装,得到与所述规则文件的类型对应的执行命令;根据所述执行命令,执行所述规则文件中的待处理业务数据的业务规则,得到规则执行结果。通过本申请,实现了规则引擎针对不同类型的规则文件更加方便快捷的调用业务数据,根据规则命令执行多种复杂的业务规则,使得规则引擎的兼容性更广。
Description
技术领域
本申请属于规则引擎技术领域,尤其涉及基于规则引擎的数据处理方法、装置及终端设备。
背景技术
规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。
目前,现有的Drools规则引擎作为一种常用的引擎,得到普遍的使用;而Drools规则引擎的规则执行分为两种模式:规则流执行和普通规则执行,两种模式的规则执行并不互通。针对复杂的业务逻辑,一个规则包同时具有规则流文件和普通规则文件。
传统的Drools引擎在执行规则命令时,存在一定的缺陷:每一次命令封装,只能支持对普通规则文件或规则流文件中的一种,执行规则命令;针对规则包中存在不同规则文件时,需要通过进行大量重复参数的封装,更换规则命令,且使用规则引擎的人员需要掌握和使用更多的规则命令,使得操作繁琐,使用规则引擎存在诸多不便,同时增加了规则引擎使用的准入门槛。
发明内容
本申请实施例提供了基于规则引擎的数据处理方法、装置及终端设备,可以解决更换规则命令时,需要进行大量重复参数的封装,且使用规则引擎的人员需要掌握和使用更多的规则命令,使得操作繁琐,使用存在诸多不便,同时增加了规则引擎使用的准入门槛的问题。
第一方面,本申请实施例提供了一种基于规则引擎的数据处理方法,包括:
对待处理业务数据的规则包进行识别,确定所述规则包中所包括的规则文件的类型,其中所述规则文件的类型包括普通规则文件和规则流文件;
根据所述规则文件的类型,分别使用与所述普通规则文件或所述规则流文件对应的命令,对所述待处理业务数据进行命令封装,得到与所述规则文件的类型对应的执行命令;
根据所述执行命令,执行所述规则文件中的待处理业务数据的业务规则,得到规则执行结果。
在第一方面的一种可能的实现方式中,所述对待处理业务数据的规则包进行识别,确定所述规则包中所包括的规则文件的类型,包括:
获取所述规则包中规则文件的名称,所述名称包括所述规则文件的扩展名;
根据所述扩展名,确定所述规则文件的类型。
在第一方面的一种可能的实现方式中,根据所述规则文件的类型,分别使用与所述普通规则文件或所述规则流文件对应的命令,对所述待处理业务数据进行命令封装,得到与所述规则文件的类型对应的执行命令,包括:
若所述规则文件的类型为普通规则文件,则对所述普通规则文件的待处理业务数据进行命令封装,得到普通规则执行命令;
若所述规则文件的类型为规则流文件,则对所述规则流文件的待处理业务数据进行命令封装,得到规则流执行命令。
在第一方面的一种可能的实现方式中,所述根据所述执行命令,执行所述规则文件中的待处理业务数据的业务规则,包括:
若所述规则文件的类型为规则流文件,则根据所述规则流执行命令,按预设顺序执行所述规则流文件中待处理业务数据的业务规则。
在第一方面的一种可能的实现方式中,所述根据所述执行命令,执行所述规则文件中的待处理业务数据的业务规则,包括:
若所述规则文件为普通规则文件,则根据所述普通规则执行命令,按预设优先级执行所述普通规则文件中待处理业务数据的业务规则。
在第一方面的一种可能的实现方式中,所述规则包中包括规则文件的配置信息,所述配置信息包括规则文件的声明、执行规则包信息及执行规则名;
相应的,对待处理业务数据的规则包进行识别,确定所述规则包中所包括的规则文件的类型,包括:
根据所述配置信息识别所述规则包中所述规则文件的属性;根据所述属性确定所述规则文件的类型。
在第一方面的一种可能的实现方式中,根据所述执行命令,执行所述规则文件中的待处理业务数据的业务规则,包括:
根据所述普通规则执行命令,按照所述普通规则文件中的条件与约束执行规则命令;
根据所述规则流执行命令,按照所述规则流文件中预设执行顺序执行规则命令。
示例性的,在得到规则执行结果后,包括:
判断是否存在未执行业务规则的数据包;
若存在未执行业务规则的所述数据包,则对所述数据包中的规则文件进行识别,确定所述规则文件的类型。
应理解,根据所述规则文件的类型,对所述规则文件进行命令封装,得到与所述规则文件的类型对应的普通规则执行命令或规则流执行命令。
第二方面,本申请实施例提供了一种基于规则引擎的数据处理装置,包括:
识别模块,用于对待处理业务数据的规则包进行识别,确定所述规则包中所包括的规则文件的类型,其中所述规则文件的类型包括普通规则文件和规则流文件;
封装模块,用于根据所述规则文件的类型,分别使用与所述普通规则文件或所述规则流文件对应的命令,对所述待处理业务数据进行命令封装,得到与所述规则文件的类型对应的执行命令;
执行模块,用于根据所述执行命令,执行所述规则文件中的待处理业务数据的业务规则,得到规则执行结果。
第三方面,本申请实施例提供了一种终端设备,包括规则引擎、存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的基于规则引擎的数据处理方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
本申请实施例与现有技术相比存在的有益效果是:通过本发明实施例,对待处理业务数据的规则包进行识别,确定所述规则包中所包括的规则文件的类型,其中所述规则文件的类型包括普通规则文件和规则流文件;根据所述规则文件的类型,使用分别与所述普通规则文件或所述规则流文件对应的命令,对所述待处理业务数据进行命令封装,得到与所述规则文件的类型对应的执行命令;根据所述执行命令,执行所述规则文件中的待处理业务数据的业务规则,得到规则执行结果。在更换规则命令时,无需进行大量重复参数的封装操作,提升了开发效率;通过规则引擎更加方便快捷的调用不同规则文件对应的业务数据,根据对应规则文件类型的规则命令执行业务规则;使得规则引擎的兼容性更广;降低了规则引擎的准入难度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的系统架构示意图;
图2是本申请一实施例提供的基于规则引擎的数据处理方法的流程示意图;
图3是本申请另一实施例提供的基于规则引擎的数据处理方法的流程示意图;
图4是本申请实施例提供的基于规则引擎的数据处理装置的结构示意图;
图5是本申请实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的基于规则引擎的数据处理方法可以应用于平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
参见图1,是本申请一实施例提供的系统架构示意图,如图所示,该基于规则引擎的数据处理方法可以应用于终端设备20,终端设备20可以获取客户端10发送的业务数据处理请求,并获取客户端10发送的待处理的业务数据;终端设备20还可以从服务器30中获取待处理的业务数据;对所述待处理的业务数据的数据包进行识别,确定数据包中规则文件的类型,根据规则文件类型进行命令封装,得到规则文件类型相对应的规则执行命令,依据规则执行命令执行相应的业务规则,得到执行结果;另外,所述客户端还可以是设置在终端设备中的应用程序客户端,终端设备通过应用程序客户端获取用户输入的业务数据,通过规则引擎对业务数据进行相应的处理,得到处理结果;实现了规则引擎更加方便快捷的调用业务数据,根据规则命令执行业务规则;使得规则引擎的兼容性更广;降低了规则引擎的准入难度,提升了开发效率。
参见图2,是本申请提供的基于规则引擎的数据处理方法的示意性流程图,如图所示,该方法包括以下步骤。
步骤S201,对待处理业务数据的规则包进行识别,确定所述规则包中所包括的规则文件的类型,其中所述规则文件的类型包括普通规则文件和规则流文件。
在本实施例中,作为执行主体的终端设备可以为电脑或服务器等;终端设备的应用程序中装有规则引擎。规则引擎可以是嵌入在应用程序中的组件,用于调用并执行通过规则配置器定义的规则包,解释业务规则并根据业务规则作出业务决策;规则包是一个规则集合,是可供规则引擎调用的处理单位,规则包中包含了其中规则所需的各类数据对象的定义,以及按顺序执行的规则的定义,例如,针对寿险业务数据,一个保单中包含多种险种,每种险种对应一组规则,即一个规则包;一组规则或一个规则包中包含一个险种所需要的全部规则。每一条规则包含了触发条件和目标动作;通过规则引擎对业务数据及对应的规则包进行处理,得到业务决策。
其中,业务数据为用户的相关数据,例如用户的年龄、收入等;业务数据存储至平台设备的工作内存中;所述业务数据对应的规则包作为中心数据存储在平台设备的知识库中,规则包为与业务数据相对应的各种规则;例如,根据用户的相关数据设置与年龄或收入等相关的利息比例,或者设置的保险额度等数据处理规则,将一组规则形成规则文件,将相关的规则文件组合成一项业务的规则包。例如,一个险种对应一个规则包;一个保单可以包括多个险种,在执行一个保单时,可以增加对应险种的规则包,根据规则包执行业务规则,输出业务决策。
具体的,所述规则文件的类型包括普通规则文件和规则流文件;在待处理业务数据的规则包输入至终端设备的规则引擎时,需要规则引擎对输入的规则包中的规则文件的类型进行识别。一个规则包中可能包含多种属性的规则文件,例如可以包括普通规则文件和规则流文件。普通规则文件是以drl、drt、dslr为扩展名的文件,普通规则文件中记录一项或多项独立规则,在包含多项独立规则时,其规则的执行无特定顺序;在工作内存中的业务数据发生变更时,根据规则中的条件与约束,在普通规则文件中的某一项规则可能会发生重复执行的情况。规则流文件是以bpmn为扩展名的文件,规则流文件由多条规则共同组成,具有固定的执行流程,根据流程中的规则判断进入对应的分支,执行过程中工作内存中的数据发生变更时,不会引起规则流中的规则重复执行,是一套完整的流程,并按照固定的顺序依次执行。终端设备中的规则引擎在调用到规则包中的规则文件时,可以通过识别规则文件的名称或规则文件的扩展名,根据规则文件的名称或扩展名区分规则文件的类型。
需要说明的是,在通过规则引擎进行数据处理之前,终端设备可以接收业务系统的请求,获取业务系统请求处理的业务数据;或者接收用户通过客户端输入的待处理业务数据;将业务数据进行准备,得到相应的准备数据,将准备数据与数据库之间进行交互,将准备数据规范为规则引擎格式的报文,即对应的规则包,调用与规则包对应的规则引擎,提供所调用的规则引擎的接口,由规则引擎对规则包进行处理;所述的规则引擎可以是Drools规则引擎。
可选的,所述对待处理业务数据的规则包进行识别,确定所述规则包中所包括的规则文件的类型,包括:
获取所述规则包中规则文件的名称,所述名称包括所述规则文件的扩展名;根据所述扩展名,确定所述规则文件的类型。
在本实施例中,规则文件的属性对应不同的类型,即包括属性简单的普通规则类型及属性复杂的规则流类型。普通规则文件是以drl、drt、dslr为扩展名的文件,;规则流文件是以bpmn为扩展名的文件。
在一种可能的实现方式中,所述规则包中包括规则文件的配置信息,所述配置信息包括规则文件的声明、执行规则包信息及执行规则名;
相应的,对待处理业务数据的规则包进行识别,确定所述规则包中所包括的规则文件的类型,包括:
根据所述配置信息识别所述规则包中所述规则文件的属性;根据所述属性确定所述规则文件的类型。
具体的,根据规则包的命名特征进行识别;例如一个险种对应的规则包中包括一个规则流文件的命名特征为“险种名称-stream”,而普通规则文件则直接命名为“险种名称”,不加后缀,即通过险种名称的后缀对规则文件进行属性的识别。还可以通过读取规则包中的配置对规则包中的规则文件进行属性的识别。规则包中的配置包括规则文件的声明<kmodule>、执行规则包信息<kbase>及执行规则名<ksession>,根据配置的具体内容对规则文件的属性进行识别,以确定规则包中规则文件的属性。还可以根据文件的扩展名的类型识别规则文件的属性。
步骤S202,根据所述规则文件的类型,分别使用与所述普通规则文件或所述规则流文件对应的命令,对所述待处理业务数据进行命令封装,得到与所述规则文件的类型对应的执行命令。
在本实施例中,由于不同类型的规则文件对应不同的数据封装命令,例如普通规则使用的封装命令为FireAllRulesCommand,将普通规则文件对应的请求处理的业务数据封装成普通规则执行命令;规则流规则使用的封装命令为StartProcessCommand,将规则流文件对应的请求处理的业务数据封装成规则流规则执行命令。
具体的,通过识别规则文件的属性,确定规则文件的类型属于普通规则文件还是规则流文件;进而根据属性对规则文件进行封装;数据封装命令的对象是由客户端发出的请求处理的业务数据,对所述待处理的业务数据进行插入对象命令、执行规则命令及获取执行结果命令的封装;获取对应的数据插入命令、规则执行命令、结果数据提取命令。
示例性的,插入对象命令如InsertObjectCommand、InsertElementsCommand等等;获取执行结果命令如GetObjectsCommand、GetGlobalCommand等等。
另外,普通规则与规则流规则是规则引擎Drools原生支持的两种模式,其命令仅在执行命令上有区别,通过根据待处理的业务数据对应的规则文件类型,将待处理的业务数据进行不同类型的命令封装。这两种规则在应用场景、执行过程上存在差异。具体使用的是普通规则文件还是规则流文件根据业务需求及目标选择性使用。
可选的,如图3所示,是本申请另一实施例提供的基于规则引擎的数据处理方法的实现流程示意图,根据所述规则文件的类型,分别使用与所述普通规则文件或所述规则流文件对应的命令,对所述待处理业务数据进行命令封装,得到与所述规则文件的类型对应的执行命令,包括:
步骤S302,若所述规则文件的类型为普通规则文件,则对所述普通规则文件的待处理业务数据进行命令封装,得到普通规则执行命令。
在本实施例中,普通规则使用的封装命令为FireAllRulesCommand,将普通规则文件对应的请求处理的业务数据封装成普通规则执行命令;对所述待处理的业务数据进行插入对象命令、执行规则命令及获取执行结果命令的封装;获取对应的数据的普通规则的执行命令,执行命令可以包括数据插入命令、规则执行命令及结果数据提取命令。
步骤S303,若所述规则文件的类型为规则流文件,则对所述规则流文件的待处理业务数据进行命令封装,得到规则流执行命令。
在本实施例中,规则流规则使用的封装命令为StartProcessCommand,将规则流文件对应的请求处理的业务数据封装成规则流规则执行命令;对所述待处理的业务数据进行插入对象命令、执行规则命令及获取执行结果命令的封装;获取对应的数据的规则流规则的执行命令,执行命令可以包括数据插入命令、规则执行命令及结果数据提取命令。
步骤S203,根据所述执行命令,执行所述规则文件中的待处理业务数据的业务规则,得到规则执行结果。
在本实施例中,普通规则文件中记录一项或多项独立规则,在包含多项独立规则时,其规则的执行无特定顺序,在工作内存中的业务数据发生变更时,根据规则中的条件与约束,在普通规则文件中的某一项规则可能会发生重复执行的情况;规则流文件由多条规则共同组成,具有固定的执行流程,根据流程中的规则判断进入对应的分支,执行过程中工作内存中的数据发生变更时,不会引起规则流中的规则重复执行,是一套完整的流程,并按照固定的顺序依次执行。
具体的,终端设备获取对业务数据封装后的执行命令之后,对封装后的执行命令进行解析,包括对数据插入命令进行解析,得到当前规则文件对应的所有待处理的业务数据;执行规则的执行命令对规则文件进行解析,得到规则引擎中与业务数据所对应的具体的执行规则,通过该执行规则来对所有的待处理业务数据按规则进行统一的处理,通过结果数据提取命令得到最终的数据处理结果。
其中,所述处理结果可以为保单合规、保单不合规,或者可以为用户符合购买条件、用户不符合购买条件,等等。
另外,通过终端设备接受业务数据输入,解释业务规则,执行业务规则,并根据业务规则输出数据处理结果,做出与客户端请求处理的业务数据对应的业务决策,并将业务决策返回至客户端;客户端可以为发出业务数据请求的业务系统,终端设备接收业务系统的请求,获取业务系统请求的业务数据,通过终端设备的规则引擎调用并执行由规则配置器定义的规则包,解释业务规则并根据业务规则作出业务决策。
通过本实施例,对规则包中所包含的规则文件进行类型识别,例如对规则文件的命名或规则文件的扩展名进行识别,确定规则包中的规则文件的类型为普通规则文件或规则流文件;分别对规则包中的规则文件进行与规则类型对应的命令封装,依据封装后的命令规则,针对业务数据执行相应的规则命令。在使用规则引擎进行业务决策过程中,对于较为复杂的业务逻辑,同时兼容了针对普通规则文件以及规则流文件的执行命令的封装过程,实现了规则引擎的通用性,减少了因为开发人员的不熟悉导致变更或新增规则的配置命令失败的可能,同时避免了需要开发人员多次去手动封装的繁琐,加速了程序的运行效率,简化了规则的使用逻辑。
在一种可能的实现方式中,根据所述执行命令,执行所述规则文件中的待处理业务数据的业务规则,包括:
根据所述普通规则执行命令,按照所述普通规则文件中的条件与约束执行规则命令;
根据所述规则流执行命令,按照所述规则流文件中预设执行顺序执行规则命令。
在本实施例中,所述普通规则文件为一个或多个规则组成的规则组,每个规则之间不存在既定的执行顺序,可以根据规则组中的节点,选择性的执行其中一项规则。所述规则流文件,是指一组固定执行顺序的规则组成的规则流程,不会存在多余的规则,需要按固定的顺序执行每一项规则;另外,规则流文件中,针对一个流程的规则可以存在不同的规则流分支,可以选择一个分支的规则流执行其中的每一项规则。
可选的,如图3所示,所述根据所述执行命令,执行所述规则文件中的待处理业务数据的业务规则,包括:
步骤S304,若所述规则文件为普通规则文件,则根据所述普通规则执行命令,按预设优先级执行所述普通规则文件中待处理业务数据的业务规则,得到执行结果。
在本实施中,普通规则文件中记录一项或多项独立规则,在包含多项独立规则时,其规则的执行无特定顺序,在工作内存中的业务数据发生变更时,根据规则中的条件与约束,在普通规则文件中的某一项规则可能会发生重复执行的情况。根据规则中的条件和约束,可以设置执行的优先级,按设置的优先级执行普通规则文件中待处理业务数据的业务规则。
步骤S305,若所述规则文件的类型为规则流文件,则根据所述规则流执行命令,按预设顺序执行所述规则流文件中待处理业务数据的业务规则,得到执行结果。
在本实施例中,规则流文件由多条规则共同组成,具有固定的执行流程,根据流程中的规则判断进入对应的分支,执行过程中工作内存中的数据发生变更时,不会引起规则流中的规则重复执行,是一套完整的流程,并按照固定的顺序依次执行。
可选的,如图3所示,在得到规则执行结果后,包括:
步骤S306,判断是否存在未执行业务规则的数据包。
可选的,若存在未执行业务规则的所述数据包,则对所述数据包中的规则文件进行识别,确定所述规则文件的类型。
在本实施例中,在执行所述规则文件中的待处理业务数据的业务规则,得到规则执行结果之后,继续检测在规则包中是否存在未执行的规则文件,若有则继续依据规则文件的属性,识别规则文件的类型,根据规则文件的类型对业务数据进行封装,得到对应规则文件类型的执行命令,根据执行命令对规则引擎的规则文件进行解析,并针对待处理的业务数据执行相应的规则命令;若规则包中的规则文件全部执行,则结束执行命令的执行,输出数据处理结果,即输出业务数据对应的业务决策。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
通过本实施例,对待处理业务数据的规则包进行识别,确定所述规则包中所包括的规则文件的类型;根据所述规则文件的类型,对所述规则文件中的待处理业务数据进行命令封装,得到与所述规则文件的类型对应的执行命令;根据所述执行命令,执行所述规则文件中的待处理业务数据的业务规则,得到规则执行结果。解决了更换规则命令时,需要进行大量重复参数的封装,且使用规则引擎的人员需要掌握和使用更多的规则命令,使得操作繁琐,使用存在诸多不便,同时增加了规则引擎使用的准入门槛的问题;实现了规则引擎更加方便快捷的调用业务数据,根据规则命令执行业务规则;使得规则引擎的兼容性更广;降低了规则引擎的准入难度,提升了开发效率。
对应于上文实施例所述的基于规则引擎的数据处理方法,图4示出了本申请实施例提供的基于规则引擎的数据处理装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图4,该装置包括:识别模块41,封装模块42,执行模块43。
其中,所述识别模块41,用于用于对待处理业务数据的规则包进行识别,确定所述规则包中所包括的规则文件的类型,其中所述规则文件的类型包括普通规则文件和规则流文件;
封装模块42,用于根据所述规则文件的类型,分别使用与所述普通规则文件或所述规则流文件对应的命令,对所述待处理业务数据进行命令封装,得到与所述规则文件的类型对应的执行命令;
执行模块43,用于根据所述执行命令,执行所述规则文件中的待处理业务数据的业务规则,得到规则执行结果。
在一种可能的实现方式中,所述识别模块41,还用于获取所述规则包中规则文件的名称,所述名称包括所述规则文件的扩展名;根据所述扩展名,确定所述规则文件的类型。
在一种可能的实现方式中,所述封装模块42,还用于若所述规则文件的类型为普通规则文件,则对所述普通规则文件的待处理业务数据进行命令封装,得到普通规则执行命令;若所述规则文件的类型为规则流文件,则对所述规则流文件的待处理业务数据进行命令封装,得到规则流执行命令。
在一种可能的实现方式中,所述执行模块43,还用于若所述规则文件的类型为规则流文件,则根据所述规则流执行命令,按预设顺序执行所述规则流文件中待处理业务数据的业务规则;若所述规则文件为普通规则文件,则根据所述普通规则执行命令,按预设优先级执行所述普通规则文件中待处理业务数据的业务规则。
在一种可能的实现方式中,所述装置还包括:
处理模块,用于判断是否存在未执行业务规则的数据包;若存在未执行业务规则的所述数据包,则对所述数据包中的规则文件进行识别,确定所述规则文件的类型。
在一种可能的实现方式中,所述处理模块还用于根据所述规则文件的类型,对所述规则文件进行命令封装,得到与所述规则文件的类型对应的普通规则执行命令或规则流执行命令。
在一种可能的实现方式中,所述规则包中包括规则文件的配置信息,所述配置信息包括规则文件的声明、执行规则包信息及执行规则名;相应的,所述识别模块还用于根据所述配置信息识别所述规则包中所述规则文件的属性;根据所述属性确定所述规则文件的类型。
在一种可能的实现方式中,所述执行模块还用于根据所述普通规则执行命令,按照所述普通规则文件中的条件与约束执行规则命令;根据所述规则流执行命令,按照所述规则流文件中预设执行顺序执行规则命令。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
通过本实施例,在更换规则命令时,无需进行大量重复参数的封装操作,提升了开发效率;通过规则引擎更加方便快捷的调用不同规则文件对应的业务数据,根据对应规则文件类型的规则命令执行业务规则;使得规则引擎的兼容性更广;降低了规则引擎的准入难度。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图5为本申请一实施例提供的终端设备的结构示意图。如图5所示,该实施例的终端设备5包括:至少一个处理器50(图5中仅示出一个)处理器、存储器51、存储在所述存储器51中并可在所述至少一个处理器50上运行的计算机程序52以及规则引擎53,所述处理器50执行所述计算机程序52时实现上述任意各个基于规则引擎的数据处理方法实施例中的步骤。
所述终端设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是终端设备5的举例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),该处理器50还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51在一些实施例中可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51在另一些实施例中也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于规则引擎的数据处理方法,其特征在于,包括:
对待处理业务数据的规则包进行识别,确定所述规则包中所包括的规则文件的类型,其中所述规则文件的类型包括普通规则文件和规则流文件;
根据所述规则文件的类型,分别使用与所述普通规则文件或所述规则流文件对应的命令,对所述待处理业务数据进行命令封装,得到与所述规则文件的类型对应的执行命令;
根据所述执行命令,执行所述规则文件中的待处理业务数据的业务规则,得到规则执行结果。
2.如权利要求1所述的基于规则引擎的数据处理方法,其特征在于,所述对待处理业务数据的规则包进行识别,确定所述规则包中所包括的规则文件的类型,包括:
获取所述规则包中规则文件的名称,所述名称包括所述规则文件的扩展名;
根据所述扩展名,确定所述规则文件的类型。
3.如权利要求1所述的基于规则引擎的数据处理方法,其特征在于,根据所述规则文件的类型,分别使用与所述普通规则文件或所述规则流文件对应的命令,对所述待处理业务数据进行命令封装,得到与所述规则文件的类型对应的执行命令,包括:
若所述规则文件的类型为普通规则文件,则对所述普通规则文件的待处理业务数据进行命令封装,得到普通规则执行命令;
若所述规则文件的类型为规则流文件,则对所述规则流文件的待处理业务数据进行命令封装,得到规则流执行命令。
4.如权利要求3所述的基于规则引擎的数据处理方法,其特征在于,所述根据所述执行命令,执行所述规则文件中的待处理业务数据的业务规则,包括:
若所述规则文件的类型为规则流文件,则根据所述规则流执行命令,按预设顺序执行所述规则流文件中待处理业务数据的业务规则。
5.如权利要求3所述的基于规则引擎的数据处理方法,其特征在于,所述根据所述执行命令,执行所述规则文件中的待处理业务数据的业务规则,包括:
若所述规则文件为普通规则文件,则根据所述普通规则执行命令,按预设优先级执行所述普通规则文件中待处理业务数据的业务规则。
6.如权利要求1所述的基于规则引擎的数据处理方法,其特征在于,所述规则包中包括规则文件的配置信息,所述配置信息包括规则文件的声明、执行规则包信息及执行规则名;
相应的,对待处理业务数据的规则包进行识别,确定所述规则包中所包括的规则文件的类型,包括:
根据所述配置信息识别所述规则包中所述规则文件的属性;根据所述属性确定所述规则文件的类型。
7.如权利要求3所述的基于规则引擎的数据处理方法,其特征在于,根据所述执行命令,执行所述规则文件中的待处理业务数据的业务规则,包括:
根据所述普通规则执行命令,按照所述普通规则文件中的条件与约束执行规则命令;
根据所述规则流执行命令,按照所述规则流文件中预设执行顺序执行规则命令。
8.一种基于规则引擎的数据处理装置,其特征在于,包括:
识别模块,用于对待处理业务数据的规则包进行识别,确定所述规则包中所包括的规则文件的类型,其中所述规则文件的类型包括普通规则文件和规则流文件;
封装模块,用于根据所述规则文件的类型,分别使用与所述普通规则文件或所述规则流文件对应的命令,对所述待处理业务数据进行命令封装,得到与所述规则文件的类型对应的执行命令;
执行模块,用于根据所述执行命令,执行所述规则文件中的待处理业务数据的业务规则,得到规则执行结果。
9.一种终端设备,其特征在于,包括规则引擎、存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010129897.3A CN111338716A (zh) | 2020-02-28 | 2020-02-28 | 基于规则引擎的数据处理方法、装置及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010129897.3A CN111338716A (zh) | 2020-02-28 | 2020-02-28 | 基于规则引擎的数据处理方法、装置及终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111338716A true CN111338716A (zh) | 2020-06-26 |
Family
ID=71184044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010129897.3A Pending CN111338716A (zh) | 2020-02-28 | 2020-02-28 | 基于规则引擎的数据处理方法、装置及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111338716A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949690A (zh) * | 2020-07-29 | 2020-11-17 | 合肥森亿智能科技有限公司 | 临床辅助决策量表自动填写方法、系统、设备和介质 |
CN112199259A (zh) * | 2020-10-21 | 2021-01-08 | 中国电子科技集团公司第十五研究所 | 一种基于规则引擎的故障判定与实现方法和系统 |
CN113792079A (zh) * | 2021-11-17 | 2021-12-14 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
-
2020
- 2020-02-28 CN CN202010129897.3A patent/CN111338716A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949690A (zh) * | 2020-07-29 | 2020-11-17 | 合肥森亿智能科技有限公司 | 临床辅助决策量表自动填写方法、系统、设备和介质 |
CN112199259A (zh) * | 2020-10-21 | 2021-01-08 | 中国电子科技集团公司第十五研究所 | 一种基于规则引擎的故障判定与实现方法和系统 |
CN112199259B (zh) * | 2020-10-21 | 2024-03-26 | 中国电子科技集团公司第十五研究所 | 一种基于规则引擎的故障判定与实现方法和系统 |
CN113792079A (zh) * | 2021-11-17 | 2021-12-14 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190324772A1 (en) | Method and device for processing smart contracts | |
CN109558748B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN113065656B (zh) | 一种规则引擎配置方法、装置、服务器及可读存储介质 | |
CN111338716A (zh) | 基于规则引擎的数据处理方法、装置及终端设备 | |
CN111967017B (zh) | 生成依赖关系的方法、装置、终端设备及存储介质 | |
CN110601880A (zh) | 一种云平台、业务处理方法、命令接口及计算机设备 | |
CN110968437A (zh) | 一种基于Java智能合约的单个合约并行执行的方法、装置、设备及介质 | |
CN111273891A (zh) | 基于规则引擎的业务决策方法、装置及终端设备 | |
CN112037061A (zh) | 区块链中交易的处理方法、装置、电子设备及存储介质 | |
CN111651140B (zh) | 基于工作流的服务方法及装置 | |
CN111324645B (zh) | 区块链的数据处理方法及装置 | |
CN115269040B (zh) | 一种租户业务应用的拓展方法、装置及系统 | |
CN115098297B (zh) | 一种云原生存储数据卷的一致性快照生成方法和系统 | |
CN113282541B (zh) | 文件调用方法、装置和电子设备 | |
CN115033590A (zh) | 一种多域数据融合的方法、装置和存储介质 | |
CN116016653A (zh) | 区块链的信息推送方法、装置、电子设备和存储介质 | |
CN111984744B (zh) | 基于远程通信和人工智能的信息处理方法及云端服务平台 | |
CN115562686A (zh) | 一种SpringBoot项目轻量级打包方法、系统、终端及存储介质 | |
CN114936368A (zh) | 一种Java内存木马检测方法、终端设备及存储介质 | |
CN114157662A (zh) | 一种云平台参数适配方法、装置、终端设备及储存介质 | |
CN114036180A (zh) | 报表生成方法、装置、设备及存储介质 | |
CN113742235A (zh) | 一种校验代码的方法和装置 | |
CN116204201B (zh) | 业务处理方法和装置 | |
CN111324434B (zh) | 计算任务的配置方法、装置及执行系统 | |
CN109376023B (zh) | 用于生成调用信息、发布返回码组的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |