李光威
摘要:關(guān)于基于Web的BIM(Building Information Modeling)軟件架構(gòu)設(shè)計與實現(xiàn),學(xué)術(shù)界和工程界對此方面的軟件架構(gòu)設(shè)計進(jìn)行了長期的研究與討論。當(dāng)前WebBIM的軟件架構(gòu)設(shè)計多種多樣,同濟(jì)大學(xué)學(xué)生將介紹WebBIM的分布式架構(gòu)設(shè)計,給出一整套開發(fā)方案,并對開發(fā)過程中的科學(xué)問題進(jìn)行突破并實現(xiàn)WebBIM在線可視化系統(tǒng)的示范性應(yīng)用。
關(guān)鍵詞:BIM;軟件架構(gòu);分布式;Web;數(shù)據(jù)庫
中圖分類號:TP311? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ? 文章編號:1009-3044(2018)31-0073-02
1 背景
建筑信息模型BIM是近年來興起的新概念,在建筑的設(shè)計、施工、運維的全生命周期中應(yīng)用價值極高,已成為建筑業(yè)的新趨勢。理論中的BIM應(yīng)能夠貫穿建設(shè)項目的整個生命周期,并支持項目全部信息的存儲與交互。目前我國的BIM技術(shù)應(yīng)用大體分為以下兩大類:1)單機模式。每個用戶都有一個工作站,BIM數(shù)據(jù)模型一般都是保存在本地的,由自己掌握。2)基于產(chǎn)品數(shù)據(jù)的管理模式。BIM可視化管理平臺使企業(yè)內(nèi)部的所有設(shè)計模型數(shù)據(jù)集中存儲與管理。每個用戶還擁有一個工作站。
然而傳統(tǒng)BIM應(yīng)用模式中尚且存在一些問題:
1)投入的成本比較高。
2)BIM模型數(shù)據(jù)的安全性讓人擔(dān)憂。
3)BIM模型的交互性較差。
所以仍需要一個以實際技術(shù)搭建的系統(tǒng)將BIM的這些特性實現(xiàn),BIM服務(wù)器應(yīng)運而生。目前主流的BIM服務(wù)器多為C/S架構(gòu),而C/S架構(gòu)的桌面應(yīng)用程序?qū)﹄娔X軟硬件和軟件使用者都有一定的要求。隨著HTML5標(biāo)準(zhǔn)的推進(jìn),帶來了支持瀏覽器硬件圖形加速的WebGL技術(shù),更帶來了一系列劃時代的Web技術(shù),同時為實現(xiàn)B/S架構(gòu)下的BIM信息管理與模型三維瀏覽奠定了基礎(chǔ)。HTML5的出現(xiàn)為Web瀏覽器帶來了各式各樣的功能支持,引領(lǐng)我們走向內(nèi)嵌式富互聯(lián)網(wǎng)應(yīng)用的新紀(jì)元。于是面向Web的BIM服務(wù)器有了理想的技術(shù)支撐。
因此,隨著BIM技術(shù)的發(fā)展,實現(xiàn)基于B/S架構(gòu)的WebBIM系統(tǒng)越來越重要。該文的主攻方向是設(shè)計基于WebBIM開發(fā)的后端架構(gòu)方式,該課題現(xiàn)階段還有許多尚未攻克的技術(shù)難題。一方面,基于B/S架構(gòu)的WebBIM系統(tǒng)的存儲系統(tǒng)受到物理環(huán)境的影響;另一方面,WebBIM場景中的模型的5V特性(大量化(Volune)、多樣性(Variety)、高速性(Velocity)、價值(Value)和可視化(Visualization))使得對存儲系統(tǒng)提出了負(fù)載均衡性能的要求。
2 系統(tǒng)設(shè)計
2.1 大型WebBIM軟件架構(gòu)方式
雖然已有基于服務(wù)器的BIM軟件架構(gòu)方式,但是對于大型WebBIM系統(tǒng)的架構(gòu)方式仍在探索階段。所以該課題借鑒其他項目的分布式架構(gòu)方式,設(shè)計大型WebBIM的分布式軟件架構(gòu)。
2.2 大型WebBIM系統(tǒng)前端與后端的高效網(wǎng)絡(luò)傳輸方式
使用Node.js+MongoDB+Redis作為整體服務(wù)架構(gòu),實現(xiàn)前端與后端的高效傳輸。主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動態(tài)Web內(nèi)容。目前基于Web的應(yīng)用程序開發(fā)很多是使用Node.js來進(jìn)行項目開發(fā)。在大型WebBIM系統(tǒng)開發(fā)中,后端數(shù)據(jù)庫要與前端通信,并配合前端語義表達(dá)。
2.3 大規(guī)模WebBIM系統(tǒng)的數(shù)據(jù)庫設(shè)計
該文就BIM行業(yè)內(nèi)某公司需求,設(shè)計并實施了以FastDFS為主HDFS為輔的分布式文件存儲系統(tǒng)。本實驗室前期已經(jīng)IFC的BIM模型數(shù)據(jù)進(jìn)行輕量化,形成了DAT文件,每個DAT文件只有幾KB級別的數(shù)據(jù),一個大型建筑總的文件只有幾十兆級別的。而主流分布式存儲系統(tǒng)HDFS適合存儲大文件,為節(jié)省研發(fā)HDFS針對小文件存儲算法方面的成本,該文引入適合存儲中小型文件的輕量級分布式存儲系統(tǒng)FastDFS,以此為主要存儲系統(tǒng),并部署HDFS,存儲大文件,為之后優(yōu)化小文件存儲,遷移全部存儲平臺至HDFS,并在此之上建立分布式計算平臺打下技術(shù)基礎(chǔ)。
2.4 基于IFC文件的BIM模型數(shù)據(jù)云存儲設(shè)計
WebBIM模型的集合數(shù)據(jù)和元數(shù)據(jù)都將存入數(shù)據(jù)庫中,前端需要加載幾何數(shù)據(jù),我們將集合數(shù)據(jù)放在分布式文件系統(tǒng)中,而描述數(shù)據(jù)的數(shù)據(jù)(元數(shù)據(jù))放在關(guān)系型數(shù)據(jù)庫中。
2.5 針對IFC文件的關(guān)系型數(shù)據(jù)庫到分布式數(shù)據(jù)庫的數(shù)據(jù)遷移工具
該項目目前將模型文件存儲在MongoDB數(shù)據(jù)庫中,現(xiàn)在需要將這些文件通過MySQL遷移到分布式數(shù)據(jù)庫中。初步使用Sqoop,此開源工具主要用于Hadoop與傳統(tǒng)的數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的傳遞,在遷移過程中,設(shè)計基于該項目目前開發(fā)中的數(shù)據(jù),遷移到分布式數(shù)據(jù)庫中的方法。
3 系統(tǒng)實現(xiàn)
該系統(tǒng)采用Node.js作為開發(fā)語言環(huán)境,選擇MongoDB作為模型數(shù)據(jù)庫。根據(jù)WebBIM項目開發(fā)的實際情況,結(jié)合業(yè)務(wù)流程,確定了系統(tǒng)的整體框架,對功能模塊,數(shù)據(jù)庫設(shè)計進(jìn)行了深入分析,研究與探討。切實完成了WebBIM系統(tǒng)設(shè)計,代碼編寫,系統(tǒng)壓力測試,如圖1。
由于該系統(tǒng)功能模塊較多,受篇幅限制,只給出技術(shù)路線圖與Web展示,如圖2。
4 結(jié)束語
針對瀏覽器端提出一套WebBIM軟件開發(fā)的架構(gòu)方式,該解決方案具有通用性強、適用性廣、兼容性好的特點,并且有很好的功能拓展性和完整的對外接口。對下列關(guān)鍵技術(shù)進(jìn)行研究并形成研究報告,主要體現(xiàn)下列關(guān)鍵技術(shù)研究內(nèi)容:大型WebBIM軟件架構(gòu)方式;大型WebBIM系統(tǒng)前端與后端的高效網(wǎng)絡(luò)傳輸方式;大規(guī)模WebBIM系統(tǒng)的數(shù)據(jù)庫設(shè)計;基于IFC文件的BIM模型數(shù)據(jù)云存儲設(shè)計;針對IFC文件的關(guān)系型數(shù)據(jù)庫到分布式數(shù)據(jù)庫的數(shù)據(jù)遷移工具。最終形成一整套WebBIM軟件開發(fā)項目的架構(gòu)方案。
參考文獻(xiàn):
[1] 呂玉惠, 俞啟元, 張尚. 基于BIM的施工項目多要素集成管理信息系統(tǒng)研究[J]. 建筑經(jīng)濟(jì), 2013(8): 35-38.
[2] 王珩偉, 胡振中. 面向Web的BIM三維瀏覽與信息管理[J]. 土木建筑工程信息技術(shù), 2013, 5(3): 1-7.
[3] 王寶會, 高遠(yuǎn). 面向BIM數(shù)據(jù)的分布式文件存儲系統(tǒng)設(shè)計與實施[J]. 土木建筑工程信息技術(shù), 2016, 8(5): 40-44.