本发明专利技术属于实时数据处理技术领域,具体公开了基于SpEL和缓存的规则匹配方法、系统、设备及存储介质,通过对外部应用的规则匹配请求进行规则类型和规则定义校验,在校验通过后将请求体参数绑定至预设的评估上下文对象,得到表达式输入数据,然后基于表达式输入数据对预先缓存的规则表达式对象集合进行规则表达式计算,确定匹配的规则表达式对象,最后将匹配的规则表达式对象封装发送至外部应用,可以实现分布式、轻量级、跨平台的高性能规则匹配服务。本发明专利技术可以进行统一的规则管理,能够满足灵活的规则匹配需求,提高规则匹配性能,适用于大规模、低时延的规则匹配场景,具有高效率和轻量级的优点。
【技术实现步骤摘要】
本专利技术属于实时数据处理,具体涉及基于spel和缓存的规则匹配方法、系统、设备及存储介质。
技术介绍
1、java中常用的规则引擎有drools、easyrule、rulebook等,这些规则引擎在业务上进行规则匹配时,一方面普遍存在“侵入性”“硬编码”及“高耦合”等违反设计原则问题;另一方面普遍存在“并发低”及“规则匹配时延大”等性能问题;同时,还无法满足如下基本要求:a、提供统一的、可视化的规则库管理;b、提供分布式的、轻量级的、跨平台的规则匹配服务;c、提供高并发、高性能、高扩展、低时延的规则匹配服务。在网络安全、网络流量管理、入侵检测、事件处理等领域中,常常需要进行大规模、低时延、高并发、高性能的规则匹配,而上述几类常用的规则引擎显然无法满足要求。
技术实现思路
1、本专利技术的目的是提供基于spel和缓存的规则匹配方法、系统、设备及存储介质,用以解决现有技术中存在的上述问题。
2、为了实现上述目的,本专利技术采用以下技术方案:
3、第一方面,提供基于spel和缓存的规则匹配方法,包括:
4、通过服务接口获取外部应用传输的规则匹配请求,所述规则匹配请求包含请求体参数和规则类型参数;
5、根据规则类型参数对规则匹配请求进行规则类型校验和规则定义校验;
6、在规则类型校验和规则定义校验通过时,从预置的评估上下文对象池中提取评估上下文对象,并将规则匹配请求的请求体参数绑定至评估上下文对象中,得到表达式输入数据;
7、根据规则类型参数从预置的缓存区中调取对应的规则表达式对象集合,所述规则表达式对象集合中包含若干规则表达式对象;
8、利用表达式输入数据对规则表达式对象集合中的各规则表达式对象进行规则表达式计算,得到计算结果;
9、根据计算结果确定匹配的规则表达式对象,并将匹配的规则表达式对象封装为响应结果对象;
10、将响应结果对象通过服务接口发送至对应的外部应用。
11、在一个可能的设计中,在通过服务接口获取外部应用传输的规则匹配请求前,所述方法还包括:
12、初始化本地的评估上下文对象池;
13、从数据库加载以spel表达式语言进行描述的规则定义,并将规则定义解析为规则表达式对象,将规则表达式对象配上唯一id存入缓存区中。
14、在一个可能的设计中,在将规则表达式对象配上唯一id存入缓存区后,所述方法还包括:
15、加载以spel表达式语言进行描述的新增规则定义,并将新增规则定义解析为新增规则表达式对象,将新增规则表达式对象配上唯一id存入缓存区中;
16、和/或加载以spel表达式语言进行描述的修改规则定义,并将修改规则定义解析为修改规则表达式对象,将修改规则表达式对象配上对应的规则表达式对象的唯一id存入缓存区中,替换缓存区中对应的规则表达式对象;
17、和/或获取待删除的规则表达式对象的唯一id,根据待删除的规则表达式对象的唯一id将缓存区中对应待删除的规则表达式对象删除。
18、在一个可能的设计中,所述根据规则类型参数对规则匹配请求进行规则类型校验和规则定义校验,包括:
19、将规则类型参数代入预置的规则类型表中进行匹配校验,当规则类型表中存在对应的规则类型参数且未禁用时,判定规则类型校验通过,否则判定规则类型校验不通过;
20、将规则类型参数代入预置的规则定义表中进行匹配校验,当规则定义表中存在对应的规则定义且未禁用时,判定规则定义校验通过,否则判定规则定义校验不通过。
21、在一个可能的设计中,在规则类型校验不通过和/或规则定义校验不通过时,所述方法还包括:
22、生成对应的错误提示信息,将错误提示信息通过服务接口发送至对应的外部应用。
23、在一个可能的设计中,所述规则表达式对象集合中的各规则表达式对象按优先级从高到低的顺序排列,在利用表达式输入数据对规则表达式对象集合中的各规则表达式对象进行规则表达式计算时,对各规则表达式对象按优先级从高到低的顺序进行遍历计算,所述根据计算结果确定匹配的规则表达式对象,包括:
24、将出现的第一个计算结果为真的规则表达式对象确定为匹配的规则表达式对象。
25、在一个可能的设计中,所述根据计算结果确定匹配的规则表达式对象,包括:
26、将计算结果为真的所有规则表达式对象均确定为匹配的规则表达式对象。
27、第二方面,提供基于spel和缓存的规则匹配系统,包括输入单元、校验单元、提取单元、调取单元、计算单元、封装单元和输出单元,其中:
28、输入单元,用于通过服务接口获取外部应用传输的规则匹配请求,所述规则匹配请求包含请求体参数和规则类型参数;
29、校验单元,用于根据规则类型参数对规则匹配请求进行规则类型校验和规则定义校验;
30、提取单元,用于在规则类型校验和规则定义校验通过时,从预置的评估上下文对象池中提取评估上下文对象,并将规则匹配请求的请求体参数绑定至评估上下文对象中,得到表达式输入数据;
31、调取单元,用于根据规则类型参数从预置的缓存区中调取对应的规则表达式对象集合,所述规则表达式对象集合中包含若干规则表达式对象;
32、计算单元,用于利用表达式输入数据对规则表达式对象集合中的各规则表达式对象进行规则表达式计算,得到计算结果;
33、封装单元,用于根据计算结果确定匹配的规则表达式对象,并将匹配的规则表达式对象封装为响应结果对象;
34、输出单元,用于将响应结果对象通过服务接口发送至对应的外部应用。
35、第三方面,提供基于spel和缓存的规则匹配设备,包括:
36、存储器,用于存储指令;
37、处理器,用于读取所述存储器中存储的指令,并根据指令执行上述第一方面中任意一种所述的方法。
38、第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行第一方面中任意一种所述的方法。同时,还提供一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行第一方面中任意一种所述的方法。
39、有益效果:本专利技术通过对外部应用的规则匹配请求进行规则类型和规则定义校验,在校验通过后将请求体参数绑定至预设的评估上下文对象,得到表达式输入数据,然后基于表达式输入数据对预先缓存的规则表达式对象集合进行规则表达式计算,确定匹配的规则表达式对象,最后将匹配的规则表达式对象封装发送至外部应用,可以实现分布式、轻量级、跨平台的高性能规则匹配服务。本专利技术可以进行统一的规则管理,能够灵活地定义和修改规则,增强了规则的可维护性和可扩展性;能够满足灵活的规则匹配需求,增强规则的表达能力和适用范围;可以将规则匹配和匹配结果对应的业务操作进行解耦,不仅增加了规则的可复用性,而且本文档来自技高网
...
【技术保护点】
1.基于SpEL和缓存的规则匹配方法,其特征在于,包括:
2.根据权利要求1所述的基于SpEL和缓存的规则匹配方法,其特征在于,在通过服务接口获取外部应用传输的规则匹配请求前,所述方法还包括:
3.根据权利要求2所述的基于SpEL和缓存的规则匹配方法,其特征在于,在将规则表达式对象配上唯一ID存入缓存区后,所述方法还包括:
4.根据权利要求1所述的基于SpEL和缓存的规则匹配方法,其特征在于,所述根据规则类型参数对规则匹配请求进行规则类型校验和规则定义校验,包括:
5.根据权利要求1所述的基于SpEL和缓存的规则匹配方法,其特征在于,在规则类型校验不通过和/或规则定义校验不通过时,所述方法还包括:
6.根据权利要求1所述的基于SpEL和缓存的规则匹配方法,其特征在于,所述规则表达式对象集合中的各规则表达式对象按优先级从高到低的顺序排列,在利用表达式输入数据对规则表达式对象集合中的各规则表达式对象进行规则表达式计算时,对各规则表达式对象按优先级从高到低的顺序进行遍历计算,所述根据计算结果确定匹配的规则表达式对象,包括:p>7.根据权利要求1所述的基于SpEL和缓存的规则匹配方法,其特征在于,所述根据计算结果确定匹配的规则表达式对象,包括:
8.基于SpEL和缓存的规则匹配系统,其特征在于,包括输入单元、校验单元、提取单元、调取单元、计算单元、封装单元和输出单元,其中:
9.基于SpEL和缓存的规则匹配设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行权利要求1-7任意一项所述的基于SpEL和缓存的规则匹配方法。
...
【技术特征摘要】
1.基于spel和缓存的规则匹配方法,其特征在于,包括:
2.根据权利要求1所述的基于spel和缓存的规则匹配方法,其特征在于,在通过服务接口获取外部应用传输的规则匹配请求前,所述方法还包括:
3.根据权利要求2所述的基于spel和缓存的规则匹配方法,其特征在于,在将规则表达式对象配上唯一id存入缓存区后,所述方法还包括:
4.根据权利要求1所述的基于spel和缓存的规则匹配方法,其特征在于,所述根据规则类型参数对规则匹配请求进行规则类型校验和规则定义校验,包括:
5.根据权利要求1所述的基于spel和缓存的规则匹配方法,其特征在于,在规则类型校验不通过和/或规则定义校验不通过时,所述方法还包括:
6.根据权利要求1所述的基于spel和缓存的规则匹配方法,其特征在于,所述规则表达式对象集合中的各规则...
【专利技术属性】
技术研发人员:戈亮锋,
申请(专利权)人:中通服软件科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。