基于SpringBoot框架的气象风参数查询服务平台设计与实现
作者:刘樱 杨明 王锐
来源:《软件导刊》2019年第05
        要:为简化浙江省现有气象风参数计算与查询服务,并实现对浙江省风参数已有成果的展示与数据库资料的直接调用,设计并实现了一个基于Spring Boot框架的气象风参数查询服务平台。主要完成了对Spring Boot框架下相关功能特性的分析验证,以及平台具体框架设计,同时对浙江省气象风参数查询平台中的若干关键技术进行深入探讨与分析。该平台可为重大基建工程中的抗风设计提供有效的数据服务。
        关键词:Spring Boot;气象风参数查询;服务平台
        DOI10. 11907/rjdk. 191346
        中图分类号:TP319 文献标识码:A 文章编号:1672-78002019005-0110-04
        Abstract In order to simplify the calculation and query service of the existing meteorological wind parameters in Zhejiang Province and to realize the display of the existi
ng wind parameters of Zhejiang Province and the direct call of the database data based on the Spring Boot framework the key technologies in the meteorological wind parameter query service platform of Zhejiang Province are researched and implemented. The analysis and verification of the functional characteristics under the Spring Boot framework and the framework design of the Zhejiang meteorological wind parameter query platform under the Spring Boot framework are also carried out. Several key technical issues in the wind parameter query platform are discussed and analyzed in depth. The Zhejiang meteorological wind parameter query service platform based on Spring Boot framework is realized which provides effective data service for wind-resistant design in major infrastructure projects.
        Key Words Spring Bootwind parameter queryservice system
        0 引言
        风数据作为一项重要的气象数据,无论是在理论研究还是国民经济建设中都应用广泛[1-3],涉及领域从天气环流背景分析[4],到重大基础建设工程中抗风参数设计,如高速公路、
桥梁、高层建筑、高压输电塔等[5-7],都离不开各类风资料的支持。同时,风能资源作为一种可再生的新能源也备受关注。浙江近海岛屿众多、海岸线绵延曲折,沿海、近海及海岛都有着十分丰富的风能资源,风能资源对于节能减排、保护环境起到重要作用[8-11]。此外,当风力达到一定等级后,将对人类生存与社会发展造成损害,其中常见的气象风灾害有飓风、台风、龙卷风等[12-13]。可见,风数据在基础气象研究及气象服务中有着极其重要的地位。
        随着现代测风仪器观测精度的不断提高,以及浙江省近30年气象风能服务业务成果的大量累积,传统的实时历史气象风参数查询方式与手段已不能满足现代大数据量、高并发及高效查询的气象业务需求,并且随着业务需求的增加,系统更新也变得更加复杂。Spring框架是经典的MVC分层架构设计模式,技术相对成熟且开发方便、快捷[14-18]。为了提高浙江省气象风参数查询平台的查询性能,并满足其低耦合性要求,可采用Spring Boot框架重构传统数据查询方式。
        鉴于此,本文以业务需求为牵引,结合多年风能与抗风设计业务应用成果及需求,基于Spring Boot框架研发了一套能充分发挥分层服务与高并发优势、为用户提供扁平化服务体验
的风参数查询服务平台,从而为准确、高效地查询、计算浙江省风资源情况提供了翔实的数据基础,且操作简便,实用性强,大大提高了工作效率。
        1 Spring Boot技术研究
        Spring Boot2013年由Pivotal团队提出的全新框架,其设计目的是用来简化新Spring应用初始搭建、样板化配置、快速开发调试及部署过程[19-22]Spring Boot可用于多层架构体系的模型业务层,对于上层其可以有效地屏蔽底层数据库操作,提高低层模块与高层模块之间的内聚,降低多层模块间的耦合性,具有分层模块化架构应用业务系统的优势。
        Spring Boot主要功能包括:
        1)自动配置,快速构建应用程序。Spring Boot架构具有自动配置功能,框架自动负责了大部分常规配置。通过自动配置,Spring Boot可帮助开发者快速搭建Spring框架,从而快速构建应用程序。
        2)依赖库管理。提供约定的starter POM以简化Maven配置,根据项目的maven依赖配置,Spring Boot自动配置SpringSpringMVC等其它开源框架。
        3)内嵌Web服务器。Spring Boot框架能够直接使用Javamain方法启动内嵌的TomcatJetty服务器运行Spring boot程序,不需要部署War包文件。
        4)应用监控与健康检查功能。Spring Boot对运行项目提供基于HTTPSSHtelnet服务的监控。Spring Boot提供了actuator组件,只需在配置中加入spring-boot-starter-actuator依赖,通过继承Abstract Health Indicator抽象类,然后利用检测服务健康doHealthCheck方法,实现服务监控功能。
        2 Spring Boot框架应用于风参数查询服务平台
        Spring Boot框架能够简化应用服务的复杂性,以简单、快速的方式实现各个服务与部署应用,并且具有跨平台的互操作性、数据重用性等优势。利用Spring Boot框架可以有效解决快速开发部署、跨平台、网络异构与数据重用等问题。将Spring Boot框架应用在风参数查询服务平台的数据提供端,并定义了一套标准的数据调用方式和接口,为风参数查询服务平台中气象业务数据查询、风参数数据计算及统计等提供标准化的数据支撑。
        Spring Boot框架对风参数查询服务平台的技术支撑主要包括以下6点:负责数据库的
查询、增加、编辑、删除、统计等操作;负责数据库的持久化操作;风参数据与业务数据清洗及质量控制;系统数据流程逻辑实现;为系统界面提供Restful数据服务接口支撑;管理系统用户及日志数据。
        3 系统总体框架设计
        为了保证浙江省气象风参数查询平台的高可用性与高扩展性,平台采用层次化设计框架。平台总体框架由4部分组成:数据层、数据服务层、业务逻辑层与表现层。总体框架如图1所示。
        1)数据层:数据存储环境,主要存储风参数查询服务涉及的3类数据,包括气象业务数据[23](如气象站观测数据、历史气象数据、气象服务产品等)、风参数数据、基础地理信息数据、系统管理数据。所有数据均进行统一存储与管理,其中地理信息数据存储采用地图切片及JSON方式,气象业务数据、风参数数据与系统管理数据主要采用MySQL数据库进行存储,系统配置文件采用JSON方式进行存储。
        2)数据服务层:通过相应业务逻辑对数据进行加工处理,形成最终业务数据,然后
发布成数据服务接口。将各种类型气象数据加工处理成平台前端容易显示的JSON数据格式,实现访问MySQL数据库的接口,并实现对数据的封装及传输。接口主要采用Restful方式提供服务。
        3)业务逻辑层主要提供风切变推算、测风塔风能资源评估、年风况、各月风况统计、用户管理等操作的实现逻辑,然后请求相应数据。该层包括气象要素空间插值、气象风参数分析等主要功能,可为业务服务平台提供应用层支持。
        4)表现层主要通过spring framework网络系统参数HTML5页面显示常规统计(如台风统计、大风统计等)、定制服务类统计、分析显示与用户管理等5大类内容。
        4 系统模块设计
        4.1 常用统计模块
        用于统计气象站的常规风实况结果,主要包括两种统计方式:
        1)累年风实况统计值,主要分为1971-2000年及1981-2010年两个时段(各30年)
的累年观测资料。以国家基本(基准)气象站为主,建立累年历史数据统计模块,显示累年某站16象限风向玫瑰图,如图2所示。
        2)建站开始至任意时间或指定时间段内单站观测时间统计。主要采用HTML结合HightChart图表的方式实现。
        4.2 台风统计模块
        通过对台风的统计可输出各月台风影响统计表(1949年起,统计时间可选择),包括512月影响台风(指对选定区域产生影响的台风)的次数及频率,以及登陆台风(指在选定区域内登陆的台风)的次数及频率,绘制多年影响台风及登陆台风数量图。根据台风编号搜索台风数据表,查询与导出相关台风文字描述信息,包括登陆时间、影响范围、造成灾害等,并显示某台风期间(选择日期)全省自动站点最大风速与极大风速分布特征图。该模块主要采用HTML结合HightChart图表导出功能实现。
        4.3 大风模块分析
        50年一遇及百年一遇气象站最大风速计算选用耿贝尔极值分布法,计算气象站50年或
百年一遇最大风速值,并显示最大风速拟合图像,如图3如示。
        通过输入经纬度,选定需要计算最大风速的区域范围,将输出指定区域气象站点10m高度50年一遇最大风速分布,也可显示该区域实测气象站点最大风速与极大风速值分布图。
        4.4 定制服务类统计模块分析
        依据需求与测风数据在平台上输入风参数,选择任意时段,可显示观测期间测风点的微观风况,主要内容包括:测风塔观测期间年风况及月风况统计;风切变推算;测风塔风能资源评估模块相关内容添加。通过访问解析数据服务接口,对定制服务进行统计分析,并返回统计结果。
        5 应用实现
        5.1 数据访问模块实现
        数据访问模块主要采用Spring Boot整合mybatis的方式加以实现。主要实现步骤如下:l加载MySQLSpring Boot相关依赖库;配置整合mybatis的配置文件、mybatis扫描别名基本包与数据源等信息。mybatis数据库配置文件如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。