劉江濤,王亮亮,崔夏陽(yáng),吳慶茹
(1.中鐵二院工程集團(tuán)有限責(zé)任公司 土木建筑設(shè)計(jì)研究二院,成都 610031;2.中國(guó)礦業(yè)大學(xué) 力學(xué)與土木工程學(xué)院,徐州 221116)
近年來(lái),我國(guó)高速鐵路、城際鐵路以及地鐵等基礎(chǔ)設(shè)施建設(shè)規(guī)模和速度都處于世界領(lǐng)先地位,在輪軌系統(tǒng)建設(shè)大規(guī)模推進(jìn)的同時(shí),也積累了海量線(xiàn)路設(shè)計(jì)數(shù)據(jù)與相關(guān)資料,這些設(shè)計(jì)資源包含著鐵路設(shè)計(jì)、建設(shè)與管理人員的智慧,如何系統(tǒng)有效的管理已有資料,對(duì)優(yōu)化擬建線(xiàn)路方案和運(yùn)營(yíng)期間的線(xiàn)路病害綜合處治具有重要價(jià)值。目前,鐵路系統(tǒng)生產(chǎn)與管理部門(mén)對(duì)線(xiàn)路設(shè)計(jì)資料仍主要采取紙質(zhì)文件歸檔的方式進(jìn)行保存,這種資料管理模式存在的主要問(wèn)題是查閱者無(wú)法對(duì)既有鐵路設(shè)計(jì)資料完整信息進(jìn)行獲取,降低了既有線(xiàn)路案例的應(yīng)用效果。因此,利用現(xiàn)代網(wǎng)絡(luò)技術(shù),搭建線(xiàn)路設(shè)計(jì)資料全過(guò)程動(dòng)態(tài)管理系統(tǒng),實(shí)現(xiàn)鐵路設(shè)計(jì)案例的動(dòng)態(tài)管理成為企業(yè)現(xiàn)代化管理的迫切需求。
線(xiàn)路選線(xiàn)設(shè)計(jì)作為整個(gè)鐵路建設(shè)的“龍頭”,其設(shè)計(jì)效果直接關(guān)系到整個(gè)工程的建設(shè)質(zhì)量。為此,科研人員在利用既有線(xiàn)路設(shè)計(jì)案例輔助、優(yōu)化擬建線(xiàn)路設(shè)計(jì)方案方面進(jìn)行了積極探索,如張啟坤[1]等人結(jié)合地質(zhì)選線(xiàn)方法提出了案例本體表示方法,建立了案例檢索流程,并對(duì)既有案例信息在新建項(xiàng)目中的數(shù)據(jù)挖掘與存儲(chǔ)方案等進(jìn)行了分析。何洋[2]結(jié)合鐵路線(xiàn)路設(shè)計(jì)流程和關(guān)聯(lián)設(shè)計(jì)資料的特點(diǎn),利用Arc GIS 等技術(shù)搭建了案例表示模塊,研發(fā)了線(xiàn)路設(shè)計(jì)文件資料采集與調(diào)研展示平臺(tái)。李俊達(dá)[3]等人在分析隧道結(jié)構(gòu)特征、施工關(guān)鍵技術(shù)基礎(chǔ)上,構(gòu)建了隧道施工輔助決策模型。曹建枝[4]等人在理論研究基礎(chǔ)上,建立了基于Web GIS的鐵路勘測(cè)設(shè)計(jì)一體化系統(tǒng)設(shè)計(jì)模型,為智能輔助專(zhuān)家系統(tǒng)的研發(fā)奠定了理論基礎(chǔ)。張鈺[5]基于Access 平臺(tái)研發(fā)的線(xiàn)路設(shè)計(jì)文件數(shù)據(jù)庫(kù)實(shí)現(xiàn)了川藏鐵路線(xiàn)路設(shè)計(jì)成果及相關(guān)資料的高效管理與統(tǒng)計(jì)分析,提高了線(xiàn)路設(shè)計(jì)效率。郭海東[6]等人利用地理信息系統(tǒng)(GIS,Geographic Information Syste)的數(shù)據(jù)管理和空間分析決策功能,研究了線(xiàn)路走廊帶不良地質(zhì)分布信息的有效表達(dá)和提取,并實(shí)現(xiàn)了不同線(xiàn)路方案間不良地質(zhì)問(wèn)題的對(duì)比分析。綜上所述,目前,在鐵路線(xiàn)路信息化方面的研發(fā)工作主要集中在計(jì)算機(jī)智能輔助選線(xiàn)方面,而針對(duì)鐵路系統(tǒng)企業(yè)內(nèi)部既有設(shè)計(jì)案例資料的動(dòng)態(tài)管理與應(yīng)用方面的研究尚滯后于實(shí)際需求。為此,本文基于Node.js 和MongoDB 技術(shù),研發(fā)了具有可視化功能的鐵路選線(xiàn)案例系統(tǒng)。
鐵路選線(xiàn)案例系統(tǒng)采用B/S 架構(gòu)與MVC 前后端分層設(shè)計(jì)方案。其總體架構(gòu),如圖1 所示。
圖1 鐵路選線(xiàn)案例系統(tǒng)總體架構(gòu)
用戶(hù)層主要面向選線(xiàn)設(shè)計(jì)人員和相關(guān)學(xué)習(xí)人員,選線(xiàn)設(shè)計(jì)人員可以利用不同的系統(tǒng)和終端將選線(xiàn)案例和數(shù)據(jù)上傳至案例信息庫(kù)中,同時(shí),設(shè)計(jì)人員上傳案例資料時(shí)系統(tǒng)還會(huì)根據(jù)不同的地域或者災(zāi)害情況對(duì)選線(xiàn)案例進(jìn)行提前篩選和分類(lèi),相關(guān)人員在查看或者學(xué)習(xí)選線(xiàn)案例時(shí)會(huì)變得更加快捷和高效。
應(yīng)用展示層主要通過(guò)百度地圖API 和JavaScript前端頁(yè)面等技術(shù)進(jìn)行實(shí)現(xiàn)。由于鐵路選線(xiàn)案例庫(kù)主要是基于響應(yīng)式布局并且面向鐵路選線(xiàn)案例庫(kù),所以它可以自適應(yīng)地向使用不同終端的用戶(hù)顯示內(nèi)容。系統(tǒng)包含了鐵路選線(xiàn)案例的添加、刪除、修改和檢查等功能。用戶(hù)還可以在應(yīng)用展示層對(duì)上傳的案例信息和文件數(shù)據(jù)進(jìn)行分析和應(yīng)用,生成案例技術(shù)標(biāo)準(zhǔn)分析報(bào)告,實(shí)現(xiàn)線(xiàn)路平縱斷面圖和數(shù)據(jù)庫(kù)文件的在線(xiàn)瀏覽。
網(wǎng)絡(luò)傳輸層是通過(guò)HTTP 協(xié)議將靜態(tài)資源、動(dòng)態(tài)資源傳輸給數(shù)據(jù)庫(kù)和應(yīng)用展示層,鐵路選線(xiàn)案例資料中的靜態(tài)資源包括前端靜態(tài)頁(yè)面、項(xiàng)目案例文件和相關(guān)案例技術(shù)指標(biāo)等,而動(dòng)態(tài)資源主要包括前端頁(yè)面的渲染文件以及一些動(dòng)態(tài)頁(yè)面等。應(yīng)用展示層在獲得案例靜態(tài)和動(dòng)態(tài)資料時(shí),會(huì)通過(guò)網(wǎng)絡(luò)傳輸層預(yù)設(shè)的路由模塊按不同請(qǐng)求轉(zhuǎn)發(fā)至相應(yīng)的網(wǎng)絡(luò)傳輸通道中,而數(shù)據(jù)層在接收到這些案例資料后會(huì)將數(shù)據(jù)自動(dòng)分類(lèi)存儲(chǔ)至服務(wù)器端,方便之后用戶(hù)調(diào)取和導(dǎo)出案例資料。
數(shù)據(jù)層位于鐵路選線(xiàn)案例倉(cāng)庫(kù)架構(gòu)的最底端,負(fù)責(zé)存儲(chǔ)以及處理通過(guò)應(yīng)用展示層和網(wǎng)絡(luò)傳輸層傳遞過(guò)來(lái)的鐵路選線(xiàn)案例資料。數(shù)據(jù)層針對(duì)鐵路選線(xiàn)案例資料的類(lèi)型被劃分為案例信息數(shù)據(jù)庫(kù)、元數(shù)據(jù)庫(kù)、地圖信息數(shù)據(jù)庫(kù)和文檔數(shù)據(jù)庫(kù)4 個(gè)不同的儲(chǔ)存空間,各個(gè)不同的空間數(shù)據(jù)庫(kù)都可以實(shí)現(xiàn)對(duì)于數(shù)據(jù)的上傳、修改、查詢(xún)和刪除,并且基于網(wǎng)絡(luò)傳輸層的路由通道,還可以將鐵路選線(xiàn)案例數(shù)據(jù)進(jìn)行分類(lèi)和導(dǎo)出。
鐵路選線(xiàn)案例系統(tǒng)功能模塊架構(gòu),如圖2 所示,主要包括6 個(gè)部分。
圖2 鐵路選線(xiàn)案例系統(tǒng)功能模塊設(shè)計(jì)架構(gòu)
用戶(hù)管理模塊負(fù)責(zé)收集、存儲(chǔ)和記錄用戶(hù)的個(gè)人信息及操作行為。所有的用戶(hù)信息都保存在數(shù)據(jù)庫(kù)中,當(dāng)用戶(hù)嘗試登錄系統(tǒng)或者使用相應(yīng)功能時(shí),系統(tǒng)前端頁(yè)面先捕捉到用戶(hù)填入的信息,通過(guò)Ajax異步交互技術(shù)將信息傳遞給服務(wù)器端,服務(wù)端自動(dòng)將用戶(hù)填入的信息與數(shù)據(jù)庫(kù)中的用戶(hù)信息進(jìn)行匹配,判斷用戶(hù)是否可以登錄系統(tǒng)或者使用相應(yīng)的功能。
資料管理模塊主要負(fù)責(zé)管理用戶(hù)上傳的案例數(shù)據(jù),資料管理模塊所包含的數(shù)據(jù),如圖3 所示,按照數(shù)據(jù)類(lèi)型可以分為數(shù)值數(shù)據(jù)、文本數(shù)據(jù)和文件數(shù)據(jù)。數(shù)值數(shù)據(jù)和文本數(shù)據(jù)主要包括案例的基本信息。系統(tǒng)將指導(dǎo)用戶(hù)按照固定結(jié)構(gòu)填寫(xiě)以上信息,在數(shù)據(jù)庫(kù)中,每個(gè)結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)類(lèi)型也是預(yù)先設(shè)置好的。文件類(lèi)型信息主要包含鐵路選線(xiàn)過(guò)程中涉及的各類(lèi)文件,用戶(hù)上傳文件時(shí)系統(tǒng)會(huì)自動(dòng)審核文件類(lèi)型,文件也將被自動(dòng)命名并存儲(chǔ)在服務(wù)器相對(duì)應(yīng)的文件夾中。
圖3 資料管理模塊
統(tǒng)計(jì)分析模塊主要負(fù)責(zé)對(duì)用戶(hù)上傳的選線(xiàn)案例數(shù)據(jù)進(jìn)行定量統(tǒng)計(jì)和定量分析。通過(guò)該模塊,用戶(hù)可以對(duì)單個(gè)鐵路選線(xiàn)案例信息和技術(shù)標(biāo)準(zhǔn)進(jìn)行縱向統(tǒng)計(jì)和分析,也可以對(duì)特定范圍內(nèi)的多個(gè)案例進(jìn)行橫向比較和定量統(tǒng)計(jì)。該功能模塊主要借助于MongoDB 數(shù)據(jù)強(qiáng)大的自定義檢索功能,在服務(wù)器端實(shí)現(xiàn)數(shù)據(jù)統(tǒng)計(jì),通過(guò)Ajax 和Session 存儲(chǔ)機(jī)制將統(tǒng)計(jì)結(jié)果和分析結(jié)果傳遞給前端展模塊。
案例查詢(xún)模塊主要負(fù)責(zé)數(shù)據(jù)庫(kù)中存儲(chǔ)的所有案例。用戶(hù)可以通過(guò)不同的搜索條件、不同的搜索方法找到與搜索條件相對(duì)應(yīng)的案例。系統(tǒng)提供3 種不同的搜索方式,分別是精確搜索、模糊搜索和聯(lián)合查詢(xún)。
(1)在精確搜索中用戶(hù)可以自主選擇搜索條件,便可獲得符合搜索條件的案例;
(2)模糊搜索功能即用戶(hù)不用完全輸入搜索條件字段,服務(wù)器會(huì)根據(jù)用戶(hù)填入的模糊搜索字段在數(shù)據(jù)庫(kù)中搜索包含該字段的鐵路選線(xiàn)案例;
(3)聯(lián)合搜索功能是用戶(hù)可以同時(shí)輸入多個(gè)搜索條件,系統(tǒng)會(huì)查找符合多個(gè)搜索條件的案例,并將案例信息傳遞至案例展示模塊。
案例展示模塊主要負(fù)責(zé)系統(tǒng)各個(gè)功能頁(yè)面的展示,通過(guò)HTML 和CSS 技術(shù),為系統(tǒng)的各個(gè)功能實(shí)現(xiàn)提供前端訪問(wèn)接口,用戶(hù)可以通過(guò)案例展示模塊訪問(wèn)不同的系統(tǒng)功能以及填寫(xiě)鐵路選線(xiàn)案例資料,實(shí)現(xiàn)前端數(shù)據(jù)到服務(wù)器后端的傳遞和運(yùn)輸。
數(shù)據(jù)可視化模塊主要負(fù)責(zé)將鐵路選線(xiàn)案例資料和從統(tǒng)計(jì)分析模塊中得到的結(jié)果通過(guò)圖表等豐富的可視化形式展現(xiàn)給用戶(hù)。該模塊主要利用了Echarts開(kāi)源8 可視化庫(kù)和MXDraw CAD 在線(xiàn)瀏覽插件,將選線(xiàn)案例信息數(shù)據(jù)、統(tǒng)計(jì)分析模塊中得到的結(jié)果數(shù)據(jù)和CAD 文件轉(zhuǎn)換為瀏覽器可以渲染識(shí)別的數(shù)據(jù)類(lèi)型。
根據(jù)資料管理模塊對(duì)鐵路選線(xiàn)案例資料的分類(lèi),系統(tǒng)的數(shù)據(jù)庫(kù)由案例信息數(shù)據(jù)庫(kù)和文檔信息數(shù)據(jù)庫(kù)兩部分組成。
鐵路選線(xiàn)案例資料不僅包含案例基本信息和相關(guān)技術(shù)指標(biāo)等易于被數(shù)據(jù)庫(kù)存儲(chǔ)的數(shù)據(jù),還包含一些線(xiàn)路平面圖、數(shù)據(jù)庫(kù)文件和地理信息文件等非結(jié)構(gòu)化的文檔數(shù)據(jù)。為了使系統(tǒng)更加輕量化和有序化,系統(tǒng)將結(jié)構(gòu)化數(shù)據(jù)分為數(shù)值型和字符串型2 種不同的數(shù)據(jù)類(lèi)型;將非結(jié)構(gòu)化的文檔數(shù)據(jù)按照文檔的名稱(chēng)和存儲(chǔ)位置重新命名,并且把新的路徑轉(zhuǎn)換為字符串類(lèi)型的數(shù)據(jù)?;贛ongoDB 數(shù)據(jù)庫(kù)屬于非關(guān)系型數(shù)據(jù)庫(kù),各個(gè)表單之間的連接和查詢(xún)沒(méi)有關(guān)系型數(shù)據(jù)庫(kù)那樣方便,所以我們對(duì)存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)表提前指定數(shù)據(jù)模型,并且使用了MongoDB 數(shù)據(jù)庫(kù)中自帶的Mongoose 類(lèi)庫(kù)作為中間件解決數(shù)據(jù)集合中數(shù)據(jù)操作困難的問(wèn)題。當(dāng)其他模塊需要對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行增刪改查等操作時(shí),Mongoose 類(lèi)庫(kù)會(huì)自動(dòng)拋出接口實(shí)現(xiàn)對(duì)數(shù)據(jù)的篩選和遍歷,同時(shí),還可以針對(duì)不同的限定條件,實(shí)現(xiàn)對(duì)特定數(shù)據(jù)的抓取。鐵路選線(xiàn)案例系統(tǒng)數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)表,如表1 所示。
表1 鐵路選線(xiàn)案例信息數(shù)據(jù)庫(kù)結(jié)構(gòu)
在鐵路選線(xiàn)案例系統(tǒng)數(shù)據(jù)庫(kù)中每一個(gè)表結(jié)構(gòu)都具有唯一的ID 作為主鍵,案例技術(shù)標(biāo)準(zhǔn)信息以數(shù)字和短文本形式存儲(chǔ)在數(shù)據(jù)庫(kù)中,其中,短文本的字段大小為255 byte,案例項(xiàng)目編號(hào)是數(shù)字類(lèi)型,字段大小為長(zhǎng)整型,項(xiàng)目名稱(chēng)、區(qū)域位置和設(shè)計(jì)日期作為案例基本信息是表中必要字段。
針對(duì)用戶(hù)上傳的鐵路線(xiàn)路的平縱斷面圖紙、實(shí)景照片以及設(shè)計(jì)說(shuō)明書(shū)等文檔類(lèi)型文件,系統(tǒng)在上傳文檔型數(shù)據(jù)時(shí)會(huì)增加一個(gè)文件傳輸通道以及相應(yīng)文檔的信息記錄,所調(diào)用的語(yǔ)句為:
系統(tǒng)會(huì)將所有文件按照其所屬類(lèi)型存儲(chǔ)至服務(wù)器中,同時(shí),文檔的各類(lèi)信息如文檔名稱(chēng)、類(lèi)型、存儲(chǔ)地址會(huì)和案例信息一起存儲(chǔ)在案例信息數(shù)據(jù)庫(kù)中,方便用戶(hù)下載和導(dǎo)出資料。
鐵路選線(xiàn)案例庫(kù)系統(tǒng)整體分為3 個(gè)功能平臺(tái):鐵路選線(xiàn)案例庫(kù)、案例分析應(yīng)用云平臺(tái)和案例信息管理系統(tǒng)。
鐵路選線(xiàn)案例庫(kù)為響應(yīng)式布局設(shè)計(jì),可根據(jù)客戶(hù)端的大小自適應(yīng)內(nèi)容比例,主要用于選線(xiàn)設(shè)計(jì)人員上傳和下載案例資料。用戶(hù)上傳的案例由后臺(tái)信息管理系統(tǒng)統(tǒng)一管理,案例信息包括案例編號(hào)、案例名稱(chēng)、案例所屬區(qū)域位置、設(shè)計(jì)日期等案例基本信息、鐵路等級(jí)、設(shè)計(jì)速度、線(xiàn)間距、軌道類(lèi)型和最小曲線(xiàn)半徑等技術(shù)設(shè)計(jì)標(biāo)準(zhǔn)。
案例分析應(yīng)用云平臺(tái)是系統(tǒng)的核心平臺(tái),主要用于分析和應(yīng)用用戶(hù)上傳的案例信息,讀取用戶(hù)上傳的平縱斷面圖、數(shù)據(jù)庫(kù)文件和設(shè)計(jì)說(shuō)明文檔等。基于讀取出來(lái)的數(shù)據(jù),案例分析應(yīng)用云平臺(tái)還會(huì)對(duì)選線(xiàn)案例做出評(píng)價(jià)和可視化分析。案例分析應(yīng)用云平臺(tái)包括聯(lián)合查詢(xún)、案例分析、案例庫(kù)比對(duì)、線(xiàn)路在線(xiàn)預(yù)覽和數(shù)據(jù)可視化5 個(gè)模塊。
(1)聯(lián)合查詢(xún)模塊可以通過(guò)收集用戶(hù)自定義填寫(xiě)的案例信息搜索項(xiàng),在鐵路選線(xiàn)案例庫(kù)中搜索相同或相似案例;
(2)案例分析模塊通過(guò)讀取用戶(hù)上傳的Access數(shù)據(jù)庫(kù)文件中的各項(xiàng)技術(shù)參數(shù),結(jié)合前端提供的報(bào)告模板,將其整合為案例分析報(bào)告;
(3)案例庫(kù)比對(duì)模塊是基于Echarts 圖表庫(kù)設(shè)計(jì)出來(lái)的信息統(tǒng)計(jì)圖表,主要負(fù)責(zé)展示鐵路選線(xiàn)案例庫(kù)中同一技術(shù)標(biāo)準(zhǔn)在案例庫(kù)中的統(tǒng)計(jì)信息,并且將統(tǒng)計(jì)信息加以處理,最終以圖表形式展現(xiàn)出來(lái);
(4)線(xiàn)路在線(xiàn)預(yù)覽模塊主要依靠不同的瀏覽器插件,系統(tǒng)讀取用戶(hù)上傳的平縱斷面圖和地理信息文件,將數(shù)據(jù)傳遞給客戶(hù)端插件,插件自動(dòng)將CAD圖紙、線(xiàn)路形狀和走向顯示給用戶(hù);
(5)數(shù)據(jù)可視化模塊主要負(fù)責(zé)將數(shù)據(jù)通過(guò)可視化技術(shù)進(jìn)行展示,方便用戶(hù)進(jìn)行不同案例之間的數(shù)據(jù)預(yù)覽和比對(duì)。
案例信息管理系統(tǒng)是便于用戶(hù)對(duì)自己上傳的案例進(jìn)行管理而設(shè)計(jì)的,主要包含案例編輯管理、案例應(yīng)用信息管理以及系統(tǒng)用戶(hù)管理3 大模塊。案例編輯模塊主要針對(duì)用戶(hù)想對(duì)自己上傳的案例操作時(shí)提供接口。案例應(yīng)用信息管理模塊可以統(tǒng)計(jì)用戶(hù)上傳案例的訪問(wèn)量和下載量,而系統(tǒng)用戶(hù)管理模塊是對(duì)系統(tǒng)用戶(hù)的登錄和登出,其流程,如圖4 所示,該模塊主要用于對(duì)登錄系統(tǒng)用戶(hù)的身份進(jìn)行核驗(yàn)以及對(duì)系統(tǒng)的日常維護(hù)。
圖4 用戶(hù)管理模塊流程
本文在分析鐵路選線(xiàn)案例特點(diǎn)的基礎(chǔ)上設(shè)計(jì)了鐵路選線(xiàn)案例表的結(jié)構(gòu),結(jié)合B/S 架構(gòu),遵循MVC前后端分層設(shè)計(jì)思想,構(gòu)建了鐵路選線(xiàn)案例系統(tǒng)的基本框架,同時(shí),介紹了鐵路選線(xiàn)案例庫(kù)、案例分析應(yīng)用云平臺(tái)和案例信息管理系統(tǒng)3 大主要功能模塊,為鐵路選線(xiàn)系統(tǒng)的建設(shè)提供了一定的理論支持。隨著鐵路選線(xiàn)的不斷完善和計(jì)算機(jī)技術(shù)水平的提高,鐵路選線(xiàn)案例系統(tǒng)的相關(guān)應(yīng)用功能還將不斷提升,以便更好地分析和應(yīng)用鐵路選線(xiàn)工程案例,真正地為鐵路選線(xiàn)工作者提供幫助。