基于ASP.NET MVC架构的省级气象预警信息平台
2020-11-30韩潇影刘峰民
韩潇影 刘峰民
摘 要: 基于ASP.NET MVC框架设计开发的省级气象预警信息平台,采用SQLSERVER2008数据库,C#开发语言,实现气象预警信息的规范化管理。系统基于领域模型驱动的需求开发方式和模块化的设计原则,对解决方案进行分层设计和实现,遵循面向接口设计的思想,每层只依赖上一层,较好的实现了系统可扩展性。采用SQL SERVER2008的数据采集器对接省局自动站库和短期预报库。系统建设弥补了传统预报平台的预报手段单一性,在气象信息传递的“最后一公里”问题上实现了有效的探索。
关键词: ASP.NET MVC;预警信息;分层
中图分类号: TP3 文献标识码: A DOI:10.3969/j.issn.1003-6970.2020.09.031
本文著录格式:韩潇影,刘峰民. 基于ASP.NET MVC架构的省级气象预警信息平台[J]. 软件,2020,41(09):112114
【Abstract】: Based on the ASP.NET MVC framework, the provincial meteorological early warning information platform is designed and developed. The SQLSERVER2008 database and C# development language are used to realize the standardized management of meteorological early warning information. The system is based on domain model driven requirement development mode and modularity design principle. The solution is designed and implemented hierarchically, following the idea of interface oriented design. Each layer relies on only one layer, which achieves better system scalability. Automatic station storehouse and the Bureau forecast short-term data collector SQL SERVER2008 docking. The system construction made up the simpleness of the traditional forecasting platform, and realized the effective exploration on the “last kilometer” of the meteorological information transmission.
【Key words】: ASP.NET; MVC; Early warning information; Stratification
0 引言
长期以来,省级气象管理部门在气象预警流程管理上依赖于传统媒体和手工作业流程,在发生重大气象灾害时,传统的预警渠道在气象信息传递的“最后一公里”问题上总是无法突破。随着农村乡镇网络建设的普及,依托于网络架构的信息发布和管理平台建设具有了实际的信息,作为传统预警媒体的有效补充,网络预警信息平台可以通过有效的信息发布与预警手段,在气象信息传递的“最后一公里”问题上走的更远。
结合实际业务需要,本信息平台的建设期望解决气象信息员的信息管理,气象灾情信息的上报管理,突发气象灾害信息的预警与发布1。
1 体系结构设计概述
传统的ASP.NET Web Form每个服务器控件在各个HTTP请求过程中通过View State功能独立的保存自己的状态,独立的输出HTML代码并进行服务端事件绑定,但是View State在每个HTTP请求和答复过程中在服务端和客户端反复传递严重加重了服务器的负担,消耗了大量的网络带宽;同时开发人员通常将服务器端代码和客户端代码混合在应用逻辑中使得代码混乱不易理解,不利于业务的扩展。
ASP.NET MVC框架2将数据(模型)和对其操作的动作(控制器)做了有效分离,具有高内聚、低耦合的特点,程序架构清晰,系统具有良好的灵活性、可扩展性以及易维护性。
1.1 建设目标
省级气象预警信息平台建设是气象协理员、气象信息员队伍建设的重要工作内容之一,前期选择了部分市县的乡村气象服务站作为试点开展工作,目的是实现气象协管员、气象信息员信息的科学、高效、规范、信息化管理,同时实现气象部门与信息员之间的信息交互,提高气象信息、灾情信息传递的准确性、及时性。
信息平臺业务建设范围包括天气实况信息展示、乡镇天气预报、气象预报预警信息发布、农业气象服务信息、气象灾情收集上报、气象科普知识学习宣传以及信息员管理等。
1.2 气象预报业务流程
气象信息由全省各自动站采集并自动汇总到省局CIMISS数据库3,形成自动站数据源,具体包括自动站信息、精细化预报信息表。
省级气象预警信息平台通过对接省局自动站库和短期预报库,实时采集气象信息后进行本地化数据处理,通过本平台对天气实况、短期预报进行多种形式的预报展现。
1.3 气象灾情收集上报和预警信息业务流程
乡镇气象信息员通过电话报告气象灾害信息至乡镇气象工作站,乡镇气象工作站按照标准化信息格式进行信息化数据录入;
对于气象预警信息,在信息平台上按照标准信息格式进行审核发布,并提供对外的数据接口,允许其他外围系统进行预警信息的采集和获取,形成有效的预警发布和管理机制。
2 关键技术
2.1 系统建设过程中具体采用的技术选型说明
2.2 基于领域模型驱动(DDD)的需求开发方式和模块化的设计方法
系统基于领域模型驱动(DDD)4的需求开发方式和模块化的设计原则,将解决方案进行必要的分层,每层是一个单独的项目。各层结构间采用“洋葱模型”,遵循面向接口设计的思想,每层只依赖上一层,层之间不能穿透,Interface这层除外。
信息平台设计中具体的分层如下:
WeatherWIP.Interface:包括业务模型、系统的数据访问层接口和服务接口和全局元数据等的定义。
WeatherWIP.DAL:数据访问层,通过必要的ORM框架5,封装业务模型的CRUD操作,避免对数据库的直接访问操作。在这层仅包含纯粹数据读写,与应用程序或者业务逻辑无关。
WeatherWIP.Service:服务层,对于系统业务逻辑的封装与实现,事务机制,并发处理等。根据前台不同的调用请求,通过对数据访问层在仓库模型中封装的最小原子的添加、修改、删除的请求,根据业务的定义进行调用和处理,然后将处理结果返回调用者。
WeatherWIP.Web:UI层,是用户与系统交互的主要接口,其表现形式就是网页,它将后台的数据通过HTML加上布局和界面设计展现给用户,同时接收用户的事件和请求,并与业务逻辑层交互处理用户事件。
2.3 对接自动站的数据采集技术
基于SQL SERVER2008的数据采集器,从省局自动站服务器上采集数据,并在本地中心数据库存储。采用数据采集器6,相比于数据的订阅发布流程,对于远程自动站服务器没有明显的性能影响,本地中心数据库的存储需求按实际数据业务需求进行保留存储。在本系统中,对于气象信息数据采集保留两年。
3 系统主要功能
省级气象预警信息平台7的主要功能包括天气实况信息显示、乡镇天气预报、气象预报预警信息发布、农业气象服务信息、气象灾情收集上报、气象科普知识学习宣传、气象信息员管理以及必要的后台管理支撑功能。应用首页聚合信息展示效果,如图6所示。
(1)天气实况信息显示8,基于地图形式直观的展示天气实况气象信息,以表格形式展示指定站点的实时气象要素及天气现象;支持多维度查询,以曲线方式显示某个站点某一时间段内最高、最低气温趋势。
(2)乡镇天气预报,通过信息表格、flash媒体等形式,定时发布全省常规天气预报。
(3)气象预报预警信息发布,以通知的形式,按规范信息化格式发布全省灾害性天气预报及预警信息,对灾害性天气通过可视化闪烁形式进行自动警示。
(4)农业气象服务信息,气象科普知识学习宣传,以分类栏目的形式,发布如农业气象的旬报、月报与季报,病虫害预报、气象科普知识发布等。
(5)气象灾情收集上报,对乡镇气象信息员通过电话报告的气象灾害信息,进行信息化数据录入,同时提供气象灾害损失查询、统计以及分析等功能。
(6)气象信息员管理,支持市县乡三级区域、年龄结构、学历结构以及灾情上报信息量等多种形式;通过基于GIS地图的气象信息员分布特征查询,可以直观了解气象信息员的空间分布及联系信息。
4 实现效率与二期展望
通过省级气象预警信息平台的建设,实现了乡镇气象信息员的规范化管理;通过对自动化站气象数据的自动采集,实现了乡镇气象信息和预警信息的有效发布,有效的弥补了电视、广播等传统预报平台的预报单一性,在气象信息传递的“最后一公里”问题上实现了有效的探索。基于MVC的系统架构,较好的实现了系统的扩展性,如气象科普知识学习宣传功能,就是在农业气象服务信息栏目的基础上,快速进行业务复制并实现了支撑,对系统整体结构没有其他影响。
项目后续计划通过手机端应用的对接的,考虑气象灾害信息的手机直接上报,气象预警信息的主动推送,以期望彻底解决“最后一公里”问题。
参考文献
[1]李芬, 王涛, 刘宽宗, 等. 预警信息多手段发布监控系统的研究与设计[J]. 佛山科學技术学院学报(自然科学版), 2020, 38(02): 19-24+28.
[2]张熠斌, 朱喜君, 刘传深, 等. 基于Asp.Net MVC框架的矿山地质环境信息系统的研究与实现[J]. 城市地质, 2020, 15(01): 97-102.
[3]李从英, 金石声, 王彪, 等. 使用SymmetricDS软件同步CIMISS核心库数据[J]. 中低纬山地气象, 2020, 44(01): 71-75.
[4]何拥军, 肖瑾, 陈攀, 等. 基于领域模型驱动. NET平台架构的构建[C]. 中国电机工程学会电力信息化专业委员会. 软件定义 面向未来——2014电力行业信息化年会论文集. 中国电机工程学会电力信息化专业委员会: 人民邮电出版社电信科学编辑部, 2014: 235-239.
[5]蹇常林. ORM在Django操作数据库中的应用[J]. 技术与市场, 2020, 27(01): 56-57.
[6]Diehl Metering S.A.s; “Method For Collecting Data And Sensor, Data Collector And Measurement Data Information Network” in Patent Application Approval Process (USPTO 20200191607)[J]. Computer Technology Journal, 2020.
[7]郑延庆. 基于融合网关技术的气象灾害信息推送系统设计研究[J]. 环境科学与管理, 2020, 45(01): 49-52.
[8]颜庭柏, 姚迪, 沈澄. 基于Google Map API的天气实况显示系统[J]. 地理空间信息, 2013, 11(03): 120-122+1.