高東明
(山西省交通科技研發(fā)有限公司,山西 太原 030032)
根據(jù)國家《推動取消高速公路省界收費站總體技術(shù)方案》所述,各省會取消和拆除當(dāng)下的物理高速公路省界收費站,實現(xiàn)全國路網(wǎng)的“一張網(wǎng)”運行[1]?;谶@種新政策的推動,高速公路聯(lián)網(wǎng)收費行業(yè)的運營、管理和服務(wù)要求也隨之產(chǎn)生改變,催生了全國14萬km高速公路約1.5萬自由流虛擬站的建設(shè)[2]。而怎樣對這些終端做集成并形成控制策略,從而實現(xiàn)智能管控是一個難題。因設(shè)備等資源遍布全省各地,為了提升海量資產(chǎn)的管理和運維工作,建設(shè)統(tǒng)一運維管控平臺就顯得尤為重要。
統(tǒng)一運維平臺(以下統(tǒng)一簡稱系統(tǒng))采用基于SOA的多層軟件架構(gòu),將應(yīng)用程序的不同功能單元(稱為服務(wù))進行拆分,并通過這些服務(wù)之間定義良好的接口和協(xié)議聯(lián)系起來。對外具備統(tǒng)一接口適配層,通過流程管理和業(yè)務(wù)服務(wù)模塊化設(shè)計,實現(xiàn)生產(chǎn)維護流程與集中監(jiān)控等功能。
該系統(tǒng)所采用的技術(shù)是基于成熟且穩(wěn)定的J2EE技術(shù)。同時采用B/S架構(gòu),實現(xiàn)系統(tǒng)的集中部署和分布式部署,有利于系統(tǒng)的升級和維護。采用MVC開發(fā)模式,參照SOA架構(gòu)進行功能設(shè)計,可以在不影響現(xiàn)有系統(tǒng)功能正常使用的情況下快速擴展業(yè)務(wù)功能。系統(tǒng)可以根據(jù)實際業(yè)務(wù)量擴充部分功能的容量,在滿足系統(tǒng)運行需求的同時,將成本降到最低。系統(tǒng)采用分布式部署,功能隔離,可以使系統(tǒng)整體穩(wěn)定運行[3]。
系統(tǒng)整體架構(gòu)采用消息中間件技術(shù),起到了“平臺+通信”的作用。一方面,進一步的開發(fā)工作可以建立在統(tǒng)一的開發(fā)環(huán)境(平臺)上,不需要關(guān)心網(wǎng)絡(luò)編程的具體技術(shù)細節(jié),大大簡化了設(shè)計和編程工作。另一方面,消息通信完全由中間件負責(zé),用戶只需要關(guān)注業(yè)務(wù)系統(tǒng)的運行和開發(fā),大大提高了效率。構(gòu)件化應(yīng)用開發(fā)框架總體技術(shù)架構(gòu)如圖1所示。
圖1 系統(tǒng)總體技術(shù)架構(gòu)圖
該基于服務(wù)的技術(shù)架構(gòu)由5層組成,自底向上依次為業(yè)務(wù)數(shù)據(jù)層、基于構(gòu)件化的業(yè)務(wù)邏輯層、業(yè)務(wù)服務(wù)層、業(yè)務(wù)流程層、應(yīng)用表示層。其中前3個層級構(gòu)成了服務(wù)提供系統(tǒng),在業(yè)務(wù)服務(wù)層提供可用服務(wù);后兩層級與業(yè)務(wù)服務(wù)層構(gòu)成了服務(wù)消費系統(tǒng),在業(yè)務(wù)服務(wù)層對可用服務(wù)進行消費。此模式基于分布式流處理平臺kafka來實現(xiàn),構(gòu)造了實時流數(shù)據(jù)管道,實現(xiàn)了服務(wù)的提供和服務(wù)的消費,不但可以儲存流式的服務(wù),并且有較好的服務(wù)容錯性。
服務(wù)提供系統(tǒng)中的業(yè)務(wù)數(shù)據(jù)層由系統(tǒng)的硬件資源構(gòu)成,包括工控機、服務(wù)器、數(shù)據(jù)庫等的相應(yīng)數(shù)據(jù)指標(biāo),以及Hadoop分布式文件系統(tǒng)中的各類數(shù)據(jù)。業(yè)務(wù)邏輯層是基于構(gòu)件來搭建的,每個構(gòu)件明確發(fā)布自己對外公開的服務(wù)接口,它獨立于實現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)以及編程語言,保證了構(gòu)件在各種各樣系統(tǒng)中的服務(wù)可以統(tǒng)一進行交互。通過業(yè)務(wù)邏輯層對業(yè)務(wù)數(shù)據(jù)的處理,形成了業(yè)務(wù)服務(wù)層的各種服務(wù),供服務(wù)消費系統(tǒng)進行消費。
服務(wù)消費系統(tǒng)從業(yè)務(wù)服務(wù)層獲取服務(wù),并在業(yè)務(wù)流程層對獲得的服務(wù)進行邏輯處理,形成對應(yīng)的數(shù)據(jù)供應(yīng)用表示層使用。應(yīng)用表示層采取了portlets容器生產(chǎn)動態(tài)內(nèi)容,提供信息系統(tǒng)的表示層。實現(xiàn)了Web應(yīng)用的模塊化和用戶中心化。應(yīng)用表示層基于springboot、springMVC、mybatis 技術(shù)棧構(gòu)建,對于復(fù)雜的系統(tǒng)則采用springCloud構(gòu)建。為了保證后臺業(yè)務(wù)和前端的數(shù)據(jù)交換主要在業(yè)務(wù)服務(wù)層進行,系統(tǒng)采取了4層分隔的架構(gòu):controller/service/dao/entity。系統(tǒng)采取了3層B/S結(jié)構(gòu)來構(gòu)建應(yīng)用,應(yīng)用的各層可以并行開發(fā),也可以選擇各自最適合的開發(fā)語言。這樣按層分割功能,可以使得各個程序的處理邏輯變得比較簡單,也提高了程序的可維護性。
傳統(tǒng)的關(guān)系型數(shù)據(jù)存放于Oracle中,具體分為業(yè)務(wù)數(shù)據(jù)庫和報表數(shù)據(jù)庫。業(yè)務(wù)數(shù)據(jù)庫存放基礎(chǔ)資源、用戶權(quán)限、工單告警等內(nèi)容。報表數(shù)據(jù)庫則存放歷史數(shù)據(jù)。
非關(guān)系型數(shù)據(jù)采用分布式文件系統(tǒng)存儲。由于統(tǒng)一運維平臺會采集各個服務(wù)集群的各類數(shù)據(jù),對采集到的數(shù)據(jù)進行實時處理和非實時處理,所以可以根據(jù)數(shù)據(jù)存儲使用的性能對數(shù)據(jù)進行分類存儲。準(zhǔn)實時數(shù)據(jù)存放于MongoDB數(shù)據(jù)庫,實時數(shù)據(jù)存放在內(nèi)存數(shù)據(jù)庫redis中,由于該運維監(jiān)控系統(tǒng)還要存儲歷史性能、日志、歷史告警等海量數(shù)據(jù),所以采用了基于大數(shù)據(jù)的Hadoop數(shù)據(jù)庫進行存儲。這3種數(shù)據(jù)庫對非關(guān)系型數(shù)據(jù)的存儲形成了基于大數(shù)據(jù)的統(tǒng)一存儲解決方案,通過分析處理,將抽取出的數(shù)據(jù)放入關(guān)系型數(shù)據(jù)庫Oracle中,供各個服務(wù)集群和Oracle數(shù)據(jù)庫進行業(yè)務(wù)數(shù)據(jù)的交互。系統(tǒng)數(shù)據(jù)存儲架構(gòu)如圖2所示。
圖2 系統(tǒng)數(shù)據(jù)存儲架構(gòu)圖
統(tǒng)一運維管控平臺數(shù)據(jù)架構(gòu)特點:業(yè)務(wù)資源、部分報表數(shù)據(jù)存放于關(guān)系數(shù)據(jù)庫,性能、日志等數(shù)據(jù)存放于NoSQL數(shù)據(jù)庫。實時計算數(shù)據(jù)存放于內(nèi)存數(shù)據(jù)庫,各類數(shù)據(jù)由物理庫管理,數(shù)據(jù)存儲于磁盤陣列;采用大數(shù)據(jù)+關(guān)系數(shù)據(jù)庫+實時數(shù)據(jù)庫有機統(tǒng)一管理方式,滿足了大規(guī)模分布式數(shù)據(jù)管理的各類需求。
對于收費單元及設(shè)備需要提供高級別安全監(jiān)控管理,無人值守收費單元及設(shè)備可實現(xiàn)動環(huán)和安全聯(lián)網(wǎng)、統(tǒng)一搶修、調(diào)度管理,建立運維監(jiān)控系統(tǒng),支持全網(wǎng)指揮調(diào)度管理。
統(tǒng)一運維管理平臺采取自底向上的方法來搭建功能架構(gòu)。整體功能架構(gòu)由5個層次構(gòu)成,包括數(shù)據(jù)來源層、數(shù)據(jù)采集層、數(shù)據(jù)處理層、業(yè)務(wù)應(yīng)用層、功能展示層。這樣可以使得每一層次的功能專心處理自己的業(yè)務(wù),不擔(dān)心數(shù)據(jù)之間的混淆和影響,保證數(shù)據(jù)處理的唯一性和安全性。具體功能如圖3所示。
圖3 系統(tǒng)功能結(jié)構(gòu)圖
系統(tǒng)由軟件系統(tǒng)和硬件系統(tǒng)構(gòu)成。其中硬件包括了大量的業(yè)務(wù)設(shè)備、動力設(shè)備、環(huán)境傳感器、視頻監(jiān)控設(shè)備等。這些硬件設(shè)備組成了數(shù)據(jù)來源層。數(shù)據(jù)來源層向上給數(shù)據(jù)采集層推送采集到的數(shù)據(jù)。
數(shù)據(jù)采集層完成如下業(yè)務(wù):對監(jiān)控設(shè)備的各類相關(guān)數(shù)據(jù)進行采集,對采集到的數(shù)據(jù)進行指令下發(fā)、接口適配。數(shù)據(jù)采集層是一個多任務(wù)化的功能單元,所以會涉及到對多個任務(wù)的調(diào)度管理。在這里筆者采取了類似于嵌入式實時操作系統(tǒng)的調(diào)度方法(FIFO),即先來先服務(wù)的調(diào)度模式。數(shù)據(jù)來源層向上推送所監(jiān)控的設(shè)備信息,先被推送到的信息先接受處理,其他信息根據(jù)推送的時間進行排隊等待處理。其中待處理的信息保存在數(shù)據(jù)緩存區(qū)中,由調(diào)度系統(tǒng)根據(jù)調(diào)度算法FIFO進行提取和處理。安全管理和性能管理模塊可以保證數(shù)據(jù)的安全不被篡改,同時提供對數(shù)據(jù)的整理和優(yōu)化。其中數(shù)據(jù)采集層還包括告警采集功能模塊,此模塊的具體工作原理如圖4所示。
圖4 告警系統(tǒng)具體工作原理圖
a)在進行告警采集的過程中需要配置告警過濾規(guī)則,消除無用告警以及呈現(xiàn)界面用戶關(guān)心的告警信息。告警過濾規(guī)則的配置支持告警采集層的過濾規(guī)則配置以及處理和呈現(xiàn)層的過濾規(guī)則配置。
b)系統(tǒng)能對各種告警處理需求細分。智能告警引擎將通過規(guī)則計算,提供針對性的告警分析、處理能力,組合成一個完整的告警處理引擎,面向上層應(yīng)用提供各種可定制的服務(wù)。其中規(guī)則引擎作為一個組件嵌入到系統(tǒng)的應(yīng)用程序中執(zhí)行,實現(xiàn)將告警的分析、處理規(guī)則從應(yīng)用程序代碼中分離出來的功能,它的處理過程就是接受數(shù)據(jù)輸入,解釋業(yè)務(wù)規(guī)則,并根據(jù)規(guī)則作出相應(yīng)的執(zhí)行動作。告警事件的過濾有兩個層次:一個是告警采集層的過濾,在告警采集底層設(shè)置開關(guān),過濾掉無用或不關(guān)心的告警;二是處理和呈現(xiàn)層的過濾,使界面用戶可根據(jù)自己情況處理。系統(tǒng)支持用戶根據(jù)自己關(guān)注的角度設(shè)置告警信息展現(xiàn)過濾條件,過濾出自己關(guān)心的告警信息。
數(shù)據(jù)處理層包括數(shù)據(jù)清洗、數(shù)據(jù)過濾、數(shù)據(jù)存儲、數(shù)據(jù)轉(zhuǎn)換等功能模塊,對數(shù)據(jù)采集層向上推送的數(shù)據(jù)做相應(yīng)的處理。
業(yè)務(wù)應(yīng)用層對數(shù)據(jù)處理層向上推送的數(shù)據(jù)進行處理,包括資源管理模塊、動環(huán)監(jiān)控模塊、運維管理模塊、報表管理模塊、以及系統(tǒng)管理模塊。
a)資源管理模塊包括收費單元管理、收費門架管理、設(shè)備如工控機、開關(guān)電源、蓄電池和空調(diào)等管理,可以對資源進行增加、修改、刪除和批量導(dǎo)入導(dǎo)出功能。
b)動環(huán)監(jiān)控模塊包括活動告警監(jiān)控、歷史告警管理、日志查詢、性能數(shù)據(jù)查詢、信號量字典管理等。
c)運維管理包括故障工單的待辦箱、故障受理、綜合查詢以及代維管理、備件管理、巡檢等功能。其中,巡檢功能模塊實現(xiàn)對巡檢計劃的生成、修改、發(fā)布、監(jiān)控。巡檢計劃的制定,符合“模塊化”“自由組合”“可以臨時自定義任務(wù)”的原則,有標(biāo)準(zhǔn)化任務(wù),一開始要配置錄入到系統(tǒng)中,包括巡檢設(shè)備、巡檢項目、巡檢要求、巡檢周期等屬性??梢猿跏蓟渲脦滋籽矙z模板,將這些巡檢項目組合成不同模板,滿足不同情況下巡檢要求。
d)報表管理包括告警報表、工單報表、運行質(zhì)量表等功能。
e)系統(tǒng)管理包括組織管理、用戶創(chuàng)建、權(quán)限配置等功能。
數(shù)據(jù)的安全性設(shè)計包括數(shù)據(jù)傳輸安全性設(shè)計、應(yīng)用安全性設(shè)計、數(shù)據(jù)存儲安全性設(shè)計。
在網(wǎng)絡(luò)故障時有完整備用方案保證數(shù)據(jù)不被破壞,保證數(shù)據(jù)及時上傳,同時保證數(shù)據(jù)的完整性、一致性、真實性、不可抵賴性和安全性不受破壞。
系統(tǒng)具備完備的分布式多層安全保障體系,有嚴格的用戶權(quán)限管理、安全認證機制確保數(shù)據(jù)不被非法訪問。
系統(tǒng)采用先進的符合國際標(biāo)準(zhǔn)的數(shù)據(jù)備份和數(shù)據(jù)恢復(fù)軟、硬件平臺,在數(shù)據(jù)備份和恢復(fù)過程中不會造成新的數(shù)據(jù)安全風(fēng)險。系統(tǒng)的實現(xiàn)過程中,采用了保密功能良好的數(shù)據(jù)壓縮算法,在數(shù)據(jù)存儲、數(shù)據(jù)傳輸和數(shù)據(jù)交換方面,需要通過密碼、加密算法等技術(shù)手段增強系統(tǒng)的信息安全性,使備份和恢復(fù)具有免疫功能。數(shù)據(jù)備份介質(zhì)應(yīng)標(biāo)明備份和保存元素,防止存儲介質(zhì)標(biāo)簽中的關(guān)鍵信息被修改,并放置在安全的環(huán)境中,使備份數(shù)據(jù)具有準(zhǔn)確性、可靠性和經(jīng)濟性,備份磁性介質(zhì)應(yīng)定期更新。系統(tǒng)擁有相對獨立完整的備份系統(tǒng),沒有使用追加備份,不生成滲入系統(tǒng)的隱蔽通道,同時可以保護好至關(guān)重要的運行日志。
系統(tǒng)的性能如下:前臺支持不低于200個用戶同時并發(fā)訪問,數(shù)據(jù)類型支持非結(jié)構(gòu)化數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)的存儲,可存儲的數(shù)據(jù)量滿足拆除省界站稽核任務(wù)的150%以上,數(shù)據(jù)庫支持超過500個用戶的并發(fā)訪問,管理端后臺具備不少于200個并發(fā)訪問的能力,系統(tǒng)同時滿足結(jié)構(gòu)化數(shù)據(jù)與非結(jié)構(gòu)化數(shù)據(jù)同時并發(fā)傳輸?shù)哪芰?;一般?shù)據(jù)查詢響應(yīng)時間小于5 s,固定報表查詢不超過30 s,復(fù)雜統(tǒng)計不超過2 min;系統(tǒng)提供7×24 h的高可用服務(wù)。
綜上所述,隨著全國路網(wǎng)的“一張網(wǎng)”運行,高速公路聯(lián)網(wǎng)收費行業(yè)的運營、管理和服務(wù)要求也隨之產(chǎn)生巨大改變,需要與信息化技術(shù)相融合,不斷促進高速公路設(shè)備運維的智能化發(fā)展,從長遠來看,必將帶動高速公路行業(yè)發(fā)生巨大變革[4]??傊?,統(tǒng)一運維管控平臺提升了海量資產(chǎn)的管理和運維工作,解決了智能管控難的問題。