CN107111637B - 内容传送框架中的缓存 - Google Patents

内容传送框架中的缓存 Download PDF

Info

Publication number
CN107111637B
CN107111637B CN201580068159.XA CN201580068159A CN107111637B CN 107111637 B CN107111637 B CN 107111637B CN 201580068159 A CN201580068159 A CN 201580068159A CN 107111637 B CN107111637 B CN 107111637B
Authority
CN
China
Prior art keywords
content
caching policy
caching
cached
cdn
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.)
Active
Application number
CN201580068159.XA
Other languages
English (en)
Other versions
CN107111637A (zh
Inventor
克里斯托福·牛顿
威廉·克劳德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Level 3 Communications LLC
Original Assignee
Level 3 Communications LLC
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 Level 3 Communications LLC filed Critical Level 3 Communications LLC
Publication of CN107111637A publication Critical patent/CN107111637A/zh
Application granted granted Critical
Publication of CN107111637B publication Critical patent/CN107111637B/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
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

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

Abstract

一种能够利用内容传送网络(CDN)操作的计算机实现的方法,其使用缓存策略的后期绑定;响应于对内容的请求,由CDN中的缓存节点确定内容是否在本地缓存。当确定所述内容在本地缓存时,则:确定与所述内容相关联的当前缓存策略;以及然后基于与所述内容相关联的所述当前缓存策略,确定提供在本地缓存的内容是否可接受;基于所述确定,当提供在本地缓存的内容不可接受时,获得所述内容的新版本,然后提供所述内容的所述新版本,否则当提供在本地缓存的内容可接受时,提供在本地缓存的内容。

Description

内容传送框架中的缓存
相关申请交叉引用
本专利合作条约(PCT)专利申请要求2015年12月15日提交的题为“CACHING IN ACONTENT DELIVERY FRAMEWORK”的美国非临时申请14/570,512的优先权,其全部内容通过引用并入本文。
版权声明
本专利文档包含受版权保护的材料。版权所有者不反对在美国专利商标局的档案中复制本专利文档或任何相关资料,但另保留所有版权。
通过引用并入
以下美国专利和美国公开专利申请
通过引用全部并入本文以用于所有目的:
1.2012年12月12日提交的题为“Content Delivery Network”的美国公开专利申请US2013/0159472;
2.2012年12月12日提交的题为“Content Delivery Network”的美国公开专利申请US2013/0159473;
3.2014年6月17日提交的题为“Origin Server-Side Channel In A ContentDelivery Framework”的美国公开专利申请US2014/0344399A1;以及
4.1998年2月10日提交的题为“Optimized Network Resource Location”的美国专利6,185,598。
技术领域
本发明涉及内容传送和内容传送网络,更具体地,涉及内容传送网络中的缓存。
附图说明
本发明的其他目的、特征和特性以及结构的相关元件的操作方法和功能以及部件和制造经济的组合将在参考附图考虑以下描述和所附权利要求的情况下变得更加明显,所有附图构成本说明书的一部分。
图1示出了根据本发明的示例性实施例的示例性内容传送框架的多个方面;
图2示出了根据本发明的示例性实施例的示例性内容传送网络(CDN)的多个方面;
图3是根据本发明的示例性实施例的处理的多个方面的流程图;以及
图4描绘了根据本发明的示例性实施例的计算的多个方面。
具体实施方式
术语表:
如本文所用,除非另有说明,否则以下术语或缩写具有以下含义:
CD表示内容传送;
CDN表示内容传送网络;
HTTP表示超文本传输协议;
HTTPS表示安全版HTTP;
TTL表示生存时间(time to live);
URI表示统一资源标识符;
URL表示统一资源定位符。
背景和概述
内容传送网络(CDN)代表一个或更多个内容提供商,优选地经由公共互联网将内容(例如,资源)有效地分发给客户端。内容提供商经由源数据源(源服务器或起源)提供其内容(例如,资源),并且CDN还可以提供一种超高层(over-the-top)传输机制,用于在相反方向上,即从客户端到源服务器有效地发送内容。终端用户(客户端)和内容提供商均受益于使用CDN。使用CDN,内容提供商能够使其自己的服务器(例如,其源服务器)减轻压力(从而减轻负载)。客户端通过能够以较少的延迟获得内容而受益。
参考图1,其示出了根据本发明的示例性实施例的示例性内容传送框架100,与一个或更多个订户104相关联的内容102可以经由一个或更多个CDN 108分发给客户端106。CDN 108可以是任何类型的CDN,并且可以包括子CDN、委托CDN、部分CDN等。在2012年12月12日提交的美国公开专利申请US2013/0159472和US2013/0159473、2014年6月17日提交的US2014/0344399以及1998年2月10日提交的美国专利6,185,598中描述了示例性CDN,每篇文献的全部内容通过引用方式完整并入本文以用于所有目的。图2示出了根据本发明的示例性实施例的示例性CDN 108的多个方面。
如本文所使用的,客户端是例如被终端用户用于在系统内发出请求(例如,DNS和HTTP请求)的代理(例如,浏览器、机顶盒或其它应用)。当不使用CDN或其它中介时,这种请求可以直接转到订户自己的服务器(例如,他们的源服务器)或者互联网中的其它组件。当内容提供商订阅CD服务时(例如,如美国公开专利申请US2013/0159472和US2013/0159473所述),各种请求可以转到中介CD服务,所述中介CD服务可以将终端用户请求映射到源请求,并且沿途可能会转换和缓存内容。
每个不同的源(例如,源服务器)通常与一个订户相关联,但是订户可以与任何数量的源(包括订户自有的源和CDN提供的源)相关联。
实际上,CDN所交互的物理源可以是从中介链获取内容的中介,可能是例如最终终止于订户的实际源服务器处的独立内容获取系统的元件。然而,就CDN的内部而言,源是从其直接获取内容的在系统边界之外的服务。
如本文所使用的,终端用户是最终消费由服务提供商实体提供的一些互联网服务(例如,网站、流媒体服务等)的实体(例如,个人或组织)。在本说明书中,该提供商实体有时被称为订户,因为它们订阅CDN服务,以便有效地传送它们的内容,例如,从其源传送给其消费者。CDN可以提供其订户和它们的终端用户之间的增值媒介(例如,缓存、转换等)。
缓存
内容(例如,资源)可以在CDN内缓存和由其它实体缓存,包括被提供内容的客户端。应当理解,客户端还可以是CDN内的实体。在一些情况下,内容可由在CDN内和CDN外的中介缓存。再次参考图1中的内容传送框架100,至少一些内容102可以在CDN 108(例如,CDN高速缓存或高速缓存服务110)内缓存。
缓存和可缓存的内容通常具有与之相关联的缓存策略,并且通常期望处理这样的内容的实体将遵守这些缓存策略。特别感兴趣的缓存策略包括与内容到期有关的那些策略,可以理解,通常不希望提供陈旧的或过期的内容或者以和与该内容相关联的缓存策略不一致的方式提供内容。
缓存策略可以被指定为与内容相关联的缓存指令,并且缓存指令可以取决于例如资源的类型。例如,HTTP资源(包括HTTPS资源)优选地使用常规HTTP缓存指令,例如在Internet Engineering Task Force(IETF)Request for Comments(RFC)7234,“HypertextTransfer Protocol(HTTP/1.1):Caching”中所述,其全部内容通过引用完整并入本文,用于所有目的。众所周知,在HTTP资源的情况下,缓存指令可以通过与资源相关联的首部(header)来提供。如果没有向资源提供缓存指令,则实体(例如,缓存节点)可以使用针对该类型的资源或来自该提供商的默认缓存策略。实体可以从另一个源确定默认缓存策略。通常,与内容(例如,资源或资源集)相关联的缓存指令(或缓存策略)可以与该内容一起提供(例如,在HTTP资源的情况下作为首部),和/或在与内容不同的位置或实体(例如,数据库等)处可用。
CDN可以代表其订户缓存内容,并且优选地,CDN代表其订户允许例如在CDN节点内规定CDN缓存的内容的缓存到期策略。CDN可拥有或支持内容(例如,资源或资源集)的内部缓存策略,其中内部缓存策略是CDN缓存所遵循的策略,该策略与相同内容的外部缓存策略是分开的并且可能不同(例如,在传送给客户端时与内容一起传送的缓存策略)。
在一些实施例中,CDN可以支持订户或其它用户或实体设置或覆盖资源的内部缓存策略。例如,在这样的系统中,CDN客户/订户可以访问自助服务门户等(例如,经由应用程序(编程)接口API),并且覆盖来自源服务器的一些或全部内容的缓存策略。例如,特定CDN订户可以使用门户对其特定类型的内容(例如,其PDF文件等)设置缓存策略,例如,使得这些文件被缓存特定时间段(例如,一周、一小时等)。
如本文所述,CDN的内部请求处理过程可以在请求时间而不是在填充时间确定所请求内容的缓存策略,而不是每当对内容设置缓存策略时试图使缓存内容(例如,资源)无效。实际上,请求处理使用缓存策略的后期绑定,从而确保使用最新的内部缓存策略,而不必进行强制无效(潜在的昂贵处理)。
与用于外部缓存的缓存指令类似的缓存指令可以用于内部缓存策略。然而,应当理解,为了便于将内部与外部缓存策略指令区分开,CDN将对内部缓存策略使用不同的名称和/或(例如,经由内部使用的HTTP首部)提供这些策略。以这种方式,外部缓存策略可以被提供给外部实体,而内部缓存策略可以由CDN实体(例如,高速缓存)来执行。
例如,再次参考图1中的内容传送框架100,来自订户104的内容102可以具有与其相关联的内部和/或外部缓存策略(例如,缓存指令)。由CDN 108提供给客户端106的内容102′优选地包括外部缓存策略(例如,缓存指令)。内部缓存策略可以与内容102′一起被提供给客户端106,因为这些策略优选地使用客户端将不会识别或执行的指令。与特定内容相关联的缓存策略可以包括在内容中(例如,在HTTP资源的情况下,作为HTTP首部),或者它们可以位于其它地方。在没有与内容相关联的特定指令的情况下,CDN可以对该内容应用默认缓存策略。
在本文的一些实施例中,与内容(例如,资源或资源组)相关联的缓存策略(内部和外部)可以存储在数据库中(有时在本文中称为规则库RuleBase)。当正在处理对资源的客户端请求时,可以访问规则库,以便查找/获得所需的缓存策略(内部和外部)。再次参考图1,缓存110可以访问一个或更多个数据库112,以便获得关于与内容相关联的内部和/或外部缓存策略的信息。
如上所述,在一些实施例中,CDN可以支持订户或其它用户或实体例如经由自助服务门户等(例如,经由API)来设置或覆盖资源的内部缓存策略。在图1中示出了示例性门户114,其中订户可以访问和/或修改与其内容(即,将由CDN代表它们来提供的内容)相关联的缓存策略。
因此,根据本发明的示例性实施例,当在CDN节点处接收到客户端对内容的请求时,该节点将确定该内容的缓存到期策略(例如,是否存在覆盖策略,如存在,是什么;如不存在,应当遵守由源服务器提供的策略)。可以例如通过访问规则库来确定内容的缓存策略。
然后,该策略例如作为一个或更多个缓存约束被传送到缓存节点(也称为高速缓存)。然后,高速缓存可以使用这些约束来确定其拥有的内容(如果有的话)是否可以被返回给请求客户端,还是需要刷新/重新加载等。应该理解,如果节点没有可用资源,那么无论内部缓存策略如何,它都需要获得资源,尽管它可以遵守当前的缓存策略。
例如,如果配置指定了“一小时”的内部缓存策略,则该策略在应用请求资源时被传送到高速缓存。如果高速缓存具有资源,则其将其所拥有的资源的原始填充时间与指定的策略(以及当前时间)进行比较,以确定是否可以从缓存资源中提供其所拥有的资源,还是需要先刷新/重新加载(或可能异步)。
如果所请求的资源不在高速缓存中,则当且仅当指定的策略允许或需要时才进行填充并存储在高速缓存中(例如,如果响应被标记为不存储,并且没有提供指定缓存策略的内部策略,则不对它进行存储,等等)。
在没有任何内部缓存策略覆盖的情况下,来自源的响应的缓存规则将仍然适用(即,如果其认为资源是新的且没有约束,则高速缓存将返回资源)。
在将资源传送给客户端时,将应用任何外部策略。这允许不同类的客户端指定不同的约束。例如,在一些情况下,对资源的内部请求可以以始终防止发生刷新的方式来请求资源;或者可以类似地要求刷新,而不管高速缓存所认为的资源的到期如何。
图3是根据本发明的示例性实施例的处理的多个方面的流程图。如图3中的流程图所示,CDN中的高速缓存(缓存节点)接收对内容(C)的请求(在302处)。该请求可以以任何方式(例如,经由CDN的会合系统)到达缓存节点。内容C可以是或包括一个或更多个资源,并且该请求可以采用指定这些资源的URI或URL的形式。高速缓存确定(在304处)请求的内容C是否在本地缓存。如果确定(在304处)没有C的本地缓存副本可用,则该节点优选地与C的缓存策略一起获得内容C的副本(在306处)。该节点可以从CDN中的适当的填充权威节点获得C的副本,应当理解,该填充权威节点还将检查其缓存版本(如果有的话)不是过时的。换句话说,后期绑定缓存策略检查优选地由提供所请求内容的副本的所有中间节点来执行,无论它们是将该内容提供给外部客户端还是内部客户端。
另一方面,如果确定(在304处)存在所请求内容C的本地缓存副本,则该节点(例如,从数据库112)获得(在310处)与内容C相关联的当前缓存策略。然后使用当前缓存策略(在312处)来确定该节点是否可以提供所请求内容(C)的当前缓存版本。如果基于在310中获得/确定的当前缓存策略,不能提供所请求内容C的本地缓存版本,则如上所述,该节点获得内容C的当前版本(在306处),并且提供C的当前版本(在308处)。另一方面,如果确定(在312处)可以接收该节点提供内容C的当前缓存版本(至少部分地基于在310获得的C的当前缓存策略),则提供内容C的当前缓存版本(在308处)。
可以通过扩展传送给高速缓存的约束来处理在规则库中指定的缓存策略,例如基于MIME类型和/或状态码指定的策略(负缓存是其一种特定情况)。例如,“如果缓存不超过一个小时,除非是认为其不可缓存的text/html的情况或可缓存一天的text/*的情况。”应当理解,适当简洁的语法将适用于并且用于这种约束。
在某些情况下,规则库约束集可以在序列生成时可编译,因为它通常适用于广泛的属性-但是需要针对过滤器进行规定(该集合应当是有限的且在请求准备期间可容易地选择);类似地,可以通过将负TTL值和状态代码的列表包括到约束集中来处理负缓存。
将理解,这种方法的缺点在于必须对每个请求都进行缓存策略确定。这不可能是免费的,而且可能相对昂贵。另一方面,由于策略更新可能很少,因此具有相对即时策略更新的益处可能不大。为了降低该成本,实施方案可以将配置版本号与每个资源一起存储,并且只有配置发生变化时才对其进行重新计算。例如,这种方法将用当前配置版本号来调用缓存引擎,并使高速缓存将其和与资源相关联的配置号进行比较。如果配置号相同,则使用附加到资源的策略信息,否则回调以获得当前约束集。有效地,如果看起来约束已经改变了,这种方法将仅处理规则库以获得约束。在一些实现中,版本号可以是或包括缓存策略的校验和或散列等(以及序列号,或替代序列号)。散列可以是诸如MD5或SHA等的加密散列。以这种方式,随后撤消的更改可被视为匹配先前版本。
这样的系统将通过输入导致当前约束被请求的一些岗哨序列号来处理奇怪的约束(例如,不想要引起刷新的内部请求的类型)。为了支持这种方法,高速缓存的接口可以使得允许请求来传送序列号和/或约束集。如果无论如何需要针对每个请求处理规则库,那么可以在该期间收集约束并在请求时将约束传送给高速缓存,如果序列号没有改变,则高速缓存可以忽略它,而不是从高速缓存调用。
计算
图4是实现可以用于执行本文讨论的处理的代理、父代服务器或其它计算设备的计算系统400的示意图。该计算系统包括总线402(即互连)、至少一个处理器404、至少一个通信端口414、主存储器406、可移除存储介质410、只读存储器408以及大容量存储设备412。处理器404可以是任何已知的处理器,例如但不限于
Figure BDA0001321453720000091
Figure BDA0001321453720000092
处理器、
Figure BDA0001321453720000093
Figure BDA0001321453720000094
处理器或
Figure BDA0001321453720000095
处理器产品线。通信端口414可以是用于基于调制解调器的拨号连接的RS-232端口、10/100以太网端口、使用铜缆或光纤的千兆端口或USB端口中的任何一个。可以根据计算机系统所连接到的诸如局域网(LAN)、广域网(WAN)或任何网络之类的网络来选择通信端口414。服务器可以经由输入/输出(I/O)端口420与外围设备(例如,显示屏416、输入设备418)通信。
主存储器406可以是随机存取存储器(RAM)或本领域公知的任何其它动态存储设备。只读存储器408可以是任何静态存储设备,例如用于存储诸如处理器404的指令的静态信息的可编程只读存储器(PROM)芯片。大容量存储设备412可以用于存储信息和指令。例如,可以使用诸如
Figure BDA0001321453720000096
系列的小型计算机串行接口(SCSI)驱动器之类的硬盘、光盘、诸如独立磁盘冗余阵列(RAID)、诸如
Figure BDA0001321453720000097
系列的RAID驱动器之类的磁盘阵列或者任何其它大容量存储设备。
总线402将处理器404与其它存储器、存储设备和通信块通信地耦接。根据所使用的存储设备,总线402可以是PCI/PCI-X、SCSI或基于通用串行总线(USB)的系统总线(或其它总线)。可移除存储介质410可以是任何种类的外部硬盘驱动器、软盘驱动器、
Figure BDA0001321453720000098
Zip驱动器、致密盘-只读存储器(CD-ROM)、致密盘可重写(CD-RW)、数字视频盘-只读存储器(DVD-ROM)等。
本文中的实施例可以被提供为计算机程序产品,其可以包括其上存储有指令的机器可读介质,所述指令可以用于对计算机(或其它电子设备)进行编程以执行处理。机器可读介质可以包括但不限于软盘、光盘、CD-ROM、磁光盘、ROM、RAM、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存或适用于存储电子指令的其它类型的介质/机器可读介质。
如图所示,主存储器可以被编码有一个或更多个应用/服务422,所述应用/服务支持如上面关于各种附图和其它所讨论的功能。例如,在一个实施例中,应用422可以包括或以其它方式实现本文所描述的各种处理和/或指令。应用422(和/或如本文所述的其它资源)可以被实现为支持根据本文所述的不同实施例的处理功能的软件代码,例如数据和/或逻辑指令(例如,存储在存储器中或另一计算机可读介质例如磁盘上的代码)。在一个实施例的操作期间,处理器404通过使用总线402访问主存储器406,以启动、运行、执行、解释或以其它方式执行应用422的逻辑指令。应用422的执行产生应用进程424中的处理功能。换句话说,进程424表示在计算机系统400中的处理器404内或上执行的应用422的一个或更多个部分。
以上描述包括体现本公开技术的示例性系统、方法、技术、指令序列和/或计算机程序产品。应当理解,可以在没有这些具体细节的情况下实施本公开。在本公开中,所公开的方法可以被实现为设备可读的指令集或软件。此外,应当理解,所公开的方法中的步骤的具体顺序或层次是示例方法的例子。基于设计偏好,应当理解,方法中的步骤的具体顺序或层次可以被重新排列,同时仍然在所公开的主题范围之内。随附的方法权利要求以样本顺序呈现各个步骤的元素,并且不一定意味着受限于所呈现的具体顺序或层次。
结论
如本文所使用的,包括在权利要求中,短语“至少一些”是指“一个或多个”,并且包括仅一个的情况。因此,例如,短语“至少一些服务”是指“一个或更多个服务”,并且包括一个服务的情况。
如本文所使用的,包括在权利要求中,短语“基于”是指“部分地基于”或“至少部分地基于”,而不是排他性的。因此,例如,短语“基于因子X”是指“部分地基于因子X”或“至少部分地基于因子X”。除非使用单词“仅仅”明确说明,否则短语“基于X”并不意味着“仅基于X”。
如本文所使用的,包括在权利要求中,短语“使用”是指“至少使用”,而不是排他性的。因此,例如,短语“使用X”表示“至少使用X”。除非使用单词“仅仅”明确说明,否则短语“使用X”并不意味着“仅使用X”。
通常,如本文所使用的,包括在权利要求中,除非在短语中具体使用单词“仅”,否则不应将其读入该短语中。
如本文所使用的,包括在权利要求中,短语“不同”是指“至少部分不同”。除非另有明确规定,否则不同并不意味着完全不同。因此,例如,短语“X不同于Y”表示“X至少部分不同于Y”,并不意味着“X与Y完全不同”。因此,如本文所使用的,包括在权利要求中,短语“X不同于Y”表示X至少以某种方式与Y不同。
如本文所使用的,包括在权利要求中,列表可以仅包括一个项目,并且除非另有说明,否则不需要以任何特定方式对多个项目的列表进行排序。列表可以包括重复的项目。例如,如本文所使用的,短语“CDN服务的列表”可以包括一个或多个CDN服务。
应当理解,说明书和权利要求中的词语“第一”和“第二”用于区分或识别,而不是显示序列或数字限制。类似地,使用字母或数字标签(例如“(a)”、“(b)”等)用于帮助区分和/或识别,而不显示任何序列或数字限制或排序。
除非另有明确说明,否则任何流程图中的任何标签框不暗示排序。当图中显示断开连接的框时,与这些框相关联的活动可以以任何顺序执行,包括完全并行或部分并行。
虽然已经结合当前认为最实际和优选的实施例来描述了本发明,但是应该理解本发明不限于所公开的实施例,相反,本发明旨在覆盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (12)

1.一种能够利用内容传送网络CDN操作的计算机实现的方法,所述方法包括由CDN中的节点进行以下操作:
(A)响应于对内容的请求,确定内容是否在本地缓存;
(B)当确定所述内容在本地缓存时,则:
(B)(1)确定与所述内容相关联的当前缓存策略;然后
(B)(2)基于与所述内容相关联的所述当前缓存策略,确定提供在本地缓存的内容是否可接受;
(B)(3)基于(B)(2)中的所述确定,
(i)当提供在本地缓存的内容不可接受时,获得所述内容的新版本, 然后提供所述内容的所述新版本, 以及
(ii)当提供在本地缓存的内容可接受时, 提供在本地缓存的内容;
其中,版本标识符与缓存策略相关联,并且在(B)(1)中确定所述当前缓存策略包括:(i)将与所述本地缓存的内容一起被存储的第一版本标识符,和第二版本标识符进行比较;其中所述第二版本标识符与根据与所述节点不同的位置来确定的、并且关联到在CDN 中的所述节点处的内容的缓存策略相关联;以及(ii)当所述第一版本标识符与所述第二版本标识符相同时,使用与所述本地缓存的内容一起提供的缓存策略作为当前缓存策略,否则从所述位置获得所述缓存策略并将该缓存策略作为当前缓存策略使用。
2.根据权利要求1所述的方法,还包括:
(C)当确定所述内容未在本地缓存时,则(C)(1)获得所述内容,然后(C)(2)提供在(C)(1)中获得的所述内容。
3.根据权利要求1所述的方法,其中,所述请求包括HTTP请求,并且所述内容包括一个或更多个资源。
4.根据权利要求1所述的方法,其中,所述位置是数据库。
5.根据权利要求 1 所述的方法,其中,所述缓存策略与在 CDN内缓存内容相关。
6.根据权利要求5所述的方法,其中,所述缓存策略还与在CDN外缓存内容相关。
7.一种存储有计算机可读指令的非暂时性计算机可读介质,所述计算机可读指令包括用于实现计算机实现的方法的指令,所述方法能够操作在包括具有存储器和至少一个处理器的硬件并在所述硬件上运行服务的设备上,所述方法能够操作在内容传送网络 CDN 中的节点中, 所述方法包括:
(A)响应于对内容的请求,确定内容
是否在本地缓存;
(B)当确定所述内容在本地缓存时,则:
(B)(1)确定与所述内容相关联的当前缓存策略;然后
(B)(2)基于与所述内容相关联的所述当前缓存策略,确定提供在本地缓存的内容是否可接受;
(B)(3)基于(B)(2)中的所述确定,
(i)当提供在本地缓存的内容不可接受时,获得所述内容的新版本, 然后提供所述内容的所述新版本,以及
(ii)当提供在本地缓存的内容可接受时,提供在本地缓存的内容;
其中,版本标识符与缓存策略相关联,并且在(B)(1)中确定所述当前缓存策略包括:(i)将与所述本地缓存的内容一起被存储的第一版本标识符,和第二版本标识符进行比较;其中所述第二版本标识符与根据与所述节点不同的位置来确定的、并且关联到在CDN 中的所述节点处的内容的缓存策略相关联;以及(ii)当所述第一版本标识符与所述第二版本标识符相同时,使用与所述本地缓存的内容一起提供的缓存策略作为当前缓存策略,否则从所述位置获得所述缓存策略并将该缓存策略作为当前缓存策略使用。
8.根据权利要求7所述的非暂时性计算机可读介质,其中,所述方法还包括:
(C)当确定所述内容未在本地缓存时,则(C)(1)获得所述内容,然后(C)(2)提供在(C)(1)中获得的所述内容。
9.根据权利要求7或8所述的非暂时性计算机可读介质,其中,所述请求包括HTTP请求,并且所述内容包括一个或更多个资源。
10. 根据权利要求7 所述的非暂时性计算机可读介质,其中,所述位置是数据库。
11. 根据权利要求7 所述的非暂时性计算机可读介质,其中,所述缓存策略与在 CDN内缓存内容相关。
12. 根据权利要求 11 所述的非暂时性计算机可读介质,其中,所述缓存策略还与在CDN 外缓存内容相关。
CN201580068159.XA 2014-12-15 2015-12-14 内容传送框架中的缓存 Active CN107111637B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/570,512 US9648127B2 (en) 2014-12-15 2014-12-15 Caching in a content delivery framework
US14/570,512 2014-12-15
PCT/US2015/065476 WO2016100171A1 (en) 2014-12-15 2015-12-14 Caching in a content delivery framework

Publications (2)

Publication Number Publication Date
CN107111637A CN107111637A (zh) 2017-08-29
CN107111637B true CN107111637B (zh) 2021-07-23

Family

ID=56112349

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580068159.XA Active CN107111637B (zh) 2014-12-15 2015-12-14 内容传送框架中的缓存

Country Status (8)

Country Link
US (5) US9648127B2 (zh)
EP (1) EP3234815A4 (zh)
JP (1) JP6699664B2 (zh)
CN (1) CN107111637B (zh)
CA (1) CA2970526A1 (zh)
HK (1) HK1245434A1 (zh)
SG (1) SG11201704604UA (zh)
WO (1) WO2016100171A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9648127B2 (en) 2014-12-15 2017-05-09 Level 3 Communications, Llc Caching in a content delivery framework
CN106997351B (zh) * 2016-01-22 2021-03-02 斑马智行网络(香港)有限公司 一种资源缓存管理方法及系统和装置
US11323862B2 (en) * 2016-05-06 2022-05-03 Convida Wireless, Llc Traffic steering at the service layer
US20190327140A1 (en) * 2018-04-24 2019-10-24 Level 3 Communications, Llc Subscriber configuration ingestion in a content delivery network
TWI732291B (zh) * 2019-09-11 2021-07-01 中華電信股份有限公司 依據角色權限提供預載內容的系統及方法
CN111399769B (zh) * 2020-02-26 2021-01-26 武汉思普崚技术有限公司 一种mime格式上传文件的存储方法及装置
US10942629B1 (en) * 2020-10-16 2021-03-09 Laitek, Inc. Recall probability based data storage and retrieval
US11843682B1 (en) * 2022-08-31 2023-12-12 Adobe Inc. Prepopulating an edge server cache

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102948125A (zh) * 2010-04-07 2013-02-27 杰出网络公司 用于传送内容对象的系统和方法
CN104011701A (zh) * 2011-12-14 2014-08-27 第三雷沃通讯有限责任公司 内容传送网络

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000181843A (ja) 1998-12-18 2000-06-30 Toshiba Corp 情報中継装置及び記憶媒体
US6986018B2 (en) * 2001-06-26 2006-01-10 Microsoft Corporation Method and apparatus for selecting cache and proxy policy
US7412535B2 (en) * 2001-12-19 2008-08-12 International Business Machines Corporation Method and system for caching fragments while avoiding parsing of pages that do not contain fragments
US7509393B2 (en) * 2001-12-19 2009-03-24 International Business Machines Corporation Method and system for caching role-specific fragments
US7426534B2 (en) * 2001-12-19 2008-09-16 International Business Machines Corporation Method and system for caching message fragments using an expansion attribute in a fragment link tag
US20030188021A1 (en) * 2001-12-19 2003-10-02 International Business Machines Corporation Method and system for processing multiple fragment requests in a single message
US7730154B2 (en) * 2001-12-19 2010-06-01 International Business Machines Corporation Method and system for fragment linking and fragment caching
US7587515B2 (en) * 2001-12-19 2009-09-08 International Business Machines Corporation Method and system for restrictive caching of user-specific fragments limited to a fragment cache closest to a user
US6965968B1 (en) 2003-02-27 2005-11-15 Finjan Software Ltd. Policy-based caching
CA2513016A1 (en) * 2005-07-22 2007-01-22 Research In Motion Limited A secure method of synchronizing cache contents of a mobile browser with a proxy server
US8161549B2 (en) * 2005-11-17 2012-04-17 Patrik Lahti Method for defending against denial-of-service attack on the IPV6 neighbor cache
WO2008027349A2 (en) * 2006-08-28 2008-03-06 Dan Gerrity Method and device for adaptive control
JP4293227B2 (ja) * 2006-11-14 2009-07-08 セイコーエプソン株式会社 電子回路、電子装置、その駆動方法、電気光学装置および電子機器
US7752395B1 (en) * 2007-02-28 2010-07-06 Network Appliance, Inc. Intelligent caching of data in a storage server victim cache
DE102007035186A1 (de) * 2007-07-27 2009-01-29 Siemens Ag Verfahren zur Übertragung von Daten in einem drahtlosen Funknetz
US20120209942A1 (en) 2008-10-28 2012-08-16 Cotendo, Inc. System combining a cdn reverse proxy and an edge forward proxy with secure connections
US20100122429A1 (en) * 2008-11-14 2010-05-20 International Automotive Components Group North America, Inc Three piece floor mat retention system
CN101741715B (zh) * 2008-11-20 2013-03-20 华为技术有限公司 发送消息的方法、接入路由节点设备和数据缓存系统
US9270700B2 (en) * 2008-12-12 2016-02-23 Microsoft Technology Licensing, Llc Security protocols for mobile operator networks
US8407723B2 (en) * 2009-10-08 2013-03-26 Tibco Software, Inc. JAVA virtual machine having integrated transaction management system and facility to query managed objects
US8627063B2 (en) * 2009-12-23 2014-01-07 Citrix Systems, Inc. Systems and methods for flash crowd control and batching OCSP requests via online certificate status protocol
US8463887B2 (en) * 2009-12-23 2013-06-11 Citrix Systems, Inc. Systems and methods for server surge protection in a multi-core system
US20110161294A1 (en) * 2009-12-30 2011-06-30 Sun Microsystems, Inc. Method for determining whether to dynamically replicate data
US8358771B1 (en) * 2010-03-24 2013-01-22 Jpmorgan Chase Bank, N.A. System and method for managing customer communications over communication channels
CN102316135A (zh) * 2010-07-02 2012-01-11 深圳市快播科技有限公司 网络点播方法和系统
US8838724B2 (en) * 2010-07-02 2014-09-16 Futurewei Technologies, Inc. Computation of caching policy based on content and network constraints
US9154387B2 (en) * 2011-01-30 2015-10-06 Blue Coat Systems, Inc. System and method for distributed data collection and heuristic refinement in a network intermediary device
WO2012116078A1 (en) * 2011-02-23 2012-08-30 Level 3 Communications, Llc Analytics management
US9160799B2 (en) * 2011-05-26 2015-10-13 Sonus Networks, Inc. Systems and methods for authorizing services in a telecommunications network
WO2012167106A1 (en) * 2011-06-01 2012-12-06 Interdigital Patent Holdings, Inc. Content delivery network interconnection (cdni) mechanism
US9450826B2 (en) * 2012-02-22 2016-09-20 Rooundarch Corporation Device connectivity framework
US20130254343A1 (en) 2012-03-22 2013-09-26 Akamai Technologies Inc. Server with message exchange accounting
KR101630275B1 (ko) * 2012-03-27 2016-06-14 에스케이텔레콤 주식회사 캐시 동기화 시스템, 그의 캐시 동기화 방법 및 장치
US8984166B2 (en) * 2012-04-05 2015-03-17 Cloudflare, Inc. Method and apparatus for reducing network resource transmission size using delta compression
US8812695B2 (en) * 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US9779029B2 (en) * 2012-11-06 2017-10-03 Facebook, Inc. Cache replacement policy for data with strong temporal locality
US9756142B2 (en) * 2013-03-14 2017-09-05 The Regents Of The University Of California System and method for delivering video data from a server in a wireless network by caching the video data
US9614865B2 (en) * 2013-03-15 2017-04-04 Mcafee, Inc. Server-assisted anti-malware client
US9509596B2 (en) * 2013-06-07 2016-11-29 Fasly, Inc. Domain name system bypass in user applications
US9241044B2 (en) * 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US9686358B2 (en) * 2014-01-22 2017-06-20 Alcatel Lucent Devices and methods for network-coded and caching-aided content distribution
US20150333930A1 (en) * 2014-05-15 2015-11-19 Akamai Technologies, Inc. Dynamic service function chaining
US9678841B2 (en) * 2014-05-30 2017-06-13 Fastly, Inc. Communication continuation during content node failover
US9565227B1 (en) * 2014-06-16 2017-02-07 Teradici Corporation Composition control method for remote application delivery
US20160072186A1 (en) * 2014-09-07 2016-03-10 James Wang Hierarchical Phase Shift Apparatus for Array Antenna Weight Look Ahead, Elaboration, and Beam-splitting Methods
US9984166B2 (en) * 2014-10-10 2018-05-29 Salesforce.Com, Inc. Systems and methods of de-duplicating similar news feed items
US9648127B2 (en) 2014-12-15 2017-05-09 Level 3 Communications, Llc Caching in a content delivery framework
CN104748013B (zh) * 2015-04-02 2018-05-25 深圳市华星光电技术有限公司 背光模组及显示装置
US10417134B2 (en) * 2016-11-10 2019-09-17 Oracle International Corporation Cache memory architecture and policies for accelerating graph algorithms
US10705973B2 (en) * 2017-09-19 2020-07-07 International Business Machines Corporation Initializing a data structure for use in predicting table of contents pointer values

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102948125A (zh) * 2010-04-07 2013-02-27 杰出网络公司 用于传送内容对象的系统和方法
CN104011701A (zh) * 2011-12-14 2014-08-27 第三雷沃通讯有限责任公司 内容传送网络

Also Published As

Publication number Publication date
US20240080373A1 (en) 2024-03-07
HK1245434A1 (zh) 2018-08-24
SG11201704604UA (en) 2017-07-28
US9648127B2 (en) 2017-05-09
CA2970526A1 (en) 2016-06-23
EP3234815A1 (en) 2017-10-25
US11425223B2 (en) 2022-08-23
EP3234815A4 (en) 2018-05-30
JP6699664B2 (ja) 2020-05-27
JP2017539029A (ja) 2017-12-28
US20220407941A1 (en) 2022-12-22
US10701173B2 (en) 2020-06-30
CN107111637A (zh) 2017-08-29
US20170244804A1 (en) 2017-08-24
US20200322446A1 (en) 2020-10-08
US20160173634A1 (en) 2016-06-16
US11818229B2 (en) 2023-11-14
WO2016100171A1 (en) 2016-06-23

Similar Documents

Publication Publication Date Title
CN107111637B (zh) 内容传送框架中的缓存
AU2021240176B2 (en) System, method and computer-readable storage medium for customizable event-triggered computation at edge locations
US20210075881A1 (en) Customizable event-triggered computation at edge locations
US8090863B2 (en) Partial object distribution in content delivery network
EP2266043B1 (en) Cache optimzation
US20140164447A1 (en) Cookie synchronization and acceleration of third-party content in a web page
US9055124B1 (en) Enhanced caching of network content
US9690568B2 (en) Client-side script bundle management system
US10909104B2 (en) Caching of updated network content portions
US11575773B2 (en) Request processing in a content delivery framework
EP2556481A1 (en) Partial object distribution in content delivery network
JP2008293281A (ja) キャッシュ装置、サーバ、キャッシュシステム、キャッシュ方法、及びプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant