王震宇,趙興偉,付功云
(1. 中鐵第六勘察設計院集團有限公司,天津 300308;2. 中鐵大連地鐵五號線有限公司,大連 116011)
當前軌道交通工程BIM 技術應用主要為BIM 建模及模型應用、BIM 方案展示、BIM 協(xié)同設計等,隨著5G、大數(shù)據(jù)、物聯(lián)網(wǎng)、云計算、移動應用等技術水平的提高,結合軌道交通工程線網(wǎng)狀特點,并以GIS 為骨架進行整合,二維平面抽象的信息化管理向BIM+GIS 云平臺可視化管理升級已成為必然趨勢[1]。
軌道交通工程BIM+GIS 云平臺需承載大量BIM模型、GIS 瓦片數(shù)據(jù)、過程信息及文檔等,同時,需滿足大量模型導入與操作的流暢性服務需求[2]。單體服務架構的BIM+GIS 云平臺較難滿足多用戶并發(fā)訪問、加載、操作BIM 與GIS 數(shù)據(jù)時的快速響應,且會帶來耦合度高、可靠性低、維護難度大、擴展困難、阻礙技術創(chuàng)新等諸多不利因素,不滿足軌道交通工程BIM+GIS 云平臺應用要求。
為解決在單體服務架構下各類系統(tǒng)存在的問題,眾多研究人員展開了研究。靳磊采用微服務架構改造中國國家鐵路集團有限公司調度系統(tǒng),使其滿足業(yè)務需求、解決復雜問題、加速交付過程、提高系統(tǒng)擴展性[3];王雪峰等人從需求分析、關鍵技術、系統(tǒng)架構和實現(xiàn)方法等幾個方面論證微服務架構優(yōu)勢,并采用Spring Cloud 作為微服務基礎框架集合,保證系統(tǒng)的可靠性和可擴展性[4]。陶承提出基于微服務架構的招標采購管理系統(tǒng)技術方案,為鐵路貨物、工程、服務相關的采購行為的規(guī)范化、信息化管理提供技術支撐[5]。因此,本文引入微服務架構設計軌道交通工程BIM+GIS 云平臺,在實現(xiàn)三維可視化管理應用的基礎上,合理利用硬件及網(wǎng)絡資源,提供更流暢的加載、瀏覽、管理等服務。
微服務架構將單體服務程序拆分為一組小型服務,每個小型服務運行在獨立進程中,小型服務間的通信采用REST API 輕量級HTTP 通信接口機制,如圖1 所示。研發(fā)人員可圍繞業(yè)務功能模塊構建小型服務集,不同的小型服務相對獨立,可采用不同的服務器、編程語言、數(shù)據(jù)庫、存儲方式等,但會產(chǎn)生一些額外要求,例如:需制定微服務間的通信機制和解決跨服務器網(wǎng)絡連接穩(wěn)定性問題。

圖1 微服務架構模式示意
微服務架構在軌道交通工程BIM+GIS 云平臺中應用的優(yōu)點:(1)易于開發(fā)與維護,松耦合模式、專注于單一服務、邊界清晰、復雜度低;(2)容錯度高,故障針對單一微服務,可通過重試、平穩(wěn)退化等機制實現(xiàn)應用層容錯;(3)易于擴展,每個微服務可獨立擴展;(4)易于創(chuàng)新,技術選型靈活、去中心化,各團隊可自由選擇合適的技術路線,技術升級重構風險低,不影響整體研發(fā)進度[6]。
目前市場上主流的微服務架構框架有Apache Dubbo、Spring Boot/Cloud[7]、Thrift、Motan、gRPC等,主要分為HTTP、RPC 通信協(xié)議兩類,如表1 所示。
本文研發(fā)的軌道交通工程BIM+GIS 云平臺,后端采用Spring MVC Framework 與MyBatis 持久化組件,數(shù)據(jù)庫采用MySQL 與MongoDB,前端采用Vue.js。根據(jù)BIM+GIS 云平臺主要技術路線,對比多種開源框架,選擇與軌道交通工程特點契合度高的SpringBoot/Cloud 框架實現(xiàn)微服務架構。

表1 微服務框架一覽表
本文依據(jù)單一職責、服務自治、輕量級通信、接口明確的原則,將軌道交通工程BIM+GIS 云平臺從一個單體服務拆分為多個微服務,如圖2 所示,包括監(jiān)控量測、風險源、報表服務、整改處置、進度管理、預警巡查、文件服務、盾構機服務等。拆分后的微服務通過注冊中心統(tǒng)一管理,網(wǎng)關認證鑒定后分發(fā),對外提供網(wǎng)頁訪問服務。
軌道交通工程BIM+GIS 云平臺微服務架構設計需考慮多方面因素。
(1)統(tǒng)一API 網(wǎng)關,實現(xiàn)內部服務的統(tǒng)一認證與鑒權,避免監(jiān)控量測、報表服務、盾構機服務等內部服務重復認證與鑒權,提高資源利用效率。

圖2 軌道交通工程BIM+GIS 云平臺微服務拆分
(2)數(shù)據(jù)庫橫向擴展,BIM+GIS 云平臺采用關系型MySQL 主數(shù)據(jù)庫,分布式部署,數(shù)據(jù)庫節(jié)點可隨需求的增加而隨時增加。
(3)有層次的緩存,針對靜態(tài)數(shù)據(jù)如GIS 瓦片數(shù)據(jù)、軌道交通工程BIM 模型等,平臺通過CDN 將數(shù)據(jù)緩存在距離客戶端最近的節(jié)點,就近加載;針對動態(tài)數(shù)據(jù),如盾構機實時監(jiān)測數(shù)據(jù)、風險源狀態(tài)數(shù)據(jù)、實時進度數(shù)據(jù)等,平臺采用Redis 緩存,使大部分服務請求可讀取Redis 緩存數(shù)據(jù),減輕數(shù)據(jù)庫壓力。
(4)服務編排管理依賴關系,將服務部署代碼化,實現(xiàn)服務發(fā)布、更新、追溯、彈性收縮等功能,增加服務的可追溯性、易管理性和自動化能力。
(5)統(tǒng)一配置中心,管理所有微服務環(huán)境,進行集中配置,保障云平臺底層支撐與對外服務連接通暢。
(6)統(tǒng)一日志服務,所有微服務遵守統(tǒng)一日志規(guī)范,便于查詢分析。
(7)服務具備熔斷、限流、降級能力,繁忙、線程池滿、連接池滿則及時熔斷,超時則返回,負載過高則對部分服務限流、降級以保障核心服務。
綜合考慮以上7 方面因素,軌道交通工程BIM+GIS 云平臺微服務架構,如圖3 所示,應用SpringBoot/Cloud 框架支撐、監(jiān)控服務治理,結合底層數(shù)據(jù)(數(shù)據(jù)庫、文件)的讀寫操作權限,部署監(jiān)控量測、報表服務、盾構機服務等微服務應用,實現(xiàn)終端用戶鑒權認證后的業(yè)務管理。

圖3 軌道交通工程BIM+GIS 云平臺微服務架構
SpringBoot/Cloud 框架主要包含:Spring Cloud Eureka 用于服務注冊和發(fā)現(xiàn)、斷路器Netflix Hystrix用于熔斷保護、Spring Cloud Ribbon 用于負載均衡、聲明式REST 客戶端Feign 調用遠端HTTP 服務、Netflix Zuul 用于智能路由和過濾、SpringCloud Config用于配置中心、Spring Cloud Sleuth 用于鏈路跟蹤,同時每個微服務單獨連接數(shù)據(jù)庫[8]。
軌道交通工程BIM+GIS 云平臺微服務架構,可對網(wǎng)關、注冊中心、微服務進行集群配置與發(fā)布,如圖4 所示。隨著軌道交通工程線網(wǎng)統(tǒng)一管理需求的深化,數(shù)據(jù)量、訪問量急劇增加,為縮短平臺響應時間,提高并發(fā)請求數(shù),可在微服務架構的業(yè)務集群中增加主機擴展節(jié)點并配置到相應的注冊中心,以應對軌道交通工程BIM+GIS 管理需求的增長。
本文基于微服務架構的軌道交通工程BIM+GIS云平臺實現(xiàn)工程建設全生命周期管理,包括設計階段的協(xié)同工作、文檔管理、三維瀏覽,施工階段的質量管理、安全管理、進度管理,運營維護階段的資產(chǎn)管理、巡檢管理、應急管理等。設計單位、施工單位、監(jiān)理單位、設備單位等可基于軌道交通工程BIM+GIS 云平臺實現(xiàn)數(shù)字化交付與協(xié)同建設運營維護管理[9],如圖5所示。

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

圖5 基于微服務架構的軌道交通工程BIM+GIS 云平臺應用
目前,基于微服務架構的軌道交通工程BIM+GIS 云平臺已在大連地鐵5 號線火梭區(qū)間海底盾構隧道施工過程中試運行?,F(xiàn)場實踐應用表明,相較于單體架構的BIM+GIS 平臺,在同等數(shù)據(jù)規(guī)模和訪問量的情況下,平臺內存占用從1.4 GB 左右降低至500 MB,原始場景加載從10 s 降低至3 s,操作流暢度增加100%,并消除卡頓現(xiàn)象,盾構機等實時大量數(shù)據(jù)經(jīng)Redis 緩存后導入MySQL,使效率提高80%,服務穩(wěn)定性提高200%以上。較好地滿足現(xiàn)階段單個工點、單條軌道交通工程線路,以及未來擴展多條軌道交通工程線路的管理需求。
本文研究分析單體服務架構缺陷和微服務架構優(yōu)勢,在制定微服務拆分方式和設計原則的基礎上,實現(xiàn)了軌道交通工程BIM+GIS云平臺的微服務架構設計。并在大連地鐵5號線火梭區(qū)間海底盾構隧道施工中進行應用。實踐表明,基于微服務架構的軌道交通工程BIM+GIS 云平臺性能、承載能力、用戶體驗度大幅度提高。微服務架構的應用,為BIM+GIS軌道交通工程云平臺進一步深化研發(fā)及多領域應用提供技術支撐。