基於簡訊網關WAP推送的實現

來源:互聯網
上載者:User

WAP PUSH既有資訊發送主動、及時的特點,又有可隨時隨地接收資訊的優勢,因而具有良好的應用
前景。該文簡單介紹了WAP PUSH系統架構、推送協議和推送方式,重點介紹了通過簡訊網關實現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)(XML)作為訊息的描述語言,通過簡單的請求響應機制完成資料的傳輸。PAP可以在多種通訊協定(包括超文字傳輸通訊協定 (HTTP)(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,短訊息點對點通訊協定 (PPP)), 與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_
FB7E782B9E587BBE4BBA5E4B88BE993BEE68EA5E88EB7E58F96E5BDA9E4BFA1E58685
E5AEB9000101_

  為一串可以成功發送的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也將能進一步推送多媒體資訊,有著更寬廣的應用前景。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.