王 健 冉光炯* 白 皓 張 果
(1、四川高速公路建設(shè)開發(fā)集團(tuán)有限公司,四川 成都610047 2、四川省公路規(guī)劃勘察設(shè)計研究院有限公司,四川 成都610041)
目前BIM+GIS 系統(tǒng)已經(jīng)廣泛應(yīng)用于基礎(chǔ)設(shè)施建設(shè)的各個領(lǐng)域,在各個行業(yè)均開始構(gòu)建各種各樣的項目管理系統(tǒng),當(dāng)前的BIM+GIS 管理系統(tǒng)對網(wǎng)絡(luò)有極大的依賴,在市政等網(wǎng)絡(luò)條件好的項目地通常易于滿足,而在荒無人煙的公路、水利等項目地通常網(wǎng)絡(luò)較差,尤其是公路工點(diǎn)可能會穿越無網(wǎng)絡(luò)信號區(qū),或者人為的無網(wǎng)絡(luò)信號區(qū)(如隧道施工)。
以公路工程施工工序報檢為例,現(xiàn)場工序檢查結(jié)果采集完成后,需要上傳到系統(tǒng),由監(jiān)理進(jìn)行抽檢等流程處理后進(jìn)入下一道工序。而無網(wǎng)絡(luò)信號區(qū)域無法順利地完成上述工作,因此,考慮到無網(wǎng)絡(luò)信號區(qū)域,構(gòu)建離線狀態(tài)下BIM+GIS 管理系統(tǒng)及實現(xiàn)數(shù)據(jù)傳遞研究的必要性凸顯。
本文以公路工程工序報檢案例為例,介紹如何解決BIM+GIS 系統(tǒng)APP 端在離線狀態(tài)工作并解決流程數(shù)據(jù)傳遞問題,從而提高BIM+GIS 系統(tǒng)的可用性。
施工現(xiàn)場到BIM+GIS 系統(tǒng)的數(shù)據(jù)傳遞基礎(chǔ)是基礎(chǔ)數(shù)據(jù)存儲。SQLite 作為一款輕型數(shù)據(jù)庫,實現(xiàn)了自給自足的、無服務(wù)器的、零配置的、事務(wù)性的SQL 數(shù)據(jù)庫引擎,是遵守ACID 的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個相對小的C 庫中。它是D.RichardHipp 建立的公有領(lǐng)域項目,設(shè)計目標(biāo)是嵌入式的,由于它的資源占用率非常低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存,目前已經(jīng)有很多嵌入式產(chǎn)品使用了它。綜合考慮以上因素,SQLite 是滿足當(dāng)前需求的極佳選擇。
實現(xiàn)系統(tǒng)內(nèi)的數(shù)據(jù)傳遞,即施工自檢填報的數(shù)據(jù)流向監(jiān)理的客戶端。必須規(guī)定一種統(tǒng)一的數(shù)據(jù)類型,在數(shù)據(jù)接收方接收到數(shù)據(jù)之后才能用統(tǒng)一解析方式來解析拿到的數(shù)據(jù)。
JSON 作為一種流行的數(shù)據(jù)傳輸類型,有輕量、解析速度快、存儲數(shù)據(jù)體積小等特點(diǎn),且各個平臺語言都支持JSON 交互、JSON 解析和存儲。因為JSON 解析方便,常用于接口交互、前后端交互,以及配置文件。而XML、PList(XML 的一種)等格式,需要定義各種Dom 節(jié)點(diǎn)。此外JSON 的生態(tài)相對完善,有簡單且效率高的解析工具,對獲取到的JSON 數(shù)據(jù)進(jìn)行解析也非常便捷。
對比各種數(shù)據(jù)類型后,本文采用JSON 作為離線狀態(tài)下數(shù)據(jù)傳遞的類型,JSON 格式數(shù)據(jù)如圖1 所示。
圖1 JSON 格式數(shù)據(jù)
由于BIM+GIS 系統(tǒng)內(nèi)的數(shù)據(jù)傳遞必須囊括所有必需信息,且由于檢查項的不確定性,造成信息的結(jié)構(gòu)并不完全固定,缺少任意部分信息都會導(dǎo)致傳遞的數(shù)據(jù)無法使用,故在確定JSON數(shù)據(jù)類型的基礎(chǔ)上,還需確定具體的數(shù)據(jù)結(jié)構(gòu)。
在工序檢查填報中,有效數(shù)據(jù)有:標(biāo)段、分部分項ID、工序ID、檢查項、施工單位、施工日期、檢查日期、填報人信息等,因此本文規(guī)定工序檢查業(yè)務(wù)場景下傳遞的數(shù)據(jù)必須包含以上數(shù)據(jù)內(nèi)容才是有效數(shù)據(jù),如圖2 所示。
圖2 工序檢查填報數(shù)據(jù)結(jié)構(gòu)示例
數(shù)據(jù)離線采集及傳遞的基礎(chǔ)思路是將數(shù)據(jù)離線到本地,依靠本地數(shù)據(jù)完成數(shù)據(jù)填報并緩存,待有網(wǎng)絡(luò)的情況下自動上傳數(shù)據(jù);在整個流程中,完成離線狀態(tài)下的端對端數(shù)據(jù)傳遞,實現(xiàn)流程確認(rèn)?;玖鞒倘鐖D3 所示。
圖3 填報流程框架圖
數(shù)據(jù)離線采集的基礎(chǔ)是基礎(chǔ)數(shù)據(jù)離線,工序報檢對施工分部分項數(shù)據(jù)庫、報檢項及相關(guān)配置、施工單位、施工人員信息均有依賴,因此,系統(tǒng)離線工作前,首先應(yīng)將基礎(chǔ)數(shù)據(jù)進(jìn)行離線存儲于本地備用。啟動前的數(shù)據(jù)離線如圖4 所示。
系統(tǒng)運(yùn)行時,當(dāng)檢測到網(wǎng)絡(luò)斷開后將自動進(jìn)入離線模式。離線模式下,系統(tǒng)填報所依賴的基礎(chǔ)數(shù)據(jù)均不再從遠(yuǎn)程服務(wù)器區(qū)域獲取,而改從成本地數(shù)據(jù)庫提取。用戶根據(jù)在線狀態(tài)的使用習(xí)慣,完成所有信息的填報并提交。用戶提交后,與在線不同的是,數(shù)據(jù)并未向遠(yuǎn)程服務(wù)器上傳,而是加密后存儲到本地服務(wù)器(圖5),通過加密防止了數(shù)據(jù)被篡改的可能,同時離線記錄進(jìn)入離線記錄表,APP 端檢測到網(wǎng)絡(luò)后,可以自動提交。
圖5 離線填報結(jié)果示例
現(xiàn)場數(shù)據(jù)采集完成并提交后,完成了數(shù)據(jù)采集,只待網(wǎng)絡(luò)通暢即可自動上傳,但施工現(xiàn)場的復(fù)雜程度卻往往遠(yuǎn)甚于此。在無網(wǎng)絡(luò)區(qū)域(如隧道中),完成了施工報檢后,監(jiān)理需要對報檢信息進(jìn)行確認(rèn)及抽檢,如何實現(xiàn)離線流程數(shù)據(jù)傳遞又成為一個新的問題。本文所涉的APP 端,在施工報檢完成后,將填報的有效信息組織成一個JSON 對象,使用二維碼生成算法,生成包含自檢結(jié)果數(shù)據(jù)的二維碼(圖6),監(jiān)理使用APP 的掃碼功能,通過二維碼解析算法得到JSON 數(shù)據(jù),然后將JSON 數(shù)據(jù)還原得到工序檢查結(jié)果的源數(shù)據(jù),實現(xiàn)數(shù)據(jù)流動,再進(jìn)行流程確認(rèn)及抽檢,完成相應(yīng)工作后,與施工報檢相似,提交后進(jìn)行加密的離線存儲,待網(wǎng)絡(luò)恢復(fù)后,自動將確認(rèn)信息及抽檢信息上傳到服務(wù)器。通過二維碼(圖6)作為信息載體,在脫離遠(yuǎn)程服務(wù)器的環(huán)境下,實現(xiàn)了兩個APP 端的點(diǎn)對點(diǎn)數(shù)據(jù)傳遞,解決了離線狀態(tài)下離線流程數(shù)據(jù)傳遞。
圖6 工序檢查數(shù)據(jù)示例及對應(yīng)二維碼
本文提出的方法有如下優(yōu)點(diǎn):
3.1 實現(xiàn)了離線狀態(tài)下施工現(xiàn)場到BIM 系統(tǒng)的數(shù)據(jù)傳遞。由于公路工程施工的環(huán)境存在沒有網(wǎng)絡(luò)信號的情況,如果檢查的工序比較多,延后填報可能會導(dǎo)致無法準(zhǔn)確有效地填報檢查結(jié)果。本方法的提出實現(xiàn)了在無網(wǎng)絡(luò)的情況及時填報正確檢查結(jié)果的功能,提高工序檢查及填報的效率。
3.2 實現(xiàn)離線狀態(tài)下系統(tǒng)內(nèi)填報的數(shù)據(jù)傳遞,完成離線狀態(tài)下的監(jiān)理抽檢。離線時施工自檢與監(jiān)理抽檢無法及時響應(yīng),這導(dǎo)致填報流程會卡在施工自檢環(huán)節(jié)。本方法的提出,解決了此問題,使得施工自檢之后,在離線條件下使用二維碼進(jìn)行施工自檢結(jié)果的數(shù)據(jù)傳遞,監(jiān)理拿到自檢結(jié)果直接離線填報二次檢查結(jié)果,推進(jìn)工序檢查流程,提高工序檢查時效性及效率。
3.3 傳遞包含傳遞標(biāo)段、分部分項、工序、檢查項、施工單位、施工時間、接收人、填報人、填報時間、填報地點(diǎn)、檢查日期、現(xiàn)場描述等多種有效信息在內(nèi)的工序填報所需的所有數(shù)據(jù),能精確描述工序檢查結(jié)果,完全還原數(shù)據(jù)內(nèi)容,有效提高離線情況下數(shù)據(jù)流動的正確性。
3.4 使用JSON 解析器能夠迅速解析從二維碼掃描出來的數(shù)據(jù),還原出源數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),快速接入到業(yè)務(wù)邏輯中,實現(xiàn)端對端的數(shù)據(jù)流動的無縫連接,解析效率高。
本文詳細(xì)介紹了在公路工程領(lǐng)域離線狀態(tài)下BIM+GIS 系統(tǒng)中數(shù)據(jù)傳遞方法的應(yīng)用實踐,介紹了數(shù)據(jù)傳遞過程中使用的數(shù)據(jù)存儲與數(shù)據(jù)結(jié)構(gòu),詳細(xì)闡述了在離線狀態(tài)下數(shù)據(jù)采集及端到端數(shù)據(jù)的傳遞方法。根據(jù)項目的實踐經(jīng)驗,基于此技術(shù)手段已取得不錯效果,在一定程度上滿足了公路工程施工中離線狀態(tài)下的BIM+GIS 系統(tǒng)的數(shù)據(jù)傳遞需求。但在數(shù)據(jù)量大小及效率上依然存在改進(jìn)空間,還需進(jìn)一步研究數(shù)據(jù)傳遞算法,精簡數(shù)據(jù)結(jié)構(gòu),使其滿足各種條件下的離線數(shù)據(jù)傳遞。