曾紀鈞, 張金波, 梁哲恒
(廣東電網(wǎng)有限責任公司, 廣東, 廣州 510663)
隨著我國網(wǎng)絡技術的不斷發(fā)展,該項技術被應用于多個領域,有利于提升各領域的整體經(jīng)濟效益。企業(yè)內機房及網(wǎng)絡設備的數(shù)量急劇增加,若機房內任意設備出現(xiàn)故障,可直接影響企業(yè)的信息命脈安全。機房是否能安全運行已經(jīng)成為行業(yè)關注的焦點之一。當前各大企業(yè)均出現(xiàn)普遍缺乏專業(yè)機房設備管理人員現(xiàn)象,該現(xiàn)象使企業(yè)無法對機房設備進行有效管理和維護。為保證機房設備的安全運行,本文提出一種機房設備信息監(jiān)控采集分發(fā)系統(tǒng),可保證機房內各設備的安全運行。
為了提升系統(tǒng)的邏輯性能,采用JMS與CORBA作為核心規(guī)范,能夠確保客戶端接收數(shù)據(jù)的準確性,使系統(tǒng)內所有數(shù)據(jù)都能夠保持一致。系統(tǒng)架構內部設置信息設備工況采集接口,其接口可為系統(tǒng)引入成熟可靠的Java技術,并按照系統(tǒng)功能進行層次劃分,提升系統(tǒng)功能優(yōu)勢,其結構[1]如圖1所示。

圖1 系統(tǒng)邏輯結構圖
將整體結構分為狀態(tài)采集子系統(tǒng)(CCS)、狀態(tài)訂閱及分發(fā)子系統(tǒng)(SDI)等3部分。其工作流程:通過狀態(tài)采集子系統(tǒng)對設備的狀態(tài)數(shù)據(jù)進行獲取,將數(shù)據(jù)傳送至融合子系統(tǒng)后,經(jīng)過對數(shù)據(jù)的處理,即可將各設備的狀態(tài)融合數(shù)據(jù)存儲至數(shù)據(jù)庫,最后由狀態(tài)訂閱及分發(fā)子系統(tǒng)根據(jù)用戶輸入的請求向客戶端提供各項數(shù)據(jù)服務。
本研究所設計的監(jiān)控系統(tǒng)需對機房中網(wǎng)絡專線、網(wǎng)絡設備、主機設備以及存儲設備進行數(shù)據(jù)采集。基本情況包括各種設備的基本信息,該信息屬于一種較為固定的信息,通常情況下不會在生命周期內出現(xiàn)變化。安裝情況數(shù)據(jù)少量變化信息,該類型的信息主要包括設備的安裝牢固程度、規(guī)范性等數(shù)據(jù)。維護情況也屬于一種少量變化的信息,其內部包含設備故障次數(shù)、可用系數(shù)等。運行情況屬于一種實時變化的信息,主要包括設備的溫度、電壓等實時數(shù)據(jù)。采集分發(fā)系統(tǒng)在實際運行過程中,需要對相關數(shù)據(jù)進行收集統(tǒng)計,有利于維修人員的后期維修。系統(tǒng)對固定信息和少量變化信息進行錄入時,可采用手工的方式進行多次錄入或者一次性錄入,對實時變化信息進行錄入時,需要系統(tǒng)按照采樣的頻率實時采集數(shù)據(jù)。
信息采集分發(fā)系統(tǒng)在工作運行中需要通過3個數(shù)據(jù)庫對各設備的狀態(tài)信息進行存儲,數(shù)據(jù)庫分別為狀態(tài)信息NoSQL數(shù)據(jù)庫、Redis Key/Value數(shù)據(jù)庫以及作業(yè)調度關系型數(shù)據(jù)庫。狀態(tài)信息NoSQL數(shù)據(jù)庫可對多種信息進行歸檔。Redis Key/Value數(shù)據(jù)庫主要用來保存最近一次的狀態(tài)信息,使用戶以最快的速度進行狀態(tài)查詢。作業(yè)調度關系型數(shù)據(jù)庫可用來保存多項數(shù)據(jù)以及訂閱信息。由于系統(tǒng)在運行過程中各項監(jiān)控指標存在一定差異性,本研究摒棄傳統(tǒng)的關系型數(shù)據(jù)庫,選用NoSQL型Couch DB作為核心數(shù)據(jù)庫。狀態(tài)采集子系統(tǒng)API的接口服務主要通過RESTful方式對系統(tǒng)進行統(tǒng)一管理。訂閱者通過系統(tǒng)進行設備及指標的訂閱時,系統(tǒng)采用消息驅動的方式滿足用戶需求,該過程中設備的運行狀態(tài)主要由狀態(tài)采集方?jīng)Q定,而采集方只能被動訂閱。為保證訂閱過程中Message不會因系統(tǒng)癱瘓而出現(xiàn)丟失,采用Active Message Store機制對數(shù)據(jù)進行保障。對數(shù)據(jù)進行抓取和分發(fā)時,以設備為粒度。
1.4.1 訂閱方管理模塊
該模塊主要負責實現(xiàn)訂閱方和客戶端的列表、新增、修改以及刪除等功能,為有效防止非法的第三方接入,對客戶端的接入做相關的安全認證。對非法的第三方接入系統(tǒng)進行預防時,可通過制定不同的接入密碼和用戶名,該方式有利于獲取未授權的數(shù)據(jù)。一個訂閱方可訂閱多個指標,而同一個訂閱指標可提供給多個不同的訂閱方。為方便用戶對歷史狀態(tài)進行查詢,可將每個訂閱方訂閱內容的記錄進行保存。系統(tǒng)對訂閱方進行刪除時,主要采取標記刪除的方式,不是將訂閱方的全部數(shù)據(jù)進行刪除,若需要獲取訂閱方的相關數(shù)據(jù),可通過歷史查詢來獲取。
1.4.2 消息管理模塊
消息管理模塊可在設備出現(xiàn)新增或者客戶需要獲取的設備信息出現(xiàn)一定變化時對客戶進行提示,并賦予可對數(shù)據(jù)進行配置的權限,有利于用戶根據(jù)設備的狀態(tài)對采集設備狀態(tài)進行動態(tài)改變。客戶端與系統(tǒng)在交互過程中,可產(chǎn)生大量指標數(shù)據(jù)以及交互控制信息等,為保證對該類信息的綜合管理,向訂閱方及時發(fā)送設備狀態(tài)數(shù)據(jù),如果發(fā)送數(shù)次都得不到回應,則可以默認已經(jīng)收到訂閱消息,即可將訂閱指標配置標為空,從而引發(fā)訂閱者的詢問。除此之外,該模塊對消息進行管理時,可將消息分為編輯和發(fā)送兩個階段,對于用戶未點擊發(fā)送的信息可保存至草稿箱。
1.4.3 消息發(fā)送模塊
消息發(fā)送模塊在系統(tǒng)中主要負責消息的發(fā)送,其工作過程為對設備的運行信息進行采集之后,發(fā)送至消息管道內部;然后通過消息隊列機制向訂閱者轉達消息,消息發(fā)送過程中可充分結合實際情況,實現(xiàn)無用消息的過濾;最后將消息發(fā)送的優(yōu)先級別作為主要依據(jù),優(yōu)先發(fā)送時效高的消息。
本文設計的硬件具有體積小、價格低、監(jiān)控參數(shù)精度高等優(yōu)勢。機房設備信息監(jiān)控采集分發(fā)系統(tǒng)硬件框圖如圖2所示。

圖2 機房設備信息監(jiān)控采集分發(fā)系統(tǒng)硬件框圖
該系統(tǒng)的核心組成部分為單片機,對單片機的型號進行選擇時,應充分結合單片機的可靠性以及性價比等因素,最終選擇C8051F020單片機作為系統(tǒng)的核心控制器。該單片機具有64KB數(shù)據(jù)存儲器接口以及電源監(jiān)視器等多個外設部件,在多種部件的高度集成下,有利于提升系統(tǒng)的整體運行效率[2]。
為實現(xiàn)機房設備信息監(jiān)控采集分發(fā)系統(tǒng)與外界形成通信聯(lián)系,系統(tǒng)硬件部分設置以太網(wǎng)控制器,對該控制器進行型號選擇時,選用全雙工10 bit/s的RTL8019AS芯片。該芯片在正常工作狀態(tài)下,主要利用8位模式維持系統(tǒng)運行。該芯片包含2套DMA:一套主要負責與C8051-F020單片機形成通信,可稱之為遠端DMA;另一套應用于系統(tǒng)內部,稱之為本地DMA。由于單片機的數(shù)據(jù)存儲空間較小,對該數(shù)據(jù)存儲器進行擴充,使其內存從原來的4 KB到現(xiàn)在的64 KB,有利于滿足系統(tǒng)的實際需要。
為保證數(shù)據(jù)庫的功能穩(wěn)定性,對該數(shù)據(jù)庫進行設計時,應滿足規(guī)范要求,使數(shù)據(jù)的冗余現(xiàn)象盡可能地減少,并且重復數(shù)據(jù)也應最大限度地減少。數(shù)據(jù)庫可存儲設備數(shù)據(jù)、指標訂閱信息等數(shù)據(jù),由于數(shù)據(jù)量過多,可采用動態(tài)及靜態(tài)數(shù)據(jù)的方式建立數(shù)據(jù)庫。該方式可保證數(shù)據(jù)的快速讀取,提高系統(tǒng)的基本性能,有利于保證數(shù)據(jù)讀取和寫入的可靠性。該數(shù)據(jù)庫對數(shù)據(jù)進行采集時,數(shù)據(jù)類型主要包括主機、網(wǎng)絡以及存儲設備。
該驅動程序的主要流程:首先利用RTL8019AS的跳線模式對MAC地址進行固化,該過程可在單片機內部進行,有利于保證固化結果的準確性;固化完成后可將單片機每次上電的數(shù)據(jù)寫入RTL8019AS中。在RTL8019AS驅動程序中,可利用寄存器PAR0-PAR5將MAC地址寫入驅動程序[3]。
為實現(xiàn)系統(tǒng)的驅動程序,對該系統(tǒng)進行驅動設計時,應利用以太網(wǎng)幀完成數(shù)據(jù)發(fā)送,對于遠程數(shù)據(jù)的輸送可利用遠程DMA進行實現(xiàn)。其發(fā)送流程:首先將待發(fā)送的數(shù)據(jù)整理成數(shù)據(jù)包的形式,并將該數(shù)據(jù)包寫入RTL8019AS驅動程序,使其存儲至程序的發(fā)送緩沖區(qū);上一個數(shù)據(jù)包發(fā)送完畢后,即可發(fā)送下一個數(shù)據(jù)包。以太網(wǎng)幀的接收主要通過查詢的方式完成相關操作。為判斷以太網(wǎng)幀是否順利到達單片機,可通過對RTL8019AS驅動程序的工作狀態(tài)進行查詢的方式實現(xiàn),若出現(xiàn)新的以太網(wǎng)幀到達單片機內,單片機可通過遠程DMA將接收的數(shù)據(jù)讀入靜態(tài)RAM緩沖區(qū)。由于接收的數(shù)據(jù)存在一定差異性,可根據(jù)數(shù)據(jù)幀中協(xié)議字段的不同,將該數(shù)據(jù)提交至對應的上層接收函數(shù)進行網(wǎng)絡層處理。
對機房設備信息監(jiān)控采集分發(fā)系統(tǒng)的軟件部分進行設計時,首先完成初始化工作,提升其軟件功能的穩(wěn)定性,機房設備信息監(jiān)控采集分發(fā)系統(tǒng)主程序流程[4-5]如圖3所示。

圖3 機房設備信息監(jiān)控采集分發(fā)系統(tǒng)主程序流程圖
相關工作完成后,對機房設備信息進行采集,并對各設備的工作狀態(tài)是否存在異常進行判斷。若各設備的工作狀態(tài)存在異常情況,即可向系統(tǒng)發(fā)送報警數(shù)據(jù)報文;若判斷結果為否,可進入下一階段--是否到達定時發(fā)送機房狀態(tài)信息時間,產(chǎn)生的結果應向系統(tǒng)實時發(fā)送機房狀態(tài)信息報文,并回到初始階段。為保證系統(tǒng)的穩(wěn)定性,采用7×24 h不間斷監(jiān)控,該軟件程序可持續(xù)到系統(tǒng)硬性關閉后方停止。
本文為檢測采集分發(fā)系統(tǒng)是否滿足預期要求,采用集成測試的方法對該系統(tǒng)各個模塊之間的關聯(lián)功能進行測試。集成測試的內容包括消息訂閱模塊、查詢管理模塊以及發(fā)送模塊[6]。
消息訂閱管理集成測試是驗證系統(tǒng)是否復合預期要求的關鍵,可反映出系統(tǒng)訂閱消息的變化情況。測試結果如表1所示。

表1 消息訂閱管理測試
每條消息均具有一定生命周期,為將消息的生命周期體現(xiàn)在系統(tǒng)內,需要對該模塊進行測試,測試結果如表2所示。

表2 消息查詢管理集成測試
消息發(fā)送模塊的測試結果可直接決定系統(tǒng)消息發(fā)送的速度與準確性,消息發(fā)送模塊集成測試用例如表3所示。

表3 消息發(fā)送模塊測試
通過對系統(tǒng)的各個模塊進行集成測試可知,該系統(tǒng)的覆蓋率高達100%,可滿足設計的預期值,并且系統(tǒng)內90%的功能均可正常使用,全部測試用例均已運行[7-8]。
本文主要對機房設備信息監(jiān)控采集分發(fā)系統(tǒng)的邏輯架構、消息流動流程、模塊功能劃分、硬件以及軟件等部分進行設計,對邏輯架構進行設計時,主要采用JMS以及CORBA作為核心規(guī)范,并為系統(tǒng)引入成熟可靠的Java技術,按照系統(tǒng)功能進行層次劃分,使系統(tǒng)功能具有易實現(xiàn)、易擴充等優(yōu)勢。為實現(xiàn)系統(tǒng)的軟件功能,對驅動程序進行設計,采用7×24 h的方式對系統(tǒng)進行不間斷監(jiān)控,該軟件程序可持續(xù)到系統(tǒng)硬性關閉后方停止,有利于對系統(tǒng)的設備狀態(tài)進行精準控制。