CN104054322B - 基于代理的推送服务方法及系统 - Google Patents

基于代理的推送服务方法及系统 Download PDF

Info

Publication number
CN104054322B
CN104054322B CN201380005898.5A CN201380005898A CN104054322B CN 104054322 B CN104054322 B CN 104054322B CN 201380005898 A CN201380005898 A CN 201380005898A CN 104054322 B CN104054322 B CN 104054322B
Authority
CN
China
Prior art keywords
service
notice
agency
mobile device
mobile client
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.)
Active
Application number
CN201380005898.5A
Other languages
English (en)
Other versions
CN104054322A (zh
Inventor
李莉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN104054322A publication Critical patent/CN104054322A/zh
Application granted granted Critical
Publication of CN104054322B publication Critical patent/CN104054322B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种在移动客户端和通知服务器之间代理通知服务连接的方法和装置。在本发明的一个实施例中,代理从移动客户端接收针对通知服务的代理设置请求。代理还为移动客户端建立与通知服务器的通知连接并保持通知连接而不唤醒移动客户端的应用处理器。代理从通知服务接收通知并将通知转发给移动客户端。

Description

基于代理的推送服务方法及系统
技术领域
本发明的实施例涉及移动设备处理领域;更具体地,涉及管理移动设备与代理的通知服务连接。
背景技术
移动设备(例如膝上型计算机、掌上电脑、便携式媒体播放器、智能手机、多媒体移动电话、移动游戏系统,例如“Gameboy”等)的用户可能会订阅一项或多项通知服务。例如,用户可以订阅一项或多项“推送”电子邮件服务,例如,.Mac、Microsoft ExchangeActiveSync、push-IMAP、Yahoo!Push等。就推送电子邮件服务而言,例如,电子邮件服务器可以自动向针对用户的移动设备上的电子邮件客户端传输电子邮件消息和/或日历更新而无需用户请求该项目。换句话讲,用户不请求(轮询)电子邮件服务器发送感兴趣的电子邮件消息或其他项目。因此,推送通知服务是一项持久性通知服务。此外,其他类型的服务可以使用类似的推送构造(例如,更新/升级服务、新闻服务、weblog服务、podcast服务等)。为了保持推送通知服务,移动设备周期性地刷新与推送通知服务的连接(例如,通过向推送服务器传输查验消息)。
此外,用户可以订阅一项或多项“拉取”服务,例如“拉取”电子邮件服务(例如IMAP,POP3)。在拉取电子邮件服务中,用户周期性地检查(轮询)电子邮件服务器以确定是否有新的电子邮件消息。如果有新的电子邮件消息,则将它们下载到客户端。许多电子邮件客户端支持自动配置轮询间隔。例如,移动设备的用户可以为POP3电子邮件帐户配置10分钟的轮询间隔(因此,电子邮件客户端每10分钟自动轮询电子邮件服务器以检查新的电子邮件消息)。此外,可以配置通知服务以向多个订阅者提供网络范围(例如互联网范围)事件通知消息,其中通知服务可以被一个 或多个订阅者和/或发布者自动发现,在2008年3月4日提交的名称为“Automatic Notification System and Process”的美国专利申请12/042,307中描述了这种情况,该申请据此全文以引用方式并入。
移动设备建立与一个或多个网元的数据语境(例如分组数据协议(PDP)语境),所述一个或多个网元通过网络(例如蜂窝网络,诸如通用分组无线电服务(GPRS)网络和/或局域网(LAN))向移动设备(例如,来自互联网的网际协议流量)提供数据服务。该数据语境是移动设备和网元之间的逻辑关联,并包括涉及路由(例如IP地址信息)、服务质量(QoS)、计费、认证等的信息。由于保持数据语境会消耗网元的网络资源,因此如果移动设备未主动使用数据语境,一个或多个服务器可以拆除与移动设备关联的数据语境。例如,如果关闭移动设备(从而不使用数据语境且不联系网元),网元可以在不从移动设备接收信息之后一定时间拆除数据语境。移动设备可以周期性地刷新数据语境以保持数据语境连接有效。
为了节省电池寿命,移动设备可以在未连接到恒定电源且未主动使用时(例如空闲状态)进入低功率模式。通常将这称为“睡眠”模式。根据移动设备的特性,特定移动设备的睡眠模式可能不同。例如,在移动设备具有网络接入(例如蜂窝接入、WiFi接入等)的情况下,睡眠模式可以包括暂时使主处理器进入睡眠并关闭显示器,但保持网络堆栈处于可操作功能中。因此,在处于睡眠模式中时,示例性移动设备可以继续从通知服务(例如来自推送电子邮件服务和/或来自拉取电子邮件服务的电子邮件消息)接收电话呼叫和/或感兴趣的项目。一旦接收到,就可以唤醒移动设备以处理那些电话呼叫和/或通知。例如,移动设备在处于睡眠模式时接收到电话呼叫之后唤醒,因此用户可以应答电话呼叫。此外,典型的移动设备通常不能在处于睡眠模式的同时刷新数据语境(因此,移动设备通常需要唤醒以刷新数据语境)。
发明内容
一种在移动客户端和通知服务器之间代理通知服务连接的方法和装置。在本发明的一个实施例中,代理从移动客户端接收对通知服务的代理设置请求。代理还为移动客户端建立与通知服务器的通知连接并保持通知 连接而不唤醒移动客户端的应用处理器。代理从通知服务接收通知并将通知转发给移动客户端。
在本发明的另一个实施例中,一种系统包括移动客户端、通知服务器和推送代理。移动客户端经由通知服务器从通知服务接收通知,并且推送代理为移动客户端代理通知请求。推送代理从移动客户端接收对通知服务的代理设置请求。推送代理还为移动客户端建立与通知服务器的通知连接并保持与通知服务器的通知连接而不唤醒移动客户端的应用处理器。此外,推送代理从通知服务接收通知并将通知转发给移动客户端。
在本发明的另一个实施例中,一种设备包括在第一操作系统中执行并执行命令功能的应用处理器和在第二操作系统中执行并执行通信功能的网络连接性元件。网络连接性包括推送代理,其中推送代理被配置为从应用处理器接收针对通知服务的代理设置请求。推送代理还被配置成为设备建立与通知服务器的通知连接并保持与通知服务器的通知连接而不唤醒应用处理器。此外,推送代理被配置为从通知服务接收通知并将通知转发给应用处理器。
附图说明
参考以下描述和用于示出本发明的实施例的附图可以最好地理解本发明。在附图中:
图1示出了根据本发明的一个实施例的一种示例性计算环境;
图2示出了根据本发明的一个实施例,移动设备建立通知服务连接并安排通知服务连接消息传输间隔的一种示例性流程;
图3A是示出根据本发明的一个实施例管理通知服务连接的示例性移动设备的框架的框图;
图3B是示出根据本发明的一个实施例的图3A的通知服务连接管理器的分解图的框图;
图4是示出根据本发明的一个实施例管理通知服务连接的流程图;
图5是示出根据本发明的一个实施例,移动设备基于重叠通知服务连接消息传输窗口来同步通知服务连接消息的传输的示例性图表;
图6是示出根据本发明的一个实施例优化通知服务连接消息间隔的示例性状态图;
图7是示出根据本发明的一个实施例的一种示例性移动设备的框图;
图8是示出根据本发明的一个实施例的一种示例性移动设备的框图;
图9A示出了根据本发明的一个实施例包括独立代理的一种示例性计算环境;
图9B示出了根据本发明的一个实施例包括并入移动客户端中的代理的一种示例性计算环境;
图10是根据本发明的一个实施例来代理客户端和服务器之间的一个或多个服务连接的代理的框图;
图11是示出根据本发明的一个实施例由代理为客户端管理通知服务连接的流程图;
图12是示出根据本发明的一个实施例管理代理和服务器之间的通知服务连接的流程图;并且
图13是示出根据本发明的一个实施例管理客户端交互的流程图。
具体实施方式
以下说明示出了许多具体细节。然而,应当理解,可以不需要这些具体细节来实践本发明的实施例。在其他情况下,未详细示出熟知的电路、结构和技术,以免影响对本说明的理解。在其他情况下,未详细示出控制结构、门电平电路和完整的软件指令序列以免使本发明模糊不清。利用所包括的描述,本领域的普通技术人员将能够实现适当的功能性而无需过度试验。
在说明书中提到“一个实施例”、“实施例”、“示例性实施例”等表示所述的实施例可包括特定的特征、结构或特性,但未必每个实施例都包括该特定特征、结构或特性。此外,这样的措辞用语不必是指相同的实施例。另外,在结合实施例描述特定特征、结构或特性时,认为结合明确或未明确描述的其他实施例实现此类特征、结构或特性在本领域技术人员的知识范围之内。
在以下描述和权利要求中,可以使用术语“耦接”和“连接”及其派生词。应当理解,这些术语并非意在彼此同义。“耦接”被用于表示可能或可能不彼此直接物理或电接触的两个或更多个元件彼此合作或交互。“连接”被用于表示彼此耦接的两个或更多元件之间通信的建立。
可以利用一个或多个电子设备(例如,移动设备(例如膝上型计算机、掌上电脑、便携式媒体播放器、智能手机、多媒体移动电话、移动游戏系统等)、非移动设备(例如,台式计算机、工作站、服务器等))上存储和执行的代码和数据来实现图中所示的技术。此类电子设备利用机器可读介质(通过网络,在内部并与其他电子设备一起)存储和发送代码和数据,机器可读介质诸如机器存储介质(例如磁盘;光盘;随机存取存储器;只读存储器;闪存存储器设备)和机器通信介质(例如,所传播信号的电、光、声或其他形式,例如载波、红外信号、数字信号等)。此外,此类电子设备通常包括耦接到一个或多个其他部件(诸如存储设备)、一个或多个用户输入/输出设备(诸如键盘、小键盘、触摸屏和/或显示器)和一个或多个网络连接的一组一个或多个处理器。该组处理器与其他部件的耦接通常是通过一个或多个总线和网桥(也称为总线控制器)实现的。承载网络流量的存储设备和信号分别表示一种或多种机器存储介质和机器通信介质。因此,给定的电子设备的存储设备通常存储代码和/或数据,以在该电子设备的该组一个或多个处理器上执行。当然,可以利用软件、固件和/或硬件的不同组合来实现本发明实施例的一个或多个部分。
通知服务
描述了一种使用移动客户端或由移动客户端的代理来管理通知服务连接的方法和设备。在本发明的一个实施例中,移动设备(例如,膝上型计算机、掌上电脑、便携式媒体播放器、智能手机、多媒体移动电话、诸如“Gameboy”的移动游戏系统等)包括一个或多个通知服务客户端(例如,推送通知服务客户端(例如,推送电子邮件客户端,诸如.Mac,Microsoft Exchange,push-IMAP,Yahoo!Push等,更新/升级服务、新闻服务、weblog服务、podcast服务等)和/或拉取通知服务客户端(例如,拉取电子邮件客户端,诸如POP3、IMAP等))。对于每个通知服务客户端,移动设备都独立地安排通知服务连接消息传输间隔并设置通知服务连接消息传输计时器。此外,通知服务连接消息传输窗口与每个通知服务连接消息传输间隔相关联并基于通知服务连接消息传输间隔的值。在通知服务连接消息传输计时器对于特定通知服务客户端而言过期时,移动设备为该通知服务传输通知服务连接消息,并且还为每个通知服务连接消息传输窗口与该过期的传输计时器重叠的其他通知服务传输通知服务连接消息。 移动设备在传输通知服务连接消息时重置针对每个通知服务的通知服务连接消息传输计时器。
在本发明的一个实施例中,对于每个通知服务连接,如果移动设备处在睡眠模式中,则移动设备安排时间以唤醒移动设备,以便传输通知服务连接消息。如果移动设备在特定时间唤醒,或者在特定时间安排的唤醒期间被唤醒,则移动设备为通知服务连接消息传输窗口与该特定时间重叠的每个通知服务传输通知服务连接消息。移动设备在传输通知服务连接消息之后重置针对每个通知服务的通知服务连接消息传输计时器。
图1示出了根据本发明的一个实施例的一种示例性计算环境100。该计算环境100包括各自与一个或多个网络数据访问元件150耦接的移动设备160和170。一个或多个网络数据访问元件150在本发明的不同实施例中可以是各种类型网络的一部分,包括蜂窝网络(例如全球移动通信系统(GSM)、增强型数据速率GSM演进(EDGE)、通用分组无线电服务(GPRS)、码分多址(CDMA)、时分-CDMA(TD-CDMA)、通用移动电信系统(UMTS)、长期演进(LTE)或其他蜂窝网络),局域网(LAN)等。例如,如果一个或多个网络数据访问元件150是GSM网络的一部分,则该一个或多个网络数据访问元件150可以包括一个或多个收发器基站(BTS)、基站控制器(BSC)、移动交换中心(MSC)、服务GPRS支持节点(SGSN)等。又如,如果一个或多个网络数据访问元件150是LAN的一部分,则该一个或多个网络数据访问元件150可以包括一个或多个网络交换机、路由器、集线器、调制解调器等。
移动设备160包括应用处理器162和一个或多个网络连接性元件164(例如,无线网络连接性元件(例如用于蜂窝电话的无线电网络连接性元件、WiFi网络连接性元件)、有线网络连接性元件(例如一个或多个有线网络接口控制器(NIC)))。移动设备160经由一个或多个网络连接性元件164,通过数据语境(例如PDP语境),与一个或多个网络数据访问元件150通信。广域网(WAN)140(例如互联网)与网络数据访问元件150耦接。推送通知服务110和120以及拉取通知服务130与WAN 140耦接。根据本发明的一个实施例,移动设备160的用户访问并使用推送通知服务110和120以及拉取通知服务130(推送通知服务110和120以及拉取通知服务130提供用户感兴趣的项目)。例如,推送通知服务110可以为移动 设备160的用户提供个人推送电子邮件帐户,而推送通知服务120可以为移动设备160的用户提供工作推送电子邮件帐户。又如,拉取通知服务130可以为移动设备160的用户提供组织拉取电子邮件帐户(例如POP3电子邮件帐户,webmail帐户等)。
在本发明的一个实施例中,应用处理器162是移动设备160的中央处理器。例如,应用处理器162处理移动设备160的一个或多个操作系统(图1中为了不使对发明的理解模糊不清未示出操作系统)以及运行于移动设备160上的任何应用程序。图1中未示出移动设备的其他公知特征结构,以免使对本发明的理解模糊,所述公知特征结构包括输入/输出设备、一个或多个存储器、电源、显示器等。
根据本发明的一个实施例,移动设备160能够进入低功率模式,称为“睡眠模式”。例如,如果移动设备160未与恒定电源耦接(例如,未插入电源插座中),则移动设备160可以周期性地进入睡眠模式以节省设备的电池寿命。移动设备160可以若干种不同方式进入睡眠模式,包括在一段时间不活动(例如1分钟不活动)之后和/或直接由来自用户的命令执行(例如,用户可以向移动设备160发出命令以使移动设备进入睡眠模式)。应当理解,进入睡眠模式的其他机制在本发明的范围之内。
在睡眠模式期间,根据本发明的一个实施例,移动设备160暂时禁用应用处理器162(应用处理器162在暂时禁用时可以几乎不消耗电力)。应当理解,如果禁用应用处理器162,也会禁用移动设备160的操作系统和应用程序。然而,根据本发明的一个实施例,至少一些网络连接性元件164不被暂时禁用。换句话讲,至少一些网络连接性元件164可以继续从网络数据访问元件150接收信息并使用电力。例如,如果移动设备160具有接收电话呼叫和/或文本消息(例如短消息服务(SMS)消息)的能力,移动设备160可以在睡眠模式期间保持唤醒无线电连接性元件,以便接收电话呼叫和/或文本消息。如果移动设备160禁用了无线电连接性元件,例如,移动设备160的用户将不能接收电话呼叫和/或文本消息(例如,电话呼叫可能转而被转发到语音邮件,如果支持的话)。应当理解,为了处理那些所接收的电话呼叫和/或文本消息(例如为了让用户应答来电),移动设备160从睡眠模式中唤醒(例如,重新启用应用处理器162)。
此外,根据本发明的一个实施例,移动设备160包括在睡眠模式期间从推送通知服务110和120接收感兴趣项目的能力。例如,至少一些网络连接性元件164具有在睡眠模式期间从推送通知服务110和120接收感兴趣项目的能力(例如,电子邮件消息、日历更新、天气更新、股票更新等)。在本发明的一个实施例中,无线电网络连接性元件在睡眠模式期间接收从推送通知服务110和120发送的感兴趣项目。因此,在睡眠模式期间,如果推送通知服务110和120为移动设备160的用户提供推送电子邮件服务,则移动设备160可以从推送通知服务110和120接收电子邮件消息。根据本发明的一个实施例,移动设备160从睡眠模式唤醒以处理在睡眠模式期间接收的感兴趣项目。
尽管在本发明的一些实施例中,WiFi网络连接性元件在睡眠模式期间被唤醒并工作(并能够从推送通知服务110和120接收感兴趣的项目),但在本发明的替代实施例中,让WiFi网络连接性元件在睡眠模式期间睡眠。在一个实施例中,无线电网络连接性元件可以使用比WiFi网络连接性元件更少的电力。因此,在该实施例中,保持WiFi网络连接性元件在睡眠模式期间唤醒,与保持无线电网络连接性元件唤醒相比,要消耗更大量的电力。因此,在本发明的一些实施例中,移动设备160可以在睡眠模式期间经由Wi-Fi网络连接性元件从推送通知服务110和120接收感兴趣的项目,而在本发明的其他实施例中,移动设备160不在睡眠模式期间经由WiFi网络连接性元件接收感兴趣的项目。
在本发明的一些实施例中,移动设备160可以使用网络连接性元件的组合以从推送通知服务110和120接收感兴趣的项目。例如,移动设备160可以支持经由无线电网络连接性元件(例如通过蜂窝网络)和/或经由WiFi网络连接性元件(例如在家庭LAN连接时)接收数据信息。移动设备160的用户可以配置移动设备160,使得在有WiFi服务可用时(例如在家庭LAN和/或工作LAN连接时)使用WiFi网络连接性元件,并且在没有WiFi服务可用时,使用无线电网络连接性元件。因此,在本发明的一个实施例中,根据哪个网络连接性元件在提供数据支持,可以使用无线电网络连接性元件和/或WiFi网络连接性元件从推送通知服务110和120接收感兴趣的项目。此外,在本发明的一个实施例中,根据在进入睡眠模式之前哪个网络连接性元件在提供数据支持,可以使用无线电网络连接性元件和/或 WiFi网络连接性元件在睡眠模式期间从推送通知服务110和120接收感兴趣的项目(例如,如果在LAN之内且WiFi网络连接性元件在移动设备160被唤醒的同时正在从推送通知服务110和120接收感兴趣的项目,则在睡眠模式期间,WiFi网络连接性元件保持唤醒以接收感兴趣的项目,并且移动设备160使无线电网络连接性元件睡眠)。
在本发明的一个实施例中,WiFi网络连接性元件可使用比无线电网络连接性元件更多的电力,不论在进入睡眠模式之前哪个网络连接性元件在提供数据支持,并且在睡眠模式期间,移动设备160使WiFi网络连接性元件睡眠(例如,暂时禁用WiFi网络连接性元件)并使用无线电网络连接性元件从推送通知服务接收感兴趣的项目。例如,如果移动设备160经由LAN(例如用户的家庭LAN)与推送通知服务110和120连接,并且用户发出命令,使移动设备160进入睡眠模式,则移动设备160自动过渡到经由蜂窝网络(通过无线电连接性元件)与推送通知服务110和120连接并使WiFi连接性元件睡眠。
在本发明的一些实施例中,周期性地刷新持久性通知服务连接(例如推送通知服务110和120),以便保持连接的持久性。例如,如果移动设备未主动使用该连接,则推送通知服务110和120可以使与移动设备160的连接超时(从而停止针对该用户的推送通知服务)。因此,在本发明的一些实施例中,要求移动设备160与推送通知服务110和120通信以便保持其持久连接。例如,在某个周期性间隔处,移动设备160向推送通知服务110和120传输通知服务连接消息以刷新该连接。通知服务连接消息通知推送通知服务110和120所述移动设备160仍然连接(并可能希望继续从推送通知服务接收感兴趣的项目)。应当理解,刷新推送通知连接通知推送通知服务的服务器所述移动设备希望保持连接到该服务。此外,刷新推送通知连接通知沿着通往推送通知服务的服务器的路径的每个网元以保持连接(否则,如网元可以清空与该连接相关联的网络资源)。通知服务连接消息可以是查验消息或其他保持活动的消息。通知服务可以对通知服务连接消息做出响应以通知该移动设备160所述连接处于活动状态。因此,如果移动设备160未从通知服务接收响应,可以要求移动设备160与通知服务重新建立会话。应当理解,在本发明的一些实施例中,从通知服务接收感兴趣的项目还会刷新持久性通知服务连接。
传输通知服务连接消息的间隔对于各个通知服务而言可能不同。例如,如果30分钟没有通信,推送通知服务110可以使得连接超时,而如果15分钟没有通信,推送通知服务120可以使得连接超时。然而,这些超时间隔不是静态的,并可以根据不同的网络状况而动态地变化。此外,通知服务可不通知移动设备已经修改了超时间隔。因此,移动设备160在试图保持连接(无需重新建立连接)时,可以在已知的超时间隔之内传输通知服务连接消息。应当理解,需要唤醒移动设备160以传输通知服务连接消息来刷新和保持通知服务连接。
此外,在本发明的一些实施例中,要求移动设备160周期性地刷新与一个或多个网络数据访问元件150的连接,以便保持网络数据连接性(例如,运营商网络中的NAT路由器,防火墙或网络中的其他网元)。例如,由于数据语境消耗网络资源,如果没有在主动使用和/或没有在一定量时间内使用(例如去除数据语境,并重新分配该数据语境的网络资源),一个或多个网络数据访问元件150可以拆除数据语境。应当理解,如果拆除数据语境,移动设备160就不与任何通知服务连接。当然,还应当理解,除了一段时间不活动之外,还可能因为其他原因拆除数据语境(例如,如果移动设备的位置在网络范围之外,如果移动设备160被关闭等)。在本发明的其他实施例中,数据语境无须被移动设备160刷新。通常,数据语境超时间隔少于通知服务超时间隔。如果数据语境有效,由移动设备160向通知服务传输的通知服务连接消息会固有地刷新与一个或多个网络数据访问元件150的连接。
图2示出了根据本发明的一个实施例,移动设备建立通知服务连接并安排通知服务连接消息传输间隔的一种示例性流程。将参考图1、图3A和图4的示例性实施例来描述图2的操作。然而,应当理解,可以由参考图1、图3A和图4论述的那些之外的本发明的实施例来执行图2的操作,参考图1、图3A和图4而论述的实施例可执行与参考图2论述的那些不同的操作。
在方框210,移动设备160建立数据语境。可以通过在现有技术中已知的任意种方法建立数据语境。从方框210,流程前进到方框220,在此,移动设备160建立一个或多个通知服务连接。例如,参考图1,移动设备160与推送通知服务110和120以及拉取通知服务130建立连接。在本发明 的一些实施例中,连接均是传输控制协议(TCP)连接。流程从方框220前进到方框230。
在方框230,移动设备安排通知服务连接消息传输间隔并针对每个通知服务连接安排设备唤醒时间。例如,移动设备160可以为推送通知服务110安排30分钟的通知服务连接消息传输间隔,为推送通知服务120安排15分钟的间隔,并为拉取通知服务130安排25分钟的间隔。此外,移动设备160可以安排与那些传输间隔一致的唤醒时间。流程从方框230前进到方框240。
在方框240,移动设备160进入睡眠模式。如前所述,移动设备160可以通过多种不同方式进入睡眠模式,包括在一段时间不活动(例如30分钟不活动)之后和/或直接由来自用户的命令执行(例如,用户可向移动设备160发出命令以使移动设备进入睡眠模式)。流程从方框240前进到方框250。在方框250,使移动设备的应用处理器睡眠,并保持一个或多个网络连接性元件唤醒,例如,以保持通知服务连接。流程从方框250前进到方框260,在此根据通知服务连接管理器来唤醒应用处理器以传输通知服务连接消息。
图3A示出了根据本发明的一个实施例由管理通知服务连接的示例性移动设备使用的框架。例如,移动设备160使用图3A中所示的框架管理与推送通知服务110和120以及拉取通知服务130的连接。该框架包括一个或多个通知服务客户端310。例如,参考图1,总共可以有三个通知服务客户端310(例如针对推送通知服务110的通知服务客户端、针对推送通知服务120的通知服务客户端和针对拉取通知服务130的通知服务客户端)。每个通知服务客户端310单个地与通知服务连接管理器320和网络堆栈330耦接。例如,在本发明的一个实施例中,每个通知服务客户端都是独立的过程,不会与其他通知服务客户端共享存储器和/或不会与其他通知服务客户端通信。每个通知服务客户端向通知服务连接管理器320注册360。
通知服务连接管理器320与一个或多个系统级计时器350、网络堆栈330和唤醒I/O子系统340耦接。通知服务连接管理器320利用一个或多个系统级计时器350安排通知服务连接消息传输间隔并监视那些计时器,如数字372所示。此外,通知服务连接管理器320利用唤醒I/O子系统340相对于通知服务连接消息传输间隔安排移动设备的唤醒,如数字370所示 (例如,可以在接近通知服务连接消息传输间隔末尾时安排唤醒),并将通知服务连接消息传输窗口与通知服务连接消息传输间隔相关联。通知服务连接管理器320还在移动设备的睡眠模式期间保持网络堆栈330唤醒,如数字368所示。
网络堆栈330包括对网络连接性元件(例如,无线电连接性元件和/或WiFi连接性元件)的支持。网络堆栈330用于与通知服务(并与整个网络中的其他实体)通信。网络堆栈330为通知服务连接管理器320提供网络的状态,如数字366所示。例如,网络堆栈330将网络状况(例如,网络拥塞、统计值等)通知给通知服务连接管理器320。此外,网络堆栈330从网络服务接收一个或多个感兴趣的项目并将它们传输到适当的通知服务客户端310,如数字376所示。此外,网络堆栈330通知通知服务客户端310是否接收到来自通知服务之一的通信(例如,是否接收到对通知服务连接消息传输的回复)。
根据本发明的一个实施例,在经过用于通知服务连接的时间之后,通知服务连接管理器320指示通知服务客户端310传输通知服务连接消息,并且还通知所述通知服务客户端310任何重新尝试事件,如数字364所示(例如,重新尝试事件可包括重新建立掉线的通知服务连接)。通知服务客户端310利用网络堆栈330来传输通知服务连接消息,如数字374所示。此外,通知服务客户端310可以指示通知服务连接管理器320对通知服务连接消息传输间隔进行校准,如数字362所示。参考图6更详细地论述对通知服务连接消息传输间隔的校准。
图3B是示出根据本发明的一个实施例的图3A的通知服务连接管理器320的分解图的框图。通知服务连接管理器320包括通知服务连接消息传输间隔调度器模块322、通知服务连接消息传输间隔优化器模块323、通知服务连接消息传输计时器监视模块324、通知服务连接消息唤醒调度器模块325、通知服务连接消息发生器模块326和睡眠模式管理器模块327。
根据本发明的一个实施例,间隔调度器模块322安排通知服务连接消息传输间隔。此外,间隔调度器模块将通知服务连接消息传输窗口与安排的通知服务连接消息传输间隔相关联。间隔调度器模块322与通知服务连接消息传输计时器监视模块324耦接。在本发明的一个实施例中,计时器监视模块监视一个或多个系统级计时器350,包括通知服务连接消息传输计 时器。间隔调度器模块322还与通知服务连接消息唤醒调度器模块耦接。根据本发明的一个实施例,唤醒调度器模块322基于通知服务连接消息传输间隔安排移动设备的唤醒。
计时器监视模块324与通知服务连接消息发生器模块326耦接。根据本发明的一个实施例,消息发生器模块326警示一个或多个通知服务客户端310发出通知服务连接消息。间隔优化器模块323与间隔调度器模块322耦接。根据本发明的一个实施例,间隔优化器模块优化通知服务连接消息传输间隔,将参考图6对其进行更详细的描述。在本发明的一个实施例中,睡眠模式管理器327在睡眠模式期间保持网络堆栈330唤醒。
图4是示出根据本发明的一个实施例管理通知服务连接的流程图。将参考图3A和图5的示例性实施例来描述图4的操作。然而,应当理解,可以由参考图3A和图5论述的实施例之外的本发明的实施例来执行图4的操作,并且参考图3A和图5而论述的实施例可执行与参考图4论述的不同的操作。图5是示出根据本发明的一个实施例移动设备基于重叠通知服务连接消息传输窗口来同步通知服务连接消息的传输的示例性图表。
根据本发明的一个实施例,移动设备上的每个通知服务客户端独立地执行图4的操作。在方框410,通知服务客户端(例如,推送通知服务客户端或拉取通知服务客户端)向通知服务连接管理器注册。例如,参考图3A和图5,通知推送通知服务110、120和通知拉取通知服务130(每个通知服务客户端310)各自独立地向通知服务连接管理器360注册。从方框410,流程前进到方框412。
在方框412,移动设备160安排通知服务连接消息传输间隔并针对每个通知服务安排相对于服务连接消息传输间隔的唤醒时间。然而,如本文稍后将要描述的,移动设备针对特定通知服务连接的实际唤醒时间可以根据其他通知服务而不同。根据本发明的一个实施例,用于持久性通知服务(例如推送通知服务)的初始服务连接消息传输间隔基于每个持久性通知服务提供的通知服务超时值。例如,参考图5,推送通知服务110包括30分钟的通知服务超时值(因此,如果在30分钟时间段之内未使用到推送通知服务110的连接,则推送通知服务110可以去除该连接),并且推送通知服务110包括15分钟的通知服务超时值。为了简化对本发明的理解,在图5中,针对推送通知服务110和120的通知服务连接消息传输间隔与超时值一致。例如,对于推送通知服务110,通知服务连接消息传输间隔为30分钟,对于推送通知服务120为15分钟。然而,应当理解,通知服务连接消息传输间隔可以不和超时值一致(例如,间隔可以小于超时值)。
还应当理解,在本发明的一些实施例中,通知服务连接消息传输间隔可以被优化并可以随着时间变化,将参考图6对其进行更详细的描述。此外,为了简单地理解本发明,在通知服务连接消息传输间隔的末尾安排每个通知服务连接的默认唤醒时间。而且,在图5的整个论述中,可以参考发送到持久性通知服务(例如,推送服务110和120)的通知服务连接消息,将通知服务连接消息的传输称为“心跳”或简单地称为“跳动”。
重新参见图4,移动设备160还将通知服务连接消息传输窗口与消息传输间隔相关联,并设置与消息传输间隔相关联的一个或多个系统计时器。根据本发明的一个实施例,通知服务连接消息传输窗口是可以传输通知服务连接消息的消息传输间隔的一部分。例如,如果在窗口之内的任何时间所述移动设备是唤醒的,则移动设备可以传输通知服务连接消息。在图5中,通知服务连接消息传输窗口是通知服务连接消息传输窗口的大致三分之一。例如,推送通知服务110的通知服务连接消息传输窗口是安排的跳动消息传输之前10分钟(例如,在安排的跳动之前的10分钟),推送通知服务120的通知服务连接消息传输窗口是安排的跳动之前5分钟,并且拉取通知服务130的通知服务连接消息传输窗口是安排的拉取之前8分钟。尽管图5示出了开始于相同时间(例如在时间0)的通知推送通知服务110和120以及通知拉取通知服务130,但应当理解,这是出于例示的目的,并且这些通知服务可以起始于不同时间。参考图5,推送通知服务110具有初始安排心跳和30分钟处的唤醒时间,推送通知服务120具有初始安排心跳和15分钟处的唤醒时间,并且拉取通知服务130具有初始安排拉取消息和25分钟处的唤醒时间。
参考图4,流程从方框412前进到方框414,在此所述移动设备监视服务连接消息计时器(例如,与每个服务连接相关联的系统级计时器),并且流程前进到方框416。例如,参考图5,移动设备监视针对推送通知服务110和120以及拉取通知服务130的计时器。在图5中,在时间5,移动设备进入睡眠模式510。因此,根据本发明的一个实施例,应用处理器和应用处理器的操作系统离线,但网络连接性元件保持唤醒。
在方框416,移动设备确定该时间是否在通知服务连接消息传输窗口之内。如果时间不在通知服务连接消息传输窗口之内,那么流程前进到方框418,在此确定全局通知服务连接消息计时器是否过期。本文稍后将更详细地论述全局通知服务连接消息计时器。如果时间在通知服务连接消息传输窗口之内,那么流程前进到方框420,在此确定移动设备是否唤醒。如果设备被唤醒,那么流程前进到方框430,在此移动设备传输通知服务连接消息。如果移动设备未被唤醒(即,如果处于睡眠模式),那么流程前进到方框422,在此确定是否已过了通知服务连接消息传输计时器。例如,参考图5,在时间10开始,推送通知服务120处在窗口540之内,并且移动设备160未被唤醒(它处于睡眠模式)。如果未过计时器,那么流程返回到方框420。如果已过了计时器,那么流程前进到方框424,在此唤醒移动设备,并且流程前进到方框430,在此移动设备传输通知服务连接消息。
参考图5,在时间15处经过与推送通知服务120相关联的通知服务连接消息传输计时器。因此,在时间15处,唤醒移动设备160(由虚线唤醒560表示),并向推送通知服务120传输通知服务连接消息,以便刷新通知服务连接(由跳动570表示)。应当理解,移动设备160在唤醒时间560期间不向推送通知服务110或拉取通知服务130传输通知服务连接消息。例如,推送通知服务110具有30分钟的跳动间隔。因此,为了刷新与推送通知服务110的连接,可以在最多30分钟内传输跳动(即,仅需要每30分钟刷新一次连接)。如果每次向推送通知服务120传输跳动(其跳动间隔为15分钟),则移动设备160就向推送通知服务110传输跳动,实际上根据需要会传输两倍数量的跳动消息。因此,根据本发明的一个实施例,仅在针对特定通知服务的通知服务连接消息传输窗口期间唤醒时,移动设备才向该特定通知服务传输通知服务连接消息。由于唤醒560不和用于推送通知服务110或拉取通知服务130的通知服务连接消息传输窗口重叠,因此移动设备不为那些通知服务传输通知服务连接消息以便节省带宽。
根据本发明的一个实施例,移动设备在向特定通知服务传输通知服务连接消息时重置与特定通知服务相关联的通知消息传输计时器。例如,移动设备160在传输跳动消息570时重置用于推送通知服务120的通知服务连接消息传输计时器。
在时间16处,设备进入睡眠模式512。换句话讲,专门唤醒移动设备160以刷新与通知推送通知服务120的通知服务连接,并且设备重新进入睡眠模式以便节省电池资源。在时间25处,与拉取通知服务130相关联的通知服务连接消息传输计时器过期(例如,该时间段在窗口542的末端)。因此,在时间25处,唤醒移动设备160(由虚线唤醒562表示)并向拉取通知服务130传输通知服务连接消息以便检查感兴趣的项目(由检查576表示)。此外,由于推送通知服务110的窗口544与唤醒562的时间重叠(窗口544开始于时间20处而结束于时间30处),推送通知服务120的窗口546与唤醒562的时间重叠(窗口546开始于时间25处而结束于时间30处),因此移动设备160向推送通知服务110传输通知服务连接消息(由跳动572表示),并向推送通知服务120(由跳动574表示)传输通知服务连接消息。因此,在唤醒562期间,移动设备160向推送通知服务110和120以及拉取通知服务130的每个传输通知服务连接消息。
由于根据本发明的一个实施例,移动设备160向推送通知服务110、推送通知服务120和拉取通知服务130传输通知服务连接消息,因此移动设备160针对每个通知服务重置通知服务连接消息传输计时器,重新安排通知服务连接消息传输时间和唤醒时间。例如,并不是推送通知服务110在时间60处具有安排的通知服务连接消息传输时间,因为在时间25处向推送通知服务110传输了通知服务连接消息,移动设备160在时间55处安排通知服务连接消息传输。又如,并不是推送通知服务120在时间45具有安排的通知服务连接消息传输时间,因为在时间25向推送通知服务120传输了通知服务连接消息,移动设备160在时间40安排通知服务连接消息传输。在时间26处,移动设备160进入睡眠模式514。
应当理解,在一个实施例中,通过基于重叠通知服务连接消息传输窗口来同步通知服务连接消息的传输,节省了电池资源。例如,在同一唤醒周期期间整合针对多个通知服务的通知服务连接消息的传输可节省电池资源。例如,唤醒移动设备使用大量的电池资源。此外,与传输通知服务连接消息相比,在唤醒设备时使用更多的电池资源。因此,在同一唤醒周期期间向多个通知服务传输通知服务连接消息可节省电池资源(例如,对于每次通知服务连接消息传输,不独立地从睡眠模式唤醒移动设备)。因此,在本发明的一些实施例中,基于重叠通知服务连接消息传输窗口来同 步通知服务连接消息的传输减少了所需的移动设备唤醒次数,这会减少功耗。应当理解,随着通知服务客户端数目增大,电池资源的节约增加。
此外,尽管不必在其安排的传输时间执行通知服务连接消息的传输,(例如可以在其安排的传输时间之前发送通知服务连接消息),但与安排的传输时间的偏离很小(例如通常,通知服务连接消息传输窗口大约是通知服务连接消息传输间隔的三分之一)。因此,本发明的实施例通过接近其安排的传输时间传输通知服务连接消息来节省带宽。
在时间40处,与推送通知服务120相关联的通知服务连接消息传输计时器过期(例如该时间段在窗口548的末端)。因此,在时间40处,唤醒移动设备160(由虚线唤醒564表示)并向推送通知服务120传输通知服务连接消息,以便刷新推送通知服务120连接。由于唤醒564不与用于推送通知服务110或拉取通知服务130的通知服务连接消息传输窗口重叠,因此移动设备不为那些通知服务传输通知服务连接消息以便节省带宽。在时间41处,移动设备160进入睡眠模式516。
在时间47处,从独立事件(由独立唤醒566表示)将移动设备160从睡眠模式516唤醒。独立唤醒可能有很多原因,包括用户交互(例如,用户禁用睡眠模式),接收感兴趣的项目(例如,从推送通知服务110接收电子邮件消息),接收电话呼叫和/或文本消息等。一旦唤醒,移动设备就确定所述时间是否在任何通知服务连接消息传输窗口之内。例如,时间47在用于推送通知服务110的窗口552之内(其开始于时间45处,并结束于时间55处)且在用于拉取通知服务130的窗口550(其开始于时间42处并结束于时间50处)之内。利用唤醒移动设备且在通知服务连接消息传输窗口之内的事实,移动设备向推送通知服务110传输通知服务连接消息(由跳动582表示)以刷新推送通知服务连接110,并向拉取通知服务130传输通知服务连接消息(由检查580表示)以检查感兴趣的项目。此外,尽管为了简单起见在图5中未示出,但移动设备160为推送通知服务110和拉取通知服务130重置通知服务连接消息传输计时器,并重新安排通知服务连接消息传输时间和唤醒。在时间49处,移动设备进入睡眠模式518。
在时间55处,与推送通知服务120相关联的通知服务连接消息传输计时器过期(例如,该时间段在窗口554的末端)。因此,在时间55处,从睡眠模式518唤醒移动设备160(由虚线唤醒568表示),并向推送通知服 务120传输通知服务连接消息以便刷新推送通知服务120连接(由跳动584表示)。应当指出的是,尽管推送通知服务110的窗口552一开始已经与唤醒568重叠,但因为是在时间47处传输的跳动582,并且通知服务连接消息计时器被重置且通知服务连接消息传输时间被重新安排,所以移动设备160不向推送通知服务110传输通知服务连接消息。
参考图4,如前所述,在方框418,确定全局通知服务连接消息计时器是否过期。根据本发明的一个实施例,移动设备以周期性间隔(例如每天4次)在大致相同的时间(例如彼此相差一分钟之内)向每个通知服务传输通知服务连接消息。如果全局通知服务连接消息计时器过期,那么流程前进到方框426,在此确定移动设备是否被唤醒。如果移动设备被唤醒,那么流程前进到方框430,在此,移动设备向每个通知服务传输通知服务连接消息。如果移动设备未被唤醒,那么流程前进到方框428,在此移动设备被唤醒,流程前进到方框430,在此,移动设备向每个通知服务传输通知服务连接消息。
由于多个移动设备可能正通过同一网络访问相同的通知服务(例如参考图1,根据本发明的一个实施例,移动设备160和一个或多个移动设备170至少部分地与相同的一个或多个网络访问数据元150耦接),配置全局通知服务连接消息计时器,使得所有移动设备不会在同一时间传输通知服务连接消息。根据本发明的一个实施例,对这些通知服务连接消息传输时间进行密码随机化(从而散布于全天中)。例如,在给定时间间隔内修改每个移动设备的唯一标识符(例如通用唯一标识符(UUID)、介质访问控制(MAC)地址等),以确定这些全局通知服务连接消息传输时间。
如前所述,在本发明的一些实施例中,可以对用于持久性通知服务(例如推送通知服务)的通知服务连接消息传输间隔进行优化。换句话讲,在本发明的一些实施例中,对消息传输间隔进行优化,以便为持久性通知服务传输最少量的通知服务连接消息而同时保持连接到持久性通知服务。图6是示出根据本发明的一个实施例来优化通知服务连接消息间隔的示例性状态图。在方框610,确定初始通知服务连接消息传输间隔。例如,初始通知服务连接消息传输间隔可以基于特定通知服务的超时间隔。如果移动设备确定连接是活动的,将消息传输间隔增大N量612(例如,5分 钟)。例如,如果从通知服务接收到回复消息,则可以确定连接是活动的。
如果移动设备确定连接是不活动的,将消息传输间隔减小Y量614(例如,5分钟),并进入细化的通知服务连接消息传输间隔616。如果移动设备确定连接是活动的,那么将消息传输间隔增大M量,其中M小于N618(例如,2分钟)。如果移动设备确定连接是不活动的,那么将消息传输间隔减小X量,其中X小于Y620。
在一些时间之后,连接消息传输间隔进入稳定的通知服务连接消息传输间隔622状态。当在这种状态中时,如果连接是活动的,则间隔值保持在当前值624。在本发明的一些实施例中,在处于状态622中Z量时间之后(例如8小时之后),将连接消息传输间隔重置623到初始通知服务连接消息传输间隔610,其中重新开始间隔优化过程。因此,如果通知服务连接消息传输间隔稳定于较高频率的消息传输间隔(例如,每5分钟一个消息),那么在某段时间之后,优化过程重新开始以试图确定最佳传输间隔。然而,如果连接处于不活动状态,则将间隔减小626(例如,减小一半),并且间隔进入后退通知服务连接消息传输间隔628。当处在后退状态中时,如果连接处于不活动状态,则将间隔减小630(例如,减小一半)。
应当理解,如果通知服务连接处于不活动状态,则需要重新建立该连接。根据本发明的一个实施例,根据唤醒间隔安排通知服务连接重试。例如,参考图5,如果跳动572未能在时间25处刷新与推送通知服务110的连接,在本发明的一个实施例中,在下一次唤醒时,移动设备将试图重新建立通知服务连接。因此,在时间40的唤醒564期间,移动设备可以尝试重新建立与推送通知服务110的通知服务连接。
基于代理的通知服务
如上所述,通知服务为用户提供以移动客户端的电池寿命为代价来采集最新信息的体验。此外,用户还可能需要支付与协议开销相关联的数据,如果用户没有不受限制的数据计划,这可能并非小数目。移动客户端需要周期性地发送通知服务连接消息以保持数据链路,无论是否有实际用户数据活动。因此,移动客户端需要从睡眠周期性地唤醒以发送通知服务连接消息;此外,来自服务器的响应也将唤醒移动设备,从而消耗更多的 电池电力。在用户选择积极的推送间隔时,或在用户订阅多个推送服务时,电池功耗增加。
例如,对于Microsoft Exchange服务器,典型的心跳间隔在8到28分钟范围中。即使用户未接收到数据,在8分钟的间隔下,移动设备每天需要唤醒180次以发送通知服务连接消息;并且它同样大致需要每天另外唤醒180次以处理相应的服务器响应,因为服务器响应通常对于每服务器一间隔的配置会延迟。如果用户订阅多项推送服务或如果用户选择积极的推送间隔,情况会更坏。此外,对于按字节为数据服务付费的用户,推送通知服务连接消息还可能为用户带来成本。假设每个包平均200字节的有效载荷和8分钟的间隔,开销大约为2MB每月。这个数字随着用户订阅的推送服务数量而线性增加。
在一个实施例中,使用代理来减轻对移动客户端电池寿命的需求以及与通知相关联的额外数据成本。在该实施例中,使用这一代理来管理针对移动客户端的通知服务。代理可以管理针对移动客户端的一个或多个服务和/或可以为一个或多个客户端处理一个或多个通知服务。为了管理通知服务连接,代理会接收从移动客户端到移动客户端代理对一个或多个通知服务的请求,向相应的通知服务器周期性地发送通知服务连接消息,转发来自移动客户端的通知,处理来自移动客户端的更新,并处理移动客户端登出请求。
在一个实施例中,代理是独立的设备,例如个人计算机、膝上型计算机、服务器、移动客户端等。例如,在一个实施例中,代理是具有独立电源以及任选地低成本数据连接的独立设备。在另一个实施例中,代理是移动客户端的一部分。在该实施例中,移动客户端包括运行第一操作系统的应用处理器以及运行一个或多个不同操作系统的一个或多个网络连接性元件。此外,应用处理器的功耗可能比网络连接性元件的功耗更大。此外,一个或多个网络连接性元件执行那些网络连接性元件的对应操作系统中的代理。通过在网络连接性元件中执行代理,应用处理器可进入睡眠模式,并为移动客户端节省电池寿命。
图9A示出了根据本发明的一个实施例包括独立代理的一种示例性计算环境900。该计算环境900类似于上面图1的计算环境100,其中计算环境900包括移动设备904和170,它们各自与一个或多个网络数据访问元件 150耦接。如图1中所示,一个或多个网络数据访问元件150可以是本发明的不同实施例中各种网络的一部分,包括蜂窝网络(例如,GSM、EDGE、GPRS、CDMA、UMTS、TD-CDMA、LTE、或其他蜂窝网络)、LAN等。然而,与计算环境100不同,在计算环境900中,移动设备904使用代理902来管理针对移动设备904的一个或多个服务连接。在一个实施例中,代理902传输通知服务连接消息并接收响应,就像代理902是执行这项功能的移动客户端904那样。下文将进一步描述代理902。
移动设备904包括如上文图1中所述的应用处理器162和一个或多个网络连接性元件164。移动设备904,经由一个或多个网络连接性元件164和代理902,通过数据语境(例如PDP语境),与一个或多个网络数据访问元件150通信。此外,WAN 140与网络数据访问元件150耦接。推送通知服务110和120以及拉取通知服务130与WAN 140耦接。根据本发明的一个实施例,移动设备904的用户经由代理902访问并使用推送通知服务110和120以及拉取通知服务130(推送通知服务110和120以及拉取通知服务130提供用户感兴趣的项目)。例如,推送通知服务110可以经由代理902为移动设备904的用户提供个人推送电子邮件帐户,而推送通知服务120可以为移动设备904的用户提供工作推送电子邮件帐户。
在本发明的一个实施例中,应用处理器162是移动设备904的中央处理器。在一个实施例中,应用处理器162如图1中所述处理移动设备904的一个或多个操作系统。
根据本发明的一个实施例,移动设备904能够进入睡眠模式,如图1针对移动设备160所述。此外,利用代理902,移动设备904可以进入睡眠模式,而代理为移动设备904管理一个或多个服务连接。在睡眠模式期间,根据本发明的一个实施例,移动设备904暂时禁用应用处理器162(应用处理器162可以在暂时禁用时几乎不消耗电力)。
如图1中所述,在本发明的一些实施例中,周期性地刷新持久性通知服务连接(例如,推送通知服务110和120)以便保持连接的持久性。并非如图1中所述的那样由移动客户端周期性地刷新一个或多个持久性通知服务连接,代理902为移动客户端刷新该一个或多个持久性通知服务连接。例如,如果移动设备904未主动使用该连接,则推送通知服务110和120可以使与移动设备904的连接超时(从而停止针对该用户的推送通知服 务)。然而,在该实施例中,代理902主动为移动设备904使用这个连接。在一个实施例中,在某个周期间隔,代理902向推送通知服务110和120传输通知服务连接消息以为移动设备904刷新该连接。在该时间期间,代理902为移动设备904管理通知服务连接,该移动设备904可以进入睡眠模式,从而为移动设备904节省电池电力。通知服务连接消息通知推送通知服务110和120所述代理902仍然连接(并可能希望继续从推送通知服务接收感兴趣的项目)。应当理解,由代理902刷新推送通知连接将会通知推送通知服务的服务器所述移动设备希望保持连接到服务。此外,刷新推送通知连接通知沿着通往推送通知服务的服务器的路径的每个网元以保持连接(否则,例如网元可以清空与该连接相关联的网络资源)。在一个实施例中,通知服务连接消息可以是查验消息、超文本传输协议(HTTP)请求或现有技术中已知的某种其他保持活动消息。通知服务可以对通知服务连接消息做出响应以通知代理902所述连接对于移动设备904来说是活动的。应当理解,在本发明的一些实施例中,从通知服务接收感兴趣的项目还会刷新持久性通知服务连接。
如上所述,传输通知服务连接消息的间隔对于各个通知服务而言可能不同。此外,在本发明的一些实施例中,要求移动设备904周期性地刷新与一个或多个网络数据访问元件150的连接以便保持网络数据连接性(例如,运营商网络中的NAT路由器,防火墙或网络中的其他网元)。在该实施例中,通过为移动设备904管理一个或多个通知服务连接,代理902将刷新该一个或多个网络数据访问元件150连接。
在一个实施例中,代理902管理通知服务和移动客户端更新。例如并且在一个实施例中,代理902从移动设备904接收服务连接请求,将这些服务连接请求转发到相应的服务提供者(例如,推送通知服务110和120等)。此外,代理902为移动设备904管理一个或多个服务连接。例如并且在一个实施例中,代理902向推送通知服务110和120传输通知服务连接消息以为移动设备904刷新该一个或多个连接。如上所述,该通知服务连接消息可以是查验消息、HTTP请求或现有技术中已知的某种其他保持活动消息。
如果代理902接收到通知消息(无论是响应于通知服务连接消息还是由通知服务器之一被推送到代理等),代理902可以向移动设备904的应 用处理器162转发通知消息,或者可以保持通知消息,以便将该通知消息与其他通知消息捆绑在一起并在稍后时间发送捆绑的消息。此外,代理902管理来自移动设备904的更新,诸如登入/登出请求、地址变更等。在一个实施例中,代理902管理从移动设备904的应用处理器162接收的更新。在下面的图10-13中进一步描述了代理功能。
如上所述,代理可以是独立的设备,诸如代理902,或者被并入到移动客户端中。图9B示出了根据本发明的一个实施例包括并入到移动设备954中的代理952的示例性计算环境950。在图9B中,将代理952作为移动设备954的一部分并入。在一个实施例中,代理952是一个或多个网络连接性元件956的一部分。在该实施例中,代理952在一个或多个网络连接性元件956的操作系统下运行,这将允许应用处理器进入低功率或“睡眠模式”以便节省移动设备954的功耗。例如,在一个实施例中,代理902在用于操作3G蜂窝网络连接的3G蜂窝网络连接性元件的操作系统下运行。在该实例中,此网络连接性元件的操作系统可以是软件、固件、硬件等。
在一个实施例中,代理可能是一个或多个网络连接性元件956的基带处理器的操作环境的一部分,这将允许移动设备954避免唤醒应用处理器162并节省电池。在该实施例中,代理952接管与一个或多个通知服务相关联的大多数协议开销,在有数据可用时通知移动设备954的应用处理器162。
在一个实施例中,代理952与上述图9A中所述的代理902执行类似的功能。例如并且在一个实施例中,代理952从应用处理器162接收服务连接请求,将这些服务连接请求转发到相应的服务提供者(例如,推送通知服务110和120等)。此外,代理952为移动设备954管理一个或多个服务连接。例如,在一个实施例中,代理952向推送通知服务110和120传输通知服务连接消息以为移动设备954刷新该一个或多个连接。如上所述,该通知服务连接消息可以是查验消息、HTTP请求或现有技术中已知的某种其他保持活动消息。
如果代理952接收到通知消息(无论是响应于通知服务连接消息还是由通知服务器之一被推送到代理等),代理952可以向移动设备954的应用处理器162转发通知消息,或者可以保持通知消息,以便将该通知消息 与其他通知消息捆绑在一起并在稍后时间发送捆绑的消息。此外,代理952管理来自移动设备954的更新,例如登入/登出请求、地址变更等。在一个实施例中,代理952管理从移动设备954的应用处理器162所接收的更新。在下面的图10-13中进一步描述了代理功能。
图10是根据本发明的一个实施例代理所述客户端和服务器之间的一个或多个服务连接的代理的框图。在图10中,客户端1002与代理1004通信,并且代理1004与服务器1006通信。在一个实施例中,客户端1002可以是如上所述的移动设备904或954。在另一个实施例中,代理1004可以是如上所述的代理902或952。在另一个实施例中,服务器是如上所述的推送通知服务110或120之一。
在图10中,客户端1002向代理1004传输登入请求(1008A)。在一个实施例中,客户端1002在客户端1002的用户打开推送服务时或在客户端被启动(例如设备加电)时发送登入请求。在一个实施例中,登入请求包括可用于建立代理的信息(例如,客户端标识、客户端IP地址、服务器IP地址、事务标识符、服务质量(QoS)参数、最大化电池等)。在一个实施例中,客户端标识是唯一地标识客户端的标识(例如,国际移动设备身份(IMEI)、MAC地址等)。在一个实施例中,客户端IP地址是客户端1002的IP地址,并且代理使用这一IP地址向客户端发送数据。服务器IP地址是服务器用于相应通知服务的IP地址。在一个实施例中,登入请求包括用于通知服务的一个或多个请求。在该实施例中,登入请求会多于一个服务器IP地址。
此外,登入请求还可以包括QoS参数,例如延迟。在该实施例中,延迟是表示用户可以容忍哪种延迟的参数。此外,登入请求可附加包括表示用户是否希望最大化电池寿命的参数。
响应于接收登入请求,代理返回事务标识符并向客户端1002发送登入响应(1008B)。在一个实施例中,登入响应包括客户端标识、客户端IP地址和事务标识符。在一个实施例中,事务标识符是标识代理与客户端的会话的标识符。
利用来自登入请求的信息,代理1004向服务器1006发送通知服务连接消息以便为客户端1002(1010A-F)刷新一个或多个连接。例如,代理1004周期性地向服务器1006发出通知服务连接消息(1010A,1010C和 1010E)。在一个实施例中,通知服务连接消息是查验消息、HTTP请求或现有技术中已知的某种其他保持活动消息。作为响应,服务器1006可利用不包括有效载荷中的数据(1010B和1010D)的响应做出响应或利用有效载荷中的数据(1010F)做出响应。在一个实施例中,没有数据的响应表示对于客户端1002没有通知消息。如果没有数据,代理1004不会通知客户端,并且可能不会将客户端1002从睡眠模式唤醒,由此节省电池电力。
在一个实施例中,具有数据的响应是包括针对客户端1002的一个或多个通知消息的响应。在一个实施例中,响应于接收具有数据的响应,代理1004将数据发送到客户端1002(1012)。在该实施例中,代理1004向客户端1002发送一个或多个通知消息。此外,如果客户端1002处于睡眠模式,收到一个或多个通知消息会将客户端1002从睡眠模式唤醒,使得客户端1002可处理一个或多个通知消息。
在一个实施例中,代理1004可在从服务器1006收到具有数据的响应时,向客户端1002转发一个或多个通知消息。在可供选择的实施例中,代理1004可将一个或多个通知消息与其他通知消息捆绑在一起并向客户端1002发送捆绑的通知消息。在该实施例中,捆绑通知消息可以节省客户端的电池寿命,因为减少了向客户端1002转发通知消息的次数。
在一个实施例中,代理1004在收到或捆绑通知消息时是否转发通知消息受到客户端1002在上述登入请求(1008A)中发送的参数的控制。例如,在一个实施例中,代理1004会使用电池寿命参数来确定是否为客户端捆绑通知消息。在可供选择的实施例中,可以从客户端,基于一天中的时间、服务的及时性等更新是否捆绑。
此外,客户端1002可以发送更新请求(1014A)。在一个实施例中,由于客户端1002的IP地址变更,更新请求包括更新客户端IP地址的请求。在该实施例中,更新请求包括客户端标识、新的客户端IP地址和事务标识符。如果网络由于客户端不活动而去活数据语境,客户端IP地址可能会变更,或者如果客户端已经改变了网络(例如蜂窝到Wi-Fi,反之亦然),则客户端重新建立了数据语境。如果客户端已停止工作一段时间,客户端1002还可以向代理发送更新请求,使得代理可向客户端推送可用数据。在该实施例中,这一新的IP地址被代理1004保存并替换客户端的旧IP地址。
在另一个实施例中,客户端1002发送更新请求以更改一些或全部参数(QoS参数、电池参数等)。在一个实施例中,用户可能希望使电池的节省最大化并将通知转发从在收到时转发通知消息改变成捆绑所述通知消息。在可供选择的实施例中,用户可能希望将通知转发改变为在收到时转发通知消息。在另一个实施例中,更新是出于其他原因(一天中的时间、移动客户端的位置等)。
在一个实施例中,如果用户关闭推送服务或在设备断电时,客户端1002可以向代理发送登出请求(1016A)。在一个实施例中,登出请求是包括表示要停止代理服务的信息的包。在一个实施例中,登出请求包括客户端标识和事务标识符。代理可以停止与服务器通信,或者它可以继续通信并缓存数据供以后使用。在收到登出请求时,代理1004向客户端1002发送登出响应(1016B)。
图11是示出根据本发明的一个实施例由代理为客户端管理通知服务连接的流程图。在一个实施例中,代理902或952执行过程1100以管理通知服务连接。在图11中,过程1100以在方框1110中建立代理而开始。在一个实施例中,过程1100通过接收登入请求并对如上文图10中所述的该登入请求做出响应而建立代理。
在方框1120,过程1100管理一个或多个服务连接。在一个实施例中,过程1100通过周期性地向相应服务器发送通知服务连接消息并处理对那些通知服务连接消息的响应而管理服务连接。此外,过程1100向客户端转发通知。在下面的图12中进一步描述了对一个或多个服务连接的管理。
过程1100在方框1130管理客户端。在一个实施例中,过程1100通过接收登入请求和/或登出请求并对其做出响应而管理客户端。在下面的图13中进一步描述了对客户端的管理。
图12是示出根据本发明的一个实施例管理代理和服务器之间的通知服务连接的流程图。在一个实施例中,代理902或952执行过程1200以管理代理和服务器之间的通知服务连接。在图12中,过程1200通过在方框1210确定过程1200是否应向服务器发送通知服务连接消息而开始。在一个实施例中,过程1200基于动态调节的间隔等周期性发送通知服务连接消息。如果过程1200要发送通知服务连接消息,则过程1200在方框1220发送通知服务连接消息。在一个实施例中,过程1200向服务器发送适当的消 息,例如查验消息,HTTP请求或现有技术中已知的某种其他保持活动消息。继续执行方框1230。如果过程1200在方框1210确定不发送通知服务连接消息,则继续执行下方的方框1230。
在方框1230,过程1200确定过程1200是否从服务器接收到响应。在一个实施例中,所接收的响应用于过程1200正在代理的客户端。如果过程接收到服务器响应,在方框1240,过程1200确定所接收的服务响应是否包括针对客户端的通知数据,过程1200在方框1270确定是否向客户端发送通知数据或捆绑供以后发送。在一个实施例中,过程1200可以向客户端选择性地转发通知。例如,过程1200可以捆绑通知以减少唤醒客户端的次数,以便减少电池消耗。又如,移动设备没有数据服务(例如由于漫游),并且过程1200会代表客户端接收通知,并利用另一种传输机制(例如短消息服务(SMS))选择性地通知移动设备。又如,过程1200可以基于通知数据的内容选择性地转发通知(例如在收到(例如股票通知等)时转发时间敏感通知并捆绑非时间敏感通知(例如应用更新等))。如果要发送通知数据,例如,代理服务在收到时转发通知数据,或者如果捆绑足够的通知数据,过程1200在方框1250向客户端转发通知数据。在一个实施例中,过程1200在收到时向客户端转发通知数据或捆绑通知数据与其他通知,如上文在图10中所述。继续执行下面的方框1260。如果不发送通知,则过程1200缓存通知数据,以与其他通知数据捆绑,并继续执行下面的方框1260。
如果过程1200接收到不包括通知数据的响应,在方框1260,过程1200安排要发送的下一个通知服务连接消息。在一个实施例中,过程1200基于周期性周期、动态调节的周期等安排下一个通知。如上所述继续执行方框1210。
图13是示出根据本发明的一个实施例管理客户端交互的流程图。在一个实施例中,代理902或952执行过程1300以管理客户端。在图13中,过程1300在方框1310通过从客户端接收包而开始。在一个实施例中,所接收的包可以是登入请求、登出请求、更新请求等。
在方框1320,过程1300确定所接收的包是否是更新包。如上所述,更新包是来自客户端请求对代理服务进行更新的包。例如,在一个实施例中,更新请求包可请求更新与代理服务相关联的客户端IP地址或其他参数 (例如QoS参数、电池使用参数等)。如果所接收的包是更新请求包,在方框1330,过程1300利用更新请求包中包括的信息更新客户端信息。例如,在一个实施例中,如果更新请求包包括更新客户端IP地址的请求,过程1300更新客户端IP地址信息,如上文在图10中所述。作为另一个实例和另一个实施例,如果更新请求包包括更新某个其他代理设置的请求(例如QoS参数、电池设置等),则过程1300更新这些设置,如上文在图10中所述。在方框1340,过程1300向客户端发送更新响应。在一个实施例中,包括确认所请求更新的信息。
如果所接收的包不是更新包,则过程1300在方框1350确定所接收的包是登入包还是登出包。在一个实施例中,登入请求是包括可用于建立代理的信息(例如客户端标识、客户端IP地址、服务器IP地址、QoS参数、最大化电池等)的包。在一个实施例中,登出请求是包括表示要停止代理服务的信息的包,如上文在图10中所述。
在方框1360,过程1300处理所接收的登入/登出请求。在一个实施例中,如果所接收的包是登入请求,则过程1300利用登入请求中包括的信息为客户端建立代理。在一个实施例中,如果所接收的包是登出请求,则过程1300利用登出请求中包括的信息停止代理服务。在另一个实施例中,登出请求包括使代理服务通过发送保持活动消息来继续执行代理功能性并缓存所接收响应的请求。例如,在一个实施例中,客户端对数据特征进行断电或关闭(例如以在漫游时降低成本),并且客户端发出登出请求,客户端可以请求过程1300继续接收推送消息并缓存它们。此外,在该实施例中,过程1300可能具有向客户端发送SMS消息的逻辑,以通知用户用于由客户端指定的服务的特定消息。
过程在方框1370向客户端发送相应的登入/登出响应。在一个实施例中,如上文在图10中所述,过程发送相应的请求。继续执行上面的方框1310。
图7是示出可用于本发明的一些实施例的一种示例性计算机系统的框图。例如,计算机系统700的示例性构造可以包括在移动设备(例如移动设备160,904或954)中。应当理解,尽管图7示出了计算机系统的各种部件,但它并不旨在表示使这些部件互连的任何特定构造或方式,因为此 类细节与本发明并无密切关系。应当理解,具有更少部件或更多部件的其他计算机系统也可以用于本发明。
如图7中所示,计算机系统700的形式为数据处理系统,包括与处理系统720、电源725、存储器730和非易失性存储器740(例如硬盘驱动器、闪存存储器、相变存储器(PCM)等)耦接的一个或多个总线750。如本领域所熟知的,一个或多个总线750可通过各种网桥、控制器、和/或适配器彼此连接。处理系统720可从存储器730和/或非易失性存储器740检索一个或多个指令,并且执行指令来执行如上所述的操作。总线750将以上部件互连在一起,还将那些部件互连到可选的坞站760、显示控制器和显示设备770、输入/输出设备780(例如NIC(网络接口卡)、光标控制器(例如鼠标、触摸屏、触摸板等)、键盘等)以及可选的一个或多个无线收发器790(例如蓝牙、WiFi、红外线等)。
图8是示出可用于本发明的一些实施例的一种示例性数据处理系统的框图。例如,数据处理系统800可以是手持式计算机、个人数字助理(PDA)、移动电话、便携式游戏系统、便携式媒体播放器或可以包括移动电话、媒体播放器和/或游戏系统的手持式计算机。又如,数据处理系统800可以是网络计算机或另一设备内的嵌入式处理设备。
根据本发明的一个实施例,数据处理系统800的示例性构造可以包括在移动设备160中。数据处理系统800包括处理系统820,该处理系统可包括集成电路上的一个或多个微处理器和/或一个系统。处理系统820与存储器810、电源825(包括一个或多个电池)、音频输入/输出840、显示控制器和显示设备860、可选的输入/输出850、一个或多个输入设备870和一个或多个无线收发器830耦接。应当理解,在本发明的某些实施例中,图8中未示出的额外部件也可以是数据处理系统800的一部分,在本发明的某些实施例中,也可以使用比图8所示更少的部件。此外,应当理解,如本领域所熟知的,可以使用图8中未示出的一个或多个总线互连各种部件。
存储器810可以存储数据和/或程序,供数据处理系统800执行。音频输入/输出840可包括麦克风和/或扬声器,以便例如通过扬声器和麦克风来播放音乐和/或提供电话功能性。显示控制器和显示设备860可包括图形用户界面(GUI)。可使用无线(例如RF)收发器830(例如WiFi收发器、红外收发器、蓝牙收发器、无线蜂窝电话收发器等)来与其他数据处理系统通信。一个或多个输入设备870允许用户向系统提供输入。这些输入设备可以是小键盘、键盘、触摸面板、多触摸面板等。可选的其他输入/输出850可以是用于坞站的连接器。
尽管附图中的流程图示出了由本发明的某些实施例执行操作的特定顺序,但应当理解,这种顺序是示例性的(例如可供选择的实施例可以按照不同顺序执行操作,组合特定操作,重叠特定操作等)。
尽管已经参照几个实施例描述了本发明,但本领域的技术人员将认识到,本发明不限于所述实施例,而是可以利用所附权利要求实质和范围之内的修改和改变来实践。因此要将描述视为例示性而非限制性的。

Claims (20)

1.一种代理设备的移动客户端和通知服务器之间的通知服务的方法,所述方法包括:
从所述移动客户端接收针对所述通知服务的代理设置请求;
为所述移动客户端建立与所述通知服务器的通知连接;
保持与所述通知服务器的通知连接而不从睡眠模式唤醒所述移动客户端的应用处理器;
从所述通知服务接收通知;
将所接收的通知与另一个通知捆绑,其中所述捆绑是至少部分地基于所述设备的电池寿命参数以及所述移动客户端的位置而确定的;
向所述移动客户端转发所捆绑的通知;以及
唤醒所述应用处理器。
2.根据权利要求1所述的方法,其中保持所述通知连接包括:
向所述通知服务器发送通知服务连接消息;以及
从所述通知服务器接收响应。
3.根据权利要求2所述的方法,其中所述通知服务连接消息包括查验消息和超文本传输协议请求中的至少一个。
4.根据权利要求2所述的方法,其中所述响应包括针对所述移动客户端的第二通知。
5.根据权利要求1所述的方法,其中所述通知包括推送通知。
6.根据权利要求1所述的方法,其中建立所述通知连接包括向所述移动客户端发送对所述代理设置请求的响应。
7.根据权利要求1所述的方法,还包括:
从所述移动客户端接收更新请求;以及
利用所述更新请求更新所述移动客户端。
8.根据权利要求7所述的方法,其中所述更新请求包括所述移动客户端的地址变更。
9.根据权利要求1所述的方法,其中所述移动客户端包括:
在第一操作系统中执行以执行通信功能的第一处理器;和
在第二操作系统中执行的第二处理器,所述第二处理器为中央处理器,其中所述代理设备的移动客户端和通知服务器之间的通知服务的方法由所述第一处理器执行。
10.一种代理通知服务的系统,所述系统包括:
移动客户端,所述移动客户端从所述通知服务接收通知;
通知服务器,所述通知服务器针对所述通知服务向所述移动客户端发送所述通知;和
推送代理,所述推送代理为所述移动客户端代理通知请求,其中所述推送代理被配置为:
从所述移动客户端接收针对所述通知服务的代理设置请求;
建立与移动设备的所述移动客户端和所述通知服务器的通知服务连接;
安排所述通知服务的连接消息间隔,其中在所述连接消息间隔之后,应用处理器唤醒并发送所述通知服务的连接消息;
保持与所述通知服务器的通知服务连接而不从睡眠模式唤醒所述移动客户端的所述应用处理器;
从所述通知服务接收通知;
至少部分地基于所述移动设备的电池寿命参数以及所述移动客户端的位置,将所接收的通知与另一个通知捆绑;以及
向所述移动客户端转发所捆绑的通知。
11.根据权利要求10所述的系统,其中为了保持所述通知服务连接,所述推送代理被配置为向所述通知服务器发送通知服务连接消息并从所述通知服务器接收响应。
12.根据权利要求11所述的系统,其中所述通知服务连接消息包括查验消息和超文本传输协议请求中的至少一个。
13.根据权利要求11所述的系统,其中所述响应包括针对所述移动客户端的第二通知。
14.根据权利要求10所述的系统,其中所述通知包括推送通知。
15.一种从通知服务接收通知的设备,所述设备包括:
应用处理器,所述应用处理器被配置为在第一操作系统中执行并执行命令功能;以及
网络连接性元件,所述网络连接性元件被配置为在第二操作系统中执行并执行通信功能,其中所述网络连接性元件被配置为包括推送代理,并且其中所述推送代理被配置为:
从所述应用处理器接收针对所述通知服务的代理设置请求,
建立与所述设备的移动终端和所述通知服务器的通知服务连接,
保持与所述通知服务器和所述移动终端的所述通知服务连接而不从睡眠状态唤醒所述应用处理器,
确定唤醒所述应用处理器的安排并刷新所述通知服务连接,
从所述通知服务接收通知,
至少部分地基于所述设备的电池寿命参数以及所述移动客户端的位置,将所接收的通知与另一个通知捆绑;以及
向所述应用处理器转发所捆绑的通知。
16.根据权利要求15所述的设备,其中为了保持所述通知服务连接,所述推送代理还被配置为向所述通知服务器发送通知服务连接消息并从所述通知服务器接收响应。
17.根据权利要求16所述的设备,其中所述响应包括针对所述设备的第二通知。
18.根据权利要求15所述的设备,其中为了建立通知服务连接,所述推送代理还被配置为向所述应用处理器发送对所述代理设置请求的响应。
19.根据权利要求16所述的设备,其中所述通知服务连接消息包括查验消息和超文本传输协议请求中的至少一个。
20.根据权利要求15所述的设备,其中所述通知包括推送通知。
CN201380005898.5A 2012-01-20 2013-01-15 基于代理的推送服务方法及系统 Active CN104054322B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/355,441 US9749435B2 (en) 2012-01-20 2012-01-20 Proxy-based push service
US13/355,441 2012-01-20
PCT/US2013/021598 WO2013109550A1 (en) 2012-01-20 2013-01-15 Proxy-based push service

Publications (2)

Publication Number Publication Date
CN104054322A CN104054322A (zh) 2014-09-17
CN104054322B true CN104054322B (zh) 2017-07-21

Family

ID=47630560

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380005898.5A Active CN104054322B (zh) 2012-01-20 2013-01-15 基于代理的推送服务方法及系统

Country Status (7)

Country Link
US (1) US9749435B2 (zh)
EP (1) EP2795880B1 (zh)
JP (1) JP5837237B2 (zh)
KR (1) KR101604561B1 (zh)
CN (1) CN104054322B (zh)
TW (1) TWI468055B (zh)
WO (1) WO2013109550A1 (zh)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003058879A1 (en) 2002-01-08 2003-07-17 Seven Networks, Inc. Secure transport for mobile communication network
US9521625B2 (en) 2008-09-15 2016-12-13 Apple Inc. Electronic devices for receiving pushed data
US8611895B2 (en) * 2009-10-30 2013-12-17 Apple Inc. Methods for optimizing paging mechanisms using device context information
US9749435B2 (en) * 2012-01-20 2017-08-29 Apple Inc. Proxy-based push service
CN102595577B (zh) * 2012-03-13 2017-12-26 深圳市中兴物联科技有限公司 一种终端待机唤醒后网络连接处理方法及ap和bp
GB201210600D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Call invites
GB2504461B (en) 2012-06-14 2014-12-03 Microsoft Corp Notification of communication events
GB201210596D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Notification of communication events
GB201210598D0 (en) * 2012-06-14 2012-08-01 Microsoft Corp Notification of communication events
WO2014030199A1 (ja) * 2012-08-20 2014-02-27 富士通株式会社 シームレスアプリプッシュシステム及びその方法
JP5869692B2 (ja) * 2012-11-02 2016-02-24 京セラ株式会社 移動通信システム、無線端末及び移動通信方法
US9143550B2 (en) * 2012-12-01 2015-09-22 Qualcomm Innovation Center, Inc. Graceful degradation of websocket connections to nonpersistent HTTP-based communications
US8918529B1 (en) * 2013-03-15 2014-12-23 Mobile Iron, Inc. Messaging gateway
CN103518342B (zh) * 2013-04-26 2016-09-28 华为技术有限公司 一种心跳信号的发送控制方法及装置
US9503540B2 (en) * 2013-05-09 2016-11-22 Nokia Technologies Oy Method and apparatus for asynchronous distribution of content
EP3008943A4 (en) 2013-06-11 2017-02-22 Seven Networks, LLC Optimizing keepalive and other background traffic in a wireless network
US9342554B2 (en) * 2013-07-05 2016-05-17 Facebook, Inc. Techniques to generate mass push notifications
US9065765B2 (en) * 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US9961027B2 (en) 2013-09-17 2018-05-01 Amazon Technolgies, Inc. Email webclient automatic failover
US9900366B2 (en) 2013-09-17 2018-02-20 Amazon Technologies, Inc. Email webclient notification queuing
KR20150032018A (ko) * 2013-09-17 2015-03-25 삼성전자주식회사 전자 장치 및 전자 장치의 정보 전송 방법, 정보 전송 시스템
US10028309B2 (en) 2013-10-02 2018-07-17 Apple Inc. Cloud phone notifications
US10154106B2 (en) 2013-11-28 2018-12-11 Huawei Device (Dongguan) Co., Ltd. Method for sending heartbeat message and mobile terminal
CN104703146B (zh) * 2013-12-09 2019-03-08 腾讯科技(深圳)有限公司 信息推送方法、客户端及系统
EP2919418B1 (en) * 2014-03-13 2017-03-01 Alcatel Lucent Apparatuses, methods and computer program for a base station transceiver and for a mobile transceiver
US9961131B2 (en) 2014-04-25 2018-05-01 Microsoft Technology Licensing, Llc Enhanced reliability for client-based web services
US9277530B2 (en) * 2014-05-30 2016-03-01 Apple Inc. Delivery of push notifications to an inactive computing device
US9282516B2 (en) 2014-07-01 2016-03-08 Apple Inc. Cooperative power savings among mobile computing devices
US10743255B2 (en) * 2014-07-25 2020-08-11 Apple Inc. Power optimization modes for communication between device and server
US20160094659A1 (en) * 2014-09-25 2016-03-31 Ricoh Company, Ltd. Information processing system and information processing method
US20160099997A1 (en) * 2014-10-01 2016-04-07 Samsung Electronics Co., Ltd. Method and system for managing application data in a communication device
US10305736B2 (en) * 2014-12-18 2019-05-28 Telefonaktiebolaget Lm Ericsson (Publ) Methods, network nodes, and computer program products for price signal feedback for network optimization
CN104539678B (zh) * 2014-12-19 2018-08-07 百度在线网络技术(北京)有限公司 一种信息推送、接收方法和装置
US20160262205A1 (en) * 2015-03-06 2016-09-08 Apple Inc. Cloud support for discovery and data transfer for mobile client devices
JP6227583B2 (ja) * 2015-03-25 2017-11-08 Kddi株式会社 情報配信装置、プッシュ通知送信方法、及び、コンピュータプログラム
JP6251210B2 (ja) * 2015-03-25 2017-12-20 Kddi株式会社 端末装置、通信セッション確立方法、及び、プログラム
US9554239B2 (en) 2015-04-21 2017-01-24 Apple Inc. Opportunistic offloading of tasks between nearby computing devices
JP6584171B2 (ja) * 2015-07-02 2019-10-02 キヤノン株式会社 通信装置、通信方法及びプログラム
KR101676653B1 (ko) * 2016-04-20 2016-11-17 주식회사 티맥스 소프트 Http 세션 정보 동적 유지 방법, 이를 사용한 웹 애플리케이션 서버 및 웹 서버
CN106028428A (zh) * 2016-04-27 2016-10-12 努比亚技术有限公司 一种信息处理方法及移动终端
TWI644257B (zh) * 2016-06-07 2018-12-11 三竹資訊股份有限公司 推播通知附帶設定參數之方法
US10520979B2 (en) 2016-06-10 2019-12-31 Apple Inc. Enhanced application preview mode
US10725761B2 (en) 2016-06-10 2020-07-28 Apple Inc. Providing updated application data for previewing applications on a display
US10521107B2 (en) 2016-09-24 2019-12-31 Apple Inc. Devices, methods, and graphical user interfaces for selecting and interacting with different device modes
CN109644350A (zh) * 2016-10-18 2019-04-16 华为技术有限公司 一种业务通信方法及设备
CN107317723B (zh) * 2017-05-27 2021-01-05 北京金山安全软件有限公司 一种数据处理方法及服务器
CN107466094A (zh) * 2017-08-02 2017-12-12 努比亚技术有限公司 网络数据上报控制方法、协处理器、终端及存储介质
CN107770852B (zh) * 2017-09-19 2021-07-27 联发科技(新加坡)私人有限公司 无线通信方法、通信设备及具有存储功能的装置
JP7085391B2 (ja) * 2018-04-11 2022-06-16 フォルシアクラリオン・エレクトロニクス株式会社 サーバ及び通信システム
DK201870334A1 (en) 2018-05-07 2019-12-05 Apple Inc. DEVICES, METHODS, AND GRAPHICAL USER INTERFACES FOR PROACTIVE MANAGEMENT OF NOTIFICATIONS
US10897500B2 (en) * 2018-10-03 2021-01-19 International Business Machines Corporation Synchronizing a device using push notifications
US11627049B2 (en) * 2019-01-31 2023-04-11 Hewlett Packard Enterprise Development Lp Failsafe firmware upgrade for cloud-managed devices
CN110932845B (zh) 2019-12-31 2021-12-03 山东英信计算机技术有限公司 一种代理端注册方法、系统及相关装置
US11750714B2 (en) * 2020-03-31 2023-09-05 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Fast resumption of dormant sessions on a client device
AU2020233622B2 (en) 2020-05-11 2022-03-10 Apple Inc. System, method and user interface for supporting scheduled mode changes on electronic devices
CN113132486A (zh) * 2021-04-20 2021-07-16 阿波罗智联(北京)科技有限公司 一种数据处理方法、装置、电子设备和介质
US11379106B1 (en) * 2021-05-12 2022-07-05 Apple Inc. Devices, methods, and graphical user interfaces for adjusting the provision of notifications
CN114979260B (zh) * 2022-05-12 2023-09-15 深圳市绿联科技股份有限公司 一种基于协议的通信方法、装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1531816A (zh) * 2001-05-15 2004-09-22 Ħ��������˾ 用于电路交换移动环境的瞬时消息代理
EP1775911A1 (en) * 2005-10-13 2007-04-18 Research In Motion Limited System and method for providing asynchronous notifications using synchronous data
CN202111746U (zh) * 2011-07-07 2012-01-11 深圳市金立通信设备有限公司 一种实现移动终端信息推送的系统

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4230708A (en) 1977-10-20 1980-10-28 Stichting Rega V.Z.W. Therapeutic application of (S) -or (RS)-9-(2, 3-dihydroxypropyl) adenine for use as antiviral agents
US6463307B1 (en) * 1998-08-14 2002-10-08 Telefonaktiebolaget Lm Ericsson Method and apparatus for power saving in a mobile terminal with established connections
US6708206B1 (en) * 1999-06-15 2004-03-16 Nokia Corporation Apparatus, and associated method, for providing a client with messages
US7007064B2 (en) * 2002-08-02 2006-02-28 Motorola, Inc. Method and apparatus for obtaining and managing wirelessly communicated content
US8856346B2 (en) 2004-01-15 2014-10-07 Unwired Planet, Llc Stateful push notifications
US8249071B2 (en) * 2004-03-26 2012-08-21 Harman International Industries, Incorporated Audio related system communication protocol
JP2005323285A (ja) * 2004-05-11 2005-11-17 Matsushita Electric Ind Co Ltd 移動体通信装置
KR100608582B1 (ko) 2004-08-28 2006-08-03 삼성전자주식회사 범용 플러그 앤 플레이 통신 방법 및 장치
US7532890B2 (en) * 2005-04-01 2009-05-12 Rockliffe Systems Content-based notification and user-transparent pull operation for simulated push transmission of wireless email
US7895309B2 (en) * 2006-01-11 2011-02-22 Microsoft Corporation Network event notification and delivery
JP4972980B2 (ja) * 2006-04-14 2012-07-11 富士通株式会社 データ通信プログラム、データ通信方法および携帯端末装置
US7805489B2 (en) 2006-06-27 2010-09-28 Research In Motion Limited Electronic mail communications system with client email internet service provider (ISP) polling application and related methods
JP4668879B2 (ja) 2006-09-22 2011-04-13 株式会社エヌ・ティ・ティ・ドコモ 通信端末及び端末制御方法
US20080293403A1 (en) * 2007-05-22 2008-11-27 Colin Shong Chin Quon Mobile communication service bridging
US20090143094A1 (en) * 2007-12-03 2009-06-04 Motorola, Inc. Method and Apparatus for Mode Switching in Dual-Core Mobile Communication Devices
WO2009099365A1 (en) * 2008-02-05 2009-08-13 Telefonaktiebolaget L M Ericsson (Publ) Transmitting circuit switched data over hspa
US7953808B2 (en) 2008-03-04 2011-05-31 Apple Inc. Automatic notification system and process
US8135392B2 (en) * 2008-06-06 2012-03-13 Apple Inc. Managing notification service connections and displaying icon badges
EP2254309A1 (en) 2009-05-20 2010-11-24 Thomson Licensing Method for sending data of a service
US8611895B2 (en) * 2009-10-30 2013-12-17 Apple Inc. Methods for optimizing paging mechanisms using device context information
US8335175B2 (en) 2010-04-07 2012-12-18 Qualcomm Incorporated Systems and methods for page delivery to a wireless client device in idle state
US9521621B2 (en) 2010-06-02 2016-12-13 Qualcomm Incorporated Application-proxy support over a wireless link
CN102316423B (zh) 2010-07-06 2014-03-12 华为技术有限公司 一种信息推送方法、装置和系统
EP3367252B1 (en) 2010-07-26 2019-10-16 Seven Networks, LLC Context aware traffic management for resource conservation in a wireless network
US8843153B2 (en) * 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
US9515976B2 (en) * 2011-12-19 2016-12-06 Facebook, Inc. Proxied outgoing message transmission
US9148397B2 (en) * 2011-12-19 2015-09-29 Facebook, Inc. Messaging object generation for synchronous conversation threads
US8830890B2 (en) * 2012-01-18 2014-09-09 Telefonaktiebolaget L M Ericsson (Publ) Terminal battery aware scheduling
US9749435B2 (en) * 2012-01-20 2017-08-29 Apple Inc. Proxy-based push service
US9125158B2 (en) * 2012-02-06 2015-09-01 Qualcomm Incorporated Wideband detection of narrowband trigger signals
CN102595577B (zh) * 2012-03-13 2017-12-26 深圳市中兴物联科技有限公司 一种终端待机唤醒后网络连接处理方法及ap和bp
JP5962096B2 (ja) * 2012-03-16 2016-08-03 富士通株式会社 無線通信システム、端末、及び通信方法
GB201210598D0 (en) * 2012-06-14 2012-08-01 Microsoft Corp Notification of communication events
CA2854067C (en) * 2012-07-04 2018-12-11 Huawei Technologies Co., Ltd. Method, device and system for recording multimedia data
US8918529B1 (en) * 2013-03-15 2014-12-23 Mobile Iron, Inc. Messaging gateway
US9503540B2 (en) * 2013-05-09 2016-11-22 Nokia Technologies Oy Method and apparatus for asynchronous distribution of content
US9554239B2 (en) * 2015-04-21 2017-01-24 Apple Inc. Opportunistic offloading of tasks between nearby computing devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1531816A (zh) * 2001-05-15 2004-09-22 Ħ��������˾ 用于电路交换移动环境的瞬时消息代理
EP1775911A1 (en) * 2005-10-13 2007-04-18 Research In Motion Limited System and method for providing asynchronous notifications using synchronous data
CN202111746U (zh) * 2011-07-07 2012-01-11 深圳市金立通信设备有限公司 一种实现移动终端信息推送的系统

Also Published As

Publication number Publication date
US20130190032A1 (en) 2013-07-25
TW201338600A (zh) 2013-09-16
US9749435B2 (en) 2017-08-29
JP2015513332A (ja) 2015-05-07
KR101604561B1 (ko) 2016-03-17
KR20140114054A (ko) 2014-09-25
EP2795880A1 (en) 2014-10-29
TWI468055B (zh) 2015-01-01
WO2013109550A1 (en) 2013-07-25
CN104054322A (zh) 2014-09-17
JP5837237B2 (ja) 2015-12-24
EP2795880B1 (en) 2016-01-06

Similar Documents

Publication Publication Date Title
CN104054322B (zh) 基于代理的推送服务方法及系统
US10412678B2 (en) Managing notification service connections
US8396463B2 (en) Managing notification service connections and displaying icon badges
CN103270466B (zh) 经由对定时器相关任务的协调和选择性操作的功率管理
CN104813637B (zh) 移动网络中的没有持久性tcp连接情况下的推送服务
TWI538537B (zh) 資訊推送方法、客戶端裝置及其系統
CN1965284B (zh) 自动用户设备存在登记系统
CN103051468B (zh) 网络接口设备的操作系统管理
CN104813641B (zh) 用于对移动站上运行的应用的“保活”消息频率进行协商的方法与装置
CN107204999B (zh) 一种实现心跳的方法和装置
CN101540742B (zh) 用于在协作设备和设备信道间分配通知的方法和装置
US8923176B2 (en) Saving power in a wireless communication device
CN107749797A (zh) 唤醒模式管理
DE112005002357T5 (de) Verfahren und Apparat zum Betreiben einer drahtlosen elektronischen Vorrichtung basierend auf einem Benutzungsmuster
CN101427534A (zh) 无线通信系统中控制唤醒频率的方法
CN101023691A (zh) 用于提供UPnP通报会聚的系统和方法
JP2016536892A (ja) ハートビートメッセージを送信するための方法、及び携帯端末
CN111417182A (zh) 数据传输方法、装置、存储介质、处理器及系统
CN104955133A (zh) 用于管理网络连线的移动设备和方法以及存储介质
EP2111018A1 (en) Method for saving energy and radio resources in wireless communication devices
JP2004072485A (ja) プレゼンス情報通知装置、プレゼンス情報通知プログラム、プログラム記録媒体、及びプレゼンス情報通知方法
Marković et al. An implementation of SMS communication with patients in a medical information system
Sharma et al. Designing an energy-efficient cloud messaging service for smartphones
CN116668530A (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
GR01 Patent grant