CN109582289A - 规则引擎中规则流的处理方法、系统、存储介质和处理器 - Google Patents

规则引擎中规则流的处理方法、系统、存储介质和处理器 Download PDF

Info

Publication number
CN109582289A
CN109582289A CN201710901358.5A CN201710901358A CN109582289A CN 109582289 A CN109582289 A CN 109582289A CN 201710901358 A CN201710901358 A CN 201710901358A CN 109582289 A CN109582289 A CN 109582289A
Authority
CN
China
Prior art keywords
regular flow
rule
node
regular
user
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.)
Granted
Application number
CN201710901358.5A
Other languages
English (en)
Other versions
CN109582289B (zh
Inventor
彭志成
李俊良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710901358.5A priority Critical patent/CN109582289B/zh
Publication of CN109582289A publication Critical patent/CN109582289A/zh
Application granted granted Critical
Publication of CN109582289B publication Critical patent/CN109582289B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种规则引擎中规则流的处理方法、系统、存储介质和处理器。其中,该方法包括:获取用户设置的用户表,用户表包括待处理对象的属性信息;基于用户表的属性信息,生成对应的规则流,并将规则流中的规则描述及规则流中的节点类型存储在数据库中;运行规则流,对数据表中的用户数据进行计算,得到满足规则流的用户,并触发规则流中相应的规则。本发明解决了由于现有技术中需要一种固定的规则流设计平台,导致设计出的规则流固化不灵活的技术问题。

Description

规则引擎中规则流的处理方法、系统、存储介质和处理器
技术领域
本发明涉及互联网技术应用领域,具体而言,涉及一种规则引擎中规则流的处理方法、系统、存储介质和处理器。
背景技术
在编辑软件程序之前,或设置事件处理模型之前,往往需要优先设计在执行过程中流程执行顺序,从而帮助编辑软件程序或设置事件处理模型有一个合乎逻辑的执行顺序。
其中,规则流在设计执行顺序的规则引擎中能有效表示业务的处理流程,方便客户对规则引擎的使用。
在现有解决方案中,拿广泛商用的ILOG Jrules来说,规则流的设计师在规则集创建的时候,利用ILOG Jrules的开发平台,通过拖拽的方式将一系列条件表达式进行配置,配置完成后,最终定稿,打成jar包,发布上线。
图1是ILOG Jrules针对贷款业务的一个典型的规则流设计的示意图。如图1所示,规则流创建流程说明如下:
1、通过拖拽开发平台上的特有组件,指定规则的起始点(途中的绿色箭头);
2、接下来拖拽一个条件判断框(eligibility),在其中输入判决条件;
3、给eligibility条件判断框设置两条分支,一条设置为满足,一条设置为不满足,并且配置好后续节点的处理;
4、如此反复执行步骤2和3,直到最终的结束节点,这样一个规则流图就设计好了。
但是上述规则流的实现方式,对ILOG Jrules的开发平台是强绑定的,并不具备在其他系统里直接使用的可能。
其次,上述规则流的设计使得每次有规则进行增删改,或者规则流进行重设计,都需要重新走一次设计和发布流程,大大的增加了开发和运维的工作量。
再次,上述规则流的实现方式,对条件判断的多于2个分支的场景有一定的局限性,比如年龄=10选择A分支执行,年龄=20选择B分支执行,年龄=30选择C分支执行,如此等等。
针对上述由于现有技术中需要一种固定的规则流设计平台,导致设计出的规则流固化不灵活的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种规则引擎中规则流的处理方法、系统、存储介质和处理器,以至少解决由于现有技术中需要一种固定的规则流设计平台,导致设计出的规则流固化不灵活的技术问题。
根据本发明实施例的一个方面,提供了一种规则引擎中规则流的处理方法,包括:获取用户设置的用户表,用户表包括待处理对象的属性信息;基于用户表的属性信息,生成对应的规则流,并将规则流中的规则描述及规则流中的节点类型存储在数据库中;运行规则流,对数据表中的用户数据进行计算,得到满足规则流的用户,并触发规则流中相应的规则。
可选的,获取用户设置的用户表之后,该方法还包括:解析用户表,得到用户表对应的待处理对象的属性信息;依据属性信息生成规则执行流程;依据规则执行流程配置各个节点处的节点类型,其中,节点类型包括:起始节点、中间节点和结尾节点。
进一步地,可选的,基于用户表的属性信息,生成对应的规则流包括:依据节点类型匹配对应的待执行规则;依据节点类型中的节点通过待执行规则生成路由节点,并依据路由节点在线得到对应的规则流。
可选的,依据节点类型匹配对应的待执行规则包括:在节点类型为中间节点的情况下,依据中间节点的规则标识和规则语句匹配对应的待执行规则。
进一步地,可选的,依据节点类型中的节点通过待执行规则生成路由节点,并依据路由节点在线得到对应的规则流包括:将中间节点中的各个节点通过待执行规则生成节点与节点之间的执行路径;依据执行路径设定各个节点的路由位置,得到对应的路由节点;依据各个节点对应的路由节点在线生成对应的规则执行流程,并将规则执行流程确定为规则流。
可选的,将规则流中的规则描述及规则流中的节点类型存储在数据库中包括:将规则流存储至数据库中;通过规则计算引擎同步对规则流中的数据进行修改,对规则流中的数据进行修改包括:实时或定时从数据库中同步当前生效的规则和规则流,并构建规则处理流程;其中,构建规则处理流程包括:增加更新后的规则和规则流,或删除失效的规则和规则流。
根据本发明实施例的一个方面,提供了另一种规则引擎中规则流的处理方法,包括:获取用户设置的用户表,用户表包括待处理对象的属性信息;基于用户表的属性信息,生成对应的规则流,并将规则流中的规则描述及规则流中的节点类型存储在数据库中。
可选的,在将规则流中的规则描述及规则流中的节点类型存储在数据库中之后,该方法还包括:运行规则流,对数据表中的用户数据进行计算,得到满足规则流的用户,并触发规则流中相应的规则。
可选的,在将规则流中的规则描述及规则流中的节点类型存储在数据库中之后,该方法还包括:通过规则计算引擎同步对规则流中的数据进行修改,对规则流中的数据进行修改包括:实时或定时从数据库中同步当前生效的规则和规则流,并构建规则处理流程;其中,构建规则处理流程包括:增加更新后的规则和规则流,或删除失效的规则和规则流。
根据本发明实施例的另一个方面,提供了一种规则引擎中规则流的处理系统,包括:客户端、数据库、规则计算引擎、数据更新模块和请求代理集群,其中,请求代理集群,用于接收业务请求;规则计算引擎,与请求代理集群,用于在预设时间从数据库中同步规则和规则流,并依据业务请求分析生成规则处理流程;数据更新模块,与规则计算引擎连接,用于采集规则或规则流中的数据,进行存储并计算;客户端,与数据库连接,用于对数据库中的规则和规则流进行管理;数据库,用于存储规则和规则流。
根据本发明实施例的又一个方面,提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述规则引擎中规则流的处理方法。
根据本发明实施例的又一个方面,提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述规则引擎中规则流的处理方法。
在本发明实施例中,通过获取用户设置的用户表,用户表包括待处理对象的属性信息;基于用户表的属性信息,生成对应的规则流,并将规则流中的规则描述及规则流中的节点类型存储在数据库中;运行规则流,对数据表中的用户数据进行计算,得到满足规则流的用户,并触发规则流中相应的规则,达到了在线构建规则流的目的,从而实现了灵活设计规则流的技术效果,进而解决了由于现有技术中需要一种固定的规则流设计平台,导致设计出的规则流固化不灵活的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是ILOG Jrules针对贷款业务的一个典型的规则流设计的示意图;
图2是本发明实施例的一种规则引擎中规则流的处理方法的计算机终端的硬件结构框图;
图3是根据本发明实施例一的规则引擎中规则流的处理方法的流程图;
图4是根据本发明实施例二的一种规则引擎中规则流的处理方法的流程图;
图5是根据本发明实施例二的一种规则引擎中规则流的处理方法的流程图;
图6是根据本发明实施例三的规则引擎中规则流的处理系统的结构示意图;
图7是根据本发明实施例三的一种规则引擎中规则流的处理系统的结构示意图;
图8是根据本发明实施例四的规则引擎中规则流的处理装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例设计的技术名词:
规则(rule):一种对事物分类的准则。一般由一组条件表达式来表示,比如,年龄大于30岁并且月薪大于10000的男人。
规则流(ruleflow):控制规则工件执行顺序的方法。
字段(Field):用来描述事物属性的一个方面,比如年龄,收入,性别等。
实施例1
根据本发明实施例,还提供了一种规则引擎中规则流的处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图2是本发明实施例的一种规则引擎中规则流的处理方法的计算机终端的硬件结构框图。如图2所示,计算机终端20可以包括一个或多个(图中仅示出一个)处理器202(处理器202可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器204、以及用于通信功能的传输模块206。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端20还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
存储器204可用于存储应用软件的软件程序以及模块,如本发明实施例中的规则引擎中规则流的处理方法对应的程序指令/模块,处理器202通过运行存储在存储器204内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的漏洞检测方法。存储器204可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器204可进一步包括相对于处理器202远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端20。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块206用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端20的通信供应商提供的无线网络。在一个实例中,传输模块206包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块206可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在上述运行环境下,本申请提供了如图3所示的规则引擎中规则流的处理方法。图3是根据本发明实施例一的规则引擎中规则流的处理方法的流程图。
步骤S302,获取用户设置的用户表,用户表包括待处理对象的属性信息;
步骤S304,基于用户表的属性信息,生成对应的规则流,并将规则流中的规则描述及规则流中的节点类型存储在数据库中;
步骤S306,运行规则流,对数据表中的用户数据进行计算,得到满足规则流的用户,并触发规则流中相应的规则。
具体的,本申请实施例提供的规则引擎中规则流的处理方法中规则流的表达方式,基于可扩展性和易于使用,同时结合性能的考虑,描述方式使用protobuf作为规则流的定义形式,主要涉及以下几种信息message的定义。
1.节点的类型集合:
其中,节点的类型集合可以表示如下:
2.规则流进行路由时判断表达式的比较操作符集合
其中,判断表达式的比较操作符集合可以表示如下:
3.规则流结束节点需要执行的操作
其中,规则流结束节点需要执行的操作可以表示如下:
4.表达式路由对
其中,表达式路由对可以表示如下:
5.比较的值(包涵类型和值)
其中,比较的值可以表示如下:
6.路由单元
其中,路由单元可以表示如下:
7.规则节点
其中,规则节点可以表示如下:
8.规则流定义
在本发明实施例中,通过获取用户设置的用户表,用户表包括待处理对象的属性信息;基于用户表的属性信息,生成对应的规则流,并将规则流中的规则描述及规则流中的节点类型存储在数据库中;运行规则流,对数据表中的用户数据进行计算,得到满足规则流的用户,并触发规则流中相应的规则,达到了在线构建规则流的目的,从而实现了灵活设计规则流的技术效果,进而解决了由于现有技术中需要一种固定的规则流设计平台,导致设计出的规则流固化不灵活的技术问题。
可选的,步骤S302中获取用户设置的用户表之后,本申请提供的规则引擎中规则流的处理方法还包括:
步骤S303,解析用户表,得到用户表对应的待处理对象的属性信息;
步骤S305,依据属性信息生成规则执行流程;
步骤S307,依据规则执行流程配置各个节点处的节点类型,其中,节点类型包括:起始节点、中间节点和结尾节点。
进一步地,可选的,步骤S304中基于用户表的属性信息,生成对应的规则流包括:
Step1,依据节点类型匹配对应的待执行规则;
Step2,依据节点类型中的节点通过待执行规则生成路由节点,并依据路由节点在线得到对应的规则流。
可选的,步骤S304中Step1中的依据节点类型匹配对应的待执行规则包括:
步骤A,在节点类型为中间节点的情况下,依据中间节点的规则标识和规则语句匹配对应的待执行规则。
进一步地,可选的,步骤S304中Step2中的依据节点类型中的节点通过待执行规则生成路由节点,并依据路由节点在线得到对应的规则流包括:
步骤A,将中间节点中的各个节点通过待执行规则生成节点与节点之间的执行路径;
步骤B,依据执行路径设定各个节点的路由位置,得到对应的路由节点;
步骤C,依据各个节点对应的路由节点在线生成对应的规则执行流程,并将规则执行流程确定为规则流。
可选的,步骤S304中将规则流中的规则描述及规则流中的节点类型存储在数据库中包括:
Step1,将规则流存储至数据库中;
Step2,通过规则计算引擎同步对规则流中的数据进行修改,对规则流中的数据进行修改包括:实时或定时从数据库中同步当前生效的规则和规则流,并构建规则处理流程;
其中,构建规则处理流程包括:增加更新后的规则和规则流,或删除失效的规则和规则流。
实施例2
根据本发明实施例,还提供了一种规则引擎中规则流的处理方法实施例,本申请提供了如图4所示的规则引擎中规则流的处理方法。图4是根据本发明实施例二的一种规则引擎中规则流的处理方法的流程图。
步骤S402,获取用户设置的用户表,用户表包括待处理对象的属性信息;
步骤S404,基于用户表的属性信息,生成对应的规则流,并将规则流中的规则描述及规则流中的节点类型存储在数据库中。
在本发明实施例中,通过获取用户设置的用户表,用户表包括待处理对象的属性信息;基于用户表的属性信息,生成对应的规则流,并将规则流中的规则描述及规则流中的节点类型存储在数据库中,达到了在线构建规则流的目的,从而实现了灵活设计规则流的技术效果,进而解决了由于现有技术中需要一种固定的规则流设计平台,导致设计出的规则流固化不灵活的技术问题。
可选的,在步骤S404中将规则流中的规则描述及规则流中的节点类型存储在数据库中之后,本申请提供的规则引擎中规则流的处理方法还包括:
步骤S405,运行规则流,对数据表中的用户数据进行计算,得到满足规则流的用户,并触发规则流中相应的规则。
可选的,在步骤S404中将规则流中的规则描述及规则流中的节点类型存储在数据库中之后,本申请提供的规则引擎中规则流的处理方法还包括:
步骤S406,通过规则计算引擎同步对规则流中的数据进行修改,对规则流中的数据进行修改包括:实时或定时从数据库中同步当前生效的规则和规则流,并构建规则处理流程;其中,构建规则处理流程包括:增加更新后的规则和规则流,或删除失效的规则和规则流。
具体的,图5是根据本发明实施例一的一种规则引擎中规则流的处理方法的流程图。如图5所示,本申请实施例提供的规则引擎中规则流的处理方法具体如下:
下面结合上面给出的信息message组件以及规则流设计示例图进行详细的说明:
首先本设计中一共有三种节点,start,mid,end,由RuleNodeType来进行说明。
整体的规则流是一个RuleFlow的message对象,这个对象由一组规则节点RuleNode来标识,每一个RuleNode就是对应Figure 2中的一个方框。
每个RuleNode包涵6个属性,第一个是RuleNodeType,这是用来说明这个节点的节点类型,如果是start,则说明是起始节点,如果是end则说明是结束节点,此外都是中间计算节点。
起始节点是用来表示规则流的入口,它没有前续节点,但是至少有一个后继节点,一个规则流图上只有一个起始节点。
结束节点是用来表示一条完整规则的执行结束,其没有后继节点,但一定有前续节点,结束节点往往伴随着一个或者一组Action,一个规则流图上可以有一个或者多个结束节点。
中间计算节点是对此节点所关注的规则表达式或者子规则进行计算,并将结果按自带的路由表对后继节点进行路由。
业务的规则流定义通过构建一个RuleFlow来实现,其中包含本规则流所囊括的所有处理节点,用RuleNode来表示;
RuleNode分为三类,START,MID,END,用RuleNodeType来标识,dispatch_nodes用来标识本节点处理后,无条件进行转发的节点,一般START节点后续节点都列举在dispatch_nodes里,每个值是一个uint32的offset值,它表示下一个后继节点在RuleFlow的nodes这个数组中的偏移位置。
理论上说,START节点没有强制要是RuleFlow的第一个节点,但是为了后续的计算执行引擎在执行上的方便,本设计强制RuleFlow的第一个节点为START节点,后续节点尽量按层次递增(离START节点越远,节点编号越大)。
route_nodes代表本节点是一个计算节点,所需要执行的计算有两种方式表达:第一种,通过制定rule_id;第二种通过制定rule_sentense(比如salary/10000);其计算结果一般为true或者false,也可以是ENUM类型的值,或者double,int,string等值。后续的路由判断,采用RouteUnit结构来进行,每个RouteUnit代表一个后继节点,而继续执行这个节点的条件使用ExpressRoutePair来定义,对于有多个条件要求的,这里定义为repeated模式,其中成员为AND条件约束。
对于ExpressRoutePair里的OpType目前支持==,>,<,>=和<=几种基本的操作符,后续可以根据业务需要进行扩展。
最终END节点所挂载的Action,采用当前ruleserver的定义,后续也可以根据业务的需要进行扩展。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的规则引擎中规则流的处理方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例3
本申请提供了如图6所示的规则引擎中规则流的处理系统。图6是根据本发明实施例三的规则引擎中规则流的处理系统的结构示意图。
如图6所示,该规则引擎中规则流的处理系统可以包括:客户端61、数据库62、规则计算引擎63、数据更新模块64和请求代理集群65。
其中,请求代理集群61,与规则计算引擎63连接,用于接收业务请求;规则计算引擎63,与数据库62连接,用于在预设时间从数据库62中同步规则和规则流,并分析生成规则处理流程;数据更新模块64,与规则计算引擎63连接,用于采集规则或规则流中的数据,进行存储并计算;客户端61,与数据库62连接,用于对数据库62中的规则和规则流进行管理;数据库62,用于存储规则和规则流。
具体的,图7是根据本发明实施例三的一种规则引擎中规则流的处理系统的结构示意图。如图7所示,本实施例提供的规则引擎中规则流的处理系统具体如下:
前端APIs(即,本实施例中的客户端61),记为客户端71:是面向客户的前端服务,提供一组API来支持对规则流的增删改查,规则流的定义是基于本节第2部分所描述的方法,采用prorobuf来进行描述。
数据库72:数据库实时的存储所有规则和规则流数据,以方便实时或者定时的同步到在线的规则计算引擎。
规则计算引擎73:实时或者定时从数据库中同步当前生效的规则和规则流,并进行逻辑分析构建规则处理流程,其中包括增加新的规则和规则流,删除失效的规则和规则流。
数据更新模块74:实时采集规则或者规则流中需要用到的数据,存储并计算,计算本数据单元所符合的规则以及规则流,并将结果缓存。
请求代理集群75:实时接收业务模块的请求,比如查询实体满足的规则或者规则流集合。
例如,假设用户要使用本方案中设计的规则引擎来实现规则流。现在以图4的规则流图来进行步骤说明:
第一步:在规则计算引擎73中定义好规则处理对象的实体表。比如用户表,包含用户姓名,用户年龄,用户收入等字段。
第二步:创建组成图5的规则流图的规则集,其中包含Rule1,Rule2,Rule4,Rule5和Rule6。这5条规则的语法可以根据用户表的属性进行定义。这些规则的描述会存储在数据库中。比如
Rule1:user.age!=30
Rule2:user.name==“zhangsan”
Rule4:user.salary>7000
Rule5:…………
Rule6:…………
上面的描述可以使用Protobuf或者XML或者JSON来进行,也适合直接用文本String描述。
第三步就是使用本方案的描述语言构建规则流,主要就是创建Protobuf描述的RuleFlow message。根据图4的这张规则流图可以分析得到这条RuleFlow需要12个RuleNode,
第1个是起始节点,指向第2个节点,
第2个节点是计算Rule1的结果,里面包含2个RouteUnit(如果是真则跳转到第3个RuleNode,如果是假则跳转到第4个RuleNode)
第3个节点是计算Rule2的结果,里面包含1个RouteUnit(如果是真则跳转到第5个RuleNode)
第4个节点是计算用户的age是否大于18,里面包含2个RouteUnit(如果是真则跳转到第6个RuleNode,如果是假则跳转到第5个RuleNode)
第5个节点是终止节点,会执行节点A对应的Action
第6个节点是计算用户的salary/10000的值,里面包含3个RouteUnit(如果<3则跳转到第7个RuleNode,如果>=3并且<=10则跳转到第8个RuleNode,否则跳转到第9个节点)
第7个节点是计算Rule4的结果,里面包含1个RouteUnit(如果是假则跳转到第10个RuleNode)
第8个节点是计算Rule5的结果,里面包含1个RouteUnit(如果是真则跳转到第11个RuleNode)
第9个节点是计算Rule6的结果,里面包含1个RouteUnit(如果是假则跳转到第12个RuleNode)
第10个节点是终止节点,会执行节点B对应的Action
第11个节点是终止节点,会执行节点C对应的Action
第12个节点是终止节点,会执行节点D对应的Action
第四步:构建好这个RuleFlow message后就可以序列化成string存放到数据库中。
第五步:规则计算引擎73可以实时地同步数据的修改,感知到这个新增的RuleFlow,并进行在线解释,同时对自己所管辖的用户数据表里的用户进行计算,这样就能快速的计算出哪些用户满足这个规则流。触发相应的Action。对于请求触发的场景,规则计算引擎73根据请求传递过来的用户数据进行在线计算,也可以触发相应的Action。
这样,这个规则流就创建并生效了,就能运用到线上进行运用了。如果有需要,可以通过修改数据库或者删除数据库中的记录来达到对规则流的修改和删除。
实施例4
根据本发明实施例,还提供了一种用于实施上述规则引擎中规则流的处理方法的装置,如图8所示,该装置包括:
图8是根据本发明实施例四的规则引擎中规则流的处理装置的结构示意图。
如图8所示,该规则引擎中规则流的处理装置可以包括:获取模块82、配置模块84和数据处理模块86。
其中,获取模块82,用于获取用户设置的用户表,用户表包括待处理对象的属性信息;配置模块84,用于基于用户表的属性信息,生成对应的规则流,并将规则流中的规则描述及规则流中的节点类型存储在数据库中;数据处理模块86,用于运行规则流,对数据表中的用户数据进行计算,得到满足规则流的用户,并触发规则流中相应的规则。。
在本发明实施例中,通过获取用户设置的用户表,用户表包括待处理对象的属性信息;基于用户表的属性信息,生成对应的规则流,并将规则流中的规则描述及规则流中的节点类型存储在数据库中;运行规则流,对数据表中的用户数据进行计算,得到满足规则流的用户,并触发规则流中相应的规则,达到了在线构建规则流的目的,从而实现了灵活设计规则流的技术效果,进而解决了由于现有技术中需要一种固定的规则流设计平台,导致设计出的规则流固化不灵活的技术问题。
此处需要说明的是,上述获取模块82、配置模块84和数据处理模块86对应于实施例一中的步骤S302至步骤S306,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的规则引擎中规则流的处理方法中,可以通过软件实现,也可以通过硬件实现。
可选的,本申请提供的规则引擎中规则流的处理装置还包括:解析模块,用于获取用户设置的用户表之后,解析用户表,得到用户表对应的待处理对象的属性信息;流程生成模块,用于依据属性信息生成规则执行流程;节点配置模块,用于依据规则执行流程配置各个节点处的节点类型,其中,节点类型包括:起始节点、中间节点和结尾节点。
此处需要说明的是,上述解析模块、流程生成模块和节点配置模块对应于实施例一中的步骤S303至步骤S307,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的规则引擎中规则流的处理方法中,可以通过软件实现,也可以通过硬件实现。
进一步地,可选的,配置模块84包括:规则匹配单元,用于依据节点类型匹配对应的待执行规则;配置单元,用于依据节点类型中的节点通过待执行规则生成路由节点,并依据路由节点在线得到对应的规则流。
此处需要说明的是,上述规则匹配单元和配置单元对应于实施例一中的步骤S304中中的Step1和Step2,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的规则引擎中规则流的处理方法中,可以通过软件实现,也可以通过硬件实现。
实施例5
根据本发明实施例的再一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述实施例1和2中的规则引擎中规则流的处理方法。
实施例6
根据本发明实施例的再一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述实施例1和2中的规则引擎中规则流的处理方法。
实施例7
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的规则引擎中规则流的处理方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取用户设置的用户表,用户表包括待处理对象的属性信息;基于用户表的属性信息,生成对应的规则流,并将规则流中的规则描述及规则流中的节点类型存储在数据库中;运行规则流,对数据表中的用户数据进行计算,得到满足规则流的用户,并触发规则流中相应的规则。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取用户设置的用户表之后,该方法还包括:解析用户表,得到用户表对应的待处理对象的属性信息;依据属性信息生成规则执行流程;依据规则执行流程配置各个节点处的节点类型,其中,节点类型包括:起始节点、中间节点和结尾节点。
进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:基于用户表的属性信息,生成对应的规则流包括:依据节点类型匹配对应的待执行规则;依据节点类型中的节点通过待执行规则生成路由节点,并依据路由节点在线得到对应的规则流。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据节点类型匹配对应的待执行规则包括:在节点类型为中间节点的情况下,依据中间节点的规则标识和规则语句匹配对应的待执行规则。
进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据节点类型中的节点通过待执行规则生成路由节点,并依据路由节点在线得到对应的规则流包括:将中间节点中的各个节点通过待执行规则生成节点与节点之间的执行路径;依据执行路径设定各个节点的路由位置,得到对应的路由节点;依据各个节点对应的路由节点在线生成对应的规则执行流程,并将规则执行流程确定为规则流。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:将规则流中的规则描述及规则流中的节点类型存储在数据库中包括:将规则流存储至数据库中;通过规则计算引擎同步对规则流中的数据进行修改,对规则流中的数据进行修改包括:实时或定时从数据库中同步当前生效的规则和规则流,并构建规则处理流程;其中,构建规则处理流程包括:增加更新后的规则和规则流,或删除失效的规则和规则流。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种规则引擎中规则流的处理方法,其特征在于,包括:
获取用户设置的用户表,所述用户表包括待处理对象的属性信息;
基于所述用户表的属性信息,生成对应的规则流,并将所述规则流中的规则描述及所述规则流中的节点类型存储在数据库中;
运行所述规则流,对所述数据表中的用户数据进行计算,得到满足所述规则流的用户,并触发规则流中相应的规则。
2.根据权利要求1所述的规则引擎中规则流的处理方法,其特征在于,所述获取用户设置的用户表之后,所述方法还包括:
解析所述用户表,得到所述用户表对应的待处理对象的属性信息;
依据所述属性信息生成规则执行流程;
依据所述规则执行流程配置各个节点处的节点类型,其中,所述节点类型包括:起始节点、中间节点和结尾节点。
3.根据权利要求2所述的规则引擎中规则流的处理方法,其特征在于,所述基于所述用户表的属性信息,生成对应的规则流包括:
依据所述节点类型匹配对应的待执行规则;
依据所述节点类型中的节点通过所述待执行规则生成路由节点,并依据所述路由节点在线得到对应的规则流。
4.根据权利要求3所述的规则引擎中规则流的处理方法,其特征在于,所述依据所述节点类型匹配对应的待执行规则包括:
在所述节点类型为所述中间节点的情况下,依据所述中间节点的规则标识和规则语句匹配对应的待执行规则。
5.根据权利要求4所述的规则引擎中规则流的处理方法,其特征在于,所述依据所述节点类型中的节点通过所述待执行规则生成路由节点,并依据所述路由节点在线得到对应的规则流包括:
将所述中间节点中的各个节点通过所述待执行规则生成节点与节点之间的执行路径;
依据所述执行路径设定所述各个节点的路由位置,得到对应的所述路由节点;
依据所述各个节点对应的路由节点在线生成对应的规则执行流程,并将所述规则执行流程确定为所述规则流。
6.根据权利要求1所述的规则引擎中规则流的处理方法,其特征在于,所述将所述规则流中的规则描述及所述规则流中的节点类型存储在数据库中包括:
将所述规则流存储至数据库中;
通过规则计算引擎同步对所述规则流中的数据进行修改,所述对所述规则流中的数据进行修改包括:实时或定时从所述数据库中同步当前生效的规则和规则流,并构建规则处理流程;
其中,所述构建规则处理流程包括:
增加更新后的规则和规则流,或删除失效的规则和规则流。
7.一种规则引擎中规则流的处理方法,其特征在于,包括:
获取用户设置的用户表,所述用户表包括待处理对象的属性信息;
基于所述用户表的属性信息,生成对应的规则流,并将所述规则流中的规则描述及所述规则流中的节点类型存储在数据库中。
8.根据权利要求7所述的规则引擎中规则流的处理方法,其特征在于,在所述将所述规则流中的规则描述及所述规则流中的节点类型存储在数据库中之后,所述方法还包括:
运行所述规则流,对所述数据表中的用户数据进行计算,得到满足所述规则流的用户,并触发规则流中相应的规则。
9.根据权利要求8所述的规则引擎中规则流的处理方法,其特征在于,在所述将所述规则流中的规则描述及所述规则流中的节点类型存储在数据库中之后,所述方法还包括:
通过规则计算引擎同步对所述规则流中的数据进行修改,所述对所述规则流中的数据进行修改包括:实时或定时从所述数据库中同步当前生效的规则和规则流,并构建规则处理流程;
其中,所述构建规则处理流程包括:
增加更新后的规则和规则流,或删除失效的规则和规则流。
10.一种规则引擎中规则流的处理系统,其特征在于,包括:客户端、数据库、规则计算引擎、数据更新模块和请求代理集群,其中,
所述请求代理集群,用于接收业务请求;
所述规则计算引擎,与所述请求代理集群,用于在预设时间从所述数据库中同步规则和规则流,并依据所述业务请求分析生成规则处理流程;
所述数据更新模块,与所述规则计算引擎连接,用于采集所述规则或所述规则流中的数据,进行存储并计算;
所述客户端,与所述数据库连接,用于对所述数据库中的所述规则和所述规则流进行管理;
所述数据库,用于存储所述规则和所述规则流。
11.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至9中任意一项所述的规则引擎中规则流的处理方法。
12.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至9中任意一项所述的规则引擎中规则流的处理方法。
CN201710901358.5A 2017-09-28 2017-09-28 规则引擎中规则流的处理方法、系统、存储介质和处理器 Active CN109582289B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710901358.5A CN109582289B (zh) 2017-09-28 2017-09-28 规则引擎中规则流的处理方法、系统、存储介质和处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710901358.5A CN109582289B (zh) 2017-09-28 2017-09-28 规则引擎中规则流的处理方法、系统、存储介质和处理器

Publications (2)

Publication Number Publication Date
CN109582289A true CN109582289A (zh) 2019-04-05
CN109582289B CN109582289B (zh) 2022-04-08

Family

ID=65914538

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710901358.5A Active CN109582289B (zh) 2017-09-28 2017-09-28 规则引擎中规则流的处理方法、系统、存储介质和处理器

Country Status (1)

Country Link
CN (1) CN109582289B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111274202A (zh) * 2020-01-15 2020-06-12 深圳市中农网有限公司 电子合同生成方法、装置、计算机设备及存储介质
CN111640000A (zh) * 2020-04-17 2020-09-08 四川新网银行股份有限公司 一种基于实时决策的数据源调用方法
CN111666087A (zh) * 2020-05-28 2020-09-15 平安医疗健康管理股份有限公司 运算规则更新方法、装置、计算机系统及可读存储介质
CN112286521A (zh) * 2020-10-30 2021-01-29 上海中通吉网络技术有限公司 一种任务流程处理方法、存储介质及处理器
CN113377419A (zh) * 2021-05-31 2021-09-10 同盾科技有限公司 一种业务处理方法、装置、可读存储介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104020997A (zh) * 2014-06-13 2014-09-03 中国民航信息网络股份有限公司 可扩展图形化规则应用系统
WO2015076793A1 (en) * 2013-11-20 2015-05-28 Hewlett-Packard Development Company, L.P. Determining an action in response to an event
CN106101090A (zh) * 2016-06-07 2016-11-09 中国建设银行股份有限公司 用于规则引擎的操作方法以及规则引擎系统
CN107133039A (zh) * 2017-04-28 2017-09-05 九次方大数据信息集团有限公司 规则引擎的构建方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015076793A1 (en) * 2013-11-20 2015-05-28 Hewlett-Packard Development Company, L.P. Determining an action in response to an event
CN104020997A (zh) * 2014-06-13 2014-09-03 中国民航信息网络股份有限公司 可扩展图形化规则应用系统
CN106101090A (zh) * 2016-06-07 2016-11-09 中国建设银行股份有限公司 用于规则引擎的操作方法以及规则引擎系统
CN107133039A (zh) * 2017-04-28 2017-09-05 九次方大数据信息集团有限公司 规则引擎的构建方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
余昀锦: ""保险行业中Drools规则引擎的研究与应用"", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111274202A (zh) * 2020-01-15 2020-06-12 深圳市中农网有限公司 电子合同生成方法、装置、计算机设备及存储介质
CN111274202B (zh) * 2020-01-15 2023-07-14 深圳市中农网有限公司 电子合同生成方法、装置、计算机设备及存储介质
CN111640000A (zh) * 2020-04-17 2020-09-08 四川新网银行股份有限公司 一种基于实时决策的数据源调用方法
CN111666087A (zh) * 2020-05-28 2020-09-15 平安医疗健康管理股份有限公司 运算规则更新方法、装置、计算机系统及可读存储介质
CN112286521A (zh) * 2020-10-30 2021-01-29 上海中通吉网络技术有限公司 一种任务流程处理方法、存储介质及处理器
CN113377419A (zh) * 2021-05-31 2021-09-10 同盾科技有限公司 一种业务处理方法、装置、可读存储介质及电子设备

Also Published As

Publication number Publication date
CN109582289B (zh) 2022-04-08

Similar Documents

Publication Publication Date Title
CN109582289A (zh) 规则引擎中规则流的处理方法、系统、存储介质和处理器
CN109344170B (zh) 流数据处理方法、系统、电子设备及可读存储介质
CN110147722A (zh) 一种视频处理方法、视频处理装置及终端设备
US20130097320A1 (en) Business Network Access Protocol for the Business Network
CN106856439B (zh) 一种方案测试的方法及服务器
US20190179863A1 (en) Determining Feasible Itinerary Solutions
CN109558202A (zh) 基于小程序的列表页面开发方法、装置、设备及存储介质
CN112036577B (zh) 基于数据形式的应用机器学习的方法、装置和电子设备
US20180276508A1 (en) Automated visual information context and meaning comprehension system
CN104951456A (zh) 一种用于获得答案信息的方法、装置和设备
CN107273122A (zh) 基于解耦机制的可迭代组建业务系统的方法及其终端
CN110347708A (zh) 一种数据处理方法以及相关设备
CN110457011A (zh) 软件应用定制方法及开发服务端
CN103534988A (zh) 消息发布与订阅的方法及装置
CN109685089A (zh) 评估模型性能的系统及方法
CN115858796A (zh) 一种故障知识图谱构建方法及装置
CN112949973A (zh) 一种结合ai的机器人流程自动化rpa流程的生成方法
CN109189393A (zh) 业务处理方法及装置
CN110471780A (zh) 分布式事件处理装置、终端和计算机存储介质
CN110413367A (zh) 任务创建方法、装置、存储介质及电子设备
CN103218682A (zh) 基于Web服务编排描述语言的多方协同业务流程监控系统
Chiș A modeling method for model-driven API management
CN110362771A (zh) 页面缓存的方法及装置、存储介质和电子装置
CN108989311A (zh) 生成输入参数的方法及设备
EP3109773A1 (en) Relatedness graph evaluation system

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
GR01 Patent grant
GR01 Patent grant