首页> 中国专利> 将应用流量分载至共享通信信道进行无线网络中的信令优化用于使用专有和非专有协议的流量

将应用流量分载至共享通信信道进行无线网络中的信令优化用于使用专有和非专有协议的流量

摘要

本发明提供了一种用于节约网络和电池使用的方法。方法包括确定一个设备通过至少两个重叠的推送信道进行通信并阻断推送信道之一以消除或减少至少两个重叠的推送信道之间的重叠。还提供了相关的系统。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-21

    授权

    授权

  • 2016-06-29

    实质审查的生效 IPC(主分类):H04W28/02 申请日:20140611

    实质审查的生效

  • 2016-06-01

    公开

    公开

说明书

相关申请的交叉引用

本申请要求2013年6月11日提交,申请号为61/833844,名称为“将应用流量分载至共享通信信道进行无线网络中的信令优化用于使用专有和非专有协议的流量”的美国临时专利申请的优先权。本申请参考引用上述申请的全部内容。

背景技术

越来越多的移动流量正转向特定于提供商的专有协议。例子包括谷歌通过TCP端口5228的流量、WhatsApp、各种应用提供商所使用的UrbanAirship推送通知、Skype和雅虎邮件2.0等。这意味着,除了使用HTTP/HTTPS等标准化协议的流量之外,越来越多引发信令的应用流量现在也包括来自专有协议的显著贡献。所公开的技术包括一个体系结构(例如包括本地代理和/或代理服务器的分布式系统),以便通过将应用流量从专有或应用专有通信信道分载至共享通信信道,来针对HTTP或HTTPS等标准协议之外的任意的、专有的、和/或非标准协议优化信令。

发明内容

本发明中公开了一种或多种方法。一种或多种方法可包括确定设备正在通过至少两个重叠的推送信道进行通信,并阻断推送信道之一,以消除或减少至少两个重叠推送信道之间的重叠。阻断可包括丢弃接收自被阻断推送信道的IP数据包。阻断可包括拒绝接收自被阻断推送信道的IP数据包。阻断可包括阻断接收自被阻断推送信道之通信的应用层。一种或多种方法可包括确定设备上的应用进行通信的任何现有连接的状态。一种或多种方法可包括,关闭应用的连接作为对确定现有连接状态的响应。一种或多种方法可包括从附加推送信道接收推送消息和疏通被阻断的推送信道,以使应用可执行响应附加推送信道消息的操作。一种或多种方法可包括将操作通知用户。一种或多种方法可包括在操作完成后重新阻断被疏通的推送信道。一种或多种方法可包括确定该操作已完成并在操作完成后重新阻断被疏通的推送信道。一种或多种方法可包括直到所述移动设备的无线被启动之前拒绝对此推送信道的阻断。推送信道可以是专有的,也可以是特定于应用的。阻断推送信道之一可包括阻断非共用推送信道,以将通信分载至一个共用推送信道。

提供了一种减少网络流量的方法。该方法可包括识别应用中的多个重叠推送信道;确定所述多个重叠推送信道中的第一推送信道可被阻断,同时伴随最小的用户体验影响;阻断第一推送信道以减少网络信令和电池消耗;监测所述多个重叠推送信道中第二推送信道上应用流量;基于被监测的应用流量疏通第一推送信道以服务于应用流量;以及在应用服务了应用流量后重新阻断第一推送信道。对多个重叠推送信道的识别可离线进行。对到多个重叠推送信道的识别可实时进行。在一个或多个实施方式中,第一信道可以是第三方信道。阻断可能通过下列方式之一执行:丢弃IP数据包、拒绝IP数据包及阻断一个应用层。对应用流量提供服务可包括通知用户。

本发明提供的是包含计算机代码的非临时性计算机可读介质,用于实现处理器控制的系统,用来确定设备通过至少两个重叠推送信道进行通信并阻断推送信道之一以减少所述至少两个重叠的推送信道之间的重叠。计算机代码执行一个通过丢弃IP数据包进行阻断的处理器控制系统。计算机代码执行一个通过拒绝IP数据包进行阻断的处理器控制系统。计算机代码执行一个阻断应用层的处理器控制系统。计算机代码执行一个处理器控制系统,该系统确定系统通信所在任何现有连接的状态。计算机代码执行一个关闭应用连接的处理器控制系统。计算机代码执行一个处理器控制系统,其从一个附加推送信道接收推送消息并疏通被阻断的推送信道,以使系统可执行响应来自附加推送信道消息的操作。计算机代码可执行一个将操作通知用户的处理器控制系统。计算机代码执行一个在操作完成后重新阻断被疏通通信信道的处理器控制系统。计算机代码执行一个确定操作已完成并在操作完成之后重新阻断被疏通通信信道的处理器控制系统。非暂时性计算机可读介质,其包含用于以执行一个减少网络流量的处理器控制系统的计算机代码,其被提供和配置以用于:用于识别应用中的多个重叠推送信道,确定所述多个重叠推送信道中的第一推送信道可被阻断,同时伴随最小的用户体验影响,阻断第一推送信道使网络信令和电池消耗降低,监测所述多个重叠推送信道中第二推送信道上应用流量,基于被监测的第二信道应用流量疏通第一推送信道来启动对应用流量提供服务,并在应用执行对应用流量提供服务的必要网络访问之后重新阻断第一推送信道。对多个重叠推送信道的识别可离线进行。对到多个重叠推送信道的识别可实时进行。所述多个重叠的推送信道中至少一个可以是第三方信道。阻断可能通过下列方式之一执行:丢弃IP数据包,拒绝IP数据包及阻断对应用层的输入。

可提供一个通信网络。该网络可以包括具有处理器、用于存储信息的存储器以及用户界面的移动设备,该移动设备根据操作系统和推送客户端应用运行。还提供有第一服务器、第二服务器、主机服务器、可操作地将所述主机服务器连接到所述第一服务器和所述第二服务器的第一网络、以及可操作地将所述移动设备连接所述第一网络的第二网络。推送客户端应用控制处理器,以使移动设备确定第一服务器和第二服务器产生重叠的第一和第二推送信道,并阻断第一推送信道以减少在第一和第二推送信道之间的重叠。移动设备可以通过丢弃IP数据包、拒绝IP数据包或阻断应用层来阻断第一推送信道。处理器可进一步包括确定所述设备上的应用进行通信的任何现有连接的状态。

提供一个通信网络。该网络包括具有处理器、用于存储操作系统的存储器以及推送客户端应用和用户界面的移动设备。移动设备根据操作系统和推送客户端应用运行。提供具有第一推送信道的第一服务器和具有与第一推送信道重叠的第二推送信道的第二服务器。提供一个主机服务器。第一网络可操作地将所述主机服务器连接到所述第一服务器和所述第二服务器,第二网络可操作地将第一网络连接到所述移动设备。推送客户端应用控制处理器以确定第一和第二推送信道重叠,确定第一推送信道可被阻断,同时伴随最小的用户体验影响,阻断第一推送信道以减少网络信令和电池消耗,监测第二推送信道上的流量,基于第二推送信道流量疏通第一推送信道,并在推送客户端应用执行对应用流量提供服务的必要网络访问之后重新阻断第一推送信道。

附图说明

图1A示出根据本发明公开的一个或多个实施方式的系统;

图1B示出根据本发明公开的一个或多个实施方式的示例示意图;

图1C示出根据本发明公开的一个或多个实施方式的示例示意图;

图2A示出根据本发明公开的一个或多个实施方式的客户端组件的块图;

图2B示出根据本发明公开的一个或多个实施方式的适配引擎块图;

图2C示出根据本发明公开的一个或多个实施方式的客户端代理的块图;

图3示出根据本发明公开的一个或多个实施方式的计算机系统的示意图。

具体实施方式

下面的描述和附图是说明性的,而不应被解释为限制性的。许多具体细节被描述用于对本公开内容的彻底理解。然而在某些情况下为避免模糊描述,对公认或常规的细节不做描述。在本公开内容中,对某一实施方式或一个实施方式的引用可以是但不一定是对同一实施方式的引用;并且这类引用意味着至少一个实施方式。

在本说明书中对“某一实施方式”或“一个实施方式”的引用,意味着被描述为与该实施方式相关的一个特定的特性、结构或特性被包括在本公开内容中的至少一个实施方式之中。在本说明中各个地方的“在一个实施方式中”这一短语的出现,不一定全部指同一实施方式,也不是与其它实施方式相互排斥的单独或替代实施方式。此外,也描述了可以通过一些实施方式而不可通过其他实施方式来展示的多种特性。同样地,也描述了可能是某些实施方式的要求但非其他实施方式要求的各种要求。

在本公开内容内的上下文以及本说明书中所使用每条术语在使用时的具体的上下文中,这些术语通常具有其在本领域中的普通含义。被用于描述本公开内容的某些术语将在下面或在本说明书中的其他地方讨论,以就本公开内容所描述内容向从业人员提供进一步的指导。为了方便起见,某些术语可被突出显示,例如使用斜体和/或引号。突出显示的使用对术语的范围和含义没有影响;在相同上下文中,不论术语是否被突出显示,其范围和含义都是相同的。应该理解,同样的东西可以有多种讲法。

因此,替代语言和同义词可用于任何一个或多个本发明所讨论的术语,某个术语是否在本发明中被详细阐述或讨论并不具有任何特殊意义。提供了某些术语的同义词。对一个或多个同义词的详述并不排除对其它同义词的使用。在本说明书中的任何位置对实例的使用(包括本说明书所讨论的任何术语的实例)都仅仅是说明性的,而并非旨在进一步限制任何示例性术语的公开内容或范围和含义。同样地,本公开内容并不限于本说明书中给出的各种实施方式。

在不旨在限制本公开内容范围的前提下,如下给出根据本公开内容实施方式的仪器、设备、方法及其相关结果实例。注意,在实例中可使用标题或副标题为读者提供方便,其决不应限制本公开内容的范围。除非另有定义,否则本发明使用的所有技术和科学术语,都具有与本发明所涉及领域中普通技术人员所共同理解的含义相同的含义。在冲突的情况下,以本发明件包括其中定义为准。

用于降低移动网络拥塞的现有信令优化的系统和方法可以优化标准的和非专有的应用级协议上的移动流量,这些协议包括但不限于:超文本传输??协议(HTTP)、超文本传输安全??协议(HTTPS)、文件传输协议(FTP)、简单邮件传输协议(SMTP)、互联网消息访问协议(IMAP)、邮局协议(POP)和类似物。然而,许多移动应用正在弃用标准协议而启用厂商专有协议。例如,谷歌利用一种非标准的传输控制协议(TCP)端口5228。举另一个例子来说,“WhatsApp”移动应用使用可扩展消息处理现场协议(XMPP)的定制版本。与此类似,Skype和雅虎邮箱等一些应用使用自己的专有协议,而许多提供商也使用UrbanAirship之推送通知协议等其他协议。

现有信令优化的系统和方法按客户端指示重播或复制整个事务,这意味着执行信号优化的服务器需要自主建立任何会话(TCPsocket和任何应用层握手,安全Socket层(SSL)等)。然而要这样做,这些协议必须被很好地理解。例如,在任何优化能够执行之前报头和其它协议特定的数据必须是已知的。如果因为专有协议不规范而不能被很好理解的话,此类专有协议上的移动流量就不能由现有的优化系统和方法进行优化。

本公开内容的实施方式,包括将应用流量分载至共享通信信道进行无线网络中的信令优化用于使用专有和非专有协议的流量。在一个实施方式中,所公开的技术包括一个架构(例如由本地代理和/或代理服务器组成的分布式系统),除了HTTP、HTTPS、FTP、SMTP、IMAP、POP、XMPP等类似标准协议之外,该架构还为任意的、专有的和/或非标准协议优化信令。在另一个的实施方式中,所公开的技术为无线网络中任何流量提供了一种协议无关的信令优化系统和方法。

在一个实施方式中,传输控制协议(TCP)流作为字节流通过第一次会话从应用传送到本地代理,通过第二次TCP会话从本地代理传送到代理服务器,通过第三次TCP会话从本地代理服务器传送到内容服务器。本地代理在不知道底层协议的情况下观察并且识别字节流内的模式。一旦识别出模式,第二次TCP会话就会被关闭,使得第一次TCP会话对应用重复此模式,而第三次TCP会话对内容服务器重复此模式。一旦任一端检测到模式中的??变化,第二次TCP会话就会被重新建立来把变化内容传输到另一端。

当不可能识别一个字节流中的模式并执行二进制事务的直接重复和/或在TCP流优化之外时,本发明所公开的创新提供了用于将应用流量从应用特定信道分载或重新导向至谷歌云消息(GCM)信道等共享信道的系统和方法;其可以在无线网络中优化信令,用于使用各种专有和非专有协议的流量。如果由本地代理和/或代理服务器协助,应用将流量分载到诸如谷歌云消息(GCM)服务器的远程或邮件服务器。按照本发明所使用的情况,GCM可以指任何共享信道。

GCM服务器允许从应用服务器或内容提供商向使用XMPP的用户设备(上游和下游,即设备到云和云到设备)传送数据。GCM服务器可以为消息进行排序并将消息发送到用户设备上的目标应用中。这些消息可以通知移动应用有要从内容提供商或应用服务器获取的新数据,且/或可以包括实际数据(例如即时消息)。

图1A示出一个系统的示例示意图,其中一个主机服务器在无线网络(或宽带网络)中为资源节约而在诸如移动设备(例如无线设备)、应用服务器或内容提供商或其它诸如广告服务器、促销内容服务器、电子优惠券服务器或诸如谷歌云消息传递(GCM)服务器的邮件服务器之间协助流量管理、内容缓存和/或资源节约。主机服务器可以在无线网络中为使用专有(非标准)和非专有(例如HTTP)协议的流量进一步优化信令。

客户端设备150可以是能与另一设备、基站112、服务器和/或诸如主机服务器100和/或应用服务器/内容提供商110的其他系统建立包括有线、无线和蜂窝连接的任何系统和/或设备、和/或设备/系统的任何组合。客户端设备150通常包括显示器和/或其他输出功能,以表现设备150和/或主机服务器100和/或应用服务器/内容提供商110之间交换的信息和数据。应用服务器/内容提供商110可以是包括第三方服务器或服务/内容提供商在内的任何服务器,其进一步包括广告、促销内容、出版物或电子优惠券服务器或服务。同样的,作为应用服务器或内容提供商的独立的广告服务器120A、促销内容服务器120B和/或电子优惠券服务器120C以举例的方式示出。

例如,客户端/移动设备150可包括移动、手持或便携式设备、无线设备或者非便携式设备,并且可以是任何(但不限于)桌面服务器、台式计算机、计算机集群或便携式设备,包括笔记本、膝上型电脑、手持式计算机、掌上型计算机、移动电话、蜂窝电话、智能电话、PDA、黑莓设备、Palm设备、任何平板电脑、平板手机(一类介于典型的智能手机和平板电脑之间的更大屏幕尺寸的智能手机)、手持式平板电脑(例如iPad、Galaxy系列、Nexus、Kindle系列、KindleFire系列、任何基于Android的平板电脑、基于Windows的平板电脑或任何其他平板电脑)、任何便携式读取器/读取设备、手持控制台、手持游戏设备或控制台、头戴式设备、头戴式显示器、超薄客户端或如iPhone之类的任何超级手机和/或任何其它便携式、移动式、手持式设备,或诸如一个M2M设备的固定无线接口等。在一个实施方式中,客户端设备150(或移动设备150)、主机服务器100和应用服务器110经由网络106和/或网络108相连。在一些实施方式中,该设备150和主机服务器100可以直接相互连接。

客户端设备150的输入机制可包括触摸屏小键盘(包括单次触摸、多次触、二维或三维手势检测等)、物理键盘、鼠标、指针、跟踪板、触笔、触笔检测器/传感器/受体运动检测器/传感器(例如包括1轴、2轴、3轴加速度计等)、面部检测器/识别器、视网膜检测器/扫描仪、光传感器、电容传感器、电阻传感器、温度传感器、接近传感器、压电设备、设备取向检测器(例如电子罗盘、倾斜传感器、旋转传感器、陀螺仪、加速计)或上述的任何组合。

通过一个或多个上述输入机制或其它机制在客户端设备150上接收或检测到用以表明用户活动的信号,在本发明公开的技术中可用于在客户端设备150上获取情境感知。举例来说(但不作为限制),在客户端设备150上的情境感知一般包括客户端设备150操作或状态确认、管理、用户活动/行为/相互作用感知、检测、感测、追踪、趋势分析和/或应用(例如手机应用)类型、行为、活动、操作状态等。

在本公开内容中的情境感知还包括对网络端情境数据的感知和检测,并可包括诸如网络容量、带宽、流量、网络/连通类型和/或任何其它操作状态数据的网络信息。网络端情境数据可以从网络服务提供商(例如蜂窝信号提供商112和/或互联网服务提供商)处接收和/或查询,这些网络服务提供商属于网络106和/或网络108(例如主机服务器和/或设备150)。除了从客户端150一端确定的应用情境感知之外,应用情境感知也可从相应的应用?/服务提供商110(由主机100和/或客户端设备150)处接收或获得/查询。

举例来说,主机服务器100可以使用诸如为客户端设备150、网络106/108、应用(如手机应用)、应用服务器/提供商110而获取的情境信息或其任何组合来管理系统中的流量,从而满足客户端设备150(例如满足应用或任何其他包括HTTP请求在内的请求)的数据请求。在一个实施方式中,流量由主机服务器100管理,来满足响应明确或不明确的用户103请求和/或设备/应用的维护任务所做的数据请求。流量可通过节省网络消耗(例如对蜂窝网络的使用)的方式加以管理,以实现有效和高效的带宽利用。此外,主机服务器100对系统中的这种流量进行管理和协调的方式可以让设备150端的资源(例如包括但不限于电池能量消耗、无线使用、处理器/存储器使用)使用以普通资源节约理念所优化,同时仍然优化了性能和用户体验。在一些实施方式中,主机服务器100也可间接地通过在移动设备上实施的创建、选择和/或部署流量阻断策略来管理流量。

例如,在电池节约的情况下,设备150可以观察到用户活动(例如,通过观察用户击键、背光状态或经由一个或多个输入机制等的其它信号)并改变设备150的行为。设备150还可以请求主机服务器100基于用户活动或行为针对网络资源消耗来改变行为。

在一个实施方式中,为资源节约和/或保持信令优化中服务器稳定性的流量管理是使用主机服务器100和客户端设备150之间的一个分布式系统来执行的。该分布式系统可包括服务器100端和在设备/客户端上的代理服务器和缓存组件,例如服务器100端上的服务器缓存135和客户机150端上的本地缓存185。在一个实施方式中,为减少网络中信令和降低或减轻网络拥塞的流量管理可在移动设备150上实施,而无需服务器端代理或其它网络端组件的任何支持。

为针对资源节约以及减少或优化(例如网络106和/或108)和设备150中信令的情境感知流量管理以及保活算法而公开的功能和技术,驻留在分布式代理和缓存系统之中。代理和缓存系统可在一个给定的客户端设备150的部分或全部和/或主机服务器100的部分或全部之间分配,也可在其之上驻留。进一步参考图1B中的示例示意图示出分布式代理和缓存系统。由在客户端设备150中的代理和缓存组件及本发明相关组件所执行的功能和技术,其进一步参考图2A的例子分别作详细描述。

在一个实施方式中,客户端设备150与主机服务器100和/或应用服务器110通过网络106通信,后者可能是一个蜂窝网络和/或宽带网络。为了方便设备150和各种应用服务器/内容提供商110之间的整体流量管理从而有效利用网络(带宽利用)和设备资源(例如电池消耗),主机服务器100可与应用服务器/提供商110通过可包括互联网(例如宽带网络)的网络108进行通信。

在一般情况下,网络106和/或108(客户端设备150、主机服务器100和/或应用服务器110在其上通信)可以是蜂窝网络、宽带网络、电话网络、互联网等开放网络或内联网和/或外联网等专有网络,或其任何组合。例如,互联网可以通过例如但不限于TCP/IP协议、UDP、HTTP、DNS、FTP、UPnP、NSF、ISDN、PDH、RS-232、SDH、SONET等任何已知或方便的协议来提供文件传输、远程登录、电子邮件、新闻、RSS、基于云的服务、即时消息、可视语音邮件、推送邮件、VoIP和其他服务。

网络106和/或108包括任何完全或部分运作的不同网络的集合,协同为客户端设备150和主机服务器100提供连接,在所服务的系统和设备看来是一个或多个网络。在一个实施方式中,从客户端设备150收发的通信可以通过如互联网的开放网络或如内联网和/或外联网的专有网络、宽带网络来实现。在一个实施方式中,通信可通过如安全socket层(SSL)或传输层安全(TLS)的安全通信协议来实现。

此外,通信可以经由一个或多个网络来实现,例如但不限于一个或多个WiMax、局域网(LAN)、无线局域网(WLAN)、个人区域网(PAN)、校园区域网(CAN)、城域网(MAN)、广域网(WAN)、无线广域网(WWAN)或任何宽带网络,其并可进一步由技术强化,实例有全球移动通信系统(GSM)、个人通信服务(PCS)、蓝牙、WiFi、无线固定数据、2G、2.5G、3G(例如基于WCDMA/UMTS的3G网络)、4G、IMT-Advanced、pre-4G、LTEAdvanced、移动WiMax、WiMax2、无线MAN-Advanced网络、GSM增强数据率演进(EDGE)、通用分组无线业务(GPRS)、增强型GPRS、iBurst、UMTS、HSPDA、HSUPA、HSPA、HSPA+、UMTS-TDD、1xRTT、EV-DO、诸如TCP/IP、短信、彩信、可扩展消息处理现场协议(XMPP)、即时消息传输协议(RTMP)、即时信息与空间协议(IMPP)、即时消息、USSD、IRC的通信协议或任何其它无线数据网络、宽带网络或消息传送协议。

图1B示出了主机服务器和有关设备之间所分布的代理和高速缓冲存储器系统的一个示例示意图,这些有关设备为资源节约和内容缓存而协助设备、应用服务器或内容提供商或其它诸如广告服务器、促销内容服务器、电子优惠券服务器的服务器或诸如GCM服务器的邮件服务器之间的网络流量管理。分布于主机服务器和设备之间的代理系统可进一步在无线网络中使用专有(非标准)和非专有(例如HTTP)协议为流量而优化信令。

例如,分布式代理和缓存系统可包括代理服务器125(例如远程代理)和在服务器端的服务器缓存135组件。如图所示,服务器端代理125和缓存135可位于主机服务器100内部。此外,代理服务器125和服务器端的缓存135可部分或全部在主机服务器100外部并通过网络106和108中的一个或多个进行通信。例如,代理服务器125可在主机服务器外部而服务器缓存135可保持在主机服务器100上。或者,代理服务器125可在主机服务器100之内,而服务器缓存在主机服务器100之外。此外,代理服务器125和缓存135中的每一个都可部分位于主机服务器100的内部并部分位于主机服务器100的外部。应用服务器/内容提供商110可以是包括第三方服务器或服务/内容提供商在内的任何服务器,其进一步包括广告、促销内容、出版物或电子优惠券服务器或服务。类似的,作为应用服务器或内容提供商的独立的广告服务器120A、促销内容服务器120B、电子优惠券服务器120C和/或邮件服务器(如GCM服务器)120D被以举例的方式示出。

在一个实施方式中,分布式系统还可以包括客户端组件,举例来说(但不作为限制),包括本地代理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到代理服务器125组件进行通信,此组件为例如连接元数据的主机服务器100上的组件。代理服务器125继而被耦合到应用服务器/提供商110上,其提供内容和数据以满足在设备150上所作出的请求。本地代理175可以是一个协议无关组件,其可在一个字节流中识别一种模式并在一个实施方式中执行二进制记录的直接重放。在另一个实施方式中,本地代理175可以为无线网络中使用专有和/或非专有协议的信令优化而进行优化保活。

另外,本地代理175可以识别和检索包括电池电量、设备所登记的网络、无线状态、信号强度、cell标识符(即cellID)、位置区域码或该移动设备是否正在使用(例如由用户与之交互)中的一个或多个移动设备属性。在一些情况下,本地代理175可以延迟、加速(预取)和/或在把数据传输到代理服务器125之前修改数据,在适当的时候,这将被引用结合图2A的实例相关联的描述而进一步详细说明。

本地数据库185可被包括在本地代理175之中或耦合到本地代理175上,并可在数据请求被转发到代理服务器125之前查询对数据请求的本地存储响应。本地缓存的响应可由本地代理175使用,当缓存内容仍然有效时通过检索存储在缓冲存储器185中的缓存内容来满足移动设备150上的某些应用请求。

类似地,主机服务器100上的代理服务器125也可在向内容源(例如,应用服务器/内容提供商110)传输之前延迟、加速或修改来自本地代理的数据。此外,代理服务器125采用设备属性和连接元数据以在移动设备150上产生用于满足应用请求的规则。代理服务器125可收集有关用于稍后使用的应用请求的实时流量信息来优化类似的与移动设备150或其他移动设备的连接。

一般来说,本地代理175和代理服务器125对移动设备上执行中的多个应用是透明的。本地代理175对于移动设备或平台上的操作系统一般是透明的,并且可以或可以不特定于设备生产厂家。在一些情况下,本地代理175的部分或全部可被定制为设备特有的。在一些实施方式中,本地代理175可以被捆绑到一个无线机型、防火墙和/或一个路由器上。

在一个实施方式中,主机服务器100可在一些情况下利用短消息服务中心(SMSC)112的存储和转发功能(如由网络服务提供商提供的功能)来与设备150通信从而实现网络流量管理。需要注意的是SMSC112还可利用任何其他类型的替代信道,其包括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可通过为所有连接同时执行批量数据传送来同步网络使用。此外,通过防止移动设备不断试图向拥塞的网络发送信号和/或允许对网络的选择性(例如高优先级流量),本地代理175可以节约移动设备的电池资源。

图1C示出了一个在分布式代理和缓存系统中显示来客户端组件的体系结构的示例示意图图,其具有用于使用专有(非标准)和非专有的(例如HTTP)协议来在无线网络中为流量而优化信令的应用流量分载引擎。

客户端代理组件175可包括软件组件或安装在移动设备上以在客户端上使流量优化并执行相关功能的代理。客户端代理175的组件可透明地为终端用户和应用163进行操作,并与设备的操作系统(OS)162相连。客户端代理175可被安装在移动设备上用于优化的进行,并能招致数据路由和/或时机的变化。一旦数据路由被修改,客户端代理175可向服务提供商或主机服务器响应应用请求,除了或而不是让那些应用163直接接入数据网络。一般地,应用163在移动设备上不会注意到客户端代理175在响应其请求。

对客户端代理175的一些示例组件的描述如下:

设备状态监测121:设备状态监测121可负责确定设备中的一些状态和指标,如网络状态、显示状态、电池电量(例如通过无线/电??池信息161)等,使得在客户端代理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首次启动时,将要被在特定设备执行的流量优化和报告策略(策略配置文件)可以由策略管理服务器来规定。在设备的IP层执行流量管理策略可以让操作者在其使用无线接入网络资源之前管理流量。策略的使用范围可以从创建针对性极强的用户计划到主动和/或被动地管理网络拥塞。在一个实施中,执行策略的选择条件和/或弃用一项已实施策略的条件可以由策略管理器125管理或协调。

看门狗127:看门狗127可以监测客户端代理175操作可用性。如果客户端代理175因故障或因其已被禁用而不再工作,看门狗127可以为设备继续工作而重新设置DNS路由规则信息并可以恢复原来的DNS设置,直到客户端代理175服务被恢复。

报告代理126:报告代理126可以收集关于发生在设备中的事件的信息(例如日志),并发送信息到日志存储和处理服务174,其收集和存储客户端和/或服务器端代理系统日志。只有当数据信道状态活动时,事件详细信息才被暂时存储在设备上并转移到日志存储和处理服务174。如果客户端代理175不在一定时间(例如二十四小时)内发送记录,报告代理126即可以(在一个实施方式中)试图打开连接并发送记录条目,或者如果存储中没有条目就发送一个空的报告包。所有报告设置都可以在策略管理服务器中进行配置。日志中的信息可被用于报告和/或解决问题,例如。

推送客户端128:推送客户端128可以负责在服务器端代理125和客户端代理175之间的流量响应。推送客户端128能发出如内容更新请求和策略更新请求的服务请求,并从服务器端代理125处接收对这些请求的更新。此外,推送客户端128可以发送数据到一个日志存储和处理服务176,其可以位于服务器端代理125的内部或外部。

代理服务器199具有广泛的用途,从通过缓存重复请求来加速网页服务器到为一组共享网络资源的客户缓存网页、DNS和其他网络查询。代理服务器199是可选的。分布式代理和缓存系统(125和/或175)允许灵活的代理配置,其要么使用代理199、操作者网络中的额外代理,要么整合代理199和操作者的或其他第三方的代理。

应用流量分载引擎470的功能和特性在图2B中详细描述。

图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。本地代理或所述设备可进一步包括一个专有/非标准协议适配引擎401用于以协议无关的方式优化流量,和/或应用流量分载引擎470用于阻断应用特定的信道、并将流量分载到一个共享信道来以协议无关的方式在无线网络中为流量优化信令。更多或更少的组件/模块/引擎都可以被包含在本地代理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上的用户活动特性也可用于使另一个设备(例如其它计算机、移动设备、无线设备或者非便携式设备)或服务器(主机服务器100),其可以与设备250进行通信(例如通过蜂窝式网络或其它网络)来修改其与设备250所使用的通信频率。本地代理275可以使用由用户活动模块215所确定的用户行为特性信息来指示远程设备如何调节其通信频率(例如,如果用户处于闲置状态,则降低如数据推送频率的通信频率,而在新的数据、变化了的数据或具有一定重要性水平的数据变得可用等情况下,则请求该远程设备通知设备250)。

在一个实施方式中,作为对确定活动特性表明用户在不活动一段时间之后开始活动的响应,用户活动模块215可请求远程设备(例如服务器主机服务器)发送作为先前降低通信频率结果而被缓冲的数据。

另外,或者作为替代,本地代理275可以就设备250上的用户活动特性与远程设备(例如主机服务器100进行通信,而远程设备将确定如何改变其自身与设备250的通信频率以实现网络资源节约和设备250的资源节约。

本地代理275的一个实施方式还包括一个请求/事务管理器235,其可以检测、识别、拦截、处理、管理设备250上发起的数据请求,例如由应用210和/或220和/或直接/间接的用户请求。请求/事务管理器235可基于事务特性来决定如何和何时处理一个给定的请求或事务或一组请求/事务。请求/事务管理器235可以为在设备250上的应用和/或用户进行的请求或事务进行优先级排序,例如由优先级处理引擎241进行。请求/事务的重要性或优先级可以通过应用规则集由请求/事务管理器235来确定,例如根据事务的时间灵敏度、事务内容的时间灵敏度、事务的时间关键性、事务中所传输的数据的时间关键性和/或发出请求之应用的时间关键性或重要性。

此外,事务的特性也可取决于该事务是否是设备上的用户交互或其他用户发起动作的结果(例如与应用的用户交互(例如手机应用))。在一般情况下,一个时间关键性事务可包括因用户发起的数据传输而产生的事务,并且可依此被划分优先级。事务特性也可以取决于由所请求事务导致的将被传输或预计要被传输的数据量。例如,连接管理器265可基于需要传输的数据量而调节无线模式(例如通过无线控制器266调节高功率和低功率模式)。

此外,无线控制器266/连接管理器265可基于事务的时间关键性/灵敏度调节无线功率模式(高或低)。时间关键性事务(例如用户发起的数据传输产生的事务、前台运行的应用、任何符合一定条件的其它事件)被启动或检测到时,无线控制器266可以触发使用高功率无线模式。

在一般情况下,优先级可以被默认设置,例如基于设备平台、设备制造商、操作系统等。优先级可由特定应用可替代地或附加地设置;例如Facebook应用(例如手机应用)可以为各种事务(例如,状态更新可以比加为好友请求或戳一下请求有更高的优先级,再比如消息发送请求可以比消息删除请求有更高的优先级)配置其自己的优先级,电子邮件客户端或即时消息聊天客户端也可有其自己用于优先权的配置。优先级处理引擎241可以包括用于分配优先级的规则集。

优先级处理引擎241还可以就对请求/事务的整体优先地位的确定而追踪网络提供商的应用或事务优先级之限制或规范。另外,优先级可以部分或全部由用户偏好确定,不管其是显式还是隐式的偏好。在一般情况下,用户可在不同层次设置优先级,例如对于会话或类型或应用的具体优先级(例如比较浏览会话、游戏会话与即时消息聊天会话,用户可以把游戏会话优先级设置为总是高于即时消息聊天会话,而后者优先级又高于网页浏览会话)。用户可以就具体的事务类型(例如使跨越所有应用之所有发送信息请求比消息删除请求具有更高的优先级,使所有日历相关的事件具有更高的优先级等)和/或特定的文件夹来设置特定应用的优先级(例如用户可以设置Facebook相关的事务比LinkedIn相关的事务具有更高的优先级)。

优先级处理引擎241可以追踪和解决不同实体设置的优先级中的冲突。例如,由用户指定的手动设置可能优先于设备操作系统设置,网络提供商参数/限制(例如为一个网络服务区域的默认设置、地理区域、对于一天中的特定时间的设置或基于服务/费用类型的设置)可能会限制任何用户指定的设置和/或应用设定的优先级。在一些情况下,接收自用户的手动同步请求可以覆盖一些、大部分或所有的优先级设置,其中被请求的同步会在被请求时被执行,而无论为此所请求操作单独分配的优先级或整体优先级排名如何。

优先级可以通过任何已知和/或方便的方式被内部定义和追踪,包括但不限于二进制表示、多值表示、分级表示,所有方式都被认为在所公开技术的范围之内。

表I

为说明起见,以上表I以二进制表示方案示出含有已分配优先级事务的一些例子。对额外的事件、请求、事务的类型来说,额外分配是可能的,并且如前所述,优先级分配可以通过更多或更少的粒度级别进行,例如在会话级或在应用级等。

如上表中举例所示,在一般情况下,低优先级的请求/事务可以包括更新消息状态为已读、未读、删除消息、删除联系人;更高优先级的请求/事务在某些情况下可能包括状态更新、新的IM聊天消息、新的电子邮件、日历事件更新/取消/删除、手机游戏会话中的事件、或其他娱乐相关的事件、网购或在线购物的购买确认、加载额外内容或下载内容的请求、联络簿相关的事件、更改设备设置的事务、位置感知或基于位置的事件/事务或任何其他由用户引发的或已知、预期为或怀疑用户在等待响应等的事件/请求/事务等。

收件箱修剪事件(例如电子邮件或任何其它类型的消息)通常被认为是低优先级的并且缺少其他紧迫事件,通常不会触发在设备250上的无线使用。具体来说,如果在计划的修剪事件时间无线没有另外开启,则用来删除旧的电子邮件或其他内容的修剪事件可以是“附带”于其他通信的。例如,如果用户把偏好设置为‘保持消息7天’,则不是在超过7天的那一刻打开设备无线来从设备250启动消息删除,而是将消息在下次打开无线时删除。如果无线功能已经打开,则修剪可按计划正常发生。

请求/事务管理器235可以使用请求的优先级(如通过优先级处理引擎241),以管理设备250输出流量进行资源优化(例如更有效使用设备的无线来实现电池节约)。例如,如果由连接管理器265控制尚未接通无线,则低于某个优先级次序的事务/请求可能不会触发设备250上的无线使用。与此相反,如果事务请求被检测到在特定优先级,无线控制器266可打开无线,使这样的请求可以得到发送。

在一个实施方式中,优先级分配(例如由本地代理275或其他设备/实体确定的)可以用来使远程设备修改其与移动设备或无线设备进行通信的频率。例如,可对远程设备进行配置,以便在有更高重要性的数据要向移动设备或无线设备发送时发送通知到设备250,但在仅有低重要性数据时不发送通知。

在一个实施方式中,事务优先级可以结合用户活动特性被用于塑造或管理流量,例如通过流量整形引擎255。例如,流量整形引擎255可等待从设备250发送低优先级的事务,作为对检测到用户处于休眠状态或非活动状态一段时间的响应。此外,流量整形引擎255可以允许多个低优先级的事务进行积累来从设备250进行批量传送(例如通过批处理模块257)。在一个实施方式中,优先级可以由用户设置、配置或调整。例如,与表I中所示相同或类似形式的内容可以在设备250的用户界面上访问,例如由用户使用以调节或查看优先级。

批处理模块257可以根据一定的标准开始批量传输。例如,批量传输(例如多次事件发生的批量传输,其中一些发生在不同的时间实例)可在检测到特定数量的低优先级事件后、或在第一个低优先级事件启动后经过一定时间之后发生。此外,批处理模块257可以在检测到设备250上发起或较高优??先级事件时发起累积起来的低优先级事件的批量传输。当无线使用因为其他原因(例如从诸如主机服务器100或300的远程设备接收数据)被触发时,批量传输也可另外被启动。在一个实施方式中,即将发生的修剪事件(收件箱修剪)或任何其他低优先级的事件,都可以在批量传输发生时执行。

在一般情况下,批处理功能可在事件/事务级、应用级或会话级基于以下任何一项或其组合被被禁用或启用:用户配置、设备限制/设置、制造商规范、网络提供商参数/限制、特定于平台的限制/设置、设备的OS设置等。在一个实施方式中,批量传输可以在应用/窗口/文件被关闭、退出或移动到后台时启动;用户可以选择在批量传输之前接受提示;用户也可以手动触发批量传输。

在一个实施方式中,本地代理275通过在缓存285上缓存数据在本地减少或改变在设备250上的无线使用。当来自设备250的请求或事务可以由存储在缓存285中的内容来满足时,无线控制器266不必激活无线来将请求发送到远程实体(例如主机服务器100、诸如服务器/提供商110的内容提供商/应用服务器或诸如GCM和/或EAS服务器的邮件服务器)上去。这样,本地代理275可以使用本地缓存285和缓存策略管理器245在本地存储数据,用以满足数据请求,以消除或减少对设备无线的使用,实现节约网络资源和设备电池消耗。

在充分利用本地缓存方面,一旦请求/事务管理器235截获设备250上应用的数据请求,本地资源库285就可以被查询,以确定是否有任何本地存储的响应,并且还确定该响应是否有效。当在本地缓存285上有一个有效的响应时,该响应可被提供给设备250上的应用而无需设备250访问蜂窝网络或无线宽带网络。

如果没有一个有效的响应,本地代理275可以查询一个远程代理以确定远程存储的响应是否有效。如果有效,远程存储的响应(例如其可存储在服务器缓存135或可选的缓存服务器199之上)可以被提供给移动设备,可能无需移动设备250访问蜂窝网络,从而减轻网络资源的消耗。

如果有效的缓存响应不可用,或者如果缓存响应不可用于所截取的数据请求,本地代理275,例如缓存策略管理器245,可以发送数据请求到远程代理,其将数据请求转发到内容源(例如应用服务器/内容提供商110),并且自内容源的响应可以通过远程代理来提供。缓存策略管理器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)允许对任何可以被端口映射到分布式代理(例如端口映射在代理服务器上)中的处理器的协议进行优化。

在一个实施方式中,本地代理275通知远程代理,使得远程代理可以在将结果返回至设备250之前(例如当对内容源的数据请求取得了与要返回给移动设备的结果相同的结果时),监视接收自内容源进行数据请求的的响应是否有更改的结果。在一般情况下,本地代理275可以使用本地缓存的内容为设备250上的应用模拟应用服务器响应。这能够防止将蜂窝网络的利用用于其中新的/有变化的数据不可用的事务,从而解放了网络资源并防止网络拥塞。

在一个实施方式中,本地代理275包括了一个应用行为检测器236来跟踪、检测、观察、监测可在设备250上访问或安装的应用(例如代理感知和/或代理无感知应用210和220)。应用行为或设备250上可访问到的一个或多个应用所检测到行为(例如通过模式检测器237)的模式可以由本地代理275使用,以优化满足这些应用的数据需求所需的无线网络流量。

例如,基于多个应用被检测到的行为,流量整形引擎255可以调整至少由一些应用通过网络(无线网络)所作的内容请求(例如经由调整模块256)。调整模块256可延缓或加快一些早期提出的请求以实现调整。当请求被调整时,流量整形引擎255可以利用连接管理器在网络中轮询从而??满足应用数据请求。多个应用的内容请求可以基于行为模式或规则/设置来调整,例如包括多个应用所请求的内容类型(音频、视频、文本等)、设备(例如移动或无线设备)参数和/或网络参数/流量状况、网络服务提供商的约束/规范等。

在一个实施方式中,模式检测器237可检测在多个应用中由其完成的复用,例如可通过跟踪应用行为中的模式进行。例如,被追踪的模式可以包括作为后台进程检测应用定期、在一天的特定时间、在一周中的特定天、可预测方式的规则时间、以特定频率、以响应于特定类型事件的特定频率、响应于特定类型的用户查询、请求内容相同的频率、做出相同请求所用的频率、请求之间的间隔、应用发出请求或上述的任何组合轮询一个应用服务器。

此类复用可以由流量整形引擎255使用,以通过一个处于设备250远程的代理服务器(例如代理服务器125)分载来自内容源(例如来自应用/内容提供商110)内容的轮询,该内容本来将源自将在移动设备上或在无线设备250上执行的应用请求。流量整形引擎255可以在复用与规则匹配时决定分载轮询。例如,对于内容或者返回值完全相同的相同资源,或基于一天内特定时间请求资源这样请求和响应之间可重复时长的检测,存在多次复用或请求。轮询的分载可以减少移动设备250为了重复的内容轮询与内容源建立无线(蜂窝或其他无线宽带)连接所需的带宽消耗量。

作为轮询分载的结果,在内容源的轮询中没有检测内容变化时,可提供存储在本地缓存285上的本地缓存内容来满足设备250上的数据请求。因此,当数据没有变化时,应用数据的需求可以得到满足,而无需在无线网络中启用无线使用或占用蜂窝带宽。当数据已经改变和/或新数据已被接收时,轮询被分载到的远程实体可以通知设备250。远程实体可以是主机服务器100。

在一个实施方式中,本地代理275可以减轻对周期保活消息(心跳消息)的需要/使用,以维持TCP/IP连接,这种需要/使用可能有大量功耗,从而对移动设备的电池寿命产生有害影响。本地代理(例如心跳管理器267)中的连接管理器265可以检测、识别和拦截发送自应用的任何或所有心跳(保活)消息。

心跳管理器267可以防止任何或所有这类心跳消息通过蜂窝或其他网络发送,而是依靠分布式代理系统(例如图1B中所示)的服务器组件生成并发送心跳消息,来维持与后端(例如图1A例子中的应用服务器/提供商110)的连接。

本地代理275一般提供任何一个或一部分为单独管理器、模块和/或引擎描述的功能。本地代理275和设备250可以包括额外或更少的组件;包括全部或部分更多或更少的功能,而不偏离本公开内容的新技术。

图2B图示说明了图2的例子中所示的专有/非标准协议适配引擎和应用流量分载引擎附加组件的块图。

有些应用有自身的机制与应用服务器或其他第三方服务器进行通信。例如,这些应用可以使用其自身的通信信道来定期轮询其应用/第三方服务器而进行更新。一些应用也使用其专有推送信道来接收推送通知。这些应用中很多也采用混合推送信道。例如,除了在其自身的专有通信信道之外,某些应用采用GCM作为通信信道以接收推送通知或其它数据和上传数据。在一个实施方式中,来自具有混合推送或其它通信信道之应用的信令可以通过从应用专有信道分载到诸如GCM信道(例如通过图2A-2B的应用流量分载引擎470)的共享信道来进行优化。在一个实施方式中,分载可以通过策略执行器或管理器(例如图2B上的应用流量分载策略管理器476)管理,其在移动设备的IP层强制执行流量管理策略。

在一个实施方式中,分载流量到共享信道的某些策略可以基于情境信息强制执行,此类情境信息有移动设备的状态(例如设备的用户界面正在被使用或者在一段持续时间内空闲、屏幕关闭、设备离线)、应用的状态(例如应用在前台或后台)和类似项(例如通过图2C上的应用行为检测器236、用户活动模块215和/或背光源检测器219)。例如,当移动设备屏幕关闭时或在没有用户交互时,策略执行器可以被触发来执行禁止一个应用的策略,以便该应用不能与其应用服务器或其他第三方服务器通信来获取更新(例如通过图2B中的应用流量阻断/疏通模块474)。在一个实施中,包括保活流量在内的所有来自和/或流向应用的通信都可以被阻断,使得应用不可直接访问网络。可替代地,在另一实施中,应用本身可被终结。

移动设备上的本地代理可以为来自GCM服务器的任何消息监测GCM信道(例如通过GCM信道监测代理472)。该GCM消息可以是针对被阻断应用或针对任何应用的消息。当检测到针对被阻断应用的消息时,本地代理可以触发对应用的疏通,以允许应用与其应用服务器或第三方服务器进行通信(例如经由图2B上的应用流量阻断/疏通模块474)。在一个实施中,除了GCM消息触发器,设备情境状态的其他变化(如应用移动至前台、用户交互等)也可以作为一个疏通应用的触发器(例如基于图2B上流量分载触发器配置模块473的配置)。被疏通后,应用可以访问网络,并向/从应用服务器或第三方服务器上传/下载数据。在基于Android?系统的一个实施中,连接意图可以被广播或发送到应用来触发应用连接到所述网络,并且与应用服务器或第三方服务器同步。

在一个实施中,策略执行器可以定义或配置本地代理来疏通应用一段时间。该时间到期后,本地代理可以再次阻断或终结应用,并继续监测GCM信道以检测和/或拦截被导向已阻断应用的GCM消息。

在一个实施方式中,除了将通信分载到GCM信道并使用GCM消息作为触发器来疏通一个被阻断的应用,本地代理可进一步从其专有信道到诸如GCM信道的共享推送信道巩固保活或其他流量,以优化信令和/或其它设备资源。

本发明提供的一种或多种方法包括,识别(或者通过离线分析,或者在设备上实时进行)给定应用利用多个重叠推送信道(典型地其自身和第三方);找到一种把应用从到从一种机导向到另一种机制(其对网络/电池更加友好),同时不对用户体验产生影响的的机制;通过识别而具有所需的网络/电池节约的影响

方法可进一步包括,在应用的内部状态机器的哪一点阻断非所需机制,使得网络信令减少和电池消耗(如果阻断地不正确,即使不能够消耗网络信令,应用也可能开始高速运转,消耗更多的CPU/电池)减少都可以达到——典型的机制包括丢弃IP数据包(不响应它们)、拒绝IP数据包(用ICMP目的地不可达消息进行响应)或阻断应用层(接受TCP/IPsocket和第一有效载荷数据,但不响应应用层)、并考虑该应用具有的任何现有连接的状态(这通常需要被主动关闭使服务器端不会尝试通过被阻断的信道发送推送消息)。

方法还可以包括确定如何疏通被阻断的推送信道,这样当输入消息(或它的通知)通过替代推送信道时,应用能够执行对其进行处理并通知用户所需的任何操作来(例如通过视觉、声音、振动、或者只是更新其自己的为使用户稍后打开屏幕的准备中的UI)。这通常包括观察疏通后的应用流量,并在仅当应用已经能够执行其必要的网络访问之后重新启动阻断。此外,重新阻断需要考虑现有连接需要被关闭时的无线状态,以避免其自身造成额外的网络连接(即仅在下一无线开启机会时开始重新阻断)。

图2C示出的块图描述了图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和/或结合使用活动追踪器215和/或预测引擎215B),以确保流量被适当归类,从而大致满足用户预期。例如,用户启动操作应被分析(例如通过预期管理器215)以确定或推断用户是否将等待响应。如果是这样,这种流量应按能够使用户在接收这种响应或操作时不会经历令人不愉快延迟的策略来处理。

在一个实施方式中,选择新一代的无线标准网络,以供基于流量源自或被导向至的移动设备上应用的活动状态在无线网络中在移动设备和主机服务器之间发送流量。可以选择3G、3.5G、3G+、4G或LTE网络等高级技术标准,用于处理用户交互、用户活动所产生的流量,或含有用户预期或等待数据的流量。对于响应前台活动的移动设备,也可选择高级无线标准网络用于传输包含在移动设备流量中的数据。

在分类流量和确定移动通信传输策略时,可以选择网络配置在(例如通过网络配置选择引擎251)移动设备250上使用,用于在移动设备和代理服务器(325)和/或应用服务器(例如应用服务器/主机110)之间发送流量。所选择的网络配置可以基于由应用行为模块236收集的应用活动状态(例如后台或前台的流量)、应用流量类别(例如交互或维护流量)、数据/内容的任何优先级、时间灵敏度/关键性方面的信息确定。

网络配置选择引擎251可以按照任何组合选择或指定一个或多个的代标准(例如通过无线代标准选择器251A)、数据速率(例如通过数据速率指示器251B)、接入信道(例如接入信道选择引擎251C)和/或接入点(例如通过接入点选择器251D)。

例如,当活动状态是在与用户交互或在移动设备前台时,可以为流量选择或指定更高级的代(例如3G、LTE或4G或更高)。相反,当检测到一个或多个下列内容时,可以为流量指定老一代的标准(例如2G、2.5G、3G或更老的):应用不与用户交互、应用在移动设备的后台运行、或包含在流量中的数据并非时间关键性的或被确定具有较低优先级。

类似地,当检测到一个或多个下列内容时,可以为流量指定具有较慢数据速率的网络配置:应用不与用户交互、应用在移动设备的后台运行或包含在流量中的数据并非时间关键性。接入信道(例如前向接入信道或专有信道)可以被指定。

图3以计算机系统实例的形式示出了一个机器示意图,其中用于让机器执行任一个或多个本发明所讨论方法的一组指令。

在图3计算机系统300包括处理器、存储器、非易失性存储器和接口设备。为简化说明起见,省略了各种通用组件(例如高速缓冲存储器)。计算机系统300旨在图解说明一种硬件设备,在其上可采用图2A-2C中举例描述的任何组件(和在本说明书中描述的任何其他组件)。计算机系统300可以是任何适用的已知或便利的类型。计算机系统300的组件可以经由总线或通过一些其它已知或便利的设备耦合在一起。

本发明中公开了一种或多种方法。一种或多种方法可包括确定设备正在通过至少两个重叠的推送信道进行通信,并阻断推送信道之一,以消除或减少至少两个重叠推送信道之间的重叠。阻断可包括丢弃接收自被阻断推送信道的IP数据包。阻断可包括拒绝接收自被阻断推送信道的IP数据包。阻断可包括阻断接收自被阻断推送信道之通信的应用层。一种或多种方法可包括确定设备上的应用进行通信的任何现有连接的状态。一种或多种方法可包括,关闭应用的连接作为对确定现有连接状态的响应。一种或多种方法可包括从附加推送信道接收推送消息和疏通被阻断的推送信道,以使应用可执行响应附加推送信道消息的操作。一种或多种方法可包括将操作通知用户。一种或多种方法可包括在操作完成后重新阻断被疏通的推送信道。一种或多种方法可包括确定该操作已完成并在操作完成后重新阻断被疏通的推送信道。一种或多种方法可包括直到所述移动设备的无线被启动之前拒绝对此推送信道的阻断。推送信道可以是专有的,也可以是特定于应用的。阻断推送信道之一可包括阻断非共用推送信道,以将通信分载至一个共用推送信道。

提供了一种减少网络流量的方法。该方法可包括识别应用中的多个重叠推送信道;确定所述多个重叠推送信道中的第一推送信道可被阻断,同时伴随最小的用户体验影响;阻断第一推送信道以减少网络信令和电池消耗;监测所述多个重叠推送信道中第二推送信道上应用流量;基于被监测的应用流量疏通第一推送信道以服务于应用流量;以及在应用服务了应用流量后重新阻断第一推送信道。对多个重叠推送信道的识别可离线进行。对到多个重叠推送信道的识别可实时进行。在一个或多个实施方式中,第一信道可以是第三方信道。阻断可能通过下列方式之一执行:丢弃IP数据包、拒绝IP数据包及阻断一个应用层。对应用流量提供服务可包括通知用户。

本发明提供的是包含计算机代码的非临时性计算机可读介质,用于实现处理器控制的系统,用来确定设备通过至少两个重叠推送信道进行通信并阻断推送信道之一以减少所述至少两个重叠的推送信道之间的重叠。计算机代码执行一个通过丢弃IP数据包进行阻断的处理器控制系统。计算机代码执行一个通过拒绝IP数据包进行阻断的处理器控制系统。计算机代码执行一个阻断应用层的处理器控制系统。计算机代码执行一个处理器控制系统,该系统确定系统通信所在任何现有连接的状态。计算机代码执行一个关闭应用连接的处理器控制系统。计算机代码执行一个处理器控制系统,其从一个附加推送信道接收推送消息并疏通被阻断的推送信道,以使系统可执行响应来自附加推送信道消息的操作。计算机代码可执行一个将操作通知用户的处理器控制系统。计算机代码执行一个在操作完成后重新阻断被疏通通信信道的处理器控制系统。计算机代码执行一个确定操作已完成并在操作完成之后重新阻断被疏通通信信道的处理器控制系统。非暂时性计算机可读介质,其包含用于以执行一个减少网络流量的处理器控制系统的计算机代码,其被提供和配置以用于:用于识别应用中的多个重叠推送信道,确定所述多个重叠推送信道中的第一推送信道可被阻断,同时伴随最小的用户体验影响,阻断第一推送信道使网络信令和电池消耗降低,监测所述多个重叠推送信道中第二推送信道上应用流量,基于被监测的第二信道应用流量疏通第一推送信道来启动对应用流量提供服务,并在应用执行对应用流量提供服务的必要网络访问之后重新阻断第一推送信道。对多个重叠推送信道的识别可离线进行。对到多个重叠推送信道的识别可实时进行。所述多个重叠的推送信道中至少一个可以是第三方信道。阻断可能通过下列方式之一执行:丢弃IP数据包,拒绝IP数据包及阻断对应用层的输入。

可提供一个通信网络。该网络可以包括具有处理器、用于存储信息的存储器以及用户界面的移动设备,该移动设备根据操作系统和推送客户端应用运行。还提供有第一服务器、第二服务器、主机服务器、可操作地将所述主机服务器连接到所述第一服务器和所述第二服务器的第一网络、以及可操作地将所述移动设备连接所述第一网络的第二网络。推送客户端应用控制处理器,以使移动设备确定第一服务器和第二服务器产生重叠的第一和第二推送信道,并阻断第一推送信道以减少在第一和第二推送信道之间的重叠。移动设备可以通过丢弃IP数据包、拒绝IP数据包或阻断应用层来阻断第一推送信道。处理器可进一步包括确定所述设备上的应用进行通信的任何现有连接的状态。

提供一个通信网络。该网络包括具有处理器、用于存储操作系统的存储器以及推送客户端应用和用户界面的移动设备。移动设备根据操作系统和推送客户端应用运行。提供具有第一推送信道的第一服务器和具有与第一推送信道重叠的第二推送信道的第二服务器。提供一个主机服务器。第一网络可操作地将所述主机服务器连接到所述第一服务器和所述第二服务器,第二网络可操作地将第一网络连接到所述移动设备。推送客户端应用控制处理器以确定第一和第二推送信道重叠,确定第一推送信道可被阻断,同时伴随最小的用户体验影响,阻断第一推送信道以减少网络信令和电池消耗,监测第二推送信道上的流量,基于第二推送信道流量疏通第一推送信道,并在推送客户端应用执行对应用流量提供服务的必要网络访问之后重新阻断第一推送信道。

例如,处理器可以是常规的微处理器,如英特尔奔腾微处理器或摩托罗拉powerPC微处理器。本领域的有关技术人员将认识到,术语“机器可读(存储)介质”或“计算机可读(存储)介质”包括了可由此处理器访问的任何类型的设备。

例如,存储器通过总线而被耦合到处理器上。举例来说(但不作为限制),存储器可以包括随机存取存储器(RAM),如动态RAM(DRAM)和静态RAM(SRAM)。存储器可以是本地的、远程的或分布式的。

总线还把处理器与非易失性存储器和驱动单元耦合到一起。非易失性存储器通常是磁性软盘或硬盘、磁光盘、光盘、诸如CD-ROM、EPROM或EEPROM的只读存储器(ROM)、磁或光卡或存储大量数据的另一种形式。部分这种数据通常在计算机300中运行软件时由一种直接的存储器访问进程写入存储器中。非易失性存储器可以是本地的、远程的或分布式的。非易失性存储器是可选的,因为可以用在存储器中所有可用的适用数据来创建系统。典型的计算机系统通常至少包括处理器、存储器和一个将存储器耦合到处理器的设备(例如总线)。

软件通常存储在非易失性存储器和/或驱动单元中。的确,对于大型程序,甚至可能不能够把整个程序存储在存储器中。然而应当理解的是,如果对于软件运行有必要的话,它会被移动到一个适用于处理的计算机可读位置,为说明起见,该位置在本文中被称为存储器。甚至当软件被移动到存储器中进行运行时,处理器也通常将会利用硬件寄存器来存储与软件相关的值以及理想情况下用于提高运行速度的本地缓存。按照本发明所使用的情况,当软件程序被称为“在计算机可读介质中实现时”,软件程序被假定为存储在任何已知的或方便的位置(从非易失性存储到硬件寄存器)。当至少一个与程序相关联的值被存储在处理器可读的寄存器中时,处理器被认为“经配置以执行程序”。

总线还把处理器耦合到网络接口设备上。接口可以包括一个或多??个调制解调器或网络接口。应该理解的是,调制解调器或网络接口可以被认为是计算机系统的一部分。接口可以包括模拟调制解调器、ISDN调制解调器、电缆调制解调器、令牌环接口、卫星传输接口(例如“directPC”)或用于耦合计算机系统到其他计算机系统的其它接口。接口可以包括一个或多??个输入和/或输出设备。举例来说(但不作为限制),输入/输出设备可以包括键盘、鼠标或其他指示设备、磁盘驱动器、打印机、扫描仪和其他输入和/或输出设备,包括显示设备。举例来说(但不作为限制),显示设备可以包括阴极射线管显示器(CRT)、液晶显示器(LCD)或一些其它已知适用的或便利的显示设备。

在操作中,计算机系统300可以由操作系统软件控制,该系统包括了磁盘操作系统等文件管理系统。操作系统软件与相关的文件管理系统软件的一个实例,是华盛顿州雷蒙德市的微软公司的操作系统家族Windows?及其相关的文件管理系统。操作系统软件与相关的文件管理系统软件的另一个实例是Linux操作系统和其相关的文件管理系统。文件管理系统通常存储在非易失性存储器和/或驱动单元中,并使处理器执行操作系统所需的各种操作,以输入和输出数据并存储数据至存储器中,包括在非易失性存储器和/或驱动单元中存储文件。

具体实施例中有些部分可在计算机存储器内以数据位运算的算法和符号表示来呈现。这些算法描述和表示是由本领域技术人员在数据处理领域最有效地向给本领域的其他技术人员传达其工作实质的手段。这里的算法是通常被认为是导致预期结果的自身一致的运算序列。运算是需要物理量的物理操作的运算。尽管并非必需,这些量通常采用能够被存储、传输、组合、比较以及以其他方式操纵的电或磁信号的形式。有时证明主要为了通用的原因而将这些信号称为位、值、元素、符号、字符、术语、数字等具有其方便性。

然而应当牢记,所有这些和类似的术语都将与适当的物理量相关联并且仅仅是应用于这些量的方便标签。除非另外特别指出,否则如在以下讨论中明显说明的,应当理解在整个描述中使用诸如“处理”或“计算”或“运算”或“确定”或“显示”等术语进行的讨论,指的是计算机系统或类似的电子计算设备的操作和处理,其把表示为计算机系统寄存器和存储器内的物理(电子)量的数据处理和变换成其他数据,后者被类似表示为其他计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备内其他物理量。

本发明中所呈现的算法和显示并不固有地与任何特定计算机或其他设备有关。各种通用系统可以结合根据本发明的教示来使用,或者可以证明便于构造更专门的设备来执行一些实施方式中的方法。多种此类系统的所需结构将出现在下面的描述中。另外,技术并未参照任何特定的编程语言描述,所以各种实施方式可因此使用各种编程语言来实现。

在替代实施方式中,机器作为一个独立的设备运行,或者其可以被连接(例如联网)到其它机器。在联网部署中,机器可以作为服务器端或客户端机器在客户端-服务器网络环境中运行,或作为对等机器在点对点(或分布式)网络环境中运行。

机器可以是服务器计算机、客户端计算机、个人计算机(PC)、平板PC、膝上型计算机、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、iPhone、黑莓手机、处理器、电话机、web设备、网络路由器、交换机或网桥,或能够执行指定由该机器所采取操作的一组指令(按顺序或其它方式)的任何机器。

机器可读介质或机器可读存储介质在示例性实施方式中显示为单一介质,而术语“机器可读介质”和“机器可读存储介质”应当被理解为包括存储一个或多个指令集的单一介质或多种介质(例如集中式或分布式数据库和/或相关联的缓存和服务器)。术语“机器可读介质”和“机器可读存储介质”也应被理解为包括能够存储、编码或携带由机器执行的一组指令的任何介质,以及使机器执行任何一种或多种本发明所公开技术和创新方法的任何介质。

在一般情况下,用以执行来实施本公开内容实施方式的例程,可作为操作系统或称为“计算机程序”的特定应用、组件、程序、对象、模块或指令序列的一部分执行。计算机程序通常包括在一台计算机中的各种存储器和存储设备中设置于不同时间的一个或多个指令集,而且,当由计算机中的一个或多个处理单元或处理器读取和执行时,其会使得计算机执行操作以执行涉及本公开内容的各种方面的元素。

此外,虽然实施方式的描述是根据完全正常工作的计算机和计算机系统进行的,然而本领域的技术人员将理解,各种实施方式都能够以各种形式作为程序产品分配,并且无论用来实际影响分配的特定机器或计算机可读介质类型如何,本公开内容都同样适用。

机器可读存储介质、机器可读介质或计算机可读(存储)介质的其它进一步的例子包括但不限于可记录型介质(如易失性和非易失性存储器设备)、软盘和其他可移动磁盘、硬盘驱动器、光盘(例如只读光盘(CDROMS)、数字多功能盘(DVD)等)等等,以及传输型介质(如数字和模拟通信链路)。

除非文意另有明确要求,否则在整个说明书和权利要求中,词语“包含”、“包括”等类似词语应被解释为包容的含义,含义与排他或穷举相对;也就是说,意同“包括但不限于”。按照本发明所使用的情况,术语“连接”、“耦合”或其任何变体,是指两个或更多元素之间任何连接或耦合,无论是直接还是间接的;元素之间的连接耦合可以是物理的、逻辑的耦合或两者组合。另外,词语“本发明中”、“以上”、“以下”和类似含义的词语,在本申请中使用时,应指本申请的整体而不是本申请的任何特定部分。如果文意允许,上述具体实施方式中的使用单数或复数数字的词语也可分别包括复数或单数数字。就两个或更多个项目而言,词语“或”覆盖了该词语的所有下述解释:列表中的任何项目、列表中的全部项目以及列表中项目的任何组合。

本公开内容的实施方法的以上详细描述不旨在穷尽或将教示限制为以上公开的精确形式。虽然本公开内容的上述描述的具体的实施方式和例子是为了说明的目的,但是相关领域的技术人员将认识到,在本公开内容的范围之内各种等同的修改都是可能的。例如,尽管处理或模块以给定的顺序呈现,备选实施方式可以按不同的顺序执行具有以下步骤的例程或采用具有模块的系统,并且某些过程或模块可以被删除、移动、增加、再细分、组合和/或修改以提供替代方案或子组合。这些处理或模块可以通过各种不同的方式来实现。此外,尽管过程或模块有时显示为按顺序执行,这些过程或模块也可并行执行或者可以在不同的时间执行。本发明进一步指出的任何特定数字仅仅是示例:替换实施可采用不同的值或范围。

本发明所提供的公开内容的教示可以应用于其它系统,而不一定是上述系统。上述的各种实施方式的元素和操作可以组合以提供进一步的实施方式。

任何专利和申请以及如上所述其它参考资料,包括任何可能被列在所附申请文件的文件,都通过引用被并入本发明。如果需要,本公开内容的元素可以被修改来采用上述的各种参考资料的系统、功能和概念来提供本公开内容的进一步的实施方式。

可根据上述具体实施方式对本公开内容作出这些变化和其他的变化。虽然上述说明描述了本公开内容的某些实施方式,并描述了预期的最佳模式,然而无论上述描述的文字如何详细,本教示仍然可以通过许多方式实现。系统的细微之处可能在实施细节方面变化相当大,但是这亦由本发明所公开的主题囊括。如上所述,所使用的特定的术语在描述本公开内容的特定特性或方面时,不应被认为表示该术语在本发明中被重新定义为限于与该术语相关的公开的任何特定特性、特性或方面。总的来说,用在权利要求书中的词汇不应被理解为将公开的范围限定到申请文件所公开的具体实施方式中,除非在上述具体实施方式部分明确地定义了这些词汇。相应地,本公开内容的实际范围不仅涵盖了所公开的实施方式,还涵盖了按照权利要求书实践或者实施本公开的所有等同方式。

而本公开内容的某些方面以某些权利要求形式呈现如下,发明人考虑本公开内容在任何数量的权利要求形式下的各个方面。例如,虽然本公开内容仅有一个方面作为35U.S.C.§112,?13的方法加功能权利要求引述,但是其它方面可类似作为方法加功能权利要求实施,或以其他形式实施,如以计算机可读介质的形式实施。(任何旨作为35U.S.C.§112,?13对待的权利要求都冠以“...的手段”)。相应地,申请人保留在提交申请后添加另外的权利要求的权利,以便为本发明的其它方面采取此类另外的权利要求形式。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号