高修強(qiáng)



摘 要
作為城市建設(shè)管理者,能夠便捷的實(shí)時(shí)查看全市軌道交通工程盾構(gòu)掘進(jìn)監(jiān)測(cè)數(shù)據(jù)已成為基本而迫切的需要。本文中,筆者以某城市軌道交通實(shí)際項(xiàng)目為依托,分析多種品牌的盾構(gòu)掘進(jìn)監(jiān)測(cè)系統(tǒng),利用Web Service、JSON等技術(shù)手段搭建C/S、B/S模式軟件,將多種不同類型的盾構(gòu)掘進(jìn)監(jiān)測(cè)數(shù)據(jù)集成到統(tǒng)一的數(shù)據(jù)庫(kù),進(jìn)而實(shí)現(xiàn)全市盾構(gòu)掘進(jìn)監(jiān)測(cè)數(shù)據(jù)實(shí)時(shí)展示。為管理者的安全決策提供實(shí)時(shí)、直觀的數(shù)據(jù)依據(jù)。文中所述解決方案也適用于其他工程施工自動(dòng)化監(jiān)測(cè)數(shù)據(jù)的集成與展示,具有廣泛應(yīng)用價(jià)值。
【關(guān)鍵詞】盾構(gòu) 監(jiān)測(cè) Web Service 集成
1 引言
隨著我國(guó)城市化進(jìn)程步伐不斷加快,各城市紛紛開始軌道交通(地鐵)建設(shè)。在城市軌道交通建設(shè)中,隧道掘進(jìn)是工程量最大也是對(duì)安全性要求最高的施工作業(yè)。多條隧道工程的盾構(gòu)掘進(jìn)施工往往涉及多種品牌的盾構(gòu)機(jī),而各盾構(gòu)機(jī)自帶不同的掘進(jìn)監(jiān)控系統(tǒng)(以下簡(jiǎn)稱系統(tǒng)),掘進(jìn)監(jiān)控實(shí)時(shí)數(shù)據(jù)(以下簡(jiǎn)稱數(shù)據(jù))一般只局限于工地內(nèi)查看。目前常見的盾構(gòu)機(jī)品牌有中鐵裝備、海瑞克、小松等,各品牌又可能細(xì)分為多個(gè)版本。品牌的多樣化給數(shù)據(jù)整合帶來(lái)麻煩,各家系統(tǒng)存儲(chǔ)管理數(shù)據(jù)的方式大相徑庭,而且對(duì)于盾構(gòu)掘進(jìn)監(jiān)測(cè)工作,業(yè)內(nèi)尚無(wú)統(tǒng)一的標(biāo)準(zhǔn)規(guī)范。
盾構(gòu)掘進(jìn)的特殊性要求數(shù)據(jù)必須足夠?qū)崟r(shí)和密集,因此各系統(tǒng)都有自己的一套存儲(chǔ)和展示方式。從筆者在項(xiàng)目中遇到的情況看,數(shù)據(jù)就有若干種存儲(chǔ)方式,如采用Paradox數(shù)據(jù)文件、Access數(shù)據(jù)文件、常規(guī)記事本文件以及自定義格式文件等。出于安全考慮,多數(shù)系統(tǒng)部署于施工現(xiàn)場(chǎng)單獨(dú)的計(jì)算機(jī)不能上互聯(lián)網(wǎng),如需在其他地方查看實(shí)時(shí)數(shù)據(jù),只能組建局域網(wǎng),將數(shù)據(jù)以共享桌面的方式在另外的計(jì)算機(jī)上展示。
基于以上現(xiàn)狀,作為城市建設(shè)主導(dǎo)方和管理者,面對(duì)正在施工的多種盾構(gòu)品牌,想關(guān)注整個(gè)城市所有盾構(gòu)掘進(jìn)的實(shí)時(shí)情況變得十分困難,掘進(jìn)數(shù)據(jù)往往是通過施工方事后呈報(bào)的表格才能得知,這些數(shù)據(jù)到達(dá)管理者手上時(shí)已是十分滯后,不能根據(jù)實(shí)時(shí)數(shù)據(jù)進(jìn)行安全研判和快速?zèng)Q策指揮,對(duì)于盾構(gòu)掘進(jìn)施工安全的參考意義不大。
2 解決方案及軟件實(shí)現(xiàn)
2.1 實(shí)現(xiàn)框架
數(shù)據(jù)集成展示的原則有三條:一是零耦合,即不與各監(jiān)控系統(tǒng)關(guān)聯(lián),不能影響現(xiàn)有盾構(gòu)掘進(jìn)監(jiān)控系統(tǒng)的運(yùn)轉(zhuǎn);二是穩(wěn)定及安全,即保證穩(wěn)定性及數(shù)據(jù)安全性;三是可擴(kuò)展性,即對(duì)新系統(tǒng)的數(shù)據(jù)要能快速開發(fā)實(shí)現(xiàn)集成。
數(shù)據(jù)集成展示的前提條件有兩個(gè):一是數(shù)據(jù)文件必須可解析,如果是系統(tǒng)廠家自定義的數(shù)據(jù)格式,必須提供解析方法;二是與數(shù)據(jù)文件所在計(jì)算機(jī)處在同一局域網(wǎng)內(nèi)的某臺(tái)計(jì)算機(jī)必須保證全時(shí)段可連接互聯(lián)網(wǎng)。
基于以上原則和前提,構(gòu)造出基本的實(shí)現(xiàn)框架如圖1。
鑒于系統(tǒng)一般部署于施工現(xiàn)場(chǎng)(地下工控室)計(jì)算機(jī)(以下簡(jiǎn)稱地下機(jī)),出于安全考慮該計(jì)算機(jī)不能連接互聯(lián)網(wǎng)。因此需有另一臺(tái)計(jì)算機(jī)(以下簡(jiǎn)稱地上機(jī))能夠在局域網(wǎng)內(nèi)訪問到地下機(jī),地上機(jī)需24小時(shí)開機(jī)和連接互聯(lián)網(wǎng)。軟件數(shù)據(jù)流模型如圖2。
2.2 設(shè)計(jì)要點(diǎn)
軟件實(shí)現(xiàn)時(shí),要注意以下方面:
2.2.1 控制讀取數(shù)據(jù)文件的權(quán)限
如果盾構(gòu)機(jī)掘進(jìn)監(jiān)測(cè)數(shù)據(jù)的存儲(chǔ)方式是數(shù)據(jù)庫(kù),那么要設(shè)定只讀用戶和密碼;如果是文件(或文件集合),那么要設(shè)定特定的共享訪問用戶,實(shí)現(xiàn)對(duì)該文件(或文件集合)有權(quán)限的共享。
2.2.2 編寫可擴(kuò)展的解析器
解析傳輸程序(以下簡(jiǎn)稱客戶端)在解析數(shù)據(jù)時(shí),利用面向?qū)ο笳Z(yǔ)言將解析過程抽象為解析基類,其中包含解析通用的對(duì)象、方法和事件。對(duì)象包括程序配置、執(zhí)行觸發(fā)器、數(shù)據(jù)格式、日志讀寫器等;方法包括讀取配置、解析數(shù)據(jù)(虛函數(shù))、推送數(shù)據(jù)、讀寫日志等;事件包括解析前、解析中、解析后等。
不同的系統(tǒng)數(shù)據(jù)解析時(shí)統(tǒng)一繼承基類,只要重載實(shí)現(xiàn)解析數(shù)據(jù)方法即可。這種方式編寫的代碼優(yōu)勢(shì)在于,當(dāng)有新的盾構(gòu)監(jiān)測(cè)數(shù)據(jù)格式需要集成時(shí),只需引用解析器動(dòng)態(tài)鏈接庫(kù),繼承解析基類后實(shí)現(xiàn)特有的解析方法即可。
2.2.3 構(gòu)造統(tǒng)一的數(shù)據(jù)格式
數(shù)據(jù)集成過程中,數(shù)據(jù)格式統(tǒng)一采用JSON標(biāo)準(zhǔn)。JSON(JavaScript Object Notation, JS 對(duì)象標(biāo)記) 是一種輕量級(jí)的數(shù)據(jù)交換格式,易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成并有效地提升網(wǎng)絡(luò)傳輸效率。
2.2.4 進(jìn)行通信驗(yàn)證和傳輸數(shù)據(jù)加密
由于涉及到使用互聯(lián)網(wǎng)傳輸數(shù)據(jù),Web Service服務(wù)(以下簡(jiǎn)稱服務(wù)端)需要對(duì)客戶端進(jìn)行驗(yàn)證。驗(yàn)證分兩個(gè)方面:一是驗(yàn)證客戶端的真?zhèn)危乐蛊渌蛻舳藧阂膺B接服務(wù)端,筆者采用非對(duì)稱的加密算法,在客戶端請(qǐng)求時(shí)通過比對(duì)客戶端和服務(wù)端對(duì)于一串隨機(jī)碼的加密結(jié)果是否相同來(lái)驗(yàn)證客戶端的真?zhèn)危欢球?yàn)證客戶端的安裝位置,防止將A盾構(gòu)機(jī)的數(shù)據(jù)入庫(kù)到B盾構(gòu)機(jī)的數(shù)據(jù)里,解決方法是將客戶端所處的計(jì)算機(jī)信息(硬盤編號(hào)、網(wǎng)卡地址等)事先存儲(chǔ)在服務(wù)端,當(dāng)客戶端連接服務(wù)端時(shí)就能根據(jù)信息判定是哪臺(tái)盾構(gòu)機(jī)的數(shù)據(jù)了。
由于涉及到使用互聯(lián)網(wǎng)傳輸數(shù)據(jù),數(shù)據(jù)安全也需要充分考慮。針對(duì)集成的應(yīng)用場(chǎng)景兼顧傳輸效率,最終選用了對(duì)稱的DES加密算法來(lái)加密數(shù)據(jù),DES加密應(yīng)用簡(jiǎn)便且廣泛,參考資料很多,具體做法不再贅述。
2.2.5 采用數(shù)據(jù)推送-接收-提取展示模式
即為客戶端-服務(wù)端-展示終端模式:客戶端負(fù)責(zé)數(shù)據(jù)解析、加密推送。服務(wù)端負(fù)責(zé)數(shù)據(jù)接收、解密入庫(kù)。展示終端負(fù)責(zé)數(shù)據(jù)提取、終端展示。需要注意的是,服務(wù)端只需要部署一個(gè),既提供數(shù)據(jù)入庫(kù)功能供解析客戶端調(diào)用,又提供數(shù)據(jù)提取功能供展示客戶端調(diào)用。
2.2.6 具備容錯(cuò)機(jī)制
整個(gè)軟件部署后自動(dòng)運(yùn)行,要保證其穩(wěn)定性,達(dá)到無(wú)人值守運(yùn)行標(biāo)準(zhǔn),對(duì)于不可預(yù)見的錯(cuò)誤要能捕獲并記錄,極力降低程序崩潰概率。程序需具備完備的日志記錄機(jī)制,對(duì)于執(zhí)行過程特別是出錯(cuò)內(nèi)容能夠詳實(shí)的記錄,為維護(hù)和優(yōu)化工作提供條件。
3 應(yīng)用實(shí)例
某城市目前有8臺(tái)盾構(gòu)機(jī)正在進(jìn)行掘進(jìn)施工,其中2臺(tái)是海瑞克,6臺(tái)是中鐵裝備,在部署軟件之前必須滿足兩個(gè)基本條件:一是與盾構(gòu)機(jī)在同一局域網(wǎng)內(nèi)的計(jì)算機(jī)保證可讀取盾構(gòu)監(jiān)測(cè)數(shù)據(jù)文件且全時(shí)段連接互聯(lián)網(wǎng);二是提供一臺(tái)具有固定互聯(lián)網(wǎng)IP的計(jì)算機(jī),用于部署服務(wù)端。
部署好的軟件向用戶提供以下主要功能:
(1)維護(hù)人員可以通過展示終端設(shè)置和查詢每臺(tái)盾構(gòu)機(jī)需要集成的參數(shù)、每個(gè)參數(shù)的數(shù)據(jù)推送頻率;
(2)專業(yè)管理人員可以通過專用客戶端查看完整的數(shù)據(jù)序列;
(3)全部相關(guān)人員可以通過網(wǎng)站頁(yè)面查看最新數(shù)據(jù)。
盾構(gòu)掘進(jìn)監(jiān)控?cái)?shù)據(jù)展示界面如圖3、4所示。
4 結(jié)語(yǔ)
基于以上解決方案和設(shè)計(jì)思路實(shí)現(xiàn)的軟件,能夠?qū)崟r(shí)查看全市軌道交通工程盾構(gòu)掘進(jìn)監(jiān)測(cè)數(shù)據(jù),且具備高度的可擴(kuò)展性,在新的盾構(gòu)機(jī)需要接入時(shí)能夠快速開發(fā)并完成部署。
隨著城市軌道交通建設(shè)水平的提高以及經(jīng)驗(yàn)積累,相信盾構(gòu)掘進(jìn)監(jiān)測(cè)領(lǐng)域會(huì)逐步形成標(biāo)準(zhǔn)規(guī)范,加上互聯(lián)網(wǎng)應(yīng)用的飛速發(fā)展,屆時(shí)數(shù)據(jù)集成將更加容易。文中所述解決方案也適用于其他工程施工自動(dòng)化監(jiān)測(cè)數(shù)據(jù)的集成與展示,在自動(dòng)化監(jiān)測(cè)數(shù)據(jù)集成領(lǐng)域也有廣泛應(yīng)用價(jià)值。
參考文獻(xiàn)
[1]廖國(guó)彬.盾構(gòu)機(jī)動(dòng)態(tài)監(jiān)測(cè)集成化軟件開發(fā)及可靠性設(shè)計(jì)研究與實(shí)現(xiàn)[D].上海:同濟(jì)大學(xué),2008.
[2]顧寧,劉家茂,柴曉路.Web Services原理與研發(fā)實(shí)踐[M].北京:機(jī)械工業(yè)出版社,2006.
[3]陳躍國(guó),王京春.數(shù)據(jù)集成綜述[J].計(jì)算機(jī)科學(xué),2004(05).