CN104106060A - 支持通知阻塞的功率高效代理通信 - Google Patents
支持通知阻塞的功率高效代理通信 Download PDFInfo
- Publication number
- CN104106060A CN104106060A CN201380009589.5A CN201380009589A CN104106060A CN 104106060 A CN104106060 A CN 104106060A CN 201380009589 A CN201380009589 A CN 201380009589A CN 104106060 A CN104106060 A CN 104106060A
- Authority
- CN
- China
- Prior art keywords
- application
- computing equipment
- notice
- instruction
- notification service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
一种通知服务从应用服务接收包括各种数据的消息,并且将包括该数据的通知提供给适当的计算设备。每个计算设备包括通知***,所述通知***从所述通知服务接收通知并且将那些通知提供给所述计算设备上的适当的应用。如果应用不被允许在计算设备上运行,则所述计算设备上的所述通知***将指示提供给所述通知服务以阻塞针对所述计算设备上的所述应用的通知。所述通知服务停止将以在所述计算设备上通知被阻塞所针对的应用为目标的通知提供给计算设备,直到从所述计算设备接收到要解除针对所述应用的通知的阻塞的指示为止。
Description
背景技术
随着计算已变得越来越普遍和互连,应用服务已被开发来将各种支持功能性提供给在计算机上运行的应用。应用服务时常期望将包括各种数据的消息传送到在计算机上运行的应用。然而,允许这样的通信不是没有它的问题的。一个这样的问题是建立和维持支持应用服务和期望与其通信的应用的各种实例之间的持久性连接的该应用服务会花费大量的金钱,这会防止应用开发者创建他们期望的应用和应用服务。
发明内容
本发明内容被提供来以简化的形式引入在下面在具体实施方式中被进一步描述的概念的选择。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,它也不旨在被用来限制所要求保护的主题的范围。
依照一个或多个方面,在通知服务中从应用服务接收以计算设备上的应用为目标的消息。至少部分地基于来自计算设备的先前接收到的指示做出针对计算设备上的应用的通知是否被阻塞的确定。以应用为目标并且包括来自消息的数据的通知仅响应于确定针对计算设备上的应用的通知不被阻塞而被提供给计算设备。
依照一个或多个方面,从通知服务接收以计算设备上的应用为目标的通知。关于应用是否被允许在计算设备上运行(例如,当前正在运行或者被允许响应于通知的接收而被启动)的确定被做出。如果应用被允许在计算设备上运行则通知被提供给所述应用。然而,如果应用不被允许在计算设备上运行,则指示以应用为目标的通知将不被发送到计算设备的阻塞指示被发送到通知服务。
附图说明
相同的数字在整个附图中被用来指同样的特征。
图1图示了依照一个或多个实施例实现支持通知阻塞的功率高效代理通信的示例***。
图2图示了依照一个或多个实施例实现支持通知阻塞的功率高效代理通信的另一示例***。
图3图示了依照一个或多个实施例的示例代理通信通知***。
图4是图示了依照一个或多个实施例用于实现支持通知阻塞的功率高效代理通信的示例过程的流程图。
图5是图示了依照一个或多个实施例用于实现支持通知阻塞的功率高效代理通信的另一示例过程的流程图。
图6图示了包括示例计算设备的示例***,所述示例计算设备表示可以实现本文中所描述的各种技术的一个或多个计算***和/或设备。
具体实施方式
在本文中讨论了支持通知阻塞的功率高效代理通信。通知服务从一个或多个应用服务接收包括各种数据的消息,并且将包括该数据的通知提供给适当的计算设备。每个计算设备包括通知***,所述通知***从通知服务接收通知并且将那些通知提供给计算设备上的适当的应用。能够出现应用在其中不被允许在特定时间在计算设备上运行(例如,因为应用不在该特定时间运行并且不被许可作为后台应用运行)的情形。如果应用不被允许在计算设备上运行,则计算设备上的通知***将指示提供给通知服务以阻塞针对计算设备上的应用的通知。通知***停止将以在计算设备上通知被阻塞所针对的应用为目标的通知提供给计算设备,直到从计算设备接收到要解除针对应用的阻塞的通知的指示为止。
图1图示了依照一个或多个实施例实现支持通知阻塞的功率高效代理通信的示例***100。***100包括能够经由网络108与彼此进行通信的一个或多个(x)计算设备102、一个或多个(m)应用服务104以及通知服务106。网络108可以是各种不同的网络中的一个或多个,诸如因特网、局域网(LAN)、公用电话网、内部网、个人区域网、其他公用和/或专有网络、其组合等等。
每个计算设备102可以是各种不同类型的设备中的任一个,诸如物理设备或虚拟设备。例如,计算设备102可以是物理设备,诸如台式计算机、服务器计算机、膝上型计算机或笔记本计算机、平板或上网本计算机、移动站、娱乐设施、通信地耦接到显示设备的机顶盒、电视或其它显示设备、蜂窝或其他无线电话、游戏控制台、汽车计算机等等。计算设备102还可以实虚拟设备,诸如在物理设备上运行的虚拟机。虚拟机能够在各种不同类型的物理设备的任一个(例如,上面所列举的各种类型中的任一个)上运行。因此,计算设备102范围可以跨具有基本存储器和处理器资源的全资源设备(例如,个人计算机、游戏控制台)到具有有限的存储器和/或处理资源的低资源设备(例如,传统的机顶盒、手持式游戏控制台)。不同的计算设备102中的多个计算设备可以是相同和/或不同类型的设备。
服务104和106每个都能够使用各种不同类型的计算设备中的一个或多个来实现。与计算设备102的讨论类似,这些不同类型的计算设备范围能够跨具有基本存储器和处理器资源的全资源设备到具有有限的存储器和/或处理资源的低资源设备。
每个计算设备102包括操作***114。操作***114被配置成将计算设备102的底层功能性抽象到可在计算设备102上运行的一个或多个应用116。例如,操作***114可以抽象计算设备102的处理、存储器、网络、文件***、用户接口(UI)、显示器和/或其他呈现功能性,使得可以在不用知道该底层功能性“如何”被实现的情况下编写应用。每个应用116例如可以将待由显示设备渲染和显示的数据提供给操作***114,而不用理解该渲染如何将被执行。
操作***114和应用116能够从计算设备102的用户接收用户输入。能够以各种不同的方式提供用户输入,诸如通过按压设备102的小键盘或键盘的一个或多个键、按压设备102的控制器(例如,遥控设备、鼠标、跟踪板、触摸板等)的一个或多个键、按设备102的触摸板或触摸屏的特定部分、在设备102的触摸板或触摸屏上做出特定手势和/或在设备102的控制器(例如,遥控设备、鼠标、跟踪板、触摸板等)上做出特定手势。用户输入还能够经由其他物理反馈输入提供给设备102,所述其他物理反馈输入诸如轻叩设备102的任何部分、使设备102弯曲或扭转、能够被设备102的运动检测组件(诸如摇动设备102、旋转设备102等)识别的动作等等。还能够以其他方式提供用户输入,诸如经由到麦克风的语音或其他可听输入、经由被图像捕获设备观测到的手或其他身体部分的运动等等。
操作***114同样被图示为包括代理通信通知***118。应用服务104将以特定计算设备102上的应用116为目标的数据提供给通知服务106。特定数据由应用服务104所被提供给的应用116也被称为目标应用。通知服务106接收此数据并且将包括此数据的通知提供给作为用于应用服务104与应用116之间的通信的代理(例如,中介物)的适当的计算设备102。该计算设备102上的代理通信通知***118接收通知并且将通知提供给适当的应用116,假定应用116像在下面更详细地讨论的那样被允许在计算设备102上运行。代理通信通知***118还能够将阻塞指示和/或解除阻塞指示传送到通知服务106。阻塞指示指示更多应用116中的特定一个将不被发送通知,并且能够像在下面更详细地讨论的那样在各种时间(诸如响应于从通知服务106接收到的通知)被传送到通知服务106。响应于阻塞指示,通知服务106停止提供以更多应用116中的那些特定应用为目标的通知(阻塞通知)直到针对那些特定一个或多个应用116的解除阻塞指示被接收到为止。在下面更详细地讨论这些阻塞和解除阻塞指示。
通知服务106能够以各种不同的方式将通知提供给计算设备102。通知服务106可以是例如Windows®推送通知服务(WNS)。有关WNS的附加的信息可从华盛顿州雷德蒙德的微软®公司得到。在一个或多个实施例中,通知服务106使用推送模型(例如,如由WNS所支持的)将通知提供给计算设备102。使用推送模型,通知服务106将包括从应用服务104接收到的数据的通知存储在通知队列中,并且响应于触发事件将队列中的通知发送到计算设备102。用于发送通知的触发事件能够采取各种形式,诸如成批间隔的期满、到达队列门限、接收到高优先级通知等等。在一些情形下,诸如如果计算设备102处于节电(例如,电池寿命)是不重要的状态,如果一种通知指示通知队列将被绕过等等,则通知还可以绕过通知队列。因此,通知服务106能够异步地发送通知,并且计算设备102不必(并且典型地不)知道何时将从服务106接收到下一个通知。可替换地,能够使用其他模型,诸如计算设备102在其中以各种间隔查询通知服务106以检查通知的轮询模型。
在一个或多个实施例中,对于每个计算设备102,在通知服务106与计算设备102之间建立单个通信链路或连接。以特定计算设备102上的应用116中的任一个为目标包括从多个不同的应用服务104接收到的数据的通知经由单个通信链路或连接被传送到该特定计算设备102。尽管能够像在下面更详细地讨论的那样建立不同的通信通道,但是针对这些不同的通信通道的通知被复用到单个通信链路或连接上。因此,计算设备102不必消耗功率来维持计算设备102与通知服务106之间的多个通信链路或连接,而不管经由通知服务106将数据发送到应用116的应用服务104的数目如何并且不管该计算设备102上的应用116的数目如何。尽管参考通知服务106与计算设备102之间的单个通信链路或连接进行讨论,但是可替换地多个(尽管典型地小于门限数目)通信链路或连接能够被用来将通知提供给计算设备102。
附加地,尽管参考***118并入操作***114对代理通信通知***118进行讨论,但是能够至少部分地在计算设备102或另一设备的一个或多个其他模块中实现***118的功能性。例如,作为计算设备102的一部分所包括的但是在操作***114外部的附加的模块能够实现代理通信通知***118的至少一部分。通过另一示例的方式,***112能够至少部分地由通知服务106的设备实现。
应用116还能够与应用服务104直接地进行通信,从而允许应用116从应用服务104接收数据同时绕过通知服务106和代理通信通知***118。在一个或多个实施例中,来自应用服务104的所有(或大部分的)通信通过通知服务106的方式发送。可替换地,具有少量数据(例如,不超过门限量的数据)通过通知服务106的方式发送,并且更大量数据(例如大于门限量的数据)通过经过通知服务106而被直接地发送到应用116。
尽管应用116能够与应用服务104直接地进行通信,但是通知服务106仍然能够被用来促进该通信。应用服务104不必被配置成维持与应用116的持久性通信连接或链路,而是能够依靠通知服务106来通知应用116在该应用与应用服务104之间的通信或链路何时将被建立。例如,应用服务104能够通过通知服务106的方式将通知发送到应用116,通知应用116已发生了事件,其中针对该事件应用116应该检查应用服务104。该事件能够取决于应用116和应用服务104采取各种形式,诸如来自另一用户的输入、对文档的改变、来自另一设备或服务的请求等等。响应于这样的通知,应用116与应用服务104建立通信连接或链路或者以其他方式访问应用服务104以对事件做出响应。在对事件做出响应之后,能够终止应用116与应用服务104之间的通信连接或链路(但是通知服务106与执行该应用116的计算设备102之间的通信连接或链路保持)。
图2图示了依照一个或多个实施例实现支持通知阻塞的功率高效代理通信的另一示例***200。***200附加详细地图示了图1的***100的方面,并且像参考图1上面所讨论的那样,包括应用服务104、通知服务106以及具有代理通信通知***118和应用116的计算设备102。通知服务106包括通知管理模块202和应用状态储存部件204。
当应用服务104期望将数据发送到应用116 (例如,其也被称为目标应用)时,服务104将消息212发送到通知服务106。消息212包括目标标识符(ID)部分、有效负荷(payload)部分以及可选地优先级部分。目标ID部分标识计算设备102上的应用116。有效负荷部分包括服务104期望发送到应用116的数据。优先级部分向通知服务106指示消息212的(或在消息212的有效负荷部分中的数据的)优先级。
通知管理模块202接收消息212并且基于消息212生成通知214。通知214包括将计算设备102上的应用116标识为通知214的目标的目标ID部分(并且其能够包括来自消息212的目标ID部分的至少一部分)。目标ID标识特定计算设备和该计算设备上的特定应用,并且可选地标识计算设备的特定用户。目标ID可以是包含多个标识(例如,特定计算设备的标识、特定应用的标识以及特定用户的标识)的单个值,或者可以是用于标识的多个单独的值(例如,三个ID值:标识特定计算设备的设备ID、标识特定应用的应用ID以及标识特定用户的用户ID)。
通知214同样包括有效负荷部分,其将数据包括在消息212的有效负荷部分中。通知服务106不必关心消息212的有效负荷部分中的数据的性质;相反地通知服务106简单地在通知214中将数据传递到计算设备102上而不变更数据。通知管理模块202能够确定何时以如上面所讨论的各种方式将通知214发送到计算设备102。能够可选地在做出该确定(例如,较高优先级消息中的数据可以被比较低优先级消息中的数据更迅速地传送到计算设备102)时使用消息212中所指示的优先级。尽管消息212和通知214在图2中被图示为不同的(例如,一个包括可选的优先级部分并且另一个不包括),但是可替换地通知214可以是消息212。例如,通知服务106能够将消息212传递到计算设备102而不变更消息212。
代理通信通知***118还能够将指示216传送到通知服务106以阻塞针对应用116的通知或者解除对该通知的阻塞。指示216包括指示要阻塞通知或者对其解除阻塞的命令部分,以及标识计算设备102上的应用116的目标ID部分。通知服务106维持标识计算设备上的应用的状态的信息被存储在其中的应用状态储存部件204。该状态指的是针对应用的通知是否被阻塞和/或解除阻塞。例如,储存部件204能够维持标识在特定计算设备上通知被阻塞所针对的特定应用的列表或其他记录。通过另一示例的方式,储存部件204能够维持标识在特定计算设备上通知被解除阻塞所针对的特定应用的列表或其他记录。
应该注意的是,在不同的计算设备上或在相同的计算机设备上但是与不同的用户相关联的相同的应用(例如,相同的程序)的不同的拷贝被分别地处理并且能够具有不同的应用状态。例如,针对一个计算设备上的应用的通知能够被阻塞,然而针对相同的应用在另一计算设备上的另一拷贝的通知能够被解除阻塞。通过另一示例的方式,针对在一个计算设备上与一个用户相关联的应用的通知能够被阻塞,然而针对在相同的计算设备上但是与不同的用户相关联的相同的应用的另一实例的通知能够被解除阻塞。
通知服务106在确定是否和/或何时将通知214发送到计算设备102时使用应用状态储存部件204。在将以应用116为目标的通知214发送到计算设备102之前,通知服务106检查应用状态储存部件204以确定针对计算设备102上的应用116的通知(例如,如由消息212和/或通知214的目标ID部分所标识的)是否被阻塞。如果针对计算设备102上的应用116的通知不被阻塞,则通知服务106将通知214发送到计算设备102。
然而,如果针对计算设备102上的应用116的通知被阻塞,则通知服务106不将通知214发送到计算设备102。通知服务106能够存储通知214 (和/或消息212)直到针对应用116的通知被解除阻塞为止,或者可替换地能够删除或者以其他方式忽略通知214和消息212。在一个或多个实施例中,如果通知214和/或消息212被存储或者删除,则象这样的指示被返回给消息212从其被接收到的应用服务104,从而通知服务104消息中的数据已被存储或者删除而不是发送到目标应用。可替换地,如果通知214和/或消息212被存储或者删除,则不需要将象这样的指示返回给消息212从其被接收到的应用服务104。
能够以各种不同的方式确定目标ID。在一个或多个实施例中,应用116将对通信通道的请求提交给代理通信通知***118。作为响应,通知***118和/或通知服务106生成标识符(例如,统一资源指示符(URI)),所述标识符允许服务106和***118使通信通道彼此区分开。该标识符被返回给应用116,所述应用116进而将该标识符传送到应用服务104。该标识符用作通信通道并且被用作用于消息212和通知214的目标ID。因此,在计算设备上应用的每个实例被分配了它自己的标识符,所以在相同的计算设备和/或不同的计算设备上相同的应用的不同的实例将具有不同的标识符。
可替换地,能够以其他方式确定目标ID。例如,不同的计算设备102 (和/或计算设备102的用户)能够被分配设备和/或用户ID,并且每个应用116能够被分配应用ID。设备ID (和/或用户ID)和应用ID的这个组合能够被用来使在不同的计算设备上的应用(或在相同的计算设备上的应用的不同的实例)彼此区分开。
图3图示了依照一个或多个实施例的示例代理通信通知***300。代理通信通知***300可以是例如图1或图2的代理通信通知***118。通知***300包括通信模块302、通知处理模块304、应用接口306以及阻塞确定模块308。尽管模块302 - 308被图示为单独的模块,但是可替换地模块302 - 308中的多个模块能够被一起实现为单个模块。附加地和/或可替换地,模块302 - 308中的一个或多个的功能性能够被分成多个模块。
通信模块302管理代理通信通知***300与通知服务(例如,图1或图2的通知服务106)之间的通信。通信模块302从通知服务接收通知并且将所接收到的通知提供给通知处理模块304。通信模块302同样将从计算设备上的应用接收到的通信通道请求发送到通知服务。通信模块302同样发送指示以像在下面更详细地描述的那样基于来自阻塞确定模块308的请求而阻塞针对特定应用的通知和/或解除对其的阻塞。
应用接口306是允许应用(例如,图1或图2的应用116)将请求提交给代理通信通知***300的接口。在一个或多个实施例中,应用接口306是暴露能够被应用调用的一个或多个方法的应用编程接口(API)。可替换地,各种其他数据通信技术能够被采用来将请求提交给通知***300,所述请求诸如将描述请求的数据写入通知***300和应用两者都可访问的公共存储位置、经由各种消息传送或事件通信***来发送描述请求的数据等等。
在一个或多个实施例中,应用经由应用接口306将对通信通道的请求提交给代理通信通知***306。通知***300将用作如上面所讨论的通信通道的标识符(例如,URI)返回给应用。附加地,应用提供由通知***300 (例如,由通知处理模块304)所维持的回调。回调被通知处理模块304用来将被从通知服务接收到并且以应用为目标的通知提供给应用。回调能够采取各种形式,诸如被调用的函数或过程、由被***300调用的应用所暴露的API的方法等等。
通知处理模块304管理:将从通知服务接收到的每个通知提供给适当的应用(由通知所标识的(以其为目标的)应用)。通知***300知道每个应用的标识符(例如,已将用作通信通道的标识符提供给应用)。对于应用,通知***300维持应用的标识符并且使该标识符与如何将通知提供给应用的指示(例如,由应用所提供的回调)相关联。因此,当从通知服务接收到通知时,通知处理模块304能够容易地标识如何将通知提供给所标识的应用。通知是否实际上被提供给应用取决于该应用是否被允许像由代理确定模块308所确定的那样并且像在下面更详细地讨论的那样运行。
返回到图1,在一个或多个实施例中操作***114实现各种节电功能性。该节电功能性的一部分是减少在任何给定时间正在运行的应用的数目。操作***114能够在各种时间基于各种不同准则中的任一个来终止应用或者挂起应用(例如,应用可以保持在计算设备102的存储器中但是不被调度以用于由计算设备102的处理器执行)。
该节电功能性的一部分还在于限制能够在后台中运行的应用的数目。在特定时间点将数据显示在计算设备102的屏幕或其他显示设备上的应用被称为在该特定时间点的前台应用。在该特定时间点不将数据显示在计算设备102的屏幕或其他显示设备上的其他应用被称为在该特定时间点的后台应用。应该注意的是,随着时间的推移不同的应用能够在作为前台应用与作为后台应用之间切换。
操作***114许可仅特定应用116作为后台应用运行;除非接收到要运行应用(并且因此使它们成为前台应用)的用户请求,否则其他应用116不被许可作为后台应用运行并且将不***作***114运行。应该注意的是,不被许可作为后台应用运行的后台应用的指令能够保持在存储器中,但是指令不被调度用于由计算设备102的处理器执行(例如,应用被挂起)。操作***114能够配置有哪些应用116被许可作为后台应用运行的指示,或者能够确定哪些应用116被许可以其他方式作为后台应用运行(例如,从另一设备或服务获得哪些应用116被许可作为后台应用运行,通过应用特定规则或准则来确定哪些应用116被许可作为后台应用运行等等)。
在一个或多个实施例中,应用116被称为后台启用的应用(是后台启用的应用)或非后台启用的应用(不是后台启用的应用)。后台启用的应用指的是被许可作为后台应用运行的应用,以及非后台启用的应用指的是不被许可作为后台应用运行的应用。
再次参考图3,当代理通信通知***300从通知服务接收到通知时,该通知像上面所讨论的那样以应用为目标。该目标应用可以是当前正在运行的应用(例如,前台应用)或后台应用。如果应用是后台应用,则它可以是后台启用的应用或非后台启用的应用。当前正在运行的应用也被称为被允许运行的应用,因为它们当前正在运行。为后台启用的后台应用也被称为被允许运行的应用,因为操作***许可应用作为后台应用运行。然而,非后台启用的后台应用也被称为不被允许运行的应用,因为操作***不许可应用作为后台应用运行。
响应于从通知服务接收到通知,阻塞确定模块308确定该通知的目标应用是否被允许运行。如果目标应用不被允许运行,则阻塞确定模块308指导通信模块302将针对目标应用的通知将被阻塞的指示发送到通知服务。通信模块302将该指示(例如,图2的指示216)发送到通知服务,从而导致通知服务像上面所讨论的那样不再将针对目标应用的通知发送到计算设备。
阻塞确定模块308维持要阻塞针对目标应用的通知的指示被发送到通知服务的记录。如果目标应用将被运行(例如,响应于要运行应用的用户请求)或者以其他方式变得被允许运行(例如,响应于指示应用是后台启用的用户输入),则目标应用成为被允许运行的应用。因此,阻塞确定模块308指导通信模块302将针对目标应用的通知将不再被阻塞(例如,将被解除阻塞)的指示发送到通知服务。通信模块302将该指示(例如,图2的指示216)发送到通知服务,从而导致通知服务像上面所讨论的那样恢复将针对目标应用的通知发送到计算设备。应该注意的是,如果没有针对目标应用的阻塞通知被先前发送到通知(例如,因为目标应用开始运行或者解除阻塞通知被最后发送到针对目标应用的通知服务),则当目标应用成为被允许运行的应用时不需要将解除阻塞通知发送到通知服务。例如,目标应用可以是停止运行(例如,由于要运行另一应用的用户请求)并且然后稍后恢复运行(例如,由于要运行目标应用的用户请求)的非后台启用的应用。在该示例中,如果在目标应用停止运行和恢复运行的时间之间没有接收到通知,则不需要将解除阻塞通知发送到通知服务。
阻塞确定模块308能够以各种方式确定何时运行应用。例如,模块308能够通过监控计算设备上的各种事件或消息等等从计算设备的操作***(例如,图1的操作***114)的一个或多个模块获得正在运行的应用的指示。因此,模块308能够容易地确定要阻塞通知的指示被发送到通知服务所针对的应用何时运行,并且因此针对目标应用的通知将不再被阻塞的指示将被发送到通知服务。
通知处理模块304与阻塞确定模块308进行通信。如果阻塞确定模块308确定目标应用不被允许运行,则通知处理模块304不将通知提供给目标应用。通知处理模块304能够删除或者以其他方式忽略通知,或者可替换地存储该通知直到目标应用正在运行为止并且在那时将通知提供给目标应用。然而,如果阻塞确定模块308确定目标应用被允许运行,则通知处理模块304将通知提供给目标应用。
因此,如果由代理通信通知***300所接收到的通知以正在运行或者是后台启用的应用为目标,则通知***300将通知提供给目标应用。如果目标应用不在运行而是后台启用的,则通知***300唤醒(恢复或者以其他方式开始运行)目标应用。目标应用然后能够在应用认为合适的时候处理在通知中包括的数据。然而,如果目标应用不在运行并且不是后台启用的,则通知不被提供给目标应用。此外,针对目标应用的通知将被阻塞使得对于该目标应用没有附加的通知被发送到计算设备的指示被提供给通知服务。通知服务因此阻塞针对计算设备上的目标应用的通知。通过阻塞针对目标应用的通知,对于将不被通知***300递送到目标应用的通知来说不必消耗通知服务与计算设备之间的额外的数据带宽。并且,通过阻塞针对目标应用的通知,计算设备不必消耗功率来接收将不被通知***300递送到目标应用的通知。
在上面的讨论中,代理通信通知***300被讨论为将指示提供给通知服务以响应于接收到针对应用的通知来阻塞针对应用的通知。在这些讨论中,阻塞通知不被发送到通知服务直到针对不被允许运行的应用接收到通知为止 - 阻塞通知简单地因为应用停止运行而不被发送到通知服务。可替换地,通知***300能够提供指示以前摄性地阻塞针对应用的通知或者对其解除阻塞。例如,每当非后台启用的应用被运行时,通知***300能够将指示提供给通知服务以解除对针对该应用的通知的阻塞。附加地,每当非后台启用的应用不再运行(并且是后台应用)时,通知***300能够将指示提供给通知服务以阻塞针对该应用的通知。通过另一示例的方式,在其中所有应用已知为不被允许运行的情形下,通知***300能够将指示应用中的全部都将被阻塞的“阻塞全部”指示提供给网络服务。类似地,在其中所有应用已知为被允许运行的情形下,通知***300能够将指示应用中的全部都将被解除阻塞的“解除阻塞全部”指示提供给网络服务。
返回到图2,响应于通知发送指示以阻塞针对不被允许运行的应用的通知的***200提供鲁棒的代理通信功能性。如果通知服务106将经历掉电或其他硬件和/或软件错误,则对***200的重大损害被避免,而不管应用状态储存部件204中信息的可能删除或其他损失。通知服务106继续像上面所描述的那样操作,并且酌情从计算设备102接收针对应用的阻塞通知,从而在应用状态储存部件204中再填充或者再建有关哪些应用被阻塞和/或解除阻塞的适当信息。
类似地,在一个或多个实施例中,通知服务106将标识应用的状态的信息维持在应用状态储存部件204中持续门限量的时间。该门限量的时间可以是固定量的时间(例如,特定小时数、特定天数等),或者可以是基于其他事件或准则的可变量的时间(例如,已持续特定小时数、特定天数等没有接收到来自应用服务104以应用为目标的消息)。在该门限量的时间流逝之后,指示应用的状态的信息被从储存部件204删除。通知服务106继续像上面所讨论的那样操作,并且如果服务106将针对其状态被从储存部件204去除的应用的通知发送到计算设备102,则服务106将从允许服务106再建已删除信息的计算设备102接收针对应用的阻塞通知。通过不维持计算设备上应用的状态持续门限量的时间(特别是针对不在积极地接收通知的应用),通知服务106能够减少由应用状态储存部件204所使用的存储空间。
此外,在一个或多个实施例中,每当计算设备102从通知服务106断开时,标识特定计算设备上应用的状态的信息被从应用状态储存部件204删除。该断开能够采取各种形式,诸如计算设备102关闭、计算设备102登出通知服务106、计算设备102与通知服务106之间的通信链路或连接被终止等等。通知服务106因此不必维持标识已从通知服务106断开的计算设备上应用的状态的信息,从而减少由应用状态储存部件204所使用的存储空间并且减少通知服务106在其中可能变得与计算设备102不同步的情形。
附加地,应用服务104不必具有应用116是后台启用的还是非后台启用的知识。可替换地,在一个或多个实施例中应用服务104知道应用116是后台启用的还是非后台启用的,并且将这样的指示(例如,作为图2的消息212的一部分)提供给通知服务106。通知服务106能够维持(例如,在应用状态储存部件204中)哪些应用是后台启用的和哪些应用是非后台启用的记录并且以各种方式使用该记录。
例如,如果计算设备102的显示设备被断电则通知***118能够假定没有应用可以是后台应用,并且因此没有非后台启用的应用可能正在运行。因此,通知***118将针对计算设备102上的所有非后台启用的应用将被阻塞的指示216发送到通知服务106。当显示设备随后被加电时,通知***118能够像上面所讨论的那样将针对正在运行的非后台启用的应用的通知将被解除阻塞的指示216发送到通知服务106。
在其他替代方案中,应用服务104不必具有应用116是后台启用的还是非后台应用的知识,但是通知服务106能够知道应用116是后台启用的还是非后台应用的。能够以不同的方式获得应用116是后台启用的还是非后台启用的知识。例如,当为应用116获得通信通道时,通知***118能够将应用116是后台启用的还是非后台启用的指示提供给通知服务106。通知服务106能够像上面所讨论的那样维持(例如,在应用状态储存部件204中)哪些应用是后台启用的和哪些应用是非后台启用的记录并且以各种方式使用该记录。
能够使用本文中所讨论的技术来获得各种功率效率。功率不被消耗来将针对不被允许运行的目标应用的许多通知传送到计算设备。附加地,计算设备不必消耗功率来维持在计算设备上的应用与应用服务之间的多个通信链路或连接,但是能够依靠来自通知服务的通知来通知应用与应用服务的通信链路或连接何时将被建立。
图4是图示了依照一个或多个实施例用于实现支持通知阻塞的功率高效代理通信的示例过程400的流程图。过程400由诸如图1或图2的通知服务106这样的通知服务来执行,并且能够用软件、固件、硬件或其组合加以实现。过程400被示出为一组行为并且不限于用于执行各种行为的操作所示出的顺序。过程400是用于实现支持通知阻塞的功率高效代理通信的示例过程;参考不同的图在本文中包括了实现支持通知阻塞的功率高效代理通信的附加的讨论。
在过程400中,接收以计算设备的应用为目标的消息(行为402)。如上面所讨论的那样,消息从应用服务被接收并且包括意在供应用使用的数据。
关于针对计算设备上的应用的通知是否被阻塞的确定被做出(行为404)。如上面所讨论的那样,至少部分地基于指示针对应用的通知将被阻塞或者解除阻塞的来自计算设备的先前接收到的指示做出确定。
以应用为目标并且包括来自消息的数据的通知仅响应于确定针对计算设备上的应用的通知不被阻塞而被提供给计算设备(行为406)。如果针对计算设备上的应用的通知被阻塞,则通知不被提供给计算设备。
图5是图示了依照一个或多个实施例用于实现支持通知阻塞的功率高效代理通信的示例过程500的流程图。过程500通过由计算设备所实现的代理通信通知***来执行,所述代理通信通知***诸如图1或图2的代理通信通知***118或图3的代理通信通知***300,并且能够用软件、固件、硬件或其组合加以实现。过程500被示出为一组行为并且不限于用于执行各种行为的操作所示出的顺序。过程500是用于实现支持通知阻塞的功率高效代理通信的示例过程;参考不同的图在本文中包括了实现支持通知阻塞的功率高效代理通信的附加的讨论。
在过程500中,在计算设备处从通知服务接收以应用为目标的通知(行为502)。通知以计算设备上的多个应用中的一个为目标。
关于应用是否被允许在计算设备上运行的确定被做出(行为504)。在一个或多个实施例中,如果应用正在运行或者被许可作为后台应用在计算设备上运行则应用被允许在计算设备上运行,以及如果一个应用不在运行并且不被许可作为后台应用在计算设备上运行则应用不被允许在计算设备上运行,像上面所讨论的那样。
如果应用被允许在计算设备上运行,则通知被提供给应用(行为506)。如果应用已经不在运行,则应用被唤醒并且开始运行以处理通知中的数据。通知能够被以不同的方式(诸如使用如上所讨论的回调)提供给应用。
然而,如果应用不被允许在计算设备上运行,则阻塞指示被发送到通知服务(行为508)。阻塞指示像上面所讨论的那样向通知服务指示以应用为目标的通知将不被发送到计算设备。
在将阻塞指示发送到通知服务之后,能够做出一个应用被允许在计算设备上运行的确定(行为510)。能够以各种方式(例如,像上面所讨论的那样响应于各种用户输入(例如,要运行应用的用户请求、要改变配置设定使得应用是后台启用的用户请求等))做出该确定。
响应于一个应用被允许在计算设备上运行的确定,解除阻塞指示被发送到通知服务(行为512)。解除阻塞指示像上面所讨论的那样向通知服务指示以应用为目标的通知将被发送到计算设备。
在本文中讨论了诸如由各种模块所执行的传送、接收、发送、维持、存储、生成、获得等等这样的各种动作。在本文中讨论为执行动作的特定模块包括执行动作的那个特定模块它本身,或可替换地调用或者以其他方式访问执行动作(或者与那种特定模块相结合地执行动作)的另一组件或模块的那个特定模块。因此,执行动作的特定模块包括执行动作的那个特定模块它本身和/或由执行动作的那个特定模块所调用或者以其他方式访问的另一模块。
图6图示了一般地在600处包括示例计算设备602的示例***,所述示例计算设备602表示可以实现本文中所描述的各种技术的一个或多个计算***和/或设备。计算设备602可以是例如与用户相关联的设备(例如,图1或图2的计算设备102)、服务的(例如,图1或图2的服务106或104的)服务器或其他设备、片上***,和/或任何其他适合的计算设备或计算***。
图示的计算设备602包括被通信地耦接到彼此的处理***604、一个或多个计算机可读媒体606以及一个或多个I/O接口608。尽管未示出,但是计算设备602可以进一步包括将各种组件耦接到彼此的***总线或其他数据和命令传输***。***总线能够包括不同总线结构中的任何一个或组合,诸如存储器总线或存储器控制器、***总线、通用串行总线和/或利用各种总线架构中的任一个的处理器或局部总线。同样设想到各种其他示例,诸如控制和数据线。
处理***604表示使用硬件来执行一个或多个操作的功能性。因此,处理***604被图示为包括硬件元件610,所述硬件元件610可以被配置为处理器、功能块等等。这可以包括如使用一个或多个半导体形成的专用集成电路或其他逻辑器件一样的硬件实施方式。硬件元件610不受它们由其形成的材料或在其中采用的处理机制的限制。例如,处理器可以由(一个或多个)半导体和/或晶体管(例如,电子集成电路(IC))组成。在这样的上下文中,处理器可执行指令可以是用电子学方法可执行的指令。
计算机可读媒体606被图示为包括存储器/储存器612。储器/储存器612代表与一个或多个计算机可读媒体相关联的存储器/储存器容量。储器/储存器612可以包括易失性媒体(诸如随机存取存储器(RAM))和/或非易失性媒体(诸如只读存储器(ROM)、闪速存储器、光盘、磁盘等等)。存储器/储存器612可以包括固定媒体(例如,RAM、ROM、固定硬盘驱动器等等)以及可移动媒体(例如,闪速存储器、可移动硬盘驱动器、光盘等等)。可以以如在下面进一步描述的各种其他方式配置计算机可读媒体606。
(一个或多个)输入/输出接口608表示允许用户将命令和信息键入到计算设备602并且同样允许信息被呈现给用户的功能性和/或使用各种输入/输出设备的其他组件或设备。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风、扫描器、触摸功能性(例如,被配置成检测物理触摸的电容式或其他传感器)、摄像机(例如,其可以采用诸如红外线频率这样的可见的或非可见的波长来检测如手势一样的不牵涉触摸的移动)等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网络卡、触觉响应设备等等。因此,计算设备602可以被以如在下面进一步描述的各种方式配置成支持用户交互。
计算设备602同样包括通知模块620。通知模块620可以是例如图1或图2的代理通信通知***118或图3的代理通信通知***300。通过另一示例的方式,通知模块620可以是图1或图2的通知服务106。
可以在本文中在软件、硬件元件或程序模块的一般上下文中对各种技术进行描述。一般地,这样的模块包括执行特定任务或者实现特定抽象数据类型的例行程序、程序、对象、元件、组件、数据结构等等。如本文中所用的术语“模块”、“功能性”以及“组件”一般地表示软件、固件、硬件或其组合。本文中所描述的技术的特征是平台无关的,意味着技术可以被实现在具有各种处理器的各种商业计算平台上。
所描述的模块和技术的实施方式可以被存储在某种形式的计算机可读媒体上或者跨越某种形式的计算机可读媒体传送。计算机可读媒体可以包括可以被计算设备602访问的各种媒体。通过示例而非限制的方式,计算机可读媒体可以包括“计算机可读存储媒体”和“计算机可读信号媒体”。
“计算机可读存储媒体”可以指的是与仅仅信号传输、载波或信号本身相比使得能实现信息的持久性和/或非暂时性存储的媒体和/或设备。因此,计算机可读存储媒体指的是非信号承载媒体。计算机可读存储媒体包括用适合于存储信息的方法或技术加以实现的诸如易失性和非易失性、可移动和非可移动媒体和/或存储设备这样的硬件,所述信息诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据。计算机可读存储媒体的示例可以包括但不限于RAM、ROM、EEPROM、闪速存储器或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光学储存器、硬盘、磁盒、磁带、磁盘储存器或其他磁存储设备,或适于存储所期望的信息并且可以被计算机访问的其他存储设备、有形媒体或制品。
“计算机可读信号媒体”可以指的是被配置成诸如经由网络将指令传送到计算设备602的硬件的信号承载介质。信号媒体典型地可以在调制的数据信号中包含计算机可读指令、数据结构、程序模块或其他数据,所述调制的数据信号诸如载波、数据信号或其他传输机制。信号媒体同样包括任何信息递送媒体。术语“调制的数据信号”意指以将信息编码在信号中的方式设置或改变其特征中的一个或多个特征的信号。通过示例而非限制的方式,通信媒体包括诸如有线网络或直接有线连接这样的有线媒体以及诸如声学、RF、红外线这样的无线媒体和其他无线媒体。
如先前所描述的那样,硬件元件610和计算机可读媒体606表示以硬件形式所实现的指令、模块、可编程器件逻辑和/或固定器件逻辑,所述硬件形式可以在一些实施例中被采用来实现本文中所描述的技术中的至少一些方面。硬件元件可以包括集成电路或芯片上***、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)的组件,以及硅或其他硬件设备中的其他实施方式。在该上下文中,硬件元件可以作为执行由通过硬件元件以及利用来存储指令以用于执行的硬件设备(例如,先前所描述的计算机可读存储媒体)所包含的指令、模块和/或逻辑所定义的程序任务的处理设备来操作。
前述的组合还可以被采用来实现本文中所描述的各种技术和模块。因此,软件、硬件或程序模块以及其他程序模块可以被实现为在某种形式的计算机可读存储媒体上和/或由一个或多个硬件元件610所具体化的一个或多个指令和/或逻辑。计算设备602可以被配置成实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,可由计算设备602作为软件执行的模块的实施方式可以至少部分地用硬件(例如,通过使用处理***的计算机可读存储媒体和/或硬件元件610)加以实现。指令和/或功能可由一个或多个制品(例如,一个或多个计算设备602和/或处理***604)执行/操作来实现本文中所描述的技术、模块以及示例。
在各种实施方式中,计算设备602可以假定各种不同的配置,诸如以得到计算机614、移动616以及电视618用途。这些配置中的每一个都包括可以具有一般地不同的构造和能力的设备,并且因此可以根据不同的设备类中的一个或多个来配置计算设备602。本文中所描述的技术可以由计算设备602的这些各种配置来支持,并且不限于本文中所描述的技术的特定示例。例如,计算设备602可以被实现为包括个人计算机、台式计算机、多屏计算机、膝上型计算机、笔记本等等的计算机614类的设备。
计算设备602还可以被实现为包括移动设备的移动616类的设备,诸如移动电话、便携式音乐播放机、便携式游戏设备、平板计算机、多屏计算机等等。计算设备602还可以被实现为包括具有或者连接到临时观看环境中一般地较大的屏幕的设备的电视618类的设备。这些设备包括电视、机顶盒、游戏控制台等等。
尽管已经用特定于结构特征和/或方法学行为的语言对本主题进行了描述,但是应当理解的是,所附权利要求中所定义的主题未必限于上面所描述的特定特征或行为。相反地,上面所描述的特定特征和行为作为实现权利要求的示例形式被公开。
Claims (10)
1. 一种在通知服务中实现的方法,所述方法包括:
从应用服务接收以计算设备上的应用为目标的消息;
至少部分地基于来自所述计算设备的先前接收到的指示来确定针对所述计算设备上的所述应用的通知是否被阻塞;以及
仅响应于确定针对所述计算设备上的所述应用的通知不被阻塞,将以所述应用为目标并且包括来自所述消息的数据的通知提供给所述计算设备。
2. 如权利要求1中所记载的方法,所述先前接收到的指示包括从所述计算设备接收到以阻塞针对所述应用的通知的指示。
3. 如权利要求2中所记载的方法,所述先前接收到的指示已响应于所述应用不在所述计算设备上运行并且所述应用不被许可作为后台应用在所述设备上运行而被接收到。
4. 如权利要求1中所记载的方法,所述先前接收到的指示指示针对所述计算设备上的所述应用的通知由于所述应用不被允许在所述计算设备上运行而将被阻塞。
5. 如权利要求1中所记载的方法,所述先前接收到的指示指示针对所述计算设备上的所述应用的通知由于所述应用在所述计算设备上运行或者被允许作为后台应用在所述计算设备上运行而将被解除阻塞。
6. 如权利要求1中所记载的方法,进一步包括通过相同的通信连接将以多个应用为目标的多个通知提供给所述计算设备,所述多个通知包括从多个应用服务中的不同的应用服务接收到的不同的数据。
7. 具有存储在其上的多个指令的一个或多个计算机可读存储媒体,所述多个指令当被计算设备的一个或多个处理器执行时,使所述一个或多个处理器:
从通知服务接收以所述计算设备上的多个应用中的一个应用为目标的通知;
确定所述应用是否被允许在所述计算设备上运行;
响应于确定所述应用被允许在所述计算设备上运行,将所述通知提供给所述应用;以及
响应于确定所述应用不被允许在所述计算设备上运行,将指示以所述计算设备上的所述应用为目标的通知将不被发送到所述计算设备的阻塞指示发送到所述通知服务。
8. 如权利要求7中所记载的一个或多个计算机可读存储媒体,所述多个指令进一步使所述一个或多个处理器:
在将所述阻塞指示返回给所述通知服务之后,确定针对所述应用的通知将被发送到所述计算设备;以及
将指示以所述应用为目标的通知将被发送到所述计算设备的解除阻塞指示发送到所述通知服务。
9. 如权利要求7中所记载的一个或多个计算机可读存储媒体,所述多个指令进一步使所述一个或多个处理器确定如果所述应用不在运行并且不被许可作为后台应用在所述计算设备上运行则所述应用不被允许运行。
10. 如权利要求7中所记载的一个或多个计算机可读存储媒体,所述多个指令进一步使所述一个或多个处理器响应于确定所述应用被允许在所述计算设备上运行而运行所述应用。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/398,260 US9317344B2 (en) | 2012-02-16 | 2012-02-16 | Power efficient brokered communication supporting notification blocking |
US13/398260 | 2012-02-16 | ||
PCT/US2013/025797 WO2013122967A1 (en) | 2012-02-16 | 2013-02-13 | Power efficient brokered communication supporting notification blocking |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104106060A true CN104106060A (zh) | 2014-10-15 |
CN104106060B CN104106060B (zh) | 2017-04-12 |
Family
ID=48983382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380009589.5A Active CN104106060B (zh) | 2012-02-16 | 2013-02-13 | 支持通知阻塞的功率高效代理通信 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9317344B2 (zh) |
EP (1) | EP2815328B1 (zh) |
CN (1) | CN104106060B (zh) |
WO (1) | WO2013122967A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112313982A (zh) * | 2018-07-06 | 2021-02-02 | 瑟德韦夫公司 | 从无线医疗设备到多个智能手机的安全低功耗通信 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9317344B2 (en) | 2012-02-16 | 2016-04-19 | Microsoft Technology Licensing, Llc | Power efficient brokered communication supporting notification blocking |
US8825828B2 (en) * | 2012-10-10 | 2014-09-02 | Ca, Inc. | Method and system for implementing notifications |
US20140123157A1 (en) * | 2012-10-31 | 2014-05-01 | Nokia Corporation | Method and apparatus for providing application notifications |
JP5770804B2 (ja) * | 2013-09-30 | 2015-08-26 | グリー株式会社 | 通知管理方法、通知管理サーバ及び通知管理プログラム |
US9405600B2 (en) * | 2013-12-27 | 2016-08-02 | Intel Corporation | Electronic device to provide notification of event |
US9537812B2 (en) * | 2013-12-31 | 2017-01-03 | Google Inc. | Methods, systems, and media for managing notifications directed to multiple applications installed on a user device |
US10635505B2 (en) * | 2015-06-30 | 2020-04-28 | Coursera, Inc. | Automated batch application programming interfaces |
US10754518B1 (en) * | 2016-01-21 | 2020-08-25 | Amazon Technologies, Inc. | Techniques for providing customized user interface components in a push notification |
WO2018093225A1 (en) * | 2016-11-21 | 2018-05-24 | Samsung Electronics Co., Ltd. | Method and apparatus for generating statement |
US20180321970A1 (en) * | 2017-05-07 | 2018-11-08 | Microsoft Technology Licensing, Llc | Controlling Background Activity of an Application Using a Policy |
EP3495948B1 (en) * | 2017-12-05 | 2022-01-05 | Vestel Elektronik Sanayi ve Ticaret A.S. | Method of operating an electronic device, electronic device and computer program |
US11089123B2 (en) * | 2018-05-15 | 2021-08-10 | Microsoft Technology Licensing, Llc | Service worker push violation enforcement |
EP3756090A1 (en) * | 2018-12-07 | 2020-12-30 | Google LLC | Passive-enabled applications for a computing device |
US10884827B2 (en) | 2018-12-17 | 2021-01-05 | Huntington Bancshares Incorporated | Extensible alerts platform |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6763384B1 (en) * | 2000-07-10 | 2004-07-13 | International Business Machines Corporation | Event-triggered notification over a network |
CN1520562A (zh) * | 2001-06-30 | 2004-08-11 | 国际商业机器公司 | 用于中央同步服务器的缓存机构的***和方法 |
US20060242708A1 (en) * | 2005-04-25 | 2006-10-26 | Postini, Inc. | Actionable quarantine summary |
EP2148293A1 (en) * | 2008-07-16 | 2010-01-27 | Business Objects, S.A. | Systems and methods to provide business information via a push model |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6912588B1 (en) | 1998-04-02 | 2005-06-28 | Intel Corporation | System and method for managing client requests in client-server networks |
US7062389B2 (en) | 2001-06-18 | 2006-06-13 | Verisae, Inc. | Enterprise energy management system |
US7051330B1 (en) * | 2000-11-21 | 2006-05-23 | Microsoft Corporation | Generic application server and method of operation therefor |
US20030009705A1 (en) | 2001-07-09 | 2003-01-09 | Michael Thelander | Monitoring and synchronization of power use of computers in a network |
JP4091792B2 (ja) * | 2002-05-17 | 2008-05-28 | 株式会社エヌ・ティ・ティ・ドコモ | 電子機器、イベント提供方法、プログラム、及び記録媒体 |
US7693117B2 (en) | 2002-12-16 | 2010-04-06 | Avaya Inc. | Power-saving mechanism for periodic traffic streams in wireless local-area networks |
US7747717B2 (en) | 2003-08-14 | 2010-06-29 | Oracle International Corporation | Fast application notification in a clustered computing system |
US20050255833A1 (en) | 2004-05-13 | 2005-11-17 | Mobile (R&D) Ltd. | Message aggregation system and method for a mobile communication device |
US8005912B2 (en) | 2006-02-17 | 2011-08-23 | Cisco Technology, Inc. | System and method for presence notification for video projection status |
US7844839B2 (en) | 2006-12-07 | 2010-11-30 | Juniper Networks, Inc. | Distribution of network communications based on server power consumption |
US7864720B2 (en) | 2007-06-01 | 2011-01-04 | Intel Corporation | Power management for wireless devices |
US8234676B2 (en) * | 2008-03-25 | 2012-07-31 | At&T Intellectual Property I, Lp | System and method of delivering event notifications |
US8488500B2 (en) | 2008-05-02 | 2013-07-16 | Dhaani Systems | Power management of networked devices |
US20100083255A1 (en) | 2008-09-26 | 2010-04-01 | Microsoft Corporation | Notification batching based on user state |
US20100088387A1 (en) | 2008-10-03 | 2010-04-08 | Apple Inc. | Email Notification Proxy |
US8645283B2 (en) * | 2008-11-24 | 2014-02-04 | Nokia Corporation | Determination of event of interest |
US8155625B2 (en) | 2009-12-22 | 2012-04-10 | Motorola Mobility, Inc. | Methods and apparatus for conserving energy used by a mobile device |
US20110195695A1 (en) | 2010-02-11 | 2011-08-11 | Rashim Gupta | Managing event distribution to applications within a wireless communications device |
US20110296213A1 (en) | 2010-05-28 | 2011-12-01 | Andrew Rodney Ferlitsch | Enterprise power management method and system and power manager for use therein |
CA2809221C (en) | 2010-08-26 | 2018-06-19 | Tata Consultancy Services Limited | Generation of energy consumption profiles |
US8621026B2 (en) | 2011-09-11 | 2013-12-31 | Microsoft Corporation | Batching notifications to optimize for battery life |
US9317344B2 (en) | 2012-02-16 | 2016-04-19 | Microsoft Technology Licensing, Llc | Power efficient brokered communication supporting notification blocking |
-
2012
- 2012-02-16 US US13/398,260 patent/US9317344B2/en active Active
-
2013
- 2013-02-13 EP EP13749147.8A patent/EP2815328B1/en active Active
- 2013-02-13 CN CN201380009589.5A patent/CN104106060B/zh active Active
- 2013-02-13 WO PCT/US2013/025797 patent/WO2013122967A1/en active Application Filing
-
2016
- 2016-03-28 US US15/082,713 patent/US9760413B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6763384B1 (en) * | 2000-07-10 | 2004-07-13 | International Business Machines Corporation | Event-triggered notification over a network |
CN1520562A (zh) * | 2001-06-30 | 2004-08-11 | 国际商业机器公司 | 用于中央同步服务器的缓存机构的***和方法 |
US20060242708A1 (en) * | 2005-04-25 | 2006-10-26 | Postini, Inc. | Actionable quarantine summary |
EP2148293A1 (en) * | 2008-07-16 | 2010-01-27 | Business Objects, S.A. | Systems and methods to provide business information via a push model |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112313982A (zh) * | 2018-07-06 | 2021-02-02 | 瑟德韦夫公司 | 从无线医疗设备到多个智能手机的安全低功耗通信 |
Also Published As
Publication number | Publication date |
---|---|
EP2815328A4 (en) | 2016-06-01 |
WO2013122967A1 (en) | 2013-08-22 |
EP2815328A1 (en) | 2014-12-24 |
US20130219409A1 (en) | 2013-08-22 |
US9760413B2 (en) | 2017-09-12 |
CN104106060B (zh) | 2017-04-12 |
US9317344B2 (en) | 2016-04-19 |
EP2815328B1 (en) | 2018-12-26 |
US20160210178A1 (en) | 2016-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104106060A (zh) | 支持通知阻塞的功率高效代理通信 | |
WO2022001900A1 (zh) | 信息发送方法、装置和电子设备 | |
CN102396287B (zh) | 瘦客户机会话管理的方法和设备 | |
US9658748B2 (en) | System and method of managing states of computer screen and controlling mobile communication terminal | |
US11126981B2 (en) | Resource transferring method and apparatus | |
CN104106054A (zh) | 节能应用通知*** | |
CN103049339A (zh) | 恢复应用和/或使应用免于中止 | |
US10021213B2 (en) | Systems and methods for adaptive cloning of mobile devices | |
CN103809967A (zh) | 应用和数据去除*** | |
CN102804132A (zh) | 基于目录的软件组件管理 | |
TW200838308A (en) | Media continuity service between devices | |
CN102937940B (zh) | 连接设备的双向扩展 | |
US20140122645A1 (en) | Method and system for automatic agnostic provisioning of a computing device | |
CN105283831A (zh) | 群集中的分布式存储防御 | |
CN102223363A (zh) | 在管理通信会话的图形界面中生成持续会话的***和方法 | |
CN104169874A (zh) | 输入数据类型简档 | |
CN110249355A (zh) | 请勿打扰状态的暴露和基于其的应用行为设置 | |
CN103959270A (zh) | 用于在计算装置处采用和便于动态和远程存储器协作的机制 | |
CN104737128A (zh) | 用于多用户账户的二进制的重新使用 | |
WO2024109786A1 (zh) | 即时通信会话信息的处理方法、装置及电子设备 | |
CN105723355B (zh) | 可拆卸显示器 | |
US11856060B2 (en) | Planned message notification for IoT device based on activity | |
CN107861853A (zh) | 进度提示方法、终端及计算机可读介质 | |
CN105308563A (zh) | ***准备任务的协调 | |
CN115883506A (zh) | 实现群组管理的方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150703 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150703 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |