专利名称:用于唤醒计算设备的集中式服务的制作方法
用于唤醒计算设备的集中式服务
些旦 冃眾
当今的计算设备拥有控制设备的各种子集何时关闭来节省功率的各种功 率模式设置。膝上型计算机通常发现这些功率模式设置是最有用的,所以当计 算设备不在使用中时,可以节省电池寿命。
正在设计越来越多的服务来跟随用户左右以及与用户通信而不论他们可 能身在何处。电子邮件、即时消息收发、IP语音以及其它此类网络服务只是此 类服务的一些例子。然而,当今的"始终在工作"和"始终可用"的世界与在 多数计算设备上可用的降低功率模式的理念产生了直接冲突。换言之, 一旦计
算机进入降低功率模式,许多网络服务就不能再与用户通信来达成期望目标。 概述
公开了用于提供集中式唤醒服务并与之交互的各种技术和方法。提供可用 于允许应用程序预订该唤醒服务的服务器侧唤醒服务。唤醒服务从应用程序中 特定的一个处接收针对特定计算设备的唤醒请求。如果确定转发是合适的,则 该唤醒请求从唤醒服务处被转发到该特定计算设备上的客户机侧通信服务。在 一个实现中,使用诸如由客户机侧通信服务提供的功率信息、用户联系偏好、 和用户在场信息等各种设置来确定转发是否合适。
当该特定计算设备上的客户机侧通信服务在降低功率模式中接收到唤醒 请求时,该计算设备醒来并且确定合适的响应。在一个实现中,合适的响应包 括响应于唤醒服务来确认请求,并且然后进行与请求该唤醒的特定应用程序的 通信。
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些 概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在 用于帮助确定所要求保护的主题的范围。附图简述
图1是一个实现的使用集中式唤醒服务的计算机系统的图示。 图2是示出图1的计算机系统的物理组件中的某一些如何与特定逻辑组件 相关的一个实现的图。
图3是在图1的计算机系统上操作的一个实现的客户机侧通信应用程序的图示。
图4是在图1的计算机系统上操作的一个实现的服务器侧唤醒应用程序的图示。
图5是图1的系统的一个实现的高级处理流程图。
图6是关于图1的系统的一个实现的处理流程图,其示出在提供客户机侧 通信服务时所涉及的各个阶段。
图7是关于图1的系统的一个实现的处理流程图,其示出在提供服务器侧
唤醒服务时所涉及的各个阶段。
图8是一个实现的计算机系统的图示。
详细描述
为促进对本发明的原理的理解,现将对图中所示的各实施例加以参考,同 时也将用具体语言描述它们。不过,需要理解的是,并无意由此作出范围上的 限制。对所述实施例的任何改变和进一步更改,以及在此所述的原理的进一步 应用都可以预期将是本领域技术人员通常能想到的。
该系统可在一般上下文中被描述为从降低功率模式中唤醒计算设备的应 用程序,但是该系统还用于除此之外的其它目的。在一个实现中,此处描述的 一种或多种技术可被实现为服务器侧唤醒服务内、客户机侧通信服务内、和/ 或来自任何其它类型的通过网络来管理应用程序之间的通信的程序或服务的 特征。
在一个实现中,提供允许在计算设备在处于降低功率模式时由网络应用程 序唤醒的集中式唤醒服务。例如,IP语音通信应用程序可以在它希望与特定计 算设备通信时联系唤醒服务。唤醒服务使用关于该特定计算设备的信息来与该 计算设备通信,并且如果该特定计算设备正处于降低功率模式中,则将该计算设备从降低功率模式中唤醒,以便通信可以继续。在一个实现中,诸如一个或 多个策略等各种设置允许特定设备指示它何时应该被唤醒以及何时不应该被 唤醒。
图1是一个实现的使用这种集中式唤醒服务的计算机系统10的图示。一
个或多个唤醒服务器12主存集中式唤醒服务14。此处使用的术语"服务器"
旨在广义地包括计算机服务器、路由器、和/或网络基础结构中存在的可以向网 络上的其它计算机和/或组件提供服务的其它组件。诸如电子邮件、IP语音、
即时消息收发等各种网络应用程序16能够通过如因特网等网络18与唤醒服务 14通信。 一个或多个计算设备20能够通过网络18与唤醒服务14通信。即使 计算设备20正处于降低功率模式中,当网络服务16之一希望与计算设备20 通信时,该特定网络服务16仍可以联系唤醒服务14来寻求协助。
现转向图2, 一个实现的图示出了图1的计算机系统的物理组件中的某一 些如何与特定逻辑组件相关。例如,网络应用程序16与用于因特网服务50的 应用程序编程接口通信以便利用唤醒服务器12的唤醒服务14。特定计算设备 20与如图3中描述的客户机侧通信应用程序200等用于和/或到计算设备的应 用程序编程接口通信。在一个实现中,核心逻辑52和唤醒分组机制56被包含 在如图4中描述的服务器侧唤醒应用程序230等服务器侧唤醒服务14中。唤 醒分组机制56与特定计算设备20通信以便在需要时将特定计算设备20从降 低功率模式中唤醒。
现在转向图3,示出在(图8的)计算设备600上操作的客户机侧通信应 用程序200。在一个实现中,客户机侧通信应用程序200是驻留在(图8的) 计算设备600上的应用程序之一。然而,可以理解,客户机侧通信应用程序200 可另选地或另外地被具体化为一个或多个计算机上的计算机可执行指令和/或 与图8所示的不同的变型。另选地或另外地,客户机侧通信应用程序200的一 个或多个部分可以是(图8的)系统存储器604的一部分、可以在(图8的) 其它计算机和/或应用程序615上、或可以是计算机软件领域的技术人员能想到 的其它此类变型。
客户机侧通信应用程序200包括程序逻辑204,其负责执行在此描述的一 些或全部技术。程序逻辑204包括用于提供可用于在计算设备上在软件或硬件组件上运行以及与服务器上的唤醒服务通信的客户机侧通信服务的逻辑206,
该唤醒服务负责管理来自多个应用程序的连接请求;用于即使计算设备正处于 降低功率模式仍从唤醒服务处接收唤醒请求的逻辑(可以位于硬件、固件、和 /或软件等中)208;用于在接收到唤醒请求时在该唤醒请求适用的情况下将计 算设备从降低功率模式中唤醒的逻辑210;用于确定对唤醒服务器的适当的响 应(例如通过分析一个或多个策略)的逻辑212;用于将如用户联系偏好、可 用性、安全设置、策略设置、以及当前状态等通信细节发送到唤醒服务的逻辑
214;以及其它用于操作应用程序的逻辑220。在一个实现中,程序逻辑204 可用于通过编程,如使用对程序逻辑204中的过程的单一调用而从另一程序调 用。
现在转向图4,示出在(图8的)计算设备600上操作的服务器侧唤醒应 用程序230。在一个实现中,客户机侧通信应用程序200是驻留在(图8的) 计算设备600上的应用程序之一。然而,可以理解,服务器侧唤醒应用程序230 可另选地或另外地被具体化为一个或多个计算机上的计算机可执行指令和/或 与图8所示的不同的变型。另选地或另外地,服务器侧唤醒应用程序230的一 个或多个部分可以是(图8的)系统存储器604的一部分、可以在(图8的) 其它计算机和/或应用程序615上、或可以是计算机软件领域的技术人员能想到 的其它此类变型。
服务器侧唤醒应用程序230包括程序逻辑234,其负责执行在此描述的一 些或全部技术。程序逻辑234包括用于提供可用于允许多个应用程序通过网络 来订阅唤醒服务的服务器侧唤醒服务的逻辑236;用于接收来自应用程序中特 定的-一个的针对特定计算设备的唤醒请求(例如,因为特定应用程序希望与该 特定计算设备通信)的逻辑238;用于在转发被确定为合适的情况下将唤醒请 求转发给该特定计算设备上的客户机侧通信服务的逻辑240;用于与该特定计 算设备上的客户机侧通信服务通信来获得关于该特定计算设备的例如功率信 息、系统连接信息、以及管理配置信息等状态信息的逻辑242;用于在转发唤 醒请求之前与客户机侧通信服务通信来确定转发是否合适的逻辑244;以及其 它用于操作应用程序的逻辑250。在一个实现中,程序逻辑234可用于通过编 程,如使用对程序逻辑234中的过程的单一调用而从另一程序调用。现转向图5-7并继续参照图1-2,更详细地描述了用于实现客户机侧通信 应用程序200和/或服务器侧唤醒应用程序230的一个或多个实现的各个阶段。 图5是系统10的高级处理流程图。在一种形式中,图5的过程至少部分地在 (图8的)计算设备600的操作逻辑中实现。该过程从起始点270开始,在那 里提供至少一个可用于通过网络与一个或多个客户机计算设备通信的服务器, 该服务器拥有唤醒服务(阶段272)。向至少一个应用程序提供通过网络与唤 醒服务通信的能力,该应用程序可用于在其期望与计算设备中特定的一个通信 时将唤醒请求发送到唤醒服务(阶段274)。
向唤醒服务提供与特定计算设备上的客户机侧通信服务通信来获取状态 信息,例如确定唤醒请求的转发是否合适的可操作性(阶段276)。向唤醒服 务提供在唤醒服务基于一组策略确定转发是合适的情况下将唤醒请求转发到 特定计算设备的可操作性(阶段278)。作为一些非限制性示例,该组策略可 以帮助唤醒服务确定将计算设备从降低功率模式中唤醒是否是合适的、计算设 备是否不在降低功率模式中并准备好通信等等(阶段278)。该过程在结束点 280处结束。
图6示出提供客户机侧通信服务时所涉及的各阶段的一个实现。在一种形 式中,图6的过程至少部分地在(图8的)计算设备600的操作逻辑中实现。 该过程从起始点290开始,在那里将关于如何在计算设备处于降低功率模式时 将其唤醒(例如在网络连接改变的任何时候)的细节从计算设备提供给唤醒服 务(阶段292)。随着计算设备进入降低功率模式,计算设备上的客户机侧通 信应用程序通知唤醒服务来指示当前连接细节(阶段294)。唤醒服务可以为 使用这些连接细节的计算设备维护关于最后已知位置的高速缓存(阶段294)。 在稍后的时刻,客户机侧通信应用程序从唤醒服务处接收唤醒请求(阶段296)。 计算设备从降低功率模式中被唤醒并可任选地与通过唤醒服务请求唤醒的特
定应用程序通信(阶段298)。该过程在结束点300处结束。
图7示出提供服务器侧唤醒服务时所涉及的各阶段的一个实现。在一种形 式中,图7的过程至少部分地在(图8的)计算设备600的操作逻辑中实现。 该过程从起始点310开始,在那里接收来自网络服务(例如IP语音、即时消 息收发、电子邮件等等)的、将唤醒请求发送到特定计算设备的请求(因为他协助等等)(阶段312)。使用用户在场信息、功 率信息、以及用户联系偏好来决定是否将唤醒请求从唤醒服务发送到特定计算
设备(阶段314)。如果确定唤醒请求是合适的,则服务器侧唤醒服务将唤醒 请求发送到特定计算设备(例如,以安全数据分组的形式)(阶段316)。如 果唤醒请求成功,则唤醒服务会从特定计算设备处接收到响应,并会通知请求 的网络服务唤醒请求成功因而通信可以继续(阶段318)。如果唤醒请求不成 功,则唤醒服务会通知请求的网络服务唤醒请求不成功(阶段320)。该过程 在结束点322处结束。
如图8所示,用于实现该系统的一个或多个部分的示例性计算机系统包括 诸如计算设备600等计算设备。在其最基本的配置中,计算设备600通常包括 至少一个处理单元602和存储器604。取决于计算设备的确切配置和类型,存 储器604可以是易失性的(如RAM)、非易失性的(如ROM、闪存等)或是 两者的某种组合。该最基本配置在图8中由虚线606来示出。
另外,设备600还可具有附加特征/功能。例如,设备600还可包含附加 存储(可移动和/或不可移动),包括但不限于磁盘、光盘或磁带。这样的附加 存储在图8中由可移动存储608和不可移动存储610示出。计算机存储介质包 括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的 任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。存储器 604、可移动存储608和不可移动存储610都是计算机存储介质的示例。计算 机存储介质包括但不限于,RAM、 ROM、 EEPROM、闪存或其它存储器技术、 CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或 其它磁存储设备、或者可用于存储所需信息并且可由设备600访问的任何其它 介质。任何这样的计算机存储介质都可以是设备600的一部分。
计算设备600包括允许计算设备600与其它计算机/应用程序615进行通 信的一个或多个通信连接614。设备600还可以具有诸如键盘、鼠标、笔、语 音输入设备、触摸输入设备等输入设备612。还可以包括诸如显示器、扬声器、 打印机等输出设备611。这些设备在本领域中公知且无需在此处详细讨论。在 一个实现中,计算设备600包括(图3的)客户机侧通信应用程序200。在另 一个实现中,计算设备包括(图4的)服务器侧唤醒应用程序230。尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解, 所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体 特征和动作是作为实现权利要求的示例形式公开的。落入在此所述和/或所附权 利要求所描述的实现的精神的范围内的所有等效方案、更改和修正都期望受到 保护。
例如,计算机软件领域普通技术人员会认识到在此讨论的示例中所述的客 户机和/或服务器布置、用户界面屏幕内容、和/或数据布局可在一台或多台计 算机上不同地组织,以包括比示例中所描绘的更少或更多的选项或特征。
权利要求
1.一种具有用于使得计算机执行以下步骤的计算机可执行指令的计算机可读介质,所述步骤包括提供可用于在计算设备上运行并与服务器上的唤醒服务通信的客户机侧通信服务,所述唤醒服务负责管理来自多个应用程序的连接请求(206);即使所述计算设备处于降低功率模式,仍从所述唤醒服务处接收唤醒请求(208)以及在从所述唤醒服务处接收到所述唤醒请求时,确定合适的响应(212)。
2. 如权利要求1所述的计算机可读介质,其特征在于,所述计算机可执 行指令是至少部分位于硬件组件上的指令(206)。
3. 如权利要求1所述的计算机可读介质,其特征在于,所述计算机可执 行指令是至少部分位于软件组件上的指令(206)。
4. 如权利要求1所述的计算机可读介质,其特征在于,所述客户机侧通 信服务可用于将通信细节发送到唤醒服务(214)。
5. 如权利要求4所述的计算机可读介质,其特征在于,所述通信细节是 从包括用户联系偏好、可用性、安全设置、策略设置、以及当前状态的组中选 择的(214)。
6. 如权利要求1所述的计算机可读介质,其特征在于,所述客户机侧通 信服务可用于在从所述唤醒服务处接收到所述唤醒请求时将所述计算设备从 降低功率模式中唤醒(210)。
7. 如权利要求1所述的计算机可读介质,其特征在于,所述客户机侧通 信服务可用于在确定合适的响应前分析一个或多个策略(212)。
8. —种具有用于使得计算机执行以下步骤的计算机可执行指令的计算机 可读介质,所述步骤包括提供可用于允许多个应用程序通过网络来订阅唤醒服务的服务器侧唤醒 服务(236);从所述服务器侧唤醒服务处,接收来自所述多个应用程序中的特定一个的、针对特定计算设备的唤醒请求(238);以及如果根据一组策略确定转发是合适的,则从所述服务器侧唤醒服务处将所 述唤醒请求转发给所述特定计算设备上的客户机侧通信服务。
9. 如权利要求8所述的计算机可读介质,其特征在于,所述唤醒服务还 可用于在转发所述唤醒请求之前与所述客户机侧通信服务通信来确定转发是 否合适(244)。
10. 如权利要求8所述的计算机可读介质,其特征在于,所述唤醒服务还 可用于与所述特定计算设备上的客户机侧通信服务通信来获取关于所述特定 计算设备的状态信息(242)。
11. 如权利要求10所述的计算机可读介质,其特征在于,所述状态信息 包括功率信息(242)。
12. 如权利要求10所述的计算机可读介质,其特征在于,所述状态信息 包括系统连接信息(242)。
13. 如权利要求10所述的计算机可读介质,其特征在于,所述状态信息 包括用户管理配置信息(242)。
14. 如权利要求8所述的计算机可读介质,其特征在于,因为所述特定应 用程序期望与所述特定计算设备通信,所以从所述特定应用程序处接收所述唤醒请求。
15. —种用于与处在降低功率模式的计算设备通信的系统,包括 至少一个可用于通过网络与一个或多个客户机计算设备通信的服务器,所述服务器拥有唤醒服务(272);至少一个具有通过网络与所述唤醒服务通信的能力的应用程序,所述应用程序用于在其期望与所述计算设备中特定的一个通信时将唤醒请求发送到所述唤醒服务(274);以及其中所述唤醒服务可用于在其基于一组策略确定转发是合适的情况下将所述唤醒请求转发给所述特定计算设备(278)。
16. 如权利要求15所述的系统,其特征在于,所述唤醒服务还可用于与 所述特定计算设备上的客户机侧通信服务通信来获取关于所述特定计算设备 的状态信息(276)。
17. 如权利要求15所述的系统,其特征在于,所述唤醒服务还可用于在 转发所述唤醒请求之前与所述客户机侧通信服务通信来确定转发是否合适(276)。
18. 如权利要求15所述的系统,其特征在于,所述应用程序是即时消息 收发应用程序(312)。
19. 如权利要求15所述的系统,其特征在于,所述应用程序是电子邮件 应用程序(312)。
20. 如权利要求15所述的系统,其特征在于,所述应用程序是IP语音应 用程序(312)。
全文摘要
公开了用于提供集中式唤醒服务并与之交互的各种技术和方法。提供可用于允许应用程序订阅该唤醒服务的服务器侧唤醒服务。唤醒服务从应用程序中特定的一个处接收针对特定计算设备的唤醒请求。如果确定转发是合适的,则该唤醒请求从唤醒服务处被转发给该特定计算设备上的客户机侧通信服务。当该特定计算设备上的客户机侧通信服务在降低功率模式中接收到唤醒请求时,该计算设备醒来并且确定合适的响应。
文档编号G06F1/32GK101622587SQ200880006009
公开日2010年1月6日 申请日期2008年1月28日 优先权日2007年2月26日
发明者A·B·格拉斯, G·S·米勒 申请人:微软公司