李 琦,蔡海勇,林 楷
(中國鐵路南昌局集團(tuán)公司 南平車務(wù)段,南平 353000)
隨著鐵路運輸?shù)母咚侔l(fā)展,鐵路車務(wù)站段面臨日益復(fù)雜的安全形勢,迫切需要統(tǒng)一調(diào)度資源應(yīng)對突發(fā)情況并進(jìn)行高效的應(yīng)急處置。為此,全路各車務(wù)站段紛紛設(shè)立了安全生產(chǎn)指揮中心,統(tǒng)一協(xié)調(diào)調(diào)度各種資源進(jìn)行應(yīng)急快速反應(yīng)。在安全生產(chǎn)指揮中心進(jìn)行應(yīng)急處置時,信息的及時性和準(zhǔn)確性往往起到十分關(guān)鍵的作用。目前安全生產(chǎn)指揮中心的短板是缺少一個統(tǒng)一的信息平臺能夠便捷快速地獲得所需的應(yīng)急調(diào)度信息。車務(wù)站段的資料信息都分散在各個孤立的信息系統(tǒng)中,當(dāng)發(fā)生突發(fā)事件時獲取信息十分不方便,嚴(yán)重影響了應(yīng)急反應(yīng)速度和效率。
近年來,基于面向服務(wù)架構(gòu)(SOA,Service-Oriented Architecture)技術(shù)來集成信息,解決信息孤島問題,已成為信息集成技術(shù)的重要發(fā)展趨勢[1]。國內(nèi)外基于SOA的應(yīng)用已經(jīng)有大量成功案例。但是SOA架構(gòu)是一套完整體系,要實現(xiàn)SOA,需要對現(xiàn)有信息系統(tǒng)進(jìn)行改造。對于鐵路車務(wù)站段這種小型單位,在資金成本受限的情況下較難完成基于SOA架構(gòu)的信息集成應(yīng)用。本文根據(jù)鐵路站段實際情況,提出了適合鐵路車務(wù)站段使用的信息集成方法,并著重研究了信息集成的2項關(guān)鍵技術(shù),即Web Service技術(shù)和Python網(wǎng)頁爬取技術(shù)。
安全生產(chǎn)指揮輔助系統(tǒng)旨在整合管內(nèi)各信息系統(tǒng)的數(shù)據(jù),為應(yīng)急調(diào)度指揮提供統(tǒng)一的信息服務(wù),加強應(yīng)急處置能力。系統(tǒng)實現(xiàn)如下功能。
(1)地圖式導(dǎo)航展示:車務(wù)站段的各管內(nèi)單位按照其地理位置陳列在導(dǎo)航地圖上,進(jìn)行綜合信息展示,操作上可以實現(xiàn)所見即所得。
(2)信息資源整合:通過應(yīng)急指揮輔助系統(tǒng)可以訪問分布在不同信息系統(tǒng)中的各種共享信息,并按照業(yè)務(wù)需求進(jìn)行整合。
(3)應(yīng)急快速處置:系統(tǒng)提供應(yīng)急處置流程的分類檢索和查詢。
(4)決策支持:在資源信息整合的基礎(chǔ)上,通過數(shù)據(jù)挖掘等技術(shù),對信息進(jìn)行綜合、分析可視化,自動地對應(yīng)急指揮人員需要注意的安全問題進(jìn)行提示。
車務(wù)站段安全生產(chǎn)指揮輔助系統(tǒng)采用基于DWZ富客戶端(jQuery RIA framework)的Web架構(gòu)。DWZ富客戶端框架是國產(chǎn)開源輕量級的UI開發(fā)架構(gòu),具有快速開發(fā)、RIA思路和輕量級的特點。后臺系統(tǒng)采用MVC,即模型-視圖-控制器三層架構(gòu),實現(xiàn)業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離[2],在頁面改變、個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務(wù)邏輯。
該系統(tǒng)依托鐵路數(shù)據(jù)網(wǎng),采集人事信息系統(tǒng)、安全風(fēng)險管理系統(tǒng)、辦公OA系統(tǒng)、施工管理系統(tǒng)、視頻監(jiān)控系統(tǒng)和車站管理系統(tǒng)的相關(guān)數(shù)據(jù),向安全生產(chǎn)指揮中心人員提供統(tǒng)一的信息匯集平臺,如圖1所示。
系統(tǒng)功能主要包括安全生產(chǎn)指揮模塊、應(yīng)急處置模塊、規(guī)章文電庫模塊、短信平臺、通訊錄和工具箱模塊,如圖2所示。
圖2 系統(tǒng)組成及功能
安全生產(chǎn)指揮模塊是集成信息的核心功能模塊。模塊提供一張車務(wù)段所屬機(jī)構(gòu)的模擬地理信息系統(tǒng)(GIS,Geographic Information System)分布圖和一張地圖導(dǎo)航圖。
模擬GIS分布圖如圖3所示。其中每個車站都是可操作的節(jié)點,點擊節(jié)點可以顯示功能菜單,功能包括車站對應(yīng)的安全天、車站人員信息、通訊錄、站場平面圖、車站站細(xì)、車站管細(xì)、作業(yè)分析、施工信息、安全檢查問題庫、現(xiàn)場視頻監(jiān)控等內(nèi)容,充分發(fā)揮GIS地圖所見即所得的特性,方便工作人員進(jìn)行快捷操作。該GIS分布圖還實現(xiàn)了信息的綜合展示,例如查看某車站現(xiàn)場作業(yè)監(jiān)控視頻時,如果發(fā)現(xiàn)違章,可以立即查看作業(yè)人員的詳細(xì)人事檔案以及最近違章記錄等信息。
圖3 車務(wù)段所屬機(jī)構(gòu)的模擬GIS分布圖
導(dǎo)航圖提供今日施工、今日天窗和重點關(guān)注等功能。今日施工和今日天窗功能動態(tài)展示今日有施工和天窗的車站。在GIS地圖上會將今日有施工和天窗作業(yè)的車站標(biāo)紅提示,并顯示詳細(xì)信息。重點關(guān)注功能是在地圖上顯示后臺服務(wù)程序根據(jù)設(shè)定條件篩選出的本月需要重點關(guān)注的車站和人員,條件可以是車務(wù)段安全科發(fā)布的重點安全提示等信息。
應(yīng)急處理模塊將車務(wù)段的各種應(yīng)急處置方案和應(yīng)急流程圖進(jìn)行整理和匯總并提供檢索和目錄分類查詢功能。當(dāng)出現(xiàn)應(yīng)急情況時可以便捷獲取應(yīng)急處置資料進(jìn)行處置[3]。
規(guī)章文電庫模塊主要包括車務(wù)段的各種規(guī)章資料,同樣提供檢索和目錄查詢功能,由于規(guī)章文電庫經(jīng)常更新,為方便各科室進(jìn)行更新,系統(tǒng)采用FTP上傳,WEB瀏覽方式更新規(guī)章文電庫。
短信平臺是調(diào)度指揮人員發(fā)送短信對外聯(lián)系的操作平臺。受限于鐵路數(shù)據(jù)網(wǎng)專網(wǎng)專用的特點,短信目前是對外聯(lián)系的便捷通道。
通訊錄主要采集人事管理系統(tǒng)中的人員通訊信息,并提供給調(diào)度指揮人員供其進(jìn)行便捷查詢。
工具箱模塊主要提供一些常用的系統(tǒng)鏈接和工具軟件供調(diào)度指揮人員使用。
車務(wù)段模擬GIS地圖采用可縮放矢量圖形(SVG,Scalable Vector Graphics)繪圖技術(shù)。SVG基于可擴(kuò)展標(biāo)記語言(XML,Extensible Markup Language),是一種用于描述二維矢量圖形的圖形格式[4]。SVG具有尺寸小、可壓縮性強、可伸縮以及開放性等優(yōu)點,且在任何分辨率下都可高質(zhì)量地被打印。SVG編程主要有以下2個難點。
3.1.1 SVG地圖分辨率自適應(yīng)
客戶端顯示器的分辨率大小存在較大差異,從低的1024×768到1920×1024甚至更高, SVG地圖需能同時適應(yīng)這些不同的分辨率。需要以下步驟來解決該問題。
(1)添加preserveAspectRatio=“xMinYMin meet”屬性,指定SVG圖形從屏幕的最左上角開始顯示,并且保持等比縮放。
(2)利用SVG的viewBox屬性。viewBox是SVG的虛坐標(biāo)體系。根節(jié)點SVG元素添加viewBox屬性后,在SVG下的各圖形元素的大小和位置都依據(jù)viewBox限定的坐標(biāo),而不是頁面的實際坐標(biāo)。本系統(tǒng)設(shè)定viewBox=“0 0 800 3000”,即將SVG頁面分成800×3000個小格。
(3)設(shè)置好viewBox屬性后,再用Js函數(shù)動態(tài)設(shè)定svg元素的高和寬,從而進(jìn)行分辨率的自動適應(yīng)和調(diào)整[5]。
3.1.2 地圖節(jié)點動態(tài)定制
前期SVG地圖上的節(jié)點坐標(biāo)是保存在配置文件中的,但這種方法無法滿足地圖上節(jié)點需要動態(tài)調(diào)整的需求。目前系統(tǒng)采用將節(jié)點信息保存在數(shù)據(jù)庫中的方法。Web頁面通過讀取數(shù)據(jù)庫中機(jī)構(gòu)信息表,動態(tài)繪制節(jié)點。同時,在系統(tǒng)中另外增加一個定制調(diào)整地圖的頁面。用鼠標(biāo)拖拽節(jié)點到指定位置,即可保存節(jié)點坐標(biāo)到數(shù)據(jù)庫中,從而完成節(jié)點位置的動態(tài)調(diào)整。
車務(wù)段的人事信息系統(tǒng),辦公OA系統(tǒng)和文件系統(tǒng)等都是獨立運行。其開發(fā)廠商和開發(fā)時間都不同,僅提供基于HTML的Web訪問方式。例如施工信息是辦公OA系統(tǒng)中的一個子模塊,每天由科室人員負(fù)責(zé)錄入。為便于利用辦公OA等信息系統(tǒng)的數(shù)據(jù),避免重復(fù)勞動,在安全生產(chǎn)指揮輔助系統(tǒng)中設(shè)置了一個后臺服務(wù)程序,根據(jù)對接系統(tǒng)的不同,分兩種情況進(jìn)行處理。
3.2.1 自研信息系統(tǒng)處理方式
對于信息系統(tǒng)是自研系統(tǒng)的情況,專門開發(fā)基于Web Service的服務(wù)接口,后臺程序通過調(diào)用服務(wù)接口來獲取信息。Web Service是非常成熟的技術(shù),有大量的應(yīng)用案例。它是一個平臺獨立的、低耦合的、自包含的、基于可編程的Web的應(yīng)用程序[6],可使用開放的XML標(biāo)準(zhǔn)來描述、發(fā)布、發(fā)現(xiàn)、協(xié)調(diào),為企業(yè)業(yè)務(wù)流程的集成提供了一個通用機(jī)制[7]。本系統(tǒng)針對車站管理系統(tǒng)、辦公OA系統(tǒng)都開發(fā)了相應(yīng)的Web Service接口。
3.2.2 專業(yè)廠商開發(fā)的信息系統(tǒng)處理方式
對于專業(yè)廠商開發(fā)的系統(tǒng),且系統(tǒng)未提供Web Service服務(wù)接口的情況,后臺程序通過基于Python技術(shù)的網(wǎng)頁爬取方法,每日定時讀取信息,將信息轉(zhuǎn)入安全生產(chǎn)指揮輔助系統(tǒng)中,較好地解決了信息共享的問題。之所以使用Python進(jìn)行開發(fā),是由于Python不僅具有簡單速度快、免費開源的特點,更重要的是它具有豐富的庫,可以高效地處理各種工作。網(wǎng)頁爬取有很多免費的庫可以使用[8]。本系統(tǒng)的后臺程序使用了Requests庫、BeautifulSoup庫和Re庫進(jìn)行網(wǎng)頁爬取和分析。后臺程序需要獲取安全管理信息系統(tǒng)中每日安全信息,而安全管理信息系統(tǒng)是用ASP.Net開發(fā)的系統(tǒng),動態(tài)頁面較多,這就需要通過使用Charles網(wǎng)頁抓包工具,分析出Web頁面的請求參數(shù),然后利用Python的Requests庫模擬瀏覽器進(jìn)行操作,提取出Web返回信息,再利用BeautifulSoup庫對提取的信息進(jìn)行結(jié)構(gòu)化解析。解析數(shù)據(jù)采用以下兩種方式。
(1)對于結(jié)構(gòu)清晰的數(shù)據(jù),經(jīng)過BeautifulSoup庫解析即可直接得到結(jié)果。
(2)如果數(shù)據(jù)結(jié)構(gòu)復(fù)雜,單靠BeautifulSoup庫無法獲取需要的結(jié)果,則需要使用Re庫進(jìn)行聯(lián)合解析[9],Re庫是正則表達(dá)式庫,在Python中通過Re庫,可以直接調(diào)用來實現(xiàn)正則匹配。正則表達(dá)式模式被編譯成一系列的字節(jié)碼,然后由C編寫的匹配引擎執(zhí)行[10]。例如安全管理信息系統(tǒng)中有一段信息是采用樹形結(jié)構(gòu)進(jìn)行展示的,系統(tǒng)為了找到以id為Treeview_DWDMt開頭,以1位到3位數(shù)字結(jié)尾的節(jié)點,使用了如下的語句進(jìn)行查找:
系統(tǒng)經(jīng)過一個月的試用,取得了令人滿意的效果,受到生產(chǎn)指揮人員的好評,目前已正式投入生產(chǎn)運行,有效加強了車務(wù)站段的快速應(yīng)急處置能力。但是系統(tǒng)也存在一些不足,如信息采集與信息展示的耦合性還太強,而信息采集部分在不同應(yīng)用場景具有較強定制性,為了便于推廣需要降低信息采集與信息展示的耦合性,另外頁面需進(jìn)一步加強操作便利性等,是今后系統(tǒng)要改善的方向。