張海兵,操 鋒,段高博,許永宏,喬 俊
(中鐵第四勘察設計院集團有限公司,武漢 430063)
隨著鐵路和城市軌道交通行業建筑信息模型(Building Information Modeling,BIM)應用的不斷推進,在BIM 應用項目中均會引用BIM 平臺,以實現多單位間工程協作、施工過程管理或運維管理等,眾多的管理平臺均需要完善的存儲機制為前端的管理業務做支撐。隨著BIM 項目的日益增多,BIM 文件數據量、體量越來越大。同時,鐵路和城市軌道交通行業BIM設計成果具有專業多、體量大、階段性的特征,采用什么存儲機制,以支撐鐵路和城市軌道交通BIM 項目的設計成果文件的管理、高效檢索和文件的擴展存儲是亟須解決的問題。良好的存儲機制也將為實現專業間協作平臺、專業間提資平臺、項目成果管理平臺建設打下良好的基礎。
針對BIM 設計成果的存儲策略有很多,有基于文件傳輸協議(File Transfer Protocol,FTP)服務器的文件存儲,但是存在難以擴容、服務器負載不均衡,缺乏文件備份與恢復機制等問題。有基于Hadoop 分布式文件系統(Hadoop Distributed File System,HDFS)的存儲,但是無法高效地對構件(如族Rfa、ipt)、設計參數文檔(xls、doc)等小文件進行存儲。Mongo DB 可用于文件數據的存儲,具有可擴展、高可用的特性。本文提出基于MongoDB的BIM 設計文件的存儲機制,實現不同格式、不同大小的設計成果的可擴展、高可用存儲,并提供檢索機制便于數據的檢索。
為實現管理平臺中海量、類型復雜、文件體量跨度大的文件的存儲且兼顧高擴展性、高伸縮性和數據高可用,本文采用MongoDB 的分片加副本機制,并引用GridFS 存儲機制,建立BIM 設計文件的存儲集群,如圖1 所示。
(1)Mongos 即集群請求的入口,所有的請求都通過Mongos進行協調,Mongos 是一個請求分發中心,負責把對應的數據請求轉發到對應的Shard 服務器上。在生產環境通常有多個Mongos 作為請求的入口,防止入口掛掉的問題。
(2)Config Server 即配置服務器,存儲所有數據庫元信息(路由、分片)的配置。Mongos 本身沒有物理存儲分片服務器和數據路由信息,只是緩存在內存里,配置服務器則實際存儲這些數據。
(3)分片(Sharding)是指將數據拆分,將其分散在不同的機器上。將數據分散到不同的機器上,不需要功能強大的服務器就可以存儲更多的數據和處理更大的負載。將集合切成小塊,這些塊分散到若干片里,每個片只負責總數據的一部分,最后通過一個均衡器來對各個分片進行均衡(數據遷移)。Shard機制的存在支持了BIM 設計文件的橫向擴展存儲。
(4)Replica set 即副本集,其實就是Shard 的備份,防止Shard 掛掉之后數據丟失。復制提供了數據的冗余備份,并在多個服務器上存儲數據副本,提高了BIM 設計成果文件的可用性,并可以保證數據的安全性。
(5)GridFS 即MongoDB 的一個子模塊,使用GridFS 可以輔助管理BIM 設計成果的大文件,如大體量的BIM 模型。它使用兩個集合(Collection)存儲文件,一個集合是Chunks,用于存儲文件內容的二進制數據;另一個集合是Files,用于存儲文件的元數據。如果文件大于Chunksize,會先將文件按照Chunk的大小分割成多個Chunk 塊,最終將Chunk 塊的信息存儲在fs.chunks 集合的多個文檔中。然后將文件信息存儲在fs.files集合的唯一一份文檔中。其中fs.chunks 集合中多個文檔中的file_id 字段對應fs.files 集中文檔“_id”字段。

圖1 基于MongoDB 的BIM 設計文件的存儲架構
基于本文的存儲架構便于文件存儲的橫向擴展,增加存儲節點可擴充存儲容量,達到存儲的高可擴展,解決傳統存儲方式存儲容量不夠的問題。基于副本集各節點會通過心跳算法來檢測各自的健康狀況,當主節點出現故障時,多個從節點會觸發一次新的選舉操作,并選舉其中一個作為新的主節點,從而確保系統的高可用性。基于GridFS 機制可支持存儲量小的設計成果如普通的文檔、Excel 表格、Rfa 族文件、ipt 構件等,也可支持成百上千兆字節的BIM 模型成果。
MongoDB 存儲文件元數據包含兩部分,默認元數據和自定義元數據,默認元數據包含文檔ID、名稱、長度、塊長度、文件md5 和上傳時間。本文設計BIM 設計文件自定義元數據包含以下字段,如表1 所示,可根據項目需要額外進行擴充,基于元數據模型,配合具體項目的業務邏輯,實現高效檢索。

表1 自定義元數據字段
如圖2 所示,在本次研究的課題成果應用于基于軌道交通的BIM+GIS 的集成系統中,采用3 臺服務器搭建了最小的高可用、可擴展的存儲集群,用于該系統的BIM 設計成果數據的存儲和管理,便于數據的下載和利用。

圖2 基于軌道交通的BIM+GIS 的集成系統