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