梁寶龍,崔學(xué)林,謝寒生,賀永興,李晉峰
(1.海南省氣象信息中心,海南 ???5702032.海南省南海氣象防災(zāi)減災(zāi)重點(diǎn)實(shí)驗(yàn)室,海南 ???5702033.海南省氣象信息化科技團(tuán)隊(duì),海南 ???570203)
隨著氣象服務(wù)的廣泛傳播,氣象天氣預(yù)報(bào)、災(zāi)害預(yù)警等服務(wù)也越來越受到廣大民眾的關(guān)注。特別是在臺(tái)風(fēng)、特大暴雨等重大天氣過程中,氣象部門的預(yù)報(bào)預(yù)警信息及時(shí)傳播與公眾的防災(zāi)減災(zāi)息息相關(guān)。如何讓公眾快速地了解當(dāng)前的天氣情況和未來天氣的預(yù)報(bào),除了常規(guī)的電視播報(bào)、手機(jī)短信和市、縣、村等室外廣播大喇叭等方式外,實(shí)時(shí)地將氣象數(shù)據(jù)傳輸?shù)胶D鲜》姥捶里L(fēng)防旱總指揮部辦公室(簡(jiǎn)稱省三防辦)等政府門戶網(wǎng)站實(shí)時(shí)展示,也為公眾了解氣象服務(wù)提供了更廣泛的途徑。通過氣象數(shù)據(jù)的實(shí)時(shí)推送與更新,民眾可以通過權(quán)威的政府部門提供的平臺(tái)(如網(wǎng)站或者手機(jī)客戶端等)了解實(shí)時(shí)的天氣情況,同時(shí)也為管理部門的防災(zāi)減災(zāi)決策提供氣象實(shí)況依據(jù)。
數(shù)據(jù)的傳輸有很多方式,近年來也有很多有指導(dǎo)性的工作[1-5]。分別對(duì)遠(yuǎn)程文件同步進(jìn)行了相關(guān)的研究工作[6-8],有的針對(duì)遠(yuǎn)程文件同步[9-10],有的基于RSYNC[11-13]算法的同步系統(tǒng),均是對(duì)文件的同步與同步算法優(yōu)化的研究,但這些研究?jī)H僅針對(duì)的是文件的同步,沒有結(jié)合文件數(shù)據(jù)與數(shù)據(jù)庫(kù)表同步。
在上述研究的基礎(chǔ)上,根據(jù)氣象行業(yè)常用實(shí)時(shí)觀測(cè)數(shù)據(jù)的共享及同步情況,將文件同步和數(shù)據(jù)庫(kù)表的同步相結(jié)合,設(shè)計(jì)并實(shí)現(xiàn)了基于多源氣象數(shù)據(jù)的快速推送系統(tǒng)。該系統(tǒng)整合不同數(shù)據(jù)源的氣象數(shù)據(jù)到一個(gè)統(tǒng)一平臺(tái),其中將多源氣象數(shù)據(jù)分為結(jié)構(gòu)化氣象數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)并快速推送,實(shí)現(xiàn)對(duì)不同數(shù)據(jù)源的氣象數(shù)據(jù)的實(shí)時(shí)推送。該系統(tǒng)的主要功能是氣象部門為省三防辦等政府部門提供實(shí)時(shí)的氣象數(shù)據(jù)推送,實(shí)時(shí)地將氣象觀測(cè)數(shù)據(jù)實(shí)況、氣象預(yù)報(bào)服務(wù)產(chǎn)品等數(shù)據(jù)推送到政府部門的業(yè)務(wù)應(yīng)用服務(wù)器中,為當(dāng)?shù)氐恼块T防災(zāi)減災(zāi)決策提供氣象數(shù)據(jù)基礎(chǔ)支撐。
(1)時(shí)效性。
氣象數(shù)據(jù)的數(shù)據(jù)傳輸涉及到業(yè)務(wù)考核,時(shí)效性要求很高,要求各類考核的氣象觀測(cè)數(shù)據(jù)在考核時(shí)間內(nèi)傳輸完畢。推送的時(shí)效需要在滿足業(yè)務(wù)要求的前提下,盡快完成推送任務(wù)。各類數(shù)據(jù)的推送,必須在采集完畢之后在規(guī)定的時(shí)間內(nèi)完成推送工作。
(2)可擴(kuò)展性。
系統(tǒng)推送的設(shè)計(jì)方面,盡可能考慮到將來業(yè)務(wù)的變化情況,保證將來有新的資料推送需求時(shí),在滿足現(xiàn)有推送任務(wù)的前提下,能靈活配置推送策略滿足推送需求變更。
(3)安全性。
系統(tǒng)建立在安全可靠的網(wǎng)絡(luò)安全措施之上,確保系統(tǒng)軟硬件及系統(tǒng)中的數(shù)據(jù)受到保護(hù),不因偶然的或者惡意的原因而遭受到破壞、更改、泄露,實(shí)現(xiàn)系統(tǒng)連續(xù)可靠正常的運(yùn)行,網(wǎng)絡(luò)服務(wù)不中斷,推送系統(tǒng)和接收端之間的通信安全可靠。
(4)易用性。
推送的策略可以通過圖形界面進(jìn)行推送策略配置,操作步驟可視化,操作方法簡(jiǎn)單易學(xué)。
各類氣象數(shù)據(jù)收集分布在不同的業(yè)務(wù)系統(tǒng)中,為了更好地進(jìn)行控制推送的集中管理,文中對(duì)各業(yè)務(wù)系統(tǒng)中的數(shù)據(jù)服務(wù)器進(jìn)行訪問權(quán)限配置,推送服務(wù)器的訪問權(quán)限可以讀取所有業(yè)務(wù)服務(wù)器的數(shù)據(jù)存儲(chǔ)目錄和文件,便于訪問獲取數(shù)據(jù)。同樣地,對(duì)于實(shí)時(shí)觀測(cè)要素?cái)?shù)據(jù)庫(kù)的服務(wù)器,推送服務(wù)器對(duì)數(shù)據(jù)庫(kù)有讀寫訪問權(quán)限。依據(jù)氣象數(shù)據(jù)推送業(yè)務(wù)的需求,將推送系統(tǒng)功能規(guī)劃為三個(gè)子模塊,分別為數(shù)據(jù)收集存儲(chǔ)模塊、數(shù)據(jù)推送服務(wù)器模塊、數(shù)據(jù)接收服務(wù)器模塊,如圖1所示。
圖1 推送系統(tǒng)結(jié)構(gòu)
推送系統(tǒng)設(shè)計(jì)主要分為數(shù)據(jù)收集存儲(chǔ)、數(shù)據(jù)推送服務(wù)、數(shù)據(jù)接收存儲(chǔ)三個(gè)模塊的設(shè)計(jì)。
(1)數(shù)據(jù)收集存儲(chǔ)模塊。
該模塊功能是數(shù)據(jù)源整合的部分,包括常規(guī)觀測(cè)報(bào)文收集服務(wù)器,預(yù)報(bào)文件服務(wù)器,雷達(dá)圖片、云圖圖片服務(wù)器等中心站業(yè)務(wù)服務(wù)器。各業(yè)務(wù)中心站負(fù)責(zé)一種業(yè)務(wù)的運(yùn)行,并保障數(shù)據(jù)的及時(shí)收集和存儲(chǔ)。收集存儲(chǔ)的各服務(wù)器并行執(zhí)行各自的收集及存儲(chǔ)任務(wù),業(yè)務(wù)之間相互不干涉,極個(gè)別業(yè)務(wù)的暫時(shí)中斷不影響其他業(yè)務(wù)數(shù)據(jù)收集存儲(chǔ)的獨(dú)立運(yùn)轉(zhuǎn)。該模塊的主要功能是對(duì)報(bào)文要素解析入庫(kù),文件數(shù)據(jù)加工處理,預(yù)報(bào)產(chǎn)品文件存儲(chǔ),雷達(dá)云圖產(chǎn)品的加工并處理成JPG圖片文件格式存儲(chǔ)。
(2)數(shù)據(jù)推送服務(wù)器模塊。
數(shù)據(jù)推送服務(wù)器模塊的設(shè)計(jì),通過開發(fā)一個(gè)多任務(wù)平臺(tái),實(shí)時(shí)地將數(shù)據(jù)收集模塊的各類數(shù)據(jù)同步到接收服務(wù)器的指定存儲(chǔ)目錄中。推送服務(wù)器作為數(shù)據(jù)推送系統(tǒng)的關(guān)鍵模塊,對(duì)內(nèi)聯(lián)系局域網(wǎng)數(shù)據(jù)收集模塊中的各節(jié)點(diǎn)服務(wù)器,對(duì)外負(fù)責(zé)實(shí)時(shí)將各類數(shù)據(jù)推送到省三防辦的接收前置機(jī)中。分別對(duì)推送數(shù)據(jù)的各類中心站數(shù)據(jù)服務(wù)器進(jìn)行配置,使得資料推送服務(wù)器可以獲取需要推送的各類數(shù)據(jù)的讀寫訪問權(quán)限,獲取推送的數(shù)據(jù)的存放目錄及文件讀取訪問權(quán)限。
(3)數(shù)據(jù)接收服務(wù)器模塊。
數(shù)據(jù)接收服務(wù)器模塊,其存儲(chǔ)目錄和數(shù)據(jù)庫(kù)表結(jié)構(gòu)與推送服務(wù)器的存儲(chǔ)結(jié)構(gòu)一一對(duì)應(yīng),并且推送服務(wù)器對(duì)接收服務(wù)器的各推送目錄均有讀寫訪問權(quán)限。接收服務(wù)器及時(shí)處理推送服務(wù)器推送過來的數(shù)據(jù),并定時(shí)清理過時(shí)數(shù)據(jù)文件。
在系統(tǒng)推送設(shè)計(jì)中,數(shù)據(jù)接收服務(wù)器模塊是氣象業(yè)務(wù)外網(wǎng)物理隔離的節(jié)點(diǎn)?;诰W(wǎng)絡(luò)安全的考慮,通過網(wǎng)絡(luò)防火墻等安全設(shè)備的設(shè)置,氣象局域網(wǎng)的推送服務(wù)器是唯一能跟省三防辦對(duì)端接收前置機(jī)通信的服務(wù)器,它們之間的通信是點(diǎn)對(duì)點(diǎn)的。氣象內(nèi)網(wǎng)的數(shù)據(jù)收集服務(wù)器均與接收前置機(jī)服務(wù)器物理隔離,相互之間網(wǎng)絡(luò)訪問不可達(dá)。同樣,接收前置機(jī)也不能訪問氣象內(nèi)網(wǎng)的其他業(yè)務(wù)中心站服務(wù)器。
對(duì)于氣象數(shù)據(jù)的推送,文中分別針對(duì)非結(jié)構(gòu)化和結(jié)構(gòu)化數(shù)據(jù)的特點(diǎn),分為兩種方式實(shí)現(xiàn)。對(duì)于非結(jié)構(gòu)化的氣象數(shù)據(jù),例如雷達(dá)產(chǎn)品、氣象云圖的以文件形式存在的數(shù)據(jù),是以共享目錄拷貝的方式實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)同步,同步的策略是根據(jù)觀測(cè)數(shù)據(jù)的生成規(guī)則,以及數(shù)據(jù)的觀測(cè)時(shí)效和數(shù)據(jù)文件生成結(jié)束的時(shí)間來判定。例如雷達(dá)產(chǎn)品,推送策略是在雷達(dá)產(chǎn)品的生成之后立即將雷達(dá)數(shù)據(jù)推送至接受服務(wù)器的對(duì)應(yīng)目錄中,并將已推送數(shù)據(jù)的文件名入庫(kù),避免再次拷貝時(shí)的重復(fù)推送。
多源氣象數(shù)據(jù)推送系統(tǒng)分別對(duì)不同的來源數(shù)據(jù)做不同的推送響應(yīng),有的數(shù)據(jù)可直接推送,有的數(shù)據(jù)需要經(jīng)過加工成產(chǎn)品后再推送,有的數(shù)據(jù)需要臨時(shí)處理、轉(zhuǎn)存等步驟之后推送。數(shù)據(jù)推送系統(tǒng)的推送過程如圖2所示,分別包括數(shù)據(jù)收集、收集處理、數(shù)據(jù)臨時(shí)存檔、推送處理、數(shù)據(jù)推送、推送控制策略等。
圖2 系統(tǒng)推送過程
數(shù)據(jù)的收集,是對(duì)各類氣象數(shù)據(jù)的收集整合,包括即將推送的結(jié)構(gòu)化和非結(jié)構(gòu)化氣象數(shù)據(jù)。收集處理,是指需要對(duì)原始資料加工成產(chǎn)品之后再推送的數(shù)據(jù),例如雷達(dá)圖和衛(wèi)星云圖等數(shù)據(jù)。數(shù)據(jù)臨時(shí)存檔,是指推送時(shí)需要本地臨時(shí)存儲(chǔ)數(shù)據(jù),以便推送中出現(xiàn)異常后,恢復(fù)時(shí)繼續(xù)之前的推送任務(wù)。推送處理,是指對(duì)收集處理之后的數(shù)據(jù)和臨時(shí)存檔的數(shù)據(jù)進(jìn)行處理,確保每一類數(shù)據(jù)的順利推送。數(shù)據(jù)推送,是指直接將多源的各類氣象數(shù)據(jù)實(shí)時(shí)推送到接收前置機(jī)中。推送控制策略,是指對(duì)每一類數(shù)據(jù)的推送方式和推送時(shí)效的觸發(fā)控制,達(dá)到對(duì)每一類數(shù)據(jù)推送指令的配置目的,實(shí)現(xiàn)對(duì)每一類數(shù)據(jù)推送策略的配置與管理。
可推送的非結(jié)構(gòu)化常規(guī)氣象數(shù)據(jù)有:?jiǎn)握纠走_(dá)回波圖、降雨預(yù)報(bào)分布圖、衛(wèi)星云圖、氣溫分布圖、旱情分布圖、預(yù)報(bào)信息、決策氣象服務(wù)、氣候分析、生活氣象等。其中,以JPG圖片等文件格式推送的氣象數(shù)據(jù)有雷達(dá)回波圖、降雨預(yù)報(bào)圖、衛(wèi)星云圖、氣溫分布圖;以WORD或者PDF格式文件形式推送的有決策氣象服務(wù)稿件、氣候分析和生活氣象等。
非結(jié)構(gòu)化數(shù)據(jù)對(duì)的推送是以文件形式推送到指定的服務(wù)器的指定目錄中,具體的推送策略符合《全國(guó)氣象數(shù)據(jù)傳輸質(zhì)量考核辦法》的要求,以氣象觀測(cè)數(shù)據(jù)的傳輸考核時(shí)效和觀測(cè)數(shù)據(jù)生成時(shí)間為依據(jù)。對(duì)于觀測(cè)時(shí)效比較規(guī)律的數(shù)據(jù),設(shè)置好推送主機(jī)和接收服務(wù)器的同步時(shí)間,計(jì)算并判斷好觀測(cè)數(shù)據(jù)生成的時(shí)間,一旦當(dāng)前觀測(cè)過程結(jié)束并生成觀測(cè)數(shù)據(jù),立即觸發(fā)推送策略響應(yīng),將當(dāng)前生成的最新觀測(cè)數(shù)據(jù)推送到接收服務(wù)器指定的目錄中,實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)推送。
對(duì)于結(jié)構(gòu)化氣象數(shù)據(jù)的推送,文中選擇的是數(shù)據(jù)庫(kù)表要素的實(shí)時(shí)同步。筆者認(rèn)為對(duì)數(shù)據(jù)庫(kù)表的實(shí)時(shí)同步,是對(duì)結(jié)構(gòu)化氣象數(shù)據(jù)實(shí)時(shí)展示的時(shí)效要求和數(shù)據(jù)出口一致性的,比較符合氣象要素實(shí)時(shí)展示的常用方法。結(jié)構(gòu)化的數(shù)據(jù)推送,在省三防辦等部門網(wǎng)站的實(shí)時(shí)顯示是通過讀取數(shù)據(jù)庫(kù)表要素實(shí)時(shí)更新展示的,文中方法是將氣象實(shí)時(shí)收集數(shù)據(jù)入庫(kù)的數(shù)據(jù)庫(kù)表要素直接同步到對(duì)端的數(shù)據(jù)庫(kù)表中。根據(jù)每一類數(shù)據(jù)的觀測(cè)時(shí)效來定義數(shù)據(jù)庫(kù)表同步的策略,按類型劃分?jǐn)?shù)據(jù)時(shí)效實(shí)現(xiàn)結(jié)構(gòu)化數(shù)據(jù)的實(shí)時(shí)同步。這些同步方式可以通過增量的方式同步,也可使用外部的數(shù)據(jù)庫(kù)管理工具實(shí)現(xiàn)。在數(shù)據(jù)寫入過程中,同時(shí)遵循數(shù)據(jù)庫(kù)事務(wù)的ACID[14-15]四個(gè)特性,確保數(shù)據(jù)庫(kù)寫入的表要素一一對(duì)應(yīng)和表結(jié)構(gòu)要素的完整性,確保氣象數(shù)據(jù)要素展示的結(jié)果唯一。
開發(fā)平臺(tái):eclipse;數(shù)據(jù)庫(kù):Oracle 11g;Web應(yīng)用服務(wù)器:apache-tomcat-7.0.57;數(shù)據(jù)庫(kù)中間件:JPA(Java persistence API);實(shí)現(xiàn)Web層:Web2.0、Struts2、jQuery;推送服務(wù)器的操作系統(tǒng):Windows Server 2012 R2。
多源氣象數(shù)據(jù)的推送系統(tǒng),針對(duì)每一類數(shù)據(jù)配置相對(duì)應(yīng)的策略,實(shí)現(xiàn)每一類數(shù)據(jù)的推送獨(dú)立運(yùn)行且互不干涉。非結(jié)構(gòu)化的數(shù)據(jù)推送將本地文件數(shù)據(jù)直接推送到接收服務(wù)器的對(duì)應(yīng)目錄。結(jié)構(gòu)化數(shù)據(jù)的推送,選擇數(shù)據(jù)庫(kù)同步的常用數(shù)據(jù)庫(kù)中間件實(shí)現(xiàn)。推送系統(tǒng)策略配置如圖3所示。每一類推送策略都可以通過Web配置修改,一般可選的推送策略根據(jù)氣象數(shù)據(jù)的采集時(shí)次分別定義“全部”、“整點(diǎn)”、“非整點(diǎn)”等配置選項(xiàng)?!叭俊边x項(xiàng)表示所有數(shù)據(jù)均推送,“整點(diǎn)”選項(xiàng)表示只推送每個(gè)小時(shí)整點(diǎn)的數(shù)據(jù),“非整點(diǎn)”選項(xiàng)表示只推送可選非整點(diǎn)的數(shù)據(jù)。推送策略可根據(jù)觀測(cè)數(shù)據(jù)的時(shí)效自行定義和實(shí)現(xiàn)。
為了實(shí)時(shí)監(jiān)控推送記錄和配置推送策略,將每一數(shù)據(jù)的推送記錄存入數(shù)據(jù)庫(kù),記錄推送IP地址、推送文件名、推送的時(shí)間、推送目的主機(jī)地址和推送數(shù)據(jù)記錄等詳細(xì)信息,推送策略可通過Web監(jiān)控平臺(tái)配置,從而實(shí)現(xiàn)推送數(shù)據(jù)的實(shí)時(shí)監(jiān)控。推送日志查詢見圖4,實(shí)現(xiàn)推送的全流程監(jiān)控。
圖3 系統(tǒng)推送策略配置
圖4 系統(tǒng)推送日志
較以往三防辦等部門通過氣象內(nèi)網(wǎng)獲取氣象數(shù)據(jù)的方式,多源氣象數(shù)據(jù)實(shí)時(shí)推送系統(tǒng)正式上線以后,數(shù)據(jù)推送到省三防辦等部門的時(shí)效性也明顯提高。筆者對(duì)比了幾類氣象數(shù)據(jù),即自動(dòng)站、雨量站、雷達(dá)資料、國(guó)家級(jí)站、土壤水分,其資料推送時(shí)效分析如圖5所示。
在該實(shí)時(shí)推送系統(tǒng)中,自動(dòng)站、雨量站、雷達(dá)資料、國(guó)家級(jí)站、土壤水分等數(shù)據(jù)推送時(shí)效均在資料到達(dá)后三分鐘以內(nèi)推送到對(duì)端接收前置服務(wù)器中,較短的時(shí)間是自動(dòng)站和國(guó)家級(jí)站,分別是資料到達(dá)后128 s內(nèi)推送到接收前置機(jī)的數(shù)據(jù)庫(kù)表中。傳統(tǒng)的傳輸方式使得數(shù)據(jù)獲取時(shí)效比較慢,原因可能是氣象數(shù)據(jù)源分布在不同的觀測(cè)系統(tǒng)中,數(shù)據(jù)分別分散地存儲(chǔ)在不同服務(wù)器中,獲取數(shù)據(jù)前沒有對(duì)數(shù)據(jù)進(jìn)行有效的整合和預(yù)處理困難等等。
圖5 傳輸時(shí)效對(duì)比
推送系統(tǒng)實(shí)現(xiàn)后,通過預(yù)先整合各類氣象數(shù)據(jù)源到一個(gè)統(tǒng)一的平臺(tái),對(duì)數(shù)據(jù)進(jìn)行推送預(yù)處理并按需定制策略推送,這樣優(yōu)化了數(shù)據(jù)推送環(huán)節(jié),有效保障了數(shù)據(jù)的推送時(shí)效。同時(shí)也可根據(jù)業(yè)務(wù)擴(kuò)展實(shí)現(xiàn)推送資料的種類定制推送,對(duì)每一類數(shù)據(jù)的推送方式和推送時(shí)效的觸發(fā)控制,達(dá)到對(duì)每一類數(shù)據(jù)推送指令的配置目的,實(shí)現(xiàn)對(duì)每一類數(shù)據(jù)推送策略的配置與管理,提高了傳輸時(shí)效。
從氣象數(shù)據(jù)共享的方式,設(shè)計(jì)并實(shí)現(xiàn)了氣象數(shù)據(jù)的快速推送系統(tǒng),并在海南省氣象局的內(nèi)網(wǎng)中實(shí)現(xiàn)了對(duì)省三防辦所需的氣象數(shù)據(jù)的實(shí)時(shí)推送,為海南當(dāng)?shù)氐臍庀蠓?wù)提供了便捷高效的氣象資料推送服務(wù)。該系統(tǒng)上線以來,在強(qiáng)臺(tái)風(fēng)、暴雨等重大天氣過程中,發(fā)揮了積極的作用。下一步,將開發(fā)多策略預(yù)訂等推送服務(wù),不斷完善系統(tǒng)功能,提供更高時(shí)效性的氣象數(shù)據(jù)推送服務(wù),為海南的經(jīng)濟(jì)發(fā)展和海南氣象服務(wù)貢獻(xiàn)一份綿薄之力。