摘要:在福建省统一的气象数据环境基础上,采用微服务架构设计气象数据共享交换系统,作为气象部门与其他政务部门之间的数据共享交换的技术平台。系统采用面向服务模式,通过“构件化、拼装式”方式,将数据共享交换需求以每个微服务功能方式封装到Docker容器中,实现具有高伸缩性的个性化数据服务。系统运行后在纵向层面可通过微服务实例提高数据处理能力,在横向层面可通过新的微服务快速满足新增业务需求,提升气象部门的横向数据协同能力。
关键词:面向服务;微服务;数据共享交换;Docker容器
一、前言
福建省是台风、暴雨、冰雹等气象气候灾害多发的省份,因此,做好气象灾害防御工作具有至关重要的意义。气象、水利、海洋、环境等行业类数据,分别由相应部门负责进行观测设备部署建设并负责数据的收集、存储、管理与本行业使用。福建省气象部门通过部门数据共享协议与相关部门的气象数据、生态环境数据、水位数据、浮标数据等开展数据共享交换。现实情况是部门之间的数据共享和交换仍存在平台支撑不足问题。例如,数据输出手段单一,需要通过文件级形式提供,授权机制和安全管理机制需进一步完善。分发控制机制比较薄弱,缺少输出数据的脱敏脱密自动化处理机制,难以统计监控数据输出的分发渠道和分发情况。数据的快捷导入能力不足,难以建设全面、客观、多维的数据资源。
在支撑环境上,福建省政务云为各部门提供了数据交换与共享的网络环境与基础设施云平台,省级政府部门均已接入,可实现异构数据平台之间的间接互联、数据双向传输,其技术可行性已经完全具备。通过探索面向业务应用构建完整贯通的数据链[1],实现数据跨层级、跨地域、跨部门有序共享,提升公共数据开放水平。
福建省气象部门已建立以气象大数据云平台“天擎”为核心的基础信息化平台,支持海量、标准化的气象数据存储,满足不同业务应用对气象数据获取需求[2]。本文基于福建省政务云环境,打通部门专网通信链路、建立数据传输通道,设计一种基于微服务架构的气象数据共享交换系统,实现气象数据与其他部门行业数据的双向传输、共享。最终建立起气象部门与其他业务相关职能部门之间的数据共享交换机制,为相关部门提供定制化的气象数据,提升各部门之间的数据协同与应急联动能力。
二、系统的数据流程框架设计
为建设一个“一对多输出、多对一输入的”的数据共享与交换机制,给其他部门提供“服务+自助”的数据使用模式,从系统架构、技术和工具流程支撑角度,整个链条自上而下、各个维度设计数据共享安全机制,保护数据资源的安全性。
气象数据共享交换系统是在气象专网环境下,通过标准化接口实现从气象大数据云平台进行数据采集、加工处理、存储与共享至政务云数据库形成统一的数据处理流程和集约化的共享支撑环境,并向其他部门提供定制化的气象数据与产品。因此,首先从气象大数据云平台的标准化接口获取各政务部门所需气象数据的采集和汇聚。共享系统为各部门提供共享接入注册管理、数据目录管理、数据接口配置、数据存储查询与到报监控、系统运行监控功能,为数据共享系统的部门接入、数据扩展、稳定运行提供支持。同时,建立并行的反向数据传输路径,各政务部门输出本部门数据,传输至政务云,支持福建省气象局获取收集至气象专网进行存储到气象大数据云平台,供气象业务应用系统调用。
三、系统的设计与实现
建立福建省气象数据共享系统,实现部门间数据的实时收集汇聚并以标准化接口的方式提供数据服务,为全面、客观、多维数据的融合分析业务应用提供有力的数据支撑。在平台技术选型方面,系统采用B/S模式和面向服务构件技术SOA及MVC前台设计模式,满足平台资源按需使用、可扩展性要求。气象数据共享系统基于Spring Cloud的微服务架构,通过“构件化模块,拼装式系统”方式,结合Docker容器技术实现根据服务数据类型与服务对象开发集成面向不同部门的数据应用需求,采用微服务分布式架构和容器化部署技术,对各应用需求进行微服务化开发和实施管理[3]。
(一)系统架构设计
基于微服务的生态系统,按照层次化的设计思想,平台的总体架构分为五层。
1.基础设施层
基础设施层用于支撑应用系统的软硬件环境,包括省级政务云环境提供的虚拟资源池和福建省气象专网的气象大数据云平台支撑资源。
2.数据资源层
数据资源层是整个系统平台的数据资源中心,包括各类信息数据库、基础信息数据库及服务信息数据库。
3.应用支撑层
应用支撑层是整个系统平台的运行能力保障,包括消息服务总线、任务调度中心、日志处理服务及服务负载均衡。
4.应用层
本系统建设在数据层和支撑层的基础上,搭建微服务化的应用系统功能模块。
5.用户层
为业务管理用户及系统运维用户提供Web应用服务。部署在政务云上,为各部门提供数据清单、共享数据权限申请等人机交互操作界面、开展业务管理。
(二)系统功能设计
本系统是面向全省各政务部门提供基础性、公共性、通用性气象信息。根据应用需求,系统设计了数据采集、数据资源汇聚、数据加工与处理、数据共享与服务、全流程业务监视等功能模块。最终建立贯穿数据接入、存储、处理、服务等环节的数据全生命周期管理长效机制,实现“产品可取、产品可控、产品可用、产品可靠”,打破气象与各机构部门壁垒、推进产品服务融合共享。
1.数据采集
数据采集管理是将数据从气象内网采集到政务云平台,并在政务云平台中缓存。数据采集提供了API接口、配置化采集方式。
(1)API接口方式采集
根据气象数据共享目录规划,系统采用定制化的接口从“天擎”系统中采集数据。系统实现配置化的数据接口,可以通过采集配置实现从“天擎”系统中采集不同的数据。
(2)配置化方式采集
配置化方式采集根据数据产品的采集配置文件执行数据采集。配置化方式采集的配置内容包括基本信息、采集对象配置、采集策略配置及采集到报配置。基本信息包括产品源头类型、产品名称、产品类型及数据产品表名称。采集配置文件包括服务IP、文件名规则、采集路径、产品监测时间。采集策略配置包括分配采集器、采集频率、采集模式、失败重试次数、任务优先级。到报配置包括每日应到文件数,更新频率规律、更新频率、允许等待时间。
2.数据资源弹性汇聚
数据资源是共享系统最重要的资源,且气象资源汇聚涉及多个部门、多个行业,基于“一次获取、全网共享”的思路,进行数据资源汇聚体系的设计,气象资源弹性汇聚负责数据收集与统一存储,作为所有气象数据的来源,为平台上层应用提供数据服务,是数据管理与处理的重要基础。数据的实时采集均来自气象大数据云平台,包括:自动站、观测站、水位站、交通站等的气象资料,以及气象观测系统生成的各类气象数据(自动站、雷达数据、卫星数据、历史数据等)、气象业务系统生产的各种产品资料。通过建立基于气象数据对外部门的共享数据总清单,建立共享数据目录,并同步建立水利、生态环境、海洋与渔业等部门数据共享授权状态与共享部门数据申请注册状态。
数据汇聚是对数据采集后的高效组织与存储管理,汇聚的效率直接关系着系统整体性能。传统数据汇聚方式,往往将数据汇聚业务都运行在同一个进程中,导致模块内部之间存在强耦合,限制了数据汇聚的扩展性和处理能力,进而导致在处理大数据量的接入情况时,系统整体性能急剧下降。同时,当需要新增数据汇聚种类时,则要对原有功能代码进行改动才可以接入新类型的数据,势必会影响原有数据接入的稳定性和系统运行效率。因此,基于微服务软件架构来实现数据汇聚系统可以很好地解决该问题。
基于微服务的架构相比传统的单体架构,可以有效解决接入数据、数据服务动态增长带来的冲击问题。微服务架构作为一种全新的架构模式,通过微服务将一个功能复杂的单体应用分解成一组小的服务,不同服务之间可以相互协调、互相配合,共同完成一个复杂业务逻辑功能[4-5]。由于部门间数据汇聚的业务非常清晰且互不关联,所以可对每个部门的共享交换数据服务划分成一个个微服务。因此,采用微服务架构可以很好地解决政务部门间数据共享交换过程中的实际问题:
第一,不同部门对气象数据获取的业务需求不一样,可定制轻量化的微服务实例与实际业务需求相匹配。
第二,每个微服务应用之间都是独立的,因此,可以保证在系统接入新的部门需求时,不影响原有的微服务运行和数据接入。
第三,在新增业务需求时,可快速部署微服务实例,不需要太多重复开发的工作量。
第四,通过对外提供统一的API接口,可解决接入发送方数据格式差异性的问题。
3.数据加工与处理
数据加工与处理功能是基于标准规范、自动运行的数据流水线加工处理,实现对共享数据按照需求进行相应的质量控制和产品生成。共享数据加工与处理逻辑如图1所示。通过资料加工处理,实现对实时气象资料和历史气象资料的加工处理。实时资料加工处理系统基于一体化数据加工处理流水线的技术架构。软件包括解码处理、质量控制和深加工等模块,并且能够实现对实时数据流水线加工处理任务的任务管理、任务调度和任务监控等功能。数据加工与处理主要完成对气象数据的分布式计算处理或批量文件处理,对采集以后的数据按照结构化与非结构化的类别通过由算法模板指定的算法进行分布式计算处理,系统同样支持第三方的算法按照算法插件规则加入算法模型库。实现部门气象共享数据的加工处理、质量检查、综合质控和质量评估等功能,同时对全过程信息进行集约管理和共享。
4.气象数据共享与服务
按照“集成统一、共建共享”的原则,严格遵循 SOA 架构规范,采用高内聚、低耦合的设计理念,实现数据共享与服务功能。气象数据共享与服务流程如图2所示。提供的所有数据和产品均按照气象大数据云平台MUSIC接口规范创建新的服务接口获取[6]。同时,为共享数据需求部门提供气象数据目录配置管理人机交互界面,进行共享数据目录增、删、改、查操作。同时,为数据需求部门提供气象数据共享目录查询权限,可了解气象数据的共享服务范围,支持通过Restful API接口等方式共享数据,可通过get/post等标准格式发送数据请求,获得JSON返回数据结果。最终为全省各级气象业务和管理用户提供信息共享和一站式在线服务,提高部门间数据共享的集约化和规范化。
5.全流程业务监视
依据统一监控管理的规范化要求,对数据采集、产品上报及产品服务环节的任务进行监控,具体包括总体业务监控、数据采集监控、产品上报监控和产品服务监控,通过图表结合形式实现业务情况的直观展示,方便管理员了解本系统各业务流程的执行情况。实现气象数据共享的全流程业务监视,即气象数据的采集、加工处理和共享情况的实时监控[7]。可从气象要素维度、数据维度提取状态信息,包括:数据采集情况、数据质量情况(准确性、完整性、规范性、一致性、关联性)、数据加工处理情况(开始时间、结束时间、总用时、超时、处理质量)、服务发布情况。
四、结语
近年来,各地区、各部门积极响应国务院加快推进信息系统整合共享的号召,促进跨地区、跨部门、跨层级数据互联互享。面向各部门对气象数据愈加迫切的实际需求,以破除不同数据源间的数据融合障碍和技术藩篱为目标,在气象大数据云平台统一的数据规范基础上,建设气象数据共享系统实现气象信息资源的互联互通和高效共享。
系统采用微服务架构,将各部门不同的共享数据需求以每个微服务功能方式封装到可虚拟化快速部署的Docker容器中,构建高伸缩性的数据服务,便捷地进行气象服务的持续开发和集成,满足不断拓展、多种多样的气象数据共享需求。目前,该系统已在福建省气象部门应用环境中部署运行,通过业务应用证明了该系统在面对多部门的数据共享需求时大大降低了开发成本,实现高可用性,具有可持续发展的潜力。
参考文献
[1]刘建宏,陈增境,高国弘,等.云端省级公共气象服务数据共享平台设计与实现[J].长江信息通信,2021,34(05):54-58.
[2]赵芳,熊安元,张小缨,等.全国综合气象信息共享平台架构设计技术特征[J].应用气象学报,2017,28(06):750-758.
[3]崔宏,吴恩平,熊安元,等.基于分布式和微服务架构的华信气象服务云平台[J].气象科技进展,2018,8(06):125-132.
[4]徐浩天,梁俸齐,罗丽.微服务架构与容器技术分析及应用[J].信息系统工程,2019(04):97-98.
[5]张进猛,苏健,柴立岩.基于微服务架构的信息系统开发技术研究[J].电脑知识与技术,2020,16(10):273-274.
[6]张正阳,朱倩雨. 基于CIMISS环境的气象数据统一访问接口简介[J].沙漠与绿洲气象,2015,9(B08):134-136.
[7]尹常红,胡雅超,袁文波,等.一种气象数据共享接口系统的设计与实现[J].电脑知识与技术,2021,17(05):93-95+109.
作者单位:福建省气象信息中心
责任编辑:王颖振、郑凯津