适用于移动应用程序行为和网络条件的缓存的制作方法
【专利摘要】公开了适用于移动应用程序行为和网络条件的缓存系统和方法。一方面,所公开的实施例包括,可以在系统上实施的,通过跟踪由移动设备的客户端生成的请求确定移动设备上的客户端接收的内容的缓存性能,以检测由客户端生成的请求的周期性,跟踪为由客户端生成的请求所接收的响应以检测响应的内容的重复性,和/或基于一个或多个请求中的周期性和响应的内容的重复性,确定为客户端接收的内容是否是在移动设备上可缓存的。
【专利说明】适用于移动应用程序行为和网络条件的缓存
[0001]要求优先权
[0002]本申请要求以下优先权:2010年11月I日提出的申请号:61/408, 858,名称:“CROSS APPLICATION TRAFFIC COORDINATION” 的美国临时专利;2010 年 11 月 I 日提出的申请号:61/408, 839,名称:“ACTIVITY SESSION AS METHOD OF OPTIMIZING NETWORKRESOURCE USE”的美国临时专利;2010年11月I日提出的申请号:61/408, 829,名称:“DISTRIBUTED POLICY MANAGEMENT”的美国临时专利;2010年11月I日提出的申请号:61/408,846,名称:“ INTELLIGENT CACHE MANAGEMENT IN CONGESTED WIRELESS NETWORKS”的美国临时专利;2010年11月I日提出的申请号:61/408, 854,名称:“INTELLIGENTMANAGEMENT OF N0N-CACHEABLE CONTENT IN WIRELESS NETWORKS” 的美国临时专利;2010年 11 月 I 日提出的申请号:61/408, 826,名称:“one way intelligent heartbeat”的美国临时专利;2010年11月I日提出的申请号:61/408, 820,名称,TRAFFIC CATEGORIZATIONAND POLICY DRIVING RADIO STATE”的美国临时专利;2010年11月22日提出的申请号:61/416,020,名称:“ALIGNING BURSTS FROM SERVER TO CLIENT” 的美国临时专利;2010年 11 月 22 日提出的申请号:61/416, 033,名称,POLLING INTERVAL FUNCTIONS” 的美国临时专利;2011年I月7日提出的申请号:61/430, 828,名称:“D0MAIN NAME SYSTEMWITH NETWORK TRAFFIC HARMONIZATION”的美国临时专利;2011年9月9日提出的申请号:61/532, 857,名称:“CACHE DEFEAT DETECTION AND CACHING OF CONTENT ADDRESSEDBY IDENTIFIERS INTENDED TO DEFEAT CACHE” 的美国临时专利;2011 年 9 月 9 日提出的申请号:61/533, 007,名称 ^DISTRIBUTED CACHING IN A WIRELESS NETWORK OF CONTENTDELIVERED FOR A MOBILE APPLICATION OVER A LONG-HELD REQUEST” 的美国临时专利;2011 年9月 9 日提出的申请号:61/533, 021,名称 ^APPLICATION AND NETWORK-BASED LONGPOLL REQUEST DETE CTION AND CACHEABILITY ASSESSMENT THEREFOR” 的美国临时专利;本申请参考引用了如上所述申请的全部内容。
[0003]本申请涉及2011年7月5日提出的申请号:13/176, 537 (代理人案号:76443-8107.US01),名称 ^DISTRIBUTED CACHING AND RESOURCE AND MOBILE NETWORKTRAFFIC MANAGEMENT”的美国专利,本申请参考引用上所述申请的内容。
[0004]本申请涉及2011年10月14日提出的申请号:13/274, 265 (代理人案号:76443-8134.US01),名称:“Caching Adapted For Mobile Application Behavior AndNetwork Conditions”的美国专利,本申请参考引用上所述申请的内容。
[0005]本申请涉及2011年10月14日提出的申请号:13/274, 501 (代理人案号:76443-8134.US02),名称:“Request and Response Characteristics based Adaptationof Distributed Caching In A Mobile Network”的美国专利,本申请参考引用上所述申请的内容。
[0006]本申请涉及2011年10月14日提出的申请号:13/274,250 (代理人案号:76443-8138.US01),名称!“Distributed Caching In A Wireless Network Of ContentDelivered For A Mobile Application Over A Long-Held Reques”的美国专利,本申请参考引用上所述申请的内容。
[0007]本申请涉及2011年10月14日提出的申请号:13/274,248 (代理人案号:76443-8139.US01),2012 年 4 月 24 日公布的专利号:8,166,164,名称 ^APPLICATION ANDNETWORK-BASED LONG POLL REQUEST DETECTION AND CACHEABILITY ASSESSMENT THEREFOR”的美国专利,本申请参考引用上所述申请的内容。
【背景技术】
[0008]随着越来越多的数据饥渴智能手机和平板电脑的消耗网络资源,如带宽和信号,运营商或操作者都面临着超越网络升级和下载的额外挑战。随着移动媒体的爆炸和最终用户使用其便携式设备查看和共享视频、音乐和应用程序,更大,速度更快的网络压力随之增长。随着仅仅改善网络的消费总额超过500亿美元,运营商正在努力使网络更快,更智能,更闻效。
[0009]市场上现有提高网络性能的解决方案仅处理问题的一个方面-增加网络的规模和范围。虽然这解决了输送更多数据的“更大管道的需求,它没有考虑被共享数据的类型。虽然带宽可以处理移动视频应用程序,它没有考虑到浩大的其他移动应用程序和最终用户的行为。许多因素促使数据大规模增长,数据包括更复杂的设备、最终用户行以及先进的移动应用程序-所有都贡献了大量的数据流量。
[0010]不仅网络运营商经历了重大的挑战,而且设备制造商也同样如此。随着复杂设备的增加,设备制造商面临电池寿命有限的挑战。这种挑战也由最终用户推动,最终用户同时访问多个应用程序以及应用程序/客户端不断地访问网络。例如,智能手机及其“始终在线”,爱闲聊的移动应用程序,接收来自应用程序主机的频繁更新以及定期轮询网络。这些不断请求导致设备电池电量迅速耗尽。有些人试图通过只要更新被发送或接收就迅速断开网络连接来解决这个问题。这种做法可能会在一定程度上改善电池寿命,但在移动网络上放置了重的负载。
[0011]不断的连接和断开增加了信令流量的量,从而降低网络整体的性能,再将其传给网络运营商,并迫使他们增加带宽和网络访问。至目前为止,运营商已经能够投资4G和LTE网络以提高热点的网络容量。然而,这些解决方案都已达到它们的极限。LTE和4G也显示更多带宽感知可用性造成用户和应用程序增加使用及数据消费。从长远来看,它可能会增加而不是帮助拥塞问题。
[0012]现有技术的蜂窝网络被设计为适用于大量数据的高输量,而不适用于要求频繁的低输量和/或少量数据传输的应用程序。移动无线设备在处理每项业务时,保持相当长时间的高功耗模式——通常15-30秒。由于高功耗模式下所消耗电能高达闲置模式的100倍,网络启动的应用程序能迅速消耗电池电量。随着具有网络启动功能应用程序的迅速普及,这种情况越发糟糕,例如推送邮件、新闻提要、移动应用程序等等。此外,不断轮询的问题是手机也依赖于信号的发送和接收来电和短信,有时这些基本的手机功能相对于应用程序和其他移动客户端都被迫退居次席。
【专利附图】
【附图说明】
[0013]图1A系系统示例图,其中主机服务器促进移动设备(例如,无线设备)与无线网络(或者宽带网络)中应用程序服务器或内容提供商之间的流量、内容缓存和/或资源节约的管理,以节约资源;
[0014]图1B系分布在主机服务器和设备之间的代理和缓存系统示例图,其为资源节约及内容缓存促进设备与应用程序服务器/内容提供商之间的网络流量管理;
[0015]图2A系一框图,展示了位于移动设备(例如,无线设备)上的分布式代理和缓存系统的客户端组件的示例,其为了资源节约、内容缓存和/或流量管理而管理无线网络(或宽带网络)中的流量;
[0016]图2B系一框图,展示了如图2A所示缓存系统中组件的进一步示例,其可以为移动应用程序行为和/或网络条件缓存和采取缓存策略。图2B也说明了组件能够检测长轮询请求以及管理长轮询的缓存。
[0017]图2C系一框图,展示了图2A中所示的缓存系统中的应用程序行为检测器以及缓存策略管理器中的另一组件。其进一步能够检测缓存失败并执行由旨在击败缓存的标识符编址的内容的缓存。
[0018]图3A系一框图,展示了分布式代理和缓存系统的服务器端组件的例子,其为资源节约、内容缓存和/或流量管理而管理无线网络(或宽带网络)中的流量。
[0019]图3B系一框图,展示了如图3A所示的缓存系统的缓存策略管理器中的组件的进一步的示例,其能够为移动应用程序行为和/或网络条件缓存并适配策略。同时展示了组件能够检测长轮询请求并管理长轮询的缓存。
[0020]图3C系一框图,展示了如图3A所示的代理系统中的组件的另一示例,其进一步能够管理并检测击败机制及监测内容源的缓存。
[0021]图4系一时序图,展示了分布式代理系统如何协调无线网络(或宽带网络)中从移动设备(例如,任何无线设备)至应用程序服务器/内容提供商的数据请求,通过利用分布式代理系统执行的内容缓存和监控,以达节约网络和电池资源的目的。
[0022]图5系一框图,展示了在移动设备(例如,任何无线设备)上利用分布式代理和缓存系统(如图1B所示分布式系统),执行混合型IP和SMS省电模式的示例过程;
[0023]图6系一流程图,展示了在移动设备(例如,任何无线设备)和远程代理之间的分布式内容缓存以及内容缓存的分布式管理的示例过程。
[0024]图7系一交互图,展示了内容的分布式代理系统的缓存管理,内容经由长期保留请求传递至移动应用程序,同时保证被传递内容的新鲜度。
[0025]图8展示了长轮询请求中的搜寻模式行为的时序图以及当长轮询确定时的时间特征的时序图。
[0026]图9系一交互图,展示了轮询如何通过无线网络(或宽带网络)获取从移动设备(例如,任何无线设备)至应用程序服务器/内容提供商的数据请求,其可以被缓存在本地代理上并且由分布式缓存系统管理。
[0027]图10系一交互图,展示了如何通过无线网络(或宽带网络)轮询来自应用程序服务器/内容提供商的内容,其可以被检测并本地缓存,应用程序服务器/内容提供商采用标识符中的缓存击败机制(例如,旨在击败缓存的标识符)。
[0028]图11系一流程图,展示了收集关于请求的信息以及相关的识别可缓存性的响应并且缓存该响应的示例过程。[0029]图12系一流程图,展示了判断请求的响应是否能被缓存的决定流程的示例过程。
[0030]图13系一流程图,展示了基于请求周期性和/或响应重复性判断潜在的可缓存性的示例过程。
[0031]图14系一流程图,展示了动态调节给定请求或客户端的缓存参数的示例过程。
[0032]图15系一流程图,展示了使用请求时间间隔以确定和设置轮询间隔或速率的示例过程,在该间隔或速率时代理服务器监视应用程序服务器/内容主机以代表移动设备(例如,任何无线设备)。
[0033]图16系一示例时序图,展示了请求响应序列的各种类型的时间特征。
[0034]图17A系时序图的一示例,展示了请求响应序列的时间特征。
[0035]图17B系时序图的一示例,展示了长轮询的请求响应序列特征的时间特征。
[0036]图18系一时序图,展示了可能适于缓存的周期请求的检测的示例。
[0037]图19系一数据时序图,展示了请求间隔中的变化的检测以及响应中的服务器轮询速率的更新的示例。
[0038]图20系一数据时序图,展示了服务具有缓存条目的前台请求的示例。
[0039]图21系一数据时序图,展示了发生在过时的内容可能再次服务于请求应用程序之后的缓存失效的可能影响的示例。
[0040]图22系一数据时序图,展示了为缓存条目考虑生存时间(TTL)组合的缓存管理和响应的示例。
[0041]图23系缓存存储的组件API层的示例的图。
[0042]图24系展示缓存存储的数据模型的示例的图。
[0043]图25系展示在缓存存储中缓存条目的数据模型的例子的概念图。
[0044]图26A-B系示例请求-响应对,展示了由具有变化参数的标识符编址的可缓存的响应。
[0045]图27系一机器的图像化表现,以包含指令集的计算机系统为例,执行该指令,使得机器运行本申请所探讨的一种或多种方法。
[0046]发明详沭
[0047]以下详细说明和附图具有说明性,而并不解释为限制性。本申请描述了许多具体的细节,已完全公开本
【发明内容】
。然而,某些实例中,为避免说明内容的模糊化,一些惯用或常规细节并未描述。本发明公开的参照“一个实施例”或“某一实施例”可以,但不必然指参照同一实施例,并且参照指至少参照其中一个实施例。
[0048]本说明书中参照“一个实施例”或“某个实施例”是指与所述实施例相联系的特定特征、结构或特征,都至少包含在所公开的一个实施例中。本说明书中出现的短语“一个实施例”并不必然指代同一实施例,也不表示除其他实施例之外的独立或替代实施例。此外,说明书中所述的各种特征可能仅呈现在某些实施例上,未呈现在其他实施例上。同样地,说明书中所述的各种要求可能仅限制某些实施例,而不限制其他实施例。
[0049]本说明书中所使用的术语通常都在本领域内具有一般含义,在本申请公开范围以及每一术语所使用特定语境中。某些术语用于描述下文所探讨的公开内容,或说明书之中,是就所公开的说明书给业内人士提供额外指导。为方便起见,某些术语被突出显示,例如:加斜体和/或引号。突出显示不影响该术语的范围和含义,当上下文一致时,无论是否突出显示,该术语的范围和含义都保持不变。同一事件可能以多种方式进行说明,希望能够理解。
[0050]因此,本申请所述的任一或多个术语可能使用替代用词和同义词,但无论本申请是否阐述或探讨某一术语,该术语也不具备任何特殊含义。某些术语存在同义词。阐述一个或多个同义词并不排除其他同义词的使用。本说明书中所使用的实例,包含本申请中的术语实例,仅用于说明,并无进一步限制所公开或任意示例术语的范围和含义之义。同样,该公开不限于本说明书中给出的各实施例。
[0051]根据本申请如下所公开的实施例,各工具、设备、方法及相关结果的举例没有限制公开范围之义。注意:本申请在举例时使用的序号或子序号是为方便读者,绝不应限制公开的范围。除另行规定,本申请中所使用的所有技术和科学术语的含义与本申请所属领域技术人员的通常理解含义一致。一旦出现冲突,本文档,含定义在内,均优先适用。
[0052]本申请所公开的实施例包含缓存和为移动应用程序行为、用户用户活动/行为或网络条件适用缓存的系统和方法。
[0053]有多种因素有助于数据的增殖:最终用户、移动设备、无线设备、移动应用程序和网络。随着移动设备的发展,这样与它们相关的各种元素-可用性、应用程序、用户行为、位置,从而改变网络与设备和应用程序进行交互的方式。
[0054]公开的技术提供了全面的和终端到终端的解决方案,其通过利用移动内容具有可定义的或相关的“新鲜度”值的前提能够为运营商和设备制造商处理每个元素以同时支持移动或无线设备中的转移和数据的激增。移动内容的“新鲜度”可以被确定,无论是肯定的,或有些具有在被增强的用户体验范围内的容限的试探,或不受负面影响地,或受到负面影响但可以不被用户察觉地或在可容忍的阈值水平内地。
[0055]公开的创新通过监测、分析、并应用规则(其可能是试探性地确定)应用程序(例如,移动应用程序)和伙伴(相应的服务器或其他客户端)之间的交易(请求/响应)显而易见地确定了这样的“新鲜度”。此外,该技术还能够有效地缓存内容,其可能被它的始发/主机服务器标记为“不可缓存的”和标识一些“新鲜度”值,其可以稍后被用于执行应用程序特定的缓存。在一般情况下,“新鲜度”值有一个近似的最小值,其通常使用应用程序和对应的服务器/主机之间的更新间隔(例如,被发送请求时间间隔)进行确定。
[0056]所公开的技术实施例之一包含,通过设备和应用程序活动的完整视图,最优化有线和无线网络和设备各方面连接的系统,该活动包含:设备所需加载或当前应用程序,控制访问类型(推送vs.拉式或混合式)、访问位置、访问单一区域的用户集中度、访问时间、用户与应用程序、内容或设备互动的频率,并利用如上信息定型合作型客户/服务器的流量或在缺乏合作型客户时,同时定型各移动设备的流量。因为公开的服务器未与特定的网络提供商进行绑定,服务器对所有服务提供商的网络性能具有可视性。服务器进行的最优化能适用所有设备,不论是运营商还是服务提供商,在漫游时,能够提升用户体验、管理网络利用率。如今带宽被视为无线网络的一大难题,对增加额外带宽,以解决访问需要,已进行了大量的研究——许多提高性能的解决方案和新一代标准,例如:那些通常被称为3.5G、LTE、4G和WiMAX,关注于提供加大的带宽。虽然由标准进行部分地处理,关键问题仍然是信令通道的带宽比数据通道更不足并且标准不能很好的解决电池寿命。
[0057]所公开的技术实施例包含,例如,调节多个应用程序的请求,尽量减少需要的数个轮询请求;利用特定的内容类型,确定如何代理/管理连接/内容;以及应用与设备相联系的特定试探式、用户行为模式(用户与设备/应用程序互动的频率)和/或网络参数。
[0058]现有技术的实施例还包括:各控件或RSS阅读器执行的移动、反复的HTTP轮询,网络节点远程调控(例如,网络操作中心(NOC)),从而大大降低了设备消耗的电池/功率、无线信道信令和使用的带宽。此外,程序卸载能透明地执行,因此无需改变现有的应用程序。
[0059]一些实施例中,利用移动设备(例如,任何无线设备)的本地代理,自动检测符合特定规则(如时间间隔为15分钟)相同内容的反复请求(RSS资源,控件数据集),能实现这一功能。本地代理将轮询指派给服务器时,能自动缓存移动设备上内容(例如,代理服务器作为通信网络元件之一)。若内容变化,服务器则通知移动/客户端代理;若内容未变化(变化不充分,或改变方式或数额不明显),移动代理将其缓存的最新内容提供给用户(根本无需使用无线)。利用此方式,如果请求的内容被监控,且未标记新/更改,移动或无线设备(例如:移动电话,智能手机、M2M模块/调制解调器或其它任何无线设备等)无需打开(例如,因此打开无线电)或使用数据连接。
[0060]自动添加被监控的内容源/应用程序服务器(如包括网址/内容)的逻辑还能检查各种因素:内容一致的频率,提出相同请求的频率(是否存在固定的时间间隔/模式?),请求数据的应用程序等。本地代理和/或服务器也可实施和执行类似规则,确定是使用缓存还是向原始资源请求数据。
[0061]例如,请求在未预定/非预期时间提出(用户启动的检查),或连续几次在缓存已提出响应后,亦或应用程序处于后台运行或前台的频繁互动模式。随着越来越多移动应用程序或无线启用应用程序的特征以其在网络中的可用资源为基础,这也显得愈发重要。此夕卜,所公开的技术可以消除不必要的网络对话,使试图最优化无线频谱应用的运营商从中受益。
_2] 非缓存内容的智能缓存管理
[0063]通过检测内容源或应用程序服务器(其可被标识符,诸如URI或URL所识别)的请求的速率和类型,结合确定移动设备(例如,背光灯是否打开或关闭)或者用户的状态信息,分布式代理系统(例如,本地代理(例如,图1A-B的移动设备150上)和/或代理服务器(例如,图1A-B的主机服务器100上))可以,例如,确定被自动更新、以编程方式更新的内容与在前台由用户请求的内容之间的差异。使用此信息,随着例如TCP连接、可用的带宽、网络拥塞/失败的信息和/或往返时间(RTT)、目前的无线电覆盖统计的网络条件的延迟,分布式代理系统可确定以及何时在移动设备上(例如,任何无线设备)本地地缓存内容(在图1A中所示的例子中的本地缓存器185中)以满足未来的内容请求。如果内容已经被缓存,则之后被缓存的版本可以被呈现给用户。如果没有,该请求被通过移动网络传递给内容服务器/主机(例如,图1A-1B的应用程序服务器/内容提供商110)以及新鲜检索的内容可以呈现给移动设备(如图1A-1B的移动设备150)上的请求客户端/移动设备应用程序。
[0064]为了保护用户体验(或用户感知),公开的分布式代理系统可以判断并利用“应用程序的关键性”作为一个因素。例如,财务应用程序可能会被认为是时间上具有关键性以使得这些应用程序请求不会被缓存,而是要通过无线宽带或移动网络来检索当前数据。按名称或类型的应用程序,可以被认为在配置时间的关键性或由随时间推移的用户交互的可编程的观察所确定。也就是说,分布式代理系统的服务器端组件(例如,图1A-1B的主机服务器100)可配置为“配置文件”,其指示应用和/或其他应用程序或用户信息的关键性。此配置文件可以在轮询请求的初始化期间或随后的建立期间被传达到代理系统的设备端组件(例如,图1B的本地代理175)。
[0065]一组标准(例如,包括应用程序配置文件信息)可以被应用到内容源/应用程序服务器(例如,每一个相关的资源或资源标识符)以为缓存(大小等)确定相关内容的适合度。配置文件可以进一步用于标识缓存通常不被适用的应用程序,如谷歌市场。此外,由与内容源/应用程序服务器相关联的特定标识符(例如,资源标识符的资源)标识的每个请求的模式(例如,周期性或时间间隔)可以被分布式系统监测以使得轮询行为被确定,并且相应的内容被缓存。
[0066]当来自内容源/应用程序服务器的内容已被标识为适合于缓存,消息可以被发送到公开的代理系统的服务器端组件以要求与内容源/应用程序服务器相关联的内容被监测变化。当服务器检测到内容已被改变时,无论是何缓存元素被与该URI相关联,服务器发送消息到设备端组件指示它为无效。
[0067]在某些情况下,移动设备的内存使用参数(例如,由运营商配置所描述的)被考虑为缓存时的重要因素。因此,公开的分布式代理的客户端组件将通常不使用超过指定百分比的缓存条目的可用内存空间(例如,就像由设备制造商、操作系统、应用程序等所指定的)。除了总的内存使用情况,分布式代理的客户端组件可以实现对跨多个应用程序存储的缓存条目总数或对每个应用程序基础的配置限制。
[0068]存储在移动设备(例如,任何无线设备)上的缓存条目可以由所确定的分布式代理的客户端组件自动移除,例如,通过可配置的参数(例如,通过用户,基于应用程序-需要、网络服务提供商的要求、操作系统要求等)。此外,缓存元素可能会被删除以保留符合磁盘使用或条目计数限制。在某些情况下,客户端组件可以导致整个缓存存储失效、服务器端的代理变得不可用。在一个实施例中,分布式代理系统的客户端组件可以将缓存的内容进行加密。
_9] “缓存击败”应用程序的识别和检测
[0070]对于某些应用程序,缓存可能不适合根据内容的类型、内容的性质、或者用户体验可能会受到影响,例如,具有时间敏感数据的应用程序(例如,金融股票信息),其中内容变化频繁并且对用户可能是时间上具有关键性。为了实现这一点,所公开的系统可以,例如,保持“缓存击败”客户端和应用程序列表以进一步除了。由来自该列表的应用程序所产生的HTTP流量可以被检查为已知的“缓存击败”模式(见下文)。
[0071]交通和未确认的申请,未被识别作为缓存击败和来自其它应用程序的流量的流量和应用程序可被超出“缓存击败”管理程序的范围进行处理。例如,如果他们采用缓存击败URIs,则没有缓存将被执行。在一个实施例中,决定是否对定向到给定内容源(例如,应用程序服务器和/或内容提供商)的给定请求采用缓存,与请求相关联的标识符(例如,URI或URL)可以处理和分析:(a)确定发送产生流量的请求的移动客户端或移动应用程序和/或(b)确定请求被定向至的内容源是否试图通过各种缓存-击败机制击败缓存。
[0072]处理“缓存击败”标识符(URIs/URLs)
[0073]每个处理的应用程序都有一个配置文件,其可以被客户端/设备端代理使用以处理应用程序生成的URI或其他数据。所公开的技术识别具有“击败缓存"URI的关键应用程序的标识符(例如,URI)格式或其他类型的标识符(例如,那些在缓存击败列表上的)。这是通过将输入的URI转换成“标准化”URI并与现有的缓存条目进行比较来完成的。
[0074]大部分缓存击败采用不断变化的数字或参数附在或包含在标识符(URI/URL)中的架构。“标准化”的URI是指标识符(URI/URL),其中这个数字被删除或以其他方式被修改以消除标识符散列值的URI的效果。现有的缓存条目使用“标准化”的URI作为关键(例如,通过查找表)被存储和访问。如果URI内容/响应已经被缓存并且服务器端代理为内容更改/更新正监控它,则之后代理(例如,包括本地代理设备/客户端和/或服务器端的代理服务器)使用存储在本地缓存中的数据(例如,在移动设备上的本地被)作出决定以确定响应是否可以被作出。该决定是基于应用程序的当前后台/前台的现状及应用程序类别(如下文所述)。
[0075]如果URI没有被缓存,那么此HTTP请求可以被常规的HTTP程序进行处理。在是否在这一点上缓存内容的问题上,响应可以被读取并且决定可以被作出。决定可以基于任何适合的标准,例如响应于多个请求被返回的相同的内容,但也可以基于更复杂的分析(如通过使用应用程序配置文件而基于应用程序特征,应用程序配置文件可能随着时间发展和/或动态的一般基于各种条件)。如果该内容被缓存,到代理服务器的请求被用于设置对应用程序服务器/内容主机的内容变化的监测以确保新鲜的内容,或接近新鲜的内容,其通过分布式代理提供给用户和/或运营商。这一要求的部分可能包括原始的、非标准化的UR1、轮询频率、生存时间信息。
[0076]服务器使用所提供的URI作出请求,并且缓存该内容以及在这个URI后面的内容的独特度量以用于未来比较。使用检测到的轮询时间表(如下文所述)服务器作出设备是否需要更新新的内容的决定。
[0077]轮询时间表
[0078]检测(或确定)轮询时间表允许代理服务器(分布式缓存系统的服务器端)尽可能使其轮询接近应用程序轮询。许多应用程序使用预定的时间间隔轮询(例如,每4小时或每30秒,在其他时间间隔)。客户端代理可以基于时间测量检测自动轮询并且为应用程序创建一个自动轮询配置文件。作为一个例子,本地代理尝试检测请求之间的时间间隔和在2、3、4或更多的轮询之后的间隔,如果所有时间间隔各自都在I秒(或相对接近的另一测量)内,则确定一自动的速率。如果没有的话,客户端可从更大数量的轮询事件(例如,10-12个轮询)中收集数据并且应用统计分析以确定、计算或估计所使用的平均时间间隔的值。轮询配置文件传递到其被使用的服务器。如果它是一个频繁地手动请求,本地代理可以为这个应用程序用默认的时间间隔替代它,这个应用程序来自非关键性应用程序的配置文件。
[0079]在一些实施方案中,本地代理(例如,设备端代理)可能保持监控应用程序/客户端轮询并更新轮询间隔。如果其从当前值变化了 30%以上(或另一个预定/动态/条件值),则它被传递到代理服务器(例如,服务器端代理)。这种方法可以称为“失去兴趣”的情况。在某些情况下,本地代理只能识别时间表之外作出的请求,认为他们是“手动的”,并相应地处理它们。
[0080]应用程序类别/缓存模式[0081 ] 在一些实施例中,应用程序可以被分成三组或缓存模式。取决于一个或多个条件,每个移动客户端/应用程序可以被分类为以其中的一种模式进行处理,或使用多个模式进行处理处理。
[0082]A)完全缓存-本地代理仅在代理服务器告诉本地代理更新时进行更新(例如,通过网络直接发送应用程序请求以由应用程序服务器/内容主机服务)。在这种模式中,本地代理可以忽略手动请求并且代理服务器使用检测到的自动配置文件(例如,体育比分的小程序、Facebook,每10、15、30或更多轮询)轮询应用程序服务器/内容提供商。
[0083]B)部分缓存-本地代理为自动请求或其他预定的请求使用本地或内部缓存(例如,应用程序自动刷新),但通过一些手工请求(例如,电子邮件下载、EBay或一些Facebook请求);以及
[0084]C)从不缓存(例如,实时股票行情、体育比分/状态,然而,在某些情况下,15分钟延迟引用可以安全地放置在30秒时间表-B乃至A)。
[0085]实际应用程序或缓存模式分类可基于内容变化率和数据关键性特征被确定。未分类的应用程序默认情况下可以设置为C类。
[0086]背光灯和活动应用程序
[0087]在一些实施例中,本地代理通过检测设备背光灯状态来启动。如果具有同一签名的请求被向代理服务器进行注册,显示屏灯“关闭”的请求可以被允许使用本地缓存,其轮询请求定向至的始发主机服务器/内容服务器。如果显示屏灯是“打开”,进一步的检测可以被作出以确定其是否是后台应用程序或者对于其它指示器,本地缓存条目可以或不可以被用于满足请求。当被识别时,本地条目可以被用于的请求可被相同地处理为显示屏灯关闭的状态。当缓存的数据可安全地用于处理请求时,前台请求可以使用上述应用程序分类以进行评估。
[0088]图1A为系统示例图,其中主机服务器100促进流量管理、内容缓存和/或在客户端(例如,移动设备、任何无线设备或客户端设备150上的客户端/应用程序)和应用程序服务器或无线网络(或宽带网络)106或108中的内容提供商110之间的资源节约,以节约资源。
[0089]客户端设备150可以为能够创建连接,包括与其他设备、服务器和/或其他系统,如主机服务器100和/或应用程序服务器/内容提供商110的有线、无线和蜂窝连接,的任意系统和/或设备,和/或设备/系统的任意组合。客户端设备150通常包括一个显示屏和/或其他输出功能,以显示设备150和/或主机服务器100和/或应用程序服务器/内容提供商110所互动的信息和数据。
[0090]例如,客户端设备150包含移动、手持或便携式、无线设备或非便携式设备和任意,但不限于:台式服务器、台式电脑、计算机集群或便携式设备,包括笔记本电脑,手提电脑,便携电脑,掌上电脑,移动电话,手机,智能手机,PDA,黑莓设备,Palm设备,手持平板电脑(如iPad或其它任何平板电脑),手持控制台,手持游戏设备或控制台,任何超级手机如iPhone,和/或任何其它便携式、移动、手持设备或固定无线接口如M2M设备,等等。一个实施例中,客户端设备150、主机服务器100和应用程序服务器110通过网络106和/或网络108,耦合在一起。一些实施例中,设备150和主机服务器100直接相连。
[0091]客户端设备150的输入机制包含触摸屏键盘(包括单点触摸,多点触摸,平面或三维手势感应等)、物理键盘、鼠标、指针、触模板,运动检测器(如包括I轴,2轴,3轴加速度计等)、光传感器、电容传感器、电阻传感器、温度传感器、接近性传感器,压电器件,设备方向探测器(例如:电子罗盘、倾斜传感器、旋转传感器、陀螺仪、加速度计)或上述装置的任
意组合。
[0092]通过如上所述的一个或多个输入机制或其他接收或检测信号,表明客户端设备150的用户活动,能用于公开的技术获取客户端设备150的上下文感知。客户端设备150的上下文感知一般包括,列举但不限于:客户端设备150活动或状态的确认、管理、用户活动/行为/互动感知、检测、传感、跟踪、趋势和/或应用程序类型(如移动应用程序)、行为、活动或运行状态等。
[0093]本申请所公开的上下文感知还包含网络端上下文数据的知识和检测,并且包括网络信息,例如:网络容量、带宽、流量、网络/连接类型,和/或任何其他操作的状态数据。网络端上下文数据可以从网络106和/或网络108(例如:主机服务器和/或设备150)的网络服务提供商处(例如:手机提供商112和/或互联网服务提供商)接收和/或查询。除从客户端150确定的应用程序上下文感知外,应用程序上下文感知也可从各自的应用程序/服务提供商处110接收或获得/查询(通过主机100和/或客户端设备150)。
[0094]主机服务器100可以使用,例如,客户端设备150、网络106/108、应用程序(如移动应用程序)、应用程序服务器/提供商110或上述任意组合所获取的上下文信息,管理系统流量,满足客户端设备150的数据要求(例如,满足应用程序或其他请求,包括HTTP请求)。一个实施例中,主机服务器100管理流量,满足所作出的数据请求,以响应显名或隐名用户103的请求和/或设备/应用程序的维护任务。管理流量能节约网络消耗,例如蜂窝网络,保证高效的带宽利用率。此外,主机服务器100能在最优化性能和用户体验的同时,管理和协调系统流量,秉承节约资源的总思路,最优化使用设备端150的资源(例如:包括但不限于:电池消耗电量、使用的无线、使用的处理器/内存)。
[0095]例如,在节约电池方面,设备150能观察用户活动(例如,通过一个或多个输入机制观察用户的按键、背光状态或其他信号等),并且更改设备150的行为。基于用户活动或行为,设备150还可请求主机服务器100改变行为,降低消耗的网络资源。
[0096]—个实施例中,利用主机服务器100和客户端设备150之间的分布式系统执行流量管理,以节约资源。分布式系统能包含服务器端100和设备/客户端的代理服务器和缓存组件,如服务器端100的缓存服务器135和客户端150的本地缓存185所示。
[0097]本申请所公开上下文感知流量管理的功能与技术,节约网络(例如:网络106和/或108)和设备150的资源,放置于分布式代理和缓存系统。代理和缓存系统能部分或全部分布,并放置于给定的客户端设备150,和/或主机服务器100。分布式代理和缓存系统,将在如图1B所示的示例图作进一步描述。客户端设备150、主机服务器100和本申请中所述的相关组件中的代理和缓存部件执行该功能与技术,进一步详细描述分别参考示例图2-3。
[0098]一个实施例中,客户端设备150与主机服务器100和/或应用程序服务器110通过网络106,可以为蜂窝网络和/或宽带网络,进行通信。为促进设备150和各应用程序服务器/内容提供商110的总体流量管理,以执行网络(带宽利用率)和设备资源(如电池消耗),主机服务器100可以与应用程序服务器/提供商110通过网络108,包含互联网(例如,宽带网络),进行通信。[0099]一般来说,客户端设备150与主机服务器100和/或应用程序服务器110通过网络106和/或108进行通信,网络可以为蜂窝网络、宽带网络、电话网络、开放网络,如互联网、专用网络,如内联网和/或外联网、或其任意组合。例如,互联网可以通过任何已知或方便协议提供文件传输、远程登录、电子邮件、新闻、RSS、云计算服务、即时消息、可视语音邮件、推送邮件、VoIP和其他服务,协议的列举包括,但并不限于:TCP/IP协议、UDP、HTTP、DNS、文件传输协议(FTP)、UPnP, NSF、ISDN、PDH、RS232、SDH、SONET 等。
[0100]网络106和/或108可以是部分或全部运营网络的任意组合,结合后向客户端设备150和主机服务器100提供连接,对于服务的系统和设备,作为一个或多个网络。一个实施例中,开放网络,如互联网、专用网络,宽带网络,如内联网和/或外联网都能实现客户端设备150通信的发送和接收。一个实施例中,安全通信协议,如安全套接层协议层(SSL)或安全传输层协议(TLS),也能实现此类通信。
[0101]此外,一个或多个网络可以实现通信,包括但不限于:一个或多个WiMax、局域网(LAN)、无线局域网(WLAN)、个人区域网(PAN)、校园区域网(CAN)、城域网(MAN)、广域网(WAN)、无线广域网(WffAN)、或任何宽带网络并进一步由以下技术启用,例如:全球移动通信系统(GSM)、个人通信服务(PCS)、蓝牙、WiF1、固定无线数据、2G、2.5G,3G、4G,高级国际移动通信 IMT-AdvancedJIJ -4G、高级长期演进技术(LTEAdvanced)、移动 WiMax、WiMax2、WirelessMAN高级网络,增强型数据速率GSM演进技术、通用分组无线服务技术(GPRS)、增强型通用无线分组业务、iBurst、UMTS、HSPDA, HSUPA, HSPA, UMTS-TDD, lxRTT, EV-D0、消息传送协议,例如:TCP/IP、SMS、丽S、可扩展消息与存在协议(XMPP)、实时消息传送协议(RTMP)、即时信息和空间协议(MPP)、即时消息、USSD、IRC或其他无线数据网络、宽带网络或消息传送协议。
[0102]图1B为代理和缓存系统示例图,分布在主机服务器100和设备150之间,该设备促进管理设备与应用程序服务器/内容提供商(如源服务器)的网络流量,以节约资源和内容缓存。
[0103]分布式代理和缓存系统可包括,例如,服务器端组件:代理服务器125 (如远程代理)和服务器缓存135。如图所述,服务器端代理服务器125和缓存135能放置在主机服务器100内部。此外,服务器端代理服务器125和缓存135可部分或全部放置在主机服务器100外部,通过一个或多个网络106和108进行通信。例如,代理服务器125放置在主机服务器外部,而服务器缓存135保持在主机服务器100内部。亦或,代理服务器125放置在主机服务器内部,而服务器缓存135在主机服务器100外部。此外,代理服务器125和缓存135都可能部分置于主机服务器100内部,部分置于主机服务器100外部。
[0104]分布式系统也能包括,一个实施例中,客户端组件,包括列举但不限于:本地代理175 (如移动设备的移动用户)和/或本地缓存185,如图所示,能放置在设备150 (如移动设备)内部。
[0105]此外,客户端代理175和本地缓存185能部分或全部放置于设备150外部,并通过一个或多个网络106和108进行通信。例如,将本地代理175置于设备150外部,而本地缓存185保持在设备150内部。亦或,将本地代理175置于设备150内部,而本地缓存185则置于设备150外部。此外,代理175和缓存185都可能部分置于主机服务器100内部,部分置于主机服务器100外部。[0106]一个实施例中,分布式系统可以包括一个可选的缓存代理服务器199。缓存代理服务器199为一组件,由应用程序服务器/内容提供商110、主机服务器100、或网络服务提供商112,或以上任意组合,为促进网络流量管理而执行,目的在于节约网络和设备资源。代理服务器199可用于,例如,为设备150提供从一个或多个应用程序服务器/提供商110、主机服务器100,和/或网络服务提供商112的内容缓存。远程代理125也能全部或部分地执行内容缓存,以满足应用程序请求或设备150的其他数据请求。
[0107]在上下文感知流量管理和最优化中,为节约网络资源(如蜂窝或其他无线网络),本地代理175跟踪移动设备150 (例如,任何无线设备)的用户活动/行为和/或应用程序行为特征,并通过网络106与主机服务器100的代理服务器125组件进行通信,例如连接元数据。代理服务器125,依次与应用程序服务器/提供110相耦合,提供内容和数据,以满足设备150提出的请求。
[0108]此外,本地代理175能够识别和检索移动设备的属性,包含一个或多个电池电量、设备的注册网络、无线状态、移动设备使用在是否(例如,由用户互动)。一些实例中,本地代理175在传输数据给代理服务器前,一定情况下,能够延迟、加快(预取)和/或修改数据,具体情形参见示例图2和图3的相关说明。
[0109]本地数据库185能包含或耦合至本地代理175,用于本地存储数据的查询,在数据请求被转发到代理服务器125前,回应该数据请求。本地代理175通过检索存储在缓存存储器185的缓存内容,若该内容仍然有效,使用本地的缓存响应,以满足移动设备150某些应用程序的请求。
[0110]同样地,在本地代理服务器传输数据给内容源(例如:应用程序服务器/内容提供商110)之前,主机服务器100的代理服务器125可也延迟、加快或修改数据。此外,代理服务器125利用设备属性和连接元数据,生成满足移动设备150应用程序请求的规则。代理服务器125能够收集有关应用程序请求的实时流量信息,后续用于最优化与移动设备150或其他移动设备的类似连接。
[0111]一般来说,本地代理175和代理服务器125清楚移动设备上执行的多个应用程序。本地代理175通常清楚移动设备的操作系统或平台,并且可能或可能不明确设备的制造商。一些实例中,本地代理175可以选择自定义部分或全部具体设备。一些实施例中,本地代理175可能被捆绑进无线模型,防火墙,和/或路由器。
[0112]—个实施例中,主机服务器100在一些实例中,利用短消息服务中心(SMSC) 112的存储和转发功能,由网络服务提供商所提供,与设备150进行互动,实现网络流量管理。请注意112也可以使用任何其他类型的替代信道,包括USSD或其他网络控制机制。如图3示例所作的详细描述,主机服务器100将内容或HTTP响应转发给SMSCl 12,若设备150可用则自动转发,若设备150当前不可用,则后续转发。
[0113]一般来说,公开的分布式代理和缓存系统能最优化网络利用率,例如,通过回应本地缓存185的请求,本地代理175能减少需要通过网络106满足的请求数量。另外,本地代理175和代理服务器125能从通信数据中过滤无关数据。此外,为避免发送单个数据片段的协议消耗,本地代理175和代理服务器125也能累积低优先级数据,将其批量发送。本地代理175和代理服务器125还能将流量压缩或转码,减少通过网络106和/或108发送的数据量。由于网络的使用频率降低,网络流量在各应用程序间能实现同步,网络106和/或108的信令流量则会减少。
[0114]至于移动设备150的电池寿命,通过回应本地缓存185的应用程序或内容请求,本地代理175能减少无线模块的上电次数。当无线上电时,本地代理和代理服务器125能相互结合,累积低优先级的数据批量发送,以减少发送次数和/总时间。通过同时执行所有连接的批量数据传输,本地代理175能同步网络的使用。
[0115]图2A为一框图,展示了放置于设备250的分布式代理系统客户端组件,管理无线网络的流量,以节约资源、内容缓存和/或流量管理。
[0116]设备250,可以为便携式或移动设备(例如,任何无线设备),如手提电话,通常包括:网络接口 208、操作系统204、上下文API206,和感知代理210或未感知代理的移动应用程序220。需注意的是设备250指如图2具体描述的移动设备,但不限定于此,该设备250可能是能够通过网络,包括有线或无线网络(例如:WIFI,蜂窝网络,蓝牙等),接收、传输信号的任意便携式/移动或非便携式设备,以满足数据请求。
[0117]网络接口 208可以是网络模块,通过主机和外部实体支持的任何已知和/或方便协议,使设备250调解外部主机服务器250网络中实体的数据。网络接口 208能包括:一个或多个网络适配卡、无线网络接口卡(例如:短信接口、WiFi接口、移动通信各代标准的接口,包括但不限于2G、3G、3.5G、4G、LTE等)、蓝牙、或者连接是否经由路由器、接入点、无线路由器、交换机、多层交换机、协议转换器、网关、网桥、桥接路由器、集线器、数字媒体接收器和/或中继器。
[0118]设备250还能包含分布式代理和缓存系统的客户端组件,其中包括本地代理275 (如移动设备的移动客户端)和缓存285。一个实施例中,本地代理275包括用户活动模块215,代理API225,请求/事务管理器235,具有应用程序协议模块248的缓存策略管理器245,流量定型引擎255和/或连接管理器265。流量定型引擎255可以更包含校准模块256和/或批次处理模块257,连接管理器265可能会包括无线控制器266。请求/事务管理器235还能包含应用程序行为检测器236和/或优先级引擎241,其中应用程序行为检测器236还能包含模式检测器237和/或应用程序配置文件生成器239。本地代理275和所述的任一组件均可另外增加或减少组件/模块/引擎。
[0119]本申请所使用的“模块”、“管理器”、“处理程序”、“检测器”、“接口 ”、“控制器”、“规
范化器”、“生成器”、“验证器”或“引擎”包含一般用途,专用或共享处理器,和通常由处理器执行的固件或软件模块。基于具体实施或其他因素的考量,该模块、管理器、处理器、检测器、接口、控制器、规范化器、验证器或引擎,可集中或依功能分布实施。该模块、管理器、处理程序或引擎包含嵌入在计算机可读(存储)介质,具有一般或特殊用途的硬件,固件或软件,由处理器予以执行。
[0120]本申请所使用的计算机可读介质或计算机可读存储介质,包含所有法定介质(如根据美国专利法第101条),并明确排除所有非法定的介质,本质上说排除的必要范围,使得包含计算机可读(存储)介质的权利要求能成立。已知的法定计算机可读介质包含硬件(例如:寄存器,随机存储器(RAM)、非易失(NV)存储器,仅举几例),但可能或可能不限于硬件。
[0121]一个实施例中,用于管理网络流量的部分分布式代理和缓存系统放置在设备250内或与其进行通信,包含本地代理275 (移动客户端)和/或缓存285。本地代理275能为设备250提供接口,供用户访问设备的应用程序和服务,包含电子邮件、即时消息、语音信箱、可视语音邮件、源订阅、互联网、游戏、效能工具或其他应用程序等。
[0122]代理服务器275通常独立于应用程序,能被应用程序(例如,代理感知和未感知应用程序210和220或移动应用程序)用于打开至远程服务器的TCP连接(例如:图1A-1B示例中的服务器100和/或图1B和图3A示例中的代理服务器125/325)。一些实例中,本地代理275包含代理API225,可以选择用于感知代理服务器应用程序220 (或移动设备(例如任何无线设备)上的应用程序(移动应用程序))的接口。
[0123]应用程序210和220通常包含用户应用程序,控件,软件,基于HTTP的应用程序,web浏览器,视频或其他多媒体播放器或下载应用程序,视频游戏,社交网络应用程序,电子邮件客户端,RSS管理应用程序,应用商店,文档管理应用程序,生产力促进应用程序等。设备制造商或网络服务提供商能够向应用程序提供设备的操作系统,该操作程序可由用户下载或其他人提供。
[0124]本地代理275的一个实施例包含,或耦合到上下文API206。上下文API206可能为操作系统204或设备平台的一部分,亦或独立于操作系统204,如图示。操作系统204可包含任意操作系统,但不限于:以前、目前和/或未来版本/版本的Windows Mobile, iOS,Android, Symbian, Palm OS, Brew MP, Java2Micro Edition (J2ME),黑莓等。
[0125]上下文API206可能为操作系统204的插件或设备250上特定客户端应用程序。上下文API206能够检测用户的指示信号或设备活动,例如检测位置,手势,设备位置的变化,设备背光,按键,点击,触摸屏被激活,鼠标点击或检测其他指针设备。上下文API206可以耦合至设备250的输入设备或传感器来识别这些信号。此信号通常包含接收的输入信息,以响应用户在设备250输入设备/机制的明确输入,和/或收集到的环境信号/上下文线索,在设备250内或毗邻处检测得到(如光,动作,压电等)。
[0126]一个实施例中,用户活动模块215与上下文API206互动,用于识别、确定、推断、检测、计算、预测和/或预计设备250上用户活动特征。用户活动模块215汇总上下文API206收集的各输入值,生成用户活动特征的侧写。这一侧写由用户活动模块215利用各临时特征生成。例如,通过提供用户在给定时间所做之事或未做之事,瞬间生成实时的用户活动侧写(例如由时间窗口定义最后一分钟或最后30秒等);用户活动侧写也能由应用程序或网页定义的“时域”生成,“时域”描述了设备250上进行的特定任务,或在特定时间内用户行为的特征(例如前2小时或前5小时)。
[0127]此外,用户活动模块215通过描绘用户活动和行为的历史趋势(例如I周,I个月,2个月等),生成上述特征侧写。这些历史文件还可用于推断用户行为的趋势,例如:不同时间的访问频数、每周各天访问频率的趋势(周末或工作日)、基于位置数据的用户活动趋势(例如IP地址,GPS或基站协调数据)或位置数据的变化(例如基于用户位置的用户活动,或基于用户在忙碌中或在外旅行的用户活动等),以获取用户活动特征。
[0128]一个实施例中,用户活动模块215能检测和跟踪设备250上应用程序、文档、文件、窗口、图标和文件夹的用户活动。例如,当一个应用程序或窗口(如Web浏览器或任何其它类型的应用程序)被退出,关闭,最小化,最大化,打开,移至前台,或后台,播放多媒体内容时,用户活动模块215都能检测到。
[0129]一个实施例中,设备250上的用户活动特征可以用于本地调整设备行为(如移动设备或任何无线设备),最优化消耗资源,如电池/功率消耗和更普遍地,包含内存、存储和处理能力的其他设备资源的消耗。一个实施例中,基于耦合到用户活动模块215的用户行为特征,可调整设备使用的无线(如通过连接管理器265的无线控制器266)。例如,根据设备250上的用户活动特征,无线控制器266打开或关闭无线。此外,无线控制器266能依据用户活动特征,调整无线的功耗模式(如高功耗模式或低功耗模式)。
[0130]一个实施例中,设备250的用户活动特征也可用于引发其他与设备250存在通信(如通过蜂窝网络或其他网络)的设备(例如其他计算机、移动设备、无线设备或非便携式设备)或服务器(例如图1A-B和图3A示例的主机服务器100和300),修改其与设备250的通信频率。利用用户活动模块确定的用户行为特征信息,本地代理275能指示远程设备如何校准其通信频率(例如,若用户处于闲置状态,降低通信频率,如数据推送频率,或当新数据、更改数据或某重要性的数据可用时,请求远程设备通知设备250等)。
[0131]在一个实施例中,用户活动模块215能确定用户行动的特征,作为响应确定用户行为特征,指示用户在闲置一段时间后的活跃,请求远程设备发送因之前降低通信频率的缓冲数据(例如图1A-B和图3A示例的主机服务器100和300)。
[0132]此外,或本地代理275可另外选择将设备250的用户活动特征传输给远程设备(例如图1A-B和图3A示例的主机服务器100和300),并且远程设备确定改变与设备250的通信频率,以节约网络资源和设备250资源。
[0133]实施例之一的本地代理275还包含请求/事务管理器235,能检测、识别、截获、处理和管理设备250提出的数据请求,例如通过应用程序210和/或220,和/或直接/间接的用户请求。基于事务特征,请求/事务管理器235能够确定处理给定的请求/事务或一组请求/事务的方式和时间。
[0134]请求/事务管理器235能对设备250上应用程序和/或用户作出的请求或事务进行优先级排序,例如通过优先级引擎241。该请求/事务管理器235通过使用规则集,确定请求/事务的重要性或优先级,例如,根据事务的时间敏感性、事务内容的时间敏感性、事务的时间紧迫性,事务中传输数据的时间紧迫性,和/或应用程序发出请求的时间紧迫性/
重要性。
[0135]此外,事务特征也取决于该事务是否为用户互动或其他用户在设备上启动的操作(例如用户与应用程序(例如,移动应用程序)的互动)。一般来说,一项时间紧迫性事务包含一项由用户启动的数据传输事务,能被列为优先事务。事务特征还取决于根据所请求的事务中将传输或预计传输的数据量。例如,跟据需传输的数据量,连接管理器265调整无线模式(例如通过无线控制器266调整高功耗或低功耗模式)。
[0136]此外,无线控制器266/连接管理器265能依据事务的时间紧迫性/敏感性,调整无线的功耗模式(高或低)。当启动或检测到一项时间紧迫性事务时,无线控制器266触发使用高功耗无线模式(例如:由用户启动的数据传输事务,前台运行的应用程序,或符合特定条件的其他事件)。
[0137]一般来说,优先级通常为默认设置,例如,基于设备平台、设备制造商、操作系统等。优先级也能,或由特定的应用程序另外设置,例如,Facebook应用程序(例如,移动应用程序)为自己设置各项事务的优先级(例如,状态更新的优先级高于添加朋友请求或戳请求,发送消息请求的优先级高于删除消息请求),电子邮件客户端或IM聊天客户端有自己的优先级配置。优先级引擎241可能包含分配优先级的规则集。
[0138]优先级引擎241还可以跟踪网络提供商对应用程序或事务优先级确定请求/事务整体优先性状态的限制条件或详细说明。此外,优先级部分或全部,明确或隐含地取决于用户的喜好。用户一般能设置不同层次的优先级,例如为各时域、类型或应用程序设置具体的优先级(以浏览时域、游戏时域和IM聊天时域为例,用户可能设置游戏时域优先于IM聊天,而IM聊天的优先于浏览时域)。用户能设置应用程序的具体优先级(例如用户可设置Facebook的相关事务优先于LinkedIn的相关事务)、事务类型的具体优先级(例如所有应用程序的发送信息请求优先于删除信息请求,所有日程相关的事务具有优先级等),和/或文件夹的具体优先级。
[0139]优先级引擎241跟踪和解决不同实体优先级设置的冲突。例如,用户具体的手动设置可能优先于设备操作系统设置,网络提供商参数/限制条件(例如,默认设置的网络服务领域,地理区域,具体时间或基于服务/费用类型的设置)可能会限制用户的具体设置和/或应用程序设置的优先级。一些实例中,用户的同步手动请求能优先于一些、大多数或全部的优先级设置,一经提出,该同步请求的执行不受单独分配的优先级或请求操作在所有优先级事务中的排序限制。
[0140]优先级能以任何已知和/或简便方式在内部被指定并跟踪,包含但不限于:二进制表示形式,多值表示形式或分级表示形式,所有被认为的都在公开技术的范围内。
[0141]
【权利要求】
1.一种移动设备上缓存管理的方法,所述方法包括: 使用有关请求或为请求接收的响应信息,所述请求在所述移动设备启动,确定所述响应的缓存性能; 回应确定所述响应的所述缓存性能,在所述移动设备上的缓存中,本地地存储所述响应; 从所述缓存提供所述响应以满足后续请求。
2.如权利要求1所述的方法,其中,所述缓存在移动设备开启/关闭事件时被保存。
3.如权利要求1所述的方法,进一步包括,收集有关所述请求的信息或有关所述响应的信息。
4.如权利要求1所述的方法,其中,所述信息包括关联于所述请求的请求特征信息或关联于为所述请求所接收的所述响应的响应特征信息。
5.如权利要求3所述的方法,其中,所述请求特征信息包括请求方法或请求大小。
6.如权利要求3所述的方法,其中,所述请求特征信息包括所述请求和由所述移动设备上的相同客户端生成的其他请求之间的周期性信息。
7.如权利要求6所述的方法,其中,当所述请求和由所述相同客户端生成的所述其他请求,以固定速率或接近固定速率发生时,周期性被检测。
8.如权利要求1所述的方法,其中,如果所述关于所述请求的信息指示所述请求的主体大小未超过一定的大小,则缓存性能可被确定。`
9.如权利要求1所述的方法,其中,如果所述关于所述请求的信息指示所述请求是GET请求或POST请求,则缓存性能可被确定。
10.如权利要求3所述的方法,其中,所述响应特征的信息包括传输编码或块传输编码用于发送所述响应的指示。
11.如权利要求1所述的方法,其中,当传输编码不在发送所述响应中使用时,缓存性能可被确定。
12.如权利要求3所述的方法,其中,所述响应特征信息包括所述响应的相关联的状态代码。
13.如权利要求1所述的方法,其中,如果所述关于所述响应的信息不指示不可缓存状态代码,缓存性能可被确定。
14.如权利要求3所述的方法,其中,所述响应特征信息指示响应的大小;其中,如果所述响的大小不超过给定的大小,缓存性能可被确定。
15.如权利要求3所述的方法,其中,所述响应特征信息包括所述请求的所述响应和由所述移动设备上的相同的客户端所生成的其他请求的其它响应的响应主体信息。
16.如权利要求15所述的方法,其中,所述响应和所述其他响应的所述响应主体信息被比较以阻止动态内容的缓存。
17.如权利要求15所述的方法,其中,如果能够确定在响应主体的反应和其他反应的信息是相同的或基本相同的,缓存性能可被确定。
18.如权利要求1所述的方法,进一步包括,验证所述请求不是定向至列入黑名单的目的地。
19.如权利要求18所述的方法,其中,一个或多个列入黑名单的目的地被存储在所述移动设备上的所述缓存中。
20.如权利要求19所述的方法,其中,一个或多个列入黑名单的目的地被地址标识符识别,所述地址标识符包括特定的URIs或包括URI模式的标识符的模式。
21.如权利要求1所述的方法,其中,所述响应被作为缓存条目存储在所述缓存中,除了响应,包括具有有关所述响应缓存附加信息的元数据。
22.如权利要求21所述的方法,其中,所述元数据被用于确定被作为缓存条目存储的所述响应是否被用于满足所述后续响应。
23.如权利要求21所述的方法,其中,所述响应被提供以识别所述后续请求的匹配缓存条目,所述后续请求至少部分使用所述元数据确定。
24.如权利要求21所述的方法,其中,所述元数据包括时序数据,所述时序数据包括所述缓存条目的访问时间或所述缓存条目的创建时间。
25.如权利要求1所述的方法,进一步包括,验证存储在所述缓存中的所述响应是否需要被更新。
26.如权利要求25所述的方法,其中,无效存储在所述移动设备的所述缓存中的所述响应并从所述移动设备的所述缓存移除所述响应。
27.如权利要求25所述的方法,其中,通过轮询代表所述移动设备的所述请求定向至的主机服务器,所述响应被周期性地验证。
28.如权利要求27所述的方法,其中,所述主机服务器被以在所述移动设备确定的速率轮询;其中,所述速率通过使用为所述响应被缓存的所述请求收集的请求信息被确定。
29.如权利要求28所述的方法,其中,所述速率由生成所述请求的所述相同的客户端所生成的之前的请求间的时间间隔平均值而被确定。
30.如权利要求25所述的方法,其中,所述验证由物理上不同于所述移动设备的实体执行。
31.如权利要求30所述的方法,其中,所述实体是耦合至所述移动设备的代理服务器并能够与所述移动设备进行无线通信;其中,基于由生成所述请求的所述相同的客户端生成的之前的请求之间的时序间隔,所述代理服务器以在所述移动设备被确定的速率,轮询所述请求被定向至的主机服务器。
32.一种机器可读存储介质具有存储在其上的指令,当所述指令被处理器执行时引起所述处理器执行确定为移动设备的客户端所接收的内容的缓存性能的方法,所述方法包含: 跟踪由所述移动设备的所述客户端生成的请求,以检测有所述客户端生成的所述请求的周期性; 跟踪为由所述客户端生成的请求所接收的响应,以检测所述响应的内容中的重复性; 基于一个或多个的所述请求中的所述周期性和所述响应的所述内容中的所述重复性,确定为所述客户端所接收的内容是否被缓存在所述移动设备上。
33.如权利要求32所述的方法,其中,所述周期性被进一步由至少两个所述移动设备上的所述客户端生成的所述请求的所述时序中的可预测的模式所指示。
34.如权利要求32所述的方法,其中,所述重复性被进一步由至少两个所述响应的所述内容中的相似性所指示。
35.如权利要求32所述的方法,其中,通过检查为所述客户端接收的所述响应的响应主体的哈希值,所述响应中的所述重复性被检测。
36.如权利要求32所述的方法,其中,通过检查与所述响应相关联的状态代码,所述响应中的所述重复性被检测。
37.如权利要求32所述的方法,其中,所述请求的所述跟踪包括两个或更多的请求的跟踪,以及当在所述两个或更多的请求之间的请求间隔大体上相同时,周期性被确定。
38.如权利要求37所述的方法,其中,当所述请求间隔落入公差等级时,所述请求间隔大体上相同。
39.如权利要求32所述的方法,进一步包括,基于所述客户端生成的所述请求的请求方法和请求大小,进一步确定所述内容的缓存性能。
40.如权利要求32所述的方法,进一步包括,基于所述客户端的所述响应是否理由传输编码,进一步确定所述内容的缓存性能。
41.如权利要求32所述的方法,进一步包括,基于为所述客户端接收的所述响应的响应方法和响应大小,进一步确定所述内容的缓存性能。
42.如权利要求32所述的方法,进一步包括,基于与所述客户端的所述响应相关联的状态代码,进一步确定所述内容的缓存性能;其中,与不可缓存的状态代码相关联的内容被确定为不可缓存。
43.如权利要求32所述的方法,进一步包括,如果所述客户端或所述请求中的编址的标识符是被列入黑名单的,即时周期性或重复性被检测到,确定为所述客户端接收的所述内容为非可缓存的。
44.如权利要求32所述的方法,进一步包括,当被确定为可缓存时,将为所述客户端接收的所述内容存储在所述移动设备上的缓存中;其中,所述缓存在客户端重启或刷新之间被保存。
45.如权利要求32所述的方法,其中,所述客户端是移动应用程序或移动网络浏览器。
46.一种从移动设备上的主机服务器接收的内容的缓存的系统,所述系统包括: 基于请求的时序特征和为所述请求接收的响应的内容中的相似性,用于确定从所述主机服务器接收到的内容在所述移动设备上是可缓存的装置; 用于存储所述响应作为所述移动设备的本地缓存中的缓存条目的装置; 用于检测被定向至所述主机服务器的后续请求的装置; 用于设备来自所述本地缓存的缓存条目以满足所述后续请求的装置。
47.如权利要求46所述的系统,其中,基于与所述后续请求相关联的资源标识符,所述后续请求被检测以被定向至所述主机服务器。
48.如权利要求46所述的系统,进一步包括,用于在所述本地缓存中执行缓存查找,以识别被在响应所述后续请求中使用的所述缓存条目的装置。
49.如权利要求48所述的系统,其中,所述缓存条目被存储在与所述资源标识符相关联的所述本地缓存中,所述资源标识符编址所述主机服务器;其中,所述缓存查找通过询问在所述本地缓存中的所述资源标识符执行。
50.如权利要求49所述的系统,其中,当所有的资源标识符部分匹配时,缓存命中被检测。
51.如权利要求49所述的系统,其中,当指定任意参数不匹配时,缓存命中被检测。
52.一种移动设备在无线网络中缓存的分布式管理的方法,所述方法包括: 跟踪由客户端生成的或被定向至移动设备的给定主机的请求以检测所述请求的周期性; 其中当在所述两个或更多的请求之间的请求间隔大体上相同或落入公差等级内时,周期性被检测; 缓存,在所述移动设备上,响应作为所述移动设备的缓存中的缓存条目,所述响应为周期性被检测的所述请求所接收; 其中,所述给定主机被以一速率监测以验证所述请求的所述缓存条目的相关性或有效性,所述速率由请求间隔确定,其中,如果由所述客户端生成的后续请求具有不同的请求间隔,所述速率被更新为不同速率。
53.如权利要求52所述的方法,其中所述速率和所述不同速率被在所述移动设备确定。
54.如权利要求53所述的方法,其中所述速率和所述不同速率被通过蜂窝网络传播至远程代理,用于所述远程代理检测所述给定主机。
55.一种移动设备上的缓存管理方法,所述方法包括: 收集关于请求的信息或关于为所述请求所接收的所述响应的信息,所述请求被在所述移动设备启动;` 使用所述关于所述请求或所述响应的信息,确定所述响应的缓存性; 响应于确定所述响应的所述缓存性,通过存储所述响应为在所述移动设备上的缓存中的缓存条目,缓存所述响应; 其中在所述缓存条目中的所述响应由物理上与所述移动设备分开的实体所验证,以确定存储在所述本地缓存中的所述响应是否仍匹配发送所述响应的源的目前的响应。
【文档编号】H04L29/06GK103620576SQ201180063778
【公开日】2014年3月5日 申请日期:2011年10月14日 优先权日:2010年11月1日
【发明者】迈克尔·卢娜, 安德烈·岑巴柳克 申请人:七网络公司