一种规则数据配置方法及装置、***
技术领域
本发明涉及通信领域,尤其涉及一种规则数据配置方法及装置、***。
背景技术
为了缓解骨干网的流量压力,互联网提供商通常在用户网络接入侧部署透明高速缓冲器(Transparent Cache,TC)。TC需要解析出用户发送的统一资源定位符(UniformResource Locator,URL),才有可能发挥缓解骨干网的流量压力的作用。
TC根据规则数据解析URL,规则数据通过人工被预先配置在TC中,在内容提供商更改规则数据后,TC中的规则数据也要更新,TC才能继续为用户提供数据。目前,通常的情况是,由于TC不能自动感知规则数据的更改,而需要人工介入,所以,TC中的规则数据的更新速度往往跟不上内容提供商的更新速度,可见,TC中的规则数据不能够及时被更新。
发明内容
本发明实施例提供了一种规则数据的配置方法及装置、***,目的在于解决在内容提供商更改规则数据后,TC中的规则数据不能够及时被更新的问题。
为了实现上述目的,本发明实施例提供了以下技术方案:
本发明实施例的第一方面提供了一种规则数据的配置方法,包括:
当接收到规则数据请求消息时,生成规则数据或者通过第三方接口获取规则数据,所述规则数据请求消息由透明高速缓存器TC在无法解析出URL的情况下发出,所述规则数据为所述TC解析所述URL的依据;
向所述TC发送所述规则数据。
在本发明实施例的第一方面的第一种实现方式中,所述生成规则数据包括:
依据无法解析出的URL,生成目标字段;
如果所述目标字段中包括Host字段,则在规则列表中查找第一条目,所述第一条目中的Host字段的字段值与所述目标字段中的Host字段的字段值相同;
如果找到所述第一条目,则依据所述目标字段和/或所述无法解析出的URL,将所述第一条目下的其它字段的字段值补充完整;
如果没有找到所述第一条目,则建立所述第一条目;
如果所述第一条目下的所有字段的字段值均不为空,则完成所述第一条目的生成。
在本发明实施例的第一方面的第二种实现方式中,
所述依据无法解析出的URL,生成目标字段包括:
将所述无法解析出的URL与待处理URL列表中的所有URL进行最长匹配,得到匹配字段,所述匹配字段为目标字段;
在所述生成目标字段之后,还包括:
如果所述目标字段中不包括Host字段,则将所述无法解析出的URL加入所述待处理URL列表中。
在本发明实施例的第一方面的第三种实现方式中,所述依据所述目标字段和/或所述无法解析出的URL,将所述第一条目下的其它字段的字段值补充完整,至少包括以下一项:
将特定目标字段的字段值作为所述第一条目下的filename字段的字段值,所述特定目标字段包括:视频格式的目标字段,或者长度大于预设数值的目标字段;
在目标字段中包括start=“字段值”的情况下,将所述目标字段或者所述无法解析出的URL中的start=字段值,作为所述第一条目中的start字段的字段值,并且获取所述无法解析出的URL对应的视频的类型,依据所述类型确定所述第一条目中的pos_type字段的字段值;
在目标字段中不包括start=“字段值”的情况下,依据所述目标字段或者所述无法解析出的URL中的range=字段值,生成start字段及pos_type字段的字段值;
将所述Host字段中连续的、取值恒定的字段值作为所述第一条目中valid字段的字段值。
本发明实施例的第二方面提供了一种规则数据的配置装置,包括:
规则数据获取模块,用于当接收到规则数据请求消息时,生成规则数据或者通过第三方接口获取规则数据,所述规则数据请求消息由透明高速缓存器TC在无法解析出URL的情况下发出,所述规则数据为所述TC解析所述URL的依据;
发送模块,用于向所述TC发送所述规则数据。
本发明实施例的第二方面的第一种实现方式中,所述规则数据获取模块包括:
目标字段生成单元,用于依据无法解析出的URL,生成目标字段;
规则数据生成单元,用于如果所述目标字段中包括Host字段,则在规则列表中查找第一条目,所述第一条目中的Host字段的字段值与所述目标字段中的Host字段的字段值相同;如果找到所述第一条目,则依据所述目标字段和/或所述无法解析出的URL,将所述第一条目下的其它字段的字段值补充完整;如果没有找到所述第一条目,则建立所述第一条目;如果所述第一条目下的所有字段的字段值均不为空,则完成所述第一条目的生成。
在本发明实施例的第二方面的第二种实现方式中,
所述目标字段生成单元用于依据无法解析出的URL,生成目标字段包括:
所述目标字段生成单元具体用于,将所述无法解析出的URL与待处理URL列表中的所有URL进行最长匹配,得到匹配字段,所述匹配字段为目标字段;
所述规则数据生成单元还用于:如果所述目标字段中不包括Host字段,则将所述无法解析出的URL加入所述待处理URL列表中。
在本发明实施例的第二方面的第三种实现方式中,所述规则数据生成单元用于依据所述目标字段和/或所述无法解析出的URL,将所述第一条目下的其它字段的字段值补充完整,至少包括以下一项:
所述规则数据生成单元具体用于,将特定目标字段的字段值作为所述第一条目下的filename字段的字段值,所述特定目标字段包括:视频格式的目标字段,或者长度大于预设数值的目标字段;
所述规则数据生成单元具体用于,在目标字段中包括start=“字段值”的情况下,将所述目标字段或者所述无法解析出的URL中的start=字段值,作为所述第一条目中的start字段的字段值,并且获取所述无法解析出的URL对应的视频的类型,依据所述类型确定所述第一条目中的pos_type字段的字段值;
所述规则数据生成单元具体用于,在目标字段中不包括start=“字段值”的情况下,依据所述目标字段或者所述无法解析出的URL中的range=字段值,生成start字段及pos_type字段的字段值;
所述规则数据生成单元具体用于,将所述Host字段中连续的、取值恒定的字段值作为所述第一条目中valid字段的字段值。
本发明实施例的第三方面提供了一种透明高速缓存器TC,包括:
发送模块,用于在无法解析出URL的情况下,发送规则数据请求消息,所述规则数据请求消息用于其接收方生成规则数据或者通过第三方接口获取规则数据,所述规则数据为解析所述URL的依据;
接收模块,用于接收所述规则数据。
本发明实施例的第四方面提供了一种规则数据的配置***,包括:
本发明实施例的第二方面的任一种实现方式所述的规则数据的配置装置,以及本发明实施例的第三方面所述的TC。
本发明实施例提供的规则数据配置方法及装置、***,在无法解析出URL的情况下,TC发送规则数据请求消息,由规则数据请求消息的接收方生成或通过第三方接口获取规则数据,并将规则数据发给TC,可见,在TC无法解析出URL的情况下,TC可以主动请求规则数据,而无需等待人工进行更新,因此,在内容提供商更改规则数据后,能够更及时地对TC中的规则数据进行更新。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的应用场景的示意图;
图2为本发明实施例公开的一种规则数据的配置方法的流程图;
图3为本发明实施例公开的又一种规则数据的配置方法的流程图;
图4为本发明实施例公开的规则数据的配置方法中的生成规则数据的具体过程的流程图;
图5为本发明实施例公开的规则数据的配置方法中生成的规则条目的示意图;
图6为本发明实施例公开的一种规则数据的配置装置的结构示意图。
具体实施方式
本发明实施例公开了一种规则数据的配置方法及装置、***,在无法解析出URL的情况下,TC发送规则数据请求消息,规则数据请求消息的接收方(以下简称接收方)生成或者通过第三方接口获取规则数据,并将规则数据发送给TC,从而实现通过接收方更及时地更新TC中的规则数据的目的。本发明实施例可以应用在如图1所示的***构架中:
为了便于描述,图1中,接收方可以在TC之外单独设置,如图1中,一个接收方可以连接多个TC,或者,接收方也可以集成在TC中,即每个TC中都集成有接收方(图中未标示)。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开的一种规则数据的配置方法,如图2所示,包括以下步骤:
S201:在无法解析出URL的情况下,TC发送规则数据请求消息;
所述规则数据为所述TC解析所述URL的依据。
S202:接收方生成规则数据或者通过第三方接口获取规则数据;
所述第三方接口为接收方与除TC与自身外的第三方设备进行通信的接口,其中,第三方可以为内容提供商(Content Provider,CP),也可以为规则数据的维护方。
S203:接收方向TC发送规则数据。
本实施例所述的方法,在无法解析出URL的情况下,TC发送规则数据请求消息,规则数据请求消息的接收方可以生成或获取规则数据,并发给TC,因此,与现有技术相比,本实施例中,TC在无法解析出URL的情况下,会主动请求规则数据,因此,即使人工没有及时对TC中的规则数据进行更新,也能够做到自动更新TC中的规则数据,所以,在内容提供商更改规则数据后,能够更及时地对TC中的规则数据进行更新。
并且,在现有技术中,TC中的规则数据通常由人工进行配置,因为部署在用户网络侧的TC的数量巨大,所以,在配置TC中的规则数据时,要么需要投入大量的人力物力,要么需要投入大量的时间,因此,容易造成较大的资源消耗,而本实施例所述的方法,在可以无需人工介入,从而能够实现节省人力物力以及时间的目的。
本发明实施例公开的又一种规则数据的配置方法,如图3所示,包括:
S301:TC接收用户发送的统一资源定位符URL;
S302:当无法解析出接收到的统一资源定位符URL时,所述TC发送规则数据请求消息;
S303:接收方生成规则数据;
S304:如果成功生成规则数据,所述接收方以预设格式,向所述TC发送所述规则数据;
S305:如果没有成功生成规则数据,则接收方以预设格式,向TC发送请求失败的应答;
S306:在当前的规则数据发生更改后,所述接收方以预设格式,将更改后的规则数据发送给所述TC。
在本实施例中,预设格式可以为基于Http的格式,例如,可以为基于Http的JOSN格式,其中,TC发送的规则数据请求消息、接收方发送的规则数据以及失败应答的具体格式如表1所示:
表1
一般地,TC对CP是否更改规则数据是无感的,所以,如果CP更改了规则数据,在TC在对用户发送的URL进行解析时,仍然会按照更改之前的规则数据,即会导致解析不出URL的问题,在现有技术中,当TC解析不出URL时,只能等待人工更改其中的规则数据,而本实施例中,规则一旦更改,TC可以及时适应,可见与现有技术相比,本实施例所述的方法,能够实现TC对CP的及时适配。
本实施例中,生成规则数据的具体过程如图4所示,包括:
S401:依据无法解析出的URL,生成目标字段;
其中,每个目标字段均具有字段名和字段取值。
本实施例中,依据无法解析出的URL,生成目标字段的一种具体实现方式(图4中未标出)为:将无法解析出的URL直接划分为目标字段,字段的划分通常依据URL的结构,将URL中的/、&、?字符为字段间的分隔符,将URL分为不同的字段。例如,将URL:“http://f.youku.com/player/134067098207910793990_01?start=4&hd=0”分为f.youku.com、player、134067098207910793990_01、start=4(4为字段值)、hd=0(0为字段值)等5个字段。
除此以外,依据无法解析出的URL,生成目标字段的另一种具体实现方式为:
将所述无法解析出的URL与待处理URL列表中的所有URL进行最长匹配,得到匹配字段,所述匹配字段即为目标字段;
所述最长匹配是指,将无法解析出的URL与待处理URL列表中的URL中所有相等的字段都找出来。也就是说,将无法解析出的URL划分为不同字段,与待处理URL列表中的每个URL划分出的字段进行一一比较,找出所有相等的字段,相等的字段是指,字段名称一致,字段值相同。
第二种方式的目的在于,与待处理URL列表中的URL匹配上的字段,说明此字段不是首次出现,能够减小将用户错误输入的URL作为规则数据生成依据的概率,从而避免资源的无端浪费。
S402:判断所述目标字段中是否包括Host字段,如果是,执行S403,如果否,执行S407;
S403:在规则数据列表中查找第一条目;
在预先存储的规则数据列表中包括Host字段的字段值不同的条目,本实施例中,第一条目中的Host字段的字段值与所述目标字段中的Host字段的字段值相同。
S404:如果找到所述第一条目,则依据所述目标字段和/或所述无法解析出的URL,将所述第一条目下的其它字段的字段值补充完整;
本实施例中所述“补充完整”是指,可以在某个字段的字段值为空时,生成其字段值,也可以在字段值不为空时,更新其字段值,例如,当filename字段的字段值为空时,按照下述过程生成其字段值,而当filename字段的字段值不为空时,可以使用生产的字段值对原有的字段值进行更新。
本实施例中,除了Host字段之外,一条条目中还包括filename字段、start字段、pos_type字段以及valid字段,如图5所示,图5中,还包括此条目的Id。
其中,各个字段的字段值的生成方法具体为:
将特定目标字段的字段值作为所述第一条目下的filename字段的字段值,所述特定目标字段包括:视频格式的目标字段,或者长度大于预设数值的目标字段;
在目标字段中包括start=“字段值”的情况下,将所述目标字段或者所述无法解析出的URL中的start=字段值,作为所述第一条目中的start字段的字段值,并且获取所述无法解析出的URL对应的视频的类型,依据所述类型确定所述第一条目中的pos_type字段的字段值;在目标字段中不包括start=“字段值”的情况下,依据所述目标字段或者所述无法解析出的URL中的range=字段值,生成start字段及pos_type字段的字段值;
将所述Host字段中连续的、取值恒定的字段值作为所述第一条目中valid(有效)字段的字段值。
S405:如果所述第一条目下的所有字段的字段值均不为空,则完成所述第一条目的生成;
如果所述第一条目下的字段中存在字段值为空字段,则视为第一条目的生成未完成,等待后续生成。
S406:如果没有找到所述第一条目,则建立所述第一条目;
在建立的第一条目中,同样包括图5所示的字段,在建立第一条目后,可以将第一条目中其它字段的字段值补充完整;也可以只填写Host字段和ID字段的字段值,而其它字段的字段值为空,目的在于,当此。Host字段值再次出现时,再补充其下的其它字段的字段值,同样为了避免资源的无端浪费。
S507:将所述无法解析出的URL加入所述待处理URL列表中。
下面对规则数据的生成过程进行举例说明:
假设TC无法解析出的URL为:
http://f.youku.com/player/getFlvPath/sid/134067098207910793990_01/st/flv/fileid/03000207014E243D29BB760302BB9AFFED9308-B9EA-F894-E35D-8FE941B0862D?start=4&K=f84e3bcb619220d724110c29&hd=0&myp=0&ts=423&ymovie=1。
假设待处理URL列表和规则数据列表均为空,那么,目标字段即为空,所以,将所述无法解析出的URL加入所述待处理URL列表中,处理结束。
当再次有上述无法解析的URL发送过来时(因为可能有其他用户观看该URL表示的视频,所以通常来讲,TC会再次将该URL转发过来),将所述无法解析出的URL与待处理URL列表中的所有URL进行最长匹配,得到的目标字段中包括Host字段(字段值为http://f.youku.com),因为规则数据列表为空,所以找不到第一条目,则建立第一条目,建立的第一条目如图5所示,其中,Host字段的字段值为http://f.youku.com,ID字段的字段值为1,其它字段的字段值均为空。
当再次有上述URL发送过来时(因为可能有其他用户观看该URL表示的视频,所以通常来讲,cache会再次将该URL转发过来),目标字段中包括Host字段(字段值为http://f.youku.com),getFlvPath,sid,st,flv,fileid,03000207014E243D29BB760302BB9AFFED9308-B9EA-F894-E35D-8FE941B0862D等字段,因为目标字段中包括Host字段,因此,在规则数据列表中查找第一条目,发现第一条目,则依据目标字段生成图5中其它字段的字段值:依据03000207014E243D29BB760302BB9AFFED9308-B9EA-F894-E35D-8FE941B0862D,生成filename字段的字段值(?<=/fileid/)\w+(?=\?w*)?,此字段值是一个正则表达式,表示在整个字符串中取/fileid/和后续第一个?之间的字符串;
依据无法解析出的URL中的start=xx,生成start字段的字段值,此时规则表内容如下:(?<=\bstart=)\d+(?=&)?是一个正则表达式,表示取URL中start=与后续第一个&之间的字符串,即将start=后面的数字取出;因为存在start字段,所以将start=xx字段从URL中删除后向服务器获取完整视频文件,然后再用存在start的URL再次获取视频文件,按照文件格式标准将两次获取的视频文件做对比,可以确定pos_type字段,即判断start=后面的数字是表示秒还是毫秒,或者是字节偏移;
Host值为http://f.youku.com的URL中,固定不变的连续字段有4个,即http://f.youku.com/player/getFlvPath/sid,所以可以确定valid字段的字段值如下:^http://f.youku.com/palyer/flvPath/sid/,上述表达式是一个正则表达式,表示从字符串开始进行匹配,如果完全匹配了http://f.youku.com/palyer/flvPath/sid/,则会返回真值。
至此,第一条目下的所有字段的字段值均不为空,则完成所述第一条目的生成。
从以上步骤可以看出,本实施例中,接收方可以依据无法解析的URL生成规则数据,在规则数据生成后下发到TC,因此,即使没有CP或规则数据维护方的参与,TC也能够适配规则数据的更改。
与上述方法实施例相对应地,本发明实施例还公开了一种规则数据的配置装置,如图6所示,包括:
规则数据获取模块601,用于当接收到规则数据请求消息时,生成规则数据或者通过第三方接口获取规则数据,所述规则数据请求消息由透明高速缓存器TC在无法解析出URL的情况下发出,所述规则数据为所述TC解析所述URL的依据;
发送模块602,用于向所述TC发送所述规则数据。
其中,可选地,所述规则数据获取模块601包括:
目标字段生成单元6011,用于依据无法解析出的URL,生成目标字段;
规则数据生成单元6012,用于如果所述目标字段中包括Host字段,则在规则列表中查找第一条目,所述第一条目中的Host字段的字段值与所述目标字段中的Host字段的字段值相同;如果找到所述第一条目,则依据所述目标字段和/或所述无法解析出的URL,将所述第一条目下的其它字段的字段值补充完整;如果没有找到所述第一条目,则建立所述第一条目;如果所述第一条目下的所有字段的字段值均不为空,则完成所述第一条目的生成。
可选地,所述目标字段生成单元依据无法解析出的URL,生成目标字段的具体实现方式为:所述目标字段生成单元将所述无法解析出的URL与待处理URL列表中的所有URL进行最长匹配,得到匹配字段,所述匹配字段为目标字段;
所述规则数据生成单元还可以用于:如果所述目标字段中不包括Host字段,则将所述无法解析出的URL加入所述待处理URL列表中。
可选地,所述规则数据生成单元依据所述目标字段和/或所述无法解析出的URL,将所述第一条目下的其它字段的字段值补充完整的具体实现方式,至少包括以下一项:
将特定目标字段的字段值作为所述第一条目下的filename字段的字段值,所述特定目标字段包括:视频格式的目标字段,或者长度大于预设数值的目标字段;
在目标字段中包括start=“字段值”的情况下,将所述目标字段或者所述无法解析出的URL中的start=字段值,作为所述第一条目中的start字段的字段值,并且获取所述无法解析出的URL对应的视频的类型,依据所述类型确定所述第一条目中的pos_type字段的字段值;
在目标字段中不包括start=“字段值”的情况下,依据所述目标字段或者所述无法解析出的URL中的range=字段值,生成start字段及pos_type字段的字段值;
将所述Host字段中连续的、取值恒定的字段值作为所述第一条目中valid字段的字段值。
本实施例所述的装置,能够自主生成规则数据或获取规则数据,并将生成或获取的规则数据发给TC,所以,能够保证TC中的规则数据及时更新,并且,因为无需人工介入,所以,能够提高规则数据的更新效率。
本发明实施例还公开了一种透明高速缓存器TC,包括:
发送模块,用于在无法解析出URL的情况下,发送规则数据请求消息,所述规则数据请求消息用于其接收方生成规则数据或者通过第三方接口获取规则数据,所述规则数据为解析所述URL的依据;
以及,接收模块,用于接收所述规则数据。
进一步地,本实施例还公开了一种规则数据的配置***,包括如图6所述的规则数据的配置装置,以及上述实施例所述的TC。
所述***中,通过TC与规则数据的配置装置的配合,可以自动生成规则数据,且及时地更新TC中的规则数据,提高规则数据的更新效率。
本发明实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本发明实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。