基于云平台的气象数据共享系统设计

2023-05-30 06:37陈冲张锋朱潜王伟李俊徽
电脑知识与技术 2023年1期
关键词:云平台共享云计算

陈冲 张锋 朱潜 王伟 李俊徽

摘要:为了解决浙江省各级气象部门服务的数据来源不一致、响应慢等问题,利用分布式云存储和云计算框架,构建了基于云平台的气象数据共享系统,无缝对接传统气象数据源,研发气象数据从存储、加工、共享发布到管理的一体化功能。实践证明,该系统较好地整合了全省气象数据,产品资源集约度更高,响应时间更快,负载能力更强,为各级气象部门提供了可靠、高效的实时数据共享服务,取得了良好的应用效果。

关键词:气象;云计算;云平台;共享;发布

中图分类号:TP399      文献标识码:A

文章编号:1009-3044(2023)01-0067-04

1 引言

随着浙江省气象信息化、现代化发展,全省气象数据更加丰富[1-3],其在气象监测、预报预警中发挥着越来越多的应用。但受制于气象内外网络安全等因素影响,各级气象部门获取数据困难,难以高效统一地共享省级业务部门的数据产品,出现了本地数据来源杂乱、延时性高等问题,对其进一步提升气象服务质量产生较大影响。

近年来云服务发展迅速,云计算服务平台[3-6]提供了规范化的基础数据支撑框架,实现了从网络、计算到存储等资源集约化的功能,有效提升资源利用率及响应效率[6-8]。基于云平台技术集中开发互联网气象数据接口服务,可有效地实现数据共享与网络壁垒。

本文利用云平台的技术框架,建立基于云平台的数据共享系统,通过接口鉴权的方式,实现全省各级气象部门的数据共享服务,为各级气象部门提供气象实况、预报预警、雷达等精细化气象产品,实现全省气象数据的集约整合、开放共享的建设模式。

2 系统设计

2.1 系统三层体系架构设计

气象数据共享系统总体包括“三横二纵”结构,“三横”为数据采集层、数据存储层及数据服务层,“二纵”为业务管理与消息总线,总体系统架构图如图1。

1) 数据采集层:承担对省级气象数据的收集任务,数据范围涵盖气象网格数据、XML、JSON、文档与图片等,采用Java语言设计开发,利用开源的Jenkins任务调度器,通过FTP的方式实现采集和传输,并对文件进行规范化命名处理和分类入库。

2) 数据存储层:承担对数据的规范化存储任务,将气象文件类数据存储于OSS(Object Storage Service) ;相关用户信息与日志等存储于RDS(Relational Database Service) ;将气象网格数据以key-value的方式存储于HBase(Hadoop Database) ,以提升定点经纬度数据值的读取速度,所有基于LBS(Location Based Services) 的接口的数据都从HBase获取。

3) 数据服务层:承担通用的、规范化的数据接口服务,同时实现对数据访问的权限控制和相关日志记录功能;依托API(Application Programming Interface) 网关和SLB(Server Load Balancing) 技术,向全省提供互联网基础数据服务,确保其具有较强的稳定性、可靠性和易扩展性。

4) “二纵”主要包括:业务管理、消息总线。业务管理是对气象数据共享服务的管理平台,对数据接口申请、气象数据管理与用户管理提供维护功能;消息总线承担各子系统、各应用和模块之间的信息交互。

2.2 数据处理流程设计

数据处理流程包括任务调度、数据同步及数据存储,框架如图2。将浙江省气象内网的监测预报网格产品、雷达、预警信息与文稿等数据进行采集、加工处理和上云。

1) 任务调度:使用Jenkins,替代传统Windows计划任务,提供分布式调度,部署一个Jenkins管理节点,其他节点负责具体调度和运行。

2) 数据同步:采用Kettle中间件进行数据库信息采集同步,由Transformation和Job两种脚本文件实现业务,Transformation完成针对数据的基础转换,Job则完成整个工作流的控制,最终通过Shell脚本或者Batch批处理命令执行任务;研发FTP文件数据采集同步程序,通过Batch批处理命令执行任务,可以基于配置定义每类数据的相关属性实现文件校验、同步、解析和上云等。

3) 数据存储:采用阿里云存储服务,包括对网格文件、雷达、预警文件与图文资料等文件类数据,业务管理信息、用户信息、配置信息与访问信息等结构化数据,key-value方式存储的气象网格数据等三类数据的存储服务。

2.3 数据接口发布流程设计

数据接口发布流程设计是对基于云存储的气象数据资源开展共享流程架构,对气象数据资源进行集约化利用、高效化发布以及规范化管理,由数据接口规范与说明与访问权限管理组成,用于接口帮助信息展示和接口权限管理。

1) 数据接口规范与说明:主要由接口地址、请求参数、返回信息和样例说明组成。接口地址采用统一域名加不同子地址的方式进行开放,需传入相关参数,包括相关位置信息、密钥、时序等;数据返回信息和样例说明是对接口返回内容的具體说明,便于开发者使用,减少中间的沟通成本,整体流程如图3。

2) 数据访问权限管理:包括审批与接口鉴权,接入气象数据共享系统的接口需先进行申请,提交接口类型、访问气象要素与注册用户信息等资料,审批通过后开放给用户对应的密钥,后面所有数据访问都基于用户身份认证模式,密钥校验成功后才能获取到接口返回数据,整体流程如图4。

3) 数据接口概述

数据接口采用Java语言编写,依托阿里云微服务架构实现接口部署,通过SLB完成访问压力导流,通过阿里云API最终发布。下面以基于LBS的天气实况查询接口为例进行说明:

public List ZJCurrentWeatherInfo (double lon, double lat, Date date, Date currentDate)

参数说明如下:

lon,请求区域经度。

lat,请求区域纬度。

date,需要计算的开始时间。

currentDate,当前时间。

譬如,用户需要请求经纬为(120.00,30.00) 位置的当前时间天气实况信息。则调用示例为:

List Result = ZJCurrentWeatherInfo (120.00, 30.00, new Date(), new Date())

其中date与currentDate为当前时间入参。接口返回的结果采用键-值对形式,如下:

[{"title":"公众版天气现象","type":"pub_WeatherType","value":"小雨"},{"title":"温度","type":"DryBulTemp","value":"35.8"},{"title":"相对湿度","type":"RelHumidity","value":"61%"},{"title":"站点气压(百帕)","type":"pub_STATION_PRESS","value":"1007"},{"title":"风向风速","type":"pub_WindDV","value":"东南偏东风2级"}]

title为气象要素中描述,type为气象要素关键字,value为气象要素值,接口可供各气象服务系统调用。

3 系统实现与测试

依托上述设计理念,本文对基于云平台的气象数据共享系统进行了实现,Web页面部署于ECS(Elastic Compute Service) ,页面采用HTML5、JavaScript语言联合Leaflet、ECharts-GL等第三方Web GIS API接口的图形绘制等功能进行开发,利用基于AJAX实时异步技术读取接口进行数据访问与产品展示。部分系统页面如图5、图6所示。

3.1 系统数据发布功能测试

系统提供包括基于LBS的点数据接口与基于地图服务的面数据接口等服务。基于LBS接口参数包括选取点经纬度或位置名称、时间序列等,基于地图服务接口参数包括市县区名称、时间序列等,同时所有接口需传入唯一认证参数作为安全校验标识。系统查询结果格式为JSON、图形、XML等格式,调用案例如图7所示。

3.2 系统数据发布功能测试

系统数据服务的发布通过云平台,将气象大数据最终以数据接口形式发布。发布为基于位置的数据接口,采用将相关气象网格产品写入HBase的办法提升网格点位数据的调用效率;发布为海量气象图形的数据接口,采用CDN技术提升接口调用速度;其他例如JSON、XML等数据则通过OSS位置链路直接发布。本文对基于云平台的气象数据共享系统接口服务状态进行抽样测试,结果见表1,可以看出数据服务在保持高请求数的同时还维持较低的异常率,综合响应时间保持数十毫秒级,详情如图8,整体具备了延迟率与出错率较低、负载能力较强等特点。

4 结束语

本文建立了一种基于云平台的气象数据共享系统,利用云存储、云计算等技术设计了浙江省级气象大数据共享发布的业务流程,通过建立数据资源池与分布式数据处理服务、集中开发基础气象服务API,为市县区提供了基于位置与地图服务的点面气象数据共享接口。系统集约了数据源,利用云平台分布式技术手段,较好解决了数据不一致,数据响应慢等问题。

目前,该系统已投入业务化试用,对各级气象部门获取气象数据效率有一定提升,但系统共享数据的丰富性还需进一步提升,在未来研究中,还需进一步扩充数据类型,以满足更多的专业化气象服务需求。

参考文献:

[1] 黄志,詹利群,任晓炜,等.Hadoop环境下基于SparkSQL海量自动站数据查询统计初探[J].气象科技,2019,47(5):768-772,871.

[2] 徐拥军,何文春,刘媛媛,等.气象大数据存储体系设计与实现[J].电子测量技术,2020,43(22):19-25.

[3] 江彩英,郭晓佳,谢丹,等.基于虚拟化云网盘的气象数据共享和交换应用实现[J].气象科技,2017,45(3):440-445.

[4] 杨腾飞,申培松,田雪,等.对象云存储中分类分级数据的访问控制方法[J].软件学报,2017,28(9):2334-2353.

[5] 张晓丽,杨家海,孙晓晴,等.分布式云的研究进展综述[J].軟件学报,2018,29(7):2116-2132.

[6] 尹常红,胡雅超,袁文波,等.一种气象数据共享接口系统的设计与实现[J].电脑知识与技术,2021,17(5):93-95,109.

[7] 李冠楠,金波,吴丽健.基于区块链技术的数据共享体系研究[J].电脑知识与技术,2021,17(5):40-41.

[8] 段文雪,胡铭,周琼,等.云计算系统可靠性研究综述[J].计算机研究与发展,2020,57(1):102-123.

【通联编辑:谢媛媛】

猜你喜欢
云平台共享云计算
企业云平台建设研究
挂羊头卖狗肉的“共享”营销
实验云:理论教学与实验教学深度融合的助推器