第1期
2021年1
月
Vol. 16 No. 1
Jan. 2021
Journal of C A E I T doi : 10.3969/j. issn. 1673-5692.2021.01.002
基于微服务架构的时空数据处理服务封装技术
仇林遥1,王晓峰2,郑作亚1,柳圼1,王琼洁3 *
(1.
中国电子科学研究院,北京
100041 ;2.中国人民解放军驻天津地区军事代表室,天
津
30024〇;
3.
中国电子信息产业发展研究院,北京
100846)
摘要:对地观测技术的快速发展使得卫星遥感数据的行业应用越来越普遍,随着国家遥感时空数 据共享开放的政策落地与实施,利用对地观测技术对国土、农业、交通、减灾、海洋等行业的技术应 用将进一步深入和普及。但是遥感数据在行业应用仍存在专业技术门槛高、数据处理流程复杂、业 务灵活定制难度大等问题。文中基于微服务架构,利用容器技术将算法资源封装为可灵活管理调 度的微服务节点,屏蔽不同算法模型在编译语言、运行环境和接口形式方面的差异问题,通过对服 务节点输入输出的标准化设计,将遥感数据的处理、分发、提取、专题产品制作等微服务进行业务进 行流编排,实现了整个业务
算法的无缝封装和串联,通过服务的资源调度与管理实现对遥感数据应 用服务定制化,为遥感数据资源在行业的快速开发与应用深化提供技术支撑。关键词:微服务架构;遥感数据处理;定制化服务
中图分类号:T N 79
文献标志码:A
文章编号:1673-5692(2021)014)054)9
A spatio-temporal data processing service packaging technology
based on microservice architecture
Q I U Lin-yao1 , W A N G Xiao-feng', Z H E N G Z u o -y a 1 , L I U G a n g 1 , W A N G Qiong-jie3
Abstract : T h e rapid d e v e l o p m e n t of Earth observation technology m a k e s the application of satellite re-
m o t e sensing data in the industry m o r e a n d m o r e c o m m o n 。W i t h the implementation of C h i n a ’s o p e n pol- icy o n remote sensing data sharing, the use of Earth observation technolog
y for l a n d , agriculture, transportation, disaster reduction, marine monitoring a n d other industries will be further popularized. H o w e v er, there are so m a n y difficulties with the application of remote sensing data in the industry, such as high professional a n d technical barriers, c o m p l e x data processing processes, difficult flexible customization. B a s e d o n the micro-server architecture, this paper uses container technology to encapsulate the algorithm resources as service nodes, to m a s k the differences in the compilation language, operating environment a n d interface of the algorithm. B y standardizing the input a n d output of the service nodes, the technology in this p ap e r realizes the process arrangement of processing, distribution, extraction a n d production for remote sensing data. I t realizes the seamless encapsulation of business algorithms, customizes remote sensing data application services through the operation of service m ou nting, unloading a n d replacing. So this p aper provides technical support for the application of remote sensing data resources in industry.
(1. C h i n a A c a d e m y of Electronics a n d Information Technology, Beijing 100041 , C h i n a ;
2. T h e P L A Military Representative Office in Tianjin, Tianjin 300240, C h i n a ;
3. Chi n a Center for Information Industry D e v e l o p m e n t ,Beijing 100846, China)
收稿日期= 2020-12-29 修订日期:202丨4)1 -14
基金项目:国家重点研发计划(2017Y F C 1404904
)
6f纗f S與f嗜叫玄(f愛夸权2021年第1期Key words:micro-server architecture;rem ote sensing data processing;customized services
〇引言
随着卫星应用技术发展的不断深化和卫星通 信、导航、遥感一体化的融合发展,卫星产业规模不 断扩大,发展前景十分广阔w。我国十分重视卫 星应用相关产业的发展,积极引导卫星应用产业发展,发布了《促进卫星应用产业发展指导意见》,以及《国家民用空间中长期发展基础设施规 划(2014 - 2025年)》、《国务院办公厅关于促进地 理信息产业发展的意见(2 〇14年)等领域规划和指 导意见。从产业发展的角度看,卫星应用的各个产 业是相互联系、相互依存的,特别是以通信、导航、遥 感为代表的产业链,显示出交叉渗透、综合发展的趋 势。为了促进地理信息产业及相关信息服务业的快 速发展,必须实现通信、导航、遥感等领域的深度 融合[4]。
目前,空间信息应用技术分散在卫星应用产业 链的各个领域,应用范围很广泛。但是,在相互依赖 和相互连接的过程中,通常存在协调能力弱、自定义 开发困难、可伸缩性差等问题,形成数据和技术资源
孤岛5:。对于用户来说,将原始数据和处理软件下 载到本地进行处理也需要大量的时间和资源成本。微服务架构与云计算技术的集成应用为空间信息应 用提供了新的解决方案,实现了云集成、数据共享和 服务开放6。本文以遥感数据的综合化管理、差异 化处理、定制化行业应用为需求,研究基于微服务架 构的遥感数据应用技术,通过微服务容器技术将不 同编译语言、运行环境、读写接口的处理算法进行一 致性封装,形成标准微服务,并提出业务流式的服务 串联与编排方法,满足不同遥感产品的业务流快速 定制需求,为遥感数据的差异化处理、定制化服务提 供技术支撑。
1国内外发展现状
国内外在空间信息的共享与服务方面已经开展 了广泛深人的研究,并取得了一些宝贵的经验和成 果[7]。本文从国内外遥感数据处理分析共享平台 进行综述分析。
11国外研究进展
Google Earth Engine K是 Google 推出的可对全球尺度的环境科学资料进行共享的时空数据云平 台,尤其是包含全球主要开源卫星数据,如Landsat 系列产品、M o d i s系列产品、S e n t m e l系列产品等,支持数据在线计算和分析处理。该平台提供了 PB级 的数据集以及高性能并行计算服务,云平台提供在 线JavaScript A P I和基于W e b的交互式开发环境,支持用户在线数据处理分析和结果快速可视化。此 夕卜,Google Eartli En g i n e还提供了离线的 Python A P I,通过平台A P I与在线公共类库,用户能够
编程 实现处理算法,构建基于G o o g l e云强大计算能力的 空间信息处理服务。美国国家宇航局地球科学数据 和信息服务中心G E S-D I S C开发的G I O V A N N I (G o d d a r d Interactive Online Visualization A N d aNaly- sis Infrastructure)平台l9_m],是—-个基于 W e b的交 互式数据可视化在线分析平台,该平台提供多种类 型的传感器参数可视化与计算结果统计分析,支持 多种格式的图像和数据下载以及开放标准的数据协 议格式,可为用户比较、分析与可视化多源传感器数 据。通过开放的数据协议,G I O V A N N I支持包括 O P e N D A P协议、Google Earth数据格式等在内的多 种数据交换。G I O V A N N I以工作流的方式实现服务 链执行,如数据获取、处理、渲染工作流,根据数据结 构与处理规则的不同,该平台提供了多种数据处理 服务的动态调用。地理空间大数据云服务平台(Geospatial Big Data X,GBDX)"是美国数字地球公司2016年推出的,该平台允许用户在线访问该公 司19年来积累的海量地理空间数据,通过构建、访 问和运行工作流来进行信息提取和地理空间分析,实现目标确认、地物分类等应用。
1.2国内研究进展
中国自然资源部国土卫星遥感应用中心推出的 资源三号卫星影像云服务平台12主要提供了基于 资源三号卫星影像的产品在线定制服务,利用资源 三号卫星影像数据以及其他常用遥感数据源,同时 接收授权用户上传的本地空间数据形成融合数据,实现了用户对影像产品的定制及可视化。影像云服 务平台提供了一系列遥感图像常用处理服务,如遥 感影像覆盖率统计、在线正射融合处理等,支持进行 Web服
务化调用。国土卫星遥感应用中心和北京 国测星绘合作研制的自然资源卫星影像云服务平 台13:,是可提供ZY3资源三号、GF1高分一号、GF 2
2021年第1期仇林遥等:基于微服务架构的时空数据处理服务封装技术7
高分二号、GF4高分四号等多颗卫星的遥感影像数 据分发共享服务的云平台。自然资源卫星影像云服 务平台主要提供了影像查询、信息监测、覆盖率统 计、影像推送统计、轨道预测等功能。用户选择传感 器、采集时间等属性信息或行政区划、绘制范围、经 讳度、导入shape等空间信息,可对影像数据进行数 据查询和结果导出,并提供数据订购和下载功能。中科院计算机网络信息中心推出的地理空间数据云平 台[14]引进了国际上不同领域的数据资源,并实现了数 据的集中式公开服务、在线计算以及由数据专员支持 的委托查询、数据传递通道等特服务,为广大科技工 作者提供科学数据综合服务和推进增值应用服务。
综合国内外一些现有的空间信息应用云平台成 果来看,数据资源的孤岛情况得到一定程度解决,不 论是 Google Earth Engine、GIOVANNI 等平台提供的 PB级数据在线获取能力,还是自然资源卫星影像云 服务平台、地理空间数据云等平台提供的海量数据 检索与分发共享服务、数据订购与下载功能,都令空 间信息数据的获取难度和门槛显著降低。但技术资 源共享利用的“孤岛”现象仍然较为突出。例如自 然资源卫星影像云服务平台、地理空间数据云等平 台,主要提供的是数据分发、共享与下载服务,对于 空
间信息处理算法方面的能力支持度低;而gio-v a n n i、资源三号卫星影像云服务平台等虽然在平 台内提供了基本的空间信息处理算法,但这些算法 都是平台内置,不支持用户自定义算法模型的集成、封装与加载运行;而类似于Google Earth Engine的平台,既提供了云平台API调用空间信息处理的基 本算法,也提供了在线IDE与离线Python API来支 持用户自定义算法模型,但这样的形式对于不同用 户复用相同算法模型以及服务链编排执行仍有较大 难度,需要用户反复编程、大量编码,对于不具备空 间信息专业知识的用户也不够友好,具有比较高的 学习成本和专业要求。此外,Google Earth Engine等 平台在行业深入应用过程中仍具有一定的局限性,比如其二次开发API完全来自于平台本身工具,不 支持自有算法的扩展;并且对遥感影像的预处理功 能支持不够完善,尤其是由于公有云的限制对大数 据量的文件处理能力十分有限,面向行业需求对于 海量遥感影像从数据接收到专题产品生产的全流程 支持能力尚未形成[15]。基于上述问题,提出基于微 服务的时空数据处理服务平台技术,通过微服务容 器对时空数据的计算资源进行模块化封装,对输入 输出接口进行一个标准化设计,支持不同算法的流程编排与串联,形成定制化的数据处理服务定制化
服务流程,从而支持计算资源的共享、复用、重构和
组合,进而支持时空数据在行业的差异化应用。
2基于微服务的时空数据处理服务平 台设计
2.1微服务技术
随着信息技术的不断发展,应用系统用户数量
的不断增加,行业应用逻辑日益复杂,应用系统的发
展和维护迎来巨大挑战。传统的面向服务的单体架
构难以满足现代大型应用软件的灵活性、可定制化、
随业务可变的需求,微服务架构在此背景下应运出
现。此体系结构模型提倡将应用程序分解为一系列
服务,每个服务都是小而自主的个体,是一个独立的
实体。它侧重于单个功能,可以独立部署,以实现对
大型应用程序系统的更好的可扩展性和强大的容灾
能力。
M artin Fowler在2014年正式提出了微服务架
构的概念[16]。微服务架构以一系列微小而自治的
服务来构建整套应用系统。这些微服务按照业务功
能垂直划分,每个服务都专注于单一功能并在各自
的进程中运行,可以通过自动化部署机制独立部署,
服务之间则通过轻量级通信协议来进行通信[17481。
图1展示了单体架构与微服务架构的优劣对比。与
传统的单体式架构相比,微服务架构的主要优势包
括五点[191。
1) 服务解耦:大型单体应用划分为多个微服务,微服务之间仅通过暴露一套REST A P I来对外
提供服务,大幅降低了微服务之间的耦合复杂度。
2) 技术异构:每个微服务可以使用更加符合业 务需求的技术进行实现,不会受到编程语言与技术
栈一致性要求的限制。
3) 独立部署:微服务可以通过完全自动化的部 署机制实现独立部署、持续部署,开发维护团队只需
要专注于对应的微服务相关工作,减少沟通成本与
全量部署。
4)可扩展性:微服务架构中,系统中各个微服 务开放的大量接口,基本可以满足各种各样的扩展
需求,即使需要增加接口,细粒度的微服务也能更便
捷地升级和交付,比单体架构具有更优秀的扩展
能力。
5) 弹性伸缩:微服务体量较小、功能单一,在需
82021年第1期
用户
壬
i i
专业人员
开发人员
业务人员
终端PC 端
移动端
接P
RESTfiilAPI 接口统一网关
数据定制生产调用服务、流程
执行任务
服务运行管理
流程运行管理
任务调度执行
资源分配管理
资源监控预繁
服务封装与:次幵发框架
要时可通过增减服务实例数来动态扩缩容,实现资 源合理充分利用。
4------/
-V
z ______/
-V
:
,♦
/
>
-V
单体架构
所仃功能在中.个进程中实现 以应用为单位进行伸缩
H
00
00
H 0
H 0
00:00
微服务架构
毎个功能都实现为独的服务
以服务为中.位进行伸缩
图1单体架构与微服务架构对比
2.2服务封装技术架构与流程设计
空间信息微服务集成平台的总体架构设计如图
2所示。
基础设施主要包括弹性伸缩、负载均衡、消息中 间件和存储等,为空间信息微服务集成平台提供了 计算、资源、通信、存储等通用基础服务。数据层主 要包括系统数据库与用户数据库,系统数据库中保 存了支撑平台运行的必要数据,如服务元信息、流程 模型、生产任务等信息,而用户数据库中则保存了用 户用于定制生产的原始数据,如遥感图像等,以及生 产任务最终生成的成果数据。应用层由服务封
装与 二次开发框架、服务运行管理、流程运行管理、任务 调度执行、数据定制生产、资源分配管理、资源监控 预警等构成,为空间信息应用一体化云端集成提供 微服务封装与微服务发布、服务调用、流程编排、流
基础设
V
J
r
^
A
(〇°〇)
弹性伸缩
负载均衡
消息中间件
存储
展示层
数
据层
微服务网关设计图2
平台总体架构图
2021年第1期
仇林遥等:基于微服务架构的时空数据处理服务封装技术
9
程执行、定制生产、资源监控等功能支持。展示层利
用统一的A PI 网关与平台通信,通过P C 端与移动 端的Web 网页,面向具有个性化定制需求的专业人 员、封装发布算法服务的开发人员和流程化空间信 息处理过程的业务人员。图3展示了微服务平台的
技术流程,在空间信息应用服务的一体化云端集成 过程中,通过服务集成的方式来实现微服务的云端 调用、云端调度和云端组合实现资源的在线管理与 调度。利用分布式消息中间件实现服务间的信息 通信。
空间信息微服务集成平台
流程编排
流程编排设计服务接口适配
异步编排执行
服务集成服务封装规范与SDK 服务发现注册
服务代理
负载均衡
弹性伸缩
任务调度
任务调度管理
执打过程监控
图3平台技术路线图
2.3基于分布式事件的服务集成技术
服务集成过程中,针对空间信息应用互操作问 题,基于微服务和空间信息服务的相关规范,提供服
务封装规则。同时,通过提供服务封装SDK 简化服 务封装工作。利用微服务自助发现引擎实现服务自 动注册与更新,解决算法资源编译语言多、更新速度 快问题。针对算法运算资源耗费大的问题,设计服 务网关支持服务以多实例集方式运行,实现负载 均衡与动态伸缩。针对算法运算时间长的问题,平 台采用异步任务机制,通过消息中间件实时更新任 务执行状态,最后利用消息中间件实现事件、消息的 发布与订阅。
空间信息服务封装框架中主要提供了 Datajo - blnfo JobResult 三个关键类来实现任务相关数据封 装。Data 类主要用来描述复杂任务数据,如文件类 型、文件夹类型、URL 类型、数据库类型等,通过Ac - cessType 类指定。Joblnfo 类主要用来描述任务执行 的相关信息,如任务开始结束时间、执行状态、执行 日志等。JobResuh 类为抽象类,主要用来作为封装 服务输出数据的父类,便于统一服务数据管理。图 4展示了任务数据封装的主要类结构。
2.4流程和事件驱动的流程构造与执行调
度技术
在流程构造与执行调度中,针对流程编排需要
Doblnfo
• % AccessType
FILE URL FOLDER DATABASE
• % Data
k Data 〇
m h Data(String, String. AccessType) m
Data(String, String, String)m • J 〇blnfo 〇
m ■ ioblnfo(String, State. String, String) m ■ Joblnfo(String, State. String. String. String)
m ■ Joblnfo(String. State. String) n » ■ Joblnfo(String. State)m ■ toString 〇String
startTime state
> executionlnfos String String
List < E xecutionlnfo >
■c r ^(e >
JobResult
i toStringO
Stn productld address accessType
String
String String AccessType
■ JobResult 〇■ JobResuh(ioblnfo)■ JobResult(String. State)
■ JobResult(String. State. String, String)> toStringO
图4任务数据封装主要类结构
大量编码问题,研究扩展已有流程引擎,通过可视化 服务链编排与自动化服务接口适配的方式简化流程 编排;针对长时间算法编排问题,提供异步服务编排 机制,从而避免长时间处理算法运行对并行流程的 被动等待影响。流程编排时,业务人员可以获取服 务接口元信息,通过设计服务输入、流程输人或其他 前序服务输出的绑定映射关系,实现编排流程在执 行过程对上下游服务节点接口的自动化适配。在流 程执行过程中,流程输人数据与前序服务输出数据 会保持在流程变量中,在执行到某个服务时,通过数 据绑定映射关系获取流程中的数据,自动生成后序
Kafka 消息中间件
Spring Cloud 框架
Acti
viti 流程
引擎
X X I o b
健酿鄉
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论