网络地址解析的制作方法

文档序号:11455989阅读:293来源:国知局
网络地址解析的制造方法与工艺

相关申请

该专利合作条约(pct)申请要求2014年12月31日提交的题为“networkaddressresolution”的美国临时申请no.62/098,930的优先权,其全部内容通过引用针对所有目的全部并入本文。

本公开的方面涉及网络地址解析,并具体涉及将应用程序编程接口引入到解析流中,以将链接解析信息嵌入html文档或返回给请求客户端的其他内容中。



背景技术:

互联网和万维网(“web”)已经变得无处不在。数千或甚至数万的内容提供商(发行商)现在使用互联网(以及具体地,web)向所有全世界众多客户端提供所有种类的内容。为了卸下供应其内容中的一些或全部的工作,许多内容提供商如今预订内容传送网络(cdn)。通过使用cdn,可以从cdn(例如,从cdn中的一个或更多个服务器)而不是从内容提供商的服务器向客户端供应内容。在缓存cdn中,在供应内容之前或者响应于针对该内容的特定请求,也可以将内容缓存在cdn服务器中的一些或全部上。将内容缓存在cdn的边缘服务器内增强了cdn的性能,这是因为不需要从中间层服务器、源服务器或其他位置取得内容,所述中间层服务器、源服务器或其他位置在提供内容方面比边缘服务器效率更低。

不断地从网络访问内容。例如,现在可以从任何数量的网站访问电视节目和电影。印刷报纸已经迁移到web,并提供了客户端通过其操作某种形式的计算设备(例如pc、智能电话或平板电脑)的入口,浏览器可以访问诸如短视频剪辑、文章、图像和音轨等的许多形式的内容。软件更新和修补程序,从前仅在光盘上提供并邮寄给收件人,现在可以使用仅网络连接来例程地分发给设备。可以使用cdn分发所有这些形式的内容。

尤其考虑到这些观察结果,构想并发展了本公开的各种方面。



技术实现要素:

本公开的实施例涉及一种内容传送方法,包括:接收对包括至少一个具有标签的内嵌资源的内容资源的请求的操作。在标识标签时,使用至少一个传送参数来生成经修改的内嵌资源。以及,传送具有经修改的内嵌资源的所述内容资源。

实施例还可以包括内容传送设备,其包括与非瞬态计算机可读介质通信的至少一个处理器,所述非瞬态计算机可读介质包括用于生成应用程序编程接口(api)的计算机可读指令。在api处,接收内嵌资源和与内嵌资源相关联的至少一个参数。该指令还可以包括:生成经修改的内嵌资源,所述经修改的内嵌资源提供关于内容传送网络内的位置的信息以获得所述内嵌资源。

实施例还可以包括非瞬态计算机可读介质,包括:对象文档(例如html文档),其包括至少一个内嵌资源,所述至少一个内嵌资源包括标签,其使所述内嵌资源被分析以构建经修改的内嵌资源来替换所述内嵌资源,所述经修改的内嵌资源使浏览器接收具有经修改的内嵌资源的所述文档,以发起与内容传送网络的通信来获得与内嵌资源相关联的内容。

最后,实施例还可以包括一种内容传送方法,包括:发起与服务器的http连接,所述http连接包括服务器可用的客户端ip地址。接收包括至少一个内嵌资源的html文档,所述内嵌资源包括对内容传送网络的引用,由此对所述内容传送网络的引用受到所述客户端ip地址的影响。以及,使用所述引用,直接向内容传送网络发起请求以获得与所述至少一个内嵌资源相关联的内容。

下面更详细地讨论这些及其他实施例。

附图说明

根据如附图所示的那些发明构思的特定实施例的以下描述,本文所阐述的本公开的上述和其它目的、特征和优点应当是显而易见的。此外,在附图中,相同的附图标记可以遍及不同的视图指代相同的部分。附图仅描绘了本公开的典型实施例,并因此不应被认为在范围方面进行限制。

图1是与生成用于包括在网络资产(例如html文档)中的内嵌资源相关的网络图和消息流,在一个示例中,该内嵌资源提供绕过dns的到cdn的节点的连接;

图2是示出了具有以下操作的方法的流程图:标识标记的资源,并且此后通过将各种参数传递给api来提供经修改的内嵌资源,该api用于标识能够供应与内嵌资源相关联的内容的cdn的节点;

图3是示出了具有以下操作的方法的流程图:生成经修改的资源以用于嵌入具有标记的资源的所请求的资产中;

图4是与生成用于包括在网络资产(例如html文档)中的来自cdn内的内嵌资源相关的网络图和消息流,在一个示例中,该内嵌资源提供绕过dns的到cdn的节点的连接;

图5是示出了具有以下操作的方法的流程图:标识标记的资源,并且此后通过在cdn内将各种参数传递给api来提供经修改的内嵌资源,该api用于标识能够供应与内嵌资源相关联的内容的cdn的节点;

图6是可以实现本文讨论的各种系统和方法的计算系统的示例。

具体实施方式

本公开的方面涉及用于选择可能在内容传送网络(cdn)中的边缘服务器、机架、群集或其他设备以向客户端供应内容的系统和方法。本公开的方面涉及以下备选方案:在构建要从cdn传送的资源的统一资源定位符(url)时,通过替代地调用api或以其他方式查询cdn来使用常规域名系统(dns)服务器以进行边缘选择。api调用可以包括资源的名称、请求资源的客户端的位置和/或可以用于确定客户端的位置的客户端的ip地址、和/或被请求(或嵌入资源内)的资源的流行度。api或与其相关联的其他计算引擎生成目标(能够从cdn供应内容的节点)或目标的列表,并提供可以从其供应内容(或内嵌内容)的一个或多个位置。在一种具体形式中,api可以返回一个或多个成簇边缘服务器的一个或多个虚拟ip地址(vip)。api还可以返回用于请求内容的协议。api还可以返回可以从其取回内容的绝对url的列表和/或可以用于在调用应用处构建url的主机名和/或ip地址的列表。

本文所用的术语“内容”表示任何类型、任何形式的数据,不管其表示如何,并且不管其代表什么。术语“内容”可以包括但不限于静态和/或动态图像、文本、音频内容(包括流音频)、视频内容(包括流视频)、网页、计算机程序、文档、文件等。一些内容可以嵌入在其他内容中,例如通过使用诸如html和xml之类的标记语言。内容包括专门响应于特定请求而创建或形成或组合的内容。本文中,有时使用术语“资源”来指代内容。

图1示出了用于实施本公开的方面的一个示例性网络配置,而图2和图3描述了方法。所示网络将包括在服务请求和提供内容中涉及的许多其他组件;然而,这里的示意图仅关注于系统中涉及的一些组件,并且普通技术人员之一将容易地理解网络内的其它常规组件。关于内容传送,在该示例中,请求源自操作用户代理12(例如浏览器)的计算设备10。计算设备可以是某种形式的计算设备,例如个人计算机、瘦客户端、平板电脑、智能电话、机顶盒、电缆盒等,其能够运行浏览器并向用户提供通过网络连接请求内容的能力,或适合于与网络交互并从中请求内容的一些其他应用。用户设备可以是部署在公共网络中的消费者设备,可以是部署在私有网络中的企业设备,或可以是某种其他类型的设备。在许多情况下,网络连接将由操作一个或多个解析器14的互联网服务提供商(isp)提供。解析器(也称为dns解析器)是用于解析所请求资源的网络地址(例如,将域名转换为ip地址)的客户端侧设备。一般来说,解析器联系(例如查询)可能涉及许多不同组件的dns基础设施16以解析资源的网络地址(操作200)。

为了说明本公开的各方面,考虑当用户在浏览器网页中输入地址http://www.example.com时。浏览器12联系解析器14,解析器14进而从dns16请求网页的互联网协议(ip)地址。dns返回能够传送将在浏览器中渲染网页的超文本标记语言(html)文档20的源服务器18的ip地址。为获得html文档,客户端设备与源服务器18建立tcp连接,tcp连接可以封装http协议通信(操作210)。源服务器是维护内容的原始副本以分发给客户端和/或将内容副本分发给其他节点的设备(或设备集合)。虽然关联于与源服务器的连接示出了本公开,但可以替代地进行与在dns中指定的一些其他设备的连接以服务所请求的资源。在该示例中,源服务器与数据库22连接,数据库22以包括具有内嵌资源24的html文档20的某种形式的存储设备(或多个设备)(例如存储装置)来组织和管理存储的资源。html文档是浏览器使用来显示http://www.example.com/的网页的文档。在该示例中,内嵌资源24a是当显示网页时用户可以通过选择链接获得的某种形式的内容的链接。

内嵌资源可以包括指示应当经由对api26的调用来联系的资源地址计算引擎30的标签(操作220)。例如,html文档可以包括以下形式的内嵌资源:

http://${callapi:addronly}/path/resource.txt,或

${callapi:f`ullurl,path=$env{path},pop=$pop}。

在这两种情况下,标签是“$”,其使源服务器18调用api26以(仅)取回地址或完整url。因此,源服务器处的html文档20中的标记的资源24a的存在使源服务器调用api,其结果是使返回给请求客户端的html文档包括具有到cdn的地址或url的经修改的内嵌资源24b,通过所述到cdn的地址或url可以取回内容。

当源服务器接收到请求时(或在接收到请求之前的某一时间),源服务器调用api以便与计算引擎30进行通信,从而对内嵌资源的地址进行格式化。标记的内嵌资源的存在提示api调用。在该示例中,内嵌资源的地址不是静态的。相反,返回最佳适于向请求客户端供应内容的地址。因此,在一个简单示例中,html文档最初是用标记的内嵌资源24a发布的,标记的内嵌资源24a将标识该资源并且还可以包括例如流行度的其他属性。如果用户在纽约,这可以基于api调用中的客户端ip地址通过包括请求客户端的ip地址或信息(例如地理信息)来确定,并且cdn能够从加利福尼亚和纽约二者供应所请求的内容,由于包括成本、延迟、质量、最佳cdn使用等在内的任何数量的原因,从加利福尼亚供应内容可能不是最佳的。在当前系统中,api/计算引擎可以替代地导致将客户端引导到纽约节点的内嵌资源24b(也称为经修改的内嵌资源)的创建。虽然本文中被描述为与相关联的计算引擎结合的api调用(或多个调用),可以使用其他应用来计算和返回经修改的内嵌资源。在某些情况下,仅参考api,但应该认识到,这种参考不仅包括接口,还包括用于处理对api的输入并生成经修改的内嵌资源的关联的计算例程、函数等。在任何情况下,经修改的内嵌资源被生成并代替该资源,其中经修改的资源标识了能够供应该内容的节点(操作230)。

api可以获得用于从各种源确定地址的信息。首先,来自源服务器的请求可以包括信息。由于客户端已经通过tcp连接联系了源服务器,客户端ip地址可以被包括在来自客户端的请求中。因此,源服务器可以将客户端ip地址发送给api,和/或源服务器可以使用客户端ip来获得或生成将与api共享的信息28。例如,源服务器可以基于客户端ip地址获得客户端的地理信息,或者可以将该ip地址发送给api,该api可以获得客户端的地理信息。客户端的位置可以用来选择最佳节点以服务对内嵌资源的请求。请注意,通过嵌入ip地址以直接供应内容,客户端设备可以绕过dns,并替代地与内嵌资源的源直接连接。无论如何,将具有经修改的内嵌资源24b的html文档20返回给客户端设备(操作240)。

源服务器或与管理源服务器的客户相关联的其他设备也可以获得内容的流行度信息。例如,考虑以下情况,其中http://www.example.com/是在线视频提供商的主页,并且内嵌资源是针对最近发布的在剧院表现良好的电影。在这样的示例中,当电影由视频提供商发布时,它最初可以非常流行,并且这种流行度可以被跟踪并与api(及其计算引擎)共享。在同一示例中,客户可以基于其视频的初始版本在其订户(用户基础)当中将非常流行的理解,将流行度预设为“高”。流行度的标度可以是任何数量的可能形式:-1=低、2=中等、3=高;1-10的标度,其中1是不流行的而10是最流行的等。客户限定的流行度可以如最初在开端处限定地被包括在html页面的标记的内嵌资源中,或可以被提供为api的单独输入。该标度可以基于对内容的请求的数量,其可以基于离散时间(例如,每天、每分钟、每秒等的请求数量)。最后,流行度可以被预测,并且也可以按区域安排。例如,在新闻故事的情况中的资源可以最初在特定区域或在特定时间变得流行。比方说,例如,清晨国家爆炸性新闻故事在美国东海岸就可以变得实际上很流行。客户然后可以预测其在西海岸的流行度,并且系统可以自动针对所有请求将其设置为“高”值。

除客户信息(包括地理位置和流行度)外,源服务器还可以传递诸如策略信息、政治信息、限制等的其他信息。例如,一些内容的分布可以在地理上受限——例如,获得实时体育内容可以在参与该事件的一个或两个队伍的地理区域中受限。某些内容可能具有地理政治分布限制。该信息也可以单独存储在cdn处或以其他方式可由cdn单独访问,并传递给经修改的内嵌资源或以其他方式用于生成经修改的内嵌资源。无论如何,参考图3,计算引擎接收cdn信息,以及其他信息,它可以用于标识能够接收内容的节点、节点集合、vip等的(操作300)。

可以将类似信息提供给api,或者可以由api从其他源访问类似信息。例如,cdn可以维护其自身流行度信息并且可以对其进行跟踪,这可以计及与cdn的其他客户一起发起的请求。通常情况下,cdn将具有众多客户,并处理这些客户的一些或全部内容传送。此外,在许多情况下,客户将具有带有相同内容的web性质。因此,客户端可以联系那些web性质中的任何一个以获得内容。因此,cdn具有对一些内容的流行度的更大视野(view)。

在任何情况下,api26向计算引擎30提供接口,所述计算引擎30使用通过api传递给引擎的信息,以在接收到与标记的资源或以其他方式标识以用于修改的资源相关的来自源服务器(或来自一些其它请求源)的请求时,确定cdn中的一个或多个节点32来供应内容(操作310)。计算引擎在确定从其供应内容的节点时,可以考虑并使用客户端ip、客户(通过例如客户id)、某些或所有形式的流行度、资源的传送协议以及各种其他形式的信息(操作320)。例如,计算引擎可以使用地理信息选取离客户端最近的节点(cs1)来供应内容。计算引擎还可以考虑网络业务量,并且如果最近的节点太忙,则选择另一接近但不太忙的节点(例如cs2)。如果内容满足某一流行度阈值并且很可能被再次请求,则计算引擎还可以连同ip地址一起嵌入了用于节点缓存内容的副本的指令。在某些情况下,例如,节点可能尚不具有内容,并且在接收到请求时,必须从源服务器、另一节点或其他地方请求该内容。在这种情况下,该指令将使节点缓存并保留内容,并能够直接服务下一请求。

api返回可以从其取回内容的绝对url、和/或可用于在调用应用程序处构建url的主机名和/或ip地址的列表(操作330)。类似地,源服务器可以将文档传递给api,并且api使经修改的内嵌资源被直接嵌入并将经修改的文档返回到源服务器。因此,当客户端浏览器显示网页时,例如经修改的内嵌资源(例如,链接)可以包括可以传送内容的cdn内的节点(例如,边缘服务器)的绝对url。当用户选择链接时,浏览器将直接联系内容的节点。在主机名的情况下,内嵌资源可以包括对cdn的具体引用,使得绕过任何其他dns处理直接联系cdn的名称服务器34,使得cdn可以执行任何形式的智能业务量管理(itm)或其他形式的边缘选择并返回能够处理请求的cdn内的节点的ip地址。可能的情况是,主机名还将包括对能够服务如由api确定的请求的节点的引用。在这种情况下,主机名引用cdn位置,所述cdn位置被紧密地定制到用于服务请求的位置,但相对于绝对url允许一定级别的故障转移(failover)、负载平衡等。在这种情况下,可以将主机名映射至与能够服务该请求的各种机器相关联的vip。

在备选实现中,其也可以涉及api并且对其进行调用以对服务请求的最佳节点进行解析,联系api并构建最佳网络地址的过程替代地由cdn来处理并且不一定涉及客户源服务器或cdn外的其他设备。虽然实施例在本文中被讨论为涉及api,但应当注意,api是用于以下的方便且高效的方式:不同系统一致并可预测地将信息传递给计算引擎;以及计算引擎返回信息。然而,与计算引擎通信和并向计算引擎传递信息的其他形式也是可能的。此外,api可以包括引擎的功能,并且不一定被认为是与计算引擎功能的分立机构。

现在参考图4和图5,以与图1-3的系统和过程相同的方式,客户端设备40使用浏览器42对网络资源进行初始请求,接收该请求(操作510)。例如,客户端请求http://www.example.com。客户端的解析器44查询dns46,dns46从与所请求的内容相关联的源服务器——名称服务(os-ns)48返回cname(操作520)。cname是在dns中用于指定另一个域的名称或地址的机制。在这种情况下,cname指向cdn50的域——例如www.example.com.c.cdn.net。在这种情况下,客户端设备(或其他访问设备)将无缝地被引导以与名称服务器52或cdn.net域的服务器联系。名称服务器将解析该请求并将入口点返回给cdn(例如节点54),从cdn(例如节点54)获得页面56。然而,无论客户端如何被引导向cdn,如上述示例一样,从客户端设备向cdn的请求可以涉及http连接,并且可以包括请求设备的ip地址(客户端ip)和关于所请求的页面的信息(操作530)。页面(例如,www.example.com)具有可以是如上所述的标记的资源58a的一个或多个内嵌资源。因此,与页面联系的cdn节点(例如,边缘服务器或cdn源服务器)将识别标记的内嵌资源58a的存在,并且联系api/计算节点60以返回包括在返回到请求客户端设备40的页面中的内嵌资源(称为“经修改的内嵌资源“)58b(操作540和550)。

api/计算引擎将可以从各种可能的源访问各种类型的信息。例如,如上所述,api可以被传递信息并可以从其他源接收信息,计算引擎可以使用该信息生成页面内的内嵌链接的地址。页面和内嵌链接(例如,与资源的链接)被返回给请求客户端。在一个可能的示例中,内嵌资源可以包括vip或到边缘服务器的直接链接以传送资源。

当生成经修改的内嵌资源58b时,计算引擎可以考虑客户端解析器的位置、客户端的位置(基于客户端ip)、策略、由cdn跟踪或包括在原始内嵌资源中的流行度、地理限制、协议和其他参数,这些信息可以被存储、计算或以其他方式从cdn信息存储装置62访问。因此,当页面56(例如,html文档)被返回到客户端设备40并选择经修改的内嵌资源58b时,客户端设备(例如,浏览器)可以直接联系由api/计算机引擎限定的节点或以其他方式联系cdn以获得资源。

图6是实现可以收集本文讨论的各种数据、从源服务器、cdn-os或以其他方式接收请求、以及处理数据和请求以确定最佳cdn节点的cdn节点计算引擎(和api)608的计算系统600的示例示意图。用于应用608的计算系统包括总线601(即互连)、至少一个处理器602或其他计算元件、至少一个通信端口603、主存储器604、可移除存储介质605、只读存储器606以及大容量存储设备607。处理器602可以是任何已知的处理器,例如但不限于处理器、或athlon处理器或多线处理器(linesofprocessors)。通信端口603可以是供基于调制解调器的拨号连接使用的rs-232端口、10/100以太网端口、使用铜缆或光纤的千兆端口或usb端口中的任何一个。可以根据计算机系统600所连接到的诸如局域网(lan)、广域网(wan)或任何网络之类的网络来选择通信端口603。会和应用可以经由输入/输出(i/o)端口609与外围设备(例如,显示屏630、输入设备616)通信。

主存储器604可以是随机存取存储器(ram)或本领域公知的任何其它动态存储设备。只读存储器606可以是任何静态存储设备,例如用于存储诸如处理器602的指令的静态信息的可编程只读存储器(prom)芯片。大容量存储设备607可以用于存储信息和指令。例如,可以使用诸如系列的小型计算机串行接口(scsi)驱动器之类的硬盘、光盘、诸如独立磁盘冗余阵列(raid)、诸如系列的raid驱动器之类的磁盘阵列或者任何其它大容量存储设备。

总线601将处理器602与其它存储器、存储装置和通信块通信地耦接。根据所使用的存储设备,总线601可以是pci/pci-x、scsi或基于通用串行总线(usb)的系统总线(或其它总线)。可移除存储介质605可以是任何种类的外部硬盘驱动器、拇指驱动器、致密盘-只读存储器(cd-rom)、致密盘-可重写(cd-rw)、数字视频盘-只读存储器(dvd-rom)等。

本文中的实施例可以被提供为计算机程序产品,其可以包括其上存储有指令的机器可读介质,所述指令可以用于对计算机(或其它电子设备)进行编程以执行处理。机器可读介质可以包括但不限于光盘、cd-rom、磁光盘、rom、ram、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、磁卡或光卡、闪存或适于存储电子指令的其它类型的介质/机器可读介质。

如所示,主存储器604被编码有内嵌资源应用650-1,内嵌资源应用650-1可以包括相对于本文讨论的、并支持如上所述并如下面进一步讨论的功能的api/计算引擎所描述的功能。例如,在一个实施例中,应用650-1可以包括或以其它方式实现本文所描述的各种处理和/或指令。应用650-1(和/或如本文所述的其它资源)可以被实现为根据本文所述的不同实施例的支持处理功能的软件代码,例如数据和/或逻辑指令(例如,存储在存储器中或在诸如磁盘之类的另一计算机可读介质上的代码)。在一个实施例的操作期间,处理器602通过使用总线601访问主存储器604,以启动、运行、执行、解释或以其它方式执行650-1的逻辑指令。

以上描述包括体现本公开技术的示例系统、方法、技术、指令序列和/或计算机程序产品。然而,应当理解,可以在没有这些具体细节的情况下实施所描述的公开。在本公开中,所公开的方法可以被实现为设备可读的指令集或软件。此外,应当理解,所公开的方法中的步骤的具体顺序或层次是示例方法的实例。基于设计偏好,应当理解,方法中的步骤的具体顺序或层次可以被重新排列,同时仍然在所公开的主题范围之内。随附的方法权利要求以样本顺序呈现各个步骤的元素,并且不一定意味着受限于所呈现的具体顺序或层次。

所描述的公开可以被提供为计算机程序产品或软件,其可以包括上面存储有指令的机器可读介质,所述指令可以用于根据本公开对计算机系统(或其他电子设备)编程以执行处理。机器可读介质包括用于以机器(例如,计算机)可读的形式(例如,软件、处理应用)存储信息的任何机构。机器可读介质可以包括但不限于磁存储介质、光学存储介质(例如,cd-rom)、磁光存储介质、只读存储器(rom)、随机存取存储器(ram)、可擦除可编程存储器(例如,eprom和eeprom)、闪存或适于存储电子指令的其他类型的介质。

可以相信,应当通过上述描述理解本公开以及其所伴随的优点,并且应当显而易见的是,在不脱离公开主题的前提下,并且在不牺牲其材料优点的全部的前提下,可以对组件的形式、结构和布置作出各种改变。所描述的形式仅仅是解释性的,并且以下权利要求的意图涵盖并包括这些改变。

尽管参考各种实施例描述了本公开,应当理解:这些实施例是说明性的且本公开的范围不受限于此。很多变化、修改、添加和改进是可能的。更一般地,已经在具体实现的上下文中描述了根据本公开的实施例。功能在本公开的各种实施例中可以不同地按块分离或组合,或者用不同的术语描述。这些和其他变型、修改、添加和改进可以落入以下权利要求限定的本公开的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1