邱忠洋 吳晶璐 劉文偉 陳宏波
摘要:綜合分析了當(dāng)前市級(jí)氣象預(yù)報(bào)業(yè)務(wù)與氣象服務(wù)工作的特點(diǎn)及存在的問題,針對(duì)預(yù)報(bào)產(chǎn)品制作過程中輔助決策參考資料來源不一、發(fā)布渠道多樣、業(yè)務(wù)制作平臺(tái)多變、預(yù)警信息傳輸滯后等問題,提出了C/B/S氣象災(zāi)害預(yù)警輔助決策系統(tǒng)的解決方案。首先采用多線程C/S數(shù)據(jù)處理和B/S數(shù)據(jù)展示的混合模式對(duì)輔助決策數(shù)據(jù)源和具體的預(yù)報(bào)業(yè)務(wù)制作進(jìn)行分析和分類。在系統(tǒng)的總體框架設(shè)計(jì)過程中,采用Oracle數(shù)據(jù)庫存儲(chǔ)服務(wù)、WebGIS技術(shù)、Leaflet.js插件、Mybatis框架。詳細(xì)闡述了系統(tǒng)各項(xiàng)技術(shù)設(shè)計(jì)方案,并給出了混合模式下的具體設(shè)計(jì)方法。實(shí)際運(yùn)行效果表明,該模式極大地提高了系統(tǒng)實(shí)時(shí)性、靈活性,預(yù)報(bào)業(yè)務(wù)服務(wù)的效率也得到了提高。
關(guān)鍵詞:預(yù)警預(yù)報(bào);輔助決策;C/B/S;WebGIS;leaflet;Mybatis框架
中圖分類號(hào):TP399;P45 ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):0439-8114(2020)05-0129-09
Abstract: Comprehensive analysis and summary of the current city-level forecasting business and meteorological service work characteristics and existing problems. In the process of forecasting product production, the problems of different sources of reference materials, various distribution channels, changeable business platform, and delay of early warning information transmission are discussed. A solution based on C/B/S meteorological disaster warning decision support system is proposed. First, it analyzes and classifies the auxiliary decision data source and the concrete forecast business production, and formulate mixed mode that use the multi thread C/S data processing and the B/S data display. In the overall framework of the system, the Oracle database storage service, the WebGIS technology, leaflet plugin, the Mybatis framework of the background service are used. The article elaborates on the technical design schemes of the system and gives the specific design method under the mixed mode. The actual operation results show that the model greatly improves the real-time and flexibility of the system, and the efficiency of forecasting business services has also been improved.
Key words: warning and forecasting; auxiliary decision-making; C/B/S; WebGIS; leaflet; Mybatis framework
2016年底中國(guó)氣象局發(fā)布了《關(guān)于發(fā)展智慧氣象的若干思考》一文,文章高度重視并關(guān)注“智慧氣象”的戰(zhàn)略研究,闡述了智慧氣象的內(nèi)涵和特征,提出了發(fā)展智慧氣象的三大戰(zhàn)略——?dú)庀蟠髷?shù)據(jù)戰(zhàn)略、互聯(lián)網(wǎng)氣象戰(zhàn)略和氣象平臺(tái)戰(zhàn)略,初步確立了2020年的發(fā)展目標(biāo)和重點(diǎn)任務(wù)[1]。
結(jié)合當(dāng)前業(yè)務(wù)現(xiàn)狀,在中國(guó)氣象系統(tǒng),面向社會(huì)大眾服務(wù)的基礎(chǔ)大多集中在市、縣級(jí)。市縣級(jí)所需承擔(dān)的工作除了氣象預(yù)報(bào)的發(fā)布,還包括氣象預(yù)警、氣象服務(wù)產(chǎn)品、網(wǎng)絡(luò)建設(shè)及維護(hù)等相關(guān)工作。隨著氣象服務(wù)的深入開展,服務(wù)范圍逐漸擴(kuò)大,預(yù)警預(yù)報(bào)及服務(wù)質(zhì)量要求也越來越高[2]。作為市級(jí)氣象部門,如何解決因社會(huì)發(fā)展帶來的一系列問題,成了當(dāng)務(wù)之急。研究提出建立預(yù)警輔助決策系統(tǒng),旨在將氣象多種監(jiān)測(cè)平臺(tái)集約化、多種制作渠道集中化、多種發(fā)布手段歸一化,讓預(yù)報(bào)制作智能化。以解放人力、方便業(yè)務(wù)為宗旨,建立健全的管理機(jī)制,契合預(yù)報(bào)業(yè)務(wù)流程,使業(yè)務(wù)規(guī)范化、制度化,增加可控性和可管理性,提高業(yè)務(wù)管理水平。這也響應(yīng)了中國(guó)氣象局智慧氣象的戰(zhàn)略號(hào)召。本系統(tǒng)在氣象信息化標(biāo)準(zhǔn)體系框架內(nèi),圍繞市級(jí)綜合氣象業(yè)務(wù),強(qiáng)化具有地方特色的氣候異常、災(zāi)害性天氣、服務(wù)平臺(tái)數(shù)據(jù)的監(jiān)測(cè)預(yù)警,建設(shè)系統(tǒng)融合、功能突出、數(shù)據(jù)標(biāo)準(zhǔn)的綜合輔助決策平臺(tái),實(shí)現(xiàn)一站式的數(shù)據(jù)采集、傳輸、存儲(chǔ)、分析和展示,一鍵式的檢驗(yàn)、發(fā)布和回執(zhí),滿足觀測(cè)、預(yù)報(bào)、服務(wù)等各項(xiàng)業(yè)務(wù)服務(wù)使用需求。有效促進(jìn)業(yè)務(wù)一體化、功能集約化、崗位多責(zé)化的市級(jí)綜合氣象業(yè)務(wù),全面實(shí)現(xiàn)氣象業(yè)務(wù)現(xiàn)代化。
1 ?關(guān)鍵要點(diǎn)
1.1 ?系統(tǒng)業(yè)務(wù)架構(gòu)設(shè)計(jì)
系統(tǒng)業(yè)務(wù)架構(gòu)主要分為5個(gè)模塊:數(shù)據(jù)集成子系統(tǒng)、監(jiān)控子系統(tǒng)、資料庫數(shù)據(jù)采集子系統(tǒng)、信息發(fā)布子系統(tǒng)、業(yè)務(wù)應(yīng)用子系統(tǒng)[3]。數(shù)據(jù)集成子系統(tǒng)為數(shù)據(jù)資源采集庫提供數(shù)據(jù)資源,數(shù)據(jù)采集庫產(chǎn)生的產(chǎn)品庫同時(shí)為業(yè)務(wù)應(yīng)用展示平臺(tái)及數(shù)據(jù)監(jiān)控平臺(tái)提供數(shù)據(jù)資源。業(yè)務(wù)應(yīng)用子系統(tǒng)通過調(diào)用產(chǎn)品庫資源利用天氣分析工具做出預(yù)報(bào)決策,最終的預(yù)報(bào)結(jié)論通過多種渠道一鍵式發(fā)布至各大平臺(tái)。流程見圖1。
1.1.1 ?數(shù)據(jù)層 ?該模塊主要任務(wù)在于統(tǒng)一數(shù)據(jù)源,將零散的數(shù)據(jù)資源整合到同一個(gè)平臺(tái),目前集中處理的數(shù)據(jù)源包括CIMISS、CMACAST、省局?jǐn)?shù)據(jù)庫、自建數(shù)據(jù)庫及外部共享數(shù)據(jù)庫等。
1.1.2 ?服務(wù)層 ?該模塊主要是對(duì)來源多、種類繁雜的氣象數(shù)據(jù)進(jìn)行自動(dòng)采集、處理、分批入庫并提供相應(yīng)的數(shù)據(jù)服務(wù)。采集的數(shù)據(jù)除了本地氣象探測(cè)資料外,還包括雷達(dá)、衛(wèi)星云圖、閃電定位等多種類型數(shù)據(jù)。
1.1.3 ?監(jiān)控子系統(tǒng) ?主要對(duì)系統(tǒng)本身、要素?cái)?shù)據(jù)超出閾值的情況及預(yù)警信號(hào)發(fā)布情況起到監(jiān)控提醒的作用。
1.1.4 ?邏輯分析層 ?將實(shí)況、短臨、數(shù)值預(yù)報(bào)、預(yù)報(bào)產(chǎn)品及相關(guān)統(tǒng)計(jì)信息集中展示,為決策提供輔助。預(yù)警提醒方面主要是對(duì)觀測(cè)超閾值、預(yù)報(bào)不符邏輯、區(qū)域預(yù)警及組合策略預(yù)警進(jìn)行自動(dòng)監(jiān)測(cè)提醒,最后由預(yù)報(bào)員做出相應(yīng)的判斷,發(fā)布預(yù)警或相關(guān)氣象服務(wù)信息。
1.1.5 ?數(shù)據(jù)推送層 ?邏輯層分析出的預(yù)報(bào)信息將由管理員進(jìn)行審核,簽發(fā)后可將預(yù)報(bào)產(chǎn)品信息一鍵式推送至短信、微博、FTP、傳真、網(wǎng)站、大喇叭、顯示屏等。
1.2 ?氣象數(shù)據(jù)
1.2.1 ?氣象數(shù)據(jù)的特點(diǎn) ?氣象數(shù)據(jù)種類繁多,對(duì)數(shù)據(jù)的實(shí)時(shí)性要求高。按照類型可以分為常規(guī)和非常規(guī)觀測(cè)資料。比如基本站資料(溫度、濕度、氣壓、風(fēng)速、風(fēng)向)等屬于常規(guī)天氣資料,非常規(guī)特殊天氣資料包括加密自動(dòng)站、探空、雷達(dá)、風(fēng)廓線雷達(dá)、衛(wèi)星等。氣象資料具有連續(xù)性,時(shí)序性極強(qiáng),對(duì)于這些數(shù)據(jù)的采集都是按照時(shí)間順序進(jìn)行存儲(chǔ)、計(jì)算、統(tǒng)計(jì)、整理和保存的。同時(shí)氣象資料還具有一定的規(guī)律性,表現(xiàn)在資料的周期性強(qiáng),無論是多年長(zhǎng)系列,還是年內(nèi)、季節(jié)內(nèi)、月內(nèi)等系列,都有一定的周期性[4]。該系統(tǒng)的建設(shè)需要容納這些氣象數(shù)據(jù)大、繁雜的特性,并為預(yù)報(bào)業(yè)務(wù)提供所要參考的各項(xiàng)數(shù)據(jù)資料,這也給數(shù)據(jù)處理系統(tǒng)研發(fā)帶來了一定的難度。
1.2.2 ?輔助決策系統(tǒng)數(shù)據(jù)庫 ?Oracle數(shù)據(jù)庫,一個(gè)面向Internet計(jì)算的、支持關(guān)系對(duì)象型的、分布式的數(shù)據(jù)庫產(chǎn)品,是一個(gè)高度集成的互聯(lián)網(wǎng)應(yīng)用平臺(tái),為企業(yè)數(shù)據(jù)存儲(chǔ)提交高性能的數(shù)據(jù)管理系統(tǒng)[5,6]。
為統(tǒng)一對(duì)各種氣象數(shù)據(jù)進(jìn)行處理,提出基于Oracle建立輔助決策氣象數(shù)據(jù)庫。建立輔助決策數(shù)據(jù)庫的目的有兩個(gè),一是存儲(chǔ),二是共享。數(shù)據(jù)庫處理的對(duì)象包含多種氣象數(shù)據(jù),傳統(tǒng)基本自動(dòng)站的數(shù)據(jù)、加密站數(shù)據(jù)、衛(wèi)星云圖數(shù)據(jù)、雷達(dá)圖數(shù)據(jù)、環(huán)保數(shù)據(jù)、閾值及預(yù)計(jì)數(shù)據(jù)。還包括業(yè)務(wù)相關(guān)的留痕管理數(shù)據(jù)、氣象數(shù)據(jù)多種發(fā)布手段及受眾群組數(shù)據(jù)等。這些數(shù)據(jù)內(nèi)部之間存在著一定的聯(lián)系。因此在對(duì)數(shù)據(jù)庫設(shè)計(jì)時(shí),需盡量讓數(shù)據(jù)具備完整性和可拓展性,并且在數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)上需標(biāo)準(zhǔn)化,氣象數(shù)據(jù)格式的標(biāo)準(zhǔn)化有利于數(shù)據(jù)的處理。部分結(jié)構(gòu)如圖2所示。
1.3 ?相關(guān)技術(shù)
1.3.1 ?Multi-Thread下的數(shù)據(jù)流 ?輔助決策系統(tǒng)在實(shí)施多種數(shù)據(jù)氣象解析入庫過程中,發(fā)現(xiàn)以單線程的形式實(shí)現(xiàn)數(shù)據(jù)處理有很多硬傷。一是單線程效率低下,單線程必須要將上一個(gè)任務(wù)處理完畢,才能開啟下一個(gè)任務(wù)。而用線程同步機(jī)制,消息可以通過主線程的提醒調(diào)用,再通過線程互斥機(jī)制,合理分配資源,保證資源使用的惟一性[7,8]。二是數(shù)據(jù)處理不及時(shí),氣象數(shù)據(jù)種類繁多,業(yè)務(wù)中擁有海量的數(shù)據(jù),單線程模式無法以最快的速度將氣象數(shù)據(jù)分析展示在業(yè)務(wù)人員桌面上。比如有自動(dòng)站報(bào)文、衛(wèi)星雷達(dá)圖片、模式產(chǎn)品數(shù)據(jù)、外界數(shù)據(jù)源等?;谏鲜龅囊幌盗性?,提出使用Multi-Thread方式處理數(shù)據(jù),這樣既可以將多類別的氣象數(shù)據(jù)同步處理,又可以充分發(fā)揮服務(wù)器的CPU資源效率。同時(shí)為了提高軟件的研發(fā)效率以及便于后期維護(hù)和擴(kuò)展。在軟件研發(fā)過程中,將系統(tǒng)的數(shù)據(jù)流劃分為4個(gè)模塊,包括數(shù)據(jù)源模塊、數(shù)據(jù)處理模塊、數(shù)據(jù)服務(wù)模塊以及數(shù)據(jù)應(yīng)用模塊(圖3),多線程的應(yīng)用也植入其中。
1)數(shù)據(jù)源模塊。該模塊將多種氣象要素?cái)?shù)據(jù)源集中管理,統(tǒng)一到服務(wù)器上,以備處理。種類較多,包括基礎(chǔ)信息、自動(dòng)站數(shù)據(jù)、雷達(dá)數(shù)據(jù)、云圖數(shù)據(jù)、預(yù)報(bào)數(shù)據(jù)等。
2)數(shù)據(jù)處理模塊。該模塊主要是將數(shù)據(jù)源模塊集中的數(shù)據(jù)進(jìn)行接收、整理、分類、預(yù)處理、質(zhì)量控制及篩選,最后將無效數(shù)據(jù)剔除,有效數(shù)據(jù)入庫。其每個(gè)流程處理過程都經(jīng)過封裝,耦合度低。在數(shù)據(jù)處理過程中,對(duì)海量數(shù)據(jù)進(jìn)行研究,使用數(shù)據(jù)挖掘算法研究數(shù)據(jù)的相關(guān)性對(duì)數(shù)據(jù)進(jìn)行多元化融合。
3)數(shù)據(jù)服務(wù)模塊。該模塊主要是為各種數(shù)據(jù)應(yīng)用提供接口服務(wù)。實(shí)質(zhì)是從數(shù)據(jù)庫提取數(shù)據(jù),為定制化的需求提供API支撐。為保障數(shù)據(jù)的安全性,設(shè)計(jì)了接口注冊(cè)白名單,經(jīng)過實(shí)際注冊(cè)并通過驗(yàn)證的用戶才可以使用該服務(wù)。
4)數(shù)據(jù)應(yīng)用模塊。該模塊主要考慮對(duì)數(shù)據(jù)的展示,展示流程從數(shù)據(jù)的API接口獲取開始,經(jīng)過數(shù)據(jù)處理、解析,最后展示。從應(yīng)用角度出發(fā),系統(tǒng)設(shè)計(jì)的應(yīng)用層面考慮到了數(shù)據(jù)的高度共享性,不僅可以為該系統(tǒng)應(yīng)用提供數(shù)據(jù)服務(wù),還可以為其他應(yīng)用包括APP、Wetchat、局官網(wǎng)和其他業(yè)務(wù)網(wǎng)站提供服務(wù)。
目前系統(tǒng)基本完成了前期數(shù)據(jù)流模塊研發(fā)的各項(xiàng)工作,并能夠?qū)崿F(xiàn)數(shù)據(jù)調(diào)用演示。但是如何對(duì)海量氣象數(shù)據(jù)進(jìn)行深度挖掘,以提高短時(shí)臨近數(shù)據(jù)的準(zhǔn)確性和穩(wěn)定性,還有待進(jìn)一步研究。
1.3.2 ?WebGIS及Arcgis server服務(wù)器 ?WebGIS,簡(jiǎn)而言之就是在Web上提供的GIS服務(wù),被稱之為網(wǎng)絡(luò)地理信息系統(tǒng),是傳統(tǒng)GIS在網(wǎng)絡(luò)上的延伸和發(fā)展,具備了傳統(tǒng)GIS的檢索、查詢、制圖輸出、編輯等基本功能[9]。圍繞著開放式服務(wù)、互動(dòng)式操作、分布式計(jì)算、三維信息可視化等主題,WebGIS技術(shù)功能在未來將會(huì)進(jìn)一步強(qiáng)化。結(jié)合系統(tǒng)的業(yè)務(wù)需求和WebGIS的功能,劃分為以下6個(gè)方面。
1)具備空間發(fā)布能力。系統(tǒng)可以利用GIS技術(shù)通過Map方式圖形化展示空間數(shù)據(jù),技術(shù)人員可以及時(shí)獲取氣象信息做出決策。
2)地理信息檢索游覽功能。通過切圖的方式將所需市縣地圖作為底圖,除了地圖縮放,還可以通過人機(jī)交互對(duì)地理空間屬性數(shù)據(jù)庫進(jìn)行檢索。
3)地圖制作功能。操作人員可以通過Web輸入所需制圖參數(shù),服務(wù)器會(huì)將空間制圖參數(shù)處理完畢后返回到Web。
4)數(shù)據(jù)更新能力??梢酝ㄟ^前段Web頁面與后臺(tái)服務(wù)器數(shù)據(jù)進(jìn)行交互,包括對(duì)空間或?qū)傩詳?shù)據(jù)的編輯修改。
5)空間決策分析??梢酝ㄟ^模型算法對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行計(jì)算分析,給出預(yù)測(cè)結(jié)論,并反饋給用戶。
6)數(shù)據(jù)資源共享性能。將空間數(shù)據(jù)展示在瀏覽器上,可以不受時(shí)間地點(diǎn)顯示訪問數(shù)據(jù)。
Arcgis server,網(wǎng)絡(luò)地理信息服務(wù)平臺(tái),用于構(gòu)建WebGIS應(yīng)用的軟件開發(fā)平臺(tái)。作為分布式系統(tǒng)可以在不同的環(huán)境下協(xié)同完成GIS工作,與系統(tǒng)選擇B/S展示模式相匹配。同時(shí)Server具備與空間相關(guān)的定位、分析、處理的GIS技術(shù)及當(dāng)前互聯(lián)共享兩大功能。在系統(tǒng)研發(fā)過程中,系統(tǒng)采用二次開發(fā)的方式集成使用Arcgis server,因此可以得到來自Server在GIS功能上的支持,控制圖層隱藏和顯示,地圖的漫游縮放,框選查詢,空間數(shù)據(jù)編輯查詢、空間分析坐標(biāo)轉(zhuǎn)換、地圖下載圖層管理、高級(jí)GIS分析路徑繪制等?;谏鲜鰞?yōu)勢(shì),平臺(tái)選擇WebGIS結(jié)合Arcgis server作為地理信息互動(dòng)展示研發(fā)的技術(shù)(圖4)。
1.3.3 ?C/B/S混合模式WebGIS結(jié)構(gòu) ?混合使用WebGIS結(jié)構(gòu),一方面從C/S結(jié)構(gòu)來講,GIS任務(wù)被分給客戶端和服務(wù)器,應(yīng)用資源被合理分配。這種結(jié)構(gòu)屬于典型的胖瘦服務(wù)器模式,將數(shù)據(jù)交互、邏輯、計(jì)算、任務(wù)反饋集中在客戶端,而服務(wù)器只需提供數(shù)據(jù)即可,任務(wù)較輕。第二方面則是從B/S結(jié)構(gòu)來講,將重心從客戶端轉(zhuǎn)向了瀏覽器,包括數(shù)據(jù)庫服務(wù)器、客戶瀏覽器、應(yīng)用服務(wù)器(圖5)。這種方式依賴服務(wù)器對(duì)大部分的業(yè)務(wù)邏輯進(jìn)行處理,并通過TCP/IP進(jìn)行消息之間的傳遞,前段的邏輯處理及展示則是通過Script、Plug-in插件實(shí)現(xiàn)。該系統(tǒng)結(jié)合C/S和B/S在WebGIS處理上的優(yōu)勢(shì),制定系統(tǒng)所需的GIS服務(wù)策略。①GIS數(shù)據(jù)的處理使用C/S形式,全部放在后臺(tái)服務(wù)器端,定時(shí)定期操作,避免浪費(fèi)資源和時(shí)間。②GIS數(shù)據(jù)的展示以B/S形式放在瀏覽器端,直接從后臺(tái)數(shù)據(jù)庫提取數(shù)據(jù)演示,減輕前端的負(fù)載。
1.3.4 ?C/B/S 軟件設(shè)計(jì)模式 ?根據(jù)對(duì)系統(tǒng)整體架構(gòu)的分析,數(shù)據(jù)的處理和展示采用2種框架設(shè)計(jì)模式混合使用,即C/B/S模式,結(jié)合使用了C/S和B/S這兩種模式[10]。
數(shù)據(jù)的處理采用了C/S模式(Client/Server)。在局域網(wǎng)內(nèi),對(duì)數(shù)據(jù)的保護(hù)較強(qiáng),安全性能高。這種軟件通過客戶端、服務(wù)器、數(shù)據(jù)庫三級(jí)模式,將多種氣象數(shù)據(jù)的接收定位在服務(wù)器上,而業(yè)務(wù)邏輯的處理包括采集、解析、質(zhì)控、入庫放在客戶端。這種開發(fā)方式合理分配了Client端和Server端的任務(wù),降低系統(tǒng)的通訊開銷。該模式下系統(tǒng)開發(fā)的靈活性、安全性、可拓展性能得到了保障,系統(tǒng)維護(hù)也比較方便。服務(wù)器與數(shù)據(jù)庫進(jìn)行交互,通過網(wǎng)間通信與客戶端就可以進(jìn)行互動(dòng)。
數(shù)據(jù)的展示采用了B/S模式(Browser/Server),該模式用戶頁面通過瀏覽器實(shí)現(xiàn),基于應(yīng)用層http協(xié)議提供Web服務(wù)。輔助決策平臺(tái)對(duì)數(shù)據(jù)的訪問可以通過Post/Get方式向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器則是通過API接口的方式響應(yīng)請(qǐng)求、提供服務(wù)、反饋數(shù)據(jù)。這種模式可拓展性極強(qiáng),通過增加網(wǎng)頁即可添加服務(wù)器功能。同樣是Browser、Web Server、db Server三層架構(gòu),業(yè)務(wù)邏輯同樣被放置在服務(wù)器端,但這種http協(xié)議下的Request請(qǐng)求能夠?qū)崿F(xiàn)數(shù)據(jù)的全方位共享,不僅適用于輔助決策平臺(tái),還可以為其他業(yè)務(wù)平臺(tái)提供接口共享支撐(圖6)。
1.3.5 ?Mybaitis框架提供API服務(wù) ?輔助決策系統(tǒng)對(duì)數(shù)據(jù)的調(diào)用和訪問都有一定的要求,一是數(shù)據(jù)的精準(zhǔn)度,二是調(diào)用數(shù)據(jù)的效率,三是能夠滿足多并發(fā)的數(shù)據(jù)獲取條件。這樣的后臺(tái)數(shù)據(jù)處理要求急需一個(gè)具備簡(jiǎn)易存儲(chǔ)過程、高級(jí)映射、通用SQL及高并發(fā)的持久性框架來滿足。經(jīng)過研究系統(tǒng)最終選擇了Mybatis框架,除了能夠滿足上述功能外,通過XML和注解配置數(shù)據(jù)庫原生信息,將接口和Java對(duì)象映射成數(shù)據(jù)庫中的記錄,滿足基本數(shù)據(jù)調(diào)用需求,該模式可以讓開發(fā)者把更多的精力放在業(yè)務(wù)SQL的編輯上,節(jié)省一定的開發(fā)成本。Mybatis功能框架主要分為三層[11]。
1)API接口層。負(fù)責(zé)為外部應(yīng)用提供API接口服務(wù),通過這些API可對(duì)數(shù)據(jù)庫進(jìn)行操作。向接口層發(fā)送帶參數(shù)的Request請(qǐng)求,數(shù)據(jù)處理層將接收參數(shù)并完成數(shù)據(jù)處理。
2)數(shù)據(jù)處理層。負(fù)責(zé)將接收到的SQL及參數(shù)進(jìn)行解析、執(zhí)行、映射處理及反饋結(jié)果。返回的結(jié)果可以自行設(shè)定。它主要的目的是根據(jù)調(diào)用的請(qǐng)求完成一次數(shù)據(jù)庫操作。
3)基礎(chǔ)支撐層。負(fù)責(zé)基礎(chǔ)功能支撐,包括數(shù)據(jù)庫鏈接配置、映射管理、事務(wù)管理、配置加載和緩存處理。為上層數(shù)據(jù)處理提供最基礎(chǔ)的支撐。
考慮到系統(tǒng)未來使用的可擴(kuò)展性、高效性、兼容性、通用性,選擇Mybatis作為系統(tǒng)開發(fā)的ORM框架。框架結(jié)構(gòu)見圖7。
1.3.6 ?WebGIS引入Leaflet.js插件技術(shù) ?建立輔助決策系統(tǒng),其目的是方便業(yè)務(wù)員在預(yù)警、預(yù)報(bào)、業(yè)務(wù)產(chǎn)品制作過程中能夠?qū)崟r(shí)查詢到所要參考的氣象資料。預(yù)報(bào)員做出決策的數(shù)據(jù)依據(jù)是當(dāng)前氣象部門的地面觀測(cè)數(shù)據(jù)。如何直觀、高效的展示這些數(shù)據(jù)成為系統(tǒng)設(shè)計(jì)的關(guān)鍵一環(huán)。
系統(tǒng)采用了基于Leaflet插件的WebGIS技術(shù)。Leaflet.js 解決了傳統(tǒng)WebGIS矢量數(shù)據(jù)在瀏覽器中展示缺乏統(tǒng)一以及響應(yīng)慢框架重的問題。Leaflet.js適用于移動(dòng)端交互地圖主要的開源JavaScript庫,擁有大部門開發(fā)者所需的地圖功能輕量級(jí)庫。服務(wù)擁有數(shù)百個(gè)第三方插件擴(kuò)展地圖功能,基本能夠滿足該系統(tǒng)的開發(fā)研究。地圖由官方機(jī)構(gòu)提供,經(jīng)過自ArcGIS編輯器切出所需要的地圖底圖,地圖服務(wù)器采用ArcGIS server提供在線服務(wù)。GIS的應(yīng)用不斷普及,就該系統(tǒng)而言,結(jié)合Leaflet和WebGIS能夠很好的滿足氣象要素直觀高效演示的要求。
1.3.7 ?開發(fā)語言及相關(guān)環(huán)境 ?系統(tǒng)選擇了J2EE開發(fā)環(huán)境,J2EE體系架構(gòu)將表示邏輯、業(yè)務(wù)邏輯與數(shù)據(jù)邏輯相分離,使系統(tǒng)的并行操作、網(wǎng)絡(luò)計(jì)算能力提高,系統(tǒng)的整體性能得以優(yōu)化。
開發(fā)語言方面平臺(tái)選擇采用基于J2EE規(guī)范的Java語言,支持JDK1.6版本以上,后臺(tái)采用流行的Spring Boot、Shrio、Redis數(shù)據(jù)緩存和Mybatis架構(gòu)分層體系結(jié)構(gòu),前端采用Html5、Bootstrap、Jquery、Vue等頁面制作技術(shù)和規(guī)范,構(gòu)建安全、穩(wěn)定、高效、簡(jiǎn)單實(shí)用的中心客戶端應(yīng)用[12]。
網(wǎng)絡(luò)通信及數(shù)據(jù)傳輸方面采用http協(xié)議技術(shù),數(shù)據(jù)傳輸采用加密方式,保障信息的安全通信。
與其他系統(tǒng)的對(duì)接采用安全規(guī)范的接口技術(shù),數(shù)據(jù)格式采用JSON和XML,基于安全規(guī)范的制定統(tǒng)一控制接口,重要數(shù)據(jù)實(shí)現(xiàn)加密,支持異構(gòu)系統(tǒng)、目錄、FTP站點(diǎn)等手動(dòng)或自動(dòng)獲取數(shù)據(jù)。
2 ?軟件框架設(shè)計(jì)
2.1 ?混合模式下軟件平臺(tái)的設(shè)計(jì)
結(jié)合系統(tǒng)采用的框架模式特點(diǎn)及實(shí)際業(yè)務(wù)需求分析,系統(tǒng)主要有兩大功能:①滿足對(duì)氣象數(shù)據(jù)的采集、分類、解析、挖掘、存儲(chǔ);②通過發(fā)布對(duì)數(shù)據(jù)的調(diào)用指令操作數(shù)據(jù)庫,實(shí)現(xiàn)以API白名單服務(wù)方式抓取數(shù)據(jù),安全、高效、共享性能高。優(yōu)化整個(gè)氣象系統(tǒng)數(shù)據(jù)傳輸?shù)姆绞絒13]。
2.1.1 ?C/S模式通信設(shè)計(jì) ?系統(tǒng)中氣象信息可以分為規(guī)則數(shù)據(jù)報(bào)和臨時(shí)數(shù)據(jù)報(bào)信息。其中規(guī)則數(shù)據(jù)報(bào)文的周期是固定的,可以定時(shí)定量處理,而臨時(shí)數(shù)據(jù)報(bào)的產(chǎn)生比較隨機(jī),需要特殊處理。
基于數(shù)據(jù)處理的穩(wěn)定性,系統(tǒng)采用C/S架構(gòu)模式處理數(shù)據(jù)??紤]數(shù)據(jù)處理并發(fā)量大的問題,系統(tǒng)選擇了多線程模式。在C/S架構(gòu)下采用了多線程的操作方式,將繁雜多樣的氣象數(shù)據(jù)解析融合入庫歸納到各自的線程中。主要包括如下幾類:①主線程。主要工作是啟動(dòng)程序,對(duì)報(bào)文預(yù)處理、設(shè)定定時(shí)器并啟動(dòng)讀寫線程等;②讀寫線程,在該線程中對(duì)文件進(jìn)行數(shù)據(jù)文件讀取、文件整理、文件分類、文件標(biāo)注;③解析線程,將對(duì)分類后的報(bào)文數(shù)據(jù)截取字段,提取要素值,接著進(jìn)行質(zhì)量控制、數(shù)據(jù)分類、數(shù)據(jù)解析及數(shù)據(jù)融合;④入庫線程,將分類的報(bào)文分級(jí)提取,執(zhí)行操作,存儲(chǔ)到數(shù)據(jù)庫中,最后以日志的方式保存。所有操作完成之后將結(jié)果向主線程反饋。
經(jīng)過長(zhǎng)時(shí)間的數(shù)據(jù)積累,數(shù)據(jù)庫模型逐漸完善,為接下來的數(shù)據(jù)訪問提供了數(shù)據(jù)基礎(chǔ)。流程如圖8所示。
2.1.2 ?B/S模式通信設(shè)計(jì) ?為滿足業(yè)務(wù)員隨時(shí)隨地查詢和瀏覽氣象災(zāi)害數(shù)據(jù)。系統(tǒng)在展示端采用了B/S模式。
系統(tǒng)以Web形式存在,瀏覽器在打開時(shí)就已經(jīng)對(duì)系統(tǒng)頁面和相關(guān)接口進(jìn)行了初始化。用戶即遠(yuǎn)程客戶端可以在UI上發(fā)送請(qǐng)求,查詢所需參考的氣象數(shù)據(jù)[14]。①初始化連接數(shù)據(jù)庫,若連接不上則繼續(xù)發(fā)送請(qǐng)求,請(qǐng)求三次反饋結(jié)果;②接口認(rèn)證,訪問數(shù)據(jù)時(shí)自帶訪問API的Key,拉取數(shù)據(jù);③請(qǐng)求發(fā)送及反饋,前端訪問通過線程頁面發(fā)送請(qǐng)求,模式POST/GET。后臺(tái)接收到請(qǐng)求后,立即調(diào)用Mybatis下的API查詢數(shù)據(jù)庫,反饋給前端;④前端的展示,后臺(tái)傳遞的數(shù)據(jù)將經(jīng)過解析與前端控件綁定,最后呈現(xiàn)給用戶。在數(shù)據(jù)的請(qǐng)求反饋方面,可啟動(dòng)數(shù)據(jù)處理線程,將數(shù)據(jù)反饋給頁面,也可以直接通過http協(xié)議與接口溝通,發(fā)送請(qǐng)求返回?cái)?shù)據(jù)。第二種方式可以服務(wù)該系統(tǒng)以外的遠(yuǎn)程客戶端應(yīng)用。
B/S模式下的系統(tǒng)設(shè)計(jì)業(yè)務(wù)拓展簡(jiǎn)單,通過添加網(wǎng)頁即可添加服務(wù)器功能,數(shù)據(jù)以接口的方式存在,其共享性能強(qiáng)大。
2.2 ?系統(tǒng)運(yùn)行
系統(tǒng)在研發(fā)過程中,引入了當(dāng)前較為成熟的Multi-thread技術(shù)、WebGIS技術(shù)、數(shù)據(jù)庫技術(shù)等,這些技術(shù)的應(yīng)用可以解決系統(tǒng)實(shí)施中的基本問題。但對(duì)插件式Leflet和混合架構(gòu)設(shè)計(jì)技術(shù)的使用讓系統(tǒng)的數(shù)據(jù)處理性能和GIS展示性能變得更加實(shí)用,響應(yīng)速度變快。研究在輔助決策平臺(tái)的研發(fā)工作中將各種技術(shù)融合取得了不錯(cuò)的進(jìn)展。系統(tǒng)已形成原型,系統(tǒng)采用了Java語言、JavaScript技術(shù)、WebGIS技術(shù)及Mybatis框架提供API服務(wù)同步編程。同時(shí)結(jié)合Oracle數(shù)據(jù)庫來存儲(chǔ)數(shù)據(jù)。該系統(tǒng)兼容性能較好,可以部署在Windows或Linux服務(wù)器上。
實(shí)際運(yùn)行效果表明該系統(tǒng)性能良好。如何進(jìn)一步優(yōu)化對(duì)海量氣象數(shù)據(jù)處理以及挖掘數(shù)據(jù)中隱藏的規(guī)則,還需進(jìn)一步研究和探索。系統(tǒng)展示如圖9、圖10所示。
3 ?小結(jié)
隨著科技的發(fā)展和進(jìn)步,信息傳輸速度需求加快、群眾需求不斷提高,老舊氣象業(yè)務(wù)平臺(tái)基本無法滿足現(xiàn)代化氣象業(yè)務(wù)發(fā)展需要,而省級(jí)平臺(tái)研發(fā)也無法兼顧各市局本地化的需求。因此新平臺(tái)的建設(shè)迫在眉睫。依托省局一體化平臺(tái)提供的數(shù)據(jù)資源,結(jié)合CIMISS庫,根據(jù)本市地方化業(yè)務(wù)需要出發(fā),建立常州氣象災(zāi)害預(yù)警輔助決策系統(tǒng)平臺(tái),簡(jiǎn)化值班人員工作環(huán)節(jié),提高服務(wù)效果和預(yù)警效率,促進(jìn)服務(wù)創(chuàng)新,使氣象服務(wù)工作形成一種可持續(xù)發(fā)展的長(zhǎng)效機(jī)制。系統(tǒng)提出一體化業(yè)務(wù)制作、一鍵式信息發(fā)布,集約化數(shù)據(jù)監(jiān)測(cè)等理念,結(jié)合J2EE平臺(tái)架構(gòu),多線程數(shù)據(jù)處理、WebGIS前端服務(wù)、Mybatis后臺(tái)服務(wù)、Oracle分布式數(shù)據(jù)存儲(chǔ),跨平臺(tái)部署,并能夠支持第三方Leflet插件整合接入。最大效能地發(fā)揮了互聯(lián)網(wǎng)技術(shù)在氣象服務(wù)中的作用。
系統(tǒng)當(dāng)前處于應(yīng)用階段,還有很多不足和需要改進(jìn)的地方。后期除了解決系統(tǒng)本身的問題以外,還會(huì)花更多的時(shí)間和精力對(duì)海量氣象數(shù)據(jù)進(jìn)行深度挖掘,將人工智能機(jī)器學(xué)習(xí)帶到氣象領(lǐng)域,剖析累計(jì)多年的海量氣象數(shù)據(jù)背后的規(guī)律和秘密。
參考文獻(xiàn):
[1] 郭樹軍,張洪廣,周 ?勇.關(guān)于發(fā)展智慧氣象的若干思考[J].氣象知識(shí),2018(2):19-21.
[2] 孫石陽,邱宗旭,劉東華,等.智能專業(yè)氣象信息融合與服務(wù)系統(tǒng)建設(shè)初步研究[A].第27屆中國(guó)氣象學(xué)會(huì)年會(huì)雷電防護(hù)科學(xué)與技術(shù)發(fā)展分會(huì)場(chǎng)論文集[C].北京:中國(guó)氣象學(xué)會(huì),2010.