CN106664254A - 优化移动网络中的网络流量管理 - Google Patents

优化移动网络中的网络流量管理 Download PDF

Info

Publication number
CN106664254A
CN106664254A CN201580043920.4A CN201580043920A CN106664254A CN 106664254 A CN106664254 A CN 106664254A CN 201580043920 A CN201580043920 A CN 201580043920A CN 106664254 A CN106664254 A CN 106664254A
Authority
CN
China
Prior art keywords
request
network
server
application
mobile device
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.)
Pending
Application number
CN201580043920.4A
Other languages
English (en)
Inventor
阿里·贝克汉姆
杰夫·卡尔森
李元康
帕罗·卡尔拉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seven Networks LLC
Original Assignee
Seven Networks LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seven Networks LLC filed Critical Seven Networks LLC
Publication of CN106664254A publication Critical patent/CN106664254A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • H04W52/0274Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by switching on or off the equipment or parts thereof
    • H04W52/0277Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by switching on or off the equipment or parts thereof according to available power supply, e.g. switching off when a low battery condition is detected
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本公开的技术包括用于优化移动网络中的网络流量管理的系统和方法。一种方法包括确定在移动设备上执行的移动应用是否与需要相应无线电连接的网络信号相关联。过滤由事务引起的网络信号的至少一部分。过滤的网络信号不引起相应的无线电连接。计算指示作为过滤的结果节省的无线电连接的总数的信号效率。

Description

优化移动网络中的网络流量管理
相关交叉引用
本申请要求于2014年8月21日提交的题为“基于经过的时间在移动网络中建模网络信号”的美国临时专利申请62/040,260的权益,其全部内容通过引用并入本文。
技术领域
本发明涉及在移动网络中建模网络信号,更具体地,涉及优化移动网络中的网络流量管理。
背景技术
为了解决移动网络拥塞,理想的是能够在特定拥塞区域中的设备上实施网络管理策略或校正动作。不幸的是,校正动作当前被无差别地应用于设备。这提出了挑战,因为不加区别地应用校正动作可以消极地影响终端用户体验。
因此,需要对一移动网络中的网络信号进行建模,以便在拥塞区域中更精确地应用校正动作。
发明内容
根据本发明的一个实施例,一种方法包括确定在移动设备上执行的移动应用是否与需要相应无线电连接的网络信号相关联。过滤由事务引起的网络信号的至少一部分。被过滤的网络信号不引起相应的无线电连接。计算信号效率,该信号效率指示作为过滤的结果而节约的无线电连接的总数。
系统包括移动网络优化模块,其被配置为:确定在移动设备上执行的移动应用是否与需要相应无线电连接的网络信号相关联,过滤由所述事务引起的网络信号的至少一部分,其中被过滤的所述网络信号不引起相应的无线电连接; 信号效率模块,被配置为计算指示作为所述过滤的结果而节约的无线电连接的总数的信号效率。
附图说明
图1A示出了系统的示例图,其中用于资源保护的无线网络(或宽带网络)中的主机服务器促进在移动设备(例如,无线设备),应用服务器或内容提供商,或如广告服务器的其他器服务器,促销内容服务器,或电子优惠券服务器之间的流量,内容缓存和/或资源保护的管理。
图1A-1示出了一示出分布式网络优化系统的一般架构概述的示例图。
图1B示出了一分布在主机服务器和设备之间的用于资源保护和内容缓存的代理和缓存系统的示例图,其促进设备,应用服务器或内容提供商,或诸如广告服务器的其他服务器,促销内容服务器,或电子优惠券服务器之间的网络流量管理。
图1C示出了分布式代理和缓存系统的逻辑架构的一示例图。
图1D示出了示出分布式代理和缓存系统中的客户端组件的架构的示例图。
图1E示出了分布式代理和缓存系统的服务器端组件的示例图。
图1F示出了示出分布式代理和缓存系统中的示例客户端组件之间的数据流的示例图。
图2A描绘了示出驻留在移动设备(例如,无线设备)上的分布式代理和缓存系统中的客户端组件的示例的一框图,其管理无线网络(或宽带网络)中的流量,用于资源保护,内容缓存,和/或流量管理。客户端代理(或本地代理)可以进一步基于应用行为,内容优先级,用户活动,和/或用户期望对移动流量进行分类和/或实施投递策略,例如,以进一步用于促进对齐数据传输以优化在移动设备处建立的连接。
图2B描绘了说明图2A的示例中所示的缓存系统中的组件的另一示例的框图。其能够缓存和适配用于移动应用行为和/或网络条件的缓存策略。还示出了能够检测长轮询请求和管理长轮询的缓存的组件。
图2C描绘了示出在图2A的示例中所示的缓存系统中的应用行为检测器和缓存策略管理器中的附加组件的框图。其还能够检测缓存失败并执行由指向失败的缓存的标识符寻址的内容的缓存。
图2D描绘了示出在图2A的示例中所示的本地缓存中的附加组件的示例的框图,其还能够基于应用行为和/或用户活动来执行移动流量的分类和策略的实现。
图2E描绘了示出图2A的示例中所示的流量整形引擎和应用行为检测器中的附加组件的示例的框图,其还能够促进传输至移动或宽带设备,或其他用户的输入数据的对齐,以优化需要建立的用于通过无线网络或宽带网络接收数据的连接的数量。
图3A描绘了示出为了资源保护,内容缓存,和/或流量管理而管理在无线网络(或宽带网络)中的流量的分布式代理和缓存系统中的服务器端组件的示例的框图。服务器端代理(或代理服务器)可以进一步基于应用行为,内容优先级,用户活动,和/或用户期望对移动流量进行分类和/或实施投递策略,例如,以进一步用于对齐数据传输以优化为到移动设备的无线传输而建立的连接。
图3B描绘了示出在图3A的示例中所示的缓存系统中的缓存策略管理器中的组件的另一示例的框图,其能够缓存和适配用于移动应用行为和/或网络条件的缓存策略。还示出了能够检测长轮询请求和管理长轮询的缓存的组件。
图3C描绘了示出在图3A的示例中示出的代理系统中的组件的另一示例的框图,其还能够管理和检测缓存失败机制并且监视内容源。
图3D描绘了示出在图3A的示例中示出的代理服务器中的附加组件的示例的框图,其还能够基于应用行为和/或流量优先级来执行移动流量的分类和策略的实现。
图3E描绘了示出图3A的示例的流量整形引擎中的附加组件的示例的框图,其还能够对齐数据传输到移动或宽带设备,或其他接收者,以优化为在无线网络或宽带网络中传输而建立的连接。
图4描绘了示出用于移动设备(例如,任何无线设备)和远程代理之间的分布式内容缓存和内容缓存的分布式管理的示例过程的流程图。
图5描绘了示出由移动设备(例如,任何无线设备)到无线网络(或宽带网络)中的应用服务器/内容提供商的数据请求如何通过分布式代理系统协调,以使得通过使用由分布式代理系统执行的内容缓存和监视来节约网络和电池资源。
图6描绘了示出可以在实现网络访问和内容投递策略中使用的不同流量或应用类别类型的示例的表格。
图7描绘了示出可以在实现网络访问和内容投递策略中使用的不同内容类别类型的示例的表格。
图8描绘了示出具有通过无线网络(或宽带网络)从移动设备(例如,任何无线设备)到应用服务器/内容提供商的数据请求的轮询可以如何被缓存在本地代理上并且由分布式缓存系统管理的交互图。
图9描绘了示出用于对移动网络中的移动设备(例如,任何无线设备)的信号进行建模的示例过程的流程图。
图10描绘了示出用于对移动网络中的移动设备(例如,任何无线设备)的信号进行建模的示例过程的另一流程图。
图11A- 图16D描绘了用于确定一般连接和时间计算的日志/报告数据字段示例的计算。
图17A和17B分别示出了计算连接标志和连接时间间隔的示例以及无线电开启间隔的示例。
图18描绘了示出一段时间内的日志的示例图。
图19A和19B分别图示出了用于将一个网络日志项分成两个网络日志项的长轮询过程以及为了将该网络日志划分为两部分所必须成立的条件。
图20和21分别图示了TIME_ON_NOT_CHARGING字段的计算和TIME_ON_NOT_CHARGING字段的示例。
图22描绘了示例测量点,日志/报告数据分析核心模块可以从该示例测量点执行用于对数据网络中的信号建模的测量。
图23A-23E分别描绘了可以在日志/报告数据分析核心模块的各种实施例中使用的输出指标的说明。
图24A-24J图形地示出了可以在日志/报告数据分析核心模块的实施例中使用的输出指标的示例的各种计算。
图25描绘了示出包括测量点的分布式网络优化系统的一般结构概观的示例图,日志/报告数据分析核心模块可以从该测量点执行用于对数据网络中的信号建模的测量。
图26A-26N示出了日志/报告数据分析核心模块可以适配的附加的和/或备选的输出指标的示例。
图27示出了计算机系统的示例形式的机器的图示,其可以执行用于使机器执行本文所讨论的方法中的任何一个或多个的一组指令。
图28示出了有效电流消耗和作为样本WCDMA测试运行的总时间的一部分的连接时间之间的关系。
图29示出与图28相同的数据,但是根据包括具有优化和无优化的一结果对来评估。
图30示出了斜率(β)与反映不同优化量的SbS运行的TC优化(总体α)的一交叉图。
图31示出了开销与根据本文描述的主题的实施例的α的一交叉图。
图32示出了在与图30中所使用的相同的图形表示的由无优化与优化产生的斜率的曲线图。
具体实施例
下面的描述和附图是说明性的,而不应被解释为限制性的。许多具体细节被描述用于对本公开内容的通篇理解。然而在某些情况下为避免模糊描述,对公认或常规的细节不做描述。在本公开内容中,对某一实施方式或一个实施方式的引用可以是但不一定是对同一实施方式的引用;并且这类引用意味着至少一个实施方式。
在本说明书中对“某一实施方式”或“一个实施方式”的引用,意味着被描述为与该实施方式相关的一个特定的特性、结构或特性被包括在本公开内容中的至少一个实施方式之中。在本说明中各个地方的“在一个实施方式中”这一短语的出现,不一定全部指同一实施方式,也不是与其它实施方式相互排斥的单独或替代实施方式。此外,也描述了可以通过一些实施方式而不可通过其他实施方式来展示的多种特性。同样地,也描述了可能是某些实施方式的要求但非其他实施方式要求的各种要求。
在本文件中,披露的技术包括了用于建模移动网络中的信号和/或连接的系统和方法,特别是,任何对于包含移动网络中的信号和/或连接的流量优化技术所带来的有益效果。实施例可以将信号分配给特定的应用,(如,判定哪些程序是闲置无益的,哪些程序会造成错误信号),和/或利用这些公开的流量优化技术进一步建模该优化或节约。
在一些实施例中,披露技术认为在移动网络中在一定时刻会产生数据信号,如,无线电连接在设置时(如建立连接)或无线电连接被移除时(如断开连接)。每个无线电连接可用于一个或多个事务/数据传输,这些可源自一个或多个应用。披露技术定义了事务是否会产生一个连接(从而产生信号),并进一步建模、计算、或者相反的,对信号和连接的节约进行量化。这些信号和连接的节约源自在发信号或者数据通路中使用的任何流量优化技术。
在一些实施例中,为了启用或增强网络中的数据流量和信号优化的性能,本文中包含一个或多个字段,这些字段由例如一个CRCS分析核心模块这样的部件计算产生,这些字段至少用来定义和识别如下内容:1、一个事务是否产生了一个数据连接(从而产生了信号);2、由公开的分布式缓存和代理系统所减少或节约的连接数量。
图1A展示了一个系统示例图,在这个系统中,一个主机服务器100能促进移动设备(如无线设备150或客户端设备150)之间的流量管理,内容缓存,和/或资源保护,系统中还包含一个应用服务器或内容提供商110,或诸如广告服务器120A的其他服务器,促销内容服务器120B,或电子优惠券服务器120C,这些都为了资源保护而存在于无线网络或宽带网络中。主机服务器100能进一步探知移动设备无线电的状态,从而应用在为主机服务器所产生的发送信息或其他控制信号而选择一个合适的通信通道,并且促进使用用户作为对在一个无线网络中的内容和数据传递进行性能分析和优化的终端。
移动/客户端设备150可以是任何系统和/或设备,和/或任何设备/系统的组合,能够对任何另一设备,服务器,和/或其他诸如主机服务器100和/或应用服务器/内容提供商110的系统建立数据连接,包括有线连接,无线连接,蜂窝连接。移动/客户端设备150通常包含一个显示器和/或其他输出功能性部件从而来呈现在设备150和/或主机服务器100和/或应用服务器/内容提供商110之间的信息和数据交换。所述应用服务器/内容提供商110可以是任何服务器,包含第三方服务器或服务/内容提供商,进一步包含广告、促销内容,出版、电子优惠券服务器或服务。同样的,单独的广告服务器120A,促销内容服务器120B,和/或电子优惠券服务器120C作为应用服务器或内容提供商同样在实施例中阐述到。
例如, 客户端/移动设备150可以包含移动,手持或便携式设备,无线设备,或非便携设备,也可以是任何但不限于:一个服务器笔记本电脑,笔记本电脑,计算机集群,或便携设备,包含笔记本电脑,手提电脑,便携电脑,掌上电脑,移动电话,普通手机,智能手机,PDA,黑莓设备,掌上设备,任何平板电脑,平板手机(一类拥有更大的屏幕尺寸的智能手机,屏幕尺寸在小手机和平板电脑之间),手持平板电脑(如IPAD,Galaxy系列,Nexus,Kindle,KindleFIRE系列,任何基于安卓的平板,基于windows的平板,基于亚马逊的平板或其他类型的平板),任何便携式阅读器/阅读设备、手动控制器,手持游戏设备或控制台,头戴式设备,头戴式显示屏,一个超薄客户端或如iPhone等任何超级手机,和/或其他便携式移动手持设备,或如M2M设备这样的固定式无线接口,等等。在一个实施例中,客户端设备150(或移动设备150),主机服务器100,应用服务器110通过网络106和/或网络108进行耦合。在一些实施例中,设备150和主机服务器100可能直接彼此连接。
客户端设备150的输入机制可以包括触摸屏键盘(包括单点触摸,多点触摸,2D或3D的手势感应,等),一个物理键盘,鼠标,指示器,追踪板,运动检测器(如,包括一维、二维、三维加速计,等),光传感器,电容传感器、电阻传感器、温度传感器、距离传感器、压电设备,设备方向检测器(如,电子指南针、倾角传感器、旋转传感器、回转仪、加速度计),或以上任意组合。
通过一个或多个以上输入机制,或者其他公开技术中以获取客户端设备150的情境认知的输入机制被接收或被检测的信号表明用户在客户端设备150上活动。在客户端设备150上的情境认知一般包括但不限于所举例子,客户端设备150的工作或状态确认,管理,用户活动/行为/交互意识,检测,传感,跟踪,和/或应用(如,移动应用)类型,行为,活动,操作状态,等。
本文公开技术中的情境认知还包括网络端环境数据的认识和检测,该数据能够包括网络信息如网络容量,带宽,流量,网络/连接类型,和/或任何其他操作状态数据。网络端环境数据可以通过网络106和/或网络108(如,通过主机服务器和/或设备150)的网络服务提供商(如,蜂窝移动网络提供商112和/或互联网服务提供商)收集或查询。应用情境认知除了由客户端150确定外,应用情境认知也可以从各自的应用服务器/服务提供商110(通过主机100和/或客户端设备150)接收或获得/查询。
主机服务器100可以使用从客户端设备150,网络106/108,应用 (如,移动应用)、应用服务器/提供商110,或以上的任意组合中获得的情境信息,以管理系统中的流量从而满足客户端设备150的数据请求(如,满足应用请求或任何其他请求包括HTTP请求)。在一个实施例中,流量被管理以满足数据请求,该数据请求是为了响应明确或非明确的用户103的请求和/或设备/应用的维护任务。管理流量使得节约网络消耗,如蜂窝移动网络的使用,以实现有效和有效的宽带利用。此外,主机服务器100可以管理和协调系统中的流量,使用设备150端资源(如,包括但不限于电池能消耗,无线电使用,处理器/储存器使用)可以通过一般的资源节约原理被优化,同时通优化性能和用户的体验。
例如,在电池节约情境中,设备150能够观察用户的活动(如,通过一个或多个输入机制观察用户的键盘敲击,背光状态,或其他信号,等)和改变设备150的行为。设备150也能够要求主机服务器100改变基于用户活动或行为的网络资源消耗的行为。
在一个实施例中,用于资源节约的流量管理使用在主机服务器100和客户端设备150之间的分布式系统执行。分布式系统包括代理服务器和在服务器100、和设备/客户端的缓存组件,例如,如在服务器100侧上的服务器缓存135和在客户端150侧上的本地缓存185所示。
在网络(如,网络106和/108)和设备150中用于情境认知流量管理的资源节约的公开功能和技术能够存在于分布式代理和/或缓存系统(如(分布式)流量优化器,流量管理系统,用于减缓流量的(分布式)内容缓存机制)。代理和缓存系统能部分或者全部分布于和位于一个给定的客户端设备150和/或主机服务器100之间。分布式代理和/或缓存系统(如(分布式)流量优化器,流量管理系统,用于减缓流量的(分布式)内容缓存机制)在附图1C中有了进一步的相关描绘。附图2-5也进一步分别描绘了(分布式)代理和/或在客户端设备150中的缓存组件,主机服务器100,和相关组件的功能与技术内容。
在一个实施例中,客户端设备150与主机服务器100和/或应用服务器110通过网络106进行通信,网络106可以是蜂窝移动网络和/或宽带网络。为了促进在设备150和各种应用服务器/内容提供商110之间的整体流量管理以实现网络(宽带利用)和设备资源(如,电池消耗),主机服务器100能够与应用服务器/提供商通过网络108进行通信,网络108包括互联网(如,宽带网络)。
一般而言,网络106和/或108通过客户端设备150,主机服务器100,和/或应用服务器110进行通信,网络106和/或108可以是蜂窝移动网络,宽带网络,电话网络,开放式网络,如互联网或专用网络,如内部网和/或外部网,或任何组合。例如,互联网可以提供文件传输、远程登录、电子邮件、新闻、RSS、云端服务,即时消息,可视语音邮件,邮件,网络电话,和通过任何已知或便利协议的其他服务,例如但不限于TCP/IP协议,UDP,HTTP、DNS、FTP、UPnP、NSF、ISDN、PDH、SDH、RS-232、SDH、SONET,等。
网络106和/或108可以是任何不同网络操作的全部或部分结合的任何集合,以提供客户端设备150和主机服务器100的连通性,可以对服务系统和设备提供一个或多个网络。在一个实施例中,客户端设备150通信可以通过开放式网络实现,如互联网,私人网络,宽带网络,如内部网络和/或外部网络。在一个实施例中,通信可以通过安全通信协议实现,如安全套接层协议(SSL),或安全传输层协议(TLS)。
此外,通信可以通过一个或多个网络实现,例如但不限于,一个或多个WiMax、局域网(LAN)、无线局域网(WLAN)、个人局域网(PAN)、校园网(CAN)、城域网(MAN)、广域网(WAN)、无线广域网(WWAN)、或任何宽带网络,并进一步使用技术,例如,全球移动通信系统(GSM)、个人通信服务(PCS)、蓝牙、无线网络、固定无线数据,2G、2.5G、3G、4G、国际移动通讯先进技术、准4G、LTE先进技术、移动WiMax、WiMax2、无线MAN先进网络、提高GSM进展数据率(EDGE)、通用分组无线业务(GPRS)、加强的GPRS、iBurst、UMTS、HSPDA、HSUPA、HSPA、UMTS-TDD、1xRTT、EV-DO、信息传递协议如TCP/IP、SMS、MMS、可扩展信息传递和业务协议(XMPP)、实时信息传递协议(RTMP)、即时通信和业务协议(IMPP)、即时信息传递、USSD、IRC,或任何其他无线数据网络、宽带网络,或信息传递协议。
通过下文的更多细节描述和通过附图2A-2E和3A-3E的具体描述,下文实现了一个或更多的实施例,这些实施例可实现如下技术内容:在一个移动网络(若网络106)中的建模信号,给一个或更多的特定应用分配信号,(从而判定哪个应用产生了流量信号),和建模由于分布式缓存和代理系统导致的流量信号的节约(如产生自附图1C中所示的客户端代理175和/或服务器端代理125)。
在本实施例中,在移动网络中的数据信号在特定时刻发生,如,在无线电连接在设置的时候(如连接时)或者无线电连接被移除的时候(如断开连接)。此外,每个无线电连接可以被一个或更多的事务/数据传输所用,这些事务/数据传输源自一个或更多应用。
为了启用或增强网络中数据流量和信号优化的性能,本实施例中包含一个或多个字段,(如扩展的“CRCS”字段)。这些一个或多个字段由例如客户端代理175和/或服务器端代理125这样的部件计算产生。这些字段至少用来定义和识别如下内容:1、一个事务是否产生了一个数据连接(从而产生了信号);2、由分布式缓存的披露实施例和代理系统所减少或节约的连接数量。
值得注意的是,为了方便,分布式缓存系统的客户端(如本地代理105,175,275)在本文中可以被指代为“网络优化客户端”或者“优化网络客户端”。同样的,分布式缓存系统中的服务器(如主机服务器111,100,300,主机代理服务器113,125,325)在本文中可以被指代为“网络优化服务器”或者“优化网络服务器”。客户端和/或服务器,单独或者共同地,可以执行分布式缓存技术。分布式缓存技术包含,但并不限于,信号优化和扩展缓存技术,在本文中,可以被指代为“网络优化”或者“优化网络”。
在一个实施例中,一个日志/报告数据分析核心模块能对信号的测量和建模执行计算和/或确定。日志/报告数据分析核心模块,可以包含在客户端代理175和/或服务器端代理125(如附图2E和3E所示),在下文中有更多的详细阐述。
附图1A-1描绘了一个分布式网络优化系统,包括一个优化网络(网络优化)客户端(或本地)代理175和一个网络优化(或主机)服务器100,这些被单独或者组合配置为建模移动网络中的信号。
在一个实施例中,一个CRCS分析核心工具或模块(未示出)可以计算扩展日志/报告数据字段,它们在CRCS分析核心单元中被使用和维持,从而实现在移动网络中的移动设备上的信号建模。更具体地说,所述CRCS分析核心单元工具能够对网络优化架构的效果进行建模,(如本文所讨论的包含信号优化和扩展缓存技术的分布式缓存技术)。CRCS分析核心工具或模块可以包含硬件和/或软件模块,并且可以被分别包含在或全部包含在网络优化客户端(本地)代理175和网络优化(主机)服务器150之一或者两者中。
在一个实施例中,为了对网络优化架构(如移动数据流量优化技术)的优化或者节约进行建模,则对扩展日志/报告数据字段进行计算。如,扩展日志/报告数据字段能为网络优化架构的总体效率进行测量。这些字段能被网络优化客户端(本地)代理175和/或网络优化(主机)服务器150进行计算。另外,字段能按移动设备被计算和/或字段为了建模在移动设备上运行的个体应用的信号而被计算。如,信号能被标识或者分配(归属)给特定的应有程序,从而去,如,判定哪些应用是闲置无用,那些应用程序会产生问题信号,等。
移动设备150可以包含任意数量的移动设备应用。这些应用可以被内置、预装或者被移动设备的用户下载。此外,应用能与网络优化客户端代理175进行通信(被网络优化客户端代理175处理)或者与网络(如因特网)直接连接。如附图1A-1所描绘的实施例,应用1-3在每一个最初事务上都有所显示。图中显示,应用1和2被网络优化客户端175所处理,应用3则与网络(如因特网)发生直接连接。应用1和2在本文中也可以被称为“无线电感知”。应用3并不是被网络优化架构所处理,然而依然能够启动无线电(即移动设备无线电连接)。无线电连接能利用无线电日志追踪。每一个应用程序都能形成任意数量的事务,这也许能或也许不能形成网络信号,这一点,非常可贵。
如上文所述,本文描述的扩展日志/报告数据字段的能够为了测量网络优化解决方案效率,包括信号效率和连接时间效率。如,信号效率和连接时间效率能为了与一部移动设备相关联的信号而被计算。信号效率(也常被称为信号节约)代表着被节约和优化的移动网络连接数量。相似的,连接时间效率(也常被称为时间节约)代表着移动网络开启时间的节约量。
在一个实施例中,扩展日志/报告数据字段能被分割成多个类型。如,扩展日志/报告数据字段可以包含一个连接标志类型和一个连接时间计数类型。此外,扩展日志/报告数据字段能被划分成如下图表1所示的类型。
图表1–日志/报告数据字段类型
如上所述,一个CRCS分析核心工具或模块(未示出)能够计算扩展日志/报告数据字段,这些字段能被CRCS分析核心工具来维护和使用,从而使得一个移动网络中的一个移动设备的信号能被建模。在一个实施例中,对一个移动设备的信号建模包含建立多个连接和时间计算。关于多个连接和时间计算的相关细节在附图10A—附图26N中阐述。
附图1B描绘了实施例的示意图,图中,一个代理和缓存系统分布在主机服务器100和设备150之间,这促进了设备150和应用服务器或内容提供商110,或其他为了资源优化和内容缓存的服务器诸如广告服务器120A,促销内容服务器120B,或电子优惠券120C之间的网络流量管理。分布在主机服务器100和设备150之间的代理系统能进一步监控移动应用的活动,这些监控动作是针对于在无线网络环境下的移动设备的恶意流量,和/或关于恶意流量自动生成和/或分布的策略信息。
分布式代理和/或缓存系统(如(分布式)流量优化器,流量管理系统,针对流量减缓的(分布式)内容缓存机制)(例如(分布式)流量优化器,流量管理系统,针对流量减缓的(分布式)内容缓存机制)能包含,如,代理服务器125(如,远程代理)和服务器缓存135在服务器端的组件。服务器端代理125和缓存135能够位于主机服务器100的内部。此外,代理服务器125和服务器端的缓存135能够部分或全部位于主机服务器100的外部并通过一个或多个网络106和108进行通信。例如,代理服务器125可以在主机服务器的外部,服务器缓存135可以在主机服务器100上被维护。另外,代理服务器125可以在主机服务器内部,而缓存服务器在主机服务器100的外部。此外,每个代理服务器125和缓存服务器135可以部分在主机服务器100内部,部分在主机服务器100外部。应用服务器/内容提供商110可以是任何服务器包括第三方服务器或服务/内容提供商,还包括广告、促销内容、出版物、或电子优惠券服务器或服务。同样,不同的广告服务器120A,促销内容服务器120B和/或电子优惠券服务器120C作为应用服务器或内容提供商由示例解释说明。
在一个实施例中,分布式系统还可以包括客户端组件,包括但不限于,本地代理175(如,移动设备上的移动客户端)和/或本地缓存185,可位于设备150的内部(如,移动设备)。
此外,客户端代理175年和本地缓存185可以部分或全部位于设备150的外部,并通过一个或多个网络106和108进行通信。例如,本地代理175可能在设备150的外部,本地缓存185在设备150的内部。另外,本地代理175在设备150的内部,而本地缓存185在设备150的外部。此外,每个代理175和缓存185可能部分在主机服务器100的内部,部分在主机服务器100的外部。
在一个实施例中,分布式系统可能包括可选缓存代理服务器199。缓存代理服务器199可能是一个被应用服务器/内容提供商110,主机服务器100,网络服务提供商112,或任何以上组合操作以促进用于网络和设备资源节约的网络流量管理的组件。代理服务器199能够用于缓存以提供给设备150的内容,该内容来自一个或多个应用服务器/提供商110,主机服务器100,和/或网络服务提供商112。内容缓存可以通过远程代理125全部或部分执行以满足应用请求或设备150上的其他数据请求。
在情境认知流量管理和网络(如,蜂窝或其他无线网络)资源节约优化中,在用户活动/行为和/或移动设备150(如,任何无线设备)中应用行为的特征可以被本地代理175追踪,并通过网络106与主机服务器100上的代理服务器125进行通信,例如,作为连接元数据。代理服务器125轮流与应用服务器/提供商110耦合提供内容和数据以满足设备150的请求。
此外,本地代理175可以识别和检索移动设备性能,包括一个或多个电池电量,设备注册网络,无线电状态,或移动设备是否被使用(如,由用户与之交互)。在某些情况下,本地代理175可以在数据传输到代理服务器125之前的适当时候延迟,加快(预读取),和/或修改数据。上述内容会在附图2-5中做进一步的描述。
本地数据库185可以包括在本地代理175或耦合到本地代理175中,可以查询本地存储以在数据请求转发到代理服务器125之前响应数据请求。本地代理175可以使用本地缓存响应以满足移动设备150的某些应用请求,通过检索存储在缓存存储器185中的缓存内容,当缓存内容有效时。
同样,主机服务器100的代理服务器125也可以在数据从本地代理传输到内容来源(如,应用服务器/内容提供商110)之前延迟,加快,或修改数据。此外,代理服务器125使用设备特性和连接元数据以产生满足移动设备150应用请求的规则。代理服务器125能够收集关于应用请求的实时流量信息供以后通过移动设备150或其他移动设备优化相似连接使用。
一般而言,本地代理175和代理服务器125对执行在移动设备上的多个应用来说是透明的。本地代理175对操作系统或移动设备平台来说通常是透明的,具有或不具有特定的设备制造商。在某些情况下,本地代理175的部分或全部特定设备是可选可定制的。在一些实施例中,本地代理175可以打包进无线模型,防火墙,和/或路由器中。
在一个实施例中,主机服务器100在某些情况下,可以利用短信息服务中心(SMSC)112的存储和转发功能,如由网络服务提供商提供,与设备150通信以实现网络流量管理。值得注意的是,短信息服务中心(SMSC)112也可以利用任何其他类型的可替代渠道,包括USSD和其他网络控制机制。主机服务器100可以转发内容或HTTP响应至SMSC112,这样它就会被自动转发给设备150如果在线的话,以及后续转发给设备150如果不在线的话。
一般而言,本文公开的分布式代理和缓存系统允许优化网络使用,例如,通过服务来自于本地缓存185的请求,本地代理175减少了需要满足网络106的请求的数量。另外,本地代理175和代理服务器125可以过滤通信数据中的无关数据。此外,本地代理175和代理服务器125也能够积累低优先级数据,并批量发送以避免发送个人数据片段的协议开销。本地代理175和代理服务器125还能够压缩和译码视频流量,以减少通过网络106和/或108发送的数据量。在网络106和/或108中的信号流量可以被减少,在网络不常用的情况下,网络流量在个别应用之间可以同步。
关于移动设备150的电池寿命,通过服务来自本地缓存185的应用或内容请求,本地代理175能够减少无线电模块启动的次数。本地代理175和代理服务器125可以一起工作累积低级优先级数据,并批量发送以减少无线电启动的次数和/或时间。本地代理175通过为所有连接同时执行批量数据传送使网络使用同步。
附图1C描述了分布式代理缓存系统的逻辑架构示例图。
分布式系统可以包含以下组件:
客户端代理175:安装在智能手机,移动设备或无线设备150上的与设备的操作系统,以及安装在设备上的数据服务和应用程序接口的组件。客户端代理175通常符合且能够操作使用本领域网络协议的标准或规定。附图2A到附图2B和附图4A到附图4C对客户端代理175的额外组件和特征有了更进一步的阐述和描绘。
服务器端代理125可以包括一个或多个服务器,该服务器可以是与第三方应用交互的服务器(如,服务器199),移动运营商网络(可以是代理199或是没有说明的额外服务器)和/或客户端代理175。一般而言,服务器端代理125通常符合且能够操作使用本领域网络协议和/或与移动网络组件交互的说明书和/或第三方服务器的标准或规定。在附图3A到附图3B和附图5A到附图5C中进一步描述了服务器端代理125的额外组件和特征示例。
报告和使用分析服务器174:报告和使用分析系统或组件174能够收集客户端175和/或服务器端125的信息,并通过必要的工具产生可以用于分析流量和信号数据的报告和使用分析。这个分析可以被代理系统使用以管理/减少流量,或者被网络运营商使用以监测网络并尽可能使网络改进和增强。注意,报告和使用分析系统/组件174,可以作为独立于服务器端代理125的服务器,或者可以是部分或全部位于服务器端代理125上的一个组件。
图1D描述了分布式代理缓存系统中客户端组件结构的示例图。
客户端组件175可以包括软件组件或安装在移动设备上的代理件,能够使流量优化并在客户端执行相关功能。客户端代理175组件对最终用户和应用163可以透明化操作。客户端代理175可以安装在移动设备上以进行优化,并完成数据路由的更改。一旦数据路由被修改,客户端代理175能够响应服务器提供商或主机服务器的应用请求,此外还能使应用163直接访问数据网络。一般而言,移动设备上的应用163不会注意到客户端代理175正在响应他们的请求。一些客户端代理175组件的示例描述如下:
设备状态监视器121:设备状态监视器121能够负责识别设备中的多个状态和指标,如网络状态,显示状态,电池电量,等。客户端代理175其余的组件能够根据设备的状态操作并做出决策,在每个状态下以最优的方式操作。
流量识别器122:流量识别器122分析在无线设备应用163和各自主机服务器之间的全部流量以识别周期性模式。支持传输协议包括DNS,HTTP和HTTPS,这样通过这些端口的流量直接到了客户端代理175处。而分析流量,客户端代理175可以识别周期性轮询模式,该模式可作为候选被服务器端代理125远程执行并,发送到协议优化器123。
协议优化器123:协议优化器123能够实现本地缓存185的周期性请求服务的逻辑,以替代允许这些请求通过网络去服务器提供商/应用主机服务器上。它的任务是消除或减少发送请求到网络的需求,对网络拥塞和设备电池寿命有着积极地影响。
本地缓存185:本地缓存185能够存储对周期性请求的响应,能够被协议优化器123使用以对应用163发送响应。
流量调度器124:流量调度器124能够短暂移动通信并通过统一的保活信号以优化设备资源的使用,这样一些或全部的不同应用163能够在同一时间发送保活信息(流量流水线)。流量调度器124也可以在给定的时间(如,设备没有被经常使用)决定延迟不相关的数据传输。
策略管理器125:策略管理器125能够存储和执行流量最优化,策略报告由策略管理服务器(PMS)提供。在客户端代理175首次启动时,流量最优化和在一个特定的设备中被执行的策略报告(策略概要文件)能够被策略管理服务器预分配。
看门狗127:看门狗127可以监测客户端代理175操作可用性。如果客户端代理175由于故障或者因为被禁用不工作,看门狗127可以重置DNS路由规则信息,并且可以恢复原来的DNS设置使设备继续工作直到客户端代理175服务器恢复。
报告代理126:报告代理126可以收集设备中事件发生的信息并将这些信息发送到报告服务器。事件细节暂时存储在设备中,只有当数据通道的状态活跃时才会转发到报告服务器。如果客户端代理175没有在24小时内发送记录,报告代理126可能尝试打开连接并发送记录条目,或者如果那里没有条目存储,发送一个空的报告包。所有报告设置在策略管理服务器中配置。
推送客户端128:推送客户端128可以负责服务器端代理125和客户端代理175之间的流量。推送客户端128可以发送服务请求如内容更新请求和策略更新请求,并接收来自服务器端代理125请求的更新。此外,推送客户端128可以发送数据到报告服务器(如,可能在服务器端代理125内部或外部的报告和/或使用分析系统)。
代理服务器199具有各种各样的用途,从通过缓存重复请求加快网络服务器,到一组客户共享网络资源的缓存网络、DNS和其他网络的查找。代理服务器199是可选的。分布式代理和缓存系统(125和/或175)允许使用代理199,在运营商网络中的额外代理(们),或代理199与运营商的或其他第三方的代理的集成代理的灵活代理配置。
附图1E描述了分布式代理的缓存系统中服务器端组件结构的示例图。
分布式系统的服务器端125包括,如能够与流量协调器144交互的中继服务器142,轮询服务器145和/或策略管理服务器143。每个组件都能与客户端代理175,或其他第三方(如,应用服务器/服务提供商110和/或其他代理199)和/或报告和使用分析系统通信。服务器端代理125的一些组件如下所述:
中继服务器142:中继服务器142是分布式代理结构中的路由代理。中继服务器142管理安装在设备上并与客户端代理175连接和通信的组件,并提供一个用以报告,服务开通,平台设置,等内容的管理接口。
通知服务器141:通知服务器141是一个可以连接运营商的短信息服务中心网关的模块,并对客户端代理175提供短信息服务通知。短信息服务通知可以在IP连接不活跃的时候使用,避免客户端服务器175通过无线数据通道激活连接,从而避免额外的信号流量。然而,如果IP连接碰巧被打开用于一些其他通信,通知服务器141可以使用它对客户端代理175发送通知。用户数据库可以存储操作数据,包括终端(MISISDN),组织机构和每个资源(URIs或URLs)的通知服务器141网关。
流量协调器144:流量协调器144可以负责客户端代理175和轮询服务器145之间的通信。流量协调器144直接连接轮询服务器145或通过数据存储器130连接轮询服务器145,并且通过任何开放或专业协议(诸如7TP)连接到客户端,实现流量优化。流量协调器144可以负责服务器端的流量流水:如果相同客户端的数据库具有缓存内容,该内容可以在一个信息中发送到客户端。
轮询服务器145:轮询服务器145可以轮询代表被优化的应用的第三方应用服务器。如果应用发生变化(如,新数据产生),轮询服务器145可以报告流量优化器144,该流量优化器144依次向客户端代理175发送通知消息以清除缓存和允许应用直接轮询应用服务器。
策略管理服务器143:策略管理服务器(PMS)143允许管理员为客户端代理175(设备客户端)配置和存储策略。它还允许管理员通知客户端代理175关于策略的改变。使用策略管理服务器143,每个操作者都可以为每个特定移动运营商网络的特性配置策略从而能够以最有效的方式工作。
报告和使用分析组件:报告和使用分析组件或系统收集来自客户端175和/或服务器端125的信息,并提供工具以产生供操作者分析应用信号和数据消耗的报告和使用分析,。
附图1F描绘了在分布式代理和缓存系统中的客户端组件的数据流的示例图。应用(如应用1,应用2,应用3一直到应用N)之间的流量,客户端代理(如本地代理)175,IP路由表(如在安卓操作系统层),网络访问层和无线网络都在图中被描绘。
在一个实施例中,未优化的应用流量数据流,如来自APP1的流量,可以完全绕开客户端代理175组件,并经过操作系统层(如安卓操作系统层)直接前行。未优化的流量可以包括但不限于:多元媒体,如视频和音频,以及来自网络和应用的、被配置为绕过优化和流量待决优化的流量等。在一个实施例中,所有流量都可以被配置成绕开客户端/服务器端代理。
在另一个实施例中,优化过的应用流量,比如来自APP2的流量,可以从应用重新定向到客户端代理175。默认地,可以是端口80(HTTP)和端口50(DNS)的流量,也可以是端口443(HTTPS)上经过筛选的流量。然而,其他端口的流量可以配置为直接到达客户端代理。
在另一种实施例中,流量流可以存在在客户端代理175和源服务器(如内容服务器110)之间,经过因特网和/或在客户端代理175和服务器端代理(如代理服务器)125之间。
图2A示出的块图显示驻留在为了节约资源,内容缓存,和/或流量管理而在无线网络中管理流量的一移动设备250上的分布式代理和缓存系统中的客户端组件的另一个例子。客户端代理(或本地代理275)可以进一步基于应用行为、内容优先级、用户活动和/或用户预期为移动流量进行分类和/或实施投递策略。
设备250可以是诸如便携式电话的便携式或移动式设备(例如任何无线设备),例如,其通常包括网络接口208、操作系统204、情境API206以及可能是代理无感知210或代理感知220的移动应用。请注意,虽然设备250在图2A的例子中被作为移动设备特别说明,但这并非一种限制;设备250可以是任何能够通过在包括有线或无线网络(例如无线网络、蜂窝、蓝牙、局域网、广域网等)的网络中接收并传输信号以满足数据请求的无线、宽带、便携式/移动式或非便携式设备。
网络接口208可以是一个联网模块,使设备250通过由主机和外部实体所支持的任何已知的和/或便利的通信协议在网络中与主机服务器250之外的实体调解数据。网络接口208可以包括一个或多个网络适配器卡、无线网络接口卡(例如SMS接口、无线网络接口、包括但不限于各代移动通信标准2G、3G、3.5G、4G、LTE等的接口)、蓝牙、或不管该连接是否通过路由器、访问点、无线路由器、交换机、多层交换机、协议转换器、网关、网桥、桥路由器、集线器、数字媒体接收器和/或中继器。
设备250还可以包括分布式代理和缓存系统的客户端组件,其可以包括但不限于本地代理275(例如移动设备的一个移动客户端)和缓存285。在一个实施方式中,本地代理275包括用户活动模块215、代理API225、请求/事务管理器235、缓存策略管理器245其有一个应用协议模块248、流量整形引擎255和/或连接管理器265。流量整形引擎255还可以包括调整模块256和/或批处理模块257,连接管理器265还可以包括无线控制器266。请求/事务管理器235还可以包括应用行为检测器236和/或优先级处理引擎241,应用行为检测器236还可以包括模式检测器237和/或应用配置文件生成器239。更多或更少的组件/模块/引擎都可以被包含在本地代理275及每个图示组件中。
按照本发明所使用的情况,“模块”、“管理器”、“处理器”、“检测器”、“接口”、“控制器”、“标准化器”、“发生器”、“无效验证器”或“引擎”都包括了一个通用、专有或共享的处理器以及通常来说由处理器执行的固件或软件模块。取决于特定实现或其他考虑,模块、管理器、处理器、检测器、接口、控制器、标准化器、发生器、无效验证器或引擎都可以被集中或使其功能被分布。模块、管理器、处理器、检测器、接口、控制器、标准化器、发生器、无效验证器或引擎可包括通用或专有硬件、固件或用于处理器执行的内嵌于计算机的可读(存储)介质的软件中。
按照本发明所使用的情况,计算机可读介质或计算机可读存储介质旨在包括所有法定(例如在美国即根据35U.S.C.101)介质并明确排除所有性质为非法定的介质,其程度为该排除对包括计算机可读(存储)介质是有效的的权利要求是必要的。已知法定计算机可读介质包括硬件(例如仅举几例——寄存器、随机存取存储器(RAM)、非易失性(NV)存储器),但可以或可以不被限于硬件。
在一个实施方式中,网络流量管理的分布式代理和缓存系统一部分驻留在设备250中或者与之进行通信,包括本地代理275(移动客户端)和/或缓存285。本地代理275可以在设备250上提供一个接口,使用户可以访问包括电子邮件、即时消息、语音信箱、可视语音邮件、消息源、互联网、游戏、生产力工具或其他应用等在内的设备应用和服务。
代理275一般独立于应用之外并可以被应用(例如代理感知和代理无感知应用210和220或其它移动应用)使用来打开到远程服务器(例如服务器100)的TCP连接。在一些情况下,本地代理275包括代理API225,其可被选择用于与代理感知应用220(或移动设备(例如任何无线设备)上的应用(例如手机应用))相连。
应用210和220通常可以包括任何用户应用、窗口小部件、软件、基于HTTP的应用、网络浏览器、视频或其他多媒体流或下载应用、视频游戏、社交网络应用、电子邮件客户端、RSS管理应用、应用商店、文档管理应用、生产率增强应用等。应用可以由设备制造商、网络服务提供商与设备操作系统一并提供,也可由用户下载或由其他人提供。
如图所示,本地代理275的一个实施方式包括情境API206或者与之耦合。如图所示,情境API206可以是操作系统204或设备平台的一部分或独立于操作系统204。操作系统204可以包括任何操作系统,包括但不限于任何以前、当前和/或将来的WindowsMobile、iOS、安卓、塞班、PalmOS、BrewMP、Java2微型版(J2ME)、黑莓等等的版本/发布。
情境API206可以是操作系统204的一个插件或设备250上的一个特定的客户端/应用。情境API206可检测指示用户或设备活动的信号,例如运动侦测、姿态、设备位置、设备位置的改变、设备背光、击键、点击、激活了的触摸屏、鼠标点击或对其它指针设备的检测。情境API206可耦合到设备250上的输入设备或传感器来识别这些信号。这种信号通常可以包括为响应在设备250的输入设备/机制上的显式用户输入所接收到的输入和/或从设备250上或其附近(例如光、运动、压电等等)的环境信号/情境线索处所收集到的输入。
在一个实施方式中,用户活动模块215与情境API206交互以识别、确定、推断、检测、计算、预测和/或推理设备250上的用户活动特性。由情境API206收集的各种输入都可以由用户活动模块215来聚合从而为用户活动特性生成一份简档。这样一个简档可以由用户活动模块215结合各种时间特性而产生。例如,用户活动简档可被实时生成以就用户在给定的时刻(例如由时间窗口中所定义、在最后一分钟、在最后30秒时等)正在做什么或没有在做什么而在给定时间内提供说明,用户活动简档也可以为一个由应用或网页定义的“会话”而生成,其描述了就在设备250上所介入的特定任务而产生的或为一个特定的时间段(例如在过去的2个小时内、在过去的5小时内)的用户行为特性。
此外,特性曲线可以由用户活动模块215产生来描绘出用户活动和行为(例如1周、1个月、2个月等)的历史趋势。这样的历史简档也可以被用来推断用户行为趋势,例如在一天的不同时间的访问频率、一周中某些日子的趋势(周末或周天)、基于位置数据的用户活动趋势(例如IP地址、全球定位系统或蜂窝塔坐标数据)或位置数据的改变(例如基于用户位置的用户活动、或基于所述用户是否在旅途中还是在归属区以外旅行等的用户活动),从而获得用户活动特性。
在一个实施方式中,用户活动模块215可以检测和跟踪设备250上的应用、文档、文件、窗口、图标和文件夹方面的用户活动。例如,当应用或者窗口(例如网页浏览器或任何其它类型的应用)已经被退出、关闭、最小化、最大化、打开、移动到前台或到背景中时,用户活动模块215可以检测到多媒体内容播放等。
在一个实施方式中,设备250上的用户活动特性可用于在本地调节所述设备(例如移动设备或任何无线设备)的行为,以优化资源消耗,如电池/功耗,以及更一般的,包括内存、存储器和处理功率等其他设备资源的消耗。在一个实施方式中,在设备上使用的无线可以根据用户的行为(例如由连接管理器265上的无线电控制器266)特性而被耦合到用户活动模块215上。例如无线电控制器266可以基于设备250上的用户活动特性而打开或关闭无线电。此外,取决于用户活动特性,无线电控制器266可以调整无线设备的功率模式(例如使用更高的功率模式或更低的功率模式)。
在一个实施方式中,设备250上的用户活动特性也可用于使另一个设备(其它计算机、移动设备、无线设备或者非便携式设备)或服务器(例如图1A-B和图3A的示例中的主机服务器100和300),其可以与设备250进行通信(例如通过蜂窝式网络或其它网络)来修改其与设备250所使用的通信频率。本地代理275可以使用由用户活动模块215所确定的用户行为特性信息来指示远程设备如何调节其通信频率(例如,如果用户处于闲置状态,则降低如数据推送频率的通信频率,而在新的数据、变化了的数据或具有一定重要性水平的数据变得可用等情况下,则请求该远程设备通知设备250)。
在一个实施方式中,作为对确定表明用户在不活跃一段时间之后开始活跃的用户活动特性的响应,用户活动模块215可请求远程设备(例如图1A-B和图3A的示例中的服务器主机服务器100和300)发送作为先前降低通信频率结果而被缓冲的数据。
另外,或者作为替代,本地代理275可以就设备250上的用户活动特性与远程设备(例如图1A-1B和图3A中的主机服务器100和300)进行通信,而远程设备将确定如何改变其自身与设备250的通信频率以实现网络资源保护和设备250的资源保护。
本地代理275的一个实施例进一步包括一个请求/事务管理器235,可以探测、识别、拦截、处理、管理、设备250发起的数据请求,例如,通过应用210和/或220发起的请求,和/或由用户直接/间接发起的请求。请求/事务管理器235可以决定如何以及何时处理给定的请求或事务,或一组请求/事务,根据事务的特征。
请求/事务管理器235可以为在设备250上的应用和/或用户进行的请求或事务进行优先级排序,例如由优先级处理引擎241进行。请求/事务的重要性或优先级可以通过应用规则集由请求/事务管理器235来确定,例如根据事务的时间灵敏度、事务内容的时间灵敏度、事务的时间关键性、事务中所传输的数据的时间关键性和/或发出请求之应用的时间关键性或重要性。
此外,事务的特性也可取决于该事务是否是设备上的用户交互或其他用户发起动作的结果(例如与应用的用户交互(例如手机应用))。在一般情况下,一个时间关键性事务可包括因用户发起的数据传输而产生的事务,并且可依此被划分优先级。事务特性也可以取决于由所请求事务导致的将被传输或预计要被传输的数据量。例如,连接管理器265可基于需要传输的数据量而调节无线模式(例如通过无线控制器266调节高功率和低功率模式)。
此外,无线控制器266/连接管理器265可基于事务的时间关键性/灵敏度调节无线功率模式(高或低)。时间关键性事务(例如用户发起的数据传输产生的事务、前台运行的应用、任何符合一定条件的其它事件)被启动或检测到时,无线控制器266可以触发使用高功率无线模式。
在一般情况下,优先级可以被默认设置,例如基于设备平台、设备制造商、操作系统等。优先级可由特定应用可替代地或附加地设置;例如Facebook应用(例如手机应用)可以为各种事务(例如,状态更新可以比加为好友请求或戳一下请求有更高的优先级,再比如消息发送请求可以比消息删除请求有更高的优先级)配置其自己的优先级,电子邮件客户端或即时消息聊天客户端也可有其自己用于优先权的配置。优先级处理引擎241可以包括用于分配优先级的规则集。
优先级处理引擎241还可以就对请求/事务的整体优先地位的确定而追踪网络提供商的应用或事务优先级之限制或规范。另外,优先级可以部分或全部由用户偏好确定,不管其是显式还是隐式的偏好。在一般情况下,用户可在设置不同优先级层次,例如对于会话或类型或应用的具体优先级(例如比较浏览会话、游戏会话与即时消息聊天会话,用户可以把游戏会话优先级设置为总是高于即时消息聊天会话,而后者优先级又高于网页浏览会话)。用户可以就具体的事务类型(例如使跨越所有应用之所有发送信息请求比消息删除请求具有更高的优先级,使所有日历相关的事件具有更高的优先级等)和/或特定的文件夹来设置特定应用的优先级(例如用户可以设置Facebook相关的事务比LinkedIn相关的事务具有更高的优先级)。
优先级处理引擎241可以追踪和解决不同实体设置的优先级中的冲突。例如,由用户指定的手动设置可能优先于设备操作系统设置,网络提供商参数/限制(例如为一个网络服务区域的默认设置、地理区域、对于一天中的特定时间的设置或基于服务/费用类型的设置)可能会限制任何用户指定的设置和/或应用设定的优先级。在一些情况下,接收自用户的手动同步请求可以覆盖一些、大部分或所有的优先级设置,其中被请求的同步会在被请求时被执行,而无论为此所请求操作单独分配的优先级或整体优先级排名如何。
优先级可以通过任何已知和/或方便的方式被内部定义和追踪,包括但不限于二进制表示、多值表示、分级表示,所有方式都被认为在所公开技术的范围之内。
表2
为说明起见,以上表2以二进制表示方案示出含有已分配优先级事务的一些例子。对额外的事件、请求、事务的类型来说,额外分配是可能的,并且如前所述,优先级分配可以通过更多或更少的粒度级别进行,例如在会话级或在应用级等。
如上表中举例所示,在一般情况下,低优先级的请求/事务可以包括更新消息状态为已读、未读、删除消息、删除联系人;更高优先级的请求/事务在某些情况下可能包括状态更新、新的IM聊天消息、新的电子邮件、日历事件更新/取消/删除、手机游戏会话中的事件、或其他娱乐相关的事件、网购或在线购物的购买确认、加载额外内容或下载内容的请求、联络簿相关的事件、更改设备设置的事务、位置感知或基于位置的事件/事务或任何其他由用户引发的或已知、预期为或怀疑用户在等待响应等的事件/请求/事务等。
收件箱修剪事件(例如电子邮件或任何其它类型的消息)通常被认为是低优先级的并且缺少其他紧迫事件,通常不会触发在设备250上的无线使用。具体来说,如果在计划的修剪事件时间无线电没有另外开启,则用来删除旧的电子邮件或其他内容的修剪事件可以是“附带”于其他通信的。例如,如果用户把偏好设置为‘保持消息7天’,则不是在超过7天的那一刻打开设备无线电来从设备250启动消息删除,而是将消息在下次打开无线电时删除。如果无线电功能已经打开,则修剪可按计划正常发生。
请求/事务管理器235可以使用请求的优先级(如通过优先级处理引擎241),以管理设备250输出流量进行资源优化(例如更有效使用设备的无线电来实现电池节约)。例如,如果由连接管理器265控制尚未开启无线电,则低于某个优先级次序的事务/请求可能不会触发设备250上的无线电使用。与此相反,如果事务请求被检测到在特定优先级,无线电控制器266可打开无线电,使这样的请求可以得到发送。
在一个实施方式中,优先级分配(例如由本地代理275或其他设备/实体确定的)可以用来使远程设备修改其与移动设备或无线设备进行通信的频率。例如,可对远程设备进行配置,以便在有更高重要性的数据要向移动设备或无线设备发送时发送通知到设备250,但在仅有低重要性数据时不发送通知。
在一个实施方式中,事务优先级可以结合用户活动特性被用于整形或管理流量,例如通过流量整形引擎255。例如,流量整形引擎255可等待从设备250发送低优先级的事务,作为对检测到用户处于休眠状态或非活跃状态一段时间的响应。此外,流量整形引擎255可以允许多个低优先级的事务进行积累来从设备250进行批量传送(例如通过批处理模块257)。在一个实施方式中,优先级可以由用户设置、配置或调整。例如,与表2中所示相同或类似形式的内容可以在设备250的用户界面上访问,例如由用户使用以调节或查看优先级。
批处理模块257可以根据一定的标准开始批量传输。例如,批量传输(例如多次事件发生的批量传输,其中一些发生在不同时间)可在检测到特定数量的低优先级事件后、或在第一个低优先级事件启动后经过一定时间之后发生。此外,批处理模块257可以在设备250上发起或检测到较高优先级事件时,启动累积起来的低优先级事件的批量传输。当无线电使用因为其他原因(例如从诸如主机服务器100或300的远程设备接收数据)被触发时,批量传输也可另外被启动。在一个实施方式中,即将发生的修剪事件(收件箱修剪)或任何其他低优先级的事件,都可以在批量传输发生时执行。
在一般情况下,批处理功能可在事件/事务级、应用级或会话级基于以下任何一项或其组合被禁用或启用:用户配置、设备限制/设置、制造商规范、网络提供商参数/限制、特定于平台的限制/设置、设备的OS设置等。在一个实施方式中,批量传输可以在应用/窗口/文件被关闭、退出或移动到后台时启动;用户可以选择在批量传输之前接收提示;用户也可以手动触发批量传输。
在一个实施方式中,本地代理275通过在缓存285上缓存数据在本地本地调整设备250上的无线电使用。当来自设备250的请求或事务可以由存储在缓存285中的内容来满足时,无线电控制器266不必激活无线电来将请求发送到远程实体(例如图1A和3A所示的主机服务器100、图1A和1B所示的服务器/提供商110的内容提供商/应用服务器)上去。这样,本地代理275可以使用本地缓存285和缓存策略管理器245在本地存储数据,用以满足数据请求,以消除或减少对设备无线电的使用,实现节约网络资源和设备电池消耗。
在充分利用本地缓存方面,一旦请求/事务管理器225截获设备250上应用的数据请求,本地资源库285就可以被查询,以确定是否有任何本地存储的响应,并且还确定该响应是否有效。当在本地缓存285上有一个有效的响应时,该响应可被提供给设备250上的应用而无需设备250访问蜂窝网络或无线宽带网络。
如果没有一个有效的响应,本地代理275可以查询一个远程代理以确定远程存储的响应是否有效(如,图3A所示的服务器代理325)。如果有效,远程存储的响应(如,图1B所示,其可存储在服务器缓存135或可选的缓存服务器199之上)可以被提供给移动设备,可能无需移动设备250访问蜂窝网络,从而减轻网络资源的消耗。
如果有效的缓存响应不可用,或者如果缓存响应不可用于所截取的数据请求,本地代理275,例如缓存策略管理器245,可以发送数据请求到远程代理(如图3A所示的服务器代理325),其将数据请求转发到内容源(如图1A所示的应用服务器/内容提供商110),并且自内容源的响应可以通过远程代理来提供,并将与图3A所示的主机服务器300联系做进一步的描述。缓存策略管理器245可以管理或处理使用各种协议的请求,包括但不限于HTTP、HTTPS、IMAP、POP、SMTP、XMPP和/或ActiveSync。缓存策略管理器245可以把本地数据库285中的数据请求响应作为缓存条目进行本地存储,以随后用于满足相同或相似的数据请求。
缓存策略管理器245可以请求远程代理监视数据请求响应,而在检测到对于数据请求的意外响应时,远程代理可以通知设备250。在这种情况下,在被通知有对于数据请求的意外响应时(例如新的数据、改变了的数据、附加数据等)缓存策略管理器245可擦除或替换设备250上的本地存储的响应。在一个实施方式中,缓存策略管理器245能够检测或识别用于特定请求的协议,包括但不限于HTTP、HTTPS、IMAP、POP、SMTP、XMPP和/或ActiveSync。在一个实施方式中,本地代理275上的特定应用的处理器(例如通过缓存策略管理器245的应用协议模块246)允许对任何可以被端口映射到分布式代理(如图3A所示的端口映射在代理服务器325上)中的处理器的协议进行优化。
在一个实施方式中,本地代理275通知远程代理,使得远程代理可以在将结果返回至设备250之前(例如当对内容源的数据请求取得了与要返回给移动设备的结果相同的结果时),监视接收自内容源进行数据请求的响应是否有更改的结果。在一般情况下,本地代理275可以使用本地缓存的内容为设备250上的应用模拟应用服务器响应。这能够防止将蜂窝网络的利用用于其中新的/有变化的数据不可用的事务,从而解放了网络资源并防止网络拥塞。
在一个实施方式中,本地代理275包括了一个应用行为检测器236来跟踪、检测、观察、监测可在设备250上访问或安装的应用(例如代理感知和/或代理无感知应用210和220)。应用行为或设备250上可访问到的一个或多个应用所检测到行为(例如通过模式检测器237)的模式可以由本地代理275使用,以优化满足这些应用的数据需求所需的无线网络流量。
例如,基于多个应用被检测到的行为,流量整形引擎255可以对齐至少由一些应用通过网络(无线网络)所作的内容请求(例如经由调整模块256)。调整模块256可延缓或加快一些早期提出的请求以实现对齐。当请求被对齐时,流量整形引擎255可以利用连接管理器在网络中轮询从而满足应用数据请求。多个应用的内容请求可以基于行为模式或规则/设置来对齐,例如包括多个应用所请求的内容类型(音频、视频、文本等)、设备(例如移动或无线设备)参数和/或网络参数/流量状况、网络服务提供商的约束/规范等。
在一个实施方式中,模式检测器237可检测在多个应用中由其完成的重现,例如可通过跟踪应用行为中的模式进行。例如,被追踪的模式可以包括作为后台进程检测应用定期、在一天的特定时间、在一周中的特定天、可预测方式的规则时间、以特定频率、以响应于特定类型事件的特定频率、响应于特定类型的用户查询、请求内容相同的频率、做出相同请求所用的频率、请求之间的间隔、应用发出请求或上述的任何组合轮询一个应用服务器。
此类重现可以由流量整形引擎255使用,以卸载来自内容源(例如来自图1A所示的应用/内容提供商110)内容的轮询,该内容源将在移动设备或无线设备250上执行的应用请求,代替的由处于设备250远程的代理服务器(例如图1B所示的代理服务器125或图3A所示的代理服务器325)执行。流量整形引擎255可以在重现与规则匹配时决定卸载轮询。例如,对于具有完全相同的内容或者返回值的相同资源的多个出现或请求,或基于对请求和相应之间的可重复时长的检测,诸如在白天的特定时间请求的资源。轮询的卸载可以减少移动设备250为了重复的内容轮询与内容源建立无线(蜂窝或其他无线宽带)连接所需的带宽消耗量。
作为轮询卸载的结果,在内容源的轮询中没有检测内容变化时,可提供存储在本地缓存285上的本地缓存内容来满足设备250上的数据请求。因此,当数据没有变化时,应用数据的需求可以得到满足,而无需在无线网络中启用无线电使用或占用蜂窝带宽。当数据已经改变和/或新数据已被接收时,轮询被卸载到的远程实体可以通知设备250。远程实体可以是图3A所示的主机服务器300。
在一个实施方式中,本地代理275可以减轻对周期保活消息(心跳消息)的需要/使用,以维持TCP/IP连接,这种需要/使用可能有大量功耗,从而对移动设备的电池寿命产生有害影响。本地代理(例如心跳管理器267)中的连接管理器265可以检测、识别和拦截发送自应用的任何或所有心跳(保活)消息。
心跳管理器267可以防止任何或所有这类心跳消息通过蜂窝或其他网络发送,而是依靠分布式代理系统(例如图1B中所示)的服务器组件生成并发送心跳消息,来维持与后端(例如图1A例子中的应用服务器/提供商110)的连接。
本地代理275一般提供单独管理器、模块和/或引擎描述的功能中的任何一个或一部分。本地代理275和设备250可以包括额外或更少的组件;包括全部或部分更多或更少的功能,而不偏离本公开内容的新技术。
图2B描绘了说明图2A的示例中所示的缓存系统中的组件的另一示例的框图。其能够缓存和适配用于移动应用行为和/或网络条件的缓存策略。
在一个实施例中,缓存策略管理器245包括元数据生成器203,缓存查找引擎205,缓存适当决策引擎246,轮询调度生成器247,应用协议模块248,缓存或连接选择引擎249和/或本地缓存无效器244。缓存适当决策引擎246可以进一步包括时间预测器246a,内容预测器246b,请求分析仪246c,和/或响应分析仪246d,和缓存或连接选择引擎249,包括一个响应调度器249a。元数据产生器203和/或缓存查找引擎205耦合到缓存285(或本地缓存)以修改或添加缓存条目或查询。
缓存查找引擎205年可进一步包括ID或URI过滤器205a,本地缓存无效器244可进一步包括TTL管理器244a,和轮询调度生成器247可进一步包括调度表更新引擎247a和/或时间调整引擎247B。缓存策略管理器245的一个实施例包括应用缓存策略库243。在一个实施例中,应用行为探测器236包括一个模式检测器237、轮询间隔探测器238,应用概要文件生成器239,和/或优先级引擎241。轮询间隔探测器238可进一步包括长轮询探测器238a,具有响应/请求跟踪引擎238b。轮询间隔探测器238可进一步包括长轮询寻找检测器238C。应用文件生成器239可进一步包括响应延迟间隔追踪器239A。
模式检测器237,应用文件生成器239,和优先级引擎241的描述也与图2A所描述的模式检测器相联系。一个实施例进一步包括应用文件存储库242可由本地代理275使用以存储关于应用文件的信息或元数据(如、行为,模式,HTTP请求类型,等等)。
缓存适当决策引擎246可以检测,评估,或者确定来自内容源(如图1B所示的应用服务器/内容提供商110)的内容是否与移动设备250交互,并且是否具有适合缓存的内容。例如,决策引擎246可以使用关于为在移动设备250出发起的请求而被接收的请求和/或响应的信息,来确定缓存能力,潜在的可缓存性或非可缓存性。在某些情况下,决策引擎246可以初步验证请求是否直接列入黑名单目的地或请求本身是否源于一个黑名单的客户端或应用。如果是,额外的处理和分析可能不能被决策引擎246执行并且请求可能被允许通过空气发送到服务器来满足需求。目标黑名单或应用/客户端(如,移动应用)在本地代理处维护(例如,应用文件存储库242)或远程的(如,代理服务器325或另一个实体)。
在一个实施例中,决策引擎246收集关于在移动设备250处生成的应用或客户端请求的信息,例如经由请求分析器246c。请求信息可以包括请求特性信息,例如包括请求方法。例如,请求方法可以指示由移动应用或客户端生成的HTTP请求的类型。 在一个实施例中,如果请求方法是GET请求或POST请求,则对请求的响应可以被识别为可缓存的或潜在可缓存的。其他类型的请求(例如,OPTIONS,HEAD,PUT,DELETE,TRACE或CONNECT)可能会也可能不会被缓存。一般来说,具有不可缓存的请求方法的HTTP请求将不会被缓存。
请求特征信息可以进一步包括关于请求大小的信息,例如,响应体积的大小超过一定规模的请求(如,HTTP请求)将不被缓存。例如,可以确定缓存性如果请求的信息表明请求体积大小不超过特定大小。在某些情况下,最大缓存请求体积大小可以设置为8092个字节。在其他情况下,可以使用不同的值,依赖网络容量或网络运营商特定设置。
在某些情况下,来自给定的应用服务器/内容提供商(如,图1B所示的服务器/内容提供商110)的内容被确定为适合基于一组标准的缓存,例如,标准指定了被内容源请求的内容的时间关键性。在一个实施例中,本地代理(如图1B和图2A所示的本地代理175或275)申请选择标准以存储来自主机服务器内容,主服务器被应用请求作为移动设备本地缓存上的缓存组件以满足应用的后续请求。
缓存适当决策引擎246,进一步基于从移动设备250发送请求的检测模式(如,通过设备250上的移动应用或其他类型的客户端)和/或收到响应的模式,可以检测请求或响应的可预测性。例如,决策引擎246收集的请求特征信息(如,请求分析仪246C)可以进一步包括在请求和由移动设备相同的客户端生成的其他请求之间的周期性信息或指向相同主机的其他请求(如,具有相似或相同的检验参数)。
周期可以被决策引擎246或请求分析仪246C周期性检测到,当请求和由相同的客户端生成的其他请求在一个固定速率或近似固定速率,或与一些可识别的动态速率或部分或全部可再生的变化模式下发生。如果请求是由一些可识别的模式(如,定期,间隔探测模式,或趋势(例如,增加,减少,常数等)作出,则时间预测器246A可以确定由设备上给定的应用作出的请求,至少从时间的角度来看该应用是可预测的和可以识别潜在合适缓存的。
可识别的模式或趋势通常可以包括任何可以被模拟的应用或客户端行为,不管是否在本地。例如,在移动设备250上的本地代理275或远程模拟,例如,由主机300上的代理服务器325,或结合本地和远程模拟来仿真应用行为。
在一个实施例中,决策引擎246,例如,通过响应分析仪246d,可以收集信息关于响应应用或移动设备250生成的客户端请求。响应通常接收服务器或主机的应用 (如,移动应用)或移动设备250上发送请求的客户端。在某些实施例中,移动客户端或应用可以是应用的移动版本(如,社交网络、搜索、旅游管理器、语音信箱、联系管理器,电子邮件)或通过web浏览器或桌面客户端访问网站。
例如,响应特征信息可以包括是否传输编码或分块传输编码的指示用于发送响应。在某些情况下,通过传输编码或分块传输编码以响应HTTP请求是不缓存的,因此也被进一步分析。分块响应的基本原理通常是大型和非优的,用以缓存,因为这些事物的处理可能减缓总体执行。因此,在一个实施例中,缓存能力或潜在的缓存能力可以被确定当传输编码不是用于发送响应时。
此外,响应特性信息可以包括相关状态码的响应,可以通过响应分析仪246d识别。在某些情况下,不可缓存状态码的HTTP响应通常是不能缓存的。响应分析仪246d可以从响应中提取状态代码和确定它是否匹配缓存或不可缓存的状态代码。一些缓存状态码包括举例:200-好的,301-重定向,302-发现,300-查看其他,304-不修改,307-临时重定向,或500–内部服务器错误。一些不可缓存的状态码可以包括,例如,403-禁止或404-未找到。
在一个实施例中,可缓存性或潜在的可缓存性可以被确定,如果关于响应的信息并不表明不可缓存的状态代码或表明缓存状态代码。如果响应分析仪246d检测到与一给定的响应相关的不可缓存的状态代码,具体的事物(请求/响应对)可能被排除在进一步的处理之外并且被确定为临时的,半永久的,或永久的不可缓存的。如果这些状态代码表示缓存能力,事务(例如,请求和/或响应对)可能会受到进一步的处理和分析来确定缓存能力。
响应特性信息还可以包括响应大小信息。在一般情况下,响应可以缓存在本地移动设备250,如果响应不超过一定规模。在某些情况下,默认的最大缓存的响应大小设置为128KB。在其他情况下,最大可缓存的响应大小可能不同,和/或可根据运行条件,网络条件,网络容量,用户偏好,网络运营商的要求,或其他特定应用,特定用户,和/或设备的具体原因进行动态调整。在一个实施例中,响应分析仪246d可以识别响应的大小,并且如果响应的大小没有超出给定的阈值或最大值,则可以确定缓存能力或潜在的缓存能力。
此外,响应特性信息可以包括对于请求的响应的响应主体信息和对在移动设备上的同一客户产生的或指向同一内容主机或应用服务器的其他请求的其他响应。用于响应的响应主体信息可以跟其他响应比较,例如,通过响应分析仪246d,以防止动态内容(或响应内容经常变化并且不能有效地提供缓存条目,如财务数据、股票报价、新闻、实时的体育赛事活动,等)的缓存,如缓存条目服务的内容不再相关或更新。
缓存适当决策引擎246(例如,内容预测器246b)可以确定重复性或识别标志的可重复性,潜在可重复性和可预测性以响应接收到的内容源(例如,内容主机/应用服务器110如图1A-B所示)。可检测到的可重复性,例如,通过追踪至少两个从内容源接收到的响应并确定该响应是否相同而被检测到。例如,缓存能力可以被确定,通过响应分析仪246d,如果用于响应的响应本体信息与用同样的手机客户端或指向相同的主机/服务器发送的其他响应相同或基本相同。这两种响应可能是或可能不是响应于连续请求而发送的响应。在一个实施例中,给定应用请求响应接收的哈希值可用于确定在一般和/或为特定请求的内容的可重复性(有或不具有启发)。对于一些应用或在某些情况下可能需要另外的相同响应。
重复性在收到的内容中不需要100%确定。例如,响应可以被确定为是可重复的,如果某个数字或某个百分比的响应是相同或类似的。可以在由默认设置或应用基于生成的请求(例如,应用在不断更新中是否是高度动态的,或在不频繁更新下是少动态的)设置而选择的时间段内追踪特定数量或特定百分比的相同/类似响应。任何表明预测性或可重复性,或潜在可重复性,可被分布式系统用于缓存提供给请求应用或移动设备250上的客户端的内容。
在一个实施例中,对于一个长轮询请求,本地代理175可以开始在第三个请求时缓存响应,当最先两个响应的响应延迟时间为相同时,大致相同时,或检测到间隔增加时。在一般情况下,接收的响应的最先两个响应应该是相同的,在确认收到第三请求的第三响应是相同的(例如,如果R0=R1=R2),第三响应可以本地缓存在移动设备上。根据应用类型、数据类型、内容类型、用户偏好、或负载/网络运营商规范,较少或更多相同的响应需要开始缓存。
对长轮询的相同响应增加响应延迟可以表明搜索周期(例如,一个时期,在移动设备上的应用/客户端正在寻找一个在请求和响应之间给定网络允许的最长时间,时序图显示时序特性如图8所示),如应用行为检测器236的长轮询搜索探测器238c检测。
下述示例使用T0,T1,T2描述,其中T表示延时,在当请求被发送和当响应(如,响应标头)被检测/接受连续请求之间:
如上述时间序列所示,T0<T1<T2,这可能表明长轮询的搜索模式当尚未达到或超过网络超时时。此外,如果响应R0、R1和R2收到的三个请求是相同的,R2可以被缓存。在这个例子中,R2是缓存在长轮询搜索期间无需等待长轮询以解决,从而加快响应缓存(例如,这是可选加速缓存行为可以实现所有或选定的应用)。
因此,本地代理275可以指定可以从上面显示的时间序列中提取(如,轮询表,轮询间隔,轮询类型)到代理服务器并开始缓存的信息,并开始要求代理服务器开始轮询和监控源(例如,使用任何T0,T1,T2作为轮询间隔,但通常T2,或最大的检测间隔是不定时的,并接收来自源的响应并将发送到图3A的代理服务器325中用以使用轮询内容源(例如,应用服务器/服务提供商310))。
然而,如果被检测到的时间间隔被缩短,应用(例如,移动应用)/客户端可能仍在寻找一个响应可以可靠地从内容源接收的时间间隔(例如,应用/服务器/供应商110或310),并且这样的缓存通常不会开始,直到请求/响应间隔表示相同的时间间隔或时间间隔增加,例如,长轮询类型请求。
下述示例使用T0,T1,T2描述,其中T表示延时,在当请求被发送和当响应(如,响应标头)被检测/接收连续请求之间:
如果响应延迟模式T1<T2<T3>T4被检测到,如上述时间序列所示(例如,通过应用行为检测器236的长轮询搜索探测器238c检测),可以确定的是,T3可能超出网络超时并在长轮询搜索周期之外。在 Request4(t)中,由于网络、应用、服务器或其他原因,在响应发送或可用的响应之前,响应可能未接收到。Request4(t)(T4后),如果一个响应(例如,Response4(t))检测或接收,然后本地代理275可以使用响应缓存(如果满足内容重复性条件)。本地代理也可以使用T4作为代理服务器监控/轮询内容源的轮询调度集的轮询间隔。
注意上面的说明表明,缓存当长轮询在检测增加相应延时的事件中的搜索模式时开始,只要响应被接收并没有超给定请求的时间。这可以被称为在长轮询搜索中的可选加速缓存。缓存也可以开始在搜索模式之后(例如,在轮询请求已经解决了一个常数或接近恒定的延迟值)已经完成。请注意,搜索可能会或可能不会出现在长轮询或当搜索开始时;代理275一般可以检测到这一决定,并确定是否开始在搜索期间(对相同的响应增加时间间隔)缓存,或等待,直到找到一个稳定值。
在一个实施例中,缓存适当决策引擎246的时间预测器246a可以追踪时间响应,接收自应用的输出请求(例如,移动应用)或客户端以检测任何可识别的模式,可以部分或完全重现,使得本地缓存的响应可以在移动设备250上以模拟内容源(例如,应用服务器/内容提供商110或310)行为的方式提供给发出请求的客户端。例如,该方式中(如,从时间角度)响应或内容将被传递到该设备250的请求应用/客户端上。这确保用户体验保护当相应应用或移动客户端请求的响应是服务于本地和/或远程缓存,而不是直接从内容源(例如,应用,内容提供商110或310)被检索/接收。
在一个实施例中,决策引擎246或时间预测器246a确定给定应用(例如,移动应用)或客户端的时间特征,例如,请求/响应追踪引擎238b和/或应用文件生成器239(例如,响应延时间隔追踪器239a)。使用时序特征,时间预测器246a确定响应请求的内容是否合适的或是潜在适合用于缓存。例如,从一个给定的应用的连续两个请求之间的轮询请求间隔可以用来确定是否请求间隔是可重复的(例如,恒定的,接近恒定的,增加模式,减少模式等),可以被预测,这种重复至少有一些时间是精确或接近公差范围内的。
在某些情况下,特定应用,应用的多个请求,或者多个应用的特定请求类型的时间特征能够存储在应用文件存储库242中。应用文件存储库242可以存储任何类型的信息或元数据关于应用的请求/响应特性,包括时间模式,时间重复性,内容可重复性,等。
应用文件存储库242还可以存储元数据,表示用于给定应用的请求类型(例如,长时间轮询,长期持有的HTTP请求,HTTP流,推送,可控推送,等)。应用文件表明应用的请求类型,应用可以用在后续被检测的相同/相似的请求中,或当请求从已分类的应用中检测。在这种方式下,给定请求类型的时间特征或特定的应用的请求被追踪和/或分析,不需要再分析。
应用文件可与有效时间相关联(例如,或一个默认的截止时间)。应用文件的截止时间的使用,或者对于各方面的应用或请求文件基于一个个案例。应用的有效时间或实际截止时间可以设置为默认值或单独确定,或将其结合。应用文件也可以是特定于无线网络,物理网络,网络运营商,或特定的运营商。
一个实施例包括应用黑名单管理器201。应用黑名单管理器201可以耦合到应用缓存策略库243,并且可以部分或全部内部本地代理或缓存策略管理器245。同样,黑名单管理器201可以部分或全部内部到本地代理或应用程序行为检测器236。黑名单管理201能够聚集,跟踪、更新、管理、调整,或动态监测服务器/主机的目的地列表,该目的地列表为‘黑名单’,或被永久的或暂时的标记为不缓存的。目的地黑名单,在请求中被标记时,可潜在的被用来允许请求发送到(蜂窝)网络用于服务。对请求的额外处理可能不被执行,因为它被检测并直接列入黑名单目的地。
黑名单目的地可以在应用缓存策略库243中通过包括特定URIs标识符或包括URI模式的标识符模式的地址标识符来确定。一般来说,黑名单目的地可以被任何一方于任何原因设置或修改,包括用户(移动设备250所有者/使用者),设备250的操作系统/移动平台,目的地本身,网络运营商(蜂窝网络的),网络服务提供商,其他第三方,或根据知道是不可缓存的/不适合缓存的一个应用的目的地列表。基于分析或处理,目的地黑名单中的一些条目可能包括聚集的目的地,通过本地代理进行处理(例如,缓存适当决策引擎246)。
例如,在移动设备上的响应已被认定为不适合缓存的应用或移动客户端能够被添加到黑名单。其相应的主机/服务器可以被额外添加到或代替移动设备250上的请求应用/客户端的标识。一些或全部由代理系统识别的客户端可以添加到黑名单。例如,对于临时被标识为不适合缓存的所有应用客户端或应用,只有那些具有特定的检测特征(基于时间、周期、频率响应内容的变化,内容的可预测性,大小,等等)的应用客户端或应用可以被列入黑名单。
黑名单条目可能包括应用请求列表或移动设备上的客户端的请求(而不是目的地),这样,当检测到请求从一个给定的应用或给定的客户端时,其可以通过网络发送一个响应,由于黑名单的客户/应用响应在大多数情况下不缓存。
一个给定的应用配置文件也可以被不同对待或处理(例如,本地代理275和远程代理325的不同行为)取决于与移动设备相关的移动帐户,通过它应用被访问。例如,一个较高的付费帐户,或首要帐户可允许更高频率访问无线网络或更高的带宽余量,从而影响缓存策略在本地代理275和代理服务器325之间实现,与资源保护相比具有更好的性能。一个给定的应用配置文件在不同的无线网络条件下可能被不同对待或被不同处理(例如,基于拥塞或网络中断,等)。
注意,缓存适当性可以为了移动设备250上的多个客户端或应用而被确定、追踪和管理。缓存适当性也可以为了,由移动设备250的上给定的客户端或应用发起的不同请求或请求类型而被确定。缓存策略管理器245,随着时间预测器246a和/或内容预测器246b试探性地确定或估计预测性或潜在的可预测性,可以追踪,管理和存储缓存信息,针对不同应用或给定应用的不同请求。缓存信息也可能包括条件(例如,应用可以在一天中的特定时间被缓存,或一个星期的特定几天,或给定应用的特定请求可以被缓存,或给定目标地址的所有请求可以被缓存),在这些条件下缓存是合适的,其可以被缓存适当决策引擎246确定和/或追踪并且在适当时在耦合到缓存适当决策引擎246的应用缓存策略库243中被存储和/或更新。
当检测到相同的请求时,可以在后续使用应用缓存策略库243中的关于请求,应用,和/或相关条件的可缓存性的信息。在这种方式下,决策引擎246或时间和内容的预测246a/b不需要跟踪和分析请求/响应时间和内容特征做出关于缓存能力评估。此外,在某些情况下,缓存信息可以直接通信或通过主机服务器(例如,代理服务器325服务器300)与其他移动设备的本地代理服务器共享。
例如,各种移动设备上的本地代理275检测的缓存信息可以被发送到远程主机服务器或主机服务器的代理服务器325上(如图3A所示的主机服务器300或代理服务器325,图1A-B所示的主机100和代理服务器125)。远程主机或代理服务器可以分发关于特定于应用的信息,特定请求的缓存信息和/或任何相关条件到各种移动设备或无线网络中的本地代理或多个无线网络的本地代理(相同服务供应商或多个无线服务提供商),供其使用。
在一般情况下,缓存的选择标准可以进一步包括,例如但不限于,表明是否移动设备是活跃的或不活跃的移动设备状态,网络条件,和/或无线电覆盖统计。缓存适当决策引擎246可以是任何一个或任何组合的标准,并以任何顺序,确定缓存可能合适的来源。
一旦应用服务器/内容提供商识别或检测到内容,该内容适合于移动设备250的本地缓存,则缓存策略管理器245可以处理缓存相关的内容,该内容接收于识别源,该识别源通过存储从内容源接收的内容作为本地缓存中的缓存组件(例如,本地缓存185或285分别如图1B和图2A所示)在移动装置250上。
响应可以作为缓存条目被存储在缓存285(例如,也称为的本地缓存)。处理对请求的响应请之外,缓存的条目可以包括具有关于响应的缓存的附加信息的响应元数据。元数据可能是元数据产生器203产生的并包含,例如定时数据,诸如缓存的访问时间或者缓存的创造时间。元数据可以包括附加信息,例如适合用于确定作为缓存条目被存储的响应是否被用于满足后续响应的任何信息。例如,元数据信息可以进一步包括,请求定时历史(例如,包括请求时间,请求开始时间,请求结束时间),哈希的请求和/或响应,时间间隔或时间间隔的变化等。
缓存条目通常存储在与有效时间(TTL)关联的缓存285中,例如,其由缓存无效器244的TTL管理器244a指定或确定。缓存条目的有效时间是条目在缓存285中维持的总时间,不管该响应是否仍然有效,或是否与在移动设备250上的给定请求或客户端/应用程序相关。例如,如果给定缓存条目的有效时间设置为12小时,缓存被清除,删除,或以其他方式表明有超过有效时间,即使响应本身仍然包含在条目中并且适用相关请求。
默认的有效时间可以自动使用所有条目,除非另有规定(例如,由TTL管理器244a),或每个缓存条目可以用其个别的TTL创建(例如,由TTL管理器244a基于各种动态或静态标准被确定)。请注意,每个条目都可以有一个单独的时间与响应数据和任何相关的元数据关联。在某些情况下,相关的元数据可能与响应的数据有不同的有效时间(例如,一个较长的有效时间)。
具有用于缓存的内容源可以另外或可替代的,被确定为远程的并且与移动设备250进行无线通信的代理服务器(例如,分别示出在图1B和图3A中的代理服务器125或325),使得代理服务器能够监控内容源(例如,应用服务器/内容提供商110)。同样,本地代理(例如,分别示出在图1B和图2A中的本地代理175或275)可以向代理服务器标志从一个特定的应用服务器/内容提供商接收到的内容作为缓存组件被存储在本地缓存285中。
一旦内容被本地缓存,缓存策略管理器245,在接收以接触应用服务器/内容主机(例如,110或310)的将来的轮询请求时,可以从本地缓存检索缓存的元素,以响应在移动设备的轮询请求,使得移动设备无线电未激活的服务于轮询请求。例如,缓存查找引擎205可以查询缓存285以确定要响应于响应的响应。响应可以从缓存中提供响应来识别匹配的缓存条目,也可以使用存储在缓存中的响应的任何元数据。缓存条目可以通过一个请求的URI或另一种类型的标识符(例如,通过ID或URI过滤器205A)的缓存查找引擎被查询。缓存查找引擎205可以进一步使用存储在匹配的缓存中的元数据(例如,提取任何时间信息或其他相关信息),以确定是否响应仍然是适合于使用在当前请求服务。
注意到,该缓存查找可以通过引擎205使用多种策略中的一个或多个来执行。在一个实施例中,多个查找策略可以在存储在缓存285中的每个条目中顺序执行,直到至少有一个策略识别道一匹配的缓存条目。用于执行缓存查找的策略可以包括一个严格匹配标准或允许非匹配参数的匹配标准。
例如,查找引擎205执行严格的匹配策略,其搜索在代理尝试标识缓存条目的当前请求中引用的标识符(例如,主机或资源的URI)与同缓存条目一起存储的标识符之间的精确匹配。在这种情况下,标识符包括URIs或URLs,严格匹配的匹配算法将搜索缓存条目,其中所有参数属于URLs匹配。例如:
例1
1.缓存包含条目http://test.com/products/
2.请求被产生至URI http://test.com/products/
严格的策略会找到一个匹配,因为两个URI是相同的。
例2
1.缓存包含条目
2.请求被产生至
在上述严格的策略下,因为URIs不同于查询参数,匹配不会被发现。
在另一个例子中,查找引擎205查找一个缓存条目,该标识符部分匹配当前请求中引用的标识符,该代理试图找出匹配的缓存条目。例如,查找引擎205可以通过查询具有标识符的缓存条目,该标识符不同于通过查询参数值的请求标识符。利用该策略,查找引擎205可以收集用于多个先前的请求的信息(例如,标识符的任意参数列表)以在稍后检查在当前的请求中检测任意参数。例如,在缓存条目与URI或URL标识符一起被存储的情况下,查询引擎搜索具有与查询参数不同的URI的缓存条目。如果找到,则引擎205可以检查在先前的请求期间收集的信息(例如任意参数列表)的缓存条目,并检查在当前URI/URL中检测到的或从当前的URI/URL提取的任意参数是否属于任意参数列表。
例1
1.缓存包含条目,其中查询被标记为任意的。
2.请求被产生至
匹配将会被找到,因为查询参数被标记为任意的。
例2
1.缓存包含条目,其中查询为标记为任意的。
2.请求被产生至
匹配将不会被找到,因为当前请求包含在缓存条目中没有被标记为任意的排序参数
检测缓存命中的附加策略可以被利用。这些策略可以单独使用或在任何组合中实现。当这些策略中的任何一个决定匹配时,可以确定缓存命中率。当查找引擎205确定所请求的数据不能从缓存285中送达时,因为任何原因,可能会显示一个缓存未命中。例如,没有为任何或所有使用的查找策略标识缓存条目时,可确定缓存未命中。
当匹配的缓存条目存在,但被确定为无效或与当前请求不相关时,也可以被确定为缓存未命中。例如,查找引擎205可以进一步分析元数据(例如,它可能包括与匹配的缓存条目相关联的缓存条目的时间数据),以确定它是否仍然适合用于响应当前的请求。
当查找引擎205已确定缓存命中(例如,表示所请求的数据可以从缓存中送达),在匹配的缓存条目中存储的响应可以被缓存服务来满足应用/客户端的请求。
通过使用存储在缓存285的缓存条目来服务请求,网络带宽和其他资源不需要用于请求/接收可能没有从已在移动设备250上接收到的响应改变的轮询响应。通过在本地缓存285中的缓存条目如此本地的服务和实现应用(例如,移动应用)请求允许更有效的资源和移动网络流量的利用以及管理,因为不需要通过进一步消耗带宽的无线网络发送请求。在一般情况下,缓存285可以维持移动设备250电源开启/关闭之间,并跨越应用/客户端保持刷新和重新启动。
例如,本地代理275,一旦收到来自其移动设备250或移动设备250上的应用或其他类型客户的输出请求,可以拦截请求并确定是否允许在移动设备250上的本地缓存285中缓存响应。如果允许,本地代理275使用在移动设备的缓存中的缓存响应来响应输出请求。因此,发出的请求可以被满足,而不需要通过无线网络发送请求,从而节约网络资源和电池消耗。
在一个实施例中,对设备250上请求应用/客户端的响应被定时为对应于内容服务器将通过持久连接对输出请求进行相应的方式(例如,通过持续的连接,或长期保持的HTTP连接,长轮询式连接,其将在没有本地代理的情况下被建立)。响应时间可以通过由本地代理275效仿和模拟来保存应用的行为,由此最终用户体验不受影响,或者最小化来自本地缓存285的提供存储内容的影响,相较于将要从内容源(例如,内容主机/应用服务器110的图1A-B)收到的新内容的影响。可在公差参数内精确的复制或估计定时,其可以被用户忽视或被应用类似的处理,从而不会导致出现操作问题。
例如,输出请求可以是一个针对内容服务器(例如,应用服务器/内容提供商的图1A-1B实例)的持续连接请求。在与一个内容源(服务器)持久连接(例如,长轮询,COMET式推送或异步HTTP请求中的任何其他推送模拟,长期持有的HTTP请求,HTTP流媒体,或其他)中,连接在请求被发送后将保持一段时间。在移动设备和服务器之间的连接通常持续到内容被允许从服务器发送到移动设备。因此,当一个长轮询请求发送和接收来自内容源的响应时,通常会有一些延迟时间。如果该内容源在一段时间内没有提供响应,则该连接也可能由于网络原因未发送响应而终止(例如,套接字关闭)。
因此,为了模拟从内容服务器经持续连接(例如,长轮询方式连接)发送的响应,对内容服务器响应的方式可以通过允许在具有缓存的响应的输出请求之前经过的一段时间间隔来模拟。例如,时间间隔的长度可以基于请求的请求或基于应用的应用(基于客户端的客户端)确定。
在一个实施例中,根据在移动设备上的应用的请求特征(例如,时间特性)来确定时间间隔,该应用来自原始输出请求。例如,查询请求的时间间隔(例如,它可以被追踪,检测,并通过轮询间隔探测器238的长轮询探测器238a确定)可以用来确定在响应本地缓存条目的请求和由响应调度器249a管理之前的等待时间间隔。
缓存策略管理器245的一个实施例包括一个轮询调度生成器247,它可以为移动设备250上的一个或多个应用生成轮询调度。一个物理上可区分的和/或与移动设备250分离的实体可以利用轮询调度指定轮询间隔,该轮询间隔用于代表移动设备监视一个或多个应用的内容源(因此,缓存的响应可以通过定期轮询被直接请求的主机服务器(主机服务器110或310)被验证)。举一个例子,代理服务器(例如,代理服务器125或325在图1B和图3B-C实例)就是可以在移动设备250上的监控内容源的这样一个外部实体。
如根据移动设备向内容源的轮询请求之间的间隔,可以确定轮询调度(例如,包括轮询的速率/频率)。在移动设备250(由本地代理)可以确定轮询时间或速率。在一个实施例中,该应用行为检测器236中的轮询间隔检测器238可以监视来自移动设备250的内容源的轮询请求,以确定任何或所有应用(例如,移动应用)的轮询请求之间的间隔。
举例来说,轮询间隔探测器238可以在设备250上为应用或客户端追踪请求和响应。在一个实施例中,在检测到由移动设备250上的应用(例如,移动应用)由相同的移动客户端或应用(如移动应用)发起的输出请求之前,跟踪连续请求。可以使用从响应缓存请求中收集的请求信息来确定轮询速率。在一个实施例中,该速率是由相同客户端生成的请求产生的在先请求之间的平均时间间隔来确定的。例如,第一个间隔可以在当前请求和先前请求之间计算,第二个间隔可以在两个先前请求之间计算。轮询速率可以由第一个间隔和第二个间隔的平均值被设置,并在设置缓存策略时发送到代理服务器。
可以在生成平均值时计算替代间隔;例如,除了两个以前的请求外,可以使用多个先前的请求,并且可以在计算平均值中使用两个以上的时间间隔。在一般情况下,计算时间间隔中,一个给定的请求不必导致从主机服务器/内容源接收的响应,以便使用它进行时间间隔计算。也就是说,只要该请求被检测到,即使发送请求失败,或者响应检索失败,使用给定请求的时间特性都可以用来计算时间间隔。
轮询进度生成器247的一个实施例,包括一个调度更新引擎247a和/或时间调整引擎247b。调度更新引擎247a可以根据检测到从设备250上的客户端或应用(例如,移动应用)生成的实际请求的间隔变化来确定给定的应用服务器/内容主机的速率或轮询间隔从预先设定的值进行更新的需要。
举例来说,现在可以以不同的请求间隔从应用(例如,移动应用)或客户端发送确定了监测速率的请求。调度更新引擎247a可以确定实际请求的更新的轮询间隔并且生成不同于先前设定的速率的新速率,以代表移动设备250轮询主机。在蜂窝网络中,更新轮询速率可以传送到远程代理服务器(代理服务器325),用于远程代理来监视给定的主机。在某些情况下,更新轮询速率可以在远程代理或监测主机的远程实体上确定。
在一个实施例中,时间调整引擎247b可以进一步优化轮询调度生成以监控应用服务器/内容源(110或310)。例如,时间调整引擎247b可以任意指定一个时间开始对代理服务器轮询。例如,除了设置代理服务器的轮询间隔以监测应用,服务器/内容主机还可以指定在移动客户端/应用生成实际请求的时间。
然而,在某些情况下,由于固有传输延迟或增加的网络延迟或其他类型的延迟,远程代理服务器接收来自本地代理的具有一些延时(例如,几分钟,几秒)的轮询设置。这具有在移动客户端/应用生成请求之后在源处检测的响应变化的效果,其导致当响应不再是当前或有效而被再次被提供给应用之后发生缓存响应的无效。这种差异进一步在图21的数据时间图中解释说明。
为了解决这个在其无效之前再次服务于过期内容的非最优结果,时间调整引擎247b可以指定除了速率之外的轮询应该开始的时间(t0),当通过移动的应用/客户端产生请求时,指定的初始时间t0可以被指定作为代理服务器325的时间,这个时间比移动应用/客户端产生请求的实际时间要少。这种方式,所述服务器在移动客户端产生实际请求之前对资源稍作轮询,以至任何内容的变化都可以在真实的应用请求之前被检测到。这可以防止在提供新内容之前再次提供无效或不相关的过时的内容/响应。
在一个实施例中,检测来自于一个移动设备250的输出请求,来完成在来自于移动设备250上同样应用或者客户端的在先请求的时间特性基础上的持续连接(例如一个长轮询、COMET式推送和长期保持(HTTP)请求)。例如,请求和/或通讯响应可以通过轮询间隔检测器238的长轮询检测器238a的请求/响应追踪引擎238b追踪到。
连续请求的时间特性可以被确定以为应用或者客户端建立一个轮询调度。所述轮询调度可以用于监控内容源(内容源/应用服务器)的内容变化,这样,移动设备250中储存于本地缓存的缓存内容可以被恰当管理(例如被更新或者被丢弃)。在一个实施例中,所述时间特性可包括,例如响应延迟时间(‘D’)和/或空闲时间(‘IT’)。
在一个实施例中,请求/响应追踪引擎238b可以追踪请求和响应来终止、计算和/或判断应用或者客户端请求的时序图。
例如,请求/响应追踪引擎238b发现由所述移动设备上的客户端发出的第一请求(请求0)和在接收到响应之后由所述移动设备上的所述客户端发出的第二请求(请求1)在移动设备处响应于第一请求,第二请求在所述移动设备接收到第一请求之后。
在一个实施例中,请求/响应追踪引擎238b可以追踪请求和响应来终止、计算和/或判断应用或者客户端请求的时序图。所述请求/响应追踪引擎238b可发现由所述移动设备上的客户端发出的第一请求和由所述移动设备上的所述客户端在响应于第一请求的响应在移动设备处被接收后发出的第二请求。第二请求在所述移动设备接收到第一请求之后。
所述请求/响应追踪引擎238b还进一步确定第一、第二请求和对所述第一请求的响应被接收之间的相对时间。一般地,所述相对时间可以被长轮询检测器238a用来确定应用生成的请求是否为长轮询请求。
请注意,所述请求/响应追踪引擎238b在计算相对时间所用到的第一和第二请求是在长轮询搜索周期结束之后或者长轮询搜索周期并没有出现的情况下被选择使用。
在一个实施例中,长轮询搜索检测器238c可以通过识别增加的请求间隔(例如增加的延迟)来识别或者发现搜索模式,所述长轮询检测器238a还可以通过检测没有响应的请求(例如连接超时)之前为增加的请求间隔,或者通过检测间隔的减小之前为增加的请求间隔来发现搜索模式。另外,长轮询搜索检测器238c可以将一个滤值或者一个阈值应用到请求-响应时间延迟值(例如一个绝对值),当检测到的延迟大于这个值时可以被考虑为一个长轮询请求-响应延迟。所述滤值可具有长轮询和/或网络条件(例如2s、5s、10s、15s、20s等)的任何适合的特征值,并且可以用作滤波器或阈值。
所述响应延迟时间('D')是指在一个请求发出之后接收到响应的起始时间,所述空闲是指在所述响应被接收到之后发出后续请求的时间。在一个实施例中,基于响应延迟时间相对('D')或者('D')的平均值(例如任何时间周期的任何平均值)与空闲时间('IT')的比较(例如通过追踪引擎238b完成的)检测到输出请求是针对持续连接的,例如,通过长轮询检测器238a。用于平均的数量可以是确定的、动态调整的或者在很长一段时间内是变化的。例如,如果请求延迟时间间隔大于空闲时间间隔(D>IT或者D>>IT),客户端发起的请求被判定是长轮询请求。在一个实施例中,所述长轮询检测的所述追踪引擎238b计算、确定或者估算请求延迟时间间隔,该延迟时间间隔作为第一请求和起始检测或完全接收到响应的时间之间经过的时间。
在一个实施例中,当在持续连接之后所述空闲时间(‘IT’)变短时,检测到针对持续连接的输出请求,其被建立以响应长轮询请求或者长轮询HTTP请求,例如,还可以表现为检测在接收到在先请求(例如IT~0)的响应之后立即或者几乎立即发出的后续请求。同样地,所述空闲时间(‘IT’)还可以用于检测这种立即的或者几乎立即的再请求来识别长轮询请求。所述追踪引擎238b决定的相对或者绝对时间用于确定第二请求是否是第一请求的响应被接收后的立即或者几乎立即的再请求。例如,如果D+RT+IT~D+RT,则由于IT的值比较小,请求可能被分类为长轮询请求,以维持准确性。如果IT小于阈值,则可能被确定为小值。注意阈值可能是固定的或者通过一个限定的时间期限(一段、一天、一个月等)计算出来的或者通过一个更长的时间期限(几个月或者分析的全程)计算出来的。例如,对于每个请求,平均IT可以被确定,并利用这个平均IT来确定阈值(例如平均IT减去一个特定百分比可能得到阈值)。这可以允许阈值随着时间的推移自动适应网络环境,并改变其服务器性能、可用资源或者服务器响应。一个固定的阈值可采用包括例子里的但不局限于此(例如1s、2s、3s、….等)的任何值。
在一个是实施例中,长轮询检测器238a可以比较相对时间(由跟踪引擎238b确定的)和其他应用的请求-响应时间特性,以便确定应用的请求是否是长轮询请求。例如,如果响应延迟间隔时间(‘D’)或者平均响应延迟间隔时间(例如以请求数x或时间量x平均的任何数量的延迟间隔)比阈值要大,则一个客户端或者应用发出的请求可用确定为长轮询请求。
所述阈值可以通过其它客户端的发出的请求的响应延迟间隔时间来确定,例如,通过请求/响应追踪引擎238b或者通过应用配置文件生成器239(例如响应延迟间隔时间追踪器239a)。其它客户端可能属于相同的移动设备,其阈值通过移动设备的组件来在本地确定。例如,可以在所有网络的所有资源服务器上为所有请求来确定阈值。例如,这个阈值可以被设定为一个特定的常量(例如30秒),用于所有请求或者没有一个可适用的阈值(例如如果D大于30秒,检测到长轮询)的任何请求。
在某些实施例中,其它的客户端属于不同的移动设备,并且阈值可用通过一个代理服务器(例如图3A-B中所显示的主机300的代理服务器325)来确定,这个代理服务器是所述移动设备外部的并且能够通过无线网络与多台不同的移动设备相通讯,参照图3B将做进一步描述。
在一个实施例中,缓存策略管理器245将轮询调度发送给代理服务器(例如图1B和图3A例子里的代理服务器125或者325),可用于代理服务器监控内容源,例如,改变的或者新的内容(更新与请求或者应用相关联的缓存响应不同的响应)。发送给代理服务器的轮询调度可包括多种时间参数,时间参数包含有但不限制于间隔(从请求1到请求2的时间)或者间隔外的时间(等待响应的时间,例如所用到的长轮询)。时间间隔‘RI’、‘D’、‘RT’和/或‘IT’或者上述数值的一些统计学处理(例如平均值、标准偏差等)将全部或者部分送至所述代理服务器。
例如,当本地代理服务器275发现一个长轮询的情况下,请求/响应时序中的各种不同时间间隔(例如‘D’、RT’和/或‘IT’)被送至代理服务器325以用于轮询内容源(例如应用服务器/内容主机110)。本地代理服务器275可以为代理服务器325标识,要监控的给定应用或者请求是一个长轮询请求(例如指示所述代理服务器设置一个“长轮询标志”)。另外,当代表移动设备发送持续连接迹象时,所述代理服务器利用各种时间间隔来确定。
当检测到来自于应用服务器/内容源的新的或者变化的数据(例如,更新的响应)时,缓存策略管理器245的本地缓存无效验证器244可以使本地高速缓存存储器里的缓存元素对于给定请求无效。基于接收到来自于代理服务器(例如代理服务器325或者主机服务器300)的通知的输出请求,缓存响应可以被确定为无效的。给移动客户端的请求提供响应的来源可以被监控到,来确定储存于移动设备250的储存器里的用于请求的存储响应的相关性。例如,当所述储存响应对给定的请求或者给定的应用不再有效时,本地缓存无效验证器244可以进一步移动/删除来自于移动设备的储存器的所述储存响应。
在一个实施例中,所述缓存响应在再一次被提供给一个生成输出请求的应用,并确定所述缓存响应不再有效之后,从缓存中移除。所述缓存响应可以在没有等待时间间隔或者有等待时间间隔后被再次提供(例如模拟长轮询里的响应延迟的特定的时间间隔)。在一个实施例中,所述时间间隔是指响应延迟‘D’或者两个或更多响应延迟‘D’的平均值。
新的或者变化的数据可以,例如,被代理服务器(例如图1B和图3A例子里的代理服务器125或者325)所检测到。当一个提供给发送出的请求/轮询的缓存条目被无效,用于移动设备250的无线电可以启用来满足随后的轮询请求,参考图4B中的相互作用图表作进一步描述。
缓存策略管理器245的一个实施例包括一个缓冲器或者一个连接选择引擎249,能够通过一个应用或者窗口小部件来决定是否用本地缓存条目来满足移动设备250的轮询/内容请求。例如,本地代理服务器275或者缓存策略管理器245可以拦截移动设备上的应用(例如,移动应用)发出的轮询请求,来联系应用服务器/内容提供商。选择引擎249可确定拦截的请求接收到的内容是否作为缓存元素被储存,以决定移动设备的无线电是否需要激活来满足应用(例如,移动应用)发出的请求,还确定缓存响应是否对使用该缓存响应的在输出请求响应之前的输出请求响应仍然有效。
在一个实施例中,所述本地代理服务器275,对相关缓存内容的存在并且仍然有效的确定进行响应,可以从本地缓存中重新检索复缓存元素为产生长轮询请求的应用(如,移动应用)提供响应,因此移动设备的无线电没有被激活用以提供对应用(例如,移动应用)响应。一般地,本地代理服务器275为接收到的任何时候的输出请求持续提供缓存响应直到检测到不同于缓存响应的更新的响应。
当确定了缓存响应不再有效,针对给定请求的一个新的请求通过无线网络传送以用于更新的响应。这个请求可以被传送至应用服务器/内容提供商(例如服务器/主机110)或者主机服务器(例如主机300上的代理服务器325)上的代理服务器,为了新的或者更新的响应。在一个实施例中,如果在时间间隔内新的响应没有被接收到,移动设备上缓存的缓存响应被移除之前,可以作为输出请求的响应被再次提供。
图2C描述了在图2A中所示的分布式代理系统的客户端的本地代理服务器275中的应用行为检测器236和缓存策略管理器245中组件的另一个例子的说明。图示的应用行为检测器236和缓存策略管理器245,例如,能够使本地代理服务器275检测到缓存失败,并执行由指向失败缓存的标识符寻址的内容的缓存。
在一个实施例中,缓存策略管理器245包括一个缓存失败解决引擎221、一个标识符成型器211、一个缓存适当决策引擎246、一个轮询调度发生器247、一个应用协议模块248、具有一个缓存查询模块229的缓存或者连接选择引擎249、和/或一个本地缓存失效器244。所述缓存失败解决引擎221进一步包括一种模式提取模块222和/或缓存失败参数检测器223。所述缓存失败参数检测器223进一步包括一个随机参数检测器224和/或一个时间/日期参数检测器226。一个实施例中进一步包括耦合至所述决策引擎246的应用缓存策略储存库243。
在一个实施例中,所述应用行为检测器236包括一个模式检测器237、一个轮询间隔检测器238、应用配置文件生成器239和/或一个优先级引擎241。所述模式检测器237进一步包括一个缓存失败参数检测器223,也具有,例如,一个随机参数检测器233和/或一个时间/日期参数检测器234。一个实施例中,进一步包括一个耦合至所述应用配置文件生成器239的应用策略储存库242。所述应用配置文件生成器239和所述优先级引擎241已经在图2A中与所述应用行为检测器236的相联系的描述了。
所述缓存失败解决引擎221可检测、识别、追踪、管理和/或监控采用标识符和/或被标识符(例如如URLs和/或URIs的资源识别器)寻址的内容或内容源(例如服务器或主机)的一个或多个使得机制,该机制使得缓存失败或者旨在使得缓存失败。所述缓存失败解决引擎221可以,例如,检测来自于应用或者客户端生成的,标识失败或者可能的失败缓存的给定数据请求,其中所述数据请求另外寻址来自主机或服务器(例如应用服务器/内容主机110或者310)的可缓存的内容或响应。
在一个实施例中,所述缓存失败解决引擎221采用移动设备250检测到的数据请求的标识符检测或者识别内容源(例如应用服务器/内容主机110或者310)使用的缓存失败机制。所述缓存失败解决引擎221可检测或者识别标识符中可显示缓存失败机制的参数。例如,参数的格式、排列或者模式可以用于鉴定缓存失败(例如模式提取模块222检测或提取的模式、格式或排列)。
所述模式提取模块222可分析进入多个参数或者组件中的标识符,并执行每个参数相匹配的算法来识别任何一个或多个预先确定的格式(例如日期和/时间格式,如图7中所举例的参数702)。例如,从标识符得到的相匹配的或者被解析出的参数可以用来(例如通过缓存失败参数检测器223)识别缓存失败参数,这里含有一个或者多个变化参数。
所述缓存失败参数检测器223,在一个实施例中,可检测随机参数(例如通过随机参数检测器224)和/或时间和/或日期参数,这些代表性地用于缓存失败。所述缓存失败参数检测器223可采用普通使用的格式检测随机参数(例如图7中所描述的参数752)和/或时间/日期,并执行模式匹配和测试。
除了检测模式、格式、和/或排列,所述缓存失败参数检测器还能进一步确定或证实一个给定的参数是否缓存失败和寻址内容能否被分布式缓存系统缓存下来。所述缓存失败参数检测器可以通过分析收到的被给定数据请求利用的标识符的响应来检测它。总之,当对应于多个数据请求的响应相同的时候,标识符中变化参数被标记以指示缓存失败,即使当该多个数据请求使用对于多个数据请求中的每一个不同的变化参数的标识符。
例如,至少需要两个相同的响应来确定指示缓存失败的变化参数。在某些情况下,可能需要至少三个相同的响应。确定给定请求之间的不同参数值缓存失败的相同响应的数量需求可能是特定应用程序的、情境依赖的、和/或用户依赖的/用户指定的,或者是以上内容的组合。这样的需求也可能是通过分布式缓存系统静态或动态调整的,以满足特定的性能阈值和/或关于用户体验的显式/隐式体验。(例如,用户或应用是否收到响应请求的相关/新鲜内容)。可能需要更多相同的响应来确认缓存失败,或者如果应用由于响应缓存而开始出现故障和/或是否用户表示不满(显式用户反馈),系统将给定参数视为用于缓存失败,或系统检测到用户的失望(隐式用户提示)。
缓存适当决策引擎246能够检测、评估或决定内容来源(例如,图1B中的应用服务器/内容提供商110)的内容是否与移动设备交互,是否有适于缓存的内容。在某些情况下,基于一组标准(例如,指定正从内容源中被请求的内容的时间关键性的标准),确定来自于给定应用服务器/内容提供商的内容(例如图1B中的服务器/提供商)适于缓存。在一个实施例中,所述本地代理(例如,图1B和图2A中的本地代理175或275)申请一个选择标准来储存来自主机服务器的内容,该内容被应用请求作为移动设备上本地缓存的已缓存元素,以此来满足应用的后续请求。
所述选择标准也可以包括,举例来说(但不作为限制),指示移动设备是否活跃或不活跃的移动设备的状态,网络状况,和/或无线电覆盖统计。缓存适当决策引擎能够以标准中的任意一个或任意组合,以任一顺序,识别适于缓存的来源。
一旦应用服务器/内容提供商识别或检测到移动设备250上潜在适于本地缓存的内容,所述缓存策略管理器245可以通过将从内容源接收的内容作为缓存元素存储在移动设备250的本地缓存(例如,图1B和图2A中分别显示的本地缓存185或285)中来继续缓存从所标识的源接收的相关内容。所述内容源也可以被与移动设备远程无线连接的代理服务器(例如,图1B和图3A例子中显示的代理服务器125或325)识别,这样所述代理服务器能够监控所述内容源(例如,应用服务器/内容提供商)新的或改变了的数据。同样的,代理服务器可以识别本地代理(例如,图1B和图2A分别显示的本地代理175或275),这样来自特定应用服务器/内容提供商的内容被储存为本地缓存中的已缓存元素。
在一个实施例中,缓存元素被储存在本地缓存中与一个标准化版本的标识符相联系,标识符使用一个或多个参数用于缓存失败。标识符可以通过标识符标准化模块来标准化,标准化过程可以包括一个或多个例子:将URI调度和宿主转变成小写,将百分比编码的转义字符大写,删除缺省端口,及删除重复的斜杠。
在另一实施例中,所述标识符可以通过删除缓存失败的参数和/或用一个静态值代替该参数来标准化,所述静态值可以用于响应通过标准化器211或缓存失败参数处理程序212来利用标识符的请求而寻址或关联已缓存响应。例如,本地缓存285(图2A显示)中储存的已缓存元素可以通过使用标准化版本的标识符或标识符的标准化版本的哈希值来识别。一个标识符或所述标准化标识符的哈希值可以由哈希引擎213产生。
一旦内容在本地被缓存,所述缓存策略管理器245能够接收进一步轮询请求来联系内容服务器,检索本地缓存中的缓存元素以响应移动设备250的轮询请求,这样,不用激活移动设备的无线电来服务轮询请求。由于不需要使用网络带宽和其他资源来请求/接收可能未从在移动设备250处已经接收的响应改变的轮询响应,因此通过本地缓存条目本地的进行这样的服务和满足应用(例如,移动应用)请求允许了更有效的资源和移动网络流量利用率和管理。
缓存策略管理器245的一个实施例包括一个轮询调度发生器247,能为一个或多个移动设备250内的应用产生轮询调度。轮询调度能够制定一个供代理服务器(例如,图1B和图3A例子中显示的代理服务器125或325)使用的轮询间隔来监视一个或多个应用的内容来源。所述轮询调度可以被确认,例如,根据移动设备内容源的轮询请求时间的间隔。在一个实施例中,应用行为检测器上的轮询间隔检测器可以监视针对移动设备250中内容源的轮询请求,以便确定任意或所有应用(例如,移动应用)的轮询请求之间的间隔。
在一个实施例中,所述缓存策略控制器245发送轮询调度至代理服务器(例如,图1B和图3A例子中显示的代理服务器125或325)且能被代理服务器用于监视内容源,例如,对于改变或新的内容。当检测到应用服务器/内容源对于一个给定的请求有新的或改变的数据时,缓存策略控制器245上的本地缓存无效验证器244能使本地缓存(例如,缓存185或285)中的缓存元素无效。新的或更改的数据能被代理服务器检测到。当一个给定请求/轮询的缓存条目被无效和/或无效后被删除(例如,从缓存中删除)时,移动设备250上的无线电被用于(例如,通过本地代理或缓存策略控制器245)满足后续的轮询请求,进一步的描述参照图4B的交互图。
在另一实施例中,所述代理服务器(例如,图1B和图3A例子中显示的代理服务器125或325)在数据请求中使用资源标识符的改进版本来监视给定内容源(图1A和图1B显示的用于处理数据请求的应用服务器/内容主机110)的新的或改变的数据。例如,在检测到内容源或标识符以采用缓存失败机制的情况下,可以使用修改的(例如,标准化的)标识符来轮询内容源。改进或标准化版本的标识符能够通过缓存策略控制器245,或者更具体地说是标识符标准化器211上的缓存失败参数处理器212与代理服务器联系。
代理服务器使用的用于轮询代表移动设备/应用的内容来源的改进后的标识符与标准化的标识符可能相同或可能不同。例如,标准化的标识符可能是被删除了改变缓存失败参数的原始标识符,然而修改的标识符使用一个替代参数来代替用于缓存失败的参数(例如,改变参数被一个静态值代替或其他已知的本地代理和/或代理服务器的预定值)。更改后参数可以由本地代理275确认并与代理服务器相连。更改后参数也可能是由代理服务器产生的(例如,图3C例子中显示的标识符修改模块353)。
缓存策略管理器245的一个实施例包括一个缓存或内容选择引擎249,可以决定是否使用一个本地缓存条目来满足一个通过应用或窗口小程序在移动设备250上产生的轮询/内容请求。例如,本地代理275或缓存策略管理器245能够拦截一个移动设备上应用产生的与应用服务器/内容提供商商联系的轮询请求。所述选择引擎249可以确认收到的关于拦截请求的内容是否被当做缓存元素储存在当地,决定是否一个移动设备的无线电需要被激活以满足应用(例如,移动应用)的请求。在一个实施例中,本地代理275为了确定相关缓存内容的存在且仍然是有效的,可以检索本地缓存的缓存元素来响应应用(例如,移动应用),所述应用产生了该轮询请求,这样,移动设备的无线电不用激活以为应用(例如,移动应用)提供响应。
在一个实施例中,储存于本地缓存器285(图2A所示)中的所述缓存元素可用标识符的标准版本或者标识符的标准版本的哈希值来识别,例如,采用缓存查询模块229。缓存元素可与标准化的标识符一起储存,标准化的标识符具有被移除或者被取代的缓存失败参数,这样,相关的缓存元素在未来可被识别并恢复,采用缓存失败相同的类型来满足其它请求。例如,当用于随后请求中的标识符确定被用于相同的缓存失败参数,该标识符的标准化版本会产生,并用于识别储存于移动设备缓存器中的缓存响应并被用来满足数据请求。标识符的哈希值或者标准化的标识符可能通过标识符标准化器211的哈希引擎213生成。
图2D描述说明了本地代理275中附加组件的框图,图2A中所示的例子进一步执行基于应用程序行为和/或用户活动来执行移动流量的分类和策略的实现。
本地代理275的一个实施方式中,用户活动模块215,进一步包括一个或更多的用户活动检测器/追踪器215a、用户活动预测引擎215b和/或用户预期管理器215c。应用行为检测器236还可以包括优先级处理引擎241a、时间关键性检测引擎241b、应用状态分类器241c和/或应用流量分类器241d。本地代理275可以进一步包括背光检测器219和/或网络配置选择引擎251。所述网络配置选择引擎251进一步包括无线生成标准选择器251a、一个数据比率区分符251b、访问通道选择引擎251c和/或一个访问点选择器中的一个或多个。
在一个实施例中,应用行为检测器236可检测、确定、识别或推断移动设备250上的一个应用的活动状态,流量源自或被导向(例如经由应用状态分类器241c和/或应用流量分类器241d)该移动设备。活动状态可以通过移动设备(通过应用状态分类器241c)上的应用在前台状态还是在后台状态来确定,因为前台应用的流量与后台应用的流量可通过不同的方式处理。
在一个实施例中,活动状态可以按启发式的可靠性水平确定、检测、识别或推断,其基于移动设备250的背光状态(例如通过背光检测器219)或者在移动设备上的其他软件代理或硬件传感器,包括但不限于电阻传感器、电容传感器、环境光传感器、运动传感器、触摸传感器等。在一般情况下,如果背光开启,流量可以被视为正在或被确定为从活动的或处于前台中的应用产生,或者该流量是交互式的。此外,如果背光开启,流量可以被视为或被确定来自用户交互或用户活动的流量,或包含用户在某个时间段内期望的数据的流量。
在一个实施例中,活动状态被基于流量是否是交互式流量或维护流量来确定。交互式流量可以包括来自从用户的应用活动/交互直接产生之响应和请求的事务,并且可以包括用户正在等待或预期接收的内容或数据。维护流量可被用于支持不直接由用户检测到的应用的功能。维护流量还包括可能发生响应用户动作的动作或事务,但用户没有主动等待或预期响应。
例如,在移动设备250上的邮件或消息删除操作生成一个在服务器上删除相应邮件或消息的请求,但用户通常不等待响应。因此,这样的请求可以被分类为维护流量或具有较低优先级(例如通过优先级处理引擎241a)的流量和/或非时间关键性(例如通过时间关键性检测引擎214b)的流量。
与此相反,由用户在移动设备250上发起的邮件“读取”或消息“读取”请求可以被归类为“交互流量”,因为用户请求读取消息或邮件时通常在等待访问内容或数据。类似地,这样的请求可以被归类为具有较高优先级(例如通过优先级处理引擎241a)和/或时间关键/时间敏感(例如通过时间关键性检测引擎241b)。
时间关键性检测引擎241b可大致确定、识别、推断包含在发送自移动设备250或发送至主机服务器(例如主机300)或应用服务器(例如应用服务器/内容源110)的移动设备流量中数据的时间灵敏度。例如,时间敏感数据可以包括状态更新、股票信息更新、即时通讯在线状态信息、电子邮件或其他消息、手机游戏应用产生的行动、网页请求、位置更新等。根据内容或请求性质,非时间敏感或时间关键性的数据可以包括删除消息请求、标记为已读或已编辑的操作、添加好友或删除好友请求等特定于应用的操作、某些类型的消息或其他性质不经常变化的信息等等。在某些情况下,当数据不是时间关键性时,其允许流量通过的时机是基于何时需要从移动设备250发送附加数据而设定的。例如,流量整形引擎255可以把流量与一个或多个后续事务调整,使其被一起在移动设备无线电(例如使用对齐模块256和/或批处理模块257)的单次启动事件中发送。对齐模块256也可以把被导向同一主机服务器的时间接近的轮询请求进行对齐,因为这些请求可能用相同的数据响应。
在替代或组合中,活动状态可以从评价、确定、评估、推断、识别移动设备250上的用户活动(例如通过用户活动模块215)确定。例如,用户活动可以使用用户活动跟踪器215a直接检测和跟踪。然后,由此产生的流量可以被适当归类,从而用于后续处理以确定处理策略。此外,用户活动可以由用户活动预测引擎215b来预测或预期。通过预测用户活动或预期用户活动,预测后由此而产生的流量可以被视为是用户活动产生的结果,并可被适当分类以确定传输策略。
此外,用户活动模块215还可以管理用户预期(例如通过用户预期管理器215c和/或结合使用活动追踪器215a和/或预测引擎215b),以确保流量被适当归类,从而大致满足用户预期。例如,用户启动操作应被分析(例如通过预期管理器215c)以确定或推断用户是否将等待响应。如果是这样,这种流量应按能够使用户在接收这种响应或操作时不会经历令人不愉快延迟的策略来处理。
在一个实施例中,选择新一代的无线标准网络,以供基于流量源自或被导向至的移动设备上应用程序的活动状态在无线网络中的移动设备和主机服务器之间发送流量。可以选择3G、3.5G、3G+、4G或LTE网络等高级技术标准,用于处理用户交互、用户活动所产生的流量,或含有用户预期或等待数据的流量。对于响应前台活动的移动设备,也可选择高级无线标准网络用于传输包含在移动设备流量中的数据。
在为移动流量进行流量分类或定义传输策略时,可以选择网络配置(例如通过网络配置选择引擎251)以在移动设备250上使用,用于在移动设备和代理服务器(325)和/或应用服务器(例如应用服务器/主机110)之间发送流量。所选择的网络配置可以基于由应用行为模块236收集的应用活动状态(例如后台或前台的流量)、应用流量类别(例如交互或维护流量)、数据/内容的任何优先级、时间灵敏度/关键性方面的信息确定。
所述网络配置选择引擎251可选择或者指定一个或多个生成标准(例如通过无线生成标准选择器251a)、一个数据比率(例如通过数据比率区分符251b)、一个访问通道(例如访问通道选择引擎251c)和/或一个任何结合的访问点(例如通过访问点选择器251d)。
例如,当活跃状态与用户交互或者在移动设备上的前台时,可选择或者指定更先进的一代(例如3G、LTE或者4G或更后)用于流量。相反,当检测到应用与用户之间没有交互,应用位于移动设备的后台,或者流量中包含的数据不是时间关键的或者另外确定具有较低优先级中的一种或多种情况时,一种较旧的标准(例如2G、2.5G或者3G或者更老的)可指定用于流量。
同样地,一个具有较慢数据速率的网络配置可被指定用于流量,当检测到下述一种或多种情况时:应用与用户之间没有交互,应用位于移动设备的后台,或者流量中包含的数据不是时间关键的。所述访问通道(例如前向访问信道或者专用信道)可被指定。
图2E描述了图2A中显示的流量整形引擎255和应用程序行为检测器236中的附加组件例子的块图,其还能够促进传输至移动或宽带设备,或其他用户的输入数据的对齐,以优化需要建立的用于通过无线网络或宽带网络接收数据的连接的数量。
在本地代理服务器275的一个实施例中,所述流量整形引擎255,除了所述对齐模块256、批处理模块257之外,还包括一个轮询间隔调整器258。所述轮询间隔调整器258可包括一个因素或者分母检测引擎258a、一个关键应用检测器258b、一个关键间隔标识符258c和/或一个轮询间隔设置引擎258d。进一步在一个实施例中,所述本地代理服务器275的应用行为检测器236进一步包括一个轮询间隔检测器238。
在促进跨越不同的服务器或者主机的数据突发到所述移动设备250的对准中,本地代理服务器275可初始的确定、检测、识别、计算、推断、提取针对应用或者移动客户端的原始的或者默认的轮询间隔(例如通过所述轮询间隔检测器238)。原始的或者默认的轮询间隔是移动应用本身和/或其主机(例如图1A-1B所示的通信应用服务器/内容主机110)代表性的特性。所述轮询间隔检测器238可检测到任何数量的或者所有的移动应用的原始的或者默认的轮询间隔,其定期轮询被代理服务器275用来基于那里已安装的应用和它们各自轮询时间特性生成或者调整轮询间隔以适用于设备250。
例如,设备250的应用或者移动客户端的轮询时间间隔(原始的或默认的)可以通过轮询间隔调整器258使用。一般来说,基于第二服务的轮询间隔来生成第一服务的调整轮询间隔,第二服务可以由不同主机从第一服务(如,Twitter=服务1;ESPN.com=服务2)提供服务。针对第一服务和/或第二服务调整计算的调整轮询间隔,可用于对齐至少一些由于移动设备上对第一和第二服务的访问而从不同的主机接收到的流量。
例如,在一个实施例中,第一服务调整轮询间隔可以是第一服务的原始轮询间隔与第二服务的原始轮询间隔相同的因子或分母 (例如,由因子或分母检测引擎258a决定的),并且可以进一步基于第一服务的原始轮询间隔来确定。注意当第一服务的原始轮询间隔和第二服务的轮询间隔是彼此的因子或者分母时,第一服务的调整轮询间隔不需要不同于第一服务原始轮询间隔。
在一个实施例中,所述检测引擎258a能够进一步确定第二服务的轮询间隔的因子或分母的倍数,并且第一服务的调整轮询间隔是第二服务轮询间隔的分母的因子或倍数的倍数。此外,所述引擎258a可确定移动设备250上多个应用的多个默认轮询间隔的公因子或公分母的倍数。
此外,基于来自第一服务的流量的时间关键性相对与来自第二服务或移动设备250上的附加服务的流量的时间关键性可以进一步确定、调整或重新配置(例如,通过轮询间隔设置引擎258d) 第一服务的调整轮询间隔。例如,关键应用检测器258b可以识别、检测或接收输入识别或指定移动设备250上一个或多个的应用是比其它的更关键的(例如,更高优先级的、时间敏感的内容/流量、用户首选应用、操作系统支持的应用、运营赞助商内容等等),并进一步根据需要调整第一和/或第二服务的轮询间隔。
例如,关键应用检测器258b可以将关键应用识别为移动设备上所有应用或正在应用或尝试数据突发对其的一组应用中最时间关键的应用。为了关键应用(们),关键应用的轮询间隔被确定为一个最小的关键间隔(例如,通过关键间隔标识符258c),不被赋予给一个关键应用的更新的轮询间隔的值所超过,这样,数据的优先级需要(例如,无论是用户需要、装置需要或应用需要)从应用服务器或内容主机快速和及时的传递数据。
高优先级信息/数据或应用可以包括,例如,财务数据、体育数据或其他实际上不断变化的数据、与先前的值没有任何数据相关性的任何数据,任何数据(例如,订阅或提供的)用户希望立即实时或接近实时的报告,任何被指示为实时的特定特征,近实时特性的应用服务器/内容主机(例如,实时更新状态、或实时通知、优先邮件或其他信息、及时通信消息等等)或者服务任何类型的高优先级/时间敏感内容的应用。
一旦在移动设备250上已经设有一个或多个应用的轮询间隔,本地代理服务器275通信的轮询调度包括代理服务器(例如,图3A-3E的远程代理325)的调整轮询间隔,用于在时间上对齐至少一些由于移动设备上对第一和第二服务以及任何附加服务的访问而从不同主机接收的流量。
在一个实施例中,轮询间隔设置引擎258d也可以选择一个共同的起始时间点作为多个应用的内容主机服务轮询间隔设置的初始轮询。轮询间隔设置引擎258d可以设置开始时间被锚定到设备250上的多个应用中相同的绝对时间点。一般来说,应用服务器/内容主机通常是UTC,并使用NTP来保持在同一时间。例如,间隔设置引擎258d可以任意选择分钟标记、秒标记、小时标记或其他时间指标,将其作为调整轮询的一部分参数传给远程代理服务器(例如,代理服务器325)。该标记可以被所有应用程序随机选择为共同的“初始时间t0”。
注意,虽然上面使用两个应用的例子的描述可以为移动设备250中任意或所有的应用执行相同的过程。在某些情况下,部分或全部的功能由一个或多个组件的轮询间隔调整器258可以远程执行,例如,在一个远程的代理服务器(例如,代理服务器325)上使用轮询间隔可以检测到本地移动设备250(例如,通过轮询间隔检测器238)。请注意,远程代理(例如,代理服务器325)可以接收跨多个设备的应用的轮询时间间隔和跟踪多个设备的应用的调整时间间隔,将通过图3E的例子进行进一步描述。
图3A描述了一框图,该框图示出了位于主机服务器300的分布式代理和缓存系统中的服务器端组件的示例,所述主机服务器300为了节约资源而管理无线网络流量。所述服务器端代理(或代理服务器325)能进一步基于应用程序行为、内容优先级、用户活动、和/或用户期望对移动流量进行分类和/或执行投递策略。
所述主机服务器300通常包括,例如,网络接口308和/或一个或多个储存库312,314,316。注意所述服务器300可以是任何便携/移动或非便携设备、服务器、计算机集群和/或其他类型处理单元(例如,在图11示例中示出的任意数量的机器),能够接收或传输信号,以满足通过包括任意有线或无线网络的数据请求(例如,WiFi,蜂窝,蓝牙等)。
所述网络接口308可包括网络模块(们)或设备(们),该网络模块或设备能够与在所述主机服务器300外部的实体在网络中调节数据,通过任何已知的和/或便捷的由所述主机和所述外部实体支持的通信协议。特别地,所述网络接口308允许所述服务器300与多种设备通信,该多种设备包括移动手机设备350和/或一个或多个应用服务器/内容提供商310。
所述主机服务器300能存储关于在连接元数据储存库312中的设备连接信息。另外,任何关于第三方应用或内容提供商的信息还能存储在所述储存库312中。所述主机服务器300能存储关于在设备信息储存库324中的设备信息(例如,硬件功能、性能、设备设置、设备语言、网络功能、制造商、设备模型、OS、OS版等)。另外,所述主机服务器300能存储关于在所述网络服务提供商储存库316中的网络提供商和多种网络服务区域的信息。
由网络接口308启动的通信,允许设备350间的同步连接(例如,包括蜂窝连接)和/或与内容服务器/提供商310的连接,以管理设备350和内容提供商310之间的流量,用于优化网络资源利用和/或节约所被服务设备350上的能源(电池)消耗。所述主机服务器300能与由不同网络设备提供商,和/或在相同/不同网络服务区域内服务的移动设备350通信。所述主机服务器300能操作设备350并与之相兼容,所述设备350具有不同类型或移动容量等级,包括通过此示例的方式但不限于1G,2G,2G迁移(2Gtransitional)(2.5G,2.75G),3G(IMT-2000),3G迁移(3.5G,3.75G,3.9G),4G(高级IMT),等。
通常,所述网络接口308可能包括一个或多个网络适配器卡、无线网卡(例如,SMS接口、WiFi接口、多种移动通信标准包括但不限于1G,2G,3G,3.5G,4G类型网络,如LTE,WiMAX等产生的接口)、蓝牙、WiFi或任何其他是否通过路由器、接入点、无线路由器、交换机、多层交换机、协议转换器、网关、网桥路由器、集线器、数字媒体接收器和/或中继器连接的网络。
所述主机服务器300能进一步包括分布式代理和缓存系统的服务器端组件,所述系统能包括代理服务器325和服务器缓存335。在一实施例中,所述代理服务器325能包括HTTP访问引擎345,缓存策略管理器355,代理控制器365,流量整形引擎375、新数据检测器347和/或连接管理器395。
所述HTTP访问引擎345可进一步包括心跳管理器398;所述代理控制器365可进一步包括数据无效验证器368;所述流量整形引擎375可进一步包括控制协议376和批处理模块377。额外或少部分组件/模块/引擎可包括在所述代理服务器325和每个所示组件中。
按照本发明所使用的情况,“模块”、“管理器”、“处理程序”、“检测器”、“接口”、“控制器”、“标准化器”、“发生器”、“无效验证器”或“引擎”都包括了一个通用、专有或共享的处理器以及通常来说由处理器执行的固件或软件模块。取决于特定实现或其他考虑,模块、管理器、处理程序、检测器、接口、控制器、标准化器、发生器、无效验证器或引擎都可以被集中或使其功能被分布。模块、管理器、处理程序、检测器、接口、控制器、标准化器、发生器、无效验证器或引擎可包括通用或专有硬件、固件或用于处理器执行的内嵌于计算机的可读(存储)介质的软件中。按照本发明所使用的情况,计算机可读介质或计算机可读存储介质旨在包括所有法定(例如在美国即根据35U.S.C.101)介质并明确排除所有性质为非法定的介质,其程度为该排除对包括计算机可读(存储)介质是有效的的权利要求是必要的。已知法定计算机可读介质包括硬件(例如仅举几例——寄存器、随机存取存储器(RAM)、非易失性(NV)存储器),但可以或可以不被限于硬件。
在向应用服务器或内容提供商310进行应用或内容请求的设备(例如移动设备350)示例中,所述请求可被截获并被路由至所述代理服务器325,所述代理服务器325可被耦合至所述设备350和所述应用服务器/内容提供商310。特别地,所述代理服务器能与移动设备350的本地代理(例如,分别在图1和图2中示例的代理175、275)通信,所述本地代理提出向所述代理服务器325的数据请求,在某些情况下用于进一步处理,并且如有必要,用于传输对数据请求的响应至所述应用服务器/内容服务器310。
在这个配置下,所述主机300,或在所述主机服务器300中的所述代理服务器325可利用由所述本地代理提供的智能信息,在优化网络和设备资源使用的方式下调节本地代理与设备通信。例如,所述代理服务器325能识别设备350上的用户活动特性,以修改通信频率。所述用户活动特性可由例如在代理控制器365中的活动/行为感知模块,通过由设备350上的本地代理收集的信息确定。
在一实施例中,通信频率可由代理服务器325的连接管理器395控制,例如,调整内容的推送频率或更新至所述设备350。例如,当用户活动特性显示所述用户不活跃,推动频率可被连接管理器395降低。在一实施例中,当用户活动特性显示用户在不活跃期后接着活跃时,所述连接管理器395能调整与设备350的通信频率,发送因通信频率降低而缓存至所述设备350的数据。
另外,所述代理服务器325包括多种请求、事务、会话、应用和/或特殊事件的优先级感知。该感知可由在设备350上的本地代理确定并提供给所述代理服务器325。代理服务器325的所述优先级感知模块367通常能评估多个事件或应用的优先级(例如,包括时间紧迫性和时间敏感性等);另外,所述优先级感知模块367能追踪由设备350的本地代理确定的优先级。
在某一实施例中,通过优先级感知,所述连接管理器395可进一步修改服务器300与设备350的通信频率(例如,如无线控制器396控制的使用或无线频率)。例如,当符合标准的重要/优先级数据或更新值变得可被发送时,所述服务器300可通知设备350,从而在并未准备使用无线电时请求使用无线电。
在一实施例中,代理服务器325能检测事件(例如,事务、内容接收来自服务器/提供商310的数据)的多种发生并允许所述事件积累批量传输至设备350。批量传输可被积累,且事件传输可基于由模块367和/或366追踪的优先级感知和/或用户活动/应用行为感知被延迟。例如,多个事件(较低优先级的时间)批量传输至设备350,当较高优先级(达到阈值或标准)的事件在服务器300处被检测到时,可由所述批量模块377启动。另外,当服务器接收自设备350的数据时,来自服务器300的批量传输被触发,表明所述设备无线电已准备使用且因此开启。在一实施例中,代理服务器325能在批量中排序每个信息/数据包,用于基于每个事件/事务的优先级的传输,因此一旦连接丢失或电池枯竭等,较高优先内容可被首先发送。
在一实施例中,所述服务器300缓存数据(例如,如由所述缓存策略管理器管理的数据),这样可以修改(例如,降低)通过网络(例如,蜂窝网络)与设备350的通信频率。数据可被缓存,例如,在所述服务器缓存335中,用于之后读取或批量发送至设备,以可能减少开启设备350无线电的需要。所述服务器缓存335可部分或全部在主机服务器300内部,尽管图3A示例中在主机300的外部示出。在某些情况下,服务器缓存335可与另一个实体(例如,选择缓存代理服务器199在图1B示例中示出)管理的另一缓存相同和/或部分或全部集成,诸如应用服务器/内容提供商310、网络服务提供商或另一第三方管理的缓存。
在一实施例中,内容缓存在主机服务器300的协助下在设备350本地处完成。例如,在主机服务器300中的代理服务器325能请求查询应用服务器/提供商310并监测响应变化。当变化或新响应被检测到时(例如,通过新数据检测器347),所述代理服务器325能通知移动设备350,使得在设备350上的本地代理能作出使作为在本地缓存中的任何存储的相关缓存条目无效(例如,显示过时)的决定。另外,数据无效验证器模块368能自动指令设备350的本地代理基于接收来自应用服务器/提供商310的响应去无效某缓存数据。所述缓存数据被标记为无效,并能在新内容从内容服务器310接收时被替代或删除。
注意所述数据变化可被检测器347用一种或多种方法检测。例如,服务器/提供商310可在发生变化时通知主机服务器300。所述变化还可在主机服务器300响应源服务器/提供商310的直接轮询处检测到。在一些情况下,代理服务器325能额外在设备350上预载具有新的/更新的数据的本地缓存。这可在主机服务器300检测到移动设备上的无线电已准备使用或在服务器具有额外发送至设备350的内容/数据时被实现。
一个或多个上述机制可基于应用(例如,用于不同服务器/提供商310的不同策略)同步实施或调整/配置。在一些情况下,源提供商/服务器310可通知主机300事件类型(例如,事件满足优先阈值级)。另外,提供商/服务器310可被配置为在特定时间间隔下通知主机300,而不管事件优先级。
在一实施例中,主机300的代理服务器325能在将结果返回到移动设备之前监测/追踪响应,该响应针对来自内容源的数据请求所接收的针对改变的结果的响应;当内容源的数据请求具有返回给移动设备的相同结果时,该监测可能合适,因此防止网络/能源消耗在当没有新变化被特定请求时而被使用。设备350的本地代理能指令代理服务器325完成该监测或代理服务器325能在接收到特定数量的相同响应(例如,或者许多在某一时期内的相同响应)时自动启动这样的处理。
在一实施例中,服务器300,通过活动/行为感知模块366,能够在设备处识别或检测用户活动,该设备与移动设备350分离。例如,模块366可检测到用户信息收件箱(例如,邮件或收件箱类型)被访问。这显示用户与他/她的应用使用除所述移动设备350外的设备进行交互,并不需要频繁更新,如果发生的话。
在该情况下,所述服务器300因此能降低新的或更新的内容被发送到移动设备350的频率,或经过所有通信,只要检测到用户正在使用另一设备进行访问。该降频可能是特定应用的(例如,用于用户与另一设备交互的应用),或它可能是一般性降频(例如,因为用户被检测到与一服务器或一应用通过另一设备进行交互,他/她还能使用其访问其他服务)至所述移动设备350。
在一实施例中,所述主机服务器300能够代表设备350轮询内容源310,以节约设备350上的能量或电池消耗。例如,在移动设备350上的特定应用可以用可预测的重复方式轮询其相应的服务器310。此类重复或其他类型的应用行为可以通过代理控制器365的活动/行为模块366进行跟踪。因此主机服务器300可以针对移动设备350上的应用轮询内容源310,否则其将由设备350通过无线执行(例如包括蜂窝连接)。主机服务器可通过HTTP访问引擎345来建立HTTP连接的方式,或通过无线控制器396从蜂窝网络来连接到源310的方式,以轮询源310是否有新的或有变化的数据。当检测到新的或有变化的数据时,新数据检测器347可以通知设备450这样的数据对设备450可用,并且/或者将新的/有变化的数据提供给设备350。
在一实施例中,连接管理器395确定移动设备350是不可用的(例如无线被关闭),并且利用SMS将内容发送到设备350,例如通过图1B例子中的SMSC。SMS用于传输失效消息、失效消息的批次,或者,甚至在内容小到足以放入几条(通常为一或两条)SMS消息中的情况下也可传输内容。这避免了访问无线信道来发送附加信息的需要。主机服务器300可使用SMS进行优先级高于阈值或满足其他某种条件的特定事务或响应。服务器300还可以利用SMS作为带外触发器来维持或唤醒的IP连接,作为保持永远在线IP连接的替代。
在一实施例中,代理服务器325中的连接管理器395(例如心跳管理器398)可以代表所连接的设备350生成和/或传输心跳消息,以保持与提供商310的后台连接,用于在设备上350上运行应用。
例如,在分布式代理系统中,设备450上的本地缓存可以防止用于维持应用所需TCP/IP连接需要的任何或所有心跳消息被通过蜂窝或其他网络发送,而是依赖主机服务器300上的代理服务器325来生成和/或发送心跳消息来维持与后台的连接(例如图1A的例子中的应用服务器/提供商110)。代理服务器可以生成独立于移动设备上本地代理的操作的保活(心跳)消息。
储存库312、314和/或316可以另外存储软件、描述性数据、图像、系统信息、驱动程序和/或由主机服务器300和/或任何其他服务器的其它组件用于操作的任何其他数据项。储存库可以由一个数据库管理系统(DBMS)管理,例如其可以是但不限于Oracle、DB2、MicrosoftAccess、MicrosoftSQLServer、PostgreSQL、MySQL和FileMaker等。
这些库可以通过面向对象的技术和/或经由文本文件来实现,并且可以由分布式数据库管理系统、面向对象的数据库管理系统(OODBMS)(例如ConceptBase、FastDBMainMemoryDatabaseManagementSystem、JDOInstruments、ObjectDB等)、对象关系数据库管理系统(ORDBMS)(例如Informix、OpenLinkVirtuoso、VMDS等)、一个文件系统和/或任何其它方便的或已知的数据库管理包来管理。
图3B描述了一框图,所述框图示出了在图3A示例的缓存系统中的缓存策略管理器355内的组件的进一步示例,其能缓存且适应用于应用程序(例如移动应用)行为和/或网络条件的缓存条件。
所述缓存策略管理器355,在一实施例中,可进一步包括元数据生成器303、缓存检查引擎305、应用协议模块356、具有轮询调度管理器358的内容源监测引擎357、响应分析器361、和/或更新的或新的内容检测器359。在一实施例中,所述轮询调度管理器358进一步包括主机时序模拟器358a,长轮询请求检测器/管理器358b,调度更新引擎358c,和/或时间调整引擎358d。所述元数据生成器303和/或缓存检查引擎305能耦合至所述缓存335(或,服务器缓存)用于修改,或增加缓存条目或在其进行查询。
在一实施例中,所述代理服务器(例如图1B和图3A示例的代理服务器125或325)可通过监测引擎357监测内容源新的或变化的数据。所述代理服务器,如图所示,是在图2A-B中移动设备250外部的实体。所述内容源(例如,图1B中应用服务器/内容提供商110)可以是一个被代理服务器所识别为具有本地缓存于移动设备(例如,移动设备150或250)上的内容的源。所述内容源可被监测,例如通过监测引擎357在一频率下监测,该频率是基于移动设备上内容源的轮询频率。所述轮询调度可由例如本地代理产生并发送至代理服务器。所述轮询频率可被轮询调度管理器358追踪和/或管理。
例如,所述代理服务器能代表移动设备轮询所述主机(例如,内容提供商/应用服务器)并通过主机时序模拟器358a模拟客户端至主机的轮询行为。轮询行为可被模拟以包括在与主机(例如,通过长轮询请求检测器/管理器358b)持久连接中经历的长轮询请求-响应时序的特性。注意一旦轮询间隔/行为被设置,在设备端的本地代理275和/或在服务器端的代理服务器325能验证应用服务器/内容主机服务器是否匹配或是否能由预测形式所表示。通常,本地代理和/或代理服务器能检测差异并在核实时,重估并计算、确定或评估另一轮询间隔。
在一实施例中,在分布式代理的服务器端的缓存策略管理器355,能与移动设备上的代理服务器275连接或独立于代理服务器,识别或检测长轮询请求。例如,所述缓存策略管理器355能确定阈值,该阈值被用于在请求-响应时序中比较响应延迟间隔时间(间隔时间“D”在图17A-B的示例性时序图中示出)用于应用请求,以识别或检测长轮询请求,可能的长轮询请求(例如,客户端与主机通信的持久连接的请求,包括但不限于,长期保留的HTTP请求、使COMET形式推送的长久连接,HTTP流请求等),或另外可被认为长轮询请求的其他请求。
例如,阈值可由代理325使用移动设备处的客户端/应用产生的请求的响应延迟间隔时间而确定,所述移动设备可由多种不同蜂窝或无线网络服务。自位于所述主机300的代理325能够通过多种网络与多种移动设备通信起,缓存策略管理器355能在全局级访问应用程客户信息,该全局级可被用于设定阈值来分类并检测长轮询。
通过在不同或相同网络的设备的应用上追踪响应延迟间隔时间,所述缓存策略管理器355能设置一个或多个阈值,以用于比较长轮询检测的响应延迟间隔时间。由代理服务器设置的阈值325可以是静态的或动态的,并与条件和/或生存时间(以相对或绝对值表示的过期时间/日期)相关联。
另外,代理325的缓存策略管理器355能进一步基于给定无线网络、由给定运营商(服务提供商)服务的网络、或多种无线网络的网络延迟,全部或部分的确定阈值。所述代理325还可确定用于长轮询请求识别的阈值,该长轮询基于一个或多个应用服务器/内容提供商(例如,110)的延迟,应用(例如移动应用)或移动客户端请求指向应用服务器/内容提供商。
代理服务器能在监测内容源处检测新的或变化的数据,并传输消息至移动设备通知该变化,该变化使移动设备(或在移动设备上的本地代理)能采取合适行动(例如,无效缓存在本地缓存内的元素)。在一些情况下,代理服务器(例如,缓存策略管理器355)在检测到新的或变化的数据时,还能在其缓存(例如,分别在图1B和图3A示例中的服务器缓存135或335)中存储新的变化的数据。存储在服务器缓存335中的新的/更新的数据,可在一些情况下被使用,以满足在移动设备处的内容请求;例如,它可在代理服务器已通知移动设备新的/变化的内容且本地缓存的内容已被无效后使用。
元数据生成器303,与图2B示例中所示的元数据生成器203相类似,能为移动设备250处的请求缓存的响应产生元数据。元数据生成器303能为存储在服务器缓存335内的缓存条目产生元数据。类似地,缓存检查引擎305可包括相同或相似功能,这些功能被描述用于图2B示例中的缓存检查引擎205。
响应分析器361可执行与在图2B示例中所示的本地代理的响应分析其相通或相似的方式分析在移动设备250处生成的请求而接收的响应相关的任何或所有功能。因所述代理服务器325能够接收从应用服务器/内容源310直接到移动设备250的响应,所述代理服务器325(例如,响应分析器361)能完成相似响应分析步骤以确定缓存性,如针对本地代理的响应分析器所描述的。响应分析流程示例还被描述与图11-13示例中示出的流程图相关联。可以分析响应以补充或代替可以在移动设备250上的本地代理275处执行的分析。
进一步,所述调度更新引擎358c能更新给定应用服务器/内容主机的轮询间隔,该应用服务器/内容主机基于移动设备250处应用的应用请求间隔变化,如本地代理275中的调度更新引擎所描述的。时间调整引擎358d能设置初始时间,在该初始时间应用服务器/内容主机的轮询将要开始阻止过期的内容再次服务,在如针对本地代理275内的调度更新引擎所描述的服务刷新内容之前。调度更新和时间调整算法均能与移动设备250的本地代理275处完成的相似过程相联系或替换。
图3C描述了一框图,所述框图示出了在图3A示例中示出的分布式代理系统的服务器端上的代理服务器375中的缓存策略管理器355内的组件的另一示例,其能管理和检测缓存失败机制并监测内容源。
在一个实施例中,缓存策略管理器355还可以包括一缓存失败源管理器352,一具有轮询调度管理器358的内容源监视引擎357,和/或更新的或新的内容检测器359。缓存失败源管理器352 可以进一步包括一标识符修改模块353和/或标识符模式跟踪模块354。
在一个实施例中,代理服务器(例如,图1B和图3A中示例的代理服务器125或325)可以经由监视引擎357监视一内容源的新的或变化的数据。内容源(例如, 图1B的应用服务器/内容提供商110或图3A的应用服务器/内容提供商310)可以是已经被代理服务器(例如,由本地代理)识别为具有正被本地缓存在一移动设备上的内容(例如,移动设备150或250)。内容源310可以被监视,例如由监视引擎357以基于移动设备处的内容源的轮询频率的频率。例如,可以由本地代理生成轮询调度并将其发送到代理服务器325。轮询频率可以由轮询调度管理器358跟踪和/或管理。
在一个实施例中,代理服务器325在轮询内容源310中使用标准化标识符或修改的标识符来检测新的或变化的数据(响应)。 标准化标识符或修改的标识符也可以由代理服务器325用于在服务器缓存335上存储响应。一般来说,当对可缓存内容采用缓存失败机制时,可以使用标准化或修改的标识符。缓存失败机制可以是一诸如URI或URL的标识符中的一改变参数的形式,并且可以包括改变时间/数据参数,随机变化参数,或其他类型参数。
标准化标识符或修改的标识符删除或以其他方式替换变化的参数以用于与后续请求相关联并识别相关联的响应,并且还可以用于轮询内容源。在一个实施例中,代理服务器325(分布式代理系统的服务器端组件)上的缓存策略管理器355的缓存失败源管理器352(例如,标识符修改器模块353)来生成修改的标识符。修改的标识符可以使用一替代参数(其在一段时间内通常是静态的)来代替用于缓存失败的变化参数。
缓存失败源管理器352可选地包括标识符模式跟踪模块354,以跟踪,存储和监视对一个或多个内容源(例如,应用服务器/内容主机110或310)的内容进行寻址的一个或多个标识符的各种修改,以连续地验证由代理服务器325使用来轮询内容源的修改的标识符和/或标准化的标识符如预测的或预期的那样工作(例如,接收相同的响应或者与原始的未修改的标识符相比仍然相关的响应)。
在模式跟踪模块354检测到一在内容源上导致不稳定或不可预测的行为(例如,将发送的意外响应)的标识符的修改或标准化的情况下,跟踪模块354可以记录修改并指导缓存失败源管理器352生成另一修改/标准化,或通知本地代理(例如,本地代理275)生成用于轮询内容源的另一修改/标准化。替代地或并行地,来自移动设备(例如,移动设备250)上的给定移动应用/客户端的请求可以临时地通过网络发送到内容源,以提供给移动设备的直接响应和/或直到其工作可以生成对一标识符的一修改。
在一个实施例中,当针对已经存储在移动设备(例如,移动设备250)的一本地缓存(例如,缓存285)上的响应检测到新的或改变的数据时,响应被存储为服务器缓存中的服务器缓存元素。因此,移动设备或本地代理275可以连接到代理服务器325以检索新的或改变的数据,以便对先前在本地缓存285中本地缓存的一请求(现在无效,过时或以其他方式确定为不相关)的一响应。
代理服务器325可以在一被监视的应用服务器/内容主机310处检测新的或改变的数据,并且向移动设备发送消息,通知它这样的改变,使得移动设备(或移动设备上的本地代理)可以采取适当的动作(例如,使本地缓存中的缓存元素无效)。在一些情况下,代理服务器(例如,缓存策略管理器355)在检测到新的或改变的数据时,还可以将新的或改变的数据存储在其缓存(例如,分别为图1B和图3A的示例的服务器缓存135或335)中。在一些情况下,存储在服务器缓存中的更新的/新的数据可以用于满足移动设备处的内容请求; 例如,它可以在代理服务器已经通知移动设备新的/改变的内容并且本地缓存的内容已经被无效之后使用。
图3D描绘了在图3A的示例中所示的代理服务器325中的附加组件的示例的一框图,其还能够基于应用行为和/或流量优先级来执行移动流量的分类和策略的实现。
在代理服务器325的一个实施例中,流量整形引擎375还耦合到一流量分析器336,用于将移动流量分类以用于针对移动流量和针对一个或多个移动设备(例如,图2A-2D的移动设备250)或一应用服务器/内容主机(例如,图1A-1B的110)的流量的策略的定义和实现。一般来说,代理服务器325远离移动设备并且远离主机服务器,如图1A-1B的示例所示。代理服务器325或主机服务器300可以监视多个移动设备的业务,并且能够对不同移动设备的进行流量分类和流量策略设计。
另外,代理服务器325或主机服务器300可以与多个运营商或网络运营商一起操作,并且可以实现与流量的分类和各种类别的流量策略的实现相关的运营商特定的策略。例如,代理服务器325或主机服务器300的流量分析器336可以包括一优先化引擎341a,一时间关键性检测引擎341b,一应用状态分类器341c,和/或一应用流量分类器341d中的一个或多个。
这些引擎或模块中的每一个可以基于不同的无线运营商来跟踪被认为是优先级,时间关键性,背景/前景或交互/维护的不同标准。不同的移动设备类型(例如,设备模型,制造商,操作系统等)也可能存在不同的标准。在一些情况下,移动设备的用户可以调整关于流量类别的设置或标准,并且代理服务器325能够跟踪和实现这些用户调整/配置的设置。
在一个实施例中,流量分析器336能够检测,确定,识别,或推断在流量源自或被指向的一个或多个移动设备(例如,移动设备150或250)上的一应用的活动状态,例如,经由应用状态分类器341c和/或业务分类器341d。可以基于应用在一个或多个移动设备上(经由应用状态分类器341c)是否处于前台或后台状态来确定活动状态,因为前台应用与后台应用的流量可以不同地处理以优化网络使用。
在替代或组合中,应用的活动状态可以由无线电连接的移动设备(例如,经由本地代理中的应用行为检测器)来确定并且被传送到代理服务器325。例如,可以在基于移动设备(例如,通过背光检测器)或移动设备上的其它软件代理或硬件传感器的背光状态以启发式的确定性水平来确定,检测,识别或推断,包括但不限于,电阻传感器,电容传感器,环境光传感器,运动传感器,触摸传感器等。一般来说,如果背光打开,则流量可被视为是或被确定为由活动的或前台的应用生成,或流量是交互的。另外,如果背光打开,则流量可以被视为是或确定为来自用户交互或用户活动的流量,或者包含用户在一些时间段内期望的数据的流量。
可以通过评价,确定,评估,推断,识别移动设备250处的用户活动(例如,经由用户活动模块215)并传送到代理服务器325来确定活动状态。在一个实施例中,基于流量是交互流量还是维护流量来确定活动状态。交互流量可以包括来自直接从与用户活动/交互的应用的响应和请求的流量,并且可以包括用户正在等待或期望接收的内容或数据。 维护流量可以用于支持未被用户直接检测到的应用的功能。维护流量还可以包括可以响应于用户动作而发生的动作或事务,但是用户没有主动地等待或期待该响应。
时间关键性检测引擎341b通常可以确定,识别,推断包含在从移动设备250或从主机服务器300或代理服务器325或者应用服务器(例如应用/内容源110)发送到移动设备的流量中的数据的时间敏感性。例如,时间敏感数据可以包括状态更新,股票信息更新,IM存在信息,电子邮件消息或其他消息,从移动游戏应用生成的动作,网页请求,位置更新等。
根据内容或请求的性质,非时间敏感或时间关键性的数据,根据内容或请求的性质,可以包括删除消息,标记为已读或已编辑的动作的请求,诸如添加好友或删除好友的特定应用动作,某些类型的消息或者不经常因性质改变的其他信息等。在一些情况下,当数据不是时间关键性时,允许将流量发送到移动设备的定时基于何时存在需要发送到相同移动设备的附加数据。例如,流量整形引擎375可以将流量与将在移动设备无线电装置的单个通电事件中一起发送的一个或多个后续事务(例如,使用对齐模块378和/或批处理模块377)对齐。对齐模块378还可以将指向同一主机服务器的在时间上接近的轮询请求对齐,因为这些请求可能用相同的数据来响应。
一般来说,新的或改变的数据是否从主机服务器发送到移动设备,可以基于新的或改变的数据所关联的移动设备上的应用是否在前台运行,或者新的或改变的数据的优先级或时间关键性来确定。如果应用在移动设备上的前台中,或者如果应用处于前台并且处于与移动设备上的用户交互的活动状态,以及 /或用户是否正在等待将在新的或改变的数据中提供的响应,则代理服务器325可以向移动设备发送新的或改变的数据。 代理服务器325(或流量整形引擎375)可以发送具有高优先级或时间关键性的新的或改变的数据。
类似地,如果应用在移动设备上的后台,则代理服务器325(或流量整形引擎375)可以禁止新的或改变的数据的发送。如果用户没有在等待新的或改变的数据中提供的响应,则代理服务器325也可以禁止新的或改变的数据的发送; 其中所述禁止由代理服务器执行,该代理服务器耦合到主机服务器并能够无线地连接到移动设备。
通常,如果包括新的或改变的数据的数据具有低优先级或者不是时间关键的,则代理服务器可以等待直到一段时间之后,或者直到存在要发送的附加数据进行数据传送(例如,经由对齐模块378和/或批处理模块377)。
图3E描绘了示出图3A的示例的流量整形引擎375中的附加组件的示例的框图。其还能够对齐传输到移动或宽带设备或其他接收者的数据,以优化为在无线网络或宽带网络中的传输而建立的连接。
在代理服务器325的一个实施例中,流量整形引擎375还包括通知引擎379,并且对齐模块378包括一调整轮询跟踪器378a,并且批处理模块377还包括一连接触发器377a。
在一个实施例中,代理服务器325能够轮询在给定移动设备上以调度服务各种应用(例如,第一和第二服务)的不同主机。轮询调度表可以由本地代理(例如,图2A-2E的代理275)设置,并且可以包括的移动设备(例如,设备250)上的应用被分配的可能已经被调整的轮询间隔。例如,轮询调度表可以由代理服务器325中的流量整形引擎375的对齐模块378中的调整轮询跟踪器378a跟踪。 可以基于移动设备上的另一服务的轮询间隔来确定服务/应用的调整轮询间隔,使得在远程代理325处接收的数据可以批量地提供给移动设备,例如,通过批处理模块377。
轮询调度表还可以包括代表给定移动设备上的多个应用开始轮询的初始开始时间(t0)。 服务于第一和第二服务的不同主机的第一轮询的初始开始时间(例如,一共同的开始时间点)可以例如由本地代理275(例如,图2A- 2E的代理275)选择,并且在一些情况下由代理服务器325选择。当由本地代理确定时,本地代理传达用于轮询的共同的开始时间点到代理服务器325。在一个实施例中,共同的开始时间点被设置为在将来用以补偿通信延迟。
在一个实施例中,如果给定的移动客户端/移动应用不是开启的或活跃的,或者如果给定的移动设备250没有连接到无线网络,则连接触发器377a可以发送一触发(例如,带外 )触发移动设备或移动设备上的本地代理以请求对无线电供电和/或激活一个或多个相关应用。例如,批处理模块377可以分批处理发送至给定移动设备上的多个应用的各种内容或数据,并且如果移动客户端/应用不是启动的或活跃的,则连接触发器377a可以发送请求应用活动的触发。或者,通知引擎379可以向移动设备250发送存在准备好要发送的数据的指示,请求移动设备250打开无线电,如果当前处于关闭模式。
注意,代理服务器325监视多个移动设备并且跟踪应用特性和用户行为/特性,该应用特性和用户行为/特性跨越多个设备,用户和网络。 因此,涉及调整轮询间隔跟踪器的上述特征虽然涉及针对给定设备上的多个应用的示例,但是注意,对于已经在其上安装有其自己的其他应用集合的多个设备跟踪相同,为此调整轮询间隔或轮询调度表是基于每个移动设备上的应用来计算的,例如驻留在其上的本地代理(例如,可以安装在图2E中描述的,由代理服务器325服务的多个移动设备中的一个或多个上的一本地代理275的组件)。
注意,由于代理服务器325管理,在一个网络中的,跨网络的,在一个地理区域的,对于一个网络运营商而言跨越多个地理区域的,或跨越多个网络的多个运营商的,去往/来自多个移动设备的流量,代理服务器325可以基于交通状况或网络条件的概览或合计数据来对齐流量和批量传输数据。例如,当检测到网络拥塞时,代理服务器325可以划分数据传输至移动设备的优先级。例如,代理服务器325可以向移动设备传送数据,在此处,设备用户订阅的类型或级别基于要被转移至移动设备的内容的最高优先级而分等级或交错(例如,当设备A的最高优先级数据具有比设备B高的优先级时,与移动设备B相比,一批数据可以首先被传送到移动设备A)
注意,例如,对于一地理区域,或对于特定网络运营商,对于一种类型的网络服务,或者对于上述的任何组合,可以存在一个代理服务器325。基于不同的服务实体,代理服务器325可以聚集关于网络流量,运营商设置,应用偏好/要求,用户偏好,相关订阅参数的不同类型的信息,上述的各种组合可以被代理325用于优化需要通过接收移动设备建立的连接。多个代理服务器325服务于地理区域中的不同网络,不同的运营商可以在它们之间共享流量,订阅,用户或应用级别信息,以进一步促进网络资源利用,流量管理,并且在某些情况下促进传输至移动设备的数据的对齐。
图4描绘了示出用于移动设备和代理服务器之间的分布式内容缓存以及内容缓存的分布式管理的示例过程的另一流程图。如本文所示,所公开的技术是具有在客户端/移动设备侧(例如,图2的示例中的本地代理275)和服务器端(例如,图3中的代理服务器325)之间拆分的缓存任务的各个方面的分布式缓存模型。
一般来说,设备侧的职责可以包括决定对一特定请求的响应是否可以和/或应该被缓存。代理的设备侧可以基于在请求和响应之后/期间收集的信息(例如,定时特性,检测到的模式,检测到的具有启发的模式,可预测或可重复的指示)作出这个决定并且对其进行缓存(例如,存储它在移动设备上的本地缓存中)。设备侧还可以向分布式缓存系统中的服务器端通知本地缓存事件,并且通知其监视内容源(例如,图1B-C的应用服务器/内容提供商110)。
设备侧还可以指示分布式代理的服务器端周期性地验证缓存响应(例如,通过轮询,或向内容源发送轮询请求)。设备侧可以进一步决定是否应该从本地缓存返回对一特定缓存请求的响应(例如,是否一缓存命中被检测到)。该决定可以由设备侧(例如,设备上的本地代理)利用在来自内容源的请求和/或响应被接收之后/期间收集的信息做出该决定。
通常,服务器端的职责可以包括验证用于关联的缓存响应(例如,确定缓存响应是否仍然有效或与其相关联的请求相关)。当检测到缓存的响应不再有效或不再相关(例如,服务器使给定内容源无效)时,服务器端可以向移动设备发送一无效请求以通知设备侧。然后,设备端可以从本地缓存中移除该响应。
图4的图示出了为在移动设备(例如,分布式代理的客户端)处检测到的每个被检测或被拦截的请求(例如,HTTP请求)执行的缓存逻辑处理。在步骤602中,代理的客户端(例如,本地代理275)接收请求(来自应用(例如,移动应用)或移动客户端)。在步骤604中URL被标准化,并且在步骤606中客户端检查以确定请求是否可缓存。如果在步骤612中确定请求不可缓存,则在步骤608中将请求发送到源(应用服务器/内容提供商),并且请求被接收610并且被传递给请求应用622,类似于不被客户端代理拦截的请求-响应序列。
如果确定请求是可缓存的,则在步骤612中,客户端查找缓存以确定对于当前请求是否存在缓存条目。如果是,则在步骤624中,客户端可以确定条目是否有效,并且如果是,则客户端可以在步骤615中检查该请求以查看是否包括验证器(例如,一修改的头域或实体标签)。例如,验证的概念在RFC 2616(超文本传输协议HTTP1.1)的第13.3节,其描述了可能的头域类型(例如,eTAG,Modified_Since,must_revlaidate,pragma no_cache)并且如果是则形成验证响应632,如果是,则在步骤622中被传递到请求应用。如果该请求不包括由步骤615确定的验证器,则响应在步骤630中从本地缓存形成,并在步骤622中被传送到请求应用。该验证步骤可以用于通常被认为是不可缓存的内容。
如果相反,在步骤624中找到缓存条目,但确定缓存条目不再有效或无效,则代理的客户端将发送请求616到内容源(应用服务器/内容主机),并且在步骤618中直接从该源接收响应。类似地,如果步骤612中在查找期间没有找到缓存条目,则该请求也在步骤616中被发送。一旦接收到该响应,客户端在步骤626中检查该响应以确定它是否可缓存。如果是,则在步骤620缓存该响应。然后在步骤614中客户端发送另一个轮询,然后在步骤622中将该响应传递给请求应用。
图5描绘了示出无线网络中的来自移动设备450的数据请求如何能够由分布式代理系统460以某种方式协调到应用服务器/内容提供商495的序列图,使得通过使用由该分布式代理系统460执行的内容缓存和监视来保护网络和电池资源。
在没有分布式代理系统460的移动设备450上满足应用或客户端请求时,移动设备450或在该设备450上执行的软件窗口小部件执行直接到应用服务器495的数据请求452(例如,HTTP GET,POST或其他请求 ),并直接从服务器/提供商495接收响应404。如果数据已被更新,则移动设备450上的窗口小部件455可以刷新自身以反映该更新并且等待一小段时间,并且向服务器/提供商495发起另一数据请求。
在一个实施例中,设备450上的请求客户端或软件窗口小部件455可以在处理向服务器/提供商495做出的数据请求时使用分布式代理系统460。一般来说,分布式代理系统460可以包括本地代理465(其通常被认为是系统460的客户端组件并且可以驻留在移动设备450上),缓存代理475(被认为是系统460的服务器端组件470,并且可以驻留在主机服务器485上,或者完全地或部分地在主机服务器485外),和主机服务器485。本地代理465可以经由任何网络或网络的组合连接到缓存代理475和主机服务器485。
当分布式代理系统460用于数据/应用请求时,窗口小部件455可以经由本地代理465执行该数据请求456。本地代理465可以拦截由设备应用做出的请求,并且可以识别请求的连接类型(例如,HTTP获取请求或其他类型的请求)。然后,本地代理465可以向本地缓存查询关于请求的任何先前信息(例如,确定本地存储的响应是否可用和/或仍然有效)。如果本地存储的响应不可用或者如果存储了无效的响应,则本地代理465可以在本地缓存中更新或存储关于请求的信息,该请求做出的时间以及任何附加数据。信息可以被更新信息以用于潜在的满足后续请求。
然后,本地代理465可以将请求发送到主机服务器485,并且主机服务器485可以执行请求456并且在响应458中返回结果。本地代理465可以存储该结果,并且另外存储关于该结果的信息,并将结果返回给该请求窗口小部件455。
在一个实施例中,如果相同的请求已经发生多次(在一特定时间段内)并且其经常产生相同的结果,则本地代理465可以通知460服务器485(例如,步骤462和464 ):应该在将结果返回到本地代理465或请求窗口小部件455之前监视该请求的结果变化。
在一个实施例中,如果请求被标记为监视,则本地代理465现在可以将结果存储到本地缓存中。现在,当本地响应可用的数据请求466由窗口小部件455做出并在本地代理465处被拦截时,本地代理465可以从本地缓存返回该响应468,而不需要通过无线网络建立连接通信。
另外,服务器代理执行标记为监视的请求470以确定用于给定请求的响应472是否已经改变。一般来说,主机服务器485可独立于窗口小部件455或本地代理465操作来执行此监视。每当接收到针对请求的意外响应472时,服务器485可以通知本地代理465响应已经改变(例如,步骤474中的无效通知)并且客户端上本地存储的响应应当被擦除或被新响应替换。
在这种情况下,来自设备450的窗口小部件455的后续数据请求476导致数据被从主机服务器485(例如,经由缓存代理475)返回,并且在步骤478中,由缓存代理满足该请求。因此,通过利用分布式代理系统460,当用于移动设备450上的窗口小部件或软件应用455的内容/数据实际上已改变时,智能地使用无线(蜂窝)网络。 因此,检查应用数据的改变所需的流量不是通过无线(蜂窝)网络执行的。 这减少了生成的网络流量的量,并且缩短了无线电模块在移动设备450上加电的总时间和次数,因此减少了电池消耗,并且还释放了网络带宽。
图6描绘了示出可以用于实现网络访问和内容传送策略的不同流量或应用类别类型的示例的表700。例如,业务/应用类别可以包括交互的或后台的,用户是否正在等待响应,前台/后台应用,以及背光是打开还是关闭。
图7描绘了示出可以用于实现网络访问和内容递送策略的不同内容类别类型的示例的表800。例如,内容类别类型可以包括高或低优先级,以及时间关键性或非时间关键性的内容/数据。
图8描绘了示出应用(例如,移动应用)955如何轮询具有通过无线网络从移动设备到应用服务器/内容提供商995的数据请求的交互图,其可以被能够被缓存在本地代理965上并且由分布式缓存系统(包括本地代理965和主机服务器985(具有服务器缓存935或缓存代理服务器975))管理。
在一个示例中,当移动应用/窗口小部件955轮询应用服务器/提供商932时,该轮询可以在移动设备上被本地代理965本地拦截。本地代理965可以检测到缓存的内容可用于请求中被轮询的内容,并且因此可以从本地缓存检索响应以满足被拦截的轮询936,而不需要使用无线网络带宽或其他无线网络资源。移动应用/窗口小部件955随后可以从缓存条目938接收对该轮询的响应。
在另一示例中,移动应用窗口小部件955轮询该应用服务器/提供商940。该轮询被本地代理965拦截942,并且检测到缓存内容在本地缓存中不可用,并且决定设置用于缓存的轮询源944。为了满足该请求,轮询被转发到内容源946。应用服务器/提供商995从应用接收轮询请求,并提供响应以满足当前请求948。在950中,应用(例如,移动应用) /窗口小部件955从应用服务器/提供商接收响应以满足该请求。
结合起来,为了建立内容缓存,本地代理965跟踪该应用的轮询频率,并且可以建立被发送到主机服务器952的轮询调度表。本地代理将建立的缓存发送到主机服务器954。主机服务器985可以使用该建立的缓存,其包括,例如要轮询的应用服务器/提供商的标识以及可选的轮询调度表956。主机服务器985现在可以轮询应用服务器/提供商995以为了移动设备监视对请求958的响应。应用服务器从主机服务器接收该轮询并且响应960。主机服务器985确定已经接收到相同的响应,并且根据指定的轮询调度表962轮询该应用服务器995。应用服务器/内容提供商995接收该轮询并相应地响应964。
主机服务器985检测改变的或新的响应并通知本地代理965。主机服务器985可以另外将该改变的或新的响应存储在服务器缓存或缓存代理968中。本地代理965从主机服务器985接收新的或改变的数据现在可用的通知并且可以无效受影响的缓存条目970。下一次应用(例如,移动应用)/窗口小部件955对相同的服务器/内容提供商972生成相同的请求时,本地代理确定没有有效缓存条目是可用的,并且代之以例如通过HTTP连接从服务器缓存974检索响应。 主机服务器985接收对新响应的请求,并将该响应976发送回本地代理965。该请求因此从服务器缓存或缓存代理978得到满足,而不需要移动设备利用其无线电或消耗移动网络带宽,从而节约网络资源。
或者,当应用(例如,移动应用)在步骤980中生成相同的请求时,本地代理965在响应确定没有有效的缓存条目可用时,在步骤982中通过移动网络将该轮询转发到应用服务器/提供商。应用服务器/提供商995接收该轮询,并在步骤984中通过移动网络将响应发送回移动设备。该请求因此在步骤986中从使用移动网络的服务器/提供商得到满足。
信号或连接模型示例
图9描绘了示出用于对移动网络中的移动设备(例如,任何无线设备)的信号进行建模的示例过程的流程图。关于图9示出的操作或步骤通过移动设备与性能进行讨论。然而,可以在各种实施例中通过本文所讨论的网络优化架构的一个或多个组件中的任何一个来执行该操作或步骤。例如,操作或步骤可以由移动设备的网络优化客户端代理(例如,图1A-1的移动设备150的网络优化客户端代理175),移动设备(例如,移动设备150),网络优化(主机)服务器(例如,网络优化(主机)服务器100),一个或多个处理器,和/或本文所讨论的其他组件,模块,引擎或工具。额外的或更少的数据流操作是可能的。
开始时,在步骤1010,移动设备跟踪在移动网络中的移动设备上执行的移动应用发起的事务。在步骤1012,移动设备确定事务是否导致网络信号需要相应的无线电连接。在步骤1014,移动设备为移动设备建模网络信号。
图10描绘了示出用于对移动网络中的移动设备(例如,任何无线设备)的信号进行建模的示例过程的流程图。关于图9所述的操作或步骤通过移动设备与性能进行讨论。然而,操作或步骤可以在各种实施例中由本文所讨论的网络优化架构的一个或多个组件来执行。例如,操作或步骤可以由移动设备的网络优化客户端代理(例如,图1A-1的移动设备150的网络优化客户端代理175),移动设备(例如,移动设备150),网络优化(主机)服务器(例如,网络优化(主机)服务器100),一个或多个处理器,和/或本文所讨论的其他组件,模块,引擎或工具。额外的或更少的数据流操作是可能的。
开始时,在步骤1020,移动设备访问与移动设备相关联的无线电日志。 该无线电日志可以指示移动设备无线电的状态。在步骤1022,移动设备访问与该移动设备相关联的流量活动日志。该流量活动日志可以指示在移动设备中的多个测量点处被测量的各种流量指标。在步骤1024,移动设备基于无线电日志和流量活动日志中的一个或多个来计算一个或多个日志/报告数据字段。在步骤1026,移动设备基于该一个或多个日志/报告数据字段对移动设备的网络信号进行建模。
常规连接和时间计算示例
图11A- 图16D描绘了用于确定一般连接和时间计算的日志/报告数据字段的计算示例。如本文所讨论的,各种字段计算可以用于对移动网络中的信号进行建模。重要的是,下面讨论的日志/报告数据字段计算示例包括以下标记方法:
•短时间戳格式(例如,使用07:26:00.000代替完整格式2012-10-30 07:26:00.000);
•输入日志中仅显示计算所需的字段;
•使用网络延迟的示例默认值(例如,15 000毫秒);
•使用请求延迟的示例默认值(例如,1 000毫秒);
•使用拆分比的默认值示例(例如,3000);
•术语“休眠”和“网络延迟”同义使用。
这里讨论的示例连接和时间计算主要基于两个主要数据收集:无线电开启间隔和被过滤的网络日志(netLog,也称为流量活动日志)。
如上所述,扩展的日志/报告数据字段可以被划分为多种类型。例如,扩展的日志/报告数据字段可以包括连接标志类型和连接时间计数类型(参见,例如附录A和B)。另外,扩展的日志/报告数据字段可以被划分为如上面表1中所示的几个类别。
更具体地,图11A和11B示出了真实的(或实际的)无线电时间间隔和相应的日志/报告数据字段示例的计算。图12A和12B示出了虚拟无线电时间间隔和相应的日志/报告数据字段示例的计算。图13A和13B示出了模拟无线电时间间隔和相应的日志/报告数据字段示例的计算。图14A和14B示出了虚拟模拟无线电时间间隔和相应的日志/报告数据字段示例的计算。图15A-15D示出了每个应用的模拟无线电开启间隔示例的计算。图16A-16D示出了每个应用的虚拟模拟无线电开启间隔和相应的日志/报告数据字段示例的计算。
真实的(或实际的)字段示例计算
首先参考图11A和11B,其分别示出了用于计算真实的(或实际的)无线电开启间隔示例的操作说明和真实的(或实际的)无线电时间间隔示例的图形说明。该真实的(或实际的)字段计算包括一实际连接字段和一实际连接时间字段的计算。
实际连接字段指示一通过网络发生的真实连接。无线电日志可以指示一移动设备无线电在一段时间内的各种状态,并且因此可以用于进行该实际连接字段的计算。也就是说,移动设备无线电的状态可以用于确定移动设备无线电是否是/已启动。例如,在一些实施例中,如果无线电日志的当前状态指示移动设备无线电的当前状态被设置为DATA_ACTIVITY_CONNECTED状态或WCDMA_DCH状态,则该移动设备无线电被认为是启动的(或活跃的)。相反,如果移动设备无线电的当前状态被设置为DATA_ACTIVITY_DORMANT状态或IDLE状态,则该移动设备无线电被认为是关闭的(或不活跃的)。
在一个实施例中,计算的实际时间字段指示了移动设备的无线电信道在开启期间的总的时间间隔。也就是说,实际时间字段指示了网络信道用于传送数据(例如,去往或来自客户端)期间的时间。当网络日志项处于无线电开启间隔时,实际时间可以计算为两个最近的网络日志项之间的所有时间间隔的总和。重要的是,当计算实际时间字段时,如果特定的网络日志项是无线电开启日志项之后的日志中的第一个网络日志项,则其连接的实际连接等于两个值的和:
•此网络日志项与其后的最近的网络日志之间的时间间隔
•无线电开启和此网络日志项之间的时间间隔
如参考图11B的示例所讨论的,实际连接字段和实际时间字段可以通过首先读取与移动设备相关联的无线电访问日志和流量活动日志(本文中也称为网日志或网络日志)来计算。无线电访问日志和流量活动日志的相关部分可以在本文中共同被称为与移动设备相关联的输入日志。在图11A的示例中,下面的表3指示了输入网络日志和输入无线电日志(统称为输入日志)的相关部分。
表3 - 输入网络日志和无线电字段
如上所述,输入网络日志和输入无线电日志各自包括各种网络日志项。网络日志项由“NLx”指示,而无线电日志项使用“RLx”指示。
诸如图2E的日志/报告数据分析核心255a或图3E的CRSC分析核心375a的crcs分析核心工具处理输入日志(们),例如,以基于该一个或多个输入日志(例如,无线电日志和流量活动日志),计算一个或多个附加的日志/报告数据字段。该过程可以包括利用一个或多个长轮询技术将一个网络日志项拆分为两个或更多个网络日志项。参考图19A和19B更详细地示出和讨论了更多长轮询技术中的一种的使用。如本示例所示,crcs分析核心工具为每个网络日志项计算实际连接字段(或标志)和实际时间字段。下面示出了示例输出表4。
表4-输出网络日志字段
在此示例中,RL1是无线电开启日志,因为其“状态”字段是data_activity_connected,并且其前一个状态(“prev_state”)是data_activity_dormant。 类似地,RL2是无线电关闭日志,因为其“状态”字段是data_activity_dormant并且其前一个状态(“prev_state”)是data_activity_connected。 因此,实际无线电开启间隔是:07:30:00.000-07:26:00.000= 4min = 240sec = 240 000ms。
关于实际连接的计算,NL1进行实际连接,因为它是无线电开启之后的第一个网络日志,所以这个网络日志开始了一新的连接。NL2和NL3在无线电已经开启时发生,因此它们不会开始新的连接。因此,实际连接NL1 = 1; 实际连接NL2 = 0; 并且实际连接NL3 = 0。关于实际时间计算:
实际时间 NL1 = [RL1, NL1] + [NL1, NL2];
实际时间 NL2 = [NL2, NL3]; 并且
实际时间 NL3 = [NL3, RL2]。
其中,
[RL1,NL1]是无线电日志项RL1和网络日志项NL1之间的时间间隔;
[NL1,NL2]同样为网络日志项NL1和网络日志项NL2之间的时间间隔;
[NL2,NL3]同样为网络日志项NL2和网络日志项NL3之间的时间间隔;
[NL3,RL2]是网络日志项NL3和无线电日志项RL2之间的时间间隔;
即,
[RL1,NL1] = 07:26:00.500 - 07:26:00.000 = 0 500
[NL1,NL2] = 07:26:20.000 - 07:26:00.500 = 19 500
[NL2,NL3] = 07:27:00.000 - 07:26:20.000 = 20 000
[NL3,RL2] = 07:30:00.000-07:27:00.000 = 180000
从而,
实际时间NL1 = [07:26:00.500 - 07:26:00.000] + [07:26:20.000 - 07:26:00.500] = 500 + 19 500 =2000;
实际时间NL2 = 07:27:00.000 - 07:26:20.000 = 40 000;
实际时间NL3 = 07:30:00.000 - 07:27:00.000 = 180 000;
虚拟字段计算示例
接下来参考图12A和图12B,其分别示出了用于计算虚拟无线电开启间隔的示例操作和虚拟无线电开启间隔示例的图形说明。更具体地,虚拟字段计算包括虚拟连接字段和虚拟连接时间字段的计算。
如上所述,crcs分析核心工具或模块(未示出)可以计算由crcs分析核心工具维护和利用的扩展的日志/报告数据字段,以建模移动网络中的移动设备的信号。更具体地,crcs分析核心工具可以对网络优化架构(例如,包括本文所讨论的信号优化和扩展缓存技术的分布式缓存技术)的效果进行建模。例如,诸如图2E的日志/报告数据分析核心255a或者图3E的CRSC分析核心375a之类的crcs分析核心工具或模块,可以计算该虚拟无线电开启间隔。该计算可以包括基于一个或多个输入日志(例如,无线电日志和包括缓存命中信息的流量活动日志)来计算一个或多个附加的日志/报告数据字段。
更具体地,如图12B的示例所示,crcs分析核心工具或模块利用无线电日志和缓存命中网络日志来计算该虚拟无线电开启间隔。虚拟字段示出了移动设备上‘如果没有’该网络优化客户端将发生哪些“连接”。图12A示出了用于虚拟字段的计算的架构示例。
虚拟连接字段指示通过缓存(没有无线电开启)或通过真实的 (实际的)连接做出的虚拟连接。也就是说,虚拟连接示出了如果没有网络优化客户端在移动设备上操作则将发生什么连接。类似地,虚拟时间字段指示如果在移动设备上的操作没有安装网络优化客户端则无线电信道将开启的时间间隔。因此,总虚拟时间总是等于或大于关于图11A和图11B的示例计算的实际时间。
参考图12A和图12B的示例,下面的表5指示输入网络日志和输入无线电日志(统称为输入日志)示例的相关部分。
表5-输入网络日志字段
在一些实施例中,记录DL不是输入日志(中的一项)的一部分。 如上所述,输入网络日志和输入无线电日志各自包括各种网络日志项。 如本文所讨论的,网络日志项由 “NLx”指示,而无线电日志项使用“RLx”来指示。
如本示例所示,crcs分析核心工具为每个网络日志项计算实际连接字段(或标志)和实际时间字段。下面示出了输出示例表6。
表6-输出网络日志字段
在该示例中,RL1被计算为第一虚拟无线电开启日志项或条目,因为实际上发生了真实的无线电开启。RL2被计算为第一无线电关闭日志,因为实际上发生了真实的无线电关闭。NL4被计算为第二虚拟无线电开启日志,因为“CLIENT_BYTES_IN”或“CLIENT_BYTES_OUT”大于零。也就是说,在NL4处,数据在网络优化客户端和网络优化服务器之间传输。DL被计算为第二无线电关闭日志,因为网络延迟恰好在DL处结束。此外,在该示例中,NL5不被计算为日志中的虚拟无线电开启,因为NL4和NL5之间的时间间隔小于休眠。
关于虚拟连接字段的计算,NL1产生虚拟连接,因为它进行实际连接。NL4产生虚拟连接,因为它使得虚拟无线电开启。因此:
虚拟连接NL1 = 1
虚拟连接NL2 = 0
虚拟连接NL3 = 0
虚拟连接NL4 = 1
虚拟连接NL5 = 0
关于虚拟时间字段的计算:
虚拟时间NL1 =实际时间NL1
虚拟时间NL2 =实际时间NL2
虚拟时间NL3 =实际时间NL3
虚拟时间NL4 = [NL4,NL5]
虚拟时间NL5 = [NL5,DL]
其中,
[NL4,NL5]是网络日志项NL4和网络日志项NL5之间的时间间隔
[NL5,DL]是网络日志项NL5和虚拟无线电关闭项DL之间的时间间隔
并且,
[NL4,NL5] = 07:31:01.500 - 07:31:00.000 = 1 500
[NL1,NL2] = 07:31:16.500-07:31:01.500 = 15000
这里DL是从虚拟无线电开启开始的网络延迟发生的时间。 从而,
虚拟时间NL1 = 20 000
虚拟时间NL2 = 40 000
虚拟时间NL3 = 180 000
虚拟时间NL4 = 1 500
虚拟时间NL5 = 15 000
因此,
总虚拟时间=总实际时间+休眠(网络延迟)
总虚拟时间= 240 000 + 16 500 = 256 500
虚拟时间NL1 = 20 000
虚拟时间NL2 = 40 000
虚拟时间NL3 = 180 000
虚拟时间NL4 = 1 500
虚拟时间NL5 = 15 000
模拟字段计算示例
接下来参考图13A和图13B,其分别示出了用于模拟无线电开启间隔的计算操作示例和模拟无线电开启间隔示例的图形说明。更具体地,模拟字段计算包括模拟连接字段和模拟连接时间字段的计算。
在一个实施例中,crcs分析核心工具或模块(未示出)可以计算由crcs分析核心工具维护和利用的扩展的日志/报告数据字段,以建模移动网络中的移动设备的信号。更具体地,crcs分析核心工具可以对网络优化架构(例如,包括本文所讨论的包括信号优化和扩展缓存技术的分布式缓存技术)的效果进行建模。例如,诸如图2E的日志/报告数据分析核心255a或图3E的CRSC分析核心375a的crcs分析核心工具或模块可以计算模拟无线电开启间隔。该计算可以包括基于一个或多个输入日志(例如,包括网络命中信息的流量活动日志)来计算一个或多个附加的日志/报告数据字段。
更具体地,如图13B的示例所示,crcs分析核心工具或模块利用网络命中网络日志( networkHit netLogs)来计算模拟无线电开启间隔。
为了计算模拟字段,系统假定移动设备中的所有应用都使用网络优化客户端,并且没有应用可以在没有网络优化的情况下启动连接。那种情况的无线电日志被称为模拟无线电日志。模拟连接字段指示如果在电话上没有其他应代替那些在网络优化客户端的控制下的应用,则将通过网络发生的连接。类似地,模拟时间字段指示如果在电话上没有其他应用代替那些在网络优化客户端的控制下的应用,则将通过网络将发生的连接的时间。
参考图13A和图13B的示例,下面的表7指示了包括网络命中的输入流量活动日志的相关部分。在一些实施例中,当计算模拟无线电开启间隔时,可以忽略真实的(实际的)无线电日志。因此,真实的(虚拟的)无线电日志项在下面的输入表数据中没有示出。
表7-输入网络日志字段
在该示例中,记录(或项)DL1,DL2和DL3不是输入。 相反,为了描述的清楚起见而示出了这些记录。如本文所讨论的,网络日志项由 “NLx”指示。
诸如例如图2E的日志/报告数据分析核心255a或图3E的CRSC分析核心375a的crsc分析核心工具处理输入日志(们),例如,以基于一个或多个输入日志(例如,流量活动日志)计算一个或多个附加的日志/报告数据字段。该过程可以包括利用一个或多个长轮询技术将一网络日志项拆分为两个或更多个网络日志项。参照图19A更详细地示出和讨论了该过程。如本示例所示,crcs分析核心工具计算模拟连接字段(或标志)和模拟时间字段。下面示出了一示出输出网络日志字段的输出示例表8。
表8-输出网络日志字段
在此示例中,NL1是第一模拟无线电开启日志,因为网络日志项在此开始。DL1是第一模拟无线电关闭日志,因为网络延迟恰好在那时结束。NL2是第二模拟无线电开启日志,原因与NL1相同。DL2是第二模拟无线电关闭日志,原因与RL1相同。NL3是第三模拟无线电开启日志,原因与NL1相同。DL3是第三模拟无线电关闭日志,原因与RL1相同。
关于模拟连接字段的计算,NL1,NL2和NL3产生一模拟连接,因为它们均各自产生一模拟无线电开启。因此,
模拟连接NL1 = 1;
模拟连接NL2 = 1;
模拟连接NL3 = 1。
关于模拟时间字段的计算,如果两个相邻网络日志项之间的时间间隔大于休眠,则该第一个网络日志项将具有等于休眠的模拟时间。否则,两个相邻网络日志项之间的时间间隔将是该网络日志项之间的实际时间。图13C中示出了一个示例。
因此, 在图13A-13C的示例中
模拟时间NL1 =休眠(网络延迟)= 15 000
模拟时间NL2 =休眠(网络延迟)= 15 000
模拟时间NL3 =休眠(网络延迟)= 15 000
虚拟模拟字段计算示例
图14A和14B分别示出了用于虚拟模拟无线电开启间隔的计算的示例架构和虚拟模拟无线电时间间隔的图示。更具体地,下面描述的虚拟模拟字段计算包括虚拟模拟字段和虚拟模拟连接时间的计算。
在一个实施例中,crcs分析核心工具或模块(未示出)可以计算由该crcs分析核心工具维护和利用的扩展的日志/报告数据字段,以建模移动网络中的移动设备的信号。更具体地,该crcs分析核心工具可以对网络优化架构(例如,包括本文所讨论的信号优化和扩展缓存技术的分布式缓存技术)的效果进行建模。例如,该crcs分析核心工具或模块,例如诸如图2E的日志/报告数据分析核心255a或图3E的CRSC分析核心375a的crcs分析核心工具或模块可以计算虚拟模拟无线电开启间隔。该计算可以包括基于一个或多个输入日志(例如,无线电日志和包括网络命中和缓存命中信息的流量活动日志)来计算一个或多个附加的日志/报告数据字段。
更具体地,如图14B中的示例所示,该crcs分析核心工具或模块使用网络命中和缓存命中网络日志来计算虚拟模拟无线电开启间隔。 如本文所讨论的,无线电开启(或活跃)间隔。
虚拟模拟字段指示在模拟环境中发生的连接,在该模拟环境中,移动设备上的通常使用该网络优化客户端的所有应用被模拟,但是该移动设备上并不存在网络优化。
虚拟模拟连接字段指示在模拟环境中将通过网络发生的连接(们),在该模拟环境中,移动设备上的通常使用该网络优化客户端的所有应用被模拟,但是在该移动设备上并不存在网络优化。类似地,虚拟模拟时间字段指示在模拟环境中将通过网络发生的连接的连接时间,在该模拟环境中,移动设备上的通常使用该网络优化客户端的所有应用被模拟,但是在该移动设备上不存在网络优化。
参考图14A和图14B的示例,下面的表9指示了包括网络命中的输入日志的相关部分。模拟环境中,移动设备上的通常使用网络优化客户端的所有应用被模拟,但是在该移动设备上不存在网络优化。
表9-输入网络日志字段
在该示例中,记录(或项)DL1,DL2和DL3不是输入。相反,为了描述的清楚起见示出这些记录。如本文所讨论的,网络日志项由 “NLx”指示。
诸如例如图2E的日志/报告数据分析核心255a或图3E的CRSC分析核心375a的crcs分析核心工具处理输入日志(们),例如,以基于一个或多个输入日志(例如,流量活动日志)计算一个或多个附加的日志/报告数据字段。该过程可以包括利用一个或多个长轮询技术将一个网络日志项拆分为两个或更多个网络日志项。参照图19A更详细地示出和讨论了该过程。如本示例所示,crcs分析核心工具计算模拟连接字段(或标志)和模拟时间字段。下面示出了描述输出网络日志字段的输出示例表10。
表10-输出网络日志字段
在本示例中,NL4是第四虚拟模拟无线电开启日志,因为“CLIENT_BYTES_IN”或“CLIENT_BYTES_OUT”大于零,表示数据被传输于网络优化客户端和网络优化服务器之间。注意,NL5不是一虚拟模拟无线电开启日志项,因为NL4和NL5之间的时间间隔小于休眠。
每个应用的模拟字段计算示例
图15A和15B分别示出了用于计算模拟无线电开启间隔的示例架构和模拟无线电时间间隔示例的图示。更具体地,下面描述的模拟字段计算包括基于每个应用的虚拟模拟字段和虚拟模拟连接时间字段的计算。
在一个实施例中,crcs分析核心工具或模块(未示出)可以计算由crcs分析核心工具维护和利用的扩展的日志/报告数据字段,以建模移动网络中的移动设备的信号。更具体地,crcs分析核心工具可以对网络优化架构(例如,包括本文所讨论的信号优化和扩展缓存技术的分布式缓存技术)的效果进行建模。例如,诸如图2E的日志/报告数据分析核心225a或图3E的CRSC分析核心375a的crcs分析核心工具或模块可以在每个应用的基础上计算模拟无线电开启间隔。 该计算可以包括基于一个或多个输入日志(例如,包括网络命中信息的流量活动日志)来计算一个或多个附加的日志/报告数据字段。
更具体地,如图15B的示例所示,crcs分析核心工具或模块利用某些应用的网络日志来计算每个应用的模拟的无线电开启间隔。在图15B的示例中,网络日志NL1与第一应用#1相关联,网络日志NL2和NL3与第二应用#2相关联。
在图15C的示例中示出了每个第一应用#1的模拟无线电开启间隔。 类似地,图15D示出了每个第二应用#2的模拟无线电开启间隔。
模拟各应用字段指示了在模拟环境中发生的连接,在该模拟环境中,移动设备上的通常使用网络优化客户端的所有应用被模拟,但是在该移动设备并不存在网络优化。为了计算模拟各应用字段,系统仅考虑在移动设备上的一个应用(例如,应用#1)。该一个应用(例如,应用#1)利用网络优化客户端,并且没有应用可以在没有网络优化的情况下开始连接。这种情况的无线电日志称为模拟各应用无线电日志。
模拟各应用连接是指如果在移动设备上安装了一个应用(在网络优化客户端的控制下)并且在电话上没有其他应用,则将通过网络发生的连接。类似地,模拟各应用时间是指如果在移动设备上安装了一个应用(在网络优化客户端的控制下)并且在电话上没有其他应用,则将通过网络发生的连接的时间。
参考图15A和图15B的示例,下面的表11指示了包括网络命中的输入日志的相关部分。在计算模拟无线电开启间隔时,我们忽略真实的(实际的)无线电日志,这就是为什么它们不在输入数据中显示的原因。参见表11中的示例。
表11-输入网络日志字段
在该示例中,记录(或项)DL1,DL2和DL3不是输入。 相反,为了描述的清楚起见,示出了这些记录。如本文所讨论的,网络日志项由“NLx”指示。
诸如图2E的日志/报告数据分析核心255a或图3E的CRSC分析核心375a之类的crcs分析核心工具处理输入日志(们),例如,以基于一个或多个输入日志(例如,流量活动日志)计算一个或多个附加的日志/报告数据字段。该过程可以包括利用一个或多个长轮询技术将一个网络日志项拆分为两个或更多个网络日志项。该过程参照图19A更详细地被示出和讨论。如本示例所示,crcss分析核心工具计算每个应用的模拟连接字段(或标志)和每个应用的模拟时间字段。 下面示出了输出网络日志字段的示例输出表12。
表12-输出网络日志字段
在此示例中,NL1是第一模拟无线电开启日志,因为网络日志项在此开始。DL1是第一模拟无线电关闭日志,因为恰好在那时网络延迟结束。NL2是第二模拟无线电开启日志,原因与NL1相同。DL2是第二模拟无线电关闭,原因与RL1相同。NL3是第三模拟无线电开启日志,与NL1相同。DL3是第三模拟无线电关闭日志,原因与RL1相同。
关于模拟各应用连接字段,NL1,NL2和NL3产生模拟连接,因为它们各自引起模拟无线电开启事件。因此,
模拟连接NL1 = 1
模拟连接NL2 = 1
模拟连接NL3 = 1
并且,
模拟时间NL1 =休眠(网络延迟)= 15 000
模拟时间NL2 =休眠(网络延迟)= 15 000
模拟时间NL3 =休眠(网络延迟)= 15 000
每个应用的虚拟模拟字段计算示例
图16A和16B分别示出了用于计算一每个应用的虚拟模拟无线电开启间隔的示例架构以及一每个应用的虚拟模拟无线电时间间隔的示例。 更具体地,下面描述每个应用的虚拟模拟字段计算包括每个应用的虚拟模拟字段和每个应用的虚拟模拟连接时间字段的计算。
在一个实施例中,crcs分析核心工具或模块(未示出)可以计算由该crcs分析核心工具维护和利用的扩展的日志/报告数据字段,以建模移动网络中的移动设备的信号。更具体地,crcs分析核心工具可以对网络优化架构(例如,包括本文所讨论的信号优化和扩展缓存技术的分布式缓存技术)的效果进行建模。例如,诸如图2E的日志/报告数据分析核心255a或图3E的CRSC分析核心375a的crcs分析核心工具或模块可以计算虚拟模拟无线电开启间隔。该计算可以包括基于一个或多个输入日志(例如,无线电日志和包括网络命中和缓存命中信息的流量活动日志)来计算一个或多个附加的日志/报告数据字段。
更具体地,如图16B的示例所示,crcs分析核心工具或模块使用网络命中和缓存命中网络日志来计算虚拟模拟无线电开启间隔。如本文所讨论的,该无线电开启间隔指示了移动设备无线电活跃期间的时间段。
在图16C的示例中,示出了与第一应用#1相关联的虚拟模拟无线电开启间隔。类似地,图16D的示例示出了与第二应用#2相关联的虚拟模拟无线电开启间隔。
每个应用的虚拟模拟用字段指示了在模拟环境中发生的连接,在该模拟环境中,移动设备上的通常使用网络优化客户端的单个应用被模拟,但是在该移动设备上不存在网络优化。
每个应用的虚拟模拟连接字段指示了在模拟环境中将通过网络发生的连接(们),在该模拟环境中,在移动设备上的通常使用该网络优化客户端的单个应用被模拟,但是在移动设备上不存在网络优化。 类似地,虚拟模拟时间字段指示了在模拟环境中通过网络发生的连接的连接时间,在该模拟环境中,移动设备上的通常使用网络优化客户端的单个应用被模拟,但是在移动设备上不存在网络优化。
参考图16A和图16B的示例,下面的表13指示了包括网络命中的输入日志的相关部分。在模拟环境中,移动设备上的通常使用网络优化客户端的所有应用都被模拟,但是在该移动设备不存在网络优化。
表13-输入网络日志字段
在该示例中,记录(或项)DL1,DL2和DL3不是输入。 相反,为了描述的清楚起见,示出了这些记录。如本文所讨论的,网络日志项由 “NLx”指示。
诸如图2E的日志/报告数据分析核心255a或图3E的CRSC分析核心375a之类的crcs分析核心工具处理输入日志(们),例如,基于一个或多个输入日志(例如,流量活动日志),以计算一个或多个附加的日志/报告数据字段。该过程可以包括利用一个或多个长轮询技术将一个网络日志项拆分为两个或更多个网络日志项。该过程参照图19A更详细地被示出和讨论。如本示例所示,crcs分析核心工具计算每个应用的模拟连接字段(或标志)和每个应用的模拟时间字段。下面示出了输出网络日志字段的示例输出表14。
表14-输出网络日志字段
节约值示例
如本文所讨论的,各种字段计算可以用于对移动网络中的信号进行建模。例如,该建模可以包括计算节约连接和节约时间。该节约连接指示作为使用网络优化架构的结果而节约的连接的量,数量或总量。在一个实施例中,节约的连接可以被建模如下:
节约连接=虚拟连接 - 实际连接,
节约模拟连接=虚拟模拟连接 - 模拟连接,
节约模拟各应用连接=每个应用的虚拟模拟连接 - 每个应用的模拟连接,
每个主机的节约模拟连接=每个主机的虚拟模拟连接拟 – 每个主机的模拟连接。
类似地,该节约时间是作为使用该网络优化架构的结果而节约的连接时间的时间间隔。在一个实施例中,节约时间可以被建模如下:
节约时间=虚拟时间 - 实际时间,
节约模拟时间=虚拟模拟时间 - 模拟时间,
每个应用的节约模拟时间=每个应用的虚拟模拟时间 –每个应用的模拟时间,
每个主机的节约模拟时间=每个主机的虚拟模拟时间- 每个主机的模拟时间。
连接标志和时间
图17A示出了计算上述连接标志和连接时间间隔的示例。连接标志指示了特定的网络日志是否引起无线电开启。在一个实施例中,为了确定每个无线电开启间隔的连接标志,最近的网络日志到无线电开启日志记录用连接标志标记。重要的是,只有在请求延迟邻域到无线电开启日志中的网络日志用标记有连接标志。
图17B示出了无线电开启间隔示例。无线电开启间隔可以被计算,维持,和/或以其它方式获得,以计算指示特定网络日志的无线电开启时间的影响的连接时间。对于每个无线电开启间隔,该无线电开启时间等于属于该特定间隔的网络日志的连接时间值的总和。
网络命中
网络命中是网络优化服务器端的数据传输的起点。在一个实施例中,网络日志项被认为是网络命中,当其关联字段的这些条件中的至少一个条件为真时:
缓存命中
缓存命中是缓存中的数据传输的起点。在一个实施例中,网络日志项被认为是缓存命中,当其不是网络日志命中并且其关联字段的这些条件中的至少一个为真时:
详细计算示例
以下示例说明了另一个字段计算。首先,假设以下输入网络日志和无线电日志:
表15-输入网络日志字段
表16-输入无线电日志字段
图18描绘了在一段时间上的日志的示例方案。 例如,假设:
t1 =(07:26:20.000 - 07:26:00.000)= 20 000 ms,
t2 =(07:27:00.000-07:26:20.000)= 40 000ms,
t3 =(07:27:00.100 - 07:27:00.000)= 100ms,
t4 =(07:29:00.000-07:27:00.100)= 119000ms,
t5 =(07:29:00.500 - 07:29:00.000)= 500ms,
t6 =(07:30:00.07:29:00.500)= 59500ms,
t7 =(07:31:00.000 - 07:30:00.000)= 60 000 ms,
网络延迟= 15秒,
因此,
t1,(t2 + t3),t4,(t6 + t7)>网络延迟; 并且
t5 <网络延迟;
t3 <请求延迟。
下面的表17示出了计算的结果
表17-计算结果
表18显示了输出网络日志描述。请注意,输出时间间隔以毫秒为单位。
表18-输出网络日志
长轮询处理示例
根据一实施例,图19A图形地示出了用于将一网络日志项分割成两个网络日志项目长轮询过程。 更具体地,本文描述的长轮询过程是将一网络日志项分割成两个网络日志项的过程。在一个实施例中,用于对网络日志项执行长轮询过程的条件是:
•RESPONSE_TIME大于或等于网络延迟(默认值,例如15 000 ms);
•网络日志项是网络命中或缓存命中;
•SERVER_BYTES_IN / RESPONSE_TIME的值小于或等于拆分比(默认值,例如3 000ms)。
图19B图形地示出了为了使得网络日志被分为两部分所必须为真的条件。 更具体地,如果SERVER_BYTES_IN / RESPONSE_TIME的值小于或等于拆分比(默认值,例如,3000ms),则可以该网络日志能够被分为两部分。 下面的表19示出了作为执行长轮询过程的结果而发生的字段修改。
表19-长轮询处理后改变的字段
下面分别示出了输入和输出网络日志拆分前后的示例。
表20-输入网络日志和无线电字段
表21-输入网络日志和无线电字段
日志预处理示例
在一些实施例中,在填充所计算的字段中的数据之前执行日志预处理。 例如,可以执行以下过程:
如果
那么用SERVER_BYTES_IN替换CLIENT_BYTES_OUT。
如果
那么用SERVER_BYTES_IN替换CLIENT_BYTES_OUT。
如果
那么用SERVER_BYTES_OUT替换CLIENT_BYTES_IN。
如果
那么用零值替换CLIENT_BYTES_IN。
如果RESPONSE_TIME <0,那么将RESPONSE_TIME替换为零值。
报告处理
现在描述各种示例字段的计算。
未充电时间计算示例
图20图示了TIME_ON_NOT_CHARGING字段的计算示例。 在一些实施例中,功率日志可以用于进行该计算。 在一些实施例中,TIME_ON_NOT_CHARGING字段表示当设备的电池状况正在下降的间隔的总和。例如,TIME_ON_NOT_CHARGING = [电池间隔1] + [电池间隔2]。
电荷下降百分比计算示例
图21图形地示出CHARGE_DROP_PERCENT字段的一计算示例。 同样,可以使用功率日志进行该计算。在一些实施例中,该下降百分比表示当电池状况正在下降时电池状况的变化的总和。例如,CHARGE_DROP_PERCENT = [89-25] + [60-10] = 64 + 50 = 114(百分比)。
无线电状态时间示例
下面的表22描述了各种示例前一无线电状态与相应的报告字段之间的关系。更具体地,下面的表描述了TIME_RADIO_STATE_n字段的计算,其中n从1到10。在该示例中,使用无线电日志,并且如果该无线电日志中的INTERVAL的值大于零,则将INTERVAL字段的值保存到其中一个TIME_RADIO_STATE_n字段。
表22-前一无线电状态和报告字段之间的对应
转换到无线电状态的计算示例
下面的表23描述了TRANS_INTO_RADIO_STATE_n字段,其中n从1到10。在该示例中,使用无线电日志。 TRANS_INTO_RADIO_STATE_n字段表示无线电日志已转换到某个状态的次数。
表23-当前无线电状态和报告字段之间的对应
WCDMA时间计算示例
下面的表24描述了WCDMA_TIME_IN_DCH,WCDMA_TIME_IN_FACH,WCDMA_TIME_IN_PCH和WCDMA_TIME_IN_IDLE字段。同样,在该示例中使用无线电日志,并且如果该无线电日志中的INTERVAL的值大于零,则INTERVAL字段的值被保存到字段WCDMA_TIME_ <...>字段之一中。前一无线电状态和报告字段之间的对应关系如下表所示。
表24-前一无线电状态和报告字段之间的对应
WCDMA转换到无线电状态的计算示例
下面的表25描述了WCDMA_TRANS_INTO_DCH,WCDMA_TRANS_ INTO_FACH,WCDMA_TRANS_INTO_PCH,WCDMA_TRANS_INTO_IDLE计算字段。 在本示例中使用无线电日志。字段WCDMA_TRANS_INTO _ <...>表示无线电日志已转换到某个状态的次数。
表25-当前无线电状态和报告字段之间的对应
总字节计算示例
下表26描述了TOTAL_BYTES_FROM_APP,TOTAL_BYTES_TO_APP,TOTAL_BYTES_FROM_NET,TOTAL_BYTES_TO_NET,TOTAL_BYTES_FROM_CACHE,TOTAL_BYTES_TO_CACHE计算字段。
表26-字节计算
总命中计算示例
下表27描述了TOTAL_HITS_FROM_APP,TOTAL_HITS_TO_APP,TOTAL_HITS_FROM_NET,TOTAL_HITS_TO_NET,TOTAL_HITS_FROM_CACHE和TOTAL_HITS_TO_CACHE计算字段。
表27-命中计算
缓存请求.字节和命中示例
下面的表28描述了TOTAL_BYTES_CACHE_REQ和TOTAL_HITS_CACHE_REQ计算字段。
表28-缓存请求计算
连接计算示例
下面的表29描述了SIM_RADIO_STATE_CHANGES_ACTUAL和SIM_RADIO_STATE_CHANGES_SAVED计算字段。在一些实施例中,网络日志字段可以用于计算这些报告字段。计算有两种情况:
•报告关键类别为“应用”;
•报告键类别是其他(不是“应用”)
报告关键类别为“应用”示例
表30-连接计算
报告键类别是其他(不是“应用”)示例
表31-连接计算
时间计算示例
下面的表32描述了SIM_RADIO_TIME_CONN_ACTUAL和SIM_RADIO_TIME_CONN_SAVED计算字段。在一些实施例中,网络日志字段用于计算这些报告字段。计算有两种情况:
•报告关键类别为“应用”;
•报告键类别是其他(不是“应用”)
报告关键类别为“应用”示例
表33-时间计算
报告键类别是其他(不是“应用”)示例
表34-时间计算
网络日志字段示例
表35-网络日志格式
报告格式字段示例
表36-报告格式
图22示出了各种示例性测量点,诸如例如图2E的日志/报告数据分析核心255a或图3E的CRSC分析核心375a之类的日志/报告数据分析核心模块可以从其执行用于对数据网络中的信号建模的测量。 可以由日志/报告数据分析核心模块适配的输出指标的一些示例在图23A-23E中列出。
如上所述,在一些实施例中,日志/报告数据分析核心可以进行各种计算。例如,图24A图形地示出了网络优化字节计算的示例。
此示例中,关于HTTPS流量,该网络优化的模拟证书小于从网络接收的证书,这将表现为负节约。对于HTTPS握手,到应用的字节被替换为来自网络的字节。仅关于来自应用的字节,网络优化接收与网络可用性无关的请求。通常由网络不可用引起。在请求不能去到网络并且不能够被缓存服务的情况下,调整optimization-AT-ADJ为0。
在该示例中,(调整的)应用(App)和网络流量之间的差异是节约的流量(即,[network optimization-AT-ADJ] - [network optimization-NT] = [networkoptimization-ST])。节约的流量加上总网络流量是总应用流量(即,[networkoptimization-ST] + [TNT] = [TAT])。(调整的)App流量除以总应用流量是字节覆盖(即,[network optimization -AT-ADJ] / [TAT] = BC。
在一些实施例中,网络优化字节计算的覆盖可以受以下影响:
•流量直接通向网络接口,而不是通过:网络优化
•配置为旁路的TCP端口:IMAP,POP,7TP
•故障转移中的网络优化客户端
•第三方客户端重新配置流量流(通常为共享)
•针对不正确接口记录的总网络流量:为TNT定义的接口是手动配置的。新的设备型号需要验证。
•时间因素:定期记录总网络流量,同时记录每个事务的网络优化应用流量。数据收集中断,例如设备重新启动可能会对这些指标造成不同的截止。网络更改通知也可能出现在较长事务的中间,使得不清楚哪个网络接口被使用了。
•TCP / IP和UDP协议开销和TCP重试:测量总网络流量,但未测量网络优化应用流量。
图24A-24J图形地示出了可以在日志/报告数据分析核心模块的实施例中使用的示例输出度量的各种计算。
图25描绘了示出分布式网络优化系统的一般架构概述的示例图,该分布式网络优化系统包括测量点,日志/报告数据分析核心模块可以从该测量点执行用于对数据网络中的信号建模的测量。图26A-26N示出了日志/报告数据分析核心模块可以适配的附加的和/或备选的输出指标的示例。
例如,图26A-26C示出了数据指标示例。图26D-26F示出了优化指标示例。在一些实施例中,IS网络优化/ ISOTC可以存在异常:内部信号优化公式在通过协议的计算中不再使用模拟值。图26G示出了用户指标示例。在一些实施例中,用户指标可以用于在关注的时间段内提供唯一数量的用户(例如,由7TP地址标识)或用户的组合。此外,指标可以用于计算指标,例如每个用户每天的字节/连接。图26H示出了电池指标示例。图26I-26K示出了信号指标示例。例如,信号总体指标可以提供在关注的时间段内,由无线电状态所破坏的状态转换的数量。同样,总体时间连接可以提供在关注的时间段内,由无线电状态所破坏的连接的时间。图26L-26M示出了维度指标示例。图26N示出了优化指标示例。图26N示出了优化指标示例。
图27示出了计算机系统的示例形式的机器的图示,在其中,可以执行用于使该机器执行本文所讨论的方法中的任何一个或多个的一组指令。
在替代实施例中,该机器作为独立设备操作或者可以被连接(例如,联网)到其他机器。在联网部署中,该机器可以在客户端-服务器网络环境中作为服务器或客户端机器操作,或者在对等(或分布式)网络环境中作为对等机器操作。
该机器可以是服务器计算机,客户端计算机,个人计算机(PC),用户设备,平板PC,膝上型计算机,机顶盒(STB),个人数字助理(PDA) 移动电话,iPhone,iPad,黑莓,处理器,电话,网络设备,网络路由器,交换机或网桥,控制台,手持控制台,(手持)游戏设备,音乐播放器 ,任何便携式,移动的,手持设备或能够执行指定要由该机器采取的动作的一组指令(序列或其他)的任何机器。
虽然机器可读介质或机器可读存储介质在示例性实施例中被示为是单个的介质,但是术语“机器可读介质”和“机器可读存储介质”应该被认为包括单个介质或多个媒体(例如,集中式或分布式数据库和/或相关联的缓存和服务器),其存储一个或多个指令集。术语“机器可读介质”和“机器可读存储介质”还将被认为包括能够存储,编码或携带用于由机器执行的一组指令的任何介质,并且使得机器执行任何一个或多个本公开的技术和创新的方法。
一般来说,被执行以实现本公开的实施例的例程可以被实现为被称为“计算机程序”的操作系统或特定应用,组件,程序,对象,模块或指令序列的一部分。计算机程序通常包括在各种事件在计算机的各种存储器和存储设备中的一个或多个指令,当由计算机中的一个或多个处理单元或处理器读取和执行时,使得计算机执行操作以执行涉及本公开的各个方面的元件。
此外,尽管已经在功能齐全的计算机和计算机系统的环境下描述了实施例,但是本领域技术人员将理解,各种实施例能够作为程序产品以各种形式分发,并且本公开能够同样的应用,而不考虑用于实际实现分发的机器或计算机可读介质的特定类型。
机器可读存储介质,机器可读介质或计算机可读(存储)介质包括括但不限于可记录类型介质,诸如易失性和非易失性存储设备,软盘和其他可移动盘,硬盘驱动器 ,光盘(例如,只读光盘存储器(CD ROM),数字通用盘(DVD)等)等以及诸如数字和模拟通信链路的传输型介质。
附加实施例
在一些实施例中,公开了一种在移动网络中建模信号的方法。 该方法包括:确定由在移动网络中的移动设备上执行的移动应用发起的事务是否引起需要相应的无线电连接的网络信号,其中由该事务引起的网络信号的至少一部分由流量优化引擎过滤; 并且至少部分地基于过滤的网络信号来对移动设备的网络信号进行建模。
在一些实施例中,过滤的网络信令不引起相应的无线电连接。
在一些实施例中,为移动设备建模网络信号还包括计算指示作为过滤的结果而被节约的无线电连接的总数的信号效率。
在一些实施例中,计算信号效率还包括:访问与移动设备相关联的无线电日志和流量活动日志; 基于无线电日志和流量活动日志对虚拟无线电连接的数量进行建模,其中虚拟无线电连接指示如果没有所述过滤将发生的无线电连接; 基于无线电日志确定实际无线电连接的数量,其中所节约的无线电连接的总数包括虚拟无线电连接的数量与实际无线电连接的数量之间的差。
在一些实施例中,为移动设备建模网络信号还包括计算指示作为过滤的结果而节约的总的无线电连接时间的连接时间效率。
在一些实施例中,所述方法还包括由流量优化引擎应用流量优化技术以过滤网络信号,使得网络信号的至少一部分被过滤。
在一些实施例中,所述方法还包括访问指示在移动设备中的多个流量测量点处测量的流量指标的流量活动日志,其中建模网络信号还包括基于流量指标计算连接状态和连接时间间隔。
在一些实施例中,为移动设备建模网络信号还包括将网络信号归因于在移动设备上执行的移动应用的单独应用。
在一些实施例中,所述方法还包括访问与移动设备相关联的无线电日志和流量活动日志,其中所述无线电日志指示移动设备无线电的状态,其中所述流量活动日志指示在该移动设备中的多个测量点处测量的各种流量指标;以及通过计算一个或多个日志/报告数据字段来维护所述流量活动日志。
在一些实施例中,基于一个或多个日志/报告数据字段来对网络信号进行建模。
在一些实施例中,维护流量活动日志包括长轮询。
在一些实施例中,一个或多个日志/报告数据字段被划分为连接标志字段和连接时间计数字段。
在一些实施例中,一个或多个日志/报告数据字段被分类为以下类别中的一个或多个:实际的,模拟的,实际模拟的,虚拟模拟的,每个应用的实际模拟,以及每个应用的虚拟模拟。
在一些实施方案中,流量优化引擎包括分布式缓存和代理系统的一个或多个元件。
在一些实施例中,分布式缓存和代理系统包括代理客户端和代理服务器。
在一些实施例中,经过滤的无线电连接由代理客户端本地缓存。
在一些实施例中,公开了一种在移动网络中建模网络信号的方法。 该方法包括:访问与在移动网络中操作的移动设备相关联的无线电日志,所述无线电日志指示移动设备无线电的状态; 访问与所述移动设备相关联的流量活动日志,所述流量活动日志指示在所述移动设备中的多个测量点处测量的各种流量指标; 基于所述无线电日志和所述流量活动日志中的一个或多个来计算一个或多个日志/报告数据字段; 以及基于所述一个或多个日志/报告数据字段对所述移动设备的网络信号进行建模。
在一些实施例中,该方法还包括确定由在移动网络中的移动设备上执行的移动应用发起的事务是否导致网络信号需要在移动设备上的相应的无线电连接,其中由所述事务引起的网络信号的至少一部分由流量优化引起过滤。
在一些实施例中,经过滤的网络信号不会引起移动设备上相应的无线电连接,并且未过滤的网络信号引起移动设备上相应的无线电连接。
在一些实施例中,对网络信号进行建模还包括至少部分地基于一个或多个计算的日志/报告数据字段来计算连接状态和连接时间间隔。
在一些实施例中,为移动设备建模网络信号还包括计算指示作为过滤的结果而节约的无线电连接的总数的信号效率。
在一些实施例中,计算信号效率还包括:访问与移动设备相关联的无线电日志和流量活动日志; 基于所述无线电日志和所述流量活动日志对虚拟无线电连接的数量进行建模,其中所述虚拟无线电连接指示了如果没有所述过滤将发生的无线电连接; 基于所述无线电日志确定实际无线电连接的数量,其中所述无线电连接的总数包括所述虚拟无线电连接的数量和所述实际无线电连接的数量之间的差。
在一些实施例中,为移动设备建模网络信号还包括计算指示作为过滤的结果节约的总无线电连接时间的连接时间效率。
在一些实施例中,计算连接时间效率还包括:访问与移动设备相关联的无线电日志和流量活动日志; 基于所述无线电日志和所述业务活动日志对虚拟无线电连接时间建模,其中所述虚拟无线电连接时间指示所述移动设备无线电将是活动的但用于所述过滤的时间量; 确定基于所述无线电日志的实际无线电连接时间,其中所述实际无线电连接时间指示所述移动设备无线电活跃的时间量; 其中所节约的总无线电连接时间包括虚拟无线电连接时间与实际无线电连接时间之间的差。
在一些实施例中,所述方法还包括通过跟踪事务和测量在移动设备中的多个测量点处的各种流量指标来维护流量活动日志。
在一些实施例中,一个或多个日志/报告数据字段被划分为连接标志字段和连接时间计数字段。
在一些实施例中,一个或多个日志/报告数据字段被分类为以下类别中的一个或多个:实际的,模拟的,实际模拟的,虚拟模拟的,每个应用的实际模拟,以及每个应用的虚拟模拟。
在一些实施例中,公开了一种移动设备。移动设备包括无线电装置; 处理器; 以及存储指令的存储器,其中当该指令由所述处理器执行时,导致所述移动设备:访问与在所述移动网络中操作的移动设备相关联的无线电日志,所述无线电日志指示移动设备无线电的状态; 访问与所述移动设备相关联的流量活动日志,所述流量活动日志指示在所述移动设备中的多个测量点处测量的各种流量指标; 基于所述无线电日志和所述流量活动日志中的一个或多个来计算一个或多个日志/报告数据字段; 以及基于所述一个或多个日志/报告数据字段对所述移动设备的网络信号进行建模。
在一些实施例中,其中所述指令在由所述处理器执行时进一步致使所述移动设备:确定由在所述移动网络中的所述移动设备上执行的移动应用发起的事务是否导致网络信号需要在所述移动设备上的相应的无线电连接,其中由所述事务引起的所述网络信号的至少一部分被流量优化引擎过滤,其中所述经过滤的网络信号不引起移动设备上的相应的无线电连接,并且所述未过滤的网络信号引起移动设备上的相应的无线电连接。
在一些实施例中,移动设备还包括流量优化引擎,该流量优化引擎包括分布式缓存和代理系统的一个或多个元件。
在一些实施例中,分布式缓存和代理系统包括代理客户端和代理服务器,并且其中经过过滤的无线电连接由该代理客户端本地缓存。
在一些实施例中,当指令由处理器执行时还使得移动设备:跟踪由在移动网络中的移动设备上执行的移动应用发起的事务; 测量所述移动设备中的多个测量点处的各种流量指标; 并基于所述测量来维护所述流量活动日志。
在一些实施例中,为了对移动设备的网络信号进行建模,当指令由处理器执行时,还使得移动设备计算指示作为过滤的结果而节约的无线电连接的总数的信号效率。
在一些实施例中,为了计算信号效率,指令在由处理器执行时还使得移动设备:访问与移动设备相关联的无线电日志和流量活动日志; 基于所述无线电日志和所述流量活动日志对虚拟无线电连接的数量进行建模,其中所述虚拟无线电连接指示了如果没有所述过滤将发生的无线电连接; 基于所述无线电日志确定实际无线电连接的数量,其中无线电连接的总数包括所述虚拟无线电连接的数量和所述实际无线电连接的数量之间的差。
在一些实施例中,为了对移动设备的网络信号进行建模,当指令由处理器执行时,还使得移动设备计算指示作为过滤的结果节约的总无线电连接时间的连接时间效率 。
在一些实施例中,为了计算连接时间效率,指令在由处理器执行时还使得移动设备:访问与移动设备相关联的无线电日志和流量活动日志; 基于所述无线电日志和所述业务活动日志对虚拟无线电连接时间进行建模,其中所述虚拟无线电连接时间指示如果没有所述过滤,所述移动设备无线电将活跃的时间量; 基于所述无线电日志确定实际无线电连接时间,其中实际无线电连接时间指示所述移动设备无线电活跃的时间量; 其中所节约的总无线电连接时间包括虚拟无线电连接时间与实际无线电连接时间之间的差。
在一些实施例中,公开了一计算机可读存储介质,其存储的指令由具有处理器的移动设备执行。所述指令在由处理器执行时使得移动设备:确定由在移动网络中的移动设备上执行的移动应用发起的事务是否导致网络信号需要相应无线电连接,其中由所述事务引起的网络信号的至少一部分由流量优化引擎过滤,其中被过滤的网络信号不引起相应的无线电连接; 以及至少部分地基于所述过滤的网络信号来对所述移动设备的网络信号进行建模。
在一些实施例中,为移动设备建模网络信号还包括计算指示作为过滤的结果而节约的无线电连接的总数的信号效率。
在一些实施例中,为移动设备建模网络信号还包括计算指示作为过滤的结果节约的总无线电连接时间的连接时间效率。
在一些实施例中,当指令由处理器执行时还使得处理器:访问与移动设备相关联的无线电日志和流量活动日志,其中所述无线电日志指示移动设备无线电的状态,其中所述流量活动日志指示在所述移动设备中的多个测量点处测量的各种流量指标; 并通过计算一个或多个日志/报告数据字段来维护流量活动日志。
在一些实施例中,对网络信号进行建模是基于一个或多个日志/报告数据字段。
如本文所使用的,网络优化或关于一个或多个应用和系统的网络优化可以体现在被配置用于优化网络流量管理的任何适当的硬件上。为了讨论的简单起见,“优化”可以指利用本文描述的网络优化架构和/或由移动设备发送或接收的网络信号的过滤的系统或方法,以便减少移动设备的蜂窝无线电的使用。
本文公开的一个或多个应用和相关联的用户界面可以显示由于优化而延长的“分钟”的数量。此外,UI可以显示使用的分钟数('分钟')以及由于每个优化的应用程序的优化而扩展的“分钟”。
将包含要显示的数据的表将被维持。表的结构应确保UI上的最小休眠/延迟。对于性能问题,预先计算一些信息将是很好的。
在一些实施例中,可以在每个流量日志捕获上插入数据。数据库可以保留最近七天的数据。
方案
在一个或多个实施例中,数据可以存储在一个或多个表中。在一个实施例中可以有两个表。第一个表可以包含总体统计。这可以称为表'O'。 另一个表可以具有应用级数据。这可以称为表'A'。UI可以访问用于显示整体指标的表'O'和用于显示应用级指标的表'A'。
表'O'可包括以下列中的每一个,全部或组合:日期时间,电池电量,充电状态,空闲时间和连接时间。
表'A'可以包括以下列中的每一个,全部或组合:日期和/或时间,应用,各应用的字节使用(表示为百分比),连接时间(针对每个应用计算)**,每个应用程序的优化量,以及节约的连接时间(针对每个应用计算)**。 **可以理解,可以根据需要或对于每个间隔来计算这些参数并且填充到DB中。前一个选项使得DB更小/更简单; 第二个在需要时执行更少的计算(即,在UI中向用户显示结果)。
空闲期的定义
当以下条件满足时,移动设备可以与空闲期相关联:屏幕关闭,移动网络上的设备(不在Wi-Fi上),无呼叫,没有GPS,音频未播放。
逻辑
表‘O’
日期和/或时间可以表示事件的时间戳。该事件将与流量日志事件同步。电池电量可以表示该时间戳处的电池电量。充电状态可以表示指示设备是否在充电的布尔值。空闲时间可以表示当设备空闲时的从上一个时间戳开始的累积时间。连接的时间可以表示从上一个时间戳(或从最后一次设备重新启动)起的累积时间(整个期间,而不是仅空闲)。
表‘A’
日期和/或时间可以表示事件的时间戳。事该件可以与流量日志事件同步。应与表'O'中的相同。应用可以表示应用的名称。
字节使用可以表示特定应用从上时间戳以来的分享的字节。 网络日志可用于获取应用字节和流量日志以获取总字节数。字节使用可能表示应用字节/总字节。应用连接时间**可以是计算字段。表'A'可以每时间戳添加到表'O'。它被计算为字节用量*连接时间(从表'O')。 一个选项包括将连接时间(从表'O')存储在变量中,并且在插入表'A'之前使用该变量来计算值。
用于每个应用的优化量可以表示单位的数量; 其中“单位”定义了用于每个应用的节约的测量单位。对于所使用的每个优化策略,单位将不同。(为了启动,它将仅为该应用的连接时间,但可能需要多个变量)。
节约的连接时间** - 将是计算字段。 它将被计算为‘
各app的优化量‘*α(在参数下定义)
要在每天结束时或其他预定时间段执行的动作
在一个或多个实施例中,数据将被聚集在适当的等级。
参数
该模型将填充以下提到的预定参数 –
聚集
根据一些实施例,在先的数据可以任何等级(例如,每天)聚集。
用于电池优化的计算算法
电池改善显示参数
在一个或多个实施例中,要显示给体现在本文公开的一个或多个硬件设备上的一个或多个应用的用户的参数如下:
'x'延长的分钟
用于每个被优化的应用的'x'分钟
对于每个被优化的应用延长的'x'分钟
第一参数将被显示为单个总数,并且后两个参数是每个应用的分解。这需要能够在一天中的任何时间向给定用户显示,并且应当表示过去24小时累积的节约(例如,以滚动24小时时间段)。
延长的“x”分钟的计算如下:
其中
并且
节约的时间计算如下:
其中
每个应用所节约的时间计算如下:
其中
并且
其中
并且
分配的(即,计算的)连接时间。
其中
空闲时间被定义为以下各项为真的期间:
屏幕关闭
移动网络上的设备(不在wifi上)
音频未播放
没有电话呼叫
没有GPS使用
第二显示参数(用于每个被优化的应用的“'x'分钟”)计算如下:
其中
第三显示参数(对于每个被优化的应用延长的“x”分钟)是简单的
如上所定义。
已经确定,当网络优化是优化时(与不是优化相比),在连接时间和能量之间的关系中似乎存在一小的变化。这可能主要作为与网络优化优化相关联的额外开销来计算。如果/当包括这个因素时,整体节约的能量看起来像这样:
其中
表示给定的连接时间的偏移(以电流表示)。
并且
表示累积的空闲时间
确定合适的值以使功耗与连接时间相关是建立合理准确的电池节约模型的依赖之一。
图28示出了有效电流消耗和作为WCDMA样本测试运行总时间的一部分的连接时间之间的关系。为了这个模型的目的,从WCDMA测试运行开始使用一些并行测试。对于这些运行,有效电流消耗和连接时间(作为总时间的一部分)之间的关系如图28所示,对于具有和不具有本文公开的一个或多个应用的​​设备(作为用于一个或多个应用的网络优化在图中公开并且利用菱形形状描绘以及利用方形形状描绘的非网络优化版本)。在图28中,两条线的y截距非常接近,因此被固定为相同的值(6.5)。回归线的斜率表示有效电流消耗和连接时间之间的关系。在这种情况下,无网络优化(即,没有优化)的斜率是165,而网络优化数据(即,具有优化)高出50%,为246。
图29示出与图28相同的数据,但是根据包括一个具有优化和一个没有优化的结果对来评估。线表示网络优化在mA和连接时间方面的效果,其中右上点表示没有网络优化的设备,左下反映了具有网络优化的设备的优化。在图29中,图中的虚线是与前面的图中所示相同的回归线。图例显示每个数据集的三个值:SbS测试运行(Jira)数,根据连接时间的优化百分比(对于每个应用集的总体)和结果线的斜率。最粗的线显示所有这整个数据集的聚合结果。当确定由于网络优化而导致的能量消耗的网络节约时,这些数据对的斜率为确定提供了最有价值的信息。从网络优化节约的连接时间的量被推断,并且然后使用将其转换为节约的能量,所以这些斜率是最重要的。
这些结果的一个方面是网络优化对节约的以mA为单位的能量效率相对于TC的节约在效率上是非常一致的(即,斜率非常相似)。 注意,斜率既不遵循“无网络优化”也不遵循“网络优化”回归线,并且明显比任何一个浅。 这是定性的。如果网络优化除了减少连接时间,对能量使用没有影响,则随着网络优化优化连接时间,人们将期望向下移动“无网络优化”回归线。 然而,已知网络优化对能量消耗具有额外的影响,因为它做什么以及如何做。这导致对于给定的节约的连接时间量的以mA为单位的一略微减小的节约,或者对于每个线路一略微减少陡峭的斜率。
图30示出了反映不同优化量的SbS运行的斜率()对TC优化(总体)的交叉图。这些SbS运行反映不同的网络优化的优化量(按照节约的TC或整体值)。为了理解上述线的斜率和网络优化量之间是否存在系统关系,图30是斜率()对TC优化(总体)的交叉图。 图30示出之间的关系。 如果与优化相关的开销(以mA为单位的一偏移量)是一个常数,与TC优化的量无关,人们将期望随着的下降而下降,因为该开销的相对影响将增加。
图31示出了根据本文描述的主题的实施例的开销对的交叉图。 为了评估优化“开销”是否为常数,通过沿“无网络优化”回归线的斜率移动,将该开销值计算为网络优化优化数据点的mA与相关联的mA之间的差。产生的开销对比看起来像图31。图31示出了“开销在1.5mA量级至高达6.5mA,与轻微(负)相关。基于此,如何确定在客户端V4.0中使用的有效这里有三个选项要考虑:
定义和使用常数值(例如来自上面数据集合的聚合值112)。创建一个简单的方程作为总体的函数(如)。 以mA为单位定义网络优化的开销(固定值或变量值),并使用“无网络优化回归”线作为节约的mA与节约的TC之间的主要关系。然后将从使用无网络优化回归关系计算的节约mA中减去该开销(这与将该开销值添加到为网络优化的优化结果计算的mA相同)。
与以前的SbS电池建模结果的比较
在一个或多个实验中,进行SbS电池组运行的分析,并且其得出以下等式:
WCDMA:
电池消耗(mAh)= 165.1201 *连接时间(小时)-0.8732 oc_status(开或关)+ 7.5975[R2 = 0.85]
LTE:
电池消耗(mAh)= 103.8353 *连接时间(小时)+2.0123 oc_status(开或关)+2.3717[R2 = 0.75]
这里的关键因素是指出,他对WCDMA SbS运行的分析产生了165(mAh每小时连接时间;或mA的单位)的有效系数。 这相当接近112以上的导出值,并且考虑到Andy的分析跨越比上述分析中使用的更宽的数据集,可以考虑使用更高(不太保守)的值165。
与客户试验结果的比较
与最近的客户试验结果的定性比较如下。
尚未针对空闲期分析试验结果。 因此,结果反映了活跃和空闲时段,并且屏幕开启影响不被考虑在内。因此,与连接时间产生的相关性夸大了连接时间的效果(因为在活动时段期间,大部分电池使用量与显示相关联,虽然它在这里被集成到连接时间参数中。
在此处的差异中的另一个关键因素是试验在各种网络上运行,并且在试验期间使用2G,3G和LTE。这些影响在这里也没有被考虑。
图32示出了在与图30中使用的相同的图形表示中由无优化与优化产生的斜率的曲线图。在图32中以与上面对SbS结果使用的相同的图形表示示出了无网络优化与网络优化的优化(来自试验中的A / B周期)得到的线。注意,mA的值远远高于在SbS空闲期间看到的值,这再次表明在活动期间屏幕开启对结果具有显著影响。
由此得到的斜率如下:
聚集结果表明系数大约为400(相对于上面得出的大约112)。再一次,这里的关键区别是客户试验数据没有排除活动(或屏幕打开)周期,因此已知系数太高。该值400表示上限,并提供可能有用的定性比较。
本文描述的主题包括估计与执行网络优化相关联的节约,而不计算在一段时间内节约的虚拟连接。
根据一个方面,计算“节约的无线电连接时间”或“节约的连接时间”。 该机制可以取决于所使用的优化策略。下面描述用于计算节约的无线电连接时间的量的各种替代性优化策略和方法。
在一个示例中,节约的连接时间可以包括实际连接时间*α,其中α是应用/策略特定因素。实际连接的时间可以用算法在应用之间划分。该算法可以使用每个应用使用的字节的比率来划分在应用之间的总连接时间。
在另一个示例中,节约的连接时间可以包括“当优化时经过的时间” ,其中是应用/策略特定因素。
在另一个示例中,节约的连接时间可以包括“优化事件的数量*休眠定时器,其中是应用/策略特定因素。应当理解,可以反映不是所有的优化事件都会导致节约。
在另一个示例中,保存的连接时间可以包括(客户端保持活跃的数量* k1 - 服务器端保持活跃的数量)*休眠定时器。k1和k2可以包括用于从保持活跃的事件转换到连接的因素。例如,k1可以包括客户端保持活跃信息的缩减因子,其不会导致连接。k2可以包括未引起连接的服务器端保持活动消息的减少,包括未被无线电对准的消息。
在另一示例中,节约的连接时间可以包括(保持活动的客户端的数量* k1 -保持活动的服务器端的数量)*休眠定时器。k1和k2可以包括用于从保持活跃事件转换到连接的因素。例如,k1可以包括客户端保持活跃消息的缩减因子,其不会导致连接。k2可以包括不引起连接的服务器端保持活跃的消息的减少,包括没有无线电对齐的消息。
根据另一方面,节约的无线电连接时间还可以通过将节约的连接时间转换为节约的能量,并使用每TC能量和空闲能量来计算电池寿命的延长,来进一步转换为节约/延长的电池寿命。下面提供了该计算的几个例子。
如本文所使用的,功耗[W]可以除以电压[V]并以[mA]表示,其中W表示瓦特,J表示焦耳,V表示伏特,s表示秒,mA 指毫安。在一个示例中,节约/延长的电池寿命[S]等于节约的能量[J] /空闲时的平均功耗[W],其中节约的能量[J]等于节约的TC(计算的,[s])*每连接时间的额外功率[TC](参数,[W]),并且空闲时的平均功耗[W]等于每个TC的额外功率[W]*总空闲时间(计算的,无单位)的TC的比率+平均非TC功耗(参数,[W])。
在一个实施例中,移动设备可以使用固定为3.6V的电流(这可以根据设备而不同)。换句话说,如果它们以瓦特表示,有些功耗参数可以是其3.6倍大。
可以理解,本文描述的参数可以针对WCDMA和/或LTE来计算,并且与设备和网络相关。
在另一示例中,每TC的额外功率可以等于高于非TC功耗的功率消耗,当设备其他空闲时。相反,非TC功耗可以等于当无线电未开启但设备空闲时的平均功耗。
除非上下文明确要求,否则在整个说明书和权利要求书中,词语“包括”,“包含”等应以包括的意义来理解,而不是排除性的或穷尽性的意义;也就是说,在“包括但不限于”的意义上。如本文所使用的,术语“连接”,“耦合”或其任何变体意味着两个或更多元件之间的直接或间接的任何连接或耦合;元件之间的连接的耦合可以是物理的,逻辑的或其组合。另外,当词语“本文”,“上方”,“下方”和类似含义的词语在本申请中使用时,应当是指本申请的整体,而不是本申请的任何特定部分。在上下文允许的情况下,上述具体实施方式中使用单数或复数的词语也可以分别包括复数或单数。关于两个或更多个项的列表的词语“或”涵盖该词语的所有以下解释:列表中的任何项目,列表中的所有项目,以及列表中项目的任何组合。
本公开的实施例的上述详细描述不旨在穷举的或将教导限于上面公开的精确形式。虽然上面出于说明的目的描述了本公开的具体实施例和示例,但是如相关领域的技术人员将认识到的,在本公开的范围内的各种等同修改是可能的。例如,虽然以给定顺序呈现过程或块,但是备选实施例可以以不同顺序执行具有步骤的例程或采用具有块的系统,并且一些过程或块可以被删除,移动,添加,细分,组合,和/或修改以提供替代或子组合。这些过程或块中的每一个可以以各种不同的方式来实现。此外,尽管过程或块有时被示为是串行执行,但是这些过程或块可以代替地并行执行,或者可以在不同时间执行。此外,本文中提到的任何特定数字仅是示例:替代实施方式可以采用不同的值或范围。
本文提供的本公开的教导可以应用于其他系统,不一定是上述系统。 上述各种实施例的元件和动作可以组合以提供另外的实施例。
上述任何专利和申请以及其他参考文献,包括可能在所附申请文件中列出的任何文献,通过引用并入本文。如果需要,可以修改本公开的方面以采用上述各种参考文献的系统,功能和概念,以提供本公开的又一些实施例。
根据上述具体实施方式,可以对本公开进行这些和其他改变。虽然以上描述描述了本公开的某些实施例,并且描述了预期的最佳模式,但是无论上述内容在文本中出现多么详细,都可以以许多方式实践教导。系统的细节可以在其实施细节方面显著变化,同时仍被本文公开的主题所涵盖。如上所述,当描述本公开的某些特征或方面时使用的特定术语不应被认为暗示该术语在本文中被重新定义为限于与该术语相关联的本公开的任何特定特性,特征或方面。一般来说,除非上述具体实施方式部分明确地定义了这样的术语,否则在所附权利要求中使用的术语不应被解释为将本公开限制在说明书中公开的具体实施例。因此,本公开的实际范围不仅包括所公开的实施例,而且包括根据本文提出的权利要求实施或实施本公开的或者关于要求其优先权的任何申请提出的所有等同方式。
尽管给出了本公开的某些方面,但是发明人以任何数量的权利要求形式考虑了本公开的各个方面。例如,虽然在美国法
下仅将本公开的一个方面描述为装置加功能的权利要求,但是其他方面同样可以被体现为装置加功能的权利要求,或者其他形式,例如被包含在计算机可读介质中。(任何根据美国法处理的任何权利要求将以“用于...的手段”开头)。因此,申请人保留在提交申请之后增加额外权利要求以追求用于本公开的其他方面的附加权利要求形式。

Claims (25)

1.一种方法,包括:
确定在一移动设备上执行的一移动应用是否与一需要相应的无线电连接的网络信号相关联,
过滤由所述网络信号引起的所述网络信号的至少一部分,其中被过滤的所述网络信号不引起一相应的无线电连接;
计算一指示一作为所述过滤的结果而节省的无线电连接的总数的信号效率。
2.根据权利要求1所述的方法,其特征在于,还包括经由一用户界面显示计算出的所述信号效率。
3.根据权利要求1所述的方法,其特征在于,其中计算所述信令效率包括计算一作为所述过滤的结果而获得的分钟数,其中获得的所述分钟数包括一所述移动设备在没有所述过滤的情况下能够保持通电的分钟数与一所述移动设备在具有所述过滤的情况下能够保持通电的分钟数之差。
4.根据权利要求3所述的方法,其特征在于,受所述过滤影响的各应用执行作为所述过滤的结果而被获得的所述分钟数的计算。
5.根据权利要求1所述的方法,其特征在于,还包括存储所述信号效率的计算至一个或多个表中。
6.根据权利要求5所述的方法,其特征在于,所述一个或多个表包括一被配置用于存储总体的信号效率的统计的O表。
7.根据权利要求6所述的方法,其特征在于,所述O表至少包括:日期,时间,电池电量,充电状态,空闲时间,以及连接时间中的一个。
8.根据权利要求5所述的方法,其特征在于,所述一个或多个表包括被配置用于存储应用层的信号效率的统计的A表。
9.根据权利要求8所述的方法,其特征在于,所述A表至少包括:日期,时间,应用,每个应用的字节使用,每个应用的连接时间以及每个应用获得的分钟数中的一个。
10.根据权利要求1所述的方法,其特征在于,还包括:
基于计算出的所述信号效率确定所述移动网络中的一个或多个拥塞区域;
基于计算出的所述信号效率确定校正动作; 并且
在所述一个或多个拥塞区域中应用所述校正动作。
11.根据权利要求1所述的方法,其特征在于,计算所述信号效率包括估计一与执行过滤相关的节省而不计算在一时间段上节省的虚拟连接的数量。
12.根据权利要求1所述的方法,其特征在于,计算所述信号效率包括计算一作为执行网络优化的结果而节省或扩展的电池寿命的量,其包括:
将作为所述过滤的结果而获得的时间量转换为作为所述过滤的结果而节省的能量;以及
基于每次连接需要的能量和空闲时的能量来计算电池寿命的延长。
13.一种系统,包括:
一移动网络优化模块,被配置为:
确定在移动设备上执行的一移动应用是否与需要一相应无线电连接的网络信号相关联,
过滤由所述事务引起的所述网络信号的至少一部分,其中被过滤的所述网络信号不引起一相应的无线电连接;
一信号效率模块,被配置用于计算一指示一作为所述过滤的结果而节省的无线电连接的总数的信号效率。
14.根据权利要求13所述的系统,其特征在于,所述信号效率模块还被配置用于经由一用户界面显示计算出的所述信号效率。
15.根据权利要求13所述的系统,其特征在于,所述信号效率模块被配置用于计算一作为所述过滤的结果而获得的分钟数,其中获得的所述分钟数包括一所述移动设备在没有所述过滤的情况下能够保持通电的分钟数与一所述移动设备在具有所述过滤的情况下能够保持通道的分钟数之差。
16.根据权利要求15所述的系统,其特征在于,所述信号效率模块被配置用于计算受所述过滤影响的各应用执行作为所述过滤的结果而被获得的所述分钟数的计算。
17.根据权利要求13所述的系统,其特征在于,所述信号效率模块还被配置用于存储所述信号效率的计算至一个或多个表中。
18.根据权利要求17所述的系统,其特征在于,所述一个或多个表包括一被配置用于存储总体的信号效率的统计的O表。
19.根据权利要求18所述的系统,其特征在于,所述O表至少包括:日期,时间,电池电量,充电状态,空闲时间以及连接时间中的一个。
20.根据权利要求17所述的系统,其特征在于,所述一个或多个表包括一被配置用于存储应用层的信号效率的统计的A表。
21.根据权利要求20所述的系统,其特征在于,所述A表至少包括:日期,时间,应用,每个应用的字节使用,每个应用的连接时间以及每个应用所获得的分钟数中的一个。
22.根据权利要求13所述的系统,其特征在于,所述信号效率模块还被配置用于:
基于计算出的所述信号效率确定所述移动网络中的一个或多个拥塞区域;
基于计算出的所述信令效率确定校正动作; 并且
在所述一个或多个拥塞区域中应用所述校正动作。
23.根据权利要求13所述的系统,其特征在于,所述信号效率模块被配置用于估计一与执行过滤相关的节省而不计算在一时间段上节省的虚拟连接的数量。
24.根据权利要求13所述的系统,其特征在于,所述信号效率模块被配置用于计算一作为执行网络优化的结果而节省或扩展的电池寿命的量,其包括:
将一作为所述过滤的结果而获得的时间量转换为一作为所述过滤的结果而节省的能量; 以及
基于一每次连接使用的能量和一空闲时的能量来计算一电池寿命的延长。
25.一种存储由具有处理器的移动设备实施的指令的非暂时性计算机可读存储介质,其特征在于,所述指令在由所述处理器执行时使得所述移动设备:
确定在一移动设备上执行的一移动应用是否与需要一相应无线电连接的网络信号相关联,
过滤由所述事务引起的所述网络信号的至少一部分,其中被过滤的所述网络信号不引起相应的无线电连接;
计算一指示一作为过滤的结果而节省的所述无线电连接的总数的信令效率。
CN201580043920.4A 2014-08-21 2015-08-21 优化移动网络中的网络流量管理 Pending CN106664254A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462040260P 2014-08-21 2014-08-21
US62/040,260 2014-08-21
PCT/US2015/046362 WO2016029150A1 (en) 2014-08-21 2015-08-21 Optimizing network traffic management in a mobile network

Publications (1)

Publication Number Publication Date
CN106664254A true CN106664254A (zh) 2017-05-10

Family

ID=55349511

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580043920.4A Pending CN106664254A (zh) 2014-08-21 2015-08-21 优化移动网络中的网络流量管理

Country Status (4)

Country Link
US (2) US9769680B2 (zh)
EP (1) EP3183904A4 (zh)
CN (1) CN106664254A (zh)
WO (1) WO2016029150A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108200596A (zh) * 2017-12-15 2018-06-22 晶晨半导体(上海)股份有限公司 一种wifi吞吐量的测试方法及测试系统
CN108958955A (zh) * 2018-07-06 2018-12-07 美利车(北京)网络技术有限公司 一种基于消息驱动的事务处理方法及装置
CN109495893A (zh) * 2018-12-13 2019-03-19 叶东海 一种移动通信数据流量异常监测系统
CN110019053A (zh) * 2017-11-02 2019-07-16 福建天晴数码有限公司 一种Unity3D资源包冗余数据检测方法及终端
CN111526381A (zh) * 2020-04-20 2020-08-11 北京创世云科技有限公司 一种优化直播资源的方法、装置及电子设备
CN111629403A (zh) * 2020-04-24 2020-09-04 四川速宝网络科技有限公司 主机游戏加速方法及系统
CN113315670A (zh) * 2021-07-28 2021-08-27 深圳市华球通网络有限公司 网络流量分析方法、装置及存储介质
CN113949571A (zh) * 2021-10-18 2022-01-18 安天科技集团股份有限公司 一种基于行为特征知识库的软件行为识别方法及系统

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
CN107979592B (zh) * 2013-09-30 2020-06-30 腾讯科技(深圳)有限公司 一种发送业务请求消息的方法及装置
EP2922303A1 (en) * 2014-03-04 2015-09-23 LG Electronics Inc. Display device for managing a plurality of time source data and method for controlling the same
US9942130B2 (en) * 2015-01-07 2018-04-10 Cisco Technology, Inc. Selective routing of network traffic for remote inspection in computer networks
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
KR102292990B1 (ko) * 2015-11-20 2021-08-26 삼성전자 주식회사 상태 관련 정보 공유 방법 및 장치
CN105916100B (zh) * 2016-04-01 2020-04-28 华为技术有限公司 代理心跳包的方法、装置和通信系统
CN105763470B (zh) * 2016-04-28 2019-04-09 新华三技术有限公司 一种流量调度方法及装置
US10250281B2 (en) * 2016-12-30 2019-04-02 Sandisk Technologies Llc ECC decoder having adjustable parameters
WO2018137086A1 (zh) * 2017-01-24 2018-08-02 深圳企管加企业服务有限公司 移动终端用户上网流量分析方法及系统
US10410133B2 (en) 2017-03-22 2019-09-10 At&T Intellectual Property I, L.P. Methods, devices and systems for managing network video traffic
US11049005B2 (en) 2017-03-22 2021-06-29 At&T Intellectual Property I, L.P. Methods, devices and systems for managing network video traffic
EP4199479A1 (en) 2017-08-28 2023-06-21 Bright Data Ltd. Improving content fetching by selecting tunnel devices grouped according to geographic location
US11190374B2 (en) 2017-08-28 2021-11-30 Bright Data Ltd. System and method for improving content fetching by selecting tunnel devices
KR102538539B1 (ko) * 2018-03-06 2023-06-01 삼성전자주식회사 보안 엘리먼트를 포함하는 전자 장치에서 수행하는 방법 및 전자 장치
LT3780547T (lt) 2019-02-25 2023-03-10 Bright Data Ltd. Turinio parsisiuntimo, naudojant url bandymų mechanizmą, sistema ir būdas
US11411922B2 (en) 2019-04-02 2022-08-09 Bright Data Ltd. System and method for managing non-direct URL fetching service
US10979914B2 (en) * 2019-04-19 2021-04-13 Facebook, Inc. Communication network optimization based on predicted enhancement gain

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1759589A (zh) * 2003-03-11 2006-04-12 美商内数位科技公司 由网络及无线资源管理协助电池贮备的系统及方法
CN101352093A (zh) * 2007-01-08 2009-01-21 华为技术有限公司 向移动的目标节点转发学习到的状态信息
US20120124196A1 (en) * 2010-11-16 2012-05-17 At&T Mobility Ii Llc Data bundling and fast dormancy based upon intelligent application learning
CN103416046A (zh) * 2011-03-08 2013-11-27 斯凯普公司 节省无线通信设备中的电量
US20140148188A1 (en) * 2012-11-23 2014-05-29 Telefonaktiebolaget L M Ericsson (Publ) Methods and apparatuses for uplink resource utilization in a telecommunications system

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6615166B1 (en) 1999-05-27 2003-09-02 Accenture Llp Prioritizing components of a network framework required for implementation of technology
US7774440B1 (en) 2001-07-25 2010-08-10 Scalable Network Technologies, Inc. Method and system for enhancing performance of a physical network under real-time control using simulation of a reference model
US7389538B2 (en) 2003-11-12 2008-06-17 Fortinet, Inc. Static code image modeling and recognition
JP2006185194A (ja) * 2004-12-27 2006-07-13 Toshiba Corp サーバ装置、通信制御方法及びプログラム
US8019333B2 (en) 2005-03-14 2011-09-13 Qualcomm Incorporated Apparatus and methods for product acceptance testing on a wireless device
TWM291148U (en) * 2005-07-08 2006-05-21 Hansder Technology Co Ltd Computer using power frequency carrier
US7756829B2 (en) 2006-04-18 2010-07-13 Sandeep Bhanote Method and apparatus for mobile data collection and management
US20070299789A1 (en) 2006-06-27 2007-12-27 Numobiq Inc. Assessing and Monetizing Bandwidth Usage in a Networked Mobile Application
KR101242435B1 (ko) 2006-10-31 2013-03-12 에스케이플래닛 주식회사 무선 네트워크 에뮬레이션 시스템 및 방법
KR20080045548A (ko) * 2006-11-20 2008-05-23 삼성전자주식회사 이동통신 시스템에서 매체 접근 제어 헤더의 송/수신 장치및 방법
US8040817B2 (en) * 2007-06-26 2011-10-18 Ricoh Company, Ltd. Wireless communication device, wireless communication method, and computer program product
US9646025B2 (en) * 2008-05-27 2017-05-09 Qualcomm Incorporated Method and apparatus for aggregating and presenting data associated with geographic locations
KR101268940B1 (ko) * 2009-02-26 2013-05-30 주식회사 씨에스 통신 시스템에서 펨토 기지국 및 그 제어 방법
US9455897B2 (en) * 2010-04-06 2016-09-27 Qualcomm Incorporated Cooperative bandwidth aggregation using multipath transport
US8537674B2 (en) * 2010-11-16 2013-09-17 At&T Mobility Ii Llc Data bundling and fast dormancy based upon interactivity
GB2493473B (en) * 2011-04-27 2013-06-19 Seven Networks Inc System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
US8751845B2 (en) * 2011-06-07 2014-06-10 Microsoft Corporation Estimating and preserving battery life based on usage patterns
US8908535B2 (en) 2012-02-10 2014-12-09 Ixia Methods, traffic simulators, and computer readable media for validating long term evolution (LTE) code blocks and transport blocks
US8904210B2 (en) * 2012-03-30 2014-12-02 Intel Corporation Visual indicator and adjustment of media and gaming attributes based on battery statistics
US8874761B2 (en) * 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US9326185B2 (en) * 2013-03-11 2016-04-26 Seven Networks, Llc Mobile network congestion recognition for optimization of mobile traffic
CN105814931A (zh) * 2013-07-02 2016-07-27 七网络有限责任公司 基于移动网络信号的网络建模
US9775153B2 (en) * 2015-01-28 2017-09-26 Alcatel Lucent Allocation of unlicensed frequency bands for a wireless hotspot

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1759589A (zh) * 2003-03-11 2006-04-12 美商内数位科技公司 由网络及无线资源管理协助电池贮备的系统及方法
CN101352093A (zh) * 2007-01-08 2009-01-21 华为技术有限公司 向移动的目标节点转发学习到的状态信息
US20120124196A1 (en) * 2010-11-16 2012-05-17 At&T Mobility Ii Llc Data bundling and fast dormancy based upon intelligent application learning
CN103416046A (zh) * 2011-03-08 2013-11-27 斯凯普公司 节省无线通信设备中的电量
US20140148188A1 (en) * 2012-11-23 2014-05-29 Telefonaktiebolaget L M Ericsson (Publ) Methods and apparatuses for uplink resource utilization in a telecommunications system

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019053B (zh) * 2017-11-02 2022-04-01 福建天晴数码有限公司 一种Unity3D资源包冗余数据检测方法及终端
CN110019053A (zh) * 2017-11-02 2019-07-16 福建天晴数码有限公司 一种Unity3D资源包冗余数据检测方法及终端
CN108200596A (zh) * 2017-12-15 2018-06-22 晶晨半导体(上海)股份有限公司 一种wifi吞吐量的测试方法及测试系统
CN108958955A (zh) * 2018-07-06 2018-12-07 美利车(北京)网络技术有限公司 一种基于消息驱动的事务处理方法及装置
CN109495893A (zh) * 2018-12-13 2019-03-19 叶东海 一种移动通信数据流量异常监测系统
CN109495893B (zh) * 2018-12-13 2019-12-24 深圳美克拉网络技术有限公司 一种移动通信数据流量异常监测系统
CN111526381A (zh) * 2020-04-20 2020-08-11 北京创世云科技有限公司 一种优化直播资源的方法、装置及电子设备
CN111526381B (zh) * 2020-04-20 2021-07-09 北京创世云科技股份有限公司 一种优化直播资源的方法、装置及电子设备
CN111629403A (zh) * 2020-04-24 2020-09-04 四川速宝网络科技有限公司 主机游戏加速方法及系统
CN111629403B (zh) * 2020-04-24 2022-10-11 四川速宝网络科技有限公司 主机游戏加速方法及系统
CN113315670B (zh) * 2021-07-28 2021-10-01 深圳市华球通网络有限公司 网络流量分析方法、装置及存储介质
CN113315670A (zh) * 2021-07-28 2021-08-27 深圳市华球通网络有限公司 网络流量分析方法、装置及存储介质
CN113949571A (zh) * 2021-10-18 2022-01-18 安天科技集团股份有限公司 一种基于行为特征知识库的软件行为识别方法及系统
CN113949571B (zh) * 2021-10-18 2023-12-22 安天科技集团股份有限公司 一种基于行为特征知识库的软件行为识别方法及系统

Also Published As

Publication number Publication date
EP3183904A4 (en) 2018-04-25
WO2016029150A1 (en) 2016-02-25
US20170374566A1 (en) 2017-12-28
US9769680B2 (en) 2017-09-19
EP3183904A1 (en) 2017-06-28
US20160057654A1 (en) 2016-02-25

Similar Documents

Publication Publication Date Title
CN106664254A (zh) 优化移动网络中的网络流量管理
CN103404193B (zh) 调校数据传输以优化为通过无线网络的传输建立的连接
CN108156265B (zh) 一种应用程序控制方法及移动设备
CN105814931A (zh) 基于移动网络信号的网络建模
CN105637926B (zh) 将应用流量分载至共享通信信道进行无线网络中的信令优化用于使用专有和非专有协议的流量
CN103620576B (zh) 适用于移动应用程序行为和网络条件的缓存
CN107005597A (zh) 基于用户特征在移动设备缓存的无线流量管理系统
Li et al. Characterizing information propagation patterns in emergencies: A case study with Yiliang Earthquake
US10419458B2 (en) Distributed techniques for detecting atypical or malicious wireless communications activity
EP2915021B1 (en) System and method for developing, updating, and using user and device behavioral context models to modify user, device, and application state, settings and behavior for enhanced user security
CN101432719B (zh) 基于社会化网络活动信息的情景移动本地搜索
KR101227769B1 (ko) 폴링 간격을 이용한 모바일 네트워크 배경 트래픽 데이터 관리
CN102291446B (zh) 向应用程序通知状态变化的灵活体系结构
US20090240647A1 (en) Method and appratus for detecting patterns of behavior
CN106462453A (zh) 基于对等事件数据来对移动设备进行动态调整
US20140120961A1 (en) System and method for secure message composition of security messages
US20080294760A1 (en) Hot with my readers
JP2013536488A (ja) ノンパラメトリック、多次元、空間的および一時的な人間の挙動または広範な技術的観測値を処理するネットワークサーバー装置構成およびそれに関連する方法
CN105659654A (zh) 在无线网络中对使用专有和非专有协议之流量的信令优化,提供应用和/或服务器稳定性的系统和方法
CN111586126A (zh) 小程序预下载方法、装置、设备及存储介质
CN105009105A (zh) 基于预测的社交媒体网络信息采集的系统和方法
US9531827B1 (en) Push notification delivery system with feedback analysis
US20160239533A1 (en) Identity workflow that utilizes multiple storage engines to support various lifecycles
CN104239178A (zh) 监控系统及其方法
CN110990706B (zh) 语料推荐方法及装置

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170510