一种通过网络缓存下载文件的方法和系统的制作方法

文档序号:7977701阅读:140来源:国知局
专利名称:一种通过网络缓存下载文件的方法和系统的制作方法
技术领域
本发明涉及互联网技术中网络缓存技术领域,特别是指一种通过网络缓存下载文件的方法和系统。
背景技术
超文本传输协议(Hyper Text Transfer Protocol,HTTP)标准是目前互联网上应用最广泛的网络传输协议之一。万维网(World Wide Web, WWW)就是基于HTTP的一种应用。它是客户端至服务器模式,基于HTTP标准的请求和响应消息实现信息交互。WWW应用的快速发展,导致了网络拥塞和服务器超载,造成客户端访问延迟增大等问题。为此,引入了网络(web)缓存系统。web缓存位于客户端和内容源服务器之间。当客户端请求内容时,所述web缓存用于保存源服务器输出内容的副本,以便在下一个同样内容的请求到来时,直接通过本地保存的副本,为客户端提供服务,从而达到缩短响应延迟,减少网络带宽消耗的目的,同时实现了媒体内容根据用户请求自动完成分发的功能。当源服务器上的原始内容被更新时,会导致web缓存的副本失效。为此,HTTP标准中定义了一套用于web缓存管理的规则和机制。如果web缓存检测到本地保存的副本已经超过有效期,则需要向源服务器确认该内容是否还有效。如果原始内容已经被更新,那么web缓存就需要重新下载原始内容并缓存。这种机制在WWW应用中的效果很好。但是对于某些特殊情况,例如:原始内容会被周期更新,但是每次更新都只是在原内容末尾追加一部分数据的时候,就会存在问题。此时由于检测到原始内容被更新,web缓存就会更新副本,将整个内容从源服务器重新传输一遍。但实际上,每次更新时,原来缓存的内容并没有被改变,都还是有效的,只需要下载最新被添加的数据即可。显然,为了新增加的一段内容,而重传整个文件,这会严重影响通信系统的性能,无谓的消耗网络带宽,增大响应延迟,有违web缓存部署的初衷。上述问题体现在实际应用中,例如:近两年逐渐开始流行的HTTP流(Streaming)业务中,将整个节目内容分成很多的小片段,例如10秒钟一个片段。然后通过一个播放列表描述文件,将这些片段组织在一起。播放列表文件中保存了这些片段的统一资源定位符(Uniform/Universal Resource Locator, URL)、时长、属性(例如不同码率)、时间关系等。客户端点播节目内容时,首先通过HTTP方式从web服务器下载这个播放列表文件,然后根据列表文件中的描述,通过web服务器下载需要的媒体片段,最终实现在本地播放。如果是直播业务,在内容生成端需要持续生成新的媒体片段,同时更新相应的播放列表文件。客户端则需要周期性的获取更新后的播放列表文件,然后根据列表文件中的描述,通过web服务器下载最新的媒体片段。而在第三代合作伙伴计划(3rd generationpartnership pro ject, 3GPP) R9 中关于 HTTP Streaming 业务的相关标准中,使用了 ISO 文件格式(IS014496-12标准定义的文件格式)中的movie fragment结构(IS014496-12标准中定义的结构,包含moof box和相应的mdat box)来实现虚拟分段的效果。即一个moviefragment就对应一个媒体片段,每个媒体片段按照时间顺序,依次添加在文件末尾,形成由一系列movie fragment结构组成的媒体文件。客户端通过指明字节范围的方式,下载各个movie fragment,然后在本地播放。对于直播业务,当web缓存采用这种文件格式存储直播媒体数据的时候,就会出现前面所说的问题。

发明内容
有鉴于此,本发明的主要目的在于提供一种通过web缓存下载文件的方法和系统,解决了针对前述追加写入方式更新的内容,web缓存只能进行低效处理的问题。为达到上述目的,本发明的技术方案是这样实现的:本发明提供了一种通过网络(web)缓存下载文件的方法,所述方法包括:生成内容文件,并设置所述内容文件的属性为追加写入(append only),将所述内容文件保存到内容提供节点上;当web缓存收到用户端发送的内容文件请求后,检查本地保存的副本,如果副本中内容不全,且内容文件的属性为append only,则向内容提供节点发起请求,获取副本中缺失的内容;web缓存更新本地保存的副本后,将用户端请求的内容文件返回给用户端。其中,所述内容文件,具体为:只能通过追加写入进行更新的分段文件;所述设置所述内容文件的属性为append only,包括:通过文件系统设置内容文件的属性;或者通过在数据库中添加append only标记;或者通过添加元数据文件实现append only 标记。其中,所述内容提供节点包括:源web服务器,或者在多级web缓存系统中的上级web缓存。其中,所述将所述内容文件保存到内容提供节点上,包括:内容生成端将属性为append only的内容文件保存到源web服务器上;或者所述上级web缓存从源web服务器上获取所述属性为append only的内容文件并在本地保存为副本。其中,所述如果副本中内容不全,且内容文件的属性为append only,则向内容提供节点发起请求,获取副本中缺失的内容,具体为:如果副本中没有用户端请求的内容文件、或者用户端请求的内容文件在副本中不完整、或者副本中的内容文件已经过期,web缓存则向内容提供节点发起请求,内容提供节点通过响应消息将副本中缺失的内容,以及表明所述内容文件属性为append only的信息,返回给web缓存。其中,所述web缓存更新本地保存的副本,还包括:设置所述内容文件的副本的属性为 append only。本发明还提供了一种通过web缓存下载文件的系统,所述系统包括:内容生成端、内容提供节点、web缓存和用户端;其中,所述内容生成端,用于生成内容文件,并设置所述内容文件的属性为appendonly,将所述内容文件保存到内容提供节点上;所述web缓存,用于当收到用户端发送的内容文件请求后,检查本地保存的副本,如果副本中内容不全,且内容文件的属性为append only,则向内容提供节点发起请求,获取副本中缺失的内容,更新本地保存的副本后,将用户端请求的内容文件返回给用户端。其中,所述内容文件,具体为:只能通过追加写入进行更新的分段文件;所述内容生成端设置所述内容文件的属性为append only,包括:通过文件系统设置内容文件的属性;或者通过在数据库中添加append only标记;或者通过添加元数据文件实现append only标记。其中,所述内容提供节点包括:源web服务器,或者在多级web缓存系统中的上级web缓存;所述将所述内容文件保存到内容提供节点上,包括:内容生成端将属性为appendonly的内容文件保存到源web服务器上,或者所述上级web缓存从源web服务器上获取所述属性为append only的内容文件并在本地保存为副本。其中,所述web缓存中如果副本中内容不全,且内容文件的属性为append only,则向内容提供节点发起请求,获取副本中缺失的内容,具体为:如果副本中没有用户端请求的内容文件、或者用户端请求的内容文件在副本中不完整、或者副本中的内容文件已经过期,web缓存则向内容提供节点发起请求,内容提供节点通过响应消息将副本中缺失的内容,以及表明所述内容文件属性为append only的信息,返回给web缓存。其中,所述web缓存,还用于在更新本地保存的副本的过程中,设置所述内容文件的副本的属性为append only。本发明所提供的通过web缓存下载文件的方法和系统,生成内容文件,并设置所述内容文件的属性为追加写入(append only),将所述内容文件保存到内容提供节点上;当web缓存收到用户端发送的内容文件请求后,检查本地保存的副本,如果副本中内容不全,且内容文件的属性为append only,则向内容提供节点发起请求,获取副本中缺失的内容;web缓存更新本地保存的副本后,将用户端请求的内容文件返回给用户端。通过本发明能够实现更为高效的web缓存处理。同时,节省了网络带宽,缩短了响应延迟。


图1为本发明一种通过web缓存下载文件的方法流程示意图;图2为本发明HTTP Streaming业务的系统架构示意图;图3为本发明内容提供节点对HTTP请求的处理流程示意图;图4为本发明一种通过web缓存下载文件的系统结构示意图。
具体实施例方式本发明的基本思想是:生成内容文件,并设置所述内容文件的属性为追加写入(append only),将所述内容文件保存到内容提供节点上;当web缓存收到用户端发送的内容文件请求后,检查本地保存的副本,如果副本中内容不全,且内容文件的属性为appendonly,则向内容提供节点发起请求,获取副本中缺失的内容;web缓存更新本地保存的副本后,将用户端请求的内容文件返回给用户端。下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。图1为本发明一种通过web缓存下载文件的方法流程示意图,如图1所示,所述方法包括:步骤101,生成内容文件,并设置所述内容文件的属性为append only,将所述内容文件保存到内容提供节点上;具体的,所述内容文件具体为:只能通过追加写入进行更新的分段文件。例如:HTTP Streaming业务文件,每次更新时都通过追加写入的方式,添加到文件的末尾。所述设置所述内容文件的属性为append only,包括:通过文件系统设置内容文件的属性;或者通过在数据库中添加append only标记;或者通过添加元数据文件实现append only标记。所述内容提供节点包括:源web服务器或者在多级web缓存系统中的上级web缓存。所述将所述内容文件保存到内容提供节点上,包括:内容生成端将属性为append only的内容文件保存到源web服务器上;或者所述上级web缓存从源web服务器上获取所述属性为appendonly的内容文件并在本地保存为副本。步骤102,当web缓存收到用户端发送的内容文件请求后,检查本地保存的副本,如果副本中内容不全,且内容文件的属性为append only,则向内容提供节点发起请求,获取副本中缺失的内容;具体的,所述如果副本中内容不全,且内容文件的属性为append only,则向内容提供节点发起请求,获取副本中缺失的内容,具体为:如果副本中没有用户端请求的内容文件、或者用户端请求的内容文件在副本中不完整、或者副本中的内容文件已经过期,web缓存则向内容提供节点发起请求,内容提供节点通过响应消息将副本中缺失的内容,以及表明所述内容文件属性为append only的信息,返回给web缓存。进一步的,在步骤102中,检查本地保存的副本之后,如果副本中内容完整,即存在有效副本,则web缓存直接读取副本内容,返回给用户端。步骤103,web缓存更新本地保存的副本后,将用户端请求的内容文件返回给用户端。具体的,所述web缓存更新本地保存的副本,还包括:设置所述内容文件的副本的属性为 append only。图2为本发明HTTP Streaming业务的系统架构示意图,如图2所示,以直播服务为例,内容生成端24按HTTP Streaming直播服务的需求,接收直播码流,生成播放列表文件26和虚拟分段方式的媒体文件25,供源web服务器21读取,其中媒体文件25需要设置append only属性。客户端23a通过HTTP方式周期性的获取播放列表文件26,解析后,根据播放列表文件的内容,再获取相应媒体文件中的相应片段。客户端23a发出的HTTP请求,会通过web缓存系统22。如果客户端23a请求的内容,已经在web缓存系统22中有副本27,则web缓存系统22会直接读取副本27内容发送给客户端23a。如果有需要,例如本地没有副本,或副本已过有效期等情况,web缓存系统22会向源web服务器21 (也可能是web缓存向上一级的web缓存)发起请求,下载内容后,再转发给客户端23a。客户端23b的操作和客户端23a的操作相同。图3为本发明内容提供节点对HTTP请求的处理流程示意图,如图3所示,包括如下步骤:步骤301, web缓存收到客户端请求直播服务的HTTP请求,判断所请求的文件在本地是否有缓存,如果在本地没有缓存,则执行步骤302,如果在本地有缓存,则执行步骤303 ;步骤302, web缓存向内容提供节点,即上一级web缓存或源web服务器发起HTTP请求,请求获取整个文件,收到内容提供节点返回的数据后,提取客户端所需的部分,转发给客户端,并将收到的数据在本地缓存,同时根据内容提供节点的HTTP响应中的相关信息,设置文件属性(是否append only)。例如,如果响应消息中携带了扩展消息头“x-ContentAttribute:append_only”,则表明内容属性是append only,否则就不是appendonly ;步骤303,web缓存判断副本,即缓存文件是否覆盖了客户端所请求的范围,如果没有覆盖则执行步骤304,如果缓存文件覆盖了客户端所请求的范围(例如缓存文件为10MB,客户端所请求的数据范围为7MB 9MB),且文件为append only的(例如是媒体分段文件),则web缓存直接读取本地缓存文件中的相应数据,返回给客户端,同时在HTTP响应消息中,携带文件属性的扩展字段,标明该内容是append only的;步骤304,客户端所请求的内容在本地有缓存,且文件为append only的(例如是媒体分段文件),但缓存文件不能覆盖客户端所请求的范围,例如缓存文件为10MB,客户端所请求的数据范围为9MB 11MBJU web缓存向内容提供节点发起HTTP请求,检查内容是否有更新,同时请求获取缺失部分的数据(即从10MB开始的,后续部分)。收到内容提供节点返回的数据后,提取客户端所需的部分,转发给客户端,并在HTTP响应消息中,携带文件属性的扩展字段,标明该内容是append only的。同时将收到的数据添加在本地缓存文件的末尾,并标记该文件是append only的。进一步的,还包括步骤305,客户端所请求的内容在本地有缓存,但文件不是append only的(例如是播放列表描述文件),则web缓存按常规的缓存策略处理。即检查缓存是否过期,如没有过期,则直接读取缓存内容返回给客户端。如果过期,则向内容提供节点请求更新,如果内容没有更新,则直接读取缓存内容返回给客户端。如果有更新,则接收内容提供节点返回的更新内容后,提取相关数据返回给客户端。图4为本发明一种通过web缓存下载文件的系统结构示意图,如图4所示,所述系统包括:内容生成端41、内容提供节点42、web缓存43和用户端44 ;其中,所述内容生成端41,用于生成内容文件,并设置所述内容文件的属性为appendonly,将所述内容文件保存到内容提供节点42上;具体的,所述内容文件具体为:只能通过追加写入进行更新的分段文件。例如:HTTP Streaming业务文件,每次更新时都通过追加写入的方式,添加到文件的末尾。所述内容生成端41设置所述内容文件的属性为append only,包括:通过文件系统设置内容文件的属性;或者通过在数据库中添加append only标记;或者通过添加元数据文件实现append only标记。所述内容提供节点42包括:源web服务器或者在多级web缓存系统中的上级web缓存。所述将所述内容文件保存到内容提供节点42上,包括:内容生成端将属性为append only的内容文件保存到源web服务器上;或者所述上级web缓存从源web服务器上获取所述属性为append only的内容文件并在本地保存为副本。所述web缓存43,用于当收到用户端44发送的内容文件请求后,检查本地保存的副本,如果副本中内容不全,且内容文件的属性为append only,则向内容提供节点42发起请求,获取副本中缺失的内容,更新本地保存的副本后,将用户端44请求的内容文件返回给用户端44。具体的,所述web缓存43中如果副本中内容不全,且内容文件的属性为appendonly,则向内容提供节点42发起请求,获取副本中缺失的内容,具体为:如果副本中没有用户端44请求的内容文件、或者用户端44请求的内容文件在副本中不完整、或者副本中的内容文件已经过期,web缓存43则向内容提供节点42发起请求,内容提供节点42通过响应消息将副本中缺失的内容,以及表明所述内容文件属性为append only的信息,返回给web缓存43。所述web缓存43,还用于在更新本地保存的副本的过程中,设置所述内容文件的副本的属性为append only。进一步的,所述web缓存43,还用于检查本地保存的副本之后,如果副本中内容完整,即存在有效副本,则web缓存43直接读取副本内容,返回给用户端44。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种通过网络(web)缓存下载文件的方法,其特征在于,所述方法包括: 生成内容文件,并设置所述内容文件的属性为追加写入(append only),将所述内容文件保存到内容提供节点上; 当web缓存收到用户端发送的内容文件请求后,检查本地保存的副本,如果副本中内容不全,且内容文件的属性为append only,则向内容提供节点发起请求,获取副本中缺失的内容; web缓存更新本地保存的副本后,将用户端请求的内容文件返回给用户端。
2.根据权利要求 1所述的方法,其特征在于,所述内容文件,具体为:只能通过追加写入进行更新的分段文件; 所述设置所述内容文件的属性为append only,包括:通过文件系统设置内容文件的属性;或者通过在数据库中添加append only标记;或者通过添加元数据文件实现appendonly标记。
3.根据权利要求1或2所述的方法,其特征在于,所述内容提供节点包括:源web服务器,或者在多级web缓存系统中的上级web缓存。
4.根据权利要求3所述的方法,其特征在于,所述将所述内容文件保存到内容提供节点上,包括: 内容生成端将属性为append only的内容文件保存到源web服务器上;或者 所述上级web缓存从源web服务器上获取所述属性为append only的内容文件并在本地保存为副本。
5.根据权利要求1或2所述的方法,其特征在于,所述如果副本中内容不全,且内容文件的属性为append only,则向内容提供节点发起请求,获取副本中缺失的内容,具体为: 如果副本中没有用户端请求的内容文件、或者用户端请求的内容文件在副本中不完整、或者副本中的内容文件已经过期,web缓存则向内容提供节点发起请求,内容提供节点通过响应消息将副本中缺失的内容,以及表明所述内容文件属性为append only的信息,返回给web缓存。
6.根据权利要求1或2所述的方法,其特征在于,所述web缓存更新本地保存的副本,还包括:设置所述内容文件的副本的属性为append only。
7.—种通过web缓存下载文件的系统,其特征在于,所述系统包括:内容生成端、内容提供节点、web缓存和用户端;其中, 所述内容生成端,用于生成内容文件,并设置所述内容文件的属性为append only,将所述内容文件保存到内容提供节点上; 所述web缓存,用于当收到用户端发送的内容文件请求后,检查本地保存的副本,如果副本中内容不全,且内容文件的属性为append only,则向内容提供节点发起请求,获取副本中缺失的内容,更新本地保存的副本后,将用户端请求的内容文件返回给用户端。
8.根据权利要求7所述的系统,其特征在于,所述内容文件,具体为:只能通过追加写入进行更新的分段文件; 所述内容生成端设置所述内容文件的属性为append only,包括:通过文件系统设置内容文件的属性;或者通过在数据库中添加append only标记;或者通过添加元数据文件实现 append only 标记。
9.根据权利要求7或8所述的系统,其特征在于,所述内容提供节点包括:源web服务器,或者在多级web缓存系统中的上级web缓存; 所述将所述内容文件保存到内容提供节点上,包括:内容生成端将属性为append only的内容文件保存到源web服务器上,或者所述上级web缓存从源web服务器上获取所述属性为append only的内容文件并在本地保存为副本。
10.根据权利要求7或8所述的系统,其特征在于,所述web缓存中如果副本中内容不全,且内容文件的属性为append only,则向内容提供节点发起请求,获取副本中缺失的内容,具体为: 如果副本中没有用户端请求的内容文件、或者用户端请求的内容文件在副本中不完整、或者副本中的内容文件已经过期,web缓存则向内容提供节点发起请求,内容提供节点通过响应消息将副本中缺失的内容,以及表明所述内容文件属性为append only的信息,返回给web缓存。
11.根据权利要求7或8所述的系统,其特征在于,所述web缓存,还用于在更新本地保存的副本的过程中,设置所述内容文`件的副本的属性为append only。
全文摘要
本发明公开了一种通过网络(web)缓存下载文件的方法,生成内容文件,并设置所述内容文件的属性为追加写入(append only),将所述内容文件保存到内容提供节点上;当web缓存收到用户端发送的内容文件请求后,检查本地保存的副本,如果副本中内容不全,且内容文件的属性为append only,则向内容提供节点发起请求,获取副本中缺失的内容;web缓存更新本地保存的副本后,将用户端请求的内容文件返回给用户端。本发明还公开了一种系统,通过本发明的方法和系统能够实现更为高效的web缓存处理。同时,节省了网络带宽,缩短了响应延迟。
文档编号H04L29/08GK103118049SQ201110365969
公开日2013年5月22日 申请日期2011年11月17日 优先权日2011年11月17日
发明者王芳, 刘继年 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1