基于.Net MVC的浙江气象应急响应管理系统设计

2022-04-29 19:35朱旻翔曾悠高祝宇
计算机与网络 2022年18期
关键词:管理系统

朱旻翔 曾悠 高祝宇

摘要:气象应急响应是气象部门应对重大活动以及突发性、灾害性天气的重要手段。基于.Net MVC框架的浙江气象应急响应管理系统,采用C#语言与SQL Server数据库,实现省、市、县级气象应急响应事件的网上管理。系统依据模型驱动的原则,设计了模块化的系统功能,使得系统运行流畅的同时具有一定的可扩展性。系统梳理了原有的应急响应的管理流程,改进管理方式,提高管理效率。目前,系统已应用于浙江省气象部门的应急响应管理工作,自运行以来,该系统安全且稳定,效果良好。

关键词:气象应急响应;ASP.NET;C#;MVC框架;管理系统

中图分类号:TP393文献标志码:A文章编号:1008-1739(2022)18-63-5

0引言

应急响应服务体系建设是加强气象现代化建设的重要内容,是精细化监测预报系统建设的重要体现。推进气象现代化建设是气象部门的重要任务,而实时便捷的响应管理系统,是通过现代化、自动化手段提高各级气象部门间在重大活动以及突发性、灾害性天气期间的部门协调能力的关键性步骤。因此,开展应急响应管理系统建设,利用现代化的计算机技术实现应急响应服务中的高效管理是应急响应服务的有力保障。

浙江省气象部门内原有的应急响应管理采用收发文件的形式,主要是省内各级气象部门在开始启动应急响应状态时,通过特定办公文件收发工具发送应急响应文件到上级部门,之后人为收集和统计各部门应急响应的启动和解除情况,因此,整体处于比较松散的管理状态。

近年来,由于软件维护难度上的先天优势,B/S结构的系统开发正日渐流行[1]。传统的ASP.NET往往將业务处理逻辑写到与页面直接相关的后台代码中,从而导致视图与控制器不能分离[2]。考虑到Web应用程序的可维护性与可扩展性,采用MVC设计模式实现视图层和业务逻辑层的分离[3]。

基于ASP.NET MVC相关技术,建设Web应急响应管理系统,梳理全省原有的应急响应管理流程,改进管理方式,提高管理效率。系统将整合应急响应中所需要完成的启动响应、升降响应级别和解除响应等操作,设计了一套完整的可操作的Web管理流程,规范用户对应急响应的操作。

1关键技术

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系统结构与功能

2.1系统开发与部署环境

2.2系统权限设计

.NET MVC框架路由机制通过控制器中的Action方法查询路由表并定位到相关视图,各个类别用户由于角色的权限和功能不同,可以通过控制器路由到不同的管理操作视图界面,而这些管理操作界面分别由不同的子视图组成[2]。

系统采用省、市、县三级联动权限设计模式,各级用户可以操作本地气象部门并查询统计其下属气象部门的应急响应状态。另外,地市级气象局用户可以统一操作其下属气象部门的应急响应状态。根据业务需求,系统建立用户角色表与行政区划表来映射用户对象与应急响应对象之间多对多的映射关系。其中,用户角色表用于划分省、市、县三级用户权限级别,行政区划表用于确定各市级用户的下属县级地区,以便系统赋予相应管理权限,权限管理流程泳道如图2所示。

2.3系统结构及功能

系统主要分为前端和后端2个部分。前端采用HTML+JS+Ajax搭建轻量级页面主体,并通过。aspx页获取后端管理平台数据,动态化、模块化加载内容,前端页面主要为浙江气象部门用户提供应急响应状态提醒,界面在浙江省地图上展示应急响应分布情况,以及文字列表。后端管理平台采用.NET MVC作为主体架构,为应急响应管理人员提供具体操作平台,主要功能包括应急响应操作,以及当前应急响应的状态显示、查询、统计和文件上传、下载等功能。系统结构如图3所示。

前端主要功能:

①地图展示:当前响应以图标形式在地图上显示,不同地区的图标分别标注在对应市、县的行政中心附近,省级应急响应图标单独显示。图标以希腊数字表示响应等级,浮现在响应地区,鼠标悬停在图标上时,显示响应的简要信息,包括发布单位、响应名称、发布时间。

②响应、总结列表:当前响应与近期解除的响应总结以列表形式显示在前端界面右侧,点击列表可以下载文档查看详细情况。

后端主要功能如下:

①当前响应:主要显示当前用户有操作权限(修改、删除、添加总结、分解等)且并未过期(超过最大持续时间)的响应。在响应管理列表中,显示当前有效的响应状态,包括地区、等级、类型、启动时间、主要内容、最后操作(创建、升/降级别、解除)以及最后操作的时间、对应最后操作的文件名称。此外,列表中的“常用操作”一栏列出了用户可对响应进行的常规操作。

②响应启动:用于启动新的气象应急响应。用户需要录入响应的地区、响应类型(重大气象灾害、突发事件、重大社会活动)、主要内容、开始日期与时间、最大持续时间、等级、启动响应的文件名,最后上传对应文件,点击创建建立一个新的响应状态。

③响应调整:在当前响应的列表中,选择需要调整的响应状态后,使用“响应调整”可对当前响应进行升/降级别或解除操作。录入操作的日期、时次、操作的类型(升/降级别、解除)、更新的响应等级以及上传的文件名称,最后上传对应文件,点击更新完成操作。

④响应查询:在“历史查询”页面中输入统计条件后,可以查询用户权限下的所有历史响应的详细情况。除“常用操作”功能外,查询结果的列表样式和当前响应的列表样式相同。

⑤响应统计:方便气象应急响应管理人员了解特定时段内气象应急响应的总体情况。统计条件包括地区、开始时间、结束时间、等级、类型,输入统计条件后点击统计按钮,会在统计条件下方显示统计结果(包括统计的地区、各自的响应次数以及分级和总计响应时间)。

⑥“当前响应”共享接口:主要共享当前所有状态不为“解除”,且未超过失效时间的响应数据。返回内容包括一个响应类型的数据列表,列表的长度以及调用成功或错误消息。响应类型包括响應的地区(包含该地区的行政区划中心的经纬度信息)、等级、类型、启动时间、主要内容、最后操作(创建、升/降级别、解除)以及最后操作的时间、对应最后操作的文件名称和文件获取地址。本接口可以被浙江气象内网用户公开访问,无需登录验证,以httpGet的方式直接获取数据。接口不接受任何参数信息,返回格式为Json字符串格式。针对特殊需求,开发了提供对应等级的应急响应图标地址等定制数据的子接口。

3应用情况

系统使用简洁,速度较快,界面友好。前台页面根据简洁明原则设计,页面风格与原有浙江省气象信息综合业务内网风格统一。其中,运用HTML+CSS+Ajax+JQuery等技术实现页面内容的局部刷新联动。后台响应管理界面通过MVC路由机制实现灵活的权限控制,使得气象应急响应管理的流程清晰、操作方便。系统提供的当前应急响应接口,被浙江气象综合业务内网等多个内部系统调用,实现了气象业务系统之间的实时数据共享。系统自试运行以来,取得了良好的效果。系统具体界面展示如图4和图5所示。

4结束语

项目将原有收发文件形式的应急响应松散管理方式,改造为统一的网上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.

猜你喜欢
管理系统
基于James的院内邮件管理系统的实现
基于LED联动显示的违停管理系统
海盾压载水管理系统
基于RFID的仓储管理系统实现