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