基于微服务理念的三调数据共享管理平台研究与实现

2022-06-24 10:01赵俊三江新飞
计算机应用与软件 2022年4期
关键词:数据管理模块用户

陈 青 赵俊三,,3* 王 涛 江新飞 秦 睿

1(昆明理工大学国土资源工程学院 云南 昆明 650093) 2(云南云金地科技有限公司 云南 昆明 650102) 3(智慧矿山地理空间信息集成创新重点实验室 云南 昆明 650093)

0 引 言

实现第三次全国国土调查大量数据成果的信息化管理与共享是满足生态文明建设、自然资源管理体制改革和国土空间规划体系建设[1]等的重要手段。因此,优化海量数据处理效率,建成一个操作方便、功能强大、伸缩性强的数据共享管理平台,提供第三次全国国土调查成果快速共享服务,是圆满完成三调工作的迫切需要。然而,大数据时代下,传统单体架构的管理平台在数据管理、分析和共享方面还有着一定的发展空间。戎恺等[2]设计实现了基于SOA技术的信息数据管理和共享平台;谢小刚[3]在设计研究了SAR数据管理与共享交互平台后提出在数据查询和浏览响应时间上的不足;朱丽娟[4]也指出了在功能设计、时间效率和网络安全性能方面的改进空间;刘兹恒等[5]对我国高校科研数据管理与共享平台调研发现只有少数平台可以供用户直接通过平台创建、上传和管理数据集,为用户设置角色和访问控制权限等,反映了当前数据共享管理平台的服务能力和共享水平还比较低的现实情况[6]。

本文提出基于微服务的软件设计理念、数据分布式存储与管理模式、异步多任务分析调度机制以及基于Token认证的数据共享技术,可有效解决共享管理平台中服务部署困难、可扩展性差、海量数据管理复杂、多任务分析速度慢、不同层级间数据共享和数据安全等问题。

1 系统总体架构

本文研究参考“自顶向下”的设计思路以及大数据平台架构设计方法。以实现系统整体效果优为目的,分析平台实现的需求,从软件系统开发的角度考虑系统的每个元素和子系统的功能、行为及成本,然后根据各元素之间的协调关系,将其连接成接口轻便实用、关系稳定的子系统,得到总体结构。接着进行逻辑设计,把结构转化为规则的逻辑结构或采用已经经过验证的逻辑单元或模块。最后,选择合适的数据库管理、缓存、服务部署等技术实完成系统总体架构的搭建。系统在国家相关的政策法律法规下,按照行业规范和标准,逻辑设计分成了四层,其功能和整体架构如图1所示。

图1 整体架构图

通过数据中心、专题数据综合应用和系统管理三大子系统构建系统整体架构。在共享服务管理模块管理着系统中所有的数据共享服务和接口,以微服务的形式将所有的地图发布、访问接口、附件目录、数据浏览、分析等服务集成为一个模块子系统,在子系统中统一管理,保证数据访问的一致性。各微服务以及数据集部署在不同的服务器上,服务间采用轻量级通信机制,搭建了系统的整体功能模块。

2 基于微服务理念的数据共享管理平台实现

微服务架构不仅是一个系统,而且还是一个概念,作为当前系统开发领域的热点技术之一,该架构将传统的重量级且紧密耦合的应用程序系统分解为轻量级和松散耦合的微型应用程序,每个微型服务都运行在自己的进程中并相互协同,以减少相互依存和移植,服务间采用HTTP、API这样轻量级的通信机制使标准化对接变得容易,能够有效解决单体应用部署、配置、维护的复杂性问题。所有的微服务共同构建起整个系统,易于开发和维护、业务模块技术不受限制、稳定性高、可伸缩性强,充分体现了高内聚、低耦合的软件设计理念[7]。这些微服务围绕业务功能进行构建,可以使用不同的语言来编写,并且可以使用不同的数据存储技术。

Spring Cloud是当前微服务主流的开发框架,具备开箱即用的特性,可极大提高开发效率,为微服务架构提供了整套的解决方案[7]。微服务不强行依赖于运行平台,可根据需求通过Docker、Tomcat等容器部署在本地服务器、阿里云及百度云等服务平台。

与传统的单体架构相比,本文提出的基于微服务的前后端分离的架构设计开发方式在用户访问量密集的情况下,或者高并发的普查大数据系统中,可以发挥出巨大的优势。并且由于系统拆分、分库分表、读写分离等特点,当某个微服务需要修改调试时,只需重新部署该微服务或针对性地对该微服务进行增加内存、升级CPU或增加节点等操作即可方便地解决问题。系统搭建的架构如图2所示。

图2 基于微服务理念的系统架构图

前端采用的是Nginx框架来实现控制层和视图层,采用jQuery对应用层进行服务请求。使用者通过特定的URL访问平台,而平台利用SSO单点登录来对用户的权限进行控制。用户只需要在一个页面登录就能够获取到系统内各个服务模块的授权使用,后续扩展应用模块也可以快速地接入到现有的统一服务中。平台不同微服务之间使用轻量级的通信机制RESTful API以实现交互,它的数据输出格式支持包括JSON、XML等。平台服务层使用Nacos组件实现微服务的注册和发现、身份认证和动态路由。配置中心采用Spring Cloud Config实现统一配置管理,并且基于微服务的特性,利用Tomcat服务集群作为容器。在数据资源层使用MyBatis框架,提出分布式方式分布在不同的服务器中对数据进行分析管理,当前登录的用户信息储存在Redis数据库,其他入库及成果附件、更新数据存储在PostgreSQL数据库中,空间数据则可以通过分布式存储引擎存储在不同的数据库中。系统整体集群逻辑如图3所示。

图3 系统分布式集群图

3 数据共享模式开发与实现

在数据的采集调查以及今后的统一时点更新工作开展结束后,形成的数据、图件、文字和数据库成果从大类上划分可以分为三类:空间数据、举证成果和成果文档资料。这些数据的管理与共享成了亟待解决的问题,从稳定性、可扩展性、开源等几个方面考虑,平台选用GeoJSON、PostgreSQL、GeoSever、OpenLayers、SSO单点登录等数据标准和关键技术,通过数据管理服务、数据分析服务和数据授权服务完成数据共享模式的实现。

3.1 数据管理服务

数据管理模块主要针对空间数据进行管理。空间数据指影像和矢量地图,包含了人们能够见到的所有地物的抽象要素,将通过质量检查后的三调矢量数据放置到平台空间数据库进行管理,包括数据入库、数据发布、数据更新等。

(1) 数据入库。平台通过提供数据入库的接口,以统一的GeoJSON格式的数据标准入库,并采用PostgreSQL+PostGIS技术存储和管理数据。

(2) 数据发布。本平台使用GeoSever管理和发布数据,OpenLayers技术展示数据。通过在B/S端操作,对数据做一站式发布和切片管理,将这些数据发布为服务,提供其他的地方使用,以实现地图数据的发布和共享。并且系统可以针对不同用户权限,发布不同的数据,提供不同的接口。

(3) 数据更新。数据的更新机制分为增量数据更新和整库数据更新。可以直接在B/S端进行操作,实现数据的版本更新,更新保留以前数据的版本记录。同时,数据管理模块可以对所有的使用数据进行监控,如数据的总量是多少、完成的总量是多少、附加总量、各服务的访问总量等,这些数据会在数据监控模块中以图表的形式呈现,以便于更直观地了解数据的状态。

3.2 数据分析服务

本文提出了异步多任务分析模式提高分析效率,待分析完成后将数据结果返回给用户。具体流程如图4所示。

图4 后台分析调度服务流程

在分析调度过程中,首先确定了统一的分析结果数据结构及传递的参数格式和结果存储方式,包括JSON、XML等。通过已确定的分析结果数据结构进行存储数据,然后按照结果数据结构,编写调用数据的服务入口规范文档。这样,在前端做数据分析的时候,数据通过调度服务入口传入参数,通过后台分析调度服务(Background Analysis Scheduling Service,BASS)程序传入系统空间库,在大量数据区域中抓取所需数据,进行如:数据入库、占地分析、流量分析、统计分析、数据更新等操作,得到分片数据。最后调用服务接口以获得按确定格式输出的分析结果、进度数据或错误日志数据,将数据进行解析并通过HTML超文本规范进行前端数据展示,前端可同时展示多个分析窗口。至此,分析调度服务完成。

3.3 数据授权服务

数据权限管理是通过SSO单点登录技术,在平台使用者申请平台使用权限时,管理员针对权限不同的使用者可以访问、查看哪些数据做出了相关的配置。同时,服务器自动赋予使用者相应的opentoken,在每个共享服务请求时,对该使用者的opentoken进行校验,校验时间有效性、权限有效性和请求服务的正确性等以实现权限的检查和过滤。

对于数据和模块的授权服务是不同的,虽然都是通过opentoken进行拦截,但是对于模块的授权管理是在客户端请求后,SSO服务在其访问应用层之前进行拦截,检查其是否有访问模块功能的权限。在平台使用者对各个模块进行操作分析后,想要返回所需数据,也必须通过SSO服务检查过滤其权限才能得到其权限内的数据。服务授权和调用流程如图5、图6所示。

图5 微服务授权流程

图6 微服务调用流程

4 应用分析

4.1 系统用户的使用

系统内部使用角色权限管理进行数据接口控制。用户在平台界面注册账户,联系管理员说明需要的模块功能或者数据,管理员则在系统管理子系统的权限管理中将对应的角色分配给该用户,即服务器生成相应权限的opentoken参数赋予该用户,同时还可以设置该权限的有效日期。例如系统用户想要对地图数据进行分析,则联系管理员分配其专题数据综合应用管理员的角色,该系统用户就能对专题数据综合应用子系统进行操作,使用该子系统中的空间数据分析、附件管理和专题图浏览查询等功能。用户浏览举证成果时,举证位置、方位、图像及其他信息的界面如图7所示。

图7 举证“一张图”界面

4.2 共享用户的使用

系统的外部使用微服务授权,管理员设置opentoken的数据访问过滤条件。在共享用户申请使用某些微服务接口时,管理员在数据中心子系统的共享服务管理处新增用户所需接口的URL地址和参数等信息,可共享的接口有:组件服务、数据服务和地图服务。

管理员在新增接口后,应在服务授权管理模块对该用户进行服务授权,操作完成后,用户可以得到相应的opentoken。这样,不同需求的用户就可以在不同的平台上通过对应的方式调用接口地址以及传入相应的参数和opentoken就可以在其他平台上使用该接口的功能。如网页用户可以通过post请求该接口的URL和opentoken在网页端使用该接口。

4.3 用户权限的管理

在对数据和模块的授权服务中,管理员同样通过权限管理找到被授权用户的信息,对其进行编辑角色或编辑模块功能的操作,以实现对用户的数据和功能模块访问权限的管理。这样,不同角色的用户可访问的数据和模块功能不同。例如要对某数据中心管理员的功能模块的权限进行限制,设置界面如图8所示。

图8 功能模块权限设置界面

5 结 语

本文介绍了三调数据共享管理平台实现的关键技术。在第三次全国国土调查采集的大量数据成果的基础上,提出了基于微服务设计理念的架构体系,利用异步多任务分析调度机制、ArcEngine和PostGIS技术处理、分析和统计地理信息数据,SSO单点登录技术验证平台使用者的信息,GeoServer技术发布和共享地图数据,OpenLayers技术来展示地图,并通过PostgreSQL数据库集群存储和管理空间数据。平台具有低耦合、高可用、可扩展等特点,能够很好地完成数据的管理应用、统计分析、更新维护、接收上报和数据备份等功能,可适应高并发条件下的多任务数据分析、展示等操作,具备分布式处理能力,也保证了在管理、操作数据方面的安全性问题,有效地解决了传统共享管理平台服务间关系复杂、分析效率低、容错性差等问题,可适用于不同州市级三调成果数据共享服务平台,对该领域相关问题具有较好的参考价值。

猜你喜欢
数据管理模块用户
企业级BOM数据管理概要
基于用户和电路的攻击识别方法
定制化汽车制造的数据管理分析
2021少儿出版用户触达能力指数
航发叶片工艺文件数据管理技术研究
Module 2 Highlights of My Senior Year
Module 4 Music Born in America
数据挖掘在学生成绩数据管理中的应用研究
数据挖掘在学生成绩数据管理中的应用研究
信用卡资深用户