李士東
(河北遠(yuǎn)東哈里斯通信有限公司,河北石家莊 050200)
隨著社會的飛速發(fā)展,交通擁擠問題日益突出,嚴(yán)重影響了人們的生活和國家經(jīng)濟建設(shè),軌道交通是緩解交通擁擠問題的一個強有力的交通工具。
軌道交通是一個復(fù)雜的系統(tǒng),其可靠高效運營需要眾多相關(guān)系統(tǒng)相互協(xié)作和大力支持。專用通信系統(tǒng)在其中發(fā)揮舉足輕重的作用,它為地鐵運營提供通信保障。專用通信系統(tǒng)主要包括:傳輸、無線、公務(wù)電話、專用電話、閉路電視、時鐘、廣播、電源、集中告警等至少9個子系統(tǒng)[1]。
集中告警系統(tǒng)是軌道交通專用通信系統(tǒng)中一個重要的組成部分,它實時監(jiān)控其他各子系統(tǒng)的運行狀況,為維護人員提供全網(wǎng)絡(luò)運行視圖,是專用通信系統(tǒng)的運維支撐系統(tǒng)。
集中告警系統(tǒng)整體結(jié)構(gòu)如圖1所示。
圖1 集中告警系統(tǒng)結(jié)構(gòu)
集中告警系統(tǒng)采用分層設(shè)計,主要包括前置機、告警解析服務(wù)器、應(yīng)用服務(wù)器和客戶端。
前置機負(fù)責(zé)采集各子系統(tǒng)的告警數(shù)據(jù),將不同協(xié)議的告警數(shù)據(jù)轉(zhuǎn)換成系統(tǒng)內(nèi)部統(tǒng)一格式并存入數(shù)據(jù)庫。
告警解析服務(wù)器根據(jù)不同設(shè)備類型的告警狀態(tài)匹配規(guī)則進(jìn)行告警分析定位,將分析結(jié)果提交給應(yīng)用服務(wù)器。
應(yīng)用服務(wù)器將告警結(jié)果轉(zhuǎn)發(fā)給客戶端顯示,并響應(yīng)客戶端的各種操作指令。
客戶端主要提供人機操作界面,通過監(jiān)控拓?fù)湟晥D來顯示網(wǎng)絡(luò)及設(shè)備的運行狀態(tài)。
集中告警系統(tǒng)的建設(shè)難點在于:①管理設(shè)備類型眾多,接口協(xié)議繁雜;②監(jiān)控場景視圖千變?nèi)f化。
專用通信系統(tǒng)至少包含8個子系統(tǒng),不同的子系統(tǒng)由不同的設(shè)備供應(yīng)商提供,各子系統(tǒng)告警接口協(xié)議一般都由設(shè)備供應(yīng)商自己定義,而且多采用私有接口協(xié)議[3]。
不同子系統(tǒng)功能不同,設(shè)備組網(wǎng)方式及配置情況差異巨大,因此抽象出的監(jiān)控場景視圖也不同,且隨時可能發(fā)生改變。
通常解決這種問題最簡單的方案就是定制系統(tǒng),為每個項目開發(fā)一套集中告警系統(tǒng),這樣做存在如下缺陷:①項目通用性差,不能一勞永逸解決同一個問題,每個項目都需要重新投入人力物力;②項目后期維護成本增加,版本管理困難,每個項目一個版本,對于共性的bug解決需要n份雷同工作。該系統(tǒng)要解決上述難點問題并避免定制系統(tǒng)帶來的缺陷[4]。
前置機直接與被監(jiān)控系統(tǒng)通信,采集設(shè)備告警,需要設(shè)計成接口可靈活擴充的軟件結(jié)構(gòu)[5]。前置機軟件結(jié)果如圖2所示。
圖2 前置機軟件結(jié)構(gòu)
前置機接口適配層設(shè)計成橫向可擴充結(jié)構(gòu),接口實體間沒有任何耦合,接入新協(xié)議只需橫向擴充一個全新接口實體即可[6]。接口實體將不同格式規(guī)約的告警數(shù)據(jù)轉(zhuǎn)換成內(nèi)部可識別的統(tǒng)一格式,然后存入數(shù)據(jù)庫,并通知告警解析服務(wù)器。
前置機與告警解析服務(wù)器間采用面向連接TCP私有協(xié)議通信。
前置機各接口實體通過DLL的方式實現(xiàn),前置機初始化時動態(tài)加載DLL。新增設(shè)備類型時只需增加一個全新的DLL接口實體。
前置機雖然將告警轉(zhuǎn)換成統(tǒng)一格式[7],但不同設(shè)備的告警狀態(tài)匹配規(guī)則不同,有的通過告警級別匹配(如1~4級表示故障,5級表示恢復(fù));有的通過“告警類/告警號”匹配(如“通信故障/1”表示故障,“通信故障/2”表示恢復(fù))。
告警解析服務(wù)器主要根據(jù)不同設(shè)備類型的告警狀態(tài)匹配規(guī)則進(jìn)行告警分析定位,產(chǎn)生內(nèi)部告警數(shù)據(jù)結(jié)構(gòu),程序結(jié)構(gòu)如圖3所示。
圖3 告警解析服務(wù)器軟件結(jié)構(gòu)
告警解析服務(wù)器從數(shù)據(jù)庫提取告警數(shù)據(jù),根據(jù)設(shè)備類型進(jìn)行數(shù)據(jù)調(diào)度,把告警數(shù)據(jù)分發(fā)到對應(yīng)的告警解析實體,告警解析實體通過DLL的形式實現(xiàn),在程序初始化時動態(tài)加載進(jìn)來。新增設(shè)備類型時除了前置機上增加一個DLL接口實體,告警解析服務(wù)器也需增加一個全新的DLL解析實體。
內(nèi)部告警數(shù)據(jù)結(jié)構(gòu)是一個內(nèi)存鏈表,數(shù)據(jù)保存在數(shù)據(jù)庫中,程序啟動后加載到內(nèi)存,其內(nèi)按告警級別記錄著系統(tǒng)每個故障單元對應(yīng)的故障告警個數(shù)及恢復(fù)告警個數(shù)。
告警解析實體根據(jù)告警狀態(tài)匹配規(guī)則進(jìn)行告警分析。如為故障狀態(tài)告警則把對應(yīng)故障單元的故障告警數(shù)加1;如為恢復(fù)狀態(tài)告警則清除之前存在的相匹配的故障告警(假設(shè)故障告警n個,n≥0),把對應(yīng)故障單元的故障告警數(shù)減n,恢復(fù)告警數(shù)加n+1,產(chǎn)生內(nèi)部告警數(shù)據(jù)結(jié)構(gòu),將數(shù)據(jù)入庫并通知應(yīng)用服務(wù)器。告警解析服務(wù)器與應(yīng)用服務(wù)器間采用面向連接TCP私有協(xié)議通信。
應(yīng)用服務(wù)器負(fù)責(zé)將內(nèi)部告警數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)發(fā)給在線客戶端;同時對客戶端提交的數(shù)據(jù)進(jìn)行后臺分析處理并入庫,將處理結(jié)果返回給客戶端。
客戶端可以實現(xiàn)系統(tǒng)告警的圖形化管理,告警可以定位到板卡或者端口級別。但不同集中告警系統(tǒng)管理的設(shè)備不同,設(shè)備外觀及配置也各不相同,這就為系統(tǒng)圖形化管理帶來了困難。為了不走定制路線,系統(tǒng)需要提供一個設(shè)備無關(guān)的拓?fù)鋱鼍埃?]編輯工具,可以根據(jù)設(shè)備組網(wǎng)及配置情況利用各種形狀的圖元進(jìn)行拓?fù)渚庉?。拓?fù)渚庉嬙砣鐖D4所示。
圖4 拓?fù)渚庉嬙?/p>
一個監(jiān)控拓?fù)溆扇舾蓚€圖層構(gòu)成,圖層間有嚴(yán)格的隸屬關(guān)系,一個圖層可有多個子層,子層下還可再有子層,依此類推。拓?fù)渚庉嫴捎脠D4所示的倒樹型拓?fù)渚庉嫿Y(jié)構(gòu),由一個根節(jié)點可以擴充出不同的子圖層構(gòu)成一個完整的監(jiān)控拓?fù)?。每個圖層有唯一的圖層索引,圖層索引代表了該圖層在整個拓?fù)渲械奈恢眯畔?。?-1的父層是1;1-2-1的父層是1-2;1-1有2個子層1-1-1和1-1-2。
可以在一個圖層中添加設(shè)備網(wǎng)元,設(shè)備網(wǎng)元的屬性包括設(shè)備類型、設(shè)備名稱、目的圖層和通信參數(shù)等。在該圖層的子層中編輯設(shè)備的機架圖,每個設(shè)備網(wǎng)元都有一個目的圖層,目的圖層指向機架圖所在的圖層。這樣點擊設(shè)備網(wǎng)元就可以切換到目的圖層(機架圖),一般機架圖層都是設(shè)備圖層的子層。機架圖層主要通過圖元的組合來描述設(shè)備的詳細(xì)構(gòu)成,如模塊、板卡和端口等信息,機架圖層內(nèi)的每個組成圖元代表一個故障單元,故障單元的屬性包括所屬設(shè)備、單元名稱和告警位置等。
系統(tǒng)通過圖層索引保存拓?fù)浣Y(jié)構(gòu),通過圖元數(shù)據(jù)流保存圖層內(nèi)數(shù)據(jù)信息,并提取圖層內(nèi)的設(shè)備信息及故障單元信息另表保存。
系統(tǒng)初始化時讀取所有故障單元信息,依此建立內(nèi)部告警數(shù)據(jù)結(jié)構(gòu)內(nèi)存鏈表,用來保存每個故障單元的告警個數(shù)。
客戶端收到服務(wù)器轉(zhuǎn)發(fā)的內(nèi)部告警數(shù)據(jù)結(jié)構(gòu)后,將對應(yīng)的內(nèi)存鏈表更新,然后根據(jù)新數(shù)據(jù)刷新監(jiān)控拓?fù)渖系母婢甘?,把指示定位到對?yīng)圖層的對應(yīng)故障單元上,根據(jù)不同告警級別通過不同顏色來顯示告警狀態(tài)。告警顯示具有向上傳遞性,當(dāng)一個故障單元產(chǎn)生告警后,會逐層反應(yīng)到父層對應(yīng)的網(wǎng)元上,直至最頂層拓?fù)洹>S護人員見到告警指示后,可以由設(shè)備網(wǎng)元點擊逐層深入,直到最底層查看具體的故障位置及故障詳細(xì)信息。
客戶端收到告警數(shù)據(jù)結(jié)構(gòu)后除了在監(jiān)控拓?fù)渖线M(jìn)行顏色指示外,還可將告警信息送給告警箱,由告警箱進(jìn)行燈光顯示及聲音提示;還可以通過聲卡播放告警提示音。
客戶端還為維護管理人員提供各種應(yīng)用功能接口,如:告警清除、告警受理、告警查詢、告警打印、告警統(tǒng)計以及告警報表等。
測試的目標(biāo)是驗證通過上述設(shè)計方案實現(xiàn)集中告警系統(tǒng)的穩(wěn)定性、可靠性及系統(tǒng)擴充能力。
測試設(shè)備的網(wǎng)絡(luò)配置結(jié)構(gòu)如圖5所示。
圖5 集中告警系統(tǒng)測試結(jié)構(gòu)
測試需要的設(shè)備包括:服務(wù)器、客戶端和各子系統(tǒng)接口測試Demo。為了簡化測試環(huán)境,在一個服務(wù)器上部署前置機程序、告警解析程序及應(yīng)用服務(wù)器程序;各子系統(tǒng)接口測試Demo通常由子系統(tǒng)廠家提供,各接口測試Demo可以部署在同一臺計算機上,也可分開部署。
按照各子系統(tǒng)提供的組網(wǎng)及設(shè)備配置資料進(jìn)行拓?fù)渚庉嫓y試,拓?fù)渚庉嫻ぞ呖梢造`活方便建立監(jiān)控拓?fù)?,形象描述設(shè)備網(wǎng)絡(luò)及設(shè)備機架圖。證明了該系統(tǒng)拓?fù)渚庉嫷脑O(shè)備無關(guān)性與靈活性。
根據(jù)各子系統(tǒng)提供的接口協(xié)議文檔,在集中告警系統(tǒng)上擴充前置機的接口實體DLL和告警解析的解釋實體DLL。DLL實現(xiàn)后可以動態(tài)加載到集中告警平臺里,證明了接口管理的實用性與靈活性。
通過各子系統(tǒng)接口Demo向集中告警系統(tǒng)模擬發(fā)送告警,告警可以在監(jiān)控拓?fù)渖隙ㄎ徊⒄_顯示,可以驅(qū)動聲光告警。證明了接口實體DLL及解析實體DLL工作正常,與平臺結(jié)合良好。
各測試Demo定時1 ms向集中告警系統(tǒng)發(fā)送告警數(shù)據(jù)。系統(tǒng)沒有彈出異常,告警顯示準(zhǔn)確,證明了系統(tǒng)的穩(wěn)定性與可靠性。
測試結(jié)果證明,分層設(shè)計的集中告警系統(tǒng)穩(wěn)定可靠,擴充能力極強,設(shè)計是可行的。
目前該集中告警系統(tǒng)在國內(nèi)多條軌道交通系統(tǒng)上部署應(yīng)用,取得了廣泛好評。實踐證明了該系統(tǒng)完全達(dá)到了預(yù)期效果,有效地避免了定制系統(tǒng)帶來的缺陷,大大減少了系統(tǒng)后期開發(fā)投入,降低了集中告警系統(tǒng)軟件維護成本。分層可擴展的架構(gòu)設(shè)計提高了系統(tǒng)的生命力;監(jiān)控場景動態(tài)繪制滿足了千變?nèi)f化的用戶現(xiàn)場環(huán)境。同時對其他網(wǎng)管類、監(jiān)控類系統(tǒng)的實現(xiàn)具有很強的參考價值。
[1]陳桂漢.綜合電信管理解決方案[M].北京:電子工業(yè)出版社,2002:10-230.
[2]徐海軍.電信網(wǎng)管發(fā)展的五大趨勢[N].通信產(chǎn)業(yè)報,2004,第14期(第39版).
[3]李國寧,劉伯鴻.城市軌道交通綜合監(jiān)控系統(tǒng)及集成[M].北京:西南交通大學(xué)出版社,2011:20-330.
[4]張利彪.城市軌道交通信號與通信系統(tǒng)[M].北京:人民交通出版社,2010:5-90.
[5]賈毓杰.城市軌道交通通信與信號[M].北京:機械工業(yè)出版社,2009:45-160.
[6]李曉江.城市軌道交通技術(shù)規(guī)范實施指南[M].北京:中國建筑工業(yè)出版社,2009:50-280.
[7]李千日.軟件體系結(jié)構(gòu)設(shè)計[M].北京:清華大學(xué)出版社,2008:30-370.
[8]田超.多技術(shù)網(wǎng)絡(luò)管理(TMF MTNM)體系綜述[J].無線電工程,2005,31(4):25-29.