CN103222272A - 用于视频缓存索引的系统和方法 - Google Patents

用于视频缓存索引的系统和方法 Download PDF

Info

Publication number
CN103222272A
CN103222272A CN2011800469023A CN201180046902A CN103222272A CN 103222272 A CN103222272 A CN 103222272A CN 2011800469023 A CN2011800469023 A CN 2011800469023A CN 201180046902 A CN201180046902 A CN 201180046902A CN 103222272 A CN103222272 A CN 103222272A
Authority
CN
China
Prior art keywords
content
url
received content
characterization data
request
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
CN2011800469023A
Other languages
English (en)
Other versions
CN103222272B (zh
Inventor
F.库普曼斯
M.梅尔尼克
R.巴利克
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.)
Citrix Systems Inc
Original Assignee
Bytemobile Inc
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=44511537&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN103222272(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Bytemobile Inc filed Critical Bytemobile Inc
Publication of CN103222272A publication Critical patent/CN103222272A/zh
Application granted granted Critical
Publication of CN103222272B publication Critical patent/CN103222272B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23109Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion by placing content in organized collections, e.g. EPG data repository
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8352Generation of protective data, e.g. certificates involving content or source identification data, e.g. Unique Material Identifier [UMID]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17336Handling of requests in head-ends

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了用于对在内容缓存内的缓存数据结构中的内容进行索引的方法和系统。该方法和系统识别与所接收到的内容请求相关联的至少一个表征数据,并将该至少一个表征数据输入到哈希函数中,以生成用于识别与缓存数据结构中所请求内容相关联的条目的索引。该至少一个表征数据可以包括与所接收到的内容请求相关联的内容的一部分、与所接收到的内容请求相关联的统一资源定位符(URL)的一部分、与所接收到的内容请求相关联的IP地址、与所接收到的内容请求相关联的内容长度、以及从与所接收到的内容请求相关联的URL中解析的一个或多个参数。

Description

用于视频缓存索引的系统和方法
优先权
本申请要求2010年7月30日提交的美国临时申请No.61/369,513的权益,其主题通过引用结合到本文中。
技术领域
本公开针对Web内容输送的领域,并且更具体地,针对用于更有效地对视频内容进行缓存的系统和方法。
背景技术
在过去的十年里,能够向用户渲染视频的计算装置的数量已经大大增加了。不久前,用户需要高端个人计算机或计算机工作站来在可接受的帧速率下渲染数字视频。今天,视频图形硬件技术上的改进已经使视频渲染对于大众可用。互联网连接装置现在能够以对于许多用户可接受的质量水平来渲染视频。
在此同一时期期间,宽带互联网服务已经变得广泛可用。具有宽带互联网服务的用户可以以非常低的成本下载大量数据(包括视频)到他们的互联网连接装置。一旦用户开始下载大型视频文件,用于观看数字视频的内置到程序中的流技术允许用户在相同视频的后面部分仍正在进行下载的同时,观看视频的开始部分。共同地,这些技术创新已经大大增加了用户下载视频内容的胃口。
此外,在过去的几年里,用于生成数字视频的专业硬件和软件已经变得对于普通消费者更加可访问。许多廉价数码相机能够捕获数字视频的片段,而一些专业但廉价的装置甚至能够捕获可以被容易地上传到互联网的高清数字视频。这些技术和经济创新已经显著增加了用户制作可下载视频内容的能力。许多受欢迎的网站,通过为用户提供上传他们的视频并使其公开可得以供其他人观看的简单手段来迎合这种兴趣,从而为自我表达创建了非常公共的场所。这些发展已经导致了消费者对于互联网上输送的视频内容的兴趣激增。
目前,网站每月向数亿用户输送数百万小时的视频内容。一些受欢迎的网站,例如YouTubeTM(www.youtube.com),完全聚焦于向用户输送视频内容。其它受欢迎的网站,例如CNNTM(www.cnn.com),用特别令人感兴趣的短视频剪辑或片段来对传统新闻和非视频内容进行补充。消费者对视频内容的兴趣如此之大以至于很少有受欢迎的网站在无论如何都不提供视频内容的同时仍旧受欢迎。
尽管有许多在线向用户输送大量视频内容的网站,但输送视频内容仍然是昂贵的命题。通过互联网输送大型视频内容文件,趋于将大量处理负载置于传递该内容的网络基础设施以及将该内容传送给用户的Web服务器上(相对于输送文本或静态图像内容)。这种负担在采用无线技术的网络基础设施上尤其严重,因为无线网络一般比有线网络提供更低的通信吞吐量,且无线网络一般比有线网络遭受更严重的分组丢失和更大的位置依赖吞吐量。
例如,典型的网页内渲染的静止图像可以是200k字节长度,而完整长度的文本文章可以是10k字节长度。与之相比,取决于视频的内容和分辨率以及用来编码视频的压缩技术,五分钟视频片段则可能是从几兆字节到100兆字节或更多的任何地方。由于网络带宽和网络服务器能力是有限的,且附加的网络带宽和网络服务器能力对于视频内容提供者可能是昂贵的,因此较大视频文件相比较小的文本或静态图像内容对网络和Web服务器基础设施的负担更重。
这种负担的结果是,相对于可由输送文本或静态图像内容的相同网络和Web服务器基础设施进行服务的用户数量,当提供视频内容服务时,较少的用户可以获得网络和Web服务器基础设施的服务。因此,如果由于超负荷的Web服务器或超负荷的网络基础设施引起他们的网站似乎很慢,则寻求吸引广大用户群的公司或者面临增加他们内容输送能力,或者有失去用户的风险。由于客户损失对Web业务来说可能是致命的,所以大多数公司选择随着他们客户基础的增长而增加他们的内容输送能力。
图1图示了能够利用互联网连接装置向用户输送视频内容的现有技术系统100。如图所示,系统100包括用户互联网连接装置102、互联网104、Web服务器106、数据库112以及大容量存储装置114。用户互联网连接装置102通过网络连接108耦接到互联网104。Web服务器106通过网络连接110耦接到互联网104。Web服务器106分别通过耦合器116和118耦接到数据库112和大容量存储装置114。
一般地,系统100如下操作:用户做出在他们的互联网连接装置上观看内容的请求,该内容来自由被配置为响应该请求的硬件和软件所服务的网站,该硬件和软件在图1中被共同示为Web服务器106、数据库112和大容量存储装置114。通过经由用户互联网连接装置102发起内容请求,用户做出这样的请求,用户互联网连接装置102经由网络连接108、互联网104和网络连接110将该内容请求传送到Web服务器106。
在接收内容请求时,Web服务器106确定存储在大容量存储装置114中的哪个文件与所请求的内容相对应。与此对应有关的数据,以及与每个视频已被请求多少次和哪些内容文件收到欢迎有关的其它数据,可以被存储在数据库112中。一旦Web服务器106已识别出存储在大容量存储装置114中与所请求内容相对应的文件,Web服务器106从大容量存储装置114检索该文件并经由前述一系列网络连接将文件传送到用户互联网连接装置102。在从Web服务器106接收所请求的内容时,用户互联网连接装置102可以在Web浏览器或其它视频渲染软件应用中渲染所请求的内容。
虽然图1中图示的系统仅仅示出了单个用户互联网连接装置和单个Web服务器,但更复杂的系统是容易显而易见的。例如,在很短一段时间内,大量用户可能尝试通过他们各自的互联网连接装置访问特定的网站。如果并行用户的数量足够大,则那些用户所做出的请求可能超过单个Web服务器或网络基础设施的响应能力。
一些中间件服务在用户互联网连接装置和网络服务器之间提供内容缓存。这些中间件服务也可以在将其传送给用户互联网连接装置之前优化该内容,使得用户互联网连接装置可以实现更快的下载时间。对于给定的网络基础设施,相比没有中间件服务的Web服务器,在仍依靠Web服务器动态生成网页和执行复杂处理的同时,采用中间件服务来优化和输送内容可以允许将Web服务器和中间件服务相组合以服务更多的用户。
尽管中间件服务的好处显而易见,但提供视频内容的许多受欢迎的网站不能从传统的内容缓存中受益,因为这些网站利用“动态URL”来指代视频内容。动态URL代表对视频内容的“链接”(即,引用),其中该链接仅在特定条件下有效。一个这样的条件可以是所引用内容在特定时间段内被引用。另一个这样的条件可以是只有特定用户可以引用该内容。又一个这样的条件可以是只有在特定地理区域中的用户能够引用该内容。其它条件也是可能的。
如果施加于通过特定动态URL观看特定的一段视频内容的条件没有满足,则由该动态URL所引用的视频内容对请求用户来说是通过该用户引用动态URL不可获得的。相反,视频内容提供者可以通过显示“访问被拒绝”或“未找到内容”消息,拒绝用户通过特定动态URL访问特定一段视频内容的请求。然而,相同的视频内容仍然可以通过另一个动态URL获得,如果施加于通过该其它动态URL观看特定一段视频内容的条件满足的话,该条件诸如是上面所讨论的时间或地理条件。在任何给定时间,相同的视频内容也可以通过一个以上的动态URL并行可获得。
缓存由动态URL所引用的视频内容可以导致缓存内容的中间件服务中至少两个低效情况。这两个低效情况均与至少部分地基于用于内容的(动态)URL来索引缓存内容有关。
首先,动态URL的使用可以导致多个与内容缓存内相同视频内容相对应的多个缓存条目,从而降低内容缓存向用户提供其它的、唯一的内容的能力。在这种情况下,内容缓存包含有效但冗余的信息,从而降低了内容缓存的效率。
其次,动态URL的使用可以导致具有对内容的过期引用的内容缓存条目,再次降低了内容缓存的有用能力。与第一种情况对比,此第二种情况涉及包含无效信息而非有效但冗余的数据的内容缓存。因此,至少由于上述原因,采用至少部分由动态URL索引的内容缓存的中间件服务对网站性能问题提供了低效的解决方案。
附图说明
图1图示了能够利用互联网连接装置向用户输送视频内容的现有技术系统。
图2图示了采用内容缓存来减少网络基础设施和Web服务器上的负担的示例系统;以及
图3图示了示例内容缓存的组件。
图4A和4B图示了用于按适合的质量水平从内容缓存供应内容请求的示例方法。
图5A和5B图示了用于使用一个或多个类型的表征数据在内容缓存中生成索引的示例方法。
具体实施方式
本文所描述的系统和方法通过基于视频内容的表征对内容缓存进行索引,而非通过内容的URL对内容缓存进行索引,来缓存视频内容。不像现有技术的工业实践,即使当使用动态URL引用该内容时,这种方法也允许更有效地缓存视频内容。这种方法同样允许两个相似但不相同的视频通过索引方案加以区分,从而避免用户互联网连接装置请求第一个视频但缓存输送第二个(相似但不相同)视频(有时被称作“内容混淆”的情况)。
具体来说,本文所述的内容缓存智能响应内容请求,其中一个以上动态URL同时指代一段内容;尽管采用各种动态URL指代该内容,但只有该内容的单个副本在内容缓存中被索引。此外,动态URL的过期不一定会导致内容缓存中的孤立条目;基于先前被存储于内容缓存中并被已过期的动态URL指代的副本,可以从内容缓存中供应被新的未过期的动态URL指代的内容。
因此,即使在存在动态URL的情况下,所描述的用于缓存视频内容的系统和方法允许内容缓存高效地缓存视频内容,从而保留Web服务器以用于处理受益于该Web服务器的复杂软件和硬件能力的任务。
内容缓存中的每个条目至少包括用于索引的字段和用于引用被缓存的内容的字段。在一些实施例中,对被缓存内容的每个引用都可以是该被缓存内容的目录名和文件名。在其它实施例中,对被缓存内容的每个引用都可以是识别被缓存内容的其它手段,例如唯一识别该被缓存内容的字符串。在一些实施例中,内容缓存是存储于内容缓存内主或副存储器中的数据结构。在其它实施例中,内容缓存可以包括存储于内容缓存内文件或数据库表中的数据,或者存储于内容缓存外部文件或数据库服务器上的文件或数据库表中的数据。
在一些实施例中,对被缓存内容的引用指代存储在内容缓存内大容量存储装置上的文件。在其它实施例中,对被缓存内容的引用可以指代存储在内容缓存外部的大容量存储单元(诸如硬盘)上的内容。
图2图示了系统200,其采用包括内容缓存224的优化服务器206来降低网络基础设施和Web服务器208上的负担。如图所示,系统200包括用户互联网连接装置202、互联网204、优化服务器206、Web服务器208、数据库210和大容量存储装置212。用户互联网连接装置202可以是膝上型电脑、蜂窝式电话、个人数据助理、平板电脑或便携且能渲染视频的任何其它类型的计算装置。用户互联网连接装置202通过网络连接214耦接到互联网204。优化服务器206通过第一网络连接216耦接到互联网204。优化服务器206也通过第二网络连接218耦接到Web服务器208。可选地,Web服务器208分别通过耦合器220和222耦接到数据库210和大容量存储装置212。在一些实施例中,Web服务器208从被耦接到Web服务器208的数据库210检索内容和数据,而不是从大容量存储装置212检索内容或数据。在此实施例中,大容量存储装置212可以不存在于系统200中。在其它实施例中,Web服务器208从被耦接到Web服务器208的大容量存储装置212检索内容和数据,而不是从数据库210检索内容或数据。在此实施例中,数据库210可以不存在于系统200中。在另外其它实施例中,Web服务器208从大容量存储装置212和数据库210的组合中检索内容和数据。在此实施例中,Web服务器208和数据库210都存在于系统200中并被耦接到Web服务器208。在一些实施例中,优化服务器206包括内容缓存224(如图2中所示)。在其它实施例中(未示出),内容缓存224在优化服务器206外部,且内容缓存224被耦接到优化服务器206。
一般地,系统200如下操作:用户做出观看内容的请求,该内容来自部分由如优化服务器206的图2中所示的中间件,以及还部分由Web服务器208、数据库210和大容量存储装置212所供应的网站。用户通过经由用户互联网连接装置202发起内容请求来做出这样的请求,用户互联网连接装置202通过网络连接214、互联网204和网络连接216将内容请求传送给优化服务器206。
在接收内容请求时,优化服务器206确认所请求的内容是否存储于内容缓存224中。如果所请求的内容存储于内容缓存224中,优化服务器206确定以适合于请求用户的质量水平的所请求内容的版本是否被存储于内容缓存224中。如果适合质量水平的所请求内容的版本被存储于内容缓存224中,则优化服务器206通过前述的网络连接将该所请求内容的版本传送给用户互联网连接装置202。
如果所请求内容以其原始(未优化)格式被存储于内容缓存224中,但未以适合于用户的质量水平被存储在那,则优化服务器206创建适合的质量水平的所请求内容的优化副本,将该所请求内容的优化副本存储于内容缓存224中,并将该所请求内容的优化副本传送给用户互联网连接装置202。创建所请求内容的优化副本涉及以原始格式优化所请求内容,以创建对于用户以适合质量水平的所请求内容的副本。在创建所请求内容的优化副本之后,原始格式的所请求内容保留在内容缓存中,用于将来可能在创建以适合于将来请求用户的质量水平的所请求内容的其它副本时使用。
如果所请求内容既没有以对用户适合的质量水平被存储于内容缓存224中,也没有以其原始格式存储在那,则优化服务器206执行一系列步骤,其可包括:(1)传送内容请求给Web服务器208;(2)从Web服务器208接收以原始格式的所请求内容;(3)为将来使用,在内容缓存224中以原始格式存储所请求内容的副本;(4)如上文所描述,以对用户适合的质量水平,创建并存储所请求内容的副本;以及(5)传送以适合于用户的质量水平的所请求内容给用户互联网连接装置202。在从优化服务器206接收内容请求时,Web服务器208可以采用大容量存储装置212或数据库210或二者,以根据Web服务器208如何存储并索引其内容来供应所请求的内容。
图3图示了示例性的内容缓存224的组件。如图所示,内容缓存224包括处理器302、主存储器304、输入输出硬件306、大容量存储装置308以及网络接口卡 (NIC) 310和312。处理器302经由存储器总线314被耦接到主存储器304。处理器302还经由输入输出总线316被耦接到输入输出硬件306。输入输出硬件306分别经由耦合器318、320和322被耦接到大容量存储装置308、NIC 310和NIC 312。主存储器304可以由随机存取存储器(“RAM”)、只读存储器(“ROM”)、FLASH存储器、它们的任何组合或任何类型的存储器组成。
一般地,内容缓存224如下操作:用指令将主存储器304编码为,当由处理器302执行指令时,可操作成通过NIC 310从用户互联网连接装置接收内容请求,确定所请求内容是否存在于大容量存储装置308中,并且如果所请求内容当前存储于大容量存储装置308中,则通过NIC 310将所请求内容传送给用户计算机。还用指令将主存储器304编码为,通过NIC 312转发对应内容当前未存储于大容量存储装置308中的内容请求给Web服务器(例如,Web服务器208),通过NIC 312从Web服务器208接收以原始格式的所请求内容,以对用户适合的质量水平创建所请求内容的副本,将以原始格式和适合的质量水平的所请求内容存储于大容量存储装置308中,并且通过NIC 310转发以对请求的用户互联网连接装置适合的质量水平的所请求内容。在一些实施例中,在被存储于主存储器中之前,主存储器中的指令被存储在计算机可读介质上,如硬盘、光盘(包括但不限于CD或DVD盘)、软盘、FLASH存储盘、或固态盘(“SSD”)上。
确定所请求内容是否存储于内容缓存224中是通过检查缓存数据结构以便指示其存储了对所请求内容的引用而做出的。该缓存数据结构由一系列条目组成,其中每个条目进一步包括索引字段和内容引用字段。通过将从所请求内容生成的“索引”与缓存数据结构的每个条目内的索引字段进行比较,内容缓存确定对所请求内容的引用存储于内容缓存中。如果在从所请求内容生成的索引和缓存数据结构的条目内的索引字段之间存在匹配,则由索引字段与所生成索引匹配的缓存数据结构的条目内的内容引用字段所引用的内容被返回给请求的用户互联网连接装置。
在一些实施例中,缓存数据结构被存储于主存储器304中。在其它实施例中,缓存数据结构可被存储于内容缓存内的副存储器(未示出)中、内容缓存或外部盘上存储的文件中、内容缓存内存储的数据库表中、或内容缓存外部的数据库服务器上存储的数据库表中。下面对内容缓存的操作进行更具体的描述。
图4A和4B图示了用于从内容缓存以适合的质量水平供应内容请求的示例方法400。虽然方法400以特定的顺序公开下面的步骤,但要理解的是,至少某些步骤在适当情况下能够被重新排序、修改或删除。
如图所示,方法400始于在步骤402中从用户互联网连接装置接收内容请求。接收内容请求之后,做出所请求内容是否存在于内容缓存中的确定。在步骤404中,生成缓存索引以用于与缓存数据结构的条目内的缓存索引进行比较。在一个实施例中,如下文结合图5A和5B的方法所讨论的,使用哈希算法和至少一种类型的表征数据来生成缓存索引。在步骤406中,将所生成的缓存索引与缓存数据结构的每个条目中的缓存索引字段进行比较,以确定所生成的缓存索引是否存在于缓存数据结构中的任何条目的索引字段中。
如果步骤406中执行的检查确定了所生成的缓存索引不存在于缓存数据结构中任何条目的索引字段内,则内容缓存向Web服务器转发内容请求,从Web服务器以未优化形式接收所请求内容,并如下面所讨论的,将所请求内容存储在内容缓存中。在步骤408中,内容请求被转发到Web服务器。在步骤410中,内容缓存从Web服务器接收所请求内容,尽管以未优化的形式(即,以所请求内容被存储在Web服务器上的形式,而不是以代表对用户互联网连接装置适合的质量水平的形式)。在步骤412中,选择缓存数据结构内的条目,以用于存储与所请求内容相对应的索引和对所请求内容的引用。可以使用任何手段来选择用新数据覆盖缓存内的哪个条目。这种手段还包括最近使用的选择策略等。
在步骤414中,所请求内容以未优化的形式被存储在内容缓存内的大容量存储装置中。在步骤416中,对所请求内容的索引和引用被存储在步骤412中所选择的缓存数据结构条目中。其后,方法继续为以适当的质量水平生成内容的副本并传送该内容的副本(以适当质量水平的)给用户互联网连接装置,如下文从步骤420开始所讨论的。
现在返回到步骤406,如果步骤406中执行的检查,确定所生成的缓存索引存在于缓存数据结构内条目的索引字段内,则该方法继续到步骤418。在步骤418中,内容缓存读取存储在索引字段与所生成的缓存索引相匹配的缓存数据结构的条目中的内容引用字段。
在步骤420中,在给定内容请求的特性的情况下,内容缓存确定什么质量水平适合于所请求内容。如下文进一步详细讨论的,这种特性可以包括请求的装置上屏幕的分辨率以及请求的装置与互联网之间网络连接的吞吐量。也可以考虑其它特性。在步骤422中,内容缓存确定所请求的内容当前是否以适当的质量水平被存储在内容缓存中。
如果步骤422确定所请求内容没有以适当的质量水平被存储在内容缓存中,则在步骤424中内容缓存以适当的质量水平生成所请求内容,并在步骤426中将以适当质量水平的所请求内容存储于内容缓存内的大容量存储装置中。在步骤426之后,该方法继续到步骤428。
然而,如果步骤422确定所请求内容当前以适当的质量水平被存储在内容缓存内的大容量存储装置中,则方法继续到步骤428。在步骤428中,内容缓存将以适当的质量水平的所请求内容传送给用户互联网连接装置。其后,该方法结束于步骤430中。
然而,如先前所讨论的,当通过动态URL识别被缓存内容时,缓存系统受到低效情况影响。这些低效情况可以通过表征每段内容并将该表征结果存储为对与该段内容相对应的内容缓存条目的索引来避免。每次从内容缓存中请求一段内容,内容缓存从Web服务器检索所请求内容的一部分,并将其表征以创建用于与每个缓存数据结构条目中的索引(对应于存储在内容缓存中的每一段内容)进行比较的索引。
如果在通过表征从Web服务器检索到的所请求内容的一部分所生成的索引与存储于缓存数据结构中的索引之间存在匹配,则所请求内容至少以原始格式存在于内容缓存中,但也可能是以所请求的质量水平;因此,与缓存数据结构中匹配的索引相对应的被缓存内容,被转化为所请求的质量水平(如果必要的话)并且被传送给用户互联网连接装置。
如果在通过表征从Web服务器检索到的所请求内容的一部分所生成的索引与存储于缓存数据结构中的索引之间不存在匹配,则内容缓存当前不包含以原始格式或适当质量水平的所请求内容;因此,内容缓存将内容请求转发给Web服务器,从Web服务器接收以原始格式的所请求内容,优化所请求内容以按适当的质量水平创建所请求内容的副本,为将来使用(使用表征结果对缓存数据结构中的所请求内容进行索引)将以原始格式的所请求内容以及以适当的质量水平的该内容存储于内容缓存内,并且将以适当的质量水平的所请求内容从内容缓存转发给请求的用户互联网连接装置,如先前结合方法400所讨论的。
构建索引涉及正被执行的表征过程。该表征过程取得与一段内容有关的数据的至少一种形式,本文中每一种形式都被称为“表征数据”,将该至少一个表征数据输入到哈希算法中以产生唯一的哈希结果,并将该唯一哈希结果作为索引存储在缓存数据结构中以用于对应的一段内容。
在一些实施例中,哈希算法能够接收不同长度的多个输入并产生单个、唯一的固定长度的输出。用于构建索引所利用的哈希算法可以是任何类型的哈希算法。例如,该哈希算法可以是SHA2(第二代安全哈希算法)算法,该版本产生256位输出。
可以选择对哈希算法的一个或多个输入。选择对哈希算法的适当输入可以允许内容缓存唯一地识别被缓存内容,以便在最小化或消除与两个或更多实质上不同的内容段相对应的单个表征结果(即,“内容混淆”)的任何可能性同时,可以对每个所请求的内容段实时地执行计算上廉价的表征。该概念支持为了效率目的在内容缓存中避免复制的内容以及避免内容混淆的理念。
在一些实施例中,对每一段内容,至少一种类型的表征数据被用作对该段内容的哈希算法的输入。基于存储在配置文件或数据库中的配置数据,也可以自定义表征过程,以基于各种网站之间的文件格式或URL格式差异,来为不同网站不同地获取表征数据,或者使用更多或更少的数据段来生成表征。甚至,如果适当,基于配置文件或配置数据库中的设定,对所请求内容的缓存对于某些网站甚至可以被完全禁用。总之,作为对哈希算法的输入,该至少一种类型的表征数据代表对应内容唯一性的可靠指示符,从而从哈希算法产生唯一的表征结果。在下面的图5A和5B的讨论中描述每种类型的表征数据。
图5A和5B图示了用于使用一种或多种类型的表征数据生成索引到内容缓存中的示例方法500。虽然方法400以特定顺序公开下面的步骤,但要理解的是,至少某些步骤在适当情况下能够被重新排序、修改或删除。
可被用作对哈希算法的输入的第一种类型的表征数据是所请求内容的一部分。如图5A中所图示,方法500始于在步骤502中通过从Web服务器请求所请求内容的固定部分。在步骤504中,内容缓存从Web服务器接收所请求内容的固定部分。通过使用所请求内容的实际部分来表征该内容,相似视频或以两种不同编码格式编码的相同视频之间的混淆可以被避免。用于表征目的的所请求内容的部分的长度应当足够长以便唯一地识别该内容。
在一些实施例中,被用作对哈希算法的输入的部分的长度可以通过存储在内容缓存内的配置文件参数来设定。在其它实施例中,可以由存储在数据库中的值来设定该部分长度。在一些实施例中,为了表征的目的,所请求内容的部分是该所请求内容的第一个45k字节。在其它实施例中,针对某些或所有网站可以表征所请求内容的不同长度部分,或者,针对不同文件格式可以表征不同的部分长度(例如,FLASH文件的表征可以使用第一部分长度,而4级MPEG[MP4]文件的表征可以使用第二部分长度)。
在一些实施例中,每个文件格式或每个网站的要被表征的部分长度,由存储于内容缓存内的文件中或内容缓存外部的文件中的参数所指定。 在其它实施例中,每个文件格式或每个网站的要被表征的部分长度,可以由存储于内容缓存内的数据库中或内容缓存外部的数据库服务器上的数据库中的参数所指定。
对于表征所请求内容的部分的一个要解决的考虑是,视频内容的初始部分通常包含在视频内容的其它方面相同的副本之间变化的元数据。例如,特定网站可以存储和供应视频内容的若干个副本,其除了那些视频内某些元数据字段中设定的值之外是相同的。
除非内容缓存方案中考虑到这些元数据值差异,否则冗余内容(例如,相同视频内容的若干个副本,仅在元数据值中有差异)可能被存储于缓存数据结构内的多个索引中,从而降低内容缓存的效率。
可以通过在将所请求内容的该部分输入到哈希函数中之前,将在要被表征的所请求内容的部分内的这种元数据的值设定为已知、一致的值来避免此问题。通过针对所识别的元数据解析所请求内容的部分,用具有适当元数据值取代所请求内容的部分中的现有元数据值,以形成所请求内容的部分的修改版本,并使用该所请求内容的部分的修改版本用于对哈希算法的输入,来设定这些元数据值。
例如,如果已知某些网站(或就此而言所有网站)供应除特定元数据变量的值之外相同的视频内容的副本,则为了表征过程的目的,该元数据变量可以从要被表征的所请求内容的部分解析并被设为零(或一些其它预定值),如图5A的步骤506和508(下面讨论)中所图示的。在此示例中,被单独存储在Web服务器上且除所识别的元数据变量之外相同的两个或更多个视频内容副本,将(在解析后)具有对哈希算法的所请求内容输入的相同部分。因此,基于该共同表征,仅在此特定元数据值中不同的视频内容副本,可以被缓存在缓存数据结构的单个条目内。这样,仅由于元数据值中的变化引起的内容缓存中的低效率可以被避免。
因此,如步骤506中所示,分析步骤504中所接收的内容来确定该内容是否包含要修改的元数据。如果步骤506中执行的分析确定步骤504中所接收的内容包含要被修改的元数据,则方法继续到步骤508,其中元数据被修改以在方法继续到步骤510之前,减少或消除内容混淆。然而,返回到步骤506,如果步骤506中所执行的分析确定步骤504中所接收的内容不包含要被修改的元数据,则方法直接继续到步骤510。
在一些实施例中,对于所有网站或对于特定网站,以及对于以特定编码格式的内容,要被设定的元数据变量和它们对应的适当值可以在内容缓存之内存储的或内容缓存外部的参数文件中被定义。由于上面所讨论的原因,一些实施例将FLV文件内的“源数据”元数据变量解析为32位整数值并将其设为0。相比之下,在一些实施例中,在以MP4格式编码的文件中其它元数据字段被解析和修改。
在其它实施例中,对于所有网站或对于特定网站,以及对于以特定格式或所有格式编码的文件,要被解析的元数据变量和它们对应的适当值可被存储在内容缓存内的数据库中或内容缓存外部的数据库服务器上的数据库中。
一般来说,如下获得和解析所请求内容的初始部分:在从用户互联网连接装置接收内容请求时,优化服务器从Web服务器请求所请求内容的部分,作为第一种类型的表征数据,即使优化服务器内的内容缓存可以可了解地持有所请求内容的副本。Web服务器通过将所请求内容的被请求部分以原始格式传送给优化服务器来响应该请求。
在从Web服务器接收用户请求的内容的被请求部分时,优化服务器针对要被修改的元数据变量解析该部分(如果有的话)并按照指示修改那些值,以创建所请求内容的修改部分。其后,保留所请求内容的修改部分以便用作对哈希算法的输入。然而,该所请求内容的修改部分可能不过是对哈希算法的若干个输入中的一个。
第二种类型的表征数据可以是用户互联网连接装置从其请求内容的网站的根域名(或互联网协议(“IP”)地址)。使用网站的根域名或IP地址作为对哈希算法的输入,可以允许内容缓存在相同视频由两个或更多网站供应的情况之间进行区分。
例如,创建数字视频的用户通常在若干个视频共享网站(例如,第一视频共享站和第二视频共享站)上发布他们的视频。当另一个用户从第一视频共享网站请求该视频时,输送与第二视频共享网站相对应的视频的被缓存版本将是不期望的,因为该请求是对第一视频共享网站做出的。在表征内不包括所请求内容的根域名的情况下,网站之间的混淆(如由上面示例所示)是可能的。因此,根域名可以被用来区分内容缓存中的内容,从而避免这种混淆。因此,在步骤510中,域名从所请求内容的URL中被解析。
在此讨论的情境中,“根域名”指的是URL中的国家代码(例如,“.co.uk”)或顶级域(例如,“.com”)以及单个前述域字段(例如,“v22.lscache4.c.youtube.com”内的“youtube”)。例如,在URL“video-4-11.rutube.ru”中,根域名(即,顶级域和单个前述域字段)将是“rutube.ru”。在另一个示例中,“cache.youtube.co.uk”的根域名为“youtube.co.uk”。在第三个示例中,如果视频共享网站采用IP地址(诸如“213.174.148.153”)而不是URL用于识别自身,则该网站的IP地址(“213.174.148.153”)将被用作对哈希算法的输入。
然而,在一些情况下,使用来自所请求内容的URL的IP地址作为一种类型的表征数据可能导致内容缓存中的内容混淆和错误丢失。具体来说,当存储于相同内容提供者的指代相同内容的两个或更多URL包含不同的IP地址时,为所请求内容使用URL中的各种IP地址的内容提供者可能导致内容缓存内的内容混淆。另外,使用含有两个或更多IP地址来指代来自相同内容提供者的相同内容的URL可能导致降低的缓存性能,因为对来自内容提供者的特定一段内容的请求可能利用含有第一IP地址的URL,而内容缓存可能包含在第二IP地址下被索引的所请求内容的被缓存副本。在这种情况下,基于两个不同的IP地址,尽管相关联的内容文件相同,但内容缓存可能确定内容缓存中存在的内容与所请求的内容不是相同内容。因此,在这样的情况下,内容缓存将转发与第一IP地址相关联的内容请求给Web服务器,而不是供应被存储在内容缓存中并用第二IP地址索引的内容。因此,总的来说,使用引用其内容的URL中一个以上的IP地址的内容提供者可能导致内容混淆和/或降低的缓存性能。
在一些实施例中,对于特定内容提供者,通过忽略所请求内容的URL内的IP地址,可以降低或消除由于与相同内容相关联的URL之中的IP地址差异引起的内容混淆和缓存性能降低。在一些实施例中,存储在内容缓存上或内容缓存外部的存储器中的文件可以包含识别了内容缓存应当针对哪个内容提供者忽略URL内的IP地址的配置信息。在其它实施例中,识别内容缓存应当针对哪个内容提供者忽略URL内的IP地址的配置信息可以被存储在数据库中,该数据库在内容缓存之内或者在内容缓存外部。尽管上文所指出的涉及内容和与其相关联的解决方案,但从所请求内容的URL解析根域名或IP地址可以帮助避免站点间的内容混淆,并因此为了索引的目的可以有助于表征所请求内容。
对哈希算法的第三输入,作为表征数据的一种形式,可以是所请求内容的内容长度。使用内容长度来表征所请求视频的一个好处是区分所请求内容的副本之间存在差异的情况,但是超出被用作对哈希算法输入的所请求内容的部分的那些差异是存在的。
例如,电影的两个版本可用于在视频共享网站上下载。一个版本可以是完整长度的电影副本。第二个版本可以是缩短的版本,仅包括电影的最初几分钟。两个版本都可以比之前所讨论的用作对哈希算法输入的部分的长度更长(例如,在一些实施例中,内容的最初45KB)。在不使用内容长度作为对哈希算法输入的情况下,当被内容缓存所表征和缓存时,上述两个内容文件可能混淆。因此,使用内容长度作为输入,哈希算法可减少内容缓存中的混淆,并且当为了索引目而表征所请求内容时,哈希算法能够因此有所帮助。因此,在步骤512中,所请求内容的(完整)长度被确定。在步骤512中所寻求的长度是所请求内容的完整长度,而不是在步骤502中寻求的所请求内容的固定部分的预定长度。在一些实施例中,用户请求的内容的被请求部分中包括所请求内容的完整长度。
然而,一些所请求的内容不提供内容长度指示符作为内容的一部分。在这种情况下,内容缓存可以缓存所请求内容,而不使用内容长度作为对哈希算法的输入,或者可以根本不缓存所请求的内容。一般情况下,不含内容长度指示符的所请求内容只发生在极少数情况下。因此,在一些实施例中,内容缓存可选择不对这样的所请求内容进行缓存。然而,这个默认条件,可以通过在内容缓存上所存储的配置文件中进行设定来在每个站点基础上克服。可替代地,在其它实施例中,该默认条件可以通过存储在内容缓存上数据库中的设定或通过存储在外部数据库服务器上数据库中的设定来克服。
第四类型的表征数据可以是特定参数或包含在所请求内容的URL内的内容文件名。在一种情况下,网站可以使用参数,而不是所请求内容的文件名,来识别所请求的内容。在这种情况下,包含在URL中的文件名可以承载很少的或没有信息值(且对所有所请求内容可以是共同的),因此这些网站可以依赖参数值来识别所请求内容。因此,在这种情况下,从URL解析参数并使用参数作为对哈希算法的输入,可以帮助唯一地识别所请求的内容。因此,在步骤514中,所请求内容的URL中存在的任何参数从该URL中被解析。
其它网站可能选择不使用URL参数来识别所请求的内容,而是依赖URL内的唯一文件名来识别所请求的内容。在这种情况下,包括在URL中的文件名可以识别所请求的内容。如下所示简要讨论每种情况。
对于采用URL参数方案的网站,这些参数可以采取若干形式。例如,URL参数可能涉及,在URL内的网页后,由问号开始并由&符号分隔的一系列键-值组合。这种格式对Web应用是常见的。例如,在URL “http://v22.lscache4.c.youtube.com/videoplayback?ip=0.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgoritm%2Cburst%2Cfactor&algorithm=throttle-factor&itag=34&ipbits=0&burst=40&sver=3&expire=1257984000&key=yt1&signature=6B08C4D879658DA664689898E2A87D2AD9383FB2.14F95F7263FF8AD49AB45D78BF740C34694C006&factor=1.25&id=bc90b0f1bd492a64&”中,键-值对“itag=34”、“key=yt1”和“id=bc90b0f1bd492a64”可能与唯一地识别所请求的内容有关。
在另一个例子中,参数可能作为URL内子目录路径的一部分被嵌入。例如,在URL“http://nyc-v53.pornhub.com/dl/a37364b7cea11d5b814d0d0fecce6336/4afafa2b/videos/000/101/667/101667.flv?r=58”中,URL的“dl/a37364b7cea11d5b814d0d0fecce6336/4afafa2b/videos/000/101/667”部分通常代表Web服务器根目录下的子目录。然而,在这种情境中,URL的这部分可能不代表Web服务器内的子目录,而是可能代表组合起来唯一地识别网站上所请求内容的标识符。在这种情境中,包括在URL内的文件名(例如,“101667.flv”)可能或可能不会有助于唯一地识别所请求的内容。当接收到任一种形式的URL时,内容缓存可以通过解析URL以识别并提取参数的名称和值(如果值存在),来对此类URL作出响应。
在一些实施例中,URL解析器被配置为针对某些网站,基于在内容缓存内或内容缓存外部的配置文件中枚举和存储的参数编码数据和网站来识别如上所述的两种形式的参数编码。在其它实施例中,参数编码数据和网站名称可以被存储在数据库中,该数据库或者在内容缓存内或者在外部数据库服务器上。对于特定网站,此配置文件中的信息可以采用URL参数编码格式以及用来从该格式进行提取的适当参数名称的列表的形式。根据该信息,对于利用名称-值对的URL,URL解析器可以从其格式也在配置文件中被枚举的URL中提取任意枚举的参数名称和值。根据该信息,对于利用子目录格式的URL,URL解析器可以从子目录路径中提取任意枚举的参数名称。对于特定网站,如果格式和变量名在配置文件中被枚举,则参数名称(以及可能是参数值,如果它们存在)可以从其它URL编码格式中提取。配置文件中可以枚举和存储任意数量的格式和网站。
在一些实施例中,在不影响URL解析结果的情况下,前述用于配置文件的编码格式可以允许URL内的参数名称或子目录名以变化的或不一致的顺序出现。例如,在上面的YouTubeTM示例中,在不阻碍URL的成功解析的情况下,“itag”和“id”参数可以出现在 “itag”参数先于“id”参数的一个URL中,以及这些参数的顺序颠倒的另一个URL中。
在其它实施例中,对于某些网站,要识别的参数名称和值以及在URL内其编码的格式,可以通过存储在内容缓存上的数据库中的,或存储在内容缓存外部的数据库服务器内的数据库中的设定进行配置。
这些示例说明了针对参数名称和值解析URL的简单性和实用性。然而,在内容缓存的情境中,从所请求内容的URL解析参数值可以有助于表征所请求的内容。
可替代地,如上文所提到的,一些网站可以不利用URL参数来唯一地识别所请求的内容。这些网站可以替代地通过URL内的内容文件名来唯一地识别所请求的内容。在上文的PornhubTM示例中,“101667.flv”是URL内的文件名,并且对于所请求内容可以是唯一的标识符。在一些实施例中,对某些网站,URL解析器被配置为基于存储在内容缓存上的配置文件内的设定,为URL的文件名部分解析所请求内容的URL。
在步骤516中,一个或多个类型的表征数据被输入到哈希函数以确定对内容缓存的索引。在步骤518中,基于步骤516中对哈希函数的输入,方法500以接收来自哈希函数的输出作为结束。如先前所讨论的,该来自哈希函数的输出可以被用作对缓存数据结构的索引。
上文讨论的另一个方面与基于特定于该用户互联网连接装置的条件来将不同质量水平的数据输送给请求的用户互联网连接装置的内容缓存有关。特别是,创建要在互联网上与他人共享的视频内容的用户可以以未针对下载进行优化的分辨率和格式捕获和上传该视频。这种分辨率的一个示例是“1080p”,一种形式的高清晰度视频。此外,该高清晰度视频文件可以不利用任何压缩技术来减少用户下载高清晰度文件所需的时间。例如,以1080p格式将电影下载到互联网连接装置上的用户可能会发现,由于网络带宽限制,下载花费了难以接受的长时间来完成,并且也可能发现,基于互联网连接装置上的低分辨率屏幕,互联网连接装置不能充分利用高解析度内容。因此,用户、网络基础设施提供商和网站运营商可能会发现以原始分辨率和格式的文件是不方便处理的。
本文所讨论方法的一个方面,涉及以不同的质量水平(即,优化水平)存储若干个版本的缓存数据的内容缓存。例如,在一些实施例中,内容缓存可以以原始格式以及以高、中、低分辨率格式中的一个或多个来存储一段缓存内容。高、中、低分辨率格式化的内容可以代表为了不同容量的用户装置接收和显示该内容所已经创建的原始格式内容的优化版本。例如,基于针对该装置的降低的网络通信能力和降低的屏幕分辨率,低分辨率内容文件可能适合于互联网连接装置上的用户。
在一个实施例中,通过将质量水平指示符附加到每个版本的内容的文件名上,这些各种版本的内容可以被识别并与以原始格式的内容相区分。例如,如果一段内容被识别为“123ab”,则对于该内容以原始格式存储的版本,文件名可以是“123ab.O”(其中“O”对应于“原始”),而对于该内容的高、中、和低质量版本,文件名分别可以是“123ab.H”、“123ab.M”和“123ab.L”。基于此命名惯例,内容缓存可以识别与其存储的每个内容文件相关联的质量水平,并可以容易地确认所请求内容在特定质量水平的版本是否可用。
在一些实施例中,这些各种质量水平可以构成相同编码技术(例如,MP4)内的更高或更低的分辨率格式,并且在其它实施例中,这些各种质量水平可以代表以不同编码格式存储的内容。在一些实施例中,分辨率和编码格式二者都可以在质量水平之间变化。
在一些实施例中,如上文所讨论的,内容缓存在按需基础上生成并存储所请求内容以适当质量水平的副本。例如,如果用户互联网连接装置对来自内容缓存的内容的做出请求,且内容缓存确定所请求的内容,即使是以原始格式,也没有被存储在内容缓存中,则内容缓存从Web服务器以原始格式获得所请求的内容。其后,以适合于对该内容进行请求的用户的质量水平,内容缓存创建所请求内容的优化版本。然后,在内容缓存内,内容缓存以原始格式存储所请求内容,并同样存储所请求内容的优化版本。如上文所讨论的,在一些实施例中,存储在内容缓存内的所请求内容的版本可以通过将质量指示符附加到该内容的文件名而被识别和区分。最后,内容缓存将所请求内容的优化版本,传送到用户互联网连接装置。
类似地,如果用户互联网连接装置从内容缓存请求内容,并且内容缓存具有以原始格式存储的所请求内容但内容缓存没有以适合于该用户互联网连接装置的质量水平存储的所请求内容,则在不与Web服务器进行交互的情况下,内容缓存可以优化原始格式内容以便创建以适合于该用户互联网连接装置的质量水平的所请求内容的副本。然后,内容缓存将所请求内容的优化副本存储在内容缓存内,并将所请求内容的副本传送到请求的用户互联网连接装置。
这种以不同质量水平输送所请求内容的方法避免了表征内容缓存中每段内容的每个优化版本。此外,这种方法避免了为所请求内容的每个优化版本在内容缓存索引中存储条目。因此,内容缓存有效地供应不同质量水平的内容,同时避免冗余的缓存条目或不必要的内容表征。
在其它实施例中,根据对以特定质量水平的所请求内容的特定段的第一请求,内容缓存可以创建与所有质量水平对应的所请求内容的优化副本。
当本文所讨论的实施例是针对将内容输送给互联网连接装置时,所讨论的实施例也同样较好地适用于将内容输送给采用有线网络连接来访问由动态URL所引用的视频内容的其它计算装置。
虽然上文所公开的实施例包括使用被输入到哈希算法的多达四种类型的表征数据来生成缓存索引,但本文的讨论很容易适用于使用少于所有四种类型的表征数据作为到哈希算法的输入,或使用前述组件和技术的其它变型。

Claims (21)

1.一种用于对内容缓存内的缓存数据结构中的内容进行索引的方法,所述方法包括:
从用户互联网连接装置接收内容请求;
从Web服务器请求与所接收到的内容请求相关联的内容的部分;
针对与所接收到的内容请求相关联的内容,识别至少一个表征数据,其中,所述至少一个表征数据包括与所接收到的内容请求相关联的内容的部分;以及
通过将所述至少一个被识别的表征数据输入到哈希函数中,生成对应于与所接收到的内容请求相关联的内容的索引,其中,所生成的索引被用于在缓存数据结构中识别与内容相关联的条目。
2.根据权利要求1的方法,其中识别至少一个表征数据包括从与所接收到的内容请求相关联的统一资源定位符(URL)解析域名,其中域名包括第一部分和第二部分,其中第一部分包括URL内的顶级域或国家代码,以及第二部分包括在第一部分之前的URL的部分。
3.根据权利要求1的方法,其中识别至少一个表征数据包括从与所接收到的内容请求相关联的统一资源定位符(URL)解析IP地址。
4.根据权利要求3的方法,其中如果被解析的IP地址被包含在从所述至少一个表征数据排除的IP地址的集合中,则从与所接收到的内容请求相关联的URL解析IP地址将被解析的IP地址从所述至少一个表征数据排除。
5.根据权利要求1的方法,其中识别至少一个表征数据包括为与所接收到的内容请求相关联的内容进行长度确定。
6.根据权利要求1的方法,其中识别至少一个表征数据包括从与所接收到的内容请求相关联的URL解析一个或多个参数。
7.根据权利要求1的方法,其中,在将与所接收到的内容请求相关联的内容的部分输入到哈希函数中之前,与内容的所请求的部分相关联的至少一个元数据值被设定为预定值,内容的所请求的部分与从用户互联网连接装置接收到的内容请求相关联。
8.一种计算机可读存储介质,在其上存储一组指令,当所述指令被执行时,所述计算机可读存储介质提供包括以下内容的方法:
从用户互联网连接装置接收内容请求;
从Web服务器请求与所接收到的内容请求相关联的内容的部分;
针对与所接收到的内容请求相关联的内容,识别至少一个表征数据,其中,所述至少一个表征数据包括与所接收到的内容请求相关联的内容的部分;以及
通过将所述至少一个被识别的表征数据输入到哈希函数中,生成对应于与所接收到的内容请求相关联的内容的索引,其中,所生成的索引被用于在缓存数据结构中识别与内容相关联的条目。
9.根据权利要求8的计算机可读介质,其中识别至少一个表征数据包括从与所接收到的内容请求相关联的统一资源定位符(URL)解析域名,其中域名包括第一部分和第二部分,其中第一部分包括URL内的顶级域或国家代码,以及第二部分包括在第一部分之前的URL的部分。
10.根据权利要求8的计算机可读介质,其中识别至少一个表征数据包括从与所接收到的内容请求相关联的统一资源定位符(URL)解析IP地址。
11.根据权利要求10的计算机可读介质,其中如果被解析的IP地址被包含在从所述至少一个表征数据排除的IP地址的集合中,则从与所接收到的内容请求相关联的URL解析IP地址将被解析的IP地址从所述至少一个表征数据排除。
12.根据权利要求8的计算机可读介质,其中识别至少一个表征数据包括为与所接收到的内容请求相关联的内容进行长度确定。
13.根据权利要求8的计算机可读介质,其中识别至少一个表征数据包括从与所接收到的内容请求相关联的URL解析一个或多个参数。
14.根据权利要求8的计算机可读介质,其中,在将与所接收到的内容请求相关联的内容的部分输入到哈希函数中之前,与内容的所请求的部分相关联的至少一个元数据值被设定为预定值,内容的所请求的部分与所接收到的内容请求相关联。
15.一种用于对内容进行索引的系统,所述系统包括:
处理器;以及
存储器,其中用指令编码所述存储器,当所述指令被执行时,执行包括以下内容的步骤:
     从用户互联网连接装置接收内容请求;
     从Web服务器请求与所接收到的内容请求相关联的内容的部分;
     针对与所接收到的内容请求相关联的内容,识别至少一个表征数据,其中,所述至少一个表征数据包括与所接收到的内容请求相关联的内容的部分;以及
     通过将所述至少一个被识别的表征数据输入到哈希函数中,生成对应于与所接收到的内容请求相关联的内容的索引,其中,所生成的索引被用于在缓存数据结构中识别与内容相关联的条目。
16.根据权利要求15的系统,其中识别至少一个表征数据包括从与所接收到的内容请求相关联的统一资源定位符(URL)解析域名,其中域名包括第一部分和第二部分,其中第一部分包括URL内的顶级域或国家代码,以及第二部分包括在第一部分之前的URL的部分。
17.根据权利要求15的系统,其中识别至少一个表征数据包括从与所接收到的内容请求相关联的统一资源定位符(URL)解析IP地址。
18.根据权利要求17的系统,其中如果被解析的IP地址被包含在从所述至少一个表征数据排除的IP地址的集合中,则从与所接收到的内容请求相关联的URL解析IP地址将被解析的IP地址从所述至少一个表征数据排除。
19.根据权利要求15的系统,其中识别至少一个表征数据包括为与所接收到的内容请求相关联的内容进行长度确定。
20.根据权利要求15的系统,其中识别至少一个表征数据包括从与所接收到的内容请求相关联的URL解析一个或多个参数。
21.根据权利要求15的系统,其中,在将与所接收到的内容请求相关联的内容的部分输入到哈希函数中之前,与内容的所请求的部分相关联的至少一个元数据值被设定为预定值,内容的所请求的部分与所接收到的内容请求相关联。
CN201180046902.3A 2010-07-30 2011-07-29 用于视频缓存索引的系统和方法 Active CN103222272B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US36951310P 2010-07-30 2010-07-30
US61/369513 2010-07-30
US61/369,513 2010-07-30
PCT/US2011/046033 WO2012016226A1 (en) 2010-07-30 2011-07-29 Systems and methods for video cache indexing

Publications (2)

Publication Number Publication Date
CN103222272A true CN103222272A (zh) 2013-07-24
CN103222272B CN103222272B (zh) 2016-08-17

Family

ID=44511537

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180046902.3A Active CN103222272B (zh) 2010-07-30 2011-07-29 用于视频缓存索引的系统和方法

Country Status (4)

Country Link
US (1) US8429169B2 (zh)
EP (1) EP2599295A1 (zh)
CN (1) CN103222272B (zh)
WO (1) WO2012016226A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109089175A (zh) * 2017-06-14 2018-12-25 中兴通讯股份有限公司 一种视频缓存加速的方法及装置
CN110944228A (zh) * 2018-09-21 2020-03-31 中国移动通信有限公司研究院 一种视频流保护方法、装置和存储介质

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8312222B1 (en) 2002-12-13 2012-11-13 Open Text, S.A. Event-driven regeneration of pages for web-based applications
US8463998B1 (en) 2002-12-13 2013-06-11 Open Text S.A. System and method for managing page variations in a page delivery cache
US8074248B2 (en) 2005-07-26 2011-12-06 Activevideo Networks, Inc. System and method for providing video content associated with a source image to a television in a communication network
US8965999B1 (en) * 2006-04-20 2015-02-24 At&T Intellectual Property I, L.P. Distribution scheme for subscriber-created content, wherein the subscriber-created content is rendered for a recipient device by the service provider network based on a device characteristic and a connection characteristic of the recipient device
EP3145200A1 (en) 2007-01-12 2017-03-22 ActiveVideo Networks, Inc. Mpeg objects and systems and methods for using mpeg objects
US9826197B2 (en) 2007-01-12 2017-11-21 Activevideo Networks, Inc. Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device
US10097863B2 (en) 2010-08-22 2018-10-09 Qwilt, Inc. System and method for live service content handling with content storing servers caching popular content therein
US11032583B2 (en) 2010-08-22 2021-06-08 QWLT, Inc. Method and system for improving high availability for live content
US10127335B2 (en) 2010-08-22 2018-11-13 Qwilt, Inc System and method of performing analytics with respect to content storing servers caching popular content
US10097428B2 (en) 2010-08-22 2018-10-09 Qwilt, Inc. System and method for caching popular content respective of a content strong server in an asymmetrical routing topology
US9703970B2 (en) 2010-08-22 2017-07-11 Qwilt, Inc. System and methods thereof for detection of content servers, caching popular content therein, and providing support for proper authentication
US9774670B2 (en) 2010-08-22 2017-09-26 Qwilt, Inc. Methods for detection of content servers and caching popular content therein
JP5866125B2 (ja) 2010-10-14 2016-02-17 アクティブビデオ ネットワークス, インコーポレイテッド ケーブルテレビシステムを使用したビデオ装置間のデジタルビデオストリーミング
EP2649798A4 (en) * 2010-12-06 2017-06-07 Oracle International Corporation Media platform integration system
US8943216B2 (en) * 2011-02-24 2015-01-27 Saguna Networks Ltd. Methods, circuits, devices, systems and associated computer executable code for caching content
US20120239667A1 (en) * 2011-03-15 2012-09-20 Microsoft Corporation Keyword extraction from uniform resource locators (urls)
EP2695388B1 (en) 2011-04-07 2017-06-07 ActiveVideo Networks, Inc. Reduction of latency in video distribution networks using adaptive bit rates
EP2815582B1 (en) * 2012-01-09 2019-09-04 ActiveVideo Networks, Inc. Rendering of an interactive lean-backward user interface on a television
US9081791B2 (en) 2012-03-19 2015-07-14 P2S Media Group Oy Method and apparatus for reducing duplicates of multimedia data items in service system
US9800945B2 (en) 2012-04-03 2017-10-24 Activevideo Networks, Inc. Class-based intelligent multiplexing over unmanaged networks
IN2014DN09138A (zh) * 2012-04-04 2015-05-22 Unwired Planet Inc
US9123084B2 (en) 2012-04-12 2015-09-01 Activevideo Networks, Inc. Graphical application integration with MPEG objects
KR101330052B1 (ko) * 2012-06-01 2013-11-15 에스케이텔레콤 주식회사 적응형 컨텐츠 전송 방식을 지원하는 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치
KR101436049B1 (ko) * 2012-06-01 2014-09-01 에스케이텔레콤 주식회사 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치
US8863208B2 (en) * 2012-06-18 2014-10-14 Micropower Technologies, Inc. Synchronizing the storing of streaming video
US9154361B2 (en) 2012-07-18 2015-10-06 Opera Software Ireland Limited Just-in-time distributed video cache
CN102882939B (zh) * 2012-09-10 2015-07-22 北京蓝汛通信技术有限责任公司 负载均衡方法、设备及泛域名加速访问系统
TWI497984B (zh) * 2013-02-07 2015-08-21 Miiicasa Taiwan Inc 建立直接內容索引的方法與裝置
US9407726B1 (en) * 2013-03-15 2016-08-02 Juniper Networks, Inc. Caching objects identified by dynamic resource identifiers
WO2014145921A1 (en) 2013-03-15 2014-09-18 Activevideo Networks, Inc. A multiple-mode system and method for providing user selectable video content
EP2972943A4 (en) * 2013-03-15 2017-01-04 Adparlor Media, Inc. Intelligent platform for real-time bidding
BR112015023369B1 (pt) * 2013-03-15 2022-04-05 Inscape Data, Inc Sistema e método implementado por computador
EP3005712A1 (en) 2013-06-06 2016-04-13 ActiveVideo Networks, Inc. Overlay rendering of user interface onto source video
US9294785B2 (en) 2013-06-06 2016-03-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
US9219922B2 (en) 2013-06-06 2015-12-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
EP2819366A1 (en) * 2013-06-28 2014-12-31 Thomson Licensing Method for adapting the behavior of a cache, and corresponding cache
US10187319B1 (en) * 2013-09-10 2019-01-22 Instart Logic, Inc. Automatic configuration generation for a proxy optimization server for optimizing the delivery of content of a web publisher
CN103546829A (zh) * 2013-10-23 2014-01-29 华为技术有限公司 一种视频业务处理方法及设备
JP6542227B2 (ja) * 2013-12-18 2019-07-10 ルミレッズ ホールディング ベーフェー Led蛍光体パッケージ用の反射性はんだマスク層
US20150256600A1 (en) * 2014-03-05 2015-09-10 Citrix Systems, Inc. Systems and methods for media format substitution
US10154110B2 (en) 2014-04-22 2018-12-11 Qwilt, Inc. System and methods thereof for delivery of popular content using a multimedia broadcast multicast service
US9788029B2 (en) 2014-04-25 2017-10-10 Activevideo Networks, Inc. Intelligent multiplexing using class-based, multi-dimensioned decision logic for managed networks
CN104301743B (zh) * 2014-09-11 2018-02-23 华为技术有限公司 传输视频的方法、网关设备和视频传输系统
US9936040B2 (en) 2014-12-19 2018-04-03 Citrix Systems, Inc. Systems and methods for partial video caching
US10507544B2 (en) 2015-02-27 2019-12-17 Electro Scientific Industries, Inc Fast beam manipulation for cross-axis miromaching
WO2017040297A1 (en) * 2015-08-28 2017-03-09 Viasat, Inc. Systems and methods for prefetching dynamic urls
US10791162B2 (en) * 2015-12-31 2020-09-29 Hughes Network Systems, Llc Maximizing quality of service for QoS adaptive video streaming via dynamic application-layer throughput rate shaping
NL2016134B1 (en) * 2016-01-21 2017-07-25 Digital Media Centre B V A method of, a system for and a computer program product for composing and managing media content objects.
DE102017121871A1 (de) 2017-09-21 2019-03-21 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren zur Herstellung einer Permeationsmembran
CN107835437B (zh) * 2017-10-20 2018-10-09 广东省南方数字电视无线传播有限公司 基于多缓存服务器的调度方法和装置
CN107911712B (zh) * 2017-11-30 2020-10-09 歌尔科技有限公司 数据缓冲方法和电子设备
CN109308653B (zh) * 2018-10-16 2022-04-22 牡丹国际商品交易中心有限公司 避免客户端访问服务器拥堵的方法、终端及存储介质
US11095754B2 (en) * 2019-03-29 2021-08-17 Atlassian Pty Ltd. Systems and methods for creating and managing dynamic content

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020178169A1 (en) * 2001-05-23 2002-11-28 Nair Sandeep R. System and method for efficient and adaptive web accesses filtering
US20050165828A1 (en) * 2001-06-12 2005-07-28 Network Appliance Inc. Caching media data using content sensitive object identifiers
US20070204057A1 (en) * 2006-02-28 2007-08-30 Maven Networks, Inc. Systems and methods for providing a similar offline viewing experience of online web-site content

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020178330A1 (en) * 2001-04-19 2002-11-28 Schlowsky-Fischer Mark Harold Systems and methods for applying a quality metric to caching and streaming of multimedia files over a network
SE524679C2 (sv) * 2002-02-15 2004-09-14 Ericsson Telefon Ab L M System för broadcast/multicast-utsändning av datainformation emot en lokal del av ett trådlöst nät
GB0303192D0 (en) * 2003-02-12 2003-03-19 Saviso Group Ltd Methods and apparatus for traffic management in peer-to-peer networks
US9203816B2 (en) * 2009-09-04 2015-12-01 Echostar Technologies L.L.C. Controlling access to copies of media content by a client device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020178169A1 (en) * 2001-05-23 2002-11-28 Nair Sandeep R. System and method for efficient and adaptive web accesses filtering
US20050165828A1 (en) * 2001-06-12 2005-07-28 Network Appliance Inc. Caching media data using content sensitive object identifiers
US20070204057A1 (en) * 2006-02-28 2007-08-30 Maven Networks, Inc. Systems and methods for providing a similar offline viewing experience of online web-site content

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109089175A (zh) * 2017-06-14 2018-12-25 中兴通讯股份有限公司 一种视频缓存加速的方法及装置
CN110944228A (zh) * 2018-09-21 2020-03-31 中国移动通信有限公司研究院 一种视频流保护方法、装置和存储介质

Also Published As

Publication number Publication date
EP2599295A1 (en) 2013-06-05
US20120030212A1 (en) 2012-02-02
WO2012016226A1 (en) 2012-02-02
US8429169B2 (en) 2013-04-23
CN103222272B (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
CN103222272A (zh) 用于视频缓存索引的系统和方法
JP6747721B2 (ja) ネットワークアドレス解決
US9961395B2 (en) Video caching
US11477262B2 (en) Requesting multiple chunks from a network node on the basis of a single request message
US9015275B2 (en) Partial object distribution in content delivery network
CN102238419B (zh) 播放实况内容的方法和装置
CN102771080B (zh) 使用缓存的高效媒体传送的系统和方法
KR101330052B1 (ko) 적응형 컨텐츠 전송 방식을 지원하는 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치
CN102055718B (zh) 一种在http streaming系统中实现分层请求内容的方法,装置和系统
WO2013159703A1 (en) Offline download method, multimedia file download method and system thereof
JP2009157444A (ja) サービス提供システム、ゲートウェイ、およびサーバ
US8817983B2 (en) Streaming video to cellular phones
CN105191322A (zh) 使用按需转码的多画面网络数字视频记录的系统和方法
US8479242B1 (en) Video storage and distribution
EP2556481A1 (en) Partial object distribution in content delivery network
CN108271039B (zh) 一种文件发送方法及装置
WO2016074149A1 (en) Expedited media content delivery
KR102024642B1 (ko) 라이브 스트리밍 서버 장치 및 이의 운용 방법
KR101591534B1 (ko) 계층적 트랙커를 이용한 p2p 전송 시스템 및 이를 위한 트랙커 장치
KR101888982B1 (ko) 적응형 컨텐츠 제공을 위한 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치
US9288153B2 (en) Processing encoded content
KR101971595B1 (ko) 적응형 컨텐츠 제공을 위한 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치
SG184587A1 (en) A method and apparatus for caching and retrieving a stream object

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: CITRIX SYSTEMS INC

Free format text: FORMER OWNER: BYTEMOBILE INC.

Effective date: 20131223

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20131223

Address after: American Florida

Applicant after: Citrix Systems Inc

Address before: American California

Applicant before: Bytemobile Inc.

ASS Succession or assignment of patent right

Owner name: BYTEMOBILE INC.

Free format text: FORMER OWNER: CITRIX SYSTEMS INC

Effective date: 20150810

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150810

Address after: American Florida

Applicant after: Bytemobile Inc.

Address before: American Florida

Applicant before: Citrix Systems Inc

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160222

Address after: American Florida

Applicant after: Citrix Systems Inc

Address before: American Florida

Applicant before: Bytemobile Inc.

C14 Grant of patent or utility model
GR01 Patent grant