一种基于函数的规则引擎的建立方法和规则引擎技术

技术编号:38479413 阅读:12 留言:0更新日期:2023-08-15 16:57
本申请提供一种基于函数的规则引擎的建立方法及规则引擎、计算设备和计算机可读存储介质,其中所述方法通过基于函数的规则引擎对输入的数据进行规则的判断,在规则文件的任意位置使用函数描述每个逻辑执行单元,利用函数的组合、嵌套即可实现复杂的规则定义。对应的,在规则引擎中根据序列化协议定义的函数结构对规则文件中的函数进行解析和执行,并支持动态将自定义的函数或函数块注册到规则引擎中,从而较好的实现了根据不同的系统、不同的用户行为灵活制定各种反作弊的策略。行为灵活制定各种反作弊的策略。行为灵活制定各种反作弊的策略。

【技术实现步骤摘要】
一种基于函数的规则引擎的建立方法和规则引擎


[0001]本申请涉及计算机安全
,特别涉及一种基于函数的规则引擎的建立方法和规则引擎、计算设备和计算机可读存储介质。

技术介绍

[0002]目前,各种类型的互联网系统如反作弊系统为了对业务逻辑进行高效的处理,通常会使用规则引擎对业务数据进行规则判断,从而输出结果数据。其中,规则由大量的业务条件所组成,其基本思想是将业务逻辑从程序代码中抽取出来,将其转变为简单的业务规则,以结构化的业务规则语言来表示。这些业务规则语言包括DSL语言、各种动态脚本语言等,在配置复杂规则时较为繁琐,也导致了额外的学习成本。因此需要一种配置灵活方便、操作简单且易于学习且的规则引擎从而能提高业务系统的执行效率。

技术实现思路

[0003]有鉴于此,本申请实施例提供了一种基于函数的规则引擎的建立方法及规则引擎、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。
[0004]根据本申请实施例的第一方面,提供了一种基于函数的规则引擎的建立方法,包括:
[0005]规则引擎加载规则文件,创建多个规则实例;
[0006]所述规则文件中的每个逻辑执行单元均由函数直接描述;
[0007]所述规则引擎对规则实例中的函数进行解析,完成输入数据与规则实例的匹配。
[0008]根据本申请实施例的第二方面,提供了一种基于函数的规则引擎,包括:
[0009]加载模块,用于读取规则文件,创建多个规则实例;
[0010]规则文件,所述规则文件中的每个逻辑执行单元均由函数直接描述;
[0011]解析模块,用于对规则实例中的函数进行解析,完成输入数据与规则实例的匹配。
[0012]根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述基于函数的规则引擎的建立方法的步骤。
[0013]根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述基于函数的规则引擎的建立方法的步骤。
[0014]与现有技术相比,本申请实施例中,通过基于函数的规则引擎对输入的数据进行规则的判断,由于规则引擎加载的规则文件在任意位置使用函数描述每个逻辑执行单元,使得规则的表达能力十分强大,利用函数的组合、嵌套即可实现复杂的规则定义。由于函数的结构简单明确,即使是非开发人员也可以制定较为复杂的规则。对应的,在规则引擎中根据序列化协议定义的函数结构对规则文件中的函数进行解析和执行,并支持动态将自定义的函数或函数块注册到规则引擎中,方便了运营和产品人员根据不同的需求动态调整规则的实例。
附图说明
[0015]图1是本申请实施例提供的规则引擎的使用场景示意图;
[0016]图2是本申请实施例提供的一种基于策略中间层规则引擎的访问控制方法的时序示意图;
[0017]图3是本申请实施例提供的一种基于函数的规则引擎的结构示意图。
具体实施方式
[0018]在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
[0019]在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0020]应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“响应于确定”。
[0021]在本申请中,提供了一种基于函数的规则引擎的建立方法及装置、计算设备和计算机可读存储介质,在下面的实施例中逐一进行详细说明。
[0022]图1示出了根据本申请一实施例提供的规则引擎的使用场景示意图。
[0023]为了对各种可能出现的作弊行为进行灵活的配置和应对,业务服务器102根据用户的请求得到用户行为相关参数后将其转发给策略中间层104;在策略中间层104中,将用户行为相关参数进一步发送给缓存服务106,根据用户行为相关参数查询得到风险匹配结果,进而,根据策略中间层106的规则引擎中的多个规则实例对风险匹配结果进行判断得到对应的策略执行方式,实现了对不同用户的行为进行风险控制的功能。其中,在上述规则引擎的规则实例中,通过函数实现了每个逻辑执行单元的表达,包括但不限于逻辑判断、数学表达式、数据源等,都以函数的形式提供,并通过对不同的函数进行嵌套组合完成规则实例的定义。即在规则中的任意位置定义函数,并且可以把函数作为值传递,从而使得规则定义的过程简洁、灵活以及易于学习。
[0024]其中,图2示出了根据本申请一实施例的基于策略中间层规则引擎的访问控制方法的时序图,在该时序图中主要包括如下步骤。
[0025]步骤202:接收客户端请求,生成用户行为相关参数;
[0026]在该步骤中,业务服务器接收客户端发送的各类用户请求,其中不同的用户请求代表了不同的用户行为,这些用户通常具有各种不同的属性。
[0027]在一种可行的实施方式中,业务服务器接收用户发送的注册请求、登录请求、支付请求、获取验证码或其他请求后,进一步的,业务服务器根据用户的请求生成不同的用户行
为参数,在用户行为参数中,至少包括了能够标识用户以及与用户行为相关的多个参数字段。例如,业务服务器根据用户的注册请求,生成如下的用户行为相关参数:
[0028][0029][0030]本领域技术人员应当知晓,上述用户行为相关参数仅为例举,并非将参数类型局限于上述列表中。
[0031]步骤204:发送用户行为相关参数到策略中间层执行风险控制策略。
[0032]在一种可行的实施方式中,业务服务器在执行业务流程之前,优先将用户行为相关参数发送策略中间层,再根据策略中间层返回的风险控制策略确定相应的业务流程。具体的,由策略中间层根据用户行为相关参数确认本次询问的用户行为信息是否在风险。
[0033]其中,步骤204进一步包括:
[0034]步骤2042:策略中间层根据用户行为相关参数在风险库中进行匹配,获取匹配结果。
[0035]其中,风险库包括但不限于用户标识风险库、IP风险库和设备指纹风险库。策略中间层根据用户行为相关参数分别获取用户标识、IP和或设备指纹的风险匹配结果。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于函数的规则引擎的建立方法,其特征在于,包括:规则引擎加载规则文件,创建多个规则实例;所述规则文件中的每个逻辑执行单元均由函数直接描述;所述规则引擎对规则实例中的函数进行解析,完成输入数据与规则实例的匹配。2.根据权利要求1所述的方法,其中,所述规则文件中的每个逻辑执行单元均由函数直接描述包括:基于函数的标识以及函数的输入参数完成所述逻辑执行单元的描述。3.根据权利要求2所述的方法,其中,所述基于函数的标识以及函数的输入参数完成所述逻辑执行单元的描述包括:所述函数的输入包括函数的嵌套,所述函数的嵌套为函数块的标识。4.根据权利要求3所述的方法,其中,所述规则文件中的每个逻辑执行单元均由函数直接描述还包括:将可以重复使用的函数标记为函数块,通过所述函数块的标识重复使用函数功能。5.根据权利要求1所述的方法,其中,所述规则引擎对规则实例中的函数进行解析包括:在所述规则引擎中对获取的函数字节流进行解析,并根据所述规则引擎中的默认逻辑运算对解析后的函数进行执行。6.根据权利要求5所...

【专利技术属性】
技术研发人员:梁前武田文王新宇郭子文李建良袁冠鹏何雨泉杨东林逸
申请(专利权)人:北京云游互动网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1