《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 電源技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種分布式SCADA消息中間件設(shè)計(jì)方案
一種分布式SCADA消息中間件設(shè)計(jì)方案
2016年電子技術(shù)應(yīng)用第3期
史耀政1,庫流亨2
1.呼和浩特鐵路局,內(nèi)蒙古 呼和浩特010020;2.華北計(jì)算機(jī)系統(tǒng)工程研究所,北京100083
摘要: 隨著分布式SCADA系統(tǒng)在鐵路牽引供電應(yīng)用的不斷推廣,SCADA系統(tǒng)節(jié)點(diǎn)之間以及與其他異構(gòu)系統(tǒng)之間進(jìn)行消息數(shù)據(jù)傳遞面臨著效率降低、接口不統(tǒng)一等問題。針對此問題,提出一種基于發(fā)布/訂閱模式的分布式SCADA消息中間件的設(shè)計(jì)方案,該方案使用了N-Tree結(jié)構(gòu)將系統(tǒng)消息進(jìn)行邏輯區(qū)域劃分,設(shè)計(jì)了一套完善的消息傳遞與反饋處理機(jī)制,方案中利用Quorum-Based改進(jìn)型算法確保了分布式節(jié)點(diǎn)的消息一致性。實(shí)踐及仿真實(shí)驗(yàn)證明,本方案提高了SCADA系統(tǒng)的消息傳遞效率,降低了分布式系統(tǒng)的運(yùn)行負(fù)載和通信開銷。
關(guān)鍵詞: SCADA Quorum 分布式 中間件
中圖分類號(hào): TP274+.2
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.03.024
中文引用格式: 史耀政,庫流亨. 一種分布式SCADA消息中間件設(shè)計(jì)方案[J].電子技術(shù)應(yīng)用,2016,42(3):84-86.
英文引用格式: Shi Yaozheng,Ku Liuheng. A design scheme of distributed message middleware for SCADA system[J].Application of Electronic Technique,2016,42(3):84-86.
A design scheme of distributed message middleware for SCADA system
Shi Yaozheng1,Ku Liuheng2
1.Hohhot Railway Bureau,Hohhot 010020,China; 2.National Computer System Engineering Research Institute of China,Beijing 100083,China
Abstract: With the development of distributed SCADA system in railway traction power supply application, the data transfer between nodes in SCADA system and other heterogeneous systems is faced with the problems such as lower efficiency, and the interface is not uniform. Aiming at this problem, this paper proposes a design scheme of distributed SCADA message oriented middleware based on publish / subscribe model. The scheme uses the N-Tree structure to divide the system message into a logical area, and designs a set of perfect message passing and feedback processing mechanism. In the scheme, the Quorum-Based algorithm is used to ensure the consistency of the distributed nodes. Practice and simulation experiments prove that this scheme improves the message passing efficiency of SCADA system, and reduces the running load and communication overhead of the distributed system.
Key words : SCADA;Quorum;distributed system;middleware

0 引言

    數(shù)據(jù)采集與監(jiān)視控制(Supervisory Control And Data Acquisition,SCADA)系統(tǒng)在鐵路牽引供電及其他工業(yè)控制系統(tǒng)領(lǐng)域占據(jù)著重要地位,可以對現(xiàn)場的運(yùn)行設(shè)備進(jìn)行實(shí)時(shí)數(shù)據(jù)監(jiān)視和控制,實(shí)現(xiàn)數(shù)據(jù)采集、設(shè)備控制、測量分析、參數(shù)調(diào)節(jié)以及各類信號(hào)報(bào)警等功能。隨著分布式技術(shù)在SCADA系統(tǒng)中應(yīng)用的不斷推廣,SCADA系統(tǒng)各個(gè)子系統(tǒng)之間以及與其他異構(gòu)系統(tǒng)之間的消息傳遞變得更加復(fù)雜化、多樣化[1]。

    本文針對分布式環(huán)境下SCADA系統(tǒng)復(fù)雜的應(yīng)用場景,提出了一套高效可靠的分布式消息中間件設(shè)計(jì)方案。該方案采用N-Tree結(jié)構(gòu)[2]對分布式系統(tǒng)節(jié)點(diǎn)進(jìn)行消息區(qū)域劃分,各個(gè)子區(qū)域的消息根據(jù)應(yīng)用需求進(jìn)行收集和傳遞。系統(tǒng)采用經(jīng)典的Publisher-Subscriber(發(fā)布/訂閱)模式設(shè)計(jì),產(chǎn)生消息的節(jié)點(diǎn)稱之為Publisher(發(fā)布者),獲取并處理消息的節(jié)點(diǎn)稱之為Subscriber(訂閱者)。訂閱者首先需要對特定的消息區(qū)域進(jìn)行“消息訂閱”,發(fā)布者會(huì)自動(dòng)將訂閱的消息推送到各訂閱節(jié)點(diǎn)。

    系統(tǒng)采用了特殊設(shè)計(jì)的分布式一致性算法,確保系統(tǒng)中分布式節(jié)點(diǎn)之間的消息一致性和完整性,同時(shí)提高了分布式消息訪問的效率。本文將重點(diǎn)描述消息分發(fā)系統(tǒng)設(shè)計(jì)和分布式一致性算法設(shè)計(jì)。

1 分布式SCADA系統(tǒng)

    SCADA系統(tǒng)在鐵路電氣化遠(yuǎn)動(dòng)系統(tǒng)上的應(yīng)用較早,近些年來隨著中國鐵路的迅猛發(fā)展,也帶動(dòng)了鐵路電氣化遠(yuǎn)動(dòng)系統(tǒng)向更高的目標(biāo)發(fā)展。當(dāng)前我國SCADA系統(tǒng)發(fā)展處于第三階段,即基于分布式計(jì)算機(jī)網(wǎng)絡(luò)以及關(guān)系數(shù)據(jù)庫技術(shù)的、能夠?qū)崿F(xiàn)大范圍聯(lián)網(wǎng)的SCADA系統(tǒng)[3]。

    一個(gè)典型的鐵路供電調(diào)度SCADA系統(tǒng)結(jié)構(gòu)圖如圖1所示。

ck5-t1.gif

    圖中每一個(gè)方框僅標(biāo)示了一種分布式SCADA系統(tǒng)功能角色,在實(shí)際的SCADA系統(tǒng)中,每一種系統(tǒng)角色一般均對應(yīng)了多臺(tái)分布式計(jì)算機(jī)節(jié)點(diǎn)。每一個(gè)系統(tǒng)節(jié)點(diǎn)根據(jù)實(shí)際應(yīng)用情況的不同負(fù)責(zé)相應(yīng)的計(jì)算任務(wù),完成各自所屬角色的功能。

2 消息分發(fā)系統(tǒng)設(shè)計(jì)

    (1)角色分類

    在分布式SCADA系統(tǒng)中,按照消息的收集與分發(fā)功能的不同,劃分為兩種角色:消息供應(yīng)者與消息訂閱者。

    消息供應(yīng)者負(fù)責(zé)按照N-Tree結(jié)構(gòu)對系統(tǒng)中的消息進(jìn)行區(qū)域劃分,并注冊、收集指定區(qū)域的消息,主動(dòng)推送給訂閱節(jié)點(diǎn)或者等待消息訂閱者查詢。消息訂閱者則根據(jù)實(shí)際應(yīng)用需求,通過指定機(jī)器節(jié)點(diǎn)名、區(qū)域名去“訂閱”消息內(nèi)容,在消息訂閱時(shí)可以指定是否需要由消息供應(yīng)者主動(dòng)推送。

    (2)消息分類與確認(rèn)

    按照消息緊急程度的不同,可以劃分為兩大類消息:緊急消息和一般消息。這兩大類消息都可以根據(jù)實(shí)際應(yīng)用需求的不同來劃分應(yīng)用子類,其區(qū)別在于:緊急消息具有“告警”和“正?!眱煞N狀態(tài)且需要消息訂閱者進(jìn)行“確認(rèn)”,而一般消息則沒有狀態(tài)區(qū)分且不需要被確認(rèn)。

    (3)消息緩存與傳遞

    系統(tǒng)針對不同類型消息的應(yīng)用特點(diǎn),設(shè)計(jì)了兩種緩存方式:“鏈?zhǔn)疥?duì)列”緩沖和“環(huán)形隊(duì)列”緩沖。對于重要程度較高的且需要等待確認(rèn)的緊急消息,則應(yīng)采用“鏈?zhǔn)疥?duì)列”緩沖模式,確保消息不會(huì)丟失;對于一般性消息則可以采用“環(huán)形隊(duì)列”緩沖模式,在極端情況下早期的消息可能會(huì)丟失,但同樣保證了最新的消息被緩存。

    系統(tǒng)中每一個(gè)節(jié)點(diǎn)均需要維護(hù)自己的消息緩沖區(qū)和消息訂閱需求列表,消息節(jié)點(diǎn)之間的通信采用TCP/IP網(wǎng)絡(luò)傳輸。消息訂閱與傳遞遵循以下步驟:

    (1)消息訂閱者將訂制的消息請求(包括指定優(yōu)先級、消息區(qū)域等)傳遞給消息供應(yīng)者進(jìn)行“訂閱”操作;

    (2)消息供應(yīng)者維護(hù)自身節(jié)點(diǎn)和遠(yuǎn)程節(jié)點(diǎn)的消息訂閱請求,當(dāng)產(chǎn)生新的消息時(shí),根據(jù)消息訂閱請求進(jìn)行篩選;

    (3)消息訂閱者的消息緩沖區(qū)中的內(nèi)容得到更新,可以根據(jù)應(yīng)用需求定制后續(xù)行為(例如報(bào)警、打印、存庫等)。

    消息分發(fā)系統(tǒng)模型見圖2。

ck5-t2.gif

3 分布式一致性算法

    本文提出采用基于“Quorum-Based算法”[4]與消息區(qū)域模型相結(jié)合的機(jī)制,對分布式消息中間件的數(shù)據(jù)一致性做出保證。這里采用的方案能夠保證分布式SCADA系統(tǒng)中的消息緩沖數(shù)據(jù)“最終一致性”,而不是滿足“強(qiáng)一致性”。所謂“強(qiáng)一致性”指的是當(dāng)消息訂閱者對系統(tǒng)消息進(jìn)行獲取或確認(rèn)時(shí),必須檢查或更新相關(guān)節(jié)點(diǎn)的所有消息副本狀態(tài)是否一致,只有保證所有消息副本狀態(tài)一致才能完成讀寫操作。而最終一致性的概念是:在每次獲取或更新數(shù)據(jù)狀態(tài)時(shí),并不保證所有節(jié)點(diǎn)上的數(shù)據(jù)副本均保持一致,而是根據(jù)設(shè)定的策略保證部分?jǐn)?shù)據(jù)是最新的,剩余不同步的副本則由系統(tǒng)內(nèi)部負(fù)責(zé)自行同步,系統(tǒng)保證在沒有后續(xù)更新的情況下最終返回上一次更新的最新狀態(tài)。

    由于本文設(shè)計(jì)的分布式一致性算法不屬于強(qiáng)一致性算法,且經(jīng)過了特殊優(yōu)化,因此系統(tǒng)工作的效率較高,且能夠確保分布式SCADA系統(tǒng)的數(shù)據(jù)一致可靠性。本文設(shè)計(jì)的分布式一致性算法描述如下:

    (1)系統(tǒng)中每一個(gè)消息區(qū)域的消息供應(yīng)者(總數(shù)量V)均可以對訪問(讀)操作和確認(rèn)(寫)操作進(jìn)行授權(quán)許可,每次授權(quán)尚未完成的情況下不可重復(fù)授權(quán)其他操作,防止出現(xiàn)讀寫沖突的情況;

    (2)每一次消息訪問(讀)操作必須獲得Vr個(gè)節(jié)點(diǎn)授權(quán)許可才能進(jìn)行,同樣,每一次消息確認(rèn)(寫)操作必須獲得Vw個(gè)節(jié)點(diǎn)授權(quán)才能進(jìn)行;

    (3)系統(tǒng)中各項(xiàng)操作的授權(quán)許可數(shù)量滿足如下關(guān)系:

    ck5-gs1-3.gif

    式(1)表示一次讀操作所需授權(quán)數(shù)與一次寫操作所需授權(quán)數(shù)之和應(yīng)該大于系統(tǒng)授權(quán)總數(shù),這樣可以保證同一份數(shù)據(jù)拷貝不會(huì)發(fā)生并行讀寫的情況,因?yàn)橐坏┳x操作獲得了授權(quán),就不可能存在足夠的寫操作授權(quán)了,反之亦然。式(2)表示一次寫操作必須獲得半數(shù)以上的授權(quán),確保同一份數(shù)據(jù)拷貝不會(huì)同時(shí)被2個(gè)及以上請求修改,這樣就能保證系統(tǒng)數(shù)據(jù)寫入的串行化和一致性。式(3)屬于優(yōu)化的可選策略,表示一次讀操作所需授權(quán)數(shù)應(yīng)當(dāng)盡可能小,以提高系統(tǒng)數(shù)據(jù)訪問效率。

    圖3中給出了本系統(tǒng)中描述的分布式SCADA系統(tǒng)消息供應(yīng)者與消息訂閱者之間的訪問關(guān)系。

ck5-t3.gif

    在圖3中,消息供應(yīng)者會(huì)對某個(gè)消息邏輯區(qū)域提供訂閱功能,而這樣的節(jié)點(diǎn)一般可以存在多個(gè),提供相同消息區(qū)域供應(yīng)的多個(gè)節(jié)點(diǎn)構(gòu)成了分布式節(jié)點(diǎn)群集。當(dāng)消息供應(yīng)者需要訪問或確認(rèn)某區(qū)域消息時(shí),需要遵循本文描述的分布式一致性算法規(guī)則。而SCADA系統(tǒng)中的消息區(qū)域狀態(tài)與各消息供應(yīng)者之間的同步,則由系統(tǒng)在操作完成后自動(dòng)進(jìn)行。

4 實(shí)踐結(jié)果分析

    本文利用GT-ITM提供的Transit-Stub(TS)模型[5],構(gòu)建一個(gè)分層結(jié)構(gòu)網(wǎng)絡(luò)對此消息中間件進(jìn)行性能測試。

    仿真系統(tǒng)根據(jù)鐵路SCADA系統(tǒng)實(shí)際應(yīng)用需求劃分角色區(qū)域,每個(gè)區(qū)域有多個(gè)系統(tǒng)節(jié)點(diǎn)。假設(shè)消息供應(yīng)者每200 ms新增一條消息,每條消息為128 B的數(shù)據(jù)包,每一個(gè)消息訂閱者都訂閱所有區(qū)域消息以模擬最大負(fù)載情況。通常,服務(wù)器節(jié)點(diǎn)既充當(dāng)消息供應(yīng)者又充當(dāng)消息訂閱者。仿真實(shí)驗(yàn)測試在不同應(yīng)用規(guī)模下的系統(tǒng)負(fù)載情況。實(shí)驗(yàn)結(jié)果如表1所示。

ck5-b1.gif

    從表1中可以看出,相同消息供應(yīng)者的情況下,消息訂閱者數(shù)量的增加會(huì)導(dǎo)致網(wǎng)絡(luò)吞吐量線性增長,但是增量不會(huì)呈現(xiàn)倍數(shù)關(guān)系。這說明本方案的設(shè)計(jì)有效地降低了相同節(jié)點(diǎn)上多個(gè)消息訂閱者的消息傳遞負(fù)載。消息供應(yīng)者數(shù)量的增加會(huì)使得網(wǎng)絡(luò)吞吐量和CPU負(fù)載呈現(xiàn)比率上升趨勢,這是因?yàn)橄⒐?yīng)者需要維護(hù)和更新各消息訂閱者隊(duì)列,實(shí)時(shí)推送消息內(nèi)容。當(dāng)消息供應(yīng)者和消息訂閱者的數(shù)量按照同等規(guī)模擴(kuò)大時(shí),系統(tǒng)表現(xiàn)出穩(wěn)定的線性增長趨勢。這表明系統(tǒng)能夠穩(wěn)定有效地控制分布式消息傳遞,具有良好的運(yùn)行效率。

5 結(jié)束語

    本文針對鐵路牽引供電SCADA系統(tǒng)中消息傳遞效率較低、接口復(fù)雜不統(tǒng)一的問題,設(shè)計(jì)并實(shí)現(xiàn)了一套通用的消息中間件方案。該方案對系統(tǒng)角色、消息內(nèi)容進(jìn)行區(qū)域劃分,對消息傳遞的機(jī)制進(jìn)行了改進(jìn),利用Quorum-Based改進(jìn)算法確保了分布式節(jié)點(diǎn)之間的消息一致性。仿真實(shí)驗(yàn)及實(shí)踐結(jié)果表明,本方案設(shè)計(jì)的消息中間件能夠適應(yīng)不同規(guī)模的SCADA系統(tǒng)應(yīng)用,具有良好的可靠性和運(yùn)行效率。

參考文獻(xiàn)

[1] 張平.我國高速鐵路牽引供電SCADA系統(tǒng)的分析與探討[J].鐵道建筑技術(shù),2010(4):72-74.

[2] Chris Gauthier Dickey,Virginia Mary Lo,Daniel Zappala.Using n-trees for scalable event ordering in peer-to-peer games[C].Proceedings of NOSSDAV,2005.

[3] 崔瑞超.淺談中國高速鐵路的發(fā)展[J].新課程學(xué)習(xí)(學(xué)術(shù)教育),2010(10):30-31.

[4] 熊庭剛,盧正鼎,張家宏,等.基于Quorum系統(tǒng)的分布式訪問控制框架研究[J].計(jì)算機(jī)科學(xué),2010(5).

[5] CALVERT K,EAGAN J,MERUGU S,et al.Extending and enhan-cing GT-ITM[C].Proc of ACM SIGCOMM Workshop on Models,Methods and Tools for Reproducible Network Research,2003.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。