基於短信網關wap推送的實現

1 WAP推送技術簡介

  1.1 什麼是WAP推送

  WAP推送(PUSH)技術是一種建立在客戶服務器上的機制,就是由服務器主動將信息發往客戶端的技術。同傳統的拉(PULL)技術相比,最主要的區 別在於推送(PUSH)技術是由服務器主動向客戶機發送信息,而拉(PULL)技術則是由客戶機主動請求信息。PUSH技術的優勢在於信息的主動性和及時 性。

  PUSH技術在Internet中沒能取得大的成功,原因是多方面的。主要原因在於固定網中計算機等固定設備爲用戶提供了足夠的資源和能力去查找信息 所以用戶通常將它作爲一個瀏覽信息的窗口,而不是被動的信息接收者。同時固定網用戶對於信息準確性的要求遠甚於對其及時性的要求,因此PUSH技術未能得 到廣泛的應用。

  而在移動網中,由於存在着網絡帶寬、移動終端能力以及自費標準高昂等諸多限制,使得用戶查找信息受到了一定的限制,如果將重要的信息主動及時地推送到 用戶的移動設備上無疑會大大方便用戶。移動通信的優點是移動設備能夠隨時隨地接收信息因此PUSH技術在移動網中可以大展拳腳,WAP PUSH正是PUSH技術和移動通信兩者揚長避短相結合的產物。WAP PUSH是在移動網絡中應用的PUSH技術,它結合了一般PUSH技術和移動網絡的特點。它的系統框架、使用協議和服務方式與固定網上的PUSH技術有很 大不同。

  1.2 WAP PUSH系統框架

  WAP PUSH框架主要包括推送發起者(PI:PUSH Initiator)、推送代理網關(PPG:PUSH ProxyGateway)和推送客戶(PC:PUSH Client) 三個功能部分。PI位於Internet中,而PC在WAP領域,PI和WAP客戶端所使用的協議是不同的,需要在中間建立一個協議轉換 網關即PPG。PPG通過推送訪問協議(PAP:PUSH AccessProtocol)與PI通信,通過推送空間傳輸協議(PUSH OTA:PUSH over-the-Air)完成向客戶推送信息的數據傳輸任務。

  PPG完成推送體系結構中的大部分工作,包括從Internet到移動網的訪問接入,以及與其有關的認證、安全、客戶端控制等所有工作。PPG所提供 的主要服務包括:1)PI的標識、鑑權和訪問控制;2)對推送內容進行語法分析,並依據數據類型定義(DTD)檢錯糾錯;3)客戶尋址與信息傳輸;4) PAP與PUSH OTA間的協議轉換;5)爲提高無線信道中的傳輸效率,對信息進行壓縮、編譯等處理。

  另外,PPG還可以通過別名機制實現組播和廣播,即將某些特定的地址別名映射到組播或廣播的操作中,具體方案可以由系統實現者決定。不同的客戶端,其能力是不同的,PPG還要負責響應PI的客戶能力查詢請求,以便於PI針對不同的客戶端構造合適的內容格式。

  1.3 推送協議

  PAP是PI與PPG間的通信協議,它使用可擴展標記語言(XML)作爲消息的描述語言,通過簡單的請求響應機制完成數據的傳輸。PAP可以在多種通信協議(包括超文本傳輸協議(HTTP)、簡單郵件傳輸協議(SMTP)等)之上實現。

  而PUSH OTA是運行於無線會話協議(WSP)之上的一個較爲簡單的協議層,負責從PPG到客戶代理的數據傳輸。PUSH OTA可使用面向連接的會話和無連接會話兩種WSP層服務,對於使用連接會話的推送,需要在PPG和客戶端間預先有一個激活的會話上下文;對於無連接的推 送,則通過預留的端口來完成通信。

  1.4 推送服務方式

  WAP的推送協議中定義了服務指示(SI:Service Indication)和服務加載(SL:Service Load)兩項服務,以給用戶和網絡運營者更多的選擇。服務指示是將新信息的指示和相關的通用資源標識符(URI)推送給用戶,由用戶選擇是立即處理信息 還是以後處理。服務加載是將一項服務的URI推送給用戶,然後客戶端自動地使用PULL技術根據該URI啓動服務。兩種服務的區別在於用戶是否介入推送信 息的處理過程。SL對推送信息的處理對用戶來說是透明的,而SI則在指示用戶的同時,請用戶對隨後的處理做出選擇。
PUSH可以將某一站點或某一業務的鏈接通過短信發送到支持WAP PUSH功能的手機上,這樣用戶只需要閱讀這條短信,打開短信中的鏈接,就可以直接訪問業務了。因此,WAP PUSH實現了短信和WAP業務的結合,節省了用戶尋找業務的時間,方便用戶直接找到並使用自己喜歡的業務。

  2 短消息網關簡介

  短消息網關(ISMG)是處於短消息中心(SMSC)和業務提供商(SP)之間的設備,它爲這兩個實體的數據交換提供安全、快捷的通道。網關與短消息 中心之間使用SMPP協議(Short Message Peer to Peer,短消息點對點協議), 與SP之間使用CMPP協議(China Mobile Peer to Peer,中國移動點對點協議),因此短消息網關需要完成協議的轉換、計費、路由、安全和網絡管理等功能。具體說來, SMPP通信代理系統主要實現網關和GSM網中短消息中心(SMSC)的連接,確保準確接收和發送數據,實現高效、可靠的數據傳輸。爲了達到規範要求的不 超過0.001%的數據丟包率,SMPP通信代理需要支持流量控制。CMPP通信代理系統主要是實現和SP服務提供商的連接,與SMPP通信代理系統不同 的是,由於協議的影響,CMPP通信代理是服務器端,需等待SP的連接,而SMPP通信代理是客戶端,需要主動連接SMSC。短消息網關處理系統是網關中 最複雜的處理進程,它完成的任務包括:向GNS(匯接網關) 查詢路由,維護路由表,進行協議轉換和數據分發。防火牆系統主要爲網關係統提供安全保障,它包括IP包過濾和身份驗證。短信網關計費系統主要形成各種計費 話單,爲計費提供依據。業務管理系統主要完成對業務進行統計報告,生成報表,爲運營者對用戶數據的添加、修改、刪除以及對網關係統的監控、查詢、操作和維 護提供接口和界面。

  3 基於短信網關發送WAP PUSH

  WAP PUSH的發送有兩種途徑,一個是通過PPG網關,另外一個是通過SMPP協議。其中SMPP是一個基本協議,在中國主要有三個由其派生的協議:中國移動 的CMPP協議,中國聯通的SGIP(在CDMA上是ETIP),以及小靈通的SMGP。通過中國移動的PPG網關發送WAP PUSH有着開發週期長,調測流程較複雜等不足,而使用CMPP協議即基於短信網關來進行WAP PUSH發送靈活性比較高,相對比較簡單。

  3.1 WAP PUSH發送的實現模式

  可通過計算機串口上連接GSM MODEM,用它向手機發送WAP PUSH。這種方法發WAP PUSH又分三種模式:BLOCK 模式、TEXT 模式和PDU 模式。BLOCK 模式現在用的很少了, TEXT 模式則只能發送ASCII 碼,它不能發送中文的UNICODE碼,而PDU 模式開發起來則較爲複雜,它需要編寫專門的函數來將文本轉換爲PDU 格式,但PDU 模式被所有手機支持,可以使用任何字符集,它也是手機默認的編碼方式,所以選用PDU模式發送WAP PUSH.

  3.2 PDU 模式
 
  用PDU 模式發送 WAP PUSH可以使用三種編碼: 7-bit 編碼、8-bit 編碼和UCS2 編碼。7-bit 編碼用於發送普通的ASCII 字符,8-bit 編碼通常用於發送數據消息,UCS2 編碼用於發送Unicode 字符。由於要實現中文WAP PUSH的發送,所以選擇用UCS2 編碼,即中文Unicode 碼。
⑴ UCS2 編碼原理 所謂UCS2 編碼,是將單個的字符(1-2 個字節)按ISO/IEC10646 的規定,轉變爲16 位 的Unicode 寬字符。即將單個的字符轉換爲由四位的‘0’-‘9’、‘A’-‘F’的數字和字 母組成的字符串。待發送的消息以UCS2 碼的形式進行發送。
⑵ 通過UCS2 編碼我們得到中文Unicode 碼,接着就可以進行發送PDU 串的編制了。從表面上看,PDU 串是ASCII 碼串,同樣由‘0’-‘9’、‘A’-‘F’這些數字和字母組成。它們是8 位字節的十六進制數,或者BCD 碼十進制數。PDU 串除了包含所發送的消息本身外,還包含很多其它參數信息,如服務中心號碼、目標號碼和編碼方式等

  例如

0051000BA13108086406F600F5A7850B05040B8423F_
0000303010129060603AE81EA8DCA02056A0045C6080C033231312e_
3133362e3135332e33302f776170707573682f70757368496e6465782e_
6a73703f7075736849643d3035303531313134313630353231000103E8A_
FB7E782B9E587BBE4BBA5E4B88BE993BEE68EA5E88EB7E58F96E5BDA9E4BFA1E58685E5AEB9000101_

  爲一串可以成功發送的WAP PUSH,其中包括了漢字描述和WAP頁面地址。具體分析如下

  00 SMSC 地址信息的長度 00表示用手機上設置短信中心號碼,PDU 串的“SMSC 址格式”段和“SMSC 地址”段將省去

  51 基本參數(TP-MTI/VFP) 不要求發送回覆

  00 消息基準值(TP-MR)

  0B 對方電話的長度

  A1 目標地址格式 A1表示爲國內格式

  3108086406F6 目標地址,補‘F’湊成偶數位後奇偶位互換

  00 協議標識(TP-PID) 是普通GSM 類型,點到點方式

  F5 用戶信息編碼方式 (TP-DCS)

  A7 有效期(TP-VP)

  85 用戶信息長度(TP-UDL)

  0B WAP PUSH頭部的總長度

  05040B8423F0表示接下來是一個WAP PUSH

  00 表示是Concatenated Short Messages

  03 長度

  03 reference number

  01 表示分成1個短信發送

  01 當前包的序號

  29060603AE81EA8DCA WSP

  02 標記位

  05 -//WAPFORUM//DTD SI 1.0//EN

  6A UTF-8

  00 標記開始

  45 <si>

  C6 <indication

  08 <action=signal-high>

  0C href="http://

  03 字符串開始

3231312e3133362e3135332e33302f776170707573682f
70757368496e6465782e6a73703f7075736849643d3035303531313134313630353231 URL

  00 URL 字符串結束

  01 >

  03 內容描述字符串開始

  E8AFB7E782B9E587BBE4BBA5E4B88BE993BEE68EA_
  5E88EB7E58F96E5BDA9E4BFA1E58685E5AEB9 內容描述字符串

  00 內容描述字符串結束

  01 </si>

  01 </indication>

  由以上分析可以看出,WAP PUSH可以被當作一種特殊的短信來發送,WAP PUSH包發送的內容實際上跟通過PPG網關發送的XML原理相同,但是經過了壓縮。壓縮之後的格式稱爲WBXML,這種格式將一些標記用代碼來表示。然 而WBXML的縮略標記分爲兩部分,一部分是所有類型的XML都通用的,另一部分是不同類型的XML有着不同的解釋。
用戶接收到此類信息時,在客戶端手機支持WAP的情況下,可以直接訪問到信息中加載的WAP網站地址,這樣服務器也達到了推廣業務方便用戶使用的目的。由 於在UCS2 編碼方式下,可發送短消息的最大字符數是140字節,即WAP PUSH中的推送URL與描述文字的總字符數爲140,因此描述文字的字數限制與推送的URL長度有關。

  4 結束語

  WAP PUSH技術結合了PUSH技術的優勢和移動通信服務的特性,具有良好的應用前景。但是WAP PUSH技術仍然存在着一些亟待解決的問題,如信息的鑑權與認證、信息的準確性、如何避免垃圾信息等。如何解決好這些問題將是WAP PUSH技術成功的關鍵。另外,隨着GPRS技術和3G無線通信技術的發展,無線信道的帶寬將逐步增大,WAP PUSH也將能進一步推送多媒體信息,有着更寬廣的應用前景。  
發佈了19 篇原創文章 · 獲贊 1 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章