时间:2024-07-28
王震宇,赵兴伟,付功云
(1. 中铁第六勘察设计院集团有限公司,天津 300308;2. 中铁大连地铁五号线有限公司,大连 116011)
当前轨道交通工程BIM 技术应用主要为BIM 建模及模型应用、BIM 方案展示、BIM 协同设计等,随着5G、大数据、物联网、云计算、移动应用等技术水平的提高,结合轨道交通工程线网状特点,并以GIS 为骨架进行整合,二维平面抽象的信息化管理向BIM+GIS 云平台可视化管理升级已成为必然趋势[1]。
轨道交通工程BIM+GIS 云平台需承载大量BIM模型、GIS 瓦片数据、过程信息及文档等,同时,需满足大量模型导入与操作的流畅性服务需求[2]。单体服务架构的BIM+GIS 云平台较难满足多用户并发访问、加载、操作BIM 与GIS 数据时的快速响应,且会带来耦合度高、可靠性低、维护难度大、扩展困难、阻碍技术创新等诸多不利因素,不满足轨道交通工程BIM+GIS 云平台应用要求。
为解决在单体服务架构下各类系统存在的问题,众多研究人员展开了研究。靳磊采用微服务架构改造中国国家铁路集团有限公司调度系统,使其满足业务需求、解决复杂问题、加速交付过程、提高系统扩展性[3];王雪峰等人从需求分析、关键技术、系统架构和实现方法等几个方面论证微服务架构优势,并采用Spring Cloud 作为微服务基础框架集合,保证系统的可靠性和可扩展性[4]。陶承提出基于微服务架构的招标采购管理系统技术方案,为铁路货物、工程、服务相关的采购行为的规范化、信息化管理提供技术支撑[5]。因此,本文引入微服务架构设计轨道交通工程BIM+GIS 云平台,在实现三维可视化管理应用的基础上,合理利用硬件及网络资源,提供更流畅的加载、浏览、管理等服务。
微服务架构将单体服务程序拆分为一组小型服务,每个小型服务运行在独立进程中,小型服务间的通信采用REST API 轻量级HTTP 通信接口机制,如图1 所示。研发人员可围绕业务功能模块构建小型服务集,不同的小型服务相对独立,可采用不同的服务器、编程语言、数据库、存储方式等,但会产生一些额外要求,例如:需制定微服务间的通信机制和解决跨服务器网络连接稳定性问题。
图1 微服务架构模式示意
微服务架构在轨道交通工程BIM+GIS 云平台中应用的优点:(1)易于开发与维护,松耦合模式、专注于单一服务、边界清晰、复杂度低;(2)容错度高,故障针对单一微服务,可通过重试、平稳退化等机制实现应用层容错;(3)易于扩展,每个微服务可独立扩展;(4)易于创新,技术选型灵活、去中心化,各团队可自由选择合适的技术路线,技术升级重构风险低,不影响整体研发进度[6]。
目前市场上主流的微服务架构框架有Apache Dubbo、Spring Boot/Cloud[7]、Thrift、Motan、gRPC等,主要分为HTTP、RPC 通信协议两类,如表1 所示。
本文研发的轨道交通工程BIM+GIS 云平台,后端采用Spring MVC Framework 与MyBatis 持久化组件,数据库采用MySQL 与MongoDB,前端采用Vue.js。根据BIM+GIS 云平台主要技术路线,对比多种开源框架,选择与轨道交通工程特点契合度高的SpringBoot/Cloud 框架实现微服务架构。
表1 微服务框架一览表
本文依据单一职责、服务自治、轻量级通信、接口明确的原则,将轨道交通工程BIM+GIS 云平台从一个单体服务拆分为多个微服务,如图2 所示,包括监控量测、风险源、报表服务、整改处置、进度管理、预警巡查、文件服务、盾构机服务等。拆分后的微服务通过注册中心统一管理,网关认证鉴定后分发,对外提供网页访问服务。
轨道交通工程BIM+GIS 云平台微服务架构设计需考虑多方面因素。
(1)统一API 网关,实现内部服务的统一认证与鉴权,避免监控量测、报表服务、盾构机服务等内部服务重复认证与鉴权,提高资源利用效率。
图2 轨道交通工程BIM+GIS 云平台微服务拆分
(2)数据库横向扩展,BIM+GIS 云平台采用关系型MySQL 主数据库,分布式部署,数据库节点可随需求的增加而随时增加。
(3)有层次的缓存,针对静态数据如GIS 瓦片数据、轨道交通工程BIM 模型等,平台通过CDN 将数据缓存在距离客户端最近的节点,就近加载;针对动态数据,如盾构机实时监测数据、风险源状态数据、实时进度数据等,平台采用Redis 缓存,使大部分服务请求可读取Redis 缓存数据,减轻数据库压力。
(4)服务编排管理依赖关系,将服务部署代码化,实现服务发布、更新、追溯、弹性收缩等功能,增加服务的可追溯性、易管理性和自动化能力。
(5)统一配置中心,管理所有微服务环境,进行集中配置,保障云平台底层支撑与对外服务连接通畅。
(6)统一日志服务,所有微服务遵守统一日志规范,便于查询分析。
(7)服务具备熔断、限流、降级能力,繁忙、线程池满、连接池满则及时熔断,超时则返回,负载过高则对部分服务限流、降级以保障核心服务。
综合考虑以上7 方面因素,轨道交通工程BIM+GIS 云平台微服务架构,如图3 所示,应用SpringBoot/Cloud 框架支撑、监控服务治理,结合底层数据(数据库、文件)的读写操作权限,部署监控量测、报表服务、盾构机服务等微服务应用,实现终端用户鉴权认证后的业务管理。
图3 轨道交通工程BIM+GIS 云平台微服务架构
SpringBoot/Cloud 框架主要包含:Spring Cloud Eureka 用于服务注册和发现、断路器Netflix Hystrix用于熔断保护、Spring Cloud Ribbon 用于负载均衡、声明式REST 客户端Feign 调用远端HTTP 服务、Netflix Zuul 用于智能路由和过滤、SpringCloud Config用于配置中心、Spring Cloud Sleuth 用于链路跟踪,同时每个微服务单独连接数据库[8]。
轨道交通工程BIM+GIS 云平台微服务架构,可对网关、注册中心、微服务进行集群配置与发布,如图4 所示。随着轨道交通工程线网统一管理需求的深化,数据量、访问量急剧增加,为缩短平台响应时间,提高并发请求数,可在微服务架构的业务集群中增加主机扩展节点并配置到相应的注册中心,以应对轨道交通工程BIM+GIS 管理需求的增长。
本文基于微服务架构的轨道交通工程BIM+GIS云平台实现工程建设全生命周期管理,包括设计阶段的协同工作、文档管理、三维浏览,施工阶段的质量管理、安全管理、进度管理,运营维护阶段的资产管理、巡检管理、应急管理等。设计单位、施工单位、监理单位、设备单位等可基于轨道交通工程BIM+GIS 云平台实现数字化交付与协同建设运营维护管理[9],如图5所示。
图4 轨道交通工程BIM+GIS 云平台微服务架构集群设计
图5 基于微服务架构的轨道交通工程BIM+GIS 云平台应用
目前,基于微服务架构的轨道交通工程BIM+GIS 云平台已在大连地铁5 号线火梭区间海底盾构隧道施工过程中试运行。现场实践应用表明,相较于单体架构的BIM+GIS 平台,在同等数据规模和访问量的情况下,平台内存占用从1.4 GB 左右降低至500 MB,原始场景加载从10 s 降低至3 s,操作流畅度增加100%,并消除卡顿现象,盾构机等实时大量数据经Redis 缓存后导入MySQL,使效率提高80%,服务稳定性提高200%以上。较好地满足现阶段单个工点、单条轨道交通工程线路,以及未来扩展多条轨道交通工程线路的管理需求。
本文研究分析单体服务架构缺陷和微服务架构优势,在制定微服务拆分方式和设计原则的基础上,实现了轨道交通工程BIM+GIS云平台的微服务架构设计。并在大连地铁5号线火梭区间海底盾构隧道施工中进行应用。实践表明,基于微服务架构的轨道交通工程BIM+GIS 云平台性能、承载能力、用户体验度大幅度提高。微服务架构的应用,为BIM+GIS轨道交通工程云平台进一步深化研发及多领域应用提供技术支撑。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!