引言
在智能交通行業(yè)中,傳統(tǒng)的短信平臺是以短信貓(GSM MODEM)技術(shù)實現(xiàn)對手機的短信發(fā)送達與接收,從而實現(xiàn)智能交通業(yè)務(wù)中的氣象預(yù)警信息、防污防臺信息、路網(wǎng)運行路政設(shè)施情況、突發(fā)事件信息等及時通知相關(guān)管理人員和維護人員。隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,移動、聯(lián)通、電信三大運營商已推出各自的短信網(wǎng)關(guān)接口用于企業(yè)級的短信平臺接入。智能交通行業(yè)的短信平臺需要在此基礎(chǔ)上根據(jù)各運營商的接口進行功能的升級和完善,以適應(yīng)行業(yè)的發(fā)展需求。
關(guān)鍵技術(shù)介紹
短信網(wǎng)關(guān)
短信網(wǎng)關(guān)主要是解決各運營商之間短信互通和服務(wù)提供商(SP)的接入問題,同時完成計費采集、業(yè)務(wù)管理、網(wǎng)絡(luò)管理等功能。通過短信接口,可以將短信平臺與各種應(yīng)用系統(tǒng)進行無縫高效對接,將應(yīng)用系統(tǒng)產(chǎn)生的動態(tài)信息轉(zhuǎn)變成手機短信。傳統(tǒng)的短信貓技術(shù)(GSM MODEM)技術(shù)實現(xiàn)PC對手機收發(fā)信息,適合小項目的開發(fā)。直接接入運營商短信網(wǎng)關(guān)的方法實現(xiàn)不需要附加新的硬件,但是需要到運營商申請網(wǎng)關(guān),適合于企業(yè)級的大型通信開發(fā),如向移動、聯(lián)通、電信等公司申請,使用起來比較方便。
Web Service
介紹 Web Service是一種輕量級的、獨立的、低耦合的通訊技術(shù),它可以接收從其它系統(tǒng)中傳遞過來的各種請求。對于Web Service技術(shù)來說Web服務(wù)就是一個URL 資源,調(diào)用方可以通過編程方式請求得到它的服務(wù),并且不需要知道所請求的服務(wù)內(nèi)部機制是如何實現(xiàn)的。(Web Service體系結(jié)構(gòu)如圖1所示)
▲圖1:Web Service的體系結(jié)構(gòu)
通過SOAP在Web上提供的軟件服務(wù),使用WSDL文件進行說明,并通過UDDI進行注冊。 SSH框架 SSH框架采用面向?qū)ο蟮姆治龇绞綄⒁恍┠P蛯崿F(xiàn)為java對象,然后編寫基本的DAO接口,并給出Hibernate的DAO實現(xiàn),采用Hibernate框架實現(xiàn)的DAO 類來實現(xiàn)java類與數(shù)據(jù)據(jù)之間的轉(zhuǎn)換和訪問,最后由 Spring管理Struts和Hibernate。
SSH框架
自上而下可以分為表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和域模塊層四個層次。采用上述開發(fā)模型,不僅實現(xiàn)了視圖、控制器與模型的徹底分離,而且還實現(xiàn)了業(yè)務(wù)邏輯層與持久層的分離,大大提高了系統(tǒng)的可服務(wù)注冊中服務(wù)請求者服務(wù)提供者發(fā)布發(fā)現(xiàn)綁定復(fù)用性,提高了開發(fā)效率。
短信平臺總體設(shè)計
功能設(shè)計
通知短信提醒功能短信平臺可以與智能交通的交通監(jiān)控系統(tǒng)、設(shè)施設(shè)備運維系統(tǒng)等外部系統(tǒng)進行關(guān)聯(lián),當(dāng)系統(tǒng)出現(xiàn)異常情況可通過用戶登記的手機號送相應(yīng)的短信提示,及時通知監(jiān)控人員、運維人員,以便及時查看,大大提高了工作效率。短信發(fā)送功能 用戶可以通過相應(yīng)帳號向在系統(tǒng)中已登記的手機 號發(fā)送短信。子功能包括:從組織結(jié)構(gòu)樹選擇接收短信 的人員,定義接收短信子組。如根據(jù)監(jiān)控、運維、應(yīng)急 等業(yè)務(wù)定義需要接收短信的短信子組。在短信發(fā)送時 可以選定后一次發(fā)送,同時可以查看短信發(fā)送內(nèi)容和 條數(shù)等情況。短信自動分發(fā)功能 短信平臺對應(yīng)移動、聯(lián)通和電信三個發(fā)送通道,可 根據(jù)接收手機號不同,自動將信息分發(fā)到相應(yīng)的短信網(wǎng) 關(guān)。同時保留短信貓接口,當(dāng)短信網(wǎng)關(guān)通訊出現(xiàn)異常時 可以使用短信貓接口作為備用接口。
總體架構(gòu)設(shè)計
▲圖2:短信平臺的整體架構(gòu)
短信平臺的整體設(shè)計決定了系統(tǒng)的健壯性和易用性。本架構(gòu)采用基于java語言的SSH框架架構(gòu)技術(shù),自上而下可以分為應(yīng)用層、接口層、協(xié)議層、數(shù)據(jù)層和接入層五個層次: 應(yīng)用層:監(jiān)控系統(tǒng)、運維系統(tǒng)、日常管理以及其它 在信息化建設(shè)過程中上線的各種應(yīng)用都可以實現(xiàn)信息發(fā) 送通知和短信提醒的功能。雖然系統(tǒng)架構(gòu)和所采用編程 語言可能有所不同,但是采用Web Service接口技術(shù)可以很好的實現(xiàn)這些異構(gòu)系統(tǒng)與短信平臺的無縫對接。接口層:短信平臺采用B/S架構(gòu),用戶可以統(tǒng)一登錄到短信平臺。第三方的應(yīng)用程序則通過Web Service接口接入至短信平臺。協(xié)議層:SMS(短信服務(wù))協(xié)議主要用來處理文本、數(shù)字或二進制非文本數(shù)據(jù)為主,對于長度超過140 字節(jié)的短信自動拆分,然后分別發(fā)送,接收端接收后拼接還原為長短信。MMS(多媒體信息服務(wù))協(xié)議主要用來處理多媒體短信的發(fā)送,包括視頻、圖片、聲音和文字等。數(shù)據(jù)層:數(shù)據(jù)層是整個短信平臺的核心模塊,為其他層次提供數(shù)據(jù)庫支持。數(shù)據(jù)主要包括用戶數(shù)據(jù)、短信數(shù)據(jù)和匯總統(tǒng)計數(shù)據(jù),同時還可以用來存儲短信發(fā)送、接收和定制情況等。接入層:目前國內(nèi)各大電信運營商在短信網(wǎng)關(guān)的通信上分別制定了不同的協(xié)議,例如:EMPP協(xié)議(移動)、SGIP協(xié)議(聯(lián)通)、SMGP協(xié)議(電信)。不同運營商用戶分別連接不同的運營商網(wǎng)關(guān),接入層主要的工作是實現(xiàn)各短信運營商短信網(wǎng)關(guān)的對接,由于每一家短信運營商的短信接入?yún)f(xié)議并不相同,因此在接入層按照短信運營商劃分為移動、聯(lián)通、電信接入模塊。同時保留短信貓模塊,當(dāng)與運營商網(wǎng)關(guān)通訊出現(xiàn)異常時,可通過短信貓進行信息發(fā)送。
關(guān)鍵模塊的實現(xiàn)
短信平臺整體功能強大,具體多個功能模塊。平臺采用J2EE技術(shù)開發(fā),整體架構(gòu)采用SSH框架和Oracle數(shù)據(jù)庫技術(shù)。開發(fā)環(huán)境使用Myeclipse實現(xiàn)部署。關(guān)鍵模 短信管理監(jiān)控系統(tǒng)運維系統(tǒng) 日常管理應(yīng)用層HTTP接口Web Service接口接口層其它應(yīng)用短信中心通訊錄通訊記錄管理用戶管理SMS協(xié)議MMS協(xié)議協(xié)議層數(shù)據(jù)庫接口數(shù)據(jù)層移動接入模塊接入層 移動接入模塊 移動接入模塊 短信貓接入模塊主要包括移動、聯(lián)通、電信三家主流運營商的接口實 現(xiàn)。
基于EMPP協(xié)議實現(xiàn)移動運營商短信的發(fā)送 EMPP是上海移動制定的企業(yè)短信通平臺接口協(xié)議,版本為V2.0。它規(guī)定了上海移動企業(yè)短信通業(yè)務(wù)客戶接入的消息類型和定義,規(guī)定了EP(使用短信平臺發(fā)送短信的企業(yè)客戶端)與ESMP(企業(yè)短信平臺)之間短信收發(fā)接口協(xié)議的內(nèi)容,適用于各EP的開發(fā)廠商。EMPP協(xié)議主要提供以下兩類業(yè)務(wù)操作:短信接收和短信發(fā)送。協(xié)議以TCP/IP作為底層通信承載。企業(yè)端可以在一個TCP連接上可以連續(xù)發(fā)送多個數(shù)據(jù)包,在TCP連接保持期間,如果沒有數(shù)據(jù)包發(fā)送,需要雙方發(fā)鏈路檢測包以維持此連接。通信雙方以客戶-服務(wù)器方式建立TCP連接,用于雙方信息的相互提交。當(dāng)信道上沒有數(shù)據(jù)傳輸時,通信雙方應(yīng)每隔時間C發(fā)送鏈路檢測包以維持此連接,當(dāng)鏈路檢測包發(fā)出超過時間T后未收到響應(yīng),應(yīng)立即再發(fā)送鏈路檢測包,再連續(xù)發(fā)送N-1次后仍未得到響應(yīng)則斷開此連接。在EP與ESMP之間發(fā)送短信時采用異步方式,即客戶端在發(fā)送一條短信后不必等待服務(wù)器端的響應(yīng)即可再次發(fā)送短信。
▲圖3:EP與ESMP交互過程中的應(yīng)答方式
基于SGIP協(xié)議實現(xiàn)聯(lián)通運營商短信的發(fā)送 SGIP是中國聯(lián)通制定的短消息網(wǎng)關(guān)系統(tǒng)接口協(xié)議(,版本為V1.2。協(xié)議所描述的短消息網(wǎng)關(guān)接口協(xié)議,用于完成在SMG(聯(lián)通公司的短消息網(wǎng)關(guān))和SP(服務(wù)提供商)之間、SMG和SMG之間短消息的發(fā)送、接收和轉(zhuǎn)發(fā)功能,以及SMG和GNS之間路由表的同步功能。 SMG是具有短消息轉(zhuǎn)發(fā)功能的短消息網(wǎng)關(guān)。全國可以有多個SMG網(wǎng)關(guān),SMG網(wǎng)關(guān)之間通過互聯(lián)網(wǎng)等方式實現(xiàn)網(wǎng)絡(luò)互聯(lián)。每一個SMG同時與多個SMSC以及多個SP連接。全網(wǎng)具有唯一有效的GNS,GNS負責(zé)全局路由表的維護與更新;為了確保路由表存儲的安全性,網(wǎng)絡(luò)中設(shè)置主備用GNS,兩個GNS要保持一致性。每一個 SMG都和GNS連接。SMG與SP、SMG與GNS以及SMG與 SMG之間的通信協(xié)議為SGIP協(xié)議。SMG與SMSC之間的通信統(tǒng)一采用SMPP3.3協(xié)議。
▲圖4:SMG的體系結(jié)構(gòu)
SGIP有兩種具體實現(xiàn)方式,一種是采用專用SGIP方式,另一種是采用通用HTTP方式。SMG和GNS、以及SMG和SMG之間采用專用SGIP方式作為承載協(xié)議;而SP和SMG的通信同時支持專用SGIP方式和通用 HTTP方式兩種承載協(xié)議。 SP和SMG之間的通信由客戶端向服務(wù)器端發(fā)起連接。連接建立以后,由客戶端向服務(wù)器端發(fā)送命令,服務(wù)器端必須對接收到的每一條命令返回一條應(yīng)答消息。SP和SMG互為客戶端和服務(wù)器端。SP與SMG之間發(fā)送的任何一條命令都帶有一個序列號,序列號由命令源產(chǎn)生??蛻舳伺c服務(wù)器端通信開始以后,客戶端可以向服務(wù)器端發(fā)送相應(yīng)的命令,服務(wù)器端對收到的命令返回應(yīng)答。
▲圖5:SP和SMG的通信業(yè)務(wù)實現(xiàn)
▲圖6:SP和SMG的通信業(yè)務(wù)實現(xiàn) (SP為客戶端) (SMG為客戶端)
命令在SP和SMSC之間的傳輸是采用類似接力的方式,每條命令和對應(yīng)的應(yīng)答僅僅表示該次命令發(fā)送的結(jié)果是否正確。比如,SP向某一個手機發(fā)送一條短消息,是通過向本地SMG發(fā)送一條Submit命令實現(xiàn)的,隨后,SP會從SMG接收到一條Submit_ Resp應(yīng)答。但是,即使應(yīng)答表示Submit命令已正確接收,也不表示Submit命令內(nèi)的短消息已經(jīng)發(fā)送到手機上了,而僅僅表示該短消息已經(jīng)傳送到SMG,SMG將會作下一步處理,或者發(fā)送給 SMSC,或者路由到另外的SMG,最終由目的SMSC發(fā)送到手機上。這中間任何一個環(huán)節(jié)出現(xiàn)錯誤,系統(tǒng)會終止信息的繼續(xù)發(fā)送,并且通過向原SP發(fā)送Report命令告訴發(fā)送出錯的原因(如果 SP指定要求反饋的話)。
基于SMGP協(xié)議實現(xiàn)電信運營商短信的發(fā)送 SMGP是中國電信制定的短消息網(wǎng)關(guān)協(xié)議(短消息網(wǎng)關(guān)協(xié)議),版本為V3.0.3。協(xié)議適用于適用于短消息網(wǎng)絡(luò)上(固定網(wǎng)、移動網(wǎng))短消息網(wǎng)關(guān)與其它網(wǎng)元之間進行短消息的傳輸,適用于短消息網(wǎng)關(guān)、相關(guān)網(wǎng)元設(shè)備開發(fā)商及內(nèi)容提供商。 SMGW(短消息網(wǎng)關(guān))與ESME(外部短消息實體)之間共有兩種連接方式:長連接和短連接。本系統(tǒng)采用短連接方式。通信雙方以客戶-服務(wù)器方式建立TCP連接,應(yīng)答與請求在同一個連接中完成。系統(tǒng)采用客戶/服務(wù)器模式,操作以客戶端驅(qū)動方式發(fā)起連接請求,完成一次操作后關(guān)閉此連接。通信雙方之間的消息發(fā)送后等待T秒后未收到響應(yīng),應(yīng)立即重發(fā),再連續(xù)發(fā)送N-1次后仍未得到響應(yīng)則停發(fā)。
▲圖7:業(yè)務(wù)實現(xiàn)流程圖
結(jié)束語
隨著信息技術(shù)的不斷發(fā)展,短信群發(fā)平臺作為獲取信息、發(fā)布通知公告的一種重要方式越發(fā)顯得重要。文章提出的基于SSH的短信平臺,實現(xiàn)了移動、聯(lián)通、電信三大運營商短信網(wǎng)關(guān)接口的接入,并在此基礎(chǔ)上實現(xiàn)了通知短信提醒功能、短信發(fā)送功能以及短信自動分發(fā)功能,有效地延伸了有效延伸了其他應(yīng)用系統(tǒng)的信息流,提高了信息發(fā)送的便捷性和針對性,具有一定的推廣性和研究價值。目前系統(tǒng)已經(jīng)上海市交通委指揮中心監(jiān)控系統(tǒng)正式使用,在今后的信息化發(fā)展中如何能夠更加充分有效地利用短信平臺還需要進一步研究和探索。