韓瀟影 劉峰民
摘? 要: 基于ASP.NET MVC框架設(shè)計(jì)開(kāi)發(fā)的省級(jí)氣象預(yù)警信息平臺(tái),采用SQLSERVER2008數(shù)據(jù)庫(kù),C#開(kāi)發(fā)語(yǔ)言,實(shí)現(xiàn)氣象預(yù)警信息的規(guī)范化管理。系統(tǒng)基于領(lǐng)域模型驅(qū)動(dòng)的需求開(kāi)發(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)手段單一性,在氣象信息傳遞的“最后一公里”問(wèn)題上實(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
本文著錄格式:韓瀟影,劉峰民. 基于ASP.NET MVC架構(gòu)的省級(jí)氣象預(yù)警信息平臺(tái)[J]. 軟件,2020,41(09):112114
【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)期以來(lái),省級(jí)氣象管理部門在氣象預(yù)警流程管理上依賴于傳統(tǒng)媒體和手工作業(yè)流程,在發(fā)生重大氣象災(zāi)害時(shí),傳統(tǒng)的預(yù)警渠道在氣象信息傳遞的“最后一公里”問(wèn)題上總是無(wú)法突破。隨著農(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)可以通過(guò)有效的信息發(fā)布與預(yù)警手段,在氣象信息傳遞的“最后一公里”問(wèn)題上走的更遠(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)求過(guò)程中通過(guò)View State功能獨(dú)立的保存自己的狀態(tài),獨(dú)立的輸出HTML代碼并進(jìn)行服務(wù)端事件綁定,但是View State在每個(gè)HTTP請(qǐng)求和答復(fù)過(guò)程中在服務(wù)端和客戶端反復(fù)傳遞嚴(yán)重加重了服務(wù)器的負(fù)擔(dān),消耗了大量的網(wǎng)絡(luò)帶寬;同時(shí)開(kāi)發(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)開(kāi)展工作,目的是實(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)通過(guò)對(duì)接省局自動(dòng)站庫(kù)和短期預(yù)報(bào)庫(kù),實(shí)時(shí)采集氣象信息后進(jìn)行本地化數(shù)據(jù)處理,通過(guò)本平臺(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)氣象信息員通過(guò)電話報(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è)過(guò)程中具體采用的技術(shù)選型說(shuō)明
2.2? 基于領(lǐng)域模型驅(qū)動(dòng)(DDD)的需求開(kāi)發(fā)方式和模塊化的設(shè)計(jì)方法
系統(tǒng)基于領(lǐng)域模型驅(qū)動(dòng)(DDD)4的需求開(kāi)發(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èn)層接口和服務(wù)接口和全局元數(shù)據(jù)等的定義。
WeatherWIP.DAL:數(shù)據(jù)訪問(wèn)層,通過(guò)必要的ORM框架5,封裝業(yè)務(wù)模型的CRUD操作,避免對(duì)數(shù)據(jù)庫(kù)的直接訪問(wèn)操作。在這層僅包含純粹數(shù)據(jù)讀寫,與應(yīng)用程序或者業(yè)務(wù)邏輯無(wú)關(guān)。
WeatherWIP.Service:服務(wù)層,對(duì)于系統(tǒng)業(yè)務(wù)邏輯的封裝與實(shí)現(xiàn),事務(wù)機(jī)制,并發(fā)處理等。根據(jù)前臺(tái)不同的調(diào)用請(qǐng)求,通過(guò)對(duì)數(shù)據(jù)訪問(wèn)層在倉(cāng)庫(kù)模型中封裝的最小原子的添加、修改、刪除的請(qǐng)求,根據(jù)業(yè)務(wù)的定義進(jìn)行調(diào)用和處理,然后將處理結(jié)果返回調(diào)用者。
WeatherWIP.Web:UI層,是用戶與系統(tǒng)交互的主要接口,其表現(xiàn)形式就是網(wǎng)頁(yè),它將后臺(tái)的數(shù)據(jù)通過(guò)HTML加上布局和界面設(shè)計(jì)展現(xiàn)給用戶,同時(shí)接收用戶的事件和請(qǐng)求,并與業(yè)務(wù)邏輯層交互處理用戶事件。
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ù)器沒(méi)有明顯的性能影響,本地中心數(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),通過(guò)信息表格、flash媒體等形式,定時(shí)發(fā)布全省常規(guī)天氣預(yù)報(bào)。
(3)氣象預(yù)報(bào)預(yù)警信息發(fā)布,以通知的形式,按規(guī)范信息化格式發(fā)布全省災(zāi)害性天氣預(yù)報(bào)及預(yù)警信息,對(duì)災(zāi)害性天氣通過(guò)可視化閃爍形式進(jìn)行自動(dòng)警示。
(4)農(nóng)業(yè)氣象服務(wù)信息,氣象科普知識(shí)學(xué)習(xí)宣傳,以分類欄目的形式,發(fā)布如農(nóng)業(yè)氣象的旬報(bào)、月報(bào)與季報(bào),病蟲(chóng)害預(yù)報(bào)、氣象科普知識(shí)發(fā)布等。
(5)氣象災(zāi)情收集上報(bào),對(duì)鄉(xiāng)鎮(zhèn)氣象信息員通過(guò)電話報(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)信息量等多種形式;通過(guò)基于GIS地圖的氣象信息員分布特征查詢,可以直觀了解氣象信息員的空間分布及聯(lián)系信息。
4? 實(shí)現(xiàn)效率與二期展望
通過(guò)省級(jí)氣象預(yù)警信息平臺(tái)的建設(shè),實(shí)現(xiàn)了鄉(xiāng)鎮(zhèn)氣象信息員的規(guī)范化管理;通過(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)單一性,在氣象信息傳遞的“最后一公里”問(wèn)題上實(shí)現(xiàn)了有效的探索?;贛VC的系統(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)沒(méi)有其他影響。
項(xiàng)目后續(xù)計(jì)劃通過(guò)手機(jī)端應(yīng)用的對(duì)接的,考慮氣象災(zāi)害信息的手機(jī)直接上報(bào),氣象預(yù)警信息的主動(dòng)推送,以期望徹底解決“最后一公里”問(wèn)題。
參考文獻(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ì). 軟件定義 面向未來(lái)——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.