王新秀,楊黎黎,于 璐,葛 林
(沈陽市氣象局,遼寧 沈陽 110168)
氣象災害屬于最為嚴重和頻繁的自然災害之一。人類面對各類氣象災害的發(fā)生,雖然不能用科技手段完全阻止,但可以采取有效的防范和處置措施,把災害帶來的損失降到最低程度??茖W有效的防災減災措施取決于各級政府部門和廣大公眾及時準確地掌握和利用各類預警信息及科學的防范建議[1-2]。隨著信息技術的快速發(fā)展,人類的通信領域越來越廣泛,這意味著接收信息的方式也越來越多樣化。為了滿足將氣象預警信息及時快速地發(fā)布給公眾,必須實現(xiàn)多手段發(fā)布方式。在日常的業(yè)務工作中,氣象預警人員不僅需要將預警信息發(fā)布給公眾還需要發(fā)送給各個業(yè)務單位和應急管理部門,而不同的單位要求的發(fā)布方式也不盡相同。因此在要求的預警信息發(fā)布時間內手動發(fā)布預警,需要大量的人力才能完成。
氣象系統(tǒng)對氣象預警信息發(fā)布的建設做了大量的研究與工作。例如,王赟等應用了Web Service技術研究了氣象預警短信發(fā)布系統(tǒng)[3];曹登峰等通過不同通信平臺的接入,實現(xiàn)了氣象短信的接收和發(fā)送功能[4];莫云音等設計開發(fā)了基于大喇叭、顯示屏的氣象信息發(fā)布監(jiān)控系統(tǒng)[5]。借鑒前人的研究成果,提出了一鍵式自動發(fā)布的氣象預警平臺多手段發(fā)布,預警人員只需要將預警信息制作完成,就可通過短信、傳真、FTP、電子郵件、微信、QQ等發(fā)布手段自動發(fā)送給預警信息接收用戶。其中短信、傳真、FTP、電子郵件屬于傳統(tǒng)的氣象預警發(fā)布手段,隨著技術發(fā)展,微信、QQ等都成為了有效的預警信息發(fā)布渠道[6]。微信和QQ作為大數(shù)據(jù)互聯(lián)時代的新技術手段,為氣象部門發(fā)布氣象災害和科普宣傳提供了新媒體[7]。這種多渠道發(fā)布氣象預警信息的方式可有效提高公眾的防災減災能力。
氣象預警平臺是一個基于B/S架構的面向沈陽市氣象臺使用的氣象預警信息發(fā)布業(yè)務的基礎平臺,其建設的重點在于預警信息制作和業(yè)務邏輯的實現(xiàn),主要運行在氣象局的局域內網(wǎng)。制作成功的預警信息以及發(fā)布方式存儲在Oracle局域網(wǎng)數(shù)據(jù)庫,運行各個發(fā)布手段的Java程序通過遍歷讀取Oracle數(shù)據(jù)庫將預警信息通過不同的發(fā)布方式進行發(fā)布。其中FTP傳輸方式將預警信息提供給氣象業(yè)務部門,發(fā)布程序主要在氣象局的局域網(wǎng)內的計算機中運行。而短信、傳真、電子郵件、微信、QQ等傳輸方式將預警信息發(fā)布給公眾及應急管理部門,發(fā)布程序則在互聯(lián)網(wǎng)的計算機中運行。其發(fā)布示意圖如圖1所示。
圖1 預警發(fā)布示意圖
系統(tǒng)主要使用Java編程語言,開發(fā)工具使用了Eclipse平臺和Oracle數(shù)據(jù)庫。
Eclipse是目前普遍受歡迎的一種集成開發(fā)環(huán)境,其最大特色就是插件化的體系結構[8]。本身只是一個框架平臺的Eclipse,在眾多插件的支持下,使其擁有著其他功能相對固定的IDE軟件很難具有的靈活性。Eclipse采用的技術是IBM公司開發(fā)的(SWT)一種基于Java的窗口組件,與Java本身提供的AWT和Swing窗口組件比較類似,由于使用了GUI中間層JFaceEclipse的用戶界面,大大簡化了基于SWT的應用程序的構建。
Oracle[9]數(shù)據(jù)庫通過對各類數(shù)據(jù)之間存在的關聯(lián)性進行分析,創(chuàng)立出對應數(shù)據(jù)的數(shù)據(jù)庫。Oracle數(shù)據(jù)庫應用廣泛,不僅能直接應用在關系數(shù)據(jù)庫的計算機系統(tǒng)中,還可以滿足商業(yè)數(shù)據(jù)庫管理系統(tǒng)的需求,為其提供完整的用戶和服務相關的系統(tǒng)架構。應用Oracle關系數(shù)據(jù)庫之后,可以創(chuàng)建多樣化的分布條件,供其他系統(tǒng)使用,不但可以單點查詢也可以多點查詢,進而確保各類數(shù)據(jù)平臺可以安全、穩(wěn)定地運行。
氣象預警平臺主要是通過B/S多層架構設計實現(xiàn)的。相比之前的2層C/S模式,B/S結構有著顯著的不同,其內部是有著3層架構的C/S模型。B/S結構的全稱是瀏覽器/服務器模式。這種新的網(wǎng)絡結構模型已經得到了比較廣泛的使用,以Internet的需求作為目標,B/S網(wǎng)絡架構模型被逐漸開發(fā)。B/S網(wǎng)絡架構在Web瀏覽器中已被大量使用,而且是目前很多應用軟件的重要組成部分[10]。
B/S多層架構是一種以網(wǎng)頁為基礎的面向互聯(lián)網(wǎng)IIS服務器(IIS,互聯(lián)網(wǎng)信息服務)模式,它是一個運用精髓的N層(主要指信息層、思維邏輯層和展示層),并且綜合了Browser,Web Server和Database Server的體系結構,如圖2所示。這類結構通過Web服務器和系統(tǒng)功能將瀏覽器與數(shù)據(jù)庫有序連接,從而實現(xiàn)信息的高效傳遞與交流。
圖2 B/S體系結構
MAS(mobile agent server)即移動代理服務器,內置病毒防火墻和網(wǎng)絡防火墻以此保障安全性。MAS系統(tǒng)主要包括MAS終端、MAS服務器和MAS管理平臺,并通過標準開放的接口與相關系統(tǒng)連接[11]。MAS具有一定的開放性,其數(shù)據(jù)庫和API接口可供再次開發(fā),對操作系統(tǒng)和編程語言都沒有限制,操作簡單且易用。各種業(yè)務系統(tǒng)連接到MAS數(shù)據(jù)庫,可滿足今后業(yè)務拓展的需求。將軟、硬件一體化封裝的MAS部署在局域內網(wǎng),通過專線/Internet與移動網(wǎng)關連接,利用MAS將氣象預警平臺與通信運營商的移動網(wǎng)絡相結合,建立一條雙向傳遞信息的安全便捷通道,實現(xiàn)了氣象預警信息的自動發(fā)送。
鼠標、按鍵模擬技術可以代替手動操作電腦的工作,但是必須保證電腦無人為干擾。因此實現(xiàn)鼠標、按鍵模擬技術可以建立虛擬計算機,設置鼠標、鍵盤不可人為操作。在windows環(huán)境下,windows API提供的兩個方法可以很方便地完成鼠標、鍵盤的模擬:mouse_event、keybd_event。模擬鼠標按鍵單擊時,首先要計算鼠標位置X、Y(使用ClientToScreen),并把被控端鼠標位置移到X、Y位置,即鼠標Move事件(SetCursorPos),之后使用mouse_event來模擬需要執(zhí)行的鼠標行為,主要為按下、彈起。按鍵的模擬主要是鍵的按下與彈起[12]。主要代碼如圖3所示。
圖3 模擬按鍵代碼
微信、QQ聊天對話框主題設計比較相似,均可在搜索框輸入聯(lián)系人后,在發(fā)送框輸入信息即可完成信息傳輸。因此在虛擬計算機登錄微信、QQ,使用鼠標、按鍵模擬技術即可實現(xiàn)向指定聯(lián)系人發(fā)送信息的功能。氣象預警通常會發(fā)送給多個指定的微信群和QQ群,人工操作費時費力,使用鼠標、按鍵模擬技術可將氣象預警平臺的預警信息自動發(fā)送。
氣象預警平臺是基于B/S結構的網(wǎng)頁,如圖4所示,主要包括預警信息錄入、轉發(fā)上級下發(fā)信息、預警信號統(tǒng)計等功能。預警信息錄入包括首發(fā)、更新、解除三種預警信息。首頁還可以根據(jù)信息標題、發(fā)布類型、信息狀態(tài)、事件等級、預警級別、發(fā)布時間等因素查詢之前的預警信息。
圖4 氣象預警平臺首頁
氣象預警平臺錄入預警信息界面可以選擇發(fā)布時間、預報員、影響地區(qū)選擇,填入預警信息內容,選擇發(fā)布手段包括短信、傳真、FTP、電子郵件、微信、QQ等,如圖5所示。勾選相應的發(fā)布手段就會將其信息存入Oracle數(shù)據(jù)庫中,運行各個發(fā)布手段的Java程序通過遍歷讀取Oracle數(shù)據(jù)庫將預警信息通過不同的發(fā)布方式進行發(fā)布。
圖5 多手段選取界面
氣象預警平臺集成了短信、傳真、FTP、電子郵件、微信、QQ發(fā)布手段于一體的一鍵式發(fā)布功能。通過不同的發(fā)布手段將預警信息發(fā)送給用戶,不僅提高了預警發(fā)布人員的工作效率,而且多覆蓋用戶接收途徑,使得預警信息及時有效發(fā)布給公眾起到防災減災的作用。
(1)短信。
氣象預警短信自動發(fā)送流程是Oracle數(shù)據(jù)庫對預警平臺生成的信息進行整合生成預警短信,Java程序定時讀取數(shù)據(jù)庫,通過Web Service技術[13]把處理好的短信息數(shù)據(jù)發(fā)送到MAS服務器,并最終將預警短信息發(fā)送到接收對象。
(2)傳真。
傳真自動發(fā)送功能是由氣象預警平臺制作的預警信息存儲到word文件,通過Jacob技術調用Windows環(huán)境底層的傳真組件,將預警信息發(fā)送給傳真用戶。首先Java jni調用本地Jacob.dll,再由Jacob.dll中將封裝好的接口調用本地服務faxserver.faxserver.1。從而實現(xiàn)服務器端傳真的發(fā)送[14]。
(3)FTP。
FTP方式是氣象局內部上下級各系統(tǒng)傳輸數(shù)據(jù)的重要方式。Java能夠調用類和方法,建立連接、文件上傳、文件下載等,由于FTP的成熟性和規(guī)范性,以及高效、安全和完整性,并在傳輸過程中支持斷點續(xù)傳[15]。
(4)電子郵件。
電子郵件的應用非常廣泛,是發(fā)送預警信息的重要手段,但是由于發(fā)送步驟比較繁瑣耗費時間,研究自動發(fā)送郵件是非常有必要的。Java代碼讀取預警平臺預警信息來創(chuàng)建電子郵件,通過郵件服務器進行“存儲-轉發(fā)-備份”,最后使用SMTP協(xié)議實現(xiàn)對電子郵件的發(fā)送[16]。SMTP是simple mail transfer protocol的簡稱,即簡單郵件傳輸協(xié)議。
(5)微信、QQ。
微信和QQ是當下最流行的通訊軟件,擁有智能手機的用戶基本都會安裝這兩種騰訊軟件。因此這兩種是必不可少的預警發(fā)布手段。手動發(fā)送微信、QQ多個群組既浪費人力又容易出現(xiàn)漏發(fā)的情況。氣象預警平臺制作預警信息與選取的微信群、QQ群組存入Oracle數(shù)據(jù)庫,使用虛擬機模擬鼠標、鍵盤的技術在電腦版微信和QQ搜索框輸入微信、QQ群名,信息發(fā)送框輸入預警信息,實現(xiàn)微信、QQ自動發(fā)送。微信發(fā)送界面如圖6所示。
目前氣象預警平臺已運用在氣象業(yè)務工作之中,成為預警發(fā)布人員發(fā)布預警的重要工具,實用效果非常顯著。隨著對平臺的使用與維護,氣象預警平臺能正常穩(wěn)定地運行?;贐/S架構的氣象預警平臺實現(xiàn)了對預警信息的可視化管理,為預警發(fā)布人員提供了良好的交互界面,使其可以直觀地了解和掌握各類預警信息。自正式使用到現(xiàn)在氣象預警平臺已經成功發(fā)布了1 968條預警,每條預警需要發(fā)布1 519條短信、56個傳真、2條FTP、30個電子郵件、10個微信群組、5個QQ群組。氣象預警平臺的多手段發(fā)布大大提高了預警發(fā)布人員的工作效率,也使得廣大用戶通過多種方式能及時收到預警信息,為災害來臨提前做好預防工作準備,最大程度減輕災害損失。
加強氣象災害監(jiān)測預警及信息發(fā)布是防災減災工作的關鍵環(huán)節(jié),是防御和減輕災害損失的重要基礎。氣象部門有效利用各種傳媒推動氣象服務信息走進千家萬戶,提高氣象預警發(fā)布時效和覆蓋范圍。為了解決當前因多種發(fā)布手段產生的任務重、效率低的問題,提出了氣象預警平臺的多手段發(fā)布方式,實現(xiàn)了多種預警發(fā)布手段的一鍵式發(fā)布功能。解決了預警發(fā)布工作中一種預警多次發(fā)布的重復性工作,避免了重發(fā)、漏發(fā)的情況,這種多手段并行發(fā)布的方式,極大提高了預警發(fā)布效率。氣象預警平臺多手段發(fā)布具有完善的服務功能、較強的實用性和可操作性。適用于全國各地區(qū)的預警發(fā)布單位,具有良好的推廣性。
圖6 微信發(fā)送