针对无线局域网的数据的卸载

申请号 CN201280019080.4 申请日 2012-04-20 公开(公告)号 CN103503520A 公开(公告)日 2014-01-08
申请人 高通股份有限公司; 发明人 A·梅朗; T·R·沙阿; J·K·孙达拉拉詹;
摘要 描述了用于当第一无线 接口 活动时,截获来自安装在移动设备上的应用的套接字调用的方法、系统和设备。第一无线接口是蜂窝接口。在确定将所截获的套接字调用释放到套接字层之后,激活第二无线接口。第二无线接口是无线局域网(WLAN)接口。将套接字调用释放到套接字层,并使用所激活的第二无线接口进行发送。在实质地完成套接字调用之后,去激活第二无线接口。套接字调用的截获和第二无线接口的激活发生在移动设备处于空闲模式时。
权利要求

1.一种用于无线通信的方法,包括:
当第一无线接口活动时,截获至少一个套接字调用以阻止到达移动设备的套接字层;
在实质地确定将所述至少一个截获的套接字调用释放到所述套接字层之后,激活第二无线接口;以及
将所述至少一个截获的套接字调用释放到所述套接字层。
2.根据权利要求1所述的方法,其中,所述截获发生于所述移动设备处于空闲模式时的时段期间。
3.根据权利要求1所述的方法,还包括:
使用所激活的第二无线接口发送所释放的套接字调用。
4.根据权利要求1所述的方法,其中,激活所述第二无线接口包括:
针对可用的第二无线网络进行扫描,其中所述第二无线网络不同于与所述第一无线接口相关联的第一无线网络;以及
在检测到所述可用的第二无线网络之后,激活所述第二无线接口。
5.根据权利要求1所述的方法,还包括:
在检测到触发事件之后,去激活所述第二无线接口。
6.根据权利要求5所述的方法,其中,检测所述触发事件包括:
确定所述至少一个套接字调用已被实质地执行。
7.根据权利要求5所述的方法,其中,检测所述触发事件包括:
确定定时器已实质到期。
8.根据权利要求1所述的方法,还包括:
在所述第二无线接口处于激活的状态时的时段期间,以及在所述第二无线接口处于去激活的状态时的时段期间,维持所述第一无线接口处于激活的状态。
9.根据权利要求1所述的方法,还包括:
在实质地确定所述第二无线接口被激活之后,去激活所述第一无线接口;以及在实质地确定所述第二无线接口被去激活之后,重新激活所述第一无线接口。
10.根据权利要求1所述的方法,还包括:
禁用关于所述第二无线接口变为活动的通知。
11.根据权利要求1所述的方法,还包括:
识别具有通过所述第一无线接口的持久传输控制协议(TCP)连接的一个或多个应用;
以及
阻止所述一个或多个应用接收关于所述第二无线接口变为活动的通知。
12.根据权利要求11所述的方法,其中,阻止所述一个或多个应用接收所述通知包括:
截获关于所述第二无线接口变为活动的通知;以及
丢弃所述通知。
13.根据权利要求11所述的方法,其中,阻止所述一个或多个应用接收所述通知包括:
丢弃源自于所述一个或多个应用的指向所述第二无线接口的业务。
14.根据权利要求1所述的方法,其中,确定将所述至少一个截获的套接字调用释放到所述套接字层包括:
检测释放触发事件的发生。
15.根据权利要求14所述的方法,其中,所述释放触发事件包括:到无线局域网(WLAN)的连接完成的指示。
16.根据权利要求1所述的方法,其中,确定将所述至少一个截获的套接字调用释放到所述套接字层包括:
将发起所述至少一个套接字调用的应用识别为关键应用。
17.根据权利要求1所述的方法,其中,确定将所述至少一个截获的套接字调用释放到所述套接字层包括:
确定所述至少一个截获的套接字调用具有低于容忍阈值的延迟容忍。
18.根据权利要求1所述的方法,还包括:
执行封装器的指令,其中,所执行的封装器执行对所述至少一个套接字调用的截获。
19.根据权利要求18所述的方法,其中,所述封装器位于所述移动设备中的应用层和操作系统的套接字层之间。
20.一种配置用于无线通信的移动设备,包括:
处理器;
与所述处理器进行电通信的存储器,所述存储器包括操作系统;
所述处理器包括应用连接引擎,所述引擎配置为执行指令以进行以下操作:
当第一无线接口活动时,截获至少一个套接字调用以阻止到达移动设备的套接字层;
在实质地确定将所述至少一个截获的套接字调用释放到所述套接字层之后,激活第二无线接口;以及
将所述至少一个截获的套接字调用释放到所述套接字层。
21.根据权利要求20所述的移动设备,其中,所述截获发生于所述移动设备处于空闲模式时的时段期间。
22.根据权利要求20所述的移动设备,其中,激活所述第二无线接口包括所述应用连接引擎配置为执行指令以进行以下操作:
针对可用的第二无线网络进行扫描,其中所述第二无线网络不同于与所述第一无线接口相关联的第一无线网络;以及
在检测到所述可用的第二无线网络之后,激活所述第二无线接口。
23.根据权利要求20所述的移动设备,其中,所述应用连接引擎还配置为执行指令以进行以下操作:
在检测到触发事件之后,去激活所述第二无线接口。
24.根据权利要求23所述的移动设备,其中,检测所述触发事件包括所述应用连接引擎还配置为执行指令以进行以下操作:
确定所述至少一个套接字调用已被实质地执行。
25.根据权利要求23所述的移动设备,其中,检测所述触发事件包括所述应用连接引擎还配置为执行指令以进行以下操作:
确定定时器已实质到期。
26.根据权利要求20所述的移动设备,其中,所述应用连接引擎还配置为执行指令以进行以下操作:
在所述第二无线接口处于激活的状态时的时段期间,以及在所述第二无线接口处于去激活的状态时的时段期间,维持所述第一无线接口处于激活的状态。
27.根据权利要求20所述的移动设备,其中,所述应用连接引擎还配置为执行指令以进行以下操作:
在实质地确定所述第二无线接口被激活之后,去激活所述第一无线接口;以及在实质地确定所述第二无线接口被去激活之后,重新激活所述第一无线接口。
28.根据权利要求20所述的移动设备,其中,所述应用连接引擎还配置为执行指令以进行以下操作:
禁用关于所述第二无线接口变为活动的通知。
29.根据权利要求20所述的移动设备,其中,所述应用连接引擎还配置为执行指令以进行以下操作:
识别具有通过所述第一无线接口的持久传输控制协议(TCP)连接的一个或多个应用;
以及
阻止所述一个或多个应用接收关于所述第二无线接口变为可用的通知。
30.根据权利要求29所述的移动设备,其中,所述应用连接引擎还配置为执行指令以进行以下操作:
丢弃源自于所述一个或多个应用的指向所述第二无线接口的业务。
31.根据权利要求20所述的移动设备,其中,所述释放触发事件包括到无线局域网(WLAN)的连接完成的指示中的至少一个。
32.根据权利要求20所述的移动设备,其中,确定将所述至少一个截获的套接字调用释放到所述套接字层包括所述应用连接引擎还配置为执行指令以进行以下操作:
将发起所述至少一个套接字调用的应用识别为关键应用。
33.根据权利要求20所述的移动设备,其中,确定将所述至少一个截获的套接字调用释放到所述套接字层包括所述应用连接引擎还配置为执行指令以进行以下操作:
确定所述至少一个截获的套接字调用具有低于容忍阈值的延迟容忍。
34.根据权利要求20所述的移动设备,其中,所述存储器还包括:
封装器,其中,所述应用连接引擎还配置为执行所述封装器上的指令,其中,当所述指令被执行时,所述封装器配置为截获来自所述应用的所述套接字调用。
35.根据权利要求34所述的移动设备,其中,所述封装器位于所述移动设备中的应用层和操作系统的套接字层之间。
36.一种配置为对来自移动设备上的应用的套接字调用进行管理的装置,包括:
用于当第一无线接口在所述操作系统处是活动的时,截获至少一个套接字调用以阻止到达移动设备的套接字层的模
用于在实质地确定将所述至少一个截获的套接字调用释放到所述套接字层之后,激活所述操作系统处的第二无线接口的模块;以及
用于将所述至少一个截获的套接字调用释放到所激活的第二无线接口的所述套接字层的模块。
37.根据权利要求36所述的装置,其中,激活所述第二无线接口还包括:
用于针对可用的第二无线网络进行扫描的模块,其中所述第二无线网络不同于与所述第一无线接口相关联的第一无线网络;以及
在检测到所述可用的第二无线网络之后,用于激活所述第二无线接口的模块。
38.根据权利要求36所述的装置,还包括:
用于在检测到触发事件之后去激活所述第二无线接口的模块。
39.根据权利要求38所述的装置,其中,检测所述触发事件还包括:
用于确定所述至少一个套接字调用已被实质执行的模块。
40.根据权利要求36所述的装置,还包括:
用于禁用关于所述第二无线接口变为活动的通知的模块。
41.一种配置为对来自移动设备上的应用的套接字调用进行管理的计算机程序产品,所述产品包括非暂时性计算机可读介质,所述介质包括:
用于当第一无线接口在所述操作系统处是活动的时,截获至少一个套接字调用以阻止到达移动设备的套接字层的代码;
用于在实质地确定将所述至少一个截获的套接字调用释放到所述套接字层之后,激活所述操作系统处的第二无线接口的代码;以及
用于将所述至少一个截获的套接字调用释放到所激活的第二无线接口的所述套接字层的代码。

说明书全文

针对无线局域网的数据的卸载

[0001] 交叉引用
[0002] 本专利申请要求享受由Arnaud Meylan于2011年4月22日提交的、代理人案卷号为No.111565P1、题目为“POWER EFFICIENT OFFLOADING OF DATA IN STANDBY TO WIRELESS LOCAL AREA NETWORK(WLAN)”的美国专利申请No.61/478,123的优先权,该申请已转让给本申请的受让人,故将其以引用方式明确地并入本文。

背景技术

[0003] 如今,应用或设备小程序可用于操作以向无线设备提供广泛的附加服务和特征。例如,现在无线设备可以下载并启动设备小程序,以执行诸如购物、搜索、定位、驾驶导航之类的增值功能或者一些其它功能。因此,设备小程序的使用可以增加无线设备的功能性和可用性,向设备用户提供最初在设备其本身上不可获得的特征和便利。
[0004] 无线设备可以与一个或多个通信网络连接。例如,无线设备可以包括使用蜂窝、WiFi、蓝牙或其它类型的无线接入技术提供通信的各种无线电装置。因此,在无线设备上执行的应用可以与无线电装置连接以建立通信信道,该信道可以由应用用于与适当的网络进行通信。
[0005] 即使当无线设备处于空闲模式时,应用也可以继续与该设备上的无线电装置进行连接以建立通信信道。当设备处于空闲状态时,蜂窝接口可以提供低功耗速率,而WiFi接口可以允许设备以与蜂窝接口相比更低的功耗速率来传送数据。随着安装在设备上的应用的数量增加,蜂窝数据网络可能因与通信信道的建立相关联的网络信令而变得过载。发明内容
[0006] 描述了用于截获来自安装在移动设备上的应用的套接字调用的方法、系统和设备。在某些实施例中,第一无线接口(例如,蜂窝接口)是活动的。在确定将所截获的套接字调用释放到套接字层之后,激活第二无线接口(例如,无线局域网(WLAN)接口)。将套接字调用释放到套接字层,并使用所激活的第二无线接口进行发送。在实质地完成套接字调用之后,去激活第二无线接口。套接字调用的截获和第二无线接口的激活发生在移动设备处于空闲模式时。
[0007] 在一个实施例中,激活第二无线接口可以包括:针对可用的第二无线网络进行扫描。第二网络可以与第一无线网络不同。第一无线网络可以与第一无线接口相关联。在检测到可用的第二无线网络之后,可以激活第二无线接口。
[0008] 在一个示例中,可以在检测到触发事件之后,去激活第二无线接口。检测所述触发事件可以包括:确定至少一个套接字调用已被实质地执行。在一种配置中,检测所述触发事件可以包括:确定定时器已实质到期。
[0009] 在一个实施例中,可以在第二无线接口处于激活的状态时的时段期间,维持第一无线接口处于激活的状态。还可以在第二无线接口处于去激活的状态时的时段期间,维持第一无线接口处于激活的状态。
[0010] 在一种配置中,可以在实质地确定第二无线接口被激活之后,去激活第一无线接口。可以在实质地确定第二无线接口被去激活之后,重新激活第一无线接口。
[0011] 在一个示例中,可以禁用关于第二无线接口变为活动的通知。例如,可以识别具有通过第一无线接口的持久传输控制协议(TCP)连接的一个或多个应用。可以阻止一个或多个应用接收关于第二无线接口变为活动的通知。阻止所述一个或多个应用接收所述通知包括:截获关于第二无线接口变为活动的通知,并丢弃该通知。阻止所述一个或多个应用接收所述通知还可以包括:丢弃源自于所述一个或多个应用的指向所述第二无线接口的业务。
[0012] 在一个实施例中,确定将所述至少一个截获的套接字调用释放到所述套接字层包括:检测释放触发事件的发生。所述释放触发事件可以包括下列各项中的至少一个:定时器的到期、显示的状态改变、麦克的状态改变、扬声器的状态改变、移动设备的全球定位系统(GPS)传感器的状态改变、通用串行总线端口在使用中的指示、音频设备连接到移动设备的指示、视频设备连接到移动设备的指示、最大数量的套接字调用的接收、或者完成无线局域网(WLAN)的指示。
[0013] 在一个示例中,确定将所述至少一个截获的套接字调用释放到所述套接字层可以包括:将发起所述至少一个套接字调用的应用识别为关键应用。此外,确定将所述至少一个截获的套接字调用释放到所述套接字层还可以包括:确定所述至少一个截获的套接字调用具有低于容忍阈值的延迟容忍。
[0014] 在一种配置中,可以执行封装器的指令。所执行的封装器可以执行对所述至少一个套接字调用的截获。所述封装器可以位于移动设备中的应用层和操作系统的套接字层之间。在一个实施例中,可以将由封装器执行的操作嵌入在套接字层中。
[0015] 还描述了一种配置用于无线通信的移动设备。该设备可以包括处理器以及与所述处理器进行电通信的存储器。所述存储器包括操作系统。所述处理器可以包括应用连接引擎。所述引擎可以配置为执行指令以进行以下操作:当第一无线接口活动时,截获至少一个套接字调用以阻止到达移动设备的套接字层。此外,所述引擎还可以配置为执行指令以进行以下操作:在实质地确定将所述至少一个截获的套接字调用释放到所述套接字层之后,激活第二无线接口。另外,所述引擎还可以配置为执行指令以进行以下操作:将所述至少一个截获的套接字调用释放到所述套接字层,并使用所激活的第二无线接口来发送所释放的套接字调用。
[0016] 还描述了一种配置为对来自移动设备上的应用的套接字调用进行管理的装置。该装置包括:用于当第一无线接口活动时,截获至少一个套接字调用以阻止到达移动设备的套接字层的模。该装置还可以包括:用于在实质地确定将所述至少一个截获的套接字调用释放到所述套接字层之后,激活第二无线接口的模块。该装置还可以包括:用于将所述至少一个截获的套接字调用释放到所述套接字层的模块;以及用于使用所激活的第二无线接口来发送所释放的套接字调用的模块。
[0017] 还描述了一种配置为对来自移动设备上的应用的套接字调用进行管理的计算机程序产品。所述产品可以包括非暂时性计算机可读介质。所述介质可以包括:用于当第一无线接口活动时,截获至少一个套接字调用以阻止到达移动设备的套接字层的代码。所述介质还可以包括:用于在实质地确定将所述至少一个截获的套接字调用释放到所述套接字层之后,激活第二无线接口的代码。另外,所述介质还可以包括:用于将所述至少一个截获的套接字调用释放到所述套接字层的代码;以及,用于使用所激活的第二无线接口来发送所释放的套接字调用的代码。
[0018] 前面已对根据公开内容的示例的特征和技术方面进行了相当广泛的概述。在下文中将描述附加特征。可以容易地将所公开的概念和特定示例作为用于修改或设计其它用于实现与本公开内容相同目的的结构的基础。这种等价结构并不脱离所附权利要求的精神和范围。当结合附图来考虑时,从下面的描述中将能更好地理解被认为是本文所公开概念的特性的特征(就其组织和操作的方法两方面而论)。提供每个附图仅为了说明和描述的目的,而非作为对权利要求的限制的定义。

附图说明

[0019] 通过参照下面的附图,可以实现对于本发明的本质的进一步理解。在附图中,类似的组件或特征具有相同的附图标记。此外,相同类型的各个组件可以通过在附图标记之后加上短线以及用于区分相似组件的第二标记来进行区分。如果在说明书中仅使用了第一附图标记,则该描述可适用于具有相同的第一附图标记的类似组件中的任何一个,而不管第二附图标记。
[0020] 图1示出了网络环境的框图
[0021] 图2示出了描绘移动设备的架构的框图;
[0022] 图3示出了移动设备的架构的另一个示例;
[0023] 图4示出了在确定释放截获的请求之后,实现无线接口的激活的移动设备的框图;
[0024] 图5示出了用于在第一无线接口活动时截获对网络接入的请求,以及在确定释放对操作系统的请求之后,激活第二无线接口的移动设备的体系结构的示例框图:
[0025] 图6示出了套接字调用的同步释放和无线局域网(WLAN)接口的启用的时序图;
[0026] 图7是示出用于接收和保持对网络接入的请求,并在该请求要被释放时激活无线接口的方法的一个示例的流程图
[0027] 图8是示出用于截获对网络接入的请求,并在设备处于空闲模式时建立第二无线接口的方法的一个示例的流程图;
[0028] 图9是示出用于确定使用哪个无线网络来进行通信的方法的一种配置的流程图;
[0029] 图10是示出用于维持持久的传输控制协议(TCP)连接的方法的一种配置的流程图。

具体实施方式

[0030] 描述了用于当第一无线接口活动时,截获从安装在移动设备上的应用发出的请求的方法、系统和设备。在移动设备上执行的操作系统(OS)可以向应用提供第一接口作为活动的。活动接口可以向应用指示可用于在第一网络上建立无线连接。
[0031] 截获的请求可以是用于为移动设备建立通信信道的系统调用或者套接字调用。在本文中,术语“请求”、“系统调用”和“套接字调用”可以交换使用。可以捕获和保持这些请求以阻止其到达在移动设备上执行的OS。例如,请求可以被保持以阻止其到达OS的传输控制协议/因特网协议(TCP/IP)栈。
[0032] 在诸如智能电话、个人数字助理等移动设备中,即使用户没有积极地使用设备(例如,设备处于空闲模式),软件应用也可以继续操作。当设备的某些输入是不可操作的或处于睡眠状态时,移动设备可以处于空闲模式。当用户没有使用设备时,设备可以被认作是处于背景模式(即,空闲模式)。例如,当音频输入(例如,麦克风)关闭时,设备可以处于空闲模式。此外,当视觉输入(例如,设备的显示器)关闭时,可以确定设备处于空闲模式。如下面将描述的,可以使用其它的输入来确定移动设备是否处于空闲模式。
[0033] 即使用户没有正在使用设备,诸如社交网络应用、电子邮件或者其它通信应用、数据馈送等应用(流行的示例包括 等)可以继续发送和接收数据。即使在操作的非活动模式(例如,空闲模式)下,在即使设备表面上未在使用中时,活动时的功耗和尖峰信号仍可能发生自继续操作的应用。这些应用的活动可以使用诸如由外部网络提供的通信资源。这可能导致跨越外部网络的信令的不期望的增加,这会对网络的能造成负面影响。
[0034] 安装在移动设备上的当前操作系统可以向应用提供“始终开启”的蜂窝无线接口。“始终开启”接口可以向应用表示它们可以在任何时刻请求在蜂窝数据网络上建立无线连接(例如,通信信道),即使当该设备处于空闲模式时。“始终开启”接口可能使移动设备因在该设备上运行的应用集所异步触发的频繁的无线连接使蜂窝数据网络过载。
[0035] 当设备处于空闲模式时,用户可以容忍各种应用数据的更新时的延迟。因此,来自各种应用的套接字调用可以被截获并被保持以阻止到达OS或者OS中的套接字层。随后,可以将套接字调用以同步方式释放到OS(或者OS中的套接字层)。由于若干应用可以同步地更新它们的信息,因此套接字调用的同步释放可以允许无线连接的改善的利用。
[0036] 由本系统和方法解决的补充性方式可以包括:使用无线局域网(WLAN)替代蜂窝无线电装置来向移动设备发送数据/接收来自移动设备的数据,以传送针对应用的数据更新。在一些示例中,应用经由OS提供的蜂窝接口跨越蜂窝网络发送/接收数据。根据本系统和方法,当设备处于空闲模式时,应用可以转而在WLAN接口上跨越WLAN发送/接收数据。WLAN接口可以由移动设备上的OS激活并提供给应用。
[0037] 在一些实施例中,当设备处于空闲模式而安装在移动设备上的多个应用请求接入蜂窝网络时,可能出现不必要的大量网络信令。例如,OS可以提供蜂窝接口作为“始终开启”接口。第一应用可以看到激活的蜂窝接口,并发起可以要求在蜂窝网络上建立通信信道的套接字调用。在已发送/接收数据之后,可以中断该信道。第二应用也可以看到“始终开启”蜂窝接口,并且也发起建立用于跨越蜂窝网络发送/接收数据的通信信道的套接字调用。每次建立通信信道时,网络信令的量会增加,使得网络的可用带宽会减少。因此,本系统和方法可以截获当设备处于空闲模式时,用于接入到蜂窝网络的请求。当确定要向OS释放所截获的请求时,可以激活WLAN接口。可以在WLAN接口(而不是蜂窝接口)上发送请求。当已基本执行这些请求时,可以去激活WLAN接口以节省设备的电池功率。
[0038] 下面的描述提供了多个示例,其并非限制权利要求中给出的范围、适用性或配置。在不脱离本公开内容的精神和范围基础上,可以对所讨论的要素的功能和排列进行修改。
各个实施例可以适当地省略、替代或者增加各种过程或组件。例如,所描述的方法可以以与所描述的顺序不同的顺序来执行,并且可以对各个步骤进行增加、省略或者组合。此外,围绕某些实施例所描述的特征可以组合到其它实施例中。
[0039] 现参见图1,框图示出了无线网络环境100的示例。网络环境100可以包括移动设备105和通信网络115。设备105可以使用多个无线信道110-a与网络115进行通信。例如,可以在设备105和网络115之间建立控制信道110-a-1。此外,还可以建立其它类型的信道110-a-2到110-a-n。这些其它类型的信道可以包括数据信道、语音信道等。
[0040] 在操作期间,设备105可以执行应用,该应用可以使用多个无线电装置中的任意一个与网络115进行连接。例如,应用可以发出请求以与网络115中的主机建立通信。在一个示例中,请求可以是诸如套接字层调用之类的网络系统调用。请求可以被发往设备105上的OS的套接字层。传统设备通常允许这些类型的请求直接进入到OS以进行处理。在接收请求之后,传统设备开始进行网络信令处理,以通过数据连接建立过程来建立控制信道110-a-1。当在移动设备105上执行数据连接建立过程时,跨越网络的信令的平会增加,并消耗了电池功率。这会减少网络115和移动设备105的效率。
[0041] 在一种配置中,设备105可以包括用于当第一无线接口活动时,截获并捕获请求以阻止其到达OS的架构。这种架构可以截获来自应用的针对网络接入的请求,诸如针对蜂窝网络接入的请求。在截获请求之后,该架构可以保持该请求以阻止到达OS的TCP/IP栈或者延迟该请求到达OS的TCP/IP栈。TCP/IP栈可以包括可以建立在OS之中的通信协议,用于向OS提供在网络上发送数据的标准。在实质上确定向OS释放请求之后,该架构可以激活第二无线接口。可以将所截获的请求与从其它应用接收的针对网络接入的其它截获的请求进行聚合。可以将所聚合的请求绑在一起,并以同步方式释放到OS中的套接字层。在一个实施例中,可以将聚合的请求以同步方式释放到OS。随后,可以使用第二无线接口来发送这些请求。在一个示例中,可以在发生特定的事件(例如,移动设备变成活动的)之后,释放请求。在一种配置中,当设备105处于空闲模式时,可以使用上面所述的与截获、确定、激活和释放有关的架构。
[0042] 图2示出了移动设备105-a的一个示例200。移动设备105-a可以是图1的移动设备105的示例。在一种配置中,设备105-a可以包括截获模块205、激活模块210、释放模块215和OS220。截获模块205可以截获来自应用的请求,以阻止其到达OS220。可以在第一无线接口被激活且设备105-a处于空闲模式时截获请求。请求可以包括系统接入调用(诸如套接字调用)。可以截获的套接字调用的示例包括connect()、send()、sendto()、gethostbyname()等。connect()套接字调用可以发起由移动设备105-a跨越网络建立通信信道(例如,TCP连接)的尝试。
[0043] 在一个示例中,激活模块210可以确定何时向OS220或者OS220中的套接字层释放所截获的请求。在实质地确定释放请求之后,激活模块210可以激活第二无线接口。例如,激活模块210可以激活WLAN接口。当已激活WLAN接口后,释放模块215可以释放请求。
[0044] 对释放请求的确定可以基于一个或多个因素。在一个实施例中,对释放所截获的请求的确定可以包括:检测定时器的期满,其中该定时器表示请求已被保持或者延迟以阻止到达OS220或者阻止到达OS220中的套接字层的时间长度。还可以在检测到队列中保持的截获的请求的最大数量之后释放请求。在一种配置中,在确定关键应用向OS220发出请求之后释放请求。关键应用可以是具有较小延迟容忍或者没有延迟容忍的应用。因此,源自于这些应用的请求可以具有较低的延迟容忍。关键应用的示例可以包括但不限于:儿童跟踪应用、基于紧急情况的应用、基于预订的应用等。在一种配置中,在从关键应用发送的请求被截获模块205截获之后,该请求可以不被进行保持(或者延迟)以阻止到达OS220,而是直接进到操作系统的套接字层。此外,在被截获之后,可以不使具有低于特定阈值的延迟容忍的请求延迟到达OS220。例如,非关键应用可以发出请求,其中该请求被截获。即使应用是非关键的,特定的请求也可以不具有延迟容忍(例如,对该应用进行关键更新)。因此,可以在截获该请求之后立即向OS220释放该请求。
[0045] 可以使用另外的因素来确定何时释放所截获的请求,并允许应用连接到网络。例如,如果存在建立数据连接建立过程的触发(诸如从关键应用接收到系统调用,该关键应用诸如是不能够进行延迟的紧急应用),则可以将截获的请求释放给OS220,使得可以结合该紧急应用来建立通信信道。在另一个示例中,可以将所截获的请求释放到OS220中的套接字层。如果无线信道的质量满足阈值(例如,高信号强度、SNR或者其它期望的性能度量),则也可以释放请求。可以按照移动设备105-a所预先确定的或者按照移动设备105-a所选择性确定的,周期性地地释放请求。确定释放请求的另一个启发,可以是(在用户打开屏幕之前)当他/她接近该设备时,以便匿名地操作。在该示例中,加速计可以检测到用户抓取设备105-a,或者用户接近传感器可以指示该用户正在接近。在另一个方面,当靠电池运行时,可以在屏幕被解时(例如,在正确地输入PIN之后)确定释放请求。在这个方面,当按下随机的按钮时(例如,设备105-a处于提包或者口袋中),可以不释放请求。
[0046] 在一个示例中,设备105-a的显示器的状态改变可以是确定释放保持的请求的因素。例如,显示器可以从“关闭”状态改变到“开启”状态。此外,麦克风的状态改变(关闭到开启)也可以是确定释放截获的请求的因素。此外,另外的因素可以包括:检测全球定位系统(GPS)传感器的状态改变。例如,传感器可以在检测到移动设备105-a的移动时,改变其状态。用于确定何时释放截获的请求的其它因素可以包括:对通用串行总线端口在使用中的指示或者对音频设备连接到设备105-a的指示。此外,对视频设备连接到移动设备105-a的指示也可以充当向移动设备105-a的OS220释放请求的确定因素。此外,对到某个网络的连接可用的指示可以触发请求的释放。例如,对到Wi-Fi类型网络的连接的指示可以使请求被释放。类似地,对已打开到蜂窝网络的无线连接的指示也可以触发将请求释放到设备105-a的OS220。在另一个方面,可以根据上面因素或其它因素的某种组合来释放请求。虽然前面的描述是关于应用编程接口(API)架构的,但这些概念可以等同地应用于硬件固件或者硬件和软件的任意组合。
[0047] 图3示出了移动设备105-b的架构300的一个示例,其中移动设备105-b可以是图1或图2的移动设备105的示例。设备105-b的架构300可以包括应用连接引擎310。连接引擎310可以管理在设备105-b上的应用层305中执行的应用何时可以接入网络(诸如图1中的网络115)。应用层305可以包括:执行以提供各种功能并且使用无线单元325的无线电装置330-a中的一个或多个来与外部网络(诸如网络115)进行通信的应用。
[0048] 使用本文所公开的技术和结构,移动设备105-b可以使用提供应用程序接口(API)的软件层(出于说明性目的,其称为封装器315)以捕获来自应用的系统调用或套接字调用,并对其进行保持以阻止到达OS220-a。在一种配置中,应用连接引擎310可以执行封装器315。在一个示例中,封装器315可以截获源自于应用层305中的应用的针对网络接入的请求(例如,系统调用、套接字调用等)。在一个实施例中,封装器315可以包括图2的截获模块205。封装器315可以使该请求延迟到达在设备105-b上执行的OS220-a。OS220-a可以向应用提供激活的第一无线接口。封装器315可以将所截获的请求保持在队列中,并阻止它们到达OS220-a。封装器315可以将截获的请求与从另外的应用截获的其它请求进行聚合。封装器315可以保持或者延迟请求以阻止到达操作系统220-a的套接字层320。当针对网络接入的请求到达套接字层320时,可以根据接口发起使用无线电装置330-a中的一个或多个来建立通信信道的过程。例如,第一无线接口可以是蜂窝接口。当套接字调用在蜂窝接口活动时而被释放时,可以发起建立过程以建立与蜂窝网络的无线连接。该建立过程可以包括减少蜂窝网络的可用带宽的信令技术。
[0049] 套接字层320可以对请求进行处理,并通知特定的无线电装置开始连接建立过程,以在发起该请求的应用和网络115之间建立连接。例如,套接字层320可以发出调用(或请求),以在特定的应用和无线电装置(例如,无线电装置1330-a-1)之间建立绑定。无线电装置1330-a-1可以开始向网络115发送信号,以通过建立控制信道(其可以是图1中的控制信道110-a-1的示例)来开始连接建立过程。
[0050] 当实质确定要将请求释放到套接字层320时,OS220-a可以(在释放请求之前)激活第二无线接口。例如,OS220-a可以包括或者使得图2的激活模块210来激活第二无线接口。封装器315可以包括图2的释放模块215,并在得知第二无线接口是活动的之后,封装器315可以将所截获的请求释放到OS220-a的套接字层320。可以通过第二无线接口,使用第二无线网络来向应用发送数据/从应用发送数据。第二无线网络的示例可以包括WLAN。
[0051] 因此,设备架构300提供用于:当第一无线接口活动时,截获接入网络的请求;在确定将请求释放到OS220-a之后,激活第二无线接口;以及将请求释放到OS220-a。第二无线接口的激活可以有助于减少蜂窝网络上的伴随蜂窝接口上的请求的释放的网络信令。
[0052] 图4示出了在确定释放截获的请求之后,实现第二无线接口的激活的移动设备105-c的框图400。移动设备105-c可以是图1、2或者3中的设备105的示例。设备105-c可以包括:存储器405、处理器410、应用层305、封装器315、应用连接引擎310、OS220-b和无线单元325,所有这些部件都使用通信总线415相耦合以进行通信。存储器355可以存储应用层305、封装器315和操作系统220-b。处理器410可以包括应用连接引擎310。连接引擎310可以实现为设计成执行本文中所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程阵列(FPGA)或者其它可编程逻辑器件、分离门或晶体管逻辑器件、分离硬件组件或者其任意组合。连接引擎310可以包括:用于当第一无线接口活动时,截获来自移动设备上的应用的套接字调用的模块;用于保持该套接字调用以阻止到达移动设备上的OS220-b中的套接字层的模块;用于在实质地确定释放套接字调用之后,激活第二无线接口的模块;以及用于将请求释放到OS220-b中的套接字层的模块。此外,连接引擎310可以包括:用于将套接字调用与来自安装在移动设备105上的另外的应用的其它截获的套接字调用进行聚合,并以同步方式将聚合的套接字调用释放到OS220-b中的套接字层的模块。连接引擎310还可以包括:用于执行图3或图4的封装器315的模块。
执行的封装器可以截获来自应用的请求。此外,引擎310可以包括:用于将应用识别为套接字调用是从其发出的应用的类别的模块。此外,连接引擎310可以包括:用于将应用识别为关键应用或者非关键应用的模块,以及用于延迟来自非关键应用的套接字调用,直到第二无线接口被激活的模块。应当注意的是,设备105-c仅是一种实现,并且其它实现是可能的。
[0053] 在一个方面,处理器410包括下列各项中的至少一个:中央处理单元(CPU)、处理器、门阵列、硬件逻辑、存储器元件、和/或执行软件的硬件。处理器410进行操作以控制设备105-c的操作,使得可以对由在应用层305执行的应用所发起的针对网络接入的系统调用进行保持以阻止其到达OS220-b,直到第二无线接口被激活,然后将其释放到OS220-b或者释放到OS220-b中的套接字层。在一种实现中,处理器410可以执行计算机可读指令,其中该计算机可读指令与执行多个功能中的任意一个相关。例如,处理器410可以进行操作以分析从设备105-c接收或传送的信息,以实行对请求的截获和第二无线接口的激活。在另一个方面,处理器410可以进行操作以生成可以由存储器405、无线单元325、应用层305、封装器315、OS220-b和/或应用连接引擎310使用的信息,以在确定将截获的请求释放到OS220-b之后,实行第二无线接口的激活。
[0054] 无线单元325可以包括执行软件的硬件和/或处理器,其可以提供可用于将设备105-c与多个外部实体(诸如使用多个信道110-a的外部通信网络)相连接的多个无线电装置/接口。例如,无线单元325可以提供用以使用蜂窝、WLAN、WiFi、蓝牙或者任何其它技术进行通信的无线电装置/接口,以与使用信道110-a的通信网络进行通信。
[0055] 应用层305可以包括执行软件的硬件和/或处理器,其可以存储和/或执行设备105-c上的一个或多个应用。在一种实现中,应用层305可以允许应用发起网络功能调用以请求网络服务,诸如出于与外部网络或系统进行通信的目的而请求到无线电装置/接口的连接。
[0056] OS220-b可以包括套接字层。套接字层可以包括执行软件的硬件和/或处理器,其可以执行套接字层函数。在一种实现中,套接字层函数可以包括诸如connect()、bind()和setsockopt()之类的函数。connect()函数操作以使用特定的无线电装置/接口在两个主机之间建立连接。例如,可以从由无线单元325提供的多个候选无线电装置中选择特定的无线电装置/接口。在一个方面,套接字层可以执行各种套接字层功能或命令。OS220-b还可以包括多个无线接口420-a到420-n。如先前所描述的,OS220-b可以将各个接口激活/去激活。可以使用所激活的无线接口中的至少一个从/由设备105-c发送/接收数据。无线接口的示例可以包括蜂窝接口、WLAN接口等。
[0057] 应用连接引擎310可以包括执行软件的硬件和/或处理器,其可以执行封装器315,以使该封装器截获来自在移动设备105-c上执行的应用的针对网络接入的请求。封装器315还可以使所截获的请求延迟到达OS220-b。OS220-b可以激活第二无线接口(诸如WLAN接口),并且封装器315可以将所保持的请求释放到OS220-b。
[0058] 连接引擎310可以以各种方式使封装器315捕获和保持针对网络接入的请求。在确定释放请求之后,引擎310还可以使OS220-b激活第二无线接口。在一个示例中,引擎310可以使图2的激活模块210执行对可用的无线网络(诸如WLAN)的扫描。在检测到可用的WLAN之后,激活模块210可以使得使用该WLAN来建立无线连接。当该连接建立时,OS220-b可以激活WLAN接口以提供给应用。可以将所截获的请求释放到OS220-b。可以将请求释放到OS220-b的套接字层。套接字层可以发起过程,以使用WLAN接口,跨越发起请求的应用和远程设备(诸如服务器)之间所建立的无线连接执行通信。
[0059] 存储器405可以包括RAM、ROM、EEPROM或者操作以允许在设备105-c处存储和获取信息的任何其它类型的存储器设备。在一种实现中,存储器405可以存储由处理器410执行的计算机可读指令。存储器405还可以存储任意多种其它类型的数据,其包括由处理器410、无线单元325、应用层305、封装器315、OS220-b和/或应用连接引擎310中的任意一个生成的数据。存储器405可以包括多种不同的配置,其包括随机存取存储器、电池支持存储器、硬盘、磁带等。还可以在存储器405上实现各种特征,诸如压缩和自动备份。
[0060] 在各种实现中,设备105-c可以包括具有存储或体现在非暂时性计算机可读介质上的一个或多个程序指令(“指令”)或“代码”集的计算机程序产品。当代码由至少一个处理器(例如,处理器360和/或应用连接引擎310)执行时,它们的执行可以使处理器410和/或连接引擎310控制设备105-c,以提供本文中所描述的激活架构的功能。例如,非暂时性计算机可读介质可以是软盘、CDROM、存储卡、闪存设备、RAM、ROM或者连接到设备105-c的任何其它类型的存储器设备或计算机可读介质。在另一个方面,可以从外部设备或通信网络资源将代码集下载到设备105-c中。当执行时,代码集操作以提供本文中所描述的系统调用截获和无线接口激活架构的方面。
[0061] 图5示出了用于进行如上面所描述的下列操作的移动设备105-d的架构500的示例框图:在第一无线接口活动时截获针对网络接入的请求,并且在确定将请求释放到OS220之后,激活第二无线接口。移动设备105-d可以是图1、2、3或4的移动设备105的示例。
[0062] 如图所示,在应用处理器590和调制解调器处理器595之间对方框进行了划分,但可以按与图5的示例不同的方式来组织各种功能。应用层305可以与应用连接引擎(App CnE)310和套接字层320进行交互。应用连接引擎310可以与调制解调器连接引擎(调制解调器CnE)585进行通信。调制解调器连接引擎585可以对通信资源(诸如无线单元325以及其中的无线电装置330-a的数量)进行管理。封装器315可以在应用层305和OS220的套接字层320之间的应用处理器590中执行。封装器315可以捕获在应用层305和套接字层320之间传递的数据。例如,封装器315可以放置在应用层305和套接字层320之间,以截获从应用层305发送的去往套接字层320的套接字调用。在一种配置中,当第一无线接口(诸如蜂窝接口)活动时,封装器315可以在设备105-d的非活动的时期期间,截获来自应用层305的套接字调用。封装器315可以保持所截获的调用,直到作出确定要将套接字调用释放到套接字层320。在确定释放调用之后,可以激活第二无线接口(诸如WLAN接口)。套接字调用可以触发请求,以使用无线单元325中的无线电装置330来建立通信信道。
[0063] 在另一个示例中,当蜂窝接口活动时,封装器315可以将在设备105-d的非活动的时期期间从应用层305截获的系统调用聚合。封装器315可以保持所截获的聚合调用,直到WLAN接口被激活。然后,封装器315可以将调用释放到套接字层320。可以从/由设备105-d使用由无线单元325在WLAN上建立的无线连接来发送/接收数据。
[0064] 在一种配置中,封装器315对应用层305处的应用可以是不可见的,因此这些应用未觉察到它们的请求被保持而没有到达套接字层320。封装器315可以是单独的软件组件,或者可以并入到诸如应用连接引擎310或OS220之类的另一个组件中。
[0065] 图6示出了套接字调用的同步释放和WLAN接口的启用的时序图600。应用可以位于移动设备105的应用层305。时序图600可以是图3、4或5的应用连接引擎310的实现结果。在一种配置中,可以从多个应用之中发出多个套接字调用605-a。当第一无线接口活动时,可以捕获套接字调用605-a并从时间t0进行延迟。该接口可以是蜂窝接口。套接字调用605可以是connect()套接字调用。在一个实施例中,可以保持套接字调用605-a,以阻止到达在移动设备上执行的OS220。例如,可以保持这些套接字调用,以阻止到达OS220的TCP/IP栈。可以将套接字调用605-a保持在队列中。
[0066] 在一个示例中,在时间t1之前,可以作出要释放所保持的套接字调用的确定。在时间t1,可以启用第二无线接口。第二无线接口可以是WLAN接口。在实质地确定释放套接字调用605-a之后,可以激活该接口。在时间t2,可以将套接字调用605-a释放到OS220,或者可以将调用605-a释放到OS220中的套接字层。作为结果,移动设备105可以在WLAN接口而不是蜂窝接口上执行套接字调用操作。在一个示例中,在时间t3,可以去激活第二无线接口。作为结果,可以终止与WLAN网络的无线连接。与具有激活的蜂窝接口的空闲设备相比,具有激活的WLAN接口的处于空闲模式的移动设备(诸如图1、2、3、4或5的设备105)可能消耗更多的功率。例如,WLAN接口的寻呼循环可以大约是100ms,而在蜂窝接口上大约为2.5秒。然而,与在蜂窝接口之上相比,数据传输在WLAN接口上通常有更高的功率效率。例如,与用于传送大多数类型的内容的蜂窝接口相比,WLAN接口可以使用少得多的功率。因此,根据本系统和方法,可以调动WLAN接口来执行数据的释放,并随后离线以节省设备的电池功率。当TCP连接被实质关闭时,或者当连接定时器到期时,可以禁用WLAN接口。在一个实施例中,在贯穿上面所描述的步骤之中,蜂窝接口可以继续向应用呈现为可用的。
[0067] 图7是示出用于接收并保持针对网络接入的请求,以及在要释放该请求时激活无线接口的方法700的一个示例的流程图。为了清楚起见,下面参照图1、2、3、4和5中所示的移动设备105来描述方法700。在一种实现中,处理器410和/或应用连接引擎310可以执行一个或多个代码集来控制设备105的功能单元,以执行下面所描述的功能。例如,应用连接引擎310可以执行截获模块205、激活模块210和释放模块215,以实现下面所描述的各种功能。在一种配置中,方法700可以在设备105处于空闲模式时实现。
[0068] 在方框705,当第一无线接口在OS220处是活动的时,可以截获至少一个套接字调用以阻止到达套接字层。在一个示例中,可以包括封装器315的截获模块205可以截获套接字调用。该套接字调用可以是对执行针对移动设备105的通信的请求,诸如建立针对移动设备105的通信信道。可以从在移动设备105的应用层305处执行的应用发送该请求。在一个示例中,套接字调用可以是对发起数据连接建立过程以使应用能与外部网络(诸如网络115)连接的请求。例如,套接字调用可以是针对移动设备105上的OS220的套接字层
320的系统调用。活动的第一无线接口可以是蜂窝接口。由OS220接收的套接字调用(诸如connect()套接字调用)可以使OS220发起建立过程,以在蜂窝网络上建立无线连接。
[0069] 在方框710,在实质确定将所述至少一个截获的套接字调用释放到OS220中的套接字层之后,可以在OS220处激活第二无线接口。在一种配置中,OS220可以包括激活模块210。激活模块210可以确定释放所述至少一个套接字调用,并在该套接字调用的释放之前激活第二无线接口。第二接口可以是WLAN接口。激活第二无线接口可以包括激活模块210扫描信号以确定WLAN是否可用。在检测到可用的WLAN之后,可以在该WLAN上建立无线连接。例如,调制解调器连接引擎585可以执行一个或多个代码集,以便无线单元325发起无线建立过程。该过程可以包括:无线电装置330在WLAN上建立无线连接。在WLAN上建立无线连接之后,激活模块210可以激活WLAN接口,并生成针对应用层305中的应用的指示WLAN接口被激活的通知。
[0070] 在方框715,可以释放所述至少一个截获的套接字调用。在一个实施例中,释放模块215可以在接收到WLAN接口被激活的通知之后释放该套接字调用。可以将套接字调用释放到套接字层。在一种配置中,如先前所描述的,释放模块215可以在发生释放触发事件之后释放该套接字调用。如果释放触发事件发生在WLAN接口被激活之前,则释放模块215可以释放套接字调用,并可以发起建立过程以建立针对蜂窝网络的无线连接。在一个实施例中,蜂窝接口可以保持活动,并对应用可见。
[0071] 因此,方法700可以提供用于:当第一无线接口在处于空闲模式的移动设备105上是活动的时,截获并保持由应用所发出的套接字调用。可以保持请求,直到确定释放该请求。在确定释放请求之后,可以激活第二无线接口。作为结果,可以将请求释放到套接字层,并且可以通过第二无线接口而不是先前活动的第一无线接口来发送/接收数据。应当注意的是,方法700仅是一种实现,并且可以对方法700的操作进行重新排列或以其它方式修改,使得其它实现是可能的。
[0072] 图8是示出用于当设备105处于空闲模式时,截获针对网络接入的请求并建立第二无线接口的方法800的一个示例的流程图。为了清楚起见,下面参照图1、2、3、4或5中所示的移动设备105来描述方法800。在一种实现中,处理器360和/或应用连接引擎310可以执行一个或多个代码集来控制设备105的功能单元,以执行下面所描述的功能。例如,引擎310和/或处理器360可以执行一个或多个代码集,以执行和控制截获模块205、激活模块210和释放模块215的功能。
[0073] 在方框805,截获针对网络接入的请求。该请求可以是从在移动设备105的应用层305处执行的应用发送的。在一个示例中,请求可以是对与外部网络(诸如网络115)建立通信信道的请求。请求可以是对设备105上的OS220的套接字层320的系统调用。在接收到请求之后,套接字层320可以发起用于建立通信信道的过程,并当该信道建立时,向应用提供回调函数。当第一无线接口(诸如蜂窝接口)在OS220处可用时,可以截获该请求。
[0074] 在方框810,可以作出关于设备105是否处于空闲模式的确定。例如,可以作出关于设备105是否掉电、处于睡眠模式等的确定。例如,如果设备105的显示器是非活动的、音频输出是非活动的等,则也可以确定设备105处于空闲模式。如果确定设备105-a是活动的,则在方框815,可以将请求释放到OS220的套接字层320。在方框820,可以与第一无线网络建立无线连接。在方框825,设备105可以使用所建立的无线连接和活动的第一无线接口参与到跨越第一无线网络的通信中。在方框830,在实质结束跨越第一无线网络的通信之后,可以终止与该网络的无线连接。第一无线接口可以是蜂窝接口,并且第一无线网络可以是蜂窝网络。
[0075] 如果确定设备105处于空闲模式,则可以执行扫描以确定第二无线网络是否可用。在方框835,可以与可用的第二无线网络建立无线连接。在方框840,可以在OS220处针对第二无线网络激活第二无线接口。例如,在建立无线连接之后,OS220可以激活接口以允许在应用层305中执行的应用跨越第二无线网络进行通信。在一个实施例中,在方框845,可以将请求释放到OS220的套接字层320。在方框850,设备105可以通过第二无线接口参与到跨越第二无线网络的通信中。该通信可以包括:使用所建立的无线连接和第二接口跨越第二网络发送/接收数据。在方框855,可以终止与第二网络的无线连接,并且可以去激活第二无线接口。在第二无线接口上从应用发出的套接字调用实质完成之后,可以终止无线连接和第二接口。
[0076] 因此,方法800可以提供用于:截获并保持针对网络接入的请求,并在确定将所保持的请求释放到OS220之后激活第二接口。通过当第二接口活动时释放请求,通信可以经由第二接口跨越第二网络执行。可以通过避免多个应用向蜂窝接口释放请求以及在蜂窝网络上发起多个建立过程,来使信令减到最少。应当注意的是,方法800仅是一种实现,可以对方法800的操作进行重新排列或以其它方式修改,使得其它实现是可能的。
[0077] 图9是示出用于确定使用哪个无线网络进行通信的方法900的一种配置的流程图。为了清楚起见,下面参照图1、2、3、4或5中所示的设备105来描述方法900。在一种实现中,处理器410和/或应用连接引擎310可以执行一个或多个代码集来控制设备105的功能单元,以执行下面所描述的功能。
[0078] 在方框905,可以对来自应用的、针对移动设备105建立通信信道的请求进行截获。设备105可以处于空闲模式。在一种配置中,在请求被截获时,第一无线接口可以在OS220处是活动的。第一无线接口可以与第一无线网络相关联。在方框910,可以执行扫描以定位与第一无线网络不同的可用的第二无线网络。在方框915,可以作出关于第二无线网络是否可用的确定。例如,第二无线网络可以是WLAN或者Wi-Fi网络。如果确定第二无线网络不可用,则在方框920,可以将所截获的请求释放到OS220的套接字层320。在方框925,可以建立与第一无线网络的无线连接。在方框930,移动设备105可以使用所建立的无线连接和第一无线接口参与到跨越第一无线网络的通信中。
[0079] 在方框915,如果确定第二无线网络可用,则在方框935,可以建立与第二无线网络的无线连接。例如,无线单元325中的无线电装置330可以与远程设备(例如,服务器、其它移动设备等)的无线电装置建立通信,以建立跨越第二无线网络的通信信道。在方框940,可以由OS220针对第二无线网络激活第二无线接口。该接口可以允许在移动设备105上执行的应用通过第二无线接口跨越第二无线网络发送/接收数据。在方框945,可以将请求释放到OS220的套接字层320。可以将请求释放到套接字层320。在方框950,移动设备
105可以使用所建立的无线连接和第二无线接口参与到跨越第二无线网络的通信中。在方框955,可以终止与第二无线网络的无线连接。当移动设备105实质终止跨越网络的通信时,可以终止连接。例如,当实质地完成或者执行了从设备105上的应用发出的套接字调用时,可以终止连接。除终止与第二无线网络的无线连接之外,OS220还可以去激活第二无线接口。作为结果,当第二接口被去激活时,安装在设备105上的应用便发觉第二无线网络不再可用。
[0080] 因此,方法900可以提供用于:对可用的WLAN进行扫描,并如果WLAN可用,则在WLAN接口上释放套接字调用。应当注意的是,方法900仅是一种实现,可以对方法900的操作进行重新排列或以其它方式修改,使得其它实现是可能的。
[0081] 图10是示出用于维持持久TCP连接的方法1000的一种配置的流程图。为了清楚起见,下面参照图1、2、3、4或5中所示的设备105来描述方法1000。在一种实现中,处理器410和/或应用连接引擎310可以执行一个或多个代码集来控制设备105的功能单元,以执行下面所描述的功能。
[0082] 在方框1005,该方法以截获来自第一应用的请求开始。该请求可以是对建立针对移动设备105的通信信道的套接字调用。设备105可以处于空闲模式,当设备105的OS220向应用提供活动的第一无线接口时,可以对请求进行截获。在方框1010,可以识别具有在第一无线接口上的持久(或者长期存在的)TCP连接的一个或多个附加应用。例如,提供呈现服务的应用可以具有在扩展的时间段内保持打开的TCP连接。具有长期存在的TCP连接的这种应用的示例可以包括
[0083] 在方框1015,可以建立与第二无线网络的无线连接。在方框1020,当建立针对第二无线网络的无线连接时,可以由OS220激活第二无线接口。在方框1025,可以生成指示第二无线接口被激活的通知。当WLAN接口活动时,该通知可以指示应用使用WLAN接口。在一个示例中,OS220可以生成通知,并将该通知发送到第一应用。在方框1030,可以阻止具有持久TCP连接的一个或多个附加应用接收该通知。如果当WLAN变得可用时通知这些应用,则这些应用可以关闭蜂窝接口上的长期存在的TCP连接,并向服务器重新注册WLAN IP地址。当终止WLAN时,这些应用可以随后在蜂窝接口上进行重新注册。作为结果,可能会出现到蜂窝无线电装置的两个连接。例如,一个用于关闭TCP连接,一个用于在终止WLAN后重新注册应用。这会增加蜂窝网络上的信令的水平。
[0084] 在一个实施例中,应用连接引擎310可以通过一起禁止通知的生成来阻止具有长期存在的TCP连接的一个或多个应用接收通知。在另一个实施例中,安装在移动设备105上的应用可以针对有关接口被激活和去激活的通知向OS220进行注册。引擎310可以在激活WLAN之前,构造具有蜂窝接口上的持久TCP连接的应用的列表。应用连接引擎310可以将这些应用从通知服务中注销,或者截获并丢弃去往这些应用的通知。作为阻止通知被具有长期存在的TCP连接的应用接收的另一个示例,当WLAN接口活动时,应用连接引擎310可以将来自这些应用的connect()或者其它套接字调用丢弃。引擎310还可以在WLAN失效之后的某一时间段内,将来自这些应用的系统调用丢弃。在一个实施例中,引擎310可以执行封装器315以将来自这些应用的write()套接字调用路由到建立TCP连接的接口(例如,蜂窝接口)。不需要进行特定的处理。作为结果,这些应用可以不终止持久TCP连接,并尝试向WLAN进行注册。已通过bind()或者通过在路由表中添加基于目的地的路由来将其套接字绑定到某些接口的应用不会受到WLAN接口的激活的影响。
[0085] 在方框1035,可以将请求释放到OS220的套接字层320。在方框1040,移动设备105可以使用所建立的无线连接和第二无线接口参与到跨越第二无线网络的通信中。
[0086] 使用本文中所公开的技术和结构,当第一无线接口(其可以是蜂窝接口)被激活时,捕获来自应用的套接字调用,并对其进行保持以阻止到达OS。OS可以激活第二无线接口(例如,WLAN接口),并通知应用WLAN被激活。可以将所保持的系统调用或者套接字调用释放到OS或者OS的套接字层。激活第二无线接口减少了由经由第一接口在第一无线网络(例如,蜂窝网络)上异步地请求无线连接的应用所发生的信令的水平。
[0087] 本领域的技术人员应理解的是,可以使用任何各种不同的技术和技艺来表示信息和信号。例如,在贯穿上面的描述中提及的数据、指令、命令、信息、信号、比特、符号和码片可以由电压电流电磁波磁场或粒子、光场或粒子、或者其任意组合来表示。
[0088] 本领域的技术人员还将意识到:结合本文公开的实施例而描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了总体描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为造成对本发明的示例性实施例的范围的背离。
[0089] 被设计用于执行本文所述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意组合,可以实现或执行结合本文公开的实施例所描述的各种说明性的逻辑框、模块和电路。通用处理器可以是微处理器,或者,该处理器也可以是任何常规的处理器、控制器微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合,或者任何其它此种结构。
[0090] 结合本文公开的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合到处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。
[0091] 在一个或多个示例性实施例中,所描述的功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将这些功能作为一个或多个指令或代码存储在非暂时性计算机可读介质上或通过非暂时性计算机可读介质传送。计算机可读介质包括计算机存储介质和通信介质二者,通信介质包括有助于计算机程序从一个位置转移到另一个位置的任意介质。存储介质可以是能够由计算机存取的任意可用介质。通过举例而非限制的方式,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望程序代码并能够由计算机进行存取的任何其它介质。此外,任何连接可以适当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者诸如红外线、无线和微波之类的无线技术从网站、服务器或其它远程源发送的,则同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在介质的定义中。本文使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘用激光光学地复制数据。上述各项的组合也应该包括在计算机可读介质的范围中。
[0092] 为了使本领域的任何技术人员能够实现或使用本发明,在前面提供了所公开的示例性实施例的描述。对这些示例性实施例的各种修改对于本领域的技术人员将是显而易见的,并且在不背离本发明的精神或范围的前提下,本文定义的总体原则可应用于其它实施例。因此,本发明并非旨在限于本文所示的示例性实施例,而是与本文所公开的原则和新颖性特性最广泛的范围相一致。
QQ群二维码
意见反馈