福建气象防灾减灾数据传输系统设计与实现
2022-06-14魏夏潞
王 笑 颜 东 魏夏潞
(福建省气象信息中心,福建 福州 350001)
1 概述
国内气象数据格式种类繁多,不标准、不统一,缺乏和国际、业界一般采用标准格式的一致性,为了从根本上杜绝纷繁复杂的国内自定义数据格式,简化、优化和调整探测资料和产品生成、传输、加工、存储、服务全业务流程,解决数据格式不统一导致的应用系统数据格式转换、软件接口匹配调整等问题,中国气象局预报与网络司在2014年开展气象数据格式标准化工作。2019年3月,中国气象局减灾司为强化基层防灾减灾标准化建设,统一全国气象防灾减灾数据格式和接口标准,组织制定了《全国气象防灾减灾数据格式标准》和《全国气象防灾减灾数据接口规范》,要求各省业务单位根据标准规范统一制作标准格式气象数据,上传至省气象信息中心指定服务器,省气象信息中心负责建立国省两级传输通道,完成基于气象大数据云平台的全国气象防灾减灾数据的汇交任务。因此,福建省气象信息中心急需研发一套用于国省数据传输的程序,保障气象防灾减灾资料准确及时完成汇交。
Java是现在主流的语言,功能强大,安全、稳定,通过采用Spring Boot框架使Java开发基于Spring的应用程序,从而减少大量的开发时间并提高效率,避免编写大量的样本代码、注释和XML配置,它提供的嵌入式Http服务器和CLI工具,可以快速开发和测试程序。Spring Boot内嵌tomcat容器,以jar包的形式进行独立运行部署项目,大大减少了环境部署需要的工作量。Java编程语言对数据的长度和类型有较高的要求,同时制定了严格的规范,使编写的程序能够在各种计算机上运行Web程序,并且提升了运行过程的安全性和平稳性[1]。由于Java编程语言的运用优势和特征,因此得到广泛应用,它节约了开发时间,提升了软件开发质量,减少和控制了程序编写的成本,使结构更具开放性[2]。
因此,福建省气象信息中心采用Java1.8和Spring Boot框架,开发基于标准化格式气象数据的传输程序,可以有效落实全国基层气象防灾减灾标准化建设工作,优化业务布局、统筹各方资源,凝聚防灾减灾合力,进一步提升基层气象防灾减灾工作水平。
2 研究内容和方法
为实现有效、及时的国省气象防灾减灾数据传输,结合福建省的实际情况,本文提出一种综合利用Java和Web相关技术的解决方案,各相关业务单位按《全国气象防灾减灾国省数据传输规范》《全国气象防灾减灾数据存储规范》制作标准格式数据,通过FTP传入福建省气象信息中心指定服务器目录下,信息中心一方面对资料进行时效监控,对未收到的数据可以采取短信告警或语音方式告知业务单位;一方面通过FTP和http两种汇交方式,将接收到的静态数据和动态数据上传至国家气象信息中心。
其中,全国气象防灾减灾数据中静态数据的汇交是用于大文件汇交、每年一次汇总时汇交用,一般更新频次为每年一次,更新时间应当是每年主汛期前(4月上旬)。动态数据的汇交是用于实时文件汇交使用,以写入接口的方式,包括信息写入接口和附件写入接口。动态数据要求按如下频率更新:预警发布设施状态信息要素(动态)要求早晚各更新一次,预警发布设施状态反馈表(动态)要求实时上传,预警发布设施状态信息反馈统计信息表(动态)要求每晚更新一次,全国气象防灾减灾业务流程表(动态)要求实时上传。具体的系统数据流程和技术路线如下。
2.1 数据收集
各相关业务单位按《全国气象防灾减灾国省数据传输规范》《全国气象防灾减灾数据存储规范》生成资料文件,文件格式基于XML格式,规定了全国气象防灾减灾基本数据格式,为气象防灾减灾相关系统建设与对接,业务监控,效益评估等工作提供数据标准保障,并且适用于全国气象防灾减灾业务数据的生成、交换、共享、管理、应用和服务。
全国气象防灾减灾数据包括XML声明部分和数据实体部分,XML声明部分定义XML语言的版本和所使用的语言字符集,位于数据格式的第一行。内容如下:
其中,version="1.0"表明XML文档符合XML 1.0规范。encoding="UTF-8",表明所使用的编码为UTF-8。
数据实体部分包括根元素、全国气象防灾减灾数据。其中,全国气象防灾减灾数据包含一种或多种防灾减灾数据,具体为全国气象防灾减灾监控信息、全国气象防灾减灾重点涉灾单位信息、全国气象防灾减灾预警信息发布设施状态信息、全国气象灾害责任人信息、全国气象信息员信息、全国气象防灾减灾地图主图、全国气象灾害分级防御信息、全国气象灾害叫应制度、全国气象防灾减灾业务流程等。
XML格式中必须有且仅有一个根要素,根元素标记“
全国气象防灾减灾数据文件名格式为分类_编报单位_MDPR_类型_编报或生成时间.文件后缀。类型统一采用SEVP,代表数据分为气象服务产品,填报单位采用填报单位代码,MDPR为气象防灾减灾英文缩写,编报或生成时间采用年月日时分秒的格式。
最后,省气象局各数据填报单位按省气象信息中心分配好的ftp用户密码和传输子目录,将按规范格式制作好的标准化数据以ftp方式送入信息中心指定服务器(国省数据传输服务器)目录。
2.2 系统结构与功能设计
根据全国防灾减灾数据传输的需求,合理进行系统架构和设计,更好满足了实际传输业务中对数据收发监控的需求,具体的系统架构如下:
图1 系统架构图
(1)数据层:各数据单位将全国防灾减灾气象标准化数据传入省气象信息中心服务器指定目录下,信息中心将数据录入数据库中,方便传输和使用。
(2)应用层:系统搭建基础环境jdk1.8,构建Spring Boot框架,Shiro负责后端权限框架,Springboot Web负责Rest接口,Springboot Jpa 负责数据库连接,然后使用FtpClient和HttpClient工具将收到的标准化格式气象数据上传至国家信息中心。
(3)Web显示层:即全国防灾减灾数据传输情况的福建本地用户交互页面,显示省气象局各业务单位数据上传情况,可以及时进行缺报短信告警,并且方便各业务单位通过web页面查看信息。
2.3 关键技术与实现
根据系统架构以及全国防灾减灾数据传输的需求,该系统的设计和实现主要采用了Java前后端分离框架技术。结合当前 Web技术的发展,随着网站功能的日趋复杂,前后端分离逐渐成为很多Web项目开发的主流模式系统[3]。因此系统采用前后端分离框架,从而完成全国气象防灾减灾数据传输平台的搭建[4-5]。下面介绍使用到的具体技术及其如何解决并满足业务中对气象数据传输和监控系统的需求。
前端部分主要解决人机交互页面问题,包括首页、登录页、快速面板页和系统配置页。这部分采用了Node.js作为前端服务器框架,React.js作为基础开发语言规范框架,Umi.js作为前端敏捷开发容器,用于敏捷开发,开发涉及插件antd.js等用于用户UI界面的开发,极大方便了省气象局各业务单位通过web页面查看数据传输信息和监控。
在前端页面后端部分搭建基础环境jdk1.8,构建Spring Boot框架,使用FtpClient和HttpClient工具对收到的标准化格式气象数据,按填报时间、数据类型和传输方式进行编码,静态数据汇交地址用于大文件汇交或每年一次汇总时汇交使用,通过FTP形式传输,国家气象局已经配好福建省传输地址、目录、编报中心代码和福建省简称的拼音全拼。动态数据的传输以写入MUSIC(http)接口形式传入到国家气象信息中心,主要用于实时文件的汇交。
2.4 测试上传
程序研发好后,完成系统部署和测试。按照需求设计,在国省数据传输服务器上进行严格的样本测试,中国气象局收到信息并反馈成功,使系统达到预定的指标,对测试结果进行分析,根据测试结果进行相关调整和完善,保证系统达到预期建设的目标。
3 主要研究成果展示
全国气象防灾减灾数据传输系统通过多个功能模块,将收到的各类气象数据和信息及时、高效地推送至国家气象信息中心,也为福建省气象局各个业务数据单位提供了简单、方便、快捷的Web查看统计页面。主要研究成果包含两部分,即程序执行页面和Web显示页面。
3.1 程序执行页面
远程访问程序部署的服务器,可以看到全国防灾减灾数据传输系统程序的运行,系统进行定时文件扫描,文件夹下有新到的文件时,则会立即通过程序自动执行上传至国家气象信息中心。
系统通过FTP汇交和 Http两种方式,将接收到的静态数据和动态数据格式文件上传至国家气象信息中心指定服务器。系统服务1年半时间后,根据国家局反馈,数据发送总计4887条,动态数据4716条,静态数据171条,总计大小约20.74GB,信息量高达856w,数据发送稳定可靠,反应良好,高质量完成了福建省全国气象防灾减灾数据的传输。
3.2 Web显示页面
Web显示页面主要包括首页、快速面板页、登录页和系统配置页。在浏览器地址栏输入系统访问地址,按回车键跳转至全国防灾减灾数据传输系统主页,即快速面板页,主要包括本系统收发资料的各种信息,包括报文数量统计(本年、本月、本日、失败),动静态报文队列,本日节目表和本月历史记录等。
点击右上角登录按钮,显示用户登录页,弹出用户名和密码,根据省气象信息中心给各业务单位分配的账号密码,输入后进入系统页面,这部分功能主要解决了认证、授权等问题。系统管理员登录后拥有成员管理的增、删、改、查权限,用户配置管理页,主要显示当前管理员的基本信息,对应的资料编码、资料名称、缩写、模式、电话号码、是否告警以及编辑信息项。
4 结论
本文结合业务实际需要,综合利用Java和Web技术,很好地设计和实现了全国防灾减灾数据传输系统,现系统已服务近3年时间,自部署以来,后端通过FTP汇交和 MUSIC(http)接口两种方式,均将接收到的静态数据和动态数据上传至国家气象信息中心,数据发送稳定可靠,反应良好。Web端支持根据省局业务单位定制发送信息的模式,可以编辑业务相关联络人,方便业务数据单位管理人员通过语音短信告警得知数据有无发送,以及联系电话的更换与启停维护等监控操作。
由于各省气象部门功能相似,因此本文研究成果具有较广的应用性,全国各气象部门可借鉴用于传输防灾减灾数据,也为各省日常气象数据传输保障提供了一种便携有效的监控途径。