消息推送技术研究与未来展望
作者:姜翔 平安科技渠道服务平台统一推送团队

摘要: 消息推送作为与用户交互的重要渠道,通过挖掘用户需求,推送个性化定制消息,能解决用户如何高效获取高价值信息的痛点,提升应用价值,提高品牌影响力。本文回顾了推送技术的发展历史,从推送基本功能出发,阐述了推送系统的基本需求和基础架构。同时,随着技术变迁推送技术也面临着新的挑战,本文对消息推送的未来发展趋势进行了展望。

关键词:推送系统、技术发展、系统需求和架构、未来展望

随着移动互联网的兴起和4G网络的普及,通过网络获取信息的成本已经大大降低,用户获取信息的意愿日益强烈。庞大的互联网用户群体数量的激增带来的是商机巨大的移动互联网市场。同时,如何能高效地从纷繁芜杂的信息中获取高价值的信息成为了用户的痛点,而解决用户此类痛点成为抢占市场的关键。消息推送作为服务方向用户传递消息的重要渠道,正是解决此类痛点的有效途径。通过挖掘用户需求,利用“消息推送系统”可高效、准确、快速的为用户推送个性化定制消息,满足用户对高价值信息的追求,以提升自身应用价值,扩大影响力。

作为与用户交互的关键技术,国内外有多家第三方推送服务提供商,如国外的亚马逊推送,国内的阿里云推送。而国内部分大公司出于对信息保密性的考虑,采用自建推送系统的方式以满足公司内部的推送需求,同时也提供了对外的推送服务,如平安集团的平安推送,腾讯的信鸽推送等。平安作为国际金融行业的重要企业,由于金融行业的特殊性,平安推送更注重信息的安全性和保密性。

一、推送技术发展

“推送”这一概念在1996年由PointCast 网络公司提出,旨在为用户提供更准确、更实时的消息推送。Google公司在2009年开发了C2DM(Cloud toDevice Messaging)推送技术以供Android平台的应用提供方进行消息推送。而后,苹果公司推出了APNS(Apple Push Notification service)推送技术,统一了IOS平台的推送业务。伴随着推送技术的发展,推送技术主要经历3个阶段,从轮询方式、SMS短信推送方式逐渐发展到长连接推送方式。

1、轮询方式

轮询是由客户端主动发起请求的推送方式。客户端通过与服务器的网络连接,以定时任务的方式询问服务器端是否有新的推送消息。这种方式的效率取决于请求频率的设计,如果请求频率过高,会消耗较多的资源;而若请求频率较低,则消息的延时较高,实时性得不到保证。

2、SMS短信推送方式

短信方式通过运营商的短信通道将消息发往客户设备。通过编码可以保证消息的保密性,应用再利用手机系统的短信拦截功能,获取推送消息,反向解码后推送给用户。短信方式的由于通过运营商渠道,推送的稳定性得以保障。但同时,由于要向运营商按推送量进行付费,因此成本较高,通常作为补充手段应用。

3、长连接推送方式

长连接推送方式是最为通用也是受到研究最多的推送方式。不同于“轮询”的消息传递方式,服务方通过保持与客户端的长连接,掌握了消息推送的主动权。客户端按一定频率向客户端发送一个心跳以保持长连接,当消息推送时直接通过长连接发送消息。长连接的推送方式,保证了消息推送的实时性。相比于“轮询”方式,长连接推送节省了客户端电量、流量等资源消耗。当然,当大量设备与服务器保持长连接时,服务器端的压力陡增,必须优化服务器以保持高并发下的良好性能。苹果公司的APNS推送方式、Google的C2DM推送方式以及基于MQTT协议或XMPP协议的推送都是基于长连接的方式进行消息的推送。

二、推送系统需求

推送系统涉及海量的数据和客户,系统的设计要从多方面考虑。从推送系统基本功能出发,系统的基本需求可以从以下几个方面考虑:

1、系统安全性

推送系统作为影响千万用户的消息产品,安全性是其最重要的指标之一。其一,要保证推送系统自身的安全性,保证系统不被非法分子用于传播恶意信息,完善信息审查。其二,保证APP信息和用户隐私不被泄漏,做好不同用户和APP之间的信息隔离。消息发送过程中需要对消息进行加密处理,对接收方SDK做好合法性认证,以防恶意伪造身份截取信息。

2、系统稳定性

推送系统受到连接数、推送量、网络状况等影响,其运行环境具有一定的复杂性。为保证推送系统对消息的实时性保障,要求系统具有相当的鲁棒性以对抗复杂环境。系统的稳定性可以从信息存储安全性、消息送达保障等方面表现。首先,推送系统需要处理千万级以上用户的数据,大量数据的存储对数据库的性能和安全性有一定要求,在数据库发生故障时,是否有数据的备份、数据恢复方案以保障数据的安全性。其次,如何在网络不稳定的情况下,保障消息的送达。在丢包、断开连接等网络不稳定的情况下,是否有完善的重发和确认到达机制,尽可能缩短消息送达延时时间,以保障消息的实时性。最后,通过完善的监控、报表和信息反馈机制监测推送系统的性能,对系统性能做到心中有数。

3、推送系统的易用性

推送系统应该提供不同场景的推送服务,包括但不限于:从推送范围划分的个人推送和群推送、从推送时间划分的立即推送和定时推送、从推送目标群体划分的设备号推送、标签推送以及别名推送等。推送系统应根据消息重要性提供不同优先级的推送通道,以保障重要信息准确及时的到达。在消息发送后,推送系统应将推送情况应及时反馈给发送方,提供消息的送达、点击、屏蔽情况,以不同维度提供完整的推送效果报表,供业务方了解应用的推送效果。

三、推送系统基础架构

目前,IOS和Android操作系统占移动互联网设备90%以上的市场份额,推送系统多数也基于这两大平台。

1、IOS平台推送

      IOS平台的消息推送功能由苹果公司统一管理,应用其搭建的APNS服务器统一推送。APNS服务器负责保持与用户手机端的长连接,通过苹果手机向APNS服务器注册的设备号唯一识别一台苹果手机。当应用方需要进行消息推送时,将消息按照苹果推送服务的协议,将推送消息发给APNS服务器,由APNS服务器通过长连接进行推送。

      苹果推送的基本流程如下:在应用苹果公司的推送服务之前,应用方需要向苹果公司申请推送服务,得到开发者APP对应的安全证书,以接入推送服务。APNS会将设备的注册设备号(DeviceToken)告知应用方的APP,可以通过APP传递到应用方的推送后台。如果有推送消息时,应用方将设备ID,消息内容以及其它参数配置等发送请求给APNS,由APNS进行统一的消息推送。若此时应用处于非前台运行的状态,设备将会以角标的形式提示用户该应用有新消息,此时消息以离线消息的形式保存在APNS服务器中。

      APNS通过TLS安全连接以及令牌机制以确保推送的安全性。应用服务器与APNS之间,APNS和设备之间都需要交换证书以建立TLS连接。设备令牌是APNS通过设备的唯一证书信息生成的,设备在与APNS服务器连接时需要提供设备的Token,APNS将验证设备证书与设备Token是否合法匹配。应用服务器通过将Token传递给APNS服务器来确定推送目标设备。

2、Android平台推送

Google也提供了类似于APNS的推送服务C2DM (Android Cloud to DeviceMessaging),但由于国内的一些政策限制以及覆盖率偏低的原因,C2DM的推送效果并不好。因此国内应用方可以通过自建推送服务器或使用第三方的推送服务的方式进行消息推送。Android平台推送系统设计通常采用长连接推送方式。包括推送服务器、连接管理服务器、客户端SDK、以及消息队列、数据库等组成部分。

其中推送服务器负责推送数据的打包、校验、存储,以及消息的发送,是推送服务的发起点,也可以通过开放接口为外部提供推送服务;连接管理服务器负责维护客户端与推送系统的长连接,保证推送通道的畅通;客户端SDK负责设备信息的收集和上报,接收应用服务器推送的消息并展示以及消息状态的返回;消息队列和数据库负责消息的缓存和存储。

四、推送生态发展

推送技术从1996年至今已经发展了20多年的时间,基础的核心技术已经较为成熟。但随着技术变迁以及用户的需求不断提高,推送技术也需不断变革,推陈出新,紧跟时代的变化。近年来,针对消息推送的研究主要集中在以下几个方面:

1、融合数据挖掘和深度学习,从分析用户行为,形成用户画像,从多个方面深度挖掘用户的需求。在信息泛滥的大数据时代,从海量数据中高效获取高价值的信息是用户的根本需求。通过分析用户行为,筛选过滤用户感兴趣的信息,定制个性化的推送消息。

2、融入多种媒体技术,丰富推送场景。从推送的形式来看,推送消息不仅限于文字信息,更可结合图片、视频、语音等多媒体技术,提供更直观更立体的推送。从推送载体来看,推送不限于手机端或PC端,更可以结合物联网以及智能家具等硬件技术,提供全方位的消息推送。

3、结合云技术,提升推送的性能。推送系统是高并发、高流量的消息系统,同时由于推送消息的实时性,对系统在复杂环境下的稳定性有一定要求。通过搭建云服务器,提升系统的并发量,从而改进系统推送效率和吞吐量,使其提供更大规模的推送服务。同时,通过多主机的分布式系统,降低了个别服务器宕机对系统的损害,提升了推送系统整体的稳定性。

4、更规范的推送生态圈。Android系统因其开源特性而被广大用户称赞,但同时也带来了Android生态圈的不规范。在推送方面也是如此。各应用独立维持与客户端之间的连接,无谓增加了客户的电量和流量消耗。为了优化推送效率和客户端性能,参考APNS由各手机厂商提供统一的系统级的消息推送通道无疑是更有效的推送方案。在工信部号召下,国内成立“统一推送联盟”,制定Android统一的推送标准,优化推送通道,提升用户体验,促进推送生态圈良好的发展。

下一篇联盟介绍
分享到: