网络应用程序代理系统和方法

文档序号:7791022阅读:276来源:国知局
网络应用程序代理系统和方法
【专利摘要】本申请公开的系统和方法接收通过网络感知主机应用程序(107)发布的网络应用程序代理(NAP)扩展API函数调用(210)。NAP扩展API函数调用(210)提供与主机可卸载包交换序列相关联的参数值。利用该参数值,当主机处理器处在睡眠模式状态或正在睡眠模式状态之间转换时,NAP模块(116)拦截且响应与主机可卸载包交换序列相关联的一个或多个进入网络包(222,235)。
【专利说明】网络应用程序代理系统和方法

【技术领域】
[0001] 本文描述的实施例涉及无线移动设备,包括与卸载网络通信功能相关联的系统和 方法,从而实现更深和/或更长的主机处理器睡眠模式周期。

【背景技术】
[0002] 无线移动设备的激增以及不断增加的网络可用性已经导致了对于"一直可用"网 络应用需求不断增长。这类应用,包括但不限于网络协议上的语音(V0IP)、即时消息、服务 搜寻以及服务器应用程序,可以被远程地触发。也就是说,可能要求运行在无线移动设备中 的"一直可用"应用程序无限地持续运行,同时等待来自进入V0IP呼叫等的触发信息。
[0003] 本文中使用的术语"无线移动设备"意味着采用便携式电源(例如电池、太阳能芯 片等)并包括用于无线数据通信的无线电的便携式通信和/或计算设备。这类设备包括能 够使用数据的蜂窝电话、无线膝上型计算机、平板计算机、便携式无线游戏机等。
[0004] 目前的无线移动设备通常使用一个或多个主("主机")处理器来执行用户应用程 序。主处理器通常消耗大量的电力,使得主机处理器活动成为无线移动设备电池运行时间 的限制因素。已将发展了各种方案用来延长电池运行时间,包括低功率半导体设备的发展。 最主要的电池电力节省技术之一是"睡眠模式操作。"无线移动设备通过在多个时间片内禁 用所有或部分主机处理器功能来进入睡眠模式,在该多个时间片期间,应用程序不需要被 禁用的处理器循环。随着处理器的功率渐增地被禁用,主机处理器被称为渐增地进入睡眠 模式操作的"更深"等级。
[0005] 当处理器睡眠时,活动的应用程序可被分配较短的循环或不分配任何循环。此外, 睡眠模式操作通常需要开销循环,以便在禁用处理器之前保存指针、寄存器值等,并在重启 处理器之后恢复这些值。因此,睡眠模式的运行可能导致应用程序启动延迟增大和/或进 入睡眠模式时执行的应用程序的运行延迟增大。从用户的角度来看,电池的运行时间可以 被视为在较懒惰的无线移动设备中较长并且在较活跃的设备中较短。周密的编程权衡可有 助于优化性能与运行时间。
[0006] 远程触发的网络应用程序诸如上述的那些,趋向于延迟敏感。例如,当处于睡眠的 处理器被充电、恢复背景以及重新开始处理网络堆栈时,与进入V0IP呼叫相关联的铃声信 号可能被延迟。在一些情况下,为了保证跨越多个无线移动设备平台的应用程序的可接受 性能,网络应用程序编程者可能禁用深层次的睡眠模式操作。结果,电池可能会过量消耗, 同时这类应用程序简单地执行等待状态达可能持续几分钟、几小时的持续时间,或者更多 地,同时等待进入V0IP呼叫、即时消息等,。在其他的情况下,无线网络设备可以被配置为 在接收任何包后将主机处理器唤醒,可能导致睡眠状态被频繁地打断。


【发明内容】

[0007] 本文中描述的系统和方法将主机处理器网络通信序列卸载到网络设备处理器。进 入网络应用程序包被过滤且被响应,同时唤醒主机处理器。这样做在接收进入网络应用程 序触发包后提供时间以唤醒主机处理器,同时提供可接受的网络延迟。可以产生更深和/ 或更长的主机处理器睡眠状态。

【专利附图】

【附图说明】
[0008] 图1是根据本发明的不同示例实施例的无线移动设备100中的网络应用程序代理 系统的框图。
[0009] 图2是根据不同的示例实施例示出与网络应用程序代理相关联的典型的进程间 通信序列的序列图。
[0010] 图3A和3B是与根据不同示例序列延长无线移动设备中的睡眠状态的方法相关联 的流程图。

【具体实施方式】
[0011] 图1是根据本发明的不同示例实施例的无线移动设备1〇〇中的网络应用程序代理 (NAP)系统50的框图。NAP系统50包括执行一个或多个网络应用程序模块107的主机处 理器105。NAP系统50也包括通信地耦合到主机处理器105的操作系统(0S) 110。NAP系 统50进一步包括通信地耦合到主机处理器105的网络设备112。在一些实施例中,网络设 备112可以被实现为无线网络模块。在一些实施例中,网络设备112可以作为主机处理器 105的子元件被包含。网络设备112处理网络包装配、传输、接收以及分解。
[0012] 网络设备112包括网络设备处理器115。网络设备处理器115向网络设备112提 供独立于与主机处理器105相关联的处理循环的处理循环。NAP模块116拦截并响应与主 机可卸载包交换序列相关联的进入网络包,如下列进一步所描述的。当主机处理器105处 于睡眠模式状态或正在睡眠模式状态之间转换时,NAP模块116由此介入。
[0013] 如之前所述,NAP系统50包括一个或多个网络应用程序模块107。在本披露的环 境中,"网络应用程序"意味着可由处理器执行的一组活动,包括接收通过无线通信包被传 送的数据和/通过无线通信包将提供将被传送的数据。网络应用程序的示例包括即时消息 应用程序120和V0IP应用程序122。
[0014] 在NAP系统50的环境中运行,网络应用程序模块107发布一个或多个NAP扩展网 络API函数调用。这种NAP网络API调用配置NAP系统50以按照如下来处理主机可卸载 包交换序列。与0S110相关联的API处理模块125拦截不同类型的API调用,包括由应用 程序107发布的NAP扩展网络API调用。
[0015] 主机网络堆栈128通信地耦合到API处理模块125从而经由非NAP扩展网络API 函数调用与网络应用程序模块107通信。NAP系统50也包括通信地耦合到主机网络堆栈 128的物理链路模块132。物理链路模块132接收无线移动设备100处的传入包(inbound packet)并且发送从无线移动设备100发出的包。
[0016] NAP系统50也包括通信地耦合到API处理模块125的NAP API封装器模块135。 API处理模块125将NAP扩展网络API调用传递到NAP API封装器模块135。NAP API封装 器模块135接收该NAP扩展网络API函数调用并且作为响应将NAP封装器函数调用发布到 NAP 模块 116。
[0017] 如上所述,NAP模块116是网络设备112中的部件。NAP模块116中的交换序列生 成器142部件配置接收过滤器,启用发送过滤器,接收与主机可卸载包交换序列相关联的 一个或多个进入包,选择适用于主机可卸载包交换序列的发送模板,填入符合传输模板并 响应于进入包而生成的一个或多个传输包的字段,以及发布与主机可卸载包交换序列的终 止相关联的主机唤醒命令。
[0018] 交换序列生成器142包括接收数据缓冲器146。在主机可卸载包交换序列完成后, 接收数据缓冲器146存储与进入包相关联的数据字段以便转发到主机网络堆栈128。交换 序列生成器142还包括序列计时器152。序列计时器152确定何时发送各个传输包以及何 时发布主机唤醒命令。
[0019] NAP模块116进一步包括通信地耦合到交换序列生成器142的接收滤波器模块 145。接收滤波器模块145确定进入包是否与主机可卸载包交换序列相关联。如果是,则接 收滤波器模块145将进入包传递到交换序列生成器142。接收滤波器模块145通过NAP模 块116来传递与主机可卸载包交换序列不相关联的包,并且将其传递到主机网络堆栈128。
[0020] NAP系统50也包括通信地耦合到交换序列生成器142的发送模板模块148。发送 模板模块148存储可由交换序列生成器142选择的一组发送模板。发送模板模块148使用 由交换序列生成器142提供的字段数据来组装发送包。然后发送模板模块148将发送包发 送到用于向外传输的物理链路模块132。
[0021] NAP系统50进一步包括通信地耦合到交换序列生成器142的发送滤波器模块 155。当不调用NAP功能时,发送滤波器模块155将外出包(outbound packet)传递到用于 向外传输的物理链路132。当调用NAP功能时,发送滤波器模块155阻止外出包。
[0022] NAP系统50还包括通信地耦合到交换序列生成器142的NAP配置寄存器160。NAP 配置寄存器160在NAP初始化时加载交换序列生成器参数。在一些实施例中,NAP配置寄 存器160被通信地耦合到发送模板模块148从而在NAP初始化时加载多组发送模板。在一 些实施例中,NAP配置寄存器160被通信地耦合到接收滤波器模块145从而在NAP初始化 时加载接收滤波器。
[0023] 图2是根据不同示例实施例示出与图1中的NAP系统50相关联的典型的进程间 通信序列200的序列图。通信点包括如前所述的应用程序模块107、NAP API封装器模块 135、主机网络堆栈128、NAP模块116以及物理链路模块132。为了示例的目的在序列200 中示出消息语法,并且该消息语法可以根据不同实施例的特定实施方式变化。
[0024] 网络应用程序模块107可以是NAP感知(NAP-aware)并且可以期望在待接收进入 包时允许主机处理器进入睡眠状态。网络应用程序模块107通过将NAP扩展网络API函数 调用210发送到NAP API封装器模块135来开始序列。NAP模块135通过发送模拟的非NAP 扩展API函数调用215来将该活动通知主机网络堆栈128。NAP模块135还将NAP API封 装器函数调用218发送到NAP模块116。
[0025] NAP API封装器函数调用218在对由应用程序模块107发布的API函数调用210 适宜时在NAP模块116处建立等待状态。具体地,NAP封装器函数调用218在NAP模块116 处调用一个或多个接收滤波器(例如,接收滤波器225和240)。接收滤波器识别与网络应 用程序模块107相关联的进入包。接收滤波器可以基于诸如协议类型、端口号等参数来识 别进入包。
[0026] 为了该示例的目的,让我们假设由应用程序模块107发布的API函数调用210指 定共同的TCP SYN--SYN/ACK--ACK主机可卸载包交换序列。在NAP模块116处从物理链路 模块132接收的包222由接收滤波器225来评估。让我们假设包222被接收滤波器225识 别为与TCP协议相对应且与由API函数调用210以及由NAP API封装器函数调用218指定 的端口号相匹配的SYN数据包。然后,NAP模块116可以用外出的端口匹配的SYN/ACK数 据包230来响应,由此仿真当前睡眠的主机网络对战128的行为。端口匹配的TCP ACK包 235随后可以由接收滤波器240来接收且评估。
[0027] 在主机可卸载包交换序列中的适当时间,NAP模块116发布主机唤醒消息245。在 一些实施例中,主机唤醒消息245可以穿过NAP封装器模块135。接下来NAP封装器模块 135可以如所示的用触发_主机消息250来唤醒主机处理器并重新激活主机网络堆栈128。
[0028] 图3A和图3B是与根据不同示例序列延长无线移动设备中的睡眠状态的方法300 相关联的流程图。方法300包括当主机处理器处在睡眠模式状态中或正在睡眠模式状态之 间转换时,截取并响应与主机可卸载包交换序列相关联的一个或多个进入网络包。
[0029] 方法300可以可选地在框305处开始于更新一组NAP配置寄存器(例如,图1中 的配置寄存器160)。方法300在框308处继续于执行NAP初始化活动的序列,包括加载交 换序列生成器参数,加载多组发送模板以及加载接收滤波器。
[0030] 在框312处,方法300包括在NAP API封装器模块处接收NAP扩展API函数调用。 NAP扩展API函数调用由网络感知主机应用程序发布并且与主机可卸载包交换序列相关 联。在框315处,方法300还包括响应于NAP扩展API函数调用而在NAP API封装器模块 处发布NAP封装器函数调用。如前所述,NAP扩展API函数调用和NAP封装器函数调用均 封装接收滤波器参数值。接收滤波器参数值被用来配置一个或多个接收滤波器以识别与主 机网络应用程序所预期的主机可卸载交换序列相关联的进入包。
[0031] 在框318处,方法300进一步包括配置一个或多个接收滤波器并且根据与NAP封 装器函数调用相关联的参数来选择发送模板滤波器组。在框322处,方法300还包括阻止 与显著的NAP扩展API调用相关联的外出包。在框324处,方法300进一步包括在没有调 用NAP的功能时将外出包从发送滤波器传递到用于向外传输的物理链路。
[0032] 方法300在框328处继续于在接收滤波器处接收进入包。在框335处,方法300 包括确定数据包是否与主机可卸载包交换序列相关联。如果不相关联,则方法300包括在 框338处将该包转发到主机网络堆栈。
[0033] 如果接收滤波器确定模式匹配,那么方法300在框340处继续于将进入包传递到 交换序列生成器。交换生成器负责安排对进入包的响应。如果可行,在框341处,方法300 包括在主机可卸载包交换序列完成后存储来自进入包的包数据以转发到主机网络堆栈。
[0034] 在框342处,方法300还包括选择适用于主机可卸载包交换序列的发送模板。在 框344处,方法300进一步包括填入符合发送模板的一个或多个发送包的字段。使用由交 换序列生成器提供的字段数据来组装发送包。
[0035] 在一些实施方式中,在框352处的将发送包发送到物理链路以便向外传输之前, 方法300在框348处还包括等待序列计时器到期时间。这样做可以实现相对于与主机处理 器唤醒相关的延迟更好地控制序列计时。
[0036] 方法300在框355处继续于每次适用的交换序列模式被交换序列生成器所知,确 定交换序列是否已经完成。如果没有,则在框328处,方法300包括等待且在接收滤波器处 接收额外的传入包。如果交换序列已经完成,则在框358处,方法300包括发布主机唤醒命 令。需要注意的是,方法300的一些实施方式可以在交换序列完成之前开始主机唤醒,从而 考虑与主机唤醒过程相关联的延迟。
[0037] 方法300可以在框360处结束于在主机可卸载包交换序列完成之后将与进入包相 关联的任何存储数据字段转发到主机网络堆栈。方法300可以通过接收来自网络应用程序 的另一个NAP扩展API调用在图3A的框312处重新开始。
[0038] 本文所述的模块和部件可以包括硬件电路系统、光学部件、单处理器或多处理器 电路和/或存储器电路。所公开的模块和部件还可以包括能够被处理器执行的计算机指令 被编码在其中/其上的计算机可读介质,包括带有存储在其中的固件的非易失性存储器, 但是不包括非功能的描述性事物。如NAP系统50和方法300的构造者所期望的并且如适 于不同实施例的特定实施方式,本披露的主题还包括所描述的模块与部件的组合。
[0039] 本文所述的系统和方法可对应用程序有用而不对延长无线移动设备中的睡眠模 式操作有用。NAP系统50和方法300意在提供对不同实施例的结构和不同序列的流程的一 般理解。不同的实施例可以被并入到在计算机、通信和信号处理电路、单处理器或多处理器 模块、单嵌入式处理器或多嵌入式处理器、多核处理器、数据交换机以及包括多层、多芯片 模块的专用模块等中使用的电子电路中。这类设备和系统可以进一步作为子部件被包含在 各种电子系统诸如电视蜂窝电话、个人计算机(例如,膝上型计算机、台式计算机、手持式 计算机、平板计算机等)、工作站、无线电装置、视频播放器、音频播放器(例如,MP3(运动图 像专家组,音频层3)播放器)、交通工具、医疗设备(例如,心脏监控器、血压监控器等)、机 顶盒以及其他电子系统中。
[0040] 本文所述的系统和方法将主机处理器网络通信序列卸载到网络设备处理器。这 样做在接收进入应用程序触发包后提供时间以唤醒主机处理器,同时提供可接受的网络延 迟。可以产生更深的和/或更长的主机处理器睡眠状态。
[0041] 本领域的技术人员将理解的是,在所请求保护的发明的范围内可以对所描述的实 施例进行修改,并且同样许多其他实施例是可能的。
【权利要求】
1. 一种无线移动设备中的网络应用程序代理系统即NAP系统,其包括: 网络应用程序模块,其发布与主机可卸载包交换序列相关联的NAP扩展网络应用程序 编程接口函数调用即NAP扩展网络API函数调用; NAP API封装器模块,其通信地耦合到所述应用程序模块以接收所述NAP扩展API函数 调用并且作为响应发布NAP封装器函数调用;以及 NAP模块,其通信地耦合到所述NAP API封装器模块,从而当主机处理器处于睡眠模式 状态或当所述主机处理器正在睡眠模式状态之间转换时拦截并响应与所述主机可卸载包 交换序列相关联的进入网络包。
2. 根据权利要求1所述的系统,所述NAP模块进一步包括: 交换序列生成器,其配置接收滤波器,启用发送滤波器,接收与所述主机可卸载包交换 序列相关联的至少一个进入包,选择适用于所述主机可卸载包交换序列的发送模板,填入 符合所述发送模板并响应于所述进入包而产生的至少一个发送包的字段,以及发布与所述 主机可卸载包交换序列的终止相关联的主机唤醒命令。
3. 根据权利要求2所述的系统,所述交换序列生成器进一步包括: 接收数据缓存器,其存储与所述进入包相关联的数据字段,从而在所述主机可卸载包 交换序列完成后转发到主机网络堆栈;以及 序列计时器,其确定何时发送各个发送包以及何时发布主机唤醒命令。
4. 根据权利要求2所述的系统,所述NAP模块进一步包括: 接收滤波器模块,其通信地耦合到所述交换序列生成器以将所述进入包识别为与所述 主机可卸载包交换序列相关联,将所述进入包传递到所述交换序列生成器,并且通过所述 NAP模块传递与所述主机可卸载包交换序列不相关联的包并且传递到主机网络堆栈。
5. 根据权利要求2所述的系统,所述NAP模块进一步包括: 发送模板模块,其通信地耦合到所述交换序列生成器以存储可由所述交换序列生成器 选择的一组发送模板,利用由所述交换序列生成器提供的字段数据来组装所述发送包,以 及将所述发送包发送到用于向外传输的物理链路。
6. 根据权利要求2所述的系统,所述NAP模块进一步包括: 发送滤波器模块,其通信地耦合到所述交换序列生成器以在没有调用NAP功能时将外 出包传递到用于向外传输的物理链路,以及在调用所述NAP功能时阻止外出包。
7. 根据权利要求2所述的系统,所述NAP模块进一步包括: NAP配置寄存器,其通信地耦合到所述交换序列生成器以加载交换序列生成器参数,在 NAP初始化时加载多组发送模板,以及在NAP初始化时加载接收滤波器。
8. 根据权利要求1所述的系统,其进一步包括: 操作系统,其通信地耦合到所述主机处理器;以及 所述操作系统的API处理部件,其拦截来自所述应用程序的所述NAP扩展网络API函 数调用,将所述NAP扩展网络API函数调用传递到所述NAP API封装器模块,以及拦截非 NAP扩展网络API函数调用。
9. 根据权利要求8所述的系统,其进一步包括: 主机网络堆栈,其通信地耦合到所述API处理部件以接收所述非NAP扩展网络API函 数调用。
10. 根据权利要求8所述的系统,其进一步包括: 网络设备,其处理网络包组装与分解; 所述网络设备的网络设备处理器部件,其为所述网络设备提供处理循环,所述处理循 环独立于与所述主机处理器相关联的处理循环。
11. 一种延长无线移动设备中的睡眠状态的方法,其包括: 在网络应用程序代理应用程序编程接口封装器模块即NAP API封装器模块处,接收由 网络感知主机应用程序发布的NAP扩展API函数调用,所述NAP扩展API函数调用包括与 主机可卸载包交换序列相关联的参数值;以及 当所述主机处理器处于睡眠模式状态或者当所述主机处理器正在睡眠模式状态之间 转换时,在NAP模块处拦截并响应与所述主机可卸载包交换序列相关联的至少一个进入网 络包。
12. 根据权利要求11所述的方法,其进一步包括: 响应于所述NAP扩展API函数调用而发布NAP封装器函数调用;以及 根据与所述NAP封装器函数调用相关联的参数来配置接收滤波器。
13. 根据权利要求11所述的方法,其进一步包括: 接收与所述主机可卸载包交换序列相关联的所述进入包; 选择适用于所述主机可卸载包交换序列的发送模板组;以及 填入符合所述发送模板并响应于所述进入包而产生的至少一个发送包的字段。
14. 根据权利要求11所述的方法,其进一步包括: 确定所述进入包是否与所述主机可卸载包交换序列相关联; 将所述进入包传递到交换序列生成器;以及 通过所述NAP模块传递与所述主机可卸载包交换序列不相关联的包并传递到主机网 络堆栈。
15. 根据权利要求14所述的方法,其进一步包括: 使用由所述交换序列生成器提供的字段数据来组装所述发送包;以及 将所述发送包发送到用于向外传输的物理链路。
16. 根据权利要求11所述的方法,其进一步包括: 配置NAP接收滤波器。
17. 根据权利要求11所述的方法,在NAP发送滤波器处的活动进一步包括: 当没有调用NAP功能时将外出包传递到用于传输的物理链路;以及 当调用所述NAP功能时阻止所述外出包。
18. 根据权利要求11所述的方法,其进一步包括: 发布与所述主机可卸载交换序列的终止相关联的主机唤醒命令;以及 在所述主机可卸载包交换序列完成之后将与所述进入包相关联的存储数据字段转发 到主机网络堆栈。
19. 根据权利要求11所述的方法,NAP初始化活动进一步包括: 加载交换序列生成器参数; 加载可由所述交换序列生成器选择的多组发送模板;以及 加载接收滤波器。
20. -种无线移动设备中的网络应用代理系统即NAP系统,其包括: NAP API封装器模块,其从网络感知应用程序接收与主机可卸载包交换序列相关联的 NAP扩展网络应用程序编程接口函数调用即NAP扩展网络API函数调用,并且作为响应发布 NAP封装器函数调用; 交换序列生成器,其配置接收滤波器,启用发送滤波器,接收与所述主机可卸载包交换 序列相关联的至少一个进入包,选择适用于所述主机可卸载包交换序列的发送模板,填入 符合所述发送模板并响应于所述进入包而产生的至少一个发送包的字段,以及发布与所述 主机可卸载包交换序列的终止相关联的主机唤醒命令; 接收滤波器模块,其通信地耦合到所述交换序列生成器以将所述进入包识别为与所述 主机可卸载包交换序列相关联,将所述进入包传递到所述交换序列生成器,并且将与所述 主机可卸载包交换序列不相关联的包传递到主机网络堆栈;以及 发送模板模块,其通信地耦合到所述交换序列生成器以存储可由所述交换序列生成器 选择的一组发送模板,利用由所述交换序列生成器选择的模板和由所述交换序列生成器提 供的字段数据来组装所述发送包,以及将所述发送包发送到用于向外传输的物理链路。
【文档编号】H04L29/12GK104067597SQ201380006308
【公开日】2014年9月24日 申请日期:2013年1月23日 优先权日:2012年1月23日
【发明者】A·鲍姆, E·A·克莱因, A·扎克斯 申请人:德克萨斯仪器股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1