基于短信網(wǎng)關(guān)WAP推送的實(shí)現(xiàn)

2010-08-28 10:47:36來(lái)源:西部e網(wǎng)作者:

摘要 WAP PUSH既有信息發(fā)送主動(dòng)、及時(shí)的特點(diǎn),又有可隨時(shí)隨地接收信息的優(yōu)勢(shì),因而具有良好的應(yīng)用前景。該文簡(jiǎn)單介紹了WAP PUSH系統(tǒng)框架、推送協(xié)議和推送方式,重點(diǎn)介紹了通過(guò)短信網(wǎng)關(guān)實(shí)現(xiàn)WAP推送的實(shí)現(xiàn)方法。

關(guān)鍵詞 無(wú)線應(yīng)用協(xié)議,WAP推送,短信網(wǎng)關(guān),PDU 模式

1 WAP推送技術(shù)簡(jiǎn)介

1.1 什么是WAP推送

WAP推送(PUSH)技術(shù)是一種建立在客戶服務(wù)器上的機(jī)制,就是由服務(wù)器主動(dòng)將信息發(fā)往客戶端的技術(shù)。同傳統(tǒng)的拉(PULL)技術(shù)相比,最主要的區(qū)別在于推送(PUSH)技術(shù)是由服務(wù)器主動(dòng)向客戶機(jī)發(fā)送信息,而拉(PULL)技術(shù)則是由客戶機(jī)主動(dòng)請(qǐng)求信息。PUSH技術(shù)的優(yōu)勢(shì)在于信息的主動(dòng)性和及時(shí)性。

PUSH技術(shù)在Internet中沒(méi)能取得大的成功,原因是多方面的。主要原因在于固定網(wǎng)中計(jì)算機(jī)等固定設(shè)備為用戶提供了足夠的資源和能力去查找信息所以用戶通常將它作為一個(gè)瀏覽信息的窗口,而不是被動(dòng)的信息接收者。同時(shí)固定網(wǎng)用戶對(duì)于信息準(zhǔn)確性的要求遠(yuǎn)甚于對(duì)其及時(shí)性的要求,因此PUSH技術(shù)未能得到廣泛的應(yīng)用。

而在移動(dòng)網(wǎng)中,由于存在著網(wǎng)絡(luò)帶寬、移動(dòng)終端能力以及自費(fèi)標(biāo)準(zhǔn)高昂等諸多限制,使得用戶查找信息受到了一定的限制,如果將重要的信息主動(dòng)及時(shí)地推送到用戶的移動(dòng)設(shè)備上無(wú)疑會(huì)大大方便用戶。移動(dòng)通信的優(yōu)點(diǎn)是移動(dòng)設(shè)備能夠隨時(shí)隨地接收信息因此PUSH技術(shù)在移動(dòng)網(wǎng)中可以大展拳腳,WAP PUSH正是PUSH技術(shù)和移動(dòng)通信兩者揚(yáng)長(zhǎng)避短相結(jié)合的產(chǎn)物。WAP PUSH是在移動(dòng)網(wǎng)絡(luò)中應(yīng)用的PUSH技術(shù),它結(jié)合了一般PUSH技術(shù)和移動(dòng)網(wǎng)絡(luò)的特點(diǎn)。它的系統(tǒng)框架、使用協(xié)議和服務(wù)方式與固定網(wǎng)上的PUSH技術(shù)有很大不同。

1.2 WAP PUSH系統(tǒng)框架

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

PPG完成推送體系結(jié)構(gòu)中的大部分工作,包括從Internet到移動(dòng)網(wǎng)的訪問(wèn)接入,以及與其有關(guān)的認(rèn)證、安全、客戶端控制等所有工作。PPG所提供的主要服務(wù)包括:1)PI的標(biāo)識(shí)、鑒權(quán)和訪問(wèn)控制;2)對(duì)推送內(nèi)容進(jìn)行語(yǔ)法分析,并依據(jù)數(shù)據(jù)類型定義(DTD)檢錯(cuò)糾錯(cuò);3)客戶尋址與信息傳輸;4)PAP與PUSH OTA間的協(xié)議轉(zhuǎn)換;5)為提高無(wú)線信道中的傳輸效率,對(duì)信息進(jìn)行壓縮、編譯等處理。

另外,PPG還可以通過(guò)別名機(jī)制實(shí)現(xiàn)組播和廣播,即將某些特定的地址別名映射到組播或廣播的操作中,具體方案可以由系統(tǒng)實(shí)現(xiàn)者決定。不同的客戶端,其能力是不同的,PPG還要負(fù)責(zé)響應(yīng)PI的客戶能力查詢請(qǐng)求,以便于PI針對(duì)不同的客戶端構(gòu)造合適的內(nèi)容格式。

1.3 推送協(xié)議

PAP是PI與PPG間的通信協(xié)議,它使用可擴(kuò)展標(biāo)記語(yǔ)言(XML)作為消息的描述語(yǔ)言,通過(guò)簡(jiǎn)單的請(qǐng)求響應(yīng)機(jī)制完成數(shù)據(jù)的傳輸。PAP可以在多種通信協(xié)議(包括超文本傳輸協(xié)議(HTTP)、簡(jiǎn)單郵件傳輸協(xié)議(SMTP)等)之上實(shí)現(xiàn)。

而PUSH OTA是運(yùn)行于無(wú)線會(huì)話協(xié)議(WSP)之上的一個(gè)較為簡(jiǎn)單的協(xié)議層,負(fù)責(zé)從PPG到客戶代理的數(shù)據(jù)傳輸。PUSH OTA可使用面向連接的會(huì)話和無(wú)連接會(huì)話兩種WSP層服務(wù),對(duì)于使用連接會(huì)話的推送,需要在PPG和客戶端間預(yù)先有一個(gè)激活的會(huì)話上下文;對(duì)于無(wú)連接的推送,則通過(guò)預(yù)留的端口來(lái)完成通信。

1.4 推送服務(wù)方式

WAP的推送協(xié)議中定義了服務(wù)指示(SI:Service Indication)和服務(wù)加載(SL:Service Load)兩項(xiàng)服務(wù),以給用戶和網(wǎng)絡(luò)運(yùn)營(yíng)者更多的選擇。服務(wù)指示是將新信息的指示和相關(guān)的通用資源標(biāo)識(shí)符(URI)推送給用戶,由用戶選擇是立即處理信息還是以后處理。服務(wù)加載是將一項(xiàng)服務(wù)的URI推送給用戶,然后客戶端自動(dòng)地使用PULL技術(shù)根據(jù)該URI啟動(dòng)服務(wù)。兩種服務(wù)的區(qū)別在于用戶是否介入推送信息的處理過(guò)程。SL對(duì)推送信息的處理對(duì)用戶來(lái)說(shuō)是透明的,而SI則在指示用戶的同時(shí),請(qǐng)用戶對(duì)隨后的處理做出選擇。

PUSH可以將某一站點(diǎn)或某一業(yè)務(wù)的鏈接通過(guò)短信發(fā)送到支持WAP PUSH功能的手機(jī)上,這樣用戶只需要閱讀這條短信,打開(kāi)短信中的鏈接,就可以直接訪問(wèn)業(yè)務(wù)了。因此,WAP PUSH實(shí)現(xiàn)了短信和WAP業(yè)務(wù)的結(jié)合,節(jié)省了用戶尋找業(yè)務(wù)的時(shí)間,方便用戶直接找到并使用自己喜歡的業(yè)務(wù)。

2 短消息網(wǎng)關(guān)簡(jiǎn)介

短消息網(wǎng)關(guān)(ISMG)是處于短消息中心(SMSC)和業(yè)務(wù)提供商(SP)之間的設(shè)備,它為這兩個(gè)實(shí)體的數(shù)據(jù)交換提供安全、快捷的通道。網(wǎng)關(guān)與短消息中心之間使用SMPP協(xié)議(Short Message Peer to Peer,短消息點(diǎn)對(duì)點(diǎn)協(xié)議), 與SP之間使用CMPP協(xié)議(China Mobile Peer to Peer,中國(guó)移動(dòng)點(diǎn)對(duì)點(diǎn)協(xié)議),因此短消息網(wǎng)關(guān)需要完成協(xié)議的轉(zhuǎn)換、計(jì)費(fèi)、路由、安全和網(wǎng)絡(luò)管理等功能。具體說(shuō)來(lái), SMPP通信代理系統(tǒng)主要實(shí)現(xiàn)網(wǎng)關(guān)和GSM網(wǎng)中短消息中心(SMSC)的連接,確保準(zhǔn)確接收和發(fā)送數(shù)據(jù),實(shí)現(xiàn)高效、可靠的數(shù)據(jù)傳輸。為了達(dá)到規(guī)范要求的不超過(guò)0.001%的數(shù)據(jù)丟包率,SMPP通信代理需要支持流量控制。CMPP通信代理系統(tǒng)主要是實(shí)現(xiàn)和SP服務(wù)提供商的連接,與SMPP通信代理系統(tǒng)不同的是,由于協(xié)議的影響,CMPP通信代理是服務(wù)器端,需等待SP的連接,而SMPP通信代理是客戶端,需要主動(dòng)連接SMSC。短消息網(wǎng)關(guān)處理系統(tǒng)是網(wǎng)關(guān)中最復(fù)雜的處理進(jìn)程,它完成的任務(wù)包括:向GNS(匯接網(wǎng)關(guān)) 查詢路由,維護(hù)路由表,進(jìn)行協(xié)議轉(zhuǎn)換和數(shù)據(jù)分發(fā)。防火墻系統(tǒng)主要為網(wǎng)關(guān)系統(tǒng)提供安全保障,它包括IP包過(guò)濾和身份驗(yàn)證。短信網(wǎng)關(guān)計(jì)費(fèi)系統(tǒng)主要形成各種計(jì)費(fèi)話單,為計(jì)費(fèi)提供依據(jù)。業(yè)務(wù)管理系統(tǒng)主要完成對(duì)業(yè)務(wù)進(jìn)行統(tǒng)計(jì)報(bào)告,生成報(bào)表,為運(yùn)營(yíng)者對(duì)用戶數(shù)據(jù)的添加、修改、刪除以及對(duì)網(wǎng)關(guān)系統(tǒng)的監(jiān)控、查詢、操作和維護(hù)提供接口和界面。

3 基于短信網(wǎng)關(guān)發(fā)送WAP PUSH

WAP PUSH的發(fā)送有兩種途徑,一個(gè)是通過(guò)PPG網(wǎng)關(guān),另外一個(gè)是通過(guò)SMPP協(xié)議。其中SMPP是一個(gè)基本協(xié)議,在中國(guó)主要有三個(gè)由其派生的協(xié)議:中國(guó)移動(dòng)的CMPP協(xié)議,中國(guó)聯(lián)通的SGIP(在CDMA上是ETIP),以及小靈通的SMGP。通過(guò)中國(guó)移動(dòng)的PPG網(wǎng)關(guān)發(fā)送WAP PUSH有著開(kāi)發(fā)周期長(zhǎng),調(diào)測(cè)流程較復(fù)雜等不足,而使用CMPP協(xié)議即基于短信網(wǎng)關(guān)來(lái)進(jìn)行WAP PUSH發(fā)送靈活性比較高,相對(duì)比較簡(jiǎn)單。

3.1 WAP PUSH發(fā)送的實(shí)現(xiàn)模式

可通過(guò)計(jì)算機(jī)串口上連接GSM MODEM,用它向手機(jī)發(fā)送WAP PUSH。這種方法發(fā)WAP PUSH又分三種模式:BLOCK 模式、TEXT 模式和PDU 模式。BLOCK 模式現(xiàn)在用的很少了, TEXT 模式則只能發(fā)送ASCII 碼,它不能發(fā)送中文的UNICODE碼,而PDU 模式開(kāi)發(fā)起來(lái)則較為復(fù)雜,它需要編寫專門的函數(shù)來(lái)將文本轉(zhuǎn)換為PDU 格式,但PDU 模式被所有手機(jī)支持,可以使用任何字符集,它也是手機(jī)默認(rèn)的編碼方式,所以選用PDU模式發(fā)送WAP PUSH.

3.2 PDU 模式

用PDU 模式發(fā)送 WAP PUSH可以使用三種編碼: 7-bit 編碼、8-bit 編碼和UCS2 編碼。7-bit 編碼用于發(fā)送普通的ASCII 字符,8-bit 編碼通常用于發(fā)送數(shù)據(jù)消息,UCS2 編碼用于發(fā)送Unicode 字符。由于要實(shí)現(xiàn)中文WAP PUSH的發(fā)送,所以選擇用UCS2 編碼,即中文Unicode 碼。

⑴ UCS2 編碼原理 所謂UCS2 編碼,是將單個(gè)的字符(1-2 個(gè)字節(jié))按ISO/IEC10646 的規(guī)定,轉(zhuǎn)變?yōu)?6 位 的Unicode 寬字符。即將單個(gè)的字符轉(zhuǎn)換為由四位的‘0’-‘9’、‘A’-‘F’的數(shù)字和字 母組成的字符串。待發(fā)送的消息以UCS2 碼的形式進(jìn)行發(fā)送。

⑵ 通過(guò)UCS2 編碼我們得到中文Unicode 碼,接著就可以進(jìn)行發(fā)送PDU 串的編制了。從表面上看,PDU 串是ASCII 碼串,同樣由‘0’-‘9’、‘A’-‘F’這些數(shù)字和字母組成。它們是8 位字節(jié)的十六進(jìn)制數(shù),或者BCD 碼十進(jìn)制數(shù)。PDU 串除了包含所發(fā)送的消息本身外,還包含很多其它參數(shù)信息,如服務(wù)中心號(hào)碼、目標(biāo)號(hào)碼和編碼方式等

例如

0051000BA13108086406F600F5A7850B05040B8423F_

0000303010129060603AE81EA8DCA02056A0045C6080C033231312e_

3133362e3135332e33302f776170707573682f70757368496e6465782e_

6a73703f7075736849643d3035303531313134313630353231000103E8A_

FB7E782B9E587BBE4BBA5E4B88BE993BEE68EA5E88EB7E58F96E5BDA9E4BFA1E58685E5AEB9000101_

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

00 SMSC 地址信息的長(zhǎng)度 00表示用手機(jī)上設(shè)置短信中心號(hào)碼,PDU 串的“SMSC 址格式”段和“SMSC 地址”段將省去

51 基本參數(shù)(TP-MTI/VFP) 不要求發(fā)送回復(fù)

00 消息基準(zhǔn)值(TP-MR)

0B 對(duì)方電話的長(zhǎng)度

A1 目標(biāo)地址格式 A1表示為國(guó)內(nèi)格式

3108086406F6 目標(biāo)地址,補(bǔ)‘F’湊成偶數(shù)位后奇偶位互換

00 協(xié)議標(biāo)識(shí)(TP-PID) 是普通GSM 類型,點(diǎn)到點(diǎn)方式

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

A7 有效期(TP-VP)

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

0B WAP PUSH頭部的總長(zhǎng)度

05040B8423F0表示接下來(lái)是一個(gè)WAP PUSH

00 表示是Concatenated Short Messages

03 長(zhǎng)度

03 reference number

01 表示分成1個(gè)短信發(fā)送

01 當(dāng)前包的序號(hào)

29060603AE81EA8DCA WSP

02 標(biāo)記位

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

6A UTF-8

00 標(biāo)記開(kāi)始

45

C6

08

0C href="http://

03 字符串開(kāi)始

3231312e3133362e3135332e33302f776170707573682f

70757368496e6465782e6a73703f7075736849643d3035303531313134313630353231 URL

00 URL 字符串結(jié)束

01 >

03 內(nèi)容描述字符串開(kāi)始

E8AFB7E782B9E587BBE4BBA5E4B88BE993BEE68EA_

5E88EB7E58F96E5BDA9E4BFA1E58685E5AEB9 內(nèi)容描述字符串

00 內(nèi)容描述字符串結(jié)束

01

01

由以上分析可以看出,WAP PUSH可以被當(dāng)作一種特殊的短信來(lái)發(fā)送,WAP PUSH包發(fā)送的內(nèi)容實(shí)際上跟通過(guò)PPG網(wǎng)關(guān)發(fā)送的XML原理相同,但是經(jīng)過(guò)了壓縮。壓縮之后的格式稱為WBXML,這種格式將一些標(biāo)記用代碼來(lái)表示。然而WBXML的縮略標(biāo)記分為兩部分,一部分是所有類型的XML都通用的,另一部分是不同類型的XML有著不同的解釋。

用戶接收到此類信息時(shí),在客戶端手機(jī)支持WAP的情況下,可以直接訪問(wèn)到信息中加載的WAP網(wǎng)站地址,這樣服務(wù)器也達(dá)到了推廣業(yè)務(wù)方便用戶使用的目的。由于在UCS2 編碼方式下,可發(fā)送短消息的最大字符數(shù)是140字節(jié),即WAP PUSH中的推送URL與描述文字的總字符數(shù)為140,因此描述文字的字?jǐn)?shù)限制與推送的URL長(zhǎng)度有關(guān)。

4 結(jié)束語(yǔ)

WAP PUSH技術(shù)結(jié)合了PUSH技術(shù)的優(yōu)勢(shì)和移動(dòng)通信服務(wù)的特性,具有良好的應(yīng)用前景。但是WAP PUSH技術(shù)仍然存在著一些亟待解決的問(wèn)題,如信息的鑒權(quán)與認(rèn)證、信息的準(zhǔn)確性、如何避免垃圾信息等。如何解決好這些問(wèn)題將是WAP PUSH技術(shù)成功的關(guān)鍵。另外,隨著GPRS技術(shù)和3G無(wú)線通信技術(shù)的發(fā)展,無(wú)線信道的帶寬將逐步增大,WAP PUSH也將能進(jìn)一步推送多媒體信息,有著更寬廣的應(yīng)用前景。

關(guān)鍵詞:WAP

贊助商鏈接: