陶明 史珊海 温浩然
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