WEB应用之间的消息发送.pdf

上传人:bo****18 文档编号:6183036 上传时间:2019-05-18 格式:PDF 页数:29 大小:2.05MB
返回 下载 相关 举报
摘要
申请专利号:

CN201380048899.8

申请日:

2013.07.23

公开号:

CN104662516A

公开日:

2015.05.27

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||著录事项变更IPC(主分类):G06F 9/46变更事项:申请人变更前:谷歌公司变更后:谷歌有限责任公司变更事项:地址变更前:美国加利福尼亚州变更后:美国加利福尼亚州|||实质审查的生效IPC(主分类):G06F 9/46申请日:20130723|||公开

IPC分类号:

G06F9/46

主分类号:

G06F9/46

申请人:

谷歌公司

发明人:

穆尼亚尔·多希

地址:

美国加利福尼亚州

优先权:

61/676,740 2012.07.27 US; 13/662,249 2012.10.26 US

专利代理机构:

中原信达知识产权代理有限责任公司11219

代理人:

周亚荣; 安翔

PDF下载: PDF下载
内容摘要

所公开的主题涉及一种用于在应用之间进行消息发送的系统,该系统具有一个或多个处理器以及包括指令的存储器,当被该一个或多个处理器执行时,该指令使得该一个或多个处理器执行操作,该操作包括:接收包括与web应用相关联的标识符的消息,该web应用具有接收与在数据网络上进行操作的发布方相关联的所选择的事件的订用。该操作还包括从该发布方接收至少一个所选择的事件的事件通知。该操作还包括确定该web应用是否被订用以接收该事件通知。该操作还包括在该web应用被订用以接收事件通知的情况下向该web应用传送该事件通知的指示。

权利要求书

权利要求书
1.  一种用于经由web服务器在应用之间进行消息发送的计算机实施的方法,所述方法包括:
从web应用接收包括与所述web应用相关联的标识符的消息,所述web应用具有接收与在数据网络上进行操作的发布方相关联的所选择的事件的订用;
从所述发布方接收至少一个所选择的事件的事件通知;
确定所述web应用是否被订用以接收所述事件通知;以及
在所述web应用被订用以接收所述事件通知的情况下向所述web应用传送所述事件通知的指示。

2.  根据权利要求1所述的方法,其中所述标识符是与所述web应用所进行的注册相关的注册标识符或者是与承载关联于所述web应用的通信的信道相关的信道标识符。

3.  根据权利要求1所述的方法,其中所述确定包括:检测所述web应用是否处于休眠状态或非加载状态。

4.  根据权利要求3所述的方法,其中所述传送进一步包括:在接收到所述事件通知时向所述web应用传送唤醒通知,使得所述web应用从休眠状态变换为唤醒状态。

5.  根据权利要求3所述的方法,其中所述传送进一步包括:在接收到所述事件通知时向所述web应用传送唤醒通知,使得所述web应用从非加载状态变换为加载状态。

6.  根据权利要求1所述的方法,进一步包括:经由用户界面接收用户同意以授权所述web应用接收与用户所定义的内容相关的通知。

7.  根据权利要求1所述的方法,进一步包括:对所述web应用进行认证以授权所述web应用有权接收所述事件通知。

8.  根据权利要求1所述的方法,进一步包括:经由所述数据网络检测与所述发布方相关联的事件,所述事件在所述事件通知内被识别。

9.  根据权利要求1所述的方法,其中所述确定包括:
对所述事件通知进行解析以获得与所述web应用相关联的事件描述符;
将所述事件描述符的至少一部分与关联于所述web应用的扩展标识符进行比较。

10.  根据权利要求1所述的方法,其中所述确定包括:
经由用户界面获得用户偏好设置;
将所述用户偏好设置与所述事件通知的至少一部分进行比较。

11.  根据权利要求1所述的方法,进一步包括:
响应于获得所述事件通知而生成指示。

12.  根据权利要求1所述的方法,其中所述事件通知经由广播、组播或单播传输进行传送。

13.  根据权利要求1所述的方法,进一步包括:
调用应用编程接口(API)以向所述web应用推送所述事件通知。

14.  根据权利要求1所述的方法,其中所述事件通知包括与所选择的事件之一相关联的事件标识符。

15.  根据权利要求1所述的方法,进一步包括:
将所接收的注册标识符连同与所述web应用相关联的用户简档一 起存储在数据结构中;并且
将所存储的注册标识符与所述事件标识符进行比较以确定匹配。

16.  根据权利要求1所述的方法,进一步包括:
经由HTTP端点监听与所述发布方相关联的所选择的事件;
在所述HTTP端点检测与所述发布方相关联的至少一个所选择的事件。

17.  一种用于在应用之间进行消息发送的系统,所述系统包括:
一个或多个处理器;以及
包括指令的存储器,当被所述一个或多个处理器执行时,所述指令使得所述一个或多个处理器促成以下步骤:
接收包括与订用方相关联的标识符的消息,所述订用方具有接收与在数据网络上进行操作的发布方相关联的所选择的事件的订用;
从所述发布方接收至少一个所选择的事件的事件通知;
确定所述订用方是否被订用以接收所述事件通知;以及
在所述订用方被订用以接收事件通知的情况下向所述订用方传送所述事件通知的指示。

18.  一种包含指令的非瞬时机器可读介质,当被机器所执行时,所述指令允许所述机器执行一种用于在应用之间进行消息发送的方法,所述方法包括:
接收包括与订用方相关联的标识符的消息,所述订用方具有接收与在数据网络上进行操作的发布方相关联的所选择的事件的订用;
从所述发布方接收至少一个所选择的事件的事件通知;
确定所述订用方是否被订用以接收所述事件通知;以及
在所述订用方被订用以接收事件通知的情况下向所述订用方传送所述事件通知的指示。

19.  一种用于在应用之间进行消息发送的设备,所述方法包括:
用于接收包括与订用方相关联的标识符的消息的装置,所述订用方具有接收与在数据网络上进行操作的发布方相关联的所选择的事件的订用;
用于从所述发布方接收至少一个所选择的事件的事件通知的装置;
用于确定所述订用方是否被订用以接收所述事件通知的装置;以及
用于在所述订用方被订用以接收事件通知的情况下向所述订用方传送所述事件通知的指示的装置。

20.  一种用于在应用之间进行消息发送的计算机实施的方法,所述方法包括:
向web服务器传送包括与web应用相关联的标识符的消息,所述web应用被订用以接收与在数据网络上进行操作的发布方相关联的所选择的事件;
基于对所选择的事件的一个或多个订用从所述web服务器接收与所述发布方相关联的事件通知的指示;
确定一个或多个应用是否被订用以接收所述事件通知;以及
在所述一个或多个应用被订用以接收所述事件通知的情况下向所述一个或多个应用提供所述事件通知的所述指示。

21.  根据权利要求20所述的方法,进一步包括:
接收注册所述web应用以接收与所述发布方相关联的所选择的事件的请求;
调用应用编程接口(API)以获得所述web应用的信道标识符;以及
将所获得的信道标识符存储在与所述web应用相关联的用户简档中。

22.  根据权利要求20所述的方法,进一步包括:
执行与显示用于接收用户输入的弹出窗口相关的功能;并且
在所述API被调用时经由所述弹出窗口请求与所述web应用相关联的用户证书。

23.  根据权利要求20所述的方法,进一步包括:
确定所述web应用是否被授权以接收所述事件通知。

24.  根据权利要求20所述的方法,进一步包括:
在发生与所述发布方相关联的事件时,如果所述事件是所述web应用所注册的事件集合中的一个,则加载与所述web应用相关联的事件页面;并且
使用所述事件页面执行与显示具有所述事件通知的弹出警示相关的功能。

25.  根据权利要求24所述的方法,其中所述事件页面提供了到具有所述事件通知的功能的回调以便向所述web应用显示所述事件通知。

26.  根据权利要求20所述的方法,其中所述事件通知被指向特定的用户,使得与该用户相关联的一个或多个应用被授权以接收所述事件通知。

27.  根据权利要求20所述的方法,其中接收所述指示包括:接收唤醒通知以请求所述一个或多个应用从休眠状态变换为唤醒状态。

28.  根据权利要求20所述的方法,其中接收所述指示包括:接收唤醒通知以请求所述一个或多个应用从非加载状态变换为加载状态。

29.  一种用于在应用之间进行消息发送的系统,所述系统包括:
一个或多个处理器;以及
包括指令的存储器,当被所述一个或多个处理器执行时,所述指令使得所述一个或多个处理器促成以下步骤:
传送包括与web应用相关联的标识符的消息,所述web应用被订用以接收与在数据网络上进行操作的发布方相关联的所选择的事件;
基于对所选择的事件的一个或多个订用接收与所述发布方相关联的事件通知的指示;
确定一个或多个应用是否被订用以接收所述事件通知;以及
在所述一个或多个应用被订用以接收所述事件通知的情况下向所述一个或多个应用提供所述事件通知的所述指示。

30.  一种包含指令的非瞬时机器可读介质,当被机器执行时,所述指令允许所述机器执行一种用于在应用之间进行消息发送的方法,所述方法包括:
传送包括与应用相关联的标识符的消息,所述应用被订用以接收与在数据网络上进行操作的发布方相关联的所选择的事件;
基于对所选择的事件的一个或多个订用接收与所述发布方相关联的事件通知的指示;
确定一个或多个应用是否被订用以接收所述事件通知;以及
在所述一个或多个应用被订用以接收所述事件通知的情况下向所述一个或多个应用提供所述事件通知的所述指示。

31.  一种用于在应用之间进行消息发送的设备,所述设备包括:
用于传送包括与应用相关联的标识符的消息的装置,所述应用被订用以接收与在数据网络上进行操作的发布方相关联的所选择的事件;
用于基于对所选择的事件的一个或多个订用接收与所述发布方相关联的事件通知的指示的装置;
用于确定一个或多个应用是否被订用以接收所述事件通知的装置;以及
用于在所述一个或多个应用被订用以接收所述事件通知的情况下向所述一个或多个应用提供所述事件通知的所述指示的装置。

32.  一种用于在应用之间进行消息发送的系统,所述系统包括:
服务器组件;以及
具有到所述服务器组件的接口的客户端组件,所述服务器组件被配置为:
从所述客户端组件接收包括与订用方相关联的标识符的消息,所述订用方具有接收与在数据网络上进行操作的发布方相关联的所选择的事件的订用,
从所述发布方接收至少一个所选择的事件的事件通知,
确定所述订用方是否被订用以接收所述事件通知,以及
在所述订用方被订用以接收事件通知的情况下向所述客户端组件传送所述事件通知的指示;并且
所述客户端组件被配置为:
向所述服务器组件传送包括与应用相关联的标识符的消息,所述应用被订用以接收与在数据网络上进行操作的发布方相关联的所选择的事件,
基于对所选择的事件的一个或多个订用从所述服务器组件接收与所述发布方相关联的事件通知的指示,
确定一个或多个应用是否被订用以接收所述事件通知,以及
在所述一个或多个应用被订用以接收所述事件通知的情况下向所述一个或多个应用提供所述事件通知的所述指示。

说明书

说明书WEB应用之间的消息发送
相关申请的交叉引用
本申请要求于2012年7月27日提交的题为“MESSAGING BETWEEN WEB APPLICATIONS”美国临时申请号61/676,740的权益,其出于所有目的通过引用全文结合于此。
技术领域
本公开总体上涉及通知系统,并且尤其但并非排他地涉及用于在web应用之间进行消息发送的推送通知系统。
背景技术
应用的服务网站通常向应用的用户发送通知以向用户通知关于可用于该应用的可能更新。然而,web通知通常需要客户端在网络上检索所更新的信息。也就是说,web应用通常采用轮询机制以便使用超文本传输协议(HTTP)特征(例如,异步JavaScript和XML(AJAX)HTTP请求)从服务器检索新的数据,诸如新的电子邮件消息。
发明内容
所公开的主题涉及一种用于在应用之间进行消息发送的计算机实施的方法,该方法包括接收包括与订用方(subscriber)相关联的标识符的消息,该订用方具有接收与在数据网络上进行操作的发布方相关联的所选择的事件的订用(subscription)。该方法还包括从该发布方接收至少一个所选择的事件的事件通知。该方法还包括确定该订用方是否被订用以接收该事件通知。该方法还包括在该订用方被订用以接收事件通知的情况下向该订用方传送该事件通知的指示。
所公开的主题涉及一种用于在应用之间进行消息发送的系统,该系统具有一个或多个处理器以及包括指令的存储器,当被该一个或多个处理器执行时,该指令使得该一个或多个处理器执行操作,该操作包括:接收包括与订用方web应用相关联的标识符的消息,该订用方web应用具有接收与在数据网络上进行操作的发布方相关联的所选择的事件的订用。该步骤还包括从该发布方接收至少一个所选择的事件的事件通知。该步骤还包括确定该订用方web应用是否被订用以接收该事件通知。该步骤进一步包括在该订用方web应用被订用以接收事件通知的情况下向该订用方web应用传送该事件通知的指示。
所公开的主题还涉及一种体现指令的非瞬时机器可读介质,当被机器所执行时,该指令允许该机器执行一种用于在应用之间进行消息发送的方法,该方法包括接收包括与订用方相关联的标识符的消息,该订用方具有接收与在数据网络上进行操作的发布方相关联的所选择的事件的订用。该方法还包括从该发布方接收至少一个所选择的事件的事件通知。该方法还包括确定该订用方是否被订用以接收该事件通知。该方法还包括在该订用方被订用以接收事件通知的情况下向该订用方传送该事件通知的指示。
所公开的主题涉及一种用于在应用之间进行消息发送的设备,该设备包括用于接收包括与订用方相关联的标识符的消息的装置,该订用方具有接收与在数据网络上进行操作的发布方相关联的所选择的事件的订用。该设备还包括用于从该发布方接收至少一个所选择的事件的事件通知的装置。该设备还包括用于确定该订用方是否被订用以接收该事件通知的装置。该设备进一步包括用于在该订用方被订用以接收事件通知的情况下向该订用方传送该事件通知的指示的装置。
所公开的主题还涉及一种用于在应用之间进行消息发送的计算机实施的方法,该方法包括传送包括与订用方web应用相关联的标识符的消息,该订用方web应用被订用以接收与在数据网络上进行操作的发布 方相关联的所选择的事件。该方法还包括基于对所选择的事件的一个或多个订用接收与该发布方相关联的事件通知的指示。该方法还包括确定一个或多个应用是否被订用以接收事件通知。该方法还包括在所述一个或多个应用被订用以接收该事件通知的情况下向所述一个或多个应用提供该事件通知的指示。
所公开的主题涉及一种用于在应用之间进行消息发送的系统,该系统具有一个或多个处理器以及包括指令的存储器,当被该一个或多个处理器执行时,该指令使得该一个或多个处理器执行操作,该操作包括:传送包括与应用相关联的标识符的消息,该应用被订用以接收与在数据网络上进行操作的发布方相关联的所选择的事件。该步骤还包括基于对所选择的事件的一个或多个订用接收与该发布方相关联的事件通知的指示。该步骤还包括确定一个或多个应用是否被订用以接收事件通知。该步骤进一步包括在所述一个或多个应用被订用以接收该事件通知的情况下向所述一个或多个应用提供该事件通知的指示。
所公开的主题还涉及一种体现指令的非瞬时机器可读介质,当被机器所执行时,该指令允许该机器执行一种用于在应用之间进行消息发送的方法,该方法包括传送包括与应用相关联的标识符的消息,该应用被订用以接收与在数据网络上进行操作的发布方相关联的所选择的事件。该方法还包括基于对所选择的事件的一个或多个订用接收与该发布方相关联的事件通知的指示。该方法还包括确定一个或多个应用是否被订用以接收事件通知。该方法还包括在所述一个或多个应用被订用以接收该事件通知的情况下向所述一个或多个应用提供该事件通知的指示。
所公开的主题涉及一种用于在应用之间进行消息发送的设备,该设备包括用于传送包括与应用相关联的标识符的消息的装置,该应用被订用以接收与在数据网络上进行操作的发布方相关联的所选择的事件。该设备还包括用于基于对所选择的事件的一个或多个订用接收与 该发布方相关联的事件通知的指示的装置。该设备还包括用于确定一个或多个应用是否被订用以接收事件通知的装置。该设备进一步包括用于在所述一个或多个应用被订用以接收该事件通知的情况下向所述一个或多个应用提供该事件通知的指示的装置。
所公开的主题涉及一种用于在应用之间进行消息发送的系统,该系统包括服务器组件;和具有到该服务器组件的接口的客户端组件。该服务器组件被配置为从该客户端组件接收包括与订用方相关联的标识符的消息,该订用方具有接收与在数据网络上进行操作的发布方相关联的所选择的事件的订用。该服务器组件还被配置为从该发布方接收至少一个所选择的事件的事件通知。该服务器组件还被配置为确定该订用方是否被订用以接收该事件通知。该服务器组件还被配置为在该订用方被订用以接收事件通知的情况下向该客户端组件传送该事件通知的指示。该客户端组件被配置为向该服务器组件传送包括与应用相关联的标识符的消息,该应用被订用以接收与在数据网络上进行操作的发布方相关联的所选择的事件。该客户端组件还被配置为基于对所选择的事件的一个或多个订用从所述服务器组件接收与该发布方相关联的事件通知的指示。该客户端组件还被配置为确定一个或多个应用是否被订用以接收事件通知。该客户端组件还被配置为在所述一个或多个应用被订用以接收该事件通知的情况下向所述一个或多个应用提供该事件通知的指示。
所要理解的是,主题公开的其它配置将通过以下具体实施方式而对于本领域技术人员成为显而易见的,其中该主题公开的各种配置通过图示被示出并描述。如将会意识到的,该主题公开支持其它且不同的配置并且其若干细节能够在各个其它方面进行修改,所有这些都并不背离该主题公开的范围。因此,附图和具体实施方式在本质上要被视为是说明性而非限制性的。
附图说明
该主题公开的某些特征在所附权利要求中给出。然而,出于解释的目的,该主题公开的若干实施方式在以下附图中给出。
图1图示了根据一种或多种实施方式的用于在应用之间进行消息发送的示例流程图。
图2图示了图示出根据一种或多种实施方式的应用之间的示例消息发送的流程图。
图3图示了图示出根据一种或多种实施方式的应用之间的另一种示例消息发送的流程图。
图4图示了根据一种或多种实施方式的提供应用之间的消息发送的示例客户端-服务器网络环境。
图5图示了包括根据一种或多种实施方式的web浏览器的用户界面的显示器。
图6在概念上图示了该主题公开的一些实施方式可以利用其得以实施的电子系统。
具体实施方式
以下所给出的具体实施方式意在作为对主题公开的各种配置的描述而并非意在表示该主题公开可以在其中进行实践的仅有配置。附图被结合于此并且构成该具体实施方式的一部分。该详细描述出于提供对主题公开的全面理解的目的而包括具体细节。然而,对于本领域技术人员将会清楚并显而易见的是,该主题公开并不局限于这里所给出的具体细节并且可以在没有这些具体细节的情况下进行实践。在一些情况下,公知结构和组件以框图形式示出以免对主题公开的概念造成混淆。
web应用的服务网站通常向web应用的用户发送通知(例如,web通知)以向用户通知关于可用于该web应用的可能更新。然而,web通知通常需要客户端(例如,web应用)在网络上检索所更新的信息。也就是说,web应用通常采用轮询机制以便使用超文本传输协议(HTTP) 特征(例如,异步JavaScript和XML(AJAX)HTTP请求)从服务器检索新的数据,诸如新的电子邮件消息。推送通知机制通常会要求应用具有用户界面(UI)组件。在基于web的应用在数据网络上共享用户生成的内容越来越流行的情况下,常规的推送通知机制无法进行缩放以满足消费应用越来越高的要求。因此,期望以更为有效的方式对基于web的应用之间的典型推送通知系统进行提升。
该主题公开提供了一种促成web应用之间的web消息发送的系统,其中服务器组件能够在web(或互联网)上向其客户端组件推送消息(或至少数据)。该客户端组件执行注册流程,其中该客户端组件接收到注册标识符(或信道标识符)并且将该标识符发送至服务器组件以便连同与该客户端组件相关联的用户记录一起存储。该客户端组件调用应用编程接口(API)以获取当前登录到客户端组件或者与该客户端组件进行通信的本地应用的用户的信道标识符。客户端组件还能够将该信道标识符在本地连同用户记录一起存储。服务器组件将监听web上有关与发布实体相关联的事件的通知。服务器组件能够生成事件消息以向客户端组件通知所检测到的事件。服务器组件调用公用API以使得包含来自发布实体的事件通知的事件消息被推送(或发送)至客户端组件。此外,新事件的通知能够在新事件消息到达客户端组件时经由订用应用处的事件页面进行显示。
更具体地,该主题公开提供了web应用之间的消息发送。在一个方面,该服务器组件从客户端组件接收包括与订用方相关联的标识符,该订用方具有接收与在数据网络上进行操作的发布方相关联的所选择的事件的订用。当检测到与该发布方相关联的事件时,该服务器组件从该发布方接收订用方所订用以进行接收的至少一个所选择的事件的事件通知。该服务器组件随后在确定订用方被订用以接收该事件通知的情况下将该事件通知转发至客户端组件。该服务器组件还被配置为在该服务器组件检测到新的订用事件时唤醒在客户端侧运行的一个或多个应用。该服务器组件向客户端组件发送唤醒通知。来自服务器组 件的事件通知能够在其中所包含的内容可用于公众观看的情况下被广播至一个或多个客户端组件。可替换地,该事件通知可以是特定于用户的传输,而使得仅有授权客户端组件才能够从服务器组件接收该消息。该事件通知能够经由与意在接收订用事件的用户相关联的一个或多个应用处的事件页面进行显示。
Web应用和浏览器扩展
客户端设备所执行的web浏览器能够从远程服务器(例如,托管网站的服务器)接收代码(例如,HTML代码)并且能够为了客户端设备的用户的利益而在客户端设备上执行所接收代码。贯穿本文,术语web浏览器和浏览器应用可以互换地使用以表示相同内容。在各种实施方式中,web浏览器包括一个或多个web应用或者与之相关联。web应用能够针对用户的单项任务或多项任务进行配置。就此而言,web应用能够被配置为由web浏览器所执行或解释。作为比较,本机应用包括机器可执行代码并且被配置为直接由处理器执行或者经由客户端设备的操作系统执行,而web应用在不借助于web浏览器的情况下则无法在显示器上执行。这里,web应用能够在web浏览器内利用专用用户界面运行,并且与独立网站相比通常提供有所提升的功能。web应用的示例包括但并不局限于游戏、照片编辑器和视频播放器。
web应用、浏览器应用或所安装应用可以是指能够安装在浏览器应用之中的多种类型的应用。web应用可以是“托管应用”或“封装应用”。托管应用可以包括自身包括网页的网站的至少一部分,加上可能与该web应用或web应用的用户特别相关的一些元数据以允许该web应用针对该用户执行一些特定功能。封装应用可以被认为是其代码被捆绑的web应用,从而用户能够下载该web应用的全部内容以便由浏览器执行。封装web应用可以无需具有网络访问以针对用户执行其功能,而是相反地可以在并不访问网络的情况下由计算设备上的浏览器在本地成功执行。封装web应用可以选择使用扩展API,这允许封装应用改变浏览器表现或呈现的方式。
在各种实施方式中,web浏览器可以包括一个或多个浏览器扩展或者被配置为与它们进行交互。在该上下文中,“浏览器扩展”可以包括被封装或聚组在一起作为可定义整体并且被配置为针对web浏览器扩展功能的一个或多个网页。因此,扩展也向浏览器提供了额外的功能,但是一般不同于应用,用于扩展所提供的功能的用户界面组件很少或没有。相反,web扩展对浏览器以及其中所看到的网站进行了扩展。
在另一个示例中,web应用可以与后台要素相关联,该后台要素是在浏览器应用中无法看到的要素,其包括与浏览器应用中的web应用的一个或多个可见要素相关的指令。当事件触发时(例如,接收到新的消息),该后台要素在相关联的页面上执行该指令以执行与所安装的web应用的一个或多个可见要素相关的功能。
在一些实施方式中,后台要素被用来包括涉及与web应用或扩展应用或者安装在浏览器应用中的其它类型的应用的所声明关联的附加功能。例如,后台要素可以被用来提供通知,从后台中的服务器下载数据,向服务器上传数据,或者准备用户界面。
事件页面
“事件页面”是浏览器应用中的不可见web要素或网页,其当需要时被加载在浏览器应用中,并且其当空闲时不被加载。事件页面并不继续运行并且始终都执行代码。因此,事件页面与后台页面相比可以节省更多资源。事件页面还可以包括与所安装的web应用或与浏览器应用相关联的浏览器扩展或者与浏览器应用的用户账户的所声明关联。
因此,不同于即使在web应用、浏览器扩展和/或浏览器应用没有可见窗口时也继续运行并执行代码的后台页面,事件页面在web应用、浏览器扩展或浏览器应用没有可见窗口时可以不继续运行或执行代码。以这种方式,事件页面在与后台页面相关联的web应用、浏览器扩 展和/或浏览器应用被关闭时并不持久存在。因此,事件页面可以节省存储器。
然而,在一些实施方式中,事件页面即使在浏览器没有打开的标签或窗口时(诸如在与浏览器应用相关联的后台处理仍然运行时)也持久存在。在这样的实施方式中,如果在浏览器没有打开的标签或窗口但是与浏览器应用相关联的后台处理仍然运行的期间有事件发生,该事件页面仍然可以被加载以处理该事件。
推送通知
推送技术是一种其中针对给定事务的请求由发布方或中央服务器所发起的互联网通信的方式。这与拉取技术形成了对比,在拉取技术中,针对信息传输的请求由接收方或客户端所发起。超文本传输协议(HTTP)服务器推送(也被称作HTTP流传输)是一种从web服务器向web浏览器发送数据的方式。HTTP服务器推送可以通过若干种技术来实现。在一些情况下,web服务器在已经向客户端提供了响应数据之后并不终止连接。web服务器保持连接打开而使得如果接收到事件则其能够立即向一个或多个客户端进行发送。否则,数据将必须进行排队直至接收到客户端的下一次请求。推送通知可以使用持续开放的IP连接以从服务器向客户端计算设备(例如,已经安装了web应用或浏览器扩展的用户所使用的智能电话)提供通知(例如,与第三方web应用或浏览器扩展相关的通知)。该通知例如可以包括声音、图像或者定制文本警示。贯穿本文,术语推送通知、推送技术和推送通知传递机制可以互换地使用而表示相同内容。
主动通知可以包括立即警示用户的特征,诸如声音警示、桌面警示、弹出窗口或动画。与之相比,被动通知例如可以在web浏览器的后台进行操作。被动通知可以包括在web浏览器中(诸如在浏览器中的web应用图标附近)示出的指示符或信息。作为示例,表示象棋游戏应用的图形图标可以在其旁边包括用户的好友现在正在使用该应用的消 息,这可以促使该用户开启象棋应用并且加入到与其朋友的游戏之中。作为另一个示例,游戏开发商可以关联于表示该游戏的图标提供通知,其中该通知指示有新的游戏级别可用,或者游戏中的活动正在等待用户操作,这可以促使许多用户开启游戏。作为又另一个示例,团购应用可以关联于表示该应用的图标而提供通知以指示有新的提供向用户呈现。被动通知可以促使用户重新与应用建立联系。
认证和授权
许多web应用具有配对的移动应用,诸如本机应用。本机应用通常要求用户的证书以对它们进行认证。认证过程通常使用基于web的协议(例如,OAuth 1.0、OAuth 2.0、OpenID、OpenID Connect、SAML)。为了使得移动应用能够使用基于web的协议,移动设备的用户通常将使用移动设备上的嵌入式web浏览器。认证过程通常提供应用以执行与提供方的一次性注册,并且作为注册的一部分指定重定向URL。该应用随后通过将用户的应用(例如,web浏览器)重定向至提供方的URL而开始针对提供方的认证流程。就此而言,嵌入式web视图通常将指向与本机应用相关联的网页(例如,登录页面)的URL。
提供方对用户进行认证并且请求用户授权该应用访问所请求的数据。在用户同意时,提供方重新定向回到应用在注册时所指定的URL。就此而言,在用户成功登录到网站之后,该网站通常将用户重定向至生成令牌的页面,该令牌随后被送至本机应用以便进行认证。该令牌可以作为cookie或窗口标题而被传输回本机应用。在网站已经生成令牌并且经由cookie或窗口标题将该令牌包括在响应中之后,该本机应用通常提取该令牌并且关闭所嵌入的web视图。当接收到该令牌时,该令牌可以被本机应用用来认证对应用的服务器侧API的调用。
在应用注册期间,客户端标识符、一个或多个重定向URL和客户端密钥可以被指定。用于认证的请求通常包括客户端标识符和重定向URL以及应用类型的指示(例如,web服务器、JavaScript、设备、所安 装应用)。当接收到该请求时,如果用户已经登录,则认证服务器可以选择与进行请求的应用相关联的活动会话,接受并验证用户证书,获得所请求许可的用户同意,并且向该应用返回响应。该响应的内容可以取决于应用的类型。对于web应用而言,该响应可以是认证码,其可以交换为访问令牌和/或刷新令牌。对于客户端侧应用(或所安装应用)而言,该响应可以是访问令牌。在获得访问令牌之后,该应用能够使用该访问令牌作出针对API端点的web服务请求,该API端点进而提供与用户相关的简档信息。在一些示例中,访问令牌在HTTP授权报头中被发送至API端点,或者在HTTP报头操作并不可用的情况下作为查询串参数进行发送。
在一个方面,授权服务器支持web服务器应用(例如,PHP、Java、Phthon、Ruby、ASP.NET)和移动应用(例如,移动操作系统)。与授权服务器的序列以利用查询参数集合将嵌入的应用(例如,嵌入式web浏览器)重新定向至URL作为开始,该查询参数集合指示进行请求的应用所要求的端点API访问的类型。授权服务器能够被配置为对用户认证、会话选择和用户同意进行处理,但是该序列的结果是授权码。在接收到该授权码之后,应用能够将该代码交换为访问令牌和刷新令牌。
在另一个方面,授权服务器支持JavaScript应用(例如,在web浏览器中运行的JavaScript)。响应于请求,授权服务器发出访问令牌,其给出应用的类型(即,JavaScript)。客户端能够验证所接收的令牌,并且随后将访问令牌包括在端点API请求中。
用户账户
用户账户允许用户针对系统服务(例如,web应用)进行认证并且接收对它们进行访问的授权。为了登录到用户账户,用户例如可以出于账户、安全和资源管理的目的利用密码或其它证书对其自身进行认证。一旦用户已经登录(例如,登录到web浏览器、计算设备等),操 作系统就可以使用诸如整数之类的标识符而不是用户名来指代该用户。例如,用户名可以与用户标识符相关联。系统可以调节并验证用户账户的正确归属权,并且能够通过向经过验证的账户登录标识符(例如,用户名和密码、安全标识符等)分配唯一标识符而将那些用户账户的归属权永久地连接至特定个人。例如,根据组织的商业策略、访问控制策略以及各种应用要求,该系统可以对那些仅具有适当系统和应用的账户登录标识符的个人进行验证。
身份关联背景下的唯一标识符可以是被保证在用于个人群体或特定用途的所有标识符中为唯一的任意标识符。唯一标识符可以是递增分配的序列号、从明显大于所要识别的对象的最大(或预期)数量的数字空间中选择的随机数,通过选择所分派但是被验证为唯一的名称、代码。唯一标识符可以被用来在用户所能够访问的各个计算设备之间对web应用、浏览器扩展和响应进行同步。
图1图示了用于在应用之间进行web消息发送的示例流程图。在一些示例方面,应用之间的消息发送由网络环境100所促成,该网络环境100包括发布方102、服务器应用104、客户端应用106和订用方108。发布方102可以是在电子设备上进行操作的应用或者通过网络提供和/或发布内容的服务器。服务器应用104可以是被配置为在发布方102和客户端应用106之间进行通信的服务器。服务器应用104被配置为向其客户端组件(例如,客户端应用106)推送小型消息。客户端应用106可以是web应用(即,具有web浏览器的基于web的应用)、JavaScript应用或所安装的应用。订用方108可以是在客户端侧设备上运行的应用,该客户端侧设备与客户端应用106进行通信或者至少具有到客户端应用106的接口。订用方108可以是与特定用户相关联的一个或多个应用。
客户端应用106从订用方108接收订用请求,其请求订用以接收与发布方102相关联的所选择的事件。该请求触发客户端应用106联系其配对应用(例如,服务器应用104)以监听web上的所订用的事件。客 户端应用106获得识别订用方108的注册标识符。客户端应用106随后将该注册标识符提供至服务器应用104以确定哪些应用意在接收所选择的事件。应用服务器104能够在API端点(未示出)处监听来自发布方102的所选择的事件。当检测到时,服务器应用104从发布方102接收事件通知。该事件通知可以包括事件标识符,其使得服务器应用104能够在注册标识符和事件标识符之间执行比较以确定匹配。当确定匹配时,服务器应用104向客户端应用106传送事件通知。客户端应用106能够确定一个或多个应用是否被选择以接收事件通知。也就是说,事件通知可以基于其与预期用户的关联而被转发至单个应用或多个应用。事件通知可以经由事件页面而被提供至订用方(或订用应用),该事件页面提供具有事件通知的警示弹出窗口。
客户端应用106执行注册流程,其包括获得与订用方108相关联的注册标识符或信道标识符,它们要被发送至服务器应用104以便随相对应的用户记录进行存储。客户端应用106调用支持JavaScript的API来获得当前登录到客户端应用106的订用方108的用户的注册标识符(或信道标识符)。在一些示例中,用户可以被要求授予客户端应用106和/或服务器应用104向订用方108推送通知的许可。在一个方面,用户可以被要求在订用方108首次在客户端侧进行安装时登录到客户端应用106。信道标识符实际上可以在无需请求用户在后续时间登录的情况下可用于订用方108。在另一个方面,用户可以被要求在API被调用以提供注册标识符时登录到客户端应用106。
服务器应用104和客户端应用106之间进行通信的消息可以具有有效载荷,这减少了两个接口之间所必需的带宽量。该消息可以包括两个字段以识别信道标识符和有效载荷。例如,该消息有效载荷最大可以为1KB。
服务器应用104可以被配置为调用服务器至服务器API(未示出)以便发送消息。该API对进行调用的应用(即,服务器应用104)进行 认证并且确定哪些应用被注册(或订用)以接收该消息。当从服务器应用104接收消息时,该API在推送通知系统中执行验证以确定预期接收方。在一些方面,无论适当用户是否登录,该消息有效载荷都将被传递给每个客户端应用。如果针对每个应用有多个消息进行排队并且新的客户端应用随适当用户上线,则该新的客户端应用可以不接收所有排队的消息,而是可以至少接收针对该客户端应用的最近消息。
服务器应用104可以定义一种或多种客户端类型以及一个或多个对象源,其中该客户端类型可以订用相对应的对象源。在一个方面,与服务器应用104相关联的推送机制可以被集成到监听程序代码中,该监听程序代码使得网络上的一个或多个计算设备监听与发布方102相关联的订用事件。服务器应用104可以接收针对被订用以接收所订用的事件的所有应用的通知。为此,客户端类型与每个应用的一个或多个对象标识符相关联。
服务器应用104从发布方102接收事件通知。服务器应用104被配置为监听与发布方102相关联的事件。在一些实施方式中,该事件在事件通知内被识别为事件标识符。该事件标识符在与关联于订用方108的注册标识符进行比较的期间可以被服务器应用104用来确定该事件通知的预期接收方。当检测到一个或多个事件时,服务器应用104针对客户端应用106生成消息以向客户端应用106告知该事件通知。在一些方面,服务器应用104能够被配置为发布针对客户端应用所检测的事件以便接收而经由客户端侧的一个或多个应用进行显示。该事件通知包括回调(callback)功能以允许订用方108在特定时间或所排定的时间进行跟进以检索与发布方102相关联的内容或内容更新。服务器应用104确定客户端应用106是否具有与被识别以接收事件通知的用户相关联的一个或多个应用。当确定客户端应用106具有被订用以接收与发布方102相关联的通知的应用时,服务器应用104传送包含事件通知的消息以便由客户端应用106在客户端侧进行分发。
在确定客户端应用106是否具有一个或多个被注册以接收发布方102所生成的内容更新的应用时,服务器应用104将与客户端应用106相关联的标识符与所接收的事件通知的至少一部分进行比较。该事件通知包括用于识别一个或多个所选择的事件的事件标识符。该标识符是与订用方108所进行的注册相关的注册标识符。在其它示例方面,该标识符是与承载关联于第二应用的通信的信道相关的信道标识符。这样,服务器应用104将注册标识符(或信道标识符)与事件标识符进行比较以确定匹配。该注册标识符和事件标识符由服务器应用104存储在数据结构中而使得服务器应用104能够在比较期间查找每个标识符。
在一些实施方式中,服务器应用104解析事件通知以获得与发布方102相关联的事件描述符。在一些示例中,该事件描述符包含事件标识符。服务器应用104将该事件描述符的至少一部分与关联于客户端应用106的扩展标识符进行比较。该扩展标识符包括能够被服务器应用104所检测的信息的模式。客户端应用106能够经由用户界面获得用户偏好设置。所获得的设置能够在消息中被发送至服务器应用104以便随后被服务器应用104在比较期间使用。在示例中,服务器应用104在接收注册标识符的期间从客户端应用106获得用户偏好设置。在一些示例方面中,服务器应用104将用户偏好设置存储在存储器(例如,本地库或数据结构)中。这样,服务器应用104随后将所存储的用户偏好设置与事件通知的至少一部分进行比较而使得与事件标识符相匹配的事件能够被发送至所订用的应用。
用于在web应用之间的消息的系统能够促成节省在客户端侧所订用的应用的功耗。在一些实施方式中,服务器应用104检测与客户端应用106相关联的一个或多个应用是否处于休眠状态。例如,应用可能在休眠状态期间离线或关闭。当接收到事件通知时,服务器应用104向客户端应用106传送唤醒通知而使得客户端应用106请求应用从休眠状态变换为唤醒状态。也就是说,应用在变换为唤醒状态之后变为在线或被开启。
用于在web应用之间的消息的系统还能够促成特定于用户的消息发送的推送通知。服务器应用104对客户端应用106进行认证以确定客户端应用106是否被授权访问和/或接收该事件通知。客户端应用106也可以被配置为对被订用以接收该事件通知的一个或多个应用进行认证。该认证流程在并不共享或访问私人证书(例如,用户名/密码)的情况下提供访问。与客户端应用106进行交互的订用方108能够选择选取任意类型的委托授权。服务器应用104可以在认证期间经由客户端应用106处的用户界面接收用户输入以接收用户同意的指示,这授权客户端应用106接收与订用方108感兴趣的内容相关的通知。在一些实施方式中,网络环境100和以上所描述的要素可以有所变化而并不局限于所提供的功能、结构、配置、实施方式或示例。
图2图示了涉及用于在web应用之间进行消息发送的计算机实施的方法200的流程图。该流程图的步骤并不需要以所示出的顺序来执行。在步骤202,服务器应用104(图1)从发布方应用102(图1)接收事件通知。在一些示例方面,事件通知包括事件标识符,当与关联于订用方应用(例如,订用方108)的注册标识符进行比较时,该事件标识符对该订用方应用进行授权以接收有关与发布方应用102相关联的内容更新的通知(或消息)。事件通知还可以包括回调功能,其使得订用方应用对该事件通知进行跟进。该回调功能可以是将订用方应用指向用于定位发布方应用102所提供(或发布)的内容更新的网络地址(或端点)的功能的指针。方法200和以上所描述的要素可以有所变化而并不局限于图1所提供的功能、结构、配置、实施方式或示例。
在步骤204,服务器应用104确定客户端应用106是否被注册以接收发布方应用102所传送的事件通知。该确定的步骤包括检测客户端应用106是否处于休眠状态。不同于等待客户端应用106从服务器应用104请求应用102所进行的内容更新,服务器应用104针对来自发布方应用102的事件通知而对web进行监听(或监视)。也就是说,服务器应用104 在服务器应用104检测到来自发布方应用102的事件通知时将内容更新推送至客户端应用106。
在一些实施方式中,服务器应用104在服务器应用104确定客户端应用106离线或者被关机的情况下唤醒客户端应用106。该确定步骤还包括对该事件通知进行解析以获得与发布方应用102相关联的事件描述符。例如,服务器应用104获得该事件通知并且对该事件通知的至少一部分进行解析。经解析的部分可以是指示与应用102相关联的内容的事件描述符。在另一个示例中,经解析的部分指示对发布方应用102所产生的选择的事件进行索引的事件标识符。
此外,该确定步骤包括将该事件描述符与关联于客户端应用106的扩展标识符进行比较。就此而言,该扩展标识符识别包括对应于客户端应用106的偏好的客户端应用106,从而服务器应用104能够确定是否将事件通知转发至客户端应用106。在一些示例方面,该扩展标识符由客户端应用106预先定义。在其它示例方面,该扩展标识符由服务器应用104所生成以便由客户端应用106使用。就此而言,该扩展标识符的至少一部分与服务器应用104相关联。例如,扩展标识符的该部分可以识别服务器应用104。
在一种或多种实施方式中,该确定步骤包括经由用户界面获得用户偏好设置。该用户界面可以在客户端应用106或者与客户端应用106进行通信的一个或多个应用处提供。该用户偏好设置能够与注册标识符(或者信道标识符)同时被传送至服务器应用104。可替换地,该用户偏好设置在所定义的时间段或者在其期间进行传送。
在一种或多种实施方式中,该确定步骤包括将该用户偏好设置存储在存储器中。服务器应用104可以出于存储的目的访问本地库(或数据结构)。这样,所存储的用户偏好设置能够与事件通知的至少一部分进行比较。因此,该比较结果使得服务器应用104能够确定客户端应 用106是否被注册以接收与应用102相关联的web通知。在另一个方面,该比较可以由客户端应用106使用事件通知和所注册的标识符来执行。
在步骤206,服务器应用104在第二应用被注册以接收事件通知的情况下向订用方应用(或客户端应用106)传送指示事件通知的消息。在一些示例方面,服务器应用104在接收到事件通知时向客户端应用106传送唤醒通知而使得客户端应用106请求一个或多个订用方应用从休眠状态(例如,离线、关机)变换至唤醒状态(例如,在线、开机)。
在服务器应用104和客户端应用106之间传送的消息可以包括但并不局限于两个字段。第一字段识别客户端应用106在一个或多个订用方应用的注册期间所获得的信道标识符,其随后与用户记录(例如,用户简档)一起在服务器应用104进行存储。第二字段识别有效载荷,其承载表示针对客户端应用106的消息的所定义数量的数据比特(例如,具有1KB容量的有效Javascript对象注解(JSON))。在一些实施方式中,计算机实施的方法200和以上所描述的要素可以有所变化而并不局限于所提供的功能、结构、配置、实施方式或示例。
图3图示了涉及用于在应用之间进行消息发送的计算机实施的方法300的流程图。在步骤302,订用方应用(例如,图1的订用方108)的注册标识符在服务器应用104(图1)被接收,而使得订用方应用能够被通知以与在数据网络进行操作的发布方应用(例如,图1的发布方102)相关联的事件发生(或内容更新)。注册标识符能够与订用方108被订用以接收的通知的类型相关联。服务器应用104能够将所接收的标识符与相对应的用户简档一起存储在服务器应用104的本地库(或数据结构)中。方法300和以上所描述的要素可以有所变化而并不局限于图1所提供的功能、结构、配置、实施方式或示例。
在步骤304,服务器应用104监听web上发布方102的事件发生。服务器应用104接收识别与应用102相关联的内容更新的事件通知。当接 收到该事件通知时,服务器应用104调用公用API以请求该API向客户端应用106推送该事件通知。在一些实施方式中,服务器应用104调用服务器至服务器API通过专有网络向服务器应用104的配对组件(例如,客户端应用106)发送消息(或指示)。客户端应用106能够经由客户端应用106(或者一个或多个订用方应用)的显示上的事件页面而被呈现以新的事件,其表示从服务器应用104所推送的消息。
在步骤306,确定客户端应用106是否被注册以接收事件通知。服务器应用104将与客户端应用106(或订用方应用)相关联的注册标识符和事件通知内所包含的事件标识符进行比较以确定匹配。在一种或多种实施方式中,服务器应用104可以将与发布方102的事件发生相关联的内容和与客户端应用106(或订用方应用)上进行操作的用户相关联的用户内容偏好进行比较。该匹配指示客户端应用106(或订用方应用)被订用以接收与发布方102相关联的通知。
在步骤308,当服务器应用104确定客户端应用106被注册以接收这样的通知时,发布方102所生成的事件通知由服务器应用104转发至客户端应用106。在另一个方面,服务器应用104将事件通知转发至客户端应用106而使得客户端应用106确定一个或多个订户应用是否是预期接收方。这样,客户端应用106能够执行类似于服务器应用104的比较。服务器应用104在接收到事件通知时生成指示发布方102处的事件发生的消息。该事件通知可以包含在该消息的有效载荷部分内。在一些实施方式中,计算机所实施的方法300和以上所描述的要素可以有所变化而并不局限于所提供的功能、结构、配置、实施方式或示例。
图4图示了在应用之间提供web消息发送的示例客户端-服务器网络环境。也就是说,该主题公开针对在电子设备上操作的应用提供了一种可缩放的推送通知传递机制。在一些方面,该推送通知传递机制在与应用相关联的内容陈旧(或过期)时向应用推送通知。因此,该推送通知传递机制使得应用能够检索内容更新。在一个或多个示例中, 该事件指示一个或多个内容更新。这样,事件通知可以立即被推送至所订用的应用。
网络环境400包括通过网络408通信连接至服务器410的多个电子设备402-406。服务器410包括处理设备412和储存库414。处理设备412执行例如存储在储存库414中的计算机指令以促成由在电子设备402-406上进行操作的应用生成事件通知。服务器410具有配对的组件—客户端应用416。客户端应用416被配置为注册一个或多个应用以便进行订用以接收所订用的内容,并且将所订用的内容分发至授权应用。此外,网络环境400包括通过网络428通信连接至服务器430的多个电子设备422-426。服务器430包括处理设备432和储存库434。例如,来自服务器430的通知能够跨网络420立即被服务器410所检测。
与电子设备422-426进行交互的用户针对web应用、扩展应用以及所安装的应用采用可缩放的推送通知传递机制。例如,所公开的主题涉及使得在电子设备422-426之一上进行操作的web应用能够在网络420上发布信息,该信息随后立即被推送至多个其它web应用,这些web应用在网络408上具有订用以接收所发布的信息(例如,在电子设备402-406上进行操作的订用方应用)。
该推送通知传递机制的服务器组件和客户端组件能够与在电子设备402-406上进行操作的平台应用(例如,web浏览器)进行集成。也就是说,可以在该推送通知传递机制的顶端构建抽象层,其使得与在电子设备402-406上操作的订用方应用进行交互的用户能够经由在电子设备402-406上进行操作的配对客户端组件(例如,客户端组件416)从相对应的服务器(例如,服务器410)接收所推送的消息。因此,客户端组件与其服务器配对一起在其状态过期时被告知。
在一种或多种实施方式中,在至少一个电子设备402-406上进行操作的客户端应用416采用注册处理来获得注册标识符(或信道标识符), 并且随后向服务器410发送与一个或多个订户应用相关联的标识符以便随相对应的用户记录(例如,用户账户)一起存储在服务器410的存储器(例如,储存库414)中。该注册处理允许在电子设备上进行操作的web应用订用与由电子设备422-426上运行的应用所进行的内容更新相关的某些web通知。在一个示例中,该web应用进行订用以接收特定的实时事件(或动态事件)。在另一个示例中,该web应用进行订用以接收预定义事件(或静态事件)。在一些实施方式中,服务器410在监听与应用422-426相关的事件发生之后确定事件更新。也就是说,源所有方(例如,在电子设备422上运行的web应用)向服务器430提供事件发生以便在网络420上进行发布。
客户端应用416对订用方应用402-406进行注册以使得服务器410能够根据一个或多个订用而监听web上的所选择的事件。该注册处理涉及到向至少一个订用方应用402-406分配信道标识符(或注册标识符)。例如,服务器410在与电子设备422-426之一进行交互的用户当前经由客户端应用106注册到web浏览器账户的情况下调用API。在一个或多个示例中,该API是嵌入在网页之内的Javascript。该信道标识符(或注册标识符)在没有用户交互的情况下可用于客户端应用416。也就是说,该信道标识符可以在后续尝试获得事件通知的期间保持可用于客户端应用416。
服务器410能够将信道标识符连同与客户端应用相关联的用户记录一起存储在储存库414中。在示例中,信道标识符被存储在定义为HTML本地存储的本地储存库(或数据结构)中。在另一个示例中,本地储存库可以具有对储存库414内的用户记录进行索引的标识符。用户记录可以是具有定义用户所感兴趣的内容的参数的用户简档。用户记录还可以包括有关用户的人口统计和/或使用统计的参数。在一个方面,用户有权选择是否使得用户记录获得用户相关数据。
在一个方面,与电子设备402上运行的客户端应用416进行交互的用户授权至少一个订用方应用许可以通过服务器410经由通知接收所发布的内容。用户能够在web浏览器的登录会话期间授予该许可。在一个或多个示例中,该授与存储在用户记录的旁边以促成单点登录(SSO)的体验。用户还能够在客户端应用的安装会话期间授予该许可,并且因此自动允许推送通知被发送至所安装的应用(例如,所安装的web应用、使用所定义的Javascript调用的任意web应用)。在其它情况下,当服务器410调用API以向客户端应用416发送消息时,用户可以被提示进行登录并授予许可。
在一种或多种实施方式中,服务器410在网络上408上与公用API进行通信以便使得消息被推送至客户端应用416以便相对应的web应用被执行以在电子设备402-406上进行操作。所公开的主题还提供服务提供方以与其它API进行通信以将要推送的消息发送至相对应的客户端组件(例如,在电子设备402-406上运行的web浏览器组件)。在其它实施方式中,服务器410可以调用服务器至服务器API以向客户端应用416发送消息。该API对进行调用的应用(例如,服务器410)进行认证并且确定作为目标以从服务器410接收所推送的消息的所订用的应用的身份。
推送通知能够到达在电子设备402-406上进行操作同时处于休眠状态或非加载状态的的客户端应用。与电子设备422-426上运行的应用相关联的新事件可以作为到达在任何电子设备422-426上进行操作的至少一个订用方应用的新通知而经由事件页面进行检测和显示。当检测到新事件时,通知作为图标被显示在浏览器(或订用方应用)的新标签页面上。所检测的事件可以使用预定义功能“application_name.onNewMessage”进行处理。事件页面能够接收针对JavaScript功能的回调以跟进该事件通知。这样,客户端应用416被配置为检索与该事件通知相关联的数据或内容。也就是说,客户端应用416可以使用该回调功能经由服务器410检索与事件相关联的数据。在另一 个方面,订用方应用402-406可以执行该回调功能以接收与事件通知有关的另外的详细信息。
该推送通知传递机制支持用于将事件通知传递至订用用户(例如,在电子设备402-406上运行的订用方应用)的订用。在示例中,可以连同新的对象源一起定义新的客户端类型以进行订用来接收推送通知。服务器应用(例如,服务器410)与该推送通知传递机制(例如,集成到监听方代码中)进行集成而使得服务器410接收针对所有所订用的应用的所有通知。在另一个示例中,每个所订用的应用可能有一个被定义为“<add_id>.default”的对象标识符。就此而言,该客户端应用针对所安装的所有应用订用了对象源以及格式为“<add_id>.default”的对象标识符。
在一个或多个示例中,与RSS馈送(feed)相关的web通知可以利用该RSS馈送已经被更新的指示而被推送至电子设备402-406之一。该电子设备可以被订用以接收RSS馈送,并且服务器410通过查找与电子设备上进行操作的web应用相关联的扩展(或标识符)而检查(或监听)更新来确定该web应用是否被订用以接收有关RSS馈送更新的通知。就此而言,该web应用将回调特定于RSS馈送的功能以便从服务器410检索所更新的内容。
在一些示例实施方式中,电子设备402-406、422-426可以是计算设备,诸如膝上或台式计算机、智能电话、个人数字助理(PDA)、便携式媒体播放器、平板计算机或者能够被用于应用的安全委托认证的其它适当计算设备。在图4的示例中,电子设备402、422均被描绘为智能电话,电子设备404、424均被描绘为台式计算机,并且电子设备406、426均被描绘为PDA。
在一些示例方面,服务器410和服务器430均可以是诸如计算机服务器的单个计算设备。在其它实施方式中,服务器410和服务器430可 以表示多于一个的计算设备,它们共同进行工作以执行服务器计算机的操作(例如,云计算)。可以被用来实施服务器410、430的计算设备的示例包括但并不局限于web服务器、应用服务器、代理服务器、网络服务器或者服务器群中的计算设备的群组。此外,网络408、420均可以是公共通信网络(例如,互联网、蜂窝数据网络、电话网络上的拨号调制解调器)或者私人通信网络(例如,私人LAN、租用线路)。在一些实施方式中,网络环境400和以上所描述的要素可以有所变化而并不局限于所提供的功能、结构、配置、实施方式或示例。
图5图示了包括web浏览器的用户界面的显示器。显示器500例如可以是如图6所示的输出设备接口606。显示器500包括用户界面510,其可以由计算设备所执行的浏览器应用进行显示,该计算设备可以连接至网络(例如,互联网)。该浏览器应用可以打开一个或多个标签512。用户界面510包括表示web应用(例如,可以在浏览器控制的环境中执行的软件应用)的指示符514A、514B和514C。用户界面510还可以包括一个或多个表示浏览器扩展(例如,web浏览器的软件扩展)的指示符520。
用户界面510还可以包括被动通知516,其例如可以与指示符514进行同时显示。在图5所描绘的示例中,被动通知516包括有关指示符514A所表示的web应用游戏的玩家的信息。被动通知516可以包括有关指示符514A所表示的web应用游戏的文本,例如如图5所示的“Jacob在线;Emma准备加入;Ethan正在下象棋”。如图5所示的被动通知516的描绘、文本和位置仅是为了进行图示并且可以包括图形或其它信息。在一个示例中,被动通知516出现在标签512的背景中和/或可以相邻指示符515出现。
在一些实施方式中,通知可以是主动的。例如,主动通知可以包括弹出窗口和/或声音警示。主动通知530是包括有关指示符515B所表示的web应用的警示的弹出窗口,其指出了“新消息”。显示器500可 以临时显示主动通知530以向用户警示针对web应用514B的通知。在一些实施方式中,主动通知530可以闪烁、改变颜色或者伴随着声音、动画或其它特征以向用户通知与关联于用户账户的web应用相关的更新。
在一些实施方式中,用户可以指定与所安装的web应用相关的通知如何进行呈现。可以在本地进行存储(例如,电子设备402-406、422-426(图4))的有关通知如何呈现的规定也可以使用应用服务器432(图4)而与用户所能够访问的其它电子设备同步。例如,用户可以指定他们是否希望在后台中接收被动通知,以及他们希望针对哪些应用接收被动通知。用户还可以指定他们是否希望接收主动通知,他们希望如何接收主动通知(例如,使用声音、弹出窗口、桌面通知、动画、闪烁、文本等),以及他们希望针对哪些应用接收主动通知或被动通知。
被提供给通知516和530或者由它们所提供的信息(例如,有关谁正在使用web应用、谁在线、哪些用户进行订用以接收新消息,等等)可以在选择加入的基础上进行提供。换句话说,这样的信息可以仅在web应用或浏览器扩展的用户专门授权这样的信息的传输的情况下才往来于服务器或电子设备进行提供。此外,数据在其被发送之前可以以一种或多种方式保持匿名,而使得个人可识别信息得以被去除(例如,使用注册标识符或信道标识符)。
通知可以出于特定于电子设备用户的任意数量的本地原因而发出,这可以与一般用户无关。例如,web应用游戏可以向用户通知用户的好友何时在线玩游戏。这样的通知可以特定于用户并且可以不影响到一般用户。相反,用户可以在通知与他无关的情况下将其忽略。例如,如果通知指示有新的游戏等级可用或者有新的优惠券可用于团购交易应用,则用户可以忽略该通知。通知也可以基于用户数据(例如,位置、社交地图数据、人口统计数据、使用模式等)进行定制,但是并不特定于某个用户。例如,通知可以对局部区域中的特定购买交易的群组进行警示。电子设备(例如,电子设备402-406、422-426(图4)) 的位置可以基于与互联网服务提供商(ISP)相关联的位置或者基于地理定位传感器进行确定。例如,ISP的已知位置可以被用作客户端设备的位置的近似或代理。在一些实施方式中,通知可以与本机通知系统(诸如系统托盘、任务栏等)进行挂钩。在那些实施方式中,用户可以在不激活浏览器应用的情况下接收到有关web应用的通知。在一些实施方式中,显示器500和以上所描述的要素可以有所变化而并不局限于所提供的功能、结构、配置、实施方式或示例。
图6在概念上图示了该主题技术的一些实施方式利用其得以实施的电子系统600。电子系统600可以是服务器、计算机、电话、PDA、平板计算机、具有嵌入其中或与其耦接的一个或多个处理器的电视或者通常任意电子设备。这样的电子系统包括各种类型的计算机可读媒体以及用于各种其它类型的计算机可读媒体的接口。电子系统600包括总线608、处理单元612、系统存储器604、只读存储器(ROM)610、持久性存储设备602、输入设备接口614、输出设备接口606和网络接口616。
总线608总体上表示将电子系统600的多个内部设备进行通信连接的所有系统、外部和芯片组总线。例如,总线608将处理单元612与ROM610、系统存储器604和持久性存储设备602进行通信连接。
从这些各种存储器单元,处理单元612检索用于执行的指令以及用于处理的数据以便执行该主题技术的处理。处理单元在不同实施方式中可以是单个处理器或多核处理器。
ROM 610存储处理单元612和电子系统的其它模块所需的静态数据和指令。另一方面,持久性存储设备602是读写存储器设备。该设备是即使电子系统600关机时也存储指令和数据的非易失性存储器单元。该主题公开的一些实施方式使用大型存储设备(诸如,磁盘或光盘及其相对应的盘驱动器)作为持久性存储设备602。
其它实施方式使用可移动存储设备(例如,软盘、闪存及其相对应的盘驱动器)。与持久性存储设备602相同,系统存储器604是读写存储器设备。然而,不同于存储设备602,系统存储器604是易失性读写存储器,诸如随机访问存储器。系统存储器604存储处理器在运行时所需的一些指令和数据。在一些实施方式中,该主题公开的处理被存储在系统存储器604、持久性存储设备602和/或ROM 610中。例如,各种存储器单元包括依据一些实施方式的用于处理、生成和/或提供验证请求和/或验证响应的指令。从这些各种存储器单元,处理单元612检索用于执行的指令和用于处理的数据以便执行一些实施方式的处理。
总线608还连接至输入和输出设备接口614和606。输入设备接口614使得用户能够针对电子系统传输信息并选择命令。随输入设备接口614使用的输入设备例如包括字母数字键盘和指示设备(也称为“光标控制设备”)。输出设备接口606例如使得能够对电子系统600所生成的图像进行显示。随输出设备接口606使用的输出设备例如包括打印机和显示设备,诸如液晶显示器(LCD)。一些实施方式包括诸如同时用作输入和输出设备的触摸屏的设备。
最后,如图6所示,总线608还通过网络接口616将电子系统600耦合至网络(未示出)。以这种方式,计算机可以是计算机的网络(诸如,局域网(“LAN”)、广域网(“WAN”)或企业内部网)或网络的网络(诸如互联网)的一部分。电子系统600的任意或全部组件都能够结合该主题公开使用。
以上所描述的这些功能能够以数字电路、计算机软件、固件或硬件来实施。该技术能够使用一个或多个计算机程序产品来实施。可编程处理器和计算机可以包括在移动设备中或者被封装为移动设备。处理和逻辑流程能够由一个或多个可编程处理器以及一个或多个可编程 逻辑电路来执行。通用和专用计算设备和存储设备可以通过通信网络进行互连。
一些实施方式包括电子组件,诸如微处理器、在机器可读或计算机可读介质中(可替换地称作计算机可读存储媒体、机器可读媒体或机器可读存储媒体)存储计算机程序指令的存储和存储器。这样的计算机可读媒体的一些示例包括RAM、ROM、只读紧凑盘(CD-ROM)、可记录紧凑盘(CD-R)、可重写紧凑盘(CD-RW)、只读数字多功能盘(例如,DVD-ROM、双层DVD-ROM)、各种可记录/可重写DVD(例如,DVD-RAM、DVD-RW、DVD+RW等)、闪存(例如,SD卡、mini-SD卡、micro-SC卡等)、磁性和/或固态硬盘、超致密光盘、任意其它光学或磁性媒体以及软盘。计算机可读媒体能够存储可由至少一个处理单元所执行并且包括用于执行各种操作的指令集合的计算机程序。计算机程序或计算机代码的示例包括诸如由编译器所产生的机器代码以及包括由计算机、电子组件或者微处理器使用解释器执行的高级代码的文件。
虽然以上讨论主要涉及到执行软件的微处理器或多核处理器,但是一些实施方式由一个或多个集成电路来执行,诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。在一些实施方式中,这样的集成电路执行存储在电路自身上的指令。
如该说明书以及本申请的任意权利要求中所使用的,术语“计算机”、“服务器”、“处理器”和“存储器”全部是指电子或其它技术设备。这些术语排除了人或人群。出于该说明书的目的,术语“显示器”或“显示”器件意为在电子设备上进行显示。如该说明书以及本申请的任意权利要求中所使用的,术语“计算机可读介质”和“计算机可读媒体”被完全局限于以计算机可读取的形式存储信息的有形的物理对象。这些术语排除了任何的无线信号、有线下载信号和任意其它瞬时信号。
为了提供与用户的交互,该说明书中所描述的主题的实施方式能够在计算机上实施,该计算机具有诸如LCD监视器的用于向用户显示信息的显示设备以及用户能够通过其向计算机提供输入的键盘和诸如鼠标或轨迹球的指示设备。也能够使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任意形式的感官反馈,诸如视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入能够以任意形式被接收,包括声音、语音或触觉输入。此外,计算机能够通过往来于用户所使用的设备发送和接收文档而与用户进行交互;例如,通过响应于从用户的客户端设备上的web浏览器所接收到的请求而向该web浏览器发送网页。
该主题公开中所描述的主题的实施方式能够在计算系统中实施,该计算系统包括诸如数据服务器的后端组件,或者包括诸如应用服务器的中间件组件,或者包括诸如客户端计算机的前端组件,或者一个或多个这样的后端、中间件或前端组件的任意组合,上述客户端计算机具有用户能够通过其而与该说明书所描述主题的实施方式进行交互的图形用户界面或Web浏览器。该系统的组件能够通过诸如通信网络之类的任意形式或介质的数字数据通信进行互连。通信网络的示例包括LAN和WAN、互联网络(例如,互联网)以及端对端网络(例如,自组织端对端网络)。
计算系统能够包括客户端和服务器。客户端和服务器通常互相远离并且典型地通过通信网络进行交互。客户端和服务器的关系源自于在相应计算机上运行并且互相具有客户端-服务器关系的计算机程序。在一些实施方式中,服务器(例如,出于向与客户端设备进行交互的用户传送数据以及从该用户处接收用户输入的目的)向客户端设备传送数据(例如,HTML页面)。在客户端设备所生成的数据(例如,用户交互的结果)能够在服务器处从客户端设备进行接收。
所要理解的是,所公开的处理中的块的任何特定顺序或层级都是示例方式的说明。基于设计偏好,所要理解的是,处理中的块的特定顺序或层级可以重新安排,或者执行所有所图示的块。一些块可以同时执行。例如,在某些环境中,多任务和并行处理可能是有利的。此外,以上所说明的实施方式中的各个系统组件的划分并不应当被理解为在所有的实施方式中要求这样的划分,并且应当理解的是,所描述的程序组件和系统一般能够共同集成在单个软件产品中或者被封装为多个软件产品。
提供之前的描述是为了使得本领域任何技术人员都能够对这里所描述的各个方面进行实践。针对这些方面的各种修改对于本领域的那些技术人员将是轻易显而易见的,并且这里所限定的一般原则可以应用于其它方面。因此,权利要求并非意在被局限于这里所示出的方面,而是要依据与权利要求的语言相一致的完整范围,其中对单数要素的引用并非意在表示“一个且仅一个”,除非特别如此指出,而是表示“一个或多个”。除非以其它方式特别指出,否则术语“一些”是指一个或多个。男性代词(例如,他的)包括女性或中性(例如,她的和它的),反之亦然。如果存在,标题和副标题仅是为了方便而使用而并非对主题公开加以限制。
如这里所使用的,术语网站可以包括网站的任意方面,包括一个或多个网页,用来托管或存储web相关内容的一个或多个服务器,等等。因此,术语网站可以与术语网页和服务器互换地使用。谓语单词“被配置为”、“可操作以”和“被编程为”并非隐含主题的任何特定的有形或非有形的修改,而是相反,其意在被可互换地使用。例如,被配置为监视和控制操作或组件的处理器也可以意味着被编程为监视和控制操作的处理器或者可操作以监视和控制操作的处理器。同样,被配置为执行代码的处理器可以被理解为被编程为执行代码或可操作以执行代码的处理器。
诸如“方面”之类的短语并非暗示这样的方面对于该主题公开而言是必要的或者这样的方面应用于主题公开的所有配置。涉及一个方面的公开可以应用于所有配置或者一种或多种配置。诸如一个方面的短语可以指代一个或多个方面,反之亦然。诸如“配置”的短语并非意味着这样的配置对于该主题公开而言是必要的或者这样的配置应用于该主题公开的所有配置。涉及到一种配置的公开可以应用于所有配置或者一种或多种配置。诸如一种配置的短语可以指代一种或多种配置,反之亦然。
单词“示例”在这里被用来表示“用作示例或说明”。这里被描述为“示例”的任何方面或设计都并非必然被理解为与其它方面或设计相比是优选或有利的。
贯穿本公开所描述的对于本领域技术人员而言已知或随后变为已知的各个方面的要素的所有结构和功能等同形式被明确通过引用结合于此并且意在被权利要求所包含。权利要求的要素都并非在35U.S.C.§112第六段的条款下进行理解,除非该要素被明确使用“用于...的装置”进行表达,或者在方法权利要求的情况下,该要素使用短语“用于...的步骤”进行表达。此外,就术语“包括”、“具有”等在描述或权利要求中使用的范围而言,这样的术语意在以类似于术语“包括”的方式而是包含性的,就像“包括”在权利要求中被用作过渡词时那样进行解释。

WEB应用之间的消息发送.pdf_第1页
第1页 / 共29页
WEB应用之间的消息发送.pdf_第2页
第2页 / 共29页
WEB应用之间的消息发送.pdf_第3页
第3页 / 共29页
点击查看更多>>
资源描述

《WEB应用之间的消息发送.pdf》由会员分享,可在线阅读,更多相关《WEB应用之间的消息发送.pdf(29页珍藏版)》请在专利查询网上搜索。

所公开的主题涉及一种用于在应用之间进行消息发送的系统,该系统具有一个或多个处理器以及包括指令的存储器,当被该一个或多个处理器执行时,该指令使得该一个或多个处理器执行操作,该操作包括:接收包括与web应用相关联的标识符的消息,该web应用具有接收与在数据网络上进行操作的发布方相关联的所选择的事件的订用。该操作还包括从该发布方接收至少一个所选择的事件的事件通知。该操作还包括确定该web应用是否被订用以。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1