1 为什么需要全平台推送?
设想你有一个很棒的应用。以电商为例,用户搜索了一些产品,后来又放入了购物车。你的服务器记录了用户的这些行为,发现他可能会对某类商品感兴趣。而这类商品又刚刚新添加了一些特别炫的新货,不需要用户再次查询,应用会立刻通知给用户:“嘿,瞧瞧这新东西,也许你会喜欢!”。从技术角度怎么实现呢?显然我们需要一个push服务。相对Pull的方式,Push不仅仅能更实时的提供信息,更省电,而且基于server端强大的数据挖掘能力,push可以主动的发现和提供更多的有用信息,对用户来说,这很cool;对公司来说,这是商机。
移动互联网全平台是包括IOS,Android,Windows Phone等全部主流移动设备在内,也许还应该包括浏览器和PC终端。现在用户已经不仅仅局限于某一种方式接入移动互联网,更常见的是用多种方式,多种设备。无论从技术构架层面还是公司层面,显然不能接受只能推送一种设备。
2 推送服务概述
主流移动平台几乎都提供了push服务的解决方案,
Apple Push Notification
Android Push Notification
Windows Phone Push Notification
图看起来一个比一个复杂,概括起来移动设备push服务主要组件是:
(1)Push Notification 服务器
PN服务一般由移动系统厂商提供,主要通过心跳和移动设备保持长连接。
对于IOS和Windows Phone设备,国内开发者都可以很方便的Apple和Microsoft提供的PN服务,这里暂不展开。Android系统稍微复杂些,因为google的C2DM服务国内访问被墙,最好是自己实现server和android设备的长连接。好在实现起来也不复杂,本质上和维护一个PC client的长连接没有什么区别。可以参考一个基于XMPP协议的开源实现:https://sourceforge.net/projects/androidpn/
(2)Push App 服务器
即APN中的provider,Android中的App Server,负责推送具体数据。PA服务器需要根据PN服务的推送协议,向PN服务器发送数据包。比如,PA服务器需要根据APN协议封装二进制payload并推送数据到苹果PN服务器(APN)。或者根据Windows Phone push协议调用MPN http接口,推送数据。
(3)设备注册服务
用于绑定用户信息和用户设备。对于全平台推送,应该支持一个用户绑定多种设备。
网页浏览器push
使用Comet协议,不展开。
PC客户端
使用Socket长连接,不展开。
push服务架构构想
跨终端推送架构的核心是提供和设备解耦的数据push服务。
1,通过各种协议网关,将移动互联网上全部用户看成统一的长连接终端,通过封装不同的推送方式,为推送服务提供统一的推送接口。推送服务本身应该是独立于设备连接方式的。
2,推送服务应该具有插件式扩展能力,可以方便的添加或者删除任何一种设备的推送。
3,推送服务和push网关解耦合,任何一种设备推送挂掉不影响整个业务。
4,推送服务不关心具体是哪些数据应该被推送,只负责把业务变更的数据推送到网关。由网关自己检查是否有注册用户的设备信息,以及确定是否应该推送数据。这样push服务只专注于大量数据的实时推送,因此具备了很强的扩展性和伸缩性。
技术实现
push服务技术实现主要问题在于:(1)如何获得业务数据?(2)如何实现插件化?(3)如果解耦的将业务数据push到网关。
以上问题业界中各家应该有各家的解决方案。我想简单的方案是:
(1)数据量小,可以轮询数据库即可,push服务在本地缓存数据。数据量大,可以用消息队列。
(2)通过spring配置
(3)各个网关服务器和push服务之间也采用和APN或者MPN类似的接入方式,即Socket长连接或者是HTTP长连接。
- 大小: 117.7 KB
- 大小: 18 KB
- 大小: 96.6 KB
- 大小: 62.6 KB
分享到:
相关推荐
《跨移动应用的消息推送方法、装置、移动终端和存储介质》这一资料主要涵盖了现代通信技术中的一个重要领域——消息推送服务,特别是在电信设备和移动设备上的实现。本文将深入解析这一技术,包括其基本原理、工作...
【基于HTML移动终端平台推送信息系统设计与实现实用文档】 ...它不仅降低了开发成本,还提升了信息推送的效率和针对性,适应了移动互联网时代用户对于信息获取的需求。关键词:HTML5、移动应用、推送系统、跨平台。
### JEE技术在移动互联网中的应用与架构演变 #### 概述 本文档详细地介绍了Java Enterprise Edition(JEE)技术在移动互联网领域的应用及其随访问量增长所面临的架构变化。JEE作为企业级应用程序的标准平台,其在...
移动互联网不可阻挡地进入了我们的生活。作者将自己在百度和天猫期间的跨终端Web的开发实践转化为书中的技术方案和实现,呈现给各位读者。第1章提出了跨终端Web的概念以及实现跨终端Web的多重途径,第2章主要介绍...
本文题为《基于移动互联网大数据的异构实时计算架构分析》,作者是陈海倩,来自于鼎信信息科技有限责任公司,位于广东广州。文章深入探讨了大数据特别是移动互联网环境下,大数据管理的现状以及异构数据处理的挑战,...
个推是一家专注于移动互联网推送技术的公司,其提供的推送服务可以实现精准、实时的消息推送,支持单个用户、多个用户以及全局推送等多种场景。服务端调用工具类是这个项目的核心部分,它封装了与个推服务器交互的...
这也是移动互联网背景下推送系统的发展的机遇。 本主题就千万级并发在线推送系统如何在低成本下,保证推送的时效性、有效性、内容形式的多样性、以及省电省流量等方面进行一个解析和分享。 讲师信息:叶新江,个...
移动资讯应用推送报告主要探讨了移动应用中资讯推送的现状和用户接受程度,并针对不同年龄段、不同手机操作系统用户的接收偏好进行分析。资讯推送成为移动应用留住用户的重要手段,尤其是在内容丰富的自媒体时代背景...
移动互联网安全解决方案主要包括架构安全、终端安全、网络安全和服务安全四个方面: * 架构安全:系统管控 * 终端安全:主动防御、访问控制、隐私加密 * 网络安全:3G接入安全、WiFi接入安全、GSM安全机制 * 服务...
下面我们将深入探讨数据推送的基本概念、方法、系统架构以及其在移动终端上的应用。 1. **数据推送概念**: 数据推送是一种通信模式,其中服务器主动将信息发送到请求或订阅该信息的客户端,而不是等待客户端发起...
3. 终端能力调用安全测试:该测试包括短信能力调用安全测试、彩信能力调用安全测试、通话能力调用安全测试、邮件能力调用安全测试、录音能力调用安全测试、截屏能力调用安全测试、摄像头能力调用安全测试、推送能力...
这一系列的架构演进,不仅体现了极光推送在系统架构设计上的专业深度,也代表了在面对互联网海量用户规模和技术挑战时,极光公司对技术的不断创新和优化。在大规模分布式系统架构及设计方面,极光推送团队通过其实践...
《基于移动终端真实地理位置的推送信息发布系统和方法》这一资料主要探讨了现代电信技术中一个重要的应用领域——精准定位服务。这项技术的核心是利用移动终端(如智能手机或平板电脑)的GPS或其他定位功能,获取...
信息推送系统是一种用于自动化分发信息的机制,能够在不需要用户主动索求的情况下,将信息送达...同时,随着移动互联网的普及,移动设备上的推送服务将变得越来越重要,推送系统的兼容性和跨平台能力也逐渐受到重视。
首先,移动终端是移动互联网的基础。随着智能手机和平板电脑等设备的普及,对移动设备的处理能力、电池寿命和用户界面设计提出了更高的要求。同时,为了满足多样化的用户需求,终端需要支持各种应用程序和操作系统,...
在当今互联网应用中,实时消息推送已经成为提高用户体验和互动性的重要工具,尤其是在社交网络、在线游戏、金融交易、物联网(IoT)设备等场景下。本文将深入探讨该系统的架构、工作原理以及使用Java开发推送系统的...
1. ICT产业核心技术平台/体系颠覆性迁移:移动互联网的兴起导致了从PC(以Wintel架构为核心)向移动智能终端(以Android和iOS操作系统以及ARM架构处理器为核心)的技术平台迁移。这一过程中,移动智能终端的出货量、...