CN114629954A - 内容分发方法和系统 - Google Patents

内容分发方法和系统 Download PDF

Info

Publication number
CN114629954A
CN114629954A CN202210261293.3A CN202210261293A CN114629954A CN 114629954 A CN114629954 A CN 114629954A CN 202210261293 A CN202210261293 A CN 202210261293A CN 114629954 A CN114629954 A CN 114629954A
Authority
CN
China
Prior art keywords
target
screening
handler
handlers
determining
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
CN202210261293.3A
Other languages
English (en)
Other versions
CN114629954B (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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology Co 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202210261293.3A priority Critical patent/CN114629954B/zh
Publication of CN114629954A publication Critical patent/CN114629954A/zh
Application granted granted Critical
Publication of CN114629954B publication Critical patent/CN114629954B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请提供了一种内容分发方法,包括:将请求参数输入至规则引擎,所述规则引擎关联多个handler,handler用于相应筛选维度的规则匹配;根据所述请求参数,通过规则引擎加载所述多个handler中的一个或多个目标handler;通过所述一个或多个目标handler,确定与所述请求参数匹配的一个或多个命中筛选规则;确定与所述一个或多个命中筛选规则绑定的目标分发内容;及将所述目标分发内容下发至目标设备,以在所述目标设备上展示所述目标分发内容。本申请提供的技术方案具有如下优势:将管理规则的筛选维度统一收口为一个筛选维度对应一个handler,非常便于管理;不需要根据业务编写重复代码,避免代码臃肿。

Description

内容分发方法和系统
技术领域
本申请涉及内容分发领域,尤其涉及一种内容分发方法、装置、计算机设备及计算机可读存储介质。
背景技术
随着互联网技术的发展,内容分发已成为当下一种热门的网络业务。随着内容的急速增长,如果将各种内容对所有设备进行无差别的下发,则可能会造成以下后果:(1)严重浪费网络带宽资源,并影响内容的网络传输速度;(2)有些设备并不支持部分内容,从而会影响用户体验,造成不必要的流量浪费。
因此,如何确定是否向设备下发内容、下发何种内容,成为了业界急需解决的技术问题。目前,业界是通过大量规则来实现对各种内容的下发。然而,本发明人发现,在众多分散的场景中,可能存在规则分散、边界划分不明确等不符合分层理念的情况从而导致重复编写业务逻辑,容易造成代码臃肿、且不易管理。
发明内容
本申请的目的是提供一种内容分发方法、系统、计算机设备及计算机可读存储介质,用于解决上述问题。
本申请实施例的一个方面提供了一种内容分发方法,包括:
将请求参数输入至规则引擎,所述规则引擎关联多个handler,handler用于相应筛选维度的规则匹配;
根据所述请求参数,通过规则引擎加载所述多个handler中的一个或多个目标handler;
通过所述一个或多个目标handler,确定与所述请求参数匹配的一个或多个命中筛选规则;
确定与所述一个或多个命中筛选规则绑定的目标分发内容;及
将所述目标分发内容下发至目标设备,以在所述目标设备上展示所述目标分发内容。
可选的,所述请求参数包括:
handler元信息,包括所述一个或多个目标handler的元信息;
输入参数,用于输入到所述一个或多个目标handler中,以用于筛选规则的匹配。
可选的,每个handler分别对应一个筛选维度;所述根据所述请求参数,通过规则引擎加载一个或多个目标handler,包括:
根据业务场景,从多个筛选维度中确定若干个筛选维度,该若干个筛选维度对应若干个handler;及
根据所述handler元信息,从所述若干个handler中选择用于加载的一个或多个目标handler。
可选的,每个handler定义有handler元信息、检验逻辑,和匹配逻辑;
所述通过所述一个或多个目标handler,确定与所述请求参数匹配的一个或多个命中筛选规则,包括:
根据各目标handler的元信息和所述输入参数,确定所述输入参数通过检验;及
在所述输入参数通过检验的情形下,基于各目标handler中的匹配逻辑进行规则匹配;及
基于匹配结果,确定所述一个或多个命中筛选规则。
可选的,所述根据各目标handler的元信息和所述输入参数,确定所述输入参数通过检验,包括:
根据所述各目标handler的元信息的数据结构和所述输入参数的数据结构,确定所述输入参数符合所述一个或多个目标筛选维度的数据结构约束;
在所述输入参数符合所述一个或多个目标筛选维度的数据结构约束的情形下,判定检验通过。
可选的,所述根据所述各目标handler的元信息的数据结构和所述输入参数的数据结构,确定所述输入参数符合所述一个或多个目标筛选维度的数据结构约束,包括:
通过对比所述各目标handler的元信息的数据结构和所述输入参数的数据结构,确定所述输入参数的完整性;
通过对比所述各目标handler的元信息的数据结构和所述输入参数的数据结构,确定所述输入参数的数据类型为符合预设要求的目标数据类型;及
在确定所述输入参数完整且数据类型符合预设要求的情形下,通过所述各目标handler依据各自的检验逻辑分别对所述输入参数进行检验,以确定所述输入参数通过检验。
可选的,所述在所述输入参数通过检验的情形下,基于各目标handler中的匹配逻辑进行规则匹配,包括:
获取所述各目标handler对所述输入参数的匹配结果,以得到多个匹配结果;及
根据所述多个匹配结果,获取与所述输入参数匹配成功的所述一个或多个命中筛选规则。
可选的,还包括:
预先将不同的分发内容分别和一个或多个筛选规则进行绑定;
当一个分发内容绑定多个筛选规则时,则该分发内容的下发条件为该多个筛选规则均被满足。
本申请实施例的一个方面又提供了一种内容分发系统,包括:
输入模块,用于将请求参数输入至规则引擎,所述规则引擎关联多个handler,handler用于相应筛选维度的规则匹配;
加载模块,用于根据所述请求参数,通过规则引擎加载所述多个handler中的一个或多个目标handler;
第一确定模块,用于通过所述一个或多个目标handler,确定与所述请求参数匹配的一个或多个命中筛选规则;
第二确定模块,用于确定与所述一个或多个命中筛选规则绑定的目标分发内容;及
下发模块,用于将所述目标分发内容下发至目标设备,以在所述目标设备上展示所述目标分发内容。
本申请实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现如上所述的内容分发方法的步骤。
本申请实施例的一个方面又提供了一种计算机可读存储介质,其内存储有计算机程序,所述计算机程序配置为执行时实现如上所述的内容分发方法的步骤。
本申请提供的内容分发方法、系统、计算机设备和计算机可读存储介质,具有如下优势:
第一:将管理规则的筛选维度统一收口为一个筛选维度对应一个handler,在handler中定义相应筛选维度的各种筛选规则的匹配逻辑,因此,属于同一筛选维度下的各筛选规则可以输入到同一个handler中,规则边界划分明确,非常便于管理。
第二:对于不同的业务而言,其可以自由组合筛选维度和具体筛选规则。当要执行这项业务时,可以通过请求参数输入到规则引擎中,通过规则引擎调用相应的一个或多个handler,进而通过还一个或多个handler去匹配请求参数所符合的筛选规则。若所符合的筛选规则和这项业务预先绑定的筛选规则重合时,可以执行这项业务。
可知,当一个业务涉及到多个筛选维度的多个规则时,不需要专门为这个业务重新编写代码,而是根据多个筛选维度启动对应的多个handler来实现代码组合。因此,本申请提供的技术方案,不需要根据业务编写重复代码,避免代码臃肿。
附图说明
图1示意性示出了根据本申请实施例的内容分发方法的应用环境图;
图2示意性示出了根据本申请实施例一的内容分发方法的流程图;
图3示意性示出了根据本申请实施例一的内容分发方法的新增流程图;
图4示意性示出了图2中步骤S202的子流程图;
图5示意性示出了图2中步骤S204的子流程图;
图6示意性示出了图5中步骤S500的子流程图;
图7示意性示出了图6中步骤S600的子流程图;
图8示意性示出了图5中步骤S502的子流程图;
图9示意性示出了在示例性应用中的规则引擎的操作流程;
图10示意性示出了在示例性应用中的规则引擎的检验流程;
图11示意性示出了在示例性应用中的规则引擎的数据流图;
图12示意性示出了根据本申请实施例二的内容分发系统的框图;及
图13示意性示出了根据本申请实施例三的适于实现内容分发方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本发明人发现,为了向设备推送适配的内容,直播服务端需要对多个业务参数进行一定的筛选逻辑处理以确定是否下发内容、下发何种内容。而在众多分散的业务场景中,可能存在服务设计上大体分散、业务边界划分不明确等不符合分层理念的情况从而导致重复编写业务逻辑,内容下发的链路不易梳理。同时,各个场景下的配置途径没有统一收口,也不便于排查逻辑链路上的问题。
有鉴于此,本申请旨在提供一种基于规则引擎的内容分发方案。该方案至包括:规则引擎的流程优化,筛选维度对规则的结构约束,输入规则和请求参数的校验和运算等。例如:
1、建立业务参数的通用规则编写系统,规则通过规则引擎校验和处理请求参数后可输出结果;
2、管理规则的筛选维度统一收口为一个筛选维度对应开发一个handler,降低筛选维度的拓展难度;
3、每个业务自由组合筛选维度,从而可以实现筛选维度和具体规则的自由组合。
下面本申请将对内容分发方案进行详细介绍。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
首次,提供本申请实施例涉及的术语解释:
规则引擎:是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。
handler,又称句柄或中间件,用于基于逻辑执行相应的处理操作。
元信息(Metadata),是描述其它数据的数据(data about other data),或者说是用于提供某种资源的有关信息的结构数据(structured data)。元数据是描述信息资源或数据等对象的数据,其使用目的在于:识别资源、评价资源、追踪资源在使用过程中的变化,用于实现信息资源的有效发现、查找、一体化组织和对使用资源的有效管理。
其次,如图1所示,提供根据本申请实施例的内容分发方法的环境应用示意图。在示例性的实施例中,计算机设备2可以通过网络4连接一个或多个设备6A、6B、…。
计算机设备2,可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
计算机设备2可以基于规则引擎确定下发内容,并通过网络4传输到相应的设备6A、6B、…。
网络4,可以包括各种网络设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或等等。网络可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,它们的组合和/或类似物。网络可以包括无线链路,例如蜂窝链路,卫星链路,Wi-Fi链路和/或类似物。
设备6A、6B、…,可以是诸如智能手机、平板设备、个人电脑等设备。6A、6B、…可以安装应用程序,应用程序用于接收和展示计算机设备2投放的内容。
最后,下文以图1中的计算机设备2为执行主体,对本申请技术方案进行示例性阐述。
实施例一
图2示意性示出了根据本申请实施例一的内容分发方法的流程图.
如图2所示,该内容分发方法可以包括步骤S200~S208,其中:
步骤S200,将请求参数输入至规则引擎,所述规则引擎关联多个handler,handler用于相应筛选维度的规则匹配。
所述请求参数,用于输入到规则引擎中,以供规则引擎进行规则匹配。其中,所述请求参数可以包括用于指示启动哪个/哪些handler的指示信息,以及输入参数。
在示例性的实施例中,为了确保规则引擎对请求参数的有效处理,所述请求参数包括:
(1)handler元信息,包括所述一个或多个目标handler的元信息;其中,所述handler元信息可以包括:handler标识码、规则元信息、入参元信息、执行方法等。
(2)输入参数,用于输入到所述一个或多个目标handler中,以用于筛选规则的匹配。
需要说明的是,所述请求参数还可以根据需要包括其他附加信息,在此不赘述。
所述规则引擎,关联含大量筛选规则的规则库。为了实现对筛选规则的高效管理和降低筛选维度的拓展难度,将管理规则的筛选维度统一收口为一个筛选维度对应一个handler。每个handler用于相应筛选维度下的筛选规则的匹配。因此,不同筛选维度的筛选规则解耦,同一个筛选维度的筛选规则被输入到同一个handler中。具体应用时,当涉及到多个筛选维度的筛选规则匹配时,则调用多个handler。即每个业务可以自由组合筛选维度,实现筛选维度和具体筛选规则的自由组合。
在示例性的实施例中,单个筛选规则或规则组合可以和内容进行绑定,从生成内容的下发策略。
如图3所示,所述方法还可以包括:
步骤S300,预先将不同的分发内容分别和一个或多个筛选规则进行绑定;
当一个分发内容绑定多个筛选规则时,则该分发内容的下发条件为该多个筛选规则均被满足。
以“闪屏页内容”为例:其对设备具有两条规则约束:(1)系统平台为安卓;(2)APP版本号在640300以上。因此,该“闪屏页内容”与“判定是否为安卓版本的筛选规则”及“判定APP版本是否在640300以上的筛选规则”同时进行绑定。可知,“闪屏页内容”可以根据需要和筛选规则或规则组合绑定,从而形成对该内容的下发策略,而不需要针对该内容重复编写对应于上述下发策略的业务逻辑。
步骤S202,根据所述请求参数,通过规则引擎加载所述多个handler中的一个或多个目标handler。
如上文所述,所述请求参数可以包括用于指示启动哪个/哪些handler的指示信息,以及输入参数。因此,所述规则引擎可以基于所述请求参数确定相应的一个或多个目标handler,进而,对该一个或多个目标handler进行加载及初始化。需要说明的是,目相应筛选维度的大量筛选规则被定义在目标handler中,也可以根据具体业务,从规则库中将不同筛选维度的具体筛选规则输入到目标handler中。
在示例性的实施例中,如图4所示,所述步骤S202可以包括如下步骤:步骤S400,根据业务场景,从多个筛选维度中确定若干个筛选维度,该若干个筛选维度一一对应若干个handler;步骤S402,根据所述handler元信息,从所述若干个handler中选择用于加载的一个或多个目标handler。在上述示例性的实施例中,可以预先定义多个业务场景,并定义每个业务场景涉及到的所有筛选维度。因此,可以根据所述请求参数对应的业务场景来确定与之关联的所有筛选维度(即,所述多个待筛选维度)。不同业务场景可以自由组合筛选维度,因此,实现了筛选维度的自由组合,即实现了handler(一个handler用于一个筛选维度的匹配)的自由组合。这种自由组合使得:当出现一个新的业务场景,可以避免写重复代码。另外,在已经确定所述多个待筛选维度的情形下,通过请求参数选择其所需的一个或多个目标筛选维度,从而进一步缩小筛选维度的个数,避免无关handler的启动。
步骤S204,通过所述一个或多个目标handler,确定与所述请求参数匹配的一个或多个命中筛选规则。
当请求参数通过其中一个目标handler的逻辑匹配时,则说明该请求参数符合输入到目标handler中的筛选规则。也即,这个目标handler的这个筛选规则为命中筛选规则。
如上述所述,所述请求参数可以包括handler元信息和输入参数。
在示例性的实施例中,每个handler定义有handler元信息、检验逻辑,和匹配逻辑。如图5所示,所述步骤S204可以包括:步骤S500,根据各目标handler的元信息和所述输入参数,确定所述输入参数通过检验;步骤S502,在所述输入参数通过检验的情形下,基于各目标handler中的匹配逻辑进行规则匹配;及步骤S504,基于匹配结果,确定所述一个或多个命中筛选规则。在本示例性的实施例中,首先检查所述输入参数是否符合目标筛选维度的格式要求。若不符合要求,则直接驳回,若符合要求,则下一步的规则匹配阶段,减少无效匹配运算。
在示例性的实施例中,如图6所示,所述步骤S500可以包括如下步骤:步骤S600,根据所述各目标handler的元信息的数据结构和所述输入参数的数据结构,确定所述输入参数符合所述一个或多个目标筛选维度的数据结构约束;步骤S602,在所述输入参数符合所述一个或多个目标筛选维度的数据结构约束的情形下,判定检验通过。在本示例性的实施例中,通过数据结构的约束,可以高效确定所述输入参数是否可以进入匹配阶段。当然,也可以通过其他方式来确定所述输入参数是否可以进入匹配阶段,例如,根据人工输入的方式进行确认是否可以进入匹配阶段。
在示例性的实施例中,如图7所示,所述步骤S600可以包括如下步骤:步骤S700,通过对比所述各目标handler的元信息的数据结构和所述输入参数的数据结构,确定所述输入参数的完整性;步骤S702,通过对比所述各目标handler的元信息的数据结构和所述输入参数的数据结构,确定所述输入参数的数据类型为符合预设要求的目标数据类型;及步骤S704,在确定所述输入参数完整且数据类型符合预设要求的情形下,通过所述各目标handler依据各自的检验逻辑分别对所述输入参数进行检验,以确定所述输入参数通过检验。在本示例性的实施例中,通过完整性、数据类型来确定所述输入参数是否可以进入匹配阶段,提高匹配阶段的匹配成功率和匹配效率。需要说明的是,还可以包括其他的验证项目。
在示例性的实施例中,如图8所示,所述步骤S502可以包括如下步骤:步骤S800,获取所述各目标handler对所述输入参数的匹配结果,以得到多个匹配结果;及步骤S802,根据所述多个匹配结果,获取与所述输入参数匹配成功的所述一个或多个命中筛选规则。在本示例性的实施例中,在匹配阶段:根据输入参数,进行相应的匹配计算,输出计算结果。筛选规则可以由多个子筛选规则组成,如:(大于等于100且小于等于200)或(等于999)。输入参数是一个符合该目标筛选维度规定的参数。最终每一条子筛选规则和总的筛选规则会输出匹配的结果,从而得到一个或多个命中筛选规则(即,匹配成功的筛选规则),并提供给调用方,用于最后的结果判断。
举例而言,一个请求参数的输入参数包括平台标识码和APP版本号(640005)。
平台,对应一个目标筛选维度,即对应一个用于平台匹配的目标handler X1。
APP版本,对应另一个目标筛选维度,即对应一个用于APP版本匹配的目标handlerX2。
规则引擎启动并初始化目标handler X1、X2。从规则库中向handlerX1、X2中输入需匹配的筛选规则。以目标handler X1为例,输入的筛选规则:规则1,是否为安卓平台。
之后,规则引擎将平台标识码输入到标handler X1进行规则匹配,匹配出:为安卓平台。
将APP版本号输入到目标handler X2进行规则匹配,匹配出:大于版本号640005。
上述两个筛选规则(为安卓平台,APP版本号大于640005)同时满足,表示支持闪屏页的下发。因此,在输入参数成功匹配出了上述两个筛选规则,则可以下发闪屏页。
步骤S206,确定与所述一个或多个命中筛选规则绑定的目标分发内容。
如上例所述,“安卓平台”和“APP版本号大于640005”形成的规则组合预先与“闪屏页”绑定。
若所述一个或多个命中筛选规则为“安卓平台”和“APP版本号大于640005”,则可以根据绑定关系确定目标分发内容(即“闪屏页”),并确定支持闪屏页的下发。
步骤S208,将所述目标分发内容下发至目标设备,以在所述目标设备上展示所述目标分发内容。
接上例,通过规则引擎匹配出“安卓平台”和“APP版本号大于640005”这两个命中筛选规则的情形下,则可以下发与这两个命中筛选规则预先绑定的“闪屏页”。
本申请实施例所述的内容分发方法包括以下优点:
第一:建立常见参数的规则引擎,可以通过规则引擎高效输出输入参数的匹配规则。
第二:将管理规则的筛选维度统一收口为一个筛选维度对应一个handler,在handler中定义相应筛选维度的各种筛选规则的匹配逻辑,因此,属于同一筛选维度下的各筛选规则可以输入到同一个handler中,规则边界划分明确,非常便于管理。
第三:对于不同的业务而言,其可以自由组合筛选维度和具体筛选规则。当要执行这项业务时,可以通过请求参数输入到规则引擎中,通过规则引擎调用相应的一个或多个handler,进而通过还一个或多个handler去匹配请求参数所符合的筛选规则。若所符合的筛选规则和这项业务预先绑定的筛选规则重合时,可以执行这项业务。
可知,当一个业务涉及到多个筛选维度的多个规则时,不需要专门为这个业务重新编写代码,而是根据多个筛选维度启动对应的多个handler来实现代码组合。因此,本申请实施例提供的方法,不需要根据业务编写重复代码,避免代码臃肿。
为了方便理解,以下提供一个示例性应用。
(1)预先配置规则引擎。
该规则引擎配置多个筛选维度,为每个筛选维度分别配置一个handler。
其中,每个handler中可以定义有以下内容:相应handler的元信息(如,输入参数的数据结构、指定筛选维度的元信息的数据结构)、相应筛选维度关联的规则匹配逻辑。
以下提供两个示例性的筛选维度:
筛选维度1:系统平台,对应一个用于平台匹配的handler X1。handler X1定义有检验规则、匹配逻辑。匹配逻辑可以将输入参数和规则提供的平台维度的筛选规则进行匹配。
筛选维度2:APP版本号,对应一个用于APP版本匹配的handler X2。handler X2定义有检验规则、匹配逻辑。匹配逻辑可以将输入参数和规则提供的APP版本维度的筛选规则进行匹配。例如将APP版本号640030和规则“APP版本号大于640005”进行匹配。
(2)将不同的业务接入上述配置好的规则引擎。
以“闪屏页”为例:
当前“闪屏页”的下发有APP版本限制以及平台限制,对于不同平台和不同的版本号。例如:平台条件限制为安卓平台(筛选规则1),且版本条件要求APP版本号大于640005(筛选规则2)。
为此,可以将“闪屏页”与规则引擎中的筛选规则1和筛选规则2绑定,不需要为“闪屏页”编写相应的专有逻辑,即不需要编写关于APP版本号判断和平台判断的耦合逻辑。
(3)规则引擎的使用。
该规则引擎位于计算机设备2中,该计算机设备2可以是各类服务器,用于提供后台服务。
如图1所示,计算机设备2与目标设备6A建立有通信连接。
目标设备6A可以提供各类播放服务,如直播服务。作为示例性应用,目标设备6A提供有图形用户界面,该图形用户界面具有多个功能按键,如“开播功能”按键。
当目标设备6A检测到应用开启或具体的“闪屏功能”按键被触发,则上传参数给计算机设备2。上传的参数可以包括目标设备6A的系统平台标识、APP版本号、CPU等硬件参数等。
计算机设备2会将目标设备6A上的至少部分参数和规则库中关于“闪屏页”的多个筛选规则接入到规则引擎(在一些实施例中,多个筛选规则也可以预存在规则引擎中)中,以供规则引擎使用。
举例而言:
调用规则引擎时,输入“闪屏页”业务对应的两条筛选规则和本次的请求参数,“闪屏页”的通用规则为平台和APP版本号,则输入规则引擎的参数,也应该与这两条筛选规则对应所需要的参数相同:平台(字符串类型)和版本号(64位整型)。规则引擎对这些输入的参数进行匹配运算,输出输入参数是否与这两条筛选规则匹配(匹配则为命中筛选规则),再下发与这两条命中筛选规则对应绑定的“闪屏页”内容。
如图9,请求参数被输入到规则引擎(S1)之后,规则引擎根据请求参数中指定handler的元信息确定一个或多个目标handler,进而启动该一个或多个目标handler。
将请求参数中的输入参数输入到各目标handler中,从规则库中将上述两条筛选规则输入各自筛选维度所对应的目标handler X1、X2中,以目标handler X1为例,操作如下:
S2:确定输入参数是否符合目标筛选维度的数据结构约束。若满足,进入步骤S3,否则输出置为错误。
如图10所示,S2可以包括如下步骤:
S21:对比输入参数的数据结构和目标handler X1的元信息的数据结构,确定所需参数是否填写。若已全部填写,进入步骤S22,否则检验不通过。
S22:对比输入参数的数据结构和目标handler X1的元信息的数据结构,确定参数的数据类型是否正确。若正确,进入步骤S23,否则检验不通过。
S23:根据目标handler X1自定义的检验逻辑进行检测,若检验通过,则进入匹配阶段,否则检验不通过。
S3:通过目标handler X1的匹配逻辑确定输入参数和筛选规则“平台是否为安卓”是否匹配。
具体的:获取本轮的筛选规则和输入参数,进行规则匹配结算,记录本次筛选规则和输入参数之间的匹配结果。与输入参数匹配的筛选规则称之为命中筛选规则。
示例性的,假设请求参数为:平台为安卓,版本号为640300,则运算过程为:1检查输入参数的参数类型(平台这一参数是否为字符串,出现的字符串是否符合现有的平台/版本号是否为正整数);2检查该项内容下的筛选规则是否都合规(与输入参数检查一致),3进行运算(如第一项规则中要求平台为安卓,而输入参数中的平台也为安卓;第二项规则中要求版本号大于640005,而输入参数中版本号为640300,也符合规则,所有规则都符合,则视为通过筛选,则本条内容可以下发。
最后如图11所示,计算机设备2根据命中筛选规则查询对应的闪屏页内容,并下发给目标设备6A。
实施例二
图12示意性示出了根据本申请实施例二的内容分发系统的框图,该内容分发系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本申请实施例中各程序模块的功能。如图12所示,该内容分发系统1200可以包括输入模块1210、加载模块1220、第一确定模块1230、第二确定模块1240、下发模块1250。其中:
输入模块1210,用于将请求参数输入至规则引擎,所述规则引擎关联多个handler,handler用于相应筛选维度的规则匹配;
加载模块1220,用于根据所述请求参数,通过规则引擎加载所述多个handler中的一个或多个目标handler;
第一确定模块1230,用于通过所述一个或多个目标handler,确定与所述请求参数匹配的一个或多个命中筛选规则;
第二确定模块1240,用于确定与所述一个或多个命中筛选规则绑定的目标分发内容;及
下发模块1250,用于将所述目标分发内容下发至目标设备,以在所述目标设备上展示所述目标分发内容。
在示例性的实施例中,所述请求参数包括:
handler元信息,包括所述一个或多个目标handler的元信息;
输入参数,用于输入到所述一个或多个目标handler中,以用于筛选规则的匹配。
在示例性的实施例中,所述加载模块1220,还用于:
根据业务场景,从多个筛选维度中确定若干个筛选维度,该若干个筛选维度一一对应若干个handler;及
根据所述handler元信息,从所述若干个handler中选择用于加载的一个或多个目标handler。
在示例性的实施例中,每个handler定义有handler元信息、检验逻辑,和匹配逻辑;
所述第一确定模块1230,用于:
根据各目标handler的元信息和所述输入参数,确定所述输入参数通过检验;及
在所述输入参数通过检验的情形下,基于各目标handler中的匹配逻辑进行规则匹配;及
基于匹配结果,确定所述一个或多个命中筛选规则。
在示例性的实施例中,所述第一确定模块1230,用于:
根据所述各目标handler的元信息的数据结构和所述输入参数的数据结构,确定所述输入参数符合所述一个或多个目标筛选维度的数据结构约束;
在所述输入参数符合所述一个或多个目标筛选维度的数据结构约束的情形下,判定检验通过。
在示例性的实施例中,所述第一确定模块1230,用于:
通过对比所述各目标handler的元信息的数据结构和所述输入参数的数据结构,确定所述输入参数的完整性;
通过对比所述各目标handler的元信息的数据结构和所述输入参数的数据结构,确定所述输入参数的数据类型为符合预设要求的目标数据类型;及
在确定所述输入参数完整且数据类型符合预设要求的情形下,通过所述各目标handler依据各自的检验逻辑分别对所述输入参数进行检验,以确定所述输入参数通过检验。
在示例性的实施例中,所述第一确定模块1230,用于:
获取所述各目标handler对所述输入参数的匹配结果,以得到多个匹配结果;及
根据所述多个匹配结果,获取与所述输入参数匹配成功的所述一个或多个命中筛选规则。
在示例性的实施例中,所述系统还包括绑定模块(未标识),用于:
预先将不同的分发内容分别和一个或多个筛选规则进行绑定;
当一个分发内容绑定多个筛选规则时,则该分发内容的下发条件为该多个筛选规则均被满足。
实施例三
图13示意性示出了根据本申请实施例三的适于实现内容分发方法的计算机设备2的硬件架构示意图。本实施例中,计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图13所示,计算机设备2至少包括但不限于:可通过系统总线相互通信链接存储器1310、处理器1320、网络接口1330。其中:
存储器1310至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器1310可以是计算机设备2的内部存储模块,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器1310也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(FlashCard)等。当然,存储器1310还可以既包括计算机设备2的内部存储模块也包括其外部存储设备。本实施例中,存储器1310通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如内容分发方法的程序代码等。此外,存储器1310还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器1320在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器1320通常用于控制计算机设备2的总体操作,例如执行与计算机设备2进行数据交互或者通信相关的控制和处理等。本实施例中,处理器1320用于运行存储器1310中存储的程序代码或者处理数据。
网络接口1330可包括无线网络接口或有线网络接口,该网络接口1330通常用于在计算机设备2与其他计算机设备之间建立通信链接。例如,网络接口1330用于通过网络将计算机设备2与外部终端相连,在计算机设备2与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(GlobalSystem of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code DivisionMultiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图13仅示出了具有部件1310-1330的计算机设备,但是应该理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器1310中的内容分发方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器1320)所执行,以完成本申请实施例。
实施例四
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的内容分发方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中内容分发方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (11)

1.一种内容分发方法,其特征在于,包括:
将请求参数输入至规则引擎,所述规则引擎关联多个handler,handler用于相应筛选维度的规则匹配;
根据所述请求参数,通过规则引擎加载所述多个handler中的一个或多个目标handler;
通过所述一个或多个目标handler,确定与所述请求参数匹配的一个或多个命中筛选规则;
确定与所述一个或多个命中筛选规则绑定的目标分发内容;及
将所述目标分发内容下发至目标设备,以在所述目标设备上展示所述目标分发内容。
2.根据权利要求1所述的内容分发方法,其特征在于,所述请求参数包括:
handler元信息,包括所述一个或多个目标handler的元信息;
输入参数,用于输入到所述一个或多个目标handler中,以用于筛选规则的匹配。
3.根据权利要求2所述的内容分发方法,其特征在于,所述根据所述请求参数,通过规则引擎加载一个或多个目标handler,包括:
根据业务场景,从多个筛选维度中确定若干个筛选维度,该若干个筛选维度一一对应若干个handler;及
根据所述handler元信息,从所述若干个handler中选择用于加载的一个或多个目标handler。
4.根据权利要求2所述的内容分发方法,其特征在于,每个handler定义有handler元信息、检验逻辑,和匹配逻辑;
所述通过所述一个或多个目标handler,确定与所述请求参数匹配的一个或多个命中筛选规则,包括:
根据各目标handler的元信息和所述输入参数,确定所述输入参数通过检验;及
在所述输入参数通过检验的情形下,基于各目标handler中的匹配逻辑进行规则匹配;及
基于匹配结果,确定所述一个或多个命中筛选规则。
5.根据权利要求4所述的内容分发方法,其特征在于,所述根据各目标handler的元信息和所述输入参数,确定所述输入参数通过检验,包括:
根据所述各目标handler的元信息的数据结构和所述输入参数的数据结构,确定所述输入参数符合所述一个或多个目标筛选维度的数据结构约束;
在所述输入参数符合所述一个或多个目标筛选维度的数据结构约束的情形下,判定检验通过。
6.根据权利要求5所述的内容分发方法,其特征在于,所述根据所述各目标handler的元信息的数据结构和所述输入参数的数据结构,确定所述输入参数符合所述一个或多个目标筛选维度的数据结构约束,包括:
通过对比所述各目标handler的元信息的数据结构和所述输入参数的数据结构,确定所述输入参数的完整性;
通过对比所述各目标handler的元信息的数据结构和所述输入参数的数据结构,确定所述输入参数的数据类型为符合预设要求的目标数据类型;及
在确定所述输入参数完整且数据类型符合预设要求的情形下,通过所述各目标handler依据各自的检验逻辑分别对所述输入参数进行检验,以确定所述输入参数通过检验。
7.根据权利要求4至6任意一项所述的内容分发方法,其特征在于,所述在所述输入参数通过检验的情形下,基于各目标handler中的匹配逻辑进行规则匹配,包括:
获取所述各目标handler对所述输入参数的匹配结果,以得到多个匹配结果;及
根据所述多个匹配结果,获取与所述输入参数匹配成功的所述一个或多个命中筛选规则。
8.根据权利要求1至6任意一项所述的内容分发方法,其特征在于,还包括:
预先将不同的分发内容分别和一个或多个筛选规则进行绑定;
当一个分发内容绑定多个筛选规则时,则该分发内容的下发条件为该多个筛选规则均被满足。
9.一种内容分发系统,其特征在于,包括:
输入模块,用于将请求参数输入至规则引擎,所述规则引擎关联多个handler,handler用于相应筛选维度的规则匹配;
加载模块,用于根据所述请求参数,通过规则引擎加载所述多个handler中的一个或多个目标handler;
第一确定模块,用于通过所述一个或多个目标handler,确定与所述请求参数匹配的一个或多个命中筛选规则;
第二确定模块,用于确定与所述一个或多个命中筛选规则绑定的目标分发内容;及
下发模块,用于将所述目标分发内容下发至目标设备,以在所述目标设备上展示所述目标分发内容。
10.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1至8中任意一项所述的内容分发方法的步骤。
11.一种计算机可读存储介质,其特征在于,其内存储有计算机程序,所述计算机程序配置为执行时实现权利要求1至8任一项所述的内容分发方法的步骤。
CN202210261293.3A 2022-03-16 2022-03-16 内容分发方法、系统、设备和存储介质 Active CN114629954B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210261293.3A CN114629954B (zh) 2022-03-16 2022-03-16 内容分发方法、系统、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210261293.3A CN114629954B (zh) 2022-03-16 2022-03-16 内容分发方法、系统、设备和存储介质

Publications (2)

Publication Number Publication Date
CN114629954A true CN114629954A (zh) 2022-06-14
CN114629954B CN114629954B (zh) 2023-11-17

Family

ID=81902343

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210261293.3A Active CN114629954B (zh) 2022-03-16 2022-03-16 内容分发方法、系统、设备和存储介质

Country Status (1)

Country Link
CN (1) CN114629954B (zh)

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1940910A (zh) * 2005-07-21 2007-04-04 索尼株式会社 内容提供系统、装置和方法、内容分发服务器和接收终端
US20090083147A1 (en) * 2007-09-21 2009-03-26 Toni Paila Separation of advertising content and control
CN101651787A (zh) * 2009-08-12 2010-02-17 北京中科大洋科技发展股份有限公司 一种网络化文件化数字媒体节目审片系统
US20140089498A1 (en) * 2012-07-29 2014-03-27 Verint Systems Ltd. System and method of high volume rule engine
US8806326B1 (en) * 2000-09-25 2014-08-12 Nokia Inc. User preference based content linking
DE202014006343U1 (de) * 2014-08-07 2014-08-21 Db Systel Gmbh Rechneranlage, Datenträger sowie Signalfolge für ein Programm zur Wiederverwendung von ausführbaren Softwarekonfigurationen für Softwaresysteme
US20150356690A1 (en) * 2014-06-09 2015-12-10 Visa International Service Association Systems and methods to detect changes in merchant identification information
US20170237766A1 (en) * 2016-02-12 2017-08-17 Shape Security, Inc. Reverse proxy computer: deploying countermeasures in response to detecting an autonomous browser executing on a client computer
US20190174180A1 (en) * 2016-05-20 2019-06-06 Nagravision S.A. Usage rules enforcement
CN110557656A (zh) * 2019-09-06 2019-12-10 苏州思必驰信息科技有限公司 个性化内容分发方法及装置
CN111309752A (zh) * 2019-11-26 2020-06-19 上海金融期货信息技术有限公司 面向业务流式数据处理的领域特定语言组件及其运作方法
CN111338812A (zh) * 2020-01-22 2020-06-26 中国民航信息网络股份有限公司 数据处理方法及装置
CN111464513A (zh) * 2020-03-19 2020-07-28 北京邮电大学 数据检测方法、装置、服务器及存储介质
CN111737023A (zh) * 2020-05-14 2020-10-02 重庆长安汽车股份有限公司 一种车载事件处理方法、云服务器及计算机可读存储介质
CN112422638A (zh) * 2020-10-28 2021-02-26 北京北明数科信息技术有限公司 数据实时流处理方法、系统、计算机装置和存储介质
CN112669076A (zh) * 2020-12-30 2021-04-16 平安证券股份有限公司 基于规则引擎的数据分发方法、服务器及存储介质
CN113362111A (zh) * 2021-06-04 2021-09-07 北京百度网讯科技有限公司 一种内容发送方法、装置及电子设备
CN113688284A (zh) * 2021-10-26 2021-11-23 湖北亿咖通科技有限公司 车联网业务数据的处理方法、装置、电子设备和存储介质

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806326B1 (en) * 2000-09-25 2014-08-12 Nokia Inc. User preference based content linking
CN1940910A (zh) * 2005-07-21 2007-04-04 索尼株式会社 内容提供系统、装置和方法、内容分发服务器和接收终端
US20090083147A1 (en) * 2007-09-21 2009-03-26 Toni Paila Separation of advertising content and control
CN101651787A (zh) * 2009-08-12 2010-02-17 北京中科大洋科技发展股份有限公司 一种网络化文件化数字媒体节目审片系统
US20140089498A1 (en) * 2012-07-29 2014-03-27 Verint Systems Ltd. System and method of high volume rule engine
US20150356690A1 (en) * 2014-06-09 2015-12-10 Visa International Service Association Systems and methods to detect changes in merchant identification information
DE202014006343U1 (de) * 2014-08-07 2014-08-21 Db Systel Gmbh Rechneranlage, Datenträger sowie Signalfolge für ein Programm zur Wiederverwendung von ausführbaren Softwarekonfigurationen für Softwaresysteme
US20170237766A1 (en) * 2016-02-12 2017-08-17 Shape Security, Inc. Reverse proxy computer: deploying countermeasures in response to detecting an autonomous browser executing on a client computer
US20190174180A1 (en) * 2016-05-20 2019-06-06 Nagravision S.A. Usage rules enforcement
CN110557656A (zh) * 2019-09-06 2019-12-10 苏州思必驰信息科技有限公司 个性化内容分发方法及装置
CN111309752A (zh) * 2019-11-26 2020-06-19 上海金融期货信息技术有限公司 面向业务流式数据处理的领域特定语言组件及其运作方法
CN111338812A (zh) * 2020-01-22 2020-06-26 中国民航信息网络股份有限公司 数据处理方法及装置
CN111464513A (zh) * 2020-03-19 2020-07-28 北京邮电大学 数据检测方法、装置、服务器及存储介质
CN111737023A (zh) * 2020-05-14 2020-10-02 重庆长安汽车股份有限公司 一种车载事件处理方法、云服务器及计算机可读存储介质
CN112422638A (zh) * 2020-10-28 2021-02-26 北京北明数科信息技术有限公司 数据实时流处理方法、系统、计算机装置和存储介质
CN112669076A (zh) * 2020-12-30 2021-04-16 平安证券股份有限公司 基于规则引擎的数据分发方法、服务器及存储介质
CN113362111A (zh) * 2021-06-04 2021-09-07 北京百度网讯科技有限公司 一种内容发送方法、装置及电子设备
CN113688284A (zh) * 2021-10-26 2021-11-23 湖北亿咖通科技有限公司 车联网业务数据的处理方法、装置、电子设备和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
管兆宁: "基于Struts框架的多层结构图书网站的构建", 苏州大学学报(自然科学版), no. 02 *
胡静;宋雪雁;孙济洲;: "航行通告分发服务中间件的研究与设计", 计算机应用与软件, no. 02 *

Also Published As

Publication number Publication date
CN114629954B (zh) 2023-11-17

Similar Documents

Publication Publication Date Title
CN108897691B (zh) 基于接口模拟服务的数据处理方法、装置、服务器和介质
CN104321746A (zh) 应用文件的分发
CN110673923A (zh) Xwiki系统配置方法、系统及计算机设备
CN111598575A (zh) 业务流程控制方法、装置、电子设备和可读存储介质
CN112631924A (zh) 自动化测试方法、装置、计算机设备及存储介质
CN116257438A (zh) 接口测试用例的更新方法及相关设备
CN111338716A (zh) 基于规则引擎的数据处理方法、装置及终端设备
CN106529281A (zh) 一种可执行文件处理方法及装置
KR100653280B1 (ko) 어플리케이션의 업데이트 가능한 휴대전화 및 업데이트 방법
CN112561690A (zh) 信用卡分期业务接口的测试方法、系统、设备及存储介质
CN112597023A (zh) 基于导图的案例管理方法、装置、计算机设备及存储介质
CN112015651A (zh) 数据处理方法及装置
CN115098297B (zh) 一种云原生存储数据卷的一致性快照生成方法和系统
CN114629954A (zh) 内容分发方法和系统
CN113112270B (zh) 基于区块链的数据组织方法
US11647054B2 (en) System for and method of determining data connections between software applications
CN112347046B (zh) 一种获取分布式系统中文件的创建时间的方法
CN112817953A (zh) 一种数据校验的方法、装置、计算机设备及计算机可读存储介质
CN113342647A (zh) 一种测试数据的生成方法及装置
CN113568682B (zh) 规则数据校验方法、装置、计算机设备和存储介质
KR102364893B1 (ko) 서버 개발 서비스 제공 방법 및 서버 개발 서비스 제공 방법을 수행하기 위한 프로그램이 저장된 저장매체
CN117650937A (zh) 任务权限验证方法、装置、非易失性存储介质及电子设备
CN110045930B (zh) 虚拟平台管理存储设备卷的方法、装置、设备及介质
CN114710334A (zh) 用于服务器的访问策略调整方法及系统
CN117335976A (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
GR01 Patent grant
GR01 Patent grant