网络接入请求的管理的制作方法
【专利摘要】本文描述了用于对来自于安装在移动设备上的应用的请求进行截获的方法、系统和设备。这些请求是为该移动设备建立通信信道的系统调用。对这些请求进行捕获,并对其进行保持以阻止到达在该移动设备上执行的操作系统的TCP/IP栈。将截获的请求与其它截获的请求进行聚合。在检测到触发事件之后,将聚合的请求绑定在一起,并释放给操作系统。当移动设备处于后台模式时,进行对来自应用的请求的捕获、保持和聚合。
【专利说明】网络接入请求的管理
[0001]相关申请的交叉引用
[0002]本申请基于35U.S.C.§ 119(e)要求由Giaretta等人于2011年3月18日提交的、代理案卷号为N0.111354P1 的、题目为“CONNECTIVITYMANAGEMENT FOR APPLICATIONS ON AUSER DEVICE”的美国临时专利申请N0.61/454,457的优先权,故明确地以引用方式将该临时申请的全部内容整体并入本文。
【背景技术】
[0003]如今,应用或设备小应用程序(applet)可用于向无线设备提供多种多样的附加服务和特征。例如,现在无线设备可以下载和发起设备小应用程序,以执行诸如购物、搜索、定位、驾驶导航之类的附加值功能或者其它功能集。通常,网络和应用提供商向设备用户提供这些设备应用程序,以获得另外的费用。因此,设备小应用程序的使用可以增加无线设备的功能和可用性,向设备用户提供非设备本身最初可用的特征和便利。
[0004]通常,无线设备使用多个无线装置中的任意一个,与一个或多个通信网络进行交互。例如,无线设备可以包括多个无线装置,这些装置使用蜂窝、WiF1、蓝牙或者其它类型的无线接入技术来提供通信。因此,在无线设备上执行的应用与一个无线装置进行交互以建立通信信道,这些应用使用该信道来与适当的网络进行通信。
[0005]即使当无线设备处于后台模式时,应用也可以继续与该设备上的无线装置进行交互来建立通信信道。随着在设备上安装的应用的数量增加,在设备不活动时,网络通信的重复建立不必要地消耗该设备的电池电量。此外,随着诸如智能电话之类的无线设备的使用的增加,与通信信道的建立相关联的网络信令使数据网络开始变得过载。
【发明内容】
`[0006]本申请描述了用于管理网络和在移动设备上执行的应用之间的连接的方法、系统和设备。在一个示例中,可以对来自在该设备上执行的应用的对网络接入的请求进行截获。例如,封装器可以放置在应用和该移动设备的操作系统之间,以便对所述请求进行截获。在截获所述请求之后,可以保持该请求,以阻止到达操作系统的传输控制协议/因特网协议(TCP/IP)栈。在一个示例中,当触发事件发生时,可以向操作系统释放该请求。当移动设备处于后台模式时,可以发生对于请求的捕获、保持和释放。
[0007]在一种配置中,可以将所述请求与其它截获的请求进行聚合,以执行所述移动设备的通信。对来自所述应用的请求进行截获和对所述其它请求进行截获可以在不同的时间发生。
[0008]在一个示例中,可以执行用于封装器的指令。所述执行的封装器可以执行对来自所述第一应用的请求的截获。在一种配置中,所述封装器可以位于所述移动设备的操作系统的应用层和套接字层之间。
[0009]在一种配置中,可以将所述第一应用识别为对来自其的请求进行保持的应用类型。可以将应用识别为紧急应用或者非紧急应用。可以只对来自非紧急应用的请求进行保持。
[0010]在一个实施例中,所述触发事件可以包括下面各项中的至少一项:定时器的期满、显不器的状态改变、麦克风的状态改变、扬声器的状态改变、所述移动设备的全球定位系统(GPS)传感器的状态改变、通用串行总线端口正在使用的指示、音频设备连接到所述移动设备的指示、视频设备连接到所述移动设备的指示、到W1-Fi类型网络的连接是可用的指示、或者到蜂窝类型网络的无线连接是打开的指示。
[0011]此外,在一个示例中,可以确定所述第一应用的延迟容忍度。此外,可以基于所确定的延迟容忍度,向所述第一应用提供回调函数。所述回调函数可以指示所述第一应用连接到所述通信资源。
[0012]在一种配置中,可以确定与所述第一应用相关联的第一定时器的期满时间。此外,还可以确定容忍度和与第二应用相关联的第二定时器的期满时间。可以基于所述第一定时器的期满时间、所述容忍度和所述第二定时器的期满时间,强制所述第二定时器期满。可以释放来自所述第一应用的请求和来自所述第二应用的截获的请求,以执行所述移动设备的通信。
[0013]在一个示例中,可以从所述应用接收最终期限。可以保持所述请求,直到在所述最终期限之前为止。可以在所述最终期限之前,释放所述请求以连接到所述通信资源。在一种配置中,所述请求可以包括:用于为所述移动设备建立通信信道的系统调用。可以在检测到所述触发事件之后,向所述操作系统的套接字层释放所述请求。
[0014]在一个实施例中,可以接收与释放所述请求的频繁程度有关的时间间隔的指示。所述时间间隔可以小于网络中的有状态因特网协议(IP)中间盒中的超时值。
[0015]此外,还描述了一种配置用于无线通信的移动设备。该设备可以包括处理器和与所述处理器进行电通信的存储器。所述存储器包括操作系统。所述处理器可以包括连接引擎。所述引擎可以配置为执行指令,以便对来自所述移动设备上的第一应用的请求进行截获。所述请求可以是用于执行所述移动设备的通信的请求。此外,所述引擎还可以配置为:保持所述请求以阻止到达在所述移动设备上执行的操作系统的TCP/IP栈;以及在检测到触发事件之后,向所述操作系统释放所述请求。
[0016]此外,还描述了一种配置为对来自移动设备上的应用的对网络接入的请求进行管理的装置。该装置包括:用于对来自所述移动设备上的应用的请求进行截获的模块。所述请求可以是用于执行所述移动设备的通信的请求。此外,该装置还可以包括:用于保持所述请求以阻止到达在所述移动设备上执行的操作系统的TCP/IP栈的模块;以及用于在检测到触发事件之后,向所述操作系统释放所述请求的模块。
[0017]此外,还描述了一种配置为对来自移动设备上的应用的网络接入请求进行管理的计算机程序产品。所述产品可以包括非临时性计算机可读介质。所述介质可以包括:用于对来自所述移动设备上的应用的请求进行截获的代码。所述请求可以是用于执行所述移动设备的通信的请求。此外,所述介质还可以包括:用于保持所述请求以阻止到达在所述移动设备上执行的操作系统的TCP/IP栈的代码;以及用于在检测到触发事件之后,向所述操作系统释放所述请求的代码。
[0018]上面对根据本发明的示例的特征和技术方面进行了总体概括。下面将描述另外的特征。本申请所公开的概念和特定示例可以容易地使用成用于修改或设计执行本发明的相同目的的其它结构的基础。这种等同的构思不脱离所附权利要求书的精神和保护范围。当结合附图来考虑下面的【具体实施方式】时,将能更好地理解被认为是本申请所公开概念的特性的特征(关于其组织和操作方法)。提供这些附图中的每一个仅仅是用于说明和描述目的,而不是用作为规定本发明的限制。
【专利附图】
【附图说明】
[0019]通过参照下面的附图,可以获得对于本发明的本质的进一步理解。在附图中,类似的组件或特征具有相同的附图标记。此外,相同类型的各个组件可以通过在附图标记之后加上虚线以及用于区分相似组件的第二标记来进行区分。如果在说明书中仅使用了第一附图标记,则该描述可适用于具有相同的第一附图标记的任何一个类似组件,而不管第二附图标记。
[0020]图1示出了一种网络环境的框图;
[0021]图2示出了示出用于移动设备的体系结构的框图;
[0022]图3示出了一种移动设备的框图,其中该移动设备提供网络接入请求的延迟;
[0023]图4示出了用于延迟网络接入的请求的移动设备上的体系结构的示例框图;
[0024]图5示出了用于对网络接入的请求进行聚合的示例时序图;
[0025]图6示出了在移动设备上实现的体系结构的一个示例;
[0026]图7是示出用于延迟网络接入的请求的方法的一个示例的流程图;
[0027]图8是示出用于基于应用的分类,延迟网络接入的请求的方法的一个示例的流程图;
[0028]图9是示出用于对从多个移动设备接收的网络接入请求进行聚合的方法的一个示例的流程图;
[0029]图10是示出用于对数据连接请求进行同步的方法的一个示例的流程图;
[0030]图11示出了三个应用定期地发起连接请求的时序图;
[0031]图12示出了图11的时序图,其中对某些连接请求进行了同步;
[0032]图13示出了三个应用定期地发起连接请求的时序图;
[0033]图14示出了图13的时序图,其中对某些连接请求进行了同步。
【具体实施方式】
[0034]描述了用于对在移动设备上安装的应用发出的请求进行截获的方法、系统和设备。该请求可以是为该移动设备建立通信信道的系统调用。术语“请求”和“系统调用”可以互换地使用。可以对这些请求进行捕获,并对其进行保持以阻止到达在该移动设备上执行的操作系统的TCP/IP栈。可以将截获的请求与其它截获的请求进行聚合。可以在检测到该移动设备上的触发事件之后,将聚合的请求绑定在一起,并几乎同时地释放给操作系统。当移动设备处于后台模式时,发生对于来自应用的请求的捕获、保持和聚合。
[0035]在诸如智能电话、个人数字助理等之类的移动设备上,即使用户没有活动地使用该设备,软件应用也可以继续操作。即使用户没有正在使用设备,诸如社交网络应用、电子邮件或者其它通信应用、数据馈送等之类的应用(包括Facebook?、Gmail?、Twitter?等的流行示例),也可以继续发送和接收数据。即使在非活跃操作模式情况下,活跃情况下的功耗和波尖也在即使设备表面上不使用,但却继续操作的应用中发生。这些应用的活动可以使用诸如外部网络所提供的通信资源。
[0036]这些应用可能触发移动设备从后台模式向连接模式的频繁转换,或者其可能干扰进入后台模式或者其它替代性连接模式(例如,不连续接收(DRX))的设备。这些应用在用户没有活动地参与该设备时所造成的这些提高的无线装置活动水平,可能导致电池寿命的过早耗尽、无线网络的负载的不期望的增加或者其它不期望的效果。
[0037]当移动设备的某些输入是不可操作的或处于睡眠状态时,该设备处于后台模式。换言之,当用户没有使用该设备时,该设备可以是处于后台模式。例如,当音频输入(例如,麦克风)关闭时,设备可以认作是处于后台模式。此外,当视频输入(例如,设备的显示器)关闭时,可以确定设备处于后台模式。其它的输入也可以用于判断该移动设备是否处于后台模式,如下面所描述的。
[0038]描述了网络和在移动设备上执行的应用之间的连接的管理。当安装在移动设备之上的多个应用请求接入网络时(其中该设备处于后台模式),可能发生不必要的大量的网络信令。例如,第一应用可以发起用于建立通信信道的系统调用,随后在对数据进行发送/接收之后,中断该信道。随后,第二应用可以发起也是用于建立通信信道以发送/接收数据的系统调用。每一次建立通信信道,都会增加网络信令的量,使得网络的可用带宽减少。此外,当多个应用请求接入网络时(其中该设备处于后台模式),可能消耗不必要的大量的电池电量。每一次建立通信信道,电池电量都会减少,使得当该移动设备进入活动模式时,可用的功率降低。结果,本申请给出的系统和方法可以保持和聚合针对网络接入的请求,以减少网络信令和节约电池电量。如先前所提及的,这可以在该设备不活动时发生。此外,当设备的电池电量下降到低于某个门限量时,可以发生系统调用的保持和聚合。当发生触发事件时(例如,设备进入活动模式时),可以将聚合的请求一起释放,以减少网络信令的量,并减少与每一个单独请求相关联的电池电量的消耗。
[0039]当移动设备处于非活动模式时,可以执行请求的保持和聚合,以便不干扰用户对于该设备的使用。在一个示例中,可以对来自于用户设备上的应用的网络接入请求进行截获。例如,可以在移动设备的应用层和该设备的操作系统层之间放置封装器,以便对请求进行截获。在一个示例中,封装器可以是用于对请求进行截获的软件实体。封装器对于应用层中的应用以及操作系统层中的操作系统来说是透明的。在对请求进行截获之后,可以对该请求进行保持以阻止到达操作系统或者延迟到达操作系统。在一种配置中,可以将该请求与从应用层中的其它应用接收的其它截获的请求进行聚合。当检测到触发事件时,可以将聚合的请求释放给操作系统。结果,封装器可以对请求进行透明地截获和聚合,随后当完成其它的处理时,对聚合的请求进行中继。
[0040]此外,可以确定用于指示将保持的请求释放给设备的操作系统的频繁程度的时间间隔。可以对该时间间隔进行确定,以便维持中间盒的状态,其在下面进行描述。在一个示例中,可以通过有状态中间盒,来分隔因特网协议(IP)主机。有状态中间盒可以执行防火墙和网络地址转换(NAT)功能。防火墙的功能可以是用于确定该设备的哪些进入/外出端口是打开或者可用的。NAT功能通常并不部署在蜂窝网络上,但其可以持续地部署在LAN/WLAN上。在移动设备上执行的应用不能区分蜂窝网络和W1-Fi网络,结果,这些应用可以使用定时器来发出“保持活动”请求,以保持NAT功能可用于蜂窝网络上。可以维持中间盒的状态,直到该定时器期满为止。如果需要长期连接(TCP或UDP),则这些中间盒可以贯穿该连接都保持其状态。可以不用对在移动设备(例如,智能电话)上执行的应用进行修改以适合蜂窝网络(与W1-Fi网络相反)。结果,这些应用可以选择保持活动/重新连接时间间隔,其可以在任何地方工作,而不管该时间间隔是否使蜂窝网络的信令产生峰值。因此,下文描述了用于通过减少针对网络接入的系统调用的数量,来节约能量和减少信令的系统和方法(其通过下面方式来实现:当设备处于后台模式时,对这些网络接入请求进行保持,当发生某个触发事件时,或者按照具体的网络所确定的时间间隔,来释放这些请求)。
[0041]下面的描述提供了一些示例,其并非用于限制权利要求书中所阐述的保护范围、适用性或配置。在不脱离本发明的精神和保护范围基础上,可以对各组成要素的功能和排列进行各种修改。各个实施例可以根据需要,省略、替代或者增加各种过程或组件。例如,可以按与所描述的不同的顺序来执行描述的方法,可以对各个步骤进行增加、省略或者组合。此外,关于某些实施例描述的特征可以组合到其它实施例中。
[0042]现参见图1,该图示出了无线网络环境100的示例的框图。网络环境100可以包括移动设备102和通信网络115。设备102可以使用多个无线信道110-a与网络115进行通信。例如,可以在设备105和网络115之间建立控制信道110-a-l。此外,还可以建立其它类型的信道110-a-2到110-a-n。这些其它类型的信道可以包括数据信道、语音信道等。
[0043]在操作期间,设备102可以执行使用多个无线电装置中的任意一个与网络115进行交互的应用。例如,执行的应用可以发出与网络115建立通信的请求。在一个示例中,这些请求可以是诸如套接字层调用之类的网络系统调用。该请求可以是针对于设备105上的操作系统的套接字层。一般情况下,传统设备允许这些类型的请求直接转送到操作系统进行处理。在接收到该请求之后,传统的设备开始进行网络信令处理,以通过数据连接建立过程来建立控制信道110-a-l。当在移动设备105上执行数据连接建立过程时,消耗了电池电量,并使网络之中的信令的量增加。这可以减少移动设备105和网络115的效率。
[0044]在一种配置中,设备105可以包括用于延迟请求向操作系统的释放的体系结构。该体系结构可以截获来自应用的针对网络接入的请求。在截获该请求之后,该体系结构可以阻止或者延迟该请求到达操作系统的TCP/IP栈。TCP/IP栈可以包括建立在操作系统之中的通信协议,其向操作系统提供用于通过网络发送数据的标准。可以将所截获的请求与从其它应用接收的其它截获的网络接入请求进行聚合。可以将所聚合的请求绑定在一起,并释放成单一的网络接入请求。在另一个示例中,可以在发生特定的事件(例如,移动设备变得活跃)之后,释放所聚合的请求。在一种配置中,当设备105处于非活动模式时,可以使用与所述截获、保持和聚合有关的上面所描述的体系结构。
[0045]图2示出了移动设备105-a的体系结构200的一个示例,其中移动设备105_a可以是图1的移动设备105的示例。设备105-a的体系结构200可以包括连接引擎225。连接引擎225可以管理:在设备105-a上的应用层220中执行的应用何时可以接入网络(例如,图1的网络115)。应用层220可以包括:能够执行以便提供各种功能,和使用无线单元245的无线装置250-a中的一个或多个与外部网络(例如,网络115)进行通信的应用。
[0046]在一种配置中,连接引擎225可以执行封装器230。在一个示例中,封装器230可以截获源自于应用层220中的应用的针对网络接入的系统调用。封装器230可以保持该请求,以阻止到达在设备105-a上执行的操作系统235。此外,封装器230还可以将截获的系统调用与从其它应用截获的其它系统调用进行聚合。封装器230可以保持所聚合的系统调用,以阻止到达操作系统235的套接字层240。当针对网络接入的系统调用到达套接字层240时,可以发起用于使用无线装置250-a中的一个或多个来建立通信信道的处理。套接字层240可以对该请求进行处理,并通知特定的无线装置开始连接建立过程,以便在发起该请求的应用和网络115之间建立连接。例如,套接字层240可以发出调用(或请求),以在特定的应用和无线装置(例如,无线装置1250-a-l)之间建立绑定。无线装置1250-a-l可以开始向网络115发送信号,以便通过建立控制信道来开始连接建立过程,其中该控制信道可以是图1中的控制信道110-a-l的示例。
[0047]当将聚合的请求一起释放给套接字层240时,套接字层函数可以单一地发起一次,在发送这些请求的应用和特定的无线装置250-a之间建立连接,而不是在应用每一次提供针对网络接入的系统调用时,都发起该建立过程。随后,所选定的无线装置可以开始发送网络信令,以建立与网络115和发出这些请求的应用的数据连接。
[0048]因此,设备体系结构200提供了在设备105-a上执行的应用接入网络的系统调用的聚合。这种聚合可以用于通过将大量的系统调用作为一个绑定向套接字层235释放,来减少电池消耗和网络信令。
[0049]图3示出了移动设备105-b的框图300,其中移动设备105_b实现网络接入请求的保持和聚合。移动设备105-b可以是图1或者图2中的设备105的一个例子。移动设备105-b可以包括处理器360、存储器355、应用层220、封装器230、连接引擎225、操作系统235和无线单元245,所有这些部件都耦接到使用通信总线314进行通信。存储器355可以存储应用层220、封装器230和操作系统235。处理器360可以包括连接引擎225。连接引擎225可以实现成用于执行本申请所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑器件、分离门或晶体管逻辑器件、分离硬件部件或者其任意组合。连接引擎225可以包括:用于对来自移动设备上的应用的请求进行截获的模块;用于保持该请求以阻止到达该移动设备上的操作系统的模块;用于在检测到触发事件之后,向操作系统释放该请求的模块。此外,连接引擎225还可以包括:用于将所述请求与其它截获的请求进行聚合,以执行移动设备105的通信的模块。连接引擎225还可以包括:用于执行图2、3或者图4的封装器230的模块。所执行的封装器可以对来自应用的请求进行截获。此外,引擎225还可以包括:用于将所述应用识别为对来自其的请求进行保持的应用类型的模块。此外,连接引擎225还可以包括:用于将所述应用识别为紧急应用或者非紧急应用的模块;用于只对来自非紧急应用的请求进行保持的模块。应当注意的是,设备105-b仅仅只是一种实现,其它实现也是可行的。
[0050]在一个方面,处理器360包括中央处理单元(CPU)、处理器、门阵列、硬件逻辑、存储器元件和/或执行软件的硬件中的至少一个。处理器360用于控制设备105-b的操作,使得可以保持由在应用层220执行的应用所发起的针对网络接入的系统调用,以阻止到达操作系统235,并将该系统调用与其它系统调用进行聚合。在一种实现中,处理器360可以执行计算机可读指令,其中这些指令与执行多个功能中的任意一个有关。例如,处理器360可以用于分析从设备105-b接收或传输的信息,以实现针对网络接入的请求的截获和聚合。在另一个方面,处理器360可以用于生成由存储器355、无线单元245、应用层220、封装器230、操作系统235和/或连接引擎225使用的信息,以便实现对来自多个应用的针对网络接入的系统调用进行聚合。
[0051]无线单元245可以包括执行软件的硬件和/或处理器,其中该软件可以提供用于使设备105-b使用多个信道110-a与多个外部实体(例如,外部通信网络)进行交互的多个无线装置/接口。例如,无线单元245可以提供无线装置/接口,以便使用蜂窝、WiF1、蓝牙或者任何其它技术进行通信,从而使用信道110-a与通信网络进行通信。
[0052]应用层220可以包括执行软件的硬件和/或处理器,其中该软件可以存储和/或执行设备105-b上的一个或多个应用。在一种实现中,应用层220可以允许应用发起网络互连功能调用来请求网络互连服务,例如,请求连接到无线装置/接口以便与外部网络或系统进行通信。
[0053]操作系统235可以包括套接字层。套接字层可以包括执行软件的硬件和/或处理器,其中该软件可以实现套接字层函数。在一种实现中,这些套接字层函数可以包括诸如Connect O、BindO和SetsockoptO之类的函数。ConnectO函数用于在应用和特定的无线装置/接口之间建立连接。例如,可以从无线单元245所提供的多个候选无线装置中选择该特定的无线装置/接口。在一个方面,套接字层可以执行各种套接字层函数或命令。
[0054]连接引擎225可以包括执行软件的硬件和/或处理器,其中该软件可以执行封装器230,以使该封装器截获来自在移动设备105-b上执行的应用的网络接入请求。此外,封装器230还可以保持所截获的请求,以阻止到达操作系统235。此外,封装器230可以将所截获的请求与其它截获的请求进行聚合。当发生触发事件(例如,移动设备105-b进入活动模式)时,可以将所聚合的请求释放给操作系统的套接字层。
[0055]连接引擎225可以使封装器230以多种方式来捕获、保持和聚合针对网络接入的请求。例如,当设备105-b处于后台模式时,连接引擎225 (通过封装器230)可以截获来自于在设备105-a上执行的多个应用的多个请求。可以将所截获的请求聚合在一起,并进行保持,直到发生某个触发事件为止。例如,当移动设备105-b进入活动模式时,可以释放请求。在一种配置中,可以将当前保持的所聚合的请求进行一起释放。例如,可以将聚合的请求绑定在一起,并作为单一系统调用一起释放给套接字层。套接字层可以发起用于建立通信信道以实现与网络115的数据连接的过程。
[0056]存储器355可以包括RAM、ROM、EEPROM或者用于允许设备105_b存储和获取信息的任何其它类型的存储器设备。在一种实现中,存储器355可以存储由处理器360执行的计算机可读指令。此外,存储器355还可以存储多种其它类型的数据中的任何数据,其包括由处理器360、无线单元245、应用层220、封装器230、操作系统235和/或连接引擎225中的任意一个所生成的数据。存储器355可以包括多种不同的配置,其包括配置成:随机存取存储器、电池供电式存储器、硬盘、磁带等。此外,还可以在存储器355上实现诸如压缩和自动备份之类的各种特征。
[0057]在各种实现中,设备105-b可以包括计算机程序产品,其具有存储或体现在非临时性计算机可读介质上的一个或多个程序指令(“指令”)或“代码”集。当这些代码由至少一个处理器(例如,处理器360和/或连接引擎225)执行时,其执行可以使得处理器360和/或连接引擎225控制设备105-b,来提供本申请所描述的聚合体系结构的功能。例如,非临时性计算机可读介质可以是软盘、CDR0M、存储卡、闪存器件、RAM、ROM或者与设备105_b具有接口的任何其它类型的存储器设备或计算机可读介质。在另一个方面,可以将这些代码集从外部设备或通信网络资源中下载到设备105-b。当这些代码集被执行时,用于提供本申请所描述的系统调用聚合体系结构的方面。
[0058]图4示出了移动设备105-c上的体系结构的示例框图400,其中移动设备105_c可用于如上所述地对网络接入的请求进行截获和聚合。移动设备105-c可以是图1、2或者3中的移动设备105的示例。
[0059]如图所示,虽然在应用处理器490和调制解调器处理器495之间划分这些模块,但也可以与图4的示例相比,对各个功能进行不同地组织。应用层220可以与应用连接引擎(APP CnE) 475和套接字层240进行交互。应用连接引擎475可以与调制解调器连接引擎(调制解调器CnE) 485进行通信。该调制解调器连接引擎可以对诸如无线单元245和其中的多个无线装置250-a之类的通信资源进行管理。可以在应用层220和操作系统的套接字层240之间的应用处理器490中执行封装器230。封装器230可以捕获穿过应用层220和套接字层240之间的数据。例如,封装器230可以放置在应用220和套接字层240之间,以便对从应用层220发送的针对于套接字层240的系统调用进行截获。在一种配置中,封装器230可以在设备105-c不活动时段期间,截获来自于应用层220的系统调用,封装器可以在向套接字层240释放该系统调用之前,保持所截获的调用,直到发生触发事件为止。该系统调用可以是用于使用无线单元245中的无线装置250来建立通信信道的请求。
[0060]在另一个示例中,封装器230可以对在设备105-c不活动时段期间从应用层220截获的系统调用进行聚合。在向套接字层240和最终的无线单元245释放所聚合的系统调用,以进行操作/传输之前,封装器230可以保持所截获的聚合的调用,直到发生特定的事件为止。
[0061]在一种配置中,封装器230是应用层220处的应用不可见的,所以这些应用不了解其请求被阻止到达套接字层240。封装器230可以是单独的软件组件,也可以并入到诸如连接引擎225或者应用连接引擎475之类的另一个组件之中。
[0062]图5示出了用于多个应用(例如,第一应用和第二应用)的时序图500。这些应用可以位于移动设备105的应用层220之中。时序图500可以是图2或图3的连接引擎225的实现的结果。在一种配置中,可以在时间h,从第一应用发送第一请求505-a-l。第一请求505-a-l可以是ConnectO系统调用。可以对第一请求505_a_l进行保持,以阻止到达在该移动设备上执行的操作系统235。例如,可以对第一请求进行保持,以阻止到达操作系统的TCP/IP栈。可以将保持该请求的时间表示为Η”可以在时间t2,向操作系统235释放第一请求505-a-l。
[0063]在一个示例中,可以在时间&,从第二应用发送第二请求505-a_2。时间&可以在时间h之后。第二请求505-a-2不能可以是ConnectO系统调用。可以在表示为H1的时间段,对第二请求505-a-2进行保持,以阻止到达操作系统235。例如,也可以对第二请求进行保持,以阻止到达操作系统的TCP/IP栈。可以在时间t2,释放第一请求505-a-2。结果,可以将第一请求505-a-l和第二请求505-a-2 —起释放,或者同时释放(即,在时间t2)。时间段H1可以小于时间段Htlt5换言之,与第一请求505-a-l相比,可以对第二请求505_a_2保持更短的时间。
[0064]在一种配置中,在时间段Htl期间,当在时间&处截获了第二请求505-a_2时,可以将第一请求与第二请求505-a-2进行聚合。这些请求的聚合允许在基本相同的时间(即,时间七2),对这两个请求进行释放。因此,时序图500示出了:可以对在不同的时间Uc^Pt1)发送的请求保持不同的时间段(Htl和H1),随后在相同的时间(t2)进行释放。
[0065]图6示出了可以在移动设备105-d上实现的聚合体系结构的示例。移动设备105-d可以是图1、2、3和4中的设备105的一个例子。如上所述,设备105-d可以包括应用层220-a、封装器230-b和操作系统235。操作系统235可以包括套接字层240。图2或图3的连接引擎225可以执行指令以运行封装器230-b软件。在一种配置中,设备105-d可以处于后台模式中。例如,当设备105-d的屏幕或者显示器关闭时,当麦克风、扬声器或设备105-d的其它音频输出关闭时,当设备105-d中的全球定位系统(GPS)装置是静止的时,当该设备的电池电平降到低于某个门限电平时等,移动设备105-d可以认作是处于后台模式中。
[0066]在一个示例中,在应用层220-a执行的多个应用605_a可以发送针对网络接入的系统调用505-a (例如,ConnectO系统调用)。可以在不同的时间从每一个应用发送系统调用505-a。封装器230-b可以捕获这些请求,对其进行保持以阻止到达操作系统235。具体而言,可以对这些调用进行保持,以阻止到达操作系统235的套接字层240。在一种配置中,聚合模块610可以对所截获的系统调用505-a进行聚合。可以从封装器230_a_l将聚合的请求一起(或者基本相同的时间)释放给操作系统235的套接字层240。在接收到聚合的请求之后,套接字层240可以转到与网络115建立连接。该过程可以包括:在移动设备105-d和网络115之间发送信令消息,以建立控制信道110-a-l。
[0067]因此,对网络接入请求的所述截获、保持和聚合,可以减少移动设备105-d的功耗,这是由于套接字层240不需要在不同的时间执行多个系统调用。相反,将多个请求绑定在一起,并在几乎相同的时间释放给套接字层240。此外,请求的这种聚合可以减少与网络115的连接建立过程的频率,并因此减少网络流量。
[0068]可以选择性地执行对来自应用605-a的请求的保持和聚合(即,以不干扰用户的方式来实现)。可以使用多种因素来确定何时对来自应用605-a的用于建立通信信道的请求进行保持和聚合。例如,可以基于移动设备105-d的某些特性(例如,屏幕关闭、音频输出关闭等),做出对请求进行截获的决定。当无线装置没有负载时,当移动设备105-d没有在使用时(无电话呼叫、音频流等),仅仅针对已知能够对延迟进行处理的应用,才实现对请求进行保持。可以基于用户是否预订一个应用所提供的服务,来实现对来自该应用的系统调用的截获和保持。如果用户预订了该服务,则不阻止来自该应用的请求到达操作系统。相反,可以允许来自该基于预订的应用的请求,立即传送到套接字层。在一个示例中,可以对在移动设备105-d上执行的应用进行分类。例如,可以将第一应用605-a-l分类成非紧急应用,将第二应用605-a-2分类成紧急应用。非紧急应用可以是具有某种延迟容忍度的应用。换言之,可以对来自于非紧急应用的用于建立通信信道的系统调用进行延迟。但是,紧急应用可以是具有很小的延迟容忍度或者不具有延迟容忍度的应用。紧急应用的示例可以包括,但不限于:儿童跟踪应用、基于紧急的应用、基于预订的应用等。在一种配置中,可以针对源自于非紧急应用的请求,发生请求的保持和聚合。不对从紧急应用发送的请求进行保持(或者聚合),而是直接转给操作系统的套接字层。此外,还可以使用上面因素的组合或者其它因素,来实现所述保持和聚合。
[0069]此外,可以使用多种因素来确定何时释放聚合的请求,准许应用连接。例如,如果存在用于建立数据连接建立过程的触发(例如,从紧急应用(例如,不能够延迟的紧急性应用)接收到系统调用),则可以将保持的请求释放给套接字层240,使得可以结合该紧急性应用来建立通信信道,减少在后台状态和连接状态之间转换的次数。另一个示例在于:当作为缺省激活或者选择了更多期望的无线装置(例如,广域网(WLAN)无线装置)时,可以释放聚合的请求。此外,如果无线信道非常良好的话(例如,高信号强度、SNR或者其它期望的性能度量),则也可以对请求进行释放。此外,还可以如移动设备105-d所预先确定的或者所选择性确定的,对请求进行定期地释放。另一种用于释放请求的启发可以是:当用户接近该设备(在他/她打开屏幕之前)时,以便无痕迹地操作。在该示例中,加速计可以检测到用户抓住了电话,或者用户邻近性传感器可以指示该用户正在靠近。在另一个方面,当使用电池运行时,只要屏幕解锁(例如,在正确地输入PIN之后),就尽可能快地对请求进行释放。在该方面,当按下随机键时(设备105-d处于钱包或者口袋中),不对请求进行释放。
[0070]在一个示例中,使保持的请求被释放的触发事件可以是定时器的期满。该事件还可以是显示器的状态改变。例如,显示器可以从“关闭”状态改变到“打开”状态。麦克风的状态改变(关到开)也可以是触发事件。此外,GPS传感器的状态改变也可以是触发事件。例如,当传感器检测到移动设备的移动时,其可以改变状态。用于释放请求的其它触发事件可以包括:通用串行总线端口正在使用的指示或者音频设备连接到该设备的指示。此外,视频设备连接到移动设备的指示也可以服务成用于向该移动设备的操作系统释放保持的请求的触发事件。此外,到某个网络的连接是可用的指示,可以触发请求的释放。例如,连接到W1-Fi类型网络的指示,可以使请求被释放。类似地,到蜂窝类型的网络的无线连接已经打开的指示,也可以触发请求向该设备的操作系统的释放。在另一个方面,可以根据上面因素或者其它因素的某种组合,对请求进行释放。虽然前面的描述是针对于API体系结构的,但这些概念也可以等同地应用于硬件、固件或者硬件和软件的任意组合。
[0071]在一种配置中,应用可以与定时器相关联。在该定时器的期满之前的时间段可以指示相关联的应用的容忍水平。例如,不接收容忍的定时器,可以称为“硬定时器”。硬定时器可以是旨在以相对固定的时间点期满的定时器。相反,接收某个容忍值的定时器可以导致“软定时器”。软定时器可以在预期的期满时间期满,但其还准许在指定的容忍范围之内期满。举例而言,诸如电子邮件更新服务之类的某些应用,可能不需要连接请求在明确的、固定时间发生。因此,可以给予针对这种应用的定时器较宽的容忍度,生成软定时器并与这种应用进行关联。相反,股票交易员所使用的股票软件需要按照固定的时间进行一致的更新,以确保股票行情的准确性。这种应用接收很小的宽容或者根本没有宽容,因此其与硬定时器相关联。
[0072]在一个示例中,定时器(例如,软定时器或硬定时器中的一个)可能会期满。一旦确定了期满时间,例如,图2或图3的连接引擎225可以判断该期满时间是否落入在各个应用的任何软定时器容忍度之内。对于容忍度落在期满时间之内的所有这些软定时器来说,连接引擎可以执行指令,以强制这些定时器过早地期满。可以将截获的来自于其定时器已期满的应用的网络接入请求,释放给移动设备的操作系统。在一些配置中,网络连接可以保持打开,直到定时器已期满的每一个应用都完成其必需的通信活动为止。由于在定时器期满时进行通信请求,因此作为这些应用对于通信系统共享使用的结果,获得了更高效的资源管理。[0073]如上所述,可以确定用于指示应当对请求进行释放的频繁程度的时间间隔和刷新速率。可以对时间间隔进行确定,以便维持用于执行防火墙和NAT功能的中间盒的状态。可以通过应用发出保持活动消息或者连续的更短的连接请求,来维持中间盒的状态。在一种配置中,网络可以提供关于最小刷新速率的信息,以维持移动设备上的中间盒中的状态。可以为UDP对TCP连接,提供刷新速率。网络可以基于由于保持活动/重新连接消息的量所造成的无线负载,来调整中间盒中的刷新速率。例如,如果保持活动消息的数量高于某个门限,那么可以在中间盒中对该状态维持更长的时间周期,可以减慢针对该移动设备的刷新速率。该时间间隔(或者刷新速率)可以小于有状态中间盒中的超时值。结果,移动设备可以根据网络所指示的刷新速率(或时间间隔),打开上行链路的通道(即,对请求进行释放)。当设备没有处于后台模式时,可以打开该通道,而当移动设备处于后台模式时,关闭该通道。
[0074]图7是示出方法700的一种示例的流程图,其中方法700用于保持针对网络接入的请求。为了清楚说明起见,下面参照图1、2、3或4中所示出的移动设备105来描述方法700。在一种实现中,处理器360可以执行一个或多个代码集,来控制设备105的功能单元执行下面所描述的功能。在一种配置中,当设备105处于后台模式时,可以实现下面所描述的方法700。
[0075]在方框705,可以对来自移动设备105上的应用的请求进行截获。该请求可以是用于执行该移动设备的通信(例如,为移动设备105建立通信信道)的请求。该请求可以是从移动设备105的应用层220处执行的应用发送的。在一个示例中,该请求可以是用于发起数据连接建立过程,以使该应用与外部网络(例如,网络115)进行交互的请求。例如,该请求可以是针对移动设备105的操作系统235的套接字层240的系统调用。
[0076]在方框710,可以对该请求进行保持,以阻止到达在移动设备105上执行的操作系统235。例如,可以对该请求进行保持,以阻止到达操作系统235的套接字层240。在一种配置中,封装器230可以对该请求进行截获和保持。
[0077]在方框715,在检测到触发事件之后,可以将该请求释放给操作系统。例如,设备105可以进入活动模式,如上所述。
[0078]因此,方法700可以提供对在移动设备105的应用层220处执行的应用所提交的网络接入请求的截获和保持。应当注意的是,方法700仅仅是一种实现,可以对方法700的操作进行重新排列或者修改,使得也可以获得其它实现。
[0079]图8是示出方法800的一种示例的流程图,其中方法800用于截获在移动设备上执行的非紧急应用的针对网络接入的请求。为了清楚说明起见,下面参照图1、2、3或4中所不出的设备105来描述方法800。在一种实现中,处理器360可以执行一个或多个代码集,来控制设备105的功能单元执行下面所描述的功能。
[0080]在方框805,可以对针对网络接入的请求进行截获。该请求可以是从移动设备105的应用层220处执行的应用发送的。在一个示例中,该请求可以是用于与外部网络(例如,网络115)建立通信信道的请求。该请求可以是针对设备105的操作系统235的套接字层240的系统调用。在接收到该请求之后,套接字层240可以发起用于建立该通信信道的过程,并当该信道被建立时,向该应用提供回调函数。
[0081]在方框810,判断设备105是否处于后台模式。例如,可以判断设备105是否关机、处于睡眠模式等。此外,例如,如果设备105的显示器是不活动的,音频输出是不活动的等,则确定设备105处于后台模式。如果确定设备105-a是不活动的,则可以在方框815处进行第二判断,判断发起该系统调用的应用是否是非紧急应用。紧急应用可以是具有网络接入的优先级的紧急应用、基于预订的应用、具有延迟的低容忍度的应用等。
[0082]如果确定设备105是活动的,或者确定该应用是紧急应用,则可以将该请求释放给操作系统235的套接字层240。换言之,可以释放该请求,以允许套接字层发起用于与网络115建立通信信道的过程。如果确定该设备处于后台模式,则将该应用分类成非紧急应用,在方框820,可以对该请求进行保持,以阻止到达操作系统,因此对用于建立通信信道的过程的发起进行延迟。
[0083]在方框825,可以将该请求与其它截获的请求进行聚合。这些其它请求可以是在移动设备105上执行的其它应用所发起的。在方框830。判断是否检测到触发事件,如上所述。如果确定没有检测到触发事件,则方法800可以返回到继续对截获的针对网络接入的请求进行聚合。但是,如果确定检测到触发事件,则在方框835,可以将聚合的请求释放给操作系统240的套接字层240。换言之,可以对来自多个应用的系统调用进行保持和绑定在一起,随后作为单一系统调用释放给套接字层240。
[0084]因此,方法800可以提供对来自在移动设备105上执行的非紧急应用的网络接入请求进行截获、保持和聚合。通过对请求进行保持和聚合,可以将多个系统调用绑定在一起,作为单一系统调用进行释放。由于可以减少用于发起建立通信信道的过程的系统调用的量,因此这可以导致移动设备105的电池电量节省,以及网络信令的减少。应当注意的是,方法800仅仅是一种实现,可以对方法800的操作进行重新排列或者修改,使得也可以获得其它实现。
[0085]图9是示出方法900的一种配置的流程图,其中方法900用于对在移动设备上执行的多个应用的针对网络接入的请求进行截获。为了清楚说明起见,下面参照图1、2、3或4中所不出的设备105来描述方法900。在一种实现中,处理器360可以执行一个或多个代码集,来控制设备105的功能单元执行下面所描述的功能。
[0086]在方框905,在第一时间,对来自第一应用的针对网络接入的第一请求进行截获。在一个示例中,在方框910,在第二时间,对来自第二应用的第二请求进行截获。第二时间可以与第一时间不相同。在方框915,在第三时间,对来自第三应用的第三请求进行截获。在一种配置中,第三时间可以是与第一时间和第二时间不相同的时间。所截获的请求可以是用于建立通信信道以实现网络接入的系统调用。这些应用可以是在移动设备105上执行的。
[0087]当截获了请求时,在方框920,可以判断移动设备105是否处于后台模式。如果确定设备105处于后台模式,则在方框925、930和935,可以对这些请求进行保持,以阻止到达操作系统。如果设备105处于活动模式,则在方框950,将这些请求释放给移动设备105上的操作系统235的套接字层240。
[0088]在一种配置中,在方框940,可以将第一请求、第二请求和第三请求进行聚合或者绑定在一起。在方框945,可以判断是否发生了触发事件。例如,可以判断该设备是否进入活动模式、该设备上的显示器是否已激活、该设备是否改变位置、用户是否在该设备附近等。如果没有检测到触发事件,则方法900可以返回到继续监测触发事件的检测。如果检测到触发事件,则在方框950,可以将聚合的请求释放给操作系统的套接字层。在接收到这些请求之后,套接字层可以发起用于与外部网络(例如,网络115)建立通信信道的过程。
[0089]因此,方法900可以提供对来自在移动设备105上执行的多个应用的网络接入请求进行截获、保持和聚合。结果,可以将多个系统调用绑定在一起,作为单一系统调用进行释放。由于可以减少系统调用的量,因此这可以导致移动设备105的电池消耗减少,以及网络信令的减少。应当注意的是,方法900仅仅是一种实现,可以对方法900的操作进行重新排列或者修改,使得也可以获得其它实现。
[0090]图10描述了在用于提高应用连接请求(例如,网络接入请求)之间的同步的某些实施例中,实现的一种可能处理1000。某些实施例(例如,在下面的示例中所讨论的)可以在移动设备上实现处理1000。为了清楚说明起见,下面参照图1、2、3或4中所示出的设备105来描述方法1000。在一种实现中,处理器360或者图2或图3的连接引擎225可以执行一个或多个代码集,来控制设备105的功能单元执行下面所描述的功能。
[0091]该方法开始于方框1005,其中在方框1005,识别第一定时器(例如,软定时器或者硬定时器中的一个)可能会期满。这可以通过中央系统对各个应用的定时器进行轮询来实现。替代地,每一个应用可以各自地监测其自己的定时器,提供关于该定时器期满的通知。
[0092]一旦识别了期满时间,则可以在方框1010,判断是否识别还有其它定时器也将期满。例如,可以判断第一定时器的期满时间是否落入任何软定时器的容忍范围之内。对于其容忍度落入在该期满时间之内的所有这些软定时器来说,在方框1015,可以强制这些另外的定时器过早地期满。在方框1020,可以将用于与期满的定时器相关联的应用的数据进行同步。例如,可以通过形成连接,向其定时器已期满的应用提供信道接入。在一些实施例中,该连接可以随后保持打开,直到其定时器已期满的每一个应用都完成其必须的通信活动为止。由于通信请求是在定时器期满时进行的,因此作为这些应用对于通信系统共享使用的结果,获得了更加高效的资源管理。可以通过再次在方框1005等待定时器期满来无限地执行方法1000,或者该方法可以结束。
[0093]该定时器或者最初在方框1005处按照其预期的时间期满的定时器,可以称为“主定时器”,或者在某些实施例中可互换地称为“触发事件”。也就是说,这些定时器基于其各自的容忍度,指示其它定时器(“软定时器”)何时期满。因此,软定时器或硬定时器可以服务成主定时器。但是,只有软定时器才受到主定时器的影响(这是由于只有软定时器才具有某种容忍度)。
[0094]图11示出了针对三个应用(Appl、App2和App3)中的各应用的一种可能的连接请求序列。这些应用可以运行在诸如图1、2、3或4的移动设备105之类的移动设备上。具体而言,图11表示用于基于来自各个应用的通信请求,形成连接的技术。在该示例中,连接请求是没有协调的。因此,每一个应用按照与其它应用未协调的时间间隔,进行请求连接。这种缺乏协调导致移动设备的资源的不高效使用,这是由于这些应用忽略了对连接进行共享的机会。通过时间上的各点处的垂直箭头来表示定时器期满,相应的请求时段用矩形来表示。每一个连接时段使用具有30秒宽度的请求时段矩形的窗来表示(应当将其认识为相当任意的持续时间,每一个连接可以具有更小或者更长的持续时间)。该宽度仅仅是用于说明目的,在实际的设备中可以给出任意的宽度。图11以及下面的附图的数字范围,只是被选择用于解释目的。不应必须地将这些附图解释成表示任何系统或实施例的实际实现。
[0095]在图11中,Appl可以每5分钟发起一次通信请求(在时间1、6、11、16等处的连接)。类似地,App2可以每5分钟发起一次连接请求,但与Appl偏移I分钟。也就是说,App2的请求与Appl的请求共享相同的周期,但不具有相同的相位。最后,App3可以每10分钟执行一次连接,其可以与Appl偏移4分钟。Appl、App2和App3的异步连接请求导致电池功率和通信带宽的不高效使用,这是由于这些连接是不断地提出和降低。在该示例中,在时间6和时间22之间,发生了十四次与通信系统的单独连接(其需要该移动设备的通信元件的再次激活)。
[0096]所给出的实施例的某些方面预期提供一种系统,其中该系统可以对连接请求进行协调,使得出现更高效的连接模式。例如,如果移动设备105已经针对一个应用,具有与网络的连接,则移动设备105可以将该相同的连接用于另一个应用,而无需拆除该连接,再形成另一个连接。因此,对应用连接请求之间的时间进行协调以使应用共享连接,可以减少需要形成的连接的数量。这些实施例的某些方面可以包括:当针对在移动设备105上操作的平台来实现应用时,应用开发者可以使用的程序模块。在这些实施例的某些中,移动设备105可以向网络发送针对调度的信息。在很多实施例中,在移动设备105上运行的应用可以包括“定时器”,即,配置为确定何时发生特定的“期满时间”的软件、固件或硬件模块。这些定时器可以由图2或图3的连接引擎225来执行。可以将这些定时器实现成连接引擎225的一部分。这些定时器指示应用需要连接的时间或者需要在其期间进行连接的时间时间间隔。需要来自网络的定期更新的应用(或者定期地向网络发送信息的应用),依赖于这些定时器来确定其应当何时请求连接。此外,应用还可以需要非周期性的数据,在定时器所规定的某个时间之内请求数据。一些应用可以在这些应用需要连接的频繁程度方面是灵活的。所给出的实施例的某些方面,预期不同类型或者配置的定时器来适应该灵活性,或者缺少与各应用相关联的灵活性。虽然为了便于讨论,下面的描述将应用指代为具有“定时器”,但本领域普通技术人员应当认识到,应用可以包括多个组件,这些组件自己可以各自与一个或多个定时器相关联。
[0097]图12表示用于图11中的应用的时序图,但这些应用现在结合诸如图10的方法之类的处理,使用软定时器或硬定时器。如上所述,这些应用可以运行在移动设备上,例如图
1、2、3或4的移动设备105。此外,图2或图3的连接引擎225可以实现处理1000以便对调度进行协调。在图12的示例中,应用(Appl、App2和App3)中的每一个包括具有2分钟容忍的软定时器。在缺少诸如处理1000之类的处理时,定时器期满(其如同图11中所发生的)用虚线箭头来指示。实线箭头表示在诸如处理1000之类的处理的管理之下,发生的定时器期满。在一些实施例中,可以在每一个时间间隔(即,在分钟1、2、3等)处执行处理1000。
[0098]例如,在时间7,App2的软定时器将正常地期满。但是,由于Appl的定时器在时间6期满(其位于App2的软定时器的两分钟容忍之内),因此App2的软定时器在时间6过早地期满。类似地,App3的时钟在时间14的期满落入到用于Appl和App2的时钟的两分钟容忍之内。截止时间19,由于用于Appl、App2和App3的时钟中的每一个具有相同的周期或者彼此谐波的周期(分别5分钟、5分钟和10分钟),这些时钟变得精确地同相(随后在时间19,24和29处发生通信请求,其中主时钟对于其它应用不具有影响),其导致通信资源的更高效的使用。通常,如果定时器共享相同的周期,或者如果其周期是彼此的谐波(即,倍数),则该定时器可以阻止干扰其它“主”定时器的期满,仍然彼此地永久同相(当然,如果这些应用的定时器中的任何一个的周期发生改变,则也可以破坏该同步)。因此,与没有应用该处理时的时序图11相比,该示例示出了在分钟6和33之间,发生了 6个而不是14个连接请求。
[0099]再举一个例子,图13描述了应用(Appl、App2和App3)不拥有相同的周期(分别为8分钟、5分钟和10分钟)的另一种情形。如同图11的时序图中,图13中的连接请求反映了大多数应用使用的传统、未协调的技术。这种协调的缺乏导致了移动设备的资源的不高效使用,其导致在分钟7和34之间对移动设备的通信资源再次激活了 12次。
[0100]图13的应用与图11不同,图13的Appl是时间敏感的。希望使用所给出的实施例的某些方面的利益的开发者或者系统设计者,可能生成针对图13的Appl具有很小容忍或者不具有容忍的定时器。因此,可以将硬定时器用于Appl。相比而言,图13的App2和App3不是如此时间敏感的,因此其可以通过软定时器来提供。在图13中,App2和App3是具有2分钟容忍度的给定的软定时器。
[0101]图14描述了应用诸如处理1000之类的处理的效果,但这次是针对于图13的应用。图14的Appl的定时器(由于其是硬定时器)仍然与图13的时序图中的图13的Appl相同。但是,基于App2的定时器在时间12期满,图14的App3永远期满,这是由于App2的期满位于App3的预期期满时间的两分钟之内。随后,App2与Appl在时间25同步,App3与App2在时间30同步。如上所述,这些应用可以运行在图1、2、3或4的移动设备105上。此夕卜,移动设备105可以实现处理1000,以便对调度进行协调。该示例示出了:一个时钟的前一同步(基于Appl, App2位于时间25)如何影响另一个时钟的后续同步(基于App2,App3位于时间30)。由于应用时钟的周期不相同(或者不是谐波),因此这些时钟不能永远地精确同步。与没有应用诸如处理1000之类的处理时的图13的时序图相比,该示例示出了在分钟6和33之间发生了 8次而不是12次连接请求。
[0102]可以基于与主时钟相关联的应用,对主时钟划分优先次序。也就是说,与耗用较少的带宽或电池电量的应用相比,耗用很大量的带宽或电池电量的应用,可能不太适合于共享资源。因此,在某些实施例中,可以对移动设备105进行调整,使得处理1000考虑“主”定时器的行为和/或相应优先级,其中在容忍度位于适当的范围之内的软定时器永久地期满之前,“主”定时器已经期满。举例而言,与容忍度准许其定时器永远期满的应用的带宽需求相比,该处理还考虑其定时器在方框1005处期满(即,主定时器)的每一个应用的带宽需求。如果具有主定时器的应用的累积带宽需求与该应用与其它应用共享信道的使用相比而言减轻,则移动设备105可以采取适当的动作。例如,允许执行其操作的具有主定时器的应用可以进行连接请求。随后,可以使软定时器在适当的时间期满(如果其容忍度准许的话,可以在其预期期满时间之后期满),使得一旦主定时器应用不再耗用过多的带宽,这些应用能充分利用现有的连接。替代地,可以使软定时器的期满延迟,直到进行了使用更少带宽的新连接请求为止,或者直到其容忍结束为止。
[0103]在上面所描述的实施例的某些方面(例如,参照图11和图13所讨论的),将定时器期满示出为发生在通信窗的前沿。但是,某些实施例预期在数据连接的“后沿”执行分析(即,当与节点的通信将要休眠时)。由于打开和关闭连接时涉及成本,因此移动设备105在关闭连接之前可以执行类似于处理1000的处理,以查看是否有任何应用旨在打开连接,故其可以利用现有的连接,而不是关闭当前连接,发起一个新请求。
[0104]使用本申请所公开的技术和结构,移动设备可以使用软件层(为了说明目的,其称为封装器),其中该软件层提供应用程序接口(API ),以捕获来自应用的系统调用,对其进行保持以阻止到达操作系统。可以对捕获的调用进行聚合,使得减少移动设备的频繁苏醒,并在用户没有活动地参与该移动设备的时段期间节省其它通信资源。
[0105]本领域普通技术人员应当理解,信息和信号可以使用多种不同的技术和方法中的任何一种来表示。例如,在贯穿上面的描述中提及的数据、指令、命令、信息、信号、比特、符号和码片可以用电压、电流、电磁波、磁场或粒子、光场或粒子或者其任意组合来表示。
[0106]本领域普通技术人员还应当明白,结合本申请所公开实施例描述的各种示例性的逻辑框、模块、电路和算法步骤可以实现成电子硬件、计算机软件或二者的组合。为了清楚地表示硬件和软件之间的这种可交换性,上面对各种示例性的部件、框、模块、电路和步骤均围绕其功能进行了总体描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本发明的保护范围。
[0107]用于执行本申请所述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件部件或者其任意组合,可以用来实现或执行结合本申请所公开实施例描述的各种示例性的逻辑框、模块和电路。通用处理器可以是微处理器,或者,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,DSP和微处理器的组合、若干微处理器、一个或多个微处理器与DSP内核的结合,或者任何其它此种结构。
[0108]结合本申请所公开实施例描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或两者的组合。软件模块可以位于随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域已知的任何其它形式的存储介质中。可以将一种示例性的存储介质连接至处理器,从而使该处理器能够从该存储介质读取信息,并且可向该存储介质写入信息。或者,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。
[0109]在一个或多个示例性实施例中,所描述的功能可以用硬件、软件、固件或其任意组合的方式来实现。当使用软件实现时,可以将这些功能存储成非临时性计算机可读介质上的一个或多个指令或代码,或者通过非临时性计算机可读介质上的一个或多个指令或代码进行发送。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。举例而言,但非做出限制,这种计算机可读介质可以包括RAM、ROM、EEPR0M、CD-ROM或其它光盘存储器、磁盘存储器或其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。此外,可以将任何连接适当地称作计算机可读介质。举例而言,如果软件是使用同轴电缆、光纤电缆、双绞线、数字用户线路(DSL)或者诸如红外线、无线和微波之类的无线技术从网站、服务器或其它远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所述介质的定义中。如本申请所使用的,磁盘和光盘包括压缩盘(⑶)、激光碟、光碟、数字多用途光碟(DVD)、软盘和蓝光碟,其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。上述的组合也应当包括在计算机可读介质的保护范围之内。
[0110]为使本领域任何普通技术人员能够实现或者使用本发明,上面围绕本申请所公开的示例性实施例进行了描述。对于本领域普通技术人员来说,对这些示例性实施例的各种修改是显而易见的,并且,本申请定义的总体原理也可以在不脱离本发明的精神或保护范围的基础上适用于其它实施例。因此,本发明并不限于本申请所示出的示例性实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。
【权利要求】
1.一种用于移动设备中的无线通信的方法,包括: 对来自所述移动设备上的第一应用的请求进行截获,所述请求是用于执行所述移动设备的通信的请求; 保持所述请求以阻止到达在所述移动设备上执行的操作系统的传输控制协议/因特网协议(TCP/IP)栈;以及 在检测到触发事件之后,向所述操作系统释放所述请求。
2.根据权利要求1所述的方法,其中,在所述移动设备处于后台模式时的时段期间,进行所述保持。
3.根据权利要求1所述的方法,还包括: 将所述请求与其它截获的请求进行聚合,以执行所述移动设备的通信。
4.根据权利要求3所述的方法,其中,对来自所述应用的请求进行截获和对所述其它请求进行截获是在不同的时间发生。
5.根据权利要求1所述的方法,还包括: 执行用于封装器的指令,其中,所执行的封装器执行对来自所述第一应用的所述请求的截获。
6.根据权利要求5所述的方法,其中,所述封装器位于所述移动设备的所述操作系统的应用层和套接字层之间。
7.根据权利要求1所述的方法,还包括: 将所述第一应用识别为对来自其的请求进行保持的应用类型。
8.根据权利要求7所述的方法,还包括: 将应用识别为紧急应用或者非紧急应用;以及 仅对来自非紧急应用的请求进行保持。
9.根据权利要求1所述的方法,其中,所述触发事件包括以下各项中的至少一项:定时器的期满、显示器的状态改变、麦克风的状态改变、扬声器的状态改变、所述移动设备的全球定位系统(GPS)传感器的状态改变、通用串行总线端口正在使用的指示、音频设备连接到所述移动设备的指示、视频设备连接到所述移动设备的指示、到W1-Fi类型网络的连接是可用的指示、或者到蜂窝类型的网络的无线连接是打开的指示。
10.根据权利要求1所述的方法,还包括: 确定所述第一应用的延迟容忍度;以及 基于所确定的延迟容忍度,向所述第一应用提供回调函数,其中,所述回调函数指示所述第一应用连接到所述通信资源。
11.根据权利要求1所述的方法,还包括: 确定与所述第一应用相关联的第一定时器的期满时间; 确定容忍度和与第二应用相关联的第二定时器的期满时间; 基于所述第一定时器的期满时间、所述容忍度和所述第二定时器的期满时间,使所述第二定时器期满;以及 释放来自所述第一应用的请求和来自所述第二应用的截获的请求,以执行所述移动设备的通信。
12.根据权利要求1所述的方法,还包括:从所述应用接收最终期限; 保持所述请求,直到所述最终期限之前为止;以及 在所述最终期限之前,释放所述请求以连接到所述通信资源。
13.根据权利要求1所述的方法,其中,所述请求包括:用于为所述移动设备建立通信信道的系统调用。
14.根据权利要求1所述的方法,还包括: 在检测到所述触发事件之后,向所述操作系统的套接字层释放所述请求。
15.根据权利要求1所述的方法,还包括: 接收与释放所述请求的发生的频繁程度有关的时间间隔的指示。
16.根据权利要求15所述的方法,其中,所述时间间隔小于网络中的有状态因特网协议(IP)中间盒中的超时值。
17.—种配置用于无线通信的移动设备,包括: 处理器; 与所述处理器进行电通信的存储器,所述存储器包括操作系统; 所述处理器包括连接引擎,所述引擎配置为执行指令以进行以下操作: 对来自所述移动设备上的第一应用的请求进行截获,所述请求是用于执行所述移动设备的通信的请求; 保持所述请求以阻止到达在所述移动设备上执行的操作系统的TCP/IP栈;以及 在检测到触发事件之后,向所述操作系统释放所述请求。
18.根据权利要求17所述的移动设备,其中,在所述移动设备处于后台模式时的时段期间,进行所述保持。
19.根据权利要求17所述的移动设备,还包括: 将所述请求与其它截获的请求进行聚合,以执行所述移动设备的通信。
20.根据权利要求19所述的移动设备,其中,对来自所述第一应用的请求进行截获和对所述其它请求进行截获是在不同的时间发生。
21.根据权利要求17所述的移动设备,其中,所述存储器还包括: 封装器,其中,所述连接引擎还配置为:执行所述封装器上的指令,其中,当执行所述指令时,所述封装器配置为对来自所述应用的请求进行截获。
22.根据权利要求21所述的移动设备,其中,所述封装器位于所述移动设备的所述操作系统的应用层和套接字层之间。
23.根据权利要求17所述的移动设备,其中,所述连接引擎还配置为执行指令以便: 将所述第一应用识别为对来自其的请求进行保持的应用类型。
24.根据权利要求23所述的移动设备,其中,所述连接引擎还配置为执行指令以便: 将应用识别为紧急应用或者非紧急应用;以及 仅对来自非紧急应用的请求进行保持。
25.根据权利要求17所述的移动设备,其中,所述触发事件包括以下各项中的至少一项:定时器的期满、显示器的状态改变、麦克风的状态改变、扬声器的状态改变、所述移动设备的全球定位系统(GPS)传感器的状态改变、通用串行总线端口正在使用的指示、音频设备连接到所述移动设备的指示、视频设备连接到所述移动设备的指示、到W1-Fi类型网络的连接是可用的指示、或者到蜂窝类型的网络的无线连接是打开的指示。
26.根据权利要求17所述的移动设备,其中,所述连接引擎还配置为执行指令以便: 确定所述第一应用的延迟容忍度;以及 基于所确定的延迟容忍度,向所述第一应用提供回调函数,其中,所述回调函数指示所述第一应用连接到所述通信资源。
27.根据权利要求17所述的移动设备,其中,所述连接引擎还配置为执行指令以便: 确定与所述第一应用相关联的第一定时器的期满时间; 确定容忍度和与第二应用相关联的第二定时器的期满时间; 基于所述第一定时器的期满时间、所述容忍度和所述第二定时器的期满时间,使所述第二定时器期满;以及 释放来自所述第一应用的请求和来自所述第二应用的截获的请求,以执行所述移动设备的通信。
28.根据权利要求17所述的移动设备,其中,所述连接引擎还配置为执行指令以便: 从所述应用接收最终期限; 保持所述请求,直到所述最终期限之前为止;以及 在所述最终期限之前,释放所述请求以连接到所述通信资源。
29.根据权利要求17所述的移动设备,其中,所述请求包括:用于建立通信信道的系统调用。
30.根据权利要求17所述的移动设备,其中,所述连接引擎还配置为执行指令以便: 在检测到所述触发事件之后,向所述操作系统的套接字层释放所述请求。
31.根据权利要求17所述的移动设备,其中,所述连接引擎还配置为执行指令以便: 接收与释放所述请求的发生的频繁程度有关的时间间隔的指示。
32.根据权利要求31所述的移动设备,其中,所述时间间隔小于网络中的有状态因特网协议(IP)盒中的超时值。
33.一种配置为对来自移动设备上的应用的对网络接入的请求进行管理的装置,包括: 用于对来自所述移动设备上的应用的请求进行截获的模块,所述请求是用于执行所述移动设备的通信的请求; 用于保持所述请求以阻止到达在所述移动设备上执行的操作系统的TCP/IP栈的模块;以及 用于在检测到触发事件之后,向所述操作系统释放所述请求的模块。
34.根据权利要求33所述的装置,其中,在所述移动设备处于后台模式时的时段期间,进行所述保持。
35.根据权利要求33所述的装置,还包括: 用于将所述请求与其它截获的请求进行聚合,以执行所述移动设备的通信的模块。
36.根据权利要求33所述的装置,其中,对来自所述应用的请求进行截获和对所述其它请求进行截获是在不同的时间发生。
37.根据权利要求33所述的装置,还包括: 用于执行封装器的模块,所执行的封装器配置为对来自所述第一应用的所述请求进行截获。
38.根据权利要求37所述的装置,其中,所述封装器位于所述移动设备的所述操作系统的应用层和套接字层之间。
39.根据权利要求33所述的装置,还包括: 用于将所述应用识别为对来自其的请求进行保持的应用类型的模块。
40.根据权利要求39所述的装置,还包括: 用于将应用识别为紧急应用或者非紧急应用的模块;以及 用于仅对来自非紧急应用的请求进行保持的模块。
41.一种配置为对来自移动设备上的应用的对网络接入的请求进行管理的计算机程序产品,所述产品包括非临时性计算机可读介质,所述介质包括: 用于对来自所述移动设备上的应用的请求进行截获的代码,所述请求是用于执行所述移动设备的通信的请求; 用于保持所述请求以阻止到达在所述移动设备上执行的操作系统的TCP/IP栈的代码;以及 用于在检测到触发事件之后, 向所述操作系统释放所述请求的代码。
【文档编号】H04W52/02GK103535084SQ201180070644
【公开日】2014年1月22日 申请日期:2011年11月4日 优先权日:2011年3月18日
【发明者】G·贾雷塔, J·K·孙达拉拉詹, S·戈埃尔, A·梅朗, D·K·萨胡, S·贾殷, A·T·帕亚皮理, T·R·沙阿, L·卡萨恰, D·弗洛尔 申请人:高通股份有限公司