山東氣象服務短信平臺建設的探討
陳偉 2004/11/02
隨著“關注氣象、關注生活、關注健康”的思想逐步為大家所接受,氣象服務已經成為人們日常生活中密切相關的事情,而獲取氣象服務的渠道也成為影響人們及時了解氣象信息的重要因素。電視、廣播和報紙是我們通常獲得信息的方式,但是隨著移動通信技術的發(fā)展,在手機短消息上提供氣象服務正以其“方便、及時、易用”的優(yōu)點迅速成為一種新的發(fā)布方式。山東省氣象臺利用手機短消息作為發(fā)布渠道,在山東全省推出“1210手機氣象站”服務,經過半年多時間的運作,在社會效益和經濟效益方面都取得了較大的突破。
山東省氣象臺為實現“1210手機氣象站”服務,通過技術合作的方式建設了山東省氣象服務短信平臺。該平臺采用操作系統無關、開放性好的J2EE軟件架構,數據庫選用處理能力強、穩(wěn)定性好的Oracle9i大型數據庫系統,該平臺目前正在為全省50萬用戶每天通過短消息提供各種天氣預報服務。下面將主要介紹氣象短信平臺的系統結構、各模塊功能和系統特點。
一、系統結構
氣象服務短信平臺主要由如下模塊組成:信息編審模塊、氣象服務定制WEB站點、MO指令處理模塊、信息發(fā)送預處理模塊、短信收發(fā)模塊和管理監(jiān)控模塊。系統結構圖詳見圖1。

(點擊看大圖)
在圖1的系統結構圖中,氣象短信平臺共有四類用戶:氣象預報員、手機終端用戶、客戶服務人員和系統管理員。天氣預報員通過互聯網訪問信息編審模塊每天及時錄入天氣預報信息;手機終端用戶通過訪問氣象短信網站、打客服電話、發(fā)送MO訂閱指令等多種方式訂閱和退訂天氣預報短信,這三種方式分別通過終端和氣象服務定制Web站點、短信收發(fā)模塊和MO指令處理模塊實現信息訂閱和退訂功能;客服人員通過接聽客服電話的方式為手機用戶提供天氣預報的訂閱、退訂、查詢、點播等服務;系統管理員負責對整個平臺的管理維護,通過管理監(jiān)控模塊進行各種系統參數的設置,監(jiān)控系統的正常運行,每月進行收費并生成有關統計報表。
發(fā)送預處理模塊實時檢測天氣預報信息錄入情況,一旦有通過審核的天氣預報信息,則通過短信收發(fā)模塊向有關訂閱天氣預報的用戶發(fā)送手機短信。
二、系統功能
下面分別介紹氣象短信平臺各模塊功能。
1.信息編審模塊
信息編審模塊用JSP和JavaBean編寫,在Tomcat下運行,為各地氣象站氣象預報員提供天氣預報信息錄入審核的Web站點,氣象預報員通過Web登錄之后可以通過瀏覽器錄入、審核天氣預報信息。
氣象服務短信平臺已開通6個欄目的天氣預報:早間天氣、晚間天氣、晨練指數、體感指數、風寒指數、酷熱指數,開通地區(qū)包括山東省內各地市、縣天氣預報以及全國其他城市天氣預報和世界主要城市天氣預報。
由于手機短信一條最大長度只有70個漢字,所以在信息錄入時系統自動進行字數統計,如果超出一條短信的長度則發(fā)出警告信息。在信息錄入時可指定信息的發(fā)送時間,這樣可以避免在不合適的時間發(fā)送短信到用戶手機上。為了防止信息錄入出錯,在信息錄入之后需要由不同人對其進行審核,審核通過之后才能作為正式發(fā)布的天氣預報。
為提高系統運行效率,系統每天將已不再需要的過期信息轉移到歷史信息表中。
2.氣象服務定制Web站點
氣象服務定制Web站點用JSP和JavaBean編寫,在Tomcat下運行,為手機用戶和客服人員提供通過Web進行用戶注冊、天氣預報信息訂閱、退訂、查詢等功能。該站點為用戶自己進行天氣預報的訂閱、退訂以及客服人員協助用戶進行處理時提供了很大方便。
為增加系統安全性,客服用戶Web界面只能通過特定的IP訪問。為了加快Web響應速度和防止占用太多數據庫連接,Web站點通過數據庫連接池獲取數據庫連接,在連接池中對最多數據庫連接數加以限制。
為了避免用戶重復訂閱已經訂閱過的天氣預報,不管用戶采用何種訂閱方式,氣象短信平臺都提供自動檢查機制,不允許同一個手機號碼重復訂閱同一地區(qū)的同一個天氣預報欄目。
3.信息發(fā)送預處理模塊
信息發(fā)送預處理模塊由Oracle存儲過程和Java應用程序編寫,根據用戶訂閱和天氣預報信息錄入審核情況,隨時將需要給用戶發(fā)的短信組織好存入發(fā)送信息表中,供短信收發(fā)模塊發(fā)送給用戶手機。
用戶訂閱信息有兩類情況,一類是及時發(fā)送信息,由氣象預報員指定發(fā)送時間;另一類是定時發(fā)送信息,由用戶自己指定發(fā)送時間。發(fā)送預處理模塊對這兩類信息分別處理,以保證按照指定時間將信息發(fā)送給用戶。
由于天氣預報有大量訂閱用戶,不可能在很短時間內將短信全部發(fā)送完畢,因此平臺針對不同的信息設置不同的優(yōu)先級,優(yōu)先級高的短信將優(yōu)先發(fā)送,保證對服務需要及時響應的短信能及時發(fā)送到用戶手機上。如用戶訂閱、退訂的反饋短信優(yōu)先級最高,點播信息次之,訂制信息第三,其他通知類信息優(yōu)先級最低。
4.短信收發(fā)模塊
短信收發(fā)模塊采用Java應用程序編寫,一方面接收平臺的信息發(fā)送請求,根據手機號碼,不論是移動用戶手機還是聯通用戶手機分別通過移動的CMPP協議或聯通的SGIP協議將信息發(fā)送到用戶手機;另一方面接收來自終端用戶的MO指令并將其交由MO指令處理模塊處理。所有通過平臺短信收發(fā)模塊發(fā)送和接收的信息都保存在數據庫中作為日志以供查詢、計費和統計使用。
短信收發(fā)模塊和發(fā)送預處理模塊的接口采用數據庫方式,發(fā)送預處理模塊將待發(fā)送消息存入發(fā)送消息表中,短信收發(fā)模塊從發(fā)送消息表中取出消息并發(fā)送。為確保高優(yōu)先的信息發(fā)送請求能得到及時處理,每次從信息表中按照優(yōu)先級從高到低讀出給定數量的信息加以處理,處理完之后再取下一批信息。對于發(fā)送失敗的短信重發(fā)幾次盡可能保證短信發(fā)送成功。短信收發(fā)模塊還支持定時發(fā)送短信功能。
短信收發(fā)模塊和MO指令處理模塊之間的接口采用JLTP協議,JLTP協議是結合聯通SP接入標準協議SGIP和移動SP接入標準協議CMPP的統一協議,MO指令處理模塊采用JLTP協議中的HTTP方式接收移動和聯通手機用戶發(fā)送的MO指令并做相應處理。
5.MO指令處理模塊
MO指令處理模塊由JavaServlet程序和PL/SQL存儲過程組成,主要負責處理用戶的信息訂閱、退訂指令,對于系統不能識別的MO指令,將其交給客服人員進行人工處理。
為了用戶能夠盡可能方便地進行訂閱和退訂,平臺定義了非常簡單的訂閱、退訂指令:11表示定制天氣預報,22表示點播當天的天氣預報,00表示退訂天氣預報。MO指令處理模塊通過手機號段表能夠自動識別用戶手機號碼是屬于哪個地、市、縣的,即為其訂閱該號碼所在地區(qū)的天氣預報。根據需要,管理員可以靈活配置多個天氣預報訂閱和退訂指令。
6.管理監(jiān)控模塊
管理監(jiān)控模塊采用Delphi編寫,主要實現氣象短信平臺中欄目、地區(qū)、用戶、服務、用戶訂閱情況、短信群發(fā)、MO和客服處理、計費策略、優(yōu)惠策略、減免名單、包月扣費、統計報表等各種管理功能,并監(jiān)控平臺的運行情況。
管理監(jiān)控模塊由系統管理員使用,通過用戶名和口令登錄進入系統。系統管理員分為兩類:超級管理員和普通管理員,普通管理員經過授權之后才能執(zhí)行相應功能項。
計費優(yōu)惠策略包括固定時間折扣和初次使用折扣兩種。管理監(jiān)控模塊可以按欄目、地區(qū)、時間段等條件產生各種靈活的統計報表。
管理監(jiān)控模塊中最常用的是MO和客服處理功能,MO人工處理功能將系統不能識別的MO指令列出來,由管理員進行人工處理;客服功能可以在接用戶電話的同時通過客服界面幫助用戶進行信息查詢、點播、定制和退訂。如圖2所示,該功能將有關用戶的訂閱情況、上下行短信查詢、MO指令內容、各種處理操作集成在一個界面中,可以很方便地完成MO和客服電話受理,效率非常高。
為了及時發(fā)現、解決系統各模塊可能出現的故障,平臺專門設計實現了系統監(jiān)控功能,維護人員可隨時監(jiān)控各模塊運行情況,一旦某臺服務器資源緊缺或某項服務發(fā)生故障,監(jiān)控系統會發(fā)出警報并向維護人員的手機發(fā)出短信通知。

圖2 管理監(jiān)控模塊的MO和客服處理界面
三、系統特點
山東省氣象服務短信平臺針對系統用戶量大、服務要求高、客服壓力大的情況,在平臺的設計和實現中著重考慮了具備簡單易用、容錯性好、高性能、高穩(wěn)定性等特點。
1.簡單易用
平臺在各方面都充分考慮了簡單易用的特性,不論終端用戶、客服人員還是系統管理維護人員和平臺的交互都非常方便,例如MO和客服處理功能,在一個界面里就集成了某個用戶的所有相關信息,查詢和處理都非常方便,一個按鈕就可以完成服務的退訂和訂閱,系統預存了給用戶常用的反饋短信并可隨時添加修改,一般情況下在10秒鐘內就可以接完一個客服電話并處理完畢,1秒鐘內就可以完成一個MO指令的人工處理。
2.容錯性好
平臺各模塊都具備很好的容錯能力,如標準的服務退訂指令是“00”,考慮的用戶輸入指令時可能出現的錯誤指令,平臺將“00”、“OO”、“零零”也都作為服務指令處理。短信收發(fā)模塊需要與聯通和移動的短信網關連接,由于網絡原因以及電信運營商系統升級、維護等原因,會發(fā)生連接中斷,一旦網絡和對方的程序恢復正常,短信收發(fā)模塊會自動重新連接并開始短信收發(fā)服務,不需要人工干預。而平臺各模塊與數據庫的連接都具備一旦與數據庫的連接中斷而自動進行重連的功能。由于充分考慮了容錯性,平臺能夠長時間持續(xù)穩(wěn)定地運行。
3.高性能
由于天氣預報信息自身的特點,需要在較短時間內將天氣預報信息發(fā)送給幾十萬甚至上百萬用戶,一個短信接入號無法滿足性能上的要求,氣象短信平臺采用多個接入號同時發(fā)送信息的方法提高性能,解決了發(fā)送速度的問題。而針對用戶的上行指令處理,不管用戶發(fā)送指令到哪個接入號,都能實現相同的功能。目前氣象服務短信平臺通過4個接入號,發(fā)送速度已達到每秒發(fā)送80條短信。
同樣對于幾十萬用戶來說,每天的信息處理、統計也存在著性能問題,平臺充分利用Oracle數據庫的存儲過程進行大數據量處理來提高性能,例如每天天氣預報信息通過審核之后,發(fā)送預處理模塊在幾分鐘內就將幾十萬短信準備就緒并保存好每個用戶的操作日志。
4.高穩(wěn)定性
由于平臺具備非常強的容錯能力以及完善的監(jiān)控系統,平臺的穩(wěn)定性非常好。平臺各模塊的運行都相對獨立,不會因為其他模塊的故障而影響自身的正常運行,實踐表明每個模塊都能持續(xù)運行幾個月而不會中斷,對于網絡問題以及電信運營商的網關問題造成的服務中斷,平臺還具備服務的自動恢復能力。而一旦服務中斷,維護人員會在第一時間得到消息并及時解決。
山東氣象短信服務平臺經實踐證明是一個成功的系統,很多用戶通過MO短信、電話等方式對我們的氣象短信服務表示滿意和贊賞,我們將不斷完善氣象服務短信平臺,為廣大用戶提供更好的氣象服務。
通信世界網(www.cww.net.cn)
相關鏈接: