CN109565518A - 可互换的内容取回 - Google Patents
可互换的内容取回 Download PDFInfo
- Publication number
- CN109565518A CN109565518A CN201780047134.0A CN201780047134A CN109565518A CN 109565518 A CN109565518 A CN 109565518A CN 201780047134 A CN201780047134 A CN 201780047134A CN 109565518 A CN109565518 A CN 109565518A
- Authority
- CN
- China
- Prior art keywords
- url
- cdn
- content
- hash
- cloud service
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/30—Managing network names, e.g. use of aliases or nicknames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供了在用于通过网络提供内容的系统中的改进的计算效率。混合内容供源被启用以经由向客户设备所提供的单个URL、经由彼此结合的内容分发系统(CDN)和中央化服务来提供内容。哈希映射被更新并被提供至客户设备,以允许租户控制并改变内容如何被分发而不需要修改由客户设备使用的应用或多个内容项。由此,使得租户被使能包括或排除CDN作为可用的内容源,而不破坏中央化服务或客户设备的操作。由此,个体的内容资产或内容资产的库可以经由单个统一资源定位符可互换地供应。
Description
背景技术
选择一种方法以通过互联网分发内容常常需要在传递速度和对该内容的控制等级之间进行折衷。使用诸如中央云服务之类的中央分发点向内容提供方允许对客户访问该内容的更大的控制以及对更新该内容的更大的能力,但是客户需要被授权并且中央服务可能远离于客户——这减慢了传递的速度。然而,使用内容分发网络(CDN)允许客户在边缘服务器跨地理区域被放置时更加快速地访问内容,但是以提供商对该内容的控制和更新的能力为代价的,这是因为该内容需要在整个CDN上被分发,并且结果是可能不包括访问控制。内容的开发者和提供商被强迫在一种传递方法或另一种传递方法之间进行选择,并且改变传递方法常常是难处理的、耗时的、且资源密集的。
发明内容
提供了该发明内容以用简化的形式引入在以下的具体实施方式中进一步描述的概念的选择。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
在本公开中描述了一种混合的内容供应系统以及其使用的方法。如在本文中所描述的,内容提供商可以指定要经由中央云服务来提供的内容以及要经由内容分发网络(CDN)来提供的内容,并且快速地转变哪个内容源向客户提供内容。因此,与在仅使用中央云服务的环境中相比,更快速地向客户提供了内容,并且与在仅使用CDN的环境中相比,给予了内容提供商对访问权利更大的控制以及用于提供经更新的内容的能力。通过采用本公开,计算设备可以通过减少需要在彼此中传送的数据的量来改进其功能,并且减少通过互联网快速且安全地共享内容所需要花费的处理资源的量。
示例被实现为计算机过程、计算系统、或者作为诸如设备、计算机程序产品、或计算机可读介质之类的制品。根据一个方面,计算机程序产品是计算机存储介质,该计算机存储介质能够由计算机系统读取并且对包括用于执行计算机过程的指令的计算机程序进行编码。
在附图和以下的描述中阐述了一个或多个方面的细节。通过阅读以下的详细描述以及对相关联的附图的浏览,其他的特征和优点将显而易见。应当理解的是,以下的详细描述对权利要求仅仅是解释性的而非限制性的。
附图说明
被并入该公开并且构成该公开的一部分的附图示出了各种方面。在附图中:
图1示出了在其中可以实践本公开的示例环境;
图2示出了针对给定内容资产的示例URL集;
图3是示出了在示例方法中所涉及的一般步骤的流程图,该示例方法用于使能在提供单个地址时对内容的可互换的取回的混合内容供源(sourcing);
图4是示出了在示例方法中所涉及的一般步骤的流程图,该示例方法用于使能在提供单个地址时对内容的可互换的取回的混合内容供源;
图5是示出了在示例方法中所涉及的一般步骤的流程图,该示例方法用于在提供单个地址时供客户设备经由混合内容供源来可交换地请求内容资产;
图6是示出了计算设备的示例物理组件的框图;以及
图7A和7B是移动计算设备的框图。
具体实施方式
以下的详细描述对附图进行了参考。在可能的情况下,在附图和以下的描述中使用相同的附图标记来指代相同或类似的元素。尽管描述了多个示例,但修改、改编、和其他实现是可能的。例如,可以对在附图中所示出的元素进行替代、增加、或修改,并且可以通过对所公开的方法进行替代、重排序、或者增加步骤来修改在本文中所描述的方法。由此,以下详细描述是非限制性的,但替代地,合适的范围是由所附权利要求定义的。示例可以采取硬件实现的形式、或者完全软件实现的形式、或者结合了软件和硬件方面的实现的形式。因此,以下的详细描述不被理解为是限制性意义。
在本文中描述了一种利用云服务和内容分发网络(CDN)的混合分发系统和方法。云服务和CDN包括一个或多个计算设备,所述计算设备被配置为从租户接收内容并经由网络(例如,互联网)与请求该内容的客户进行共享。云服务是提供了内容的中央化源的结构化服务,其可以包括对该内容的访问控制。CDN是公共内容提供商,其使用云服务作为其源并且在比云服务更宽的地理区域上分发内容,以比云服务更快地且以更小的开销来提供内容。试图分发内容的租户被使能设置哪些内容资产经由云服务来分发而哪些由CDN来分发,并且可以快速地启用或禁用CDN作为内容资产的可用源,而无需配置该内容如何在CDN中被分发并且具有对客户的最小影响。
图1示出了在其中可以实践本公开的示例环境100。如所示出的,客户设备110可操作以向云服务120传送请求并且从云服务120和CDN接收内容。云服务120与租户设备140进行通信,通过租户设备140,内容提供商可以从云服务120上传或移除内容,并且可以设置如何使得该内容可用于客户设备110。云服务120还与CDN 130进行通信以向CDN 130提供内容资产,从而基于来自租户设备140的命令启用CDN 130作为客户设备110的可用内容源。在各种方面中,来自租户设备140的、包括针对CDN 130的配置设置的命令可以被直接发送至CDN130或者可以由云服务120从租户设备140转发。
客户设备110和租户设备140示出了多个计算系统,包括但不限于,台式计算系统、有线和无线计算系统、移动计算系统(例如,移动电话、上网本、平板或板式计算机、笔记本计算机、以及膝上型计算机)、手持设备、多处理器系统、基于微处理器的或可编程消费性电子设备、小型计算机、打印机、以及大型计算机。针对图5、6A和6B更加详细地讨论了这些计算系统的硬件。客户设备110是由客户操作的,所述客户可以是请求内容的人或自动化系统(例如,“机器人”)。例如,GOOGLE NOWTM或电子助理(分别从加州Cupertino市的苹果有限公司、加州山景城市的Alphabet有限公司、以及华盛顿州Redmond市的微软公司可获得)可以响应于或者提前于来自人类用户的查询而请求内容。类似地,租户设备140是由租户操作的,所述租户可以是提供和管理客户可请求的内容的人类或自动化系统。在各种方面中,租户和客户可以是同一实体,例如当开发者发布网页(作为租户)并且接着通过访问(作为客户)该网页的现场版本来适当地验证网页显示。
云服务120存储供租户通过网络(例如,互联网)提供给客户的内容。在各种方面中,云服务120可以由租户或者在租户的指导下由代表租户的第三方来操作。云服务120可以是结构化的存储服务或者是可操作以约束什么内容对某些客户可获得的协作工具。例如,租户可以发布公开可获得的内容,以使得任何潜在的客户可以请求并接收该内容,但是租户也可以发布仅仅受约束的一组潜在客户可获得的内容(例如,一个实体私有的、在所选择的实体的白名单中共享的、根据实体的黑名单而阻止共享的)。例如,一个或多个内容项可以被托管在云服务120中,云服务120例如ALFRESCO(从佐治亚州亚特兰大市的Alfresco软件有限公司可获得)、HUDDLETM(从英国伦敦市的Huddle有限公司可获得)、GOOGLEDRIVETM(从加州山景城市的Alphabet有限公司可获得)、WORDPRESSTM(从加州旧金山市的Automattic有限公司可获得),但是可以包括其他企业或个人内容管理系统。
内容可以根据可以具有各种许可等级的各种“库”、“文件夹”、或“站点”而被组织在云内容服务120内。当接收针对内容的请求时,云服务120将确定进行请求的客户是否与用于访问所请求的内容的合适的许可等级相关联,并且可以要求客户设备110在所请求的内容被发送至客户设备110之前提供认证(例如,认证令牌、用户名/密码对)。
CDN 130包括以分层结构布置的一系列计算设备。内容是从源(也被称为头端)取回的并且被高速缓存在包括CDN 130的计算设备的逐渐更低的层中,直到该内容被高速缓存在边缘服务器上以用于发送至请求该内容的客户设备110为止。包括CDN 130的边缘服务器在地理上广泛地分布,以使得内容可以以与单个位于中央的内容源相比更少的延迟被供应给客户;这改进了内容请求被响应的速度。
当边缘服务器不具有由客户所请求的内容时,其将从CDN 130中的下一个更高的层请求该内容,该层进而可以将该请求转发给逐渐更高的层,直到到达内容源为止,并且该内容是通过中间服务器的链被分发以供应至边缘服务器的,并且被发送至客户设备110。包括CDN 130的服务器可以由CDN 130的管理员在客户请求之前预先填充或者可以响应于客户请求而被填充;仅仅与已经针对给定的内容资产进行了请求的客户进行通信的这些边缘服务器(以及在它们之上的层中的服务器)将存储所述给定的内容资产。
包括CDN 130的每个服务器可以将该内容高速缓存达不同长度的时间,所述不同长度的时间可以由采用CDN 130的租户或CDN 130的管理员来配置,以在内容项尚未被请求达给定长度的时间时释放存储资源,或者遵守针对内容资产的保留策略。例如,如果没有客户从第一边缘服务器请求给定的内容项达n天,则该内容项可以被标记为要在第一边缘服务器上被覆写或者可以从第一边缘服务器中被删除,但第二边缘服务器可以独立于第一边缘服务器而将该内容项保存在其高速缓存中。另外地,下一个更高层(第一边缘服务器从该层接收该内容项)可以在没有针对该内容项的客户或边缘服务器请求的情况下将该内容项保留(n+1)天,以在自上次请求起n天之后再一次从边缘服务器请求该内容的情况下,减少需要在CDN 130的多个层之间传输的数据的量。
与云服务120不同,公共可用的CDN 130不需要认证给定客户的许可等级;具有在CDN 130中托管的给定统一资源定位符(URL)的知识的任何进行请求的客户可以接收与该URL相关联的内容资产。在一些方面中,CDN 130可以由租户来管理,但是在其他方面中,可以替代地是由第三方提供的、用于将租户的内容更快速地分发给可以遍布多个位置的客户的服务。提供CDN 130的第三方的示例包括但不限于:马萨诸塞州剑桥市的Akamai Techs有限公司;亚利桑那州坦佩市的Limelight Networks有限公司;以及科罗拉多州Broomfield市的Level 3Communications有限公司。
如将理解的,通过不执行访问控制操作,CDN 130可以以比云服务120更少的开销(例如,不执行认证)来提供内容,因此花费了更少的处理资源并且能够比云服务120更快地将内容提供至客户设备110。内容资产可能要花时间传播通过CDN 130的层,然而,由于内容资产的敏感性(隐私或安全政策)或者其被更新的频率,可能不能从CDN 130获得个体的内容资产;CDN 130更适合于租户不介意被公开暴露的静态内容资产,而云服务120更适合于动态内容资产或者租户不想被公开暴露的内容资产。在本文中公开的混合系统允许租户定制哪些内容资产从云服务120和CDN 130的每一个中可获得,由此利用每种内容供应系统的优点来改进在访问内容时所使用的系统的效率和速度。
租户可以从租户设备140发送信号关于存储在云服务120中的哪些内容资产被允许经由CDN 130来共享。作为响应,CDN 130使用云服务120作为其源,其中CDN 130从该源将资产高速缓存并分发至CDN 130内的合适的层。当一个或多个内容资产不再被允许经由CDN130共享时,租户可以通过向CDN 130发送高速缓存无效请求并且移除云服务120作为CDN130中的给定内容资产的源来从租户设备140发送信号。如将理解的,云服务120也可以在留下从云服务120可获得的内容资产的同时向CDN 130发送高速缓存无效请求,以迫使CDN130请求内容资产的最新版本,从而向客户提供该内容资产的较新的或最新的版本。
客户设备110经由web浏览器或者根据与内容项相关联的URL来请求该内容项的其他应用来访问内容。如将理解的,web浏览器常常对它们向单个源进行的针对内容的并行的请求的数量有限制,并且内容请求常常可以彼此依赖;对取回个体的内容资产的速度进行小的改进对由许多资产所组成的内容项有大的影响。例如,访问作为内容项的网站的客户可以请求网页本身,其包括针对网页的超文本标记语言(HTML)源以及诸如JavaScript文件、层叠样式表(CSS)、嵌入的视频、音频文件、图像等之类的多个设计元素,这些全都需要从其相关联的源被请求,并且这些元素还可以指定之后将需要被请求的其他内容资产(例如,在CSS内指定的图像)以供客户完整地接收内容项。
图2示出了针对给定内容资产的示例URL集200。在本文中讨论了用于从各种源取回内容的URL的几个变型,并且包括URL集200的示例URL出于提供这些URL及其组件元素的非限制性示例的目的而全都指向同一示例内容资产。
在客户已经被认证之后,响应于来自客户设备110的初始请求,所提供的URL 210与哈希值250一起从云服务120被发送至客户设备110。例如,客户设备110可以从云服务120请求网页,在认证了该客户之后,云服务120返回该网页,但是该网页经由在包括该网页的HTML结构中提供的URL 210请求额外的内容资产。所提供的URL 210指向云服务120中的给定的资产,并且云服务120将试图使用所提供的URL 210来认证请求该给定的内容资产的任何客户。
所提供的URL 210可以在HTML、JavaScript、或包括针对额外资产的请求的内容资产的其他结构中被动态地调出,或者可以被静态地编码到该结构中。可替代地,当CDN 130是有效的源时,该源可以针对客户设备110将所提供的URL 210转换成CDN URL 230。当所提供的URL 210是动态的时,其将作为动态被调出,以使得客户设备110将知道其不是静态URL,并且客户设备110将需要关于所提供的URL 210是否可以被转换为从云服务120或CDN130请求内容资产来进行确定。例如,内容资产的源可以在锚中被定义为针对其URL(例如,<img src=“URLprovider.URLconversionEnabled(cloudURL)”>,img.Src=URLprovider.URLconversionEnabled(cloudURL))的函数调用,或者当客户设备110上的用户代理可操作以在内容资产定义内处理针对内容资产的标签时经由这样的标签(例如,<img src=“cloudURL”convertible=“true”>,img.Src.convertible=CloudURL)来定义。相比之下,静态URL将在其锚中没有函数调用、在其锚中没有将其指定为动态的标签、或者在其锚中具有将其指定为静态的标签的情况下被调出。如将理解的,即使内容资产被指定为动态的,客户设备110仍然可以将该内容资产认为是静态的(基于用户或系统偏好)并且仅从云服务120对其进行请求。
所提供的URL 210的元素包括:主值240,其指向云服务的URL的较高分区(例如,在URL地址中的第一前斜线之前);所提供的内部文件路径270,其指定所提供的URL 210的中间部分;以及资产标识符260,其指向位于所提供的URL 210结尾处的给定的内容资产。尽管被示出为在URL中的最后的前斜线之后出现,但在不同的方面中,资产标识符260可以包括超过一个前斜线描述分段。如还将理解的,尽管协议(例如,http://、https://、ftp://)没有作为URL集200的一部分被讨论,但是本领域技术人员将认识到URL将参考要用于请求经由URL链接的内容的协议,并且本公开可操作以利用几个协议来工作。
源URL 220指向内容资产,这是由于其被托管在由CDN 130作为源来使用的云服务120中。能够经由源URL 220访问内容项的唯一客户是CDN 130;例如,来自除了与CDN 130相关联的IP地址的IP地址的任何请求(例如,经由与CDN 130相关联的IP地址白名单或HMAC(基于哈希的消息认证码)头部)将被拦截。在没有超出识别该请求来自CDN 130的另外认证的情况下,云服务120将内容资产从源URL 220提供至CDN 130。源URL 220包括:主值240,其指向云服务的URL的较高分区;云文件路径280,其指定源URL 220的中间部分;哈希值250;以及资产标识符260,其指向位于源URL 220的结尾处的给定的内容资产。尽管被示出为在URL中的最后的前斜线之后出现,但是在不同的方面中,资产标识符260可以包括超过一个前斜线描述分段。如也将理解的,云文件路径280和所提供的内部文件路径270指向云服务120中的不同的存储位置,它们应用不同的认证或访问控制特征。
CDN URL 230指向该内容资产,这是由于其是由CDN 130托管的。CDN URL 230包括:CDN地址290,其指向CDN 130上的租户地址的顶部分区;主值240,其来自租户的云服务120;哈希值250;以及资产标识符260,其指向位于CDN URL 230的结尾处的给定的内容资产。因为CDN 130不需要认证,所以在CDN URL 230中所包括的哈希值250提供了对内容资产位置中的隐私性的度量。
哈希值250是根据哈希函数基于在所提供的URL 210和哈希值250自身中所包含的信息的输出而产生的。哈希函数产生了单向的数据加密,其可以根据本领域技术人员已知的各种算法(SHA-2、SHA256、MD5、BLAKE2、Keccak、GOST等)来完成。在各种方面中,哈希值250可以包括与以下内容相关的关于其自身的额外信息:识别哈希结构规则的版本、哈希值250的签名或校验和、被哈希的URL部分的长度、以及哈希函数自身的输出。通过对所提供的URL 210的至少一部分运行哈希函数,针对由租户设备140所指定的位置在云服务120上创建哈希值250。在各种方面中,为了确保所提供的URL 210的一致格式,所提供的URL 210可以在被哈希之前转换成全部大写字母、全部小写字母、或者字符编码的另一标准化。可以哈希整个所提供的URL 210以针对每个内容资产得出唯一的哈希值250,或者仅仅哈希所提供的URL的前X个字符(例如,主值240以及内部文件路径270的至少一部分)以提供针对给定的文件路径被共享的哈希值250。接着,内容资产由云服务120托管在源URL 220处,并且当CDN130被启用为内容源时,CDN 130将被提供以CDN URL 230并且将经由内部逻辑来构建源URL220以用于从作为源的云服务120取回内容资产,从而根据CDN URL 230将所述内容资产托管在CDN 130中。
从针对给定的内容资产所提供的每个URL 210中获得的哈希值250被包括在相关联的源URL 220和CDN URL 230中。当父内容资产(例如,引用诸如CSS文件、JavaScript对象、图像等之类的子内容资产的网页)被请求且客户被成功认证时,用于构建从云服务120托管的CDN URL 230的所有哈希值250被包括在向客户设备110提供的哈希映射中。所提供的哈希映射可以包括针对租户已经指定用于经由CDN 130共享的内容资产或仅从父内容资产引用的这些内容资产的所有哈希值250。例如,如果租户选择经由CDN 130共享针对背景图像的两个内容资产(其中,每个图像对于两个网页中的一个网页而言是唯一的),则针对每个网页的哈希映射可以包括针对与另一个网页相关联的背景图像的CDN URL 230的哈希值250,或者可以将针对与另一个网页相关联的背景图像的CDN URL 230的哈希值250排除在外。通过使用单个哈希映射,租户可以在内容源被改变时具有单个点要更新,但是通过使用多个哈希映射,可以减少向客户发送的数据的量。哈希映射允许实现针对CDN URL 230的更大的隐私性,这是由于CDN URL 230自身不被发送至客户设备110。本领域技术人员将领会与针对给定部署使用一个或多于一个哈希映射相关联的折衷。
哈希值250允许客户设备110确定给定的内容资产是否从CDN 130可获得而不需要针对内容的可获得性直接查询CDN 130。在一段设定时间(例如,每30秒、每24小时)之后,或者响应于租户更新内容资产相对于CDN 130的可获得性以使得客户将具有关于哪些内容资产从CDN 130可获得的最新的知识,在每次客户被认证时,新的哈希映射可以被提供至客户设备110。
当客户设备110识别到动态的、所提供的URL 210时,客户设备110将对所提供的URL 210(或其部分)进行哈希并且将输出与在哈希映射中所包括的哈希值250的输出部分(例如,不是校验和、版本号、长度部分)进行比较。当来自哈希映射的哈希值250被识别为包括哈希函数针对所提供的URL 210的输出时,客户设备110将构建并且接着使用相关联的CDN URL 230以请求给定的内容资产。当没有来自哈希映射的哈希值250被识别为包括哈希函数针对所提供的URL 210的输出时,客户设备110将使用所提供的URL 210来从云服务120请求内容资产。
当在哈希映射中发现针对所提供的URL 210的哈希值250时,客户设备110将从所提供的URL 210和哈希值250来构建CDN URL 230。在资产标识符260被移除的方面中,可以从所提供的URL 210的主值240和内部文件路径270来计算哈希值250。当从所提供的URL210转换到针对给定的内容资产的CDN URL 230时,客户设备110将资产标识符260添加至在URL映射中所存储的所识别的URL,以完成针对给定的内容资产的CDN URL 230。在一些方面中,作为预先校验,客户设备110使用所提供的URL 210的部分的长度来进行哈希并且针对在哈希映射的哈希值250中所识别的长度值来校验该长度,以减少需要对具有匹配的长度的这些哈希值250进行的比较的数量,或者当哈希映射中没有哈希值250具有与所提供的URL 210的部分的匹配的长度时,按以前的样子来使用所提供的URL 210(不运行哈希函数)。
CDN 130使用云服务120作为其源,并且来自云服务120的内容资产被托管在由CDN130所定义的CDN URL 230处。
当CDN 130被租户启用为内容源时,内容资产可以自动地或者基于对CDN URL 230处的内容资产的客户请求而在CDN 130内被分发。当CDN 130接收针对其当前不拥有的内容资产的请求时,CDN 130可以向CDN 130内的更高层或者云服务120发送请求以取回该内容资产。如果内容不能够从更高层被取回,或者URL不指向供CDN 130提供的有效内容资产,则CDN 130将响应于客户设备110关于该CDN 130不是有效的源(例如,经由401、403、404、410、421、或451错误——参见,IETF RFC 7231),并且客户设备110可以通过使用所提供的URL210来从云服务120请求内容资产。
如将理解的,在所示出的示例中所给出的文本和元素顺序可以根据在图2中所示出的来修改,以满足各种实现的需求;本领域技术人员将把图2和相关联的讨论认为是提供了URL集200的非限制性解释。包括URL集200的URL的格式允许从一个URL到另一个URL的转换。共同共享的每个URL的元素可以根据经由租户供应的逻辑(例如,作为从租户所提供的CSS或JavaScript文件的一部分)向客户设备110或CDN 130所提供的定义而被重新排序,并且对一个URL而言唯一的任何元素可以基于向客户设备110或CDN 130所提供的定义在转换期间被类似地移除或插入。
图3是示出了在示例方法300中所涉及的一般步骤的流程图,示例方法300用于使能在提供单个地址时对内容的可互换的取回的混合内容供源。方法300可以响应于由租户启用混合内容供源的第一或随后的时间而执行。作为父资产,内容资产可以包括被格式化为到子内容资产或设计元素的动态URL的链接。例如,HTML、CSS、或JavaScript对象的内容资产可以经由动态URL而引用另一内容资产。在方法300结束的之前或之后,向客户设备110提供的内容资产可以包括动态URL,但是这些动态URL将分解为针对内容资产(由云服务120托管)的所提供的URL 210,直到方法300已经结束为止。
方法300在操作310处开始,其中租户识别要经由CDN 130分发的内容,以补充经由云服务120对内容的分发。哪些内容资产经由CDN 130来共享而哪些被限制为经由给定租户的云服务120来分发可以是针对内容资产的知识产权管理策略和/或这些内容资产的使用或更新频率的问题;租户偏好指示哪些内容资产被识别为将经由CDN 130分发。
所识别的内容将使得该内容在其处被托管以供客户消费的URL(即,所提供的URL210)在操作320处被哈希,并且该哈希将用于创建针对该内容资产的哈希值250。在一些方面中,除了所提供的URL 210的哈希的输出之外,哈希值250还包括版本信息、URL长度信息、以及校验和或签名。在其他的方面中,所提供的URL 210在没有资产标识符260的情况下被哈希,以使得使用类似文件路径但针对不同资产标识符260的多个内容资产可以使用同一哈希值250。
在操作330处,哈希值250用于构建内容资产在其处被托管以由作为CDN 130的源的云服务120消费的源URL 220。云服务120将仅响应来自CDN 130的针对来自源URL 220的内容资产的请求,并且即使这样也仅当租户已经向云服务120发送了信号关于启用了从CDN130的分发时(操作350)。当启用从CDN 130分发时,将拒绝来自除了CDN 130之外的实体的请求,而云服务120可以以访问拒绝或其他合适的错误码来对进行请求的实体进行响应。来自CDN 130的使用源URL 220的请求将绕开云服务的认证过程,以使得当启用CDN分发时,CDN 130可以更快速地用所请求的内容资产来填充。在一些方面中,可以经由与CDN 130相关联的已知IP地址的白名单或者签名头部认证来将请求识别为源自CDN 130,其中,头部利用在云服务120与CDN 130之间共享的秘密来签名。
针对经由CDN 130共享的内容资产的哈希映射在操作340处被创建或更新以包括用于构建源URL 220的哈希值250。在各种方面中,当建立哈希映射时,资产标识符260可以被包含在哈希值250中或被从哈希值250中排除。哈希映射可以特定于给定的父内容资产,其仅包括针对子内容资产的哈希值250,其中针对该子内容资产的所提供的URL 210被包括在父内容资产中;哈希映射可以对租户的部署是一般性的,其中,每个CDN URL 230的哈希值250被包括在该哈希映射中;或者哈希映射可以是特定和一般的组合,以为租户的部署的区域提供不同的哈希映射。
在操作350处,云服务120和CDN 130被配置为使得CDN 130能够供应内容资产。在各种方面中,该配置以信号从租户设备140发送至云服务120,云服务120进而向CDN 130发送信号以开始经由指定的源URL 220来请求在云服务120中托管的内容。云服务120可以向CDN 130提供源URL 220的列表以及关于如何将源URL 220转换成CDN URL 230或哈希值250的逻辑和用于从URL集200构建URL的逻辑、针对CDN 130中的内容集的保留策略(例如,存储n天),并且可以提供经共享的秘密,以使得针对来自源URL 220的内容资产的请求可以适当地被签署。可替代地,租户可以经由租户设备140直接向CDN 130提供转换逻辑、保留策略、或经共享的秘密,或者使得云服务120将那些数据转发至CDN 130。
继续到操作360,云服务120将经更新的哈希映射提供至已经被认证的客户设备110。在各种方面中,响应于哈希映射被创建或更新,该哈希映射可以被推送至当前已经向针对给定租户的云服务120认证的客户设备110,而在其他的方面中,客户设备110将响应于来自客户设备110的针对哈希映射的请求或者与被请求的另一内容资产一起(例如,作为CSS或JavaScript对象的一部分)接收哈希映射。接着,方法300可以结束。
图4是示出了在示例方法400中所涉及的一般步骤的流程图,示例方法400用于使能在提供单个地址时对内容的可互换的取回的混合内容供源。方法400可以响应于租户完全启用CDN 130用于内容源或者响应于从CDN 130的分发中移除一个或多个具体的内容资产或内容资产的库而被执行。
方法400在操作410处开始,其中租户向云服务120标识不再协同经由云服务120的分发而经由CDN 130被分发的内容。内容资产可以个体地被识别,如果哈希值250被创建最初为了以每资产为基础共享这些内容资产,或者另外,如果这些哈希值250被创建为识别从其处可以共享内容资产的库,则这些库将被识别以从经由CDN 130的分发中移除。如将理解的,租户可以以信号发送要从经由CDN 130的分发中移除的一个或多个内容资产或库(直到并且包括租户的所有内容),并且根据方法300,可以在后来的时间重新启用该内容经由CDN130的分发。
在操作420处,云服务120停止托管所识别的来自源URL 220的内容资产。在各种方面中,使得源URL 220不可用;使用源URL 220的所有请求将被拒绝。在其他方面中,源URL220从云服务120中被删除;所述内容和内容资产被移除。操作420阻止CDN 130用不再使得从CDN 130可获得的内容资产来填充其高速缓存。
继续到操作430,租户设备140将高速缓存清除命令发送至CDN 130,在一些方面中,该命令可以由云服务120接收并且由云服务120从租户设备140转发至CDN 130。高速缓存清除命令识别将不可用于从CDN 130的分发的内容资产,并且使得CDN 130从其存储层中删除这些内容资产或者以其他方式使得客户设备110不可获得这些内容资产(例如,标记用于覆写)。如将理解的,租户可以独立于方法400来执行操作410和430,以迫使CDN 130更新所识别的内容资产。
包括针对从CDN 130可获得的内容资产的哈希值250的哈希映射在操作440处被更新,以移除与在操作410处所识别的内容资产相关联的哈希值250。在操作450处,经更新的哈希映射接着被提供至经认证的客户。在各种方面中,响应于哈希映射被更新,哈希映射可以被推送至当前向针对给定租户的云服务120认证的客户设备110。在其他方面中,客户设备110将响应于来自客户设备110的针对哈希映射的请求或者与所请求的另一内容资产一起(例如,作为CSS或JavaScript对象的一部分)接收哈希映射。接着,方法400可以结束。
图5是示出了在示例方法500中所涉及的一般步骤的流程图,该示例方法用于在提供单个地址时供客户设备110经由混合内容供源来可交换地请求内容资产。
方法500在操作510处开始,其中客户设备110向云服务120发送针对内容的请求。云服务120将使用客户设备110来认证客户,并且当客户具有访问所请求的内容的合适许可时,可以响应该请求而向客户设备110提供内容,否则可以拒绝该请求。在云服务120已经认证了该客户之后,云服务120将向客户设备110发送包括在CDN URL 230中所使用的一个或多个哈希值250的哈希映射,其是客户设备110在操作520处接收的。在各种方面中,客户设备110可以在其请求中指示其已经具有哈希映射,在该情况下,可以省略操作520或者由客户设备110所接收的哈希映射将替代先前的哈希映射。
在操作530处,客户设备110接收包括针对子内容资产的动态URL的父内容资产。例如,客户可以已经请求了包括请求图像和CSS的URL(网页的子内容资产)的网页,其中,该CSS请求另一图像(作为CSS的子内容资产)。动态URL包括所提供的URL 210,该URL 210指向云服务120将从其处向客户设备110提供内容资产的地址,但是其能够由客户设备110解译,以潜在地指向CDN 130将从其处向客户设备110提供内容资产的地址。
为了确定动态URL是否指向CDN 130,方法500继续至操作540,其中,客户设备110计算所提供的URL 210的哈希(包括或排除所提供的URL 210的资产标识符260元素)。接着,客户设备110将该哈希与包括哈希映射的CDN URL 230的哈希值250进行比较,以在决策550处确定操作540中所计算的哈希在哈希映射中是否存在。当确定该哈希在所述哈希映射中存在时,方法500继续至操作560,否则方法500继续至操作570。
在操作560处,客户设备110将从CDN 130请求内容资产。利用在决策550处所确定的哈希值250而被构建为包括在操作540处所计算的哈希的CDN URL 230在对CDN 130的请求中被使用。在各种方面中,客户设备110将从所提供的URL 210中提取资产标识符260,以连接针对该请求的CDN URL 230。接着,方法500可以结束。
在操作570处,客户设备110将从云服务120请求内容资产。客户设备110将使用所提供的URL 210来从云服务120请求内容资产,并且该请求可以经历用于认证和内容控制的另外的处理,以从云服务120接收内容资产。接着,方法500可以结束。
尽管已经在结合在计算机的操作系统上运行的应用程序而执行的程序模块的一般性的上下文中描述了实现,但本领域技术人员将理解的是,也可以结合其他程序模块来实现多个方面。通常而言,程序模块包括例程、程序、组件、数据结构、以及执行特定的任务或实现特定的抽象数据类型的其他类型的结构。
在本文中所描述的方面和功能可以经由多种计算系统来操作,包括但不限于台式计算机系统、有线和无线通信系统、移动计算系统(例如,移动电话、上网本、平板或板式计算机、笔记本计算机、和膝上型计算机)、手持设备、微处理器系统、基于微处理器的或可编程消费型电子产品、小型计算机、和大型计算机。
另外,根据一个方面,本文所描述的方面和功能可以在分布式系统(例如,基于云的计算系统)上进行操作,其中应用功能、存储器、数据存储和取回以及各种处理功能可以通过分布式计算网络(例如,互联网或内联网)而彼此远离地进行操作。根据一个方面,各种类型的用户界面和信息可以经由板载计算设备显示器或者经由与一个或多个计算设备相关联的远程显示单元而被显示。例如,各种类型的用户界面和信息可以在各种类型的用户界面和信息被投射于其上的墙壁表面上进行显示和交互。与实现可以利用其进行实践的许多计算系统的交互包括键击输入、触摸屏输入、语音或其他音频输入、手势输入,其中相关联的计算设备装备有用于捕获和解译用于控制计算设备的功能的用户手势的检测(例如,相机)功能,等等。
图6-7B和关联的描述提供了对其中可以实践本公开的示例的多种操作环境的讨论。然而,关于图6-7B示出和讨论的设备和系统是出于示例和说明的目的的,并且不限于在本文中所描述的用于实践多个方面的大量计算设备配置。
图6是示出了利用其可以实践本公开的示例的计算设备600的物理组件(即,硬件)的框图。在基本配置中,计算设备600包括至少一个处理单元602以及系统存储器604。根据一个方面,取决于计算设备的配置和类型,系统存储器604包括但不限于易失性存储器(例如,随机存取存储器)、非易失性存储器(例如,只读存储器)、闪速存储器、或者这样的存储器的任何组合。根据一个方面,系统存储器604包括操作系统605以及适合于运行软件应用650的一个或多个程序模块606。根据一个方面,应用650包括这样的应用,其中通过该应用,租户可以控制内容资产经由混合分发系统的分发,或者客户可以根据本公开来请求内容。例如,操作系统605适合于控制计算设备600的操作。此外,多个方面是结合图形库、其他操作系统、或任何其他应用程序来实践的,并且不限于任何特定的应用或系统。在图6中通过虚线608内的这些组件示出了该基本配置。根据一个方面,计算设备600具有额外的特征或功能。例如,根据一个方面,计算设备600包括额外的数据存储设备(可移动的和/或不可移动的),例如磁盘、光盘、或磁带。在图6中通过可移动存储设备609和不可移动存储设备610示出了这样额外的存储。
如在上文中所述,根据一个方面,多个程序模块和数据文件被存储在系统存储器604中。当在处理单元602上执行时,程序模块606(例如,应用650)执行过程,包括但不限于在图3-5中所示出的方法300、400、和500的步骤中的一个或多个步骤。根据一个方面,其他程序模块根据示例而被使用,并且包括以下应用,例如电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用程序等。
根据一个方面,计算设备600具有一个或多个输入设备612,例如键盘、鼠标、笔、声音输入设备、触摸输入设备等。根据一个方面,还包括诸如显示器、扬声器、打印机等之类的输出设备614。前述设备是示例,并且可以使用其他设备。根据一个方面,计算设备600包括允许与其他计算设备618的通信的一个或多个通信连接616。合适的通信连接616的示例包括但不限于射频(RF)发射机、接收机、和/或收发机电路;通用串行总线(USB)、并行、和/或串行端口。
如在本文中所用的术语计算机可读介质包括计算机存储介质。计算机存储介质包括以用于存储信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动的介质,所述信息例如计算机可读指令、数据结构、或程序模块。系统存储器604、可移动存储设备609、和不可移动存储设备610全都是计算机存储介质的示例(即,存储器存储)。根据一个方面,计算机存储介质包括:RAM、ROM、电可擦除可编程只读存储器(EEPROM)、闪速存储器或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光存储、盒式磁带、磁带、磁盘存储器或其他磁存储设备、或者可以用于存储信息并且可以由计算设备600访问的任何其他制品。根据一个方面,任何这样的计算机存储介质都是计算设备600的一部分。计算机存储介质不包括载波或其他经传播的数据信号。
根据一个方面,通信介质是由计算机可读指令、数据结构、程序模块、或者经调制的数据信号(例如,载波或其他传输机制)中的其他数据来实施的,并且包括任何信息传递介质。根据一个方面,术语“经调制的数据信号”描述具有以关于将信息在信号中进行编码的方式设置或改变的一个或多个特性的信号。作为示例而非限制,通信介质包括有线介质(例如,有线网络或直接有线连接)以及无线介质(例如,声学、射频(RF)、红外、和其他无线介质)。
图7A和7B示出了利用其可以实践多个方面的移动计算设备700,例如,移动电话、智能电话、平板个人计算机、膝上型计算机等。参考图7A,示出了用于实现多个方面的移动计算设备700的示例。在基本配置中,移动计算设备700是具有输入元件和输出元件两者的手持计算机。移动计算设备700通常包括显示器705以及允许用户将信息输入到移动计算设备700中的一个或多个输入按钮710。根据一个方面,移动计算设备700的显示器705充当输入设备(例如,触摸屏显示器)。如果被包括在内,可选的侧输入元件715允许另外的用户输入。根据一个方面,侧输入元件715是旋转开关、按钮、或任何其他类型的手动输入元件。在可替代的示例中,移动计算设备700包含更多或更少的输入元件。例如,在一些示例中,显示器705可以不是触摸屏。在可替代的示例中,移动计算设备700是便携式电话系统,例如蜂窝电话。根据一个方面,移动计算设备700包括可选的小键盘735。根据一个方面,可选的小键盘735是物理小键盘。根据另一方面,可选的小键盘735是在触摸屏显示器上生成的“软”小键盘。在各种方面中,输出元件包括用于示出图形用户界面(GUI)的显示器705、视觉指示器720(例如,发光二极管)、和/或音频换能器725(例如,扬声器)。在一些示例中,移动计算设备700包含用于给用户提供触觉反馈的振动换能器。在另一个示例中,移动计算设备700包含用于向外部设备发送信号或者从外部设备接收信号的输入和/或输出端口,例如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)、和视频输出(例如,HDMI端口)。在另一个示例中,移动计算设备700包含用于向外部设备发送信号或者从外部设备接收信号的外围设备端口740,例如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)、和视频输出(例如,HDMI端口)。
图7B是示出了移动计算设备的一个示例的架构的框图。也就是说,移动计算设备700包含用于实现一些示例的系统(即,架构)702。在一个示例中,系统702被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息传送客户、游戏、和媒体客户/播放器)的“智能电话”。在一些示例中,系统702被集成为计算设备,例如集成的个人数字助理(PDA)和无线电话。
根据一个方面,一个或多个应用程序750被加载到存储器762中并且在操作系统764上运行或者与操作系统764相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息传送程序等。系统702还包括存储器762内的非易失性存储区域768。非易失性存储区域768用于存储如果系统702断电而不应丢失的持续信息。应用程序750可以在非易失性存储区域768中使用并存储信息,例如电子邮件或者由电子邮件应用使用的其他消息等。同步应用(未示出)也驻留在系统702上,并且被编程为与驻留在主计算机上的对应的同步应用进行交互,从而将存储在非易失性存储区域768中的信息与存储在主计算机上的对应的信息保持同步。应当理解的是,其他应用可以被加载到存储器762中并且在移动计算设备700上运行。
根据一个方面,系统702具有电源770,其被实现为一个或多个电池。根据一个方面,电源770还包括外部电源,例如AC适配器或给电池供电或充电的加电对接托架。
根据一个方面,系统702包括执行发送和接收射频通信的功能的无线电设备772。无线电设备772经由通信运营商或服务提供商来促成系统702与“外部世界”之间的无线连通性。来往于无线电设备772的传输是在操作系统764的控制下进行的。换句话说,可以将由无线电设备772所接收的通信经由操作系统764散播至应用程序750,且反之亦然。
根据一个方面,视觉指示器720用于提供视觉通知,和/或音频接口774可以用于经由音频换能器725产生可听见的通知。在所示的示例中,视觉指示器720是发光二极管(LED),而音频换能器725是扬声器。这些设备可以直接地耦合至电源770,以使得当被激活时,即使处理器760和其他组件可以关闭以节省电池电量,这些设备也能保持通电并持续由通知机制所指示的一段时间。LED可以被编程为无限期地保持通电,直到用户采取动作来指示设备的通电状态为止。音频接口774用于向用户提供可听见的信号并且从用户接收可听见的信号。例如,除了耦合至音频换能器725之外,音频接口774还可以被耦合至麦克风以接收可听见的输入,例如,以促进电话会话。根据一个方面,系统702还包括视频接口776,其使得板载相机730的操作能够记录静止图像、视频流等。
根据一个方面,实现系统702的移动计算设备700具有额外的特征或功能。例如,移动计算设备700包括额外的数据存储设备(可移动的和/或不可移动的),例如磁盘、光盘、或磁带。在图7B中由非易失性存储区域768示出了这样额外的存储。
根据一个方面,如在上文中所描述的,将由移动计算设备700所生成或捕获的数据/信息以及经由系统702所存储的数据/信息本地地存储在移动计算设备700上。根据另一方面,将数据存储在能够经由无线电设备772或经由移动计算设备700与同移动计算设备700相关联的分开的计算设备(例如,分布式计算网络(例如,互联网)中的服务器计算机)之间的有线连接而由设备来访问的任何数量的存储介质上。应当理解的是,能够经由移动计算设备700、经由无线电设备772、或经由分布式计算网络来访问这样的数据/信息。类似地,根据一个方面,根据公知的数据/信息传输和存储方式(包括电子邮件和协作数据/信息共享系统),这样的数据/信息可以容易地在计算设备之间传输以供存储和使用。
例如,在上文中参考根据多个方面的方法、系统、和计算机程序产品的框图和/或操作图示而描述了实现。在方框中所记录的功能/操作可以以不同于在任何流程图中所示出的顺序来进行。例如,取决于所涉及的功能/操作,连续地示出的两个方框可以实际上大体上同时执行,或者方框可以有时以相反的顺序执行。
在该申请中所提供的一个或多个示例的描述或示图不旨在以任何方式限制或约束所要求保护的范围。在该公开中所提供的方面、示例、和细节被认为足以传达所有物,并且使得其他人能够制造并使用最优模式。实现不应该被解释为限于在该申请中所提供的任何方面、示例、或细节。无论是组合地还是分开地被示出或描述,(结构上和方法上两者的)各种特征旨在选被择性地包括或省略,以产生具有一组特定的特征的示例。在已经提供了对本申请的描述和图示之后,本领域技术人员可以预期到落入在该申请中所实施的一般的发明性概念的更宽泛的方面的精神内的、不脱离本公开的更宽泛的范围的变型、修改和替代示例。
Claims (15)
1.一种用于改进对于在提供单个地址时可互换地为内容供源以供取回的计算效率的方法,包括:
识别要经由内容分发网络(CDN)协同将所述内容托管在所提供的统一资源定位符(URL)处的云服务而被分发的内容;
基于所提供的URL来创建哈希值;
在所述云服务处将内容资产的子内容资产托管在源URL处,其中,所述源URL包括所述哈希值;
由所述云服务创建包括CDN URL的哈希映射,其中,所述CDN URL指向供所述CDN将所述子内容资产提供至客户设备的地址,并且所述CDN URL包括所述哈希值;
由所述云服务配置所述CDN以从所述CDN URL供应所述子内容资产,并且使用所述源URL作为从其处将所述子内容资产高速缓存至所述CDN中的源;以及
从所述云服务将所述哈希映射提供至与经认证的客户相关联的客户设备。
2.根据权利要求1所述的方法,其中,所述客户设备被提供以所提供的URL、没有被提供以所述源URL,并且没有被提供以所述CDN URL。
3.根据权利要求1所述的方法,其中,所述云服务被配置为拒绝经由所述源URL的针对所述子资产的请求,所述源URL是从不同于所述CDN的请求方接收的。
4.根据权利要求1所述的方法,其中,配置所述CDN还包括针对所述子资产要由所述CDN保持高速缓存多久来设置保留策略。
5.根据权利要求1所述的方法,还包括:
协同不再经由所述CDN分发的所述云服务来识别当前经由所述CDN分发的给定的子资产;
将所述给定的子资产从由所述云服务托管在与所述给定的子资产相关联的给定的源URL处移除;
从所述云服务向所述CDN发送高速缓存清除命令;
更新所述哈希映射以将与所述给定的子资产相关联的给定的哈希值从所述哈希映射中移除;
将所述经更新的哈希映射提供至所述客户设备。
6.一种用于改进对于在提供单个地址时可互换地为内容供源以供取回的计算效率的方法,包括:
由客户设备从云服务请求内容;
在所述客户设备处从所述云服务接收所请求的内容和哈希映射,其中,所述内容包括动态统一资源定位符(URL),所述动态URL包括给定的内容资产在其处由所述云服务托管的给定的所提供的URL,并且其中,所述哈希映射包括内容资产在其处由所述云服务托管的所提供的URL的哈希值;
由所述客户设备计算所述给定的所提供的URL的哈希;
由所述客户设备将所述哈希与所述哈希映射的所述哈希值进行比较;
响应于确定所述哈希与给定的哈希值相匹配,基于所提供的URL和所述给定的哈希值导出针对所述给定的内容资产的内容分发网络(CDN)
URL,并且根据所述CDN URL从CDN请求所述给定的内容资产;以及
响应于确定所述哈希与所述哈希值不匹配,由所述客户设备根据所提供的URL从所述云服务请求所述给定的内容资产。
7.根据权利要求6所述的方法,还包括:
确定用于为所述内容供源的客户偏好;
响应于确定所述客户偏好指示所述给定的内容资产要从所述云服务供源,由所述客户设备根据所提供的URL从所述云服务请求所述给定的内容资产。
8.根据权利要求6所述的方法,其中,所述动态URL是根据函数调用识别的,所述函数调用包括所提供的URL或者在所提供的URL的锚中所定义的标签。
9.根据权利要求6所述的方法,其中,基于所提供的URL和所述哈希值导出针对所述给定的内容资产的所述CDN URL还包括:
从所提供的URL中移除位于主值和资产标识符之间的内部文件路径;
在所提供的URL的协议标识符和主值之间添加CDN地址;以及
在所述主值和所述资产标识符之间添加所述哈希。
10.根据权利要求6所述的方法,其中,所述哈希值包括针对相关联的所提供的URL的URL长度信息,并且其中,将所述哈希与所述哈希映射的所述哈希值进行比较还包括:
确定所述给定的所提供的URL的长度;
在所述哈希映射中隔离针对其的所述URL长度信息等于所述给定的所提供的URL的所述长度的哈希值;
响应于所述哈希映射中没有哈希值被隔离,确定所述哈希与所述哈希值不匹配;
响应于所述哈希映射中一个哈希值被隔离,确定所述哈希与所述给定的哈希值相匹配;以及
响应于所述哈希映射中多个哈希值被隔离,将所述哈希与所述多个哈希值中的每个哈希值进行比较,以确定所述多个哈希值中的一个哈希值是否与所述哈希相匹配。
11.一种具有对于在提供单个地址时可互换地为内容供源以供取回的改进的计算效率的系统,包括:
托管内容资产和哈希映射以供应至经授权的客户的云服务:以及
内容分发网络(CDN),其被指定为协同所述云服务来提供所述内容资产,其中,所述CDN使用所述云服务作为从其处要将所述内容资产高速缓存并分层的源,其中,所述CDN将所述内容资产高速缓存以在不需要认证的情况下供应给客户。
12.根据权利要求11所述的系统,其中,所述云服务将所述内容资产托管在相关联的源统一资源定位符(URL)处以经由所述CDN来消费,并且托管在相关联的所提供的URL处以经由经认证的客户设备来消费。
13.根据权利要求12所述的系统,其中,所述云服务将所述相关联的源URL和所述哈希映射提供至所述CDN;并且
其中,所述CDN还能够操作以从所述相关联的源URL和所述哈希映射中导出所述源URL和相邻的CDN URL;并且
其中,所述CDN还能够操作以经由所述相关联的源URL从所述云服务请求所述内容资产,并且托管所述内容资产以经由所述相关联的CDN URL供应给所述客户。
14.根据权利要求12所述的系统,其中,所述云服务将所述相关联的源URL和所述哈希映射提供至所述经认证的客户设备,以使得所述经认证的客户设备能够导出针对由所述CDN托管的所述内容资产的相关联的CDN地址。
15.根据权利要求12所述的系统,其中,所述哈希映射包括所述相关联的所提供的URL的哈希。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662368739P | 2016-07-29 | 2016-07-29 | |
US62/368,739 | 2016-07-29 | ||
US15/365,733 US10375154B2 (en) | 2016-07-29 | 2016-11-30 | Interchangeable retrieval of content |
US15/365,733 | 2016-11-30 | ||
PCT/US2017/041810 WO2018022305A1 (en) | 2016-07-29 | 2017-07-13 | Interchangeable retrieval of content |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109565518A true CN109565518A (zh) | 2019-04-02 |
CN109565518B CN109565518B (zh) | 2021-08-17 |
Family
ID=61012088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780047134.0A Active CN109565518B (zh) | 2016-07-29 | 2017-07-13 | 用于可互换的内容取回的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10375154B2 (zh) |
EP (1) | EP3491808B1 (zh) |
CN (1) | CN109565518B (zh) |
WO (1) | WO2018022305A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10693947B2 (en) | 2016-09-09 | 2020-06-23 | Microsoft Technology Licensing, Llc | Interchangeable retrieval of sensitive content via private content distribution networks |
US10776178B2 (en) | 2017-06-26 | 2020-09-15 | Net Law Group, Inc. | Cloud-based enterprise-customizable multi-tenant service interface |
US11265365B2 (en) | 2017-06-26 | 2022-03-01 | Net Law Group, Inc. | Platform-specific thin-client delivery of an application developed on a cloud-based enterprise-customizable multi-tenant service interface |
CN109873855B (zh) * | 2018-04-13 | 2022-01-25 | 贵州白山云科技股份有限公司 | 一种基于区块链网络的资源获取方法和系统 |
US11128460B2 (en) * | 2018-12-04 | 2021-09-21 | EMC IP Holding Company LLC | Client-side encryption supporting deduplication across single or multiple tenants in a storage system |
CN112861030B (zh) * | 2019-11-27 | 2024-04-05 | 北京金山云网络技术有限公司 | Cdn的刷新方法和装置、缓存服务器以及存储介质 |
US11528131B1 (en) * | 2021-11-04 | 2022-12-13 | Uab 360 It | Sharing access to data externally |
US11843682B1 (en) * | 2022-08-31 | 2023-12-12 | Adobe Inc. | Prepopulating an edge server cache |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968437A (zh) * | 2011-09-27 | 2013-03-13 | 微软公司 | 外部服务应用的发现方法 |
US8583763B1 (en) * | 2012-09-19 | 2013-11-12 | Edgecast Networks, Inc. | Sandboxing content optimization at the network edge |
CN103581248A (zh) * | 2012-07-31 | 2014-02-12 | 中兴通讯股份有限公司 | 内容分发网络cdn服务的提供方法及装置 |
US20140059248A1 (en) * | 1998-07-14 | 2014-02-27 | Massachusetts Institute Of Technology | Global hosting system |
US20140189069A1 (en) * | 2012-12-27 | 2014-07-03 | Akamai Technologies Inc. | Mechanism for distinguishing between content to be served through first or second delivery channels |
CN105659209A (zh) * | 2013-10-15 | 2016-06-08 | 微软技术许可有限责任公司 | 在客户端设备上托管的云服务 |
CN105653473A (zh) * | 2015-12-31 | 2016-06-08 | 中国科学院信息工程研究所 | 基于二元标识的缓存数据访问方法及装置 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6823377B1 (en) * | 2000-01-28 | 2004-11-23 | International Business Machines Corporation | Arrangements and methods for latency-sensitive hashing for collaborative web caching |
US7240100B1 (en) | 2000-04-14 | 2007-07-03 | Akamai Technologies, Inc. | Content delivery network (CDN) content server request handling mechanism with metadata framework support |
US7096266B2 (en) | 2001-01-08 | 2006-08-22 | Akamai Technologies, Inc. | Extending an Internet content delivery network into an enterprise |
EP1388073B1 (en) | 2001-03-01 | 2018-01-10 | Akamai Technologies, Inc. | Optimal route selection in a content delivery network |
US7149797B1 (en) | 2001-04-02 | 2006-12-12 | Akamai Technologies, Inc. | Content delivery network service provider (CDNSP)-managed content delivery network (CDN) for network service provider (NSP) |
US7133905B2 (en) | 2002-04-09 | 2006-11-07 | Akamai Technologies, Inc. | Method and system for tiered distribution in a content delivery network |
US20040093419A1 (en) | 2002-10-23 | 2004-05-13 | Weihl William E. | Method and system for secure content delivery |
CA2667696A1 (en) | 2006-09-06 | 2008-05-15 | Akamai Technologies, Inc. | Hybrid content delivery network (cdn) and peer-to-peer (p2p) network |
CN102047244B (zh) | 2008-04-04 | 2013-02-27 | 第三雷沃通讯有限责任公司 | 在内容分发网络(cdn)中处理长尾内容 |
US8661056B1 (en) | 2008-11-03 | 2014-02-25 | Salesforce.Com, Inc. | System, method and computer program product for publicly providing web content of a tenant using a multi-tenant on-demand database service |
US8397073B1 (en) | 2009-09-04 | 2013-03-12 | Amazon Technologies, Inc. | Managing secure content in a content delivery network |
US8358660B2 (en) | 2009-11-16 | 2013-01-22 | Verizon Patent And Licensing Inc. | Method and system for providing integrated content delivery |
US8769614B1 (en) | 2009-12-29 | 2014-07-01 | Akamai Technologies, Inc. | Security framework for HTTP streaming architecture |
US9161080B2 (en) * | 2011-01-28 | 2015-10-13 | Level 3 Communications, Llc | Content delivery network with deep caching infrastructure |
ES2425626B1 (es) | 2011-05-12 | 2014-06-05 | Telefónica, S.A. | Método para la resolución de dns de peticiones de contenido en un servicio cdn |
US20150207660A1 (en) * | 2011-12-12 | 2015-07-23 | Google Inc. | Client-side url redirection |
CN104011701B (zh) | 2011-12-14 | 2017-08-01 | 第三雷沃通讯有限责任公司 | 内容传送网络系统和能够在内容传送网络中操作的方法 |
US9088634B1 (en) | 2012-05-07 | 2015-07-21 | Amazon Technologies, Inc. | Dynamic media transcoding at network edge |
US9246929B2 (en) * | 2012-09-07 | 2016-01-26 | Polytechnic Institute Of New York University | Providing a fast, remote security service using hashlists of approved web objects |
US9015212B2 (en) * | 2012-10-16 | 2015-04-21 | Rackspace Us, Inc. | System and method for exposing cloud stored data to a content delivery network |
US9607132B2 (en) | 2012-10-22 | 2017-03-28 | Koninklijke Kpn N.V. | Token-based validation method for segmented content delivery |
US9705754B2 (en) | 2012-12-13 | 2017-07-11 | Level 3 Communications, Llc | Devices and methods supporting content delivery with rendezvous services |
US9667747B2 (en) | 2012-12-21 | 2017-05-30 | Akamai Technologies, Inc. | Scalable content delivery network request handling mechanism with support for dynamically-obtained content policies |
US9935996B2 (en) | 2013-02-28 | 2018-04-03 | Open Text Sa Ulc | Systems, methods and computer program products for dynamic user profile enrichment and data integration |
US9549038B1 (en) * | 2013-08-14 | 2017-01-17 | Amazon Technologies, Inc. | Cacheable resource location selection |
US9648125B2 (en) | 2013-10-04 | 2017-05-09 | Akamai Technologies, Inc. | Systems and methods for caching content with notification-based invalidation |
CN104580177B (zh) | 2014-12-26 | 2018-04-27 | 广州酷狗计算机科技有限公司 | 资源提供方法、装置和系统 |
US9392075B1 (en) | 2015-07-23 | 2016-07-12 | Haproxy Holdings, Inc. | URLs with IP-generated codes for link security in content networks |
US10693947B2 (en) | 2016-09-09 | 2020-06-23 | Microsoft Technology Licensing, Llc | Interchangeable retrieval of sensitive content via private content distribution networks |
-
2016
- 2016-11-30 US US15/365,733 patent/US10375154B2/en active Active
-
2017
- 2017-07-13 EP EP17743443.8A patent/EP3491808B1/en active Active
- 2017-07-13 CN CN201780047134.0A patent/CN109565518B/zh active Active
- 2017-07-13 WO PCT/US2017/041810 patent/WO2018022305A1/en unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140059248A1 (en) * | 1998-07-14 | 2014-02-27 | Massachusetts Institute Of Technology | Global hosting system |
CN102968437A (zh) * | 2011-09-27 | 2013-03-13 | 微软公司 | 外部服务应用的发现方法 |
CN103581248A (zh) * | 2012-07-31 | 2014-02-12 | 中兴通讯股份有限公司 | 内容分发网络cdn服务的提供方法及装置 |
US8583763B1 (en) * | 2012-09-19 | 2013-11-12 | Edgecast Networks, Inc. | Sandboxing content optimization at the network edge |
US20140189069A1 (en) * | 2012-12-27 | 2014-07-03 | Akamai Technologies Inc. | Mechanism for distinguishing between content to be served through first or second delivery channels |
CN105659209A (zh) * | 2013-10-15 | 2016-06-08 | 微软技术许可有限责任公司 | 在客户端设备上托管的云服务 |
CN105653473A (zh) * | 2015-12-31 | 2016-06-08 | 中国科学院信息工程研究所 | 基于二元标识的缓存数据访问方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2018022305A1 (en) | 2018-02-01 |
EP3491808B1 (en) | 2021-05-12 |
EP3491808A1 (en) | 2019-06-05 |
US20180034901A1 (en) | 2018-02-01 |
US10375154B2 (en) | 2019-08-06 |
CN109565518B (zh) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113711536B (zh) | 从区块链网络中提取数据 | |
CN109691057B (zh) | 经由私人内容分发网络可交换地取回敏感内容 | |
US20200259843A1 (en) | Verifiable outsourced ledgers | |
CN109565518A (zh) | 可互换的内容取回 | |
CN109472696B (zh) | 资产交易方法、装置、存储介质及计算机设备 | |
US9886563B2 (en) | Personalized online content access experiences using inferred user intent to configure online session attributes | |
US10325076B2 (en) | Personalized online content access experiences using online session attributes | |
US9143568B2 (en) | Peer-to-peer sharing of cloud-based content | |
US9565198B2 (en) | Tenant based signature validation | |
CN108293045A (zh) | 本地和远程系统之间的单点登录身份管理 | |
US10635828B2 (en) | Tokenized links with granular permissions | |
CN111291394B (zh) | 一种虚假信息管理方法、装置和存储介质 | |
US9930063B2 (en) | Random identifier generation for offline database | |
US11523260B2 (en) | Delivery of configuration information for cross-platform application integration | |
CN110601858B (zh) | 证书管理方法及装置 | |
CN106156345B (zh) | 项目文件存证方法、存证设备及终端设备 | |
CN110168554A (zh) | 云托管系统中的强资源身份 | |
CN107210992B (zh) | 在安全数据系统和外部数据系统之间上传和下载数据 | |
CN118677628A (zh) | 音视频传输方法、装置、设备、存储介质及程序产品 | |
WO2020034156A1 (zh) | 一种中心架构型仿生数据传输系统 | |
WO2020034157A1 (zh) | 一种自主架构型仿生数据传输系统 | |
KR20120045265A (ko) | 개인 정보 카드 제공 방법과 그를 위한 시스템, 서버 및 단말기 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |