CN106464729A - 代理推送 - Google Patents

代理推送 Download PDF

Info

Publication number
CN106464729A
CN106464729A CN201580028398.2A CN201580028398A CN106464729A CN 106464729 A CN106464729 A CN 106464729A CN 201580028398 A CN201580028398 A CN 201580028398A CN 106464729 A CN106464729 A CN 106464729A
Authority
CN
China
Prior art keywords
equipment
service
link
proxied
mobile device
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
Application number
CN201580028398.2A
Other languages
English (en)
Other versions
CN106464729B (zh
Inventor
D·B·波莱克
G·P·蒂鲁马莱
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
Priority to CN201911115836.5A priority Critical patent/CN110839078B/zh
Publication of CN106464729A publication Critical patent/CN106464729A/zh
Application granted granted Critical
Publication of CN106464729B publication Critical patent/CN106464729B/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
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1859Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
    • 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
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/23Reliability checks, e.g. acknowledgments or fault reporting
    • 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
    • H04L67/59Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • 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/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明描述了一种用于在中间设备或配套设备和移动设备之间建立双向推送通信的系统和方法。移动设备注册以侦听通过推送通知服务而从指定的一组供应商递送的推送通知。移动设备的存在被递送到推送通知服务,该推送通知服务将移动设备映射到在其相应配套设备和推送通知服务之间建立的连接。如果推送通知服务确定移动设备“在线”,则响应于接收到针对移动设备的推送通知,识别配套设备在其上侦听推送通知的当前网络连接并向配套设备转发该推送通知。该配套设备然后可向移动设备递送该推送通知。

Description

代理推送
相关申请的交叉引用
本专利申请要求于2014年5月30日提交的名称为“PROXIED PUSH”的美国临时专利申请No.62/005,325和于2014年9月2日提交的名称为“PROXIED PUSH”的美国非临时专利申请No.14/475,060的权益和优先权,这些专利申请的整个公开内容据此以引用方式并入本文以用于所有目的。
本专利申请与以下美国专利申请相关:Rauenbuehler等人于2014年5月30日提交的名称为“ANSWER AND HOLD WITH CLIENT AND HOST”的美国临时专利申请No.62/005,550(参考文件号No.P23172USP1);Rauenbuehler等人于2014年5月30日提交的名称为“ANSWERING A CALL WITH CLIENT THROUGH A HOST”的美国临时专利申请No.62/005,534(代理机构参考文件号No.P23171USP1);Tung等人于2014年5月30日提交的名称为“CLIENTAPPLICATIONS COMMUNICATING VIA A USER TUNNEL”的美国临时专利申请No.62/005,606(参考文件号No.P23188USP1);Circosta等人于2014年5月30日提交的名称为“SMSPROXYING”的美国临时专利申请No.62/005,336(参考文件号No.P23192USP1);Schobel等人于2014年5月30日提交的名称为“MANAGING CONNECTIONS OF A USER DEVICE”(的美国临时专利申请No.62/005,505(参考文件号No.P23295USP1);Pollack等人于2014年5月30日提交的名称为“APPLICATION-LEVEL ACKNOWLEDGEMENTS”的美国临时专利申请No.62/005,565(参考文件号No.P23189USP1);Pollack等人于2014年5月30日提交的名称为“MESSAGESWITH ATTENUATING RETRANSMIT IMPORTANCE”的美国临时专利申请No.62/005,586(参考文件号No.P23190USP1);Pollack等人于2014年5月30日提交的名称为“UNIFIED MESSAGEDELIVERY BETWEEN PORTABLE ELECTRONIC DEVICES”的美国临时专利申请No.(参考:文件号No.P22929USP1);Coffman等人于2014年5月30日提交的名称为“USER INTERFACE FORPHONE CALL ROUTING AMONG DEVICES”的美国临时专利申请No.62/005,990(参考文件号No.P23298USP1);Prats等人于2014年5月30日提交的名称为“PROTOCOL SWITCHING ININTER-DEVICE COMMUNICATION”的美国临时专利申请No.62/505,799(参考文件号No.P22319USP1),该专利申请是共同拥有的并由此以引用方式并入本文以用于所有目的。本专利申请还涉及Liu等人于2014年3月14日提交的名称为“DYNAMIC LINK ADAPTATIONFOR IMPROVED LINK MARGIN”的美国临时专利申请61/953,591,该专利申请据此以引用方式并入本文以用于所有目的。
背景技术
本公开整体涉及电子设备之间的通信,并且更具体地涉及使用代理设备和被代理设备来双向递送内容。
移动电子设备诸如膝上型电脑、掌上电脑、移动电话、智能电话、多媒体电话、便携式媒体播放器、GPS单元、移动游戏系统等已变得相当普及。很多用户几乎到任何地方都携带设备并且将其设备用于各种目的,包括拨打和接收电话呼叫、发送和接收文本消息和电子邮件、导航(例如使用地图和/或GPS接收器)、在商店中购买商品(例如使用非接触式支付系统)、和/或访问互联网(例如查找信息)。用户的移动设备可被携带或穿戴,并执行除之前由单个专用设备实现的传统功能之外的各种智能功能。
移动设备可具有用于访问各种内容的应用程序,诸如电子邮件和网站、音频/视频流式传输、社交媒体等。一些应用程序可能会周期性地从有新内容可用的服务接收通知。此类应用程序可包括“推送”电子邮件服务(例如MobileMe、Microsoft Exchange、ActiveSync、Push-IMAP、Yahoo!Push等),或者其他推送服务(例如更新/升级服务、新闻服务、博客服务、播客服务、社交网络服务或可发送通知消息的其他类型的服务)。通知消息通常表示感兴趣的事件,其通常由应用程序定义(例如,新的电子邮件指示符、新的新闻项指示符、新的播客指示符、社交网络朋友的在线状态的变化等)。
对移动设备的使用的增加放大向这些设备路由通知消息的复杂性。一个问题是很多用户几乎到哪里都更经常携带多个移动设备,这增大了向正确设备路由内容的复杂性。另一个问题是用户将其设备用于各种交叠和不交叠的目的,使得更难以确定安装相同应用程序的用户的两个移动设备中的哪个移动设备是内容的期望目的地。此外,由于一些移动设备并非固有为可寻址的,因此在每个用户有多个设备在使用时并在不知道如何联系设备时难以向这些移动设备路由消息(尤其是在大尺度移动设备上)。
因此,期望解决与协调和应对向和从用户设备递送内容相关的问题,其中一些问题可能会在本文中论述。此外,期望减少在向和从用户设备递送内容同时还扩展这些设备的功能和可访问性时与功率管理和效率相关的缺点,其中的一些缺点可能会在本文中论述。
发明内容
本发明描述了一个用于在内容递送服务和移动设备之间建立双向通信的系统和方法。由于移动设备(充当被代理设备)维持与服务的持久连接以便从指定一组供应商接收推送内容可能功率低效,因此可使用配套设备(充当代理设备)来向服务断言每个移动设备的“在线”存在。在各种实施方案中,移动设备初始进行注册,以通过服务来递送推送内容。该服务可将注册的移动设备映射到在其相应配套设备和在从移动设备接收到对存在的断言时的服务(例如,通过配套设备提供)之间形成的连接。响应于接收到针对注册移动设备的推送内容,该服务使用其映射来确定移动设备是否“在线”。如果在线,则识别当前网络连接,其对应配套设备正在当前网络连接上侦听其自身的推送内容。该服务可通过配套设备的连接来向配套设备转发推送内容,从而指导配套设备向移动设备递送推送内容。
本发明的某些实施方案涉及在可穿戴设备(作为被代理设备)和主机设备(作为代理设备)之间进行通信。例如,可穿戴设备可与主机设备(例如,经由配对过程等)建立无线通信链路。可穿戴设备可确定用于与主机设备进行通信的最有功率效率的方式。如果一种无线通信比另一种无线通信在移动设备处消耗更多的功率,则可穿戴设备可选择一种无线通信而不是另一种无线通信。因此,可选择断续且非持久的链路,以便使功率消耗最大化并减小接口,或满足其他预先确定的标准,同时还允许双向通信。
在一些实施方案中,为了从内容递送服务接收推送内容,可穿戴设备可通过与主机设备的预先确定的无线通信链路来向服务断言其“在线”存在。该主机设备参与可穿戴设备和服务之间的交互,以确保向和从移动设备成功递送推送内容。可穿戴设备可从服务接收推送内容,因为主机设备代表其使用其自身通往服务的持久连接而与服务进行对消息的发送和接收。可穿戴设备可向服务转发推送内容,因为主机设备代表其使用其自身通往服务的持久连接而与服务进行对消息的发送和接收。
在一些实施方案中,移动设备的配套设备可检测到与配套设备的所建立的无线通信链路不适合进行通信。该配套设备可确定该链路质量过差而不能进行通信或者该链路已被切断或因故终止,而无论是移动设备故意地或是由于在预先确定时间段内没有跨越链路与移动设备进行交互。在满足特定条件时,配套设备可通过其通往服务的自身的链路来向内容递送服务断言“离线”存在,从而指导该服务将移动设备标记为“离线”。在各种实施方案中,该服务可从配套设备的持久连接解除移动设备的关联,从而对推送内容进行排队以用于稍后递送。
在一些实施方案中,移动设备可直接连接到内容递送服务并检索任何排队的推送内容。在一个实施方案中,移动设备直接向服务断言“在线”存在可能使得服务自愿更新其自身的映射。该服务可从其至任何配套设备的连接的映射来解除移动设备的关联。
除了以上章节之外,通过参考本公开的其余部分、任何附图和权利要求,应当意识到对本公开主题(以及所提供的任何固有或明确的优点和改进)的性质和等同物的进一步的理解。
附图说明
为了合理地描述和例示在本公开内出现的这些创新、实施方案和/或示例,可参考一个或多个附图。用于描述一个或多个附图的附加细节或示例不应被解释为对所主张的任何发明、当前描述的任何实施方案和/或示例或当前被理解为在本公开内给出的任何创新的最佳模式的范围的限制。
图1是根据各种实施方案的设备管理和内容递送生态系统的框图。
图2是根据各种实施方案的图1的设备管理和内容递送生态系统中的内容递送系统的框图。
图3是根据一个实施方案的用于执行代理推送通知的方法的流程图。
图4是示出了根据一个实施方案的推送通知服务如何管理代理/被代理存在的框图。
图5是根据一个实施方案的由充当代理设备的配套设备执行的方法的流程图,该方法用于向充当被代理设备的移动设备递送从推送通知服务接收的推送内容。
图6是示出了根据各种实施方案的针对推送通知服务建立代理和被代理存在的消息序列图。
图7是示出了根据各种实施方案的从推送通知服务向代理设备发送推送内容以用于向被代理设备进行递送的消息序列图。
图8是根据一个实施方案的由充当代理设备的配套设备执行的用于处理被代理的推送内容的方法的流程图。
图9是根据一个实施方案的由充当被代理设备的移动设备执行的用于接收被代理的推送内容的方法的流程图。
图10是示出了根据一个实施方案的由充当代理设备的配套设备从充当被代理设备的移动设备向推送通知服务发送推送内容的消息序列图。
图11示出了根据本发明的一个实施方案的用于传送数据的协议栈。
图12是根据一个实施方案的便携式电子设备或移动设备的框图。
具体实施方式
I.引入
本发明描述了用于在内容递送服务和移动设备之间建立双向通信的系统和方法。由于移动设备(充当被代理设备)维持与服务的持久连接以便从指定一组供应商接收推送内容可能功率低效,因此可使用配套设备(充当代理设备)来向服务断言每个移动设备的“在线”存在。在各种实施方案中,移动设备初始进行注册,以通过服务来递送推送内容。该服务可将注册的移动设备映射到在其相应配套设备和在从移动设备接收对存在的断言时的服务(例如,通过配套设备提供)之间形成的连接。响应于接收到针对注册移动设备的推送内容,该服务使用其映射来确定移动设备是否“在线”。如果在线,则识别当前网络连接,其对应配套设备正在当前网络连接上侦听其自身的推送内容。该服务可通过配套设备的连接来向配套设备转发推送内容,从而指导配套设备向移动设备递送推送内容。
A.系统
图1是根据各种实施方案的设备管理和内容递送生态系统100的框图。图1和其他附图仅例示了本文所公开的发明实施方案或具体实施,而不应限制权利要求中所述的任何发明的范围。本领域的普通技术人员通过本公开和本文给出的教导内容可认识到附图中所示的那些实施方案或具体实施的其他变型形式、修改形式和/或替代形式。系统100中的设备可包括硬件元件和/或软件元件。
在一个实施方案中,生态系统100包括身份管理基础结构105、内容基础结构110(即,实现语音/视频呼叫服务、消息服务和/或推送通知服务的一个或多个服务器)、移动设备115、配套设备120、用户设备125、供应商130、供应商135、和通信网络140。如图所示,身份管理基础结构105、内容基础结构110、移动设备115、配套设备120、用户设备125、供应商130和供应商135均能够利用并通过通信网络140(表示互联网、广域网(WAN)、城域网(MAN)、局域网(LAN)、无线局域网(WiLAN)、无线电接入网(RAN)、公共交换电话网(PTSN)等、和/或它们的组合)进行通信。移动设备115可直接与配套设备120进行通信,而无需利用通信网络140。
身份管理基础结构105在各种实施方案中可使用单个服务器计算机系统来实现,或可包括多个服务器计算机系统、Web服务器、应用服务器、网络、互连器等。在各个方面中,身份管理基础结构105提供系统诸如内容基础结构110内或之间的对个体实体的管理、其认证、授权和特权。由身份管理基础结构105所提供的身份管理服务可包括技术和服务诸如活动目录、身份供应商、口令管理器、访问控制供应商、单点登录(SSO)服务、OAuth、安全令牌服务等。
在各种实施方案中,身份管理基础结构105维护用于认证被管理实体(诸如用户、组织和任何相关联的设备、资源、服务、应用程序等)的身份的信息。身份管理基础结构105可使用口令、生物识别特征(诸如指纹)、区分性行为(诸如触摸屏上的手势模式)、挑战-应答协议、一次性口令(OTP)、双向认证和其他技术来认证实体是其所断言的身份。身份管理基础结构105可管理用于限定实体在特定应用程序、服务或资源的上下文内可执行什么操作的授权信息。一些授权可基于与被管理实体相关联的角色、设备类型、应用程序、应用程序类型等。用户被授予常常与特定工作或工作职能相关的角色。身份管理基础结构105还可管理关于管理实体的描述性信息以及如何以及谁可访问和修改该信息。
在一些实施方案中,身份管理基础结构105为管理实体创建数字身份,例如涵盖实体识别信息(PII)和补充信息。在一个方面中,被管理实体可具有多个数字身份,并且每个数字身份可涵盖多个属性。例如,用户可具有链接到多个设备的用户标识符(例如,电话号码、电子邮件等)。除了数字身份的创建、删除、修改之外,身份管理基础结构105还可管理供服务诸如内容基础结构服务110使用的补充实体数据。
在另外的实施方案中,身份管理基础结构105可存储与用户标识符相关联的每个设备的能力。设备能力的示例包括设备是否包括特定类型或版本的硬件,设备是否包括特定类型或版本的软件(例如,操作系统或应用程序),设备是否能够执行特定功能诸如拨打和接听电话或发送和接收短消息服务(SMS)/多媒体消息服务(MMS)消息,设备是否能够维持与其他设备的连接等。与用户相关联的设备的列表可被发送到并存储于该用户的任何其他设备(诸如在与同一用户标识符相关联时的移动设备115和配套设备120)处。身份管理基础结构105可确定并收集在设备注册并与用户标识符相关联时的能力。身份管理基础结构105可例如在设备重新注册或与身份管理基础结构105管理的一个或多个服务进行通信时周期性地更新该设备的能力。
在各种实施方案中,身份管理基础结构105可接收被用于为与用户标识符相关联的设备确定设备标识符的单个用户标识符。在身份注册期间,为了访问由身份管理基础结构105管理的服务或资源,可组合一个或多个用户或其他标识符和唯一实体或设备标识符(UID),以生成身份或设备令牌。在各种实施方案中,通过应用散列算法(例如SHA-0、SHA-1、SHA-2、MD5、Whirlpool、或其他散列算法)来对令牌进行加密。为实体生成并加密的令牌可在各种实施方案中保持恒定。一旦由身份管理基础结构105生成并加密令牌,便可将该令牌发送回到该实体。在一些方面中,该实体然后可将令牌分发给由身份管理基础结构105管理的服务或资源或其他第三方服务,以用于与该实体在那些被管理服务或资源处的认证、授权、记账等或由第三方来向该实体进行的对内容的受信任的递送相关的各种目的。
内容基础结构110可被由身份管理基础结构105管理的实体保护和/或被其访问。内容基础结构110在各种实施方案中可使用单个服务器计算机系统来实现,或可包括多个服务器计算机系统、Web服务器、应用服务器、网络、互连器等。
内容基础结构110可向移动设备115、配套设备120和用户设备125、以及其他设备和实体提供内容。内容的示例包括文本消息、多媒体消息、迫近的日历事件、音频/视频呼叫(例如,使用VOIP)、或远程服务器上的新数据的通知。在一个实施方案中,内容可源自由身份管理基础结构105管理的一个或多个源或直接由内容基础结构110提供。在其他实施方案中,内容可源自其他源。例如,内容可源自移动设备115、配套设备120、用户设备125和供应商130和135中的任一者。
在另一个示例中,可从其他源诸如互联网、蜂窝网络、公共交换电话网络等接收内容。内容基础结构110然后可将内容路由至移动设备115、配套设备120、用户设备125、和供应商130和135。在一个实施方案中,内容基础结构110可通过基础结构路由从蜂窝网络接收或指向蜂窝网络的SMS消息。在另一个实施方案中,内容基础结构110可通过基础结构路由从公共交换电话网络接收或指向公共交换电话网络的语音呼叫。
在一些实施方案中,可将发送到移动设备115的内容转发到配套设备120,以用于递送到移动设备115。配套设备120也可作出动作并代表移动设备115来发送信号。在这些实施方案中,配套设备120充当主要设备或中间设备,并且移动设备115充当被代理设备。内容基础结构110可协调配套设备120如何以及是否作出动作并代表移动设备115发送信号。
在一些实施方案中,内容基础结构110可在适当时候向多于一个设备发送内容。用户可与移动设备115和配套设备120两者相关联。内容基础结构110可将内容路由至移动设备115和配套设备120两者,诸如在两个设备上响起VOIP电话呼叫,或使消息出现在被安装在两个设备上的同一应用程序的收件箱中。在其他实施方案中,仅向一个设备例如配套设备120发送内容,该配套设备可将呼叫转发到移动设备115。在向设备转发呼叫时,电话号码可识别哪个设备要接收电话/视频呼叫,并且该设备能够适当地中继呼叫。
在一个方面中,内容可包括一个或多个数据,诸如如上所述的设备标识符(或令牌)和有效载荷。可在源自供应商(例如,供应商130和/或135)、同一用户的设备(例如,来自移动设备115或配套设备120)或另一个用户的设备(例如,用户设备125)的内容中提供设备令牌,连同供应商尝试利用内容基础结构110递送的任何有效载荷。设备令牌可包含使得内容基础结构110能够定位用于安装特定服务或客户端应用程序的设备并被注册以接收内容的信息。有效载荷可包括在服务器应用程序处接收的新信息或对发现信息的位置的援引。有效载荷还可包括指定特定服务或客户端应用程序如何提示用户关于这一新消息的属性列表。
提示可通过各种形式提供。在一个示例中,可将内容作为提示消息或其他视觉表示向用户进行显示,诸如与应用图标相关联的标记卡。内容的可用性还可通过在显示提示或标记卡时播放声音来宣布。在通知用户该应用程序或服务具有针对它们的消息、事件或其他内容数据时,它们可启动应用程序或服务,并通过查看内容,查看推送通知中包含的信息,使客户端应用程序检索所援引的信息等来看到细节。用户还可选择忽略通知,在这种情况下不激活应用程序。
如上所述,内容基础结构110可包括推送通知服务,该推送通知服务除了或替代路由内容之外还实施某些机制,以为用户设备上的推送供应商的客户端应用程序赋予能力,以使用户知道新内容在一个或多个服务器应用程序上可用,在该设备上或正在传入该新内容。本文中使用的推送供应商(或简称为供应商)可指使用推送通知基础结构转发和/或递送信息的实体。通常,在用户有新数据可用时,软件开发者(充当供应商)在其服务器软件中发出通知。供应商将其服务器软件通过持久且安全的信道与内容基础结构110进行连接。身份管理基础结构105可确保供应商被认证(例如,供应商是供应商断言的身份)和授权,以通过受信任方式连接和利用内容基础结构110。
在监测旨在针对其客户端应用程序的传入数据时,在针对该应用程序的新数据到达时,供应商准备通知并通过其信道连接来向内容基础结构110发送通知,该内容基础结构110向推送使用者或目的地目标设备推送通知。身份管理基础结构105还可确保消费者或目的地目标设备被认证并被授权,从而以受信任的方式连接到并利用内容基础结构110的服务。推送使用者(或简称为使用者或目的地)可指被指定接收使用内容基础结构110转发和/或递送的信息的实体。尽管上文为了简单起见将供应商描述为内容或可用内容通知的源头,但在一种情况下,供应商继而可变为在另一种情况下的消费者,并且反之亦然。此外,移动设备115可以是发给配套设备120的内容的供应商,并且反之亦然,以及供应商130向供应商135提供内容,并且反之亦然。
在内容基础结构110的操作的一个示例中,一个或多个服务器计算机提供、供应、管理和通过其他方式操作推送通知服务,以用于在供应商130、供应商135、移动设备115、配套设备120和用户设备125之间传播信息。每个设备可与内容基础结构110建立至少一个持久连接(例如,可信任的和加密的互联网协议(IP)连接),以通过该持久连接发出和/或接收内容。如上所述,每个设备及其连接可由身份管理基础结构105认证和授权。
如果内容基础结构110针对与用户的设备相关联的应用程序递送的通知在应用程序未运行时到达,则用户的设备可如上所述提示用户该应用程序有数据正在等待。内容基础结构110还可提供默认服务质量部件,该默认服务质量部件提供存储和转发能力。如果内容基础结构110尝试递送通知但目标设备离线,则可将通知存储有限的时间并在设备可用时递送到设备。在一些实施方案中,存储针对特定应用程序的所有最近的通知。在一些实施方案中,仅存储针对特定应用程序的一个最近的通知。例如,如果在设备离线时发送多个通知,则每个新的通知导致先前的通知被丢弃。这种仅保持最新通知的行为被称为聚结通知。在其他实施方案中,如果设备长时间保持离线,则可丢弃针对其存储的任何通知。
供应商130和供应商135在各种实施方案中可使用单个服务器计算机系统来实现,或可包括多个服务器计算机系统、Web服务器、应用服务器、网络、互连器等。在各个方面中,供应商130和供应商135提供客户端应用程序和服务器应用程序,该客户端应用程序运行于移动设备115、配套设备120和用户设备125上,该服务器应用程序提供客户端应用程序可连接到的一个或多个服务。供应商130和供应商135可设法通知移动设备115、配套设备120和用户设备125中的一者或多者可访问的客户端应用程序,其相应用户可使用该信息。
在一个方面中,推送供应商是维护服务器软件的软件开发者、公司或组织,该服务器软件被配置为与移动设备115、配套设备120和用户设备125中的一者或多者上的一个或多个客户端应用程序进行交互。供应商130和供应商135各自通过持久且安全的信道与内容基础结构110连接,同时监测旨在用于其客户端应用程序的传入数据。在一个实施方案中,供应商130和供应商135通过二进制接口进行连接,该二进制接口例如使用流传输TCP插座设计结合二进制内容来提供高速、高容量的接口。该二进制接口可以是同步的或异步的。对于每个接口而言,可使用TLS(或SSL)来建立安全的通信信道。
移动设备115、配套设备120和用户设备125可各自被实现为单个设备、单个计算机系统、多个设备或多个计算机系统。在各个方面中,移动设备115、配套设备120和用户设备125尽管为了方便而进行不同的标记,但均可被实现为移动设备、可穿戴设备或其他移动设备(例如,膝上型电脑、掌上电脑、移动电话、智能电话、多媒体电话、便携式媒体播放器、GPS单元、移动游戏系统等)。例如,可穿戴设备可以是腕戴设备、利用夹子或大头钉固定到用户的衣服上的设备、具有可被穿戴在用户脖子周围的系索或链子的设备、头带设备、眼镜或可被固定到用户人体或衣服的任何其他设备。
除此之外或另选地,配套设备120和用户设备125可如上所述实现,并且被实现为个人计算机系统、主机、服务器计算机系统、云服务等。移动设备115、配套设备120和用户设备125可包括提供通信连接的各种技术。连接技术的一些示例包括有线连接(例如以太网、光纤、数字订户线路(DSL)等)和无线连接(例如WiFi、蓝牙、WiMax、3G、4G、LTE等)。
在一个方面中,移动设备115、配套设备120和用户设备125托管与一个或多个供应商(例如,供应商130和135)提供的一个或多个服务器应用程序进行通信的各种客户端应用程序中的一个或多个客户端应用程序。这些客户端应用程序可包括特定于设备期望功能的应用程序(例如电话应用程序或GPS应用程序)以及电子邮件客户端、更新/升级客户端、新闻客户端、Web/博客客户端、播客客户端、社交网络客户端或可能发送通知消息的其他类型的客户端应用程序。这些客户端应用程序可向用户呈现使用内容基础结构110接收的一个或多个通知消息。可通过由设备的操作系统、图形用户界面工具套件和/或应用陈旭自身定义的一个或多个方式来向用户呈现通知。通知是表示的一些示例包括新的电子邮件指示符、新的新闻项指示符、新的播客指示符、社交网络好友在线状态的变化等。在各种实施方案中,工作于设备上的另一种服务可处理针对客户端应用程序的通知。
如上所述,移动设备115、配套设备120和用户设备125可在客户端应用程序初始与内容基础结构110连接以便接收推送通知时接收标识符(或设备令牌)。供应商130和135可使用令牌或包括令牌,并且还使用任何内容或通知消息,使得可使用内容基础结构110来将其适当地转发回到该设备。在各种实施方案中,为了确保信任,供应商在其每次与内容基础结构110连接时便传送令牌。内容基础结构110可对设备令牌进行加密并使用身份管理基础结构105来认证该令牌是针对目的地设备而生成的。在一个实施方案中,为了进行认证,内容基础结构110确保被包含在令牌中的设备标识符匹配在设备向身份管理基础结构105注册时使用的设备证书中的设备标识符。
参考图1中所示生态系统100的操作,在一个实施方案中,该操作可以是从供应商130向配套设备120转发或通过其他方式传输通知消息,如路径145所示。在各种实施方案中,供应商130在初始与内容基础结构110连接时,发送认证安全套接字层(SSL)证书。身份管理基础结构105可将供应商130认证并授权为推送通知的注册和授权发送方。这种SSL证书也可被配置以附加用户定义数据。身份管理基础结构105可利用附加用户定义数据以受信任方式识别供应商130。在其他实施方案中,可使用其他安全通信协议(例如,加密协议,诸如传输层安全(TLS)等)。
在一些实施方案中,供应商130与特定应用程序(例如,电子邮件、Facebook或推特)相关联,并在SSL证书内包括附加识别(例如,用户定义的)数据,身份管理基础结构105不仅能够认证供应商130,而且还可利用内容基础结构110来为供应商130和应用程序自动供应推送服务。换句话讲,身份管理基础结构105可从认证证书自动提取任何附加识别数据,并使内容基础结构110将附加识别数据(或数据的一部分)附接到内容(例如,推送通知消息)。在一些实施方案中,附加识别数据可识别与用户可能经由内容基础结构110向其进行订购的供应商130(或供应商130的应用程序)相关联的主题或馈送物。因此,可利用认证证书中的附加信息向订购主题/输入或关于该主题/输入的请求信息的设备引导内容。通过这种方式,自动为供应商130供应推送服务。
一旦供应商130被信任,内容基础结构110便从供应商130接收通知消息。如上所述,通知消息可包括设备令牌。在从供应商130接收通知消息之后,内容基础结构110确定针对通知消息的目的地。在各种实施方案中,基于与通知消息一起发送的设备令牌来确定目的地。在一些实施方案中,不必将目的地信息作为令牌的一部分进行发送。通过从设备令牌确定或提取目的地或通过其他方式获得针对内容的目的地信息,内容基础结构110然后可确定目的地是否“在线”或可通过其他方式访问。
如果目的地在线,则在一个实施方案中,内容基础结构110然后可例如经由配套设备120与内容基础结构110维持的持久连接,来向目的地配套设备120路由该通知消息,如路径150所示。如果目的地“离线”或因故不可被内容基础结构110访问,则可在稍晚时间存储内容并重试递送。除此之外或另选地,内容基础结构110可例如经由配套设备120与内容基础结构110维持的持久连接来向移动设备115路由该通知消息,如路径155所示。内容基础结构110因此可向单个设备、同时向多个设备路由内容,或向一个设备路由内容以用于递送到另一个设备。
B.内容基础结构
图2是根据各种实施方案的图1的设备管理和内容递送生态系统100中的内容递送系统200的框图,该内容递送生态系统200提供推送通知服务。系统200可在各种实施方案中使用单个服务器计算机系统来实现,或可包括多个服务器计算机系统、Web服务器、应用服务器、网络、互连器等。在各种实施方案中,系统200可被实现为图1的内容基础结构。
具体地,图2示出了在设备之间例如在供应商和移动设备之间或在一个用户的发送设备和另一个用户的接收设备之间转发内容(例如,通知消息和电话呼叫/视频呼叫)的各个示例。在这些示例中,系统200被示为具有:具有接口210和身份管理服务器(IMS)220的身份服务(IDS)205和具有供应商接口225的推送通知服务(PNS)220,具有存在信息235的网关230,具有连接信息245的设备接口240、以及用户设备250。每项服务都可使用硬件元件和/或软件元件来实现。
在一个方面中,IDS 205可被实现为或形成身份管理基础结构105的一部分。IDS205在各种实施方案中可使用单个服务器计算机系统实来现,或可包括多个服务器计算机系统、Web服务器、应用服务器、网络、互连器等。接口210可使得实体(例如移动设备115或供应商130)能够(例如,经由网络)进行连接,以便利用由IDS 205提供的服务。接口210可结合负载均衡和其他连接管理技术,从而允许实体与身份管理服务器215进行通信。
在一个实施方案中,在初始连接到IDS 205或服务、资源或IDS 205管理的应用程序(例如,PNS 220)时,实体发送经由接口210接收的信息诸如认证证书。身份管理服务器215可将发送信息的设备、用户或组织认证并授权为注册实体和授权实体。可为设备、用户或组织授权或供应一个或多个服务(例如呼叫服务、即时消息服务、聊天服务、通知服务等)。为了支持针对PNS 220的安全模型,可要求实体及其设备拥有特定证书、证书管理机构(CA)证书、或令牌。
在一个实施方案中,内容的每个供应商使用唯一的供应商证书和私有加密密钥,以用于认证其与PNS 220的连接。该证书可由身份管理服务器215供应并识别供应商和/或由供应商发布的特定主题。通常,该主题是客户端应用程序的束ID。该供应商可任选地期望使用由PNS 220提供的公共服务器证书来认证供应商被连接到的服务。在各个方面中,供应商在注册以认证供应商被连接到的服务时使用身份管理服务器215向其递送的公共服务器证书。
身份管理服务器215还可向每个期望接收内容的设备发出唯一的私有密钥和设备用于向身份管理服务器215认证其自身的证书,并建立至PNS220的连接。设备通常在设备激活期间从身份管理服务器215获得设备证书和密钥,并在密钥链中对其进行存储。该设备还保存其在服务连接过程期间接收的特定设备令牌。利用PNS 220的每个客户端应用程序负责向其内容供应商递送该令牌。
身份管理服务器215可存储任何必要的证书、CA证书和(私有和公共)加密密钥,以用于认证供应商和设备的连接和身份。
在该示例中,一旦实体得到信任,系统200便允许实体使用由PNS 220提供的推送通知服务。PNS 220在各种实施方案中可使用单个服务器计算机系统实来现,或可包括多个服务器计算机系统、Web服务器、应用服务器、网络、互连器等。该实体可是期望(例如,经由网络)与PNS 220连接的供应商或其他通知供应商。如上所述,在一个实施方案中,供应商接口225提供高速高容量接口,从而允许推送通知供应商与PNS 220进行通信。供应商接口225可结合负载均衡和其他连接管理技术,从而允许实体与PNS 220进行通信。尽管供应商接口225被示为链接到网关230,但供应商接口225可被结合到网关230或设备接口240。如上所述,在各种实施方案中,用户设备可以是内容的供应商,以及使用PNS 220进行路由的内容的目的地。
网关230在各种实施方案中可使用单个服务器计算机系统实来现,或可包括多个服务器计算机系统、Web服务器、应用服务器、网络、互连器等。网关230可确定经由供应商接口225或设备接口240接收的内容(例如,推送消息)的目的地。在各种实施方案中,网关230可基于存在信息235来确定目的地。在一个方面中,使用设备的推送令牌来维护存在信息235。因此,在指向特定推送令牌的网关230处接收推送通知时,网关230可执行查找,以确定是否存在与该推送令牌相关联的TCP套接字描述符。该套接字描述符可提供TCP套接字信息和传输推送通知所需的其他联网信息。在各个方面中,存在信息235包括被认证实体及其至PNS 220的连接之间的映射。这些连接可被PNS 220用于递送内容、通知等或通过其他方式与实体进行通信。每种映射可指示至少一个实体和至该实体的至少一个连接机制,诸如网络套接字连接或其他连接标识符。例如,映射可由其设备令牌来识别目的地设备或由其供应商标识符来识别供应商。附加信息可被包括在每个映射中,以方便与实体的设备进行通信。
在一些实施方案中,为了缩放对来自利用PNS 220服务的越来越多的用户、设备和供应商的连接的处理,可根据至少一个分组或被称为区域的逻辑划分来管理存在信息235中的设备连接(或设备自身)。可将由网关230执行的功能划分到动态分配以处理这些分组或区域的多个服务器。例如,一个或多个服务器可在一段时间段内管理向被分配给一个区域的目的地的递送,然后被切换或重新配置,以在稍晚时间管理向被分配给不同区域的目的地递送通知。这些服务器中的每个服务器还可包括被用于向与内容的目的地的特定区域相关联的其他服务器路由内容的路由信息。因此,在一个服务器处接收内容时,确定被设计成处理预先确定区域的另一个服务器,并可将内容转发到适当的服务器。在一个方面中,由网关230执行的功能可被划分到多个服务器,以处理对应的设备连接(例如,设备接口240)。
在各种实施方案中,网关230被链接到设备接口240。设备接口240提供与用户设备250进行通信的接口。设备接口240可结合负载均衡和其他连接管理技术,从而允许设备与PNS 220进行通信。尽管设备接口240被示为链接到网关230,但设备接口240可被结合到网关230或供应商接口225。
在这些示例中,设备接口240允许在设备接口240连接到用户设备250时生成存在信息235。用户设备250可在建立持久连接时向PNS 220断言其存在。设备接口240然后生成连接信息245中的设备/连接映射。设备接口240可向网关230传播回连接信息245,从而允许网关230在存在信息235中生成设备/连接映射。在一个方面中,存在信息235包括设备/信使映射或链路,从而允许网关230确定充当连接到用户设备250的设备接口240的适当的信使。信使利用连接信息245(包括任何设备/连接映射或链路),从而允许信使确定特定于用户设备250的连接信息,该用户设备可用于向用户设备250递送内容。在另一个方面中,存在信息235和连接信息245可以基本相同,因为它们包括给定设备及其与PNS 220的连接之间的对应。
在各种实施方案中,期望经由PNS 220接收内容的设备在初始与设备接口240连接时或直接连接至IDS 205时发送认证信息。身份管理服务器215可直接或间接接收认证信息,并且然后将设备或其相关联的用户或组织认证并授权为注册实体和授权实体。一旦设备获得信任,便通知PNS 220并且之后PNS 220(例如,利用连接信息245中的设备接口240)管理在设备和PNS 220之间形成的任何连接。连接信息245中的设备接口240处可用的设备信息可被周期性地传播回给网关220,以生成或更新存在信息235。
在该设备初始与PNS 220连接时,PNS 220为设备进行供应。在各种实施方案中,如上所述,为设备供应区域。尽管对于每个设备有特定的区域分配,但设备可能会因各种原因而失去其与设备接口240的连接。例如,可能由于失去蜂窝信号或wi-fi信号、掉电,或因为移动设备改变地理位置等而失去连接。在其他方面中,连接可能是断续的而不是持久的,以便省电或实现其他效率量度。
在用户设备250尝试重新连接到PNS 220时,用户设备250可与充当设备接口240的任何信使进行连接。在设备连接被分配给至少一个分组或区域的实施方案中,设备接口240可供应与网关230的一个或多个服务器的连接,该网关230被分配以处理连接设备的区域。例如,如果设备接口240被连接到被分配到区域1的用户设备250,则设备接口240可供应与负责管理区域1的一个或多个服务器的连接。设备接口240然后可向负责管理区域1的一个或多个服务器传播回针对用户设备250的设备信息。通过类似方式,设备接口240可与不同区域的服务器形成连接,以便为与那些相应区域相关联的设备传播回特定设备信息,从而确保无论用户设备250在哪里或如何连接到PNS 220,存在信息235均为最新的并且可用于确定如何路由内容。在一些实施方案中,设备接口240可以是特定于无线运营商或互联网服务供应商(ISP),从而允许PNS 220支持特定于多个第三方实体的协议或物理连接。
根据一个示例,在网关230从供应商接口225接收内容时,网关230基于其在存在信息235中的映射来向设备接口240转发从供应商接口225接收的内容。设备接口240可向用户设备250递送从网关230接收的内容,对于该用户设备250,在连接信息245中维护关于持久连接的信息。
在从网关230接收内容时,设备接口240可进行查找或通过其他方式询问其在连接信息245中的设备连接并通过例如与用户设备250相关联的持久连接;奥向适当设备发送从网关230接收的内容。在一个方面中,设备接口240检查与要递送内容相关联的设备令牌,并且确定在设备令牌和设备接口240在连接信息245中管理的连接之间是否找到匹配。设备接口240可使用由具有给定设备令牌的设备建立的连接来递送内容。
在一个操作示例中,用户设备250订阅由供应商管理的特定应用程序并期望经由PNS 220来接收针对该应用程序的通知消息。因此,用户设备250经由通信网络直接地或利用PNS 220来呼叫供应商,并向供应商传输其设备令牌。设备令牌或其传输可不仅包括设备的识别信息,还可包括设备的UID及其区域标识符的加密组合,从而允许PNS 220根据被分配给该区域的适当的资源来供应用于该设备的连接信息。
在供应商向用户设备250上的特定应用程序发送通知消息时,供应商使用供应商接口225连接到PNS 220并向网关230发送消息。即使用户设备250与特定区域相关联,供应商也不需要连接到PNS 220的任何特定网关以向用户设备250成功推送通知消息。例如,如果网关230从供应商接口225接收内容并且内容具有设备令牌,则网关230将查看该令牌并向PNS 220的适当的服务器路由消息(可向设备接口240或PNS 230的另一个信使路由该消息),或向设备接口240直接路由消息。
如果网关230是指定的网关,则在一些实施方案中,网关230基于其在存在信息235中的设备/信使映射来向设备接口240发送/转发消息。设备接口240然后能够在连接信息245中查找其连接并通过设备与设备接口240建立的持久连接来向设备发送消息。概括地说,在PNS 220接收具有特定目的地的消息时,PNS 220的网关使用在设备连接到PNS 220时建立的设备/信使映射来向PNS 220的适当的信使直接转发消息。在另外的实施方案中,网关230可基于其在存在信息235中的设备/连接映射来直接向用户设备250发送/转发消息。网关230可从各个源生成这种映射信息,设备已与每个源建立连接。
II.被代理的推送通知
在各种实施方案中,使用配套设备与该服务先前建立的连接信息通过指向移动设备的推送通知服务(例如,PNS 220)发送的内容可被转发到充当移动设备的配套设备的另一个设备。该配套设备充当代理设备,以代表其他被代理设备来发送和接收信号。此外,该服务维持代理设备、被代理设备之间的关系并且维持通过代理设备来连接被代理设备的方式。因此,配套设备充当该服务的主要设备或中间设备,以向和从被代理设备路由推送内容。
图3是根据实施方案的用于执行代理推送通知的方法300的流程图。在图3中所示的方法300中的处理可由在逻辑机的中央处理单元(CPU或处理器)诸如计算机系统或信息处理设备执行时的软件(例如,指令或代码模块)来执行,由电子设备或专用集成电路的硬件部件来执行,或由软件元件和硬件元件的组合来执行。
在步骤310中,经由配套设备的第一连接在推送通知服务处接收针对配套设备的存在信息。存在信息可包括UID、证书、令牌或与配套设备相关联或关于配套设备的其他信息。第一连接可以是使用无线方式或有线方式的至该服务的持久连接。配套设备(例如,配套设备120)连接到的服务(例如,PNS 220)可通过TLS对等认证来确立配套设备的身份,以便配套设备断言“在线”存在。在这个流程期间,配套设备可发起与服务器或与该服务相关联的其他端点的TLS连接。该服务可返回其自身的服务器证书,配套设备可使用该证书来认证该服务(或至少该服务器或端点)。
该配套设备还可向服务发送其自身的设备证书。设备证书可以是配套设备注册使用该服务时发布的证书,即身份管理服务器215在配套设备120初始注册以便变为被管理实体期间返回的证书。该服务可认证设备证书,并且如果认证成功,允许配套设备与服务器或其他端点建立持久连接。
在步骤320中,在配套设备和第一连接之间的服务处创建映射。该映射可包括UID、令牌或配套设备的其他标识符和连接信息之间的对应关系,该连接信息描述第一连接或如何可使用第一连接通过该服务到达配套设备。这种映射、链路或对应关系可被实现为设备接口240的连接信息245并传播回到网关230以形成上述存在信息235。
在步骤330中,经由配套设备的第二连接在配套设备处接收针对移动设备的存在信息。如下文将更详细论述的,该配套设备可向配套设备维持持久连接的服务器或其他服务端点转发移动设备的该存在信息。该服务可认证移动设备的设备证书。如果认证成功,则在步骤340中,在配套设备、移动设备和第一连接之间创建映射。该映射可包括UID、令牌或移动设备的其他标识符和连接信息之间的关联,该连接信息描述第一连接或如何可使用第一连接通过该服务到达配套设备。在一些实施方案中,在配套设备建立至该服务的其自身的持久连接时,可与先前建立的现有映射或对应关系形成关联。
在各种实施方案中,配套设备可使用至服务的其自身的持久连接来为移动设备代理推送通知,因为移动设备可能不会与服务维持任何连接,而仅与配套设备维持断续或不持久的连接。配套设备可为移动设备代理推送通知,以用于发送和接收推送内容的目的以及其他目的两者。因此,移动设备可各自被实现为可穿戴设备,诸如智能手表或光学头戴式显示器(OHMD)。移动设备和配套设备两者的用户可将两个设备配对,以便建立代理通信。尽管在一些实施方案中,移动设备可被配置为直接连接到服务,但在这些示例的大部分时间中,移动设备通过断续连接到配套设备(即,使用低功率连接、蓝牙连接)来优化功率消耗。由此,一个移动设备在利用可能有更大电池或恒定电源的另一个设备的持久连接时,可更有效地管理功率消耗。
再次参考图3,在步骤350中,在服务处从供应商接收针对移动设备的推送通知。该推送通知可使用UID、设备令牌或其他标识符来识别移动设备。在步骤360中,在服务处识别配套设备、移动设备和第一连接之间的映射。在一个实施方案中,该服可利用将用于移动设备的设备令牌映射到连接信息的查找表,该连接信息还被映射到或通过其他方式关联到配套设备的设备令牌。
在步骤370中,使用第一连接来向配套设备发送推送通知。因此,配套设备可使用至该服务的其自身的持久连接来为移动设备代理推送通知,以用于发送和接收推送内容的目的以及其他目的两者。因此,在若干个方面中,一个移动设备可利用另一个设备的持久连接,该另一个设备代表其来发送和接收推送内容。
A.代理/被代理设备管理
图4是示出了根据一个实施方案的内容基础结构110如何管理代理/被代理存在的框图。在该示例中,配套设备120包括具有连接模块404的处理器402、其中存储设备令牌T1的存储器406、一个或多个应用程序408、发射器410、和接收器412。处理器140包括用于管理例如至设备接口240和移动设备115的连接的连接模块404。存储器406存储设备令牌T1。在应一个或多个应用程序408的请求初始与设备接口240连接以便接收推送内容时,连接模块404可使用发射器410来发射注册信息并使用接收器412来从PNS 220接收设备令牌T1。一旦生成设备令牌T1,发射器410便通过设备接口240向各个供应商应用程序或使用例如互联网直接向供应商应用程序发射或发送设备令牌T1。如上所述,供应商应用程序可使用设备令牌T1或包括令牌以及任何通知消息,使得其可将其被适当地转发回到配套设备120。
连接模块404还可以代表移动设备115来管理发送和接收。例如,连接模块404可管理使用发射器410向设备接口240转发与移动设备115相关联的存在信息。连接模块404可管理使用接收器412从设备接口240接收的消息向移动设备115的递送,该消息包括与移动设备115相关联的设备令牌T2。连接模块404可管理使用接收器412从移动设备115接收的消息向设备接口240的递送,该消息包括与另一设备相关联的设备令牌。
移动设备115包括具有连接模块416的处理器414、其中存储设备令牌T2的存储器418、一个或多个应用程序420、发射器422、和接收器424。处理器414包括用于管理例如至设备接口240和配套设备120的连接的连接模块416。存储器418存储设备令牌T2。在应一个或多个应用程序420的请求初始与设备接口240连接以便接收推送内容时,连接模块416可是有发射器422来发射注册信息并使用接收器424来从PNS 220接收设备令牌T2。一旦生成设备令牌T2,发射器422便向各供应商应用程序发射或发送设备令牌T2。
连接模块416还可管理与配套设备120之间的发送和接收,以建立被代理存在。例如,连接模块416可管理使用发射器422来向配套设备120转发与移动设备115相关联的存在信息。连接模块416可管理使用接收器424接收的消息向应用程序420的递送,该消息包括与移动设备115相关联的设备令牌T2。连接模块416还可管理使用发射器422来向配套设备120转发包括与另一设备相关联的设备令牌的消息,以便使配套设备120向设备接口240转发消息。
在该示例中,经由供应商接口225从供应商接收由与移动设备115相关联的令牌T2识别的消息(例如,推送消息或通知消息)。网关230从供应商接口230接收消息。在各种实施方案中,经由供应商接口225从认证的供应商接收消息之后,网关230使用设备令牌T2来确定消息的目的地。使用存在信息235,网关230确定是否存在与设备令牌T2相关联的任何设备“在线”。网关230可提取设备令牌T2或通过其他方式获得设备令牌T2,并查询其在存在信息235中的映射,以查看设备令牌T2是否映射到连接信息。
在这些实施方案中,图4示出了存在信息235包括一组设备标识符和一组连接描述。该组中的每个设备标识符被映射或以其他方式具有对应的连接描述。具体地,由设备令牌T1表示的设备标识符以及由设备令牌T2表示的设备标识符被映射、相关或通过其他方式与由PI-CD1表示的连接描述相对应。由令牌T3表示的设备标识符与由PI-CD2表示的连接描述进行映射。由令牌T4、T5和T6表示的设备标识符与由PI-CD3表示的连接描述进行映射。由令牌T7表示的设备标识符与由PI-CD4表示的连接描述进行映射。由令牌T8表示的设备标识符与由PI-CD5表示的连接描述进行映射。
设备接口240还维护其被连接到的每个设备的其自身的连接信息245。在这些实施方案中,图4示出了连接信息245包括一组设备标识符和一组连接描述。该组中的每个设备标识符被映射或以其他方式具有对应的连接描述。具体地,由令牌T1表示的设备标识符以及由令牌T2表示的设备标识符被映射、相关或通过其他方式与CI-CD1表示的连接描述相对应。由令牌T3表示的设备标识符与由CI-CD2表示的连接描述进行映射。如上所述,设备接口240可向网关230传播回连接信息245,从而允许网关230生成或更新存在信息235。
在各种实施方案中,网关230基于其在存在信息235中的映射来向设备接口240转发由与移动设备115相关联的令牌T2识别的消息。设备接口240然后基于其在连接信息240中的映射—由连接描述CI-CD1描述的网络连接来向配套设备120转发该消息。这里,配套设备120为可工作并代表移动设备115(被代理设备)发送信号的代理设备。在接收消息时,配套设备120确定其从设备接口240接收的消息包括设备令牌T2(或以其他方式寻址到移动设备115),并使用其至设备115的连接来向移动设备115转发消息。
图5是根据实施方案的用于代理推送通知的方法500的流程图。图5中所示的方法500中的处理可由在逻辑机的中央处理单元(CPU或处理器)诸如计算机系统或信息处理设备执行时的软件(例如,指令或代码模块)来执行,由电子设备或专用集成电路的硬件部件来执行,或由软件元件和硬件元件的组合来执行。
在步骤510中,针对充当代理设备的配套设备(例如,配套设备120)生成存在命令。该存在命令可包括配套设备的应用程序注册以通过推送通知服务接收推送内容时发布的设备令牌以及配套设备向管理推送通知服务的身份管理服务注册时发布的设备证书。设备证书可用于认证设备令牌。存在命令可包括其他信息。在步骤520中,经由与配套设备相关联的第一连接来向推送通知服务发送存在命令,以在配套设备的配套设备标识符和第一连接之间创建映射。第一连接可以是配套设备和推送通知服务之间诸如经由互联网、蜂窝连接等维持的持久连接。
在步骤530中,针对移动设备(例如,移动设备115)生成存在命令。如上所述,存在命令可包括用于移动设备的设备令牌以及用于移动设备的可用于认证设备令牌的设备证书。存在命令可由移动设备生成并经由第二连接发送到配套设备。第二连接可以是移动设备和配套设备之间的断续或非持久连接。经由第二连接接收的信息可以是简单连接或另一个存在命令。存在命令也可由配套设备(即,直接或基于从移动设备接收的信息)生成。在步骤540中,经由第一连接向推送通知服务发送存在命令,以在配套设备标识符、移动设备标识符和第一连接之间创建映射。
在传统代理技术中,代理后方的实体与代理前方的实体被屏蔽开,与此相反,各个实施方案便于将代理设备后方的被代理设备映射到适当的连接,以便递送推送内容。在各种实施方案中,该映射提供了用于移动设备的设备令牌和用于经由配套设备的第一连接向移动设备递送具有移动设备的设备令牌的推送内容的连接方式之间的链路。在一个实施方案中,该映射包括提供与代理设备和被代理设备相关联的一组设备令牌和如何联系到该组中的已知要与一个或多个被代理设备进行通信的代理设备的描述之间的对应关系的查找表。在一些实施方案中,可形成用于指示如何连接到分支或一系列中间设备以便到达被代理设备的连接树。
在步骤550中,经由第一连接从推送通知服务接收针对移动设备的推送通知。推送通知可以是消息命令的形式。消息命令可识别消息的类型、消息的目的地(即设备或应用令牌)和/或有效载荷。在步骤560中,确定推送通知的目的地是移动设备。如上所述,基础目的地字段可用于方便确定该通知是旨在针对代理设备还是旨在针对任何被代理设备。因为确定推送通知指向移动设备,所以在步骤570中,使用第二连接来向移动设备发送推送通知。
B.建立存在
图6是示出了根据各种实施方案的建立代理存在和被代理存在的消息序列图。在这些示例中,为了建立代理存在,在605处,作用于自身或充当代理设备的图2的配套设备120向设备接口240至少发送用于设备令牌T1的存在命令(或在没有设备令牌而发送时,可生成设备令牌T1)。配套设备120可以具有通往设备接口240的多个连接。例如,配套设备120可具有wifi连接以及蜂窝连接。可在两个连接上向设备接口240发送存在命令。在一些方面中,设备接口240包括使用最高优先级的可用连接来向配套设备120递送消息的逻辑部件。
在610处,可使用各种预先指定的标准认证来在针对设备令牌T1的存在命令中向设备接口240传递数据。在各项内容均成功得到认证时,设备接口240进一步生成设备令牌T1和用于描述配套设备120如何连接到设备接口240的连接信息之间的映射。在615处,设备接口240发回状态OK(如果未提供令牌,则连同新生成的令牌一起)。如果由于某种原因认证失败,则设备接口240可在615处向配套设备120发回连接状态无效。
在成功交换断言针对设备令牌T1的存在命令之后,配套设备120可开始充当代理设备,由此发送和接收针对被代理设备的命令。为了建立被代理存在,移动设备115在620处针对设备令牌T2生成存在命令。该存在命令可包括设备令牌T2、移动设备115的X509DER编码的证书、不重性(例如由版本、生成其时的以毫秒为单位的时间戳和8字节的随机生成的数据构成)和不重性数据的签名(例如,利用发给移动设备115的私有密钥进行加密的不重性数据的SHA1)。在被代理设备已知其令牌时,可将针对被代理设备的设备令牌作为存在命令的一部分进行发送。否则,可生成新令牌并返回给被代理设备。在625处,移动设备115向配套设备120发送针对设备令牌T2的存在命令。
在630处,配套设备120准备针对设备令牌T2的存在命令,以用于向设备接口240递送。在一些实施方案中,配套设备120通过利用针对设备令牌T2的存在命令作为有效载荷而创建其自身的消息命令来准备针对设备令牌T2的存在命令。在一些实施方案中,配套设备120原封不动地转发针对设备令牌T2的存在命令或包括一个或多个附加信息片段。在635处,从配套设备120向设备接口140递送针对设备令牌T2的存在命令。
在640处,类似于上文所述那样,在针对设备令牌T2的存在命令中认证向设备接口240传送的数据。如果由于某种原因认证失败,设备接口240可在645处向配套设备120发回连接状态无效。在各项内容得到成功认证时,在645处,设备接口240可发回状态OK(如果未提供令牌,则连同新生成的令牌一起)。设备接口240这时可生成设备令牌T2和用于描述移动设备115如何连接到设备接口240的连接信息之间的映射。在一些实施方案中,在配套设备120接收状态OK时,配套设备120可发送针对每个特定代理令牌的过滤命令,从而允许在650处确定每个被代理设备的存在。在一个方面中,在过滤命令中明确提及针对每个被代理设备的设备令牌。设备接口240这时可生成设备令牌T2和用于描述移动设备115如何连接到设备接口240的连接信息。
如上所述,设备令牌T2和用于描述移动设备115如何连接到设备接口240的连接信息之间的映射可是设备令牌T2到配套设备120如何连接到设备接口240的关联。在一些实施方案中,设备接口240可根据具有公共连接信息的设备令牌来维持独立的唯一映射。
在655处,尽管不是必须的,但配套设备120可向移动设备115传送状态或确认,从而指出已确立“在线”存在。
C.转发推送-向代理设备/被代理设备发送消息
图7是示出了根据各种实施方案的从推送通知服务向代理设备发送推送内容以用于向被代理设备进行递送的消息序列图。在这些实施方案中,设备接口240接收具有目的地字段的消息命令,该消息命令指定或通过其他方式指示设备令牌T2或移动设备115。在710处,设备接口240准备消息命令,以用于向其目的地递送。在一些实施方案中,设备接口240查询其映射并确定与移动设备115相关联的连接信息。这可能表示使用设备令牌T2到设备令牌T1和至配套设备120的网络连接之间的映射的关联来识别针对配套设备120的连接信息。在一些实施方案中,设备接口240准备要用于不同类型令牌的基础目的地字段,该不同类型的令牌可能被包括在消息中诸如作为基础别名令牌的每个应用程序的令牌。在消息命令中没有基础目的地字段时,配套设备120可处理消息命令而无需对被代理设备进行进一步处理。
在各种实施方案中,设备接口240在710处将消息置于等待确认的消息队列中。只要从确认设备接收到确认命令,设备接口240便查看确认命令的目的地字段,以便知道要使用哪个队列并从其队列中去除该消息。在设备接口240发送针对被代理设备的消息时,设备接口240可从对应的代理设备取回两个命令。
例如,在720处,配套设备120生成传输确认命令作为第一种类型的确认命令。传输确认命令告知设备接口240该代理设备已接收到消息,并且选地处于将其转发至被代理设备的过程中。在725处,配套设备120向设备接口240发送传输确认命令。设备接口240可决定此时不从其队列去除所发送的消息。
设备接口240预期要在本示例中取回的第二种类型的确认命令是来自代表被代理设备的主设备或代理设备的确认命令。可延迟该第二种类型的确认命令的发送。例如,在730处,配套设备120准备该消息命令,以向移动设备115递送。如上所述,移动设备115可与配套设备120维持非持久或断续的连接--诸如为了省电。配套设备120可能必须要等待移动设备115“醒来”,以便重新建立连接。在一些实施方案中,配套设备120确定通过哪个适当的链路连接到移动设备115。一旦建立连接,配套设备120便在735出向移动设备115发送消息命令。
在740处,移动设备115可任选地响应于接收到消息命令而向配套设备120发送确认命令。这可能不是必须的,因为可能有其他手段用于确定受保证的递送或可能不需要成功的递送。在745处,配套设备120代表移动设备115明确或间接向设备接口240发送第二种类型的确认命令。在750处,设备接口240处理确认命令。设备接口240此时可从其队列去除消息。
在各种实施方案中,传输确认命令是任选的。如果配套设备120准备好足够快地向移动设备120递送消息,则配套设备120可决定跳过传输确认命令并向设备接口240发送一种类型的确认命令(即,第二种类型的确认命令)。考虑接收消息的次序,配套设备120可实施用于发送针对每个被代理设备的确认命令的各种技术。
图8是根据一个实施方案的由充当代理设备的配套设备执行的用于处理被代理的推送内容的方法800的流程图。图8中所示的方法800中的处理可由在逻辑机的中央处理单元(CPU或处理器)诸如计算机系统或信息处理设备执行时的软件(例如,指令或代码模块)来执行,由电子设备或专用集成电路的硬件部件来执行,或由软件元件和硬件元件的组合来执行。
在步骤810中,在配套设备处从推送通知服务接收针对移动设备的推送通知。可经由配套设备与服务维持的持久连接来接收推送通知。在步骤820中,生成传送确认。在步骤830中,从配套设备向服务发送该传输确认。
在步骤840中,从配套设备向移动设备发送推送通知。可利用与移动设备的断续或非持久连接来向移动设备发送推送通知。可由配套设备或移动设备选择此类链路来使功率消耗、数据吞吐量、链路稳定性等最大化。在步骤850中,确定推送通知是否被移动设备接收。
基于步骤850中确定由移动设备接收推送通知,在步骤860中生成确认。基于步骤850中确定移动设备未接收该推送通知,在步骤870中生成“离线”消息。在步骤880中,从配套设备向该服务发送响应。该响应可包括在步骤860中生成的确认或在步骤870中生成的“离线”消息。
图9是根据一个实施方案的由充当被代理设备的移动设备执行的用于接收被代理的推送内容的方法900的流程图。图9中所示的方法900中的处理可由在逻辑机的中央处理单元(CPU或处理器)诸如计算机系统或信息处理设备执行时的软件(例如,指令或代码模块)来执行,由电子设备或专用集成电路的硬件部件来执行,或由软件元件和硬件元件的组合来执行。
在步骤910中,生成针对移动设备的存在命令。在步骤920中,经由第一连接来向配套设备发送存在命令,以便配套设备使推送通知服务在配套设备标识符、移动设备标识符和第二连接之间创建映射。第二连接可以是在配套设备和推送通知服务之间维持的持久连接。在步骤930中,从配套设备接收针对移动设备的推送通知。在步骤940中,使用第一连接来向配套设备发送确认命令。
D.重新递送
在一些实施方案中,由于未成功向被代理设备(例如,移动设备115)递送消息命令并且未从对应的代理设备(例如,配套设备120)接收第二种类型的确认命令,因此推送通知服务(例如,经由设备接口240)可尝试在稍晚时间重新递送消息命令。如上所述,由于未成功向移动设备递送消息命令而导致的一个选项是配套设备能够向服务发送“离线”存在命令。该服务可尝试在从移动设备接收到新“在线”存在命令时重新递送消息命令或者可简单地从其队列移除消息命令。
在各种实施方案中,在有重复的存在断言服务的存在信息中存在例如PNS 220时,如果其连接信息240已过期,则可向设备接口240发送具有“离线”状态的存在命令。在设备接口240接收存在命令时,设备接口240清空等待确认的消息队列。设备接口240可通过向网关230发回其队列中的针对每个消息的消息命令来这样做。对于代理存在而言,在设备接口240从网关230接收到针对与代理设备相关联的存在的存在命令时,设备接口240可通过向网关230发回针对队列中的每个消息的重新递送消息命令来清空针对代理设备的消息队列,并向网关230发回针对与这个设备相关联的每个存在的具有状态“离线”的存在命令。
在以下情形中也可发送“离线”存在:正常设备A向推送通知服务发送在线存在。被代理设备P通过A的连接来向服务器发送在线代理存在。正常设备B发送在线存在。需注意,B与A不是同一设备(不同的推送令牌和证书)。被代理设备P通过B的连接发送在线代理存在。该服务可拆除在其存在/连接信息中维持的任何过期连接。
E.设备连接拆除
在明确终止设备连接时,设备接口240可向网关230发送存在命令,其中在设备(即主要、代理、别名、代理别名)连接上建立针对每个存在的状态“离线”。可向网关230发回仍然在针对配套设备120和移动设备115的确认队列中的消息,其中递送状态为“离线”。
F.反向推送-从代理设备/被代理设备发送消息
图10是示出了根据一个实施方案的由充当代理设备的配套设备从充当被代理设备的移动设备向推送通知服务发送推送内容的消息序列图。在该示例中,充当被代理设备的移动设备115在1005处生成消息命令。该消息命令可包括各自由条目标识符识别并具有有效载荷的一个或多个条目。一个条目可以是识别消息命令的目的地的令牌。在1010处,移动设备115向配套设备120发送消息命令。移动设备115可从连接到配套设备120的多种方式进行选择,以便使功率效率最大化,从而确保可靠递送等。
在1015处,配套设备120准备消息命令以向其目的地递送。在各种实施方案中,配套设备120可简单地如接收那样转发消息命令。在其他实施方案中,配套设备可添加附加数据或生成新的消息命令。配套设备120可确定其不是消息命令的目的地,并在1020处向设备接口240发送消息命令。
在1025处,可使用各种预先指定的标准认证在消息命令中向设备接口240递送数据。在各项内容成功认证时,设备接口240可在1030处在任选的确认过程中发回状态OK。在1035处,配套设备120接收状态OK并在1035处向移动设备115发回状态OK。如果由于某种原因认证失败,设备接口240可在1030处向配套设备120发回状态无效。在1035处,尽管不需要,但配套设备120可向移动设备115发送某种状态或确认,从而指出已接收、发送和/或确认消息命令。
G.被代理推送协议
串行存在命令表
串行确认命令表
项目 长度 注释
目的地 32字节 原始消息的目的地令牌
串行传输确认命令表
命令 命令ID
传输确认 预先分配的值
在各种实施方案中,在目的地令牌是应用程序令牌时,改变从信使向设备发送的消息命令。在这种情况下,可指定附加字段诸如基础目的地,其可以是生成应用程序令牌所依据的基础令牌。
消息命令表
项目 长度 注释
基础目的地 32字节 基础目的地令牌
在设备发出包含时间戳不在预期窗口内的不重性的串行存在命令时,可向连接的响应(具有无效状态)添加服务器时间戳。这样允许具有坏时钟的设备重试并恢复。
连接命令表
项目 长度 注释
服务器时间 8字节 网络字节次序的以毫秒为单位的服务器时段
III.移动设备上的通信栈
来自设备(例如,移动设备115、或配套设备120)的数据通信可通过各种协议(例如,802.11协议、蓝牙协议、和近场通信(NFC)协议)进行。为了确定使用哪种协议,设备可包括用于确定为特定应用使用哪种协议从而应当发送哪种驱动器路径数据的链路管理器。更低层级的链路层也可选择要使用的特定协议。此外,用户隧道(UTUN)控制器可协调多个虚拟连接与各种客户端应用程序,以通过公共套接字连接来与另一个设备进行通信(例如,移动设备115与配套设备120进行通信)。
图11示出了根据本发明的实施方案的用于传输数据的协议栈1100。可省略协议栈1100中的各个模块,或者添加其他模块。软件模块可运行在同一处理器或不同处理器上。尽管仅列出了若干个通信协议,但可使用多个无线协议。例如,蓝牙协议可包括基本速率(BR)、增强的数据速率(EDR)和低能量(LE)选项。蓝牙BR/EDR也被称为经典蓝牙。
在一些实施方案中,设备(例如,移动设备115)上的客户端应用程序1105可请求要发送到另一个设备(例如,配套设备120)的数据。该请求可经由任何适当的标识符例如账户名、IP地址、MAC地址等来指定其他设备。该请求可在设备确定其他设备在通信内(例如通过初始信令诸如握手来确定)之前或之后。可使用任何适当的应用层协议诸如HTTP、RTP、SMTP、MGCP等来发送数据(例如,在消息或流中)。其他设备可以是包括用户的另一个设备的任何设备。该请求可响应于用户所作的动作、可能在同一或其他应用程序(例如,日历应用程序)中的内部事件(例如,基于时间或其他标准)或外部事件(例如,响应于来自另一个设备的消息)而作出。事件的示例是同步事件。
在发送数据之前,客户端应用程序1105可提交开放套接字请求(例如,在流传输的示例中)。该套接字请求可使用来自身份服务(IDS)框架1115的信息,其可提供用于其他设备的地址(或其他类型的ID)。例如,客户端应用1105可以知道第二设备的账户信息(例如,不同或相同用户的账户信息),IDS框架1115可以存储针对特定账户的设备ID的列表。IDS框架1115可以与身份管理基础结构105通信以获得该列表。因此,IDS框架1115可以储或通过其他方式获得用户已向身份管理基础结构105注册的所有设备的设备ID(例如,地址)。例如,IDS框架1115可经由IDS守护进程来请求身份管理基础结构105,以获得设备ID。在一个具体实施中,可向内核1110作出套接字请求。
在即时消息示例中,发送数据的请求可发送至IDS框架1115,以获得设备ID,该设备ID可被发送至消息控制器1120和用户隧道(UTUN)控制器1125。UTUN控制器1125可在设备ID不是IP地址时建立设备ID和IP地址(例如,虚拟ID地址)之间的映射。可在消息控制器1120(其将设备ID分配到套接字)和内核1110(其可向套接字分配地址诸如虚拟IP地址)之间创建套接字。UTUN控制器1120可用于在消息控制器1120和内核1110之间创建套接字连接。这样,来自客户端应用程序1105的发送日期请求不需要包括设备ID但可指定账户,IDS框架1115然后可交叉引用账户并知道账户的设备及其能力(例如,如果该请求需要特定的能力)。假设可获得设备ID,则不需要在创建套接字之前进行配对。
在各种实施方案中,IDS框架1115可在其他设备处从客户端应用程序1105接收特定端口/服务,基于从身份管理基础结构105获得的信息来确定端口/服务,或者从请求中所发送的令牌确定端口/服务。IDS框架1115然后可向消息控制器1120和/或UTUN控制器1125传送设备ID和其他标头信息。IDS框架1115和UTUN控制器1125可经由过程间通信(XPC)而进行通信。UTUN控制器1125可以是IDS守护进程的一部分并可从身份管理基础结构105接收设备ID。
如上所述,UTUN控制器1125可创建与实际设备地址对应的虚拟地址,其中虚拟地址可用于创建虚拟套接字。可使用任何设备ID(例如,设备的实际地址或其他ID)来创建虚拟套接字。例如,可创建套接字以用于客户端应用程序1105和内核1110之间的通信(例如,在流传输上下文中),其中内核1110可为各种客户端应用程序打开各种套接字。内核1110可具有至针对其他设备的UTUN控制器1125的单一连接,并将来自各个客户端应用程序的数据复用到单一连接中。替代地或此外,UTUN控制器1125也可进行复用,例如,如果内核1110和UTUN控制器1125之间存在用于到其他设备的各个客户端应用程序的多个套接字。可对传入数据解复用,以用于发送到目的地客户端应用程序。
作为另一个示例,可在内核1110和消息控制器1120之间创建套接字(例如,在消息递送上下文中),其中可针对每个目的地设备来创建套接字,其中同一设备的不同套接字可能具有不同的优先级。因此,可使特定的虚拟套接字与特定设备和特定优先级(例如,高和低)相关联。消息控制器1120可具有至各客户端应用程序的各个连接。因此,消息控制器1120可提供复用/解复用能力。
UTUN控制器可与其他设备创建基本套接字。在UTUN控制器1125使用与第二设备相关联的虚拟连接来接收数据时,其然后可将虚拟连接映射到基本套接字,以与其他设备进行通信。然后可通过基本套接字来发出针对其他设备的所有数据。例如,在流上下文中,可向客户端应用程序1115传回用于虚拟套接字的虚拟地址。在一个实施方案中,涉及内核1110的虚拟套接字为TCP套接字。虚拟地址可具有与正常地址例如IPv6地址相同的格式。复用模块可包括内核1110、消息控制器1120和UTUN控制器1125的任意组合。
在客户端应用程序1105发送数据时,客户端应用程序1105ke使用虚拟套接字来向内核1110发送数据。例如,可使用TCP经由虚拟套接字来发送数据。内核1110可实现UTUN接口,以用于与UTUN控制器1125进行通信。内核1110将向UTUN控制器1125传递数据(例如,具有TCP标头)和识别虚拟地址的虚拟套接字,UTUN控制器1125然后将使用虚拟套接字来解析设备地址,以用于确定设备套接字。
在通过设备套接字发送数据时,链路管理器1130以确定使用哪个链路。链路可以是无线接口协议(例如,蓝牙或Wi-Fi)、传输协议(例如,TCP、UDP等)和目的地设备的特定组合。这样,UTUN控制器1125不需要知道如何发送数据,而是可简单地向链路管理器1130发送数据。
在各种实施方案中,链路管理器1130可针对每个数据包、每组数据包、每个设备套接字进行确定,并可从一个数据包改变成另一个数据包。链路管理器1130然后可选择用于发送数据的链路。在所示的示例中,Wi-Fi链路1135提供用于与一个或多个Wi-Fi协议进行通信的软件驱动程序,并且BLTE链路1140提供用于与蓝牙LE进行通信的软件驱动程序。Wi-Fi链路1135与Wi-Fi硬件1170进行通信,并且BLTE链路1140与BLTE硬件1165进行通信。Wi-Fi链路1135可用于诸如infra-WiFi(基础结构WiFi)的各种Wi-Fi协议。在一个实施方案中,链路管理器1130以尝试所有的链路以确定是否有任何链路能够联系其他设备,并且然后使用具有所确定的最高等级或动态等级的已连接链路。
硬件1165-1170可与被分配给各种设备的链路进行通信。例如,链路1135、1140和1145可以被分配用于与第二设备进行通信。而且,被分配成与第三设备进行通信的其他链路也可与硬件1165-1170进行通信。在特定硬件接收数据时,软件可识别特定的发送设备,并且然后确定对应的链路,例如使用标头信息以确定与发送设备和传输协议对应的链路。
在一些实施方案中,组合链路1145可包括用于与链路管理器1130通信的接口1155以及选择要使用的特定协议的选择器1150。协议可与链路管理器1130可用的协议相同或不同。选择器1150可执行与链路管理器1130类似的功能,因为选择特定的链路。然而,链路管理器1130和选择器1150可使用不同的标准来确定使用哪个链路。例如,链路管理器1130可确定使用组合链路1145,并且选择器1150然后可确定要使用BTLE硬件1165。硬件可被包含在同一或独立的芯片上。
一个或多个协议可仅经由组合链路1145可用,诸如经典蓝牙硬件1150。链路管理器1130和选择器1150可使用各种标准来确定使用哪个链路,诸如链路的功率使用、链路的速度(例如,实时数据速率)和链路的信号强度。优化链路选择的目标可以是以最低可能的能量提供最小的数据速率。
IV.移动设备
图12是根据实施方案的便携式电子设备或移动设备1200的框图。移动设备1200通常包括计算机可读介质1202、处理系统1204、输入/输出(I/O)子系统1206、无线电路1208和音频电路1210(包括扬声器1212和麦克风1214)。这些部件可通过一个或多个通信总线或信号线1203而被耦接。移动设备1200可为任何便携式电子设备,包括手持式计算机、平板电脑、移动电话、膝上型计算机、平板设备、媒体播放器、个人数字助理(PDA)、密钥卡、车钥匙、通行卡、多功能设备、移动电话、便携式游戏设备等,包括这些物品中的两个或更多个物品的组合。
应当理解,图12所示的架构仅为移动设备1200的架构的一个示例,并且移动设备1200可具有比所示更多或更少的部件或部件的不同配置。图12中所示的各种部件可以硬件、软件或硬件和软件两者的组合来实现,其包括一个或多个信号处理电路和/或专用集成电路。
无线电路1208用于通过无线链路或网络来向一个或多个其他设备的常规电路诸如天线系统、RF收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、CODEC芯片组、存储器等发送信息和从其接收信息。在一些实施方案中,无线电路1208能够使用一个或多个通信协议来与其他设备建立并保持通信,该一个或多个通信协议包括时分多址(TDMA)、码分多址(CDMA)、全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、宽带码分多址(W-CDMA)、长期演进(LTE)、增强型LTE、WiFi(诸如IEEE 802.11a、IEEE 802.11b、IEEE 802.11g和/或IEEE802.11n)、蓝牙、Wi-MAX、互联网协议语音技术(VoIP)、近场通信协议(NFC)、用于电子邮件、即时消息和/或短消息服务(SMS)的协议,或包括到本文档的提交日期为止尚未开发出来的通信协议的任何其他合适的通信协议。移动设备可包括可根据通信所需的范围通过若干个不同类型的无线网络进行通信的无线电路。例如,短程无线收发器(例如,蓝牙)、中程无线收发器(例如,WiFi)和/或远程无线收发器(例如,GSM/GPRS、UMTS、CDMA2000 1x/EV-DO和LTE/增强型LTE)可根据通信类型或通信的范围来使用。
无线电路1208经由外围设备接口1216耦接至处理系统1204。接口1216可包括用于建立并保持外围设备和处理系统1204之间的通信的常规部件。通过无线电路1208所接收的语音和数据信息(例如,在语音识别或语音命令应用程序中)经由外围设备接口1216被发送至一个或多个处理器1218。一个或多个处理器1218可配置为处理各种数据格式。
外围设备接口1216将设备1200的输入外围设备和输出外围设备耦接到计算机可读介质1202和一个或多个处理器1218。一个或多个处理器1218经由控制器1220来与计算机可读介质1202进行通信。计算机可读介质1202可以是可存储供一个或多个处理器1218使用的代码和/或数据的任何设备或介质。介质1202可包括存储器分级结构,包括高速缓存、主存储器和辅助存储器。存储器分级结构可使用RAM(例如,SRAM、DRAM、DDRAM)、ROM、闪存、磁存储设备和/或光学存储设备(诸如磁盘驱动器、磁带、CD(光盘)和DVD(数字视频光盘))的任何组合来实现。在一些实施方案中,外围设备接口1216、一个或多个处理器1218和存储器控制器1220可在单个芯片诸如处理系统1204上实现。在一些其他实施方案中,它们可在独立的芯片上实现。
移动设备1200还可包括用于为各种硬件部件供电的电力系统1222。电力系统1222可包括电力管理系统、一个或多个电源(例如,电池、交流电(AC))、再充电系统、电力故障检测电路、功率转换器或逆变器、电源状态指示器(例如,发光二极管(LED))和通常与移动设备中的电力的生成、管理和分配相关联的任何其他部件。
在一些实施方案中,移动设备1200包括相机1224。在一些实施方案中,移动设备1200包括传感器1226。传感器可包括加速度计、罗盘、陀螺仪、压力传感器、音频传感器、光传感器、气压计等。传感器1226可用于感测位置方面,诸如位置的听觉标记或光标记。在一些实施方案中,移动设备1200可包括有时被称为GPS单元1228的GPS接收器。移动设备可使用卫星导航系统诸如全球定位系统(GPS)来获得定位信息、定时信息、高度或其他导航信息。在一些实施方案中,移动设备1200可包括外部端口1230(例如,USB、火线、闪电连接器、120针连接器等)。外部端口1230可适于直接耦接到其他设备,或间接地通过网络(例如互联网、无线LAN等)进行耦接。
一个或多个处理器1218运行被存储在介质1202中的各种软件部件,以执行设备1200的各种功能。在一些实施方案中,软件部件包括操作系统1232、通信模块(或指令集)1234和其他应用程序(或指令集)1236。操作系统1232可为任何合适的操作系统,包括iOS、Mac OS、Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS、或嵌入式操作系统诸如VxWorks。操作系统可包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电力管理等)的各种程序、指令集、软件部件和/或驱动器,并且有利于各种硬件部件和软件部件之间的通信。
通信模块1234有利于通过一个或多个外部端口1230或经由无线电路1208与其他设备进行通信,并且包括用于处理从无线电路1208和/或外部端口1230所接收的数据的各种软件部件。
移动设备1200上的一个或多个应用程序1236可包被括安装在设备1200上的任何应用程序,包括但不限于浏览器、地址簿、联系人列表、电子邮件、即时消息、社交网络、文字处理、键盘仿真、桌面小程序、支持JAVA的应用程序、加密软件、数字版权管理、语音识别、语音复制、音乐播放器(回放被存储在一个或多个文件诸如MP3文件或AAC文件中的录制音乐)等等。
它们可以是其他模块或指令集(未示出),诸如图形模块、时间模块等。例如,图形模块可包括用于在显示器表面上对图形对象(包括但不限于文本、网页、图标、数字图像、动画等)进行渲染、动画显示和显示的各种常规软件部件。在另一个示例中,定时器模块可以是软件定时器。也可在硬件中实现定时器模块。时间模块可针对任意数量的事件来维持各种定时器。
I/O子系统1206可耦接至显示系统(未示出),该显示系统可以是触敏显示器。显示器在GUI中向用户显示视觉输出。该视觉输出可包括文本、图形、视频、以及它们的任何组合。视觉输出中的一些或所有视觉输出可对应于用户界面对象。尽管显示器可使用LED(发光二极管)技术、LCD(液晶显示器)技术或LPD(发光聚合物显示器)技术,但在其他实施方案中可使用其他显示技术。
在一些实施方案中,I/O子系统1206可包括显示器和用户输入设备诸如键盘、鼠标和/或触控板。在一些实施方案中,I/O子系统1206可包括触敏显示器。触敏显示器还可基于触觉和/或触感接触来接受来自用户的输入。在一些实施方案中,触敏显示器形成用于接受用户输入的触敏表面。触敏显示器/表面(连同介质1202中的任何相关联的模块和/或指令集)检测触敏显示器上的接触(和接触的任何移动或释放),并将所检测到的接触转换为与用户界面对象的交互,诸如在接触发生时被显示在触摸屏上的一个或多个软键。在一些实施方案中,触敏显示器和用户之间的接触点对应于用户的一个或多个数字。用户可使用任何合适的对象或附属件诸如触笔、笔、手指等来接触触敏显示器。触敏显示器表面可使用任何合适的触敏技术来检测接触及其任何移动或释放,该任何合适的触敏技术包括电容式、电阻式、红外和表面声波技术、以及其他接近传感器阵列或用于确定与触敏显示器的一个或多个接触点的其他元件。
此外,I/O子系统1206可耦接至一个或多个其他物理控制设备(未示出)诸如按钮、按键、开关、摇臂按钮、拨号盘、滑动开关、操作杆、LED等,用于控制或执行各种功能诸如功率控制、扬声器音量控制、电话铃声响度、键盘输入、滚动、保持、菜单、锁屏、清除和结束通信等。在一些实施方案中,除了触摸屏之外,设备1200还可包括用于激活或去激活特定功能的触摸板(未示出)。在一些实施方案中,触摸板是设备的触敏区域,该触敏区域与触摸屏不同,其不显示视觉输出。触摸板可以是与触敏显示器分开的触敏表面、或者是由该触敏显示器形成的触敏表面的延伸部。
先前描述可引用移动设备(例如,手腕穿戴设备)和/或配套设备(例如,智能电话)的特定示例。应当理解,这些示例只用于举例并不具有限制性;其他设备可被替换并且可实现类似的功能框和/或算法,从而执行本文所述的操作和/或其他操作。
可使用专用部件和/或可编程处理器和/或其他可编程设备的任意组合来实现本发明的例如方法、装置、计算机可读介质等中的实施方案。本文所述的各种过程可以任何组合方式在同一处理器或不同处理器上实现。在部件被描述为被配置为执行某些操作的情况下,可例如通过设计电子电路以执行操作、通过对可编程电子电路(诸如微处理器)进行编程以执行操作或它们的任何组合来实现此类配置。另外,尽管上述实施方案可能参考具体硬件部件和软件部件,但本领域的技术人员应当理解,也可使用硬件部件和/或软件部件的不同组合并且被描述为在硬件中实现的特定操作也可能在软件中被实现,或反之亦然。
结合本发明的各种特征的计算机程序可被编码并被存储在各种计算机可读存储介质上;合适的介质包括磁盘或磁带、诸如光盘(CD)或DVD(数字多功能光盘)的光学存储介质、闪存存储器、以及其他非暂态介质。可将利用程序代码编码的计算机可读介质与兼容的电子设备封装在一起,或者该程序代码可独立于电子设备而被提供(例如,经由互联网下载或作为单独封装的计算机可读存储介质)。
因此,尽管已相对于具体实施方案描述了本发明,但应当理解,本发明旨在覆盖以下权利要求范围内的所有修改形式和等同形式。
在一些实施方案中,提供了一种用于被代理通信的方法,该方法包括:在包括一个或多个计算机系统的服务器处从向服务器断言针对该配套设备的存在信息的配套设备接收第一通知;由服务器基于来自配套设备的通知来在配套设备标识符和网络连接标识符之间创建映射;由服务器响应于被代理设备向配套设备断言针对被代理设备的存在信息而接收第二通知;由服务器基于第二通知来在配套设备标识符、被代理设备标识符和网络连接标识符之间创建映射;在服务器处接收与被代理设备标识符相关联的推送通知;由服务器识别配套设备标识符、被代理设备标识符和网络连接标识符之间的映射;以及由服务器基于配套设备标识符、被代理设备标识符和网络连接标识符之间的映射使用具有网络连接标识符的网络连接来向配套设备发送推送通知。
在上述实施方案中的任一个实施方案中,基于第二通知在任配套设备标识符、被代理设备标识符和网络连接标识符之间创建映射包括向配套设备标识符和网络连接标识符之间的映射添加被代理设备标识符。
在上述实施方案中的任一个实施方案中,识别配套设备标识符、被代理设备标识符和网络连接标识符之间的映射包括:确定与被代理设备相关联的设备令牌;以及确定与被代理设备相关联的设备令牌和与配套设备相关联的设备令牌之间的对应关系。
在上述实施方案中的任一个实施方案中,识别配套设备标识符、被代理设备标识符和网络连接标识符之间的映射包括确定配套设备或被代理设备是否被授权接收推送通知。
在上述实施方案中的任一个实施方案中,从具有配套设备标识符的配套设备接收关于具有被代理设备标识符的被代理设备的信息包括接收由被代理设备生成的存在信息。
在上述实施方案中的任一个实施方案中,该方法还可包括:在服务器处接收用于指示向配套设备递送推送通知的信息。
在上述实施方案中的任一个实施方案中,该方法还可包括:由服务器确定向被代理设备递送推送通知失败;以及服务器使用网络连接来向配套设备重新发送推送通知。
在上述实施方案中的任一个实施方案中,该方法还可包括:在服务器处接收用于指示确认向被代理设备递送推送通知的信息。
在上述实施方案中的任一个实施方案中,该方法还可包括:由服务器从配套设备接收用于指示被代理设备离线的信息;由服务器基于来自配套设备的信息来去除配套设备标识符、被代理设备标识符和网络连接标识符之间的映射;在服务器处响应于被代理设备向配套设备断言针对被代理设备的存在信息来接收第三通知;以及由服务器基于第三通知来在配套设备标识符、被代理设备标识符和网络连接标识符之间创建映射。
在上述实施方案中的任一个实施方案中,该方法还可包括:由服务器响应于被代理设备向服务器断言针对被代理设备的存在信息来接收第三通知;由服务器基于存在信息针对被代理设备来在被代理设备标识符和网络连接标识符之间创建映射;以及由服务器去除配套设备标识符、被代理设备标识符和网络连接标识符之间的映射。
在上述实施方案中的任一个实施方案中,该方法还可包括:由服务器基于由服务器对被代理设备或配套设备的连接的确定来去除配套设备标识符、被代理设备标识符和网络连接标识符之间的映射。
在上述实施方案中的任一个实施方案中,该方法还可包括:由服务器基于在另一配套设备的另一配套设备标识符、被代理设备标识符和另一网络连接标识符之间创建映射来去除配套设备标识符、被代理设备标识符和网络连接标识符之间的映射。
在上述实施方案中的任一个实施方案中,主要设备或被代理设备包括移动媒体播放器、智能电话、可穿戴设备、平板电脑、游戏设备、膝上型电脑、或台式计算机。
一些实施方案可包括一种用于被代理通信的方法,该方法包括:在具有第一通信接口、第二通信接口和一个或多个处理器的代理设备处:经由第一通信接口来发送第一消息,以向服务断言针对配套设备的存在信息,从而指导该服务生成配套设备和代理设备到服务的连接之间的对应关系;经由第二通信接口来接收被代理设备的存在信息;经由第一通信接口来发送第二消息,以向该服务断言被代理设备的存在信息,从而指导该服务将被代理设备关联到代理设备和代理设备到服务的连接之间的对应关系;基于被代理设备关联到代理设备和代理设备到服务的连接之间的对应关系响应于该服务向代理设备传送与被代理设备相关联的消息经由第一通信接口来接收与被代理设备相关联的消息;以及经由第二通信接口来向被代理设备发送与被代理设备相关联的消息。
在上述实施方案中的任一个实施方案中,该方法还可包括:向该服务发送用于指示在代理设备处接收与被代理设备相关联的消息的信息。
在上述实施方案中的任一个实施方案中,接收被代理设备的存在信息包括与被代理设备建立链路。
在上述实施方案中的任一个实施方案中,该方法还可包括:接收用于指示在被代理设备处递送与被代理设备相关联的消息的信息;以及发送用于指示在被代理设备处向服务递送与被代理设备相关联的消息的信息。
在上述实施方案中的任一个实施方案中,该方法还可包括:确定被代理设备不可用;以及经由第一通信接口来发送第三消息,一向服务断言针对被代理设备的附加存在信息,从而指导该服务从代理设备和代理设备到服务的连接之间的对应关系解除被代理设备的关联。

Claims (25)

1.一种用于被代理通信的方法,所述方法包括:
在具有通信接口和一个或多个处理器的被代理设备处:
经由所述通信接口来在所述被代理设备和具有与服务的持久链路的代理设备之间建立非持久链路,以便向所述代理设备发送消息,从而向所述服务断言针对所述被代理设备的存在信息,针对所述被代理设备的所述存在信息指导所述服务将所述被代理设备与现有映射关联,所述现有映射介于所述代理设备和所述代理设备与所述服务维持的持久链路之间;
终止所述非持久链路;
经由所述通信接口来重新建立所述非持久链路,以便从所述代理设备接收与所述被代理设备相关联的推送通知,所述推送通知由所述服务使用所述被代理设备与所述现有映射之间的所述关联而被路由至所述代理设备,所述现有映射介于所述代理设备和所述代理设备与所述服务维持的所述持久链路之间;以及
在所述存储器中存储所述推送通知。
2.根据权利要求1所述的方法,还包括:
使用所述被代理设备和所述代理设备之间的所述非持久链路来向所述代理设备发送所述消息,从而向所述服务断言针对所述被代理设备的存在信息。
3.根据权利要求2所述的方法,其中针对所述被代理设备的所述存在信息包括设备令牌或应用令牌中的一者或多者。
4.根据权利要求1所述的方法,其中经由所述通信接口来在所述被代理设备和所述代理设备之间建立所述非持久链路包括与所述代理设备建立蓝牙低能量连接。
5.根据权利要求1所述的方法,其中终止所述非持久链路包括向所述代理设备发送用于指示针对所述被代理设备的离线状态的消息。
6.根据权利要求1所述的方法,其中终止所述非持久链路包括在预先确定的时间段内减少与所述被代理设备的通信。
7.根据权利要求1所述的方法,还包括:
从所述代理设备接收与所述被代理设备相关联的所述推送通知。
8.根据权利要求7所述的方法,其中所述推送通知表示电子邮件通知、即时消息通知、短消息服务(SMS)通知、多媒体消息服务(MMS)通知、或内容状态通知。
9.根据权利要求1所述的方法,还包括:
向所述代理设备发送用于指示在所述被代理设备处递送所述推送通知的信息。
10.根据权利要求1所述的方法,还包括:
在所述被代理设备和所述服务之间建立持久连接,所述持久连接指示所述服务解除所述被代理设备与所述现有映射的关联,所述现有映射介于所述代理设备和所述代理设备与所述服务维持的所述持久链路之间;以及
使用所述被代理设备和所述服务之间的所述持久连接来接收一个或多个推送通知。
11.根据权利要求1所述的方法,还包括:
生成包括与所述推送通知相关联的类型的视觉表示的对所述推送通知的显示。
12.根据权利要求1所述的方法,还包括:
终止与所述代理设备的任何非持久链路;以及
经由所述通信接口来与第二代理设备建立非持久链路,以便从所述第二代理设备接收与所述被代理设备相关联的推送通知。
13.根据权利要求1所述的方法,其中所述被代理设备或代理设备包括移动媒体播放器、智能电话、可穿戴设备、平板电脑、游戏设备、膝上型电脑、或台式计算机。
14.一种非暂态计算机可读介质,计算机程序产品体现在该非暂态计算机可读介质内,所述非暂态计算机可读介质存储可由被代理设备的一个或多个处理器执行的代码,所述被代理设备具有用于被代理通信的通信接口,所述非暂态计算机可读介质包括:
用于经由所述通信接口来在所述被代理设备和具有与服务的持久链路的代理设备之间建立非持久链路的代码;
用于使用所述非持久链路来向所述代理设备发送消息从而向所述服务断言针对所述被代理设备的存在信息的代码,针对所述被代理设备的所述存在信息指导所述服务将所述被代理设备与现有映射关联,所述现有映射介于所述代理设备和所述代理设备与所述服务维持的持久链路之间;
用于终止所述非持久链路的代码;
用于经由所述通信接口来重新建立所述非持久链路的代码;
用于响应于重新建立所述非持久链路来从所述代理设备接收与所述被代理设备相关联的推送通知的代码,所述推送通知由所述服务使用所述被代理设备与所述现有映射之间的所述关联而被路由至所述代理设备,所述现有映射介于所述代理设备和所述代理设备与所述服务维持的所述持久链路之间;和
用于基于所述推送通知来执行一个或多个动作的代码。
15.根据权利要求14所述的非暂态计算机可读介质,其中用于向所述代理设备发送所述消息的所述代码包括用于发送设备令牌或应用令牌中的一者或多者的代码。
16.根据权利要求14所述的非暂态计算机可读介质,其中用于经由所述通信接口来建立或重新建立所述被代理设备和所述代理设备之间的所述非持久链路的所述代码包括用于与所述代理设备建立蓝牙低能量连接的代码。
17.根据权利要求14所述的非暂态计算机可读介质,其中所述推送通知表示电子邮件通知、即时消息通知、短消息服务(SMS)通知、多媒体消息服务(MMS)通知、或内容状态通知。
18.根据权利要求14所述的非暂态计算机可读介质,还包括:
用于在所述被代理设备和所述服务之间建立持久连接的代码,所述持久连接指示所述服务解除所述被代理设备与所述现有映射的关联,所述现有映射介于所述代理设备和所述代理设备与所述服务维持的所述持久链路之间;和
用于使用所述被代理设备和所述服务之间的所述持久连接来接收一个或多个推送通知的代码。
19.一种移动设备,包括:
硬件处理器;
通信接口;和
存储器,所述存储器存储指令集,所述指令集当由所述处理器执行时使得所述处理器:
经由所述通信接口来在所述移动设备和具有与内容递送服务的持久链路的配套设备之间建立非持久链路;
使用所述非持久链路来向所述配套设备发送消息,从而向所述内容递送服务断言针对所述移动设备的存在信息,针对所述移动设备的所述存在信息指导所述内容递送服务将所述移动设备与现有映射关联,所述现有映射介于所述配套设备和所述配套设备与所述内容递送服务维持的持久链路之间;
基于一个或多个功率量度来终止所述非持久链路;以及
经由所述通信接口来周期性地重新建立所述非持久链路,以便从所述配套设备接收与所述移动设备相关联的推送通知,所述推送通知由所述内容递送服务使用所述移动设备与所述现有映射之间的关联而被路由至所述配套设备,所述现有映射介于所述配套设备和所述配套设备与所述内容递送服务维持的所述持久链路之间。
20.根据权利要求19所述的移动设备,其中所述指令集进一步使得所述处理器:
经由所述通信接口来与第二配套设备建立非持久链路;以及
从所述第二配套设备接收与所述移动设备相关联的一个或多个推送通知。
21.根据权利要求19所述的移动设备,其中所述指令集进一步使得所述处理器:
利用第二通信接口来在所述移动设备和所述内容递送服务之间建立持久连接,所述持久连接指导所述内容递送服务解除所述移动设备与任何映射的关联,所述任何映射介于配套设备和所述配套设备与所述内容递送服务维持的任何持久链路之间;以及
使用所述移动设备和所述内容递送服务之间的所述持久连接来接收一个或多个推送通知。
22.根据权利要求19所述的移动设备,其中所述指令集进一步使得所述处理器基于从所述配套设备接收的与所述移动设备相关联的推送通知而执行一个或多个动作。
23.根据权利要求22所述的移动设备,其中所述指令集使得所述处理器执行所述一个或多个动作,以利用与所述推送通知相关联的类型的视觉表示来更新用户界面。
24.根据权利要求22所述的移动设备,其中所述指令集使得所述处理器执行所述一个或多个动作,以向所述移动设备的用户提供触觉反馈。
25.根据权利要求22所述的移动设备,其中所述指令集使得所述处理器执行所述一个或多个动作,以发起在所述移动设备上托管的一个或多个应用程序,所述一个或多个应用程序从所述内容递送服务检索内容。
CN201580028398.2A 2014-05-30 2015-05-26 用于被代理通信的方法、装置、被代理设备和移动设备 Active CN106464729B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911115836.5A CN110839078B (zh) 2014-05-30 2015-05-26 代理推送

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462005325P 2014-05-30 2014-05-30
US62/005,325 2014-05-30
US14/475,060 US9654581B2 (en) 2014-05-30 2014-09-02 Proxied push
US14/475,060 2014-09-02
PCT/US2015/032477 WO2015183829A1 (en) 2014-05-30 2015-05-26 Proxied push

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201911115836.5A Division CN110839078B (zh) 2014-05-30 2015-05-26 代理推送

Publications (2)

Publication Number Publication Date
CN106464729A true CN106464729A (zh) 2017-02-22
CN106464729B CN106464729B (zh) 2019-11-19

Family

ID=53442962

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201911115836.5A Active CN110839078B (zh) 2014-05-30 2015-05-26 代理推送
CN201580028398.2A Active CN106464729B (zh) 2014-05-30 2015-05-26 用于被代理通信的方法、装置、被代理设备和移动设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201911115836.5A Active CN110839078B (zh) 2014-05-30 2015-05-26 代理推送

Country Status (4)

Country Link
US (2) US9654581B2 (zh)
EP (1) EP3149919B1 (zh)
CN (2) CN110839078B (zh)
WO (1) WO2015183829A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110661821A (zh) * 2018-06-28 2020-01-07 山东北邮信息技术产业研究院有限公司 一种消息推送方法及消息推送装置
CN111797426A (zh) * 2019-04-05 2020-10-20 国际商业机器公司 去信任通知服务
CN115913579A (zh) * 2023-02-21 2023-04-04 飞天诚信科技股份有限公司 一种智能卡证书的注册应用方法及装置

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US20130086669A1 (en) 2011-09-29 2013-04-04 Oracle International Corporation Mobile application, single sign-on management
WO2014030199A1 (ja) * 2012-08-20 2014-02-27 富士通株式会社 シームレスアプリプッシュシステム及びその方法
US9794203B2 (en) 2012-12-07 2017-10-17 Linkedin Corporation Communication systems and methods
US9160791B2 (en) * 2013-08-13 2015-10-13 International Business Machines Corporation Managing connection failover in a load balancer
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US9826400B2 (en) * 2014-04-04 2017-11-21 Qualcomm Incorporated Method and apparatus that facilitates a wearable identity manager
US11017384B2 (en) * 2014-05-29 2021-05-25 Apple Inc. Apparatuses and methods for using a primary user device to provision credentials onto a secondary user device
US9473912B2 (en) 2014-05-30 2016-10-18 Apple Inc. SMS proxying
US9654581B2 (en) 2014-05-30 2017-05-16 Apple Inc. Proxied push
US20160021089A1 (en) * 2014-07-15 2016-01-21 Dropbox, Inc. Content delivery subscription
US10693946B2 (en) * 2014-09-16 2020-06-23 Amazon Technologies, Inc. Instance backed mobile devices
US10084865B2 (en) * 2015-02-26 2018-09-25 Urban Airship, Inc. Mobile event notifications
US10200486B2 (en) 2015-02-26 2019-02-05 Urban Airship, Inc. Mobile event notifications for network enabled objects
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US10977128B1 (en) 2015-06-16 2021-04-13 Amazon Technologies, Inc. Adaptive data loss mitigation for redundancy coding systems
US11061969B1 (en) 2015-06-29 2021-07-13 Amazon Technologies, Inc. Instance backed mobile devices with multiple instances
US9690622B1 (en) 2015-08-24 2017-06-27 Amazon Technologies, Inc. Stateless instance backed mobile devices
US10911404B1 (en) 2015-08-24 2021-02-02 Amazon Technologies, Inc. Attribute based authorization
US11386060B1 (en) 2015-09-23 2022-07-12 Amazon Technologies, Inc. Techniques for verifiably processing data in distributed computing systems
US9445270B1 (en) * 2015-12-04 2016-09-13 Samsara Authentication of a gateway device in a sensor network
US10642813B1 (en) 2015-12-14 2020-05-05 Amazon Technologies, Inc. Techniques and systems for storage and processing of operational data
US10964432B2 (en) * 2016-01-08 2021-03-30 Universal Research Solutions, Llc Processing of portable device data
CN105721162B (zh) * 2016-01-30 2019-03-05 飞天诚信科技股份有限公司 向应用程序中自动导入数字证书的方法及装置
CN105827706B (zh) * 2016-03-24 2020-11-20 深圳十方融海科技有限公司 消息推送装置及方法
US10061668B1 (en) 2016-03-28 2018-08-28 Amazon Technologies, Inc. Local storage clustering for redundancy coded data storage system
US10678664B1 (en) 2016-03-28 2020-06-09 Amazon Technologies, Inc. Hybridized storage operation for redundancy coded data storage systems
WO2017167273A1 (zh) * 2016-04-01 2017-10-05 腾讯科技(深圳)有限公司 业务处理方法和装置
US11823161B2 (en) * 2016-04-13 2023-11-21 Mastercard International Incorporated System and method for peer-to-peer assistance in provisioning payment tokens to mobile devices
US10064025B2 (en) 2016-05-17 2018-08-28 Google Llc Offline peer-assisted notification delivery
US10248452B2 (en) * 2016-05-20 2019-04-02 Microsoft Technology Licensing, Llc Interaction framework for executing user instructions with online services
US10171605B2 (en) 2016-07-15 2019-01-01 Apple Inc. Dual channel delivery
CN106254439A (zh) * 2016-07-29 2016-12-21 努比亚技术有限公司 一种推送方法、装置以及一种移动设备管理系统
US11137980B1 (en) 2016-09-27 2021-10-05 Amazon Technologies, Inc. Monotonic time-based data storage
US11281624B1 (en) 2016-09-28 2022-03-22 Amazon Technologies, Inc. Client-based batching of data payload
US10810157B1 (en) 2016-09-28 2020-10-20 Amazon Technologies, Inc. Command aggregation for data storage operations
US11204895B1 (en) 2016-09-28 2021-12-21 Amazon Technologies, Inc. Data payload clustering for data storage systems
EP3497950B1 (en) * 2016-11-21 2024-03-20 Hewlett-Packard Development Company, L.P. Presence identification
US11269888B1 (en) 2016-11-28 2022-03-08 Amazon Technologies, Inc. Archival data storage for structured data
US11025596B1 (en) * 2017-03-02 2021-06-01 Apple Inc. Cloud messaging system
US11190374B2 (en) 2017-08-28 2021-11-30 Bright Data Ltd. System and method for improving content fetching by selecting tunnel devices
EP3770773B1 (en) * 2017-08-28 2024-01-24 Bright Data Ltd. Method for improving content fetching by selecting tunnel devices
US10791120B2 (en) * 2017-08-30 2020-09-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. System and method for providing access to secured data via a push notification
US10693984B2 (en) * 2017-11-17 2020-06-23 International Business Machines Corporation Automated mobile device notification routing
CN109922101B (zh) * 2017-12-12 2023-08-15 三六零科技集团有限公司 一种在移动终端中实现特定业务的方法、装置和服务器
US10674318B2 (en) * 2018-02-26 2020-06-02 Exponential Innovative Technology & Gaming Company, Llc Systems and methods for location tracking and monitoring within a secured area
CN109599943B (zh) * 2018-11-28 2021-02-19 广东电网有限责任公司 基于ad域的电力监控系统加固方法、装置以及设备
EP4177771A1 (en) 2019-02-25 2023-05-10 Bright Data Ltd. System and method for url fetching retry mechanism
CN110022352B (zh) * 2019-02-28 2022-02-22 福建天泉教育科技有限公司 一种消息推送的应答方法及终端
US11411922B2 (en) 2019-04-02 2022-08-09 Bright Data Ltd. System and method for managing non-direct URL fetching service
WO2021026166A1 (en) 2019-08-06 2021-02-11 Urban Airship, Inc. Cross-channel orchestration of messages
US11258782B2 (en) * 2020-01-07 2022-02-22 Vmware, Inc. Peer-to-peer notification system
US11012399B1 (en) * 2020-01-30 2021-05-18 Blackberry Limited Partial message delivery and status notification in an end-to-end secure messaging context
WO2022086543A1 (en) * 2020-10-23 2022-04-28 Hewlett-Packard Development Company, L.P. Location based network information
US20220245747A1 (en) * 2021-01-29 2022-08-04 Techjutsu Inc. System and method for caller verification
US11956199B2 (en) 2021-07-26 2024-04-09 Airship Group, Inc. Software development kit enabled cross-channel two-way software application messaging
CN115297446B (zh) * 2022-06-28 2023-06-27 上海淇玥信息技术有限公司 短信服务接入优化处理方法、系统和计算机设备
US11652890B1 (en) 2022-07-13 2023-05-16 Oxylabs, Uab Methods and systems to maintain multiple persistent channels between proxy servers
US11709660B1 (en) 2022-10-12 2023-07-25 Stodge Inc. Integrated third-party application builder trigger for message flow

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1512728A (zh) * 2002-12-30 2004-07-14 ض� 用于在协作设备和设备信道间分配通知的方法和装置
US20090158397A1 (en) * 2007-12-17 2009-06-18 Microsoft Corporation Secure Push and Status Communication between Client and Server
US20090252072A1 (en) * 2008-04-08 2009-10-08 Telefonaktiebolaget Lm Ericsson (Publ) Method and Apparatus for Maintaining Long-Lived Connections Between a Mobile Client and a Server
CN103188653A (zh) * 2011-12-27 2013-07-03 华为终端有限公司 接收数据的方法、发送数据的方法、移动终端和服务器
GB2503077A (en) * 2012-04-09 2013-12-18 Seven Networks Inc Management of a network connection without heartbeat messages

Family Cites Families (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1295368A (en) 1918-03-05 1919-02-25 Robert G Pilkington Sheet-metal construction.
US2671522A (en) 1950-03-31 1954-03-09 Bourgeois Charles Sound-absorbing panel
US3140564A (en) 1961-02-20 1964-07-14 Mohasco Ind Inc Sound insulating apparatus having movable partition
US3266722A (en) 1965-04-06 1966-08-16 Charles E W Hobbis Guard band indicator
US3481427A (en) 1968-11-29 1969-12-02 Mc Donnell Douglas Corp Acoustical panel structure
US3612305A (en) 1969-06-16 1971-10-12 Alvin Wasserman Loading dock structure and small goods handling system
US3934382A (en) 1974-02-27 1976-01-27 Gartung Clifford W Modular sound-absorbing screens
US3963094A (en) 1974-07-11 1976-06-15 Donley, Miller & Nowikas, Inc. Muffler structures
US4090335A (en) 1977-09-14 1978-05-23 Frank Curatolo Partition panel for subdividing a room area
US4272934A (en) 1977-10-28 1981-06-16 The Clear Corporation Panel structure for blocking windows
US4423574A (en) 1980-10-20 1984-01-03 Pierre Jacquilyn L Insulating panel for thermal openings
US4391073A (en) 1980-12-12 1983-07-05 Rosemount Office Systems, Inc. Movable panel assembly
CA1186468A (en) 1982-08-11 1985-05-07 Frank Stronach Wall panel assemblies
US4702046A (en) 1985-11-08 1987-10-27 General Communications, Inc. Acoustical wall panel
US5576680A (en) 1994-03-01 1996-11-19 Amer-Soi Structure and fabrication process of inductors on semiconductor chip
US5579622A (en) 1994-04-22 1996-12-03 Banks Lumber Co., Inc. Floor frame assembly
US5656914A (en) 1995-10-31 1997-08-12 Motorola, Inc. Battery charger having pocket with multiple sets of charging contacts
JP3887828B2 (ja) 1997-11-20 2007-02-28 セイコーエプソン株式会社 電子機器
EP1212885B1 (en) 2000-06-21 2009-04-29 Seiko Epson Corporation Mobile telephone and radio communication device cooperatively processing incoming call
US6698543B2 (en) 2001-07-03 2004-03-02 Golterman & Sabo, Inc. Acoustical wall panels
US20030045311A1 (en) 2001-08-30 2003-03-06 Tapani Larikka Message transfer from a source device via a mobile terminal device to a third device and data synchronization between terminal devices
US7130664B1 (en) 2003-06-12 2006-10-31 Williams Daniel P User-based signal indicator for telecommunications device and method of remotely notifying a user of an incoming communications signal incorporating the same
US7421088B2 (en) 2003-08-28 2008-09-02 Motorola, Inc. Multifunction transducer
US8091605B1 (en) 2006-01-25 2012-01-10 Jim Melhart Piano and Organ Company Acoustic panel assembly
US7957541B2 (en) 2006-01-27 2011-06-07 Sony Ericsson Mobile Communications Ab Acoustic compliance adjuster
US8045236B2 (en) * 2006-03-29 2011-10-25 Research In Motion Limited Apparatus, and associated method, for facilitating background processing of push content
EP2016707A4 (en) * 2006-05-05 2013-05-29 Ericsson Telefon Ab L M PROCEDURE AND ARRANGEMENT FOR ADMINISTERING VIRTUAL INTERPRETATIONS
US8068860B1 (en) 2006-08-25 2011-11-29 At&T Mobility Ii Llc Short message service (SMS) protocol gateway
US7728551B2 (en) 2007-04-26 2010-06-01 Visteon Global Technologies, Inc. Wireless power transfer system
US8705722B2 (en) 2007-05-22 2014-04-22 Verizon Patent And Licensing Inc. Automatic routing of communications to user endpoints
US8787880B2 (en) 2007-06-14 2014-07-22 Omnitracs, Llc Wireless device caching data proxy
CN101388782B (zh) * 2007-09-13 2013-03-27 中国移动通信集团公司 信息推送方法及系统
JP2009164783A (ja) 2007-12-28 2009-07-23 Casio Comput Co Ltd 携帯電話システムおよび腕装着型端末
JP5109655B2 (ja) 2007-12-28 2012-12-26 カシオ計算機株式会社 携帯電話システムおよび腕装着型端末
US8364123B2 (en) 2009-02-25 2013-01-29 Apple Inc. Managing notification messages
US8295864B2 (en) 2008-10-10 2012-10-23 Samaha Tareq A Sending and receiving text-based messages over a mobile phone via a network connected computer
US8242741B2 (en) 2008-12-18 2012-08-14 Motorola Mobility Llc Systems, apparatus and devices for wireless charging of electronic devices
US20100227605A1 (en) * 2009-03-09 2010-09-09 Aymon Patrick Fournier Control Of A Remote Mobile Device
US8064896B2 (en) 2009-03-09 2011-11-22 Apple Inc. Push notification service
US8587516B2 (en) 2009-04-24 2013-11-19 Baxter International Inc. User interface powered via an inductive coupling
JP5187764B2 (ja) 2009-05-18 2013-04-24 Necカシオモバイルコミュニケーションズ株式会社 通信端末装置及びプログラム
CN102124764B (zh) 2009-05-22 2014-01-08 华为技术有限公司 信息推送的方法、装置和系统以及获取信息的方法和装置
US20110087258A1 (en) 2009-10-14 2011-04-14 Sluss Robert K Cannulated arthroscopic knife
US20110145063A1 (en) * 2009-12-15 2011-06-16 Microsoft Corporation Targeting applications with advertisements
US8832802B2 (en) 2010-02-01 2014-09-09 Protextion Technologies, Llc System for distribution permissions for network communications
KR20120119927A (ko) 2010-05-11 2012-11-01 삼성전자주식회사 무선 충전이 가능한 3d 안경 및 무선전력전송 시스템
KR20120020661A (ko) 2010-08-30 2012-03-08 엘지전자 주식회사 이동단말기 및 그의 무선 충전 방법
US8676155B2 (en) 2010-09-24 2014-03-18 At&T Intellectual Property I, L.P. Conditional message forwarding functions
US8787006B2 (en) 2011-01-31 2014-07-22 Apple Inc. Wrist-worn electronic device and methods therefor
US20120302268A1 (en) 2011-04-19 2012-11-29 Paul Casto Short message service center (SMSC) message distributor
US8526455B2 (en) 2011-06-03 2013-09-03 Apple Inc. System and method for two way push notifications
JP5573793B2 (ja) 2011-07-26 2014-08-20 コニカミノルタ株式会社 画像処理装置、制御方法、および制御プログラム
US9631950B2 (en) 2011-08-05 2017-04-25 Evatran Group, Inc. Method and apparatus for aligning a vehicle with an inductive charging system
US8907752B2 (en) 2011-09-12 2014-12-09 Justin Richard Wodrich Integrated inductive charging in protective cover
US9176536B2 (en) 2011-09-30 2015-11-03 Apple, Inc. Wireless display for electronic devices
US8732810B2 (en) * 2011-10-27 2014-05-20 Cellco Partnership IP push platform and connection protocol in a push notification framework
WO2013076533A1 (en) 2011-11-22 2013-05-30 Sony Ericsson Mobile Communications Ab Electronic device with message handling functions
US20130282838A1 (en) 2012-04-20 2013-10-24 Telefonaktiebolaget L M Ericsson (Publ) Group sms messaging
CN104350687A (zh) 2012-05-09 2015-02-11 英派尔科技开发有限公司 用于网络装置的输出的数字中继
US9713174B2 (en) * 2012-06-11 2017-07-18 Microsoft Technology Licensing, Llc Connection tethering and service remoting
US8948091B2 (en) * 2012-07-10 2015-02-03 Empire Technology Development Llc Push management scheme
US9142999B2 (en) 2012-07-13 2015-09-22 Qualcomm Incorporated Systems, methods, and apparatus for small device wireless charging modes
EP2880871A1 (en) 2012-07-30 2015-06-10 Treefrog Developments, Inc. Weatherproof loudspeaker and speaker assembly
US20140045547A1 (en) 2012-08-10 2014-02-13 Silverplus, Inc. Wearable Communication Device and User Interface
US20140080411A1 (en) 2012-09-14 2014-03-20 Anand S. Konanur Integration of a near field communication coil antenna behind a screen display for near field coupling
US8964947B1 (en) * 2013-03-11 2015-02-24 Amazon Technologies, Inc. Approaches for sharing data between electronic devices
US9037145B2 (en) 2013-06-28 2015-05-19 Motorola Solutions, Inc. Method and apparatus for maintaining priority and quality of service across multi-user devices
US9699625B2 (en) 2013-07-18 2017-07-04 International Business Machines Corporation Push notification middleware
US9736294B2 (en) 2013-10-07 2017-08-15 Nokia Technologies Oy Method and apparatus for providing coordinated operation of multiple mobile communication devices
US9716401B2 (en) 2014-01-06 2017-07-25 Otter Products, Llc Recharegable battery pack
US10447079B2 (en) 2014-04-18 2019-10-15 Apple Inc. Multi-coil induction
US20150311740A1 (en) 2014-04-28 2015-10-29 Apple Inc. Encapsulated inductive charging coil
US9654581B2 (en) 2014-05-30 2017-05-16 Apple Inc. Proxied push
US9473912B2 (en) 2014-05-30 2016-10-18 Apple Inc. SMS proxying
US9473233B2 (en) 2014-06-18 2016-10-18 Samsung Electronics Co., Ltd. Method and apparatus for transmitting data using relay device
EP3410253A1 (en) 2014-07-31 2018-12-05 Samsung Electronics Co., Ltd. Mobile communication device using a plurality of wearable devices in parallel
US20170237986A1 (en) 2016-02-11 2017-08-17 Samsung Electronics Co., Ltd. Video encoding method and electronic device adapted thereto

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1512728A (zh) * 2002-12-30 2004-07-14 ض� 用于在协作设备和设备信道间分配通知的方法和装置
US20090158397A1 (en) * 2007-12-17 2009-06-18 Microsoft Corporation Secure Push and Status Communication between Client and Server
US20090252072A1 (en) * 2008-04-08 2009-10-08 Telefonaktiebolaget Lm Ericsson (Publ) Method and Apparatus for Maintaining Long-Lived Connections Between a Mobile Client and a Server
CN103188653A (zh) * 2011-12-27 2013-07-03 华为终端有限公司 接收数据的方法、发送数据的方法、移动终端和服务器
GB2503077A (en) * 2012-04-09 2013-12-18 Seven Networks Inc Management of a network connection without heartbeat messages

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110661821A (zh) * 2018-06-28 2020-01-07 山东北邮信息技术产业研究院有限公司 一种消息推送方法及消息推送装置
CN111797426A (zh) * 2019-04-05 2020-10-20 国际商业机器公司 去信任通知服务
CN111797426B (zh) * 2019-04-05 2024-02-02 国际商业机器公司 一种用于去信任通知服务的方法和系统
CN115913579A (zh) * 2023-02-21 2023-04-04 飞天诚信科技股份有限公司 一种智能卡证书的注册应用方法及装置
CN115913579B (zh) * 2023-02-21 2023-06-13 飞天诚信科技股份有限公司 一种智能卡证书的注册应用方法及装置

Also Published As

Publication number Publication date
WO2015183829A1 (en) 2015-12-03
CN110839078B (zh) 2021-01-15
US10542109B2 (en) 2020-01-21
CN106464729B (zh) 2019-11-19
US20150350362A1 (en) 2015-12-03
US20180013851A1 (en) 2018-01-11
CN110839078A (zh) 2020-02-25
US9654581B2 (en) 2017-05-16
EP3149919B1 (en) 2019-12-18
EP3149919A1 (en) 2017-04-05

Similar Documents

Publication Publication Date Title
CN106464729B (zh) 用于被代理通信的方法、装置、被代理设备和移动设备
US10499205B2 (en) SMS proxying
US11088807B2 (en) Application-level acknowledgements
US10887400B2 (en) Answering a call with client through a host
EP3150022B1 (en) Client applications communicating via a user tunnel
KR101911653B1 (ko) 모바일 디바이스들에 대한 네트워크 대역폭 공유
US10064026B2 (en) Unified message delivery between portable electronic devices
TWI501610B (zh) 用以提供分享服務之方法及裝置
US9602661B2 (en) Answer and hold with client and host
US9148460B1 (en) Push notifications for enterprise applications
US11824854B2 (en) Communication system and computer readable storage medium
US9755788B2 (en) Messages with attenuating retransmit importance

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
GR01 Patent grant