摘 要:在智能手機上,正由于流量、電量寶貴的原因,使得與服務器保持持續(xù)不斷的長連接的代價太高,長連接的維護依賴于頻繁的網絡訪問,而網絡訪問將導致流量和電量的消耗,這給實現推送功能帶來的難處;在應用程序中使用定期查詢的方案來實現消息刷新,雖然可以減少維護長連接的代價,但也具有明顯的弊端--消息實時性差。本文就基于OOB(帶外)信道的智能手機應用推送方案進行分析研究。
關鍵詞:智能手機;OOB信道;推送方案
中圖分類號:TN929.5
在當代社會,手機正在趨向于智能化發(fā)展,越來越多的人使用智能手機進行查收郵件,瀏覽互聯網網頁等操作,智能手機很大程度覆蓋了電腦的功能,給人們帶來很多方便之處。如靈活性:智能手機相對于電腦來說,具有輕便的特點,十分適合攜帶;娛樂性,智能手機擁有各式各樣的傳感器,利用這些傳感器可以實現指南針,翻轉關閉鬧鐘等功能;實時性,通過網絡運營商,智能手機可以隨時隨地連接互聯網,消息更具有實時性。然而,智能手機也面臨著一些問題,如流量資費昂貴,電量消耗過快等,因此,傳統的電腦程序的一些技術方案無法平移到智能手機的應用程序中。
1 方案概述
OOB(Out-Of-Bound)短信,相對于移動應用的實際業(yè)務通道而言,也稱為帶外短信;OOB對于終端手機來講是不可見的,終端應用可以截取該OOB短信,從而達到服務端向客戶端推送數據的目的。
一種基于OOB(帶外)信道的智能手機應用程序推送方案,包括OOB推送服務器和OOB解析程序;OOB推送服務器,用于接收應用服務器的推送請求,當收到推送請求時,根據推送請求描述的推送對象,將內容通過OOB信道推送到OOB解析程序;OOB解析程序,接收并解析由OOB推送服務器推送的內容,將解析結果傳遞給智能手機應用程序,最終達到推送的目的;本發(fā)明解決了智能手機應用程序在不與服務器保持長連接的情況下的消息推送問題,具有節(jié)省手機流量、節(jié)省手機電量的特點,主要應用于對信息的實時性有一定要求的應用程序。
本方案所要解決的技術問題是提供一種基于OOB(帶外)信道的智能手機應用程序推送方案,以解決現有技術在移動互聯網中實現推送帶來的弊端。
2 OOB推送
2.1 邏輯架構。(1)OOB推送服務器,用于接收應用服務器的推送請求,推送請求包括推送內容和推送對象,OOB推送服務器接收推送請求后,將推送內容通過OOB信道發(fā)送到OOB解析程序;(2)OOB解析程序,用于接收并解析由OOB推送服務器推送的內容,將解析結果傳遞給智能手機的應用程序。
圖1
2.2 OOB特點。(1)OOB(帶外)信道與應用程序服務端和客戶端之間的網絡信道相互獨立,分別遵循不同的網絡傳輸協議;(2)OOB(帶外)信道是單向的,消息的發(fā)送方為OOB推送服務器,消息的接收方為OOB解析程序;(3)使用已有的通訊網絡的短信網絡作為OOB信道,推送的接收方為指定手機號碼,推送內容以短信的形式,通過網絡運營商轉發(fā)到接收方手機號碼上;(4)推送的內容為文字消息,根據內容的類型,劃分為控制消息和內容消息,控制消息和內容消息的協議由具體應用程序進行制訂,OOB推送服務器和OOB解析程序遵循該協議進行通信;(5)對于推送的內容,控制消息為控制信號的標識,OOB解析程序將該控制消息轉發(fā)到應用程序,應用程序根據協議和控制消息實現不同的操作;對于推送的內容,內容消息的表現形式為“鍵-值”對的內容的表現形式。
2.3 消息流程。流程說明:步驟1,應用服務器根據業(yè)務需要,發(fā)送推送請求到OOB推送服務器;步驟2,OOB推送服務器根據步驟1中應用服務器發(fā)送的請求,解析得到推送的內容和接受推送的對象;步驟3,OOB推送服務器通過SMPP(短消息點對點協議),將步驟2中得到的推送內容和接受推送的對象,發(fā)送短信到短信運營商;步驟4,短信運營商發(fā)送SMS(短信)到OOB解析程序所在的手機;步驟5,OOB解析程序解析SMS的內容,獲得控制消息和內容消息;步驟6,OOB解析程序將解析結果發(fā)送給應用程序。
圖2
3 OOB實現
3.1 基于Android系統。該OOB短信實際上是二進制短信(Android里的Data_SMS),Android系統收到該短信后并不會入庫也不會發(fā)送系統廣播事件,所以通過繼承ContentObserver使用觀察者模式并不能截取該OOB短信。
在Android系統中,截取二進制短信是采用Receiver方式,并配置指定的監(jiān)聽端口,收取該端口的二進制短信數據、解析以及后續(xù)業(yè)務處理。(1)SMPP發(fā)送端設置。發(fā)送端在短信發(fā)送模塊,在發(fā)送該OOB短信時,需要設置以下幾個字段replace_if_present_flag、esm_class、protocol_id、data_coding,此外還需要設置UDH,該UDH用于指定OOB短信需要發(fā)送到終端的哪個端口;(2)Android客戶端設置。在Android客戶端中如果需要截取二進制短信,需要在指定的端口上進行監(jiān)聽(正常情況下,接收到的二進制短信不會存到短信庫中)。
即在AndroidManifest.xml中receiver中加入過濾器為android.intent.action.DATA_SMS_RECEIVED,并且指定監(jiān)聽端口等信息,如下:
3.2 基于BlackBerry系統。BlackBerry客戶端設置,在Blackberry客戶端沒有相關的配置文件,只能通過程序來指定監(jiān)聽端口(正常情況下,接收到的二進制短信不會存到短信庫中)。
4 結束語
由上可見,本方案提供的一種基于OOB(帶外)信道的智能手機應用程序推送方案,有以下優(yōu)點:(1)可靠性高。本發(fā)明使用傳統的網絡運營商的短信網絡作為OOB信道,由于網絡運營商提供7*24小時不間斷的服務,而且相對于互聯網網絡,覆蓋面更為廣泛,因此本發(fā)明具有高可靠性的特點;(2)應用范圍廣。推送的內容協議可由具體應用程序自行定制,通信類應用程序可以使用本發(fā)明實現實時聊天消息推送,新聞類應用程序可以使用本發(fā)明實現新聞推送,協議的唯一的限制為,每條推送內容的文字必須小于短信文字的個數上限,因此本發(fā)明具有應用范圍廣的特點。
參考文獻:
[1]郎為民,孫月光,王逢東.LTE系統頻段與信道配置研究[J].電信快報:網絡與通信,2010(04):3-5.
[2]顧正敏.一種面向Android平臺的輕量級推送技術研究與應用[D].北京大學,2013.
作者單位:佳都新太科技股份有限公司,廣州 510665