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