邱忠洋 吳晶璐 劉文偉 陳宏波



摘要:綜合分析了當前市級氣象預報業務與氣象服務工作的特點及存在的問題,針對預報產品制作過程中輔助決策參考資料來源不一、發布渠道多樣、業務制作平臺多變、預警信息傳輸滯后等問題,提出了C/B/S氣象災害預警輔助決策系統的解決方案。首先采用多線程C/S數據處理和B/S數據展示的混合模式對輔助決策數據源和具體的預報業務制作進行分析和分類。在系統的總體框架設計過程中,采用Oracle數據庫存儲服務、WebGIS技術、Leaflet.js插件、Mybatis框架。詳細闡述了系統各項技術設計方案,并給出了混合模式下的具體設計方法。實際運行效果表明,該模式極大地提高了系統實時性、靈活性,預報業務服務的效率也得到了提高。
關鍵詞:預警預報;輔助決策;C/B/S;WebGIS;leaflet;Mybatis框架
中圖分類號:TP399;P45 ? ? ? ? 文獻標識碼:A
文章編號: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年底中國氣象局發布了《關于發展智慧氣象的若干思考》一文,文章高度重視并關注“智慧氣象”的戰略研究,闡述了智慧氣象的內涵和特征,提出了發展智慧氣象的三大戰略——氣象大數據戰略、互聯網氣象戰略和氣象平臺戰略,初步確立了2020年的發展目標和重點任務[1]。
結合當前業務現狀,在中國氣象系統,面向社會大眾服務的基礎大多集中在市、縣級。市縣級所需承擔的工作除了氣象預報的發布,還包括氣象預警、氣象服務產品、網絡建設及維護等相關工作。隨著氣象服務的深入開展,服務范圍逐漸擴大,預警預報及服務質量要求也越來越高[2]。作為市級氣象部門,如何解決因社會發展帶來的一系列問題,成了當務之急。研究提出建立預警輔助決策系統,旨在將氣象多種監測平臺集約化、多種制作渠道集中化、多種發布手段歸一化,讓預報制作智能化。以解放人力、方便業務為宗旨,建立健全的管理機制,契合預報業務流程,使業務規范化、制度化,增加可控性和可管理性,提高業務管理水平。這也響應了中國氣象局智慧氣象的戰略號召。本系統在氣象信息化標準體系框架內,圍繞市級綜合氣象業務,強化具有地方特色的氣候異常、災害性天氣、服務平臺數據的監測預警,建設系統融合、功能突出、數據標準的綜合輔助決策平臺,實現一站式的數據采集、傳輸、存儲、分析和展示,一鍵式的檢驗、發布和回執,滿足觀測、預報、服務等各項業務服務使用需求。有效促進業務一體化、功能集約化、崗位多責化的市級綜合氣象業務,全面實現氣象業務現代化。
1 ?關鍵要點
1.1 ?系統業務架構設計
系統業務架構主要分為5個模塊:數據集成子系統、監控子系統、資料庫數據采集子系統、信息發布子系統、業務應用子系統[3]。數據集成子系統為數據資源采集庫提供數據資源,數據采集庫產生的產品庫同時為業務應用展示平臺及數據監控平臺提供數據資源。業務應用子系統通過調用產品庫資源利用天氣分析工具做出預報決策,最終的預報結論通過多種渠道一鍵式發布至各大平臺。流程見圖1。
1.1.1 ?數據層 ?該模塊主要任務在于統一數據源,將零散的數據資源整合到同一個平臺,目前集中處理的數據源包括CIMISS、CMACAST、省局數據庫、自建數據庫及外部共享數據庫等。
1.1.2 ?服務層 ?該模塊主要是對來源多、種類繁雜的氣象數據進行自動采集、處理、分批入庫并提供相應的數據服務。采集的數據除了本地氣象探測資料外,還包括雷達、衛星云圖、閃電定位等多種類型數據。
1.1.3 ?監控子系統 ?主要對系統本身、要素數據超出閾值的情況及預警信號發布情況起到監控提醒的作用。
1.1.4 ?邏輯分析層 ?將實況、短臨、數值預報、預報產品及相關統計信息集中展示,為決策提供輔助。預警提醒方面主要是對觀測超閾值、預報不符邏輯、區域預警及組合策略預警進行自動監測提醒,最后由預報員做出相應的判斷,發布預警或相關氣象服務信息。
1.1.5 ?數據推送層 ?邏輯層分析出的預報信息將由管理員進行審核,簽發后可將預報產品信息一鍵式推送至短信、微博、FTP、傳真、網站、大喇叭、顯示屏等。
1.2 ?氣象數據
1.2.1 ?氣象數據的特點 ?氣象數據種類繁多,對數據的實時性要求高。按照類型可以分為常規和非常規觀測資料。比如基本站資料(溫度、濕度、氣壓、風速、風向)等屬于常規天氣資料,非常規特殊天氣資料包括加密自動站、探空、雷達、風廓線雷達、衛星等。氣象資料具有連續性,時序性極強,對于這些數據的采集都是按照時間順序進行存儲、計算、統計、整理和保存的。同時氣象資料還具有一定的規律性,表現在資料的周期性強,無論是多年長系列,還是年內、季節內、月內等系列,都有一定的周期性[4]。該系統的建設需要容納這些氣象數據大、繁雜的特性,并為預報業務提供所要參考的各項數據資料,這也給數據處理系統研發帶來了一定的難度。
1.2.2 ?輔助決策系統數據庫 ?Oracle數據庫,一個面向Internet計算的、支持關系對象型的、分布式的數據庫產品,是一個高度集成的互聯網應用平臺,為企業數據存儲提交高性能的數據管理系統[5,6]。
為統一對各種氣象數據進行處理,提出基于Oracle建立輔助決策氣象數據庫。建立輔助決策數據庫的目的有兩個,一是存儲,二是共享。數據庫處理的對象包含多種氣象數據,傳統基本自動站的數據、加密站數據、衛星云圖數據、雷達圖數據、環保數據、閾值及預計數據。還包括業務相關的留痕管理數據、氣象數據多種發布手段及受眾群組數據等。這些數據內部之間存在著一定的聯系。因此在對數據庫設計時,需盡量讓數據具備完整性和可拓展性,并且在數據結構的設計上需標準化,氣象數據格式的標準化有利于數據的處理。部分結構如圖2所示。
1.3 ?相關技術
1.3.1 ?Multi-Thread下的數據流 ?輔助決策系統在實施多種數據氣象解析入庫過程中,發現以單線程的形式實現數據處理有很多硬傷。一是單線程效率低下,單線程必須要將上一個任務處理完畢,才能開啟下一個任務。而用線程同步機制,消息可以通過主線程的提醒調用,再通過線程互斥機制,合理分配資源,保證資源使用的惟一性[7,8]。二是數據處理不及時,氣象數據種類繁多,業務中擁有海量的數據,單線程模式無法以最快的速度將氣象數據分析展示在業務人員桌面上。比如有自動站報文、衛星雷達圖片、模式產品數據、外界數據源等。基于上述的一系列原因,提出使用Multi-Thread方式處理數據,這樣既可以將多類別的氣象數據同步處理,又可以充分發揮服務器的CPU資源效率。同時為了提高軟件的研發效率以及便于后期維護和擴展。在軟件研發過程中,將系統的數據流劃分為4個模塊,包括數據源模塊、數據處理模塊、數據服務模塊以及數據應用模塊(圖3),多線程的應用也植入其中。
1)數據源模塊。該模塊將多種氣象要素數據源集中管理,統一到服務器上,以備處理。種類較多,包括基礎信息、自動站數據、雷達數據、云圖數據、預報數據等。
2)數據處理模塊。該模塊主要是將數據源模塊集中的數據進行接收、整理、分類、預處理、質量控制及篩選,最后將無效數據剔除,有效數據入庫。其每個流程處理過程都經過封裝,耦合度低。在數據處理過程中,對海量數據進行研究,使用數據挖掘算法研究數據的相關性對數據進行多元化融合。
3)數據服務模塊。該模塊主要是為各種數據應用提供接口服務。實質是從數據庫提取數據,為定制化的需求提供API支撐。為保障數據的安全性,設計了接口注冊白名單,經過實際注冊并通過驗證的用戶才可以使用該服務。
4)數據應用模塊。該模塊主要考慮對數據的展示,展示流程從數據的API接口獲取開始,經過數據處理、解析,最后展示。從應用角度出發,系統設計的應用層面考慮到了數據的高度共享性,不僅可以為該系統應用提供數據服務,還可以為其他應用包括APP、Wetchat、局官網和其他業務網站提供服務。
目前系統基本完成了前期數據流模塊研發的各項工作,并能夠實現數據調用演示。但是如何對海量氣象數據進行深度挖掘,以提高短時臨近數據的準確性和穩定性,還有待進一步研究。
1.3.2 ?WebGIS及Arcgis server服務器 ?WebGIS,簡而言之就是在Web上提供的GIS服務,被稱之為網絡地理信息系統,是傳統GIS在網絡上的延伸和發展,具備了傳統GIS的檢索、查詢、制圖輸出、編輯等基本功能[9]。圍繞著開放式服務、互動式操作、分布式計算、三維信息可視化等主題,WebGIS技術功能在未來將會進一步強化。結合系統的業務需求和WebGIS的功能,劃分為以下6個方面。
1)具備空間發布能力。系統可以利用GIS技術通過Map方式圖形化展示空間數據,技術人員可以及時獲取氣象信息做出決策。
2)地理信息檢索游覽功能。通過切圖的方式將所需市縣地圖作為底圖,除了地圖縮放,還可以通過人機交互對地理空間屬性數據庫進行檢索。
3)地圖制作功能。操作人員可以通過Web輸入所需制圖參數,服務器會將空間制圖參數處理完畢后返回到Web。
4)數據更新能力。可以通過前段Web頁面與后臺服務器數據進行交互,包括對空間或屬性數據的編輯修改。
5)空間決策分析。可以通過模型算法對實時數據進行計算分析,給出預測結論,并反饋給用戶。
6)數據資源共享性能。將空間數據展示在瀏覽器上,可以不受時間地點顯示訪問數據。
Arcgis server,網絡地理信息服務平臺,用于構建WebGIS應用的軟件開發平臺。作為分布式系統可以在不同的環境下協同完成GIS工作,與系統選擇B/S展示模式相匹配。同時Server具備與空間相關的定位、分析、處理的GIS技術及當前互聯共享兩大功能。在系統研發過程中,系統采用二次開發的方式集成使用Arcgis server,因此可以得到來自Server在GIS功能上的支持,控制圖層隱藏和顯示,地圖的漫游縮放,框選查詢,空間數據編輯查詢、空間分析坐標轉換、地圖下載圖層管理、高級GIS分析路徑繪制等。基于上述優勢,平臺選擇WebGIS結合Arcgis server作為地理信息互動展示研發的技術(圖4)。
1.3.3 ?C/B/S混合模式WebGIS結構 ?混合使用WebGIS結構,一方面從C/S結構來講,GIS任務被分給客戶端和服務器,應用資源被合理分配。這種結構屬于典型的胖瘦服務器模式,將數據交互、邏輯、計算、任務反饋集中在客戶端,而服務器只需提供數據即可,任務較輕。第二方面則是從B/S結構來講,將重心從客戶端轉向了瀏覽器,包括數據庫服務器、客戶瀏覽器、應用服務器(圖5)。這種方式依賴服務器對大部分的業務邏輯進行處理,并通過TCP/IP進行消息之間的傳遞,前段的邏輯處理及展示則是通過Script、Plug-in插件實現。該系統結合C/S和B/S在WebGIS處理上的優勢,制定系統所需的GIS服務策略。①GIS數據的處理使用C/S形式,全部放在后臺服務器端,定時定期操作,避免浪費資源和時間。②GIS數據的展示以B/S形式放在瀏覽器端,直接從后臺數據庫提取數據演示,減輕前端的負載。
1.3.4 ?C/B/S 軟件設計模式 ?根據對系統整體架構的分析,數據的處理和展示采用2種框架設計模式混合使用,即C/B/S模式,結合使用了C/S和B/S這兩種模式[10]。
數據的處理采用了C/S模式(Client/Server)。在局域網內,對數據的保護較強,安全性能高。這種軟件通過客戶端、服務器、數據庫三級模式,將多種氣象數據的接收定位在服務器上,而業務邏輯的處理包括采集、解析、質控、入庫放在客戶端。這種開發方式合理分配了Client端和Server端的任務,降低系統的通訊開銷。該模式下系統開發的靈活性、安全性、可拓展性能得到了保障,系統維護也比較方便。服務器與數據庫進行交互,通過網間通信與客戶端就可以進行互動。
數據的展示采用了B/S模式(Browser/Server),該模式用戶頁面通過瀏覽器實現,基于應用層http協議提供Web服務。輔助決策平臺對數據的訪問可以通過Post/Get方式向服務器發送請求,服務器則是通過API接口的方式響應請求、提供服務、反饋數據。這種模式可拓展性極強,通過增加網頁即可添加服務器功能。同樣是Browser、Web Server、db Server三層架構,業務邏輯同樣被放置在服務器端,但這種http協議下的Request請求能夠實現數據的全方位共享,不僅適用于輔助決策平臺,還可以為其他業務平臺提供接口共享支撐(圖6)。
1.3.5 ?Mybaitis框架提供API服務 ?輔助決策系統對數據的調用和訪問都有一定的要求,一是數據的精準度,二是調用數據的效率,三是能夠滿足多并發的數據獲取條件。這樣的后臺數據處理要求急需一個具備簡易存儲過程、高級映射、通用SQL及高并發的持久性框架來滿足。經過研究系統最終選擇了Mybatis框架,除了能夠滿足上述功能外,通過XML和注解配置數據庫原生信息,將接口和Java對象映射成數據庫中的記錄,滿足基本數據調用需求,該模式可以讓開發者把更多的精力放在業務SQL的編輯上,節省一定的開發成本。Mybatis功能框架主要分為三層[11]。
1)API接口層。負責為外部應用提供API接口服務,通過這些API可對數據庫進行操作。向接口層發送帶參數的Request請求,數據處理層將接收參數并完成數據處理。
2)數據處理層。負責將接收到的SQL及參數進行解析、執行、映射處理及反饋結果。返回的結果可以自行設定。它主要的目的是根據調用的請求完成一次數據庫操作。
3)基礎支撐層。負責基礎功能支撐,包括數據庫鏈接配置、映射管理、事務管理、配置加載和緩存處理。為上層數據處理提供最基礎的支撐。
考慮到系統未來使用的可擴展性、高效性、兼容性、通用性,選擇Mybatis作為系統開發的ORM框架。框架結構見圖7。
1.3.6 ?WebGIS引入Leaflet.js插件技術 ?建立輔助決策系統,其目的是方便業務員在預警、預報、業務產品制作過程中能夠實時查詢到所要參考的氣象資料。預報員做出決策的數據依據是當前氣象部門的地面觀測數據。如何直觀、高效的展示這些數據成為系統設計的關鍵一環。
系統采用了基于Leaflet插件的WebGIS技術。Leaflet.js 解決了傳統WebGIS矢量數據在瀏覽器中展示缺乏統一以及響應慢框架重的問題。Leaflet.js適用于移動端交互地圖主要的開源JavaScript庫,擁有大部門開發者所需的地圖功能輕量級庫。服務擁有數百個第三方插件擴展地圖功能,基本能夠滿足該系統的開發研究。地圖由官方機構提供,經過自ArcGIS編輯器切出所需要的地圖底圖,地圖服務器采用ArcGIS server提供在線服務。GIS的應用不斷普及,就該系統而言,結合Leaflet和WebGIS能夠很好的滿足氣象要素直觀高效演示的要求。
1.3.7 ?開發語言及相關環境 ?系統選擇了J2EE開發環境,J2EE體系架構將表示邏輯、業務邏輯與數據邏輯相分離,使系統的并行操作、網絡計算能力提高,系統的整體性能得以優化。
開發語言方面平臺選擇采用基于J2EE規范的Java語言,支持JDK1.6版本以上,后臺采用流行的Spring Boot、Shrio、Redis數據緩存和Mybatis架構分層體系結構,前端采用Html5、Bootstrap、Jquery、Vue等頁面制作技術和規范,構建安全、穩定、高效、簡單實用的中心客戶端應用[12]。
網絡通信及數據傳輸方面采用http協議技術,數據傳輸采用加密方式,保障信息的安全通信。
與其他系統的對接采用安全規范的接口技術,數據格式采用JSON和XML,基于安全規范的制定統一控制接口,重要數據實現加密,支持異構系統、目錄、FTP站點等手動或自動獲取數據。
2 ?軟件框架設計
2.1 ?混合模式下軟件平臺的設計
結合系統采用的框架模式特點及實際業務需求分析,系統主要有兩大功能:①滿足對氣象數據的采集、分類、解析、挖掘、存儲;②通過發布對數據的調用指令操作數據庫,實現以API白名單服務方式抓取數據,安全、高效、共享性能高。優化整個氣象系統數據傳輸的方式[13]。
2.1.1 ?C/S模式通信設計 ?系統中氣象信息可以分為規則數據報和臨時數據報信息。其中規則數據報文的周期是固定的,可以定時定量處理,而臨時數據報的產生比較隨機,需要特殊處理。
基于數據處理的穩定性,系統采用C/S架構模式處理數據。考慮數據處理并發量大的問題,系統選擇了多線程模式。在C/S架構下采用了多線程的操作方式,將繁雜多樣的氣象數據解析融合入庫歸納到各自的線程中。主要包括如下幾類:①主線程。主要工作是啟動程序,對報文預處理、設定定時器并啟動讀寫線程等;②讀寫線程,在該線程中對文件進行數據文件讀取、文件整理、文件分類、文件標注;③解析線程,將對分類后的報文數據截取字段,提取要素值,接著進行質量控制、數據分類、數據解析及數據融合;④入庫線程,將分類的報文分級提取,執行操作,存儲到數據庫中,最后以日志的方式保存。所有操作完成之后將結果向主線程反饋。
經過長時間的數據積累,數據庫模型逐漸完善,為接下來的數據訪問提供了數據基礎。流程如圖8所示。
2.1.2 ?B/S模式通信設計 ?為滿足業務員隨時隨地查詢和瀏覽氣象災害數據。系統在展示端采用了B/S模式。
系統以Web形式存在,瀏覽器在打開時就已經對系統頁面和相關接口進行了初始化。用戶即遠程客戶端可以在UI上發送請求,查詢所需參考的氣象數據[14]。①初始化連接數據庫,若連接不上則繼續發送請求,請求三次反饋結果;②接口認證,訪問數據時自帶訪問API的Key,拉取數據;③請求發送及反饋,前端訪問通過線程頁面發送請求,模式POST/GET。后臺接收到請求后,立即調用Mybatis下的API查詢數據庫,反饋給前端;④前端的展示,后臺傳遞的數據將經過解析與前端控件綁定,最后呈現給用戶。在數據的請求反饋方面,可啟動數據處理線程,將數據反饋給頁面,也可以直接通過http協議與接口溝通,發送請求返回數據。第二種方式可以服務該系統以外的遠程客戶端應用。
B/S模式下的系統設計業務拓展簡單,通過添加網頁即可添加服務器功能,數據以接口的方式存在,其共享性能強大。
2.2 ?系統運行
系統在研發過程中,引入了當前較為成熟的Multi-thread技術、WebGIS技術、數據庫技術等,這些技術的應用可以解決系統實施中的基本問題。但對插件式Leflet和混合架構設計技術的使用讓系統的數據處理性能和GIS展示性能變得更加實用,響應速度變快。研究在輔助決策平臺的研發工作中將各種技術融合取得了不錯的進展。系統已形成原型,系統采用了Java語言、JavaScript技術、WebGIS技術及Mybatis框架提供API服務同步編程。同時結合Oracle數據庫來存儲數據。該系統兼容性能較好,可以部署在Windows或Linux服務器上。
實際運行效果表明該系統性能良好。如何進一步優化對海量氣象數據處理以及挖掘數據中隱藏的規則,還需進一步研究和探索。系統展示如圖9、圖10所示。
3 ?小結
隨著科技的發展和進步,信息傳輸速度需求加快、群眾需求不斷提高,老舊氣象業務平臺基本無法滿足現代化氣象業務發展需要,而省級平臺研發也無法兼顧各市局本地化的需求。因此新平臺的建設迫在眉睫。依托省局一體化平臺提供的數據資源,結合CIMISS庫,根據本市地方化業務需要出發,建立常州氣象災害預警輔助決策系統平臺,簡化值班人員工作環節,提高服務效果和預警效率,促進服務創新,使氣象服務工作形成一種可持續發展的長效機制。系統提出一體化業務制作、一鍵式信息發布,集約化數據監測等理念,結合J2EE平臺架構,多線程數據處理、WebGIS前端服務、Mybatis后臺服務、Oracle分布式數據存儲,跨平臺部署,并能夠支持第三方Leflet插件整合接入。最大效能地發揮了互聯網技術在氣象服務中的作用。
系統當前處于應用階段,還有很多不足和需要改進的地方。后期除了解決系統本身的問題以外,還會花更多的時間和精力對海量氣象數據進行深度挖掘,將人工智能機器學習帶到氣象領域,剖析累計多年的海量氣象數據背后的規律和秘密。
參考文獻:
[1] 郭樹軍,張洪廣,周 ?勇.關于發展智慧氣象的若干思考[J].氣象知識,2018(2):19-21.
[2] 孫石陽,邱宗旭,劉東華,等.智能專業氣象信息融合與服務系統建設初步研究[A].第27屆中國氣象學會年會雷電防護科學與技術發展分會場論文集[C].北京:中國氣象學會,2010.