CN105144725A - 可伸缩的内容交付网络请求处理机制 - Google Patents

可伸缩的内容交付网络请求处理机制 Download PDF

Info

Publication number
CN105144725A
CN105144725A CN201380073436.7A CN201380073436A CN105144725A CN 105144725 A CN105144725 A CN 105144725A CN 201380073436 A CN201380073436 A CN 201380073436A CN 105144725 A CN105144725 A CN 105144725A
Authority
CN
China
Prior art keywords
content
server
control information
request
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.)
Granted
Application number
CN201380073436.7A
Other languages
English (en)
Other versions
CN105144725B (zh
Inventor
M·J·史蒂文斯
F·R·肖顿
T·陈
V·杰纳尔德安
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.)
Akamai Technologies Inc
Original Assignee
Akamai Technologies 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
Application filed by Akamai Technologies Inc filed Critical Akamai Technologies Inc
Publication of CN105144725A publication Critical patent/CN105144725A/zh
Application granted granted Critical
Publication of CN105144725B publication Critical patent/CN105144725B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5051Service on demand, e.g. definition and deployment of services in real time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/509Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to media content delivery, e.g. audio, video or TV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开涉及可伸缩的内容交付网络请求处理机制。本文描述了在诸如内容交付网络(CDN)的分布式计算平台中用于交付和管理元数据的改进***、方法和设备,从而把内容服务器配置为处理客户端请求。除其它的之外,本文的教导提供了用于交付和管理元数据的可伸缩和可配置的解决方案,优选地是通过充分利用动态获得的控制信息。例如,在一种实施例中,给定的内容服务器可以在例如配置文件中存储引用动态的后期绑定控制信息的元数据,供满足依赖关系使用。当为了解析和执行元数据而被需要时,这种动态控制信息可以由CDN内容服务器请求,通常是从远端主机。

Description

可伸缩的内容交付网络请求处理机制
对相关申请的交叉引用
本申请是于2012年12月21日提交的美国申请No.61/740,598、于2012年12月21日提交的美国申请No.61/740,627、于2013年5月24日提交的美国申请No.61/827,398、于2013年7月1日提交的美国申请No.61/841,822和于2013年9月30日提交的美国申请No.61/884,756的非临时申请并且要求其优先权益。以上申请当中每一个的全部内容都通过引用被结合于此。
本专利文档包含受版权保护的素材。版权拥有者不反对任何人对专利文档或专利公开内容按照在专利商标局的专利文件或记录中出现那样进行的传真复制,但是除此之外在任何情况下都保留所有版权。
技术领域
本申请一般而言涉及分布式数据处理***并且涉及内容经计算机网络的交付。
背景技术
分布式计算机***在本领域中是众所周知的。一种这样的分布式计算机***是由服务提供商运营和管理的“内容交付网络”或“CDN”。服务提供商通常代表第三方提供内容交付服务。这种类型的“分布式***”通常指通过一个或多个网络链接的自治计算机的集合,连同设计为方便各种服务的软件、***、协议和技术,诸如内容交付或者对外包站点基础设施的支持。CDN代表由多个第三方共享的基础设施,有时候被称为多租户基础设施。通常,“内容交付”指内容–诸如网页、流媒体和应用–代表内容提供商的存储、高速缓存或传输,以及其中所使用的辅助技术,包括但不限于DNS查询处理、供应、数据监视和报告、内容定向、个性化以及业务智能。
在诸如图1所示的已知***中,分布式计算机***100被配置为内容交付网络(CDN)并且被假设具有围绕因特网分布的一组机器。通常,大部分机器被配置为CDN内容服务器102。这种机器可以定位在因特网的边缘附近,即,在终端用户访问网络或者与其相邻。网络操作命令中心(NOCC)104可以被用来监督和管理***中各种机器的操作。内容提供商附属的第三方站点,诸如在源服务器106托管的web站点,把内容(例如,HTML、嵌入式页面对象、流媒体、软件下载等)的交付卸载到分布式计算机***100并且,特别地,卸载到服务器102(由于其在因特网“边缘”附近的可能性,有时候被称为“边缘”服务器)。这种服务器102可以一起聚合到存在点(POP)107中。
通常,内容提供商通过(例如,由DNSCNAME)把给定内容提供商域或子域化名(aliasing)到由服务提供商的授权域名服务管理的域来卸载它们的内容交付。期望这种内容的终端用户客户端机器122可以被指向分布式计算机***,以便更可靠和高效地获得那个内容。CDN服务器102对客户端请求作出响应,例如通过从本地高速缓存、从另一CDN服务器102、从源服务器106或者其它来源获得所请求的内容。
虽然没有在图1中详细地示出,但是分布式计算机***还可以包括其它基础设施,诸如从内容服务器收集使用情况和其它数据、跨一个区域或一组区域聚集那种数据并且把那种数据传递到其它后端***110、112、114和116以方便监视、记录、提醒、计费、管理以及其它运营和管理功能的分布式数据搜集***108。分布式网络代理118监视网络以及服务器负载并且向域名***(DNS)查询处理机制115提供网络、流量和负载数据,其中DNS查询处理机制115对于由CDN管理的内容域是有权威的。分布式数据传输机制120可以被用来向服务器102分发控制信息(例如,管理内容、方便负载平衡等的元数据)。
如图2中所说明的,CDN(例如,给定的CDN服务器102)中给定的机器200包括运行支持一个或多个应用206的操作***内核(诸如或其变体)204的商用硬件(例如,Intel处理器)202。为了方便内容交付服务,例如,给定的机器通常运行一组应用,诸如HTTP代理服务器207、名称服务器208、本地监视过程210、分布式数据收集过程212,等等。HTTP代理服务器207(在本文有时候被称为全局主机或者“ghost”)通常包括用于管理高速缓存和内容从机器的交付的管理器过程。对于流媒体,机器通常包括一个或多个媒体服务器,诸如媒体服务器(WMS)或者服务器,如由所支持的媒体格式所要求的。
图2中所示的机器可以被配置为提供一个或多个扩展的内容交付特征,优选地是以特定于域、特定于内容提供商为基础,优选地使用利用配置***分发到CDN服务器102的配置文件。给定的配置文件优选地基于可扩展标记语言(XML)并且包括一组方便一个或多个高级内容处理特征的内容处理规则和指令。配置文件可以经由数据传输机制120交给CDN服务器102。其内容通过引用被结合于此的美国专利No.7,240,100说明了用于交付和管理CDN服务器内容控制信息的有用基础设施并且这个或其它内容服务器控制信息(被称为“元数据”)可以由CDN服务提供商自己,或者(经由外联网等)运营源服务器106的内容提供商消费者,提供。
标题为“Methodandsystemforpurgingcontentfromacontentdeliverynetwork”的美国专利No.7,111,057的内容通过引用被结合于此。
在典型的运营中,内容提供商识别它期望由CDN提供服务的内容提供商域或子域。CDN服务提供商把内容提供商域与CDN主机名关联(例如,经由规范的名称,或者CNAME,或者其它化名技术),然后CDN提供商把CDN主机名提供给内容提供商。当对内容提供商域或子域的DNS查询在内容提供商的域名服务器被接收时,那些服务器通过返回CDN主机名来作出响应。那个网络主机名指向CDN,然后那个主机名通过CDN名称服务被解析。为此,CDN名称服务返回一个或多个IP地址。然后,发出请求的客户端浏览器对与IP地址关联的CDN服务器进行内容请求(例如,经由HTTP或HTTPS)。请求包括主机首部,该首部包括原始内容提供商域或子域。在接收到具有主机首部的请求后,服务器检查其配置文件,以确定所请求的内容域或子域是否真正被该CDN处理。如果是,则服务器对如在配置中指定的那个域或子域应用其内容处理规则和指令。如以上所指出的,这些内容处理规则和指令可以位于基于XML的“元数据”配置文件中。
作为覆盖,CDN资源可以被用来方便企业数据中心(这可以被私有地管理)与第三方软件即服务(SaaS)提供商之间的广域网(WAN)加速服务。
CDN消费者可以订阅“防火墙后面”管理的服务产品来加速在消费者的企业防火墙后面托管的内联网web应用,以及加速在防火墙后面它们的用户与在因特网“云”中托管的应用(例如,来自SaaS提供商)之间桥接的web应用。为了实现这两个用例,CDN软件可以在一个或多个消费者数据中心中托管的机器(有可能是在消费者硬件上运行的虚拟机)上并且在远端“分公司”中托管的机器上执行。在消费者数据中心中执行的CDN软件通常提供服务配置、服务管理、服务报告、远程管理访问、消费者SSL证书管理,以及用于所配置的web应用的其它功能。在分公司中执行的软件为位于那里的用户提供最后一英里(lastmile)web加速。CDN本身通常提供在CDN数据中心中托管的CDN硬件,以便在消费者防火墙后面运行的节点与服务提供商的其它基础设施(例如,网络和运营设施)之间提供网关。这种类型的被管理解决方案为企业提供了关于其公司的内联网利用CDN技术的机会。这种类型的解决方案把对企业的加速扩展到在因特网上任何地方提供服务的应用,诸如Saas(软件即服务)应用。通过桥接企业的基于CDN的私有覆盖网络与现有的CDN公共因特网覆盖网络,位于远端分公司的终端用户端到端地获得加速的应用。
CDN可以具有各种其它特征和辅助部件。例如,CDN可以包括网络存储子***(在本文有时候被称为“NetStorage”),它可以位于CDN服务器可访问的网络数据中心中,诸如在美国专利No.7,472,178中所描述的,其公开内容通过引用被结合于此。CDN可以操作服务器高速缓存层次结构,以提供消费者内容的中间高速缓存;一个这种高速缓存层次结构子***在美国专利No.7,376,716中描述,其公开内容通过引用被结合于此。
对于现场流交付,CDN可以包括现场交付子***,诸如在美国专利No.7,296,082和美国公开No.2011/0173345中所描述的,其公开内容通过引用被结合于此。
如以上所指出的,当CDN中(或者另一分布式计算平台中)给定的内容服务器接收到内容请求时,通常需要具有关于所请求的对象的身份和特点的信息,以及关于在交付那些对象时应当被调用的CDN的特征的信息。简言之,CDN(并且通过扩展是其组成服务器)需要具有关于如何处理内容请求的信息。被称为“元数据”的这种信息可以在配置文件中分发到内容服务器,如以上关于美国专利No.7,240,100所指出的。
但是,随着CDN增长并且其特征集多样化,元数据的体积和复杂度显著增加。而且,朝云提供商、平台即服务(PaaS)、基础设施即服务(IaaS)和/或软件即服务(SaaS)的持续移动进一步复杂化了用于CDN的元数据的管理。用于交付和管理元数据的改进方法是满足这种挑战所必需的。
发明内容
本文所描述的是用于在诸如内容交付网络(CDN)的分布式计算平台中交付和管理元数据的改进方法、设备和***。除其它的之外,本文的教导提供了用于交付和管理元数据的可伸缩和可配置的解决方案,优选地是通过充分利用动态获得的控制信息。例如,在一种实施例中,给定的CDN内容服务器可以接收并存储元数据(例如,在配置文件中)。元数据可以包含对动态的后期绑定(late-bound)控制信息的引用,用于满足元数据中的依赖关系。当为了解析和执行元数据而被需要时,这种动态控制信息优选地由CDN内容服务器请求,并且在许多情况下(但不限于)在对对象的客户端请求时来自远端主机。动态控制信息可以是参数,例如,到元数据配置文件中的函数的输入。动态控制信息可以是函数或逻辑。以这种方式,动态控制信息代表元数据配置文件中的一抽象层。除其它的之外,所注入的动态控制信息很好地适于被期望高度动态、更容易改变或旋转和/或具有高基数的信息。检索出的动态控制信息可以本地高速缓存,用于对后续请求的处理。各种进一步的细节、使用和备选方案在本文档中描述。
作为进一步的说明,在实施例中,装置可以包括具有构成一个或多个处理器的电路以及保持要被这一个或多个处理器执行的指令的存储器的内容交付网络(CDN)服务器。指令的执行可以使CDN服务器从客户端接收对特定内容的请求,该请求包括主机首部;确定主机首部中的串与存储在CDN服务器的一组内容控制中的内容控制关联。内容控制具有至少一个依赖关系。CDN服务器可以向远端主机发送对将满足该依赖关系的控制信息的请求;接收控制信息;以及利用该控制信息满足所述至少一个依赖关系。另外,CDN服务器可以在提供对请求的响应之前应用内容控制。
在一些情况下,被执行的指令可以使CDN服务器在CDN服务器高速缓存控制信息以供对特定内容的后续请求使用,和/或利用对控制信息的请求向远端主机发送内容领域标识符(例如,从客户端请求提取的)。内容领域标识符可以对应于,例如,云提供商的给定云消费者,云提供商是CDN的消费者并且提供作为以下至少之一的服务:基础设施即服务、平台即服务、软件即服务。
在一些情况下,内容控制可以包括取至少一个参数作为输入的函数,并且控制信息包括这至少一个参数,和/或确定特定内容对于从位于CDN服务器的高速缓存向客户端提供服务是否有效。在一些情况下,内容控制可以在标记语言配置文件中。
在另一种实施例中,存在具有构成一个或多个耦合到存储器的处理器的电路的服务器,其中存储器存储要由这一个或多个处理器执行的非临时性计算机程序指令。服务器可以经网络接口从客户端设备接收对特定内容的请求,并且从存储在服务器的一组内容控制中识别指示如何处理该请求的内容控制。内容控制可以具有对特定控制信息的至少一个依赖关系。服务器可以向远端主机发送对将满足该依赖关系的特定控制信息的请求,从远端主机接收该特定控制信息,并且利用该特定控制信息满足所述至少一个依赖关系。服务器还可以应用内容控制来确定如何处理请求。特定控制信息可以具有各种形式,但是例如可以包括构成逻辑语句、算法或别的的代码。作为应用内容控制的一部分,服务器可以在从远端主机接收到代码之后执行它。
在一些情况下,代码可以定义依赖于发出请求的客户端设备的硬件和/或软件特点、给客户端设备的带宽、HTTP请求信息、客户端IP地址或者在客户端请求时服务器知道的其它信息的函数。代码可以定义特定控制信息适用的客户端-服务器流量的一个或多个类别。代码可以设置内容控制所依赖的变量的值。代码可以包含服务器评估的一个或多个条件。
特定控制信息和代码可以代表内容策略,这在本文中进一步描述,并且在一些情况下这可以由运营服务器的内容交付网络的消费者定义。
内容控制可以在标记语言配置文件中。在这种情况下,配置文件可以包含对特定控制信息的引用,从而使服务器在客户端设备请求特定内容时作出对特定控制信息的请求。
本文所描述的主题在内容交付和在线平台体系架构中具有广泛的各种应用。
本领域技术人员将认识到,为了概述,以上的描述仅仅提到本发明的某些例子。它不是限制性的并且其教导可以在各种***、方法、装置以及非临时性计算机可读介质中实现。还应当指出,功能向特定机器的分配不是限制性的,因为本文所述的功能可以以各种方式在不同的机器之间组合或分割。
附图说明
结合附图,根据以下具体描述,本文的教导将得到更完整的理解,其中:
图1是说明被配置为内容交付网络的已知分布式计算机***的一种实施例的示意图;
图2是说明图1***中的机器的一种实施例的示意图;
图3是说明用于传送元数据控制信息的体系架构的一种实施例的示意图;
图4是说明用于传送元数据控制信息的体系架构的一种实施例的示意图;
图5是说明CDN服务器中的逻辑流实施例的图;
图6是说明CDN服务器中的逻辑流实施例的图;
图7是说明其中远端主机评估内容策略文档中的逻辑以确定要返回的控制信息的***实施例的图;
图8是说明CDN服务器中的逻辑流实施例的图;
图9是说明用于在网络边缘验证、认证和/或授权的分布式请求处理层实施例的示意图;
图10是说明CDN服务器中与图9的请求处理层相关的逻辑流实施例的图;
图11是说明CDN服务器中与图9的请求处理层相关的逻辑流实施例的图;
图12是说明CDN服务器中与图9的请求处理层相关的逻辑流实施例的图;
图13是说明CDN服务器中的逻辑流实施例的图;及
图14是说明可以被用来实现本文教导的计算机***中的硬件的框图。
具体实施方式
以下描述阐述本发明的实施例,以提供对本文所公开的方法和装置的结构、功能、制造和使用的原理的全面理解。在本文描述并在附图中示出的***、方法和装置是非限制性例子;本发明的范围只能由权利要求定义。联系一种示例性实施例描述或说明的特征可以与其它实施例的特征组合。这种修改和变体要在本发明的范围内。本文所引用的所有专利、公开物和参考文献的全部内容都通过引用明确地结合于此。贯穿本公开内容,术语“e.g.(例如)”被用作非限制性短语“forexample(例如)”的缩写。
介绍
内容交付可以通过把对内容(例如,诸如标记语言文件、图像、脚本、CSS、流媒体等的对象)的客户端请求指向内容交付网络–或者更具体地说,指向CDN的组成服务器之一–来提供。当CDN接收到对内容的客户端请求时,通常需要具有关于所请求的对象的身份和特点的信息,以及关于在交付那些对象时应当被调用的CDN平台的特征的信息。简言之,CDN(并且通过扩展是其组成服务器)需要具有关于如何处理内容请求的信息。
这种信息在本文被称为“元数据”。元数据可以包括关于内容提供商的对象的数据,并且更一般地说可以包括确定给定CDN服务器将如何处理对对象(可以是HTML文件、图像、CSS、脚本、流媒体或者其它数字内容)的请求的所有控制选项和参数的集合。例如,给定的对象可以具有与其关联的元数据,元数据反映诸如:
CP代码–内部跟踪数字,主要用于计费;
源服务器(OriginServer)–CDN服务器为了提取或重新验证对象而可能需要的对象的原始拷贝的位置(例如,内容提供商的服务器或NetStorage);
相干信息–诸如指示在到达源服务器之前CDN服务器应当高速缓存对象多长时间的生存时间(TTL)的信息;这维持对象的新鲜度。
元数据还可以指定在处理请求时CDN的某些特征应当被调用,以及如何这么做。这些特征可以从某些路由技术或高速缓存-层次结构-父母的使用到为其提供服务之前对内容的修改(例如,特定的web内容优化或特定于客户端设备的修改)、到重定向响应的选择性调用、到某些安全过程(例如,web应用防火墙)对从客户端发布的内容(HTTPPost)的应用。这些仅仅是例子。此类特征可以在CDN服务器操作的各个阶段应用:当处理客户端请求时、当生成对源服务器或其它远端来源的转发请求时、当从源接收响应时、当生成对客户端的响应时,等等。
随着CDN增长并且其特征集多样化,元数据的体积和复杂度显著增加。而且,朝云提供商,诸如平台即服务(PaaS)、基础设施即服务(IaaS)和/或软件即服务(SaaS)的提供商,的持续移动进一步复杂化了用于CDN的元数据的管理。
例如,CDN可以具有云提供商作为消费者,该云提供商向其自己的云消费者(或者换句话说,向“云用户”)提供基于云的服务。为了说明,假设基于云的服务使每个云消费者能够在云提供商平台上托管其网站。然后,云提供商与CDN一起工作,以便让CDN真正从托管平台交付内容。从CDN的角度,与云提供商存在一种直接消费者关系。但是,云提供商可能想具有独立配置至少一些或有可能其全部直接云消费者站点的能力,这是为了内部运营目的或者能够向其云消费者传递一定程度的定制。
作为说明,考虑作为SaaS提供商并且向其云消费者提供web应用的云提供商。SaaS提供商可能想对于每个云消费者不同地配置其web应用,再一次,内容是由CDN代表SaaS提供商交付的。
进一步考虑如前所述的更传统的内容提供商的情况,但是由于其在线操作的规模,其期望几十、几百或者甚至几千个独特的网站或者其它数字属性。单个配置将有可能不够–因为将有可能需要用于CDN的这一个内容提供商消费者的许多不同配置。
关于作为介绍的以上所述,以下所述的是解决这些和类似问题并且提供其它功能的改进的元数据***以及方法的实施例,其以下将变得更加清晰。
示例基础设施
图3说明了元数据基础设施的一种实施例。假设–仅仅为了说明–给定的云提供商是用于交付的CDN的消费者并且该云提供商具有许多云消费者,这些云消费者使用其服务并且通过扩展使用CDN的服务,类似于在介绍中给出的第一个例子。还假设给定的云消费者站点可以经由以下主机名来访问:
云消费者.云提供商.com
(这仅仅是例子。云消费者的主机名也可以同样命名为“www.云消费者.com”,这例如经由CNAME化名到“云提供商.com”域,但是,为了说明性目的,以上的主机名提供了合适的例子。)
还假设操作客户端设备308的用户在那个主机名搜寻内容。运行诸如浏览器的客户端应用的客户端设备308在主机名“云消费者.云提供商.com”上启动DNS查找,该主机名被化名(例如,CNAME)到CDN域,并且因此通过CDN名称服务,客户端设备308给出特定CDN服务器302的地址。这可以全都以在前面并在通过引用被结合于此的美国专利No.6,108,703中所述的方式进行。
客户端设备308向CDN服务器302发送内容请求(例如,HTTP“Get”或其它HTTP方法),该请求具有“云消费者.云提供商.com”的主机名首部。CDN服务器302定位并把请求绑定到它所具有的用于“云提供商.com”域的元数据配置文件302a。这可以例如由CDN服务器302执行DNS查找并检查CNAME链以确定要使用的CDN消费者和消费者标识符来进行,如在于2012年11月1日提交且标题为“Multi-domainconfigurationhandlinginanedgenetworkserver”的美国专利申请No.13/666.068(现在作为2013/0191499公开)中所描述的,其教导的全部内容通过引用被结合于此。
元数据配置文件302a,在一种实施例中是XML文件,可以包含某些(不变的)函数以及有可能包括某些被那些函数使用的参数,如在本领域中已知并在美国专利7,240,100中所描述的,并且可以在CDN服务器302周期性地分发和更新,如其中所描述的(在需要其用于客户端请求之前)。但是,配置文件302a中的元数据(有时候被称为“静态”或“不变的”控制数据)还可以包含对要在元数据函数中使用的动态的后期绑定参数的引用。当为了解析和执行元数据配置文件302a而被需要时(例如,在客户端请求时或者在处理的某个其它阶段),这些参数优选地由CDN服务器302获得。应当指出,该方法不限于注入的在既定函数中使用的参数值。在一些情况下,注入的信息可以代表某些元数据函数或逻辑。为了方便描述,所有此类的动态信息将在本文被统称为动态控制信息302b。动态控制信息302b代表元数据配置文件302a中的一抽象层,并且可以被看作用于CDN服务器302的控制信息的仅仅关于时间的项(just-in-timeitem)。在一些实施例中,动态控制信息是以内容策略的形式交付的复合体,它可以包含实现期望策略的参数和逻辑二者。内容策略在以下更详细地描述。
作为说明,考虑配置文件302a中对照被允许的引用者(referrer)的白名单(例如,被允许的主机名的列表)检查进入的请求的HTTP引用者首部的元数据函数。该函数可以是对照白名单对引用者首部运行(由CDN服务器302)的正则表示式匹配,例如,以XML表述。不是把白名单硬编码到元数据配置文件302a中,而是白名单被声明为参数,其(一个或多个)值必须由CDN服务器检索,以评估该函数。但这仅仅是该概念的一个例子。
如以上所指出的,CDN服务器302负责从远端主机304获得所需的后期绑定的动态控制信息302b。在一种实施例中,在处理请求之前,CDN服务器302调用中间处理例程,该中间处理例程解析元数据配置文件302a、确定数据依赖关系并且获得并注入必要的动态控制信息302b,以实现元数据配置文件302a中的这些依赖关系。然后,完整的元数据配置文件302a可以被用来处理客户端请求。
如图3中所示,在一种实施例中,CDN服务器302向远端主机304进行呼叫,例如,服务提供商接口(SPI)呼叫,以获得必需的动态控制信息302b。如本领域技术人员将认识到的,在这种实施例中,SPI意味着CDN作为呼叫方将定义接口细节。因此,在这种实现中,远端主机304可以是与SPI兼容的任何***,例如,由CDN运行的***、由CDN消费者(云提供商)运行的***,或者甚至由云提供商的消费者(云消费者)运行的***。在所说明的实施例中,远端主机304是高度可用的平台中的运营CDN的***,诸如被管理的网络存储设施(akaNetStorage)或者以别的方式,存储数据库400。数据库400具有动态控制信息302b。CDN可以提供启用web的门户306a或其它用户接口,通过其,例如,特定的云提供商和/或云提供商的云消费者可以配置或更新数据库。作为替代,云提供商可以让其自己的基础设施306b存储其控制信息,该控制信息通过适当的应用编程接口(API)周期性地传送到CDN的远端主机304。
内容领域
优选地,***300利用“内容领域”的概念来管理动态控制信息302b的检索和使用。“内容领域”定义为其检索动态控制信息302b的上下文。在这里,给定的CDN消费者可以与许多不同的已定义内容领域关联。如果CDN消费者是云提供商,例如,可以为每个云提供商的云消费者定义内容领域。对于使用在本文被定义为管理若干不同网站或其它数字属性的功能的CDN消费者,内容领域可以对应于每个站点,等等。内容领域还可以与站点的特定区域、或者与给定站点上显示的特定产品类别等等关联。
优选地,CDN消费者定义内容领域的范围和意义。然后,在处理来自客户端设备308的内容请求的过程中,CDN服务器302确定内容领域标识符(ID)302c并且经由SPI把其传递到远端主机304,远端主机304使用内容领域ID返回适当的动态控制信息的对应集合。以这种方式,假设内容领域ID对应于云提供商的云消费者,则用于该适当云消费者的动态控制信息302b被检索并注入元数据配置文件302a。图4说明了这个过程。在图4中,CDN服务器302对包括两个参数x、y的动态控制信息302b进行SPI请求并且发送具有值A、B或C的内容领域ID302c。假设内容领域ID302c对应于特定的云消费者。在数据库400中,x、y的值依赖于内容领域ID,因为不同的云消费者可能需要或期望不同的内容处理特征。远端主机304基于内容领域ID302c查找值并且把它们返回到服务器302,用于绑定到在元数据配置文件302a中声明的变量。
CDN服务器302可以以各种方式确定内容领域标识符302c。如所提到的,优选地,CDN消费者定义期望的内容领域302c,并且用于确定内容领域ID302c的逻辑可以包括在配置文件302a中。确定标识符302c的特定逻辑将依赖于它表示什么。优选地,CDN服务器302从在其自己与客户端设备308之间发生的内容请求事务/消息交换的某个方面中提取内容领域ID302c。例如,如果标识符302c代表云提供商的云消费者,则服务器302可以从请求的主机首部提取内容领域标识符302c(即,来自“云消费者.云提供商.com”的子域“云消费者”)。标识符还可以来自DNS化名(例如,CNAMING)链中的中间主机名或者其部分,其中DNS化名链是CDN服务器302通过对主机首部主机名执行DNS查找获得的(例如,如在于2012年11月1日提交且标题为“Multi-domainconfigurationhandlinginanedgenetworkserver”的美国专利申请No.13/666,068中所描述的,该专利申请现在作为美国专利公开No.2013/0191499公开,其内容通过引用被结合于此)。作为替代,CDN服务器302可以从所请求的URI路径名或其它URI成分中或者从某个其它HTTP请求首部中提取标识符302c。(应当指出,本文所使用的术语URI包括统一资源定位符或URL,如在本领域中已知的。)由此,内容领域ID可以对应于统一资源标识符(URI)路径名中的产品标识符,使得,例如,/pathfoo/productsl/*下的对象被识别为与/pathfoo/products2/*下的对象不同的内容领域,并且因此由不同的动态控制信息控制。内容领域ID302c可以从用户代理首部字段得出,使得客户端Windows机器匹配不同的内容领域,并且因此保证与运行另一操作***的客户端机器不同的动态控制信息302b,例如,或者使得无线客户端匹配到与台式PC不同的内容领域。
图5在一种实施例中并且在高层次说明了CDN服务器302中用以实现如上所述的控制信息的后期绑定的逻辑流。在图5中,在步骤501,CDN服务器302接收客户端请求。在502,CDN服务器把该请求绑定到元数据配置文件(例如,基于主机首部,这与特定的CDN消费者关联,如之前参考美国专利No.7,240,100和/或美国专利公开No.2013/0191499所描述的)。在503,CDN服务器302解析元数据配置文件302a,以确定对动态控制信息的依赖关系,并且在504确定内容领域ID。在505和506,CDN服务器302利用内容领域ID从远端主机304请求所需的动态控制信息并且接收回动态控制信息,把它本地高速缓存以供后用。在507,CDN服务器302构造完整的元数据配置文件,然后(508)根据其处理客户端请求。
高速缓存
在从远端主机304接收到之后,所获取的动态控制信息302b优选地本地高速缓存在CDN服务器302。因此,在一种实施例中,CDN服务器302将在客户端请求需要它的第一次从远端主机304拉必需的动态控制信息302b。例如,对特定HTML文件的请求作出响应所需的信息302b将被检索并高速缓存(应当指出,处理对HTML文件中嵌入式对象和/或对其它可能被请求的HTML文件的请求所需的控制信息可以同时被预先提取)。对于由相同或另一客户端设备308所作的后续请求,CDN服务器302可以使用本地高速缓存的信息。本地高速缓存条目可以与生存时间(TTL)关联,使得CDN服务器302周期性地刷新动态控制信息302b。优选地,信息的刷新与客户端请求同步,如以上所描述的。但是,在备选实施例中,动态控制信息302b的这种周期性刷新可以与客户端请求异步。
本地高速缓存不需要为所有对象或者为由CDN提供服务的所有各方存储动态控制信息302b。更确切地说,CDN服务器302优选地只检索对它接收的特定客户的内容请求作出响应所必需的动态控制信息302b、在空间允许的时候高速缓存该数据302b并且利用最近最少使用或其它高速缓存管理算法评估高速缓存中的旧条目。CDN服务器302通常是CDN当中许多个中的一个并且通常看到全部流量的某个部分。这意味着关于CDN实现的映射和负载平衡算法将附带地导致扩散请求的“负载”和存储动态控制信息302b,并且为元数据控制基础设施提供可伸缩的解决方案,上述算法在平台中的各个CDN服务器302中扩散客户端内容请求负载。换句话说,在优选实施例中,动态控制信息302b的负载将跟随客户端内容请求的负载。
例如,美国专利No.6,108,703在一种实施例中描述了用于经分布式服务器的大网络智能地路由和复制内容的方法。美国专利No.6,108,703的教导的全部内容通过引用被结合于此。
以上仅仅是作为例子。任何映射、流量成形、负载平衡或网络中的类似策略都可以被充分利用。另外,应当指出,有可能对动态控制信息302b强加与用于(inplacefor)客户端内容请求的策略不同的策略(例如,在某些条件下,可能期望以与对象如何分布无关的方式把动态控制信息302b推到或预先填充到CDN服务器的某些区域)。
清洗例子
在一种实施例中,***300可以被用来清洗高速缓存在CDN服务器中的“按需”对象。清洗对象涉及使它们失效(把它们的TTL标记为“到期”),使得它们不再响应于客户端请求而从CDN服务器的高速缓存得到服务,而是代替地从源/来源服务器检索或重新验证,因此刷新高速缓存。
例如,对于对特定对象的给定内容请求,CDN服务器302可以执行在关联的元数据配置文件302a中定义的“invalidate”函数。该函数可以确定所请求的内容是否应当被清洗并且依赖于来自远端主机304的后期绑定参数。以这种方式,至少在一种实施例中,清洗功能可以有选择并快速地实现,因为一旦远端主机304上的数据库被更新,这就会起作用。
在一种实现中,元数据配置文件302a中的函数以用于一个对象或一组对象的标识符作为参数(例如,标识符可以是指向特定对象的URI或者具有覆盖那条路径中的对象的通配符/pathfoo/*的URI路径)并且把所识别出的(一个或多个)对象的TTL设置为“到期”。从远端主机304拉后期绑定参数。远端主机304以特定的URI作出响应,从而使该函数把特定返回的URI之下高速缓存的对象设置为“到期”。这种技术可以被用来同时清洗不仅所请求的对象而且还有其它对象。
在另一种实现中,元数据配置文件302a中的函数预期布尔真/假并且依赖于答案把所请求对象的TTL设置为“到期”(或未到期)。CDN服务器302向远端主机304发送包括对象URI或其它标识符的内容领域ID302c。远端主机304在已经在数据库400中指定的URI(或其它标识符)中查找用于清洗的对象URI(或其它标识符),并且如果找到匹配就返回“真”。
这些仅仅是各种可能实现当中的两个并且仅仅是为了说明性目的而提供的。图6是说明上述“清洗过程”的第一种实现的流程图。
SPI流量的记录
参考图3,在一种实施例中,在(一个或多个)CDN服务器302与远端主机304之间流动的用于动态控制信息302b的流量可以被记录、测量并用于计费目的。由此,对特定消费者的网站和其它数字属性的配置越复杂,它们就越有可能要付费。
在远端主机的多维控制&评估逻辑
在备选实施例中,在远端服务器304的动态控制信息302b包含在内容策略文档中,该文档具有使远端主机304能够对给定的内容领域ID302c返回不同答案的嵌入式逻辑,其中不同答案依赖于CDN服务器302利用SPI请求发送的其它数据。这个附加的层把控制的另一维度添加到基础设施。
图7说明了一个例子。假设,由于客户端内容请求(例如,如图3中所示),CDN服务器302对动态控制信息302b作出SPI请求(在这个例子中,单个参数“x”)并且发送内容领域ID302c以及其它数据(在这个例子中并且在图7中被称为“维度ID”302d)。尽管维度ID302d可以代表任意一条信息,但它常常是从内容请求或者在请求时存在的某种条件得出的东西。内容策略文档包含把给定的维度ID302d匹配到桶/类别的逻辑层,然后返回用于那个类别的对应动态控制信息302b。如本领域技术人员将认识到的,多个参数的集合可以以这种方式被确定并返回。
在一个用例中,维度ID302d可以是由CDN服务器302从客户端IP地址得出的地理标识符或国家名。然后,类别可以代表地理区域,从而允许网站所有者把站点配置为基本上基于在CDN服务器302注入流中的数据对不同的区域不同地响应。类似地,CDN服务器302可以注入关于发出请求的客户端设备的数据(例如,其浏览器、屏幕尺寸、对某个软件的支持、对触摸屏的支持、是否是移动设备,等等)作为维度ID302d,CDN服务器302可以基于用户代理或客户端内容请求中的其它首部来确定。维度ID还可以代表客户端的连接性(例如,宽带、移动等),如由CDN服务器302测量或者以别的方式确定的。
如图7中所示,各种逻辑和功能可以包括在策略文档中。这种逻辑由远端主机评估,取得输入的数据(维度ID)并返回控制信息302(b)。
多于一个维度ID302d是可能的,从而导致一组丰富的配置选项。
复杂策略实施
如前面关于图3所指出的,在一些实施例中,后期绑定的动态控制信息302b可以包括函数或逻辑。这种函数和逻辑可以发送到CDN服务器302、绑定到适当的元数据配置文件302(a)参考,并且由CDN服务器302执行,以帮助确定如何处理流量。
这种动态控制信息302b可以对在CDN服务器302已知的广泛信息当中任何信息具有依赖关系。例子包括CDN服务器302从HTTP请求首部字段获得的信息、请求方法、请求URI或者其部分、cookie中的信息、一天当中的时间、与客户端关联的地理、关于客户端设备的信息(诸如屏幕或者所安装的操作***或OS,并且是从HTTP用户代理首部或以别的方式得出的)、客户端带宽信息,等等。
例如,如已知的,元数据逻辑部件可以以XML书写,并且可以在满足某些元数据条件的时候指示CDN服务器302采取某些动作、或者应用某些CDN特征。元数据还可以采用脚本语言或其它期望的指令集或编程语言。(前面提到并通过引用结合的)美国专利No.7,240,100描述了基于CDN服务器302对客户端带宽的了解重写原始请求URI的元数据部件。如果这个部件处于活动状态,则来自被识别为“高”带宽的客户端的请求被相应地重写,例如,从“/foo/bar.gif”到“/foo/bar.hi.gif”。来自被识别为“低”带宽的客户端的请求优选地不重写。
根据本文的教导,动态控制信息302b可以是元数据逻辑,诸如以上的有条件重写逻辑。更具体而言,图3中所示的元数据配置文件302a可以包含对动态控制信息302b的引用,这将代表指示CDN服务器302对来自客户端的请求实现有条件的高/低带宽重写的一块代码(例如,XML或别的)。
作为另一个例子,考虑前面讨论过的HTTP引用者检查功能,并且假设期望HTTP引用者检查功能只应用到图像对象(即,只有对图像的客户端请求被检查,以查看引用的URI是否有效URI)。如果引用者检查失败,则配置文件302a中的元数据可以指定客户端请求被拒绝,并且对于如何执行引用者检查逻辑,参考动态控制信息302b。该后期绑定的逻辑可以包含代码,其指示CDN服务器302只在请求针对某种图像类型(例如,.jpg、.gif等)时才应用引用者检查并且指示引用者检查已经以别的方式被满足,即,这不必要。如果请求是针对图像,则逻辑还可以提供用于白名单的值(即,在白名单上的主机名、IP地址等),用于由CDN服务器302对照真正的客户端请求进行评估。因此,引用者检查功能操作的方式和其所依赖的值/数据都可以以每个内容领域为基础来指定,并且按照需要由CDN服务器302获得。
在一种实施例中,前面的引用者检查功能可以通过用与元数据配置文件302a(例如,XML)相同的语言在一块代码中表述逻辑来实现。元数据配置文件302a将包含对动态控制信息302b的引用,并且作为响应,CDN服务器302将获得被引用的XML代码块并把它行内***配置文件302a(在这个例子中,也是XML),就像配置文件302a剩余部分那样执行其。
动态控制信息的复杂单元可以被看作内容策略。实质上,远端主机304存储由用于给定内容领域ID302c的动态控制信息302b表示的内容策略,并且CDN服务器302执行该逻辑,以实施那个内容策略。策略可以既设置配置文件302a中变量的值,又提供函数和逻辑。
图8说明了CDN服务器中关于复杂动态控制信息的逻辑流。步骤801-808沿着图5中的步骤501-508,但是在图8中,子步骤809、810、812、814反映基于其策略的复杂性与用于计费消费者的复杂控制信息和CPU使用机制有关的附加处理,这将在下面进一步描述。
内容策略可以利用以下描述的语法和结构来实现,其中动态控制信息被称为编码为策略断言资源的内容策略。这里是用于生成和发送策略断言资源的protobuf文件格式的例子:
根Envelope消息包含列出策略的内容策略、把流量归类为类别和子类的分类***(taxonomies)(例如,来自客户端的请求消息、来自源服务器的响应,或者在服务器被处理的其它消息)。在这个例子中,Envelope还包括版本、充当用于内容策略的类的句柄的generation_id(例如,为了使得能够一次全部废止给定类的策略)、验证内容策略实际上是用于从远端主机请求的content_realm的content_realm_id,以及可以被用来验证策略的真实性的某些数据。
策略包含一组规则,每个规则具有类别路径选择符和定义那个选择符匹配的结果的名称/值对的列表,例如,通过把命名变量设置为指定的值。然后,当评估元数据配置文件302a并且遇到对那个变量的任何引用时,变量的指定值可以被CDN服务器302使用。因此,利用分类***的流量分类和规则/选择符的应用可以被用来实现代表动态控制信息302b的逻辑,如前面所描述的。
选择符可以包含通配符,因此“*”将意味着任何类别,“*/protected”将意味着具有匹配的子类“protected”的任何类别。选择符的缺乏意味着策略适用于所有流量,这可以与“*”相同,但更加高效。选择符强迫对归类条件进行评估。除标记为“NEGATED”的必须为假的条件之外,类别具有全都必须为真的条件列表。
类别树被分成相互排斥的分类***。可以使用“//”的URI语法来去除对选择符中分类***的引用,例如:“//europe/images/*”。在URI中缺乏“//”的情况下,假设第一个分类***。
选择符可以组合多个类别路径URI与以下Boolean运算符:AND、OR、NOT。括号“(”和“)”可以被用作Boolean表达式的一部分。
在操作当中,CDN服务器302从远端主机304拉特定的策略并且通过评估它所依赖的选择符和条件/流量类别来实施该策略,由此设置变量等。(就像前面一样,优选地远端主机304存储许多不同策略–具有它们自己的有可能不同的选择符、条件、变量值等–并且基于由CDN服务器302给出的内容领域ID302c返回特定的策略,然后该策略被评估。)
利用这种方法,前面描述的引用者检查功能可以如下实现:
以上代码实现了“REFERRER-CHECK”策略,该策略经受具有名为“images”的选择符的规则,其指示WHITE_LIST值将应用到满足为图像流量的条件的流量(即,属于流量的“image”类别)。“image”类别在分类***中被定义为在客户端请求中所请求的URI中具有.jpg、.gif或.png文件扩展名的流量。
对应的元数据配置文件302a可以包括引用该策略的以下XML代码:
因此,当REFERRER-CHECK策略评估为真时,即,流量是针对图像时,<match>中的元数据被执行。嵌入的<match>评估当前的客户端请求是否具有在“whitelist”上的引用者首部,变量“whitelist”的值已经由REFERRER-CHECK策略设置。如果不,则嵌入的流量拒绝功能被执行,以拒绝客户端请求。
作为另一个例子,考虑指定何时采取特定动作并且不设置“whitelist”或其它变量的值的策略。例如,特定的动作可以是在CDN服务器302拒绝流量(例如,拒绝特定的客户端请求)。基于策略的评估,动作或者被执行,或者不被执行。
作为说明,以下是XML格式的包含对这种策略的引用的配置文件302的摘录:
<match:content-policyname=″UNAUTHORIZED_REQUEST">
<auth:traffic.deny>unauthorized_request</auth:traffic.deny>
</match:content-policy>
如果“UNAUTHORIZED_REQUEST”策略规则评估为真,则流量将按照封装的用于auth:traffic.deny的标签被拒绝。在这个例子中,没有用于该策略的变量要设置。
这里是策略本身:
这个策略定义了CDN服务器302将需要解析(评估)的选择符。如以上所提到的,如果选择符评估为真,则动作traffic.deny将被应用到手边的消息(例如,客户端请求),否则将不。
选择符规则依赖为流量类别声明的两个任意的命名空间,具体而言是“authz”分类***(授权的命名空间)之下的“host”和“country”。“host”和“country”命名空间是流量的有条件类并且CDN服务器302必须评估该条件。在这种情况下,内容策略的作者决定创建“//authz”分类***,这包括用于授权的主机首部的流量的一个类别(“host”)和用于授权的客户端国家的流量的另一个类别(“country”)。在这个例子中,REQUEST_HOST和GEOGRAPHY是由CDN服务器302执行的消费者有资格作为其产品定义/合同的一部分的有条件计算的类型。
总的来说,用于未授权主机或者来自未授权国家的流量使规则选择符评估为真,这在元数据配置文件302a中反映并且导致拒绝功能的执行,并且因此CDN服务器302拒绝给定的请求。
在这个例子中,策略有效地充当防火墙规则,确定在什么条件下拒绝功能应当被调用。作为动态控制信息302b,策略由CDN服务器302在需要的时候获得并且可以在保持元数据配置文件302a静态的情况下被改变。另外,由于可以为每个内容领域ID302c维护不同的策略,因此以上方法使得元数据配置文件302a的一个版本链接到并应用多种防火墙策略。例如,用于给定云提供商的配置文件302a可以链接到用于该云提供商的云消费者的各种消费者策略,并且内容领域ID302c识别每个云消费者。
验证/认证/授权层例子
在一些实施例中,本文所述的技术可以被充分利用,以创建可以验证、认证、授权客户端请求和/或对客户端请求执行其它处理的请求处理层。这层可以在给定的CDN服务器302中实现,从而使一组地理上分布的CDN服务器302充当到位于其后面的资源的分布式请求处理网关。为了描述的方便,这个验证/认证/授权层将在本文被称为“VAA”层,但不是所有这些功能都需要在每种实现中执行。这层后面的资源优选地是CDN平台资源,VAA层面向对平台机器的访问。例如,CDN通常提供用于供应和配置CDN平台的工具,该工具使CDN用户能够针对他们的网站、web应用和经CDN代表它们交付的其它数字属性供应和配置CDN特征/服务。CDN还可以提供共享的存储资源(例如,NetStorage)、共享的计算资源(例如,多租户共享计算)以及其它共享的基础设施和服务。应当指出,这种语境下的CDN用户可以是直接CDN消费者、云提供商或者云提供商的消费者。在这些情况下,CDN本身将常常定义内容策略以及其它动态控制信息,供在管理对它所提供的资源的访问中使用,而不是CDN用户定义用于例如其内容经CDN交付的内容策略。
当CDN用户想作出对这种资源的请求时,给定CDN服务器302中的VAA层可以在将其发送到平台内将真正实现对资源的请求,例如,通过返回所请求的对象、所请求的特定命令的结果,等等,的适当机器之前对给定的请求执行请求验证、认证和授权。通常,资源是利用客户端应用访问的,该客户端应用对用于访问已经由CDN使得CDN用户可用的给定资源的应用编程接口(API)作出请求。真正响应于API调用而提供资源的机器在本文被称为API源服务器或API源。
如本领域技术人员将理解的,API常常充当包围服务、数据库或***的包装,由一个编程人员团队为另一个团队制作。一般而言,API常常被实现为形成文件的调用集合,附带关于它们将如何动作,以及通常关于它们将返回的数据,的定义。在web的语境下,API常常包括在某个域中被理解的HTTP请求的模式或者将在接收方***中作用并且与连接的***的URL路径,并且把信息返回出web客户端,或者采取动作并向客户端报告结果。数据常常被利用GET和POST或其它HTTP调用传递到webAPI中,并且利用XML或JSON、其它开放格式或专有格式从webAPI返回。当然,HTTP语境之外的API也是可能的。
因此,例如,假设给定的CDN用户想供应和/或配置CDN的某个影响例如内容在其网站、web应用或其它数字属性上的交付的特征。CDN用户可以利用客户端应用向适当的(例如,在特定URL可用的)API端点发送API请求。经由已知的DNS化名技术(例如,CNAME和映射技术),客户端应用可以被指示向特定的CDN服务器302发送请求。客户端API请求可以在边缘被CDN服务器302接收,并且VAA层函数可以被执行,以创建从CDN服务器302到适当API源的经过验证的转发请求。然后,该API源释放已经由VAA层执行的功能。
类似地,如果给定的CDN用户想利用CDN的存储API上载、改变或观看网络存储资源上的内容,则CDN用户客户端应用可以向适当的API端点发送对这种存储资源的API请求。请求可以在边缘被CDN服务器302接收,在那里,验证、认证、授权和其它功能可以被执行,以创建从CDN服务器302到存储平台,或者更具体地说是到存储平台的API源,的经过验证的转发请求。
同样,如果给定的CDN消费者想向由CDN提供的计算平台托管的应用发送数据,则请求可以在CDN服务器302接收,在那里,验证、认证、授权和其它功能可以被执行,以创建从CDN服务器302到计算平台的API源的经过验证的转发请求。
以上仅仅是选出的例子。
图9说明了在分布式平台中具有给定CDN服务器302的以上场景。
在一种实施例中,通过利用元数据文件302a中的信息来定义不能经常改变或者不具有大量可能值的某些信息,可以在CDN服务器302中实现上述VAA层。例子可以包括在机器识别出的API端点(例如,URL)的列表、如何转发请求等。动态控制信息可以被用来在请求时支持被期望是高度动态、更容易改变或旋转和/或具有高基数的信息。这类数据可以包括用于给定客户端应用的凭证、用于给定API端点的资源模型、认证/授权算法所需的认证和/或授权秘密、用于客户端应用的访问策略,等等;以下将描述更多的例子。应当理解,在配置文件中缓慢改变/周期性更新的控制信息与动态控制信息之间不需要或预期特定的功能分配或分派,因为特定功能向一个或另一个的分配将随着设计需求和实现而变。
动态控制信息对VAA类型功能的使用可以是有利的,因为,除其它的之外,动态控制信息302a可以容易地被改变(例如,周期性地旋转秘密或改变访问策略),并且这种信息不需要驻留在每个CDN服务器302上,而是只驻留在需要的地方,因为它将基于基于拉的方法被高速缓存,从而向CDN服务提供可伸缩的前端,因此提供可伸缩的体系架构。VAA层还提供对底层API源的卸载,以及攻击保护措施(例如,预防DDOS攻击)。
作为进一步的说明,在一种实施例中,对API的给定请求可以在给定的CDN服务器302中在各个阶段利用各种部件来评估:
端点验证器:对照端点及其资源模型验证请求;
请求认证器:认证客户端凭证和带符号的请求消息;
授权实施器:实施(enforce)请求具有所需的授权;
请求装饰:向请求添加首部,用于由目标API进行的转发和处理;
内容策略代理:获取动态控制信息(例如,以内容策略的形式)。
在每个阶段,内容策略代码都可以获取态控制信息来应用(或者,如果不陈旧的话,则可以获得其本地高速缓冲版本)。内容策略代理可以基于对元数据配置文件中以上部件的引用并且基于从客户端请求提取的内容领域ID或者基于在处理API请求时CDN服务器302可用的其它信息来提取。例如,对于与特定CDN用户关联的给定客户端应用,不同的策略集合可以对它们尝试使用的每种类型的服务应用。因此,客户端在userl.purge.cdn.com/foo对API的调用可以与userl.upload.cdn.com/foo不同地对待。这仅仅是例子。
转向更具体的特定例程,图10是一种实施例中请求验证过程的说明。在这个阶段,CDN服务器302可以解析客户端请求,从而检查请求具有构成对有效API端点的有效请求的形式和实质,并且请求在设法以将被API允许和识别的方式与该API交互。应当指出,在不限制的情况下,图10-12遵循HTTP惯例,因此错误代码是指HTTP错误代码,首部是指HTTP首部,等等。
在图10中所说明的流程中,CDN服务器302接收指向特定API端点或服务的客户端请求。(方框1000)服务器可以执行各种一般性检查,诸如端点是否是有效端点、请求是否具有必要的首部或其它信息,以及它是否具有被支持的/正确签名算法,并且具有有效时间戳来防止重放攻击。(1001-1006)还可以检查请求中的令牌,以确保它们处于正确的格式并且没有被篡改。(1007-1008)请求中令牌的例子包括对应于用户、客户端应用、用户组和/或对特定服务集的令牌。
在图10的方框1009/1009a中,CDN服务器302获取动态控制信息302b,优选地是以内容策略的形式。在1009/1009a中获取的策略被称为API“端点内容策略”。被用来获取这种内容策略的内容领域ID可以是各种东西–因为方法是灵活的–但是作为说明,这种情况下的内容领域ID可以是被请求的特定API端点(例如,所请求的URL的域和/或可能其它成分)。API端点内容策略可以提供此类信息,诸如:用于特定API端点的资源模型,包括所请求的API支持什么请求方法、所请求的资源是否有效(例如,特定的URL路径和查询参数是否有效);什么其它自变量/参数/数据可能被需要以及它们是否在请求中存在;某些参数和限制,诸如已经为这个用户指定的POST主体的最大尺寸;以及什么是被支持的HTTP方法。
优选地,API端点内容策略包含比较该模型与挂起的请求的内容的算法。换句话说,API端点内容策略可以被执行,以确定给定的客户端请求是否遵循API源将预期的东西。(1010)在图10中,执行端点内容策略,并且如果请求被确定为有效,则验证例程规范化请求首部并且调用客户端认证例程。(1011-1014)
图11是一种实施例中客户端认证例程的说明。这个例程在1100在认证例程被调用的时候开始。优选地,该例程确保客户端请求具有附在图10验证例程结尾处的有效令牌,从而提供请求来自验证例程的检查。(1101)如果是这样,则认证例程拉用于认证例程的内容策略,这在图11中被称为“凭证内容策略”。(1102-1102a)用于获取凭证内容策略的内容领域ID可以由客户端令牌中由客户端给出的值、唯一识别客户端凭证的标识符定义,该定义服从客户端集合。凭证内容策略可以包括客户端的标识符,这对于客户端凭证旋转可以是不变的,对客户端凭证旋转不变的其它数据,对应于特定客户端的加密秘密,等等,以及用于期望的认证例程的其它数据。凭证内容策略还可以包含用于执行认证检查的算法。
CDN服务器302可以使用凭证内容策略提供的凭证来认证客户端请求。(1103-1108)如本领域技术人员将认识到的,利用凭证的各种认证机制和方法可以被采用。CDN服务器在认证时获取并具有如在动态获得的凭证内容策略中定义的用于给定客户端的一组凭证的能力意味着它可以利用在客户端请求解密、客户端请求签名计算和验证和/或作为认证的一部分的其它过程中使用的窄范围的凭证执行各种检查。
应当指出,客户端凭证策略还可以包含让CDN服务器302在客户端请求时依赖于服务器可用的某条其它数据,诸如客户端IP地址、地理、cookie等,进行认证的指令。由此,不在(由内容策略提供的)白名单上的客户端IP地址会导致该客户端不真实的压倒一切的决定。客户端凭证策略可以充分利用CDN服务器302中的客户端IP信誉模块,从而指示CDN服务器302获得特定客户端IP地址的信誉得分并且基于返回的得分作出压倒一切的认证决定。这仅仅是说明利用动态控制信息302b(在这个例子中是以凭证内容策略的形式)进行认证的灵活性和能力的例子。在认证完成后,授权例程可以在1109被调用。
图12是一种实施例中请求授权例程的说明。这个授权例程在验证和认证例程之后被调用,但是应当指出,这里所述例程之间和其中处理的次序是要说明特定的实现而不意味着限制。
当客户端请求从认证例程被转发时,授权例程在方框1200开始。授权例程在远端主机从多个之一当中检索授权内容策略。(1201-1201a)用于检索授权例程的内容领域ID的例子可以是,例如,在请求中提供的客户端访问令牌的值。在之前的例程中获得的数据(例如,所提取的端点中的数据以及客户端凭证内容策略)也可以与来自请求的信息一起使用和/或组合,以定义内容领域ID。授权内容策略优选地确定特定的客户端是否被允许访问利用其请求隐含地询问的资源。授权内容策略可以包含返回例如指示访问是否被允许的布尔值的逻辑。如关于客户端凭证策略所提到的,授权内容策略可以被用来依赖于接防(fielding)客户端请求的CDN服务器302可用的各种数据实施授权策略。例如,这种数据可以包括:请求令牌、客户端IP、API端点、请求方法和请求参数、地理(例如,从客户端IP地址得出的)、一天当中的时间、请求方法、cookie值,等等。那些可以被用来作出授权决定,如由动态获得的内容策略中的逻辑所阐述的。因此,授权内容策略可以被用来以用户为基础、以CDN用户的组织当中的角色为基础、以特定客户端应用为基础等等对CDN用户实施不同的授权范围。
返回图12,在确定客户端具有作出客户端请求的必需范围之后(1202-1204),请求装饰例程可以被调用。(1205-1207)请求装饰可以涉及在将其发送到API源之前把首部或其它信息添加到客户端请求。就像关于其它处理,请求装饰可以由在图12中以请求装饰策略形式的动态控制信息驱动。这种策略可以提供在将其转发到CDN平台中特定API源之前指示CDN服务器302如何装饰客户端请求的数据和/或逻辑。例如,装饰策略可以提供适当的首部以添加到请求(例如,给定来自请求的特定API端点和特定数据),和/或可以附上关于谁在请求服务的附加身份信息、用于跟踪或审计目的的关于处理客户端请求的CDN服务器302的信息,等等。请求还可以利用来自CDN服务器302的签名装饰,以指示成功的验证、认证和/或授权,使得这个签名可以稍后由API源验证。
在请求装饰处理完成之后(1208),经过装饰的客户端请求可以被发送到API源,如之前在图9中所说明的。CDN服务器302可以封装客户端请求并利用专用于CDN服务器和API源通信的单独加密且经过认证的通道在消息中将其发送到API源。CDN服务器可以查找用于API端点的适当API源。这种查找的结果产生用于API源的DNS主机名,然后CDN服务器302可以在DNS***中查找其,以确定向其发送请求的特定API源机器。
虽然以上描述集中在通过利用动态控制信息启用的CDN服务器访问CDN提供的资源,但是应当认识到,在其它实施例中,相同的技术可以被用来提供分布式VAA层,作为用于CDN消费者的服务。CDN可以为一组CDN服务器302提供由消费者定义的内容策略驱动的VAA层,并且API源可以是消费者自己的源服务器(例如,面向公众的网站或者,作为替代,其企业基础设施的一部分)。如果期望,则消费者源服务器可以仍然执行其自己的附加验证/认证/授权,但是CDN服务器302可以提供分布式前端,该前端提供卸载以及安全和防止攻击措施(例如,分发服务攻击的拒绝)。于是,利用标题为“Methodandsystemforprotectingwebsitesfrompublicinternetthreats”的美国专利No.7.260,639的教导,消费者源服务器可以被配置为只从提供VAA层的CDN服务器接受API请求,该专利的教导的全部内容通过引用被结合于此。
基于使用情况的计费
可以利用内容策略和动态控制信息的其它形式表述的逻辑的复杂性可以跨CDN用户广泛变化。因此,在一些实施例中,CDN可以基于它们希望让CDN服务器302实施的策略的复杂性向消费者收费。换句话说,用于给定用户的控制信息的计算“成本”是在CDN平台上计费的基础。
优选地,用于成本的测量单位是中央处理单元(CPU)周期,从而反映CPU必须利用它对其执行指令的数据执行的指令的复杂性,并且以独立于处理器运行的时钟频率的方式反映成本。优选地,CDN服务器302连同与评估内容策略关联的CPU周期一起记录事务。在以上的例子中,策略一般将调用<match:content-policy>标签,该标签又评估规则选择符,规则选择符又评估流量类别条件。在执行匹配标签的线程上所花的CPU周期被记录并汇聚。然后,这可以被用于计费目的。
跟踪执行策略所花的CPU周期的数目还有另一个目的:确定策略是否花费太多计算资源,如由超过预先定义和可配置的CPU周期最大限制所证明的。为了CDN服务器302的安全性目的,超过限制的策略可以被异常中止。
优选地,确定评估特定策略所花的CPU周期的成本是以廉价的方式执行的–从计算的角度–因此它不显著干扰或影响CDN服务器302的与流量相关的任务。另外,优选地,CPU周期度量的计算一般在相同的机器/OS上是一致的,或者能够跨不同的环境被规格化。
在一种实施例中,CPU周期可以通过读取CPU周期计数寄存器来测量,该寄存器为给定的CPU提供周期计数。在x86和Intel处理器上,这种寄存器被称为时间戳计数器(TSC)寄存器。其它类型的处理器提供可以被类似使用的寄存器。TSC是64位的寄存器。它是利用“rdtsc”指令被读取的。“rdtsc”指令在大约八纳秒之内返回所经过的CPU周期的数目,但是,该值是特定于CPU而不是特定于执行用户线程,因此在其它线程中的执行人为地使该值抬高。
当在CDN服务器302应用策略时,操作优选地以串行方式在其中一个CPU上执行。在执行操作的时候,从TSC读取的CPU周期计数读数在策略执行之前、期间和之后被取得。频繁的RSC读数在规则表达式的应用和条件评估期间被取得,并且这些读数被累计。在一种实现中,例如,在大约每十次条件评估就取得读数。
通过取得频繁的读数,变得更容易实现对策略应用实施最大CPU周期限制的战略。还变得更容易识别和/或除去由很少发生的线程上下文切换造成的离群(outlier)CPU读数,当在用户空间中运行软件时,这种离群CPU读数是不容易消除的。例如,读数的频率使得能够检测由线程上下文切换造成的大尖峰并且把它们过滤掉。
其结果是在允许基于使用情况的计费和方便实施对策略计算的限制的异构环境中对计算工作量的更准确测量,以便跨CDN用户提供服务质量保证。CDN服务提供商可以定义这种限制,以便管理其平台,并防止特定内容策略的执行过多地消耗CDN服务器的资源。
但是,由于以上识别出的关闭线程(off-thread)执行问题,即使频繁地读取,TSC也可能不够准确。由此,当上下文切换发生时用于测量CPU周期数量m的另一实施例如上读取TSC寄存器并且修改操作***内核以便识别和捕捉该CPU周期计数。内核可以使这些计数标记可用于计算CPU成本的过程,使得不可用的(关闭线程的)CPU周期可以从TSC计数中被消除(扣除),从而减少与上下文切换关联的错误。
还有另一种用于测量CPU周期的实施例涉及利用计数器的组合。在这种实施例中,计数器是上述的时间戳计数器(TSC),以及用于Linux的性能计数器(PCL),其中PCL是可用于Linux内核的监视接口(例如,在版本2.6.31或更晚的版本中)。PCL支持利用内核API获得每线程CPU周期测量的方法。使用PCL涉及打开到用于感兴趣的线程(执行内容策略的线程)的API的实例,调用RESET和ENABLED,然后周期性地利用***读调用取得读数。读取TSC涉及读PCL的更小计算成本,但是PCL可以更准确,因为它特定于给定的线程,而TSC不是并且因此会给出人为高的读数,如前面所指出的。
图13是说明使用TSC和PCL二者的实施例的流程图。给定策略的执行在1302开始,并且在1304,TSC和PCL寄存器都被读取,以建立用于其每一个的开始值。当过程到达执行策略匹配分类***类别、条件和其它逻辑的循环中给定的屈服点(yieldpoint)时(1306),TSC被读取,以确定当前的CPU周期计数(1310)。如果在1312TSC的CPU周期计数(TSC当前减去TSC开始)示出我们已经超过所配置的最大允许CPU周期数目,则我们通过读取PCL来进一步验证该读数(1318)。如果PCL的CPU周期计数(PCL当前减去PCL开始)示出限制还未被超过,则执行在1304继续。但是如果PCL也示出最大值被超过,则我们异常中止该内容策略匹配执行(1320和1322)。以这种方式,在常见的情况下,我们只读TSC,这是高效的。如果上下文切换发生并且TSC读数变得比预期高很多,则利用PCL验证将给出明确的答案。
假设CPU周期限制还没有达到,最终策略的执行正常完成。PCL在结束时被读取,以准确地计算花在内容策略匹配执行上的总CPU周期(PCL结束减去PCL开始)。(1314和1316)这个数字被用于记录和计费目的。
优选地,除了记录CPU周期计数,CDN服务器302还记录机器类型,以提供CPU计数值如何与所花时间关联的更好上下文(例如,机器的MHz/GHz额定值和CPU数/类型,并且还有可能其它硬件特点)。给定CPU周期计数和这些度量,可以计算所花的真正处理时间。
应当指出,依赖于设计目的和计费方法,用于确定计算成本的其它技术可以在某些实现中使用。例如,clock_gettime()和gettimeofday()函数也是可用的,但是这些一般比例如rdstc寄存器技术消耗更多的CPU时间。
另外,应当指出,其它方法可以被用来收取执行动态控制信息的费用,诸如测量所检索的控制信息的尺寸(策略尺寸)、条件或其它语句的数目(策略复杂性),和/或测量通过获取策略创建的CDN服务器与远端主机之间流量的量(策略流量)。
基于计算机的实现
本文所述的主题可以利用计算机***来实现,如由本文的教导修改的,本文所述的过程和功能特点是以由存储在其中的用于专门目的软件配置的专用硬件、通用硬件或者其组合实现的。
软件可以包括一个或几个离散的程序。给定的功能可以包括任何给定模块、过程、执行线程或其它此类编程结构的部分。一般而言,上述每个功能可以实现为计算机代码,即,实现为一组计算机指令,可在一个或多个微处理器中执行,以提供专用机器。代码可以利用常规的装置执行–诸如计算机中的微处理器、数字数据处理设备或者其它计算装置–如由本文的教导所修改的。在一种实施例中,这种软件可以以结合运行诸如Linux的操作***的标准Intel硬件平台上的代理运行的编程语言中实现。功能可以建立到代理的代码中,或者可以作为到那个代码的附属来执行。
虽然在以上一些情况下阐述了由某些实施例执行的操作的特定次序,但是应当理解,这种次序是示例性的并且它们可以以不同的次序执行、组合等等。而且,一些功能可以在给定的指令、程序序列、代码部分等当中组合或共享。说明书中对给定实施例的引用指示所述实施例可以包括特定的特征、结构或特点,但不是每种实施例都必须包括该特定的特征、结构或特点。
图14是说明本发明的实施例可以在其上实现的计算机***1400中的硬件的框图。计算机***1400可以在客户端设备、服务器、个人计算机、工作站、平板计算机、无线设备、移动设备、网络设备、路由器、集线器、网关或其它设备中体现。
计算机***1400包括耦合到总线1401的处理器1404。在一些***中,多个微处理器和/或微处理器核心可以被采用。计算机***1400还包括耦合到总线1401的主存储器1410,诸如随机存取存储器(RAM)或其它存储设备,用于存储要由处理器1404执行的信息和指令。只读存储器(ROM)1408耦合到总线1401,用于存储用于处理器1404的信息和指令。非易失性存储设备1406,诸如磁盘、固态存储器(例如,闪存存储器)或光盘,被提供并耦合到总线1401,用于存储信息和指令。其它专用集成电路(ASIC)、现场可编程门阵列(FPGA)或电路可以包括在计算机***1400中,用于执行本文所述的功能。
虽然计算机***1400常常经由通信接口1416被远程管理,但是为了本地管理目的,***1400可以具有把计算机***1400通信耦合到显示在计算机***上执行的软件的输出的用户显示器1414的***接口1412,以及把用户输入和指令传送到计算机***1400的输入设备1415(例如,键盘、鼠标、键区、触摸屏)。***接口1412可以包括用于诸如通用串行总线(USB)或其它通信链路的本地总线的接口电路和逻辑。
计算机***1400耦合到在***总线1401与外部通信链路之间提供链路的通信接口1416。通信接口1416提供网络链路1418。通信接口1416可以代表以太网或其它网络接口卡(NIC)、无线接口、调制解调器、光学接口或者其它种类的输入/输出接口。
网络链路1418通过一个或多个网络向其它设备提供数据通信。这种设备包括作为局域网(LAN)1426的一部分的其它计算机***。此外,网络链路1418经由互联网服务提供商(ISP)1420提供到因特网1422的链路。因特网1422又可以提供到诸如远端服务器1430和/或远端客户端1431的其它计算***的链路。网络链路1418和此类网络可以利用分组交换、电路交换或者其它数据传输方法发送数据。
在操作中,作为处理器执行代码的结果,计算机***1400可以实现本文所述的功能。这种代码可以从非临时性计算机可读介质,诸如存储器1410、ROM1408或存储设备1406,读取或存储在其上。其它形式的非临时性计算机可读介质包括盘、带、磁性介质、CD-ROM、光学介质、RAM、PROM、EPROM和EEPROM。任何其它的非临时性计算机可读介质都可以被采用。可执行代码也可以从网络链路1418读取(例如,在存储在接口缓冲区、本地存储器或其它电路中之后)。

Claims (52)

1.一种装置,包括:
内容服务器,具有构成一个或多个处理器的电路以及保持指令的存储器,所述指令要由所述一个或多个处理器执行以使所述内容服务器:
从客户端接收对特定内容的请求,所述请求包括主机首部;
确定所述主机首部中的串与存储在所述内容服务器的一组内容控制中的内容控制关联;
其中所述内容控制具有至少一个依赖关系;
向远端主机发送对将满足所述依赖关系的控制信息的请求;
接收所述控制信息;
利用所述控制信息满足所述至少一个依赖关系;
在提供对所述请求的响应之前应用所述内容控制。
2.如权利要求1所述的装置,被执行的指令还使所述内容服务器:
在所述内容服务器高速缓存所述控制信息以供对所述特定内容的后续请求使用。
3.如权利要求1所述的装置,被执行的指令还使所述内容服务器:
利用对控制信息的所述请求向所述远端主机发送控制领域标识符。
4.如权利要求3所述的装置,其中所述控制领域标识符是从所述请求中提取的。
5.如权利要求1所述的装置,其中内容交付网络服务提供商运营所述内容服务器作为对云提供商的服务,所述云提供商提供以下至少之一:基础设施即服务、平台即服务、软件即服务,并且其中所述控制领域标识符对应于所述云提供商的给定云消费者。
6.如权利要求1所述的装置,其中所述内容控制包括取至少一个参数作为输入的函数,并且所述控制信息包括所述至少一个参数。
7.如权利要求1所述的装置,其中具有所述至少一个依赖关系的所述内容控制确定所述特定内容对于从在所述内容服务器处的高速缓存向所述客户端提供是否有效。
8.如权利要求1所述的装置,其中所述内容控制是标记语言配置文件。
9.一种在内容服务器中实现的方法,包括:
从客户端接收对特定内容的请求,所述请求包括主机首部;
确定所述主机首部中的串与存储在所述内容服务器的一组内容控制中的内容控制关联;
其中所述内容控制具有至少一个依赖关系;
向远端主机发送对将满足所述依赖关系的控制信息的请求;
接收所述控制信息;
利用所述控制信息满足所述至少一个依赖关系;
在提供对所述请求的响应之前应用所述内容控制。
10.如权利要求9所述的方法,还包括:
在所述内容服务器高速缓存所述控制信息以供对所述特定内容的后续请求使用。
11.如权利要求9所述的方法,还包括:
利用对控制信息的所述请求向所述远端主机发送控制领域标识符。
12.如权利要求11所述的方法,还包括:
从所述请求中提取所述控制领域标识符。
13.如权利要求9所述的方法,其中内容交付网络服务提供商运营所述内容服务器作为对云提供商的服务,所述云提供商提供以下至少之一:基础设施即服务、平台即服务、软件即服务,并且其中所述控制领域标识符对应于所述云提供商的给定云消费者。
14.如权利要求9所述的方法,其中所述内容控制包括取至少一个参数作为输入的函数,并且所述控制信息包括所述至少一个参数。
15.如权利要求9所述的方法,其中具有所述至少一个依赖关系的所述内容控制确定所述特定内容对于从在所述内容服务器处的高速缓存向所述客户端提供是否有效。
16.如权利要求9所述的方法,其中所述内容控制是标记语言配置文件。
17.一种***,包括:
内容服务器,具有构成一个或多个处理器的电路以及保持指令的存储器,所述指令要由所述一个或多个处理器执行以使所述内容服务器:
从客户端接收对特定内容的请求,所述请求包括主机首部;
确定所述主机首部中的串与存储在所述内容服务器的一组内容控制中的内容控制关联;
其中所述内容控制具有至少一个依赖关系;
向远端主机发送对将满足所述依赖关系的控制信息的请求,所述请求包括从所述请求得出的一条或多条数据;
接收所述控制信息;
利用所述控制信息满足所述至少一个依赖关系;
在提供对所述请求的响应之前应用所述内容控制,
用于所述控制信息的远端主机,包括构成一个或多个处理器的电路以及保持指令的存储器,所述指令要由所述一个或多个处理器执行以使所述远端主机:
接收对所述控制信息的所述请求;
检索与所述控制信息关联的控制文件;
执行嵌在所述控制文件中的逻辑,所述逻辑取得所述一条或多条数据作为参数并且返回控制信息;
向所述内容服务器发送所述控制信息。
18.一种装置,包括:
服务器,具有构成耦合到存储器的一个或多个处理器的电路,所述存储器存储非临时性计算机程序指令,所述非临时性计算机程序指令要由所述一个或多个处理器执行以使所述服务器:
经由网络接口从客户端设备接收对特定内容的请求;
从存储在所述服务器的一组内容控制中识别指示如何处理所述请求的内容控制;
其中所述内容控制具有对特定控制信息的至少一个依赖关系;
向远端主机发送对将满足所述依赖关系的特定控制信息的请求;
从所述远端主机接收所述特定控制信息;
利用所述特定控制信息满足所述至少一个依赖关系;
应用所述内容控制来确定如何处理所述请求;
其中所述特定控制信息包括代码,所述服务器在从所述远端
主机接收到所述代码之后执行所述代码。
19.如权利要求18所述的装置,其中所述代码定义依赖于以下各项中的任意项的函数:发出请求的客户端设备的硬件或软件特点、给客户端设备的带宽、HTTP请求首部信息、与所述客户端设备关联的地理位置、客户端IP地址、cookie值、所请求的URI或者其部分。
20.如权利要求18所述的装置,其中所述代码定义所述特定控制信息适用的客户端-服务器流量的一个或多个类别。
21.如权利要求18所述的装置,其中一旦被所述服务器执行,所述代码就设置所述内容控制所依赖的变量的值。
22.如权利要求18所述的装置,其中所述代码包含服务器评估的一个或多个条件。
23.如权利要求18所述的装置,其中所述特定控制信息是内容策略。
24.如权利要求18所述的装置,其中所述内容策略是由运营所述服务器的内容交付网络的消费者定义的。
25.如权利要求18所述的装置,被执行的指令还使所述服务器:利用对所述特定控制信息的所述请求向所述远端主机发送内容领域标识符。
26.如权利要求18所述的装置,其中内容交付网络(CDN)服务提供商代表服务提供商运营所述服务器,所述服务提供商是以下至少之一:基础设施即服务(IaaS)提供商、平台即服务(PaaS)提供商、软件即服务(SaaS)提供商。
27.如权利要求18所述的装置,其中所述服务器作出对所述特定控制信息的请求是在所述客户端设备请求特定内容时进行的。
28.如权利要求18所述的装置,其中所述请求是HTTP请求并且所述服务器是HTTP代理服务器。
29.如权利要求18所述的装置,其中所述内容控制是在包含对所述特定控制信息的引用的配置文件中。
30.如权利要求18所述的装置,被执行的指令还使所述服务器:
确定与执行所述代码关联的处理成本,并且记录所述处理成本,从而使运营所述服务器的服务提供商由于所述代码的执行而向与所述特定内容关联的内容提供商收费。
31.如权利要求1所述的装置,其中所述处理成本包括CPU周期计数。
32.一种在服务器中实现的方法,包括:
经由网络接口从客户端设备接收对特定内容的请求;
从存储在所述服务器的一组内容控制中识别指示如何处理所述请求的内容控制,其中所述内容控制具有对特定控制信息的至少一个依赖关系;
向远端主机发送对将满足所述依赖关系的特定控制信息的请求;
从所述远端主机接收所述特定控制信息;
利用所述特定控制信息满足所述至少一个依赖关系;
应用所述内容控制来确定如何处理所述请求;
其中所述特定控制信息包括代码,所述服务器在从所述远端主机接收到所述代码之后执行所述代码。
33.如权利要求32所述的方法,其中所述代码定义所述特定控制信息适用的客户端-服务器流量的一个或多个类别。
34.如权利要求32所述的方法,其中所述代码包含服务器评估的一个或多个条件。
35.如权利要求32所述的方法,其中所述特定控制信息是内容策略。
36.如权利要求32所述的方法,其中所述内容策略是由运营所述服务器的内容交付网络的消费者定义的。
37.如权利要求32所述的方法,还包括:
利用对所述特定控制信息的所述请求向所述远端主机发送内容领域标识符。
38.如权利要求32所述的方法,其中一旦被所述服务器执行,所述代码就设置所述内容控制所依赖的变量的值。
39.一种装置,包括:
第一服务器,包括构成耦合到存储器的一个或多个处理器的电路,所述存储器保持非临时性计算机程序指令,所述非临时性计算机程序指令要由所述一个或多个处理器执行以使所述第一服务器:
经由网络接口从客户端设备接收请求;
从存储在所述第一服务器的一组内容控制中识别指示如何处理所述请求的内容控制,其中所述内容控制包括以下各项中的任意项:请求验证、客户端认证以及客户端授权;
其中所述内容控制具有对特定控制信息的至少一个依赖关系;
向远端主机发送对所述特定控制信息的请求;
从所述远端主机接收所述特定控制信息;
利用所述特定控制信息满足所述至少一个依赖关系;
向所述请求应用所述内容控制;
在应用所述内容控制之后,向第二服务器发送所述客户端设备请求的至少一部分。
40.如权利要求39所述的装置,其中所述客户端设备请求是针对经由应用编程接口(API)能访问的服务。
41.如权利要求39所述的装置,其中所述客户端设备请求指向代表API端点的统一资源定位符(URL),所述URL包括主机名和路径中的任意项。
42.如权利要求39所述的装置,其中所述特定控制信息包括以下项中的任意项:客户端标识符;认证秘密;用于验证所述客户端设备请求的逻辑;和用于认证或授权所述客户端设备或在其上执行的应用的逻辑。
43.如权利要求39所述的装置,其中所述第一服务器是多个分布式内容交付网络(CDN)服务器之一,所述客户端设备请求是针对经由API能访问的服务,并且所述服务包括由所述CDN提供的服务。
44.如权利要求39所述的装置,其中所述第一服务器是多个分布式CDN服务器之一,所述请求是针对经由API能访问的服务,并且所述服务启用与以下项中的任意项的交互:(i)由所述CDN代表内容提供商运营的多租户存储***,及(ii)由所述CDN代表内容提供商运营的多租户计算***。
45.如权利要求39所述的装置,其中所述第一服务器是多个分布式CDN服务器之一,所述请求是针对经由API能访问的服务,并且所述服务启用CDN内容交付服务的配置。
46.一种***,包括:
第一服务器,包括构成耦合到存储器的一个或多个处理器的电路,所述存储器保持非临时性计算机程序指令,所述非临时性计算机程序指令要由所述一个或多个处理器执行以使所述第一服务器:
经由网络接口从客户端设备接收请求;
从存储在所述第一服务器的一组内容控制中识别指示如何处理所述请求的内容控制,其中所述内容控制包括以下各项中的任意项:请求验证、客户端认证以及客户端授权;
其中所述内容控制具有对特定控制信息的至少一个依赖关系;
向远端主机发送对所述特定控制信息的请求;
远端主机,包括构成耦合到存储器的一个或多个处理器的电路,所述存储器保持非临时性计算机程序指令,所述非临时性计算机程序指令要由所述一个或多个处理器执行以使所述远端主机:
接收对所述特定控制信息的所述请求;
从本地存储设备中包含控制信息的多个文件中选择包含所述特定控制信息的文件;
向所述第一服务器发送所述特定控制信息;
还使得所述第一服务器:
从所述远端主机接收所述特定控制信息;
利用所述特定控制信息满足所述至少一个依赖关系;
向所述请求应用所述内容控制;
在应用所述内容控制之后,向第二服务器发送所述客户端设备请求的至少一部分;
其中所述客户端设备请求是针对经由应用编程接口(API)能访问的服务,并且所述第二服务器提供所述服务。
47.如权利要求46所述的***,其中对所述特定控制信息的所述请求包括内容领域标识符,并且所述远端主机至少部分地基于所述内容领域标识符选择要发送到所述第一服务器的特定控制信息。
48.如权利要求46所述的***,其中所述第一服务器是多个分布式内容交付网络(CDN)服务器之一,所述客户端设备请求是针对经由API能访问的服务,并且所述服务包括由所述CDN提供的服务。
49.如权利要求46所述的***,其中所述特定控制信息包括以下项中的任意项:客户端标识符;认证秘密;用于验证所述客户端设备请求的逻辑;和用于认证或授权所述客户端设备或在其上执行的应用的逻辑。
50.如权利要求46所述的***,其中第一服务器是多个分布式内容交付网络(CDN)服务器之一,客户端设备请求是针对经由API可访问的服务,并且服务包括由CDN提供的服务。
51.如权利要求46所述的***,其中所述第一服务器是多个分布式CDN服务器之一,所述请求是针对经由API能访问的服务,并且所述服务启用与以下项中的任意项的交互:(i)由所述CDN代表内容提供商运营的多租户存储***,及(ii)由所述CDN代表内容提供商运营的多租户计算***。
52.如权利要求46所述的***,其中所述第一服务器是多个分布式CDN服务器之一,所述请求是针对经由API能访问的服务,并且所述服务启用CDN内容交付服务的配置。
CN201380073436.7A 2012-12-21 2013-12-20 用于可伸缩的内容交付网络请求处理机制的***和方法 Active CN105144725B (zh)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US201261740627P 2012-12-21 2012-12-21
US201261740598P 2012-12-21 2012-12-21
US61/740,598 2012-12-21
US61/740,627 2012-12-21
US201361827398P 2013-05-24 2013-05-24
US61/827,398 2013-05-24
US201361841822P 2013-07-01 2013-07-01
US61/841,822 2013-07-01
US201361884756P 2013-09-30 2013-09-30
US61/884,756 2013-09-30
US14/135,158 US9667747B2 (en) 2012-12-21 2013-12-19 Scalable content delivery network request handling mechanism with support for dynamically-obtained content policies
US14/135,158 2013-12-19
PCT/US2013/077298 WO2014100759A1 (en) 2012-12-21 2013-12-20 Scalable content delivery network request handling mechanism

Publications (2)

Publication Number Publication Date
CN105144725A true CN105144725A (zh) 2015-12-09
CN105144725B CN105144725B (zh) 2018-07-20

Family

ID=50975948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380073436.7A Active CN105144725B (zh) 2012-12-21 2013-12-20 用于可伸缩的内容交付网络请求处理机制的***和方法

Country Status (4)

Country Link
US (7) US9509804B2 (zh)
CN (1) CN105144725B (zh)
CA (1) CA2899405C (zh)
WO (1) WO2014100759A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018014837A1 (zh) * 2016-07-20 2018-01-25 腾讯科技(深圳)有限公司 内容分发网络的处理方法、内容分发网络、装置及存储介质
CN109565511A (zh) * 2016-09-16 2019-04-02 甲骨文国际公司 用于多租户身份和数据安全管理云服务的租户和服务管理
CN109691057A (zh) * 2016-09-09 2019-04-26 微软技术许可有限责任公司 经由私人内容分发网络可交换地取回敏感内容
CN113535744A (zh) * 2021-07-09 2021-10-22 深圳市蘑菇财富技术有限公司 租户数据修改方法、***、设备及存储介质
CN113810463A (zh) * 2021-08-06 2021-12-17 新浪网技术(中国)有限公司 一种下发cdn服务器配置方法及***
CN114095237A (zh) * 2021-11-17 2022-02-25 清华大学 基于区块链的去中心化的域间源地址验证服务***和方法
CN114127681A (zh) * 2019-09-13 2022-03-01 华为技术有限公司 用于实现数据流ai应用的自主加速的方法和装置

Families Citing this family (113)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710852B1 (en) 2002-05-30 2017-07-18 Consumerinfo.Com, Inc. Credit report timeline user interface
US9990674B1 (en) 2007-12-14 2018-06-05 Consumerinfo.Com, Inc. Card registry systems and methods
US8127986B1 (en) 2007-12-14 2012-03-06 Consumerinfo.Com, Inc. Card registry systems and methods
US8312033B1 (en) 2008-06-26 2012-11-13 Experian Marketing Solutions, Inc. Systems and methods for providing an integrated identifier
US8060424B2 (en) 2008-11-05 2011-11-15 Consumerinfo.Com, Inc. On-line method and system for monitoring and reporting unused available credit
US9025647B2 (en) * 2009-10-26 2015-05-05 Sony Corporation Device for use in a power line communication system, power line communication systems and power line communication method
US10263958B2 (en) 2010-03-18 2019-04-16 Nominum, Inc. Internet mediation
US9665854B1 (en) 2011-06-16 2017-05-30 Consumerinfo.Com, Inc. Authentication alerts
US9483606B1 (en) 2011-07-08 2016-11-01 Consumerinfo.Com, Inc. Lifescore
US9106691B1 (en) 2011-09-16 2015-08-11 Consumerinfo.Com, Inc. Systems and methods of identity protection and management
US8738516B1 (en) 2011-10-13 2014-05-27 Consumerinfo.Com, Inc. Debt services candidate locator
US9817916B2 (en) 2012-02-22 2017-11-14 Akamai Technologies Inc. Methods and apparatus for accelerating content authored for multiple devices
US9853959B1 (en) * 2012-05-07 2017-12-26 Consumerinfo.Com, Inc. Storage and maintenance of personal data
US9654541B1 (en) 2012-11-12 2017-05-16 Consumerinfo.Com, Inc. Aggregating user web browsing data
US9916621B1 (en) 2012-11-30 2018-03-13 Consumerinfo.Com, Inc. Presentation of credit score factors
US10255598B1 (en) 2012-12-06 2019-04-09 Consumerinfo.Com, Inc. Credit card account data extraction
US9654579B2 (en) 2012-12-21 2017-05-16 Akamai Technologies, Inc. Scalable content delivery network request handling mechanism
US9509804B2 (en) 2012-12-21 2016-11-29 Akami Technologies, Inc. Scalable content delivery network request handling mechanism to support a request processing layer
US9870589B1 (en) 2013-03-14 2018-01-16 Consumerinfo.Com, Inc. Credit utilization tracking and reporting
US9406085B1 (en) 2013-03-14 2016-08-02 Consumerinfo.Com, Inc. System and methods for credit dispute processing, resolution, and reporting
US10102570B1 (en) 2013-03-14 2018-10-16 Consumerinfo.Com, Inc. Account vulnerability alerts
US10685398B1 (en) 2013-04-23 2020-06-16 Consumerinfo.Com, Inc. Presenting credit score information
US10250579B2 (en) * 2013-08-13 2019-04-02 Alcatel Lucent Secure file transfers within network-based storage
US9443268B1 (en) 2013-08-16 2016-09-13 Consumerinfo.Com, Inc. Bill payment and reporting
US9413842B2 (en) 2013-09-25 2016-08-09 Verizon Digital Media Services Inc. Instantaneous non-blocking content purging in a distributed platform
US9648125B2 (en) 2013-10-04 2017-05-09 Akamai Technologies, Inc. Systems and methods for caching content with notification-based invalidation
US9813515B2 (en) 2013-10-04 2017-11-07 Akamai Technologies, Inc. Systems and methods for caching content with notification-based invalidation with extension to clients
US9641640B2 (en) 2013-10-04 2017-05-02 Akamai Technologies, Inc. Systems and methods for controlling cacheability and privacy of objects
US10102536B1 (en) 2013-11-15 2018-10-16 Experian Information Solutions, Inc. Micro-geographic aggregation system
US10325314B1 (en) 2013-11-15 2019-06-18 Consumerinfo.Com, Inc. Payment reporting systems
US9477737B1 (en) 2013-11-20 2016-10-25 Consumerinfo.Com, Inc. Systems and user interfaces for dynamic access of multiple remote databases and synchronization of data based on user rules
US9558035B2 (en) * 2013-12-18 2017-01-31 Oracle International Corporation System and method for supporting adaptive busy wait in a computing environment
US9549040B2 (en) 2014-03-12 2017-01-17 Instart Logic, Inc. First cache purge optimization handling of unavailable nodes
US9854001B1 (en) 2014-03-25 2017-12-26 Amazon Technologies, Inc. Transparent policies
US9680872B1 (en) 2014-03-25 2017-06-13 Amazon Technologies, Inc. Trusted-code generated requests
US9591064B2 (en) * 2014-03-31 2017-03-07 Verizon Patent And Licensing Inc. Method and apparatus for dynamic provisioning of communication services
US9892457B1 (en) 2014-04-16 2018-02-13 Consumerinfo.Com, Inc. Providing credit data in search results
US9576030B1 (en) 2014-05-07 2017-02-21 Consumerinfo.Com, Inc. Keeping up with the joneses
US10484471B2 (en) 2014-05-12 2019-11-19 Netapp, Inc. Bridging clouds
US10506027B2 (en) * 2014-08-27 2019-12-10 Tensera Networks Ltd. Selecting a content delivery network
US10897616B2 (en) * 2014-12-08 2021-01-19 Harmonic, Inc. Dynamic allocation of CPU cycles vis-a-vis virtual machines in video stream processing
US10104405B1 (en) * 2014-12-08 2018-10-16 Harmonic, Inc. Dynamic allocation of CPU cycles in video stream processing
US10445152B1 (en) 2014-12-19 2019-10-15 Experian Information Solutions, Inc. Systems and methods for dynamic report generation based on automatic modeling of complex data structures
US10194210B2 (en) * 2015-02-10 2019-01-29 Hulu, LLC Dynamic content delivery network allocation system
US10841317B2 (en) * 2015-03-31 2020-11-17 Dell Products, Lp Processing content sharing system data from a plurality of remotely connected computing devices in physical or virtualized space
US20160328279A1 (en) * 2015-05-07 2016-11-10 Ebay Inc. Method and System for Providing a Framework as a Service
CN104834722B (zh) * 2015-05-12 2018-03-02 网宿科技股份有限公司 基于cdn的内容管理***
US20160344751A1 (en) * 2015-05-19 2016-11-24 Fastly, Inc. Customized record handling in a content delivery network
US10397106B2 (en) * 2015-06-09 2019-08-27 Fastly, Inc. Mobile conditions aware content delivery network
US20160380975A1 (en) * 2015-06-24 2016-12-29 Cisco Technology, Inc. Domain Name Service Redirection for a Content Delivery Network with Security as a Service
US10701038B2 (en) * 2015-07-27 2020-06-30 Cisco Technology, Inc. Content negotiation in a content centric network
CN106453449A (zh) * 2015-08-06 2017-02-22 泰兴市智瀚科技有限公司 信息即时推送的方法和分布式***服务器
US11895212B2 (en) * 2015-09-11 2024-02-06 Amazon Technologies, Inc. Read-only data store replication to edge locations
US10848582B2 (en) 2015-09-11 2020-11-24 Amazon Technologies, Inc. Customizable event-triggered computation at edge locations
DE102016218210A1 (de) * 2015-09-30 2017-03-30 Robert Bosch Engineering and Business Solutions Ltd. Ein dynamischer Aufgabenplaner in einer Mehrkern-Elektroniksteuereinheit
US10320844B2 (en) * 2016-01-13 2019-06-11 Microsoft Technology Licensing, Llc Restricting access to public cloud SaaS applications to a single organization
US10678919B2 (en) * 2016-02-19 2020-06-09 Secureworks Corp. System and method for detecting and monitoring process creation
US10268816B2 (en) * 2016-03-31 2019-04-23 Microsoft Technology Licensing, Llc Dynamic updating of process policies
US10530888B2 (en) * 2016-06-01 2020-01-07 Home Box Office, Inc. Cached data expiration and refresh
US10375154B2 (en) 2016-07-29 2019-08-06 Microsoft Technology Licensing, Llc Interchangeable retrieval of content
WO2018039377A1 (en) 2016-08-24 2018-03-01 Experian Information Solutions, Inc. Disambiguation and authentication of device users
US10404649B2 (en) * 2016-09-30 2019-09-03 DISH Technologies L.L.C. Content delivery optimization using adaptive and dynamic DNS
US10298543B2 (en) * 2016-12-12 2019-05-21 Verisign, Inc. Real-time association of a policy-based firewall with a dynamic DNS hostname
US10621246B2 (en) * 2017-06-02 2020-04-14 Apple Inc. Systems and methods for building an on-device temporal web index for user curated/preferred web content
US20180349467A1 (en) 2017-06-02 2018-12-06 Apple Inc. Systems and methods for grouping search results into dynamic categories based on query and result set
US11681568B1 (en) 2017-08-02 2023-06-20 Styra, Inc. Method and apparatus to reduce the window for policy violations with minimal consistency assumptions
US10984133B1 (en) 2017-08-02 2021-04-20 Styra, Inc. Defining and distributing API authorization policies and parameters
US10372504B2 (en) 2017-08-03 2019-08-06 Akamai Technologies, Inc. Global usage tracking and quota enforcement in a distributed computing system
US10545786B2 (en) 2017-09-22 2020-01-28 International Business Machines Corporation Accounting and enforcing non-process execution by container-based software transmitting data over a network
US10810038B2 (en) 2017-09-22 2020-10-20 International Business Machines Corporation Accounting and enforcing non-process execution by container-based software receiving data over a network
US11429400B2 (en) * 2017-10-20 2022-08-30 Red Hat, Inc. User interface metadata from an application program interface
US10439925B2 (en) 2017-12-21 2019-10-08 Akamai Technologies, Inc. Sandbox environment for testing integration between a content provider origin and a content delivery network
US10997320B1 (en) * 2018-01-31 2021-05-04 EMC IP Holding Company LLC Segment-based personalized cache architecture
US10958649B2 (en) 2018-03-21 2021-03-23 Akamai Technologies, Inc. Systems and methods for internet-wide monitoring and protection of user credentials
US11012362B2 (en) 2018-06-18 2021-05-18 Akamai Technologies, Inc. Download management with congestion mitigation for over the air content delivery to vehicles
US10667172B2 (en) 2018-06-18 2020-05-26 Akamai Technologies, Inc. Download management with congestion mitigation for over the air content delivery to vehicles
WO2019245821A1 (en) 2018-06-18 2019-12-26 Akamai Technologies, Inc. Download management with congestion mitigation for over the air content delivery to vehicles
US11853463B1 (en) 2018-08-23 2023-12-26 Styra, Inc. Leveraging standard protocols to interface unmodified applications and services
US10719373B1 (en) 2018-08-23 2020-07-21 Styra, Inc. Validating policies and data in API authorization system
US11080410B1 (en) 2018-08-24 2021-08-03 Styra, Inc. Partial policy evaluation
US10671749B2 (en) 2018-09-05 2020-06-02 Consumerinfo.Com, Inc. Authenticated access and aggregation database platform
US11477239B1 (en) 2018-10-16 2022-10-18 Styra, Inc. Simulating policies for authorizing an API
US11315179B1 (en) 2018-11-16 2022-04-26 Consumerinfo.Com, Inc. Methods and apparatuses for customized card recommendations
US10402589B1 (en) * 2018-12-20 2019-09-03 Vijay K. Madisetti Method and system for securing cloud storage and databases from insider threats and optimizing performance
US11159570B2 (en) * 2018-12-26 2021-10-26 Twistlock, Ltd. Cloud native discovery and protection
US11238656B1 (en) 2019-02-22 2022-02-01 Consumerinfo.Com, Inc. System and method for an augmented reality experience via an artificial intelligence bot
FR3094164B1 (fr) * 2019-03-22 2021-10-29 Streamroot Procédé d’obtention d’un segment de données par un dispositif client apte à communiquer avec une pluralité de réseaux de diffusion de contenu
US11481825B1 (en) 2019-03-29 2022-10-25 Amazon Technologies, Inc. Transaction processing at edge servers in a content distribution network
CN111866047B (zh) * 2019-04-30 2023-07-07 北京达佳互联信息技术有限公司 数据解码方法、装置、计算机设备及存储介质
US11288244B2 (en) 2019-06-10 2022-03-29 Akamai Technologies, Inc. Tree deduplication
US11941065B1 (en) 2019-09-13 2024-03-26 Experian Information Solutions, Inc. Single identifier platform for storing entity data
US11210360B2 (en) 2019-09-30 2021-12-28 Bby Solutions, Inc. Edge-caching optimization of personalized webpages
US11704383B2 (en) * 2019-09-30 2023-07-18 Bby Solutions, Inc. Dynamic generation and injection of edge-cached meta-data
US11082741B2 (en) 2019-11-19 2021-08-03 Hulu, LLC Dynamic multi-content delivery network selection during video playback
CN112929321B (zh) * 2019-12-05 2023-02-03 北京金山云网络技术有限公司 一种鉴权方法、装置及终端设备
US11343285B2 (en) * 2020-01-31 2022-05-24 Palo Alto Networks, Inc. Multi-access edge computing services security in mobile networks by parsing application programming interfaces
US10853441B1 (en) * 2020-02-17 2020-12-01 Bby Solutions, Inc. Dynamic edge cache for query-based service
EP3926926B1 (en) 2020-06-19 2024-02-28 Sap Se Method and system for delivering restricted-access resources using a content delivery network
US11431690B1 (en) * 2020-06-23 2022-08-30 Amazon Technologies, Inc. Protecting data within an edge location while providing access to associated metadata
US11444931B1 (en) * 2020-06-24 2022-09-13 F5, Inc. Managing name server data
CN111901346B (zh) * 2020-07-29 2022-10-25 北京奇艺世纪科技有限公司 一种身份认证***
US11128732B1 (en) 2020-08-04 2021-09-21 Akamai Technologies, Inc. Admission policies for queued website visitors
US11233768B1 (en) 2020-09-30 2022-01-25 Akamai Technologies, Inc. CDN configuration tuning based on domain scan analysis
US11379281B2 (en) * 2020-11-18 2022-07-05 Akamai Technologies, Inc. Detection and optimization of content in the payloads of API messages
US11496786B2 (en) 2021-01-06 2022-11-08 Hulu, LLC Global constraint-based content delivery network (CDN) selection in a video streaming system
US11343348B1 (en) 2021-04-12 2022-05-24 Akamai Technologies, Inc. Real-time message delivery and update service in a proxy server network
US11343344B1 (en) 2021-04-23 2022-05-24 Akamai Technologies, Inc. Proxy server entity transfer modes
CN114448849B (zh) * 2021-12-17 2023-12-05 北京邮电大学 网站IPv6网络支持模式检测方法及电子设备
US11445045B1 (en) * 2021-12-21 2022-09-13 Akamai Technologies, Inc. Systems and methods for preventing the caching of rarely requested objects
US11843682B1 (en) * 2022-08-31 2023-12-12 Adobe Inc. Prepopulating an edge server cache
US11929891B1 (en) * 2023-01-10 2024-03-12 Dell Products L.P. System and method for distributed management of hardware through relationship management
US11907230B1 (en) 2023-01-10 2024-02-20 Dell Products L.P. System and method for distributed management of hardware based on intent
US12034726B1 (en) * 2023-05-31 2024-07-09 Cloudflare, Inc. Logging access types based on inserting tenant control headers into requests

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240100B1 (en) * 2000-04-14 2007-07-03 Akamai Technologies, Inc. Content delivery network (CDN) content server request handling mechanism with metadata framework support
US20100088505A1 (en) * 2008-10-03 2010-04-08 Limelight Networks, Inc. Content delivery network encryption
WO2011143168A1 (en) * 2010-05-10 2011-11-17 Amazon Technologies Inc. Providing text content embedded with multimedia content
US8225377B2 (en) * 2004-04-14 2012-07-17 Telecom Italia S.P.A. Method and system for handling content delivery in communication networks
CN102687480A (zh) * 2009-12-12 2012-09-19 阿卡麦科技公司 基于云的防火墙***及服务
US20120317655A1 (en) * 2011-06-10 2012-12-13 Futurewei Technologies, Inc. Method for Flexible Data Protection with Dynamically Authorized Data Receivers in a Content Network or in Cloud Storage and Content Delivery Services

Family Cites Families (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0773059A (ja) 1993-03-02 1995-03-17 Tandem Comput Inc フォールトトレラント型コンピュータシステム
US6079032A (en) 1998-05-19 2000-06-20 Lucent Technologies, Inc. Performance analysis of computer systems
US6108703A (en) 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US7225264B2 (en) 1998-11-16 2007-05-29 Softricity, Inc. Systems and methods for delivering content over a computer network
US20010049741A1 (en) 1999-06-18 2001-12-06 Bryan D. Skene Method and system for balancing load distribution on a wide area network
US6427172B1 (en) 1999-07-20 2002-07-30 Cyberstar, L.P. Method and apparatus for internet cache content delivery via a data distribution system
US6487637B1 (en) 1999-07-30 2002-11-26 International Business Machines Corporation Method and system for clearing dependent speculations from a request queue
AU6643100A (en) 1999-08-16 2001-03-13 Orblynx, Inc. Internet caching system
US6792575B1 (en) 1999-10-21 2004-09-14 Equilibrium Technologies Automated processing and delivery of media to web servers
US7590739B2 (en) 1999-11-22 2009-09-15 Akamai Technologies, Inc. Distributed on-demand computing system
US6405252B1 (en) * 1999-11-22 2002-06-11 Speedera Networks, Inc. Integrated point of presence server network
US6665726B1 (en) 2000-01-06 2003-12-16 Akamai Technologies, Inc. Method and system for fault tolerant media streaming over the internet
US6996616B1 (en) 2000-04-17 2006-02-07 Akamai Technologies, Inc. HTML delivery from edge-of-network servers in a content delivery network (CDN)
US6976090B2 (en) 2000-04-20 2005-12-13 Actona Technologies Ltd. Differentiated content and application delivery via internet
US6961858B2 (en) 2000-06-16 2005-11-01 Entriq, Inc. Method and system to secure content for distribution via a network
AU2001290546A1 (en) 2000-08-22 2002-03-04 Akamai Technologies, Inc. Dynamic content assembly on edge-of-network servers in a content delivery network
US7111057B1 (en) 2000-10-31 2006-09-19 Akamai Technologies, Inc. Method and system for purging content from a content delivery network
US20020138437A1 (en) 2001-01-08 2002-09-26 Lewin Daniel M. Extending an internet content delivery network into an enterprise environment by locating ICDN content servers topologically near an enterprise firewall
US20020143798A1 (en) 2001-04-02 2002-10-03 Akamai Technologies, Inc. Highly available distributed storage system for internet content with storage site redirection
US7024452B1 (en) 2001-07-13 2006-04-04 Vignette Corporation Method and system for file-system based caching
US7200681B1 (en) 2001-07-30 2007-04-03 Akamai Technologies, Inc. Edge side components and application programming environment for building and delivering highly distributed heterogenous component-based web applications
US6775743B2 (en) 2001-09-12 2004-08-10 International Business Machines Corporation Content caching with special handling of multiple identical requests for content
US7412492B1 (en) * 2001-09-12 2008-08-12 Vmware, Inc. Proportional share resource allocation with reduction of unproductive resource consumption
US7860964B2 (en) * 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
US20030135509A1 (en) 2002-01-11 2003-07-17 Davis Andrew Thomas Edge server java application framework having application server instance resource monitoring and management
US20030188106A1 (en) 2002-03-26 2003-10-02 At&T Corp. Cache validation using rejuvenation in a data network
US7133905B2 (en) 2002-04-09 2006-11-07 Akamai Technologies, Inc. Method and system for tiered distribution in a content delivery network
US7260639B2 (en) 2002-07-09 2007-08-21 Akamai Technologies, Inc. Method and system for protecting web sites from public internet threats
US7395355B2 (en) 2002-07-11 2008-07-01 Akamai Technologies, Inc. Method for caching and delivery of compressed content in a content delivery network
US7467233B2 (en) 2002-07-30 2008-12-16 Akamai Technologies, Inc. Edge side components and application programming environment for building and delivering highly distributed heterogenous component-based web applications
US7373416B2 (en) 2003-04-24 2008-05-13 Akamai Technologies, Inc. Method and system for constraining server usage in a distributed network
US7082514B2 (en) 2003-09-18 2006-07-25 International Business Machines Corporation Method and memory controller for adaptive row management within a memory subsystem
US7676835B2 (en) 2004-08-31 2010-03-09 International Business Machines Corporation System and method for regulating access to objects in a content repository
JP4859072B2 (ja) 2005-06-02 2012-01-18 トムソン ライセンシング コンテンツ・タイミング方法およびシステム
US8402525B1 (en) 2005-07-01 2013-03-19 Verizon Services Corp. Web services security system and method
US7694082B2 (en) 2005-07-29 2010-04-06 International Business Machines Corporation Computer program and method for managing resources in a distributed storage system
GB0517113D0 (en) 2005-08-20 2005-09-28 Ibm Methods, apparatus and computer programs for data communication efficiency
US8009830B2 (en) 2005-11-18 2011-08-30 Security First Corporation Secure data parser method and system
US7673135B2 (en) 2005-12-08 2010-03-02 Microsoft Corporation Request authentication token
US8185819B2 (en) 2005-12-12 2012-05-22 Google Inc. Module specification for a module to be incorporated into a container document
US7660296B2 (en) 2005-12-30 2010-02-09 Akamai Technologies, Inc. Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows
JP4732217B2 (ja) 2006-03-31 2011-07-27 キヤノン株式会社 情報処理装置、管理装置及びそれらの制御方法、プログラム
US8151323B2 (en) 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
WO2007141082A1 (en) 2006-06-08 2007-12-13 International Business Machines Corporation Method and system of providing multi-user access in a single-user based client-server environment with distributed repositories
US20080098093A1 (en) 2006-10-16 2008-04-24 Palm, Inc. Offline automated proxy cache for web applications
US8296389B2 (en) 2007-04-05 2012-10-23 Sony Computer Entertainment Inc. Content reproduction apparatus, content delivery apparatus, content delivery system, and method for generating metadata
US8543667B2 (en) 2008-01-14 2013-09-24 Akamai Technologies, Inc. Policy-based content insertion
US9456054B2 (en) 2008-05-16 2016-09-27 Palo Alto Research Center Incorporated Controlling the spread of interests and content in a content centric network
CN101616136B (zh) 2008-06-26 2013-05-01 阿里巴巴集团控股有限公司 一种提供互联网服务的方法及服务集成平台***
US20090327303A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Intelligent allocation of file server resources
US20110219109A1 (en) 2008-10-28 2011-09-08 Cotendo, Inc. System and method for sharing transparent proxy between isp and cdn
US20120209942A1 (en) * 2008-10-28 2012-08-16 Cotendo, Inc. System combining a cdn reverse proxy and an edge forward proxy with secure connections
CA2782674C (en) 2008-12-03 2016-02-02 Mobophiles, Inc. System and method for providing virtual web access
US20110029899A1 (en) 2009-08-03 2011-02-03 FasterWeb, Ltd. Systems and Methods for Acceleration and Optimization of Web Pages Access by Changing the Order of Resource Loading
WO2011022405A2 (en) 2009-08-17 2011-02-24 Akamai Technologies, Inc. Method and system for http-based stream delivery
US20110066676A1 (en) 2009-09-14 2011-03-17 Vadim Kleyzit Method and system for reducing web page download time
US8806496B2 (en) 2009-09-30 2014-08-12 Intel Corporation Virtualizing a processor time counter during migration of virtual machine by determining a scaling factor at the destination platform
US8452932B2 (en) 2010-01-06 2013-05-28 Storsimple, Inc. System and method for efficiently creating off-site data volume back-ups
WO2011104823A1 (ja) * 2010-02-23 2011-09-01 富士通株式会社 マルチコアプロセッサシステム、スレッド制御方法、およびスレッド制御プログラム
JP5548037B2 (ja) 2010-06-11 2014-07-16 パナソニック株式会社 命令発行制御装置及び方法
WO2011159715A2 (en) 2010-06-14 2011-12-22 Engels Daniel W Key management systems and methods for shared secret ciphers
KR101837004B1 (ko) 2010-06-18 2018-03-09 아카마이 테크놀로지스, 인크. 모바일 또는 유선 네트워크로의 콘텐츠 전송 네트워크(cdn)의 확장
US20120089700A1 (en) 2010-10-10 2012-04-12 Contendo, Inc. Proxy server configured for hierarchical caching and dynamic site acceleration and custom object and associated method
US8880633B2 (en) * 2010-12-17 2014-11-04 Akamai Technologies, Inc. Proxy server with byte-based include interpreter
US8615577B2 (en) 2011-02-01 2013-12-24 Limelight Networks, Inc. Policy based processing of content objects in a content delivery network using mutators
ES2694423T3 (es) 2011-03-08 2018-12-20 Telefónica S.A. Un método para proporcionar acceso autorizado a una aplicación de servicio con el fin de usar un recurso protegido de un usuario final
US20120303322A1 (en) * 2011-05-23 2012-11-29 Rego Charles W Incorporating memory and io cycle information into compute usage determinations
WO2013067224A1 (en) 2011-11-02 2013-05-10 Akamai Technologies, Inc. Multi-domain configuration handling in an edge network server
US9258249B2 (en) 2012-02-13 2016-02-09 Microsoft Technology Licensing, Llc Resource access throttling
WO2013123548A2 (en) 2012-02-20 2013-08-29 Lock Box Pty Ltd. Cryptographic method and system
US10097406B2 (en) 2012-03-19 2018-10-09 Level 3 Communications, Llc Systems and methods for data mobility with a cloud architecture
US8918651B2 (en) 2012-05-14 2014-12-23 International Business Machines Corporation Cryptographic erasure of selected encrypted data
US9491253B2 (en) 2012-11-27 2016-11-08 Fastly, Inc. Data storage based on content popularity
US9654579B2 (en) 2012-12-21 2017-05-16 Akamai Technologies, Inc. Scalable content delivery network request handling mechanism
US9509804B2 (en) 2012-12-21 2016-11-29 Akami Technologies, Inc. Scalable content delivery network request handling mechanism to support a request processing layer
WO2015009668A1 (en) 2013-07-16 2015-01-22 Fastly Inc. Network parameter configuration based on end user device characteristics
US9654532B2 (en) 2013-09-23 2017-05-16 Spotify Ab System and method for sharing file portions between peers with different capabilities
US9998354B2 (en) 2013-09-24 2018-06-12 Netflix, Inc. Server selection for content distribution
US9413842B2 (en) 2013-09-25 2016-08-09 Verizon Digital Media Services Inc. Instantaneous non-blocking content purging in a distributed platform
US10097503B2 (en) 2013-09-27 2018-10-09 Fastly, Inc. Content node network address selection for content delivery
US9641640B2 (en) 2013-10-04 2017-05-02 Akamai Technologies, Inc. Systems and methods for controlling cacheability and privacy of objects
US9813515B2 (en) 2013-10-04 2017-11-07 Akamai Technologies, Inc. Systems and methods for caching content with notification-based invalidation with extension to clients
US9648125B2 (en) 2013-10-04 2017-05-09 Akamai Technologies, Inc. Systems and methods for caching content with notification-based invalidation
US10165029B2 (en) 2014-01-31 2018-12-25 Fastly Inc. Caching and streaming of digital media content subsets
US10068014B2 (en) 2014-02-06 2018-09-04 Fastly, Inc. Security information management for content delivery
US10530883B2 (en) 2014-02-18 2020-01-07 Fastly Inc. Data purge distribution and coherency
US9002990B1 (en) 2014-03-12 2015-04-07 Instart Logic, Inc. Fast cache purge in content delivery network
JP2015232758A (ja) 2014-06-09 2015-12-24 東芝テック株式会社 サーバ装置、アンケート回収システム、及びプログラム
US9430405B2 (en) 2014-06-18 2016-08-30 Fastly, Inc. Encrypted purging of data from content node storage

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240100B1 (en) * 2000-04-14 2007-07-03 Akamai Technologies, Inc. Content delivery network (CDN) content server request handling mechanism with metadata framework support
US8225377B2 (en) * 2004-04-14 2012-07-17 Telecom Italia S.P.A. Method and system for handling content delivery in communication networks
US20100088505A1 (en) * 2008-10-03 2010-04-08 Limelight Networks, Inc. Content delivery network encryption
CN102687480A (zh) * 2009-12-12 2012-09-19 阿卡麦科技公司 基于云的防火墙***及服务
WO2011143168A1 (en) * 2010-05-10 2011-11-17 Amazon Technologies Inc. Providing text content embedded with multimedia content
US20120317655A1 (en) * 2011-06-10 2012-12-13 Futurewei Technologies, Inc. Method for Flexible Data Protection with Dynamically Authorized Data Receivers in a Content Network or in Cloud Storage and Content Delivery Services

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018014837A1 (zh) * 2016-07-20 2018-01-25 腾讯科技(深圳)有限公司 内容分发网络的处理方法、内容分发网络、装置及存储介质
US10873451B2 (en) 2016-07-20 2020-12-22 Tencent Technology (Shenzhen) Company Limited Content delivery network processing method, content delivery network, device, and storage medium
CN109691057A (zh) * 2016-09-09 2019-04-26 微软技术许可有限责任公司 经由私人内容分发网络可交换地取回敏感内容
CN109691057B (zh) * 2016-09-09 2021-10-29 微软技术许可有限责任公司 经由私人内容分发网络可交换地取回敏感内容
CN109565511A (zh) * 2016-09-16 2019-04-02 甲骨文国际公司 用于多租户身份和数据安全管理云服务的租户和服务管理
CN114127681A (zh) * 2019-09-13 2022-03-01 华为技术有限公司 用于实现数据流ai应用的自主加速的方法和装置
CN113535744A (zh) * 2021-07-09 2021-10-22 深圳市蘑菇财富技术有限公司 租户数据修改方法、***、设备及存储介质
CN113535744B (zh) * 2021-07-09 2023-12-08 深圳市蘑菇财富技术有限公司 租户数据修改方法、***、设备及存储介质
CN113810463A (zh) * 2021-08-06 2021-12-17 新浪网技术(中国)有限公司 一种下发cdn服务器配置方法及***
CN113810463B (zh) * 2021-08-06 2024-03-05 新浪技术(中国)有限公司 一种下发cdn服务器配置方法及***
CN114095237A (zh) * 2021-11-17 2022-02-25 清华大学 基于区块链的去中心化的域间源地址验证服务***和方法

Also Published As

Publication number Publication date
US20140181187A1 (en) 2014-06-26
WO2014100759A1 (en) 2014-06-26
US20140181186A1 (en) 2014-06-26
US20190230194A1 (en) 2019-07-25
CA2899405C (en) 2021-05-25
US9736271B2 (en) 2017-08-15
US20170078453A1 (en) 2017-03-16
US9667747B2 (en) 2017-05-30
US20180020082A1 (en) 2018-01-18
US20180295214A1 (en) 2018-10-11
CN105144725B (zh) 2018-07-20
CA2899405A1 (en) 2014-06-26
US9942363B2 (en) 2018-04-10
US10257318B2 (en) 2019-04-09
US9509804B2 (en) 2016-11-29
US10237374B2 (en) 2019-03-19
US10530900B2 (en) 2020-01-07
US20140181285A1 (en) 2014-06-26

Similar Documents

Publication Publication Date Title
CN105144725A (zh) 可伸缩的内容交付网络请求处理机制
US11520922B2 (en) Method for personal data administration in a multi-actor environment
US20210081567A1 (en) Monitoring data sharing and privacy policy compliance
US20180357683A1 (en) Rating data management
US20150170072A1 (en) Systems and methods for managing network resource requests
US10693839B2 (en) Digital media content distribution blocking
EP4062343A1 (en) User consent framework
CN103329113A (zh) 配置用于分级高速缓存的代理服务器以及动态站点加速和自定义对象和相关的方法
BRPI0715701A2 (pt) mÉtodo de coleta de dados em uma rede distribuÍda
CN108141478A (zh) 对客户端内容过滤器的服务器端检测和减除
CN104106073A (zh) 安全策略编辑器
US20210042748A1 (en) Blockchain-based secure resource management
US20230038497A1 (en) Database system public trust ledger contract linkage
Lopes et al. Live video streaming service with pay-as-you-use model on Ethereum Blockchain and InterPlanetary file system
US11880372B2 (en) Distributed metadata definition and storage in a database system for public trust ledger smart contracts
US11989726B2 (en) Database system public trust ledger token creation and exchange
Charlé Kirti: Decentralized Reputation and SLA Enforcement for Cybersecurity
US20230085481A1 (en) Database system public trust token redeem architecture using wallets
KR100550310B1 (ko) 개인 웹서버를 이용한 정보상품 상거래 방법
van Veen et al. Cookie Compliance of Dutch Hospital Websites
dos Santos DClaims: A Censorship-Resistant Web Annotations System
Pantelakis et al. Measuring the (Over) use of Service Workers for In-Page Push Advertising Purposes
Alqahtani et al. Enforcing the chinese wall model for tenant conflict of interest in the service cloud

Legal Events

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