多年來,氣象短信業務已成為重要的氣象公共服務形式,實用、便捷、權威是其在競爭激烈的信息服務業站穩腳跟的重要因素,它在指導人們生產生活及社會防災減災中已經發揮重要作用。因受國家對信息業管理多重限制,用戶獲取氣象短信的方式目前主要靠上行指令的方式,用戶需要記住繁瑣的指令以及SP特服號碼,不方便用戶操作,尤其是定制業務,需要二次確認過程,大大增加了用戶操作的復雜度。USSD(非結構化補充數據業務)是一種新興的交互式短信平臺技術,通過USSD方式進行操作,直觀便捷,用戶輕松即可完成相關需求。筆者根據山東移動氣象短信平臺現狀,利用ASP腳本程序與USSD網關進行鏈接,可以實現數據傳輸,完成相關業務操作,并根據相關協議要求,將信息內容進行BASE64編碼,保證信息下發的安全性。經實際工作測試,系統負載小、運行穩定,同時也是利用成熟的網絡技術為氣象服務拓寬服務方式和服務領域一種探索和創新。 USSD技術 USSD是一種新興的交互式短信平臺技術,它是一種基于全球移動通信系統(GSM)網絡的新型交互式數據業務。USSD系統采用面向連接的交互式會話方式 , 可以提供綜合性、交互式信息服務的數據業務。USSD、SMS都屬于電路承載型的業務,但USSD在會話過程中一直保持無線連接,提供透明管道,不進行存儲轉發,因此,USSD每次消息發送不需要重新建立信道,就響應時間而言,USSD比短消息的響應速度快,從而提高用戶參與交互的積極性。USSD具有如下特點。 功能強。能以對話方式和信息業務菜單方式提供服務。 操作簡便。用戶無需輸入繁瑣指令,根據菜單進行操作。直觀便利。 高效。在交互式應用中,由于只需建立一次連接,減少了多次建立信令連接的時延,提高了響應速度。 適用范圍廣。USSD可在目前所有GSM手機上運行并支持漫游功能。 USSD可以開展多種特色業務,利用其交互菜單的功能可以建立多種信息門戶服務例如移動銀行、金融股票交易、手機話費查詢、氣象信息查詢、收發電子郵件等等。USSD技術單獨使用或與目前的SMS、GPRS技術相結合,市場前景十分廣闊。 USSD業務流程 USSD業務目前是以山東氣象移動短信平臺為基礎設計實現的。用戶進入USSD門戶后,根據菜單選擇具體業務,USSD門戶將向移動96159平臺發送請求(96159是山東移動的自有業務平臺),96159根據具體請求向SP方(氣象局就是SP之一)轉發,氣象短信平臺收到請求后,將業務結果生成XML報文,返回給96159平臺,再由96159平臺打包封裝后,提交給USSD門戶,最終展示在用戶終端上(見圖1)。其中,傳輸過程報文采用XML格式,96159平臺與SP平臺之間采用http短連接方式,而接口模式采取同步請求/響應模式。簡而言之,USSD門戶負責業務菜單的設計以及用戶的交互顯示,96159平臺在整個USSD處理流程中起到鑒權指令、計費判斷的作用,SP平臺則負責具體的業務響應和信息處理。 對于用戶使用來說,只需要記住USSD業務服務號碼(可以保存在手機通訊錄里),例如:目前山東移動手機用戶通過直接撥打表1所列號碼即可獲取信息服務。對比傳統方式,這樣的操作無疑大大提高了執行效率,平均響應時間縮短80%。 ASP腳本程序設計接口 由于氣象短信平臺后臺數據庫是SQL SERVER,而ASP程序具有與SQL SERVER數據庫良好的訪問模式,本身又是腳本程序,精煉靈活,同時ASP在讀取、構建XML報文時的技術應用又很成熟,綜合考慮,選擇ASP作為接口程序語言。下面通過代碼簡要說明asp腳本編寫過程。 第一步:首先解析96159平臺傳遞過來的SPServiceAccessReq 請求數據包。 Set ReceivedDoc = server.CreateObject("Msxml2.DOMDocument") ReceivedDoc.load Request TransactionID=ReceivedDoc.selectSingleNode("http://Head/TransactionID").text …… feemsisdn=ReceivedDoc.selectSingleNode("http://Body/Request/FeeMSISDN").text linkid=ReceivedDoc.selectSingleNode("http://Body/Request/LinkID").text 第二步:調用函數,進行數據庫查詢,此處利用了ASP中的ADO組件。 第三步:將查詢結果生成XML包,返回給96159平臺。 第四步:USSD門戶接收到96159透傳的信息包后,進行解析,并將結果響應在用戶終端上,最終完成整個交互操作。 BASE64編碼實現 Base64是網絡上用于傳輸8Bit字節代碼的編碼方式,為了將信息進行加密,根據協議要求,需要將返回包XML中的Property字段內容進行BASE64編碼。考慮到ASP與Javascript有良好的結合能力,故選擇在ASP程序里嵌套Javascript腳本,并要求該腳本在服務器端進行,即,即<script language=javascript runat="server">。 由于返回字段內容包括漢字、數字等字符,在進行BASE64編碼前需要將字段內容由UTF-16轉換成UTF-8格式,即function utf16to8(str) (此處代碼省略),此過程非常重要,否則漢字字符無法被正確的編解碼,最終導致亂碼的出現。 然后再進行編碼function base64encode(str) (此處代碼省略)。 結語 利用ASP做接口程序,可以輕松實現短信平臺與USSD門戶的信息交互,通過USSD方式,用戶可以方便的獲取氣象信息,既方便了用戶體驗,又為氣象信息發布提供了一個新穎的途徑,隨著USSD菜單設計的豐富,更多的氣象信息可以通過這種方式向公眾發布。ASP作為經典的B/S模式Web Service應用已經非常成熟,雖然在處理大型數據的能力上,能力有所欠缺,但巧妙的利用它,憑借其與Windows系統、XML良好的兼容性,代碼編寫、調試的簡便,輕松容易的存取數據庫等特點,可以在很多HTTP環境下、系統負載相對小的的應用領域發揮重要作用,并且開發周期短,定會起到事半功倍的效果。 |