唤醒模式管理的制作方法

文档序号:7859830阅读:322来源:国知局
专利名称:唤醒模式管理的制作方法
唤醒模式管理背景技术
用户可以获得种类不断增长的可以为网络用途而配置的计算设备。例如,用户可以经由有线或无线网络与桌面计算机、移动电话、平板电脑等进行交互。
然而,接入这些网络所使用的传统技术往往是低效的,因此可能消耗大量的资源, 包括功率、处理和网络资源。因而,这些传统技术限制了对于设备的用户来说可用的功能。发明内容
描述了唤醒模式管理技术。在一个或多个实施方式中,监控由计算设备的网络接口设备所接收的网络流量并辨别(recognize)所监控的网络流量中的流量模式。识别 (identify)与所辨别的流量模式相对应的计算设备的应用,并且响应于该识别,所识别的应用的至少一部分被唤醒。
在一个或多个实施例中,流量模式被注册为与被配置用于在计算设备上执行的应用相对应。响应于应用处于挂起状态时对网络流量中的流量模式的辨别,触发该应用的至少一部分从挂起状态转变到活跃状态。
在一个或多个实施方式中,一个或多个计算机可读存储介质包括存储其上的指令,响应于由计算设备执行该指令,使得该计算设备实施被配置为支持用以响应于识别经由计算设备的网络接口设备接收的传入分组而唤醒挂起应用的至少一部分的技术的操作系统。
还描述了网络接口设备的操作系统管理。在一个或多个实施方式中,操作系统作出与计算设备的一个或多个应用关联的网络流量已结束的确定。响应于该确定,使得网络接口设备转变到一种模式以降低操作系统对网络接口设备的功率消耗。
在一个或多个实施方式中,当网络接口设备处于高功率模式时,操作系统使得网络接口设备对计算设备的一个或多个应用可用。当网络接口设备处于低功率模式时,操作系统使得网络接口设备对计算设备的一个或多个应用不可用。
在一个或多个实施方式中,一个或多个计算机可读存储介质包括存储其上的指令,响应于由计算设备执行该指令,使得该计算设备实施被配置为支持一种技术的操作系统,该技术限制计算设备的一个或多个应用对处于降低功率消耗模式的网络接口设备的访问,该网络接口设备被配置为响应于接收到推送通知而从该模式唤醒。
还描述了保持活动(keep alive)管理技术。在一个或多个实施方式中,由计算设备的操作系统计算保持活动间隔。该保持活动间隔用于维持计算设备的一个或多个应用与网络之间的通知信道。
在一个或多个实施方式中,为计算设备上可执行的多个应用的每一个确定被指定用来维持经由网络与相应端点的通知信道的一个或多个服务器超时间隔。根据针对多个应用的每一个的一个或多个服务器超时间隔计算保持活动间隔。保持活动间隔用于如指定的那样来 唤醒网络接口设备以维持通知信道。
在一个或多个实施方式中,一个或多个计算机可读存储介质包括计算机可执行指令,响应于由计算设备执行该指令,使得该计算设备实施这样的操作系统,该操作系统被配置为使用保持活动间隔来维持计算设备上可执行的多个应用与相应一个或多个端点之间经由网络的通知信道,基于网络的一个或多个中间设备的一个或多个网络超时间隔,以及经由网络与一个或多个应用进行通信的相应端点的一个或多个服务器超时间隔,来计算该保持活动间隔。
提供此发明内容来以简要形式介绍一些概念选集,其将在以下具体实施方式
中进一步描述。此发明内容不是旨在识别所要求保护的主题的关键特征或必要特征,也不是旨在用来帮助确定所要求保护的主题的范围。


参考附图来描述具体实施方式
。在图中,附图标记的最左边的一个或多个数字标识该附图标记首次出现在哪个图中。说明书和附图中的不同示例中使用的相同附图标记指示相似或相同的项。
图1是示例实施方式的环境的图示,其中可操作用以采用网络代理模块管理计算设备的一个或多个应用的网络通信。
图2是示例实施方式的系统的图示,其将图1的网络代理模块更详细地示出为采用唤醒模式管理器模块。
图3是描绘了示例实施方式的过程的流程图,其中流量模式的辨别用来将应用的至少一部分从挂起状态转变到活跃状态。
图4是描绘了示例实施方式的另一过程的流程图,其中流量模式的辨别用于唤醒应用的至少一部分。
图5是示例实施方式的系统的图示,其将图1的网络代理模块更详细地示出为采用网络设备管理器模块。
图6是示例实施方式中另一系统的图示,其示出了网络设备管理器模块的示例操作。
图7描绘了示出网络接口设备安静转变的示例实施例。
图8描绘了示出网络接口设备活跃转变的示例实施例。
图9描绘了示出系统睡眠转变的示例实施例。
图10描绘了示出系统恢复转变的示例实施例。
图11是描绘了示例实施方式的过程的流程图,其中确定网络流量已经结束,网络接口设备被操作系统转变到低功率模式。
图12是描绘了示例实施方式的过程的流程图,其中网络接口设备在低功率模式期间对应用来说是不可用的。
图13是示例实施方式的系统的图示,其将图1的网络代理模块更详细地示出为采用保持活动管理器模块。
图14是示例实施方式的系统的图示,其示出了图13的计算以及调节保持活动间隔的示例实施方式。
图15描绘了示例实 施方式的过程,其中保持活动间隔被计算出来并被用于维持一个或多个通知信道。
图16描绘了示例实施方式的过程,其中保持活动间隔被计算出来以批处理来自应用的保持活动通信。
图17和18描绘了示出图1的网络连接性代理实施方式示例的系统。
图19图示了包括参考图1描述的计算设备的示例系统。
图20图示了能被实施成参考图1、2、5_10、13、14和17-19描述的用于实施本文中描述的技术的实施例的任意类型的计算设备的示例设备的各种组件。
具体实施方式
概沭网络连接的应用通常包括长时运行的连接的能力以保持“最新”。然而,传统技术下,这可能以保持网络接口设备(如网络接口卡)被连接以确保可达性为代价,这可能不利地影响计算设备的资源使用。例如,传统技术允许计算设备的应用和服务不受约束地访问网络接口设备。因此,如果网络接口设备正在被应用使用,则操作系统通常不是在任何给定的时间点都能察觉到。这就会妨碍设备进入低功率模式,直到检测到空闲,这要花费30秒,因此会对电源如电池寿命造成显著影响。
因此,本文中描述的技术是,称为网络代理模块的操作系统组件可以被用来协调计算设备的网络接口设备的使用。例如,网络接口设备可以采用唤醒模式管理器模块用以响应于网络流量的接收确定计算设备的哪些应用,如果有的话,将被唤醒。唤醒模式管理器模块例如可以检测网络流量中是否存在预注册的模式,如果存在,则唤醒相应的应用。以这样的方式,唤醒模式管理器模块可以允许效能网络(Ieverage network)所连接的应用成为完全挂起状态但是仍然提供“永远在线/永远连接”的用户体验。唤醒模式管理器模块的进一步讨论可以参考图2-4找到。
在另一个例子里,网络代理模块可能包含网络设备管理器模块的功能。当网络设备管理器模块例如以监控回调的方式确定涉及计算设备的应用的网络流量已结束时,网络设备管理器模块可以用来促使网络接口设备进入低功率模式。因此,操作系统的网络设备管理器模块126可以被定位为网络接口设备与应用之间的中介。作为中介,操作系统可以知道连网活动从而能确定地告知网络接口设备是否可以进入低功率模式,如网络安静模式。网络设备管理器模块的进一步讨论可以参考图5-12找到。
在另一个例子里,网络代理模块可能包含保持活动管理器模块的功能。当应用处于挂起状态时保持活动管理器模块可以用来“保持活动”网络连接(例如通知信道),从而可以减少与应用相关联的资源使用。另外,保持活动管理器模块可以用来允许网络接口设备进入低功率模式以及“唤醒”以维持网络连接,从而自己减少与网络接口设备关联的资源使用。保持活动管理模块也可以包含多种其他功能,例如动态地确定保持活动间隔,其进一步的讨论可以参考图13-18找到。
在下面的讨论中,首先描述采用了本文中所述的技术的示例环境。示例部件则用来描述唤醒模式管理器模块、网络设备管理器模块和保 持活动管理器模块的示例功能。然后描述了可能包含前述部件的功能的实施方式示例。很明显,本文中描述的技术并不限于示例环境中的性能,并且示例环境也不限于执行示例技术。
示例环境图1是可操作用以采用本文中描述的网络代理技术的示例实施方式中的环境100的示图。图示的环境100包括计算设备102,其包括处理系统104 (如一个或多个处理器、功能块)、存储器106、电源108、显示设备110以及一个或多个被配置为经由网络114提供网络连接(如通知信道)的网络接口设备112。下面讨论中所表示的实体可以指示一个或多个实体,因此可互换地指单个或复数个形式的实体,例如网络接口设备112、多个网络接口设备 112 等。
计算设备102可以以多种方式配置。例如,计算设备102可以被配置为能通过网络114进行通信的计算机,诸如桌面计算机、移动站、娱乐设施、通信地耦接到显示设备的机顶盒、无线电话、游戏机等等。因此,计算设备102范围包括从具备大量存储器和处理器资源(如个人计算机、游戏机)的全资源设备到具有有限的存储器和/或处理资源(如传统机顶盒、手持游戏机)的低资源设备。此外,尽管示出的是单个计算设备102,但是计算设备 102可以代表多个不同设备,诸如被商业用来执行操作的多个服务器(如服务器农场)、远程控制和机顶盒结合、图像捕获设备和游戏机等等。
尽管网络114被图示为因特网,但网络可以采取很多种配置。例如,网络114可以包括广域网(WAN)、局域网(LAN)或内部网,因而网络接口设备112可以被配置为经由有线连接访问这些网络。网络114也可以配置为经由无线技术访问例如无线广域网(WWAN)、无线局域网(WLAN)、蜂窝网(如3G、4G、LTE网络)等等。网络接口设备112可以代表物理设备, 也可以代表例如那些用来支持虚拟私有网、隧道技术(tunneling)等的虚拟网络设备。因此,尽管单个网络114被示出,但是网络114可以代表多个网络。
计算设备102被进一步图示为包括操作系统116。操作系统116被配置为将计算设备102的底层功能抽象为可在计算设备102上执行的应用118、120。例如,操作系统116 可以抽象计算设备102的处理系统104、存储器106、电源108 (例如电池或有线连接)和/ ·或显示设备110功能,以使得可以写应用118、120而无需知道该底层功能是“如何”实施的。 例如应用118、120可以向操作系统116提供要由显示设备112呈现并显示的数据,而无需理解可以如何执行该呈现。
同样地,操作系统116也可以通过使用网络代理模块122将网络连接功能抽象至应用118、120。网络代理模块122表示用来管理应用118、120对网络接口设备112的使用以及网络接口设备112自身的操作的功能。
如前所描述的,网络代理模块122可以包含用以执行这种管理的多种不同功能。 例如,网络代理模块112可以包含被配置为在识别出特定流量模式时唤醒应用118、120的一个或多个的唤醒模式管理器模块124。该特定流量模式例如可以由应用预先注册,从而在模式被辨别时,唤醒模式管理器模块124可以唤醒应用118、120中的相应的一个,而不是像传统技术那样唤醒整个计算设备102,包括应用118、120中的每一个。唤醒模式管理器模块 124的进一步讨论可以参考图2-4找到。
网络代理模块122还被图示为包括网络设备管理器模块126。如前面所提到的,该模块代表用以管理网络接口设备112的操作以及网络接口设备112对计算设备102的应用 118、120的可用性的功能。这可以包括,当网络设备管理器模块126确定涉及应用118、120 的网络流量已结束时,使得网络接口设备112进入到降低功率消耗的模式。
另外,网络设备管理器模块126可以使网络接口设备112在该模式下的一些时段内对应用118、120不可用,以使得应用118、120不会不必要地唤醒网络接口设备112。通过这种方式,网络设备管理器模块126可以“黑洞”从应用118、120到网络接口设备的通信。 网络设备管理器模块126的进一步讨论可以参考下面的始于图5-12的讨论的相对应部分来找到。
网络代理模块122进一步图示为包括保持活动管理器模块128。保持活动管理器模块128表示可以用来甚至为处于挂起状态的应用118、120维持网络连接的功能。保持活动管理器模块128例如可以与网络服务的一个或多个服务器进行通信,以保持该服务与计算设备102之间通过网络114的网络连接活跃。保持活动管理器模块128也可以包括动态地确定该活跃发生的间隔从而可以进一步地保存计算设备102的资源的功能。保持活动管理器模块128的进一步讨论可以参考下面的始于图13-18的讨论的相对应部分来找到。
尽管网络代理模块122及其相应的唤醒模式管理器模块124、网络设备管理器模块126以及保持活动管理器模块128图示为操作系统116的一部分,应当很明显,该功能可以通过多种不同的实体实现。这样的实体的例子包括独立的应用、第三方插件等。
通常,本文中描述的任何功能可以用软件、固件、硬件(如固定逻辑电路)或其组合来实现。本文中使用的术语“模块”、“功能”和“逻辑”通常表示软件、固件、硬件或其组合。 在软件实现的情况下,模块、功能或逻辑代表在处理器(如CUP或多个CUP)上执行时执行指定任务的程序代码。程序代码能被存储于一个或多个计算机可读存储器设备上。下面描述的网络代理技术的特点是独立于平台的,意味着这些技术可以实施于具有各种处理器的各种商业计算平台。
例如,计算设备102还可以包括使得计算设备102的硬件(例如处理器、功能块等) 执行操作的实体(例如软件)。例如,计算设备102可以包括可以被配置为维持使得计算设备,特别是计算设备102的硬件执行操作的指令的计算机可读媒介。因此,指令起的作用是配置硬件以执行操作以及以这种方式导致硬件的变换来执行功能。计算机可读媒介也可以通过各种不同的配置将指令提供给计算设备102。
计算机可读介质的一个这种配置是信号承载媒介,因此被配置为比如经由网络将指令(如作为载波)发送给计算设备的硬件。计算机可读媒介也可以配置为计算机可读存储媒介,并因此不是信号承载媒介。计算机可读存储媒介的例子包括随机存取存储器(RAM)、 只读存储器(ROM)、光盘、闪存、硬盘存储器,以及其他可以使用磁性的、光学的以及其他技术存储指令和其他数据的存储器设备。
唤醒模式管理器模块图2是示例实施方式中的系统200的图示,其示出了图1的网络代理模块122的唤醒模式管理器模块124的示例操作。如前面描述的,传统技术涉及主动地运行对应用可达的过程。因此,涉及使用相对长时运行的网络连接的应用能随时发送和接收数据,这对计算设备102的资源,如电池寿命,有着直接的影响。
然而在该示 例中,操作系统116可以采用网络代理模块122来支持“永远在线/永远连接”的用户体验。在这个例子中,通过使用可以用来唤醒网络通信中涉及的特定应用的唤醒模式管理器模块124来支持该体验。
唤醒模式管理器模块124例如可以允许应用118、120注册指示该特定应用118、 120的流量模式202。例如,应用118可以注册与针对应用120注册的流量模式不同的流量模式202。相应地,唤醒模式管理器模块124可以针对流量模式202监控网络流量204并唤醒相应的应用118、120。
应用开发者例如可以与操作系统116的网络代理模块122安排契约,以指示某些事件以及为这些事件的每一个而执行的回调。网络代理模块122然后可以将网络接口设备 112经由网络114接收的数据的特定模式“探测(plumb)”成与针对该流量模式202注册的应用118、120的一个或多个相对应。
相应地,网络代理模块122的唤醒模式管理器模块124可以在接收到以针对应用 118的流量模式描述的传入分组时中断操作系统116。进而,操作系统116可以在注册的回调入口点将应用118从挂起状态唤醒,并将分组指示给应用118。通过这样的方式,唤醒模式管理器模块124可以支持针对来自预授权的远程端点的传入分组触发挂起应用的技术。 另外,这允许操作系统116探测模式,即使物理网络接口设备112不支持对传入分组的过滤,从而允许操作系统115过滤进入(ingress)分组。
应用118、120还可以被配置为提高计算设备102的资源使用效率。例如,应用118 可以被导向(vector)为形成可以单独执行的不同部分。这样的应用118的示出示例包括将网络功能206导向为与应用118的其他功能208分离开来,如涉及为应用118生成用户接口的功能。
因此,继续前面的例子,网络代理模块122可以唤醒应用118的网络功能206,例如以指示与所指定的流量模式202匹配的分组并执行应用代码的特定回调,而无需再水化 (rehydrate)应用118的涉及生成应用118的用户接口的代码。因此,应用118可以被配置为针对数据分组、远程端点发起的保持活动等,以资源高效的方式响应来自远程服务器的网络流量204。还设想了应用118导向的其他不同例子,如分离应用118的事件处理器。
唤醒模式管理器模块124也可以支持将通信数据合并到应用118、120的技术,其也可以由流量模式202指示。唤醒模式管理器模块124例如可以在网络接口设备112处经由网络114通过多种不同的通知信道来接收数据。唤醒模式管理器模块124可以以预定的间隔将该通信数据合并到应用118、120,而不是“立即”向应用118、120传输该数据。
因此,执行应用 118、120时所使用的计算设备102的资源可以一起被使用以进一步保存(conserve)何时以及如何使用这些资源。例如,并不是为应用118接收数据、唤醒应用118、以及将分组传输给应用118、接着对为应用120接收的分组重复上述操作,而是将这些分组缓存起来,然后再转发。
在一个或多个实施方式中,唤醒模式管理器模块124也可以利用对用户登录的知晓。例如,唤醒模式管理器模块124可以为主动登录到计算设备102的用户,但不为其他用户,利用流量模式202,可以为最近登录的用户使用流量模式,等等。当然其他实施方式也被设想,如为登录的每个用户使用模式的实施方式,不管是否是活跃的。
因此,描述了可以配置为支持一种技术的操作系统,该技术为,响应于识别出经由计算设备的网络接口设备接收到传入分组,唤醒挂起应用的至少一部分。这些技术的进一步讨论可以参考下面的过程和实施方式示例找到。
图3描绘了示例实施方式的过程300,其中流量模式的辨别用以将应用的至少一部分从挂起状态转变到活跃状态。过程各方面可以实施为硬件、固件、软件或其组合。过程被示为一组框,该组框指明由一个或多个设备执行的操作,并且用于通过各个框来执行操作的这些过程不必限于所示出的顺序。下面讨论的一些部分将参考图1的环境100以及图 2的系统200。
流量模式被注册为与配置用于在计算设备上执行的应用相对应(框302)。流量模式202例如可以在应用118的安装过程中,通过与唤醒模式管理器模块124的API交互等等,由应用118来注册。此外,流量模式202可以用于描述网络流量204的各种不同的特征, 例如识别特定分组、回调,识别特定远程端点,等等。
响应于应用处于挂起状态时网络流量中的流量模式的辨别,应用的至少一部分从挂起状态转变到活跃状态(框304)。应用118可以因为各种不同因素而置于挂起状态。例如,操作系统116可以被配置为当焦点移动到另一应用时将应用118置于挂起状态。焦点可以通过最小化应用的用户接口、用户接口(如窗口)从当前桌面用户接口中的前台移动、 离开沉浸式环境中应用118的用户接口的导航等方式来移动。因此,操作系统116可以通过挂起对用户交互不是直接可用的应用的执行来保存计算设备102的资源。
如前所述的,唤醒模式管理器模块124可以从网络流量204辨别流量模式202,并且将应用118的至少一部分(如网络功能206而非其他功能208)转变到活跃状态,以处理所识别出的网络流量204。因此,唤醒模式管理器模块124可以转变网络流量204所属的特定应用118,甚至应用118的特定部分。唤醒模式管理器模块124的使用的另一例子可以参考下面的附图找到。
图4描绘了示例实施方式中的过程400,其中流量模式的辨别用于唤醒应用的至少一部分。过程的各方面可以实施为硬件、固件、软件或其组合。过程被示为一组框,该组框指明由一个或多个设备执行的操作,并且用于通过各个框来执行操作的这些过程不必限于所示出的顺序。下面讨论的一些部分将参考图1的环境100以及图2的系统200。
监控由计算设备的网络接口设备接收的网络流量(框402)。计算设备102例如可以在网络接口设备112处接收网络流量,其可以被配置为物理设备,也可以实施为支持VPN 和隧道技术等的虚拟设备。
在监控的网络流量中辨别流量模式(框404)。像前面一样,可以辨别各种不同的流量模式,例如分组、发送实体等等。根据该流量模式,识别与辨别的流量模式相对应的计算设备的应用(框406)。例如,一个或多个应用可以向唤醒模式管理器模块124预注册以接收特定的网络流量。响应于该识别,唤醒所识别的应用的至少一部分(框408),如网络功能 206、整个应用118等。唤醒模式管理器模块124的示例操作 的进一步讨论可以参考实施方式示例来找到。
网络设备管理器樽块图5是示例实施方式中系统500的图示,示出了图1的网络代理模块122的网络设备管理器模块126的示例操作。如前面所描述的,操作系统116的网络代理模块122以及相应地网络设备管理器模块126可以被定位为网络接口设备112与应用118、120之间的中介。 作为中介,操作系统116可以知道连网活动从而能确定地告知网络接口设备112是否可以进入低功率模式,如网络安静模式。
例如,当网络设备管理器模块126例如通过监控回调以及确定最后一个回调何时结束来确定涉及计算设备的应用的网络流量502已结束时,该模块可以用来促使网络接口设备112进入低功率模式。因此,在这个例子中网络流量502包括来自应用118、120的外出(egress)流量。
作为响应,网络设备管理器模块126可以促使网络接口设备112从高功率模式504 转变到低功率模式502。如其名字所表示的,这些模式是通过网络接口设备112在模式中消耗的功率量来区分的。在一个例子中,高功率模式504被配置为使得能够通过网络接口设备112发送和接收数据。在这个例子中,低功率模式506被配置为使得网络接口设备112 的发送功能被临时禁止从而降低了功率消耗。因此,由于流出活动被抑制并因此仅探测唤醒模式,所以就意味着能够影响系统的流量仅限于与唤醒模式匹配的分组,或者在系统计算发起流出活动(如保持活动的活动)的时间时的分组。也设想了各种其他例子。
这样,网络设备管理器模块126可以主动确定何时网络接口设备112不再被期望用于流出流量并相应的作出反应,而不是像以前的技术那样依赖于长达30秒的非活动时段的检测。因此,通过将操作系统116定位为中介而提供的对于网络流量502的知识,可以用来保存计算设备102的资源。
网络设备管理器模块126也可以支持延长和/或维持网络接口设备112的低功率模式506为期望的时间段的技术。如前所述的,传统技术允许应用118、120不受约束地访问网络接口设备112,这会对计算设备102的资源产生不良影响。因而,将网络设备管理器模块126定位为应用118、120与网络接口设备112之间的中介,可以用来对高功率和低功率模式504、506进行管理。
例如,网络设备管理器模块126可以支持用以限制应用118、120对处于低功率模式506的网络接口设备112的访问的“黑洞”技术。这能以多种不同的方式执行,如使网络接口设备112不可用、阻拦从应用118、120到网络接口设备112的通信分组、在低功率模式 506期间将错误码向回提供给应用118、120、指示丢弃的分组事件等等。因此,网络设备管理器模块126可以限制应用118、120将网络接口设备112从低功率模式506唤醒到高功率模式504的能力,进而保存计算设备102的资源。
网络设备管理器模块126还可以通过管理哪一网络接口设备112在给定时间点可以被访问,来支持管理多个不同网络接口设备112的使用的技术。例如,计算设备102可以被配置为移动通信设备(如无线电话),并且包括被配置为通过W1-Fi和蜂窝(如3G、4G、 LTE)网络进行通信的网络接口设备112。
在用于W1-Fi的网络接口设备112处于高功率模式的情形中,网络设备管理器模块126可以促使用于蜂窝网络的网络接口设备112进入低功率模式。并且,试图与蜂窝网络交互的应用作为替代被路由到W1-Fi网络。通过这样的方式,网络连接管理器模块126 可以阻止应用118、120与“错误的”网络接口设备112通信,进而通过不唤醒该设备来保存计算设备102资源。
网络设备管理器模块126也可以被配置为在低功率模式时维持连接。例如,操作系统116的应用118、120和/或服务可能需要维持第二层的连接性以维持与接入点的连接。这可能包括以设定的间隔周期性地从低功率模式506唤醒以与接入点进行通信。同样, 也可以使用类似的技术维持第三层的连接性以通过与HTTP服务器通信来维持IP地址,如服务器被配置为以设定间隔刷新地址的情形。维持网络连接性的进一步讨论可以在下面讨论的“保持活动”部分中找到。
图6是示例实施方式 中另一系统600的图示,示出了网络设备管理器模块126的示例操作。该系统600是针对操作系统116辅助式网络接口设备112管理可采用的架构的实施方式示例。
网络设备管理器模块126在这个例子中被实施为驻留在ndis. sys 602中的逻辑组件,并负责控制网络接口设备112的功率模式。网络设备管理器模块126可以被配置为暴露每适配器NID活跃状态(如NIC活跃状态),以支持对网络接口设备112的颗粒化功率控制。
NID活跃状态可以用参考计数器(reference counter)实施。当计数器到零时, 网络设备管理器模块126将网络接口设备112转变到低功率状态。当计数器从零增长到I 时,NDIS 602将网络接口设备112带到高功率状态,如“工作”功率状态。
如图所示,操作系统116的组件可以用来出于各种目的例如通过向NDIS 602发送私有IOCTL来增加和/或减少参考计数器。在一个或多个实施方式中,与功率依赖协调器 (PDC) 606通信的WCM 604是被允许“长”时间持有NID活跃参考的单个组件,如网络活跃周期的整个持续时间。其他组件的每一个则被允许在单个操作期间获得NID活跃参考,如 IP地址更新。
WCM 604可以被配置为收听I3DC 606生成的网络安静进入/退出事件,并根据接口选择逻辑将其转化成NIC活跃状态。WCM 604可以在适配器到来时获得参考,以防止NDIS 602关闭网络接口设备112。
WffAN 608可以使用NIC活跃参考来使得能够选择媒介专用功能,如位置传感器服务所请求的位置扫描功能。WLAN 610可以使用NIC活跃参考来选择媒介专用操作,如由IHV 提供的服务控制的供应商专用功能。DHCP 612客户端可以用来在网络安静模式期间更新 IP地址,从而在这个操作期间保持NID活跃参考,以确保网络接口设备112的可用性。TCP/ IP 614可使用NID活跃参考计数器来保持网络接口设备112在这个操作期间处于D0,以在网络安静模式期间刷新IPv6无状态地址自动配置616。NDIS 602可以在适配器初始化期间和在每个网络接口设备112生成唤醒信号使用临时(如3秒)NIC活跃参考。因此,如果到超时过期时仍然没有其他组件要使用网络接口设备112,则网络设备管理器模块126会将网络接口设备112转变为低功率状态。
图7描绘了示出网络接口设备安静转变的示例实施方式700。实施例700包括图 6的NDIS 602以及功率管理器702和迷你端口 /总线704。当NID活跃参考计数器变为零时,NDIS 602执行该功率转变操作。在NID安静转变期间,NDIS 602可以向功率管理器 702上报网络接口设备112空闲,并在为设备请求Dx IRP前等待确认。
图8描绘了示出网络接口设备活跃转变的示例实施方式800。实施方式800包括图6的NDIS 602以及图7的功率管理器702和迷你端口 /总线704。在图示的例子中,当 NID活跃参考计数器从零变到I时NDIS 602执行该功率转变操作。NIDS 602可以从功率管理器702请求设备活跃状态,并等待“功率要求回 调”。根据该回调,NDIS 602为设备请求DO IRP。DO IRP结束时,NDIS 602在向迷你端口 /总线704驱动器发送更新的功率状态前等待“活跃条件回调”。
图9描绘了示出系统睡眠转变的示例实施方式900。实施方式900也包括图6的 NDIS 602以及图7的功率管理器702和迷你端口 /总线704。在系统睡眠转变期间,NDIS 602通过功率管理器702为设备挂起功率框架管理,并在请求Dx IRP前等待确认。
图10描绘了示出系统恢复转变的示例实施方式1000。实施方式1000也包括图 6的NDIS 602以及图7的功率管理器702和迷你端口 /总线704。在系统恢复转变期间, NDIS 602为网络接口设备112请求DO IRP,并在DO IRP结束时,通过功率管理器702促使恢复功率框架操作。
图11描绘了示例实施方式中的过程1100,其中确定网络流量已结束,并且网络接口设备被操作系统转变为低功率模式。过程的各方面可以实施为硬件、固件、软件或其组合。过程被示为一组框,该组框指明由一个或多个设备执行的操作,并且用于通过各个框执行操作的这些过程不必限于所示出的顺序。下面讨论的一些部分将参考图1的环境以及图 5-10的系统和不例实施方式。
操作系统确定与计算设备的一个或多个应用相关联的网络流量已经结束(框 1102)。可以有多种方式作出该确定。例如,网络设备管理器模块126可以监控涉及应用 118,120以及网络接口设备112的流出和流入的流量。从而网络设备管理器模块126可以确定何时向请求提供了答复,例如完成回调。通过这样的方式,网络设备管理器模块126可以确定每一个操作在何时完成,而无需等待规定的“空闲”时段。
响应于该确定,操作系统促使网络接口设备转变为降低网络接口设备功率消耗的模式(框1104)。继续前面的例子,网络设备管理器模块126可以确定网络流量502已经结束,并因此促使网络接口设备112进入降低功率消耗的模式,如低功率模式506。
网络设备管理器模块126还可以提供结合该模式使用的多种功能。例如,网络设备管理器模块126可以促使网络接口设备112在处于降低功率消耗的模式时,通过操作系统维持与无线接入点的连接性(框1106 )。因此,这个例子中,网络接口设备112可以维持前述的第二层连接。在另一个例子中,网络设备管理器模块126可以促使网络接口设备112 在处于降低功率消耗的模式时,通过操作系统维持互联网协议(IP)地址(框1108)。因此, 这个例子中网络接口设备112可以维持第三层连接,以刷新网络接口设备112的IP地址。 还设想了各种其他的示例。
网络接口设备也可以被配置为在接收到预注册通知时唤醒(框1110)。例如,即使网络接口设备112被置于低功率模式506,网络接口设备112仍然可以配置为接收通信,例如流入分组。这些通知可以是预注册的,以使得特定通知促使网络接口设备112从网络安静模式唤醒并与操作系统116进行通信,如以便指示引起通信的特定端点。也设想了各种其他类型的预注册,如参考实施方式示例所描述的包含在数据中的特定四元组模式。
图12描述了示例实施方式中的过程1200,其中网络接口设备在低功率模式期间对应用不可用。过程的各方面可以实施为硬件、固件、软件或其组合。过程被示为一组框, 该组框指明由一个或多个设备执行的操作,并且用于通过各个框来执行操作的这些过程不必限于所示出的 顺序。下面讨论的一些部分将参考图1的环境以及图5-10的系统和示例实施方式。
当网络接口设备处于高功率模式时,操作系统使得网络接口设备对计算设备的一个或多个应用可用(框1202)。例如,网络设备管理器模块112可以暴露网络接口 112为可用,用于使用网络114发送和接收数据的通信。
当网络接口设备处于低功率模式时,操作系统使得网络接口设备对于计算设备的一个或多个应用不可用(框1204)。例如,网络设备管理器模块126可以实施网络安静模式来降低功率消耗,如响应于确定涉及应用118、120的网络流量已结束。该安静模式可以具有设定的时间量,可以响应于事件而退出,等等。该不可用性可以包括前面所描述的“黑洞” 技术的使用,以使得应用118、120在该时间期间不被允许“唤醒”网络接口设备112。
当该网络接口设备不可用时使得另一网络接口设备对于一个或多个应用可用(框 1206)。如前面描述的,计算设备102可以包括多个网络接口设备。相应地,网络设备管理器模块126可以管理将哪些设备置于高或低功率模式以保存计算设备的资源,如使网络接口设备112的单独一个对于因特网连接可用。
例如,网络设备管理器模块126可以采用路由技术以防止不小心将“错误”的网络接口设备112唤醒。继续前面的例子,被指定使用变得不可用的网络接口设备传输的、从一个或多个应用接收到的数据被路由到其他网络接口设备(框1208)。这例如可以用来这样路由数据,其中由应用118意在使用非活跃的蜂窝网络接口设备传输的数据被自动路由到活跃的网络接口设备,例如W1-Fi设备。
因此,操作系统可以被配置为支持限制计算设备的一个或多个应用对被置于降低功率消耗的模式的网络接口设备的访问的技术。此外,网络接口设备被配置为响应于接收到通知,如来自特定端点的推送通知,而从该模式唤醒。维持网络连接的进一步讨论可以参考下面的部分找到。
保持活动管理器模块图13是示例实施方式的系统1300的图示,示出了图1的网络代理模块122的保持活动管理器模块128的示例操作。保持活动管理器模块128代表网络代理模块122用以维持网络114上的通知信道的功能。例如,保持活动管理器模块128可以用于计算定义网络通信1304之间的间隔的保持活动间隔1302,该间隔足以保持应用118、120与端点1306之间的通知信道打开,端点1306例如是网络服务的服务器。因此,保持活动间隔1302可以被计算来描述用以经由网络114,例如经由一个或多个通知信道,维持通信的状态的通信频率。
网络代理模块112可以管理多种不同的通知信道。例如,应用118可以配置为支持电子邮件通信,因此可以与电子邮件服务端点进行交互。应用118也可以被配置为支持即时消息传递,因此可以与另一端点(如即时消息传递服务的服务器)通信。因此,单个应用 118可以支持多个通知信道。此外,应用118、120也可以使用不同的通知信道与同一端点通信。因此,保持活动管理器模块128可以处理多种不同的涉及经由网络114的通信的通知信道。
此外,保持活动管理器模块128可以用多种方式计算保持活动间隔1302。在一个这种实施方式中,可以基于应用118例如经由通知信道与之进行通信的端点1306的服务器超时间隔来计算保持活动间隔1302。例如,保持活动管理器模块128可以基于由配置为与端点1306交互的应用指定的已知超时来确定服务器超时间隔。
例如,应用118可以配置为与特定的端点交互,如社交网络服务。因此该应用可以与那个超时的服务器超时间隔“知识”一起被编码,以使得应用1 18可以配置为维持与那个端点的通知信道,例如促使通信被发送以维持与端点1306的状态。因此,在这个例子中,保持活动管理器模块128可以自己根据应用118确定该间隔。还设想了其他的例子,例如先验地确定端点1306的服务器超时间隔,可以基于(如通过检测故障和重调整)监控到的计算设备与端点1306之间的交互,等等。
在另一这样的实施例中,可以使用处理网络114的中介设备1308的网络超时间隔来计算保持活动间隔1302。例如,网络接口设备与端点1306之间的网络连接可能包括多种中介设备1308,如网络地址转化设备、代理、防火墙、无线接入点等等。保持活动管理器模块 128可以用多种方式确定网络超时间隔。
例如,保持活动管理器模块128可以经由网络114和相应的中介设备1308,与具有“已知”或“已知很长”的服务器超时间隔的端点进行连接,如可用于这样的确定的测试设备。保持活动管理器模块128然后可以监控与该已知端点的连接,以确定中介设备1308 何时“超时”了,从而确定中介设备1308的网络超时间隔。网络超时间隔可以由保持活动管理器模块128保存,以用于计算保持活动间隔1302。例如,该网络超时间隔可以保存为专用于网络接口设备112通过其接入网络114的特定网络。
在一个或多个实施方式中,可以基于端点1306的服务器超时间隔、中介设备1308 的网络超时间隔、甚至该两者来计算保持活动间隔1302。例如,保持活动管理器模块128计算保持活动间隔1302,以在维持通知信道时有效地利用计算设备102的资源。例如,保持活动管理器模块128可以将网络超时间隔确定为15秒、服务器超时间隔确定为20秒。因此,保持活动管理器模块128可以以15秒间隔唤醒网络接口设备112来与端点1306进行通信,从而保持端点1306以及中介设备1308活跃。因此,在这个实例中,保持活动管理器模块128可以避免以15秒间隔和20秒间隔两者唤醒网络接口设备112,但仍然使两设备能够维持状态。
因此,可以计算单个网络超时值,取这些值的最小值(如基准层)来计算描述何时发送并发的“保持活动”的合并时间。因此,网络超时间隔可应用于多个服务器连接。
此外,一个或多个实施方式可以处理失去网络连接。网络可能不一致,以使得连接不时丢失。这种情况发生时,可以提供到服务器的持续连接。因此,这些实·施例可以采用自动检测何时网络又变得可用的能力。例如,在W1-Fi网络上,这可以经由“网络列表卸载”、 经由操作系统自身等等,以高效的方式用硬件或固件完成。因此,操作系统可以经由回调例程将存在的网络通知给这类应用,然后这些应用可以重建与推送通知服务器的连接,例如长时间的连接。因此,可以执行合并的通知以允许多个通信应用重建连接,这可以用于优化本地计算资源的使用,以及优化网络接口设备资源的使用。
保持活动管理器模块128也可以使用技术来处理应用118、120。例如,保持活动管理器模块128可以被配置为将应用118、120要发送的通信批处理,以维持通知信道。因此, 像之前那样,保持活动间隔1302可以被配置用于高效利用计算设备102的资源,例如电源 108。
例如,保持活动管理器模块128可以确定应用118被配置为以10秒间隔发起“保持活动”通信,并且应用120被配置为以8秒间隔发起“保持活动”通信。因此,保持活动管理器模块128可以针对应用118、120两者以8秒间隔唤醒网络接口设备112来执行通信。 通过这样的方式,保持活动管理器模块128可以合并应用118、120针对各个端点1306的通知信道发起的“保持活动”,以节约功率和其他资源。因此,保持活动管理器模块128可以将保持活动间隔1302基于各种因素,并且还可以调节保持活动间隔1302,可以参考下面的附图找到其进一步的讨论。
图14是示例实施方式中的系统1400的图示,示出了图13的计算和调节保持活动间隔的示例实施方式。如前面所描述的,通过中间网络设备的对通知信道的维持对于访问网络114的应用118、120是个问题。传统技术包含定义发送/接收分组的间隔的硬编码值以保留状态。然而,本文中描述的技术是计算动态保持活动间隔,例如使用到给定远程目的地的测试连接、通过自己对计算设备102的应用118、120的检查、通过使用网络和服务器超时间隔等等来计算。图14的系统1400图示了调节图13的保持活动间隔1302的例子。在这个例子中,初始计算的保持活动间隔在初始阶段被设置为T=T(max)(框1402)。然后尝试低于当前T的参考点(框1404)。这可以包括利用T(min)来轮询W(min),其中W表示轮询之间的重连时间(框1406)。这也可以包括积极调谐,其中对T增加V,并且上限值为T (max)(框1408),其中V表示主动调谐的增量。系统1400还可以包括精细调谐,其中对该值增加V/Y,其中Y表示主动增量的1/Y。可以利用这些值来确定稳定状态,在该稳定状态中,T等于所检测的值,而T (LKG)是绝对时间。在图中,Z代表执行重试的数目,其可以被设置来处理网络错误,X代表成功的保持活动(KA)的数目。保持活动管理器模块128的操作的进一步讨论可以参考下面的过程找到。图15描绘了示例实施方式中的过程1500,其中保持活动间隔被计算出来并被用于维持一个或多个通知 信道。过程的各方面可以实施为硬件、固件、软件或其组合。过程被示为一组框,该组框指明由一个或多个设备执行的操作,并且用于通过各个框来执行操作的这些过程不必限于所示出的顺序。下面讨论的一些部分将参考图1的环境以及图13-14的系统和示例实施方式。计算设备的操作系统计算保持活动间隔(框1502)。参考图13和14的描述,可以用多种方式计算保持活动间隔,如基于网络超时间隔、服务器超时间隔,基于针对多个应用118、120的保持活动通信调度,等等。保持活动间隔用以维持计算设备的一个或多个应用与网络之间的一个或多个通知信道(框1504)。例如,保持活动管理器模块128可以监控用以经由通知信道发送和接收数据的网络通信。如果一个或多个通知信道在不包含网络通信1304的情况下达到保持活动间隔,则保持活动管理器模块128可以通过与相应端点1306通信来维持该信道。操作系统也可以基于监控到的对保持活动间隔的使用来调节保持活动间隔(框1506)。例如,保持活动管理器模块128可以确定通知信道由于到达网络或服务超时间隔而停止运行。然后保持活动管理器模块128可以“向下”调节保持活动间隔1302 (如小于由该间隔定义的时间量),调节到时间量小于所观察到的其中信道超时的时间量。当然,还设想了其他例子,如参考图14描述的增加保持活动间隔1302。图16描绘了示例实施方式的过程1600,其中保持活动间隔被计算出来以批处理来自应用的保持活动通信。过程的各方面可以实施为硬件、固件、软件或其组合。过程被示为一组框,该组框指明由一个或多个设备执行的操作,并且用于通过各个框来执行操作的这些过程不必限于所示出的顺序。下面讨论的一些部分将参考图1的环境以及图13-14的系统和不例实施方式。为计算设备上可执行的多个应用的每一个确定被指定用来经由网络维持与相应端点的通知信道的一个或多个服务器超时间隔(框1602)。例如,保持活动管理器模块128可以检查应用118、120,以确定要被相应应用用来维持与相应端点的通知信道的服务器超时间隔。根据一个或多个服务器超时间隔,为多个应用的每一个计算保持活动间隔(框1604)。如参考图13所描述的,保持活动管理器模块128可以针对不同的服务器超时间隔,基于资源利用的效率来确定保持活动间隔1302。然后保持活动间隔可以用于如指定的那样唤醒网络接口设备以维持通知信道(框1606)。例如,保持活动管理器模块128可以确定当网络接口设备112处于低功率模式时两个通信信道都没发生网络通信1304。相应地,保持活动管理器模块128可以唤醒网络接口设备112,来以保持活动间隔1302与相应端点1306进行通信,从而有效利用计算设备102的资源。还设想了如上面描述的以及参考下面的实施方式示例进一步描述的其他各种例子。实施方式示例
图17和18描绘了示出图1的网络连接性代理122的实施方式示例的系统1700、1800。如前面参考图1描述的,对基于片上系统的设备中称为“连接待用(standby)”的系统状态的支持,可以提供用于实现“永远在线、永远连接”(AOAC)用户体验的机会。例如,当没有“在焦点中”,例如没有在前台中时,可以挂起应用。结果是,网络114和网络接口设备112可以进入“网络安静模式”(netqm)。在这个模式中,操作系统116可以阻止来自设备的外出分组,同时确保第二层连接性和第三层身份被维持。来自被称为功率依赖协调器(PDC)的组件的指示用以退出该安静模式。当完成涉及网络114连接的任务时,网络代理模块122可以促使网络接口设备112再次进入网络安静模式,并保持在该状态,直到PDC指示了退出事件为止。

图17示出了包含本设计的系统1700的概览。该图示出了包括轻量级聊天桩(stub)1704的聊天应用(例如被配置为用于经由网络114进行聊天),该轻量级聊天桩1704被配置成为聊天应用1702处理连接和其他簿记(bookke印ing)。聊天应用1702也包括相对“重量级”的聊天Π 1706,应用1702的一部分与聊天桩1704表示的轻量级连接桩相分离。这是可用于导向应用1702的功能的多种技术之一。过程寿命管理器1708还被图示为代表管理应用1702的生命周期的功能。换句话说,当应用1702从用户的焦点移开(如移到后台)时,PLM 1708可以中断聊天Π 1706过程并在存储器中挂起聊天桩1704。系统1700可以利用内核代理基础设施,其包括当如前所述针对应用1702发生感兴趣的事件时再水化聊天桩1704的机制。通过这样的方式,计算设备的资源可以得到保存,例如计算设备102的CPU可以进入安静模式并保持处于这种模式,直到传入消息触发唤醒、内核代理为周期性的活动唤醒系统等等为止。网络连接性代理(NCB)1710 (其可以与图1的网络代理模块122相对应,也可以不相对应)可以采用多种功能,其用唤醒模式管理器1712和保持活动管理器1714表示。唤醒模式管理器(WPM)1712被配置为确保应用1702基于网络事件能够“再水化”,例如在检测到特定模式时唤醒。保持活动管理器1714被配置为确保为应用1702维持通知信道,例如针对传入推送通知的从云服务的可达性。例如,应用1702可以用图18的BI 1802注册工作条目,从而向操作系统116指示应用1702对保持活动的活动感兴趣。然后操作系统116可以确定合适的经过合并的保持活动间隔以唤醒应用1702,该应用1702已经注册了回调以指示在预定时间量内(如数秒内)允许流出分组活动。BI 1802可以按CUP以及存储器资源来“沙箱”工作条目。这允许应用1702执行到相应端点(如“在云中”的服务)的周期性“保持活动”以维持可达性。这也可以用于限制应用由于过多的“保持活动”而低效率使用资源的能力。操作系统与通知服务(如窗口通知服务)相结合,可以用于确定前述的动态保持活动间隔。例如,动态保持活动间隔可以实施为“指数倒退”,其对间隔定义的时间量进行翻倍,该间隔保守地从4分钟间隔开始,并增加到连接仍然被维持的值。通知服务可以为这个目的而使用测试连接,以确定动态间隔。在一个或多个实施方式中,保持活动管理器1714不在应用状态或要处于连接待用或活动/在线的系统间进行区分,尽管也设想了其他实施方式。唤醒模式管理器1712代表为网络接口设备,如网络接口卡(NIC) 1716,探测适当唤醒模式的功能。唤醒模式管理器1712可以促使NIC 1716在网络安静模式准入时进入“LAN唤醒”模式。例如,NIC 1716可以转变到D3模式,其中NIC 1716被配置为如果传入分组与一组唤醒模式匹配,则接受并递送该传入分组。如果这样,这可以使得NIC 1716转变到活跃状态。唤醒模式可以从多种源得到,例如针对每一个唤醒使能连接的“〈源地址,目的地址,源端口,目的端口,传输协议〉”。在一个或多个实施方式中,NIC 1716将促使唤醒的传入分组传递给协议栈(与放弃/丢弃传入分组相反),因为这种分组的丢失会影响支持诸如VoIP特征的应用的实时响应性。

可以将运行时间API表面暴露给被配置为使用操作系统116所提供的保持活动以及远程唤醒功能的应用。该库可以用于允许应用执行多种功能,包括
#指示创建通知信道(如BeginSetup);
指示通知信道的建立完成(如EndSetup);
#在数分钟内设置期望的保持活动间隔(如ServerKeepAliveIntervalTime);
为保持活动事件和远程唤醒事件注册后台任务处理器;以及 #向系统指示保持活动间隔不够(如DecreaseKeepAlivelnterval)。因为通知系统可以实施为连续执行的入箱组件,所以保持活动事件的待执行工作条目码可以通过激活代理方法来触发。激活代理可以隐藏在运行时间库中,并通过私有API激活。NCB服务检验可以用于检验过程的完整性级别。代理创建WNF事件,并为WNF事件消息监听WNF信道。当BI (作为NCB服务/TCPIP. sys调用BiSignalEvent的结果)发布WNF事件消息时,代理可以唤起(invoke)用于通知服务的后台任务处理器。运行时间API库可以使用LRPC以便与宿于IP帮助服务中的NCB子服务(Ncbsvc.dll)进行通信,以向NCB提供保持活动时间,并为保持活动和唤醒事件接收事件名称。然后运行时间API调用代理基础设施API来将应用提供的回调与代理基础设施提供的事件相关联。图18的系统1800包括NCB注册器1804,其被配置为隔离NCB服务1806使用的实际通信接口,以与操作系统116的其余部分对话。例如,运行时间API使用的RPC可以被隔离在NCB注册器中。该注册器可以打开RPC服务器端点并监听应用。应用可以使用上面描述的运行时间库来连接到该RPC端点。类似地,实际的BI 1802 API访问可以隐藏于如图示的NCB注册器1804中。这允许保持活动管理器1714从架构改变中隔离出来。NCB注册器1804可以调用BI 1802 API来创建“保持活动”以及“唤醒”事件。NCB注册器1804的其他部分可能涉及与WPM 1808通信。保持活动提供器接口 1810被配置为允许WNS注册成为保持活动间隔提供器,并可以使用LRPC用于与WNS通信。WNS可以使用保持活动提供器接口 1810注册的回调来提供保持活动间隔估计。保持活动提供器接口 1810可以基于每一网络(NLM ID)将估计缓存于NLM缓存库1812中。可以通过在保持活动提供器接口与DA站点管理器之间可能共用的库来访问该NLM缓存。保持活动管理器1714可以被配置为从保持活动提供器请求保持活动间隔估计。可以使用“SetThreadPoolTimef’API创建计时(可以是被合并的)器。可以将时间设置成T_WNS和(T_APP-由应用请求的保持活动间隔)的最小值。当保持活动计时器期满时,保持活动管理器1714可以通过调用NCB注册器1804来信号传递保持活动事件。NCB注册器1804然后可以调用BI 1802 API以触发待调度的工作条目。应用可以向NCB提供所提供的间隔太长的暗示。这可以与应用ID以及通知信道ID 一起用来使用前面描述的NLM缓存库1812基于每一网络再次存储在缓存中。用于识别通知信道的模型可以基于“Start/Done”模型,该模型描画了过程范围的时间跨度,在该时间跨度期间,NCB将每个通过过程(除了回路)建立的TCP连接对待为通知信道。然而,Start/Done时间跨度具有单组参数,整体被称为一个“NCContext”,其应用于该跨度期间创建的每个连接。应当注意,通常遇到NCContext与TCP连接之间的——对应关系。然而,Start/Done模 型并不保证这种关系,因此该设计可以在存在多个TCP连接与单个NCContext跨度相对应的假设下操作。可以通过包括过程ID、注册器创建并使用的不透明NCContext ID、可选不透明通知信道ID (在事件信号传递期间传递给BI,因此对应用有意义)以及可选远程唤醒代理事件的元组来识别该跨度。NCB 注册器 1804 可以被配置成向 WPM 指示 Start (PID, NCContextID, AppNCID,BrokeredEvent)和DoneO (如设置和清除NCContext)。NCB注册器1804也可以确保在Start/Done时间跨度期间实际的应用过程PID保持完整无损(例如没有被回收)。NCB注册器1804可以通过使用参考客户端过程的RPC API来达到该目的。NCB可以经由NSI 1814向WPM 1808指示Start以及Done。WPM可以为这个目的而暴露INET NSI对象(其可以与端口预留NSI对象类似)。NCB可以使用NSI设置命令来设置活跃的NCContext (例如Start)以及清除活跃的NCContext (例如Done)。在一个或多个实施方式中,在给定的时间点针对给定的过程具有单个活跃的NCContext。通过给定过程建立的TCP连接可以继承该过程的当前活跃的NCContext (如果有的话)。一旦NCContext被继承,它就可以保持连接到该继承的TCP连接。如果NCB为过程设置了新的活跃的NCContext (例如在清除了先前活跃的NCContext之后),新连接就可以继承该新的NCContext,并且继承了先前NCContext的连接可以保持不受影响。(通过一个或多个TCP连接)被继承的NCContext可以通过NCB服务1806,还通过使用NSI 1814来清除。如果NCContext被清除了,WPM 1808可以停止信号传递关联的远程唤醒代理事件(但是探测的唤醒模式仍然保持完好直到连接被关闭为止)。
因为WPM 1808可以跟踪NCB服务1806控制的某个按过程状态(如活跃的和继承的NCContext),因此可以依赖NCB服务1806来随着应用退出而适当的清理状态(NCContexts)0然而,NCB服务1806过程有可能会非正常地崩溃/退出。为了执行适当的清理,WPM 1808可以通过创建TCP套接字(非绑定或非连接的)以及在套接字上设置私有选项以将其标记为NCB控制套接字的NCB来接收NCB服务过程退出的指示。因为在过程退出时对象管理器适当地关闭了句柄(其包含套接字),所以套接字句柄关闭促使TCP的端点关闭例程被唤起。TCP然后可以基于NCB控制套接字的关闭而清理每一个NCContext。如前面描述的,唤醒模式管理器(WPM)1808 (其可能以tcpip. sys中的TCP模块来实施)可以被配置为跟踪NCContext。TCP可以保持过程与由NCB服务1806设置的关联的一个或多个NCContext的表。在一个或多个实施方式中,对于给定的过程存在一个或零个“活跃的”NCContext,并且对于给定的过程可以存在一个或多个“继承的”NCContext。TCP可以被配置为允许NCB服务运行于其下的单个系统账户设置/清除NCContext。在一个或多个实施方式中,NCContext具有对保持“活跃”的一个参考计数,以及对每一个继承连接的一个参考计数。也就是说,当NCContext既不是活跃的也没有被连接继承时,则它可以被删除。当连接继承NCContext时,如果NIC支持唤醒模式,则WPM 1808可以经由用于唤醒模式探测的NSI 1814方法,向下探测由连接的四元组组成的、下至网络接口设备的唤醒模式。WPM 1808可以跟踪针对每个活跃的NCContext的给定连接是否没能成功地探测到唤醒模式。在“Done”调用期间 NCB服务清除活跃的NCContext之前,NCB服务1806可以为该NCContext发布NSI get以询问该唤醒模式探测状态并将信息返回给应用(例如,系统是否未能探测到与该NCContext相关联的连接的唤醒模式)。对于已利用被代理的远程唤醒事件继承NCContext的每一个TCP连接,无论何时该连接上的TCP由于传入数据而作出数据指示(例如上行调用或接收到结束),TCP都可以信号传递被代理的远程唤醒事件。一旦TCP信号传递远程唤醒事件,它就可以禁用(如解除)关于该NCContext的进一步信号传递,直到NCB服务1806重新装备了远程唤醒事件。在应用的远程唤醒回调将控制返回给唤起该回调的NCB例程之后,NCB服务1806重新装备远程唤醒事件。NL中的SI0_ADDRESS_LIST_S0RT ioctl处理也可以变为知晓当存在针对过程的活跃NCContext时,该过程是否正在发布Ioctl,并且如果是正在发布,则排序逻辑更偏好本地接口而不是隧道接口上的地址。对于通过使用由路由器通告(advertise)的IPv6子网前缀而形成的IPv6地址,WPM 1808也可以保持计数器以用于跟踪剩余的有效寿命。因为路由器通告可能被处于可唤醒的低功率状态的NIC丢弃,因此IPv6前缀超时可以在超时发生前经由明确的路由器请求而被刷新,否则在某些情况下L3身份可能不能被可靠地保留。WPM 1808可以使用NDISAPI以获得对在其上可以发生路由器请求的网络接口的“NIC活跃参考”,以确保NIC"保持”(例如不会因为不具有系统的任何一个所持有的任意NIC活跃参考而进入D3)。示例系统和设备
图19图示包括参考图1描述的计算设备102的示例系统1900。示例系统1900在个人计算机(PC)、电视设备和/或移动设备上运行应用时,为无缝用户体验实现普遍存在的环境。当在利用应用、玩视频游戏、观看视频等等时从一个设备转变到下一个设备的情况下,服务和应用为了共同的用户体验在所有三个环境中基本类似地运行。在示例系统1900中,多个设备通过中央计算设备互连。中央计算设备可以是该多个设备的本地中央计算设备,或可以远离该多个设备。在一个实施例中,中央计算设备可以是通过网络、因特网或其他数据通信链路与多个设备连接的一个或多个服务器计算机的云。在一个实施例中,该互连架构使功能能够跨多个设备递送,从而给该多个设备的用户提供共同的且无缝的体验。该多个设备的每一个都可以具有不同的物理要求和能力,并且中央计算设备使用平台来实现将体验递送到设备,该平台既是为设备量身定做又对所有设备通用。在一个实施例中,创建一类目标设备,并为通用类设备量身定制体验。可以通过物理特征、使用类型或设备的其他共同特征来定义一类设备。在不同实施方式中,计算设备102可以呈现多种不同配置,如计算机1902、移动装置1904以及电视1906应用。这些配置的每一个都包含通常具有不同构成和能力的设备,因此计算设备102可以根据一个或多个不同设备类进行配置。例如,计算设备102可以实施为包括个人计算机、桌面计算机、多屏幕计算机、膝上型计算机、上网本等等的设备的计算机1902类。计算设备102也可以实施为包括移动设备(例如移动电话)、便携音乐播放器、便携游戏设备、平板电脑、多屏幕计算机等等的移动装置1904设备类。计算设备102也可以实施为包括具有或连接到临时观看环境中通常较大屏幕的设备的电视1906设备类。这些设备包括电视、机顶盒、游戏机等等。本文中描述的技术被计算设备102的各种配置所支持,并且不局限于本文中描述的技术的特定示例。这通过使用在计算设备102上包括网络代理模块122、唤醒模式管理器模块124、网络设备管理器模块126和保持活动管理器模块128进行图示。该功能的全部或部分也可以分布在如下面描述的“云上”。云1908包括和/或代表用于内容服务1912的平台1910。平台1910抽象了云1908的硬件(如服务器)和软件资源的底层功能。内容服务1912可以包括当在远离计算设备102的服务器上执行计算机处 理时可以利用的应用和/或数据。内容服务1912可以被提供为因特网上的服务和/或通过诸如蜂窝或W1-Fi网络的订户网络的服务。平台1910可以抽象用以将计算设备102与其他计算设备连接的资源和功能。平台1910也可以用来抽象资源规模以向所遇到的对于经由平台1910实施的内容服务1912的要求提供相应的规模水平。相应地,在互连设备实施例中,本文中描述的功能的功能实施可以分布于整个系统1900。例如,功能可以部分实施在计算设备102上,以及部分可以经由抽象了云1908的功能的平台1910来实施。图20图示了示例设备2000的不同组件,其能被实施成如参考图1和19描述的任何类型的计算设备以实施本文中描述的技术的实施例。设备2000包括实现设备数据2004(例如接收的数据、正在被接收的数据、被调度用于广播的数据、数据的数据分组等等)的有线和/或无线通信的通信设备2002。设备数据2004或其他设备内容可以包含设备的配置设置、存储于设备上的媒体内容和/或与设备的用户关联的信息。存储于设备2000上的媒体内容可能包含任何类型的音频、视频和/或图像数据。设备2000包括经由其能接收任何类型的数据、媒体内容和/或输入的一个或多个数据输入2006,如用户可选择的输入、消息、音乐、电视媒体内容、录制的视频内容以及任何其他类型的从任何内容和/或数据源接收的音频、视频和/或图像数据。设备2000也包括能实施成串行和/或并行接口、无线接口、任意类型的网络接口、调制解调器和任意其他类型的通信接口的任意一个或多个的通信接口 2008。通信接口2008提供设备2000和通信网络之间的连接和/或通信链路,其他电子、计算和通信设备通所述通信网络与设备2000进行数据通信。设备2000包括一个或多个处理器2010 (如任意微处理器、控制器等),其处理各种计算机可执行指令以控制设备2000的操作并实施本文中描述的技术的实施例。可替换地或者附加地,设备2000可以利用硬件、固件或固定逻辑电路的任意一个或组合来实施,其中该固定逻辑电路结合通常在2012处标识的处理和控制电路来实施。尽管未示出,但设备2000可以包括耦合设备中的各种组件的系统总线或数据传输系统。系统总线可以包括不同总线结构的任意一种或组合,例如存储器总线或存储器控制器、外围总线、通用串行总线和/或处理器或利用多种总线结构中任意一种的局部总线。设备2000还包括计算机可读介质2014,例如一个或多个存储器组件,这样的例子包括随机存取存储器(RAM)、非易失性存储器(例如只读存储器(ROM)、闪存、EPROM、EEPROM等的一个或多个)以及磁盘存储设备。磁盘存储设备可以被实施为任意类型的磁或光学存储设备,例如硬盘驱动、可录制和/或可重写光盘(CD)、任意类型的数字多功能盘(DVD)等等。设备2000还可以包括海量存储介质设备2016。计算机可读介质2014提供数据存储机制来存储设备数据2004、各种设备应用2018以及任何其他类型的与设备2000操作方面相关的信息和/或数据。例如,操作系统2020可以被维持为具有计算机可读介质2014并在处理器2010上执行的计算机应用。设备应用2018可以包括设备管理器(如控制应用、软件应用、信号处理和控制模块、特定设备本地的代码、特定设备的硬件抽象层等等)。设备应用2018还包括实施本文中描述的技术的实施例的任何系统组件或模块。在该例子中,设备应用2018包括被示出为软件模块和/或计算机应用的接口应用 2002以及输入/输出模块2024。输入/输出模块2024表示用于向接口提供被配置成捕获输入的设备(如触摸屏、跟踪板、摄像头、麦克风等等)的软件。可替换地或附加地,接口应用2022和输入/输出模块2024可以实施为硬件、软件、固件或其组合。此外,输入/输出模块2024可以被配置为支持多个输入设备,如分别捕获视觉和音频输入的分开的设备。设备2000还包括音频和/或视频输入-输出系统2026,其向音频系统2028提供音频数据和/或向显示系统2030提供视频数据。音频系统2028和/或显示系统2030可以包括处理、显示和/或渲染音频、视频和图像数据的任何设备。视频信号和音频信号可以经由RF (射频)链路、S-视频链路、混合视频链路、分量视频链路、DVI (数字视频接口)、模拟音频连接或其他类似通信链路从设备2000传输到音频设备和/或显示设备。在实施例中,首频系统2028和/或显不系统2030可以头施为设备2000的外部组件。可替换地,首频系统2028和/或显示系统2030被实施为示例设备2000的集成组件。结论
虽然以特定于结构化特征和/或方法学上的动作的语言描述了本发明,但是要理解的是,所附权利要求中限定的本发明不必限于所描述的具体特征和行为。相反,这些具体特征和行为以实现所要求保护的发明的示例形式而被公开。
权利要求
1.一种由计算设备实施的方法,该方法包括 监控通过所述计算设备的网络接口设备接收的网络流量; 在所监控的网络流量中辨别流量模式; 识别与所辨别的流量模式相对应的所述计算设备的应用;以及 响应于所述识别,唤醒所述识别的应用的至少部分。
2.根据权利要求1所述的方法,其中,通过将所网络流量与通过所述识别的应用预注册的流量模式进行比较来执行所述辨别。
3.根据权利要求1所述的方法,其中,通过检查计算设备的网络堆栈以确定针对所述流量模式要唤醒计算设备的多个应用中的哪些应用。
4.根据权利要求1所述的方法,其中,所述唤醒包括唤醒与所述识别的应用的网络功能相对应的所述识别的应用的一部分,而不唤醒与所述识别的应用的网络功能不相对应的所述识别的应用的另一部分。
5.根据权利要求4所述的方法,其中,所述另一部分包括所述识别的应用的用户接口的生成。
6.根据权利要求1所述的方法,其中,所述网络接口设备至少部分地由所述计算设备实施为虚拟设备。
7.根据权利要求1所述的方法,其中,当所述识别的应用处于挂起状态时,执行所述监控、辨别和识别。
8.根据权利要求7所述的方法,其中,响应于焦点从所述识别的应用的用户接口移除,所述识别的应用被置于挂起状态。
9.根据权利要求8所述的方法,其中,由于最小化所述用户接口、所述用户接口从桌面用户接口的前台被移除、或接收到指示与另一应用的用户接口交互的输入而导致所述焦点被移除。
10.根据权利要求1所述的方法,其中,通过在所述计算设备上执行操作系统来执行所述监控、辨别、识别以及唤醒。
11.一个或多个存储指令的计算机可读存储介质,当由计算设备执行时,导致所述计算设备执行如前述权利要求中任一项所述的方法。
全文摘要
描述了唤醒模式管理技术。在一个或多个实施方式中,监控计算设备的网络接口设备所接收的网络流量,并在该监控的网络流量中辨别流量模式。识别与所辨别的流量模式相对应的计算设备的应用;并响应于该识别,唤醒所识别的应用的至少一部分。
文档编号H04L12/12GK103051463SQ20121032903
公开日2013年4月17日 申请日期2012年9月7日 优先权日2011年9月9日
发明者D.G.特勒, K.斯尼尼瓦桑, A.J.里茨, S.拉格胡卡塔, O.N.埃图加, P.R.加德霍苏, D.A.阿尼普科 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1