用于利用基于通知的无效缓存内容的系统和方法技术方案

技术编号:13503818 阅读:58 留言:0更新日期:2016-08-10 03:10
本文描述的是用于在因特网上内容分发的系统、设备以及方法。在特定的没有限制的实施例中,缓存模型被提供,其能够为期限不定的时间段的、可能具有无限的或者相当长生存时间的值提供缓存,当基础的源内容发生变化时还能够提供迅速的更新。在一种方法中,源服务器能够用令牌对其内容请求的响应进行注释,例如,将其放到附加的HTTP头部或者采用另外的方式。令牌能够驱动缓存的进程,并且可以被用作后续在分发内容的缓存代理服务器内无效响应的句柄。令牌可以用于表示在响应中表述的各种类型的依赖关系,包括但不限于数据、数据范围或者作为响应构建基础的逻辑。

【技术实现步骤摘要】
【国外来华专利技术】用于利用基于通知的无效缓存内容的系统和方法
本公开大体上涉及分布式数据处理系统以及涉及在计算机网络上对用户的内容分发,并且更具体地涉及用于在计算机网络上缓存内容以加速内容分发的技术。专利技术背景分布式计算机系统在现有的
中是被公知的。一个这样的分布式计算机系统是由服务提供商运营并管理的“内容分发网络”或者“CDN”。服务提供商通常代表第三方来提供内容分发服务。该类型的“分布式系统”通常指由一个网络或多个网络连接的自发的计算机的集合,连同被设计以有助于各种服务,例如内容分发或者支持外包的站点基础设施的软件、系统、协议和技术。该基础设施通常由多个租用者、内容提供商共享。该基础设施通常被用于代表该内容提供商或者其他的租用者的内容(例如web、媒体流以及应用)的存储、缓存或者传输。平台也可以提供辅助的技术,此处被使用的辅助技术包括但不限于,DNS查询处理、业务开通、数据监控和报告、内容定向、个性化、以及智能业务。在诸如在图1中所示的公知的系统中,分布式计算机系统100被配置为内容分发网络(CDN)并且有分布于因特网各处的机器102的集合。通常,大多数机器是位于靠近因特网边缘的服务器,即,在或者毗邻终端用户接入网。网络运营指挥中心(NOCC)104可以被用于掌管并管理在系统中的各种机器的运行。隶属于内容提供商的诸如网站106的第三方站点将内容(例如,HTML或者其他的标记语言文件,内嵌页面对象、媒体流、软件的下载等等)的分发卸载到分布式计算机系统100以及尤其卸载到CDN服务器(有时被称为“边缘”服务器)。这样的服务器可以被一起分组到在特定地理位置上的入网点(POP)107。CDN服务器通常位于在因特网上的公众可路由的节点,在位于移动网络、在或者毗邻基于企业的私有网络、或者在其组合中的节点内或者与位于移动网络、在或者毗邻基于企业的私有网络、或者在其组合中的节点毗邻。通常,内容提供商通过对指定的内容提供商的域或子域(例如,通过DNS别名记录)起别名将其内容的分发卸载到由服务提供商的授权域名服务管理的域。服务提供商的域名服务将希望得到内容的终端用户客户机122指引到分布式计算机系统(或者更特殊地,到在平台中的CDN服务器中的一个服务器)以获得更可靠和更有效的内容。CDN服务器响应客户端请求,例如,通过从本地缓存中、从另外的CDN服务器、从与内容提供商关联的源服务器106或者从其他的源中获取被请求的内容。对于可缓存的内容,CDN服务器通常采用依赖于针对每个可缓存的对象设置的生存时间(TTL)的缓存模型。在获取到被请求的内容以后,对象可以被本地存储在指定的CDN服务器直到TTL期满,到那时该对象通常根据源服务器106被重新验证或者被重新获取。对于不可缓存的对象(有时被称为“动态”的内容),当该对象被客户端请求时CDN服务器通常每次必须返回到源服务器106。CDN可以实行服务器缓存的分级以在比源服务器106更接近处理客户端请求的CDN服务器的各种CDN服务器中提供客户内容的中间缓存;一种这样的缓存分级子系统被描述在美国专利申请号7,376,716中,其公开通过引用被并入本文。尽管在图1中没有详细地示出,但是分布式计算机系统还可以包括其他的基础设施,例如分布式数据收集系统108,其收集来自CDN服务器的使用数据和其他数据,对经过一个区域或者区域的集合的数据进行总计并将这些数据传递到其他的后端系统110、112、114和116以有助于监控、记日志、报警、计费、管理以及其他的运营和管理的功能。分布式网络代理118对网络和服务器的负载进行监控并且将网络数据、流量数据和负载数据提供给DNS查询处理机构115。分布式数据传输机构120可以用于将控制信息(例如,用于管理内容的元数据,用于增强负载平衡(的元数据)等等)分发到CDN服务器。CDN可以包括可以位于CDN服务器可访问的网络数据中心以及可以充当内容源的网络存储子系统(有时在本文被称为“网络存储”),如在美国专利第7,472,178号中所描述的,其公开通过引用的方式被并入本文。如在图2中所示出的,在CDN中指定的机器200包括运行支持一个或多个应用206的操作系统核(例如Linux或者其变型)204的商业硬件(例如微处理器)202。为了有助于内容分发服务,例如,指定的机器通常运行一组应用,例如(超文本传输协议)HTTP代理207,名称服务器208、本地监控进程210、分布式数据收集进程212等等。HTTP代理207(有时在本文被称为全局主机或者“ghost”)通常包括用于对缓存和对来自机器的内容的分发进行管理的管理器进程。针对媒体流,机器可以包括如由所支持的媒体格式需要的一个或多个媒体服务器,例如Windows媒体服务器(WindowsMediaServer,WMS)或者Flash服务器。在图2中示出的指定的CDN服务器可以优选基于具体的域、具体的内容提供商,优选使用利用配置系统分布在CDN服务器上的配置文件被配置以提供一个或多个扩展的内容分发特征。指定的配置文件优选是基于XML(基于可扩展标记语言)的并且包括对一个或多个高级的内容处理特征有帮助的内容处理规则和指令的集合。配置文件可以经由数据传输机构被分发到CDN服务器。美国专利第7,240,100号的内容通过引用被并入本文,其描述了用于分发和管理CDN服务器内容控制信息的有用的基础设施并且该控制信息和其他的控制信息(有时被称为“元数据”)可以由CDN服务提供商自身,或者由运营源服务器的内容提供商客户(经由外联网等等)提供。美国专利第7,111,057号通过引用被并入本文,其描述了用于对来自CDN机器的内容进行清除的架构。关于CDN平台的更多信息可以在美国专利第6,108,703号和第7,596,619号中可以被找到,这两个美国专利通过引用被完全地并入本文。在典型的运营中,内容提供商对期望由CDN已经服务的内容提供商的域或子域进行识别。CDN服务提供商将内容提供商的域与CDN主机名关联(例如,经由规范化的名称或CNAME,或者其他的别名技术),并且CDN提供商随后将CDN主机名提供给内容提供商。当在内容提供商的域名服务器上得到对内容提供商的域或子域的DNS查询时,这些服务器通过返回CDN主机名来响应。上述网络主机名指向CDN,并且该主机名随后通过CDN名称服务得到解析。CDN名称服务将一个或多个IP地址返回到对端。请求的客户端应用(例如,浏览器)随后发出到与该IP地址关联的CDN服务器机器的内容请求(例如,通过HTTP或者HTTPS)。该请求包括主机头部,该主机头部包括源内容提供商的域或子域。一接收到带有主机头部的请求,CDN服务器就检查其配置文件以确定请求的内容域或子域是否确实由CDN正在处理。如果是,那么CDN服务器针对该域或子域应用如配置中说明的内容处理规则和指令。如上文所述,这些内容处理规则和指令可以位于基于XML的“元数据”配置文件中。CDN平台可以被认为是在因特网上的在其上能够提高通信效率的覆盖层。当CDN服务器需要从源服务器106或者从充当中间的父缓存的另外CDN服务器中获得请求的内容时,或者当对代表内容提供商的通过覆盖层的不可缓存的内容的通信进行加速时,或者当其他情况时,在覆盖层上被提高的本文档来自技高网...

【技术保护点】
一种计算机实施的方法,其是在服务器中可操作的,所述服务器具有形成存储器和一个或多个处理器的电路,所述存储器保存用于由所述一个或多个处理器执行的指令,所述方法包括:接收客户端请求;响应于所述客户端请求,生成到远程源的转发请求;从所述远程源接收对所述转发请求的响应,所述响应包括响应内容和至少一个令牌;本地缓存所述响应内容和所述至少一个令牌;将所述响应内容提供给客户端以响应所述客户端请求;接收指示所述至少一个令牌是无效的消息;以及将所缓存的响应内容视为对于服务以响应随后的客户端请求是无效的,因为所述响应内容与在所述消息中被指示为无效的所述至少一个令牌相关联。

【技术特征摘要】
【国外来华专利技术】2013.10.04 US 14/046,8841.一种计算机实施的方法,其是在服务器中可操作的,所述服务器具有形成存储器和一个或多个处理器的电路,所述存储器保存用于由所述一个或多个处理器执行的指令,所述方法包括:接收客户端请求;响应于所述客户端请求,生成到远程源的转发请求;从所述远程源接收对所述转发请求的响应,所述响应包括响应内容和不同于所述响应内容的至少一个令牌,所述至少一个令牌对应于以下项中的一项或多项:(i)在所述远程源处的数据库中的用于构造所述响应的数据,(ii)在所述远程源处的数据库中的主关键字,(iii)由所述远程源用来对用于构造所述响应的数据进行选择或者分类的数据选择或分类功能,(iv)在所述远程源处的保存能被更新的数据的数据结构,(v)在所述远程源处的用于构造所述响应的文件,以及(vi)在所述远程源处的存储器对象缓存系统中的关键字;本地缓存所述响应内容和所述至少一个令牌;将所述响应内容提供给客户端以响应所述客户端请求;接收指示所述至少一个令牌是无效的消息;以及将所缓存的响应内容视为无效而不能对随后的客户端请求提供响应,因为所述响应内容与在所述消息中被指示为无效的所述至少一个令牌相关联。2.根据权利要求1所述的方法,其中所述消息包括所述至少一个令牌是无效的显式断言。3.根据权利要求1所述的方法,其中所述消息包括所述至少一个令牌是无效的隐式断言。4.根据权利要求1所述的方法,其中所述至少一个令牌包括别名并包括序列号或者时间戳,以及所述消息指示所述至少一个令牌是无效的,因为所述消息包括所述别名并包括不同的序列号或者不同的时间戳。5.根据权利要求1所述的方法,其中所述消息接收自所述远程源。6.根据权利要求1所述的方法,其中所述服务器是CDN中的多个节点中的一个节点,以及所述消息接收自所述CDN中的节点。7.根据权利要求1所述的方法,其中所述客户端请求包括来自应用程序接口API的针对服务的请求,以及所述响应是API响应。8.根据权利要求1所述的方法,其中所述远程源包括与内容提供商关联的一个或者多个源服务器。9.根据权利要求1所述的方法,其中所述服务器是CDN中的代理服务器。10.根据权利要求1所述的方法,还包括:发送多个其他的转发请求;接收多个其他的响应,所述多个其他的响应中的至少一些响应包括所述至少一个令牌;缓存所述多个其他的响应;在接收所述消息以后,将所述多个其他的响应中包含所述至少一个令牌的每个响应视为无效而不能对随后的客户端请求提供响应。11.根据权利要求1所述的方法,其中所述至少一个令牌包括别名和数据范围的标识,以及所述消息包括所述别名和在所述数据范围内的至少一个特定数据值的标识。12.根据权利要求1所述的方法,其中所述响应包括所述响应内容以及容纳所述至少一个令牌的头部。13.一种用于缓存内容的装置,其包括:微处理器和存储由一个或者多个微处理器执行的计算机程序指令的存储器,所述计算机程序指令的执行使得所述装置:接收客户端请求;响应于所述客户端请求,生成到远程源的转发请求;从所述远程源接收对所述转发请求的响应,所述响应包括响应内容以及不同于所述响应内容的至少一个令牌,所述至少一个令牌对应于以下项中的一项或多项:(i)在所述远程源处的数据库中的用于构造所述响应的数据,(ii)在所述远程源处的数据库中的主关键字,(iii)由所述远程源用来对用于构造所述响应的数据进行选择或者分类的数据选择或分类功能,(iv)在所述远程源处的保存能被更新的数据的数据结构,(v)在所述远程源处的用于构造所述响应的文件,以及(vi)在所述远程源处的存储器对象缓存系统中的关键字;将所述响应内容以及所述至少一个令牌缓存到所述装置的本地缓存中;将所述响应内容提供给客户端以响应所述客户端请求;接收指示所述至少一个令牌是无效的消息;以及将所缓存的响应内容视为无效而不能对随后的客户端请求提供响应,因为所述响应内容与在所述消息中被指示为无效的所述至少一个令牌相关联。14.一种计算机实施的方法,所述方法是在服务器中可操作的,所述服务器具有形成存储器和一个或多个处理器的电路,所述存储器保存用于由所述一个或多个处理器执行的指令,所述方法包括:接收内容,所述内容具有附加至所述内...

【专利技术属性】
技术研发人员:马丁·T·弗拉克莫里茨·M·斯坦纳斯蒂芬·L·卢丁约瑟夫·哈塔拉
申请(专利权)人:阿卡麦科技公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1