陶明 史珊海 溫浩然
?
MVC框架在遠(yuǎn)程排水管網(wǎng)監(jiān)控調(diào)度系統(tǒng)的應(yīng)用
陶明 史珊海 溫浩然
(廣東省智能制造研究所)
基于通用監(jiān)控軟件難以實(shí)現(xiàn)管網(wǎng)調(diào)度復(fù)雜算法的問(wèn)題,提出一種運(yùn)用MVC軟件框架實(shí)現(xiàn)排水管網(wǎng)遠(yuǎn)程監(jiān)控調(diào)度系統(tǒng)的方案。Model層利用ADO.NET Entity Framework完成數(shù)據(jù)處理;View層采用Bootstrap設(shè)計(jì)同時(shí)適用于PC與移動(dòng)設(shè)備的界面;Controller層使用高級(jí)編程語(yǔ)言C#完成定制調(diào)度算法等邏輯功能。實(shí)際應(yīng)用證明,該方案可滿足開發(fā)排水管網(wǎng)遠(yuǎn)程監(jiān)控調(diào)度系統(tǒng)的需求,并具有成本低、界面友好和開發(fā)周期短等優(yōu)勢(shì)。
MVC框架;實(shí)體框架;遠(yuǎn)程監(jiān)控調(diào)度;B/S架構(gòu)
遠(yuǎn)程排水管網(wǎng)監(jiān)控調(diào)度系統(tǒng)利用物聯(lián)網(wǎng)等技術(shù),實(shí)現(xiàn)管網(wǎng)的遠(yuǎn)程在線監(jiān)控,優(yōu)化泵、閘站在線、遠(yuǎn)程的精確調(diào)度控制,以達(dá)到削減溢流污染和初期雨水污染的目的,最大限度發(fā)揮環(huán)境效益和社會(huì)效益。
排水管網(wǎng)監(jiān)控調(diào)度系統(tǒng)在滿足通用監(jiān)控系統(tǒng)功能的基礎(chǔ)上,需將復(fù)雜的降雨模型、地表徑流模型、節(jié)點(diǎn)入流模型和管道傳輸模型等水力學(xué)模型融入到調(diào)度控制邏輯中[1]。調(diào)度算法具有迭代變化的特點(diǎn),系統(tǒng)初始建立的算法為理想狀態(tài)模型,需在實(shí)際運(yùn)行中不斷驗(yàn)證、改進(jìn),增加其準(zhǔn)確性[2]。市場(chǎng)上的通用監(jiān)控軟件難以實(shí)現(xiàn)復(fù)雜的水力學(xué)模型算法,算法需優(yōu)化時(shí)也無(wú)法快速響應(yīng)變更。
排水調(diào)度系統(tǒng)的主要終端用戶為各閘泵站控制機(jī)構(gòu),這些機(jī)構(gòu)具有地點(diǎn)分散、信息化程度不一、值班人員技能單一的特點(diǎn)。在實(shí)地調(diào)查中,發(fā)現(xiàn)有的閘站甚至不具備安裝有線網(wǎng)絡(luò)的條件。因此,在設(shè)計(jì)系統(tǒng)用戶終端時(shí)需考慮:1) 遠(yuǎn)程可用無(wú)線移動(dòng)設(shè)備訪問(wèn)系統(tǒng);2) 界面友好,操作簡(jiǎn)單。
基于以上需求與特點(diǎn),本文提出一種運(yùn)用MVC框架、ADO.NET Entity Framework、Bootstrap等軟件開發(fā)遠(yuǎn)程排水管網(wǎng)監(jiān)控系統(tǒng)。
1.1 系統(tǒng)功能
遠(yuǎn)程排水管網(wǎng)監(jiān)控調(diào)度系統(tǒng)需滿足的功能可歸于3類:監(jiān)控、遠(yuǎn)程訪問(wèn)和管網(wǎng)調(diào)度算法控制。該系統(tǒng)分為硬件和軟件2部分,硬件部分負(fù)責(zé)采集管網(wǎng)各閘泵站設(shè)備運(yùn)行狀態(tài)與對(duì)應(yīng)區(qū)域的雨量、水質(zhì)和液位等信息,并采用KEPServerEX V4.3與底層設(shè)備通信。本文重點(diǎn)介紹自主開發(fā)的軟件部分。遠(yuǎn)程排水管網(wǎng)監(jiān)控調(diào)度系統(tǒng)功能模塊圖如圖1所示。
圖1 系統(tǒng)功能模塊圖
1.2 技術(shù)選型
系統(tǒng)功能模塊除了基本的數(shù)據(jù)展示與控制功能外,還需做大量邏輯處理,且遠(yuǎn)程監(jiān)控調(diào)度系統(tǒng)還需兼顧遠(yuǎn)程訪問(wèn)的便利性?;谶@些特點(diǎn)要求,軟件設(shè)計(jì)分為數(shù)據(jù)層、業(yè)務(wù)邏輯層與界面層。數(shù)據(jù)層對(duì)應(yīng)MVC的Model層,負(fù)責(zé)處理底層數(shù)據(jù)與應(yīng)用數(shù)據(jù)的初步分析,與數(shù)據(jù)庫(kù)交互業(yè)務(wù);業(yè)務(wù)邏輯層對(duì)應(yīng)MVC的Controller層,負(fù)責(zé)處理調(diào)度算法、報(bào)警邏輯、數(shù)據(jù)統(tǒng)計(jì)等業(yè)務(wù)邏輯;界面層對(duì)應(yīng)MVC的View層,負(fù)責(zé)用戶交互界面展示。
經(jīng)過(guò)對(duì)比分析,本系統(tǒng)開發(fā)平臺(tái)采用Visual Studio 2015;運(yùn)用ASP.NET MVC5.2.3.0框架;開發(fā)語(yǔ)言為C#;同時(shí)應(yīng)用ADO.NET Entity Framework 6.0(簡(jiǎn)稱EF)、JQuery、 Bootstrap、Ajax、JSON技術(shù);數(shù)據(jù)庫(kù)使用Microsoft SQL Server 2014;系統(tǒng)部署在Windows Server 2012 r2標(biāo)準(zhǔn)版操作系統(tǒng)??蚣懿捎帽阌谶h(yuǎn)程終端訪問(wèn)的B/S架構(gòu)。技術(shù)選型圖如圖2所示。
圖2 技術(shù)選型圖
ASP.NET MVC軟件框架是微軟官方提供的基于MVC軟件構(gòu)架編寫的Web應(yīng)用程序框架[3],它有2個(gè)優(yōu)勢(shì):1) 開發(fā)優(yōu)勢(shì),框架除了含有MVC基礎(chǔ)支撐外,還自帶List、Detail等模板,通過(guò)簡(jiǎn)單配置與修改即完成監(jiān)控點(diǎn)歷史數(shù)據(jù)查詢、監(jiān)測(cè)點(diǎn)明細(xì)等功能,可減少開發(fā)工作量,縮短開發(fā)周期;2) 用戶體驗(yàn)優(yōu)勢(shì),框架支持Razor視圖引擎,與ASP.Net WebForm引擎相比,網(wǎng)頁(yè)加載速度快了2倍。模型、控制器和視圖交互實(shí)現(xiàn),相互獨(dú)立封裝。
2.1 模型層
MVC框架中的模型(Model)層對(duì)應(yīng)數(shù)據(jù)層,本系統(tǒng)使用EF框架搭建Models。EF是基于對(duì)象/關(guān)系映射框架,支持多種數(shù)據(jù)庫(kù)[4],包括本系統(tǒng)使用的Microsoft SQL Server 2014。它可使數(shù)據(jù)庫(kù)的E/R模型完全轉(zhuǎn)成對(duì)象模型,可以針對(duì)概念模型進(jìn)行所有數(shù)據(jù)操作而不必編寫數(shù)據(jù)的讀寫代碼。開發(fā)人員無(wú)需和數(shù)據(jù)庫(kù)直接打交道,用熟悉的編程語(yǔ)言操作Entity即可完成對(duì)數(shù)據(jù)庫(kù)的操作,減少開發(fā)量,增強(qiáng)系統(tǒng)穩(wěn)定性、可靠性和擴(kuò)展性。EF框架有4種設(shè)計(jì)模式:來(lái)自數(shù)據(jù)庫(kù)的EF設(shè)計(jì)器、空EF設(shè)計(jì)器模型、空Code First和來(lái)自數(shù)據(jù)庫(kù)的Code First模型[5]。本系統(tǒng)采用來(lái)自數(shù)據(jù)庫(kù)的Code First模型進(jìn)行開發(fā)。在這種模式下,依照配置向?qū)У牟襟E完成配置,系統(tǒng)即可自動(dòng)建立數(shù)據(jù)庫(kù)連接,自動(dòng)生成數(shù)據(jù)訪問(wèn)類與數(shù)據(jù)Entity類。圖3為本系統(tǒng)“點(diǎn)-值”表KepServerTags的數(shù)據(jù)結(jié)構(gòu)與自動(dòng)生成的對(duì)應(yīng)Entity類代碼。
2.2 控制器
控制器(Controller)對(duì)應(yīng)業(yè)務(wù)邏輯層,數(shù)據(jù)輸出時(shí),它負(fù)責(zé)讀取Model數(shù)據(jù),處理后發(fā)送給View展示;數(shù)據(jù)輸入時(shí),它負(fù)責(zé)控制用戶輸入,從View讀取數(shù)據(jù),處理用戶在View觸發(fā)的請(qǐng)求,并向Model發(fā)送數(shù)據(jù),觸發(fā)數(shù)據(jù)庫(kù)操作[5]。
圖3 數(shù)據(jù)庫(kù)表[KepServerTags]與對(duì)應(yīng)Entity類
在讀取數(shù)據(jù)時(shí),使用大量LINQ和Lambda語(yǔ)法配合EF操作數(shù)據(jù)。
tPOWER.AddRange((from c in db.KepServerTags where c.C_NAME==tagdescription.TagName orderby c.id descending select).Take(1).ToList());
以上是用LINQ表達(dá)式獲取指定TagName實(shí)時(shí)值的代碼。按照以前的開發(fā)方式,開發(fā)人員需編寫代碼完成如下步驟:編寫SQL查詢語(yǔ)句、建立打開數(shù)據(jù)庫(kù)鏈接、提交數(shù)據(jù)庫(kù)請(qǐng)求、將數(shù)據(jù)庫(kù)返回結(jié)果賦值給對(duì)應(yīng)Entity。現(xiàn)用LINQ+EF的技術(shù)只需一句代碼即完成這些步驟,提高開發(fā)效率。
在處理邏輯業(yè)務(wù)時(shí),采用C#高級(jí)編程語(yǔ)言對(duì)數(shù)據(jù)分析、調(diào)度模型算法、報(bào)警、處理用戶響應(yīng)等功能進(jìn)行個(gè)性化編程。在系統(tǒng)上線初期,調(diào)度模型是確保不內(nèi)澇的理想模型,在實(shí)際運(yùn)行后需驗(yàn)證、調(diào)整,得到更精確的模型以實(shí)現(xiàn)更好的節(jié)能效果。采用MVC框架只修改Controller層即可調(diào)整模型算法。
排水監(jiān)控調(diào)度系統(tǒng)關(guān)系民生,必須考慮其安全性。本文引用Microsoft.owin.security,在Controller類中簡(jiǎn)單配置即可控制對(duì)應(yīng)頁(yè)面訪問(wèn)權(quán)限。
2.3 視圖層
視圖(View)對(duì)應(yīng)界面層,因本系統(tǒng)需在PC和移動(dòng)設(shè)備同時(shí)運(yùn)行,在View層引用了基于HTML5和CSS3的Bootstrap。HTML5具有跨平臺(tái)與自適應(yīng)特點(diǎn),無(wú)需分別為手機(jī)、平板電腦和PC開發(fā)界面代碼。Bootstrap采用的協(xié)議是Apache License V2.0,已經(jīng)包含常用界面控件,簡(jiǎn)單配置屬性即可使用。界面層的簡(jiǎn)單邏輯用AJAX + JSON實(shí)現(xiàn)。用較少時(shí)間即可設(shè)計(jì)功能豐富并且美觀的UI界面,提供多種直觀的圖表形式查看數(shù)據(jù)分析信息。圖4與圖5分別為實(shí)時(shí)數(shù)據(jù)頁(yè)面的PC端界面與手機(jī)端界面。
Visual Studio 2015將MVC、EF、Bootstrap等軟件技術(shù)融合在一個(gè)平臺(tái),同時(shí)提供加快開發(fā)與測(cè)試效率的模擬對(duì)象、單元測(cè)試等輔助工具,方便開發(fā)人員進(jìn)行開發(fā)測(cè)試與部署。本系統(tǒng)使用Microsoft Visual Studio平臺(tái)自帶的發(fā)布工具在IIS中部署與更新,以供遠(yuǎn)程訪問(wèn)。
本次系統(tǒng)因在應(yīng)用MVC框架進(jìn)行開發(fā)時(shí),前端UI工程師和后臺(tái)邏輯工程師可以并行開發(fā),從詳細(xì)設(shè)計(jì)到版本V1.0發(fā)布,開發(fā)工作量?jī)H為20人天,縮減了開發(fā)周期。
圖4 實(shí)時(shí)數(shù)據(jù)頁(yè)面PC端界面圖
圖5 實(shí)時(shí)數(shù)據(jù)頁(yè)面手機(jī)端面圖
目前該系統(tǒng)已經(jīng)應(yīng)用在廣州市某區(qū)域的深隧調(diào)度優(yōu)化系統(tǒng)。該區(qū)域的排水調(diào)度受降雨、排污等復(fù)雜因素的影響,存在許多不確定因素。本系統(tǒng)在遠(yuǎn)程監(jiān)控的基礎(chǔ)上,開展深層隧道與淺層管網(wǎng)排水系統(tǒng)運(yùn)行調(diào)度優(yōu)化研究,以控制水浸與河涌污染。該系統(tǒng)已運(yùn)行半年,調(diào)度算法優(yōu)化變動(dòng)小,PC與手機(jī)終端均運(yùn)行良好。
該案例證明采用MVC框架和其他技術(shù)組合的方案搭建遠(yuǎn)程排水管網(wǎng)監(jiān)控調(diào)度系統(tǒng),解決了調(diào)度算法難以實(shí)現(xiàn)、PC與移動(dòng)終端需分開開發(fā)的問(wèn)題,具有成本低、交互友好和開發(fā)周期短的優(yōu)勢(shì)。
該方案與數(shù)據(jù)庫(kù)交互方便,可以滿足本調(diào)度系統(tǒng)數(shù)據(jù)延遲時(shí)間<=10 s的要求。但不適用于數(shù)據(jù)實(shí)時(shí)性要求在毫秒級(jí)的監(jiān)控系統(tǒng)。
[1] 周建華,李文濤,隋軍,等.水力模型在城市排水管網(wǎng)改造設(shè)計(jì)中的應(yīng)用[J].給水排水,2013,39(5):106.
[2] 金波.城市排水系統(tǒng)建模及其控制方法研究[D].杭州:杭州電子科技大學(xué),2011.
[3] Neward Ted, Erickson Aaron C, Crowell Talbott, et al. ASP.NET MVC [M]. America: Wiley Publishing, Inc. 2011.
[4] 孫晨暉,謝忠明.基于MVC和EF的多回路無(wú)線照明控制系統(tǒng)軟件設(shè)計(jì)[J].城市照明,2015(2):20-22.
[5] Neudesic, LLC. https://www.asp.net/mvc[OL]. Microsoft. All rights reserved. 2017,
[6] 劉欣.基于MVC模式的Web軟件系統(tǒng)開發(fā)框架設(shè)計(jì)與實(shí)現(xiàn)[D].濟(jì)南:山東大學(xué),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年生,碩士研究生,主要研究方向:自動(dòng)化控制和算法。E-mail: sh.shi@giim.ac.cn