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