基于类别请求路由的制作方法

文档序号:6593708阅读:236来源:国知局
专利名称:基于类别请求路由的制作方法
基于类别请求路由
背景技术
一般而言,可以利用计算设备和通信网络来交换信息。在通常应用中,计算设备可 以经由通信网络向另一计算设备请求内容。例如,个人计算设备处的用户可以利用软件浏 览器应用经由互联网向服务器计算设备请求网页。在这种情况下,用户计算设备可以称作 客户计算设备,服务器计算设备可以称作内容提供商。通常,考虑到向客户计算设备有效地发送所请求的内容和/或考虑到与内容的发 送相关联的成本,一般激发内容提供商将所请求的内容提供给客户计算设备。对于大规模 的实现,内容提供商可以从大量的客户计算设备接收内容请求,大量的客户计算设备可以 使内容提供商的计算资源紧张。另外,客户计算设备所请求的内容可以具有多个组成部分, 这些组成部分可以进一步使内容提供商的计算资源紧张。参考示例,所请求的网页或初始内容可以与将用网页来显示的多个附加资源 (如,图像或视频)相关联。在一个具体实施例中,网页的附加资源由多个嵌入式资源标识 符(如,统一资源定位符“URL”)来标识。客户计算设备上的软件典型地处理嵌入式资源 标识符以产生对内容的请求。通常,与嵌入式资源相关的资源标识符引用与内容提供商相 关联的计算设备,使得客户计算设备向所引用的内容提供商计算设备发送对附加资源的请 求。因此,为满足内容请求,内容提供商将提供与网页相关联的客户计算设备数据以及与嵌 入式资源相关联的数据。一些内容提供商尝试通过使用内容传递网络(“CDN”)服务提供商来便于传送对 所请求的内容(如,网页和/或在网页中标识的资源)。CDN服务器提供商典型地在通信网 络中维持多个计算设备,通信网络可以维持来自不同内容提供商的内容。内容提供商可以 命令或者建议客户计算设备向CDN服务提供商的计算设备请求内容提供商的内容的一些 或者全部。关于内容提供商,通常考虑到向客户计算设备有效地发送所请求的内容和/或考 虑到与内容的发送相关联的成本,一般还激发CDN提供商向客户计算设备提供所请求的内 容。因此,CDN服务提供商常常考虑例诸如传递所请求内容的等待时间等因素,以便满足服 务水平协定或一般地提高传递服务的质量。


参考以下的详细说明并结合附图,本发明的上述方面和许多伴随的优点将变得更 容易理解,在附图中图1示出了包括多个客户计算设备、内容提供商和内容传递网络服务提供商的内 容传递环境的框图;图2是图1的内容传递环境的框图,示出了内容提供商向内容传递服务提供商的
注册;图3是图1的内容传递环境的框图,示出了从客户计算设备到内容提供商的内容 请求的产生和处理;
图4是图1的内容传递环境的框图,示出了从客户计算设备到内容传递网络服务提供商的与嵌入式资源相对应的DNS查询的产生和处理的一个实施例;图5A-5C是图1的内容传递环境的框图,示出了从客户计算设备到内容传递网络 服务提供商的与嵌入式资源相对应的DNS查询的产生和处理、以及从客户计算设备到内容 传递网络的与第一和第二备选资源标识符相对应的DNS查询的产生和处理的另一实施例;图6是图1的内容传递环境的框图,示出了从客户计算设备到内容传递网络服务 提供商的嵌入式资源请求的产生和处理;图7示出了由内容传递网络服务提供商实现以选择高速缓存服务器组件的请求 路由例程的流程图;以及图8示出了由内容传递网络服务提供商实现以更新路由信息的请求路由例程的 流程图。
具体实施例方式一般而言,本公开涉及对于从客户计算设备向内容传递网络(“CDN”)服务提供商 作出的资源请求的管理和处理。具体地,将关于基于客户计算设备的群来路由与资源请求 相关联的信息,来描述本公开的不同方面。尽管通过示例和实施例来描述本公开的不同方 面,但相关领域技术人员应理解,所公开的实施例和示例不应被理解为是限制性的。图1示出了用于管理和处理内容请求的内容传递环境100的框图。如图1所示, 内容传递环境100包括用于向内容提供商和/或CDN服务提供商请求内容的多个客户计算 设备102(通常称作客户端)。在说明性实施例中,客户计算设备102可以对应于多种计算 设备,包括个人计算设备、膝上型计算设备、手持计算设备、终端计算设备、移动设备、无线 设备、多种电子设备和装置等等。在说明性实施例中,客户计算设备102包括用于在诸如广 域网或局域网等通信网络108上建立通信的必要硬件和软件组件。例如,客户计算设备102 可以配备有便于经由互联网或内联网来通信的连网装置和浏览器软件应用。尽管图1中没有示出,每个客户计算设备102使用某种类型的本地DNS解析器组 件,如,DNS名称服务器,该本地DNS解析器组件产生属于客户计算设备的DNS查询。在一 个实施例中,本地DNS解析器组件可以由客户计算设备102所属的企业网来提供。在另一 实施例中,本地DNS解析器组件可以由互联网服务提供商(ISP)来提供,互联网服务提供商 (ISP)向客户计算设备102提供网络连接。内容传递环境100还可以包括内容提供商104,内容提供商104经由通信网络108 与一个或多个客户计算设备102通信。图1所示的内容提供商104与跟内容提供商相关联 的一个或多个计算设备的逻辑关联性相对应。具体地,内容提供商104可以包括web服务 器组件110,web服务器组件110与用于获得和处理来自客户计算设备102的对内容(如, 网页)的请求的一个或多个服务器计算设备相对应。内容提供商104还可以包括原始服务 器组件112和关联的存储组件114,原始服务器组件112和关联的存储组件114与用于获 得和处理来自CDN服务提供商的对网络资源的请求的一个或多个计算设备相对应。相关领 域技术人员应理解,内容提供商104可以与多种附加计算资源相关联,如,用于管理内容和 资源的附加计算设备、DNS名称服务器等等。例如,尽管图1中未示出,然而内容提供商104 可以与一个或多个DNS名称服务器组件相关联,所述一个或多个DNS名称服务器之间将有权解析与内容提供商的域相对应的客户计算设备DNS查询。

继续参考图1,内容传递环境100还可以包括⑶N服务提供商106,⑶N服务提供商 106经由通信网络108与一个或多个客户计算设备102和内容提供商104通信。图1所示 的CDN服务提供商106与跟CDN服务提供商相关联的一个或多个计算设备的逻辑关联性相 对应。具体地,⑶N服务提供商106可以包括与通信网络108上的节点相对应的多个存在 点(“POP”)位置 116、122、128。每个 POP 116、122、128 包括 DNS 组件 118、124、130,DNS 组件118、124、130由用于对来自客户计算机102的DNS查询进行解析的多个DNS服务器计 算设备构成。每个POP 116、122、128还包括资源高速缓存组件120、126、132,资源高速缓存 组件120、126、132由用于存储来自内容提供商的资源并将所请求的不同资源发送至不同 客户计算机的多个高速缓存服务器计算设备构成。DNS组件118、124、130和资源高速缓存 组件120、126、132还可以包括便于通信的附加软件和/或硬件组件,包括但不限于负载平 衡或负载共享软件/硬件组件。在说明性实施例中,认为DNS组件118、124、130和资源高速缓存组件120、126、132 是被逻辑分组的,而不管组件或组件的部分是否是物理分离的。此外,尽管POP 116、122、 128在图1中被示为逻辑地与⑶N提供商106相关联,然而POP以最适合客户计算设备102 的各种人口统计特征的方式,在地理上遍及通信网络108而分布。此外,相关领域技术人员 应理解,CDN服务提供商106可以与多种附加计算资源相关联,如,用于管理内容和资源的 附加计算设备等。相关领域技术人员应理解,图1中提供的组件和配置本质上是说明性的。因此,可 以使用附加的或备选的组件和/或配置,尤其是与用于促进通信的附加组件、系统和子系 统有关的组件和/或配置。现在参考图2至6,将示出图1的内容传递环境100的不同组件之间的交互。然 而,为示例的目的,图已经被简化,使得许多用于便于通信的组件并没有被示出。相关领域 技术人员应理解,可以使用这种组件,相应地在不脱离本公开的精神和范围的情况下,将发 生另外的交互。参考图2,将描述内容提供商104向⑶N服务提供商106的注册的说明性交互。如 图2所示,CDN内容注册过程开始于内容提供商104向CDN服务提供商106的注册。在说 明性实施例中,内容提供商104利用注册应用程序界面(“API”)来向CDN服务提供商106 注册,使得CDN服务提供商106可以代表内容提供商104来提供内容。注册API包括内容 提供商104的原始服务器112的标识,内容提供商104将把所请求的资源提供给CDN服务 提供商106。相关领域技术人员应理解,当识别合适的原始服务器112时,内容提供商104可以 开始将来自客户计算设备102的对内容的请求发往CDN服务提供商106。具体地,根据DNS 路由原则,与资源标识符相对应的客户计算设备请求最终将被发往与CDN服务提供商106 相关联的POP 116、122、128。如果所选择的POP的资源高速缓存组件120、126、132没有客 户计算设备102所请求的资源的副本,则资源高速缓存组件将向内容提供商104先前注册 的原始服务器112请求资源。继续参考图2,当接收注册API时,⑶N服务提供商106获取并处理注册信息。在 说明性实施例中,CDN服务提供商106可以产生将由客户计算设备102使用的附加信息作为内容请求的一部分。附加信息可以包括而不限于客户标识符(如,客户标识码)、内容提 供商标识符(如,内容提供商标识码)、用于处理资源标识符的可执行代码(如,基于 脚本的 指令)等等。相关领域技术人员应理解的是,不同类型的附加信息可以由CDN服务提供商 106产生,并且附加信息可以以多种格式中的任何一种格式来体现。CDN服务提供商106向内容提供商104返回CDN服务提供商的可应用域的标识(除 非先前已经为提供过了)以及任何附加信息。内容提供商104可以利用内容提供商特定信 息来处理所存储的内容。在一个示例中,如图2所示,内容提供商104将最初发往原始服务 器112的域的资源标识符变换到与CDN服务提供商相对应的域。变换后的URL嵌入所请求 的内容,使得变换后的URL的DNS查询将解析到与CDN服务提供商106相对应的DNS服务 器,而不是与内容提供商104相对应的DNS服务器。尽管图2示出了变换过程,然而在一些 实施例中,可以以以下更详细地描述的方式省略变换过程。通常,最初发往内容提供商104的资源的标识将是可以由客户计算设备102(如, 通过浏览器软件应用)来处理的资源标识符的形式的。在说明性实施例中,资源标识符可 以是统一资源定位符(“URL”)的形式的。因为资源标识符包括在发往内容提供商的所请 求内容中,所以资源标识符通常可以称作“内容提供商URL”。为说明性示例的目的,内容提 供商URL可以标识内容提供商104的域(例如contentprovider. com)、要请求的资源的名 称(例如“resource. XXX”)以及在其中将找到资源的路径(例如“path”)。在该说明性实 施例中,内容提供商URL具有以下形式http://www. contentprovider. com/path/resource.xxx在说明性变换过程期间,修改内容提供商URL,使得对与变换后的URL相关联的资 源的请求解析到与CDN服务提供商106相关联的POP。在一个实施例中,变换后的URL标 识⑶N服务提供商106的域(例如“cdnprovider. com")、要请求的资源的相同名称(例如 "resource, xxx")以及在其中将找到资源的相同路径(例如“path”)。此外,变换后的URL 可以包括附加处理信息(例如“additional information”)。变换后的URL可以具有以下 形式http//additional information, cdnprovider. com/path/resources, xxx在另一实施例中,与CDN服务提供商106相关联的信息包括在修改后的URL中(例 如通过预先计划或其他技术),使得变换后的URL可以保留与原始URL相关联的所有信息。 在该实施例中,变换后的URL可以具有以下形式http//additional information.cdnprovider. com/www. contentprovider. com/path/resource, xxx现在参考图3,在图2所示的注册和变换过程完成之后,客户计算设备102随后产 生由内容提供商104 (例如通过web服务器110)接收和处理的内容请求。根据说明性实施 例,对内容的请求可以根据公共网络协议,例如超文本传送协议(“HTTP”)。当接收到内容 请求时,内容提供商104标识合适的响应内容。在说明性实施例中,所请求的内容可以与经 由信息处理(例如超文本置标语言(“HTML”)、可扩展置标语言(“XML”)等等)显示在客 户计算设备102上的网页相对应。所请求的内容还可以包括上述多个嵌入式资源标识符, 所述嵌入式资源标识符与应该作为所请求内容的处理的一部分由客户计算设备102获得 的资源对象相对应。嵌入式资源标识符通常可以称作原始资源标识符或原始URL。
当接 收到所请求的内容时,客户计算设备102例如通过浏览器软件应用开始处理 包括在内容中的任何置标码并尝试获取由嵌入式资源标识符标识的资源。因此,获取内容 的第一步骤对应于客户计算设备102 (通过其本地DNS解析器)发起针对原始URL资源标 识符的DNS查询,这使得识别出对于变换后的URL的“.”和“com”部分而言是有权威的DNS 服务器。在解析嵌入式URL的“.,,和“com”部分之后,然后客户计算设备102发起对资源 URL的DNS查询,这使得识别出对嵌入式URL的“.cdnprovider"部分而言是有权威的DNS 服务器。与URL的“.,,和“com”部分相对应的DNS查询的发起是公知的并且没有示出。现在参考图4,在说明性实施例中,原始URL的“cdnprovider”部分的成功解析标 识了与⑶N服务提供商106相关联的DNS服务器的网络地址(如,IP地址)。在一个实施 例中,IP地址是对POP的DNS服务器组件而言唯一的特定网络地址。在另一实施例中,IP 地址可以被一个或多个POP共享。在该实施例中,对共享的IP地址的另外的DNS查询使用 一到多网络路由方案(如,任播),使得特定的POP将根据网络拓扑来接收请求。例如,在 任播实现中,客户计算设备102向共享IP地址发起的DNS查询将到达逻辑上与客户计算设 备具有最短网络拓扑距离(常常称作网络跃距)的DNS服务器组件。网络拓扑距离不必须 与地理距离相对应。然而,在一些实施例中,可以推断网络拓扑距离是客户计算设备102与 POP之间的最短网络距离。继续参考图4,在上述任一实施例(或任何其他实施例)中,POPl 16的DNS组件 118中的特定DNS服务器从客户计算设备102接收与原始URL相对应的DNS查询。一旦DNS 组件118中的DNS服务器之一接收到请求,特定的DNS服务器就尝试解析请求。在如图4 所示的一个说明性实施例中,特定的DNS服务器通过标识将处理对所请求资源的请求的高 速缓存服务器组件的IP地址,来解析DNS查询。如上所述,以及如以下将参考图6来进一 步描述的,所选择的资源高速缓存组件可以通过在可能的情况下提供所请求的资源,或者 通过尝试从另一来源(例如对等高速缓存服务器计算设备或内容提供商104的原始服务器 112)获得所请求的资源,来处理请求。进一步参考图4,特定的DNS服务器在选择资源高速缓存组件时可以利用多种信 息。在示例实施例中,如以下将参考图7和图8进一步描述的,DNS服务器确定与发请求的 客户计算设备相关联的类别。例如,类别可以与客户计算设备所属的特定地理区域或客户 计算设备的互联网服务提供商相对应。可以直接地(例如由客户计算设备或ISP提供的信 息)或间接地(例如通过客户计算设备的IP地址推断出的信息)从客户确定这样的类别 信息。基于类别,DNS服务器确定合适的路由信息。然后,对于参考图4具体描述的实施例, DNS服务器基于所确定的客户计算设备类别的路由信息,来选择合适的资源高速缓存组件 以提供与资源请求相关联的内容。DNS服务器选择的IP地址可以与资源高速缓存中的特定 高速缓存服务器相对应。备选地,IP地址可以与硬件/软件选择组件(例如负载平衡器) 相对应。如还将在以下进一步描述的,DNS服务器还可以使用网络性能测量来辅助针对所 确定的类别选择资源高速缓存组件。现在参考图5A至5C,作为当接收到如参考图4所描述的DNS查询时选择高速缓存 服务器组件的备选,CDN服务提供商106可以维持不同备选资源标识符的集合。备选资源标 识符可以由CDN服务提供商106来提供给客户计算设备102,使得备选资源标识符上的后续 DNS查询将解析到CDN服务提供商的网络内的不同DNS服务器组件。在说明性实施例中,备选资源标识符是一个或多个规范名(“CNAME”)记录的形式的。在一个实施例中,每个 CNAME 记录标识 CDN 服务提供商 106 的域(例如 “cdnprovider. com” 或 “cdnprovider-1. com”)。如以下将更详细描述的,CNAME中的域不需要与原始URL中或先前的CNAME记录中 找到的域相同。另外,每个CNAME记录包括附加信息,例如请求路由信息(例如“request routing information”)。说明性CNAME记录可以具有以下形式http//request routinR informati on, cdnprovider. com在说明性实施例中,CNAME记录由DNS服务器产生和提供,以标识⑶N服务提供商 106的更合适的DNS服务器。如同如上面参考图4所描述的选择合适的资源高速缓存组件 一样,接收初始DNS查询的DNS服务器可以利用多种信息来选择CDN服务提供商106的更 合适的DNS服务器以解析资源请求。在说明性实施例中,如以下还将参考图7和图8进一 步描述的,DNS服务器确定与发请求的客户计算设备相关联的类别。再次地,类别可以例如 与客户计算设备所属的特定地理区域或客户计算设备的互联网服务提供商相对应。在任何 情况下,DNS服务器可以直接地(例如由客户计算设备或ISP提供的信息)或间接地(例 如通过客户计算设备的IP地址推断的信息)从客户获得类别信息。基于类别,DNS服务器 确定合适的路由信息。然后,对于参考图5A具体描述的实施例,DNS服务器选择合适的备 选DNS服务器以用于基于所确定的客户计算设备类别的路由信息来解析资源请求。如以下 还将进一步描述的,DNS服务器还可以利用网络性能测量来针对所确定的类别选择特定的 备选DNS服务器。 根据说明性实施例,DNS服务器维持对不同原始URL的CNAME记录加以限定的数据 存储。如果与具体的原始URL相对应的DNS查询与数据存储中的条目相匹配,则DNS服务 器返回如数据存储中所限定的CNAME记录。在说明性实施例中,数据存储可以包括与具体 的原始URL相对应的多个CNAME记录。多个CNAME记录将限定可以返回给客户计算设备的 可能候选集合。在这种实施例中,DNS服务器可以基于对所确定的发请求的客户计算设备 的类别按因素划分(factor)的逻辑,直接地或经由基于网络的服务选择数据存储中限定 的CNAME记录之一作为更合适的路由信息。本领域技术人员将意识到,在从可能CNAME集 合中选择合适的CNAME的过程中,DNS服务器可以实现另外的附加逻辑。在说明性实施例 中,每个DNS服务器组件118、124、130维持限定CNAME记录的相同数据存储,相同数据存储 可以由⑶N服务提供商106集中管理。备选地,每个DNS服务器组件118、124、130可以具 有限定CNAME记录的POP特定数据存储,POP特定数据存储可以由CDN服务提供商106集 中管理,或者在POP 116、122、128本地管理。此外,DNS服务器组件118、124、130内的每个 DNS服务器组件设备可以使用由相应的POP来管理的共享数据存储或者特定于独立DNS服 务器计算设备的本地数据存储。 返回的CNAME还可以包括与当前DNS查询的URL/CNAME中提供的信息不同或是 其补充的请求路由信息。例如,如果CNAME选择是基于与发请求的客户计算设备相关联的 类别的,则可以在特定的CNAME记录的“request routing information”部分中标识特定 的类别。可以使用类似方法,通过将特定标识符包括在CNAME记录的“request routing information”部分中来标识服务水平计划和文件管理。在另一实施例中,可以在与当前 URL/CNAME中找到的域不同的CDN服务提供商106域的标识中找到请求路由信息。例如, 如果CNAME基于区域计划,则特定的区域计划域(例如“cdnprovider-regionl. com”)可以用在特定CNAME记录的域名部分中。在当前URL/CNAME中,可以先于已有的请求路由 信息考虑任何附加的请求路由信息,使得先前的请求路由信息不会丢失(例如“http:// serviceplan. regionalplan. cdnprovider. com,,)。才目关领域技术人员应理角军,附力口白勺或备 选的技术和/或技术的结合可以用于将附加的请求路由信息包括在由DNS服务器组件118 选择的CNAME记录中。 继续参考图5A,相关领域技术人员应理解,DNS服务器可以选择(或获取)用于解 析到CDN服务提供商106的更合适的DNS服务器的CNAME记录。然而,相同的服务器也可 以对于要提供给客户计算设备的CNAME的后续DNS查询是有权威的。例如,特定的DNS服 务器可以对于特定的区域计划和服务水平计划都是有权威的。因此,返回CNAME将仍然引 起达到相同DNS查询的DNS查询(可以部分地由于客户计算设备的地理)。在这种实施例 中,DNS服务器(如,DNS服务器组件118)可以选择预先解析另外的DNS查询。现在参考图5B,当接收到来自DNS服务器组件118的CNAME时,客户计算设备102 产生与CNAME相对应的后续DNS查询。如先前参考图4所述,DNS查询过程可以首先以“.,, 和“com"部分的DNS查询开始,随后是CNAME的“cdnprovider ”部分的查询。然而,在先前 的DNS查询的结果可以被高速缓存(并保持有效)的程度上,客户计算设备102可以使用 高速缓存的信息而不需要重复整个过程。然而,在某些时候,根据DNS服务器组件118 (图 5A)提供的CNAME与先前的URL/CNAME是否共享共同的CDN服务提供商域,当前CNAME DNS 查询解析到由⑶N服务提供商106提供的不同的POP。如图5B所示,基于DNS服务器组件 118先前提供的当前CNAME中的不同信息,P0P122的DNS服务器组件124接收当前CNAME。 如先前所述,DNS服务器组件124然后可以确定是否利用将处理内容请求的高速缓存组件 的IP地址来解析CNAME上的DNS查询,或者是否提供以上述方式选择的另一备选资源标识 符。为图示的目的,假定DNS服务器组件118确定与当前CNAME (由DNS服务器组组件 116提供的)相对应的DNS查询也与该DNS服务器组件118的数据存储中的CNAME记录相 对应。在这种示例中,DNS服务器组件124将如上所述作出任何必要的处理以选择特定的 CNAME并将CNAME返回给客户计算设备。现在参考图5C,客户计算设备102现在将发送与 DNS服务器组件124(图5B)提供的CNAME相对应的第二后续DNS查询。根据已经描述的 DNS查询过程,DNS查询将示例性地由POP 128的DNS服务器组件130接收。再次地,DNS 服务器组件130然后可以确定是否利用将处理内容请求的高速缓存组件的IP地址来解析 CNAME上的DNS查询,或者是否提供以上述方式选择的另一备选资源标识符。在该示例中, DNS服务器组件130返回IP地址。继续参考图5C,在说明性实施例中,DNS服务器组件(如,DNS服务器组件130)可 以在选择资源高速缓存组件中使用多种信息。在一个示例中,DNS服务器组件可以默认选择 相同POP的资源高速缓存组件。在另一示例中,DNS服务器组件可以基于不同的负载平衡 或负载共享算法来选择资源高速缓存组件。此外,DNS服务器组件可以使用网络性能度量 或测量来分派特定的资源高速缓存组件。此外,如以上参考图4所描述的,DNS服务器组件 可以基于发请求的客户计算设备的类别的路由信息来选择资源高速缓存组件。再次地,由 DNS服务器组件选择的IP地址可以与资源高速缓存中的特定高速缓存服务器相对应。备选 地,IP地址可以与硬件/软件选择组件(如,负载平衡器)相对应。
现在参考图6,在说明性示例中,假定DNS服务器组件130已经选择了 POP 128的 资源高速缓存组件132。当接收到资源高速缓存组件132的IP地址时,客户计算设备102 向资源高速缓存组件132发送针对所请求内容的请求。资源高速缓存组件132以上述方式 处理请求,将所请求的内容发送至客户计算设备102。 现在参考图7,将描述由⑶N提供商106实现的用于处理资源请求的例程700的一 个实施例。相关领域技术人员应理解,针对例程700而概述的动作/步骤可以由与CDN服 务提供商106相关联的一个或多个计算设备/组件来实现。因此,例程700在逻辑关系上 如同由CDN服务提供商106来执行一样,因此以下说明性实施例不应被解释为限制性的。例程700可以应用于参考图4和图5A至5C所描述的实施例。这样,如参考图4 大体描述的一样,将首先参考与在DNS服务器处基于发请求的客户计算设备的类别的路由 信息来选择资源高速缓存组件相对应的实施例来描述例程700。在框702中,DNS服务器组件118、124、130之一接收与资源标识符相对应的DNS 查询。如先前所述,资源标识符可以是已经嵌入由客户计算设备102所请求的并由内容提 供商104先前提供的内容中的URL。在框704中,DNS服务器确定与DNS查询相关联的发请 求的客户的类别。如上面提到的,类别可以例如与客户计算设备所属的特定地理区域或客 户计算设备的互联网服务提供商相对应。可以从客户直接地(例如由客户计算设备或ISP 提供的信息)或间接地(例如通过客户计算设备的IP地址推断出的信息)确定这样的类 别信息。在示例实施例中,框702中的类别的确定具体地可以包括基于多种标准将发请 求的客户计算设备与其他客户计算设备的群相关联。如上所述,除了路由路径信息、联网设 备、客户赞助服务水平协定、内容提供商服务水平协定等之外,这种标准还可以包括地理区 域和互联网服务提供商数据。在判定框706中,进行测试以确定当前DNS服务器是否有权解析DNS查询。在说 明性实施例中,如果没有与接收到的资源标识符相对应的CNAME记录,则DNS服务器可以确 定其是否有权解析DNS查询。在该说明性实施例中,没有CNAME记录。因此,例程继续进行 至框708,在框708中通常当前DNS服务器确定所确定的类别的路由信息。具体地,在说明 性实施例中,DNS服务器基于所确定的客户计算设备类别的路由信息,来选择合适的资源高 速缓存组件以提供与资源请求相关联的内容。然后DNS服务器向客户计算设备提供所选择 的资源高速缓存组件的IP地址。在说明性实施例中,路由信息可以是能为特定类别客户计算设备的内容请求服务 的资源高速缓存组件的列表。DNS服务器可以使用多种逻辑来从列表中选择资源高速缓存 组件。在一个实施例中,可以限定选择列表上的每个资源高速缓存组件的概率,DNS服务器 基于这些概率来选择资源高速缓存组件。因此,在该示例实施例中,DNS服务器将以与所确 定的概率相对应的频率来选择资源高速缓存组件。例如,DNS服务器将最频繁地选择具有 最高选择概率的资源高速缓存组件,但是也可以偶尔选择具有较低选择概率的资源高速缓 存组件。在该情况下,概率与所选择的计算设备的预期性能相对应。如在以下将进一步描 述的,CDN服务提供商106可以监控向具体类别中的客户传递所请求资源的性能,此后相应 地更新路由信息(例如概率)。在另一实施例中,概率可以与甩负荷(load shedding)或其 他网络业务量减轻相对应。通过针对类别周期性地选择非优选资源高速缓存组件并监控该 非优选资源高速缓存组件的性能,CDN服务提供商106从而可以确定是否需要改变针对该类别的路由信息。 相关领域技术人员应理解的是,可以使用多种算法或选择逻辑来选择资源高速缓 存组件以为来自具体类别客户计算设备的资源请求来服务。例如,除了上述的基于频率的 加强算法外,DNS服务器还可以实现备选的加强学习算法。其他加强算法的示例包括但不限 于诸如State-Action-Reward-State-Action(SARSA)、Q学习、延时Q学习等算法。另外,可 以结合DNS服务器使用其他机器学习方法(例如支持向量机器、神经网络、贝叶斯引擎等), 以选择合适的资源高速缓存组件。接下来,将描述实施例,在实施例中发请求的客户计算设备的类别的路由信息用 于选择合适的DNS服务器以处理请求。在这种实施例中,例程700类似地开始于框702,在 框702处DNS服务器组件118、124、130之一接收与资源标识符相对应的DNS查询。如上所 述,在框704,DNS服务器还确定与DNS查询相关联的发请求的客户计算设备的类别。在判定框706中,进行测试以确定当前DNS服务器是否有权解析DNS查询。在说 明性实施例中,如果没有与所接收的资源标识符相对应的CNAME记录,则DNS服务器可以确 定其是否有权解析DNS查询。还可以实施备选的或附加的方法学来确定DNS服务器是否是 有权威的。如果当前的DNS服务器是有权威的(包括确定相同的DNS服务器对于后续DNS查 询将是有权威的),当前的DNS服务器通过返回高速缓存服务器组件的IP地址来解析DNS 查询。以非限制性的方式,先前已经讨论了多种用于选择合适的资源高速缓存组件的方法。 另外,如上所述,IP地址可以与资源高速缓存组件的特定高速缓存服务器相对应,或通常与 高速缓存服务器组相对应。备选地,如果在判定框704中DNS服务器不是有权威的,则在框708中,DNS服务器 组件选择并发送备选的资源标识符。如上所述,DNS服务器组件可以利用数据存储来根据 当前DNS查询标识潜在候选CNAME集合。然后DNS服务器基于对所确定的发请求的客户计 算设备的类别按因素划分的逻辑,直接地或通过基于网络的服务,来选择数据存储中限定 的一个CNAME记录作为更合适的路由信息。在框710中,不同的DNS服务器组件118、124、 130接收与CNAME相对应的DNS查询。然后例程700返回至判定框704并视情况继续重复。在DNS服务器不是有权威的实施例中,例程信息可以是潜在候选CNAME的集合或 列表,潜在候选CNAME与可以为具体类别客户计算设备的内容请求来服务的一个或多个 DNS服务器相对应。与上述的选择高速缓存资源组件类似,DNS服务器可以使用多种逻辑从 列表中选择CNAME或另一 DNS服务器。在一个实施例中,可以以多种方式来初始地限定选 择集合中的每个CNAME的概率,DNS服务器基于所限定的概率来选择CNAME。因此,在该说 明性实施例中,DNS服务器将最频繁地选择具有最高选择概率的DNAME,但也可以偶尔选择 具有较低选择概率的CNAME。在这种情况下,概率与相应的计算设备的预期性能相对应。如 以下将进一步描述的,CDN服务提供商106可以监控向具体类别中的客户传递所请求资源 的性能并然后更新概率。再次地,在另外的实施例中,概率可以与甩负荷或其他网络业务量 减轻相对应。通过针对类别周期性地选择非优选CNAME并监控相应的DNS服务器的性能, CDN服务提供商106从而可以确定是否需要改变类别的路由信息。相关领域技术人员应理 解的是,可以使用多种算法或选择逻辑来选择用于为来自具体类别客户计算设备的资源请 求而服务的CNAME/DNS服务器。
现在参考图8,将描述用于更新路由信息的请求路由例程800的一个实施例。相关 领域技术人员应理解,针对例程800而概述的动作/步骤可以由与CDN服务提供商106相 关联的一个或多个计算设备/组件来执行。因此,例程800在逻辑关系上如同由CDN服务 提供商106来执行一样。在框802处,⑶N服务提供商106的第一 DNS服务器从客户计算设备接收与所请 求的资源相对应的DNS查询。如上面参考图7的框704类似地描述的,框804中,DNS服务 器确定与发请求的客户相对应并且与DNS查询相关联的类别。此外在框804处,与上述类 似地,DNS服务器基于所确定的客户计算设备的类别来确定DNS或高速缓存路由信息。例 程800在框806中继续,在框806中,架空与所请求的资源的传递相关联的网络性能标准。 网络性能标准可以与从CDN服务提供商POP向客户计算设备102发送数据的网络性能的测 量相对应。在一个实施例中,与所请求资源的传递相关联的网络数据传送等待时间是由客 户计算设备102来测量的。备选地,CDN服务提供商106 (例如通过资源高速缓存组件)可 以作为向客户计算设备提供内容的一部分来测量性能。这种网络性能数据可以由CDN服务 提供商来全局地管理和维持并且被⑶N的DNS服务器共享,或单独地由⑶N服务提供商的 DNS服务器来全局地管理和维持。此外,可以将网络性能标准作为来自POP的成批处理来提 供,或者响应于从一个POP到另一个POP的请求来发送网络性能标准。继续参考图8,在测试框808处,基于性能数据来确定是否需要更新所识别的类别 的路由信息。在一个实施例中,更新确定可以由CDN服务提供商全局地做出或者由DNS服 务组件或DNS服务器单独做出。在由单独的DNS服务器来确定是否更新类别的路由信息的 说明性实施例中,每个DNS服务器可以管理并维持对于特定的DNS服务器而言唯一的类别 的路由信息。在该说明性实施例中,性能数据可以由CDN服务提供商全局地维持并且被DNS 组件和/或DNS服务器共享,每个DNS组件和/或DNS服务器管理如何使用性能数据。因 此,类别的路由信息可以因DNS组件/服务器的不同而不同。 返回图8,如果需要更新,则在框810中修改所识别的类别的路由信息。在一个实 施例中,CDN服务提供商106修改为来自具体类别的自客户计算设备102的资源请求而服 务的计算设备(例如DNS组件/服务器和/或资源高速缓存组件)的列表。在另一实施例 中,CDN服务提供商和/或特定的DNS组件/服务器可以维持和修改选择用于为客户计算 设备类别的资源请求而服务的具体计算设备的概率。例如,如果性能数据表明具有较低选 择概率的DNS服务器和/或资源高速缓存组件运转良好,则可以提高选择概率,使得具体的 DNS服务器和/或资源高速缓存组件将被更频繁地选择以为来自客户计算设备的资源请求 而服务。当在框810中已经做出修改后,或者如果在框808中不需要更新,则例程800返回 框802以如上所述进一步处理。相关领域技术人员应理解的是,有多种方法可以修改与来自一类客户计算设备的 请求相关联的路由信息。相关领域技术人员还应理解的是,监控性能和做出路由信息更新 的时机可以变化。本领域和其他领域技术人员应理解的是,本公开中所描述的所有功能可以由所公 开的组件和移动通信设备的一个或多个处理器所执行的软件来体现。软件可以持久地存储 在任何类型的非易失性存储器中。诸如“能够”、“可能”或“可以”等条件式语言,除非特别声明或在所使用的上下文中理解,否则通常用于表达的意思是特定实施例包括特定的特性、元件和/或步骤,而其他实施例不包括。因此,这种条件式语言通常并不表示一个或多个实施例无论如何需要这 些特性、元件和/或步骤,也不表示一个或多个实施例有必要包括用于在有或没有用户输 入或提示的情况下判定这些特性、元件和/或步骤是否包含在任何具体实施例中或在该实 施例中执行的逻辑。本文所描述的和/或附图中描绘的流程图中的任何过程描述、元件或块应当被理 解为,可以表示代码的模块、片段或部分,代码的模块、片段或部分包括用于在过程中实现 特定逻辑功能或步骤的一个或多个可执行指令。本领域技术人员应理解,备选的实现包括 在本文描述的实施例的范围之内,其中,根据涉及的功能,元件或功能可以被删除或不按所 示或所述的顺序来执行,包括实质上同时执行或按相反顺序来执行。还应理解,可以使用与 存储计算机可执行组件的计算机可读介质(如,⑶-R0M、DVD-R0M、或网络接口)相关联的驱 动机制,将上述数据和/或组件存储在计算机可读介质上并加载到计算设备的存储器中, 此外,组件和/或数据可以包括在单一设备中或以任何方式分布。条款1、一种方法,包括在第一 DNS服务器处从客户计算设备获取DNS查询,其中,DNS查询与所请求的资 源相对应,第一 DNS服务器与内容传递网络服务相对应;确定与客户计算设备相关联的类别;基于客户计算设备的类别确定路由信息;监控与所请求的资源的传递相关联的性能;基于传递性能确定是否需要更新类别的路由信息;以及如果是,则修改类别的路由信息。条款2、如条款1所述的方法,其中,修改类别的路由信息包括修改用于为资源请 求服务的计算设备的列表。条款3、如条款1所述的方法,其中,修改类别的路由信息包括修改选择用于为资 源请求服务的具体计算设备的概率。条款4、如条款1所述的方法,其中,对于所确定的类别的路由信息与第一 DNS服务 器相关联。条款5、如条款4所述的方法,其中,内容传递网络服务提供商的第一 DNS服务器的 所确定的类别的路由信息与第二 DNS服务器的所确定的类别的路由信息不相同。条款6、如条款1所述的方法,其中,类别与互联网服务提供商相对应。条款7、如条款1所述的方法,其中,类别与指定的地理位置相对应。条款8、如条款1所述的方法,其中,确定路由信息包括基于所确定的客户计算设 备的类别的路由信息来选择用于提供与资源请求相关联的内容的高速缓存组件。条款9、如条款1所述的方法,其中,确定路由信息包括基于所确定的客户计算设备的类别的路由信息确定第一 DNS服务器是否是有权 威的;以及如果不是,则基于所确定的客户计算设备的类别的路由信息来选择第二 DNS服务 器以处理资源请求。条款10、一种方法,包括
在第一 DNS服务器处从客户计算设备获取DNS查询,其中,DNS查询与所请求的资 源相对应,第一 DNS服务器与内容传递网络服务提供商相对应;将客户计算设备与其他客户计算设备的群相关联;以及基于所关联的客户计算 设备的群的路由信息来路由DNS查询。条款11、如条款10所述的方法,还包括监控与所请求资源的传递相关联的性能;基于传递性能确定是否需要更新群的路由信息;以及如果是,则修改群的路由信息。条款12、如条款11所述的方法,其中,修改群的路由信息包括修改用于为资源请 求而服务的计算设备的列表。条款13、如条款11所述的方法,其中,修改群的路由信息包括修改选择用于为资 源请求而服务的具体计算设备的概率。条款14、如条款11所述的方法,其中,群的路由信息与第一 DNS服务器相关联。条款15、如条款14所述的方法,其中,内容传递网络服务提供商的第一 DNS服务器 的群的路由信息与第二 DNS服务器的群的路由信息不相同。条款16、如条款10所述的方法,其中,路由DNS查询包括基于客户计算设备的群 的路由信息来用于提供与资源请求相关联的内容的选择高速缓存组件。条款17、如条款16所述的方法,其中,选择高速缓存组件包括基于由选择概率限 定的频率来选择高速缓存组件。条款18、如条款17所述的方法,还包括监控与向具有较低选择概率的高速缓存组件传递所请求资源的相关联的性能;以 及基于传递性能来修改针对群具有较低选择概率的高速缓存组件的选择概率。条款19、如条款16所述的方法,其中,选择高速缓存组件包括周期性地选择用于 提供与群的资源请求相关联的内容的非优选高速缓存组件。条款20、如条款20所述的方法,还包括监控与向非优选高速缓存组件传递所请的求资源相关联的性能;以及基于向非优选高速缓存组件传递所请求资源的性能来修改群的路由信息。条款21、如条款10所述的方法,其中,路由DNS查询包括基于客户计算设备的群的路由信息确定第一 DNS服务器是否是有权威的;以及如果不是,基于客户计算设备的群的路由信息选择第二 DNS服务器以处理资源请 求。条款22、如条款22所述的方法,还包括监控与使用第二 DNS服务器传递所请求的资源相关联的性能;以及基于使用第二 DNS服务器传递所请求资源的性能来修改群的路由信息。条款23、如条款23所述的方法,其中,修改群的路由信息包括修改用于处理群的 资源请求的DNS服务器的列表。条款24、如条款23所述的方法,其中,修改群的路由信息包括修改选择用于处理 群的资源请求的具体DNS服务器的概率。
条款25、一种系统,包括与内容传 递网络服务提供商相关联的第一网络存在点,其中,第一网络存在点包 括从客户计算设备接收DNS查询的DNS服务器组件,DNS查询与所请求的资源相对应,第一 网络存在点中的DNS服务器可操作用于将客户计算设备与其他客户计算设备的群相关联;以及基于群的路由信息来路由DNS查询。条款26、如条款26所述的系统,其中,第一网络存在点中的DNS服务器还可操作用 于监控与所请求资源的传递相关联的性能;基于传递性能确定是否需要更新群的路由信息;以及如果是,则修改群的路由信息。条款27、如条款26所述的系统,其中,在第一网络存在点中的DNS服务器处确定的 群的路由信息与跟内容传递网络服务提供商相关联的第二网络存在点中的第二 DNS服务 器的群的路由信息不同。条款28、如条款26所述的系统,其中,第一网络存在点中的DNS服务器还可操作用 于基于客户计算设备的群的路由信息来选择用于提供与资源请求相关联的内容的高速缓 存组件。条款29、如条款26所述的系统,其中,第一网络存在点中的DNS服务器还可操作用 于基于客户计算设备的群的路由信息确定第一 DNS服务器是否是有权威的;以及如果不是,则基于客户计算设备的群的路由信息在第二网络存在点中选择用于处 理资源请求的第二 DNS服务器。条款30、一种系统,包括与内容传递网络服务提供商相关联的第一网络存在点,其中,第一网络存在点包 括从客户计算设备接收DNS查询的DNS服务器组件,其中,DNS查询与跟备选资源标识符相 关联的所请求的资源相对应,第一网络存在点中的DNS服务器组件可操作用于将客户计算设备与其他客户计算设备的群相关联;基于其他客户计算设备的群的路由信息确定第一资源标识符与备选资源标识符 相关联;以及向客户计算设备发送备选资源标识符,其中,备选资源标识符包括用于使DNS查 询解析到与内容传递服务提供商相对应的域的信息。条款31、如条款31所述的系统,其中,备选资源标识符与规范名记录标识符相对应。条款32、如条款31所述的系统,还包括与内容传递网络服务提供商相关联的第二网络存在点,其中,第二网络存在点包 括从客户计算设备接收后续DNS查询的DNS服务器组件,后续DNS查询与跟备选资源标识 符相关联的所请求的资源相对应,第二网络存在点中的DNS服务器组件可操作用于将客户计算设备与其他客户计算设备的群相关联;以及基于群的路由信息来路由DNS查询。
条款33、如条款31所述的系统,还包括 与内容传递网络服务提供商相关联的第二网络存在点,其中,第二网络存在点包 括从客户计算设备接收后续DNS查询的DNS服务器组件,后续DNS查询与跟备选资源标识 符相关联的所请求的资源相对应,第二网络存在点中的DNS服务器组件可操作用于解析后续DNS查询,以识别用于提供与原始资源请求相关联的内容的高速缓存组 件;以及向客户计算设备发送标识所识别的高速缓存组件的信息。因此,通用计算设备可以配置为通过上述多种数据和/或组件的处理和/或执 行,来实现本公开的处理、算法和方法学。应强调的是,可以对上述实施例做出许多变化和修改,变化和修改的元素应被理 解为在其他可接受的示例中。所有这些修改和变化在此包含在本公开的范围之内,并且受 权利要求的保护。
权利要求
1.一种方法,包括在第一 DNS服务器处从客户计算设备获取DNS查询,其中,DNS查询与所请求的资源相 对应,第一 DNS服务器与内容传递网络服务相对应; 确定与客户计算设备相关联的类别; 基于客户计算设备的类别确定路由信息; 监控与所请求的资源的传递相关联的性能; 基于传递性能确定是否需要更新类别的路由信息;以及 如果是,则修改类别的路由信息。
2.如权利要求1所述的方法,其中,修改类别的路由信息包括修改用于为资源请求服 务的计算设备的列表。
3.如权利要求1所述的方法,其中,修改类别的路由信息包括修改选择用于为资源请 求服务的具体计算设备的概率。
4.如权利要求1所述的方法,其中,类别与指定的地理位置相对应。
5.如权利要求1所述的方法,其中,确定路由信息包括基于所确定的客户计算设备类 别的路由信息,来选择用于提供与资源请求相关联的内容的高速缓存组件。
6.一种方法,包括在第一 DNS服务器处从客户计算设备获取DNS查询,其中,DNS查询与所请求的资源相 对应,第一 DNS服务器与内容传递网络服务提供商相对应; 将客户计算设备与其他客户计算设备的群相关联;以及 基于所关联的客户计算设备的群的路由信息,来路由DNS查询。
7.如权利要求6所述的方法,还包括 监控与所请求资源的传递相关联的性能;基于传递性能确定是否需要更新群的路由信息;以及 如果是,则修改群的路由信息。
8.如权利要求6所述的方法,其中,路由DNS查询包括基于客户计算设备的群的路由 信息,来选择用于提供与资源请求相关联的内容的高速缓存组件。
9.如权利要求8所述的方法,其中,选择高速缓存组件包括周期性地选择用于提供与 群的资源请求相关联的内容的非优选高速缓存组件。
10.如权利要求6所述的方法,其中,路由DNS查询包括基于客户计算设备的群的路由信息确定第一 DNS服务器是否是有权威的;以及 如果不是,则基于客户计算设备的群的路由信息选择第二 DNS服务器以处理资源请求。
11.一种系统,包括与内容传递网络服务提供商相关联的第一网络存在点,其中,第一网络存在点包括从 客户计算设备接收DNS查询的DNS服务器组件,其中,DNS查询与所请求的资源相对应,第 一网络存在点中的DNS服务器可操作用于将客户计算设备与其他客户计算设备的群相关联;以及 基于群的路由信息来路由DNS查询。
12.如权利要求11所述的系统,其中,第一网络存在点中的DNS服务器还可操作用于监控与所请求资源的传递相关联的性能; 基于传递性能确定是否需要更新群的路由信息;以及 如果是,则修改群的路由信息。
13.一种系统,包括与内容传递网络服务提供商相关联的第一网络存在点,其中,第一网络存在点包括从 客户计算设备接收DNS查询的DNS服务器组件,DNS查询与跟第一资源标识符相关联的所 请求的资源相对应,第一网络存在点中的DNS服务器组件可操作用于 将客户计算设备与其他客户计算设备的群相关联; 基于群的路由信息来确定第一资源标识符与备选资源标识符相关联;以及 向客户计算设备发送备选资源标识符,其中备选资源标识符包括用于使DNS查询解析 到与内容传递服务提供商相对应的域的信息。
14.如权利要求13所述的系统,其中,备选资源标识符与规范名记录标识符相对应。
15.如权利要求13所述的系统,还包括与内容传递网络服务提供商相关联的第二网络存在点,其中,第二网络存在点包括从 客户计算设备接收后续DNS查询的DNS服务器组件,后续DNS查询与跟备选资源标识符相 关联的所请求的资源相对应,第二网络存在点中的DNS服务器组件可操作用于 将客户计算设备与其他客户计算设备的群相关联;以及 基于群的路由信息来路由DNS查询。
全文摘要
提供了一种管理和处理资源请求的系统和方法。内容传递网络服务提供商从客户计算设备接收DNS查询。DNS查询与来自客户计算设备的所请求资源相对应。内容传递网络服务提供商将客户计算设备与其他客户计算设备的群相关联。基于该群的路由信息,内容传递网络服务提供商路由DNS查询。该过程还可以包括监控与所请求资源的传递相关联的性能数据,以及基于性能数据位该组更新路由信息以用于处理来自该群中的客户计算设备的后续请求。
文档编号G06F15/173GK102047243SQ200980119995
公开日2011年5月4日 申请日期2009年3月31日 优先权日2008年3月31日
发明者克里斯托弗·L·斯科菲尔德, 埃尔莫尔·尤金·波普, 大卫·R·理查斯, 布拉德利·E·马歇尔, 斯瓦米纳坦·斯瓦苏布拉马尼恩 申请人:亚马逊技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1