專利名稱:分布式計算環(huán)境中的拓撲傳播的制作方法
技術領域:
本發(fā)明涉及通信網(wǎng)絡,更具體地是涉及一種在分布式計算環(huán)境內的不同結點上維護一個公共網(wǎng)絡拓撲數(shù)據(jù)庫的技術,其中在分布式計算環(huán)境處于穩(wěn)定狀態(tài)時拓撲傳播設施不產(chǎn)生消息傳輸。
通信網(wǎng)絡通常可以被定義成通過通信鏈路或傳輸組互連的網(wǎng)絡結點和端結點的集合。網(wǎng)絡結點可以被概括成一個數(shù)據(jù)處理系統(tǒng),該數(shù)據(jù)處理系統(tǒng)在網(wǎng)絡內部提供某些功能,例如在其自身及其鄰近或相鄰結點之間路由消息,選擇在一個網(wǎng)絡結點和一個端結點之間發(fā)送消息的路由以及為連接的端結點提供目錄服務。結點之間的鏈路可以是諸如常規(guī)電纜連接的固定通信鏈路或僅在必要時才允許接通的鏈路,例如撥號電話連接。端結點具體表現(xiàn)為顯示終端,智能工作站,打印機和不為網(wǎng)絡中其它結點提供路由、路由選擇或目錄服務的類似設備。網(wǎng)絡結點,端結點和結點之間的傳輸組均被稱作網(wǎng)絡資源。網(wǎng)絡中各種結點和鏈路的物理結構和特征(及其狀態(tài))被稱作網(wǎng)絡的拓撲。
在可以在任何網(wǎng)絡中的任何兩個結點之間發(fā)送消息之前,一個負責建立連接的操作人員或數(shù)據(jù)處理設備需要有關網(wǎng)絡拓撲的精確并且最新的文件或數(shù)據(jù)庫。
已經(jīng)成功地使網(wǎng)絡設備自身在沒有人工干預的情況下完成維護拓撲數(shù)據(jù)庫的任務。例如,執(zhí)行通信控制功能的各個處理器可以向其它處理器通知其資源狀態(tài)的變化情況。其它處理器使用這些拓撲更新消息修正或改變其自己的拓撲網(wǎng)絡數(shù)據(jù)庫的副本。
在一個分布式計算系統(tǒng)中,若干網(wǎng)絡可以連接包括該系統(tǒng)的結點??赡懿皇撬械慕Y點被連接到所有網(wǎng)絡,并且在任何兩個未被連接到相同網(wǎng)絡的結點之間發(fā)送消息可能需要多個″轉發(fā)段″。為此,系統(tǒng)內所有結點必須知道當前的全局網(wǎng)絡拓撲。拓撲信息包含被連接到系統(tǒng)中各個網(wǎng)絡的結點和網(wǎng)絡適配器的集合,以及沒有被連接的適配器和網(wǎng)絡的集合。每當一個結點,網(wǎng)絡或網(wǎng)絡適配器出現(xiàn)故障或啟動時均會改變拓撲信息。通過使用全局網(wǎng)絡拓撲,各個結點能夠計算可達結點的集合和到達各個可達結點的路由。
本領域需要一種向系統(tǒng)中所有結點傳播全局拓撲信息的增強技術。更具體地,需要一種當系統(tǒng)處于穩(wěn)定狀態(tài)時,即在沒有結點或網(wǎng)絡適配器出現(xiàn)故障或啟動時保證在分布式計算環(huán)境內部沒有拓撲消息傳播的增強拓撲傳播技術。最好在不使用顯式消息確認的情況下實現(xiàn)這種增強技術。本發(fā)明就是要提供這種拓撲傳播機制。
概括地講,本發(fā)明在一個方面包括一個在分布式計算環(huán)境中進行拓撲傳播的方法。該方法包含從至少一個組頭結點向分布式計算環(huán)境內至少一個結點組的指定結點發(fā)送組連接消息;在分布式計算環(huán)境內沒有拓撲改變的時間段內停止發(fā)送組連接消息;在識別出分布式計算環(huán)境內部的拓撲改變時從至少一個組頭結點重新開始發(fā)送組連接消息。
在另一方面,該方法包含一個在分布式計算環(huán)境內進行拓撲傳播的系統(tǒng)。該系統(tǒng)包含從至少一個組頭結點向分布式計算環(huán)境內至少一個結點組的指定結點發(fā)送組連接消息的裝置;在分布式計算環(huán)境內沒有拓撲改變的時間段內停止發(fā)送組連接消息的裝置。該系統(tǒng)還包含在至少一個組頭結點識別出分布式計算環(huán)境內部的拓撲改變時從至少一個組頭結點重新開始發(fā)送組連接消息的裝置。
在另一個方面,本發(fā)明包含至少一個機器可讀程序存儲設備,該設備實際包含至少一個可被機器運行以便執(zhí)行在分布式計算環(huán)境中進行拓撲傳播的方法的指令程序。該方法包含從至少一個組頭結點向分布式計算環(huán)境內至少一個結點組的指定結點發(fā)送組連接消息;在分布式計算環(huán)境內沒有拓撲改變的時間段內停止發(fā)送組連接消息;在識別出分布式計算環(huán)境內部的拓撲改變時從至少一個組頭結點重新開始發(fā)送組連接消息。
換言之,這里提供了一個拓撲傳播設施,其中在使用該設施的分布式計算環(huán)境處于穩(wěn)定狀態(tài)時該設施不產(chǎn)生消息傳輸。當沒有故障結點,網(wǎng)絡適配器或網(wǎng)絡連接,或者當前沒有正在啟動的結點,網(wǎng)絡適配器或網(wǎng)絡連接時,該環(huán)境處于穩(wěn)定狀態(tài)。最好在不對拓撲消息傳輸使用顯式消息確認的情況下實現(xiàn)拓撲傳播設施。這里提供的拓撲傳播方案在分布式計算環(huán)境中工作,其中與假定雙結點鏈路的現(xiàn)有傳播技術相反,分布式計算環(huán)境包括多個網(wǎng)絡和多個適配器。并且,這里提供的方案在不可靠的網(wǎng)絡中也可以很好地工作,即不需要點到點確認。并且,這里提供的方法為一個正在分布式計算環(huán)境內部啟動的結點提供了自動網(wǎng)絡拓撲傳輸。
通過本發(fā)明的技術還可以實現(xiàn)額外的特性和優(yōu)點。在這里詳細描述了本發(fā)明的其它實施例和方面并且這些實施例和方面被當作本發(fā)明權利要求的一部分。
通過下面結合附圖對本發(fā)明某些最優(yōu)實施例進行的詳細描述可以理容易地理解本發(fā)明的上述目標,優(yōu)點和特性,其中
圖1是有關一個使用基于本發(fā)明的拓撲傳播設施的典型通信網(wǎng)絡的圖例;圖2A-2F描述了被分布式處理系統(tǒng)中多個結點使用的JOIN協(xié)議的一個實施例,其中圖2A描述了一個PROCLAIM消息,圖2B描述了一個JOIN消息,圖2C描述了一個準備提交(PTC)消息,圖2D描述了一個準備提交確認(PTC_ACK)消息,圖2E描述了一個提交廣播(COMMIT_BCAST)消息,而圖2F描述了一個COMMIT消息和一個提交廣播確認(COMMIT_BCAST_ACK)消息;圖2G描述了在完成圖2A-2F的JOIN協(xié)議之后構成的一個新的結點組;圖3A-3C描述了被分布式處理系統(tǒng)的多個結點使用的DEATH協(xié)議的一個實施例,其中圖3A描述了呈心跳(heartbeat)環(huán)形的組初始狀態(tài),圖3B描述了發(fā)現(xiàn)一個結點無應答并且相應發(fā)送一個DEATH消息的情況,而圖3C描述了從組頭結點(GL)發(fā)送到組內幸存結點的新的準備提交(PTC)消息;圖4A-4C描述了用于包括兩個結點網(wǎng)絡的分布式計算環(huán)境的結點可達性協(xié)議的一個實施例,其中圖4A描述了向網(wǎng)絡1的組頭結點發(fā)送一個NODE_CONNECTIVITY消息的情況,圖4B描述了從組頭結點向組內結點發(fā)送一個GROUP_CONNECTIVITY消息的情況,而圖4C描述了從結點2通過其適配器向分布式計算環(huán)境的網(wǎng)絡2的結點4&5傳遞GROUP_CONNECTIVITY消息的情況;圖5A描述一個使用基于本發(fā)明原理的消息傳播設施的初始分布式計算環(huán)境;圖5B描述了圖5A的分布式計算環(huán)境的結點5上的初始網(wǎng)絡連接表(NCT);圖5C描述了結點2從圖5A的適配器成員組(AMG)消失從而產(chǎn)生新的成員組AMG A_2的情況;圖5D描述了結點5上的NCT,其中結點5被連接到網(wǎng)絡2并且與結點2的消失相對應;圖5E描述了圖5C的分布式計算環(huán)境,其中從新的適配器成員組A_2的的組頭結點向其活躍成員傳播一個組連接消息(GCM),并且由結點3向網(wǎng)絡2上的AMG B-1的結點5&6傳遞這個GCM;圖5F描述了在接收到圖5E的結點3傳遞的GCM時結點5上的NCT的情況;圖6A是有關分布式計算環(huán)境一個使用基于本發(fā)明原理的拓撲傳播的實施例的圖例,其中結點2正等候啟動;圖6B描述了在等待結點2啟動時結點5和結點2上的NCT的情況;圖6C描述了在結點2啟動并且構成新AMG A_2之后圖6A的分布式計算環(huán)境的情況;圖6D描述了在結點2啟動時但在更新各個結點上的NCT之前結點5上的NCT和結點2上的NCT的情況;圖6E描述了圖6C的分布式計算環(huán)境,其中由AMG A_2的組頭結點發(fā)送一個GCM并且由結點3向結點5&6傳遞上述GCM;圖6F描述了在從GL1發(fā)送GCM之后結點5上的NCT和結點2上的NCT的情況;圖6G描述了圖6E的分布式計算環(huán)境,其中從GL2(即結點6)發(fā)送一個GCM并且由結點3傳遞到結點2&1;圖6H描述了在GL2公布GCM之后結點5上的NCT和結點2上的NCT的情況;和圖7是一個針對組頭結點的狀態(tài)圖,上述組頭結點實現(xiàn)了基于本發(fā)明原理的拓撲傳播設施。
概括地講,這里提供了一個向分布式計算環(huán)境內的所有結點傳播全局拓撲信息的設施,上述分布式計算環(huán)境包含一個具有多個通信網(wǎng)絡的異構環(huán)境。這種機制允許各個結點獲得系統(tǒng)拓撲的全局視圖,其中包含有關停止工作的網(wǎng)絡適配器和屬于被分割的網(wǎng)絡的結點的信息。當全局拓撲停止改變時,系統(tǒng)內的所有結點會立即具有一個相互一致的拓撲視圖。有利的是,當系統(tǒng)處于穩(wěn)定狀態(tài)時,即在沒有結點或網(wǎng)絡適配器出現(xiàn)故障或被加到環(huán)境中時不發(fā)送拓撲傳播消息。并且在不使用顯式消息確認的情況下實現(xiàn)這種拓撲傳播。
正如這里所使用的,每個網(wǎng)絡均構成一個適配器成員組(AMG),其中一個結點被選作組頭結點(GL)。GL和組成員周期性地彼此發(fā)送拓撲傳播消息。在需要時這些傳播消息被從一個網(wǎng)絡傳遞到其它網(wǎng)絡。使用停止準則以便當在分布式計算環(huán)境中沒有發(fā)生改變時不交換消息。還提供恢復準則以便當在分布式中發(fā)生改變時恢復拓撲傳播消息傳送。
這里在國際商用機器公司的″可靠可伸縮集簇技術″(RSCT)拓撲服務(參照″RS/6000高可用性基礎設施″,國際商業(yè)機器公司出版物第SG24-4838-00號(″紅皮書″)1996)的環(huán)境中描述拓撲傳播設施,上述拓撲傳播設施是一個負責監(jiān)視分布式計算系統(tǒng)中結點和網(wǎng)絡適配器的良好狀態(tài)的子系統(tǒng)。該子系統(tǒng)存在于國際商業(yè)機器公司RS/6000SP系統(tǒng)或RS/6000機器的網(wǎng)絡中。該子系統(tǒng)被用作需要對失敗結點和網(wǎng)絡拓撲中其它變化作出反應的分布式應用的基礎。
圖1描述了通常表示為10的分布式計算環(huán)境的一個例子,其中示出了通過多個網(wǎng)絡14在多個結點12之間建立的物理連接。每個結點12均通過一個唯一的網(wǎng)絡適配器16被連接到一個不同的網(wǎng)絡14。如圖所示,不同的結點12可以具有不同數(shù)量的網(wǎng)絡適配器并且被連接到不同的網(wǎng)絡14。在分布式計算環(huán)境10中,各個結點12可以直接通過一個共享網(wǎng)絡彼此通信,或者以通過兩個網(wǎng)絡的一個公共結點從一個網(wǎng)絡″跳躍″到另一個網(wǎng)絡的方式彼此通信。假定分布式計算環(huán)境10包括一個可能在傳輸中損失消息的不可靠計算環(huán)境。
如上所述,一個結點可以具有多個適配器,每個適配器均被連接到一個不同的網(wǎng)絡。(網(wǎng)絡可以包括一個或多個子網(wǎng);并且網(wǎng)絡可以或不可以被連接到其它網(wǎng)絡。)由于各個AMG包括網(wǎng)絡中可以彼此通信的所有″啟動″適配器,所以在″啟動″的情況下一個結點中的各個適配器會屬于一個不同的″適配器成員組(AMG)″。
在邏輯上″適配器″是網(wǎng)絡的一個組頭結點(GL)一個結點可以具有一個在網(wǎng)絡中是組頭結點的適配器和另一個在其網(wǎng)絡中不是組頭結點的適配器。另一方面,由結點而不是適配器運行拓撲服務守護程序,其中實現(xiàn)了協(xié)議。守護程序以逐個適配器的方式實現(xiàn)協(xié)議。
為了簡化描述,在圖2A-3C中通過一個單網(wǎng)絡設置解釋適配器成員協(xié)議。在這個設置中,把″結點″看作組頭結點會更加簡單。然而在多網(wǎng)絡環(huán)境中,把″適配器″看作組頭結點會更加精確。根據(jù)使用情況,當結點被稱作組頭結點時術語″結點″應當包含其″適配器″。
在一個實施例中,各個結點運行一個拓撲服務″守護程序″進程。這個進程完成本發(fā)明的拓撲傳播設施的某些方面的處理,其中包含(1)發(fā)送和接收協(xié)議消息;和(2)存儲關于到網(wǎng)絡的連接的全局網(wǎng)絡拓撲和信息,其中所有結點的網(wǎng)絡適配器均被連接到上述網(wǎng)絡。
為了監(jiān)視各個網(wǎng)絡中適配器的狀況和連接,網(wǎng)絡中的所有適配器應當試圖構成一個″適配器成員組″(AMG),AMG是一個包含網(wǎng)絡中所有可以彼此通信的網(wǎng)絡適配器的分組。
注意各個結點可以屬于若干個AMG,其中每個網(wǎng)絡適配器屬于一個AMG。
為了確定在各個網(wǎng)絡中工作的適配器的集合,在各個網(wǎng)絡中運行一個適配器成員協(xié)議。
如下所述,處于工作狀態(tài)的適配器構成一個適配器成員組(AMG),其中成員被組織成虛擬環(huán)形拓撲(僅用于舉例)。為了保證所有組成員均處于工作狀態(tài),各個組成員周期性地向其″下行相鄰成員″發(fā)送″HEART BEAT″消息并且監(jiān)視來自其″上行相鄰成員″的″HEART BEAT″消息。當適配器出現(xiàn)故障或新適配器開始工作時運行上述協(xié)議。這種協(xié)議的目標是保證成員組在各個時刻均包含所有可以彼此通信的適配器。
每個分組具有一個″組頭結點″(GL)和一個″備份組頭結點″。組頭結點負責協(xié)同組協(xié)議,而備份組頭結點負責在組頭結點適配器出現(xiàn)故障時取得組頭地位。根據(jù)預定適配器優(yōu)先權規(guī)則選擇組頭結點與備份組頭結點以及適配器在環(huán)形拓樸中的位置,其中可以選擇適配器的IP地址作為優(yōu)先權規(guī)則。例如,一個較高的IP地址具有較高的優(yōu)先級。
在所有結點啟動和重新配置時讀取的配置文件中包含一列在各個網(wǎng)絡中所有可能的適配器。
參照圖2A-2G,為了把新成員吸收到分組中,各個分組中的組頭結點周期性地向處于適配器配置中但不屬于組的適配器發(fā)送″PROCLAIM ″消息(參見圖2A)。這些消息只被發(fā)送到IP地址低于發(fā)送器的IP地址的適配器。
″PROCLAIM″消息被所有不是組頭結點的適配器所忽略。如圖2B所示,一個從較高優(yōu)先級(較高IP地址)結點接收″PROCLAIM″消息的組頭結點用一″JOIN″消息代表其分組作出應答。該消息包含″加入分組″的成員列表。
一個接收到″JOIN ″消息的結點(圖2B中的GL1)會試圖構成一個新的,含有以前的成員加上加入分組中所有成員的分組(參見圖2C)。通過向新分組的所有成員發(fā)送一個″PTC″(″準備提交″)消息來完成這個操作。
接收到″PTC″消息的結點用一個如圖2D所示的″PTC_ACK″消息作出答復。從其接收到″PTC_ACK″消息的所有結點被包含在新分組中。組頭結點(GL1)向所有新的組成員發(fā)送一個包含全部分組成員列表的″COMMIT″消息。參照圖2E,為了加速″COMMIT″消息的傳輸,一個″COMMIT_BCAST″消息被組頭結點發(fā)送到少數(shù)被稱作″市長″12的結點,并且各個市長結點會向其負責的子分組內的所有成員發(fā)送″COMMIT″消息(參見圖2F)。(由于假定網(wǎng)絡是不可靠的,在沒有接收到確認的情況下若干次重復發(fā)送類似″PTC″,″COMMIT_BCAST″和″COMMIT″的消息。)接收到一個″COMMIT″消息表明躍遷到新的分組(如圖2G所示),新的分組現(xiàn)在包含老成員加上新加入的成員。在接收到這個消息之后,各個組成員開始向其(可能是新的)下行相鄰成員發(fā)送″HEARTBEAT″消息。
當初始化一個結點時,該結點用其每個適配器構成一個單適配器組(其結點是組頭結點)。該結點接著開始發(fā)送和接收″PROCLAIM″消息。
現(xiàn)在參照圖3A-3C,一個結點會監(jiān)視來自其″上行相鄰成員″(分組中其IP地址在組成員中間為次最高的適配器)的″HEART BEAT″消息20(參見圖3A)。當在某個預定時間段內沒有接收到″HEARTBEAT″消息時,假定″上行相鄰成員″出現(xiàn)故障。接著向組頭結點發(fā)送一個請求構成新分組的″DEATH″消息(參見圖3B)。
當接收到一個″DEATH″消息時,組頭結點試圖構成一個新分組,該分組包含當前分組中除被檢測為出現(xiàn)故障的適配器以外的所有適配器。如圖3C所示,組頭結點向新分組的所有成員發(fā)送一個″PTC″消息。接著協(xié)議按照與前面針對JOIN協(xié)議描述的順序相同的序列繼續(xù)進行。
一個結點可達性協(xié)議被用來允許計算從一個本地結點可達的(因此被認為是正在工作的)結點集合。由于不是所有結點可以被連接到相同的網(wǎng)絡,某些結點只有通過一個多網(wǎng)絡轉發(fā)段序列才可以到達。只有在考慮到關于所有網(wǎng)絡的信息,甚至是不覆蓋所有結點的信息時才可以計算結點可達性。
為了計算結點可達性,使用一個最終一致協(xié)議各個網(wǎng)絡上的可達性信息被傳送到所有網(wǎng)絡;當網(wǎng)絡拓撲停止改變時,所有結點最終會具有關于所有網(wǎng)絡的一致信息。各個結點接著會能夠獨立計算出可達結點集合并且達成一個一致的結果。
結點周期性地發(fā)送下列消息,直到停止準則指示守護程序停止下來從所有組成員向GL發(fā)送一個″結點連接消息″(NCM或NODE_CONNECTIVITY)(參見圖4A)。指定網(wǎng)絡的一個NCM包含該網(wǎng)絡的AMG標識加上被禁止的本地適配器的所有″禁止AMG標識″。一個結點必須向本地適配器所屬的分組的各個GL發(fā)送NCM。
GL在一個″結點連接表″(NCT)中存儲來自NCM的全部信息。NCT存儲全局網(wǎng)絡拓撲(的本地視圖)并且包含系統(tǒng)中各個結點和網(wǎng)絡適配器的AMG標識。假定任何兩個具有相同AMG標識的結點均通過相同的網(wǎng)絡彼此連接。
從各個GL向所有組成員發(fā)送一個″分組連接消息″(GCM或GROUP_CONNECTIVITY)(參見圖4B)。GCM包含AMG標識和屬于AMG的結點列表。并且,對于所有這些結點,包含一個有關(其它網(wǎng)絡中)所有″禁止AMG標識″的列表。從GL的NCT中提取出發(fā)送GCM所需的信息。
一個接收到GCM的結點用消息中的信息更新其擁有的NCT。如果一個接收GCM的守護程序注意到存在某些本地適配器所屬的、其成員不會接收到該GCM的分組,則守護程序向這些分組傳遞GCM(參照圖4C中的結點2)。目標是向系統(tǒng)中所有結點傳送GCM,甚至包括不與發(fā)出GCM的網(wǎng)絡直接連接的結點。
在圖4C中,由結點2或結點3通過網(wǎng)絡2向結點4和5傳遞針對AMG-1的GCM。
注意通過一個NCM和GCM發(fā)送的信息是發(fā)送方的NCT的一個子集。
根據(jù)本發(fā)明,如果GL發(fā)送的對應GCM已經(jīng)反映了通過以前的NCM從一個結點發(fā)送到GL的信息,則該結點可以停止發(fā)送針對一個指定網(wǎng)絡的NCM。通過比較針對本地結點在上次的NCM中發(fā)送的信息和在新進入的GCM中發(fā)送的信息可以實現(xiàn)這種操作。
當GCM信息與本地信息沖突或守護程序檢測到一個本地適配器與之連接的某些網(wǎng)絡具有一個新的AMG標識時(通過比較GCM中的信息和NCT中存儲的信息可以檢測到后一種情況),在所有分組中恢復發(fā)送NCM。當檢測到一個本地適配器被禁止時也對NCM加以恢復。
由于假定至少某些GCM會到達系統(tǒng)內的所有(在線)結點,所以在發(fā)送固定數(shù)量的GCM之后,一個結點可以停止發(fā)送GCM。當構成一個新的AMG標識時由一個GL恢復發(fā)送GCM,當一個新適配器加入分組或從分組中消除一個現(xiàn)有成員時會發(fā)生這種情況。為了允許最近啟動的結點獲得所有需要的GCM,一個結點當其接收到任何與接收結點的NCT發(fā)生沖突的GCM或NCM時也會恢復發(fā)送GCM(固定次數(shù))。另外,當其一個適配器被移到″禁止″狀態(tài)時,一個結點會恢復發(fā)送GCM。
這個機制(如圖6A-6H中的一個例子所示)按照下列方式工作-一個結點啟動,并且開始執(zhí)行其守護程序;-該結點的適配器加入若干AMG;-針對新構成的AMG由其各自的GL發(fā)送GCM;-GCM直接或通過使用GCM傳遞機制到達所有的在線結點;-由于到達的GCM包含關于一個新構成的分組的信息并且導致NCT的內容發(fā)生改變,所有接收新GCM的GL恢復發(fā)送其GCM;-最近啟動有結點從所有分組獲得GCM。
假定在所有結點均啟動的情況下所有結點均會得到一個GL發(fā)送的GCM中的至少一個(并且根據(jù)需要被傳遞到其它網(wǎng)絡)。如果一個結點此時沒有啟動,由于在結點變成可工作時會使用恢復準則,所以稍后在該結點啟動時該結點會得到GCM。
當一個結點的任何適配器變成被禁止時,NCM和GCM在該結點上的傳送均被恢復。這與在一個結點發(fā)現(xiàn)拓撲改變時恢復GCM的策略是一致的。
下列原因解釋了為什么至少一個GCM應當以較高的可能性到達所有結點。如果在若干嘗試之后沒有GCM到達一個結點,這通常表明出現(xiàn)了網(wǎng)絡問題。然而由于一個AMG中的適配器被假定彼此監(jiān)視,在發(fā)送所有GCM之前應當可以很好地檢測出網(wǎng)絡問題。檢測到網(wǎng)絡問題應當導致可以彼此通信的適配器構成新的AMG。結果,新的GCM會通過已知正在工作的適配器。
圖5A-5E描述了基于本發(fā)明的拓撲傳播的一個例子。在圖5A中,所示的分布式計算環(huán)境包含結點1-6和分別具有AMG A_1與AMGB_1的網(wǎng)絡1&2。環(huán)境中的各個結點在其各自的NCT中具有正確的全局拓撲結構。例如,參照示出了結點5上的NCT的圖5B。
在圖5C中,假定結點2消失并導致結點1,3&4產(chǎn)生一個新的適配器成員組(AMG A_2)。在產(chǎn)生AMGA_2時,圖5D中示出的結點5上的NCT仍然表明結點2從計算環(huán)境中消失。
組頭結點GL1向AMG A_2的結點1&3傳遞一個分組連接消息)GCM)使得結點5知道結點2已經(jīng)消失。具有連接到網(wǎng)絡1和網(wǎng)絡2的本地適配器的結點3接著向AMG B_1的結點5&6傳遞所發(fā)送的GCM。如上所述,由于結點3和結點4對兩個網(wǎng)絡是共同的,所以可以通過結點3或結點4完成GCM的傳遞。圖5F描述了在接收到傳遞的GCM時在結點5上更新的NCT。注意結點2與結點5隔離的原因在于結點2仍然是結點5通過從A_2或B_1開始的任何跳躍均無法到達的A_1的一個成員。
圖6A-6H描述了基于本發(fā)明的拓撲傳播的另一個例子。在這個例子中,結點2將在圖6A描述的分布式計算環(huán)境中變成活躍狀態(tài)。在這個環(huán)境中,結點1,3&4屬于AMG A_1而結點3,4,5&6屬于AMGB_1。圖6B針對圖6A的分布式計算環(huán)境描述了結點5上的NCT和結點2上的NCT。
在圖6C中,結點2當前是活躍的,并且已經(jīng)構成了一個新的適配器成員組(AMG A_2)。此時結點5上的NCT和結點2上的NCT中的拓撲如圖6D所示,該結構與圖6B中的結構相同。
如圖6E所示,通過由GL1向結點1,2&3傳遞一個分組連接消息(GCM)并且由結點3向結點5&6傳遞GCM向結點通知新的AMG。如圖6F示出,當接收到GCM時,各個結點更新其NCT,從而產(chǎn)生結點5上的NCT和結點2上的NCT。為了完成拓撲更新,AMG B_1的組頭結點2通過發(fā)送其自己的GCM對新信息作出應答,上述GCM通知AMG B_1的結點2。如圖6G所示,來自GL2的GCM被發(fā)送到結點3,4&5,其中結點3向AMG A_2的結點1&結點2傳遞消息。結點5上的NCT和結點2上的NCT中的更新拓撲信息如圖6H所示。
圖7針對一個組頭結點描述了實現(xiàn)基于本發(fā)明的拓撲傳播的狀態(tài)圖。在狀態(tài)1中,組頭結點向其分組中的結點發(fā)送GCM消息。當發(fā)生一個預定事件,例如一個消息計數(shù)達到預置限制時,組頭結點進入一個不向其分組的成員發(fā)送GCM消息的第二狀態(tài)。之后組頭結點停留在狀態(tài)2直到分布式計算環(huán)境中發(fā)生改變。具體地,在以下情況下組頭結點躍遷到狀態(tài)1(1)組頭結點接收到一個與本地NCT沖突的NCM;(2)組頭結點接收到一個與其本地NCT沖突的GCM;(3)組頭結點的一個本地適配器屬于一個不同的AMG;或(4)組頭結點的一個本地適配器被認為是禁止的。
通過前面的描述本領域的技術人員會注意到這里提供的是一個在分布式計算環(huán)境內停止和重新開始發(fā)送拓撲傳播消息的機制。這個機制不需要周期性地向分布式系統(tǒng)中的結點發(fā)送網(wǎng)絡拓撲信息。一旦拓撲停止改變,系統(tǒng)內的所有GCM會在有限時間內停止。拓撲服務使用基于本發(fā)明的機制在系統(tǒng)內所有結點中間傳播拓撲信息。拓撲服務使用NCT進行.計算從本地結點可達的結點集合。
.計算到各個可達結點的路由。該路由被可靠消息傳送(PRM)用來把分組″源路由″到目的地。
本發(fā)明可以被包含在一個具有計算機可用介質的制造產(chǎn)品(例如一或多個計算機程序產(chǎn)品)內。這種介質其中包含提供并利用本發(fā)明的能力的計算機可讀程序代碼裝置。制造產(chǎn)品可以被包含在計算機系統(tǒng)中或單獨銷售。
另外,可以提供至少一個機器可讀程序存儲設備,該設備實際包含至少一個可被機器運行以便執(zhí)行本發(fā)明的功能的指令程序。
以舉例的方式提供這里描述的流程圖。在不偏離本發(fā)明的宗旨的前提下可以改變這些圖例或這里描述的步驟(或操作)。例如,在某些情況下,可以按照不同的順序執(zhí)行步驟,也可以增加,刪除或修改步驟。所有這些變化被認為包括如所附權利要求書所述的本發(fā)明的部分。
這里根據(jù)本發(fā)明的某些最優(yōu)實施例詳細描述了本發(fā)明,本領域的技術人員可以對其作出許多修改和改變。所附權利要求書試圖把所有這種修改和改變覆蓋在本發(fā)明的真實宗旨和范圍內。
權利要求
1.一個在分布式計算環(huán)境內進行拓撲傳播的方法,上述方法包括從至少一個組頭結點向分布式計算環(huán)境內部至少一個結點組的已識別結點發(fā)送分組連接消息;在分布式計算環(huán)境內部沒有拓撲改變的時間段內停止上述分組連接消息的發(fā)送;和當發(fā)現(xiàn)分布式計算環(huán)境內部的拓撲改變時重新開始從至少一個組頭結點發(fā)送分組連接消息。
2.如權利要求1所述的方法,其中分布式計算環(huán)境包括至少兩個網(wǎng)絡,上述網(wǎng)絡均具有至少一個已識別結點組,并且上述方法還包括在至少兩個網(wǎng)絡的各個組內使用一個心跳協(xié)議以保證分組內部的各個已識別結點的連續(xù)出現(xiàn)。
3.如權利要求2所述的方法,其中分布式計算環(huán)境的至少兩個網(wǎng)絡包括異構網(wǎng)絡。
4.如權利要求2所述的方法,其中分布式計算環(huán)境的至少一個結點具有至少兩個適配器,上述至少兩個適配器把上述至少一個結點連接到上述至少兩個網(wǎng)絡,并且上述發(fā)送包括從一個第一組頭結點向上述至少兩個網(wǎng)絡的一個第一網(wǎng)絡上的第一結點組的已識別結點發(fā)送第一分組連接消息(GCM),上述至少一個結點包括上述第一結點組的一個已識別結點,并且上述發(fā)送還包括上述至少一個結點向上述至少兩個網(wǎng)絡的一個第二網(wǎng)絡上的第二結點組傳遞上述第一GCM。
5.如權利要求4所述的方法,其中在上述第一結點組的已識別結點和上述第二結點組的已識別結點上接收的上述第一GCM被各個上述已識別結點用來更新一個本地網(wǎng)絡連接表(NCT)。
6.如權利要求4所述的方法,其中上述發(fā)送還包括從一個第二組頭結點向第二結點組的已識別結點發(fā)送第二GCM,和上述至少一個結點向至少兩個網(wǎng)絡的第一網(wǎng)絡上的第一結點組傳遞上述第二GCM。
7.如權利要求6所述的方法,其中上述第二組頭結點進行的上述第二GCM發(fā)送是對在上述第二組頭結點上接收上述傳遞的第一GCM中的新信息作出的響應。
8.如權利要求6所述的方法,其中上述停止包括當在上述組頭結點識別出分布式計算環(huán)境內部的拓撲改變之后從組頭結點發(fā)送的消息數(shù)量達到一個預定限制時各個組頭結點停止上述分組連接消息的發(fā)送。
9.如權利要求8所述的方法,其中上述重新開始包括識別分布式計算環(huán)境內部的上述拓撲改變,上述識別包括以下事件中的至少一個在一個組頭結點上接收到一個與本地網(wǎng)絡連接表數(shù)值沖突的結點連接消息,在一個組頭結點上接收到一個與本地網(wǎng)絡連接表數(shù)值沖突的分組連接消息,識別出一個本地適配器屬于一個不同的適配器成員組,或識別出一個本地適配器已經(jīng)被禁止。
10.如權利要求1所述的方法,其中上述停止包括當在上述組頭結點識別出分布式計算環(huán)境內部的拓撲改變之后從組頭結點發(fā)送的消息數(shù)量達到一個預定限制時各個組頭結點停止上述分組連接消息的發(fā)送。
11.如權利要求1所述的方法,其中還包括以在上述拓撲傳播期間不使用確認消息的方式實現(xiàn)上述發(fā)送,上述停止,和上述重新開始。
12.如權利要求1所述的方法,其中上述重新開始發(fā)送分組連接消息包括以下情況中的至少一種在一個組頭結點上的接收到一個與本地網(wǎng)絡連接表數(shù)值沖突的結點連接消息,在一個組頭結點上接收到一個與本地網(wǎng)絡連接表數(shù)值沖突的分組連接消息,識別出一個本地適配器屬于一個不同的適配器成員組,或識別出一個本地適配器已經(jīng)被禁止。
13.一個在分布系統(tǒng)計算環(huán)境內進行拓撲傳播的系統(tǒng),上述系統(tǒng)包括從至少一個組頭結點向分布式計算環(huán)境內部至少一個結點組的已識別結點發(fā)送分組連接消息的裝置;在分布式計算環(huán)境內部沒有拓撲改變的時間段內停止上述分組連接消息的發(fā)送的裝置;和當發(fā)現(xiàn)分布式計算環(huán)境內部的拓撲改變時重新開始從至少一個組頭結點發(fā)送分組連接消息的裝置。
14.如權利要求13所述的系統(tǒng),其中分布系統(tǒng)計算環(huán)境包括至少兩個網(wǎng)絡,上述網(wǎng)絡均具有至少一個已識別結點組,并且上述系統(tǒng)還包括在至少兩個網(wǎng)絡的各個組內使用一個心跳協(xié)議以保證分組內部的各個已識別結點的連續(xù)出現(xiàn)的裝置。
15.如權利要求14所述的系統(tǒng),其中分布式計算環(huán)境的至少兩個網(wǎng)絡包括異構網(wǎng)絡。
16.如權利要求14所述的系統(tǒng),其中分布式計算環(huán)境的至少一個結點具有至少兩個適配器,上述至少兩個適配器把上述至少一個結點連接到上述至少兩個網(wǎng)絡,并且上述發(fā)送裝置包括從一個第一組頭結點向上述至少兩個網(wǎng)絡的一個第一網(wǎng)絡上的第一結點組的已識別結點發(fā)送第一分組連接消息(GCM)的裝置,上述至少一個結點包括上述第一結點組的一個已識別結點,并且上述發(fā)送裝置還包括上述至少一個結點向上述至少兩個網(wǎng)絡的一個第二網(wǎng)絡上的第二結點組傳遞上述第一GCM的裝置。
17.如權利要求16所述的系統(tǒng),其中在上述第一結點組的已識別結點和上述第二結點組的已識別結點上接收的上述第一GCM被各個上述已識別結點用來更新一個本地網(wǎng)絡連接表(NCT)。
18.如權利要求16所述的系統(tǒng),其中上述發(fā)送裝置還包括從一個第二組頭結點向第二結點組的已識別結點發(fā)送第二GCM的裝置,和上述至少一個結點向至少兩個網(wǎng)絡的第一網(wǎng)絡上的第一結點組傳遞上述第二GCM的裝置。
19.如權利要求18所述的系統(tǒng),其中通過上述第二組頭結點進行上述第二GCM發(fā)送的上述裝置對在上述第二組頭結點上接收上述傳遞的第一GCM中的新信息作出響應。
20.如權利要求18所述的系統(tǒng),其中上述停止裝置包括當在上述組頭結點識別出分布式計算環(huán)境內部的拓撲改變之后從組頭結點發(fā)送的消息數(shù)量達到一個預定限制時停止上述分組連接消息的發(fā)送的各個組頭結點裝置。
21.如權利要求20所述的系統(tǒng),其中上述重新開始裝置包括識別分布式計算環(huán)境內部的上述拓撲改變的裝置,上述識別裝置對以下事件中的至少一個作出響應在一個組頭結點上接收到一個與本地網(wǎng)絡連接表數(shù)值沖突的結點連接消息,在一個組頭結點上接收到一個與本地網(wǎng)絡連接表數(shù)值沖突的分組連接消息,本地出一個本地適配器屬于一個不同的適配器成員組,或識別出一個本地適配器已經(jīng)被禁止。
22.如權利要求13所述的系統(tǒng),其中上述停止裝置包括當在上述組頭結點識別出分布式計算環(huán)境內部的拓撲改變之后從組頭結點發(fā)送的消息數(shù)量達到一個預定限制時停止上述分組連接消息的發(fā)送的各個組頭結點裝置。
23.如權利要求13所述的系統(tǒng),其中上述以在上述拓撲傳播期間不使用確認消息的方式實現(xiàn)上述發(fā)送裝置,上述停止裝置和上述重新開始裝置。
24.如權利要求13所述的系統(tǒng),其中上述重新開始發(fā)送分組連接消息的裝置對以下情況中的至少一種作出響應在一個組頭結點上的接收到一個與本地網(wǎng)絡連接表數(shù)值沖突的結點連接消息,在一個組頭結點上接收到一個與本地網(wǎng)絡連接表數(shù)值沖突的分組連接消息,識別出一個本地適配器屬于一個不同的適配器成員組,或識別出一個本地適配器已經(jīng)被禁止。
25.至少一個機器可讀程序存儲設備,上述程序存儲設備實際包含至少一個指令程序,上述指令程序可以被機器用來執(zhí)行以便完成在分布式計算環(huán)境中進行拓撲傳播的方法,該方法包括從至少一個組頭結點向分布式計算環(huán)境內部至少一個結點組的指定結點發(fā)送分組連接消息;在分布式計算環(huán)境內部沒有拓撲改變的時間段內停止上述分組連接消息的發(fā)送;和當發(fā)現(xiàn)分布式計算環(huán)境內部的拓撲改變時重新開始從至少一個組頭結點發(fā)送分組連接消息。
26.如權利要求25所述的至少一個程序存儲設備,其中分布式計算環(huán)境包括至少兩個網(wǎng)絡,上述網(wǎng)絡均具有至少一個已識別結點組,并且上述方法還包括在至少兩個網(wǎng)絡的各個組內使用一個心跳協(xié)議以保證分組內部的各個已識別結點的連續(xù)出現(xiàn)。
27.如權利要求26所述的至少一個程序存儲設備,其中分布式計算環(huán)境的至少兩個網(wǎng)絡包括異構網(wǎng)絡。
28.如權利要求26所述的至少一個程序存儲設備,其中分布式計算環(huán)境的至少一個結點具有至少兩個適配器,上述至少兩個適配器把上述至少一個結點連接到上述至少兩個網(wǎng)絡,并且上述發(fā)送包括從一個第一組頭結點向上述至少兩個網(wǎng)絡的一個第一網(wǎng)絡上的第一結點組的已識別結點發(fā)送第一分組連接消息(GCM),上述至少一個結點包括上述第一結點組的一個已識別結點,并且上述發(fā)送還包括上述至少一個結點向上述至少兩個網(wǎng)絡的一個第二網(wǎng)絡上的第二結點組傳遞上述第一GCM。
29.如權利要求28所述的至少一個程序存儲設備,其中在上述第一結點組的已識別結點和上述第二結點組的已識別結點上接收的上述第一GCM被各個上述已識別結點用來更新一個本地網(wǎng)絡連接表(NCT)。
30.如權利要求28所述的至少一個程序存儲設備,其中上述發(fā)送還包括從一個第二組頭結點向第二結點組的已識別結點發(fā)送第二GCM,和上述至少一個結點向至少兩個網(wǎng)絡的第一網(wǎng)絡上的第一結點組傳遞上述第二GCM。
31.如權利要求30所述的至少一個程序存儲設備,其中通過上述第二組頭結點進行上述第二GCM發(fā)送的上述裝置對在上述第二組頭結點上接收上述傳遞的第一GCM中的新信息作出響應。
32.如權利要求30所述的至少一個程序存儲設備,其中上述停止包括當在上述組頭結點識別出分布式計算環(huán)境內部的拓撲改變之后從組頭結點發(fā)送的消息數(shù)量達到一個預定限制時各個組頭結點停止上述分組連接消息的發(fā)送。
33.如權利要求32所述的至少一個程序存儲設備,其中上述重新開始包括識別分布式計算環(huán)境內部的上述拓撲改變,上述識別包括以下事件中的至少一個在一個組頭結點上接收到一個與本地網(wǎng)絡連接表數(shù)值沖突的結點連接消息,在一個組頭結點上接收到一個與本地網(wǎng)絡連接表數(shù)值沖突的分組連接消息,本地出一個本地適配器屬于一個不同的適配器成員組,或識別出一個本地適配器已經(jīng)被禁止。
34.如權利要求25所述的至少一個程序存儲設備,其中上述停止包括當在上述組頭結點識別出分布式計算環(huán)境內部的拓撲改變之后從組頭結點發(fā)送的消息數(shù)量達到一個預定限制時各個組頭結點停止上述分組連接消息的發(fā)送。
35.如權利要求25所述的至少一個程序存儲設備,其中還包括以在上述拓撲傳播期間不使用確認消息的方式實現(xiàn)上述發(fā)送,上述停止,和上述重新開始。
36.如權利要求25所述的至少一個程序存儲設備,其中上述重新開始發(fā)送分組連接消息包括以下情況中的至少一種在一個組頭結點上的接收到一個與本地網(wǎng)絡連接表數(shù)值沖突的結點連接消息,在一個組頭結點上接收到一個與本地網(wǎng)絡連接表數(shù)值沖突的分組連接消息,識別出一個本地適配器屬于一個不同的適配器成員組,或識別出一個本地適配器已經(jīng)被禁止。
全文摘要
提供一個在分布式計算環(huán)境中的不同結點上維護一個公共網(wǎng)絡拓撲數(shù)據(jù)庫的拓撲傳播設施。當分布式計算環(huán)境處于穩(wěn)定狀態(tài)時該設施不產(chǎn)生消息傳輸。通過在分布式計算環(huán)境內部沒有拓撲改變的時間段內停止上述分組連接消息的發(fā)送來實現(xiàn)這個目標。當組頭結點發(fā)現(xiàn)分布式計算環(huán)境內部的至少一個拓撲改變時從至少一個組頭結點重新開始發(fā)送分組連接消息。分布式計算環(huán)境的網(wǎng)絡可以包括異構網(wǎng)絡以便所提供的拓撲傳播設施有利于網(wǎng)絡的互操作性。
文檔編號H04J3/16GK1327204SQ0112082
公開日2001年12月19日 申請日期2001年5月29日 優(yōu)先權日2000年5月30日
發(fā)明者費里佩·諾普, 丹尼斯·D·朱根森, 張純希, 薩梅·A·法克赫里, 蒂莫西·L·雷斯 申請人:國際商業(yè)機器公司