程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 基於短信網關WAP推送的實現

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

編輯:JAVA編程入門知識

摘要 WAP PUSH既有信息發送主動、及時的特點,又有可隨時隨地接收信息的優勢,因而具有良好的應用前景。該文簡單介紹了WAP PUSH系統框架、推送協議和推送方式,重點介紹了通過短信網關實現WAP推送的實現方法。

關鍵詞 無線應用協議,WAP推送,短信網關,PDU 模式

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 地址”段將省去

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved