專利名稱:用于使分布式系統(tǒng)同步的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及使分布式系統(tǒng)同步,并尤其涉及分配數(shù)據(jù)以及訪問該分布式系統(tǒng)中的資源。
背景技術(shù):
為了完成復(fù)雜的計(jì)算技術(shù)任務(wù),和/或?yàn)榱嗽跀?shù)據(jù)處理設(shè)備中通過冗余度實(shí)現(xiàn)安全,經(jīng)常使用如下設(shè)備,其由多數(shù)單個(gè)自動裝置或者計(jì)算機(jī)或者計(jì)算機(jī)系統(tǒng)組成,但是對設(shè)備的用戶表現(xiàn)透明如同單個(gè)設(shè)備。也稱這種設(shè)備為分布式系統(tǒng),其中例如過程或者措施(如存儲冗余度或者負(fù)載平衡或者負(fù)載分配)對用戶來說優(yōu)選地被形成為透明、即看不到的。分布式系統(tǒng)與網(wǎng)絡(luò)的區(qū)別例如在于,在網(wǎng)絡(luò)中,網(wǎng)絡(luò)的單個(gè)計(jì)算機(jī)對用戶表現(xiàn)為分離的實(shí)體,其中在網(wǎng)絡(luò)中,存儲冗余度或者負(fù)載平衡對用戶來說被形成為經(jīng)常不是透明的、即可看到的,并且經(jīng)常甚至需要用戶相互配合。
在分布式系統(tǒng)中,必須在單個(gè)計(jì)算機(jī)或者系統(tǒng)之間進(jìn)行數(shù)據(jù)分配。對該數(shù)據(jù)分配,已知多種可能性。對此,通??梢詤^(qū)分為一方面相對慢的、交易可靠的數(shù)據(jù)傳輸,另一方面較快的、相對不可靠的具有微小耗費(fèi)的分配。
如果在交易可靠的數(shù)據(jù)傳輸情況下交易可靠延伸到用戶接口,那么可以在每個(gè)時(shí)刻保證完全的數(shù)據(jù)一致性,其方式是,例如只有在系統(tǒng)中已經(jīng)可靠地分配了輸入時(shí),才通過用戶獲得反饋信息。但是,尤其在必須將數(shù)據(jù)分配給許多機(jī)器的情況下,這是具有高通信部分的相對費(fèi)時(shí)的過程。當(dāng)通常不期望長反應(yīng)時(shí)間時(shí),具有必須避免長反應(yīng)時(shí)間的一系列應(yīng)用、例如安全臨界應(yīng)用。另外,實(shí)現(xiàn)交易可靠的系統(tǒng)耗費(fèi)巨大且價(jià)格昂貴。
另一方面,如果偏離完全交易可靠的原則,其中例如當(dāng)可能將輸入轉(zhuǎn)移給僅一個(gè)其他機(jī)器或者其他系統(tǒng)時(shí)就已經(jīng)產(chǎn)生反饋信息,那么在系統(tǒng)中存在不一致的狀態(tài)的危險(xiǎn)。例如如果由于連接問題出現(xiàn)系統(tǒng)分離,或者恰恰已經(jīng)接收輸入數(shù)據(jù)的那些機(jī)器或者部分系統(tǒng)出現(xiàn)故障,則這些不一致的狀態(tài)可能引起數(shù)據(jù)損耗。因此,可能已經(jīng)用信令發(fā)送它的輸入的處理給用戶,而在系統(tǒng)中丟失該輸入,但是這特別不允許出現(xiàn)在安全臨界環(huán)境中。
把引起的緊急呼叫看作例子,例如通過指示器向發(fā)出緊急呼叫的用戶證實(shí)該成功發(fā)出的、但最終不再被繼續(xù)處理的緊急呼叫。
發(fā)明內(nèi)容
因此,本發(fā)明的任務(wù)在于,給出分布式系統(tǒng)的可選的傳輸方法以及可選的分布式系統(tǒng),由此,以較小的損耗來達(dá)到完全的交易可靠的可靠性。
該任務(wù)通過用于使分布式系統(tǒng)的組件同步的方法來解決,因此,系統(tǒng)狀態(tài)通過至少一個(gè)在所有組件中設(shè)定的對象來代表,其中借助于狀態(tài)轉(zhuǎn)換消息用信令向所有其他組件發(fā)送組件之一中的對象的狀態(tài)的轉(zhuǎn)換,此后,通過每個(gè)其他組件檢查用信令發(fā)送的狀態(tài)轉(zhuǎn)換的本地有效性,其中在本地有效的狀態(tài)轉(zhuǎn)換時(shí),更新這些組件中的對象的狀態(tài),而在本地?zé)o效的狀態(tài)轉(zhuǎn)換時(shí),確定具有至少向具有對象的無效狀態(tài)的組件發(fā)送的對象有效狀態(tài)的組件,然后更新在這些組件中的對象的狀態(tài)。
另外,本發(fā)明涉及分布式系統(tǒng),配置所述分布式系統(tǒng)的組件以用于執(zhí)行本發(fā)明方法。
與已知的分布式系統(tǒng)相比,本發(fā)明提供了如下優(yōu)點(diǎn),即為了傳輸用于保持或者重新建立系統(tǒng)同步性所必需的狀態(tài)轉(zhuǎn)換消息,可以使用不可靠的并從而快速的傳輸方法,例如UDP/IP(用戶數(shù)據(jù)報(bào)協(xié)議/互聯(lián)網(wǎng)協(xié)議)組播消息。這里假定,在通常情況下,這些消息也到達(dá)它們的目的地,并且系統(tǒng)單獨(dú)地通過這些消息來保持同步。當(dāng)然,如果出現(xiàn)干擾,那么每個(gè)組件最晚利用下一次接收的狀態(tài)轉(zhuǎn)換消息或者在消息傳輸中的較長暫停時(shí)通過所應(yīng)用的監(jiān)控機(jī)制能夠,確定同步的(可能本地的)中斷,并在具有正確狀態(tài)的組件上請求該正確狀態(tài)。在此,系統(tǒng)狀態(tài)通過一個(gè)或者多個(gè)對象來完整地描繪。在此,多個(gè)適當(dāng)受限的對象給出下列優(yōu)點(diǎn),即在對象之一的狀態(tài)轉(zhuǎn)換時(shí)出現(xiàn)的數(shù)據(jù)量較小。
換句話說,本發(fā)明實(shí)現(xiàn)一種弱耦合的分布式系統(tǒng),其中沒有受到干擾的正常運(yùn)行比在完全交易可靠的系統(tǒng)中運(yùn)行的要快,而同時(shí)保證完全交易可靠的系統(tǒng)的安全性。
這里,按照本發(fā)明,沒有必要維持系統(tǒng)狀態(tài)的信息或者諸如服務(wù)器或者數(shù)據(jù)庫等所選中央組件中的對象的狀態(tài)信息,其中所述組件將構(gòu)成所謂的單點(diǎn)故障(Single Point of Failure)。更確切地說,在故障情況下,確定具有有效狀態(tài)的組件,所述有效狀態(tài)然后被應(yīng)用于具有無效對象狀態(tài)的組件。按照本發(fā)明,總是通過中央組件限定的對系統(tǒng)的可供使用性產(chǎn)生消極影響的“單點(diǎn)故障”是不必要的。
本發(fā)明同樣提供一種用于解決對專用資源的競爭訪問的機(jī)制。如果兩個(gè)或者多個(gè)實(shí)例同時(shí)或者時(shí)間相近地管理或者試圖管理專用資源,那么在進(jìn)行這種競爭訪問時(shí),調(diào)整一致的或者同步的系統(tǒng)狀態(tài)是必要的。這里也可以通過本發(fā)明阻止或者消除不一致的狀態(tài)。
在許多應(yīng)用情況下,本發(fā)明分布式系統(tǒng)優(yōu)選地可以代替用于分布式工作(如CORBA)的特別的數(shù)據(jù)庫以及傳輸機(jī)制。這種系統(tǒng)也出現(xiàn)暫時(shí)網(wǎng)絡(luò)分離而后來又重新歸并(分離的部分網(wǎng)絡(luò))的環(huán)境中具有優(yōu)點(diǎn)。這里,系統(tǒng)(通常對用戶來說是不可覺察的)再次處于共有的狀態(tài)。
下面,借助于附圖在實(shí)施例中對本發(fā)明進(jìn)行更詳細(xì)的描述。圖1和2示出在具有與處理傳輸錯(cuò)誤有關(guān)的多個(gè)組件的弱耦合系統(tǒng)中與狀態(tài)相關(guān)的通信的運(yùn)行簡圖。
具體實(shí)施例方式
圖1示出與對象X相關(guān)的通信過程的簡圖,所述對象X在弱耦合系統(tǒng)的三個(gè)組件A、B、C上形成映像。通過圓100A、100B、100C分別針對三個(gè)計(jì)算機(jī)或者計(jì)算機(jī)系統(tǒng)A、B、C示出這些對象映像。
假設(shè)所有三個(gè)計(jì)算機(jī)A、B、C首先已經(jīng)為對象X存儲了相同的狀態(tài),因此也關(guān)于對象X同步地工作。該狀態(tài)的特征由所謂的狀態(tài)占有者(StOwn)和上一次的狀態(tài)轉(zhuǎn)換消息標(biāo)志(StChID)來表征。該兩個(gè)參數(shù)被存儲在所有計(jì)算機(jī)中,并且只要系統(tǒng)同步地工作,那么系統(tǒng)范圍內(nèi)該兩個(gè)參數(shù)相同。另外,在每個(gè)計(jì)算機(jī)中還存儲所有其他計(jì)算機(jī)的其他消息標(biāo)志(MID),也即在計(jì)算機(jī)A中存儲有計(jì)算機(jī)B和C的其他消息標(biāo)志,在計(jì)算機(jī)B中存儲有計(jì)算機(jī)A和C的其他消息標(biāo)志,和在計(jì)算機(jī)C中存儲有計(jì)算機(jī)A和B的其他消息標(biāo)志。
將計(jì)算機(jī)稱為狀態(tài)占有者,在所述計(jì)算機(jī)中已經(jīng)發(fā)生了上一次的狀態(tài)轉(zhuǎn)換,隨后該計(jì)算機(jī)借助于狀態(tài)轉(zhuǎn)換消息已將該狀態(tài)轉(zhuǎn)換通信給其他計(jì)算機(jī)。在該情況下有StOwn=B,即計(jì)算機(jī)B是最后狀態(tài)轉(zhuǎn)換的狀態(tài)占有者,其有標(biāo)志StChID=5。由A發(fā)送的上一次的消息具有MID15,由B發(fā)送的上一次的消息具有MID20,和由C發(fā)送的上一次的消息具有MID35,由此得出圖1所示的、關(guān)于與狀態(tài)轉(zhuǎn)換消息相關(guān)聯(lián)的標(biāo)志的初始狀態(tài)。
基于狀態(tài)轉(zhuǎn)換,計(jì)算機(jī)A接下來向所有其他組件、即向計(jì)算機(jī)B和C傳輸具有標(biāo)志StChID=6(舊StChID加1)的狀態(tài)轉(zhuǎn)換消息102。狀態(tài)占有者從現(xiàn)在起是計(jì)算機(jī)A,因?yàn)闋顟B(tài)轉(zhuǎn)換由所述計(jì)算機(jī)A開始。A的MID也被增值,并且與狀態(tài)轉(zhuǎn)換消息一起被傳輸,它從現(xiàn)在起為16。
所有其他組件正確地接收消息102。將標(biāo)志StChID和MID與本地存儲的值進(jìn)行比較,并且確定,在B和C處迄今的本地狀態(tài)是有效的,因?yàn)樗邮盏腟tChID和MID的值正好對應(yīng)于增加1的本地值。另外從A已經(jīng)使用了正確的StChID和MID的事實(shí)中得出,該狀態(tài)在計(jì)算機(jī)A處也有效。隨后,計(jì)算機(jī)B和C更新對象X的狀態(tài),該狀態(tài)然后再次對所有計(jì)算機(jī)都是相同的,其參數(shù)為StChID=6,StOwn=A和MIDA16,B20,C35。
一般來講,在上述無干擾工作時(shí),該系統(tǒng)表現(xiàn)如下原則上在每個(gè)參與的計(jì)算機(jī)上都產(chǎn)生代表一部分系統(tǒng)狀態(tài)的所有對象。因此,整體上對所有具有系統(tǒng)狀態(tài)的對象進(jìn)行復(fù)制。經(jīng)組播消息發(fā)送狀態(tài)的每次變化,并且從而由所有組件或者計(jì)算機(jī)A、B、C接收。對象本地參數(shù)StChID、參數(shù)StOwn和計(jì)算機(jī)本地參數(shù)或者組件本地參數(shù)MID被添加到這種消息上。
利用參數(shù)StChID可以識別由于同時(shí)轉(zhuǎn)換狀態(tài)或者暫時(shí)分離網(wǎng)絡(luò)引起的沖突。借助于計(jì)算機(jī)本地參數(shù)MID可以識別暫時(shí)的網(wǎng)絡(luò)分離。同時(shí),一般通過主動的Ping機(jī)制在參與的計(jì)算機(jī)之間監(jiān)控該參數(shù),其中可以如此配置Ping機(jī)制,使得如果沒有收到該計(jì)算機(jī)的其他消息,那么只交換Ping。如果沒有監(jiān)控機(jī)制通知錯(cuò)誤,那么因此通過簡單發(fā)送(組播)消息來結(jié)束狀態(tài)轉(zhuǎn)換的傳播。
再次根據(jù)圖1,基于狀態(tài)轉(zhuǎn)換,計(jì)算機(jī)B向所有其他組件、即向計(jì)算機(jī)A和C傳輸具有標(biāo)志StChID=7(舊的StChID加1)的狀態(tài)轉(zhuǎn)換消息104。從現(xiàn)在起狀態(tài)占有者為計(jì)算機(jī)B,因?yàn)闋顟B(tài)轉(zhuǎn)換以該計(jì)算機(jī)為起點(diǎn)。B的MID也被增值,并且和狀態(tài)轉(zhuǎn)換消息被一起傳輸,它從現(xiàn)在起為21。
消息104由A正確接收。計(jì)算機(jī)A重新進(jìn)行上述檢查,并且最終更新本地狀態(tài),于是,該本地狀態(tài)由參數(shù)StChID=7,StOwn=B和MIDA16,B21,C35來表征。
由于通信干擾,計(jì)算機(jī)C沒有或者沒有正確接收消息104。計(jì)算機(jī)C不執(zhí)行動作,并且保持在迄今有效的狀態(tài)中,該狀態(tài)(同上)由參數(shù)StChID=6,StOwn=A和MID A16,B20,C35來表征。
分布式系統(tǒng)從該時(shí)刻開始不再是同步的,但這不可直接地被確定。在圖1的例子中,借助于下一次的狀態(tài)轉(zhuǎn)換消息進(jìn)行錯(cuò)誤識別,但是也可以通過所提及的Ping機(jī)制進(jìn)行。通過B利用上一次的有效MID向A和C發(fā)送Ping,可以通過Ping進(jìn)行錯(cuò)誤識別,隨后C確定偏差,并且從而識別本地狀態(tài)為無效,隨后在圖2的意義上進(jìn)行錯(cuò)誤處理。
如果在系統(tǒng)中借助于下一次的狀態(tài)轉(zhuǎn)換消息在系統(tǒng)中進(jìn)行錯(cuò)誤識別,那么可以區(qū)別兩種情況C發(fā)送狀態(tài)轉(zhuǎn)換消息,而A和B識別該問題(圖1所示,在下面進(jìn)行說明),或者A或者B發(fā)送狀態(tài)轉(zhuǎn)換消息,而C識別該問題(關(guān)于圖2進(jìn)行表示和說明)。
基于狀態(tài)轉(zhuǎn)換,計(jì)算機(jī)C向所有其他組件、即向計(jì)算機(jī)A和B發(fā)送狀態(tài)轉(zhuǎn)換消息106。因?yàn)樵谟?jì)算機(jī)C中的對象X的本地狀態(tài)與當(dāng)前狀態(tài)不對應(yīng),所以C使用(從A和B的觀點(diǎn)看)過時(shí)的狀態(tài)轉(zhuǎn)換消息StChID=7。C的狀態(tài)被A和B識別為無效,因?yàn)镃期望StChID=8。
如果錯(cuò)誤被識別,那么沖突要被解決。在此,借助于參數(shù)StOwn、StChID或/和可預(yù)定的優(yōu)先權(quán)確定,通過哪個(gè)組件決定真實(shí)狀態(tài)。在具有相同的權(quán)利時(shí),借助于通常已知的可與實(shí)際狀態(tài)占有者相比較的特性的最小值(例如借助于網(wǎng)絡(luò)地址)確定組件。因?yàn)檎w上存在為決定需要的所有數(shù)據(jù),所以作出決定不需要附加的通信。
在圖1的例子中假設(shè),參數(shù)StOwn對確定支配真實(shí)狀態(tài)的組件起決定作用,即選擇B作為出現(xiàn)上一次的狀態(tài)轉(zhuǎn)換(具有StChID=7)的組件。完整的對象由該所選擇的組件至少被傳輸?shù)骄哂袩o效本地狀態(tài)的組件、也即計(jì)算機(jī)C(步驟108),并且也可以被并列地傳輸?shù)剿衅渌慕M件。借助于組播(序列X7)連續(xù)地傳輸具有狀態(tài)StChID=7的對象X。如果只給具有無效本地狀態(tài)的組件重新提供對象X,那么替代組播也可以選擇交易可靠的傳輸,以便保證完全無誤地傳輸對象映像。
在進(jìn)行這種錯(cuò)誤消除之后,所有組件A、B、C再次具有關(guān)于對象X的統(tǒng)一的狀態(tài),其特征在于,參數(shù)StChID=7,StOwn=B和MID A16,B21,C36。
在圖2中,以與圖1中相同的情形(A和B具有StChID=7,由于錯(cuò)誤,所以C具有StChID=6)為出發(fā)點(diǎn)來描述確定組件C處的不一致性的情況,其中通過并列事件消除錯(cuò)誤需要比圖1的例子中更多的步驟。
組件B在步驟104中已經(jīng)傳輸了新的狀態(tài)(StChID=7)之后,在A中進(jìn)行狀態(tài)轉(zhuǎn)換,該狀態(tài)轉(zhuǎn)換由A向其他組件、即向計(jì)算機(jī)B和C傳輸(步驟206)。此外,使用狀態(tài)轉(zhuǎn)換消息參數(shù)StChID=8,StOwn=A和MID=17。在所接收的狀態(tài)轉(zhuǎn)換消息中獲得StChID=8時(shí),C確定C沒有接收具有StChID=7的狀態(tài)轉(zhuǎn)換消息,并從而本地狀態(tài)在C處無效。所以C通過廣播(即向包括為了簡化起見而迄今沒有詳細(xì)考察的組件D的所有組件)借助于消息210請求對象的當(dāng)前映像,并且起動監(jiān)控定時(shí)器,以用于監(jiān)控A的映像接收。然而,B事先已經(jīng)借助于狀態(tài)轉(zhuǎn)換消息208(StChID=9,StOwn=B,MID=9)用信令向所有其他組件發(fā)送了另一狀態(tài)轉(zhuǎn)換。
狀態(tài)轉(zhuǎn)換消息208由C接收,隨后C確定,B丟失了消息,因?yàn)锽的本地MID為20,而接收的消息中包含的是22。在MID與期望值偏離時(shí),不向其他組件發(fā)送廣播,而是由其MID示出誤差的那個(gè)伙伴組件請求所有狀態(tài)轉(zhuǎn)換消息標(biāo)志StChID的完整清單(步驟214),接收所述完整清單(218),并且借助于它確定,需要為哪個(gè)對象請求更新的映像。于是,為該對象通過廣播要求映像,步驟220。
在圖2的情況下,在接收狀態(tài)轉(zhuǎn)換消息208之后,由A向具有狀態(tài)ID 8的C(和可選地也向所有其他組件)傳輸所請求的對象X的映像(步驟212),其中在完全接收該映像之前,在C處已接收了由D引起的另一狀態(tài)轉(zhuǎn)換(步驟216)。該狀態(tài)轉(zhuǎn)換216與狀態(tài)轉(zhuǎn)換208共同被存儲在C處,以便能夠與所接收的映像匹配。在此,這是必需的,因?yàn)樵撚诚袷菭顟B(tài)8的,消息208是狀態(tài)9的,以及消息216是狀態(tài)10的。當(dāng)然,利用消息214和218已請求和收到StChID的所述清單,并且通過廣播請求新的對象映像,步驟220。該廣播由D應(yīng)答(步驟222),因?yàn)榻M件D是當(dāng)前狀態(tài)占有者。將該對象映像的StChID與暫存的狀態(tài)變化消息及其標(biāo)志StChID進(jìn)行比較,并且將其StChID小于或者等于該映像的StChID的所有暫存的狀態(tài)變化消息舍棄。
在進(jìn)行該錯(cuò)誤消除之后,所有組件A、B、C、D再次具有關(guān)于對象X的統(tǒng)一狀態(tài),其特征在于,參數(shù)StChID=10,StOwn=D和MID A17,B22,C35,D567。
本發(fā)明指出,在通過已識別出無效的本地狀態(tài)的組件請求對象映像時(shí),如上所述地起動計(jì)時(shí),上一次的狀態(tài)轉(zhuǎn)換消息(借助于該狀態(tài)轉(zhuǎn)換消息已識別出錯(cuò)誤)的狀態(tài)占有者希望在該計(jì)時(shí)內(nèi)得到所述對象映像。如果該對象映像沒有被發(fā)送,那么具有次低級優(yōu)先權(quán)的組件接管該任務(wù)。如果經(jīng)廣播向所有組件發(fā)送該對象映像,那么這有利地不需要附加的請求,因?yàn)檫@樣具有次低級優(yōu)先權(quán)的組件確定原來的狀態(tài)占有者的對象映像未出現(xiàn)。
可選地可以使用Ping機(jī)制,以便檢測狀態(tài)占有者的故障,并且在定時(shí)器運(yùn)行結(jié)束之前已經(jīng)發(fā)送對象的映像到具有無效本地狀態(tài)的組件。
弱耦合的分布式系統(tǒng)根據(jù)本發(fā)明進(jìn)行再同步所利用的最大延遲取決于監(jiān)控定時(shí)器的值,然而,只有在錯(cuò)誤情況下才可看出該延遲的干擾,因此現(xiàn)有技術(shù)的傳輸網(wǎng)絡(luò)(其在進(jìn)行不可靠的傳輸時(shí)也具有非常小的錯(cuò)誤比)能夠借助于與本發(fā)明有關(guān)的簡單而不確認(rèn)的組播消息總共快速地傳輸消息,其中在監(jiān)控定時(shí)器運(yùn)行了配置的時(shí)間之后,同時(shí)獲得完全交易可靠的系統(tǒng)的高安全性。
為了執(zhí)行本發(fā)明,只要利用組播消息可以聯(lián)系上所有組件,就可以使用任意組播機(jī)制。如果將例如互聯(lián)網(wǎng)協(xié)議IP用作優(yōu)選的傳輸協(xié)議和將用戶數(shù)據(jù)報(bào)協(xié)議UDP用作廣播協(xié)議,那么必須例如保證,可尋址所有組件,即如果組件處于不同的IP網(wǎng)絡(luò)中,那么必須例如使用路由器,并對其進(jìn)行相應(yīng)地配置。
為了描述不自動支持用于通知狀態(tài)的組播機(jī)制或者自動支持控制任意多個(gè)源的設(shè)備,可以使用有代表性的對象。該有代表性的對象的特性基本上如同上述對象。然而,為了直接訪問該有代表性的設(shè)備,確定在選出的計(jì)算機(jī)(作為設(shè)備的代表)上的、接管與該設(shè)備進(jìn)行實(shí)際通信的對象。為了確定該對象,使用上述機(jī)制,即根據(jù)整體上已知的計(jì)算機(jī)特性的最小值將所述對象之一本身識別為有代表性的對象,并且利用它的計(jì)算機(jī)地址設(shè)置屬性,以便將它通知給其他的對象。如果多個(gè)對象應(yīng)該同時(shí)表明是有代表性的對象,那么通過解決沖突如上所述地再次解決該狀態(tài)。因此保證,對一個(gè)設(shè)備總是存在一個(gè)有代表性的對象,能夠如下擴(kuò)展監(jiān)控功能,即在確定計(jì)算機(jī)故障時(shí),所有對象都復(fù)位有代表性的計(jì)算機(jī)的現(xiàn)在的無效屬性。此后,根據(jù)已知的算法,相應(yīng)另一有代表性的對象重新接管權(quán)限。如果有代表性的對象從顯示設(shè)備接收(狀態(tài))通知,那么該對象相應(yīng)改變其狀態(tài)。又自動地向網(wǎng)絡(luò)的所有計(jì)算機(jī)上傳輸該對象。
當(dāng)然,可以使用其他算法代替示例性所述的確定最小值來選出解決沖突的對象或者來選擇有代表性的對象。因此,可以借助于適當(dāng)?shù)乃惴▽λ黾せ畹膶ο蠛推湓趨⑴c的計(jì)算機(jī)上的相應(yīng)代表分配負(fù)載。
為了實(shí)現(xiàn)本發(fā)明,可以使用已知的編程技術(shù)特性,以用于簡化實(shí)現(xiàn)可如此描述的系統(tǒng)。另外,尤其應(yīng)用反射機(jī)制屬于簡單地實(shí)現(xiàn)信息分配、識別沖突和監(jiān)控基類中的沖突解決,該應(yīng)用免除了繼續(xù)實(shí)現(xiàn)執(zhí)行給定的機(jī)制的更高層次。
按照本發(fā)明的系統(tǒng)尤其適用于以下應(yīng)用,即其中必須將數(shù)據(jù)產(chǎn)生器或者產(chǎn)生器(例如傳感器)的信息提供給多個(gè)數(shù)據(jù)負(fù)載、所謂用戶(例如操作員工作席位),而同時(shí)不對通信系統(tǒng)造成不必要的附加負(fù)荷。這在很多數(shù)據(jù)產(chǎn)生器和/或產(chǎn)生大量數(shù)據(jù)的數(shù)據(jù)產(chǎn)生器的情況下尤其重要。對此一個(gè)重要的例子是也具有空間分離的多個(gè)操作員工作席位和諸如視頻源、接觸式傳感器、接近式傳感器、濕度傳感器、煙霧報(bào)警器等大量不同數(shù)據(jù)產(chǎn)生器的監(jiān)控系統(tǒng)。
權(quán)利要求
1.用于使分布式系統(tǒng)的組件(A、B、C、D)同步的方法,其中,系統(tǒng)狀態(tài)通過至少一個(gè)在所有組件(A、B、C、D)中設(shè)定的對象(X)來代表,其中借助于狀態(tài)轉(zhuǎn)換消息(102、104、106)將在組件之一中的對象(X)的狀態(tài)轉(zhuǎn)換用信令發(fā)送給所有其他組件,隨后通過每個(gè)其他組件來檢查用信令發(fā)送的狀態(tài)轉(zhuǎn)換的本地有效性,其中在本地有效的狀態(tài)轉(zhuǎn)換時(shí),更新這些組件中對象的狀態(tài),并且在本地?zé)o效的狀態(tài)轉(zhuǎn)換時(shí),確定具有至少向具有對象(X)無效狀態(tài)的組件所發(fā)送的對象(X)有效狀態(tài)的組件,然后更新在這些組件中的對象的狀態(tài)。
2.按照權(quán)利要求1所述的方法,其特征在于,借助于不可靠的組播傳輸所述狀態(tài)轉(zhuǎn)換消息(102、104、106)。
3.按照權(quán)利要求1或者2之一所述的方法,其特征在于,將發(fā)送組件的至少一個(gè)連續(xù)的狀態(tài)轉(zhuǎn)換消息標(biāo)志(StChID)、進(jìn)行狀態(tài)轉(zhuǎn)換的組件的標(biāo)志(StOwn)和一個(gè)本地消息標(biāo)志(MID)分配給每個(gè)狀態(tài)轉(zhuǎn)換消息(102、104、106)。
4.按照權(quán)利要求3所述的方法,其特征在于,-所有接收一個(gè)狀態(tài)轉(zhuǎn)換消息的組件將與在相應(yīng)組件上接收或者發(fā)送的最后的狀態(tài)轉(zhuǎn)換消息的狀態(tài)轉(zhuǎn)換消息標(biāo)志(StChID)相對應(yīng)的相應(yīng)本地狀態(tài)轉(zhuǎn)換消息標(biāo)志(StChID)與所接收的狀態(tài)轉(zhuǎn)換消息(102、104、106)的狀態(tài)轉(zhuǎn)換消息標(biāo)志(StChID)進(jìn)行比較,以便檢查用信令發(fā)送的狀態(tài)轉(zhuǎn)換的本地有效性,和-在不相同時(shí),確定決定狀態(tài)的組件,通過該組件重新確定所有其他組件的對象(X)的狀態(tài)。
5.按照權(quán)利要求4所述的方法,其特征在于,從進(jìn)行狀態(tài)轉(zhuǎn)換的組件的標(biāo)志(StOwn)、狀態(tài)轉(zhuǎn)換消息標(biāo)志(StChID)和分配給所述組件的優(yōu)先權(quán)中確定所述決定狀態(tài)的組件。
6.按照權(quán)利要求4或者5之一所述的方法,其特征在于,通過從上述比較中確定對象(X)的本地狀態(tài)與當(dāng)前狀態(tài)不對應(yīng)的組件,請求在發(fā)送所述狀態(tài)轉(zhuǎn)換消息的組件中的所有對象(X)的副本。
7.由組件(A、B、C、D)組成的分布式系統(tǒng),所述系統(tǒng)的狀態(tài)通過至少一個(gè)在所有組件(A、B、C、D)中具有的對象(X)代表,其中每個(gè)組件具有-用于借助于狀態(tài)轉(zhuǎn)換消息(102、104、106)用信令向所有其他組件發(fā)送對象(X)的狀態(tài)轉(zhuǎn)換的裝置;-用于檢查用信令發(fā)送的狀態(tài)轉(zhuǎn)換的本地有效性的裝置;-用于響應(yīng)于已接收了本地有效的狀態(tài)轉(zhuǎn)換消息(102、104、106)而更新對象(X)的狀態(tài)的裝置;-用于確定具有對象(X)有效狀態(tài)的組件的裝置,以及用于響應(yīng)于已接收了本地?zé)o效的狀態(tài)轉(zhuǎn)換消息而由該組件接收對象(X)的狀態(tài)的裝置。
8.按照權(quán)利要求7所述的系統(tǒng),其中用于用信令發(fā)送對象(X)的狀態(tài)轉(zhuǎn)換的裝置包括用于借助于不可靠的組播來傳輸所述狀態(tài)轉(zhuǎn)換消息(102、104、106)的裝置。
9.按照權(quán)利要求7或者8之一所述的系統(tǒng),其中用信令發(fā)送對象(X)的狀態(tài)轉(zhuǎn)換的裝置包括用于產(chǎn)生狀態(tài)轉(zhuǎn)換消息(102、104、106)的裝置,其中至少一個(gè)連續(xù)的狀態(tài)轉(zhuǎn)換消息標(biāo)志(StChID)、進(jìn)行狀態(tài)轉(zhuǎn)換的組件的標(biāo)志(StOwn)和發(fā)送組件的本地消息識別(MID)被分配給所述用于產(chǎn)生狀態(tài)轉(zhuǎn)換消息的裝置。
10.按照權(quán)利要求9所述的系統(tǒng),其組件(A、B、C、D)附加地包括-用于存儲與在相應(yīng)組件中接收或者發(fā)送的最后狀態(tài)轉(zhuǎn)換消息的狀態(tài)轉(zhuǎn)換消息標(biāo)志(StChID)對應(yīng)的相應(yīng)本地狀態(tài)轉(zhuǎn)換消息標(biāo)志(StChID)的裝置;-用于將所述本地狀態(tài)轉(zhuǎn)換消息標(biāo)志(StChID)與所接收的狀態(tài)轉(zhuǎn)換消息(102、104、106)的狀態(tài)轉(zhuǎn)換消息標(biāo)志(StChID)進(jìn)行比較的裝置,以便檢查信令化的狀態(tài)轉(zhuǎn)換的本地有效性;和-用于在不相同時(shí)確定決定狀態(tài)的組件的裝置,以及用于通過所確定的組件重新確定所有其他組件的對象(X)的狀態(tài)的裝置。
11.按照權(quán)利要求10所述的系統(tǒng),其中用于在不相同時(shí)確定決定狀態(tài)的組件的所述裝置包括用于分析下列參數(shù)的裝置進(jìn)行狀態(tài)轉(zhuǎn)換的組件的標(biāo)志(StOwn)、狀態(tài)轉(zhuǎn)換消息標(biāo)志(StChID)和分配給所述組件的優(yōu)先權(quán)。
12.按照權(quán)利要求9或者10之一所述的系統(tǒng),其組件(A、B、C、D)另外還具有裝置用于響應(yīng)于已確定了本地狀態(tài)與對象(X)的系統(tǒng)范圍的狀態(tài)之間的誤差而請求在發(fā)送狀態(tài)轉(zhuǎn)換消息的組件中的所有對象(X)的副本。
13.按照權(quán)利要求7至12之一所述的系統(tǒng),其中所述對象(X)代表所述組件之一,并且對象(X)的這種代表特性由一附加的屬性表示。
全文摘要
本發(fā)明涉及使分布式系統(tǒng)的組件同步的方法。系統(tǒng)狀態(tài)由至少一個(gè)在所有組件中設(shè)定的對象來代表。借助于狀態(tài)轉(zhuǎn)換消息用信令向所有其他組件發(fā)送一個(gè)組件中的對象狀態(tài)的轉(zhuǎn)換。通過每個(gè)其他組件檢查用信令發(fā)送狀態(tài)轉(zhuǎn)換的本地有效性,在本地有效的狀態(tài)轉(zhuǎn)換時(shí)更新這些組件中的對象的狀態(tài),而在本地?zé)o效的狀態(tài)轉(zhuǎn)換時(shí)確定具有至少向具有對象無效狀態(tài)的組件發(fā)送的對象有效狀態(tài)的組件,然后更新這些組件中的對象的狀態(tài)。本發(fā)明涉及分布式系統(tǒng),配置該分布式系統(tǒng)的組件以用于執(zhí)行本發(fā)明。跟已知的分布式系統(tǒng)相比,本發(fā)明為了傳輸用于維持或者重新建立系統(tǒng)的同步性而必需的狀態(tài)轉(zhuǎn)換消息,可以使用不可靠的并從而快速的傳輸方法,例如UDP組播消息。
文檔編號H04L29/06GK1725758SQ20051008607
公開日2006年1月25日 申請日期2005年7月19日 優(yōu)先權(quán)日2004年7月19日
發(fā)明者M·耶卡爾, G·施賴伯, C·施泰因布呂克, S·馮德黑德 申請人:西門子公司