王立俊,李晋峰,程洪涛,郑虹晖
(1.海南省气象信息中心,海南 海口 570203;2.海南省气象服务中心,海南 海口 570203)
近年来,气象信息化、现代化发展迅速,气象资料的种类和数据量呈指数型增长,气象资料传输的时效性和正确性要求也越来越高,这就需要稳定可靠的信息传输系统以及资料共享服务系统[1-2],而省级气象信息中心作为气象数据传输的中转站和地区重要数据的存储中心,需要保障气象资料传输以及共享的安全性和可靠性。目前,国家气象局正式将CIMISS系统投入运行,实现了国-省气象资料的传输和共享,但各省仍需要为省-市(县)气象资料的传输和共享建立完善的实时监控系统,及时发现和预警气象资料的缺发情况,尽早采取有效的解决方法,才能高效、及时地保障气象业务工作中对气象资料的需求。
本省气象信息中心的气象资料监控软件种类繁多,例如区域站、雨量站和浮标站由不同的监控软件传输;同时,也承担着向各类业务系统提供各类气象资料的任务,例如:海南省气象局网站、海南省信息服务网、市县气象综合一体化平台,三防部门的互联网+防灾减灾信息平台等。若某种数据在某个环节出现问题,将会引起大面积数据显示缺失,因而需要对这些数据进行全面的监控和预警。
针对上述问题,设计和研发了一套集站点管理、预警时效管理、短信预警等功能的气象资料实时传输监控系统,实现了气象资料的实时监控。当发生异常时,系统可根据用户设置的预警时效配置,通过网页、短信形式分级分类向值班人员发送预警,让值班人员尽早解决故障。
海南省的气象信息传输业务流程是以市县-省-国家形式收发。首先,省内各市县气象局通过气象业务内网,以FTP的形式将各类气象资料(地面、高空常规观测资料)发送到省级报文处理服务器,经收集处理后,由省级报文处理系统分发给CIMISS系统的CTS模块,由该模块将资料上传到国家气象信息中心。整个市县-省-国家资料传输过程中,任何一个环节出现异常,都会影响传输质量。其次,一些重要的气象共享资料是通过Micaps和Cmacast系统接收的,目前省级仍无有效的监控和处理机制,经常因异常故障而无法提供最新的资料,影响了其他业务应用系统[3]。
因此,为了更好地保障气象资料的传输质量和为天气预报、气象服务提供实时、有效的数据服务,研究并开发了一套省级气象资料实时传输监控系统,整个系统的信息传输过程如图1所示。
图1 系统信息传输过程
SSJ框架是目前主流的轻量级J2EE软件架构,根据Struts2、Spring和JPA三者的应用特性整合而成,其基本架构如图1所示。其中,Struts2为表现层,是所有业务逻辑的最终展现层,充当逻辑层的客户端,实现人机交互;Spring为业务逻辑层,负责业务对象转换传递、业务逻辑组织及事务控制等工作,由spring framework实现业务beans间的依赖关系管理和运行时的注入和事务控制等功能;JPA为数据持久层,负责业务数据的持久化存储,采用O/R Mapping技术实现。
图2 SSJ工作流程
Struts2是基于MVC(model-view-controller)开发模式的开源Web层应用框架,主要采用Servlet和JSP技术实现,具有很高的可配置性[3-4]。Spring是Open Source开发的一个多层J2EE框架,为企业提供了一种轻量级的业务解决方案,通过简单的配置,可以实现“快速装配式企业组件”,在此基础上,Spring提供了包括多种持久化数据库,声明式事务管理和Web Services远程访问业务逻辑的解决方案。JPA是一个易于使用、伸缩性强的ORM规范,通过Java 5中的注释和对象/关系映射,实现操控对象即操作数据库的目的,为数据持久化提供了更简单、易用的编程方式。相对于传统的通过JDBC和SQL手工操作数据,使用JPA,可以不用自行处理对象在关系数据库中的持久化[5]。
通过SHJ这三种框架的优化组合实现了系统分层解耦,一方面使系统具有良好的扩展能力和可维护性,另一方面有利于项目组各角色的明确分工,提高开发效率,缩短系统开发周期。
由于气象资料类型众多和格式不一,而本省信息中心的监控软件繁多,又要给其他业务系统分发气象资料,为了更好地保障气象资料的传输质量和满足气象业务服务对资料的要求,在对比其他省份已有的资料监控系统的基础上[6-12],结合本省的特殊性,分析、总结出本省气象资料监控预警的工作流程,设计了整个系统的工作流程,如图3所示。
根据资料监控预警的特点,系统旨在将各类资料的监控行为逐一集中到一个平台上,并对逾限未到的资料进行分级分类预警,主要分为两部分:系统启动后,会自动加载当前的监控和预警配置信息,加载完毕后启动监控线程,实时对各类资料进行监控,若监控到异常发生,则启动预警功能(无论预警与否,监控是不中断的);当监控到有异常发生时,系统会根据之前加载的预警配置信息,启动网页和短信预警。其中,网页预警是以声音告警,滚动条显示异常信息,短信预警则是根据短信设置信息,对异常信息进行分级分类,然后自动编辑短信信息,发送给相应的值班人员和领导。
根据上述分析所得的系统工作流程,并结合实际的业务需求,设计系统的整体架构和功能模块。考虑到业务化运行,系统架构中应用服务器和数据库服务器相互独立,两者通过气象内网相互通信,并有热备份机,定时备份,以便发生故障时,能快速地切换到备用服务器,保障业务不中断。
图3 系统工作流程
系统组成如图4所示,主要有6个功能模块。
图4 系统组成
用户信息管理模块主要负责为管理人员提供系统用户的添加、删除、修改和分配权限等操作,不同权限的系统用户的访问级别不同,目前划分为普通用户、值班用户和超级管理员三类角色。普通用户是给市县台站使用,只能查看监控和预警信息,值班用户是给运控科值班人员使用,除了查看外,还能对预警信息进行处理,而超级管理员是负责保障系统的正常使用,能使用系统的所有功能。
站点信息管理模块主要提供对国家站、区域站、雨量站、土壤水分站和GPSMET等站点的信息管理,可以通过判定站点的运行状态和预警属性,确定是否对该站点进行监控预警。如果某站点的运行状态异常,则把该站点从监控列表中移除,避免不必要的预警。由于省级监控的各类站点较多,本模块还提供批量导入功能,能快速地更新监控列表。
预警时效管理模块主要提供对监控列表中的各类资料的预警时效进行配置,预警时效包括状态时效、网页预警时效和短信预警时效。状态时效是指对资料的接收状态进行时效监控;网页预警时效是指资料逾限后,触发网页预警行为的时效;短信预警时效是指资料逾限后,触发短信预警行为的时效。网页和短信预警时效的数值大于或等于状态时效的数值。预警列表是根据监控列表和预警配置信息生成的。
图片信息管理模块主要提供对各类雷达图及卫星云图等图片的信息管理,可以通过设置图片的运行状态和预警属性,确定是否对该图片进行监控预警,如果某种图片的运行状态异常(雷达基数据、雷达产品或云图),则需把该类图片从监控列表中移除,避免不必要的预警。
短信设置管理模块主要提供设置短信预警信息的功能,可以对短信接收人进行分类设置,并结合监控列表和预警配置信息,生成短信预警列表,实现对资料的分级分类预警。
预警信息处理模块主要为值班人员提供对已产生的预警信息进行处理的功能,值班人员查看预警信息后,采取有效的措施去处理预警信息,若是处理成功,则由值班人员设置该预警信息的处理状态,使该预警信息失效。
应用服务器和数据库服务器是分离的。主从数据库服务器之间定时备份系统数据,数据库选用Oracle[13],采用集中式数据管理。主从应用服务器的应用配置环境是相同的,使用负载均衡[14]来保证应用服务器的性能,应用服务器容器使用Apache Tomcat[15]。系统应用是基于多层组件式B/S架构和Struts2、Spring、JPA框架,采用Java语言实现,具有良好的可维护性和可扩展性。
系统的监控首页如图5所示,功能菜单在左边侧栏,系统用户点击相应的功能,即可进入相应的功能页面;右边栏是监控及预警信息的展示页面,主要包括三部分:以列表的形式显示当前时次各类自动站(国家站、区域站、雨量站)等的接收统计信息;以列表的形式显示当前时次各类云图、雷达产品图的接收统计情况;以滚动条的形式显示截止当前时次最新的未处理预警信息。当后台监控到预警信息时,网页会自动发出声音告警提醒值班人员,并在首页滚动显示未处理的预警信息,值班人员查看未处理预警信息后,采取有效的解决措施,处理完后,将预警信息的状态设置成已处理。
图5 监控预警系统首页
系统还提供预警时效的设置,可根据业务需要,灵活调整预警时效,包括前文提到的状态时效、网页预警时效和短信预警时效。如图6所示,通过设置不同类型的报文的预警时效,完成对报文的分级分类监控和预警。例如:某个时次后台监控到预警信息时,除了网页的声音告警外,系统还会根据当前的预警信息,自动生成预警短信,发送给相应的值班人员和领导,预警短信示例如下所示:
若某个时次的区域站个别站点数据接收不正常,则短信的编辑内容为:“您好!观测时次为2017-04-08 10:20:00,区域站站号为M1001、M1002数据不正常,请及时处理,谢谢!。”
若某个时次的雷达或云图图片接收不正常,则短信的编辑内容为:“您好!观测时次为2017-04-07 22:09:21,三亚多普勒雷达图的75公里基本反射率数据不正常,请及时处理,谢谢!。”
图6 预警时效设置页面
针对省级气象信息中心在气象资料实时监控方面存在的监控软件众多、监控任务繁杂等问题,在对比、参考其他省份已有资料监控系统的基础上,并结合本省气象资料的监控特点,总结出符合本省的气象资料监控流程,设计、研发了一套集站点管理、预警时效管理、短信预警等功能的气象资料实时传输监控系统。当异常发生后,系统能快速向值班人员预警,有效地保障气象资料的传输质量并提供及时、高效的气象服务。试运行结果表明,系统各个功能模块运行稳定。未来系统将会接入更多类型的气象资料和提供更多的预警方式,以更有效地监控、预警气象资料。
[1] 魏 莉.报文传输业务中的常见问题及解决方法[J].气象研究与应用,2007,28:111-112.
[2] TAI S,MIKALSEN T A,ROUVELLOU I.Using message-oriented middleware for reliable web services messaging[C]//International workshop on web services,e-business,and the semantic web.Berlin:Spring,2003:89-104.
[3] 黄美林,马建华,李 东.基于SSH框架与泛型的通用分页方法设计与实现[J].计算机技术与发展,2012,22(1):67-71.
[4] 付更丽,曹宝香.SOA-SSH分层架构的设计与应用[J].计算机技术与发展,2010,20(1):74-77.
[5] 周杨川,孙淑霞,丁照宇.基于Spring+JPA框架的电子政务基础平台[J].计算机技术与发展,2008,18(4):98-100.
[6] 鲍婷婷,陈 鹏,殷笑茹.省级气象资料监控业务系统设计与实现[J].气象水文海洋仪器,2014,31(3):104-106.
[7] 曹 威,刘 江,杨维发,等.湖北省气象信息传输监控与处理平台的设计与实现[J].电子技术与软件工程,2016(18):68-69.
[8] 朱 勍,唐 民.民航气象观测报文监控和反馈系统研究[J].中国民航飞行学院学报,2015(2):77-80.
[9] 孙周军,肖文名,宋远清,等.气象信息实时监视系统改进设计与实现[J].成都信息工程学院学报,2012,27(2):168-173.
[10] 朱 璇,马少妆.常规气象观测报文传输监控操作过程分析[J].科技创新导报,2010(7):119.
[11] 叶汶华.气象数据监控系统的设计与实现[J].电子技术与软件工程,2016(6):185.
[12] 钟 静,李 赟,陈海涛,等.基于SMS技术的气象报文监控设计与实现[J].贵州气象,2011,35(4):42-43.
[13] FERNANDEZ I.Beginning oracle database 11g administration:from novice to professional[M].[s.l.]:Dreamtech Press,2009:53-59.
[14] 王荣生,杨际祥,王 凡.负载均衡策略研究综述[J].小型微型计算机系统,2010(8):1681-1686.
[15] VUKOTIC A,GOODWILL J.Apache Tomcat 7[M].[s.l.]:Apress,2011.