軌道交通工程BIM+GIS云平臺微服務架構

為解決軌道交通工程BIM+GIS云平臺在多站點、多區間、多線路管理中BIM、GIS數據量大、數據服務龐雜、并發訪問量大等問題,研究分析單體服務架構缺陷和微服務架構優勢,在制定微服務拆分方式和設計原則的基礎上,實現了軌道交通工程BIM+GIS云平臺的微服務架構設計

當前軌道交通工程BIM技術應用主要為BIM建模及模型應用、BIM方案展示、BIM協同設計等,隨著5G、大數據、物聯網、云計算、移動應用等技術水平的提高,結合軌道交通工程線網狀特點,并以GIS為骨架進行整合,二維平面抽象的信息化管理向BIM+GIS云平臺可視化管理升級已成為必然趨勢。

軌道交通工程BIM+GIS云平臺需承載大量BIM模型、GIS瓦片數據、過程信息及文檔等,同時,需滿足大量模型導入與操作的流暢性服務需求。單體服務架構的BIM+GIS云平臺較難滿足多用戶并發訪問、加載、操作BIM與GIS數據時的快速響應,且會帶來耦合度高、可靠性低、維護難度大、擴展困難、阻礙技術創新等諸多不利因素,不滿足軌道交通工程BIM+GIS云平臺應用要求。

本文引入微服務架構設計軌道交通工程BIM+GIS云平臺,在實現三維可視化管理應用的基礎上,合理利用硬件及網絡資源,提供更流暢的加載、瀏覽、管理等服務。

?微服務架構分析與選型

微服務架構分析

微服務架構將單體服務程序拆分為一組小型服務,每個小型服務運行在獨立進程中,小型服務間的通信采用REST API輕量級HTTP通信接口機制。

研發人員可圍繞業務功能模塊構建小型服務集,不同的小型服務相對獨立,可采用不同的服務器、編程語言、數據庫、存儲方式等,但會產生一些額外要求,例如:需制定微服務間的通信機制和解決跨服務器網絡連接穩定性問題。

微服務架構在軌道交通工程BIM+GIS 云平臺中應用的優點:(1)易于開發與維護,松耦合模式、專注于單一服務、邊界清晰、復雜度低;(2)容錯度高,故障針對單一微服務,可通過重試、平穩退化等機制實現應用層容錯;(3)易于擴展,每個微服務可獨立擴展;(4)易于創新,技術選型靈活、去中心化,各團隊可自由選擇合適的技術路線,技術升級重構風險低,不影響整體研發進度。

微服務架構框架選型

目前市場上主流的微服務架構框架有Apache Dubbo、Spring Boot/Cloud、Thrift、Motan、gRPC等,主要分為HTTP、RPC通信協議兩類。

本文研發的軌道交通工程BIM+GIS云平臺,后端采用Spring MVC Framework 與MyBatis持久化組件, 數據庫采用MySQL與MongoDB, 前端采用Vue.js。根據BIM+GIS 云平臺主要技術路線,對比多種開源框架,選擇與軌道交通工程特點契合度高的SpringBoot/Cloud 框架實現微服務架構。

平臺架構設計

微服務拆分

本文依據單一職責、服務自治、輕量級通信、接口明確的原則,將軌道交通工程BIM+GIS云平臺從一個單體服務拆分為多個微服務,包括監控量測、風險源、報表服務、整改處置、進度管理、預警巡查、文件服務、盾構機服務等。拆分后的微服務通過注冊中心統一管理,網關認證鑒定后分發,對外提供網頁訪問服務。

微服務架構設計

軌道交通工程BIM+GIS云平臺微服務架構設計需考慮多方面因素。

(1)統一API網關,實現內部服務的統一認證與鑒權,避免監控量測、報表服務、盾構機服務等內部服務重復認證與鑒權,提高資源利用效率。

(2)數據庫橫向擴展,BIM+GIS云平臺采用關系型MySQL主數據庫,分布式部署,數據庫節點可隨需求的增加而隨時增加。

(3)有層次的緩存,針對靜態數據如GIS瓦片數據、軌道交通工程BIM模型等,平臺通過CDN將數據緩存在距離客戶端最近的節點,就近加載;針對動態數據,如盾構機實時監測數據、風險源狀態數據、實時進度數據等,平臺采用Redis緩存,使大部分服務請求可讀取Redis緩存數據,減輕數據庫壓力。

(4)服務編排管理依賴關系,將服務部署代碼化,實現服務發布、更新、追溯、彈性收縮等功能,增加服務的可追溯性、易管理性和自動化能力。

(5)統一配置中心,管理所有微服務環境,進行集中配置,保障云平臺底層支撐與對外服務連接通暢。

(6)統一日志服務,所有微服務遵守統一日志規范,便于查詢分析。

(7)服務具備熔斷、限流、降級能力,繁忙、線程池滿、連接池滿則及時熔斷,超時則返回,負載過高則對部分服務限流、降級以保障核心服務。

綜合考慮以上7方面因素,軌道交通工程BIM+GIS云平臺微服務架構,應用

SpringBoot/Cloud 框架支撐、監控服務治理,結合底層數據(數據庫、文件)的讀寫操作權限,部署監控量測、報表服務、盾構機服務等微服務應用,實現終端用戶鑒權認證后的業務管理。

云平臺微服務架構

SpringBoot/Cloud框架主要包含:Spring CloudEureka用于服務注冊和發現、斷路器Netflix Hystrix用于熔斷保護、Spring Cloud Ribbon用于負載均衡、聲明式REST客戶端Feign調用遠端HTTP 服務、Netflix Zuul用于智能路由和過濾、SpringCloud Config用于配置中心、Spring Cloud Sleuth用于鏈路跟蹤,同時每個微服務單獨連接數據庫。

軌道交通工程BIM+GIS 云平臺微服務架構,可對網關、注冊中心、微服務進行集群配置與發布。

軌道交通工程BIM+GIS云平臺微服務架構集群設計

隨著軌道交通工程線網統一管理需求的深化,數據量、訪問量急劇增加,為縮短平臺響應時間,提高并發請求數,可在微服務架構的業務集群中增加主機擴展節點并配置到相應的注冊中心,以應對軌道交通工程BIM+GIS管理需求的增長。

微服務架構運用

本文基于微服務架構的軌道交通工程BIM+GIS云平臺實現工程建設全生命周期管理,包括設計階段的協同工作、文檔管理、三維瀏覽,施工階段的質量管理、安全管理、進度管理,運營維護階段的資產管理、巡檢管理、應急管理等。設計單位、施工單位、監理單位、設備單位等可基于軌道交通工程BIM+GIS 云平臺實現數字化交付與協同建設運營維護管理。

云平臺應用

目前,基于微服務架構的軌道交通工程BIM+GIS云平臺已在大連地鐵5號線火梭區間海底盾構隧道施工過程中試運行?,F場實踐應用表明,相較于單體架構的BIM+GIS平臺,在同等數據規模和訪問量的情況下,平臺內存占用從1.4 GB左右降低至500MB,原始場景加載從10s降低至3s,操作流暢度增加100%,并消除卡頓現象,盾構機等實時大量數據經Redis緩存后導入MySQL,使效率提高80%,服務穩定性提高200%以上。較好地滿足現階段單個工點、單條軌道交通工程線路,以及未來擴展多條軌道交通工程線路的管理需求。

實踐表明,基于微服務架構的軌交通工程BIM+GIS云平臺性能、承載能力、用戶體驗度大幅度提高。微服務架構的應用,為BIM+GIS軌道交通工程云平臺進一步深化研發及多領域應用提供技術支撐

內容來源:

鐵路BIM聯盟成員單位——中鐵第六勘察設計院集團有限公司

王震宇,趙興偉,付功云.

軌道交通工程BIM+GIS云平臺微服務架構研究[J].鐵路計算機應用.