
摘要:電信機(jī)房用的動力環(huán)境監(jiān)控系統(tǒng)需要有很高的性能及可擴(kuò)展性,電信部門對于系統(tǒng)互聯(lián)協(xié)議有自己的標(biāo)準(zhǔn),但這些協(xié)議僅針對系統(tǒng)作為一個整體與其他系統(tǒng)互操作而設(shè)計(jì),沒有充分考慮大型系統(tǒng)的架構(gòu),沒有定義與水平可擴(kuò)展性等相關(guān)的內(nèi)容。本文旨在研究設(shè)計(jì)一種消息傳輸協(xié)議,以滿足動力環(huán)境監(jiān)控系統(tǒng)內(nèi)部各子系統(tǒng)之間的數(shù)據(jù)交換要求。
關(guān)鍵詞:分布式動力環(huán)境監(jiān)控系統(tǒng);消息傳輸;協(xié)議;消息中間件
1 研究背景
分布式集中監(jiān)控系統(tǒng)廣泛應(yīng)用于電力、通信等行業(yè)。這類系統(tǒng)通常很龐大,有很多的子系統(tǒng),比如數(shù)據(jù)采集子系統(tǒng)、數(shù)據(jù)處理子系統(tǒng)、告警服務(wù)子系統(tǒng)、備份子系統(tǒng)等,這些子系統(tǒng)彼此之間需要通信和數(shù)據(jù)交換。出于系統(tǒng)擴(kuò)容能力及對其他系統(tǒng)的接入能力的考慮,需要一種松散耦合的接口;并且由于對性能要求高,在協(xié)議設(shè)計(jì)時應(yīng)盡可能考慮支持異步操作。
舉例:發(fā)生“告警雪崩”的時候,可能會有數(shù)千甚至于上萬條告警,需要在短時間內(nèi)被處理。如果采用中間件來傳輸,勢必導(dǎo)致整個系統(tǒng)處于掛起狀態(tài):系統(tǒng)忙于處理傳輸告警而導(dǎo)致監(jiān)控界面無法響應(yīng)操作員的指令,不能及時處理新的數(shù)據(jù)。
電信部門對于系統(tǒng)互聯(lián)協(xié)議有自己的標(biāo)準(zhǔn),但這些協(xié)議僅針對系統(tǒng)作為一個整體與其他系統(tǒng)互操作而設(shè)計(jì),沒有定義與水平可擴(kuò)展性等相關(guān)的內(nèi)容,直接使該標(biāo)準(zhǔn)將顯著增加實(shí)現(xiàn)的難度。
鑒于以上原因,研究設(shè)計(jì)一套適用于監(jiān)控系統(tǒng)的消息傳輸協(xié)議是必須的。本文所討論的協(xié)議借鑒了MOM的架構(gòu),但又除去了MOM的復(fù)雜性,再在消息處理方式上盡可能使用異步方式,大大地提高了性能;而在協(xié)議實(shí)現(xiàn)方面使用分層實(shí)現(xiàn),即分為原語層、消息傳輸層,以API共享庫的形式實(shí)現(xiàn)。使用協(xié)議的各子系統(tǒng)只需調(diào)用原語層接口,消息傳輸層可以TCP/IP、MOM等技術(shù)實(shí)現(xiàn)。這樣一來,可以根據(jù)實(shí)際情況選取底層傳輸技術(shù)。
2 系統(tǒng)的總體架構(gòu)
系統(tǒng)總體結(jié)構(gòu)同使用MOM的情形相同,如圖1所示。消息服務(wù)器是整個消息傳遞系統(tǒng)的中心,一般只需一個,可以增加備機(jī)避免單點(diǎn)失效。對特別大的系統(tǒng)可設(shè)多個,并設(shè)單獨(dú)的通道以便在消息服務(wù)器間路由消息。圖中除消息服務(wù)器外的其他系統(tǒng)均可以有多個,以便擴(kuò)容之需。
每個連接到消息服務(wù)器的系統(tǒng)都在消息服務(wù)器上開設(shè)一個單獨(dú)的隊(duì)列來緩存消息。
數(shù)據(jù)采集服務(wù)器。擔(dān)負(fù)采集現(xiàn)場FSU的數(shù)據(jù)的任務(wù),負(fù)載受擴(kuò)容的影響最大。提供操作臺要查看的實(shí)時數(shù)據(jù),產(chǎn)生狀態(tài)變化事件,歷史數(shù)據(jù)等消息。
告警服務(wù)器。根據(jù)數(shù)據(jù)采集服務(wù)器的狀態(tài)變化事件執(zhí)行告警邏輯。由于數(shù)據(jù)采集服務(wù)器負(fù)擔(dān)很重,系統(tǒng)中又配置了很多邏輯告警,于是為了減輕數(shù)據(jù)采集服務(wù)器的負(fù)擔(dān),將告警邏輯移到單獨(dú)的子系統(tǒng)上執(zhí)行。
數(shù)據(jù)存儲服務(wù)器。執(zhí)行存儲數(shù)據(jù)的動作。數(shù)據(jù)入庫是一類非常耗時的工作,為了避免執(zhí)行入庫阻塞其他任務(wù),盡可能采取異步作業(yè)的形式以提升性能。利用消息服務(wù)器的隊(duì)列的緩存功能,數(shù)據(jù)存儲服務(wù)器可以以一個合適的速率將短期內(nèi)產(chǎn)生的大量數(shù)據(jù)存入關(guān)系數(shù)據(jù)庫。
C接口接入服務(wù)器。提供規(guī)范[1]要求的對外部系統(tǒng)的接口。
操作臺。執(zhí)行日常的四遙、告警處理、查詢等功能。
系統(tǒng)監(jiān)視器。監(jiān)視系統(tǒng)運(yùn)行,提供疹斷信息。可用來監(jiān)測消息發(fā)送的情況。
其他子系統(tǒng)。
3 主要原語
3.1 管理原語
訂閱/退訂消息原語。訂閱感興趣的公告消息。消息體需包括要訂閱的消息標(biāo)簽、數(shù)據(jù)ID清單或設(shè)置訂閱/退訂全部選項(xiàng)。消息服務(wù)器為每一客戶端維護(hù)一個訂閱清單,據(jù)此清單處理訂閱;數(shù)據(jù)的提供者將負(fù)責(zé)公告被訂閱的數(shù)據(jù),如數(shù)據(jù)采集服務(wù)器公告事件,告警服務(wù)器訂閱事件并公告告警,操作臺訂閱并顯示告警。
配置變更原語。在運(yùn)行中的系統(tǒng)仍需在不停止生產(chǎn)的情況下變更配置,因此在業(yè)務(wù)操作臺處理完配置變更之后,由處理的那臺業(yè)務(wù)操作臺發(fā)出變更消息,通知各子系統(tǒng)應(yīng)用新的配置。因此,任一子系統(tǒng)都必須訂閱此類消息。
3.2 事件通知原語
數(shù)據(jù)采集服務(wù)器在檢測到監(jiān)控量發(fā)生變化,達(dá)到設(shè)定的觸發(fā)條件時,發(fā)出狀態(tài)變更事件,通知需要用到相關(guān)事件的子系統(tǒng)。告警服務(wù)器是事件通知的主要使用者之一,其二是用于與外部系統(tǒng)聯(lián)動。
3.3 告警原語
當(dāng)事件足以觸發(fā)一條告警時,由告警服務(wù)器發(fā)出,主要由操作臺接收,也用于聯(lián)動。
3.4 數(shù)據(jù)請求/響應(yīng)原語
數(shù)據(jù)請求/響應(yīng)原語可以公告或點(diǎn)對點(diǎn)的方式發(fā)出,主要用于下列情形:
操作臺查看實(shí)時監(jiān)控?cái)?shù)據(jù)。由于操作臺的界面一次能顯示的數(shù)據(jù)非常有限,因此只需要請求要顯示的數(shù)據(jù)即可,不必發(fā)送全部的數(shù)據(jù)到監(jiān)控臺。監(jiān)控臺根據(jù)配置信息找到所要數(shù)據(jù)屬于哪個數(shù)據(jù)采集服務(wù)器,再發(fā)出數(shù)據(jù)請求原語。原語內(nèi)容應(yīng)包括消息標(biāo)簽、接收者標(biāo)識、接收者業(yè)務(wù)系統(tǒng)類型。接收者標(biāo)識不應(yīng)入配置數(shù)據(jù)庫。如果操作臺初次啟動,可能沒有接收者標(biāo)識信息,這時應(yīng)以公告方式發(fā)出數(shù)據(jù)請求,待得到響應(yīng)之后,從響應(yīng)信息中得到接收者標(biāo)識;得到標(biāo)識以后的請求應(yīng)以點(diǎn)對點(diǎn)方式發(fā)出,以減少公告方式帶來的性能損失。接收者標(biāo)識不入配置數(shù)據(jù)庫,這樣服務(wù)器出故障時可以用備機(jī)快速替代。
操作臺查看當(dāng)前活動的告警。如果操作臺在告警發(fā)出之后啟動,就再也收不到通知;而使用數(shù)據(jù)請求原語可從告警服務(wù)器取得已經(jīng)發(fā)過通知的當(dāng)前活動的告警。
告警服務(wù)器查詢數(shù)據(jù)采集服務(wù)器,查詢與告警邏輯相關(guān)監(jiān)控量的狀態(tài)。如果狀態(tài)已經(jīng)公告過就不會再次公告,通過此原語可以使當(dāng)告警服務(wù)器在通告發(fā)出之后啟動時仍然可以得到監(jiān)控量的狀態(tài) ;如果數(shù)據(jù)采集服務(wù)器曾經(jīng)停機(jī),告警可能已經(jīng)在停機(jī)期間解除或者產(chǎn)生,因此數(shù)據(jù)采集服務(wù)器不可能再發(fā)出解除告警的通知,使用數(shù)據(jù)請求原語可以執(zhí)行數(shù)據(jù)同步(對于操作臺查看實(shí)時數(shù)據(jù)的情形同樣如此)。
3.5 操作原語
操作原語主要用于遙控被監(jiān)控的對象,或遙調(diào)其運(yùn)行參數(shù)。一次成功的操作包括:查詢被操作對象—發(fā)出操作指令—檢查操作結(jié)果。查詢使用公告方式,發(fā)操作指令及檢查結(jié)果用點(diǎn)到點(diǎn)方式。
4 結(jié)束語
通過本協(xié)議,使得系統(tǒng)之間的耦合度降到最低,擴(kuò)容只需增加機(jī)器即可,擴(kuò)容能力幾乎不受限制,接入方法簡便。異步數(shù)據(jù)處理方式能極大地提高數(shù)據(jù)吞吐量;事件通知方式僅發(fā)送發(fā)生變更的數(shù)據(jù),將需要發(fā)送的數(shù)據(jù)減至最少,輔以同步功能消除數(shù)據(jù)的不一致性;子系統(tǒng)標(biāo)識動態(tài)查詢方式可以方便地替代故障機(jī)而無需整個系統(tǒng)停機(jī);配置變更通知可使系統(tǒng)配置變更時無需重新啟動。協(xié)議可以多種技術(shù)實(shí)現(xiàn),更換不同的技術(shù)只需更換與協(xié)議的程序庫,無需修改系統(tǒng)。因此,該協(xié)議充分考慮到了大型系統(tǒng)的架構(gòu),能較好地適應(yīng)省一級大型分布式動力環(huán)境監(jiān)控系統(tǒng)。
參考文獻(xiàn)
[1]中國移動通信有限公司網(wǎng)絡(luò)部.中國移動通信動力及環(huán)境集中監(jiān)控系統(tǒng)技術(shù)規(guī)范:C接口規(guī)范:3.5.0版,2009.
[2]中國移動通信有限公司網(wǎng)絡(luò)部.中國移動通信動力及環(huán)境集中監(jiān)控系統(tǒng)技術(shù)規(guī)范:B接口規(guī)范:1.0.0版,1996.
[3]王常力,羅安.分布式控制系統(tǒng)(DCS)設(shè)計(jì)與應(yīng)用實(shí)例[M].北京:電子工業(yè)出版社,2004.