劉雨露 吳杰


摘要:本文介紹了一種可快速構建的氣象決策服務平臺,平臺的主要功能分為兩類,基礎數據查詢統計和決策模型的生成。在設計算法模型時,利用策略模式,將軟件界面和算法模型解耦,使得軟件界面和算法模型的需求變化不再互相影響。方便了今后模型的擴展,也減小需求變更對系統的影響。并且利用代碼生成技術進行系統的快速構建,按照氣象領域規則,生成規范的可配置的氣象決策服務平臺源代碼,提高了開發效率、延長了系統的生命周期。
關鍵詞:快速構建;代碼生成器;線性擬合;自動生成;氣象決策服務
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)21-0250-02
開放科學(資源服務)標識碼(OSID):
1引言
改革開放以來,我國社會和經濟的快速發展,與此同時,氣象與國民經濟和人民生活的關系越來越密切,氣象服務的需求不斷提升,氣象工作為國家經濟建設和社會發展,為防災減災和應對氣候等環境變化,為提髙人民生活水平發揮作用。
現代氣象服務業務主要內容主要包括的決策氣象服務、公共氣象服務、專業氣象服務三個類別。本項目從氣象服務業務的體系結構、業務內容、業務流程及其特點分析入手,采用軟件開發中的中間件技術、代碼生成引擎等設計方法,開發一種通用、可配置的信息化平臺產品,實現市、縣級氣象局的氣象服務業務的可定制和自動化生成。生成模塊主要包括:全國綜合氣象信息共享系統數據本地化采集處理、氣象模型管理集成、氣象指數預報、天氣預報產品制作等系統。
國家氣象信息中心于2009年啟動建設了CIMISS系統(即全國綜合氣象信息共享系統),于2017年投入業務運行,預期在2020年CIMISS實現全國氣象數據互聯。該系統為氣象服務構建了統一數據環境,也為氣象業務的通用信息管理平臺提供了發展契機。本平臺采用Java語言作為開發語言,前端頁面使用了jQuery、EasyUI 技術,后端采用SSH框架,SqlServer作為底層數據庫,使用了Freemarker技術作為代碼生成技術,數據采集調用了CIMISS中的MUSIC接口。
2主要技術
2.1 代碼生成器
本平臺代碼生成器詳細設計流程描述如下:
2.1.1新建功能
點擊新建按鈕,系統會調用ManualConfigGenAction中的create()函數,該函數分別調用ManualConfigGenService中的findAllElement()函數和loadCollections()函數進行氣象要素和要采集的要素加載。在調用這兩個函數加載氣象要素和要采集的要素的時候會調用中的DAO中的findAll()方法。最終將要加載的數據傳輸到界面上。
2..1.2 加載功能
點擊加載按鈕,系統會調用ManualConfigGenAction中的load()方法,在load()方法中繼續調用ManualConfigGenService中的loadJsonString()方法來加載之前配置好的配置文件。
2.1.3 保存功能
點擊保存按鈕,系統會自動調用ManualConfigGenAction中的save()方法,進而調用ManualConfigGenService中的save()方法將生成的配置文件保存到相應的位置。
2.1.4生成功能
點擊生成按鈕,系統會自動的調用ManualConfigGenAction中的gen()方法,進而調用ManualConfigGenService中的gen()方法生成所有配置好的jsp文件,service類文件,action類文件。
2.2策略模式
氣象工作項目規模大,開發周期短,用戶需求時常變化,使用傳統的開發途徑,這些問題很難完善的解決。采用策略模式,將每個算法模型封裝,使得算法模型與業務層解耦,實現在不更改業務層的前提下根據需求靈活切換或增加算法模型,更加有利于系統的維護。
3平臺研究內容
1)搭建CIMISS數據本地化采集處理配置系統。通過配置界面,建立市、縣級CIMISS系統應用工作站,實現本地化、業務化應用。可實時下載所需數據或根據需要選擇下載。
2)搭建氣象歷史資料數據庫本地化查詢處理配置系統。通過配置界面,可實現設計氣象資料歷史數據庫本地化查詢處理系統。歷史資料庫包括有連續氣象記錄以來的逐日氣象要素:平均氣溫、最高氣溫、最低氣溫、降水、日照、風向、風速、相對濕度、水汽壓、蒸發、云量、地溫、凍土、積雪深度等
3)實現常用的氣象決策模型。包括鄉鎮級的5-7天氣溫、降水、風等要素預報、農業氣象年景分析、春耕春播期第一場透雨預報、不同作物最佳播期預報、土壤相對濕度預報、施藥施肥氣象條件預報、秋收期天氣預報、農作物產量預報、糧食儲運晾曬天氣預報、秋整地天氣預報、土壤封凍日期預報,干旱監測預報、低溫監測預報、稻瘟病預報、玉米螟預報。
4)服務產品制作系統的實現。服務產品制作采用固定格式的產品模板,模板要求為word文檔,可以插入圖表。能夠實現自動保存默認文件名、默認目錄和手動保存。模板具體格式、產品制作要求根據業務要求進行配置。生成數據表格、制作數據填圖、制作等值線圖、制作等值面圖。圖表可以存儲、打印等。
5)實現外部訪問接口,將最新的預報服務產品、預警信息等以最快速、最便捷、最省力的方式發送到農業服務網站,手機客戶端(APP),微信平臺子系統。
平臺體系結構如下圖所示:
4設計重點和難點
1)系統可視化快速構建:用戶通過快速構建頁面根據需求添加所需構建的頁面,系統調用代碼生成器根據模板文件迅速構建所需頁面,實現迅速構建指定區域系統的代碼文件。
2)氣象決策模型的實現:系統提取數據庫中已有的數據并根據算法模型分析得出氣象結論,系統會根據用戶的需求將氣象結論自動生成氣象決策文件。
3)Word類型決策文檔的生成。利用Microsoft Word? Object Library自動生成氣象結論產品,無須人工編寫。
4)數據實時下載:CIMISS數據下載模塊實時從CIMISS下載氣象要素數據,將數據本地化以供氣象模型使用。
5結論
文章闡述了一種可快速構建的氣象決策服務平臺,按照氣象領域規則,利用代碼生成技術生成規范的可配置的氣象決策服務平臺源代碼,有效避免了低水平重復開發,并且能夠實現標準化生產。數據采集調用了運用了基于線性擬合和基于規則的算法模型,并采用了策略模式,使得算法模型與業務結構解耦,使得軟件界面和算法模型的需求變化不再互相影響。可用性和健壯性強,有創新性。目前該項目已投入使用,客戶使用評價良好。
參考文獻:
[1]? 楊黎黎. 基于智慧氣象的決策服務信息查詢與自動發布系統設計與研究[A]. 中國氣象學會.第35屆中國氣象學會年會 S24 青年論壇[C].中國氣象學會:中國氣象學會,2018:3.
[2]? 李巧媛. 湖南省決策氣象服務一體化平臺設計[A]. 中國氣象學會.第34屆中國氣象學會年會 S11 創新驅動智慧氣象服務——第七屆氣象服務發展論壇論文集[C].中國氣象學會:中國氣象學會,2017:2.
[3]? 萬軍民. 基于java的代碼生成器的設計與實現[J].計算機工程,2004.
[4]? 陳海郎.基于模板的管理信息系統代碼自動生成[J].價值工程,2018,37(32):213-216.
[5]? 趙芳,何文春,張小纓,張志強.全國綜合氣象信息共享平臺建設[J].氣象科技進展,2018,8(1):171-180.
【通聯編輯:光文玲】