韓瀟影 劉峰民
摘 ?要: 基于ASP.NET MVC框架設(shè)計(jì)開發(fā)的省級(jí)氣象預(yù)警信息平臺(tái),采用SQLSERVER2008數(shù)據(jù)庫(kù),C#開發(fā)語(yǔ)言,實(shí)現(xiàn)氣象預(yù)警信息的規(guī)范化管理。系統(tǒng)基于領(lǐng)域模型驅(qū)動(dòng)的需求開發(fā)方式和模塊化的設(shè)計(jì)原則,對(duì)解決方案進(jìn)行分層設(shè)計(jì)和實(shí)現(xiàn),遵循面向接口設(shè)計(jì)的思想,每層只依賴上一層,較好的實(shí)現(xiàn)了系統(tǒng)可擴(kuò)展性。采用SQL SERVER2008的數(shù)據(jù)采集器對(duì)接省局自動(dòng)站庫(kù)和短期預(yù)報(bào)庫(kù)。系統(tǒng)建設(shè)彌補(bǔ)了傳統(tǒng)預(yù)報(bào)平臺(tái)的預(yù)報(bào)手段單一性,在氣象信息傳遞的“最后一公里”問題上實(shí)現(xiàn)了有效的探索。
關(guān)鍵詞: ASP.NET MVC;預(yù)警信息;分層
中圖分類號(hào): TP3 ???文獻(xiàn)標(biāo)識(shí)碼: A ???DOI:10.3969/j.issn.1003-6970.2020.09.031
【Abstract】: Based on the ASP.NET MVC framework, the provincial meteorological early warning information platform is designed and developed. The SQLSERVER2008 database and C# development language are used to realize the standardized management of meteorological early warning information. The system is based on domain model driven requirement development mode and modularity design principle. The solution is designed and implemented hierarchically, following the idea of interface oriented design. Each layer relies on only one layer, which achieves better system scalability. Automatic station storehouse and the Bureau forecast short-term data collector SQL SERVER2008 docking. The system construction made up the simpleness of the traditional forecasting platform, and realized the effective exploration on the “l(fā)ast kilometer” of the meteorological information transmission.
【Key words】: ASP.NET; MVC; Early warning information; Stratification
0 ?引言
長(zhǎng)期以來,省級(jí)氣象管理部門在氣象預(yù)警流程管理上依賴于傳統(tǒng)媒體和手工作業(yè)流程,在發(fā)生重大氣象災(zāi)害時(shí),傳統(tǒng)的預(yù)警渠道在氣象信息傳遞的“最后一公里”問題上總是無法突破。隨著農(nóng)村鄉(xiāng)鎮(zhèn)網(wǎng)絡(luò)建設(shè)的普及,依托于網(wǎng)絡(luò)架構(gòu)的信息發(fā)布和管理平臺(tái)建設(shè)具有了實(shí)際的信息,作為傳統(tǒng)預(yù)警媒體的有效補(bǔ)充,網(wǎng)絡(luò)預(yù)警信息平臺(tái)可以通過有效的信息發(fā)布與預(yù)警手段,在氣象信息傳遞的“最后一公里”問題上走的更遠(yuǎn)。
結(jié)合實(shí)際業(yè)務(wù)需要,本信息平臺(tái)的建設(shè)期望解決氣象信息員的信息管理,氣象災(zāi)情信息的上報(bào)管理,突發(fā)氣象災(zāi)害信息的預(yù)警與發(fā)布1。
1 ?體系結(jié)構(gòu)設(shè)計(jì)概述
傳統(tǒng)的ASP.NET Web Form每個(gè)服務(wù)器控件在各個(gè)HTTP請(qǐng)求過程中通過View State功能獨(dú)立的保存自己的狀態(tài),獨(dú)立的輸出HTML代碼并進(jìn)行服務(wù)端事件綁定,但是View State在每個(gè)HTTP請(qǐng)求和答復(fù)過程中在服務(wù)端和客戶端反復(fù)傳遞嚴(yán)重加重了服務(wù)器的負(fù)擔(dān),消耗了大量的網(wǎng)絡(luò)帶寬;同時(shí)開發(fā)人員通常將服務(wù)器端代碼和客戶端代碼混合在應(yīng)用邏輯中使得代碼混亂不易理解,不利于業(yè)務(wù)的擴(kuò)展。
ASP.NET MVC框架2將數(shù)據(jù)(模型)和對(duì)其操作的動(dòng)作(控制器)做了有效分離,具有高內(nèi)聚、低耦合的特點(diǎn),程序架構(gòu)清晰,系統(tǒng)具有良好的靈活性、可擴(kuò)展性以及易維護(hù)性。
1.1 ?建設(shè)目標(biāo)
省級(jí)氣象預(yù)警信息平臺(tái)建設(shè)是氣象協(xié)理員、氣象信息員隊(duì)伍建設(shè)的重要工作內(nèi)容之一,前期選擇了部分市縣的鄉(xiāng)村氣象服務(wù)站作為試點(diǎn)開展工作,目的是實(shí)現(xiàn)氣象協(xié)管員、氣象信息員信息的科學(xué)、高效、規(guī)范、信息化管理,同時(shí)實(shí)現(xiàn)氣象部門與信息員之間的信息交互,提高氣象信息、災(zāi)情信息傳遞的準(zhǔn)確性、及時(shí)性。
信息平臺(tái)業(yè)務(wù)建設(shè)范圍包括天氣實(shí)況信息展示、鄉(xiāng)鎮(zhèn)天氣預(yù)報(bào)、氣象預(yù)報(bào)預(yù)警信息發(fā)布、農(nóng)業(yè)氣象服務(wù)信息、氣象災(zāi)情收集上報(bào)、氣象科普知識(shí)學(xué)習(xí)宣傳以及信息員管理等。
1.2 ?氣象預(yù)報(bào)業(yè)務(wù)流程
氣象信息由全省各自動(dòng)站采集并自動(dòng)匯總到省局CIMISS數(shù)據(jù)庫(kù)3,形成自動(dòng)站數(shù)據(jù)源,具體包括自動(dòng)站信息、精細(xì)化預(yù)報(bào)信息表。
省級(jí)氣象預(yù)警信息平臺(tái)通過對(duì)接省局自動(dòng)站庫(kù)和短期預(yù)報(bào)庫(kù),實(shí)時(shí)采集氣象信息后進(jìn)行本地化數(shù)據(jù)處理,通過本平臺(tái)對(duì)天氣實(shí)況、短期預(yù)報(bào)進(jìn)行多種形式的預(yù)報(bào)展現(xiàn)。
1.3 ?氣象災(zāi)情收集上報(bào)和預(yù)警信息業(yè)務(wù)流程
鄉(xiāng)鎮(zhèn)氣象信息員通過電話報(bào)告氣象災(zāi)害信息至鄉(xiāng)鎮(zhèn)氣象工作站,鄉(xiāng)鎮(zhèn)氣象工作站按照標(biāo)準(zhǔn)化信息格式進(jìn)行信息化數(shù)據(jù)錄入;
對(duì)于氣象預(yù)警信息,在信息平臺(tái)上按照標(biāo)準(zhǔn)信息格式進(jìn)行審核發(fā)布,并提供對(duì)外的數(shù)據(jù)接口,允許其他外圍系統(tǒng)進(jìn)行預(yù)警信息的采集和獲取,形成有效的預(yù)警發(fā)布和管理機(jī)制。
2 ?關(guān)鍵技術(shù)
2.1 ?系統(tǒng)建設(shè)過程中具體采用的技術(shù)選型說明
2.2 ?基于領(lǐng)域模型驅(qū)動(dòng)(DDD)的需求開發(fā)方式和模塊化的設(shè)計(jì)方法
系統(tǒng)基于領(lǐng)域模型驅(qū)動(dòng)(DDD)4的需求開發(fā)方式和模塊化的設(shè)計(jì)原則,將解決方案進(jìn)行必要的分層,每層是一個(gè)單獨(dú)的項(xiàng)目。各層結(jié)構(gòu)間采用“洋蔥模型”,遵循面向接口設(shè)計(jì)的思想,每層只依賴上一層,層之間不能穿透,Interface這層除外。
信息平臺(tái)設(shè)計(jì)中具體的分層如下:
?WeatherWIP.Interface:包括業(yè)務(wù)模型、系統(tǒng)的數(shù)據(jù)訪問層接口和服務(wù)接口和全局元數(shù)據(jù)等的定義。
?WeatherWIP.DAL:數(shù)據(jù)訪問層,通過必要的ORM框架5,封裝業(yè)務(wù)模型的CRUD操作,避免對(duì)數(shù)據(jù)庫(kù)的直接訪問操作。在這層僅包含純粹數(shù)據(jù)讀寫,與應(yīng)用程序或者業(yè)務(wù)邏輯無關(guān)。
?WeatherWIP.Service:服務(wù)層,對(duì)于系統(tǒng)業(yè)務(wù)邏輯的封裝與實(shí)現(xiàn),事務(wù)機(jī)制,并發(fā)處理等。根據(jù)前臺(tái)不同的調(diào)用請(qǐng)求,通過對(duì)數(shù)據(jù)訪問層在倉(cāng)庫(kù)模型中封裝的最小原子的添加、修改、刪除的請(qǐng)求,根據(jù)業(yè)務(wù)的定義進(jìn)行調(diào)用和處理,然后將處理結(jié)果返回調(diào)用者。
2.3 ?對(duì)接自動(dòng)站的數(shù)據(jù)采集技術(shù)
基于SQL SERVER2008的數(shù)據(jù)采集器,從省局自動(dòng)站服務(wù)器上采集數(shù)據(jù),并在本地中心數(shù)據(jù)庫(kù)存儲(chǔ)。采用數(shù)據(jù)采集器6,相比于數(shù)據(jù)的訂閱發(fā)布流程,對(duì)于遠(yuǎn)程自動(dòng)站服務(wù)器沒有明顯的性能影響,本地中心數(shù)據(jù)庫(kù)的存儲(chǔ)需求按實(shí)際數(shù)據(jù)業(yè)務(wù)需求進(jìn)行保留存儲(chǔ)。在本系統(tǒng)中,對(duì)于氣象信息數(shù)據(jù)采集保留兩年。
3 ?系統(tǒng)主要功能
省級(jí)氣象預(yù)警信息平臺(tái)7的主要功能包括天氣實(shí)況信息顯示、鄉(xiāng)鎮(zhèn)天氣預(yù)報(bào)、氣象預(yù)報(bào)預(yù)警信息發(fā)布、農(nóng)業(yè)氣象服務(wù)信息、氣象災(zāi)情收集上報(bào)、氣象科普知識(shí)學(xué)習(xí)宣傳、氣象信息員管理以及必要的后臺(tái)管理支撐功能。應(yīng)用首頁(yè)聚合信息展示效果,如圖6所示。
(1)天氣實(shí)況信息顯示8,基于地圖形式直觀的展示天氣實(shí)況氣象信息,以表格形式展示指定站點(diǎn)的實(shí)時(shí)氣象要素及天氣現(xiàn)象;支持多維度查詢,以曲線方式顯示某個(gè)站點(diǎn)某一時(shí)間段內(nèi)最高、最低氣溫趨勢(shì)。
(2)鄉(xiāng)鎮(zhèn)天氣預(yù)報(bào),通過信息表格、flash媒體等形式,定時(shí)發(fā)布全省常規(guī)天氣預(yù)報(bào)。
(3)氣象預(yù)報(bào)預(yù)警信息發(fā)布,以通知的形式,按規(guī)范信息化格式發(fā)布全省災(zāi)害性天氣預(yù)報(bào)及預(yù)警信息,對(duì)災(zāi)害性天氣通過可視化閃爍形式進(jìn)行自動(dòng)警示。
(4)農(nóng)業(yè)氣象服務(wù)信息,氣象科普知識(shí)學(xué)習(xí)宣傳,以分類欄目的形式,發(fā)布如農(nóng)業(yè)氣象的旬報(bào)、月報(bào)與季報(bào),病蟲害預(yù)報(bào)、氣象科普知識(shí)發(fā)布等。
(5)氣象災(zāi)情收集上報(bào),對(duì)鄉(xiāng)鎮(zhèn)氣象信息員通過電話報(bào)告的氣象災(zāi)害信息,進(jìn)行信息化數(shù)據(jù)錄入,同時(shí)提供氣象災(zāi)害損失查詢、統(tǒng)計(jì)以及分析等功能。
(6)氣象信息員管理,支持市縣鄉(xiāng)三級(jí)區(qū)域、年齡結(jié)構(gòu)、學(xué)歷結(jié)構(gòu)以及災(zāi)情上報(bào)信息量等多種形式;通過基于GIS地圖的氣象信息員分布特征查詢,可以直觀了解氣象信息員的空間分布及聯(lián)系信息。
4 ?實(shí)現(xiàn)效率與二期展望
通過省級(jí)氣象預(yù)警信息平臺(tái)的建設(shè),實(shí)現(xiàn)了鄉(xiāng)鎮(zhèn)氣象信息員的規(guī)范化管理;通過對(duì)自動(dòng)化站氣象數(shù)據(jù)的自動(dòng)采集,實(shí)現(xiàn)了鄉(xiāng)鎮(zhèn)氣象信息和預(yù)警信息的有效發(fā)布,有效的彌補(bǔ)了電視、廣播等傳統(tǒng)預(yù)報(bào)平臺(tái)的預(yù)報(bào)單一性,在氣象信息傳遞的“最后一公里”問題上實(shí)現(xiàn)了有效的探索。基于MVC的系統(tǒng)架構(gòu),較好的實(shí)現(xiàn)了系統(tǒng)的擴(kuò)展性,如氣象科普知識(shí)學(xué)習(xí)宣傳功能,就是在農(nóng)業(yè)氣象服務(wù)信息欄目的基礎(chǔ)上,快速進(jìn)行業(yè)務(wù)復(fù)制并實(shí)現(xiàn)了支撐,對(duì)系統(tǒng)整體結(jié)構(gòu)沒有其他影響。
項(xiàng)目后續(xù)計(jì)劃通過手機(jī)端應(yīng)用的對(duì)接的,考慮氣象災(zāi)害信息的手機(jī)直接上報(bào),氣象預(yù)警信息的主動(dòng)推送,以期望徹底解決“最后一公里”問題。
參考文獻(xiàn)
[1]李芬, 王濤, 劉寬宗, 等. 預(yù)警信息多手段發(fā)布監(jiān)控系統(tǒng)的研究與設(shè)計(jì)[J]. 佛山科學(xué)技術(shù)學(xué)院學(xué)報(bào)(自然科學(xué)版), 2020, 38(02): 19-24+28.
[2]張熠斌, 朱喜君, 劉傳深, 等. 基于Asp.Net MVC框架的礦山地質(zhì)環(huán)境信息系統(tǒng)的研究與實(shí)現(xiàn)[J]. 城市地質(zhì), 2020, 15(01): 97-102.
[3]李從英, 金石聲, 王彪, 等. 使用SymmetricDS軟件同步CIMISS核心庫(kù)數(shù)據(jù)[J]. 中低緯山地氣象, 2020, 44(01): 71-75.
[4]何擁軍, 肖瑾, 陳攀, 等. 基于領(lǐng)域模型驅(qū)動(dòng). NET平臺(tái)架構(gòu)的構(gòu)建[C]. 中國(guó)電機(jī)工程學(xué)會(huì)電力信息化專業(yè)委員會(huì). 軟件定義 面向未來——2014電力行業(yè)信息化年會(huì)論文集. 中國(guó)電機(jī)工程學(xué)會(huì)電力信息化專業(yè)委員會(huì): 人民郵電出版社電信科學(xué)編輯部, 2014: 235-239.
[5]蹇常林. ORM在Django操作數(shù)據(jù)庫(kù)中的應(yīng)用[J]. 技術(shù)與市場(chǎng), 2020, 27(01): 56-57.
[6]Diehl Metering S.A.s; “Method For Collecting Data And Sensor, Data Collector And Measurement Data Information Network” in Patent Application Approval Process (USPTO 20200191607)[J]. Computer Technology Journal, 2020.
[7]鄭延慶. 基于融合網(wǎng)關(guān)技術(shù)的氣象災(zāi)害信息推送系統(tǒng)設(shè)計(jì)研究[J]. 環(huán)境科學(xué)與管理, 2020, 45(01): 49-52.
[8]顏庭柏, 姚迪, 沈澄. 基于Google Map API的天氣實(shí)況顯示系統(tǒng)[J]. 地理空間信息, 2013, 11(03): 120-122+1.