管理通知消息的制作方法

文档序号:7991400阅读:262来源:国知局
管理通知消息的制作方法
【专利摘要】描述了生成识别客户端设备内的客户端应用的副主题标识符的方法和装置。客户端应用可与在一个或多个应用服务器中托管的服务器应用相关。可从客户端应用通过应用服务器登记通知服务,以将与客户端应用相关的标识符转发到服务器应用,以使得服务器应用能够针对客户端应用选择性向客户端设备推送通知消息。当从应用服务器接收通知消息时,可检查通知消息,以在通知消息携带客户端应用的副主题标识符时,在不调用客户端设备中的其它应用的情况下直接将通知消息转发到客户端应用。
【专利说明】管理通知消息
[0001]对相关申请的交叉引用
[0002]本申请是2009年2月25日提交的美国申请N0.12/392,679的部分继续,并要求在2010年8月2日提交的发明名称为“Managing Notification Messages”(管理通知消息),CHRISTOPHER MARCELLIN0的美国临时申请N0.61/370, 075的权益,其全部内容以引用
方式结合于此。
【技术领域】
[0003]本发明一般涉及数据处理系统。具体而言,本发明涉及用于移动设备的通知消息。【背景技术】
[0004]移动设备(例如,便携式电脑、掌上型电脑、移动电话、智能电话、多媒体电话、便携式媒体播放器、GPS单元、移动游戏系统等)的用户可安装有周期性从通知服务接收通知消息的应用。例如,这种应用包括“推送”邮件服务(例如,MobileMe、Microsoft ExchangeActiveSync、push_IMAP、YahooIPush等)或其它推送服务(例如,更新/升级服务、新闻服务、网络日志服务、播客服务、社交网络服务或可发送通知消息的其它类型的服务)。通知消息一般代表一般由应用定义的关注事件(例如,新电子邮件指示器、新的新闻项指示器、新播客指示器、社交网络朋友的在线状态的变化等)。
[0005]通常,通过识别其相应的来源服务器和接收客户端设备,通过推送服务来路由通知消息。在接收到通知消息时,客户端设备可将消息传输到目标客户端应用。通常,客户端设备中的多个客户端应用可能同时在等待来自同一来源服务器的通知消息。当通知消息到达时,可调用各等待的客户端应用。当为了支持客户端设备中的不断增加的客户端应用的数量而在来源服务器中托管越来越多的服务器应用时,可能会浪费客户端设备中的宝贵的处理资源来管理消息通知。
[0006]因此,对移动设备提供消息通知的现有机制会消耗资源并且/或者导致其它问题。

【发明内容】

[0007]本发明可提供能够为了有效地传送通知消息而在客户端设备中寻址个别客户端应用的多级别命名层次,以使资源使用最小化。在通过服务器标识符或主题识别的共用服务器中托管的多个服务器应用可向客户端设备推送共享同一主题的通知消息。用于识别订阅主题的目标客户端应用的副主题可嵌入在客户端设备中针对主题接收的通知消息中。
[0008]在一个实施例中,客户端应用可可选地在由主题识别的服务器中运行的相应的服务器应用中将客户端应用标识符识登记为副主题。副主题可以是客户端应用的附加级别的命名层次。作为结果,从在服务器中托管的服务器应用推送的通知消息可携带客户端应用标识符,以允许在不调用或通知订阅共享主题的其它客户端应用的情况下直接将通知消息路由至客户端应用。来自由一个服务器托管的各个服务器应用的主题的多个通知消息可有效并高效地被多路传输到客户端设备上的侦听同一主题的指定的各个客户端应用,以使处理接收的通知消息所需要的客户端设备的资源使用最小化。
[0009]在一个实施例中,在这里描述生成识别客户端设备内的客户端应用的副主题标识符的方法和装置。客户端应用可与在一个或多个应用服务器中托管的服务器应用相关。客户端应用可通过应用服务器登记通知服务,以转发与客户端应用相关的标识符,并使得服务器应用能够针对客户端应用选择性向客户端设备推送通知消息;当从应用服务器接收通知消息时,可检查或查看通知消息,以在通知消息携带客户端应用的副主题标识符时在不调用客户端设备中的其它应用的情况下直接将其转发到该客户端应用。
[0010]在另一实施例中,可在第一网络连接上由服务器应用从在客户端设备中运行的客户端应用接收针对消息通知的登记请求。可响应来自客户端设备的发起与具有用于托管服务器应用的服务器标识符的应用服务器建立第一网络连接。请求可携带包含识别客户端设备的设备令牌和识别客户端应用的客户端应用标识符的标识符。服务器标识符可被发送到客户端设备以允许客户端设备侦听从应用服务器推送的消息。在一个实施例中,在请求中携带的标识符可被存储以针对通知消息登记客户端设备。应用服务器可在与与客户端设备耦合的推送网络的第二网络连接上通过设备令牌向客户端设备发送或推送通知消息以通知客户端应用。通知消息可由服务器标识符识别。可选地,通知消息可携带客户端应用标识符以使得客户端设备能够直接向客户端应用传输通知消息。
[0011]从附图以及从后面的详细的描述,本发明的其它特征将十分明显。
【专利附图】

【附图说明】
[0012]在附图中以示例性方式而非限制方式示出本发明,在这些附图中,相同的附图标记表示相同的要素。
[0013]图1是示出用于消息通知的联网系统的一个实施例的框图;
[0014]图2是示出根据在这里描述的实施例的用于管理通知消息的移动设备中的示例性部件的框图;
[0015]图3是示出提供通知消息的应用服务器的示例性部件的框图;
[0016]图4是示出根据在这里描述的实施例的移动设备与应用服务器之间的示例性消息交换的序列图;
[0017]图5是示出用于使移动设备能够将通知消息路由到识别处的客户端应用的处理的一个实施例的流程图;
[0018]图6是示出用于从应用服务器向应用客户端提供通知消息的处理的一个实施例的流程图;
[0019]图7表示可与在这里描述的实施例一起使用的数据处理系统的一个例子;
[0020]图8示出可结合在这里描述的实施例一起使用的典型的计算机系统的例子。
【具体实施方式】
[0021]在这里描述能够从侦听或订阅共用应用服务器的多个客户端应用中识别目标客户端应用的用于通知消息的方法和装置。在以下的描述中,阐述大量的细节以提供对本发明的实施例的更充分的解释。但对本领域技术人员来说,很显然,可以在没有这些细节的情况下实施本发明的实施例。在其它示例中,为了避免混淆本发明的实施例,以框图的形式而非详细地示出公知的结构和设备。
[0022]在本说明书中提到“一个实施例”或“实施例”意味着在本发明的至少一个实施例中包含结合该实施例描述的特定的特征、结构或特性。在本说明书各处出现的短语“在一个实施例中”未非均指的是同一实施例。
[0023]除非另外特别陈述,否则,很显然,在整个说明书中,利用诸如“处理”或“计算”或“算出”或“确定”或“显示”等的术语的讨论指的是将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操作和变换为类似地表示为计算机系统存储器或寄存器或其它这种信息存储设备、传送或显示设备内的物理量的其它数据的、数据处理系统或类似的电子计算设备的动作和处理。
[0024]在这里给出的算法和显示不是固有地与任何特定的计算机或其它装置有关。各种通用系统可与根据这里的教导的程序一起使用,或者,构建更专用的装置以执行所需要的机器实现的方法动作可能被证明是方便的。从以下的描述,将呈现用于各种这些系统的需要的结构。另外,本发明的实施例不是参照任何特定的编程语言而描述。可以理解,可以使用各种编程语言以实现这里描述的本发明的实施例的教导。
[0025]本发明的实施例可实现为方法或存储可执行指令的机器可读非暂时性存储介质,当该指令被数据处理系统执行时使得该系统执行方法。诸如数据处理系统的装置也可以是本发明的实施例。从附图以及以下的详细的描述,本发明的其它特征将十分明显。
[0026]本发明的至少某些实施例可以是诸如便携式音乐和/或视频媒体播放器的数字媒体播放器的一部分,该数字媒体播放器可包含用于呈现媒体的媒体处理系统、用于存储媒体的存储设备,并且还可包含与天线系统和媒体处理系统耦合的射频(RF)收发器(例如,用于蜂窝电话的RF收发器)。在某些实施例中,存储于远程存储设备上的媒体可通过RF收发器被传送到媒体播放器。例如,媒体可以是音乐或其它音频、静态照片或动画中的一种或更多种。
[0027]便携式媒体播放器可包含媒体选择装置,诸如触摸屏输入装置、按钮装置、可动指示输入装置或其它的输入装置。媒体选择装置可被用于选择存储于存储设备和/或远程存储设备上的媒体。在至少某些实施例中,便携式媒体播放器可包含与媒体处理系统耦合以显示媒体的标题或其它指示的显示装置,其中媒体是通过输入装置选择的并且通过扬声器或耳机呈现、或在显示装置上呈现、或者在显示装置和扬声器或耳机上同时呈现。
[0028]在这里描述的本发明的实施例可以是其它类型的数据处理系统的一部分,例如,诸如娱乐系统或个人数字助理(PDA)、或通用计算机系统、或专用计算机系统、或另一设备内的嵌入设备、或不包含媒体播放器的蜂窝电话、或组合这些设备的方面或功能的设备(例如,诸如iPod?的媒体播放器与一个便携式设备中的PDA、娱乐系统和蜂窝电话组合)、或包含多触摸输入设备的设备或消费电子产品,诸如具有多触摸输入设备的多触摸手持设备或蜂窝电话和手持计算机。
[0029]在一个实施例中,为了向客户端设备传送通知,托管服务器应用的服务器,诸如邮件服务器、IMAP (因特网接入消息协议)服务器、日历服务器、联系人服务器、设备管理服务器或其它适用服务器应用等,可通过从服务管理方(例如,Apple Inc.)要求推送提供商证书来保持推送能力。在客户端设备上运行的客户端应用可通过从客户端设备到应用服务器建立的连接询问托管相应的服务器应用的应用服务器的能力。如果询问结果指示应用服务器获知推送服务,或能够提供推送服务,那么客户端应用可向服务器应用发送识别自身的推送服务命令。
[0030]特别地,在客户端设备中运行的客户端应用可通过推送服务命令向服务器应用呈现客户端设备的设备令牌,以允许托管服务器应用的服务器向客户端设备推送消息或通知。响应于推送服务命令,服务器应用可识别客户端设备可侦听或观察以接收从服务器推送的消息的、服务器的通知主题或标识符。
[0031 ] 在一些实施例中,从客户端应用到服务器应用的推送服务命令可包含命名值对,诸如用于相应应用的推送协议的版本号、账户标识符、用于允许服务器(例如,运行服务器应用的服务器)联系托管客户端应用的客户端设备的设备令牌和/或识别客户端应用的副主题标识符。账户标识符和/或副主题标识符可保持对服务器不透明以被传递到推送服务(或推送服务器)。到达客户端设备的针对客户端应用的通知消息可携带账户标识符和副主题标识符。
[0032]在一个实施例中,从服务器应用到客户端应用的对推送服务命令的响应可包括包含推送协议的版本号和与托管服务器应用的服务器相关的主题标识符的命名值。主题标识符可被用于登记服务器的提供商证书,以使得服务器能够向运行客户端应用的客户端设备推送通知消息。在某些实施例中,客户端设备和服务器可通过推送服务命令/响应执行握手交换,以例如协商从服务器应用到客户端应用的消息通知的推送协议的版本(例如,识别针对服务器应用和客户端应用两者的最高支持版本)。
[0033]根据一个实施例,用于客户端应用的副主题可在与应用服务器相关的主题之上提供一个或多个附加间接级别。例如,副主题可引导客户端通知消息瞄准客户端应用。客户端应用可登记主题和副主题对。作为替代方案,可以不通过基于副主题的机制紧密地耦合客户端应用和应用服务器。多个(客户端)应用可登记主题中的共同副主题。
[0034]副主题可从客户端应用被转发到服务器应用以供登记。在某些实施例中,可在不需要由客户端应用转发副主题的情况下,为服务器应用针对客户端应用登记副主题或其它级别的命名层级。
[0035]为了解释,根据一个实施例,联系人应用、日历应用和Word应用可属于Office应用套装。联系人应用可在总的主题“office”下登记副主题“联系人”。为了提供更好的、更新的使用体验,日历应用可选择针对与联系人应用完全相同的副主题(即,“联系人”)和主题对(即,“联系人”和“office”)进行登记,例如添加生日。但是,Word应用可在总的主题“office”下登记,不针对副主题“联系人”进行登记。因此,副主题的登记可能未必强制特定应用的一对一映射(或瞄准)。服务器可能不需要获知或与客户端共享副主题信息。例如,服务器可使联系人数据的变化与例如为“联系人”的特定副主题相关,并将该副主题作为固有机制用于推送协议。
[0036]图1是示出用于消息通知的联网系统的一个实施例的框图。联网系统100可包含一个或多个服务器(或主机),诸如应用服务器101、通知服务器105,例如,APN (Apple PushNetwork)服务器,这些服务器通过网络107与诸如移动设备109 (例如,iPhone设备)的一个或多个设备耦合。在一个实施例中,网络107可通过开放的因特网、内联网、防火墙保护安全网络、广域蜂窝网络(例如,3G网络)等允许通知服务器105、移动设备109和/或应用服务器101之间的网络连接(例如,用于发送推送通知)。网络107可以是有线的、无线的(例如,诸如W1-F1、蓝牙等)或两者的组合。
[0037]根据一个实施例,应用服务器101可包含单个的服务器设备或本地或远程分布式服务器设备集群。应用服务器101可托管为在诸如移动设备109的客户端设备中运行的相应的客户端应用提供服务的一个或多个单独的服务器应用,诸如服务器应用117。服务器应用可包含邮件服务器、日历服务器、联系人服务器、设备管理服务器或其它适用的服务器应用。在一个实施例中,应用服务器101可登记来自通知服务器105的证书以向移动设备109推送或发送通知消息。登记可分配主题103作为识别应用服务器101的标识符(例如,包含于登记的证书中)。移动设备109可通过由通知服务器105提供的诸如来自Apple Inc.的Apple Push Network Service的推送服务侦听源自应用服务器101的消息的主题103。
[0038]在一个实施例中,移动设备109可托管包含应用111的多个客户端应用。客户端应用可以是移动邮件应用、日历应用、联系人应用、设备管理应用或可由相应的服务器应用服务的其它适用的客户端应用。移动设备109可例如通过通知服务器105针对推送服务登记以获得用于使得移动设备109能够接收通过推送服务从诸如应用服务器101的服务器推送的消息的设备令牌115。设备令牌115可识别和/或认证移动设备109以通过推送服务路由通知消息。另外,可在移动设备109中生成副主题113以唯一地识别设备中的不同的客户端应用中的应用111。
[0039]在一个实施例中,应用111可将设备令牌115和副主题113转发到应用服务器101的相应的服务器应用117,以向移动设备109推送通知消息。应用服务器101又可以以主题103作答,供移动设备109侦听以接收从应用服务器101推送的通知消息。通知消息可嵌入副主题113以允许移动设备109直接向通过副主题113识别的应用111传输消息,而不调用设备中的其它客户端应用。
[0040]图2是示出根据在这里描述的实施例的用于管理通知消息的移动设备中的示例性部件的框图。例如,移动设备109可通过图1的网络系统100针对推送服务登记。在一个实施例中,通知管理模块201可在移动设备109内提供用于推送服务的构架。通知管理模块201可在服务(例如,推送服务)连接处理中接收设备令牌115,以将移动设备109识别为认证的或信任的以接收通过推送服务推送的通知消息。在一个实施例中,通知管理模块201可根据消息是否匹配或包含设备令牌115来确定从推送服务推送的消息是否指定给移动设备109。
[0041]根据一个实施例,通知管理模块201可例如响应来自应用111的请求而生成副主题113作为识别移动设备109内的应用111的客户端应用标识符。应用111可转发副主题113和设备令牌115,来登记以从诸如图1的服务器应用117的相应的服务器应用接收消息通知。在一个实施例中,应用111可通过通知管理模块201订阅或侦听诸如图1的主题103的主题。移动设备109中的多于一个的应用可登记或订阅共同的主题。通知管理模块201可在订阅简档203中包含指示当前由哪个应用订阅哪个主题的主题订阅数据。
[0042]在接收到在推送服务上推送的通知消息时,通知管理模块201可从到达的通知消息中提取令牌以基于例如令牌与设备令牌115之间的匹配来确定通知消息是否指定给移动设备109。通知管理模块201可识别来自接收的通知消息的主题,以根据订阅简档203识别应将接收的通知消息通知给哪些客户端应用。可选地,通知管理模块201可确定接收的通知消息是否携带用于将接收的通知消息直接传输到由副主题串识别的客户端应用(诸如由副主题113识别的应用111)的副主题(例如,串),而不调用或通知也订阅了包含于接收的通知消息中的主题的其它应用。
[0043]图3是示出用于使应用服务器提供通知消息的示例性部件的框图。例如,应用服务器101可在图1的网络系统100上通过通知服务器105向客户端设备推送通知消息。在一个实施例中,通知模块301可接收作为从推送服务管理方接收的证书的一部分的、用于识别应用服务器101的主题103。服务器应用117可将例如通过通知模块301检索的主题103传递到诸如图1的移动设备109的客户端设备,以使得客户端设备能够侦听从应用服务器101推送的消息。
[0044]在一个实施例中,通知服务登记簿303可存储从登记的客户端设备接收的设备令牌和相关的数据,用于来自服务器应用117或在应用服务器101中托管的其它服务器应用的消息通知。通知服务登记簿303可基于在本地或以远程的方式与应用服务器101耦合的存储器或大规模存储设备。在一个实施例中,通知服务登记簿303中的设备令牌可与诸如从客户端应用转发以针对消息通知登记的副主题等数据相关。相关的数据可保持对应用服务器101和/或通知服务器105不透明。例如,除了用于存储、检索、去除和/或转发相关数据以外,可不在应用服务器101中为相关数据分配处理资源。当向由设备令牌识别的客户端设备推送通知消息时,服务器应用117可例如通过通知模块301向通知服务器105转发设备令牌及其相关的数据和主题103。
[0045]图4是示出根据在这里描述的实施例的移动设备与应用服务器之间的示例性消息交换的序列图。在一个实施例中,移动设备109、应用服务器101和通知105可通过图1的网络107相互耦合。移动设备109可在针对消息通知应用服务器101登记之前、例如在实例401之前通过例如通知服务器105从推送服务接收诸如图1的设备令牌115的设备令牌。应用服务器101可从推送服务的安全管理方接收证书以授权应用服务器101建立与诸如通知服务器105的推送服务器的连接。接收的证书可包含用于识别应用服务器101的作为串的主题,诸如图1的主题103。
[0046]在一个实施例中,移动设备109的客户端应用,例如,移动邮件,可发起与在应用服务器101中托管的例如为IMAP服务器的相应的服务器应用的网络连接,以针对来自服务器应用的消息通知登记。在次序401中,客户端应用可发起移动设备109与应用服务器101之间的网络连接,以发送用于询问服务器应用支持哪些能力的询问请求。作为响应,在次序403中,服务器应用可例如基于包含XAPPLEUSHSERVICE指示器的协议以指示推送选项的可用性的指示作答。
[0047]而在次序405中,客户端应用可从移动设备109向应用服务器101发送命令以针对消息推送或通知登记。命令可包含具有名称或标识符的参数以允许服务器应用寻址移动设备109和/或客户端应用。在一个实施例中,参数可基于包含移动设备109的设备令牌的命名值。可选地,参数可包含唯一地由移动设备109内的客户端应用所有的副主题,例如,“com.apple, mobilemail”。在次序407中,应用服务器可以以识别应用服务器101的主题作答。主题可以是可用于识别通过由多个服务器共享的推送服务从应用服务器101推送的消息的串,例如,“com.google, push”。可在移动设备109和应用服务器101之间为针对消息通知登记而建立的相同的网络连接上交换附加的专用事务。可在移动设备109等待来自应用服务器101的通知时断开该网络连接。
[0048]随后,服务器应用可例如响应于某些专用事件的出现(诸如在IMAP服务器中有新邮件到达),来生成推送到移动设备109的通知消息。服务器应用可封装通知消息与设备令牌和与设备令牌相关的传递数据,该传递数据例如包含针对移动设备109登记(或存储)的客户端应用的副主题。在次序409中,应用服务器101可通过通知服务器105向移动设备109发送具有识别应用服务器101的主题的通知消息。而在次序411中,通知服务器105可通过推送网络服务向移动设备109推送通知消息。
[0049]在通知消息到达时,移动设备109可在将消息转发到感兴趣的客户端应用之前验证消息的主题和/或设备令牌。如果验证失败(例如,没有订阅该主题并且/或者设备令牌不匹配本地设备令牌),那么移动设备109可忽略该消息。可选地,移动设备109可从通知消息的有效载荷提取副主题以仅向由副主题命名的客户端应用传送通知消息,而不向订阅该主题的其它应用转发。如果客户端应用处于睡眠状态或者当前没有运行以接收通知消息,那么移动设备109可调用客户端应用。而在次序413中,客户端应用可发起与应用服务器101中的相应的服务器应用的连接以执行专用事务(例如,检索邮件消息)。
[0050]图5是示出用于使移动设备能够将通知消息路由到识别的客户端应用的处理的一个实施例的流程图。可通过可包含硬件(电路、专用逻辑等)、软件(诸如在专用机上运行)或两者的组合的处理逻辑执行示例性处理500。例如,可通过图1的系统100的一些部件执行处理500。在块501中,处理500的处理逻辑可生成用于驻留于由设备令牌识别的客户端设备中的客户端应用的应用标识符(例如,副主题),该客户端应用与由通过服务器标识符(例如,主题)识别的一个或多个应用服务器托管的服务器应用执行事务。
[0051]在块503中,在一个实施例中,处理500的处理逻辑可为客户端应用登记来自应用服务器的消息通知服务。处理500的处理逻辑可将与客户端应用相关的标识符(例如,包含客户端应用标识符的副主题和客户端设备的设备令牌)转发到在应用服务器中托管的服务器应用,以使得服务器应用能够针对客户端应用向客户端设备推送通知消息。
[0052]在块505中,响应从应用服务器接收通知消息,处理500的处理逻辑可确定通知消息是否携带应用标识符。在一个实施例中,处理500的处理逻辑可从通知消息提取令牌和主题(例如,基于命名值)以验证通知消息是否要被移动设备接收。在一个实施例中,处理500的处理逻辑可从通知消息的有效载荷识别应用标识符,例如,副主题。
[0053]如果应用标识符或副主题被识别,那么,在块507中,处理500的处理逻辑可将通知消息转发到由副主题识别的客户端应用,而不将通知消息转发到订阅通知消息的主题的其它应用。处理500的处理逻辑可在客户端设备中的订阅了主题的多个客户端应用中选择由副主题识别的客户端应用。否则,如果没有在通知消息中发现副主题,那么处理500的处理逻辑可将通知消息转发到订阅了主题的各客户端应用,以供客户端应用确定是否处理通知消息(例如,基于在消息中携带的内容)。
[0054]图6是示出用于从应用服务器向应用客户端提供通知消息的处理的一个实施例的流程图。可通过可包含硬件(电路、专用逻辑等)、软件(诸如在专用机上运行)或两者的组合的处理逻辑执行示例性处理600。例如,可通过系统100的一些部件,诸如通过图1的应用服务器101,执行处理600。在块601中,处理600的处理逻辑可从客户端设备中的客户端应用接收针对来自在应用服务器中托管的服务器应用的消息通知的登记请求。登记请求可包含客户端设备的标识符(例如,设备令牌),并可选地包含客户端应用的附加的标识符(例如,副主题)。
[0055]在块603中,处理600的处理逻辑可向客户端设备发送识别应用服务器的服务器标识符(例如,主题),以允许客户端设备侦听从应用服务器通知(或推送)的消息。在一个实施例中,在块605中,处理600的处理逻辑可存储包含设备令牌的标识符,以供推送服务针对客户端设备的对通知消息进行寻址。存储的标识符可包含用于识别用于接收通知消息的客户端设备中的客户端应用的副主题。
[0056]在一个实施例中,在块607中,处理600的处理逻辑可根据所存储的托管客户端应用的客户端设备的标识符来生成针对为了接收消息而登记的客户端应用的通知消息。例如,通知消息可指示在与与客户端应用相关的账户有关的服务器应用中出现事件,诸如新邮件消息到达、聊天请求、调度更新或其它的适用事件。通知消息可与识别客户端设备的客户端令牌和包含识别客户端应用的副主题的有效载荷一起封装。在块609中,处理600的处理逻辑可通过推送服务向客户端设备发送包含识别发起的应用服务器的主题的通知消息。通知消息可携带嵌入消息的有效载荷中的、用于识别客户端应用的副主题。随后,在块611中,处理600的处理逻辑可在从客户端应用建立的与服务器应用的网络会话上执行专用事务。
[0057]在块613中,处理600的处理逻辑可确定是否满足停止向客户端应用或客户端设备发送通知消息的条件。客户端应用可能已针对从服务器应用接收通知消息进行了登记。在一个实施例中,处理600的处理逻辑可监视自向客户端设备发送最近的通知消息算起的客户端设备的持续期或经过时间。如果持续期超过阈值(例如,I天、12小时等,可被预先配置或动态配置),那么可满足停止向客户端设备发送通知消息的条件。在块615中,如果满足条件,则处理600的处理逻辑可撤销针对来自服务器应用的消息通知(或推送服务)的客户端设备的登记。可从服务器应用的通知接收方列表中去除客户端设备。例如,处理600的处理逻辑可从消息通知的登记簿中去除与识别客户端设备的设备令牌相关的条目,包括携带识别客户端设备的客户端应用的副主题的数据。
[0058]图7表示可与在这里描述的实施例一起使用的数据处理系统的一个例子。图7所示的数据处理系统700包含可以是一个或多个微处理器或者可以是片上系统集成电路的处理系统711,并且,系统还包含用于存储供处理系统执行的数据和程序的存储器701。系统700还包含可包含麦克风和扬声器的音频输入/输出子系统705,该音频输入/输出子系统705例如用于通过扬声器和麦克风回放音乐或提供电话功能。在至少某些实施例中,系统700可请求在这里描述的一个或多个简档并下载这些简档以配置设备来通过网络通信。系统700可从可以是图7所示的系统的服务器数据处理系统下载这些简档。在一个实施例中,系统700可以是图1所示的设备111。
[0059]显示控制器和显示设备707向用户提供视觉用户界面;该数字界面可包含与在运行OS X操作系统软件时的Macintosh计算机上所示的图形用户界面类似的图像用户界面。系统700还包含用于与另一数据处理系统通信的一个或多个无线收发器703。无线收发器可以是WiFi收发器、红外收发器、蓝牙收发器和/或无线蜂窝电话收发器。可以理解,在某些实施例中,未示出的附加的部件也可以是系统700的一部分,并且,在某些实施例中,也可在数据处理系统中使用比图7所示少的部件。[0060]数据处理系统700还包含一个或多个输入设备713,提供这些输入设备713以允许用户向系统提供输入。这些输入设备可以是键区或键盘或触摸面板或多触摸面板。数据处理系统700还包含可以是对接处的连接器的可选的输入/输出设备715。可以理解,可使用未示出的一个或多个总线以互连各种部件,这在本领域中是公知的。图7所示的数据处理系统可以是手持计算机或个人数字助理(PDA)或具有PDA等功能的蜂窝电话或包含蜂窝电话的手持计算机或诸如iPod的媒体播放器或组合这些设备的方面或功能的设备,诸如在一个设备中与PDA和蜂窝电话组合的媒体播放器。在其它的实施例中,数据处理系统700可以是网络计算机或另一设备内的嵌入处理设备,或与图7相比具有更少的部件或者可能具有更多的部件的其它类型的数据处理系统。
[0061]图8示出可与本发明的一个实施例一起使用的数据处理系统的一个例子。注意,虽然图8示出计算机系统的各种部件,但它不是要代表互连部件的任何特定的结构或方式,原因是这些细节不是与本发明相关的。还可以理解,也可在本发明中使用具有更少或更多部件的网络计算机和其它数据处理系统。图8可代表图1所示的服务器系统。
[0062]如图8所示,作为数据处理系统的一种形式的计算机系统800包含与微处理器805和ROM (只读存储器)807和易失性RAM809和非易失性存储器811耦合的总线803。微处理器805可检索来自存储器807、809、811的指令并执行指令以执行上述的操作。总线803将这些各种部件互连在一起并且还互连这些部件805、807、809和811与显示控制器和显示设备813以及与诸如输入/输出(I/O)设备的外设设备,这些外设设备可以是鼠标、键盘、调制解调器、网络接口、打印机和本领域公知的其它设备。一般地,输入/输出设备815通过输入/输出控制器817与系统耦合。易失性RAM (随机存取存储器)809 —般实现为为了刷新或保持存储器中的数据而连续需要电力的动态RAM (DRAM)0
[0063]大规模存储设备811 —般是磁硬驱动或磁光学驱动或光学驱动或DVD RAM或快擦写存储器或即使在从系统去除电力之后也保持数据(例如,大量的数据)的其它类型的存储器系统。一般地,大规模存储设备811还可以是随机存取存储器,但这不是必需的。虽然图8表示大规模存储设备811是与数据处理系统中的其余部件直接耦合的本地设备,但应理解,本发明可利用远离系统的非易失性存储器,诸如通过诸如调制解调器的网络接口、以太网接口或无线网络与数据处理系统耦合的网络存储设备。总线803可包含通过各种桥、控制器和/或适配器相互连接的一个或多个总线,这在本领域中是公知的。
[0064]这里使用的术语“存储器”要包含所有易失性存储介质,诸如动态随机存取存储器(DRAM)和静态RAM (SRAM)0计算机可执行指令可存储于诸如磁硬盘、光盘的非易失性存储设备上,并且一般在通过处理器的软件执行中通过直接存储器存取处理写入到存储器中。本领域技术人员很容易理解,术语“机器可读存储介质”包含可通过处理器访问的任何类型的易失性或非易失性存储设备。
[0065]在以下的说明书中,参照其特定的示例性实施例描述了本发明。很显然,可在不背离在以下的权利要求中阐述的本发明的更宽的精神和范围的情况下可对其提出各种修改。因此,说明书和附图是解释性的,而不是限制的。
【权利要求】
1.一种包含指令的机器可读非暂时性介质,当通过机器执行所述指令时,使得所述机器执行用于消息通知的方法,所述方法包括: 生成识别客户端设备内的客户端应用的副主题标识符,所述客户端应用与在一个或多个应用服务器中托管的服务器应用相关; 通过应用服务器为所述客户端应用登记通知服务,以将与所述客户端应用相关的标识符转发到服务器应用,以使得服务器应用能够针对所述客户端应用向客户端设备推送通知消息; 响应于从应用服务器接收到通知消息,确定所述通知消息是否携带所述客户端应用的副主题标识符;和 如果所述通知消息携带所述客户端应用的标识符,则在不将所述通知消息转发到客户端设备中的其它应用的情况下将所述通知消息转发到所述客户端应用。
2.根据权利要求1的介质,其中,在客户端设备中托管了多个客户端应用,并且,副主题标识符唯一地识别多个客户端应用中的所述客户端应用。
3.根据权利要求1的介质,其中,标识符包括副主题标识符。
4.根据权利要求3的介质,其中,标识符包括唯一地识别客户端设备的设备令牌。
5.根据权利要求2的介质,其 中,通过主题标识符唯一地识别应用服务器,并且,所述登记还包括: 针对主题标识符登记客户端应用,以侦听来自应用服务器的通知,其中,针对主题标识符登记多于一个的客户端应用。
6.根据权利要求5的介质,其中,多于一个的客户端应用中的每一个与在应用服务器中托管的单独的服务器应用相对应。
7.根据权利要求5的介质,其中,所述方法还包括: 发起与应用服务器的网络连接;和 在网络连接上向应用服务器发送标识符。
8.根据权利要求7的介质,其中,所述方法还包括: 从网络连接接收主题标识符,其中,在客户端应用等待通知的情况下,网络连接断开。
9.根据权利要求5的介质,其中,所述确定包括: 从通知消息提取主题标识符;和 如果通知消息未携带副主题标识符,则将通知消息转发到针对主题串登记的每个客户端应用。
10.根据权利要求1的介质,其中,所述转发包括如果客户端应用当前不活动则调用客户端应用。
11.根据权利要求10的介质,其中,至少一个其它应用当前不活动,并且其中,通知消息在不调用所述至少一个其它应用的情况下被转发。
12.一种包含指令的机器可读非暂时性介质,当通过机器执行所述指令时,使得所述机器执行用于提供消息通知的方法,所述方法包括: 在托管在应用服务器中的服务器应用处接收来自客户端设备的客户端应用的针对通知消息的登记请求,所述请求具有包括识别客户端设备的设备令牌和识别客户端应用的客户端应用标识符的标识符;发送针对客户端设备的服务器标识符,以允许客户端设备侦听从应用服务器推送的消息; 存储接收的标识符以针对消息通知登记客户端设备;和 向客户端设备发送通知消息以通知客户端应用,通知消息由服务器标识符识别,并且,通知消息嵌入有客户端应用标识符。
13.根据权利要求12的介质,其中,在由客户端设备发起的网络连接上接收登记请求,并且其中,在所述网络连接上发送服务器标识符。
14.根据权利要求12的介质,其中,与包括客户端应用标识符的不透明数据相关地存储客户令牌。
15.根据权利要求14的介质,其中,通知消息包括用于识别客户端设备的设备令牌,并且其中,在通知消息的有效载荷中携带所述不透明数据。
16.根据权利要求12的介质,其中,所述发送包括: 建立与进行推送服务的推送服务器的网络连接;和 在网络连接上向推送服务器发送通知消息,其中,将通知消息与服务器标识符封装。
17.根据权利要求16的介质,其中,接收在来自推送服务管理方的证书中的服务器标识符,并且,所述服务器标识符唯一地识别共享推送服务的应用服务器。
18.一种机器实现的用于消息通知的方法,所述方法包括:· 生成识别客户端设备内的客户端应用的副主题标识符,所述客户端应用与在一个或多个应用服务器中托管的服务器应用相关; 通过应用服务器为所述客户端应用登记通知服务,以将与所述客户端应用相关的标识符转发到服务器应用,以使得服务器应用能够针对所述客户端应用向客户端设备推送通知消息; 响应于从应用服务器接收到通知消息,确定所述通知消息是否携带所述客户端应用的副主题标识符;和 如果所述通知消息携带所述客户端应用的标识符,则在不将所述通知消息转发到客户端设备中的其它应用的情况下将所述通知消息转发到所述客户端应用。
19.一种机器实现的用于提供消息通知的方法,所述方法包括: 在托管在应用服务器中的服务器应用处接收来自客户端设备的客户端应用的针对通知消息的登记请求,所述请求具有包括识别客户端设备的设备令牌和识别客户端应用的客户端应用标识符的标识符; 发送针对客户端设备的服务器标识符,以允许客户端设备侦听从应用服务器推送的消息; 存储接收的标识符以针对消息通知登记客户端设备;和 通过客户端令牌向客户端设备发送通知消息以通知客户端应用,通知消息由服务器标识符识别,并且,通知消息嵌入有客户端应用标识符。
20.一种装置,包括: 存储包括服务器应用的可执行指令的存储器; 与推送网络耦合的网络接口; 与所述网络接口和所述存储器耦合以执行来自所述存储器的用于消息服务的可执行指令的处理器,所述处理器被配置为: 响应来自客户端设备的发起,通过网络接口建立与客户端设备的第一网络连接; 在服务器应用处在第一网络连接上接收来自客户端设备的客户端应用的登记请求,所述请求具有包括识别客户端设备的客户端令牌和识别客户端应用的客户端应用标识符的标识符; 针对客户端设备发送服务器标识符,以允许客户端设备侦听从应用服务器推送的消息; 存储接收的标识符以针对消息通知登记客户端设备;和 通过网络接口在与推送网络的第二网络连接上向客户端设备发送通知消息,所述通知消息具有用于识别客户端应用的客户端令牌,通知消息由服务器标识符识别,并且,通知消息嵌入有所述客户端应 用标识符。
【文档编号】H04L29/08GK103718578SQ201280038014
【公开日】2014年4月9日 申请日期:2012年7月30日 优先权日:2011年8月1日
【发明者】C·玛塞林诺 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1