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
分享到:
相关推荐
移动终端操作系统架构概览
浅谈移动互联网时代IT云计算系统架构.pdf
结合无线网络的结构及企业信息系统特点,详细分析并阐述专网中移动邮件推送系统整体架构设计方案,完成服务器端与移动终端软件设计方案,设计后台数据管理系统。采用J2EE为开发平台,实现专用移动邮件推送系统服务器端的...
消息推送主要有两种实现方式,客户端定时“拉取”和服务器主动“推送”。“拉取”方式是客户端按照预设的触发条件和时间间隔,不停地向服务器查询更新,然后发出拉取请求以获取最新消息;而“推送”的方式则是在...
移动互联网技术架构及其发展
移动互联网不可阻挡地进入了我们的生活。作者将自己在百度和天猫期间的跨终端Web的开发实践转化为书中的技术方案和实现,呈现给各位读者。第1章提出了跨终端Web的概念以及实现跨终端Web的多重途径,第2章主要介绍...
这也是移动互联网背景下推送系统的发展的机遇。 本主题就千万级并发在线推送系统如何在低成本下,保证推送的时效性、有效性、内容形式的多样性、以及省电省流量等方面进行一个解析和分享。 讲师信息:叶新江,个...
电信设备-跨移动应用的消息推送方法、装置、移动终端和存储介质.zip
紧随“互联网 ”发展前沿,研究适用于移动互联网的信息推送技术。对比多种设计方案,基于消息队列遥测传输协议设计信息推送系统。研发了配置安卓操作系统的手机APP客户端、PHP服务器端,数据库使用MySql,在Windows...
移动终端操作系统架构概览解剖.docx移动终端操作系统架构概览解剖.docx移动终端操作系统架构概览解剖.docx移动终端操作系统架构概览解剖.docx移动终端操作系统架构概览解剖.docx移动终端操作系统架构概览解剖.docx...
移动互联网终端
移动Push推送是移动互联网最基础的需求之一,用于满足移动互联环境下消息到达App客户端。以转转(58赶集旗下真实个人的闲置交易平台)为例,当买家下单后,我们通过移动Push推送消息告诉卖家,当卖家已经发货时,...
基于移动互联网大数据的异构实时计算架构分析.pdf
电信设备-从信息系统向移动终端推送信息的方法及系统.zip
电信设备-从信息服务器向移动终端推送信息的系统及方法.zip
原有老的信鸽 鹅厂不维护了,现在在腾讯云出现了收费的移动推送。 资源是对 新版移动推送 进行Java代码的集成。
基于HTML移动终端平台推送信息系统设计与实现实用文档doc.doc
基于HTML移动终端平台推送信息系统设计与实现(完整资料).doc
移动互联网终端应用开发技术.pdf