欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種scada分布式平臺下的心跳檢測方法

文檔序號:7820370閱讀:1668來源:國知局
一種scada分布式平臺下的心跳檢測方法
【專利摘要】本發(fā)明公開了一種SCADA分布式平臺下的心跳檢測方法,使用心跳發(fā)送線程和接收線程來配合進行故障檢測,發(fā)送線程向目標節(jié)點發(fā)送心跳,并通過判斷心跳最大丟失次數(shù)來檢測節(jié)點的狀態(tài);而接收線程用于接收心跳,并在正常接收到心跳后進行回復(fù),否則將心跳最大丟失次數(shù)加1。在網(wǎng)絡(luò)狀態(tài)繁忙的情況下,暫停心跳發(fā)送線程和接收線程,使用命令包替代心跳來檢測節(jié)點的狀態(tài),可以節(jié)省網(wǎng)絡(luò)資源。本發(fā)明可以極大地提高系統(tǒng)的可用性,減小節(jié)點故障的誤判率。
【專利說明】—種SCADA分布式平臺下的心跳檢測方法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種SCADA分布式平臺下的心跳檢測方法,屬于SCADA系統(tǒng)檢測【技術(shù)領(lǐng)域】。

【背景技術(shù)】
[0002]SCADA系統(tǒng)即數(shù)據(jù)采集與監(jiān)視控制系統(tǒng),可廣泛應(yīng)用于電力系統(tǒng)、水利監(jiān)控系統(tǒng)、石油、化工、軌道交通等行業(yè)的數(shù)據(jù)采集與監(jiān)視控制以及過程控制等諸多領(lǐng)域。SCADA系統(tǒng)是以計算機為基礎(chǔ)的生產(chǎn)過程控制與調(diào)度自動化系統(tǒng)。它可以對各類運行環(huán)境、多種運行設(shè)備進行監(jiān)視和控制,以實現(xiàn)數(shù)據(jù)采集、設(shè)備控制、測量、參數(shù)調(diào)節(jié)、各類信號報警、歷史數(shù)據(jù)存儲等各項功能。
[0003]在大型分布式SCADA監(jiān)控系統(tǒng)中,業(yè)務(wù)處理十分復(fù)雜,其安全性和可靠性是系統(tǒng)設(shè)計中的關(guān)鍵問題。隨著分布式系統(tǒng)的規(guī)模不斷擴大,系統(tǒng)中各個部分組件相互之間的依賴也不斷復(fù)雜,在整個SCADA分布式系統(tǒng)中存在著由多臺服務(wù)器和工作站組成的機群,這些服務(wù)器和工作站通過軟硬件結(jié)合在一起,使它們提供的服務(wù)具備冗余容錯功能,各個節(jié)點都需要相互監(jiān)視服務(wù)程序的運行并及時溝通和協(xié)作,所以需要使用故障檢測手段來檢測各個節(jié)點的運行狀況。
[0004]在服務(wù)器故障檢測方法中,心跳檢測算法是高可用分布式集群所使用的重要技術(shù)之一,能夠較好地提高系統(tǒng)的可用性,網(wǎng)絡(luò)中的各個節(jié)點在相互間定期使用數(shù)據(jù)包進行交換數(shù)據(jù)報消息,從而能夠周期性地檢測所有節(jié)點機器的工作狀態(tài),這些用于檢測狀態(tài)的消息就是心跳。通過心跳通訊,每個節(jié)點可以檢查其它節(jié)點以及它們的應(yīng)用程序的可用性,當某個節(jié)點機器的工作狀態(tài)變化時,其它節(jié)點就能夠通過心跳包是否正常來獲取該節(jié)點機器的狀態(tài),如果節(jié)點服務(wù)器沒有對心跳通訊做出響應(yīng),則正常工作的服務(wù)器會啟動故障轉(zhuǎn)移過程,包括對故障服務(wù)器擁有的資源和應(yīng)用程序的所有權(quán)進行仲裁,仲裁是使用質(zhì)詢和辯護協(xié)議來執(zhí)行的,即如果某個節(jié)點似乎發(fā)生了故障,則會在給定的時間內(nèi)允許它以其它幾種方式中的任何一種表明它仍處于正常運行當中,并且可以同其它正常的節(jié)點通訊,如果其它方式都不能證明該節(jié)點仍然在正常運行,則需要通知該節(jié)點的備用節(jié)點來接管其服務(wù)。
[0005]在典型的分布式SCADA監(jiān)控系統(tǒng)中,子站和中心站都存在著至少兩臺以上的服務(wù)器,這些服務(wù)器之間可以心跳技術(shù)來獲取其他服務(wù)器節(jié)點的狀態(tài)信息。心跳機制在網(wǎng)絡(luò)周期性地向所有服務(wù)器或工作站發(fā)送心跳包,用來判斷節(jié)點是否“存活”,如果在一定的時間內(nèi),沒有收到其他節(jié)點的心跳信息,就可以認為節(jié)點發(fā)生故障,進而開始對可能發(fā)生故障的節(jié)點進行全面測試,若節(jié)點無法通過測試,則認為節(jié)點宕機,交由備用節(jié)點接管,并給出報警信息,從而提高整個系統(tǒng)的可靠性。


【發(fā)明內(nèi)容】

[0006]針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供了一種SCADA分布式平臺下的心跳檢測方法。
[0007]—種SCADA分布式平臺下的心跳檢測方法,包括以下步驟:
1)在SCADA分布式系統(tǒng)中的每個節(jié)點設(shè)計一個心跳檢測服務(wù)進程,并在心跳檢測服務(wù)進程中建立心跳發(fā)送線程和心跳接收線程;
2)某節(jié)點的心跳發(fā)送線程向目標節(jié)點服務(wù)器發(fā)送心跳數(shù)據(jù)包,首先判斷本節(jié)點針對目標節(jié)點的心跳最大丟失次數(shù)是否大于3,如果是,則判斷目標節(jié)點服務(wù)器失效;否則,發(fā)送一次心跳數(shù)據(jù)包;
3)目標節(jié)點的心跳接收線程接收心跳數(shù)據(jù)包,并判斷是否超時,如果是則將本節(jié)點針對目標節(jié)點的心跳最大丟失次數(shù)加I ;否則,將本節(jié)點針對目標節(jié)點的心跳最大丟失次數(shù)置零,并回復(fù)正常收到心跳數(shù)據(jù)。
[0008]前述的步驟2)中,心跳發(fā)送線程每隔5秒鐘發(fā)送一次心跳數(shù)據(jù)包。
[0009]前述的步驟3)中,超時是指對于每個心跳路徑,超過心跳間隔乘以最大丟失次數(shù)仍沒有收到心跳信息包時,心跳超時。
[0010]前述的步驟2),步驟3)中,心跳數(shù)據(jù)包的心跳信息包括主機信息,網(wǎng)卡、資源組、資源信息。
[0011]前述的按照心跳數(shù)據(jù)傳播路徑優(yōu)先級發(fā)送命令,先通過優(yōu)先級最高的心跳數(shù)據(jù)傳播路徑發(fā)送心跳命令,當心跳數(shù)據(jù)傳播路徑超時再通過優(yōu)先級低的心跳數(shù)據(jù)傳播路徑發(fā)送。
[0012]前述的心跳數(shù)據(jù)包的發(fā)送和接收過程中,增加心跳CRC校驗和判斷,如果出現(xiàn)心跳數(shù)據(jù)異常,視為心跳丟失一次處理,將心跳最大丟失次數(shù)加1,寫入日志。
[0013]前述的心跳數(shù)據(jù)包的發(fā)送方式包括傳輸控制協(xié)議TCP和數(shù)據(jù)報協(xié)議UDP兩種方式。
[0014]前述的SCADA分布式多節(jié)點平臺中,如果節(jié)點間有頻繁的控制命令,則心跳發(fā)送線程停止發(fā)送心跳數(shù)據(jù)包,心跳接收線程停止回復(fù)心跳命令,而使用命令包替代心跳數(shù)據(jù)包來檢測節(jié)點的狀態(tài),頻繁控制命令操作結(jié)束后,心跳發(fā)送線程恢復(fù)發(fā)送心跳數(shù)據(jù)包,心跳接收線程恢復(fù)回復(fù)心跳命令,繼續(xù)檢測節(jié)點狀態(tài);所述頻繁的控制命令定義超過20次/分鐘的控制命令操作次數(shù)為頻繁。
[0015]本發(fā)明的有益效果是:
本發(fā)明首次在SCADA分布式平臺中引入心跳檢測機制來對網(wǎng)絡(luò)中的服務(wù)器、工作站等節(jié)點進行故障檢測,使用心跳發(fā)送線程和接收線程來配合進行故障檢測;另外,在網(wǎng)絡(luò)狀態(tài)繁忙的情況下,暫停心跳發(fā)送線程和接收線程,使用命令包替代心跳數(shù)據(jù)包來檢測節(jié)點的狀態(tài),可以節(jié)省網(wǎng)絡(luò)資源。本發(fā)明可以極大地提高系統(tǒng)的可用性,減小節(jié)點故障的誤判率。

【專利附圖】

【附圖說明】
[0016]圖1為本發(fā)明的心跳檢測服務(wù)進程中心跳檢測機制流程圖;
圖2為本發(fā)明命令包替換心跳包示意圖;
圖3為本發(fā)明心跳線程優(yōu)化示意圖。

【具體實施方式】
[0017]以下結(jié)合附圖和具體實施例對本發(fā)明作進一步的詳細說明。
[0018]本發(fā)明的SCADA分布式平臺下的心跳檢測方法及優(yōu)化策略,主要包括四部分。
[0019]一、心跳線程設(shè)計
為SCADA分布式系統(tǒng)中的每個節(jié)點(包括主備服務(wù)器、主備工作站)設(shè)計一個心跳檢測服務(wù)進程,并在心跳檢測服務(wù)進程中建立兩個線程來實現(xiàn)心跳檢測機制,如圖1所示,心跳檢測機制示意圖。
[0020]心跳發(fā)送線程A:
該線程用于每隔5秒鐘,發(fā)送心跳數(shù)據(jù)包給目標節(jié)點服務(wù)器。在發(fā)送前首先判斷本節(jié)點針對目標節(jié)點的心跳最大丟失次數(shù)是否大于3,如果是,則判斷目標節(jié)點服務(wù)器失效;否則發(fā)送一次心跳數(shù)據(jù)包。
[0021]心跳接收線程B:
該線程用于接收心跳數(shù)據(jù)包,并判斷是否超時,如果超時,則將本節(jié)點針對目標節(jié)點的心跳最大丟失次數(shù)加1,否則,將本節(jié)點針對目標節(jié)點的心跳最大丟失次數(shù)置零,并回復(fù)正常收到心跳數(shù)據(jù)。
[0022]二、心跳數(shù)據(jù)包傳播路徑的規(guī)則心跳數(shù)據(jù)包傳播路徑遵循以下規(guī)則:
(I)心跳超時值:對于每個心跳路徑,超過心跳間隔乘以最大丟失次數(shù)仍沒有收到心跳信息時,心跳超時。
[0023](2)每個心跳數(shù)據(jù)包傳播路徑都一直發(fā)送和接收心跳信息,來判斷心跳狀態(tài)。心跳信息包括主機信息,網(wǎng)卡、資源組、資源等狀態(tài)。
[0024](3)按照心跳數(shù)據(jù)包傳播路徑優(yōu)先級發(fā)送命令,先通過優(yōu)先級最高的心跳數(shù)據(jù)包傳播路徑發(fā)送命令,如果心跳數(shù)據(jù)包傳播路徑超時再通過優(yōu)先級低的心跳數(shù)據(jù)包傳播路徑發(fā)送。
[0025](4)避免數(shù)據(jù)信息異常,增加心跳CRC(Cyclic Redundancy Check,循環(huán)冗余校驗碼)校驗和判斷,如果出現(xiàn)心跳數(shù)據(jù)異常,視為心跳丟失一次處理,將心跳最大丟失次數(shù)加1,并寫入日志。
[0026]三、心跳發(fā)送方式
在局域網(wǎng)中,傳輸控制協(xié)議(TCP)是一個面向連接的協(xié)議,提供可靠性保證、流量控制機制和差錯恢復(fù)等功能。數(shù)據(jù)報協(xié)議(UDP)屬于無連接協(xié)議,功能簡單,對系統(tǒng)資源的消耗也較小。
[0027]心跳發(fā)送可以采用TCP方式和UDP兩種方式發(fā)送心跳命令。對于分布式多服務(wù)器系統(tǒng)而言,每個節(jié)點之間都要相互進行通訊。由于TCP服務(wù)是提供端到端的通信,假如有η個節(jié)點,則每個節(jié)點至少要建立η-1個TCP連接。心跳網(wǎng)絡(luò)將會有η* (η_1)/2條通訊路徑,這樣將會增加發(fā)送和接收心跳命令的操作復(fù)雜度,并且TCP傳輸速率較低,網(wǎng)絡(luò)開銷較大,所以TCP方式不太實用于分布式環(huán)境下的心跳檢測。
[0028]而UDP可以同時針對多個節(jié)點進行傳輸,而且在傳輸數(shù)據(jù)之前,不需要建立連接,操作起來相對簡單,執(zhí)行效率、實時性都很高。但由于UDP是不可靠傳輸協(xié)議,只是盡可能的將包發(fā)送到目的端,會存在丟包現(xiàn)象,所以安全性比較低。
[0029]由于心跳信息需要頻繁周期性地發(fā)送和接收,考慮到對系統(tǒng)效率、網(wǎng)絡(luò)環(huán)境的影響,使用無連接的數(shù)據(jù)報協(xié)議發(fā)送心跳較為合適。再有,心跳信息的傳送不需要非常高的可靠性,連續(xù)丟失幾個心跳才表示系統(tǒng)可能出問題,偶爾丟失一個心跳不會產(chǎn)生錯誤,所以心跳使用UDP數(shù)據(jù)報協(xié)議比較合理。
[0030]四、心跳檢測優(yōu)化策略
SCADA分布式多節(jié)點平臺下,在網(wǎng)絡(luò)繁忙時各節(jié)點之間會頻繁地發(fā)送控制命令,或者進行實時數(shù)據(jù)庫的信息同步,而此時心跳檢測服務(wù)進程仍然在發(fā)送和接收心跳數(shù)據(jù)包,會占用網(wǎng)絡(luò)帶寬等資源,為了解決該問題,本發(fā)明進一步對心跳檢測機制做出了優(yōu)化。
[0031]在分布式多服務(wù)器系統(tǒng)中,心跳數(shù)據(jù)包和控制命令是分別發(fā)送的,考慮到控制命令包的發(fā)送與回復(fù)類似于心跳數(shù)據(jù)包的發(fā)送與回復(fù)機制,在網(wǎng)絡(luò)頻繁交互時,就可以使用控制命令包替換心跳數(shù)據(jù)包,從而減少心跳對網(wǎng)絡(luò)的影響,如圖2所示,本發(fā)明的控制命令包替換心跳數(shù)據(jù)包示意圖。
[0032]假設(shè)有A、B、C三個節(jié)點,C節(jié)點是B節(jié)點的備用。在正常情況下,節(jié)點A、B、C之間進行心跳檢測,一旦節(jié)點A檢測到節(jié)點B失效,則需要將A與B之間的服務(wù)都切換到C上,此時節(jié)點A會頻繁的發(fā)送控制、同步命令給節(jié)點C,使得A、C之間的網(wǎng)絡(luò)上發(fā)生頻繁的數(shù)據(jù)交互。
[0033]由于節(jié)點A頻繁的發(fā)送控制命令給節(jié)點C,節(jié)點C對于節(jié)點A的命令執(zhí)行后又會回復(fù)執(zhí)行命令完畢。如果節(jié)點C能夠收到節(jié)點A的控制命令,就證明節(jié)點C與節(jié)點A之間的網(wǎng)絡(luò)是正常的,如果節(jié)點A能夠收到節(jié)點C的回復(fù)命令,就證明節(jié)點A與節(jié)點C之間的網(wǎng)絡(luò)是正常的。這樣我們可以認為節(jié)點A與C之間的命令操作也相當于心跳命令,在實際應(yīng)用中,考慮到此時的節(jié)點A與節(jié)點C之間的控制命令發(fā)送會持續(xù)很長時間,心跳檢測服務(wù)進程在這一時間可以進行下列的處理。
[0034](I)判斷節(jié)點間的控制命令操作是否是頻繁的(頻繁的控制命令:通過統(tǒng)計單位時間內(nèi)的命令操作次數(shù)進行判斷,一般可定義超過20次/分鐘為頻繁);
(2)如果不是頻繁的控制命令操作,則心跳發(fā)送/接收線程保持原有機制發(fā)送/回復(fù)心跳命令;如果是頻繁的控制命令操作,則此時心跳發(fā)送線程停止發(fā)送心跳數(shù)據(jù)包,心跳接收線程停止回復(fù)心跳命令,而使用命令包替代心跳來檢測節(jié)點的狀態(tài),此時心跳服務(wù)進程用于檢測控制命令是否頻繁,如圖3所示;
(3)頻繁控制命令操作結(jié)束后,恢復(fù)正常的心跳發(fā)送/接收線程,繼續(xù)檢測節(jié)點狀態(tài)。
[0035]雖然本發(fā)明已以較佳實施例公開如上,但它們并不是用來限定本發(fā)明,任何熟習(xí)此技藝者,在不脫離本發(fā)明之精神和范圍內(nèi),自當可作各種變化或潤飾,但同樣在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種SCADA分布式平臺下的心跳檢測方法,其特征在于,包括以下步驟: 1)在SCADA分布式系統(tǒng)中的每個節(jié)點設(shè)計一個心跳檢測服務(wù)進程,并在心跳檢測服務(wù)進程中建立心跳發(fā)送線程和心跳接收線程; 2)某節(jié)點的心跳發(fā)送線程向目標節(jié)點服務(wù)器發(fā)送心跳數(shù)據(jù)包,首先判斷本節(jié)點針對目標節(jié)點的心跳最大丟失次數(shù)是否大于3,如果是,則判斷目標節(jié)點服務(wù)器失效;否則,發(fā)送一次心跳數(shù)據(jù)包; 3)目標節(jié)點的心跳接收線程接收心跳數(shù)據(jù)包,并判斷是否超時,如果是則將本節(jié)點針對目標節(jié)點的心跳最大丟失次數(shù)加I ;否則,將本節(jié)點針對目標節(jié)點的心跳最大丟失次數(shù)置零,并回復(fù)正常收到心跳數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的一種SCADA分布式平臺下的心跳檢測方法,其特征在于,所述步驟2)中,心跳發(fā)送線程每隔5秒鐘發(fā)送一次心跳數(shù)據(jù)包。
3.根據(jù)權(quán)利要求1所述的一種SCADA分布式平臺下的心跳檢測方法,其特征在于,所述步驟3)中,超時是指對于每個心跳路徑,超過心跳間隔乘以最大丟失次數(shù)仍沒有收到心跳信息包時,心跳超時。
4.根據(jù)權(quán)利要求1所述的一種SCADA分布式平臺下的心跳檢測方法,其特征在于,所述步驟2),步驟3)中,心跳數(shù)據(jù)包的心跳信息包括主機信息,網(wǎng)卡、資源組、資源信息。
5.根據(jù)權(quán)利要求1所述的一種SCADA分布式平臺下的心跳檢測方法,其特征在于,按照心跳數(shù)據(jù)傳播路徑優(yōu)先級發(fā)送命令,先通過優(yōu)先級最高的心跳數(shù)據(jù)傳播路徑發(fā)送心跳命令,當心跳數(shù)據(jù)傳播路徑超時再通過優(yōu)先級低的心跳數(shù)據(jù)傳播路徑發(fā)送。
6.根據(jù)權(quán)利要求1所述的一種SCADA分布式平臺下的心跳檢測方法,其特征在于,所述心跳數(shù)據(jù)包的發(fā)送和接收過程中,增加心跳CRC校驗和判斷,如果出現(xiàn)心跳數(shù)據(jù)異常,視為心跳丟失一次處理,將心跳最大丟失次數(shù)加I,寫入日志。
7.根據(jù)權(quán)利要求1所述的一種SCADA分布式平臺下的心跳檢測方法,其特征在于,所述心跳數(shù)據(jù)包的發(fā)送方式包括傳輸控制協(xié)議TCP和數(shù)據(jù)報協(xié)議UDP兩種方式。
8.根據(jù)權(quán)利要求1所述的一種SCADA分布式平臺下的心跳檢測方法,其特征在于,所述SCADA分布式多節(jié)點平臺中,如果節(jié)點間有頻繁的控制命令,則心跳發(fā)送線程停止發(fā)送心跳數(shù)據(jù)包,心跳接收線程停止回復(fù)心跳命令,而使用命令包替代心跳數(shù)據(jù)包來檢測節(jié)點的狀態(tài),頻繁控制命令操作結(jié)束后,心跳發(fā)送線程恢復(fù)發(fā)送心跳數(shù)據(jù)包,心跳接收線程恢復(fù)回復(fù)心跳命令,繼續(xù)檢測節(jié)點狀態(tài);所述頻繁的控制命令定義超過20次/分鐘的控制命令操作次數(shù)為頻繁。
【文檔編號】H04L12/26GK104320311SQ201410670549
【公開日】2015年1月28日 申請日期:2014年11月20日 優(yōu)先權(quán)日:2014年11月20日
【發(fā)明者】李佑文, 包德梅, 劉志超, 顏儒彬, 曹黎明, 羅存, 褚紅健, 岳以洋 申請人:國電南京自動化股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
哈密市| 揭东县| 阳新县| 栾城县| 三江| 古交市| 鄂托克前旗| 灵寿县| 清原| 天台县| 定南县| 台前县| 长春市| 新河县| 武强县| 北安市| 简阳市| 福鼎市| 花莲市| 奉新县| 东平县| 西和县| 邻水| 双城市| 兴业县| 元江| 平乐县| 天镇县| 西和县| 章丘市| 勐海县| 武冈市| 正蓝旗| 神农架林区| 奉新县| 霞浦县| 铁岭县| 安国市| 太仆寺旗| 谢通门县| 大足县|