河南省气象技术装备监控管理系统改造
2021-12-11徐远远
樊 奇,徐远远,白 婷
(1.河南省气象探测数据中心,郑州 450003;2.河南省人工影响天气中心,郑州 450003)
0 引言
随着地面气象观测全面实现自动化,市县级气象局工作重点逐渐从观测业务向装备保障业务转变,对相关的装备保障业务系统提出了新要求[1]。
河南省自行开发的气象技术装备监控管理系统,因其监控时效性好、实用性强,备受一线保障人员的信赖,至今已在各级气象装备保障部门使用超过10 a,但受限于时代、技术等原因,该系统存在功能较少、人机界面不够友好等问题,已逐渐无法满足气象现代化的需要,亟需进行升级和功能扩展。
1 研究现状
目前具备装备保障功能的业务系统较多,如中国气象局推广的综合气象观测运行监控系统(简称ASOM)、省级装备保障业务一体化平台和综合气象观测业务运行信息化平台等[2-4],虽然这些系统设计理念和技术十分先进,且功能全面,但由于其使用对象为全国各级用户,功能上更加侧重于管理和统计方面,且缺乏专门的资料下载和论坛功能。
国内各省份根据自身实际情况开发了一些装备保障系统:如海南省姜小云等开发了ASOM二次监控平台,解决了自动气象站监控不及时等问题[5];江西省李嫦等开发了基于ASOM的综合告警平台,实现了故障设备的告警信息实时显示、发布等[6];四川省纪奎秀等在对比分析ASOM等现有监控系统后,对故障智能判断、故障数据统计等功能进行了改进,开发了适用于本单位的雷电探测设备运行监控系统[7]。各省气象部门因外部环境或内部组织机构的差别,对装备保障业务系统的需求并不相同,因此在开展装备保障业务中使用本省自主或二次开发的系统更加方便。
2 设计目标
文章根据基层保障人员的反馈意见和河南省气象探测数据中心多年的装备保障经验,确定新系统的具体设计目标如下:
1)实现地面气象装备运行的实时监控,按省、市、县三级进行权限划分,满足技术保障人员的区划管理有限显示的要求;
2)实现对观测数据及设备运行状态的查询,满足技术保障人员在同一个平台上的故障分析和排除;
3)实现对其他业务网址的导航;
4)建立气象装备技术保障论坛,实现按照装备类型划分区块,用户可提问求助、发帖分享技术和经验等,在保障论坛内使用实名制登陆,并根据故障处理情况给用户建立积分累计记录;
5)建立文件下载、上传系统,实现对各类地面气象观测设备的产品说明书、用户手册、使用教程(文档、图片、视频等)等资料的下载支持;
6)建立信息化办公,对河南省探测中心的装备流转进行管理。
根据河南省气象装备保障业务的组织结构,结合系统的设计目标,考虑到用户及数据量不太大的特点,系统采用如下解决方案[8-10]:
1)服务器端:操作系统为Widows Server 2008 R2,采用Apache 2.4.23提供Web服务;
2)客户端:计算机,浏览器(Chrome、火狐、360极速、Edge);
3)开发模式:B-S;
4)数据库:MySQL、SQL Server 2008;
5)开发语言:PHP+HTML5+JavaScript。
3 搭建开发环境
3.1 安装Web服务
系统采用目前使用最广泛的开源软件Apache实现Web服务,由于Apache的官方网站并未提供安装包,需要手动进行安装。将Apache安装包解压到安装目录后,对Conf文件夹下的配置文件http.conf进行修改。完成配置后,打开cmd命令窗口,进入到"d:/amp/apache/bin"目录下,通过dos命令安装Apache服务即可。
3.2 安装MySQL、SQL Server扩展
为PHP添加MySQL扩展时仅需在php.ini文件中进行设置。开发所用的PHP 5.6.31是64位版本,而微软官方提供的Microsoft Drivers 3.2 for PHP for SQL Server不支持64位的PHP,因此系统采用非官方的扩展驱动文件。将对应PHP5.6版本的dll文件解压至PHP安装目录的ext文件夹中,并在php.ini文件中添加扩展。完成后,安装Microsoft SQL Server 2012 NativeClient以及ODBC Driver 11 for SQL Server驱动,重启Apache服务即可。
4 系统总体模块设计
4.1 系统功能模块设计
根据系统设计目标,系统按功能可分为登录管理、装备监控、统计查询、站点信息、网址导航、下载中心、保障论坛、办公区等模块。
4.2 数据库设计
系统根据功能模块建立数据表,由于不同类型装备所需的字段有差别,为便于管理,系统为每种类型装备均建立1个站点信息表、1个站点信息表和1个故障记录表。
保障论坛功能所用的数据库采用Discuz!论坛工具自动生成。
5 系统软件设计
5.1 软件总体框架
系统程序主要分为3个部分:控制器(Controller)、模型(Model)、视图(View)。控制器响应用户请求,调用模型访问数据库,然后将准备好的视图或数据反馈给用户,从而实现页面的跳转或数据服务。
5.2 用户登录验证模块实现
系统采用类的继承和session技术实现用户登录验证功能,实现原理如图1所示。控制器LoginController作为登录验证唯一入口,调用模型User的静态方法login,将用户输入的信息与数据库中的信息进行对比,根据结果控制页面跳转,并将登录信息写入session。其他需进行用户登录验证的控制器类继承IndexController,在IndexController中使用构造函数调用模型User的静态方法isLogin,读取session数据,判断用户是否登录,从而限制用户未登录而直接访问,保证系统安全。
图1 用户登录验证功能实现原理
5.3 装备监控模块实现
监控模块后端程序以土壤水分设备为例,实现流程如图2所示。系统逐站扫描前一时次的土壤水分数据,若无数据,直接判定该设备状态为故障,并生成相应故障代码;若有数据,则对各层数据逐一判断是否在正常范围内,从而判定该设备状态并生成故障代码,最终将判定结果写入站点状态表中。
装备监控功能的地图和列表展示模式分别基于高德地图JS API和DataTables表格插件开发。首先加载DataTables表格插件并初始化表格对象,通过try命令尝试加载高德地图JS API,以此判断用户是否连接到互联网,若成功则对地图、海量点标记、文本标记等对象进行初始化,并为地图添加缩放响应事件和点击响应事件[11]。
图2 土壤水分设备状态后端判断程序流程
初始化完成后,通过设置定时任务实现监控数据的刷新,即使用Ajax向后端程序请求数据,在请求成功函数中对数据进行解析、处理,调用DataTables表格插件的接口函数清除并更新表格数据,然后根据各设备的故障时限分别为超时的行设置红色背景,最后自动调整各表格列宽,使显示效果达到最佳。
5.4 办公区模块实现
办公区模块主要功能包括未完成事项提醒和历史收发记录查询。“新建记录事项”和“未完成事项完善”共用后台处理程序,用户将表单数据提交至服务器后,后端程序对事项中各设备的应交付数量与实际交付数量进行比对,判断该事项是否完成,并对数据表scheme、trade、equipment、incomplete进行更新,然后更新办公区页面数据。
在添加事项进展记录时,为避免因设备信息填写问题而导致事项完成情况判断出错,其页面入口设置在未完成事项提醒列表中。系统根据用户点击所在的行,将目标事项的信息传递到弹出的“未完成事项完善”页面,用户仅需填写收发信息和设备数量即可。
6 系统应用实施
在河南省气象局的支持下,河南省地面自动气象站综合管理系统已应用于河南省气象探测数据中心及各市、县气象局装备保障业务部门。
升级后的系统可采用列表和地图两种展示方式,实现对国家级自动站、省级常规站、土壤水分、气溶胶、农业小气候、作物观测、闪电定位仪、交通气象共8种类型设备的实时监控,并增加了下载中心、保障论坛等功能。
7 结束语
系统自2019-12-17上线至今,运行稳定可靠,未发生软件故障,为河南省气象装备保障业务的开展提供了有力支撑。
根据各级用户的反馈意见,开发人员先后对系统进行了多次改进和升级,但仍存在部分问题,如装备监控模块的地图模式需要连接互联网才能正常使用,影响了部分用户的使用体验。未来开发小组计划采用离线地图包,重新开发装备监控页面,进一步完善系统。