CN103024045A - 应用驱动的cdn预高速缓存 - Google Patents

应用驱动的cdn预高速缓存 Download PDF

Info

Publication number
CN103024045A
CN103024045A CN2012105467181A CN201210546718A CN103024045A CN 103024045 A CN103024045 A CN 103024045A CN 2012105467181 A CN2012105467181 A CN 2012105467181A CN 201210546718 A CN201210546718 A CN 201210546718A CN 103024045 A CN103024045 A CN 103024045A
Authority
CN
China
Prior art keywords
content
request
client application
additional content
server
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
CN2012105467181A
Other languages
English (en)
Other versions
CN103024045B (zh
Inventor
J·R·图利艾尼
N·L·霍尔特
C·黄
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN103024045A publication Critical patent/CN103024045A/zh
Application granted granted Critical
Publication of CN103024045B publication Critical patent/CN103024045B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/602Details relating to cache prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及应用驱动的CDN预高速缓存。提供了用于在内容被请求之前高速缓存内容的技术。可在高速缓存服务器处从客户机应用接收对所需内容的请求。该请求也指示与所需内容相关的附加内容,该附加内容可能随后被客户机应用请求。所指示的附加内容(以及所需内容,如果还未被高速缓存)被从原始服务器检索。所需内容被发送到用户设备处的客户机应用,而附加内容被高速缓存在高速缓存服务器处。随后,可从客户机应用接收包括对附加内容的请求的第二请求。现在被高速缓存在高速缓存服务器处的附加内容,由高速缓存服务器响应于第二请求来提供给客户机应用(而非从原始服务器检索)。

Description

应用驱动的CDN预高速缓存
技术领域
本发明涉及预高速缓存,尤其是应用驱动的内容递送网络的预高速缓存。
背景技术
内容递送网络(CDN)是包含被置于不同网络节点的数据副本的计算机网络。CDN提供了原始服务器和终端用户计算机之间的数据的接口。原始服务器是内容的初级源,且CDN的服务器对具有最高需求的内容的副本进行高速缓存。CDN的服务器可被有策略地安排为相比于原始服务器更接近终端用户计算机。终端用户计算机可访问CDN的服务器处的高需求数据,而非不得不直接访问来自原始服务器的数据。如此,通过增加接入带宽、增加冗余并减少访问等待时间,CDN改善了对数据的访问。
华盛顿州雷蒙德市的微软公司提供的(必应)地图是使用CDN提供内容的在线应用的示例。该应用具有大量的地图图块(地图的部分的图像)形式的静态内容,该静态内容存储在原始服务器上通过CDN被递送到终端用户。例如,用户可在他们的计算设备处使用web浏览器以浏览地图,例如通过跨地图平扫,放大或缩小地图的部分等等。当用户浏览地图时,浏览器向CDN发送对新地图图块的请求。
发展了各种技术来允许内容(例如,地图图块)被更快地提供给用户计算设备处的web浏览器。根据第一技术,在线应用的原始服务器可预测未来内容请求。所预测的未来内容可被预高速缓存在CDN中,使得如果所预测的未来内容实际被请求,它可被用户计算设备更快地访问。根据第二技术,用户计算设备处的客户机web浏览器可预测在未来将可能需要什么内容,并可将该内容预取到web浏览器。根据第三技术,CDN服务器可预测用户计算设备的未来内容请求,并可将所预测的未来内容预高速缓存在CDN中。
然而,这些技术有缺点。例如,让原始服务器预测未来内容有预先确定要被预高速缓存的内容的缺点。对于将内容预取到web浏览器而言,在用户产生数据传送成本或具有受限带宽(诸如在移动应用中)的情况中,这样的预高速缓存可能是不可接受的和/或可能不能提供所需性能。此外,对于让CDN预测并预高速缓存未来内容而言,CDN可能不得不非常复杂以理解CDN接收的内容请求的类型从而能够推断未来内容请求。
如此,当前的高速缓存技术较不合乎需要。在
Figure BDA00002589791400021
(必应)地图的情况中,归因于可用地图图块的数量和不同用户的不同聚焦区域,“高速缓存命中”率(被高速缓存的所请求的数据与可用数据总量的比率)不合需要地低(例如,小于50%)。这导致了在地图载入中相对高的等待时间,因为不得不频繁地为用户从原始服务器检索地图图块,而不是从CDN处的高速缓存检索地图图块。
发明内容
提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
提供方法、***,和计算机程序产品以用于在内容实际被请求之前对内容进行高速缓存。客户机应用可将随后要被请求的内容预测为所需内容(而非在原始服务器处或在内容递送网络服务器处作出预测)。此外,所预测的内容可被高速缓存在内容递送网络的高速缓存服务器处(而非被高速缓存在web浏览器处)。这样的技术可提供高速缓存命中率,降低等待时间,和/或具有进一步的益处。
在高速缓存服务器中的一方法实现中,从客户机应用接收对所需内容的第一请求。第一请求也可指示与所需内容相关的附加内容,该附加内容可能随后被客户机应用请求。所指示的附加内容不是当前被指示为消费所需,但是被预测为潜在地被未来的消费需要。从原始服务器检索所需内容和所指示的附加内容。所需内容被发送到用户设备处的客户机应用,而附加内容被高速缓存在高速缓存服务器处。随后,可从客户机应用接收包括对附加内容的请求的第二请求(例如,因为附加内容现在需要被用于客户机应用处的消费)。响应于第一请求被高速缓存在高速缓存服务器处的附加内容,被响应于第二请求由高速缓存服务器提供给客户机应用。
所需内容的第一请求可包括可能性指示,其指示附加内容随后被客户机应用请求的可能性。对原始服务器处的所指示的附加内容的请求(相对于其它内容请求)可基于该可能性指示和/或其它信息而被区分优先级。
在一个***实现中,高速缓存服务器可包括内容请求解析器、内容检索器模块,和内容提供者模块。内容请求解析器从用户设备中的客户机应用接收对所需内容的请求。该请求指示与所需内容相关的附加内容,该附加内容可能随后被客户机应用请求。内容检索器模块向原始服务器发送对所需内容的和所指示的附加内容的至少一个请求,从原始服务器接收所需内容和附加内容,并将附加内容高速缓存在存储中。内容提供者模块将所需内容发送到用户设备处的客户机应用。内容请求解析器从客户机应用接收包括对附加内容的请求的第二请求。响应于第二请求,内容提供者模块将经高速缓存的附加内容提供给客户机应用。
此外,内容检索器模块可包括请求优先级区分器(prioritizer),该优先级区分器基于可能性指示对向原始服务器发送对所指示的附加内容的请求进行优先级区分。
在一个客户机应用实现中,客户机应用可包括通信接口和附加内容预测器。附加内容预测器接收客户机应用的当前所需内容的指示,并预测可能随后被客户机应用请求的附加内容。通信接口生成对所需内容的第一请求,该第一请求也指示所预测的附加内容。通信接口从高速缓存服务器接收所需内容,该高速缓存服务器响应于第一请求从原始服务器检索到了所需内容。随后,通信接口生成第二请求,该第二请求是对所预测的附加内容作为当前所需内容的请求。从高速缓存服务器接收所预测的附加内容。高速缓存服务器响应于第一请求先前已经从原始服务器检索了附加内容并已经高速缓存了该附加内容。
此外,附加内容预测器可包括附加内容优先级区分器。附加内容优先级区分器生成可能性指示,指示附加内容可能随后被客户机应用请求的可能性。
此处也描述了用于预测未来内容请求的客户机应用、用于高速缓存所预测的未来内容的高速缓存服务器,和进一步的实施例的计算机程序产品。
下面将参考各个附图,详细描述本发明的进一步特点和优点,以及本发明的各实施例的结构和操作。值得注意的是,本发明不仅限于此处所描述的特定实施例。本文呈现这些实施例仅用于说明性的用途。基于本文所包含的描述,其它实施例对于相关领域的技术人员将是显而易见的。
附图说明
结合到本说明书并构成本说明书的一部分的附图示出了本发明,且与描述一起,进一步用于说明本发明的原理,并允许那些相关领域技术人员实施和使用本发明。
图1示出了根据一示例实施例将内容递送到用户设备的内容递送网络的框图。
图2示出了根据一示例实施例的内容递送网络的框图,在那里所预测的内容被高速缓存服务器检索并高速缓存。
图3示出了根据一示例实施例的提供一过程的流程图,该过程用于供高速缓存服务器将客户机应用在未来可能请求的内容进行高速缓存。
图4示出了根据一示例实施例的提供用于向客户机应用提供先前已高速缓存的内容的过程的流程图。
图5示出了根据一示例实施例的提供一过程的流程图,该过程用于供客户机应用请求并接收所需内容并指示可能在未来被请求的内容。
图6示出了根据一示例实施例的用户设备的框图,该用户设备具有配置来请求并接收所需内容并指示可能在未来被请求的内容的客户机应用。
图7示出了根据一示例实施例的包括附加内容优先级区分器的附加内容预测器的框图。
图8示出了根据一示例实施例的用于指示内容可能在未来被客户机应用请求的可能性的过程。
图9示出根据一示例实施例的高速缓存服务器的框图。
图10示出根据一示例实施例的包括请求优先级区分器的内容检索器模块的框图。
图11示出根据一示例实施例的用于区分请求的优先级的过程,该请求向原始服务器请求客户机应用可能在未来请求的内容。
图12示出了可用于实现本发明的各实施例的示例计算机的框图。
当结合其中相同的附图标记标识对应的元素的附图时,本发明的特征和优点将从以下阐述的详细描述中变得更加显而易见。在附图中,相同的参考标号一般指相同的、功能上相似的和/或结构上相似的元素。其中元素第一次出现的附图由对应的参考标号中最左侧的数字指示。
具体实施方式
I.介绍
本说明书公开了包括本发明的各特征的一个或多个实施例。所公开的实施例只例示了本发明。本发明的范围不仅限于所公开的实施例。本发明由所附的权利要求进行限定。
说明书中对“一个实施例”、“实施例”、“示例实施例”等等的引用表示所描述的实施例可包括特定特征、结构或特性,但是,每一个实施例可不必包括该特定特征、结构,或特征。此外,这些短语不一定指相同的实施例。此外,当关于某一实施例描述特定特征、结构或特性时,不管是否被明确描述,关于其他实施例来实现该特征、结构或特性被认为是在本领域技术人员的知识范围内。
本发明的多个示例性实施例在以下描述。应当理解,在此提供的任何章节/子章节标题不旨在限制。本文档中描述了各实施例,并且任何类型的实施例可被包括在任何章节/子章节下。
II.示例实施例
内容递送网络(CDN)是包含被置于不同网络节点的数据副本的计算机网络。CDN提供了原始服务器和终端用户计算机之间的数据的接口。原始服务器是内容的初级源,且CDN的服务器对具有最高需求的原始服务器的内容的副本进行高速缓存。CDN的服务器可被有策略地安排为相比于原始服务器更接近终端用户计算机。终端用户计算机可访问CDN的服务器处的高需求数据,而非不得不直接从原始服务器访问数据。如此,通过增加接入带宽、增加冗余并减少访问等待时间,CDN改善了对数据的访问。可被高速缓存在CDN中的内容的类型包括web对象(文本、图形、URL和脚本)、可下载对象(媒体文件、软件、文档)、应用、直播流媒体和数据库查询。
发展了各种技术来允许内容(例如,地图图块)被更快地提供给用户计算设备处的web浏览器。根据第一技术,在线应用的原始服务器可预测将来的内容请求。所预测的未来内容可被预高速缓存在CDN中,使得如果所预测的未来内容实际被请求,它可被用户计算设备更快地访问。根据第二技术,用户计算设备处的客户机web浏览器可预测未来将可能需要什么内容,并可将该内容预取到用户计算设备处的web浏览器(例如,使用AJAX(异步JavaScript)技术)。例如,用户在计算设备处可使用web浏览器来查看一系列图像。每一次一图像被查看,要被查看的下一图像在原始服务器可被预测,所预测的下一图像可被预取到web浏览器以允许从当前图像到下一图像的平滑且即时的转换。根据第三技术,CDN服务器可预测用户计算设备的未来内容请求,并可将所预测的未来内容预高速缓存在CDN中。
然而,这些技术有缺点。例如,让原始服务器预测未来内容有预先确定要被预高速缓存的内容的缺点。对于将内容预取到web浏览器而言,在用户产生数据传送成本或具有受限带宽(诸如在移动应用中)的情况中,这样的预高速缓存可能是不可接受的和/或可能不能提供所需性能。此外,对于让CDN预测并预高速缓存未来内容而言,CDN可能不得不非常复杂以理解CDN接收的内容请求的类型从而能够推断未来内容请求。
本发明的各实施例克服这样的缺点。在一实施例中,可在用户计算设备处的客户机应用中(例如,在web浏览器或其它客户机应用中)实现用于预测未来可能需要的内容的逻辑。如此,该逻辑可被更具体地针对客户机应用来定制,并可(例如,通过更新)随客户机应用的发展而发展。
此外,在一实施例中,被预测的未来内容可被高速缓存在CDN中的存储中,而不是预高速缓存在web浏览器中。预高速缓存到CDN中的存储不显著增加传送到web浏览器的数据,并因此不对web浏览器性能产生不利影响,并且在数据传送具有成本或存在受限带宽的情况下没有问题。
如此,各实施例允许在CDN的高速缓存服务器中而不是在客户机应用它们本身进行内容预高速缓存。业务逻辑被允许驻留在决定什么内容要被预高速缓存的客户机应用中。客户机应用可以基于用户上下文/行为和/或其它因素直接提示CDN关于什么内容要预高速缓存。预高速缓存提示可以可选地包括内容未来将被使用的可能性指示,从而允许CDN根据可用容量来区分预高速缓存请求的优先级。
各实施例可在任何类型的CDN中实现。例如,图1示出了根据示例实施例将内容递送到用户设备的内容递送网络CDN 100的框图。CDN 100被示为内容递送网络的示例类型,而不是为了进行限制。如图1所示,CDN 100包括原始服务器102以及第一和第二高速缓存服务器104a和104b。此外,如图1所示,CDN 100向第一-第四用户设备106a-106d递送内容。尽管在图1中出于说明的目的示出了单个原始服务器102,两个高速缓存服务器104a和104b,以及四个用户设备106a-106d,但可呈现任何数量的图1中的这些特征,包括一个或多个附加原始服务器、一个或多个附加高速缓存服务器,和/或一个或多个附加用户设备,包括数十、数百、数千,以及甚至更多数量的服务器和/或用户设备。在一实施例中,高速缓存服务器104a和104b可以或可以不被包括在高速缓存服务器群集(以及可选地其它高速缓存服务器)中,并且可存在任何数量的高速缓存服务器群集。
用户设备106a-106d的每一个可以是任何类型的固定或移动计算设备,包括台式计算机(例如,个人计算机等)、移动计算机或计算设备(例如,
Figure BDA00002589791400071
设备、RIM设备、个人数字助理(PDA)、膝上型计算机、笔记本计算机、平板计算机(例如,Apple iPadTM)、上网本等等)、智能电话(例如,Apple iPhone、Google AndroidTM电话、Microsoft
Figure BDA00002589791400073
电话等)或其它类型的计算设备。
如图1所示,原始服务器102和高速缓存服务器104a和104b通过网络108a通信地耦合,而高速缓存服务器104a和104b和用户设备106a-106d通过网络108b通信地耦合。网络108a和108b可以是分开的网络或可以被包括在单个网络中。网络108a和108b的示例包括LAN(局域网)、WAN(广域网),或诸如因特网等网络的组合。可被包括在网络108a和108b中的通信链路的示例包括IEEE802.11无线LAN(WLAN)无线链路、微波存取全球互通(Wi-MAX)链路、蜂窝网络链路、无线个域网(PAN)链路(例如,蓝牙TM链路)、以太网链路、USB(通用串行总线)链路等。原始服务器102和高速缓存服务器104a和104b的每一个可以是此处描述的或以其它方式已知的任意类型的计算设备。
如图1所示,用户设备106a-106d的每个包括客户机应用110a-110d中的对应的一个。客户机应用110a-110d是运行在用户设备106a-106d中的应用,它们通过CDN 100访问内容。客户机应用110a-110d的示例包括web浏览器、媒体播放器(例如,视频播放器、图像查看器、音频播放器等),和其它类型的客户机应用。如图1所示,原始服务器102将内容112存储在客户机应用110a-110d可能希望访问的存储中。内容112可以是任何类型的内容,包括web对象(例如,文本、图形/图像/视频、URL(统一资源定位符)、脚本等)、可下载对象(例如,媒体文件、软件、文档等)、应用、直播流媒体和数据库数据。在某些情况中,客户机应用110a-110d可直接在原始服务器102访问内容112。此外,高速缓存服务器104a-104b的每一个可分别将内容112的各部分高速缓存为已高速缓存的内容114a和已高速缓存的内容114b。如此,在某些情况中,客户机应用110a-110d可访问高速缓存服务器104a和104b处的内容112(如已高速缓存内容114a和114b),而不是不得不从原始服务器102获得内容112(这可能是瓶颈)。
例如,如图1所示,用户设备106a的客户机应用110a可向高速缓存服务器104a发送内容请求116。内容请求116指示被预测为未来要被客户机应用110a请求的内容以及客户机应用110a立刻需要的内容。以此方式,客户机应用110a向高速缓存服务器104a发送未来可能被请求的内容,并因此由高速缓存服务器104a来高速缓存是合乎需要的。注意图1的实施例中,内容请求116指示客户机应用110a所需内容以及被预测为客户机应用110a未来要请求的内容两者。在另一实施例中,内容请求116可指示被预测为客户机应用110a未来要请求的内容,而客户机应用110a所需的内容可被指示在从客户机应用110a发送到高速缓存服务器104a的分开的请求中。
高速缓存服务器104a可生成被发送到原始服务器112的内容请求118,请求内容请求116中指示的所预测的未来内容。如果,客户机应用110a请求的所需内容还没有被高速缓存在高速缓存服务器104a处,高速缓存服务器104a可在内容请求118中指示该所需内容,或可以向原始服务器102(或其它原始服务器)发送分开的对所需内容的请求。在对内容请求118的响应120中,原始服务器102可将内容112的内容发送到高速缓存服务器104a。响应120可包括所需内容和所预测的未来内容。另选地,所需内容以及所预测的未来内容可在分开的发送中从原始服务器102发送到高速缓存服务器104a,或者所需内容和所预测的未来内容可被发送自不同原始服务器。高速缓存服务器104a可高速缓存所需内容和所预测的未来内容作为已高速缓存内容114a,并且可以将所需内容作为所需内容122发送到客户机应用110a。如果客户机应用110a确实随后向高速缓存服务器104a请求作为所预测的未来内容的内容,则高速缓存服务器104a可将包括所预测的未来内容的已高速缓存的内容114a发送到客户机应用110a。归因于在高速缓存服务器104a和104b处对所预测的未来内容的高速缓存,客户机应用110b-110d可类似地与高速缓存服务器104a和104b之一或两者交互,从而以比传统技术更加高效的方式来接收原始服务器102的内容。
如上所描述的,在一实施例中,客户机应用可预测未来要被访问的内容,且所预测的内容可被高速缓存在高速缓存服务器处用于更快的响应。在一实施例中,图1的客户机应用110a-110d可预测未来要被访问的内容,并且可向高速缓存服务器104a和104b指示所预测的未来内容以进行高速缓存。例如,图2示出了根据一示例实施例的CDN 200的框图。如图2所示,CDN 200包括原始服务器102、高速缓存服务器202和用户设备106a。高速缓存服务器202是图1的高速缓存服务器104a和104b之一的示例。如图2所示,用户设备106a包括客户机应用204,而客户机应用204包括附加内容预测器208。客户机应用204是图1的客户机应用110a-110d之一的示例。在图2中,客户机应用204被配置来预测随后可能被请求的内容,并且所预测的内容被高速缓存服务器202检索并高速缓存。
以下结合图3描述图2。图3示出了根据一示例实施例的提供一过程的流程图300,该过程用于供高速缓存服务器以将客户机应用未来可能请求的内容进行高速缓存。在一个实施例中,流程图300可由图2的高速缓存服务器202来执行。在一实施例中,流程图300可被共享高速缓存存储的多个高速缓存服务器联合执行。此外,流程图300中的关于原始服务器的通信可用单个原始服务器或多个原始服务器来执行。基于以下有关流程图300和高速缓存服务器202的讨论,其他结构及操作的实施例对于相关领域的技术人员将是显而易见的。
流程图300开始于步骤302。在步骤302,从用户设备中的客户机应用接收对所需内容的请求,该请求指示可能随后被所述客户机应用请求的与所需内容相关的附加内容。例如,如图2所示,高速缓存服务器202可从用户设备106a的客户机应用204接收第一所需内容请求210。第一所需内容请求210是对所需内容的请求,所需内容诸如用户使用客户机应用204正在查看的地图的地图图块、用户使用客户机应用204正在查看的一系列图像中的一图像、用户使用客户机应用204正在观看的视频对象(例如视频文件)的一视频帧、用户使用客户机应用204正在播放的音频对象(例如音频文件)的一音频帧、用户使用客户机应用204正在查看的网页的内容项,和/或本文别处讨论的或以其它方式已知的其它内容。
此外,第一所需内容请求210包括指示可能随后被客户机应用204请求的与所需内容相关的附加内容。在一实施例中,客户机应用204的附加内容预测器208预测可能随后被客户机应用204请求的与所需内容相关的附加内容。例如,所预测的附加内容可以是用户正在查看的地图的被预测为随后要被用户查看一个或多个附加地图图块、用户正在查看的一系列图像的被预测为随后要被用户查看一个或多个附加图像、用户正在观看的一视频对象的被预测为随后要被用户观看一个或多个附加视频帧、用户正在播放的一音频频对象的被预测为随后要被播放一个或多个附加音频帧、被预测为随后要被查看的网页所引用的一个或多个附加内容项等等。所预测的附加内容的指示被客户机应用204包括在第一所需内容请求中。
注意第一所需内容请求210(及其响应)可被包括在客户机应用204和高速缓存服务器202之间的一个或多个通信连接(例如,TCP连接)中。可在客户机应用204和高速缓存服务器202之间形成任何数量的连接,并且每个连接可包括对所需内容的请求和/或可指示一个或多个所预测的附加内容项。在一些情况中,所需内容可能已经被高速缓存在高速缓存服务器202处,而所预测的未来内容还没有被高速缓存。在这样的情况中,高速缓存服务器202可仅仅向原始服务器请求所预测的未来内容(即,不需要向原始服务器请求已经被高速缓存在高速缓存服务器202处的所需内容)。
返回图3,在步骤304,对至少所指示的附加内容的请求被发送到原始服务器。例如,如图2所示,高速缓存服务器202可发送指示在第一所需内容请求210中所指示的附加内容的服务器请求212。服务器请求212由原始服务器102接收。如果所需内容尚未被高速缓存服务器202所高速缓存,则高速缓存服务器202可以可选地向原始服务器102发送对第一所需内容请求210中指示的所需内容的请求。在一实施例中,服务器请求212可包括对所预测的附加内容的请求和对所需内容的请求两者。
在步骤306,从原始服务器接收附加内容。例如,响应于服务器请求212,原始服务器102可发送包括所需内容(如果被请求的话)的服务器响应214。例如,原始服务器102可访问与原始服务器102相关联的存储中的所需内容。高速缓存服务器202从原始服务器102接收服务器响应214。此外,原始服务器102可访问与原始服务器102相关联的存储中的所预测的附加内容,并可以在服务器响应214或分开的响应中将所预测的附加内容发送到高速缓存服务器202。
在步骤308,所需内容被发送到用户设备处的客户机应用。例如,如图2所示,高速缓存服务器202可以在第一所需内容响应216中将所请求的所需内容发送到客户机应用204。
在步骤310,附加内容被高速缓存。例如,如图2所示,高速缓存服务器202可包括存储222,并且从原始服务器102在服务器响应214中接收到的所预测的附加内容可被高速缓存在存储222中作为已高速缓存的内容224。存储222可包括用以高速缓存内容的任何类型的存储机制中的一个或多个,包括(例如,在硬盘驱动器中的)磁盘、(例如,在光盘驱动器中的)光盘、(例如,在磁带驱动器中的)磁带、诸如RAM(随机存取存储器)设备等存储器设备,和/或任何其他合适类型的存储介质。此外,在一实施例中,存储222可被共享于多个高速缓存服务器之中。
根据流程图300,客户机应用已经通知CDN未来可能被需要的附加内容的预测,且所预测的附加内容被预高速缓存在CDN中(例如,在CDN的高速缓存服务器402中)。该预高速缓存增加了实际随后请求的内容的高速缓存命中率,因此总体改善了终端用户的体验。注意到全部预高速缓存将不一定被使用,且所预高速缓存的请求可以可选地被区分为优先级在常规CDN内容请求之下。以下进一步描述这样的优先级区分的示例实施例。预高速缓存的益处是更好地利用(存在的)空余容量以改善总体用户体验。优先级区分的使用(例如可能性指示符)有助于优化预高速缓存。
例如,图4示出了根据一示例实施例的提供用于向客户机应用提供先前已高速缓存的内容的过程的流程图400。例如,在一实施例中,流程图400可跟随图3的流程图300。以下参考图2描述流程图400。
流程图400开始于步骤402。在步骤402,从客户机应用接收包括对附加内容的请求的第二请求。例如,如图2所示,高速缓存服务器202可从用户设备106a的客户机应用204接收第二所需内容请求218。第二所需内容请求218是客户机应用204对内容(例如,地图图块、图像、视频、音频、网页等)的请求,该内容先前被预测为在未来潜在地被客户机应用204请求并被指示在第一所需内容请求210(或其它先前所需内容请求)中。
在步骤404,已高速缓存的附加内容被发送到用户设备处的客户机应用。在一实施例中,高速缓存服务器202可分析第二所需内容请求218以确定其中被请求的任何内容是否已经被高速缓存在高速缓存服务器202处(例如,在存储222中)。例如,在一实施例中,高速缓存服务器202可访问已高速缓存内容映射或将内容标识符(例如,标识号,诸如散列值等)映射到高速缓存在存储222中的内容的其它数据结构。高速缓存服务器202可将在对所需内容的第二所需内容请求218中接收到的内容标识符与已高速缓存的内容映射中的内容标识符进行比较,以确定所需内容是否已经被高速缓存。如果所需内容的内容标识符在已高速缓存的内容映射中被找到,则所需内容已经被高速缓存在高速缓存服务器202处。在此情况中,高速缓存服务器202可访问已高速缓存在存储222中的内容(例如,作为已高速缓存内容224),并可在已高速缓存内容响应220的发送中将该已高速缓存内容提供给客户机应用204。
在第二所需内容请求218中指示的所需内容还未被高速缓存在高速缓存服务器202处的情况中,高速缓存服务器202可向原始服务器102请求所需内容,如前面结合(图3)流程图300的步骤304和306所描述的。此外,第二所需内容请求218可以可选地以类似于第一所需内容请求210的方式,指示由附加内容预测器208预测的潜在地随后被需要的另外的附加内容。在此情况中,高速缓存服务器202可以以类似于上面结合流程图300的步骤304、306和310的描述的方式,向原始服务器102请求所指示的另外的附加内容,并可将该所指示的另外的附加内容高速缓存在存储222中用于随后的内容请求。
客户机应用和高速缓存服务器的示例实施例在后续子章节中描述。
A、示例客户机应用实施例
如上所描述的,在一实施例中,客户机应用(例如客户机应用204)可预测未来要被访问的内容,且所预测的内容可被高速缓存在高速缓存服务器处用于更快的响应。例如,图5根据一示例实施例示出了流程图500,它提供了用于供客户机应用请求并接收所需内容并指示未来可能被请求的内容以高速缓存的过程。在一个实施例中,流程图500可由图2的客户机应用204来执行。流程图500参考图6来描述。图6示出了包括客户机应用204的示例实施例的用户设备600的框图。如图6所示,客户机应用204包括通信接口602和附加内容预测器208,而通信接口602包括请求格式化器604。基于关于流程图500和图6的客户机应用204的以下讨论,进一步的结构和操作实施例对相关领域技术人员是显而易见的。
流程图500开始于步骤502。在步骤502,生成对所需内容的第一请求,它指示随后可能被客户机应用请求的与所需内容相关的附加内容。例如,如图6所示,客户机应用204可生成第一所需内容请求210,如上所述,该请求是对所需内容的请求。此外,如上所述,第一所需内容请求210包括对可能随后被客户机应用204请求的与所需内容相关的附加内容的指示。
在一实施例中,客户机应用204的附加内容预测器208预测可能随后被客户机应用204请求的与所需内容相关的附加内容。例如,如图6所示,附加内容预测器208可接收所需内容指示606。所需内容指示606可在客户机应用204内部生成和/或可被用户输入到由客户机应用204提供的用户界面。所需内容指示606指示需要被显示、播放,或以其他方式交互的内容。例如,所需内容指示606可(例如,通过URL,文件名等)指示地图图块、视频帧、音频帧、图像、网页等中的一个或多个。附加内容预测器208可基于由所需内容指示606指示的所需内容来预测附加内容,并可将所预测的附加内容输出为所预测附加内容指示608。
例如,当所需内容指示606将所查看的地图的一图块指示为所需内容时,附加内容预测器208可预测该地图的随后要被用户查看的一个或多个附加的地图图块。在这样的情况中,附加内容预测器208可生成所预测的附加内容指示608以指示与所指示的地图图块在空间上相邻的一个或多个地图图块,所指示的地图图块内的地图图块(放大)、包括所指示的地图图块的地图图块(缩小),和/或地图的有可能随后被用户查看的其它地图图块。
在另一示例中,在所需内容指示606将一系列图像的一图像指示为所需内容的情况下,附加内容预测器208可将该一系列图像的一个或多个附加图像预测为随后要由用户查看,诸如该一系列图像的与所指示的图像(时间上或空间上)相邻的一个或多个后续图像(包括后续图像的全部余下部分)、所指示的图像的一部分的图像(例如放大图像)、包括整个所指示图像的图像(例如,缩小图像)。
在另一示例中,在所需内容指示606将视频的一视频帧指示为所需内容的情况下,附加内容预测器208可将该视频的一个或多个附加视频帧预测为随后要被用户查看的,诸如该视频的一个或多个后续视频帧(包括视频的全部余下部分)。
在又一示例中,在所需内容指示606将音频的一音频帧指示为所需内容的情况下,附加内容预测器208可将该音频的一个或多个附加音频帧预测为随后要被用户播放的,诸如该音频的一个或多个后续音频帧(包括音频的全部余下部分)。
在又一示例中,在所需内容指示606将一网页指示为所需内容的情况下,附加内容预测器208可将一个或多个附加网页或其它web对象(例如图像、视频、音频等)预测为随后要被用户查看的,诸如一个或多个网页或链接在所指示的网页内的其它web对象、包括所指示网页的web站点的一个或多个网页等。
如图6所示,通信接口602接收所需内容指示606和所预测的附加内容指示608。在一实施例中,请求格式化器604生成一个或多个请求来请求所需内容指示606所指示的所需内容以及所预测附加内容指示608所指示的所预测的附加内容。通信接口602被配置来将由请求格式化器604生成的请求作为第一所需内容请求210从客户机应用204发送。在各实施例中,请求格式化器604可生成请求以具有特定通信技术所需的任何格式。
例如,在一实施例中,请求格式化器604可以以HTTP(超文本传输协议)请求消息的形式来生成请求。在这样的实施例中,HTTP请求消息可被配置来请求所需内容,并且所预测的附加内容可被以任何合适的形式指示在HTTP请求消息中,诸如在头部被指示。例如,示例HTTP请求消息的部分示为如下:
GET/images/logo.png HTTP/1.1
...
HINTS:<URL1>=20;<URL2>=60
...
在此示例中,HTTP请求消息包括向服务器请求web对象“/images/logo.png”作为所需内容的请求行。此外,该示例HTTP请求消息包括HTTP头部“HINTS”,它指示两个URL——URL1和URL2——作为所预测的附加内容。在此示例中,“URL1”和“URL2”的每一个可用对对应预测附加内容(例如http://tv.msn.com/tv/article.aspx?news=xyz等)的完整URL来替代在“HINTS”头部中。尽管在上述示例头部中示出两个URL,所预测的附加内容的任何数量的项可被URL或其它标识符以此方式指示在头部中。
因此,在一实施例中,请求格式化器604可(例如使用“GET”指令)生成指示所需内容以及在头部中指示所预测附加内容(例如所预测的附加内容的“HINTS”或其它预定类型的头部)的HTTP请求消息。在其它实施例中,所需内容和所预测附加内容可被请求格式化器604以其它方式指示在请求中。注意,如上面示例所示那样,单个“HINTS”头部可存在于HTTP请求消息中,或者可存在多个“HINTS”头部。再进一步,在一示例中,HTTP请求消息可指示所预测的附加内容而不指示任何所需内容(即,仅仅指定/请求所预测的附加内容)。在这样的HTTP请求消息中,“GET”指令可被用来指定所预测的附加内容,且“HINTS”或其它头部可不被使用,或可存在向高速缓存服务器指示所请求的内容要被高速缓存而尚不返回给客户机的头部(例如“CACHEONLY”头部)。
通信接口602可将第一所需内容请求210发送到高速缓存服务器。在各实施例中,通信接口602可被配置以在HTTP消息中发送第一所需内容请求,和/或可被配置来以能够被相关领域的技术人员所知的其它方式来发送请求。
返回图5,在步骤504中,从高速缓存服务器接收所需内容,该高速缓存服务器响应于对所需内容的第一请求从原始服务器检索所需内容。例如,如图6所示,通信接口602可响应于第一所需内容请求210从高速缓存服务器接收第一所需内容响应216。第一所需内容响应216包括请求210中请求的所需内容。客户机应用204可显示、播放,和/或以其他方式允许用户设备600处的用户与所接收的所需内容进行交互。
在步骤506,生成对附加内容的第二请求。例如,如图6所示,客户机应用204可生成第二所需内容请求218。如上所述,第二所需内容请求218是客户机应用204对内容(例如地图图块、图像、视频、音频、网页等)的请求,该内容先前被预测为可能随后被客户机应用204请求并且在第一所需内容请求210中被如此地指示。第二所需内容请求218可被以与第一所需内容请求210相类似的方式生成。例如,附加内容预测器208可接收第二所需内容指示606,其指示需要被显示、播放,或以其它方式交互的内容。附加内容预测器208可基于由第二所需内容指示606指示的所需内容来可选地预测附加内容,并可将所预测的附加内容输出为第二所预测附加内容指示608。通信接口602接收第二所需内容指示606并可选地接收第二所预测附加内容指示608。在一实施例中,请求格式化器604生成对第二所需内容的请求,并将该第二所预测附加内容可选地包括在所生成的请求中。通信接口602被配置来从客户机应用204发送请求作为第二所需内容请求218。
在步骤508,从高速缓存服务器接收附加内容,该高速缓存服务器响应于对所需内容的第一请求从原始服务器检索了该附加内容并将该附加内容高速缓存。例如,如图6所示,通信接口602可接收已高速缓存的内容响应220,其包括来自高速缓存服务器的已高速缓存内容作为第二所需内容请求218中指示的所需内容。高速缓存服务器先前从原始服务器获得了所需内容并且将所需内容高速缓存以备它可能随后被请求。
如上所述,对用于高速缓存的内容的请求可以可选地被区分为优先级在普通CDN内容请求之下。以此方式,实际正被请求的内容可在仅仅正被请求用于高速缓存目的的内容之前被请求。同样,更大可能实际被请求的正被请求用于高速缓存目的的内容,可在更小可能实际被请求的正被请求用于高速缓存目的的内容之前被高速缓存。
例如,图7示出了根据一示例实施例的,包括附加内容优先级区分器702的附加内容预测器208的框图。附加内容优先级区分器702被配置来分析所预测的附加内容以确定其有多大可能实际随后被客户机应用请求。例如,在一实施例中,附加内容优先级区分器702可根据图8所示的步骤802操作。在步骤802中,生成可能性指示,指示附加内容可随后被客户机应用请求的可能性。在一实施例中,对每个所预测的附加内容项,附加内容优先级区分器702可生成对应的可能性指示,指示附加内容可随后被客户机应用204请求的可能性。所生成的可能性指示可与对应的所预测的附加内容项相关联,并被包括在发送到高速缓存服务器的所需内容请求中。高速缓存服务器可使用可能性指示来将对所预测附加内容项的高速缓存相对于其它内容区分优先级。此外,高速缓存服务器可在请求所预测的内容时将可能性指示发送到原始服务器,使得原始服务器可将向高速缓存服务器提供所预测的内容区分优先级。
附加内容优先级区分器702可以以任何方式生成可能性指示,包括基于正被查看的内容和/或基于用户行为。例如,可为不同内容类型不同地生成可能性指示(例如相对于地图图块将更高的可能性指示值分配给视频帧等)。在另一实施例中,可由附加内容优先级区分器702基于对实际被请求的内容的(例如时间上和/空间上)的邻近度来为所预测的附加内容不同地生成可能性指示。例如,在地图示例中,相对于被一个或多个中间地图图块从正被查看的地图图块分开的地图图块,可将更大的可能性指示值分配给紧邻当前正被查看的地图图块的地图图块。可向视频流的紧接着的下一个视频帧分配具有相对视频流的后面的视频帧(例如视频流中时间上和定位上后面的视频帧)高的可能性指示值。依赖于实际实现,图像流的图像和/或音频流的音频帧可被类似地和/或不同地对待。在网页中,位于接近网页的顶部的内容项(例如URL)可相对于位于该网页的底部的内容项被分配更高的可能性指示值。在各实施例中,根据特定实现的需要,可能性指示可以以各种方式生成,并可以具有任何合适的值和值的范围(例如,数字范围、文本范围(例如,“高”、“中”、“低”等))。考虑到用户行为,当用户正在特定方向上平扫地图时,该方向上的地图图块未来被请求的可能性高于其它图块的可能性,并因此可被分配更高可能性指示。当用户快进视频或音频时,“下一个”帧可能是前面的多个帧,作为流中前面的多个帧的帧可被分配具有相对于更紧邻的帧更高的可能性指示值。
例如,在上面所示的示例HTTP消息中,已经为URL1生成了具有值20的可能性指示,并且已经为URL2生成了具有值60的可能性指示。在这样的示例中,可能性指示可以具有范围为1-100的值,较低的可能性值意味着对应的所预测的附加内容项具有未来被客户机应用所请求的较低的可能性,较高的可能性值意味着对应的所预测的附加内容项具有未来被客户机应用所请求的较高的可能性。如此,在此示例中相对于URL1,URL2具有未来被客户机应用请求的更高可能性,因此在URL1之前被高速缓存。
B、示例高速缓存服务器实施例
图9示出根据一示例实施例的高速缓存服务器902的框图。高速缓存服务器902是图2所示出的高速缓存服务器202的示例。如图2所示,高速缓存服务器902包括内容检索器模块904、内容请求解析器906、内容提供者模块908,以及存储222。高速缓存服务器902可以以各种方式预高速缓存所预测的未来内容。例如,在各实施例中,高速缓存服务器902可执行流程图300和400。
例如,内容请求解析器906可执行流程图300的步骤302,在那儿从用户设备中的客户机应用接收对所需内容的请求,该请求指示可能随后被客户机应用请求的与所需内容相关的附加内容。内容请求解析器906可接收并解析第一所需内容请求210以标识任何所需内容和任何所预测附加内容。内容请求解析器906将第一已标识所需内容和所预测附加内容912发送到内容检索器模块904。
内容检索器模块904可执行流程图300的步骤304,在那儿对所指示的附加内容的请求被发送到原始服务器。如图9所示,内容检索器模块904可将服务器请求212发送到原始服务器,其指示所预测的附加内容并可指示所需内容(如果尚未被高速缓存)。内容检索器模块904可将对所预测的附加内容的请求和对所需内容的请求两者包括在服务器请求212中,或在分开的通信中发送它们。
内容检索器模块904可执行流程图300的步骤306,在那儿从原始服务器接收所需内容和附加内容。内容检索器模块904可从原始服务器接收服务器响应214,包括所需内容(如果被请求)和所预测的附加内容,或可在分开的通信中接收所需内容和所预测的附加内容。
内容提供者模块908执行流程图300的步骤308,在那儿所需内容被发送到用户设备处的客户机应用。如图9所示,内容检索器模块904可发送所检索的所需内容914,包括在服务器响应214中从原始服务器接收的所需内容。内容提供者模块908可接收所检索的所需内容914,并可在第一所需内容响应216中将所需内容发送到客户机应用。
内容检索器模块904可执行流程图300的步骤310,在那儿高速缓存附加内容。如图9所示,内容检索器模块904可将所预测的附加内容高速缓存在存储222中作为已高速缓存内容224。
内容请求解析器906可执行(图4)流程图400的步骤402,在那儿从客户机应用接收第二请求,包括对附加内容的请求。如图9所示,内容请求解析器906可从客户机应用接收第二所需内容请求218。内容请求解析器906可接收并解析第二所需内容请求218以标识任何所需内容和任何所预测附加内容。内容请求解析器906将第二已标识所需内容和所预测附加内容916发送到内容检索器模块904。在图9所示的示例中,第二所标识的所需内容和所预测的附加内容916将第一所标识的所需内容的所预测的附加内容和所预测的附加内容912包括为所需内容。
内容检索器模块904和内容提供者模块908可执行流程图400的步骤404,在那儿已高速缓存的内容被提供给用户设备处的客户机应用。内容检索器模块904可分析第二所标识所需内容和所预测附加内容916以确定是否其中请求的任何内容已经被高速缓存在存储222中。例如,在一实施例中,内容检索器模块904可访问已高速缓存的内容映射或将内容标识符映射到高速缓存在存储222中的内容的上述其它数据结构。如果内容检索器模块904确定所需内容已被高速缓存在存储222中,则内容检索器模块904可访问存储222中的已高速缓存的内容(例如,如已高速缓存内容224),并且可向内容提供者模块908提供已高速缓存的内容作为已高速缓存内容918。内容提供者模块908可在已高速缓存内容响应220中将已高速缓存内容提供给客户机应用。
在第二所标识的所需内容和所预测附加内容916中指示的所需内容尚未被高速缓存在存储222的情况中,内容检索器模块904可如上所述向原始服务器请求所需内容。此外,第二所标识的所需内容和所预测的附加内容916可以可选地指示被预测为随后被请求的其它附加内容。在这样的情况中,内容检索器模块904可向原始服务器请求所指示的其它附加内容,并可将所指示的其它附加内容高速缓存在存储222中用于随后的内容请求,如上所述。
注意,相关领域技术人员应该了解,内容检索器模块904、内容请求解析器906,和内容提供者模块908可被配置来生成请求并根据任何合适的通信协议和格式(包括HTTP消息等)接收响应等。
此外,如上所述,对用于高速缓存的内容的请求可以相对于普通CDN内容请求可选地被区分优先级。例如,图10示出了根据示例实施例图9的内容检索器模块904的框图,包括请求优先级区分器1002。请求优先级区分器1002被配置来区分用于高速缓存的内容的请求的优先级。例如,在一实施例中,请求优先级区分器1002可根据图11所示的步骤1102操作。在步骤1102,基于请求中所接收的可能性指示将所指示的附加内容的请求到原始服务器的发送进行优先级区分。例如,在一实施例中,对于每个所预测的附加内容项,请求优先级区分器1002可基于从客户机应用204接收的对应的可能性指示来相对于其它内容将请求所预测的附加内容项进行优先级区分。
例如,在一实施例中,请求优先级区分器1002可生成并维护优先级列表或列出所预测的附加内容(例如通过标识符)和对应可能性指示的其它数据结构。请求优先级区分器1002可按可能性指示排序该列表,或可以以其他方式构成该列表,使得内容检索器模块904以区分了优先级的方式根据可能性指示请求所预测的附加内容。可针对单个客户机应用或多个客户机应用来列出所预测的附加内容和可能性指示。因此,以此方式,内容检索器模块904可将单个客户机应用或多个客户机应用的向原始服务器的请求进行优先级区分。
例如,关于上面所示示例HTTP消息,请求优先级区分器1002可维持(例如存储并按需更新)包括URL1和URL2的所预测的附加内容及它们的对应可能性指示的列表。因为URL2具有值为60的可能性指示,所以URL2被区分优先级为高于具有可能性指示值20的URL1。以此,在此示例中,根据请求优先级区分器1002所维护的优先级,在从原始服务器检索URL1的内容之前,内容检索器模块904从原始服务器检索URL2的内容。
此外,在各实施例中,内容检索器模块904可使用附加和/或替换信息诸如,可用存储容量、可用网络容量、可用处理(例如CPU)容量等,来对内容的请求区分优先级。再则,在一实施例中,在请求所预测的未来内容时,高速缓存服务器可将可能性指示发送到原始服务器,使得原始服务器可相对于其它内容将把所预测的内容到高速缓存服务器的发送区分优先级(例如,将对所预测的未来内容的请求区分优先级为在对立刻所需内容之下)。如此,在一实施例中,原始服务器可包括类似请求优先级区分器1002的请求优先级区分器,它基于可能性指示和/或附加/替换信息将所预测内容到高速缓存服务器的发送进行优先级区分。
III.示例计算设备实施例
客户机应用110a-110d、客户机应用204、附加内容预测器208、通信接口602、请求格式化器604、附加内容优先级区分器702、内容检索器模块904、内容请求解析器906、内容提供者模块908、请求优先级区分器1002、流程图300、流程图400、流程图500、步骤802、和步骤1102可被实现在硬件、软件、固件,或其任何组合中。例如,客户机应用110a-110d、客户机应用204、附加内容预测器208、通信接口602、请求格式化器604、附加内容优先级区分器702、内容检索器模块904、内容请求解析器906、内容提供者模块908、请求优先级区分器1002、流程图300、流程图400、流程图500、步骤802、和步骤1102可被实现为配置用于在一个或多个处理器中执行的计算机程序代码/指令/逻辑。另选地,客户机应用110a-110d、客户机应用204、附加内容预测器208、通信接口602、请求格式化器604、附加内容优先级区分器702、内容检索器模块904、内容请求解析器906、内容提供者模块908、请求优先级区分器1002、流程图300、流程图400、流程图500、步骤802、和步骤1102可被实现为硬件逻辑/电子电路。例如,在一实施例中,客户机应用110a-110d、客户机应用204、附加内容预测器208、通信接口602、请求格式化器604、附加内容优先级区分器702、内容检索器模块904、内容请求解析器906、内容提供者模块908、请求优先级区分器1002、流程图300、流程图400、流程图500、步骤802、和步骤1102的一个或多个可被一起实现在片上***(SoC)中。SoC可包括集成电路芯片,该集成电路芯片包括以下一个或多个:处理器(如微控制器、微处理器、数字信号处理器(DSP)等等)、存储器、一个或多个通信接口、和/或用于执行其功能的进一步的电路和/或嵌入的固件。
图12描绘了其中可以实现本发明的各实施例的计算机1200的示例性实现。例如,原始服务器102、高速缓存服务器104a和104b、用户设备106a-106d、高速缓存服务器202、用户设备600,和高速缓存服务器902的每一个可被实现在包括计算机1200的一个或多个特征和/或可替换特征的类似计算机1200的一个或多个计算机***中。计算机1200可以是例如常规个人计算机、移动计算机、服务器或工作站形式的通用计算设备,或者计算机1200可以是专用计算设备。此处所提供的对计算机1200的描述只是为了说明,并不是限制性的。如相关领域的技术人员所知道的,本发明的各实施例可以在其他类型的计算机***中实现。
如图12所示,计算机1200包括一个或多个处理器1202、***存储器1204,以及将包括***存储器1204的各种***组件耦合到处理器1202的总线1206。总线1206表示若干类型的总线结构中的任何一种总线结构的一个或多个,包括存储器总线或存储器控制器、***总线、加速图形端口,以及处理器或使用各种总线体系结构中的任何一种的局部总线。***存储器1204包括只读存储器(ROM)1208和随机存取存储器(RAM)1210。基本输入/输出***1212(BIOS)储存在ROM 1208中。
计算机1200还具有一个或多个以下驱动器:用于读写硬盘的硬盘驱动器1214、用于读或写可移动磁盘1218的磁盘驱动器1216、以及用于读或写诸如CD ROM、DVD ROM或其他光介质之类的可移动光盘1222的光盘驱动器1220。硬盘驱动器1214、磁盘驱动器1216,以及光驱动器1220分别通过硬盘驱动器接口1224、磁盘驱动器接口1226,以及光学驱动器接口1228连接到总线1206。驱动器以及它们相关联的计算机可读介质为计算机提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失存储器。虽然描述了硬盘、可移动磁盘和可移动光盘,但是,也可以使用诸如闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等等之类的其他类型的计算机可读存储介质来储存数据。
数个程序模块可被储存在硬盘、磁盘、光盘、ROM或RAM上。这些程序包括操作***1230、一个或多个应用程序1232、其他程序模块1234以及程序数据1236。应用程序1232或程序模块1234可包括,例如,用于实现客户机应用110a-110d、客户机应用204、附加内容预测器208、通信接口602、请求格式化器604、附加内容优先级区分器702、内容检索模块904、内容请求解析器906、内容提供者模块908、请求优先级区分器1002、流程图300、流程图400、流程图500、步骤802,和/或步骤1102(包括流程图300、400、500的任何步骤),和或此处描述的其它实施例的计算机程序逻辑(例如计算机程序代码)。
用户可以通过诸如键盘1238和定点设备1240之类的输入设备向计算机1200中输入命令和信息。其他输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些及其他输入设备常常通过耦合到总线1206的串行端口接口1242连接到处理器1202,但是,也可以通过其他接口,诸如并行端口、游戏端口、通用串行总线(USB)端口,来进行连接。
显示设备1244也通过诸如视频适配器1246之类的接口连接到总线1206。除了监视器之外,计算机1200还可包括其他***输出设备(未示出),如扬声器和打印机。
计算机1200通过适配器或网络接口1250、调制解调器1252、或用于通过网络建立通信的其他手段连接到网络1248(例如,因特网)。可以是内置的或外置的调制解调器1252可以经由串行端口接口1242连接到总线1206,如图12所示,或者可以使用包括并行接口的另一接口类型连接到总线1206。
如此处所用的,术语“计算机程序介质”、“计算机可读介质”以及“计算机可读存储介质”被用于泛指介质,诸如与硬盘驱动器1214相关联的硬盘、可移动磁盘1218、可移动光盘1222,以及其他介质,诸如闪存卡、数字视频盘、随机读取存储器(RAM)、只读存储器(ROM)等。这些计算机可读存储介质与通信介质(不包括通信介质)相区别且不重叠。通信介质通常在诸如载波等已调制数据信号中承载计算机可读指令、数据结构、程序模块或者其它数据。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括无线介质,如声学、RF、红外和其它无线介质。实施例也针对这些通信介质。
如上文所指示的,计算机程序和模块(包括应用程序1232及其他程序模块1234)可被储存在硬盘、磁盘、光盘、ROM或RAM上。这样的计算机程序也可以通过网络接口1250、串行端口接口1242或任何其他接口类型来接收。这样的计算机程序,当由应用执行或加载时,使得计算机1200能实现此处所讨论的本发明的特征。相应地,这样的计算机程序表示计算机1200的控制器。
本发明还涉及包括储存在任何计算机可使用介质上的软件的计算机程序产品。这样的软件,当在一个或多个数据处理设备中执行时,使数据处理设备如此处所描述的那样操作。本发明的各实施例使用现在已知的或将来已知的任何计算机可使用或计算机可读介质。计算机可读介质的示例包括,但不仅限于,诸如RAM、硬盘驱动器、软盘、CD ROM、DVD ROM、zip磁盘、磁带、磁存储设备、光存储设备、MEM(存储器)、基于纳米技术的存储设备等等之类的存储设备。
VI.结论
尽管上文描述了本发明的各实施例,但是,应该理解,它们只是作为示例来呈现的,而不作为限制。那些精通有关技术的人员将理解,在不偏离如所附权利要求书所定义的本发明的精神和范围的情况下,可以在形式和细节方面进行各种修改。因此,本发明的范围不应该受到上述示例性实施例的任一个的限制,而只应根据下面的权利要求和它们的等效内容进行定义。

Claims (10)

1.一种高速缓存服务器中的方法,包括:
从用户设备中的客户机应用接收对所需内容的请求以及可能随后被所述客户机应用请求的与所需内容相关的附加内容的指示;
向原始服务器发送对至少所指示的附加内容的请求;
从所述原始服务器接收所述附加内容;
将所需内容发送到所述用户设备处的所述客户机应用;以及
高速缓存所述附加内容。
2.如权利要求1所述的方法,其特征在于,还包括:
从所述客户机应用接收第二请求,所述第二请求包括对所述附加内容的请求;以及
将已高速缓存的附加内容提供给所述用户设备处的所述客户机应用。
3.如权利要求2所述的方法,其特征在于,所述第二请求指示可能随后被所述客户机应用请求的与所述第一附加内容相关的第二附加内容,所述方法还包括:
将对所指示的第二附加内容的请求发送到所述原始服务器;
从所述原始服务器接收所述第二附加内容;以及
高速缓存所述第二附加内容。
4.如权利要求1所述的方法,其特征在于,附加内容的所述指示包括指示所述附加内容可能随后被所述客户机应用请求的可能性的可能性指示;
其中所述向原始服务器发送对至少所指示的附加内容的请求包括:
基于所述可能性指示、可用存储容量、可用网络容量,或可用处理容量之一,将向所述原始服务器发送对所指示的附加内容的请求进行优先级区分。
5.如权利要求1所述的方法,其特征在于,从所述客户机应用接收的对所需内容的请求是在头部中指示所述附加内容的HTTP超文本传输协议消息。
6.如权利要求1所述的方法,其特征在于,所述所需内容包括第一图像,而所述附加内容是第二图像,所述第二图像空间上与所述第一图像相邻、在时间上与所述第一图像相邻、是所述第一图像的一部分,或包括所述第一图像。
7.如权利要求1所述的方法,其特征在于,对所需内容的所述请求是与附加内容的所述指示分开地从所述客户机应用接收的。
8.一种高速缓存服务器,包括:
内容请求解析器,所述内容请求解析器从用户设备中的客户机应用接收对所需内容的请求以及可能随后被所述客户机应用请求的与所需内容相关的附加内容的指示;
内容检索器模块,所述内容检索器模块向原始服务器发送对至少所指示的附加内容的请求、从所述原始服务器接收所述附加内容,并将所述附加内容高速缓存在存储中;以及
内容提供者模块,所述内容提供者模块将所需内容发送到所述用户设备处的所述客户机应用。
9.如权利要求8所述的高速缓存服务器,其特征在于,所述内容请求解析器从所述客户机应用接收第二请求,所述第二请求包括对所述附加内容的请求,并且所述内容提供者模块向所述客户机应用提供经高速缓存的附加内容。
10.一种计算机程序产品,包括其上记录有计算机程序逻辑的计算机可读介质,包括:
用于使得处理器能够执行权利要求1-7中任一项的计算机程序逻辑装置。
CN201210546718.1A 2011-12-16 2012-12-14 一种高速缓存服务器中的方法、服务器和*** Active CN103024045B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/328,444 US9294582B2 (en) 2011-12-16 2011-12-16 Application-driven CDN pre-caching
US13/328,444 2011-12-16

Publications (2)

Publication Number Publication Date
CN103024045A true CN103024045A (zh) 2013-04-03
CN103024045B CN103024045B (zh) 2015-12-02

Family

ID=47972169

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210546718.1A Active CN103024045B (zh) 2011-12-16 2012-12-14 一种高速缓存服务器中的方法、服务器和***

Country Status (13)

Country Link
US (2) US9294582B2 (zh)
EP (1) EP2791815B1 (zh)
JP (1) JP6073366B2 (zh)
KR (1) KR101997305B1 (zh)
CN (1) CN103024045B (zh)
AU (1) AU2012352651B2 (zh)
BR (1) BR112014014404A2 (zh)
CA (1) CA2857330A1 (zh)
ES (1) ES2687767T3 (zh)
HK (1) HK1181930A1 (zh)
MX (1) MX346689B (zh)
RU (1) RU2632410C2 (zh)
WO (1) WO2013090126A1 (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104022923A (zh) * 2014-06-27 2014-09-03 北京奇艺世纪科技有限公司 一种网络接口装置、***及网络数据访问方法
CN104052808A (zh) * 2014-06-13 2014-09-17 乐视网信息技术(北京)股份有限公司 基于cdn的数字内容获取方法及***
WO2014166078A1 (zh) * 2013-04-10 2014-10-16 华为技术有限公司 数据发送处理方法及路由器
CN104954396A (zh) * 2014-03-25 2015-09-30 华为技术有限公司 资源下载的方法与资源下载的装置
CN105745905A (zh) * 2013-11-22 2016-07-06 阿尔卡特朗讯公司 在网络之内传输和存储内容
WO2017167302A1 (en) * 2016-03-31 2017-10-05 Jamdeo Canada Ltd. System and methods for content streaming with a content buffer
CN109359095A (zh) * 2018-09-11 2019-02-19 东华大学 一种大数据快速读取的dlk方法
CN109690531A (zh) * 2016-09-19 2019-04-26 电子湾有限公司 基于预测的即时搜索
CN112839111A (zh) * 2015-09-11 2021-05-25 亚马逊科技公司 边缘位置处的可定制的事件触发计算的***、方法和介质
US11895212B2 (en) 2015-09-11 2024-02-06 Amazon Technologies, Inc. Read-only data store replication to edge locations

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222086B (zh) * 2011-05-18 2014-11-26 广州市动景计算机科技有限公司 基于移动终端的网页阅读方法、网页阅读装置及移动终端
US9294582B2 (en) 2011-12-16 2016-03-22 Microsoft Technology Licensing, Llc Application-driven CDN pre-caching
US9582603B1 (en) * 2012-02-27 2017-02-28 Amazon Technologies, Inc. Managing preloading of data on client systems
US9747386B1 (en) * 2012-08-10 2017-08-29 Amazon Technologies, Inc. User-perceived performance through browser hints
US20140244670A1 (en) * 2013-02-27 2014-08-28 Pavlov Media, Inc. Ontological evaluation and filtering of digital content
US10120350B2 (en) * 2013-03-11 2018-11-06 Fisher-Rosemount Systems, Inc. Background collection of diagnostic data from field instrumentation devices
GB2516115A (en) * 2013-07-12 2015-01-14 Canon Kk Methods and devices for exchanging data
KR102077495B1 (ko) * 2013-07-17 2020-02-14 한국전자통신연구원 웹 서버 및 웹 요구사항 예측을 이용한 웹 서버의 성능 향상 방법
US9983801B1 (en) * 2013-09-21 2018-05-29 Avago Technologies General Ip (Singapore) Pte. Ltd. Priority queueing for low latency storage networks
US9547598B1 (en) * 2013-09-21 2017-01-17 Avego Technologies General Ip (Singapore) Pte. Ltd. Cache prefill of cache memory for rapid start up of computer servers in computer networks
US10042768B1 (en) 2013-09-21 2018-08-07 Avago Technologies General Ip (Singapore) Pte. Ltd. Virtual machine migration
US9262541B2 (en) 2013-10-18 2016-02-16 Google Inc. Distance based search ranking demotion
US20160035007A1 (en) * 2014-07-30 2016-02-04 Kobo Inc. Using a user wishlist to automate the acquisition and rendering of a content item
US10506027B2 (en) * 2014-08-27 2019-12-10 Tensera Networks Ltd. Selecting a content delivery network
US10154072B2 (en) * 2014-09-17 2018-12-11 Microsoft Technology Licensing, Llc Intelligent streaming of media content
US9983959B2 (en) 2015-06-29 2018-05-29 Microsoft Technology Licensing, Llc Erasure coding of data within a group of storage units based on connection characteristics
JP2017058787A (ja) * 2015-09-14 2017-03-23 株式会社東芝 無線通信装置、通信装置、無線通信システム
US10613713B2 (en) * 2015-10-07 2020-04-07 Google Llc Integration of content in non-browser applications
US20170331914A1 (en) * 2016-05-16 2017-11-16 Aterlo Networks Inc. System and method for optimizing online video streaming to a user
CN106027642A (zh) * 2016-05-19 2016-10-12 乐视控股(北京)有限公司 用于确定cdn节点磁盘数量的方法及***
FR3053199A1 (fr) * 2016-06-27 2017-12-29 Orange Serveur de statistiques pour optimisation de requetes client-serveur
CN106506857A (zh) * 2016-11-30 2017-03-15 努比亚技术有限公司 一种业务定制方法、终端及服务器
WO2018111246A1 (en) * 2016-12-13 2018-06-21 Google Llc Systems and methods for prefetching content items
US10594771B2 (en) * 2017-02-09 2020-03-17 International Business Machines Corporation Distributed file transfer with high performance
EP3598697B1 (en) * 2017-04-14 2022-01-19 Huawei Technologies Co., Ltd. Content deployment method and distribution controller
US10645133B2 (en) * 2017-07-12 2020-05-05 Loon Llc Method and system for delivering content over transient access networks
FR3075541A1 (fr) * 2017-12-20 2019-06-21 Orange Procede de distribution d'un contenu dans un reseau de distribution de contenus, entite d'origine et entites de distribution correspondantes
US10771590B2 (en) * 2018-03-07 2020-09-08 Ciena Corporation Systems and methods for intelligent routing and content placement in information centric networks
US20200097412A1 (en) * 2018-09-26 2020-03-26 International Business Machines Corporation Predictive dynamic contextual cache loading
US11579763B2 (en) * 2019-01-15 2023-02-14 Fujifilm Medical Systems U.S.A., Inc. Smooth image scrolling with disk I/O activity optimization and enhancement to memory consumption
US11341097B2 (en) * 2019-10-16 2022-05-24 Microsoft Technology Licensing, Llc Prefetching based on historical use and real-time signals
US20210173888A1 (en) * 2019-12-08 2021-06-10 Akamai Technologies Inc. Proxy server caching of database content
US11451603B2 (en) * 2020-02-25 2022-09-20 Disney Enterprises, Inc. Selective pre-caching of media streams
US11544560B2 (en) 2020-04-10 2023-01-03 Microsoft Technology Licensing, Llc Prefetching and/or computing resource allocation based on predicting classification labels with temporal data
CN112182070B (zh) * 2020-10-13 2022-06-14 安徽极玩云科技有限公司 基于云计算的Elasticsearch查询管理***
CN115297095B (zh) * 2022-08-08 2024-03-08 上海哔哩哔哩科技有限公司 回源处理方法、装置、计算设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073867A1 (en) * 2002-06-20 2004-04-15 Kausik Balas Natarajan Precomputation of web documents
US20050198309A1 (en) * 2000-03-20 2005-09-08 Nec Corporation System and method for intelligent web content fetch and delivery of any whole and partial undelivered objects in ascending order of object size
CN101023627A (zh) * 2004-08-19 2007-08-22 诺基亚公司 为控制网络上多媒体数据的部署而对目录服务器数据进行高速缓存
US20080301300A1 (en) * 2007-06-01 2008-12-04 Microsoft Corporation Predictive asynchronous web pre-fetch
CN101809614A (zh) * 2007-10-01 2010-08-18 微软公司 受服务器控制的媒体内容分发

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991306A (en) 1996-08-26 1999-11-23 Microsoft Corporation Pull based, intelligent caching system and method for delivering data over a network
US6584498B2 (en) * 1996-09-13 2003-06-24 Planet Web, Inc. Dynamic preloading of web pages
US6038601A (en) * 1997-07-21 2000-03-14 Tibco, Inc. Method and apparatus for storing and delivering documents on the internet
RU2210871C2 (ru) * 1997-08-06 2003-08-20 Тэчйон, Инк. Распределенная система и способ предварительной выборки объектов
US6199154B1 (en) 1997-11-17 2001-03-06 Advanced Micro Devices, Inc. Selecting cache to fetch in multi-level cache system based on fetch address source and pre-fetching additional data to the cache for future access
US6173318B1 (en) * 1997-12-16 2001-01-09 Intel Corporation Method and apparatus for pre-fetching data for an application using a winsock client layered service provider and a transparent proxy
US6085226A (en) * 1998-01-15 2000-07-04 Microsoft Corporation Method and apparatus for utility-directed prefetching of web pages into local cache using continual computation and user models
US6959318B1 (en) * 1998-03-06 2005-10-25 Intel Corporation Method of proxy-assisted predictive pre-fetching with transcoding
SE514376C2 (sv) * 1998-09-24 2001-02-19 Mirror Image Internet Inc Ett internet-cachningssystem samt ett förfarande och anordning i ett sådant system
US6542964B1 (en) 1999-06-02 2003-04-01 Blue Coat Systems Cost-based optimization for content distribution using dynamic protocol selection and query resolution for cache server
US20020152305A1 (en) * 2000-03-03 2002-10-17 Jackson Gregory J. Systems and methods for resource utilization analysis in information management environments
US6701316B1 (en) 2000-04-07 2004-03-02 Nec Corporation Method and apparatus for intelligent network bandwidth and system resource utilization for web content fetch and refresh
US7113935B2 (en) * 2000-12-06 2006-09-26 Epicrealm Operating Inc. Method and system for adaptive prefetching
US7877463B2 (en) * 2001-04-10 2011-01-25 Citrix Systems, Inc. Method and systems for providing access to dynamic content via static pages
JP2002373109A (ja) * 2001-06-13 2002-12-26 Nec Corp データ先読みシステムおよび先読み方法
JP2003114824A (ja) * 2001-10-04 2003-04-18 Canon I-Tech Inc 分散処理システム
US7437438B2 (en) * 2001-12-27 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for energy efficient data prefetching
US7953820B2 (en) * 2002-09-11 2011-05-31 Hughes Network Systems, Llc Method and system for providing enhanced performance of web browsing
US20040088375A1 (en) * 2002-11-01 2004-05-06 Sethi Bhupinder S. Method for prefetching Web pages to improve response time networking
US7359395B2 (en) * 2003-06-16 2008-04-15 Packeteer, Inc. Pre-fetch communication systems and methods
US20050138143A1 (en) * 2003-12-23 2005-06-23 Thompson Blake A. Pre-fetching linked content
US20060294223A1 (en) * 2005-06-24 2006-12-28 Microsoft Corporation Pre-fetching and DNS resolution of hyperlinked content
US9385914B1 (en) 2006-04-06 2016-07-05 Versata Development Group, Inc. Application state client-side cache for a state-based client-server application
US7685255B2 (en) * 2006-04-24 2010-03-23 Blue Coat Systems, Inc. System and method for prefetching uncacheable embedded objects
US20080201332A1 (en) * 2007-02-20 2008-08-21 Souders Steven K System and method for preloading content on the basis of user context
US7941609B2 (en) * 2007-02-23 2011-05-10 Microsoft Corporation HTTP acceleration by prediction and pre-fetching
US8504775B2 (en) * 2007-03-12 2013-08-06 Citrix Systems, Inc Systems and methods of prefreshening cached objects based on user's current web page
US7757002B2 (en) * 2007-03-23 2010-07-13 Sophos Plc Method and systems for analyzing network content in a pre-fetching web proxy
US8156066B2 (en) 2008-04-09 2012-04-10 Level 3 Communications, Llc Rule-based content request handling
US11187541B2 (en) 2008-05-09 2021-11-30 Blackberry Limited Predictive downloading of map data
US7975025B1 (en) * 2008-07-08 2011-07-05 F5 Networks, Inc. Smart prefetching of data over a network
US9390167B2 (en) * 2010-07-29 2016-07-12 Soundhound, Inc. System and methods for continuous audio matching
US8103768B2 (en) 2009-04-14 2012-01-24 At&T Intellectual Property I, Lp Network aware forward caching
US20100281224A1 (en) * 2009-05-01 2010-11-04 International Buisness Machines Corporation Prefetching content from incoming messages
US8140646B2 (en) * 2009-06-04 2012-03-20 Microsoft Corporation Network application performance enhancement using speculative execution
US8886760B2 (en) * 2009-06-30 2014-11-11 Sandisk Technologies Inc. System and method of predictive data acquisition
US20110131341A1 (en) 2009-11-30 2011-06-02 Microsoft Corporation Selective content pre-caching
US8577961B2 (en) * 2010-01-28 2013-11-05 Qualcomm Innovation Center, Inc. Methods and apparatus for obtaining content with reduced access times
WO2011139305A1 (en) * 2010-05-04 2011-11-10 Azuki Systems, Inc. Method and apparatus for carrier controlled dynamic rate adaptation and client playout rate reduction
US8788762B2 (en) * 2010-09-30 2014-07-22 Nokia Corporation Methods and apparatuses for data resource provision
US20120233199A1 (en) * 2011-03-10 2012-09-13 Jenkins Jeffrey R Intelligent Web Caching
US8341245B1 (en) * 2011-09-26 2012-12-25 Google Inc. Content-facilitated speculative preparation and rendering
US9294582B2 (en) 2011-12-16 2016-03-22 Microsoft Technology Licensing, Llc Application-driven CDN pre-caching

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198309A1 (en) * 2000-03-20 2005-09-08 Nec Corporation System and method for intelligent web content fetch and delivery of any whole and partial undelivered objects in ascending order of object size
US20040073867A1 (en) * 2002-06-20 2004-04-15 Kausik Balas Natarajan Precomputation of web documents
CN101023627A (zh) * 2004-08-19 2007-08-22 诺基亚公司 为控制网络上多媒体数据的部署而对目录服务器数据进行高速缓存
US20080301300A1 (en) * 2007-06-01 2008-12-04 Microsoft Corporation Predictive asynchronous web pre-fetch
CN101809614A (zh) * 2007-10-01 2010-08-18 微软公司 受服务器控制的媒体内容分发

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10455039B2 (en) 2013-04-10 2019-10-22 Huawei Technologies Co., Ltd. Method and router for sending and processing data
WO2014166078A1 (zh) * 2013-04-10 2014-10-16 华为技术有限公司 数据发送处理方法及路由器
CN105745905A (zh) * 2013-11-22 2016-07-06 阿尔卡特朗讯公司 在网络之内传输和存储内容
CN104954396B (zh) * 2014-03-25 2018-09-07 华为技术有限公司 资源下载的方法与资源下载的装置
CN104954396A (zh) * 2014-03-25 2015-09-30 华为技术有限公司 资源下载的方法与资源下载的装置
CN104052808A (zh) * 2014-06-13 2014-09-17 乐视网信息技术(北京)股份有限公司 基于cdn的数字内容获取方法及***
CN104022923A (zh) * 2014-06-27 2014-09-03 北京奇艺世纪科技有限公司 一种网络接口装置、***及网络数据访问方法
CN112839111A (zh) * 2015-09-11 2021-05-25 亚马逊科技公司 边缘位置处的可定制的事件触发计算的***、方法和介质
CN112839111B (zh) * 2015-09-11 2024-02-02 亚马逊科技公司 边缘位置处的可定制的事件触发计算的***、方法和介质
US11895212B2 (en) 2015-09-11 2024-02-06 Amazon Technologies, Inc. Read-only data store replication to edge locations
WO2017167302A1 (en) * 2016-03-31 2017-10-05 Jamdeo Canada Ltd. System and methods for content streaming with a content buffer
US10116713B2 (en) 2016-03-31 2018-10-30 Jamdeo Canada, Ltd. System and methods for content streaming with a content buffer
CN109690531A (zh) * 2016-09-19 2019-04-26 电子湾有限公司 基于预测的即时搜索
CN109359095A (zh) * 2018-09-11 2019-02-19 东华大学 一种大数据快速读取的dlk方法
CN109359095B (zh) * 2018-09-11 2021-07-16 东华大学 一种大数据快速读取的dlk方法

Also Published As

Publication number Publication date
US9294582B2 (en) 2016-03-22
BR112014014404A2 (pt) 2017-06-13
MX2014007165A (es) 2014-08-29
US10182127B2 (en) 2019-01-15
CA2857330A1 (en) 2013-06-20
AU2012352651B2 (en) 2017-09-28
JP2015509229A (ja) 2015-03-26
US20160173639A1 (en) 2016-06-16
WO2013090126A1 (en) 2013-06-20
MX346689B (es) 2017-03-29
RU2014124150A (ru) 2015-12-20
CN103024045B (zh) 2015-12-02
EP2791815B1 (en) 2018-06-27
KR101997305B1 (ko) 2019-07-05
EP2791815A1 (en) 2014-10-22
ES2687767T3 (es) 2018-10-29
US20130159383A1 (en) 2013-06-20
RU2632410C2 (ru) 2017-10-04
EP2791815A4 (en) 2015-08-12
KR20140102220A (ko) 2014-08-21
AU2012352651A1 (en) 2014-07-03
HK1181930A1 (zh) 2013-11-15
JP6073366B2 (ja) 2017-02-01

Similar Documents

Publication Publication Date Title
CN103024045B (zh) 一种高速缓存服务器中的方法、服务器和***
JP2015509229A5 (zh)
US9785608B2 (en) Predictive, multi-layer caching architectures
US8745239B2 (en) Edge-based resource spin-up for cloud computing
CN107251525B (zh) 用于支持移动设备用户的预测内容预取服务的分布式服务器架构
CN105378713A (zh) 用于预渲染和预取内容的方法和***
US10013500B1 (en) Behavior based optimization for content presentation
US8806519B2 (en) Method to evaluate the geographic popularity of geographically located user-generated content items
US10277669B1 (en) Communication channel between device and CDN during playback
EP2874075A1 (en) Method and apparatus for pre-fetching remote content based on static and dynamic recommendations
CN103503369A (zh) 通过网络分析的内容的预测性布置
JP2016526230A (ja) ウェブ・ページのロードを最適化するためのコンピュータ・プログラム製品、システム、および方法
CN107105336A (zh) 数据处理方法及数据处理装置
JP2008217381A (ja) ウェブ・サーバならびにその動作制御方法および制御プログラム
CN109716731A (zh) 用于提供可靠和高效数据传送的***和方法
CN115250295A (zh) 一种媒体内容处理方法、装置、设备和存储介质
CN114925304A (zh) 一种信息访问方法、装置和***
KR20150011087A (ko) 컨텐츠 전송 서비스를 위한 분산 캐싱 관리 방법 및 이를 위한 중앙 관리 장치
KR20030041856A (ko) 정보 전송 및 수집 방법과 정보 전송 시스템 및컴퓨터-사용가능 운송 매체
KR20120016335A (ko) 오프라인 실행을 위한 웹 페이지 사전 캐싱 시스템 및 방법
KR101742385B1 (ko) 콘텐츠 프리페칭 방법 및 이를 수행하는 장치
KR20150010415A (ko) 분산 캐싱을 위한 컨텐츠 전송 서비스 방법 및 중계 장치
JP2005310058A (ja) 情報抽出装置、情報検索システム、情報検索端末、及び、情報検索方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1181930

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150805

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

Effective date of registration: 20150805

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant