陶明 史珊海 溫浩然
?
MVC框架在遠程排水管網監控調度系統的應用
陶明 史珊海 溫浩然
(廣東省智能制造研究所)
基于通用監控軟件難以實現管網調度復雜算法的問題,提出一種運用MVC軟件框架實現排水管網遠程監控調度系統的方案。Model層利用ADO.NET Entity Framework完成數據處理;View層采用Bootstrap設計同時適用于PC與移動設備的界面;Controller層使用高級編程語言C#完成定制調度算法等邏輯功能。實際應用證明,該方案可滿足開發排水管網遠程監控調度系統的需求,并具有成本低、界面友好和開發周期短等優勢。
MVC框架;實體框架;遠程監控調度;B/S架構
遠程排水管網監控調度系統利用物聯網等技術,實現管網的遠程在線監控,優化泵、閘站在線、遠程的精確調度控制,以達到削減溢流污染和初期雨水污染的目的,最大限度發揮環境效益和社會效益。
排水管網監控調度系統在滿足通用監控系統功能的基礎上,需將復雜的降雨模型、地表徑流模型、節點入流模型和管道傳輸模型等水力學模型融入到調度控制邏輯中[1]。調度算法具有迭代變化的特點,系統初始建立的算法為理想狀態模型,需在實際運行中不斷驗證、改進,增加其準確性[2]。市場上的通用監控軟件難以實現復雜的水力學模型算法,算法需優化時也無法快速響應變更。
排水調度系統的主要終端用戶為各閘泵站控制機構,這些機構具有地點分散、信息化程度不一、值班人員技能單一的特點。在實地調查中,發現有的閘站甚至不具備安裝有線網絡的條件。因此,在設計系統用戶終端時需考慮:1) 遠程可用無線移動設備訪問系統;2) 界面友好,操作簡單。
基于以上需求與特點,本文提出一種運用MVC框架、ADO.NET Entity Framework、Bootstrap等軟件開發遠程排水管網監控系統。
1.1 系統功能
遠程排水管網監控調度系統需滿足的功能可歸于3類:監控、遠程訪問和管網調度算法控制。該系統分為硬件和軟件2部分,硬件部分負責采集管網各閘泵站設備運行狀態與對應區域的雨量、水質和液位等信息,并采用KEPServerEX V4.3與底層設備通信。本文重點介紹自主開發的軟件部分。遠程排水管網監控調度系統功能模塊圖如圖1所示。

圖1 系統功能模塊圖
1.2 技術選型
系統功能模塊除了基本的數據展示與控制功能外,還需做大量邏輯處理,且遠程監控調度系統還需兼顧遠程訪問的便利性。基于這些特點要求,軟件設計分為數據層、業務邏輯層與界面層。數據層對應MVC的Model層,負責處理底層數據與應用數據的初步分析,與數據庫交互業務;業務邏輯層對應MVC的Controller層,負責處理調度算法、報警邏輯、數據統計等業務邏輯;界面層對應MVC的View層,負責用戶交互界面展示。
經過對比分析,本系統開發平臺采用Visual Studio 2015;運用ASP.NET MVC5.2.3.0框架;開發語言為C#;同時應用ADO.NET Entity Framework 6.0(簡稱EF)、JQuery、 Bootstrap、Ajax、JSON技術;數據庫使用Microsoft SQL Server 2014;系統部署在Windows Server 2012 r2標準版操作系統。框架采用便于遠程終端訪問的B/S架構。技術選型圖如圖2所示。

圖2 技術選型圖
ASP.NET MVC軟件框架是微軟官方提供的基于MVC軟件構架編寫的Web應用程序框架[3],它有2個優勢:1) 開發優勢,框架除了含有MVC基礎支撐外,還自帶List、Detail等模板,通過簡單配置與修改即完成監控點歷史數據查詢、監測點明細等功能,可減少開發工作量,縮短開發周期;2) 用戶體驗優勢,框架支持Razor視圖引擎,與ASP.Net WebForm引擎相比,網頁加載速度快了2倍。模型、控制器和視圖交互實現,相互獨立封裝。
2.1 模型層
MVC框架中的模型(Model)層對應數據層,本系統使用EF框架搭建Models。EF是基于對象/關系映射框架,支持多種數據庫[4],包括本系統使用的Microsoft SQL Server 2014。它可使數據庫的E/R模型完全轉成對象模型,可以針對概念模型進行所有數據操作而不必編寫數據的讀寫代碼。開發人員無需和數據庫直接打交道,用熟悉的編程語言操作Entity即可完成對數據庫的操作,減少開發量,增強系統穩定性、可靠性和擴展性。EF框架有4種設計模式:來自數據庫的EF設計器、空EF設計器模型、空Code First和來自數據庫的Code First模型[5]。本系統采用來自數據庫的Code First模型進行開發。在這種模式下,依照配置向導的步驟完成配置,系統即可自動建立數據庫連接,自動生成數據訪問類與數據Entity類。圖3為本系統“點-值”表KepServerTags的數據結構與自動生成的對應Entity類代碼。
2.2 控制器
控制器(Controller)對應業務邏輯層,數據輸出時,它負責讀取Model數據,處理后發送給View展示;數據輸入時,它負責控制用戶輸入,從View讀取數據,處理用戶在View觸發的請求,并向Model發送數據,觸發數據庫操作[5]。

圖3 數據庫表[KepServerTags]與對應Entity類
在讀取數據時,使用大量LINQ和Lambda語法配合EF操作數據。
tPOWER.AddRange((from c in db.KepServerTags where c.C_NAME==tagdescription.TagName orderby c.id descending select).Take(1).ToList());
以上是用LINQ表達式獲取指定TagName實時值的代碼。按照以前的開發方式,開發人員需編寫代碼完成如下步驟:編寫SQL查詢語句、建立打開數據庫鏈接、提交數據庫請求、將數據庫返回結果賦值給對應Entity。現用LINQ+EF的技術只需一句代碼即完成這些步驟,提高開發效率。
在處理邏輯業務時,采用C#高級編程語言對數據分析、調度模型算法、報警、處理用戶響應等功能進行個性化編程。在系統上線初期,調度模型是確保不內澇的理想模型,在實際運行后需驗證、調整,得到更精確的模型以實現更好的節能效果。采用MVC框架只修改Controller層即可調整模型算法。
排水監控調度系統關系民生,必須考慮其安全性。本文引用Microsoft.owin.security,在Controller類中簡單配置即可控制對應頁面訪問權限。
2.3 視圖層
視圖(View)對應界面層,因本系統需在PC和移動設備同時運行,在View層引用了基于HTML5和CSS3的Bootstrap。HTML5具有跨平臺與自適應特點,無需分別為手機、平板電腦和PC開發界面代碼。Bootstrap采用的協議是Apache License V2.0,已經包含常用界面控件,簡單配置屬性即可使用。界面層的簡單邏輯用AJAX + JSON實現。用較少時間即可設計功能豐富并且美觀的UI界面,提供多種直觀的圖表形式查看數據分析信息。圖4與圖5分別為實時數據頁面的PC端界面與手機端界面。
Visual Studio 2015將MVC、EF、Bootstrap等軟件技術融合在一個平臺,同時提供加快開發與測試效率的模擬對象、單元測試等輔助工具,方便開發人員進行開發測試與部署。本系統使用Microsoft Visual Studio平臺自帶的發布工具在IIS中部署與更新,以供遠程訪問。
本次系統因在應用MVC框架進行開發時,前端UI工程師和后臺邏輯工程師可以并行開發,從詳細設計到版本V1.0發布,開發工作量僅為20人天,縮減了開發周期。

圖4 實時數據頁面PC端界面圖

圖5 實時數據頁面手機端面圖
目前該系統已經應用在廣州市某區域的深隧調度優化系統。該區域的排水調度受降雨、排污等復雜因素的影響,存在許多不確定因素。本系統在遠程監控的基礎上,開展深層隧道與淺層管網排水系統運行調度優化研究,以控制水浸與河涌污染。該系統已運行半年,調度算法優化變動小,PC與手機終端均運行良好。
該案例證明采用MVC框架和其他技術組合的方案搭建遠程排水管網監控調度系統,解決了調度算法難以實現、PC與移動終端需分開開發的問題,具有成本低、交互友好和開發周期短的優勢。
該方案與數據庫交互方便,可以滿足本調度系統數據延遲時間<=10 s的要求。但不適用于數據實時性要求在毫秒級的監控系統。
[1] 周建華,李文濤,隋軍,等.水力模型在城市排水管網改造設計中的應用[J].給水排水,2013,39(5):106.
[2] 金波.城市排水系統建模及其控制方法研究[D].杭州:杭州電子科技大學,2011.
[3] Neward Ted, Erickson Aaron C, Crowell Talbott, et al. ASP.NET MVC [M]. America: Wiley Publishing, Inc. 2011.
[4] 孫晨暉,謝忠明.基于MVC和EF的多回路無線照明控制系統軟件設計[J].城市照明,2015(2):20-22.
[5] Neudesic, LLC. https://www.asp.net/mvc[OL]. Microsoft. All rights reserved. 2017,
[6] 劉欣.基于MVC模式的Web軟件系統開發框架設計與實現[D].濟南:山東大學,2014.
[7] Alexander Svensson, Bai Guohua, Johansson, Conny. Speed Performance Comparison of JavaScript MVC Frameworks[D].Swedish:Uppsala University Library,2015:20-26.
?
Application of MVC Framework in Monitoring and Dispatching System of Remote Drainage Network
Tao Ming Shi Shanhai Wen Haoran
(Guangdong Institute of Intelligent Manufacturing)
Since it is difficult to realize the complex algorithm of pipe network scheduling on the basis of the general SCADA system, in this paper, a solution to above problem that uses MVC framework to build Remote Drainage Pipe Network Monitoring and Optimal Control System is being presented. We can write little code to complete data Read-write in Model layer; construct the system runs on both PC and mobile devices by Bootstrap which is based on HTML5 and CSS in View layer; achieve Optimal Control logic works by the high level programming language C# in Controller layer. MVC framework meet the demand of developing Remote Drainage Pipe Network Monitoring and Optimal Control System, and the system is inexpensive, friendly interact and can be built in short development cycle.
MVC Framework; Entity Framework; Remote Monitoring and Dispatching; B/S Architecture
陶明,女,1984年生,本科,主要研究方向:智能制造信息化。E-mail: m.tao@giim.ac.cn
史珊海,男,1989年生,碩士研究生,主要研究方向:自動化控制和算法。E-mail: sh.shi@giim.ac.cn