微服务框架下的多测合一信息管理平台建设

2022-10-11 05:22李高潮
北京测绘 2022年8期
关键词:服务化合一测绘

李高潮

(广州全成多维信息技术有限公司, 广东 广州 511458)

0 引言

为切实贯彻国家在新时期作出的关于工程建设项目审批制度改革的重要决策,各地陆续开展工程建设项目审批的多测合一信息管理平台建设。构建全流程、全覆盖的工程建设项目审批和管理体系,平台需开展海量数据共享交换、多项测绘业务整合、审批流程重构优化以及对外应用系统集成等工作。因此,在平台搭建时要充分考虑跨平台服务接口的兼容性、服务的动态可扩展性以及访问的高并发性,而当下流行的微服务架构恰好能够解决这些问题。微服务架构是在面向服务架构(service-oriented architecture,SOA)上进行升级,可将独立的功能组件拆分为多个小型的微服务,每个小型的微服务可以解决一项业务功能,并且由于微服务体量小、结构单一,便于开发和维护,让开发部署工作变得更加简化和高效。本文根据实际需求,设计并开发了基于分布式微服务架构的多测合一信息管理平台,提高了平台的稳定性、安全性、可靠性和可扩展性。平台采用领域驱动设计方法,将工程建设项目审批流程、成果共享管理以及对外集成管理等功能划分成细粒度的微服务,从而实现服务间的高耦合性,让平台更加灵活和可拓展。

1 平台微服务构建的原则

1.1 微服务间需松耦合,微服务内部需紧内聚

松耦合是指在不修改平台的其他部分的前提下,能够独立部署或修改某一单个服务。服务之间都尽可能少知道对方的服务信息。紧内聚是指将相似行为的服务都聚集一起,不相似行为的服务放到其他位置,这样可以实现当需要修改和删除某个服务时,只需修改一个位置即可,大大提高了平台开发的效率。

1.2 采用领域驱动设计方法确定微服务边界

领域驱动设计方法是基于领域模型对大型复杂平台业务对象进行建模和分析。它是为了解决平台业务规则和概念转换成软件系统类型属性和类型行为,以此降低平台业务的复杂性,让平台更具扩展性。领域模型是对平台需求分析业务进行分解和边界划分,形成“高内聚低耦合”的业务子域的过程。

1.3 减少微服务间的数据流量和调用

为了解决微服务间过渡通信导致紧耦合,从而影响平台性能问题,需减少微服务间的数据流量和调用,通常限制在2个服务间进行调用。

2 平台微服务设计

2.1 微服务框架总体设计

微服务架构中服务之间是端到端订阅方式,具有独立的业务逻辑和可扩展部署机制,其他微服务或客户端可通过服务接口调用该服务,从而实现微服务的分布管理。微服务架构的最大优势是可以提高平台的伸缩性,实现业务服务的动态部署和扩展。多测合一信息管理微服务平台是基于开源的OpenShift容器平台的基础上,进行开发和设计。平台微服务框架结构包括五大核心层:支撑层、数据资源层、微服务层、应用层以及表现层。两侧是保障平台安全稳定运行的法律法规、标准规范体系和信息安全、运维保障体系。微服务框架设计示意图如图1所示。

图1 微服务框架设计示意图

(1)支撑层是依托市级自然资源云提供的计算资源、存储资源以及安全资源,在此基础上部署平台的软件系统,在自然资源内网、政务网以及互联网上进行运行,同时内网和其他网络物理隔离,确保数据安全。

(2)数据资源层是平台运行数据支撑,其中地理信息数据库是通过服务调用的方式,接入地形图数据、影像图数据以及地名地址数据等。测绘数据是工程建设项目在规划选址、许可、施工以及验收等阶段产生的测绘数据。工程建设项目数据库是指涉及项目本身和管理数据。测绘共享数据库是多测合一业务审批流程中产生和需要提供的数据。多媒体数据库主要包括文档、照片以及视频等数据。Redis缓存数据库是用来存储常重复使用的缓存数据。六大核心库共同构建了多测合一数据资源库,为应用层提供数据支撑。

(3)微服务层向上提供统一的数据操作接口,向下通过微服务数据读取接口实现数据的读写操作,同时还利用领域驱动设计方法,将业务功能分解成细粒度服务,并部署在服务器Nginx中,实现微服务集群。

(4)应用层是平台应用窗口,通过应用程序接口(application programming interface,API)网关实现微服务和前端客户端连接,从而实现相应的业务功能,如,网上服务大厅、成果展示、业务管理以及共享交换管理等。

(5)表现层是为自然资源部门、不动产部门、消防部门、测绘单位以及公众等用户提供不同形式的表现端窗口,主要包括桌面PC机、平板电脑以及智能手机等。

2.2 微服务框架详细设计

微服务框架详细设计包括数据库设计、领域驱动设计、微服务接口设计、服务注册中心设计以及网关设计等。这里以领域驱动设计和微服务接口设计为例进行描述。

2.2.1

领域驱动设计

领域驱动设计流程主要包括如下几方面内容:第一,调研多测合一管理的业务需求,获得业务领域事件;第二,寻找完成业务领域事件的命令和角色;最后,围绕业务领域事件确定领域边界的上下文,并构建领域模型,以便后期业务扩展。在多测合一工程建设项目审批业务上,项目测绘业务申报和受理是一个领域事件。建设单位向窗口工作人员提交测绘业务申请,窗口工作人员根据申请的内容进行受理,并将受理的结果反馈给建设单位,由此确定了一个聚合。聚合可以发布测绘项目申请、受理、审核等领域事件,并且根据不同领域事件,确定界限上下文并建立映射关系,最终构建平台的领域模型。

2.2.2

微服务接口设计

微服务接口实现方式包括表述性状态转移(representational state transfer,REST)、简单对象访问协议(simple object access protocol,SOAP)以及远程过程调用(remote procedure cal,RPC)等,本文采用REST方式实现微服务接口,它是微服务架构中最为成熟和最常用的接口设计方式。根据业务需求,本文设计了4种微服务接口模式。一是数据共享设计模式。多测合一成果共享服务接口采用该设计模式。二是聚合器设计模式。业务查询和统计服务接口采用该设计模式。三是处理局部失败设计模式。主要针对平台交互过程中出现局部失败问题的处理模式,如网络超时、请求限制次数、提示信息回滚等服务。四是异步消息设计模式。工程建设项目进度查询和测绘成果报告信息推送服务接口则采用该设计模式。多测合一业务统计聚合器设计模式示意图如图2所示。

图2 多测合一业务统计聚合器设计模式示意图

3 平台功能微服务化

为了确保平台功能满足多测合一业务需求,首先,对业务流程进行分析,多测合一审批管理流程主要包括工程建设单位发出委托测绘申请、自然资源测绘管理部门对业务进行审批、测绘服务单位作业和提交成果以及成果入库并在相关政府部门间共享应用;其次,总结业务流程中,常使用的功能服务模块;最后对常用功能进行微服务化。

平台功能微服务化是功能模块按照领域大小进行拆分,形成多个单一功能且具有独立数据库的小型服务。在功能微服务化中要注意过度零散的微服务化容易增加服务间网络通信开销,增加服务部署和管理的难度。平台以多测合一成果展示、共享以及业务审批管理为目标,以地理信息数据、多测合一测绘数据、工程建设项目数据等为信息来源,实现多测合一数据“一张图”展示、业务全过程管理、移动监督管理和多测合一成果共享管理等,按照领域驱动设计方法,对平台的业务领域进行微服务化拆分。本文以“一张图”展示功能模块微服务化和业务全过程管理功能模块微服务化为例,介绍功能微服务化的实现过程。平台功能微服务化结构示意图如图3所示。

图3 平台功能微服务化结构示意图

3.1 “一张图”展示功能模块微服务化

“一张图”展示功能模块微服务化有地图服务展示微服务群和空间查询统计微服务群,包含的领域有地形图数据、影像图数据、专题图数据以及空间查询统计等,根据领域模型设计要求和业务界限上下文划分,主要包括了地形图管理微服务、影像图管理微服务、专题图管理微服务、空间查询微服务以及空间统计报表微服务。“一张图”展示功能模块微服务化示意图如图4所示。

3.2 业务全过程管理功能模块微服务化

业务全过程管理功能模块微服务化有业务审批微服务群、业务查询统计微服务群以及业务成果管理微服务群,包含的领域有项目数据、审批数据、汇交数据以及业务受理、业务审批、业务查询统计以及成果审核等,根据领域模型设计要求和业务界限上下文划分,主要包括工程项目管理微服务、项目审批管理微服务以及任务查询、统计微服务等。业务全过程管理功能模块微服务化示意图如图5所示。

图4 “一张图”展示功能模块微服务化示意图

图5 业务全过程管理功能模块微服务化示意图

4 平台实现

4.1 平台部署

基于OpenShift的多测合一信息管理平台部署主要包括两部分内容,一部分是主控节点部署,另一部分是业务节点部署。平台部署结构示意图如图6所示。

图6 平台部署结构示意图

4.1.1

主控节点部署

主控节点包含了OpenShift集群的所有管理组件,负责集群的配置和维护工作,在主控节点运行的服务组件包括以下几类:Web 控制台、API Server、域名系统、调度控制器以及复制控制器。

4.1.2

业务节点部署

业务节点主要接收主控节点指令,为OpenShift容器提供运行时环境。业务节点可以根据需要部署若干个,每个节点对应不同应用服务。本平台部署主要包括主控节点和若干个业务节点,其中多测合一数据方面展示、查询统计微服务以集群的方式部署2个节点,业务处理微服务部署2个节点,后期业务节点可以负载情况动态调整或扩展节点,从而满足业务增长的需求。

4.2 功能展示

“一张图”展示实现地理信息、工程建设项目信息在统一坐标下叠加显示、二三维一体化显示以及时空显示,还可以进行点选查询、空间查询统计等,结果以柱状图、散点图等的方式进行动态展示。网上服务大厅为公众提供工程建设项目多测合一业务办理工作,可以通过电脑端和智能手机端两种方式办理,实现了测绘服务查询、项目委托以及网上缴费等功能。业务全过程管理主要实现了工程建设项目多测合一业务的审批、作业以及汇交管理。审批管理是对提交申请的内容进行核实,并将任务下发给测绘服务单位。作业管理是测绘服务单位根据自然资源部门下达的测绘任务,进行测绘,形成测绘成果和报告。汇交管理是将测绘成果汇交给职责涉及的部门进行审批,审批完成后,提交给自然资源部门。成果共享管理是通过内网将测绘成果推送至成果共享数据池,为不动产测绘、人防测绘、消防测绘等审批提供数据支撑,从而避免重复测绘,提高审批效率。运维管理是平台运行的后台维护,主要实现了用户管理、权限控制以及日志管理等功能。

5 结束语

本文基于微服务框架搭建了多测合一信息管理平台,探讨了微服务构建的原则和框架设计,并详细阐述了功能微服务化实现,并将微服务单独部署和运行在各自容器中。微服务间的通信和数据交换采用REST服务接口,对数据存取、业务处理以及共享交换等功能采用多节点集群的方式,提高服务的稳定性、计算性以及高并发性,有效提高了平台的扩展需求。同时也存在几处难点,一是业务功能微服务化边界判断的复杂性;二是在提升平台性能、缩短交付周期的同时,平台集成开发和调试的难度大大加大。下一步平台将重点研究微服务间通信能力强化和优化多测合一基于领域模型的业务流程设计等问题,进一步提高业务审批效率,为工程建设项目审批改革提供技术保障。

猜你喜欢
服务化合一测绘
江苏省制造企业服务化对绩效的影响
测绘工程质量管理与控制测绘质量的措施
试论房产测绘的质量控制及管理
测绘新技术在测绘工程中应用的常见问题及对策
中国制造业服务化水平的现状
“人车合一的体验很奇妙”
人剑合一
“三效合一”构建现代农业服务体系
制造业服务化对企业竞争力的影响
“真”学习:基于“教学做合一”的教学方式改进