可配置的基于访问的缓存策略控制的制作方法

文档序号:34259412发布日期:2023-05-25 04:18阅读:30来源:国知局
可配置的基于访问的缓存策略控制的制作方法
可配置的基于访问的缓存策略控制
1.相关申请的交叉引用
2.本技术要求2020年9月16日递交的美国专利申请序列号17/023,261的权益,特此通过引用将该美国申请并入在此。
技术领域
3.本公开的实施例概括而言涉及分布式计算系统,更具体而言涉及可配置的基于访问的缓存策略控制。


背景技术:

4.分布式计算系统包括许多不同的硬件和软件组件,它们进行操作以向分布式计算系统的客户端提供各种服务。例如,执行视频流媒体服务的分布式计算系统可以提供对可在一系列不同的客户端设备上观看的媒体标题库的访问。分布式计算系统向客户端提供对媒体库的访问,其中客户端请求特定的媒体项目(例如,电影、电视剧集、音乐视频,等等),并且内容提供者将媒体项目传输到客户端设备。传统的内容流媒体服务通过在内容递送网络(content delivery network,cdn)内的各种服务端点和缓存设备处存储与媒体项目有关的数字内容来增强流媒体性能。以这种方式,给定的客户端设备请求特定的媒体项目,并且多个服务端点可以通过提供与媒体项目的重放相关联的数字内容(例如,字幕、元数据、认证数据,等等)来为客户端设备服务。在一些系统中,缓存设备可以在本地存储区中存储数字内容,并且从本地存储区提供数字内容,而不是向起源服务器请求数字内容。
5.管理来自cdn的内容项目的递送的一个缺点是,从缓存设备递送本地存储区的数字内容可能会使cdn的某些部分紧张。例如,缓存设备可以存储特定类型的数字内容,例如智能容器,它包含将请求设备指引到服务端点的链接。当这个原始端点变得过载时,起源服务器可以用不同的链接更新智能容器,该不同链接将请求设备指引到与原始服务端点不同的端点。然而,缓存设备并不发送更新存储在本地存储区中的智能容器的请求。结果,缓存设备提供过时的智能容器,将请求设备引导到原始服务端点。这样的技术使得计算资源和网络资源紧张,因为一些服务端点会因请求而过载。一些cdn尝试解决这个问题,这是通过要求缓存设备将每个请求转发到起源服务器,起源服务器处理每个请求,以便有效地对去往个体服务端点的流量进行负载平衡。然而,这种技术降低了cdn的效率,因为起源服务器需要接收和响应由众多请求设备作出的每个请求。
6.如前所述,本领域需要更有效的技术来管理内容递送网络内的流量。


技术实现要素:

7.本公开的各种实施例涉及一种由计算机实现的方法,该方法接收与对象相关联的头部,其中头部包括指定在重验证之前将要从缓存设备提供对象的次数的极限值,以及指定自从最新近的重验证、加载或重加载以来已经提供了对象的次数的当前计数值;从请求设备接收对该对象的请求;并且在确定当前计数值低于极限值时,从缓存设备向请求设备
提供该对象,或者在确定当前计数值与极限值相匹配时,发送重验证该对象的请求。
8.其他实施例包括但不限于执行所公开的技术的一个或多个方面的计算机系统,以及包括用于执行所公开的技术的一个或多个方面的指令的一个或多个非暂态计算机可读存储介质。
9.相对于现有技术,所公开的技术的至少一个技术优势是,内容递送网络可以管理边缘设备从本地存储区提供数字内容的次数。具体地,通过限制在要求重验证之前可以从缓存提供给定对象的次数,起源服务器可以监视被引导到特定服务端点的流量,而不直接响应对存储在边缘设备的数字内容的请求。这些技术优势是提供了相对于现有技术方法的一个或多个技术进步。
附图说明
10.为了使得可以详细理解各种实施例的上述特征,通过参考各种实施例可进行对以上简要总结的发明构思的更具体描述,实施例中的一些在附图中图示。然而,要注意,附图只是图示了发明构思的典型实施例,因此不应被认为以任何方式对范围进行限制,并且有其他同等有效的实施例。
11.图1图示了被配置为实现本公开的一个或多个方面的网络基础设施。
12.图2图示了根据本公开的各种实施例的与发送到图1的网络基础设施中的设备的消息相关联的示例头部。
13.图3图示了根据本公开的各种实施例的由图1的网络基础设施中包括的各种设备执行的缓存技术的更详细图示。
14.图4图示了根据本公开的各种实施例的由图1的网络基础设施中包括的各种设备执行的另一种技术的更详细图示。
15.图5记载了根据本公开的各种实施例的用于缓存对象或者重验证存储在图1的网络基础设施中的缓存设备中的对象的方法步骤的流程图。
16.图6记载了根据本公开的各种实施例的用于为要存储在图1的网络基础设施中的缓存设备中的对象设置计数极限值的方法步骤的流程图。
17.图7图示了被配置为实现本公开的一个或多个方面的另一网络基础设施。
18.图8是根据本公开的各种实施例的图7的网络基础设施中包括的内容服务器的更详细图示。
19.图9是根据本公开的各种实施例的图7的网络基础设施中包括的控制服务器的更详细图示。
20.图10是根据本公开的各种实施例的图7的网络基础设施中包括的端点设备的更详细图示。
具体实施方式
21.在以下描述中,记载了许多具体细节以提供对各种实施例的更透彻理解。然而,本领域技术人员将会清楚,没有这些具体细节中的一个或多个,也可以实现发明构思。
22.视频流媒体服务向观众提供高质量的数字内容。在某些情况下,视频流媒体服务使用内容递送网络(cdn)来将数字内容递送给大量的客户端设备。当向客户端设备递送数
字内容时,cdn可以从多个服务端点递送数字内容,其中给定的服务端点提供数字内容的一部分。例如,当响应重放视频的请求时,内容服务器可以从多个服务端点提供视频的一些部分,例如一个服务端点提供视频文件,一个服务端点提供字幕文件,并且另一个服务端点提供元数据。维持cdn的功效的各种技术经常尝试通过管理发送到每个服务端点的请求的量来平衡施加于cdn内的多个服务端点上的负载。
23.现有技术通过在本地在缓存设备中存储某些资产,并且直接从缓存设备提供文件,而不是将请求引导到服务端点,来减轻了施加于服务端点上的负载。然而,这种技术会让缓存设备提供过期的文件,而不在cdn内发送否则会导致缓存接收更新的文件的请求。其他技术将要求缓存设备将每个请求转发到起源服务器,以使得起源服务器确保文件是当前版本,并且使得起源服务器能够对到特定服务端点的流量执行负载平衡。然而,这样的要求浪费了资源,因为将每个对特定文件的请求引导到起源服务器要求cdn接收到的每个请求从cdn中的边缘设备穿越到起源服务器并且每个响应从起源服务器通过cdn穿越回到边缘设备。
24.相反,所公开的网络和相关联的所公开的技术使得cdn内的设备能够通过控制将请求设备引导到特定服务端点的数字内容来管理施加于服务端点上的负载。具体地,起源服务器配置给定对象的缓存策略。起源服务器生成与对象相关联的一个或多个消息。当向缓存设备提供消息时,起源服务器在消息主体中包括对象,并且包括头部,该头部具有各种参数,这些参数指定缓存设备如何将对象存储在本地存储区中。一个参数是计数极限值,它限制了在重验证之前缓存设备能够向请求设备提供对象的最大次数。缓存设备可以从本地存储区向请求设备提供对象,最多到消息中提供的计数极限值。缓存设备维护当前计数值,该值指示出缓存设备从本地存储区提供了对象的次数。当缓存设备接收到来自请求设备的请求消息时,缓存设备将当前计数值与计数极限值进行比较,并且只有在当前计数值没有达到计数极限值时,才将对象提供给请求设备。
25.例如,缓存设备可以确定当前计数值等于计数极限值。缓存设备可以通过向起源服务器发送重验证请求消息来响应这个确定,以便重验证存储在本地存储区中的对象。在接收到来自起源服务器的指定新计数极限值(例如,50)的响应消息时,缓存设备于是可以将对象的计数极限设置为50,并且将当前计数值重置回零。基于这些缓存控制值,缓存设备可以通过在尝试重验证对象之前提供对象的本地存储区版本,来响应最多50个额外请求。
26.有利的是,起源服务器可以通过控制请求设备被引导到特定端点的次数来管理服务端点的负载。更具体而言,传统的cdn将要求起源服务器接收对对象的每个请求,以便对向服务端点作出的请求进行负载平衡。相比之下,使用所公开的技术的分布式网络通过控制下游设备(例如边缘缓存设备)在需要重验证之前能够提供将请求设备引导到特定服务端点的对象的次数来释放cdn的计算和网络资源。cdn内的起源服务器有效地控制了去到各种服务端点的流量,而无需接收和直接响应每一个请求消息。
27.系统概览
28.图1图示了被配置为实现本公开的一个或多个方面的网络基础设施100。如图所示,网络基础设施100包括内容提供者110、内容递送网络(cdn)120、网关150、以及客户端设备160。cdn 120包括起源服务器122、中间层级缓存设备124、服务端点130、以及边缘缓存设备140。边缘缓存设备140(1)包括对象126。
29.出于说明目的,用识别对象的参考号码并且在必要时用识别实例的附加号码来表示相似对象的多个实例。另外,即使当没有示出时,网络基础设施100也包括设备的多个实例。例如,网络基础设施100可包括多个内容提供者110(例如,110(1)、110(2),等等)、客户端设备160(例如,160(1)、160(2),等等)和/或边缘缓存设备140(例如,140(1、)140(2),等等),并且仍然在所公开的实施例的范围内。
30.在操作中,内容提供者110向起源服务器122提供一个或多个媒体项目。起源服务器122摄取给定的媒体项目,并且将该媒体项目存储为一个或多个文件和/或对象。在各种实施例中,一个或多个服务端点130可以存储一个或多个文件和/或对象。当客户端设备160请求媒体项目时,cdn120内的设备(例如,起源服务器122、中间层缓存设备124和/或边缘缓存设备140(1))可以经由边缘缓存设备140(1)提供与所请求的媒体项目相关联的文件和/或对象。在一些实施例中,起源服务器122可以通过提供到特定服务端点130(3)的链接(例如,链接128)来引导客户端设备160从特定服务端点(例如,服务端点130(3))接收特定文件和/或对象,其中服务端点130(3)向客户端设备160提供与媒体项目相关联的一个或多个文件和/或对象。
31.内容提供者110提供一个或多个客户端设备160能够访问的内容。例如,内容提供者110可以生成一个或多个媒体流作为内容,其中给定的媒体流包括多个数字内容,这些内容可包括视频数据、音频数据、文本数据、图形数据、元数据和/或其他类型的数据。在一些实施例中,内容提供者110可以将一个或多个媒体流转发到起源服务器122以便摄取。在这种情况下,起源服务器122可以在内容递送网络(cdn)120内的一个或多个设备中存储数字内容。例如,起源服务器122可以将传入的媒体流存储为内容库(未示出)和/或一个或多个服务端点130(例如,130(1)、130(2)、130(3),等等)内的媒体应用程序(例如,电视节目的一集)。
32.内容递送网络(cdn)120代表一个或多个内容提供者110向用户(经由客户端设备160)分发内容。在各种实施例中,cdn 120包括多个设备,这些设备控制数字内容向一个或多个客户端设备160的高效递送。例如,在起源服务器122摄取作为一个或多个文件和/或对象的媒体流时,起源服务器122可以使得文件和/或对象的多个拷贝被存储在多个缓存设备124、140中。当给定的对象被存储在给定的缓存设备124、140中时,缓存设备124、140可以通过提供对象的本地存储区版本来响应由与该文件相关联的客户端设备160作出的请求(例如,请求该文件是其组成部分的媒体流),而不是将请求转发到起源服务器122。这样的技术减少了施加于起源服务器122上的负载。
33.额外地或者替代地,缓存设备,例如边缘缓存设备140(1),可以通过从内容库中取回资产并且将资产递送给客户端设备160来响应接收到的客户端请求。在这种情况下,边缘缓存设备140(1)可以通过从本地存储区中取回资产的拷贝并且将资产递送给客户端设备来响应对该资产的后续请求。
34.在各种实施例中,cdn 120可包括多层级的缓存设备。例如,如图所示,cdn 120包括两层级的缓存设备,其中包括中间层级缓存设备124和边缘缓存设备140。每层级的缓存设备可包括各种数量的特定缓存设备。额外地或者替代地,给定的中间层级缓存设备124被称为父缓存,它在适用的(一个或多个)边缘缓存设备140的上游。例如,中间层级缓存设备124(1)可以是边缘缓存设备140(1)、140(2)的父亲。每个层级中可以有任何数目的缓存设
备,并且在cdn 120内可以有任何数目的层级。
35.起源服务器122是计算机系统,其被配置为服务于来自客户端设备160的对特定媒体的下载请求。所请求的媒体,例如特定的媒体应用或媒体流,可以被存储为数字内容文件和/或对象,这些文件和对象可以驻留在起源服务器122可访问的大容量存储系统上。大容量存储系统可包括但不限于直接附接存储装置、网络附接文件存储装置、或者网络附接块级存储装置。在各种实施例中,起源服务器122在大容量存储系统中存储资产的第一拷贝,并且充当一个或多个资产的权威存储库,或者主存储位置。在各种实施例中,存储在大容量存储系统中的资产充当真实的来源。
36.在各种实施例中,起源服务器122可以在向下游设备提供资产时配置与该资产相关联的一个或多个缓存策略。例如,起源服务器122可包括缓存策略值,该值指定只有边缘缓存设备140(例如,边缘缓存设备140)要存储对象126的本地拷贝(“仅在边缘”(only-at-edge))。在这种情况下,起源服务器122可以在发送给下游设备的消息的头部中包括缓存策略。
37.在一些实施例中,起源服务器122可以配置给定对象的缓存策略,以便管理cdn 120内的流量。例如,对象126可以是智能容器,其包括客户端设备160用来直接连接到特定服务端点130(例如服务端点130(3))的链接128。在这种情况下,起源服务器122可以通过控制向请求设备提供到服务端点130(3)的链接128的次数,来为服务端点130的集合执行各种负载管理技术。为了监视链接128被提供的次数,起源服务器122为对象126设置缓存控制策略,该策略限制下游缓存设备可以服务对象126的次数。
38.在一些实施例中,缓存设备124、140可以在确定达到极限时,将对对象126的重验证请求发送到上游设备。在这种情况下,重验证请求包括被监视的次数。以这种方式,起源服务器122可以跟踪缓存设备124、140提供对象126的次数,而不是接收源自请求设备的每个请求。在一些实施例中,起源服务器122可以在配置缓存控制策略时分析与负载相关联的数据。在一些实施例中,该数据可包括由服务端点130报告给起源服务器122的负载度量数据。额外地或者替代地,起源服务器122可以从下游设备接收请求消息,其中该消息指示出特定的服务端点130。在这种情况下,起源服务器122可以处理请求消息,以便确定与特定端点相关联的负载数据。
39.缓存设备124、140通过存储可提供给请求设备的文件和/或对象的拷贝,来为网络基础设施100和cdn 120提供缓存服务。在各种实施例中,起源服务器122可以使得给定的文件和/或对象被拷贝并且存储在一个或多个中间层级缓存设备124和/或边缘缓存设备140中。在这种情况下,文件可以作为文件被包括在给定的文件目录中,而对象可以被包括在对象存储库中。起源服务器122可以引起一个或多个缓存填充命令,以利用媒体数据库中包括的数字内容来填充给定缓存设备124、140的存储区。额外地或者替代地,缓存设备124、140可以通过响应来自客户端设备160的资源请求,来按需填充给定缓存设备124、140的存储区。在一些实施例中,缓存设备124、140可以充当服务端点130,并且可以存储与特定服务相关联的一个或多个文件和/或对象。
40.在各种实施例中,中间层级缓存设备124和边缘缓存设备140(例如,140(1)-140(5))在地理上分布在世界各地,或者在给定区域内。在各种实施例中,给定的边缘缓存设备140可以比中间层级缓存设备124和/或起源服务器122在逻辑上或物理上位置更接近客户
端设备160。虽然图1示出了cdn 120具有三个层级的起源服务器122和/或缓存设备124、140,但本领域技术人员将认识到,cdn 120的体系结构仅设想了示例实施例。其他实施例可包括中间层级缓存设备124的额外中间层级级别,或者单层级cdn 120。在一些实施例中,cdn 120可以是对等网络,其中没有维持缓存设备124、140的严格层次体系。从而,图1绝不想要以任何方式限制实施例的范围。
41.客户端设备160经由网关150和/或一个或多个网络(未示出)与cdn 120耦合。例如,客户端设备160可以直接连接到网关150,而网关150经由公共网络连接到cdn 120。在这种情况下,客户端设备160可以充当接收源自内容提供者110的媒体应用的端点。
42.可配置的基于访问的缓存策略控制
43.图2图示了根据本公开的各种实施例的与发送到图1的网络基础设施100中的设备的消息相关联的示例头部200。如图所示,头部200包括缓存控制210,以及进一步控制,其中包括最后修改字段220和年限字段230。缓存控制210包括计数极限字段212、边缘缓存字段214、当前计数字段216、以及最大年限字段218。
44.头部200是由设备发送的消息的一部分。在各种实施例中,头部200可以是超文本传送协议(hypertext transfer protocol,http)响应消息的一部分,该响应消息由上游设备生成并且被发送到下游设备(例如,中间层级缓存设备124到边缘缓存设备140(2))。在这种情况下,一个或多个字段可以对应于http规范(例如,http/3.0)中指定的字段。例如,上游设备可以从下游设备接收对资源的请求消息,其中下游设备确定已达到缓存控制极限(例如,期满、服务次数,等等)并且要求重验证或者要求资源的更新版本。在这种情况下,上游设备可以发送http响应消息,该消息具有包括所请求的资源(例如,对象126)的消息主体。如图所示,头部200包括一组头部字段,其中包括缓存控制210,以及关联的字段,例如最后修改字段220和年限字段230。在一些实施例中,其他字段,例如最后修改字段,可以被缓存设备124、140用于确定资源消息中包括的资源是否比存储在缓存设备124、140处的资源的本地拷贝更新近或更老旧。
45.缓存控制210包括一组一个或多个缓存控制字段,这些字段指定用于在缓存中存储资源和维护资源的缓存策略。在各种实施例中,位于客户端设备160和起源服务器122之间的不认识缓存控制210的任何缓存设备124、140可以忽略缓存控制210,然而通过cdn 120传播响应消息。
46.计数极限字段212被包括在缓存控制210中,并且提供下载极限,该下载极限限制了给定的缓存设备124、140在要求从上游设备(例如,中间层级缓存设备124、起源服务器122)重验证之前可以提供对象的本地拷贝的次数。当前计数字段216指定了给定的缓存设备124、140已提供对象的本地拷贝的次数。在各种实施例中,缓存设备124、140可以将当前计数字段216的当前计数值与计数极限字段212的计数极限值进行比较,以便确定缓存设备124、140是否已达到极限。
47.边缘缓存字段214指定该对象只应当被缓存在边缘设备处。在这种情况下,中间设备不会存储该对象的本地拷贝。例如,中间层级缓存设备124可以接收到响应消息,其中包含主体中的对象126和“仅在边缘”的边缘缓存值。由于头部200中存在“仅在边缘”边缘缓存值,中间层级缓存设备124可以通过将响应消息转发到边缘缓存设备140来作出响应,而不存储对象126的本地拷贝。
48.最大年限字段218指定了年限极限,该年限极限指定了对象在期满之前可以达到的最大年限。在这种情况下,缓存设备124、140可以将年限字段230的值与最大年限字段218的值进行比较,以便确定对象是否已期满。在一些实施例中,最大年限字段218可以对应于规范中的特定字段,例如http 3.0规范中的“最大年限”字段。在各种实施例中,缓存设备124、140在确定对象的本地拷贝已达到下载极限或年限极限时,发送重验证请求。
49.图3图示了根据本公开的各种实施例的由图1的网络基础设施100中包括的各种设备执行的缓存技术的更详细图示。如图所示,网络基础设施300包括起源服务器122、边缘缓存设备140、服务端点130、以及客户端设备160。边缘缓存设备140包括存储控制器310和存储分区320。存储分区320存储对象126的本地拷贝。
50.存储控制器310是设备中包括的组件,它管理设备内的存储区的内容。例如,存储控制器310可以管理边缘缓存设备140内的存储分区(例如,存储分区320)。在一些实施例中,存储控制器310可以与其他设备通信,以指示出存储分区320正在存储什么文件和/或对象。额外地或者替代地,在给定的缓存设备124、140本地的存储控制器310可以管理存储分区320和其他设备之间的文件和/或对象的传送。
51.在一些实施例中,存储控制器310管理与向客户端设备160提供给定文件和/或对象相关联的消息。例如,边缘缓存设备140可以接收源自客户端设备160的请求消息,其中该请求设备与流式传输特定视频相关联。在这种情况下,存储控制器310可以识别与请求消息相关联的特定对象,并且确定存储分区320是否正存储该特定对象。存储控制器310可以用与该确定相关联的指示来作出响应。
52.在一些实施例中,存储控制器310从与特定对象相关联的上游设备(例如,起源服务器122、中间层级缓存设备124,等等)接收响应消息。例如,边缘缓存设备140可以接收重验证响应形式的响应消息,该响应消息重验证存储分区320中包括的特定对象。在这种情况下,存储控制器310可以处理响应消息的头部中包括的参数,以便更新存储在存储分区320中的资产的一个或多个属性。
53.存储分区320是边缘缓存设备140处的本地存储区。在一些实施例中,存储分区320可以充当特定类型的存储区,例如共享http缓存。例如,存储分区320可以充当http缓存,该http缓存使得边缘缓存设备140能够通过提供与请求消息相关联的文件和/或对象来响应由客户端设备160发送的取回请求消息。
54.仅出于说明的目的,一系列编号的气泡1-7描绘了当存储控制器310处理取回请求消息时发生的一系列操作的示例。
55.如用编号为1的气泡所描绘的,客户端设备160发送请求消息。例如,客户端设备160可以发送与对象126相关联的取回请求消息。如用编号为2的气泡所描绘的,边缘缓存设备140处理请求消息。边缘缓存设备140接收源自客户端设备160的请求消息,并且识别被请求的资源。然后,存储控制器310访问存储分区320,以确定所识别的资源的拷贝是否被存储在存储分区320中。在确定存储分区320不存储所识别的资源的有效本地拷贝时,边缘缓存设备140向上游的起源服务器122发送请求消息。
56.在编号为3的气泡处,起源服务器122发送提供对象126的响应消息。在一些实施例中,上游设备,例如起源服务器122和/或中间层级缓存设备124,可以响应于边缘缓存设备140发送重验证请求而发送后续重验证响应消息。每个响应消息包括头部,该头部包括与响
应消息相关联的参数的各种值和/或与响应消息相关联的资源。
57.在编号为4的气泡处,存储控制器310处理来自响应消息的头部。例如,头部328可包括两个缓存控制值,这些值指定了边缘缓存设备140要如何在本地存储对象126。计数极限值100指定了边缘缓存设备140在请求重验证之前要从存储分区320提供对象126的最大次数。当前计数值是存储控制器310维护的计数器,用于跟踪边缘缓存设备140已提供对象126的次数。在各种实施例中,存储控制器310在接收到对象126或者对对象126的重验证响应时重置当前计数值。在编号为5的气泡处,存储控制器310在存储分区320中存储所请求资源的本地拷贝。
58.在编号为6的气泡处,边缘缓存设备140将对象126提供给客户端设备160。在一些实施例中,对象126可以是包括指引客户端设备160从cdn 120内的其他设备取回资源的数据的对象类型。例如,对象126可以是包括链接128的智能容器,该链接将客户端设备160引导到服务端点130。在编号为7的气泡处,客户端设备160使用链接128来向指定的服务端点130发送后续资源请求。
59.图4图示了根据本公开的各种实施例的由图1的网络基础设施100中包括的各种设备执行的另一技术的更详细图示。如图所示,网络基础设施400包括起源服务器122、中间层级缓存设备124、以及边缘缓存设备140。中间层级缓存设备124包括存储控制器410和存储分区420。边缘缓存设备140包括存储控制器430和存储分区440。
60.在操作中,存储控制器410响应从边缘缓存设备140接收的请求以重验证边缘缓存设备140在存储分区440中本地存储的对象126(2)。在这种情况下,存储控制器410参考在中间层级缓存设备124中(在存储分区420中)本地存储的与对象126(1)相对应的头部428。基于头部428中包括的值,存储控制器410为头部448提供修改的值,以便边缘缓存设备140不超过头部428中指定的计数极限值。
61.在编号为1的气泡中,中间层级缓存设备124响应从边缘缓存设备140接收的请求消息。在一些实施例中,边缘缓存设备140可以发送请求消息以从中间层级缓存设备124加载对象126。额外地或者替代地,边缘缓存设备140可以发送请求消息,该请求消息请求重验证存储在存储分区440中的对象126(2)。基于接收到的请求消息,存储控制器410参考头部428,该头部与存储在存储分区420中的对象126(1)相关联。计数极限值为100,并且当前计数极限为20,表明对象126在要求重验证之前最多可以再被提供80次。
62.在编号为2的气泡中,中间层级缓存设备124向边缘缓存设备140发送响应消息。在各种实施例中,中间层级缓存设备124发送响应消息,该响应消息在消息主体和头部448中包括对象126(2)。在这种情况下,中间层级缓存设备124可以提供不同的计数极限值,以便要求边缘缓存设备140更频繁地请求重验证。在一些实施例中,存储控制器410将头部448中包括的计数极限值设置为头部428中包括的计数极限值的分数值。
63.在编号为3的气泡中,边缘缓存设备140存储对象126(2)。在各种实施例中,存储控制器430处理头部448,以便确定如何将对象126(2)存储在存储分区440中。在一些实施例中,存储控制器410在向边缘缓存设备140提供对象126(1)时不递增头部428中包括的当前计数值。在这样的情况下,头部448中的当前计数值可以在边缘缓存设备140向客户端设备提供对象126(2)时被递增(例如,存储控制器410后来在接收到表明边缘缓存设备140自从上次重加载或重验证以来已经提供对象126(2)八次的下一个重验证请求消息时将头部428
中的当前计数值从20更新到28)。在一些实施例中,存储控制器410可以通过存储控制器410在处理来自边缘缓存设备140的重验证请求时生成的响应头部中指定的计数极限值来更新与对象126(1)相关联的当前计数值。以这种方式更新当前计数值为边缘缓存设备140保留了递送分配,直到后续的重验证请求被发送为止。
64.图5记载了根据本公开的各种实施例的用于缓存对象或者重验证存储在图1的网络基础设施中的缓存设备中的对象的方法步骤的流程图。虽然是参考图1-图4的系统来描述这些方法步骤的,但本领域技术人员将会理解,被配置为以任何顺序实现这些方法步骤的任何系统都落在本发明的范围内。
65.方法500开始于步骤501,其中边缘缓存设备140接收资源请求消息。在各种实施例中,边缘缓存设备140中包括的存储控制器310接收源自请求设备(例如,客户端设备160)的资源请求消息。边缘缓存设备140接收源自客户端设备160的请求消息,并且识别与所请求的资源相关联的对象。在一些实施例中,客户端设备160可以请求媒体项目。在这种情况下,边缘缓存设备140可以识别存储在cdn 120中的一个或多个文件作为被客户端设备160请求的资源。
66.在步骤503,边缘缓存设备140确定对象126的有效版本是否被包括在本地存储分区320中。在各种实施例中,存储控制器310访问存储分区320以确定与请求的资源(例如,对象126)相关联的对象的拷贝是否被存储在存储分区320中。如果存储控制器310在存储分区320中识别出对象126,则存储控制器310进行到步骤513。否则,存储控制器310确定存储分区320没有存储所请求的资源的有效本地拷贝,并且进行到步骤505。
67.在步骤505,边缘缓存设备140发送加载所识别的对象的请求。在各种实施例中,边缘缓存设备140向上游朝着起源服务器122发送请求消息。上游设备(例如,起源服务器122、中间层级缓存设备124)发送提供所请求的资源(例如,对象126)的响应消息。响应消息包括头部328,该头部328包括指定与响应消息相关联的值的各种参数,或者与响应消息相关联的资源。
68.在步骤507,边缘缓存设备140加载并且在本地存储对象126。在各种实施例中,存储控制器310使得边缘缓存设备140在存储分区320中存储所请求的资源。在步骤509,边缘缓存设备140存储计数极限值。在一些实施例中,存储控制器310处理来自响应消息的头部328,并且确定一个或多个值,其中包括一个或多个缓存控制值,以与对象126相关联。例如,存储控制器310可以从头部328提取计数极限值,并且将提取的计数极限值与存储在存储分区320中的对象126相关联。
69.在步骤511,边缘缓存设备140将当前计数值设置为零。在各种实施例中,存储控制器310可以通过重置当前计数值来响应存储对象126。额外地或者替代地,存储控制器310可以通过将与存储在存储分区320中的对象126相关联的当前计数值从非零值重置为零来响应响应消息(例如,重验证响应)。在这种情况下,存储控制器310使用当前计数值来监视边缘缓存设备140自从接收到最新近的重验证响应以来提供对象126的次数。
70.返回到步骤503,在确定边缘缓存设备140存储着所请求的资源的本地拷贝时,边缘缓存设备140进行到步骤513,其中边缘缓存设备140确定关联的当前计数值是否低于关联的计数极限值。在各种实施例中,存储控制器310识别对象126,取回与对象126相关联的适用的当前计数值和计数极限值。存储控制器310确定当前计数值是否低于计数极限值。当
存储控制器310确定当前计数值低于计数极限值时,边缘缓存设备140进行到步骤515;否则,存储控制器310确定当前计数值已达到计数极限值并且进行到步骤519。
71.在一些实施例中,存储控制器310可以评估对象126的其他属性。例如,存储控制器310可以评估存储在存储分区320中的对象126的年限,以便确定对象126是否期满。当存储控制器310确定服务对象126的所有适用标准得到满足时,边缘缓存设备140进行到步骤515;否则,存储控制器310确定服务对象126的至少一个标准没有得到满足并且进行到步骤519。
72.在步骤515,边缘缓存设备140向请求设备提供本地存储的对象126。在各种实施例中,存储控制器310使得边缘缓存设备140向请求设备提供对象126。在步骤517,边缘缓存设备140递增与对象126相关联的当前计数值。在各种实施例中,存储控制器310递增与对象126相关联的当前计数值,以反映边缘缓存设备140向请求设备提供了对象126的至少一部分。在其他实施例中,存储控制器310可以仅在接收到确认边缘缓存设备140向请求设备发送了对象126的完整版本时递增当前计数值。
73.返回到步骤513,在确定对象的当前计数值已达到计数极限值时,边缘缓存设备140进行到步骤519,其中边缘缓存设备140发送请求重验证本地存储的对象的请求消息。在各种实施例中,存储控制器310通过使得边缘缓存设备140向上游设备(例如,中间层级缓存设备124、起源服务器122)发送对象126的重验证消息来响应当前计数值达到计数极限值。在一些实施例中,该请求消息包括与对象126相关联的当前计数值和计数极限。额外地或者替代地,请求消息包括与对象126将请求设备引导到的特定服务端点130(例如,服务端点130(2))相关联的实体令牌。在这种情况下,起源服务器122可以基于处理实体令牌来对针对服务端点130的请求进行负载平衡。
74.在步骤521,边缘缓存设备140确定是否接收到了新对象。在各种实施例中,边缘缓存设备140可以接收对对象126的重验证响应。在这种情况下,存储控制器310将对象126保留在存储分区320中。或者,边缘缓存设备140可以接收对象126的新版本。当边缘缓存设备140确定接收到新的对象时,边缘缓存设备140进行到步骤507,其中边缘缓存设备140加载对象126的新版本并且将对象126的新版本存储在本地存储区中。否则,边缘缓存设备140确定没有接收到对象126的新版本,表明接收到了重验证响应,并且进行到步骤509,其中在重验证响应中指定的与对象126相关联的计数极限值被存储在存储分区320中。
75.图6记载了根据本公开的各种实施例的用于为要存储在图1的网络基础设施中的缓存设备中的对象设置计数极限值的方法步骤的流程图。虽然是参考图1-图4的系统来描述这些方法步骤的,但本领域技术人员将会理解,被配置为以任何顺序实现这些方法步骤的任何系统都落在本发明的范围内。
76.方法600开始于步骤601,其中起源服务器122可选地从一组服务端点130接收负载度量。在各种实施例中,服务端点130可以在一个或多个消息中周期性地向起源服务器122报告负载度量。在一些实施例中,服务端点130可以直接发送负载度量数据。额外地或者替代地,服务端点130可以通过缓存设备124、140发送负载度量数据。
77.在步骤603,起源服务器122接收来自重验证请求的实体令牌。在各种实施例中,起源服务器122可以从一个或多个下游设备(例如,缓存设备124、140)接收一个或多个重验证请求消息,其中重验证请求消息与特定对象126相关联。额外地或者替代地,重验证请求消
息可包括实体令牌,该实体令牌指示出由起源服务器122在对对象126的先前响应消息中提供的服务端点130。例如,起源服务器122可以向边缘缓存设备140(1)发送包括对象126的第一响应消息,其中对象126包括到服务端点130(3)的链接。起源服务器122然后可以从边缘缓存设备140(1)接收重验证请求消息,该消息包括识别服务端点130(3)的实体令牌。
78.在步骤605,起源服务器122处理负载数据和实体令牌。在各种实施例中,起源服务器122可以处理接收到的令牌和/或接收到的负载度量数据。在一些实施例中,起源服务器122可以处理来自接收到的请求消息的实体令牌,而不处理接收到的负载度量数据。例如,当起源服务器122接收到接收更新的负载度量数据的一个或多个重验证请求时,起源服务器122可以处理接收到的重验证请求中包括的实体令牌,以便确定与一个或多个服务端点130相关联的负载。然后,起源服务器122可以为一个或多个服务端点130执行各种负载平衡技术。
79.在步骤607,起源服务器122基于经处理的负载度量生成对于对象126的响应消息。在各种实施例中,起源服务器122可以基于在步骤605处理的数据生成新的缓存控制值,以包括在响应消息的头部328中,和/或为对象126指定新的服务端点130(例如,服务端点130(2))。例如,起源服务器122可以基于提供到服务端点130(3)的链接的对象126被边缘缓存设备140提供的次数而考虑到施加在特定服务端点130(3)上的负载。然后,起源服务器122可以指定不同的服务端点130(2),将后续请求设备引导到服务端点130(2)。额外地或者替代地,起源服务器122可以调整对于对象126的计数极限值,以调整边缘缓存设备140在要求额外的重验证请求之前提供对象126的最大次数。
80.总体概述
81.图7图示了被配置为实现本公开的一个或多个方面的另一网络基础设施700。如图所示,网络基础设施700包括端点设备715、内容服务器710、以及控制服务器710,其中每一者经由通信网络705连接。网络基础设施700被配置为向内容服务器710分发内容,然后这种内容被按需分发到端点设备715。
82.每个端点设备715与一个或多个内容服务器710(也称为“缓存”或“节点”)进行通信,以便下载内容,例如文本数据、图形数据、音频数据、视频数据、以及其他类型的数据。可下载内容——在本文中也称为“文件”——然后被呈现给一个或多个端点设备715的用户。在各种实施例中,端点设备715可包括计算机系统、机顶盒(set-top box,stb)、移动计算机、智能电话、平板设备、控制台和手持视频游戏系统、数字视频记录器(digital video recorder,dvr)、dvd播放器、连接的数字tv、专用媒体流传输设备(例如,机顶盒)、和/或具有网络连通性并且能够向用户呈现内容(例如,文本、图像、音频和/或视频内容)的任何其他技术上可行的计算平台。
83.每个内容服务器710包括但不限于存储设备,该存储设备可以是独立的联网附接存储(networked attached storage,nas)系统、存储区域网络(storage area-network,san)、存储设备的集群或“农场”、分布式存储体系结构、或者适合于实现本公开的一个或多个方面的任何其他设备。额外地或者替代地,每个内容服务器710可包括但不限于具有存储子系统的计算设备,该计算设备可以是独立的服务器、服务器的集群或“农场”、一个或多个网络设备、或者适合于实现本公开的一个或多个方面的任何其他设备。每个内容服务器710可包括但不限于web服务器和数据库,并且可被配置为与控制服务器720通信以确定被控制
服务器720监视和管理的各种文件的位置和可用性。每个内容服务器710还可与云服务源730和一个或多个其他内容服务器710进行通信以便利用各种文件的拷贝来“填充”每个内容服务器710。此外,内容服务器710可以响应从端点设备715接收的对文件的请求。文件随后可被从内容服务器710分发或者经由更宽广的内容分发网络分发。在一些实施例中,内容服务器710使得用户能够认证(例如,利用用户名和口令)以便访问存储在内容服务器710上的文件。
84.控制服务器720可包括但不限于计算设备,该计算设备可以是独立的服务器、服务器的集群或“农场”、一个或多个网络设备、或者适合于实现本公开的一个或多个方面的任何其他设备。虽然在图7中仅示出了单个控制服务器720,但在各种实施例中,可以实现多个控制服务器720(例如,控制服务器720(1)、720(2),等等)以监视和管理文件。
85.在各种实施例中,云服务源730可包括在线存储服务(online storage service,oss)(例如,简单存储服务、云存储,等等),其中数千或数百万文件的目录被存储和访问以便填充内容服务器710。云服务源730还可提供计算和/或其他处理服务。虽然在图7中只示出了一个云服务源730,但在各种实施例中,可以实现多个云服务源730(例如,云服务源730(1)、730(2),等等)。
86.图8是根据本公开的各种实施例的图7的网络基础设施中包括的内容服务器710的更详细图示。如图所示,内容服务器710包括但不限于中央处理单元(central processing unit,cpu)804、系统盘806、输入/输出(i/o)设备接口808、网络接口810、互连(总线)812、以及系统存储器814。
87.cpu 804被配置为取回存储在系统存储器814中的编程指令并执行编程指令,例如服务器应用817。类似地,cpu 804被配置为存储应用数据(例如,软件库)以及从系统存储器814取回应用数据。互连812被配置为促进cpu 804、系统盘806、i/o设备接口808、网络接口810和系统存储器814之间的诸如编程指令和应用数据之类的数据的传输。i/o设备接口808被配置为从一个或多个i/o设备816接收输入数据并且经由互连812将输入数据发送到cpu 804。例如,一个或多个i/o设备816可包括一个或多个按钮、键盘、鼠标、和/或其他输入设备。i/o设备接口808还被配置为经由互连812从cpu 804接收输出数据并且将输出数据发送到一个或多个i/o设备816。
88.系统盘806可包括一个或多个硬盘驱动器(hard disk drive,hdd)、固态存储设备(solid-state storage device,ssd)、和/或类似的存储设备。系统盘806被配置为存储非易失性数据,比如一个或多个文件818(例如,音频文件、视频文件、字幕、应用文件、软件库,等等)。文件818随后可被一个或多个端点设备715经由网络705取回。在一些实施例中,网络接口810被配置为按照一个或多个通信标准进行操作,例如以太网标准、蓝牙标准和/或一个或多个无线通信标准。
89.系统存储器814包括服务器应用817,其配置内容服务器710,以服务从端点设备715和其他内容服务器710接收的请求。例如,服务请求可以针对一个或多个文件818。当服务器应用817接收到对特定文件的服务请求时,服务器应用817从系统盘806取回相应的文件818,并且经由网络705将文件818发送到端点设备715和/或内容服务器710。
90.例如,文件818可以是多个数字项之一,例如像视频和/或静止图像之类的视觉内容项。类似地,文件818可以是与一个或多个视觉内容项相关联的多个文本内容项之一,例
如电影元数据。在各种实施例中,文件818可以是与正在由内容服务器710、控制服务器720和/或端点设备715执行的一个或多个内容项和/或应用相关联的多个安全应用数据项之一。
91.图9是根据本公开的各种实施例的图7的网络基础设施中包括的控制服务器720的更详细图示。如图所示,控制服务器720包括但不限于cpu904、系统盘906、i/o设备接口908、网络接口910、互连912、以及系统存储器914。
92.cpu 904被配置为取回存储在系统存储器914中的编程指令并执行编程指令,例如控制应用917。类似地,cpu 904被配置为存储应用数据(例如,软件库)以及从系统存储器914和/或存储在系统盘906中的数据库918取回应用数据。互连912被配置为促进cpu 904、系统盘906、i/o设备接口908、网络接口910和系统存储器914之间的数据的传输。i/o设备接口908被配置为经由互连912在一个或多个i/o设备916和cpu 904之间传输输入数据和输出数据。在各种实施例中,系统盘906可包括一个或多个硬盘驱动器、固态存储设备,等等。在各种实施例中,系统盘906被配置为存储数据库918,该数据库存储与一个或多个内容服务器710、云服务源730和/或文件818相关联的信息。
93.系统存储器914包括控制应用917,该控制应用被配置为访问存储在数据库918中的信息并且处理该信息以确定特定文件818将在网络基础设施700中包括的内容服务器710间被复制的方式。控制应用917还可被配置为接收并分析与一个或多个内容服务器710和/或端点设备715相关联的性能特性。
94.图10是根据本公开的各种实施例的图7的网络基础设施中包括的端点设备715的更详细图示。如图所示,端点设备715可包括但不限于cpu1010、图形子系统1012、大容量存储单元1014、i/o设备接口1016、网络接口1018、互连1022、以及存储器子系统1030。
95.在一些实施例中,cpu 1010被配置为取回存储在存储器子系统1030中的编程指令并执行程指令。类似地,cpu 1010被配置为存储和取回存在于存储器子系统1030中的应用数据(例如,软件库)。额外地或者替代地,cpu 1010被配置为从大容量存储单元1014存储和取回包括数据,包括内容项目和/或应用数据。互连1022被配置为促进cpu 1010、图形子系统1012、大容量存储单元1014、i/o设备接口1016、网络接口1018和存储器子系统1030之间的诸如编程指令和应用数据之类的数据的传输。
96.图形子系统1012被配置为生成视频数据的帧并且将视频数据的帧发送到显示设备1050。在各种实施例中,图形子系统1012可以与cpu 1010一起被集成到集成电路(ic)中。显示设备1050可包括用于生成图像来显示的任何技术上可行的装置。例如,可利用液晶显示(liquid crystal display,lcd)技术、阴极射线管技术和/或发光二极管(light-emitting diode,led)显示技术来制造显示设备1050。
97.大容量存储单元1014可包括例如硬盘驱动器和/或闪存存储驱动器,并且被配置为存储非易失性数据。例如,大容量存储单元1014可以存储一个或多个文件818,例如内容项和/或应用数据。在各种实施例中,端点设备715可以将存储在存储器子系统1030中的一个或多个文件818(例如,安全应用数据)拷贝到大容量存储单元1014。
98.输入/输出(i/o)设备接口1016被配置为从一个或多个用户i/o设备1052接收输入数据并且经由互连1022将输入数据发送到cpu 1010。例如,用户i/o设备1052可包括一个或多个按钮、键盘以及鼠标或者其他点选设备。在各种实施例中,i/o设备接口1016还包括被
配置为生成电音频输出信号的音频输出单元。在这种情况下,用户i/o设备1052可包括音频输出设备,例如耳机和/或扬声器,其被配置为响应于电音频输入信号而生成声音输出。额外地或者替代地,显示设备1050可包括扬声器。本领域中已知的能够显示视频帧并且生成声音输出的适当设备的示例包括电视、智能电话、智能手表、电子平板设备,等等。
99.网络接口1018被配置为经由网络705发送和接收数据分组。在一些实施例中,网络接口1018被配置为使用以太网标准、蓝牙标准和/或一个或多个无线通信标准中的至少一者进行通信。网络接口1018经由互连1022耦合到cpu 1010。
100.存储器子系统1030包括编程指令和应用数据。在各种实施例中,存储器子系统1030可包括操作系统1032、用户界面1034、重放应用1038、和/或页缓存1036。操作系统1032执行系统管理功能,例如管理包括图形子系统1012、大容量存储单元1014、i/o设备接口1016和网络接口1018在内的硬件设备。操作系统1032还为用户界面1034、重放应用1038和/或页缓存1036提供进程和存储器管理模型。例如,端点设备715可以执行操作系统1032以将数据写入到页缓存1036和/或将页缓存1036中包括的数据同步到大容量存储单元1014。
101.用户界面(user interface,ui)1034,例如,采用窗口与对象隐喻的图形用户界面(graphical user interface,gui),提供了用户与端点设备715交互的机制。本领域的技术人员将认识到适合纳入到端点设备715中的各种操作系统1032和/或用户界面1034。重放应用1038被配置为经由网络接口1018从内容服务器710请求和/或接收内容(例如,一个或多个文件818)。另外,重放应用1038被配置为解释内容并且经由显示设备1050和/或用户i/o设备1052来呈现内容。
102.页缓存1036是易失性存储器的一部分,该部分存储文件818,例如内容项和/或应用数据(例如,安全应用数据、元数据,等等)。在各种实施例中,页缓存1036可以对应于非易失性存储器的一部分。在这种情况下,端点设备715可以通过将数据写入到非易失性存储器的相应部分来同步最初写入到易失性存储器中的数据。例如,页缓存1036可以对应于大容量存储单元1014的一部分。在这种情况下,端点设备715然后将文件818读取和/或写入到页缓存1036,而不是直接在大容量存储单元1014中访问和/或写入文件818。然后,端点设备715可以在页缓存1036和大容量存储单元1014之间同步数据,以使得数据的拷贝被存储在页缓存1036和大容量存储单元1014两者中。
103.总之,缓存设备中包括的存储控制器接收对存储在内容递送网络内的对象的请求。在一些实施例中,该对象被缓存在缓存设备处;在一些实施例中,缓存设备将该对象加载到缓存中。存储控制器处理与该对象相关联的响应消息的头部,以确定是否向请求设备提供该对象。该头部包括一组一个或多个缓存控制参数,其中包括计数极限值,该计数极限值指定缓存设备在请求重验证之前将提供对象的最大次数。该头部还包括当前计数值,该当前计数值指示出自从最新近的加载或重验证以来,缓存设备提供了对象的次数。在确定当前计数值低于计数极限时,存储控制器使得缓存设备提供该对象,并且递增当前计数值。在确定当前计数值已达到计数极限时,存储控制器使得缓存设备为该对象请求重验证。当缓存设备随后发送请求重验证本地存储的对象的请求消息时,该请求消息包括令牌,该令牌指示出自从接收到响应消息以来缓存设备提供本地存储的对象的次数。
104.在一些实施例中,该对象可以是智能容器,该智能容器包括到内容递送网络内的服务端点的链接。当缓存设备向请求设备提供该对象时,请求设备使用该链接来连接到服
务端点以向请求设备递送资产。在一些实施例中,内容递送网络内的起源服务器可以基于从请求对象或对象的重验证的缓存设备接收的消息来估计负载数据。在这种情况下,该消息指示出自从最新近的负载或重验证以来缓存设备提供对象的次数,从而将设备指引到特定的服务端点。起源服务器处理这种数据,以设置计数极限,进而包括在与该对象相关联的后续头部中。
105.相对于现有技术,所公开的技术的至少一个技术优势是,内容递送网络可以有效地在边缘设备处缓存保持有效的对象。具体地,通过限制给定对象在要求重验证之前可以被从缓存提供的次数,起源服务器可以确保对象保持有效和最新,而不限制与该对象相关联的期满策略。另外,通过控制缓存设备如何提供缓存的智能容器,起源服务器可以有效地对智能容器引导到特定服务端点的请求进行负载平衡,而不是接收对给定对象的每一个请求。另外,通过动态地修改与重验证相关联的计数极限,内容递送网络可以基于多个因素(包括使用量以及该对象被提供给请求者的频率)轻松地配置缓存设备重验证给定对象的频率。
106.1.在各种实施例中,一种由计算机实现的方法,包括接收与对象相关联的头部,其中头部包括指定在重验证之前将要从缓存设备提供对象的次数的极限值,以及指定自从最新近的重验证或加载以来已经提供了对象的次数的当前计数值,从请求设备接收对对象的请求,并且在确定当前计数值低于极限值的情况下,从缓存设备向请求设备提供对象,或者在确定当前计数值匹配极限值的情况下,发送重验证对象的请求。
107.2.如条款1的由计算机实现的方法,其中头部还包括指定对象在缓存设备处保持有效的时间的期满时间,并且在基于期满时间进一步确定对象有效时,对象被提供给请求设备,或者当达到期满时间或者当前计数值匹配极限值的情况下,请求被发送以重验证对象。
108.3.如条款1或2的由计算机实现的方法,其中对象包括识别第一服务端点的信息。
109.4.如条款1-3中的任一项的由计算机实现的方法,其中起源服务器基于由至少第一服务端点报告的负载来设置极限值。
110.5.如条款1-4中的任一项的由计算机实现的方法,其中第一服务端点被包括在一组服务端点中,并且起源服务器基于由一组服务端点中包括的每个服务端点报告的一个或多个负载来设置极限值。
111.6.如条款1-5中的任一项的由计算机实现的方法,其中极限值被从大于极限值的第二极限值中减去,并且第二极限值与作为缓存设备的父亲的第二缓存设备相关联。
112.7.如条款1-6中的任一项的由计算机实现的方法,其中缓存设备从以下之一接收头部:(i)起源服务器,或者(ii)作为缓存设备的父亲的第二缓存设备。
113.8.如条款1-7中的任一项的由计算机实现的方法,还包括发送对对象的第二请求,其中第二请求包括当前计数值。
114.9.如条款1-8中的任一项的由计算机实现的方法,其中第二请求包括重验证请求。
115.10.如条款1-9中的任一项的由计算机实现的方法,其中第二请求包括重验证令牌,该重验证令牌识别当被提供给请求设备时对象识别的第一服务端点。
116.11.在各种实施例中,一个或多个非暂态计算机可读介质,存储有指令,指令当被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:接收与对象相关联的头
部,其中头部包括指定在重验证之前将要从缓存设备提供对象的次数的极限值,以及指定自从最新近的重验证或加载以来已经提供了对象的次数的当前计数值,从请求设备接收对对象的请求;并且在确定当前计数值低于极限值的情况下,从缓存设备向请求设备提供对象,或者在确定当前计数值匹配极限值的情况下,发送重验证对象的请求。
117.12.如条款11的一个或多个非暂态计算机可读介质,其中头部还包括指定对象在缓存设备处保持有效的时间的期满时间,并且在基于期满时间进一步确定对象有效的情况下,对象被提供给请求设备,或者当达到期满时间或者当前计数值匹配极限值的情况下,请求被发送以重验证对象。
118.13.如条款11或12的一个或多个非暂态计算机可读介质,其中头部还包括边缘限制,该边缘限制指示出当缓存设备在网络的边缘时对象将只被缓存在缓存设备处。
119.14.如条款11-13中的任一项的一个或多个非暂态计算机可读介质,还包括指令,指令当被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:确定请求设备是客户端设备,并且在确定请求设备是客户端设备的情况下,在将当前计数值与极限值进行比较之前递增当前计数值。
120.15.如条款11-14中的任一项的一个或多个非暂态计算机可读介质,其中请求设备是作为缓存设备的孩子的第二缓存设备。
121.16.如条款11-15中的任一项的一个或多个非暂态计算机可读介质,其中对象包括识别一组服务端点中包括的第一服务端点的信息,并且起源服务器基于由一组服务端点中包括的每个服务端点报告的一个或多个负载来设置极限值。
122.17.在各种实施例中,一种计算系统包括存储着存储控制器应用的存储器,以及处理器,该处理器耦合到存储器并且通过以下步骤来执行存储控制器应用:接收与对象相关联的头部,其中头部包括指定在重验证之前将要从缓存设备提供对象的次数的极限值,以及指定自从最新近的重验证或加载以来已经提供了对象的次数的当前计数值,从请求设备接收对对象的请求,并且在确定当前计数值低于极限值的情况下,从缓存设备向请求设备提供对象,或者在确定当前计数值匹配极限值的情况下,发送重验证对象的请求。
123.18.如条款17的计算系统,其中头部还包括指定对象在缓存设备处保持有效的时间的期满时间,并且在基于期满时间进一步确定对象有效时,对象被提供给请求设备,或者当达到期满时间或者当前计数值匹配极限值的情况下,请求被发送以重验证对象。
124.19.如条款17或18的计算系统,其中对象包括识别一组服务端点中包括的第一服务端点的信息,并且起源服务器基于由一组服务端点中包括的每个服务端点报告的一个或多个负载来设置极限值。
125.20.如条款17-19中的任一项的计算系统,其中处理器还执行以下步骤:确定请求设备是客户端设备;并且在确定请求设备是客户端设备的情况下,在将当前计数值与极限值进行比较之前递增当前计数值。
126.任何权利要求中记载的任何权利要求元素和/或本技术中描述的任何元素的以任何方式的任何和所有组合都落在所设想的本发明的范围和保护范围内。
127.对各种实施例的描述是为了说明而给出的,但并不打算是穷尽无遗的或者限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,本领域普通技术人员将清楚许多修改和变化。
128.这里的实施例的各方面可体现为系统、方法或计算机程序产品。因此,本公开的各方面可以采取以下形式:完全硬件的实施例、完全软件的实施例(包括固件、驻留软件、微代码,等等)或者本文可以都统称为“模块”、“系统”或“计算机”的组合软件和硬件方面的实施例。此外,本公开中描述的任何硬件和/或软件技术、过程、功能、组件、引擎、模块或系统可以被实现为电路或者电路的集合。此外,本公开的各方面可采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质上体现有计算机可读程序代码。
129.可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质可以例如但不限于是电的、磁的、光的、电磁的、红外的或者半导体的系统、装置或设备,或者前述的任何适当组合。计算机可读存储介质的更具体示例(非穷尽列表)将包括以下的:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机访问存储器(random access memory,ram)、只读存储器(read-only memory,rom)、可擦除可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(compact disc read-only memory,cd-rom)、光存储设备、磁存储设备、或者前述的任何适当组合。在本文档的上下文中,计算机可读存储介质可以是任何有形介质,其可包含或存储程序来供指令执行系统、装置或设备使用或者与其结合使用。
130.上文参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。将会理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令来实现。这些计算机程序指令可被提供给通用计算机、专用计算机或者其他可编程数据处理装置的处理器来产生机器。指令当经由计算机或其他可编程数据处理装置的处理器被执行时,使能实现流程图和/或框图的一个或多个方框中指定的功能/动作。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器、或者现场可编程门阵列。
131.附图中的流程图和框图图示了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。在这点上,流程图或框图中的每个方框可代表一模块、片段或代码的一部分,所述模块、片段或代码的一部分包括用于实现(一个或多个)指定的逻辑功能的一个或多个可执行指令。也应当注意,在一些替换实现方式中,方框中标注的功能也可以按不同于附图中标注的顺序发生。例如,取决于所涉及的功能,接连示出的两个方框实际上可被基本同时执行,或者方框有时可按相反顺序被执行。还要注意,框图和/或流程图的每个方框、以及框图和/或流程图中的方框的组合,可以由执行指定的功能或动作的专用的基于硬件的系统来实现,或者可以由专用硬件和计算机指令的组合来实现。
132.虽然前述针对的是本公开的实施例,但在不脱离其基本范围的情况下,可设计出本公开的其他和另外的实施例,并且其范围由所附权利要求确定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1