朱旻翔 曾悠 高祝宇
摘要:氣象應急響應是氣象部門應對重大活動以及突發性、災害性天氣的重要手段?;?Net MVC框架的浙江氣象應急響應管理系統,采用C#語言與SQL Server數據庫,實現省、市、縣級氣象應急響應事件的網上管理。系統依據模型驅動的原則,設計了模塊化的系統功能,使得系統運行流暢的同時具有一定的可擴展性。系統梳理了原有的應急響應的管理流程,改進管理方式,提高管理效率。目前,系統已應用于浙江省氣象部門的應急響應管理工作,自運行以來,該系統安全且穩定,效果良好。
關鍵詞:氣象應急響應;ASP.NET;C#;MVC框架;管理系統
中圖分類號:TP393文獻標志碼:A文章編號:1008-1739(2022)18-63-5

應急響應服務體系建設是加強氣象現代化建設的重要內容,是精細化監測預報系統建設的重要體現。推進氣象現代化建設是氣象部門的重要任務,而實時便捷的響應管理系統,是通過現代化、自動化手段提高各級氣象部門間在重大活動以及突發性、災害性天氣期間的部門協調能力的關鍵性步驟。因此,開展應急響應管理系統建設,利用現代化的計算機技術實現應急響應服務中的高效管理是應急響應服務的有力保障。
浙江省氣象部門內原有的應急響應管理采用收發文件的形式,主要是省內各級氣象部門在開始啟動應急響應狀態時,通過特定辦公文件收發工具發送應急響應文件到上級部門,之后人為收集和統計各部門應急響應的啟動和解除情況,因此,整體處于比較松散的管理狀態。
近年來,由于軟件維護難度上的先天優勢,B/S結構的系統開發正日漸流行[1]。傳統的ASP.NET往往將業務處理邏輯寫到與頁面直接相關的后臺代碼中,從而導致視圖與控制器不能分離[2]。考慮到Web應用程序的可維護性與可擴展性,采用MVC設計模式實現視圖層和業務邏輯層的分離[3]。
基于ASP.NET MVC相關技術,建設Web應急響應管理系統,梳理全省原有的應急響應管理流程,改進管理方式,提高管理效率。系統將整合應急響應中所需要完成的啟動響應、升降響應級別和解除響應等操作,設計了一套完整的可操作的Web管理流程,規范用戶對應急響應的操作。
1.1 ASP.NET MVC架構
ASP.NET MVC是微軟公司的基于MVC模式的實現框架,區別于常見的Webform,是另一種的創建網站或應用程序的方法[4]。模型-視圖-控制器(MVC)體系結構模式將應用程序分成3個主要組件組:模型、視圖和控制器。MVC是許多交互界面系統的構成基礎,用于實現業務邏輯與視圖分離。采用MVC模式,路由機制將用戶的瀏覽器請求路由到各個控制器中,控制器通過模型執行相關的數據修改或查詢操作,打包視圖數據,最后選擇正確的視圖將這些數據展示給用戶。
模型是數據類,其中的數據成員代表了數據表的數據,成員函數則對應數據的操作和處理。在ASP.NET MVC中,模型的作用類似數據容器,在控制器與數據庫之間承擔數據處理與交互的職責[2]。視圖主要是一個動態生成頁面的模板,通過路由機制中控制器方法調用,輸出數據并作為用戶與系統交互操作的方式??刂破髦饕秦撠熃邮苡脩舻妮斎氩㈨憫脩舻男枨?。控制器定義的方法通過模型與數據庫進行交互,獲得數據后通過視圖向用戶反饋結果[3]。ASP.NET MVC三層架構的具體工作機制如圖1所示。

1.2 ASP.NET MVC路由機制
ASP.NET中的Route路由機制將用戶的瀏覽器請求路徑重新定義。應用程序第一次啟動時,調用Global.asax.cs中的Application_Start()方法,此方法調用RegisterRoutes()方法創建路由表。在ASP.NET MCV中,用戶的請求鏈接被分為控制器、方法和方法參數3段[4]。
1.3 MVC與Ajax結合的頁面局部刷新
傳統的ASP.NET MVC頁面布局基于ASP.NET WebPages布局技術,基本原理是通過RanderPage()和RenderBody()兩個函數,將不同的模板內容頁面組合到布局頁的相應位置。通過WebPages,可以把重復使用的內容塊(比如頁面頭部和底部)寫在一個單獨的文件中,或者使用布局模板(布局文件)為站點的所有網頁定義一致的布局。
傳統的頁面布局模式的不足之處在于單個頁面刷新時往往需要刷新整個頁面內容,在更新頁面信息(特別是列表類信息)時,客戶端往往向服務器獲取需要重新獲取頁面所需的所有數據,增加服務器壓力,降低響應速度。另外,在用戶填寫和提交表單后,Route路由機制雖然可以定向到正確的顯示頁面,但是對基于瀏覽器的Back功能無法很好地兼容,用戶使用瀏覽器的“上一頁”功能時往往會造成表單的重復提交、頁面刷新異常等問題。
系統采用Ajax[5]技術,通過異步請求,對用戶所需進行的“增刪改”操作進行包裝改造。在服務器端,將用戶表單的操作界面以及操作返回的局部界面布局寫在單獨的視圖文件中,通過容器中特定的Action方法響應并動態生成返回內容。在客戶端頁面通過JQuery[6]+Ajax技術,將請求發送到服務器端,并將返回的局部界面內容刷新到特定容器中,完成局部刷新。
1.4基于aspx動態網頁與JavaSerializer類的數據共享接口
aspx[7]是微軟推出的一種動態網頁文件格式,專為ASP. NET框架設計。aspx格式文件將網頁文件視作一個類,將頁面中所有的動態變量封裝在一個.cs或.vb文件中,并允許在頁面中使用<% %>符號插入動態變量和腳本代碼。不同于瀏覽html靜態網頁,調用aspx頁面需要通過IIS在服務器端解析并執行相應的VB或C#程序代碼,最終將生成的動態頁面發送到用戶的Web瀏覽器。
在.NET處理Ajax應用時,序列化功能通常由JavaSerializer類提供。JavaSerializer類位于命名空間System. Web.Script.Serialization,通過調用該類中的Serialize與Deserialize方法,開發人員可以完成所有.Net類型和Json數據之間的轉換工作。
根據業務需求,系統采用aspx動態網頁與JavaSerializer類生成動態數據接口,將系統獲取的的業務數據共享給其他Web系統使用。首先,通過ASP.MVC中的模型與數據獲取類Manager,獲取所需共享數據。其次,依據具體數據需求,設計共享數據類,定義數據名稱與類型,并將Modell類型的數據封裝為共享數據類型。然后,創建序列化轉換實例JavaScriptSerializer,調用JavaScriptSerializer中的Serialize函數將共享數據轉化為Jason格式的字符串。最后,將Json字符串作為aspx動態頁面的響應內容,生成接口。
1.5 .NET aspx跨域請求設置
其他系統使用Ajax訪問aspx共享接口時,會出現跨域問題,需要進行設置。主要有以下2種設置方式:①在aspx的后臺程序文件.cs或.vb文件中設置ResponseHeader,將“Access-Control-Allow-Origin”和“Access-Control-Allow-Headers”屬性設為“*”。②在web.config文件中添加節點:在節點下添加和兩層節點,在下添加2個節點,設置“name”屬性分別為“Access-Control-Allow-Origin”和“Access-Control-Allow -Headers”,“value”為“*”.
2.1系統開發與部署環境
2.2系統權限設計
.NET MVC框架路由機制通過控制器中的Action方法查詢路由表并定位到相關視圖,各個類別用戶由于角色的權限和功能不同,可以通過控制器路由到不同的管理操作視圖界面,而這些管理操作界面分別由不同的子視圖組成[2]。
系統采用省、市、縣三級聯動權限設計模式,各級用戶可以操作本地氣象部門并查詢統計其下屬氣象部門的應急響應狀態。另外,地市級氣象局用戶可以統一操作其下屬氣象部門的應急響應狀態。根據業務需求,系統建立用戶角色表與行政區劃表來映射用戶對象與應急響應對象之間多對多的映射關系。其中,用戶角色表用于劃分省、市、縣三級用戶權限級別,行政區劃表用于確定各市級用戶的下屬縣級地區,以便系統賦予相應管理權限,權限管理流程泳道如圖2所示。

2.3系統結構及功能
系統主要分為前端和后端2個部分。前端采用HTML+JS+Ajax搭建輕量級頁面主體,并通過。aspx頁獲取后端管理平臺數據,動態化、模塊化加載內容,前端頁面主要為浙江氣象部門用戶提供應急響應狀態提醒,界面在浙江省地圖上展示應急響應分布情況,以及文字列表。后端管理平臺采用.NET MVC作為主體架構,為應急響應管理人員提供具體操作平臺,主要功能包括應急響應操作,以及當前應急響應的狀態顯示、查詢、統計和文件上傳、下載等功能。系統結構如圖3所示。

前端主要功能:
①地圖展示:當前響應以圖標形式在地圖上顯示,不同地區的圖標分別標注在對應市、縣的行政中心附近,省級應急響應圖標單獨顯示。圖標以希臘數字表示響應等級,浮現在響應地區,鼠標懸停在圖標上時,顯示響應的簡要信息,包括發布單位、響應名稱、發布時間。
②響應、總結列表:當前響應與近期解除的響應總結以列表形式顯示在前端界面右側,點擊列表可以下載文檔查看詳細情況。
后端主要功能如下:
①當前響應:主要顯示當前用戶有操作權限(修改、刪除、添加總結、分解等)且并未過期(超過最大持續時間)的響應。在響應管理列表中,顯示當前有效的響應狀態,包括地區、等級、類型、啟動時間、主要內容、最后操作(創建、升/降級別、解除)以及最后操作的時間、對應最后操作的文件名稱。此外,列表中的“常用操作”一欄列出了用戶可對響應進行的常規操作。
②響應啟動:用于啟動新的氣象應急響應。用戶需要錄入響應的地區、響應類型(重大氣象災害、突發事件、重大社會活動)、主要內容、開始日期與時間、最大持續時間、等級、啟動響應的文件名,最后上傳對應文件,點擊創建建立一個新的響應狀態。
③響應調整:在當前響應的列表中,選擇需要調整的響應狀態后,使用“響應調整”可對當前響應進行升/降級別或解除操作。錄入操作的日期、時次、操作的類型(升/降級別、解除)、更新的響應等級以及上傳的文件名稱,最后上傳對應文件,點擊更新完成操作。
④響應查詢:在“歷史查詢”頁面中輸入統計條件后,可以查詢用戶權限下的所有歷史響應的詳細情況。除“常用操作”功能外,查詢結果的列表樣式和當前響應的列表樣式相同。
⑤響應統計:方便氣象應急響應管理人員了解特定時段內氣象應急響應的總體情況。統計條件包括地區、開始時間、結束時間、等級、類型,輸入統計條件后點擊統計按鈕,會在統計條件下方顯示統計結果(包括統計的地區、各自的響應次數以及分級和總計響應時間)。
⑥“當前響應”共享接口:主要共享當前所有狀態不為“解除”,且未超過失效時間的響應數據。返回內容包括一個響應類型的數據列表,列表的長度以及調用成功或錯誤消息。響應類型包括響應的地區(包含該地區的行政區劃中心的經緯度信息)、等級、類型、啟動時間、主要內容、最后操作(創建、升/降級別、解除)以及最后操作的時間、對應最后操作的文件名稱和文件獲取地址。本接口可以被浙江氣象內網用戶公開訪問,無需登錄驗證,以httpGet的方式直接獲取數據。接口不接受任何參數信息,返回格式為Json字符串格式。針對特殊需求,開發了提供對應等級的應急響應圖標地址等定制數據的子接口。
系統使用簡潔,速度較快,界面友好。前臺頁面根據簡潔明原則設計,頁面風格與原有浙江省氣象信息綜合業務內網風格統一。其中,運用HTML+CSS+Ajax+JQuery等技術實現頁面內容的局部刷新聯動。后臺響應管理界面通過MVC路由機制實現靈活的權限控制,使得氣象應急響應管理的流程清晰、操作方便。系統提供的當前應急響應接口,被浙江氣象綜合業務內網等多個內部系統調用,實現了氣象業務系統之間的實時數據共享。系統自試運行以來,取得了良好的效果。系統具體界面展示如圖4和圖5所示。

項目將原有收發文件形式的應急響應松散管理方式,改造為統一的網上Web管理,使得管理系統具有條理性和規范性。同時,本管理系統統一收發和管理相關文件,節省了大量人工整理歸檔工作,并且系統提供完善的統計功能,方便省局管理人員進行統籌管理。系統提供了直接可靠的應急響應管理流程,統一在Web界面操作;實現了應急響應信息的實時匯總,通過地圖界面實時顯示全省應急響應狀態分布情況;歸檔了應急響應歷史信息,包括歷史應急響應的時間、地點、類型、級別以及相關文件,方便管理人員統計逐年情況。
[1]任廣震,侯進,王獻.MVC模式在B/S結構政務系統的應用研究[J].計算機應用與軟件,2014,31(8):54-58,74.
[2]朱興宇,杜景林,沈曉燕.基于MVC的多組件融合的氣象傳感網管理平臺[J].科技通報,2016,32(4):59-65.
[3]周泉.淺談從WebForm開發模式到ASP.NET MVC開發模式的發展[J].計算機光盤軟件與應用,2012,15(15):248.
[4] GALLOWWA J ,HAACK P,WILSON B,et al.ASP.NET MVC 3高級編程[M].北京:清華大學出版社,2012.
[5] BRUCE W.P. Ajax Hacks[M].Cambridge:OReilly Media, 2006.
[6] BIBEAULT B,KATZ Y,AURELIO D R.JQuery in Action[M].3rd ed.Greenwich:Manning Publications,2015.
[7]段克奇.ASP.NET基礎教程[M].2版.北京:清華大學出版, 2014.
[8]李巖,楊立,張玉芬,等.SQL Server 2012實用教程[M].北京:清華大學出版,2015.