基于OOB(带外)信道的智能手机应用推送方案

摘 要:在智能手机上,正由于流量、电量宝贵的原因,使得与服务器保持持续不断的长连接的代价太高,长连接的维护依赖于频繁的网络访问,而网络访问将导致流量和电量的消耗,这给实现推送功能带来的难处;在应用程序中使用定期查询的方案来实现消息刷新,虽然可以减少维护长连接的代价,但也具有明显的弊端--消息实时性差。本文就基于OOB(带外)信道的智能手机应用推送方案进行分析研究。

关键词:智能手机;OOB信道;推送方案

中图分类号:TN929.5

在当代社会,手机正在趋向于智能化发展,越来越多的人使用智能手机进行查收邮件,浏览互联网网页等操作,智能手机很大程度覆盖了电脑的功能,给人们带来很多方便之处。如灵活性:智能手机相对于电脑来说,具有轻便的特点,十分适合携带;娱乐性,智能手机拥有各式各样的传感器,利用这些传感器可以实现指南针,翻转关闭闹钟等功能;实时性,通过网络运营商,智能手机可以随时随地连接互联网,消息更具有实时性。然而,智能手机也面临着一些问题,如流量资费昂贵,电量消耗过快等,因此,传统的电脑程序的一些技术方案无法平移到智能手机的应用程序中。

1 方案概述

OOB(Out-Of-Bound)短信,相对于移动应用的实际业务通道而言,也称为带外短信;OOB对于终端手机来讲是不可见的,终端应用可以截取该OOB短信,从而达到服务端向客户端推送数据的目的。

一种基于OOB(带外)信道的智能手机应用程序推送方案,包括OOB推送服务器和OOB解析程序;OOB推送服务器,用于接收应用服务器的推送请求,当收到推送请求时,根据推送请求描述的推送对象,将内容通过OOB信道推送到OOB解析程序;OOB解析程序,接收并解析由OOB推送服务器推送的内容,将解析结果传递给智能手机应用程序,最终达到推送的目的;本发明解决了智能手机应用程序在不与服务器保持长连接的情况下的消息推送问题,具有节省手机流量、节省手机电量的特点,主要应用于对信息的实时性有一定要求的应用程序。

本方案所要解决的技术问题是提供一种基于OOB(带外)信道的智能手机应用程序推送方案,以解决现有技术在移动互联网中实现推送带来的弊端。

2 OOB推送

2.1 逻辑架构。(1)OOB推送服务器,用于接收应用服务器的推送请求,推送请求包括推送内容和推送对象,OOB推送服务器接收推送请求后,将推送内容通过OOB信道发送到OOB解析程序;(2)OOB解析程序,用于接收并解析由OOB推送服务器推送的内容,将解析结果传递给智能手机的应用程序。

图1

2.2 OOB特点。(1)OOB(带外)信道与应用程序服务端和客户端之间的网络信道相互独立,分别遵循不同的网络传输协议;(2)OOB(带外)信道是单向的,消息的发送方为OOB推送服务器,消息的接收方为OOB解析程序;(3)使用已有的通讯网络的短信网络作为OOB信道,推送的接收方为指定手机号码,推送内容以短信的形式,通过网络运营商转发到接收方手机号码上;(4)推送的内容为文字消息,根据内容的类型,划分为控制消息和内容消息,控制消息和内容消息的协议由具体应用程序进行制订,OOB推送服务器和OOB解析程序遵循该协议进行通信;(5)对于推送的内容,控制消息为控制信号的标识,OOB解析程序将该控制消息转发到应用程序,应用程序根据协议和控制消息实现不同的操作;对于推送的内容,内容消息的表现形式为“键-值”对的内容的表现形式。

2.3 消息流程。流程说明:步骤1,应用服务器根据业务需要,发送推送请求到OOB推送服务器;步骤2,OOB推送服务器根据步骤1中应用服务器发送的请求,解析得到推送的内容和接受推送的对象;步骤3,OOB推送服务器通过SMPP(短消息点对点协议),将步骤2中得到的推送内容和接受推送的对象,发送短信到短信运营商;步骤4,短信运营商发送SMS(短信)到OOB解析程序所在的手机;步骤5,OOB解析程序解析SMS的内容,获得控制消息和内容消息;步骤6,OOB解析程序将解析结果发送给应用程序。

图2

3 OOB实现

3.1 基于Android系统。该OOB短信实际上是二进制短信(Android里的Data_SMS),Android系统收到该短信后并不会入库也不会发送系统广播事件,所以通过继承ContentObserver使用观察者模式并不能截取该OOB短信。

在Android系统中,截取二进制短信是采用Receiver方式,并配置指定的监听端口,收取该端口的二进制短信数据、解析以及后续业务处理。(1)SMPP发送端设置。发送端在短信发送模块,在发送该OOB短信时,需要设置以下几个字段replace_if_present_flag、esm_class、protocol_id、data_coding,此外还需要设置UDH,该UDH用于指定OOB短信需要发送到终端的哪个端口;(2)Android客户端设置。在Android客户端中如果需要截取二进制短信,需要在指定的端口上进行监听(正常情况下,接收到的二进制短信不会存到短信库中)。

即在AndroidManifest.xml中receiver中加入过滤器为android.intent.action.DATA_SMS_RECEIVED,并且指定监听端口等信息,如下:

3.2 基于BlackBerry系统。BlackBerry客户端设置,在Blackberry客户端没有相关的配置文件,只能通过程序来指定监听端口(正常情况下,接收到的二进制短信不会存到短信库中)。

4 结束语

由上可见,本方案提供的一种基于OOB(带外)信道的智能手机应用程序推送方案,有以下优点:(1)可靠性高。本发明使用传统的网络运营商的短信网络作为OOB信道,由于网络运营商提供7*24小时不间断的服务,而且相对于互联网网络,覆盖面更为广泛,因此本发明具有高可靠性的特点;(2)应用范围广。推送的内容协议可由具体应用程序自行定制,通信类应用程序可以使用本发明实现实时聊天消息推送,新闻类应用程序可以使用本发明实现新闻推送,协议的唯一的限制为,每条推送内容的文字必须小于短信文字的个数上限,因此本发明具有应用范围广的特点。

参考文献:

[1]郎为民,孙月光,王逢东.LTE系统频段与信道配置研究[J].电信快报:网络与通信,2010(04):3-5.

[2]顾正敏.一种面向Android平台的轻量级推送技术研究与应用[D].北京大学,2013.

作者单位:佳都新太科技股份有限公司,广州 510665

推荐访问:信道 推送 智能手机 方案 OOB