專利名稱:群集化節(jié)點(diǎn)配置中主節(jié)點(diǎn)的選擇的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及計(jì)算機(jī)網(wǎng)絡(luò),具體涉及網(wǎng)絡(luò)群集環(huán)境中的負(fù)載平衡。
背景技術(shù):
隨著某些因特網(wǎng)站點(diǎn)變得流行,它們可能達(dá)到這樣一點(diǎn),即單個(gè)服務(wù)器可能不足以跟上它們系統(tǒng)上的負(fù)載。這種情況的一個(gè)解決方法是將若干臺(tái)服務(wù)器(也稱為節(jié)點(diǎn))組合成一個(gè)節(jié)點(diǎn)組。對(duì)于客戶機(jī),該節(jié)點(diǎn)組(也稱為負(fù)載平衡組)仍然顯示為單個(gè)的服務(wù)器。但是在內(nèi)部,到達(dá)該節(jié)點(diǎn)組的工作負(fù)載在節(jié)點(diǎn)組成員間平均分配,以便沒有一個(gè)節(jié)點(diǎn)會(huì)超過負(fù)載。
在某些網(wǎng)絡(luò)配置中,將創(chuàng)建若干節(jié)點(diǎn)組來處理系統(tǒng)中的不同資源。例如,一個(gè)節(jié)點(diǎn)組負(fù)責(zé)傳輸數(shù)據(jù)文件,而另一個(gè)節(jié)點(diǎn)組處理站點(diǎn)的電子郵件服務(wù)。此外,網(wǎng)絡(luò)中的某些節(jié)點(diǎn)可以屬于若干個(gè)節(jié)點(diǎn)組,從而創(chuàng)建重疊的節(jié)點(diǎn)組。盡管這種靈活的節(jié)點(diǎn)組配置是有利的(由于它們?cè)试S高效的資源分配),它們可能難于管理。
網(wǎng)絡(luò)管理員通常在一個(gè)節(jié)點(diǎn)組中至少配置一個(gè)節(jié)點(diǎn)作為主節(jié)點(diǎn)(本文中也稱為lb節(jié)點(diǎn)[lbnode])。一般說來,主節(jié)點(diǎn)擁有節(jié)點(diǎn)組并負(fù)責(zé)在各節(jié)點(diǎn)組成員間分配任務(wù)。因此,除了執(zhí)行與節(jié)點(diǎn)組中的其它節(jié)點(diǎn)相同的任務(wù),主節(jié)點(diǎn)還負(fù)責(zé)在各節(jié)點(diǎn)組成員間分配工作。
通常,主節(jié)點(diǎn)由網(wǎng)絡(luò)管理員手工進(jìn)行選擇。盡管網(wǎng)絡(luò)管理員可以使用任何標(biāo)準(zhǔn)來選擇主節(jié)點(diǎn),但通?;诟呖捎眯詠磉x擇主節(jié)點(diǎn)。高可用性是指節(jié)點(diǎn)提供對(duì)網(wǎng)絡(luò)資源的連續(xù)訪問(甚至發(fā)生嚴(yán)重的網(wǎng)絡(luò)故障時(shí))的能力。因此,網(wǎng)絡(luò)管理員經(jīng)常面臨尋找節(jié)點(diǎn)組中可用性最高的節(jié)點(diǎn)以選擇作為組的主節(jié)點(diǎn)的任務(wù)。在或許重疊的節(jié)點(diǎn)組中尋找可用性最高的節(jié)點(diǎn)可能是一個(gè)困難的任務(wù)并可能需要網(wǎng)絡(luò)管理員使用費(fèi)時(shí)的“嘗試-糾正”技術(shù)。
另一種提高節(jié)點(diǎn)組可用性的方法是為節(jié)點(diǎn)組選擇一個(gè)主要主節(jié)點(diǎn)和次要主節(jié)點(diǎn)(也稱為主lb節(jié)點(diǎn)和次lb節(jié)點(diǎn))。主要主節(jié)點(diǎn)主動(dòng)地處理節(jié)點(diǎn)組的負(fù)載平衡,而次要主節(jié)點(diǎn)用作一個(gè)備用主節(jié)點(diǎn),隨時(shí)準(zhǔn)備在主要主節(jié)點(diǎn)出現(xiàn)故障時(shí)接管負(fù)載平衡。創(chuàng)建一個(gè)主節(jié)點(diǎn)對(duì)增加了節(jié)點(diǎn)組的冗余性并因此提高了節(jié)點(diǎn)組的可用性。但是,添加一個(gè)次要主節(jié)點(diǎn)現(xiàn)在需要網(wǎng)絡(luò)管理員在節(jié)點(diǎn)組中尋找兩個(gè)節(jié)點(diǎn)來?yè)?dān)當(dāng)lb節(jié)點(diǎn),進(jìn)一步使問題復(fù)雜化。通常,在可能有重疊節(jié)點(diǎn)組的網(wǎng)絡(luò)中,仍必須選擇主lb節(jié)點(diǎn)和次lb節(jié)點(diǎn),以保證最大的可用性。
發(fā)明內(nèi)容
本發(fā)明通過提供一種用于在具有多個(gè)節(jié)點(diǎn)和節(jié)點(diǎn)組的計(jì)算機(jī)網(wǎng)絡(luò)中選擇主節(jié)點(diǎn)以管理一個(gè)目標(biāo)節(jié)點(diǎn)組的方法解決了現(xiàn)有技術(shù)中的上述問題。
該方法包括一個(gè)確定操作以確定網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)對(duì)的漢明距離(hammingdistance)。每個(gè)節(jié)點(diǎn)對(duì)包括兩個(gè)節(jié)點(diǎn)對(duì)成員,節(jié)點(diǎn)對(duì)的漢明距離是節(jié)點(diǎn)對(duì)成員未共同共享的節(jié)點(diǎn)組的數(shù)目。還使用另一個(gè)確定操作來確定網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)的參與指數(shù)(participation index)。參與指數(shù)是節(jié)點(diǎn)所屬的節(jié)點(diǎn)組的數(shù)目。還確定節(jié)點(diǎn)對(duì)的可用性潛力(availability potential)??捎眯詽摿κ枪?jié)點(diǎn)對(duì)成員的參與指數(shù)之和減去節(jié)點(diǎn)對(duì)的漢明距離。通過查找網(wǎng)絡(luò)的具有最大總可用性潛力的節(jié)點(diǎn)對(duì)組合來尋找節(jié)點(diǎn)對(duì)的最佳組合。一個(gè)選擇操作從節(jié)點(diǎn)對(duì)的最佳組合中選擇一個(gè)主節(jié)點(diǎn)對(duì),該主節(jié)點(diǎn)對(duì)的兩個(gè)節(jié)點(diǎn)對(duì)成員都屬于目標(biāo)節(jié)點(diǎn)組。如果目標(biāo)節(jié)點(diǎn)組的主節(jié)點(diǎn)對(duì)不存在,將選擇一個(gè)屬于目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)作為目標(biāo)節(jié)點(diǎn)組的主節(jié)點(diǎn)。
本發(fā)明的另一個(gè)方面是用于選擇主節(jié)點(diǎn)以管理計(jì)算機(jī)網(wǎng)絡(luò)中的目標(biāo)節(jié)點(diǎn)組的數(shù)據(jù)結(jié)構(gòu)。網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)的數(shù)據(jù)結(jié)構(gòu)包括一個(gè)漢明距離數(shù)組,該數(shù)組包含節(jié)點(diǎn)對(duì)成員未共同共享的節(jié)點(diǎn)組的數(shù)目。此外,網(wǎng)絡(luò)中節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)包括一個(gè)參與指數(shù)數(shù)組,該數(shù)組包含節(jié)點(diǎn)所屬的節(jié)點(diǎn)組的數(shù)目。進(jìn)而,網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)的數(shù)據(jù)結(jié)構(gòu)包括一個(gè)可用性潛力數(shù)組,該數(shù)組包含節(jié)點(diǎn)對(duì)成員的參與指數(shù)的和減去節(jié)點(diǎn)對(duì)的漢明距離。
本發(fā)明的另一方面是一種包含在有形介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品。該計(jì)算機(jī)程序產(chǎn)品包括耦合到該有形介質(zhì)上用于選擇主節(jié)點(diǎn)以管理一個(gè)具有多個(gè)節(jié)點(diǎn)和節(jié)點(diǎn)組的計(jì)算機(jī)網(wǎng)絡(luò)中的目標(biāo)節(jié)點(diǎn)組的計(jì)算機(jī)可讀程序代碼。該計(jì)算機(jī)可讀程序代碼包括配置成確定網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)的漢明距離的程序代碼。如上所述的漢明距離是節(jié)點(diǎn)對(duì)成員未共同共享的節(jié)點(diǎn)組的數(shù)目。另一程序代碼配置成確定網(wǎng)絡(luò)中節(jié)點(diǎn)的參與指數(shù),該參與指數(shù)是節(jié)點(diǎn)所屬的節(jié)點(diǎn)組的數(shù)目。另一程序代碼配置成確定節(jié)點(diǎn)對(duì)的可用性潛力,該可用性潛力是節(jié)點(diǎn)對(duì)成員的參與指數(shù)之和減去節(jié)點(diǎn)對(duì)的漢明距離。然后使程序?qū)ふ夜?jié)點(diǎn)對(duì)的最佳組合,其中節(jié)點(diǎn)對(duì)的最佳組合具有網(wǎng)絡(luò)的最大總可用性潛力。另一程序代碼配置成選擇目標(biāo)節(jié)點(diǎn)組的主節(jié)點(diǎn)對(duì)。主節(jié)點(diǎn)對(duì)是來自節(jié)點(diǎn)對(duì)最佳組合的、兩個(gè)節(jié)點(diǎn)對(duì)成員都屬于目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)對(duì)。一程序代碼配置成,如果目標(biāo)節(jié)點(diǎn)組的主節(jié)點(diǎn)對(duì)不存在,則為目標(biāo)節(jié)點(diǎn)組選擇一個(gè)主節(jié)點(diǎn),該主節(jié)點(diǎn)是屬于目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)。
本發(fā)明的另一方面是一個(gè)用于選擇主節(jié)點(diǎn)以管理具有多個(gè)節(jié)點(diǎn)和節(jié)點(diǎn)組的計(jì)算機(jī)網(wǎng)絡(luò)中的目標(biāo)節(jié)點(diǎn)組的系統(tǒng)。該系統(tǒng)包括一個(gè)用于確定網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)的漢明距離的漢明距離模塊。還使用一個(gè)參與指數(shù)模塊確定網(wǎng)絡(luò)中節(jié)點(diǎn)的參與指數(shù)。一可用性潛力模塊確定節(jié)點(diǎn)對(duì)的可用性潛力并且一搜索模塊尋找節(jié)點(diǎn)對(duì)的最佳組合。第一選擇模塊選擇目標(biāo)節(jié)點(diǎn)組的主節(jié)點(diǎn)對(duì),并且如果目標(biāo)節(jié)點(diǎn)組的主節(jié)點(diǎn)對(duì)不存在,第二選擇模塊將選擇目標(biāo)節(jié)點(diǎn)組的主節(jié)點(diǎn)。
本發(fā)明的另一方面是一種用于選擇主節(jié)點(diǎn)以管理具有多個(gè)節(jié)點(diǎn)和節(jié)點(diǎn)組的計(jì)算機(jī)網(wǎng)絡(luò)中的目標(biāo)節(jié)點(diǎn)組的方法。該方法包括一個(gè)用于確定網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)的漢明距離的確定操作。每個(gè)節(jié)點(diǎn)對(duì)包括兩個(gè)節(jié)點(diǎn)對(duì)成員,節(jié)點(diǎn)對(duì)的漢明距離是節(jié)點(diǎn)對(duì)成員未共同共享的節(jié)點(diǎn)組的數(shù)目。通過查找網(wǎng)絡(luò)的具有最小總漢明距離的節(jié)點(diǎn)對(duì)組合來尋找節(jié)點(diǎn)對(duì)的最佳組合。一個(gè)選擇操作從節(jié)點(diǎn)對(duì)的最佳組合中選擇一個(gè)主節(jié)點(diǎn)對(duì),該主節(jié)點(diǎn)對(duì)的兩個(gè)節(jié)點(diǎn)對(duì)成員都屬于目標(biāo)節(jié)點(diǎn)組。如果目標(biāo)節(jié)點(diǎn)組的主節(jié)點(diǎn)對(duì)不存在,將選擇一個(gè)屬于目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)作為目標(biāo)節(jié)點(diǎn)組的主節(jié)點(diǎn)。
根據(jù)以下對(duì)如附圖中所示的本發(fā)明的各種實(shí)施例的更具體的描述,本發(fā)明的上述及其它特性、用途和優(yōu)點(diǎn)將是顯而易見的。
圖1示出了一個(gè)根據(jù)本發(fā)明的示例性的計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境。
圖2示出了一個(gè)根據(jù)本發(fā)明的分成若干節(jié)點(diǎn)組的計(jì)算機(jī)網(wǎng)絡(luò)。
圖3A示出了根據(jù)本發(fā)明的示例性主節(jié)點(diǎn)選擇算法的流程圖的第一階段。
圖3B示出了根據(jù)本發(fā)明的示例性主節(jié)點(diǎn)選擇算法的流程圖的第二階段。
圖4A示出了一個(gè)節(jié)點(diǎn)組配置數(shù)組。
圖4B示出了一個(gè)參與指數(shù)數(shù)組。
圖4C示出了一個(gè)漢明距離數(shù)組。
圖4D示出了一個(gè)潛在可用性數(shù)組。
圖4E示出了一個(gè)優(yōu)選次序數(shù)組。
具體實(shí)施例方式
總體上,本發(fā)明用于自動(dòng)選擇主節(jié)點(diǎn)以便實(shí)現(xiàn)節(jié)點(diǎn)組的最佳可用性。以下參考圖1-4E對(duì)本發(fā)明進(jìn)行了詳細(xì)說明。在參考附圖時(shí),示出的相同的結(jié)構(gòu)和要素以相同的參考數(shù)字表示。
圖1中示出了一個(gè)根據(jù)本發(fā)明的示例性的計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境102??蛻魴C(jī)104經(jīng)由廣域網(wǎng)(WAN)108與節(jié)點(diǎn)組106通信。客戶機(jī)104與節(jié)點(diǎn)組106之間的通信路徑可以包括各種對(duì)于本領(lǐng)域的技術(shù)人員是已知的網(wǎng)絡(luò)設(shè)備。例如,可以使用路由器110將消息從客戶機(jī)104定向到節(jié)點(diǎn)組106。
節(jié)點(diǎn)組106包括共享至少一個(gè)公共網(wǎng)絡(luò)資源114(例如,數(shù)據(jù))的若干節(jié)點(diǎn)112。選擇節(jié)點(diǎn)組106中的一個(gè)節(jié)點(diǎn)作為主節(jié)點(diǎn)116(在本文中也稱為主lb節(jié)點(diǎn))。通常,主節(jié)點(diǎn)116記錄每個(gè)節(jié)點(diǎn)的可用性和負(fù)載,并將新的客戶機(jī)會(huì)話請(qǐng)求轉(zhuǎn)發(fā)給具有空閑能力的節(jié)點(diǎn)112。以這種方式,主節(jié)點(diǎn)116通過將外來連接和數(shù)據(jù)包分派給節(jié)點(diǎn)組106中能夠承擔(dān)該項(xiàng)工作的那些節(jié)點(diǎn)112來?yè)?dān)當(dāng)一個(gè)負(fù)載平衡器。
節(jié)點(diǎn)組106還可以包括一個(gè)第二主節(jié)點(diǎn)118(在本文中也稱為次lb節(jié)點(diǎn)或備用主節(jié)點(diǎn))。主lb節(jié)點(diǎn)116和次lb節(jié)點(diǎn)118兩者在本文中被稱為主節(jié)點(diǎn)對(duì)或lb節(jié)點(diǎn)。第一和第二主節(jié)點(diǎn)116和118連續(xù)地監(jiān)視彼此的狀況(稱為心跳),以便如果第一主節(jié)點(diǎn)116出現(xiàn)故障,第二主節(jié)點(diǎn)118能夠接管該節(jié)點(diǎn)組。這為系統(tǒng)添加了冗余并有助于在一個(gè)lb節(jié)點(diǎn)出現(xiàn)故障的情況下保持客戶機(jī)會(huì)話。
在本發(fā)明的一個(gè)配置中,lb節(jié)點(diǎn)利用IBM的Network Dispatcher作為網(wǎng)絡(luò)負(fù)載平衡器。IBM是國(guó)際商業(yè)機(jī)器公司的注冊(cè)商標(biāo)。NetworkDispatcher通過將許多單個(gè)節(jié)點(diǎn)鏈接成一個(gè)單個(gè)邏輯網(wǎng)絡(luò)存儲(chǔ)服務(wù)器(Network Attached Server)來提供極端負(fù)載下的高可用性。此外,Network Dispatcher記錄每個(gè)節(jié)點(diǎn)的可用性和負(fù)載,允許主節(jié)點(diǎn)將新的會(huì)話請(qǐng)求轉(zhuǎn)發(fā)給具有空閑能力的節(jié)點(diǎn)。還進(jìn)一步構(gòu)想本發(fā)明可以與運(yùn)行在活動(dòng)備用(active-backup)lb節(jié)點(diǎn)范例(例如Linux Virtual Server,各種自定義負(fù)載平衡交換機(jī)以及其它節(jié)點(diǎn)群集環(huán)境)中的其它網(wǎng)絡(luò)負(fù)載平衡器一起使用。
圖2中示出了根據(jù)本發(fā)明分成若干節(jié)點(diǎn)組106、202、204和206的計(jì)算機(jī)網(wǎng)絡(luò)201。這樣的布置代表了配置成處理大量網(wǎng)絡(luò)業(yè)務(wù)的網(wǎng)絡(luò)站點(diǎn)。可以觀察到該網(wǎng)絡(luò)中的某些節(jié)點(diǎn)屬于兩個(gè)或兩個(gè)以上的節(jié)點(diǎn)組,由此產(chǎn)生了重疊的節(jié)點(diǎn)組。因此,本發(fā)明允許將節(jié)點(diǎn)任意分組成節(jié)點(diǎn)組,當(dāng)然,假設(shè)每個(gè)節(jié)點(diǎn)組成員被賦予訪問節(jié)點(diǎn)組正在提供服務(wù)的網(wǎng)絡(luò)資源的權(quán)限。
如下所述,本發(fā)明的一個(gè)實(shí)施例是一種用于自動(dòng)選擇lb節(jié)點(diǎn)以管理計(jì)算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)組的方法。lb節(jié)點(diǎn)的選擇使在lb節(jié)點(diǎn)出現(xiàn)故障的情況下最優(yōu)化網(wǎng)絡(luò)的可用性和保持會(huì)話。因此本發(fā)明有助于將網(wǎng)絡(luò)管理員從尋找最佳主節(jié)點(diǎn)以管理網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)組中解放出來。
一般地,lb節(jié)點(diǎn)的最佳部署策略定義如下給出一個(gè)節(jié)點(diǎn)集合N={N1,N2,...Nn}和集合G1,G2,...Gm,中一個(gè)可能重疊的節(jié)點(diǎn)分組集合,以使Gi={Np,Nq,...},其中Np,Nq,...屬于集合N,則要求是為每一個(gè)Gi推選一個(gè)主節(jié)點(diǎn)對(duì),以使1.一個(gè)主節(jié)點(diǎn)對(duì)成員被指定為主要主節(jié)點(diǎn)(主lb節(jié)點(diǎn))并且另一主節(jié)點(diǎn)對(duì)成員被指定為備用主節(jié)點(diǎn)(次lb節(jié)點(diǎn));以及2.如果兩個(gè)節(jié)點(diǎn)Np和Nq都被推選為組Gi的主節(jié)點(diǎn),則無論Np還是Nq都不能成為具有第三節(jié)點(diǎn)Nr的不同節(jié)點(diǎn)組Gj的主節(jié)點(diǎn)。
如果網(wǎng)絡(luò)中最大數(shù)目的組包含滿足上述條件的主節(jié)點(diǎn),則一個(gè)最佳部署策略已產(chǎn)生。此外,滿足上述條件的那些組達(dá)到了高可用性。應(yīng)當(dāng)注意,在某些網(wǎng)絡(luò)配置中,每個(gè)組都達(dá)到高可用性是不可能的。對(duì)于那些無法達(dá)到高可用性的組,本發(fā)明的選擇算法選擇組成員節(jié)點(diǎn)之一作為主節(jié)點(diǎn)。
在本發(fā)明的一個(gè)實(shí)施例中,該算法還遵守下列弱要求(weakrequirement)組G1,G2,...Gm的主節(jié)點(diǎn)角色在集合N中的節(jié)點(diǎn)之間盡可能多地進(jìn)行分配。換句話說,如果有m個(gè)組和n>m個(gè)節(jié)點(diǎn),假如配置允許,則n個(gè)節(jié)點(diǎn)中沒有一個(gè)節(jié)點(diǎn)作為兩個(gè)不同的組的主節(jié)點(diǎn)。這樣一種部署策略是所期望的,因?yàn)樗鼘⒕W(wǎng)絡(luò)中的進(jìn)入點(diǎn)在系統(tǒng)的不同節(jié)點(diǎn)間進(jìn)行分配,有效地增加了可用入口帶寬,并由此將負(fù)載平衡業(yè)務(wù)在各節(jié)點(diǎn)間進(jìn)行分配。
在圖3A和3B中示出了根據(jù)本發(fā)明的示例性主節(jié)點(diǎn)選擇算法的流程圖。圖3A中示出了該算法的第一階段,其中各節(jié)點(diǎn)基于網(wǎng)絡(luò)配置信息被最佳地配對(duì)。在圖3B中示出的該算法的第二階段中,為每個(gè)節(jié)點(diǎn)組推選主節(jié)點(diǎn)。應(yīng)當(dāng)強(qiáng)調(diào)的是,該算法的邏輯操作可以實(shí)現(xiàn)為(1)在一個(gè)計(jì)算系統(tǒng)上運(yùn)行的計(jì)算機(jī)執(zhí)行的步驟的序列和/或(2)計(jì)算系統(tǒng)內(nèi)相互連接的機(jī)器模塊。實(shí)施方式只是一個(gè)選擇,其取決于實(shí)施本發(fā)明的系統(tǒng)的性能要求。相應(yīng)地,構(gòu)成本文中描述的本發(fā)明實(shí)施例的邏輯操作也可以替代地稱為操作、步驟或模塊。
該算法起始于確定漢明距離操作302。在此步驟中,計(jì)算每個(gè)節(jié)點(diǎn)對(duì)的漢明距離(d)。網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)對(duì)的漢明距離定義為節(jié)點(diǎn)對(duì)成員未共同共享的節(jié)點(diǎn)組的數(shù)目。例如,參考前圖2,節(jié)點(diǎn)對(duì)(n5,n6)具有漢明距離0,因?yàn)楣?jié)點(diǎn)n5和節(jié)點(diǎn)n6屬于同一節(jié)點(diǎn)組。另一方面,節(jié)點(diǎn)對(duì)(n5,n10)具有漢明距離2,因?yàn)楣?jié)點(diǎn)n10屬于兩個(gè)n5所不屬于的節(jié)點(diǎn)組。返回圖3A,確定了每個(gè)節(jié)點(diǎn)對(duì)的漢明距離后,控制被傳遞給確定參與指數(shù)操作304。
在確定參與指數(shù)操作304中,計(jì)算網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的參與指數(shù)(pi)。每個(gè)節(jié)點(diǎn)的參與指數(shù)(pi)是通過計(jì)算節(jié)點(diǎn)所屬的節(jié)點(diǎn)組的數(shù)目來計(jì)算的。例如,在圖2中,節(jié)點(diǎn)n7具有參與指數(shù)2,因?yàn)樗鼘儆贚BG-B和LBG-D。一旦確定了參與指數(shù),則控制被傳遞給確定可用性潛力操作306。
在確定可用性潛力操作306中,計(jì)算每個(gè)節(jié)點(diǎn)對(duì)的可用性潛力(p)。節(jié)點(diǎn)對(duì)的可用性潛力(p)定義為節(jié)點(diǎn)對(duì)成員的參與指數(shù)(pi)之和減去節(jié)點(diǎn)對(duì)的漢明距離(d)。由于節(jié)點(diǎn)對(duì)成員的參與指數(shù)(pi)之和提供了該對(duì)所屬的節(jié)點(diǎn)組的總數(shù),并且漢明距離(d)提供了節(jié)點(diǎn)對(duì)成員未共同共享的節(jié)點(diǎn)組的數(shù)目,因此節(jié)點(diǎn)對(duì)的可用性潛力(p)表示該對(duì)能夠向其提供高可用性的可能的節(jié)點(diǎn)組的數(shù)目。因此,如果pi(np)是節(jié)點(diǎn)np的參與指數(shù),pi(nq)是節(jié)點(diǎn)nq的參與指數(shù),并且d(np,nq)是節(jié)點(diǎn)對(duì)(np,nq)的漢明距離,則(pi(np)+pi(nq)-d(np,nq))/2是節(jié)點(diǎn)對(duì)(np,nq)可以作為主節(jié)點(diǎn)的節(jié)點(diǎn)組的可能數(shù)目。一旦確定可用性潛力操作306完成后,控制被傳遞給尋找操作308。
在尋找操作308中,將找到網(wǎng)絡(luò)的節(jié)點(diǎn)對(duì)的最佳組合。節(jié)點(diǎn)對(duì)的最佳組合是網(wǎng)絡(luò)中具有最大總可用性潛力(p)的節(jié)點(diǎn)對(duì)的組合。換句話說,節(jié)點(diǎn)的最佳配對(duì)是通過生成在所有這樣的節(jié)點(diǎn)配對(duì)上最大化總和∑(pi-d)的節(jié)點(diǎn)對(duì)來得到的。就最佳而言,應(yīng)當(dāng)理解,所生成的節(jié)點(diǎn)對(duì)的組合不一定是僅有的最佳部署策略,但是對(duì)于給定配置,無法找到比該算法所生成的部署策略更好的部署策略。
在本發(fā)明的一個(gè)實(shí)施例中,節(jié)點(diǎn)對(duì)的最佳組合是通過迭代地搜索一個(gè)節(jié)點(diǎn)對(duì)可用性潛力有序數(shù)組內(nèi)的最大總可用性潛力得到的。從數(shù)組中最頂端的元素(其具有最高的潛力值)開始,記錄所遇到的節(jié)點(diǎn)對(duì)及其可用性潛力。當(dāng)考慮了所有節(jié)點(diǎn)后,將總可用性潛力與先前計(jì)算的總可用性潛力進(jìn)行比較。如果新的總可用性潛力較高,將該節(jié)點(diǎn)對(duì)組合保存為最佳配對(duì)并與下一個(gè)節(jié)點(diǎn)對(duì)組合進(jìn)行比較。重復(fù)該過程直到最佳配對(duì)的可用性潛力大于被認(rèn)為是最高的節(jié)點(diǎn)對(duì)潛力乘以總的節(jié)點(diǎn)數(shù)。例如,用于確定節(jié)點(diǎn)對(duì)最佳組合的程序偽代碼可以如下<pre listing-type="program-listing"> Maximum_potential=0; i=0; while(POTENTIAL[i]*NUM_NODES/2>Maximum_potential AND i<=NUM_NODES*(NUM_NODES-1)/2){ Total_potential=0; PARTNER[ ]=0; n=0; j=i; while(n<NUM_NODES-1 AND j<=NUM_NODES*(NUM_NODES-1)/2) do{ if(nodes a,b,in element POTENTIAL[j]have not been paired){ set PARTNER[a]=b;set PARTNER[b]=a; Total_potential=Total_potential+this node pair’s potential; n=n+2; j=j(luò)+1; } } if(Total_potential>Maximum_potential){ Maximum_potential=Total_potential; OPTIMAL_PAIRS[ ]=PARTNER[ ];<!-- SIPO <DP n="8"> --><dp n="d8"/> }i=i+1;}return(OPTIMAL_PAIRS[ ]);</pre>為了更好地說明上述過程,將參考圖4A-4D,其中示出了主節(jié)點(diǎn)選擇算法所使用的示例性數(shù)據(jù)結(jié)構(gòu)。根據(jù)本發(fā)明,以下說明的數(shù)據(jù)結(jié)構(gòu)可以是可由該選擇算法存取的任何可用介質(zhì)。在本發(fā)明的一個(gè)特定實(shí)施例中,該數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)可讀介質(zhì)實(shí)現(xiàn)。通過實(shí)例方式(而不是限定),計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括在用于存儲(chǔ)信息(例如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù))的任何方法或技術(shù)中實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多用途盤(DVD)或其它光存儲(chǔ)設(shè)備、盒式磁帶、磁帶、磁盤存儲(chǔ)設(shè)備或其它磁存儲(chǔ)設(shè)備、或者任何其它可用于存儲(chǔ)期望的信息并可以由選擇算法存取的介質(zhì)。通信介質(zhì)通常在一個(gè)調(diào)制的數(shù)據(jù)信號(hào)(例如載波或其它傳輸機(jī)制)中實(shí)現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)并包括任何信息傳送介質(zhì)。術(shù)語“調(diào)制的數(shù)據(jù)信號(hào)”意味著信號(hào)的一個(gè)或多個(gè)特征以這樣一種方式設(shè)置或更改,以便在信號(hào)中編碼信息。例如,通信介質(zhì)包括有線介質(zhì)(例如有線網(wǎng)絡(luò)或直接電纜連接)以及無線介質(zhì)(例如聲學(xué)、RF、紅外線或其它無線介質(zhì))。上述的任意組合也應(yīng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。
在圖4A中示出了一個(gè)節(jié)點(diǎn)組配置數(shù)組402。該節(jié)點(diǎn)組配置數(shù)組402是一個(gè)m*n數(shù)組,存儲(chǔ)了網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)和每個(gè)節(jié)點(diǎn)組之間的關(guān)系,其中m是網(wǎng)絡(luò)中的節(jié)點(diǎn)組數(shù),n是網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)。在本發(fā)明的一個(gè)特定實(shí)施例中,節(jié)點(diǎn)組配置數(shù)組402中的每一列描述一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),節(jié)點(diǎn)組配置數(shù)組402中的每一行描述一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)組。數(shù)組單元中的“1”或布爾值“真”表示相應(yīng)的節(jié)點(diǎn)是相應(yīng)的節(jié)點(diǎn)組的一個(gè)成員,而“0”或布爾值“假”表示該節(jié)點(diǎn)不屬于該節(jié)點(diǎn)組。例如,節(jié)點(diǎn)n1是節(jié)點(diǎn)組LBG-A、LBG-C和LBG-D的一個(gè)成員,但不是LBG-B和LBG-E的成員。
在圖4B中示出了一個(gè)參與指數(shù)數(shù)組404。該參與指數(shù)數(shù)組404是一個(gè)1*n數(shù)組,存儲(chǔ)了每個(gè)節(jié)點(diǎn)的參與指數(shù)(pi)。如上所述,參與指數(shù)(pi)是一個(gè)節(jié)點(diǎn)所屬的節(jié)點(diǎn)組的數(shù)目。因此,參與指數(shù)數(shù)組404中的每個(gè)數(shù)組單元包含出現(xiàn)在對(duì)應(yīng)于節(jié)點(diǎn)組配置數(shù)組402中的每個(gè)節(jié)點(diǎn)的每個(gè)列中的1的個(gè)數(shù)。
在圖4C中示出了一個(gè)漢明距離數(shù)組406。該漢明距離數(shù)組406是一個(gè)n*n數(shù)組,存儲(chǔ)了每個(gè)節(jié)點(diǎn)對(duì)的漢明距離(d)。如上所述,節(jié)點(diǎn)對(duì)的漢明距離是節(jié)點(diǎn)對(duì)成員未共同共享的節(jié)點(diǎn)組的數(shù)目。在本發(fā)明的一個(gè)實(shí)施例中,漢明距離是通過在節(jié)點(diǎn)組配置數(shù)組402中的兩列之間執(zhí)行一個(gè)異或運(yùn)算并將結(jié)果中1的個(gè)數(shù)相加來計(jì)算的。例如,節(jié)點(diǎn)組配置數(shù)組402中列n1和n2之間的異或運(yùn)算產(chǎn)生“11010”。將結(jié)果中的1相加得到漢明距離3。
在圖4D中示出了一個(gè)潛在可用性數(shù)組408。該潛在可用性數(shù)組408是一個(gè)n*n數(shù)組,存儲(chǔ)了每個(gè)節(jié)點(diǎn)對(duì)的潛在可用性(p)。如上所述,節(jié)點(diǎn)對(duì)的潛在可用性是通過將不同節(jié)點(diǎn)對(duì)成員的參與指數(shù)相加并減去節(jié)點(diǎn)對(duì)的漢明距離來計(jì)算的。因此,對(duì)于節(jié)點(diǎn)對(duì)(n3,n5),潛在可用性等于pi(n3)+pi(n5)-d(n3,n5)或4+4-2。
潛在可用性數(shù)組408用于尋找網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)的最佳組合。如上所述,節(jié)點(diǎn)對(duì)的最佳組合是具有最大總潛在可用性(p)值的節(jié)點(diǎn)對(duì)的組合?;叵肫鸸?jié)點(diǎn)對(duì)必須遵循以下要求即如果兩個(gè)節(jié)點(diǎn)對(duì)成員Np和Nq都被推選為組Gi的主節(jié)點(diǎn),則無論Np還是Nq都不能成為具有第三節(jié)點(diǎn)Nr的不同節(jié)點(diǎn)組Gj的主節(jié)點(diǎn)。在節(jié)點(diǎn)對(duì)組合中搜索最大總潛在可用性(p)值將產(chǎn)生最佳節(jié)點(diǎn)配對(duì)(n3,n4)和(n1,n5),其具有總潛在可用性(p)值12。這是網(wǎng)絡(luò)中最高的潛在可用性(p)值,因此也是節(jié)點(diǎn)對(duì)的最佳組合。在本發(fā)明的一個(gè)實(shí)施例中,節(jié)點(diǎn)對(duì)的最佳組合存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)器中。
現(xiàn)在返回圖3A和3B,一旦找到節(jié)點(diǎn)對(duì)的最佳組合后,主節(jié)點(diǎn)選擇算法繼續(xù)選擇操作310,如圖3B所示。在選擇操作310中,每個(gè)節(jié)點(diǎn)組都被分配一個(gè)將作為該組的主節(jié)點(diǎn)對(duì)的節(jié)點(diǎn)對(duì)。所選擇的節(jié)點(diǎn)對(duì)必須在節(jié)點(diǎn)對(duì)的最佳組合中并且其兩個(gè)節(jié)點(diǎn)對(duì)成員都必須屬于該節(jié)點(diǎn)組。因此,對(duì)于一個(gè)給定的目標(biāo)節(jié)點(diǎn)組,該目標(biāo)節(jié)點(diǎn)組的主節(jié)點(diǎn)對(duì)必須從節(jié)點(diǎn)對(duì)的最佳組合中選擇并且兩個(gè)節(jié)點(diǎn)對(duì)成員都必須屬于該目標(biāo)節(jié)點(diǎn)組。
例如,重新參考圖4A的節(jié)點(diǎn)組配置數(shù)組402,計(jì)算出的此網(wǎng)絡(luò)配置的節(jié)點(diǎn)對(duì)的最佳組合為(n3,n4)和(n1,n5)。來自節(jié)點(diǎn)對(duì)的最佳組合的、兩個(gè)節(jié)點(diǎn)對(duì)成員都屬于節(jié)點(diǎn)組LBG-B的唯一節(jié)點(diǎn)對(duì)是節(jié)點(diǎn)對(duì)(n3,n4)。因此,選擇節(jié)點(diǎn)對(duì)(n3,n4)作為L(zhǎng)BG-B的主節(jié)點(diǎn)對(duì)。類似地,選擇節(jié)點(diǎn)對(duì)(n3,n4)作為L(zhǎng)BG-C和LBG-E的主節(jié)點(diǎn)對(duì)。至于節(jié)點(diǎn)組LBG-D,來自節(jié)點(diǎn)對(duì)的最佳組合的、兩個(gè)節(jié)點(diǎn)對(duì)成員都屬于LBG-D的唯一節(jié)點(diǎn)對(duì)是節(jié)點(diǎn)對(duì)(n1,n5)。因此,選擇節(jié)點(diǎn)對(duì)(n1,n5)作為L(zhǎng)BG-D的主節(jié)點(diǎn)對(duì)。最后,可以選擇節(jié)點(diǎn)對(duì)(n1,n5)和(n3,n4)兩者作為節(jié)點(diǎn)組LBG-A的主節(jié)點(diǎn)對(duì),因?yàn)閮蓚€(gè)節(jié)點(diǎn)對(duì)的節(jié)點(diǎn)對(duì)成員都屬于LBG-A。如上所述,在本發(fā)明的一個(gè)實(shí)施例中,利用一個(gè)優(yōu)先選擇順序從兩個(gè)或兩個(gè)以上合格的節(jié)點(diǎn)對(duì)選擇一個(gè)主節(jié)點(diǎn)對(duì)。
返回圖3B,在選擇操作310完成后,控制被傳遞給查詢操作312。在查詢操作312中,該算法檢查是否存在任何未被分配主節(jié)點(diǎn)對(duì)的節(jié)點(diǎn)組。如果節(jié)點(diǎn)對(duì)的最佳組合中沒有兩個(gè)節(jié)點(diǎn)對(duì)成員都屬于目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)對(duì),該目標(biāo)節(jié)點(diǎn)組不會(huì)被分配主節(jié)點(diǎn)對(duì)。如果查詢操作312確定所有節(jié)點(diǎn)組都被分配了主節(jié)點(diǎn)對(duì),則該算法結(jié)束。如果查詢操作312報(bào)告一個(gè)或多個(gè)節(jié)點(diǎn)組沒有被分配主節(jié)點(diǎn)對(duì),控制傳遞給選擇操作314。
在選擇操作314中,每個(gè)沒有被分配主節(jié)點(diǎn)對(duì)的節(jié)點(diǎn)組被分配一個(gè)主節(jié)點(diǎn)。被選擇的主節(jié)點(diǎn)不必一定屬于節(jié)點(diǎn)對(duì)的最佳組合,但是,該主節(jié)點(diǎn)必須屬于目標(biāo)節(jié)點(diǎn)組。如果目標(biāo)節(jié)點(diǎn)包含的節(jié)點(diǎn)多于一個(gè),則這些節(jié)點(diǎn)中的任何一個(gè)節(jié)點(diǎn)都可以起主節(jié)點(diǎn)的作用。如下所述,在本發(fā)明的一個(gè)實(shí)施例中,利用一個(gè)優(yōu)先選擇順序從屬于目標(biāo)節(jié)點(diǎn)的可選擇的節(jié)點(diǎn)中選擇一個(gè)主節(jié)點(diǎn)。在每個(gè)沒有主節(jié)點(diǎn)對(duì)的節(jié)點(diǎn)組都被分配了一個(gè)主節(jié)點(diǎn)后,該算法結(jié)束。
如上所述,在本發(fā)明的一個(gè)實(shí)施例中,利用了主節(jié)點(diǎn)對(duì)的優(yōu)選順序。當(dāng)超過一個(gè)的節(jié)點(diǎn)對(duì)可以用作節(jié)點(diǎn)組的主節(jié)點(diǎn)對(duì)時(shí),選擇具有最小參與指數(shù)(pi)的節(jié)點(diǎn)對(duì)作為主節(jié)點(diǎn)對(duì)。例如,返回圖4A-4D,早先確定該網(wǎng)絡(luò)配置的最佳節(jié)點(diǎn)對(duì)組合為(n3,n4)和(n1,n5)。還觀察到節(jié)點(diǎn)對(duì)(n3,n4)和(n1,n5)兩者都可以用作LBG-A的主節(jié)點(diǎn)對(duì)。(n3,n4)的參與指數(shù)(pi),即pi(n3)+pi(n4),為8。同樣地,(n1,n5)的參與指數(shù)(pi)為7。因此,被選擇作為L(zhǎng)BG-A的主節(jié)點(diǎn)對(duì)的節(jié)點(diǎn)對(duì)是節(jié)點(diǎn)對(duì)(n1,n5),因?yàn)樗哂斜裙?jié)點(diǎn)對(duì)(n3,n4)更小的參與指數(shù)(pi)。
在圖4E中示出了一個(gè)優(yōu)選順序數(shù)組410。該優(yōu)選順序數(shù)組410存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)器中并列出了計(jì)算機(jī)網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)組的主節(jié)點(diǎn)的分層結(jié)構(gòu)。例如,LBG-A的主節(jié)點(diǎn)的優(yōu)選順序?yàn)楣?jié)點(diǎn)對(duì)(n1,n5),后跟節(jié)點(diǎn)對(duì)(n3,n4)。因此,如果節(jié)點(diǎn)對(duì)(n1,n5)出現(xiàn)故障,可以利用優(yōu)選順序數(shù)組410迅速選擇并指定節(jié)點(diǎn)對(duì)(n3,n4)作為L(zhǎng)BG-A的新的主節(jié)點(diǎn)對(duì)。
除了確定主節(jié)點(diǎn)對(duì)的優(yōu)選順序,還可以使用參與指數(shù)(pi)確定主節(jié)點(diǎn)的優(yōu)選順序。回想起當(dāng)沒有節(jié)點(diǎn)對(duì)可以用作目標(biāo)節(jié)點(diǎn)組的主節(jié)點(diǎn)對(duì)時(shí),任何屬于目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)都可以被選擇作為主節(jié)點(diǎn)。如果可以用作節(jié)點(diǎn)組的主節(jié)點(diǎn)的節(jié)點(diǎn)多于一個(gè),選擇具有最小參與指數(shù)(pi)的節(jié)點(diǎn)作為主節(jié)點(diǎn)。
返回圖4E,如在優(yōu)選順序數(shù)組410中列出的,LBG-B的優(yōu)選順序?yàn)楣?jié)點(diǎn)對(duì)(n3,n4),然后是節(jié)點(diǎn)n2,后跟節(jié)點(diǎn)n5。因此,如果主節(jié)點(diǎn)對(duì)(n3,n4)出現(xiàn)故障,為L(zhǎng)BG-B選擇的下一個(gè)主節(jié)點(diǎn)是n2。如果主節(jié)點(diǎn)n2出現(xiàn)故障,為L(zhǎng)BG-B選擇的下一個(gè)主節(jié)點(diǎn)是n5。應(yīng)當(dāng)注意,優(yōu)選順序數(shù)組410還可以用于在節(jié)點(diǎn)返回聯(lián)機(jī)時(shí)選擇主節(jié)點(diǎn)。例如,如果節(jié)點(diǎn)對(duì)(n3,n4)返回聯(lián)機(jī)時(shí)LBG-B的主節(jié)點(diǎn)是n5,可以使用優(yōu)選順序數(shù)組410迅速推選節(jié)點(diǎn)對(duì)(n3,n4)作為L(zhǎng)BG-B的新主節(jié)點(diǎn)對(duì)。
在本發(fā)明的另一實(shí)施例中,通過最小化網(wǎng)絡(luò)的總漢明距離(而不是最大化總可用性潛力)得到節(jié)點(diǎn)對(duì)的最佳組合。因此,該實(shí)施例包括一個(gè)確定操作,用于確定網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)對(duì)的漢明距離。接著,通過查找網(wǎng)絡(luò)中具有最小總漢明距離的節(jié)點(diǎn)對(duì)的組合來尋找節(jié)點(diǎn)對(duì)的最佳組合。一個(gè)選擇操作從節(jié)點(diǎn)對(duì)的最佳組合中選擇一個(gè)主節(jié)點(diǎn)對(duì),該主節(jié)點(diǎn)對(duì)的兩個(gè)節(jié)點(diǎn)對(duì)成員都屬于目標(biāo)節(jié)點(diǎn)組。如果目標(biāo)節(jié)點(diǎn)組的主節(jié)點(diǎn)對(duì)不存在,將選擇一個(gè)屬于目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)作為目標(biāo)節(jié)點(diǎn)組的主節(jié)點(diǎn)。
前述對(duì)本發(fā)明的說明是出于解釋和說明的目的提供的。上述指導(dǎo)說明可以應(yīng)用于任何這樣的節(jié)點(diǎn)組所述節(jié)點(diǎn)組是群集化的并且主節(jié)點(diǎn)必須從一個(gè)重疊節(jié)點(diǎn)組集合中選擇,以使(1)所述主節(jié)點(diǎn)在其被推選為主節(jié)點(diǎn)的組中共享成員資格,并且(2)所述主節(jié)點(diǎn)復(fù)制有關(guān)組的某些狀態(tài)信息(通過心跳或類似的方式)。因此,上述說明并非旨在是窮盡性的或?qū)⒈景l(fā)明限定于所公開的精確的形式,可以對(duì)本發(fā)明作出其它修改和變更。選擇并說明所公開的實(shí)施例是為了最好地說明本發(fā)明的原理并且其由此的實(shí)際應(yīng)用使本領(lǐng)域的其他普通技術(shù)人員能夠在適合于所構(gòu)想的特定使用的各種實(shí)施例和各種修改中最好地利用本發(fā)明。附帶的權(quán)利要求書旨在被解釋為包括除目前現(xiàn)有技術(shù)所限定的本發(fā)明的其它替代實(shí)施例。
權(quán)利要求
1.一種用于選擇主節(jié)點(diǎn)以管理一個(gè)具有多個(gè)節(jié)點(diǎn)和節(jié)點(diǎn)組的計(jì)算機(jī)網(wǎng)絡(luò)中的目標(biāo)節(jié)點(diǎn)組的方法,所述方法包括確定網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)的漢明距離,所述每個(gè)節(jié)點(diǎn)對(duì)具有兩個(gè)節(jié)點(diǎn)對(duì)成員并且所述漢明距離是所述節(jié)點(diǎn)對(duì)成員未共同共享的節(jié)點(diǎn)組的數(shù)目;確定網(wǎng)絡(luò)中節(jié)點(diǎn)的參與指數(shù),所述參與指數(shù)是節(jié)點(diǎn)所屬于的節(jié)點(diǎn)組的數(shù)目;確定所述節(jié)點(diǎn)對(duì)的可用性潛力,所述可用性潛力是所述節(jié)點(diǎn)對(duì)成員的參與指數(shù)之和減去所述節(jié)點(diǎn)對(duì)的漢明距離;尋找節(jié)點(diǎn)對(duì)的最佳組合,所述節(jié)點(diǎn)對(duì)的最佳組合具有網(wǎng)絡(luò)的最大總可用性潛力;為所述目標(biāo)節(jié)點(diǎn)組選擇一個(gè)主節(jié)點(diǎn)對(duì),所述主節(jié)點(diǎn)對(duì)是來自所述節(jié)點(diǎn)對(duì)的最佳組合的兩個(gè)節(jié)點(diǎn)對(duì)成員都屬于所述目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)對(duì);以及如果所述目標(biāo)節(jié)點(diǎn)組的所述主節(jié)點(diǎn)對(duì)不存在,為所述目標(biāo)節(jié)點(diǎn)組選擇一個(gè)主節(jié)點(diǎn),所述主節(jié)點(diǎn)是屬于所述目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于任一為所述目標(biāo)節(jié)點(diǎn)組選擇的所述主節(jié)點(diǎn)對(duì)的所述節(jié)點(diǎn)對(duì)成員都不是另一具有第三節(jié)點(diǎn)的節(jié)點(diǎn)組的主節(jié)點(diǎn)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于為所述目標(biāo)節(jié)點(diǎn)組選擇一個(gè)主節(jié)點(diǎn)對(duì)進(jìn)一步包括如果所述節(jié)點(diǎn)對(duì)的最佳組合包含多于一個(gè)的、兩個(gè)節(jié)點(diǎn)對(duì)成員都屬于所述目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)對(duì),選擇具有最小的所述節(jié)點(diǎn)對(duì)成員的參與指數(shù)的和的節(jié)點(diǎn)對(duì)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于為所述目標(biāo)節(jié)點(diǎn)組選擇一個(gè)主節(jié)點(diǎn)進(jìn)一步包括如果屬于所述目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)多于一個(gè),選擇具有最小參與指數(shù)的節(jié)點(diǎn)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于確定網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)的漢明距離包括對(duì)所述節(jié)點(diǎn)對(duì)成員執(zhí)行“異或”操作。
6.一種存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上、用于選擇主節(jié)點(diǎn)以管理一個(gè)具有多個(gè)節(jié)點(diǎn)和重疊節(jié)點(diǎn)組的計(jì)算機(jī)網(wǎng)絡(luò)中的目標(biāo)節(jié)點(diǎn)組的數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)包括一個(gè)用于網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)的漢明距離數(shù)組,所述數(shù)組包含節(jié)點(diǎn)對(duì)成員未共同共享的節(jié)點(diǎn)組的數(shù)目;一個(gè)用于網(wǎng)絡(luò)中節(jié)點(diǎn)的參與指數(shù)數(shù)組,所述數(shù)組包含所述節(jié)點(diǎn)所屬于的節(jié)點(diǎn)組的數(shù)目;以及一個(gè)用于網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)的可用性潛力數(shù)組,所述數(shù)組包含所述節(jié)點(diǎn)對(duì)成員的參與指數(shù)的和減去所述節(jié)點(diǎn)對(duì)的漢明距離。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)結(jié)構(gòu),其特征在于所述漢明距離數(shù)組是一個(gè)n*n數(shù)組,其中n是網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)。
8.根據(jù)權(quán)利要求6所述的數(shù)據(jù)結(jié)構(gòu),其特征在于所述參與指數(shù)數(shù)組是一個(gè)1*n數(shù)組,其中n是網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)。
9.根據(jù)權(quán)利要求6所述的數(shù)據(jù)結(jié)構(gòu),其特征在于所述可用性潛力數(shù)組是一個(gè)n*n數(shù)組,其中n是網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)。
10.根據(jù)權(quán)利要求6所述的數(shù)據(jù)結(jié)構(gòu),進(jìn)一步包括一個(gè)存儲(chǔ)網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)和每個(gè)節(jié)點(diǎn)組之間的關(guān)系的節(jié)點(diǎn)組配置數(shù)組。
11.根據(jù)權(quán)利要求10所述的數(shù)據(jù)結(jié)構(gòu),其特征在于所述節(jié)點(diǎn)組配置數(shù)組是一個(gè)m*n數(shù)組,其中m是網(wǎng)絡(luò)中的節(jié)點(diǎn)組數(shù),n是網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)。
12.根據(jù)權(quán)利要求10所述的數(shù)據(jù)結(jié)構(gòu),其特征在于在所述節(jié)點(diǎn)組配置數(shù)組中,“1”用于表示所述節(jié)點(diǎn)屬于所述節(jié)點(diǎn)組,“0”用于表示所述節(jié)點(diǎn)不屬于所述節(jié)點(diǎn)組。
13.根據(jù)權(quán)利要求6所述的數(shù)據(jù)結(jié)構(gòu),進(jìn)一步包括一個(gè)節(jié)點(diǎn)對(duì)的最佳組合,所述節(jié)點(diǎn)對(duì)的最佳組合是具有網(wǎng)絡(luò)的最大總可用性潛力的節(jié)點(diǎn)對(duì)的組合。
14.根據(jù)權(quán)利要求6所述的數(shù)據(jù)結(jié)構(gòu),進(jìn)一步包括一個(gè)列出了網(wǎng)絡(luò)中節(jié)點(diǎn)組的主節(jié)點(diǎn)對(duì)的分層結(jié)構(gòu)的優(yōu)選順序數(shù)組。
15.根據(jù)權(quán)利要求14所述的數(shù)據(jù)結(jié)構(gòu),其特征在于所述優(yōu)選順序數(shù)組還包括網(wǎng)絡(luò)中節(jié)點(diǎn)組的主節(jié)點(diǎn)的分層結(jié)構(gòu)。
16.一種包含在有形介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品,包括耦合到所述有形介質(zhì)用于選擇主節(jié)點(diǎn)以管理一個(gè)具有多個(gè)節(jié)點(diǎn)和節(jié)點(diǎn)組的計(jì)算機(jī)網(wǎng)絡(luò)中的目標(biāo)節(jié)點(diǎn)組的計(jì)算機(jī)可讀程序代碼,所述計(jì)算機(jī)可讀程序代碼包括配置成使所述程序確定網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)的漢明距離的第一計(jì)算機(jī)可讀程序代碼,所述節(jié)點(diǎn)對(duì)具有兩個(gè)節(jié)點(diǎn)對(duì)成員并且所述漢明距離是所述節(jié)點(diǎn)對(duì)成員未共同共享的節(jié)點(diǎn)組的數(shù)目;配置成使所述程序確定網(wǎng)絡(luò)中節(jié)點(diǎn)的參與指數(shù)的第二計(jì)算機(jī)可讀程序代碼,所述參與指數(shù)是節(jié)點(diǎn)所屬于的節(jié)點(diǎn)組的數(shù)目;配置成使所述程序確定每個(gè)節(jié)點(diǎn)對(duì)的可用性潛力的第三計(jì)算機(jī)可讀程序代碼,所述可用性潛力是所述節(jié)點(diǎn)對(duì)成員的參與指數(shù)的和減去所述節(jié)點(diǎn)對(duì)的漢明距離;配置成使所述程序?qū)ふ夜?jié)點(diǎn)對(duì)的最佳組合的第四計(jì)算機(jī)可讀程序代碼,所述節(jié)點(diǎn)對(duì)的最佳組合具有網(wǎng)絡(luò)的最大總可用性潛力;以及配置成使所述程序?yàn)樗瞿繕?biāo)節(jié)點(diǎn)組選擇一個(gè)主節(jié)點(diǎn)對(duì)的第五計(jì)算機(jī)可讀程序代碼,所述主節(jié)點(diǎn)對(duì)是來自節(jié)點(diǎn)對(duì)的最佳組合的兩個(gè)節(jié)點(diǎn)對(duì)成員都屬于所述目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)對(duì);以及如果所述目標(biāo)節(jié)點(diǎn)組的所述主節(jié)點(diǎn)對(duì)不存在,第六計(jì)算機(jī)可讀程序代碼配置成使所述程序?yàn)樗瞿繕?biāo)節(jié)點(diǎn)組選擇一個(gè)主節(jié)點(diǎn),所述主節(jié)點(diǎn)是屬于所述目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)。
17.根據(jù)權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于所述有形介質(zhì)包括磁盤。
18.根據(jù)權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于所述有形介質(zhì)包括光盤。
19.根據(jù)權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于所述有形介質(zhì)包括傳播信號(hào)。
20.根據(jù)權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于所述有形介質(zhì)包括隨機(jī)存取存儲(chǔ)器裝置。
21.一種用于選擇主節(jié)點(diǎn)以管理一個(gè)具有多個(gè)節(jié)點(diǎn)和節(jié)點(diǎn)組的計(jì)算機(jī)網(wǎng)絡(luò)中的目標(biāo)節(jié)點(diǎn)組的系統(tǒng),所述系統(tǒng)包括用于確定網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)的漢明距離的漢明距離模塊,所述每個(gè)節(jié)點(diǎn)對(duì)具有兩個(gè)節(jié)點(diǎn)對(duì)成員并且所述漢明距離是所述節(jié)點(diǎn)對(duì)成員未共同共享的節(jié)點(diǎn)組的數(shù)目;用于確定網(wǎng)絡(luò)中節(jié)點(diǎn)的參與指數(shù)的參與指數(shù)模塊,所述參與指數(shù)是節(jié)點(diǎn)所屬于的節(jié)點(diǎn)組的數(shù)目;用于確定所述節(jié)點(diǎn)對(duì)的可用性潛力的可用性潛力模塊,所述可用性潛力是所述節(jié)點(diǎn)對(duì)成員的參與指數(shù)之和減去所述節(jié)點(diǎn)對(duì)的漢明距離;用于尋找節(jié)點(diǎn)對(duì)的最佳組合的搜索模塊,所述節(jié)點(diǎn)對(duì)的最佳組合具有網(wǎng)絡(luò)的最大總可用性潛力;用于選擇所述目標(biāo)節(jié)點(diǎn)組的主節(jié)點(diǎn)對(duì)的第一選擇模塊,所述主節(jié)點(diǎn)對(duì)是來自所述節(jié)點(diǎn)對(duì)最佳組合的兩個(gè)節(jié)點(diǎn)對(duì)成員都屬于所述目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)對(duì);以及如果所述目標(biāo)節(jié)點(diǎn)組的所述主節(jié)點(diǎn)對(duì)不存在,用于為所述目標(biāo)節(jié)點(diǎn)組選擇一個(gè)主節(jié)點(diǎn)的第二選擇模塊,所述主節(jié)點(diǎn)是屬于所述目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)。
22.根據(jù)權(quán)利要求21所述的系統(tǒng),其特征在于為所述目標(biāo)節(jié)點(diǎn)組選擇的所述主節(jié)點(diǎn)對(duì)的所述節(jié)點(diǎn)對(duì)成員不是另一具有第三節(jié)點(diǎn)的節(jié)點(diǎn)組的主節(jié)點(diǎn)。
23.根據(jù)權(quán)利要求21所述的系統(tǒng),其特征在于所述第一選擇模塊進(jìn)一步包括如果所述節(jié)點(diǎn)對(duì)的最佳組合包含多于一個(gè)的、兩個(gè)節(jié)點(diǎn)對(duì)成員都屬于所述目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)對(duì),選擇具有最小的所述節(jié)點(diǎn)對(duì)成員的參與指數(shù)的和的節(jié)點(diǎn)對(duì)。
24.根據(jù)權(quán)利要求21所述的系統(tǒng),其特征在于所述第二選擇模塊進(jìn)一步包括如果屬于所述目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)多于一個(gè),選擇具有最小參與指數(shù)的節(jié)點(diǎn)。
25.根據(jù)權(quán)利要求21所述的系統(tǒng),其特征在于所述漢明距離模塊包括對(duì)所述節(jié)點(diǎn)對(duì)成員執(zhí)行“異或”操作。
26.一種用于選擇主節(jié)點(diǎn)以管理一個(gè)具有多個(gè)節(jié)點(diǎn)和節(jié)點(diǎn)組的計(jì)算機(jī)網(wǎng)絡(luò)中的目標(biāo)節(jié)點(diǎn)組的方法,所述方法包括確定網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)的漢明距離,每個(gè)所述節(jié)點(diǎn)對(duì)具有兩個(gè)節(jié)點(diǎn)對(duì)成員并且所述漢明距離是所述節(jié)點(diǎn)對(duì)成員未共同共享的節(jié)點(diǎn)組的數(shù)目;尋找節(jié)點(diǎn)對(duì)的最佳組合,所述節(jié)點(diǎn)對(duì)的最佳組合具有網(wǎng)絡(luò)的最小總漢明距離;為所述目標(biāo)節(jié)點(diǎn)組選擇一個(gè)主節(jié)點(diǎn)對(duì),所述主節(jié)點(diǎn)對(duì)是來自所述節(jié)點(diǎn)對(duì)最佳組合的兩個(gè)節(jié)點(diǎn)對(duì)成員都屬于所述目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)對(duì);以及如果所述目標(biāo)節(jié)點(diǎn)組的所述主節(jié)點(diǎn)對(duì)不存在,為所述目標(biāo)節(jié)點(diǎn)組選擇一個(gè)主節(jié)點(diǎn),所述主節(jié)點(diǎn)是屬于所述目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)。
27.根據(jù)權(quán)利要求26所述的方法,其特征在于任一為所述目標(biāo)節(jié)點(diǎn)組選擇的所述主節(jié)點(diǎn)對(duì)的所述節(jié)點(diǎn)對(duì)成員都不是另一具有第三節(jié)點(diǎn)的節(jié)點(diǎn)組的主節(jié)點(diǎn)。
28.根據(jù)權(quán)利要求26所述的方法,其特征在于為所述目標(biāo)節(jié)點(diǎn)組選擇一個(gè)主節(jié)點(diǎn)對(duì)進(jìn)一步包括確定網(wǎng)絡(luò)中節(jié)點(diǎn)的參與指數(shù),所述參與指數(shù)是節(jié)點(diǎn)所屬于的節(jié)點(diǎn)組的數(shù)目;以及如果所述節(jié)點(diǎn)對(duì)的最佳組合包含多于一個(gè)的、兩個(gè)節(jié)點(diǎn)對(duì)成員都屬于所述目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)對(duì),選擇具有最小的所述節(jié)點(diǎn)對(duì)成員的參與指數(shù)的和的節(jié)點(diǎn)對(duì)。
29.根據(jù)權(quán)利要求26所述的方法,其特征在于為所述目標(biāo)節(jié)點(diǎn)組選擇一個(gè)主節(jié)點(diǎn)進(jìn)一步包括確定網(wǎng)絡(luò)中節(jié)點(diǎn)的參與指數(shù),所述參與指數(shù)是節(jié)點(diǎn)所屬于的節(jié)點(diǎn)組的數(shù)目;以及如果屬于所述目標(biāo)節(jié)點(diǎn)組的節(jié)點(diǎn)多于一個(gè),選擇具有最小參與指數(shù)的節(jié)點(diǎn)。
30.根據(jù)權(quán)利要求26所述的方法,其特征在于確定網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)的漢明距離包括對(duì)所述節(jié)點(diǎn)對(duì)成員執(zhí)行“異或”操作。
全文摘要
一種用于選擇主節(jié)點(diǎn)以管理一個(gè)具有多個(gè)節(jié)點(diǎn)和重疊節(jié)點(diǎn)組的計(jì)算機(jī)網(wǎng)絡(luò)中的目標(biāo)節(jié)點(diǎn)組的方法和系統(tǒng)。所述系統(tǒng)包括確定網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)的漢明距離。所述節(jié)點(diǎn)對(duì)包括兩個(gè)節(jié)點(diǎn)對(duì)成員并且所述漢明距離是節(jié)點(diǎn)對(duì)成員未共同共享的節(jié)點(diǎn)組的數(shù)目。在一確定操作中確定網(wǎng)絡(luò)中節(jié)點(diǎn)的參與指數(shù)。所述參與指數(shù)是節(jié)點(diǎn)所屬于的節(jié)點(diǎn)組的數(shù)目。還確定節(jié)點(diǎn)對(duì)的可用性潛力。所述可用性潛力是節(jié)點(diǎn)對(duì)成員的參與指數(shù)之和減去節(jié)點(diǎn)對(duì)的漢明距離。通過搜索網(wǎng)絡(luò)的最大總可用性潛力來尋找節(jié)點(diǎn)對(duì)的最佳組合。從該節(jié)點(diǎn)對(duì)的最佳組合選擇目標(biāo)節(jié)點(diǎn)組的主節(jié)點(diǎn)對(duì)。如果目標(biāo)節(jié)點(diǎn)組的主節(jié)點(diǎn)對(duì)不存在,將為該目標(biāo)節(jié)點(diǎn)組選擇一個(gè)屬于目標(biāo)節(jié)點(diǎn)組的主節(jié)點(diǎn)。
文檔編號(hào)H04L12/28GK1557086SQ03801059
公開日2004年12月22日 申請(qǐng)日期2003年1月7日 優(yōu)先權(quán)日2002年1月18日
發(fā)明者G·桑帕斯庫(kù)瑪爾, G 桑帕斯庫(kù)瑪爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司