專利名稱:通信系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信系統(tǒng)(包括分布式計算系統(tǒng))領(lǐng)域,尤其涉及處理這種通信系統(tǒng)中節(jié)點(或計算機)的故障的系統(tǒng)。
在分布式計算系統(tǒng)中,多個相互連接的計算機每一臺運行應(yīng)用程序的一部分。整個應(yīng)用程序由一個在多個相互連接的計算機上同時運行的分布式軟件系統(tǒng)來實現(xiàn)。這些計算機構(gòu)成由通信系統(tǒng)相互連接的節(jié)點(例如象互聯(lián)網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)中的主機)。在有彈性的分布式系統(tǒng)中,應(yīng)用程序可以容忍組成的計算機中一臺或幾臺發(fā)生故障,并通過以另一臺計算機(例如一臺完全未用過的備用計算機或有閑置容量的正在使用的計算機)替代且用適當(dāng)?shù)木幋a和數(shù)據(jù)裝載該計算機使它能夠取代故障的計算機在分布式計算中的角色而恢復(fù)。因此有彈性的分布式計算系統(tǒng)的配置容易改變,并由一個管理系統(tǒng)控制。
管理系統(tǒng)(一般位于另一臺計算機上)負(fù)責(zé)監(jiān)控運行該分布式應(yīng)用程序的計算機的操作,并負(fù)責(zé)監(jiān)控分布式應(yīng)用程序本身的運行。因此管理系統(tǒng)將涉及到向運行該分布式應(yīng)用程序的計算機集合中引入任何新的計算機(例如為了增加總體的處理容量),以及在必要時從該集合中退出計算機(例如為了硬件升級或更換)。管理系統(tǒng)也涉及對分布式應(yīng)用程序的配置,可以控制將哪臺計算機指配給特定的處理任務(wù)以及如何在計算機集合中分布該處理負(fù)荷。當(dāng)這種計算機集合中的一臺計算機發(fā)生故障時,管理系統(tǒng)就必須注意到該故障,并重新配置計算機和該分布式應(yīng)用程序以考慮這個問題。
因此,有必要有效地檢測在這種分布式系統(tǒng)中的計算機的故障。這個問題的一個可能的解決方案是管理系統(tǒng)通過向每一臺應(yīng)用計算機發(fā)送一個網(wǎng)間控制報文協(xié)議(ICMP)回應(yīng)請求消息來定期ping它們(使它們被強制回應(yīng))。ICMP用于報告消息傳遞中的錯誤、重定向業(yè)務(wù)等。ICMP回應(yīng)請求消息(通常被稱作“ping”)請求接收的計算機立即用一個ICMP回應(yīng)回復(fù)消息(“ping回復(fù)”)來回復(fù)。這被用來確定遠(yuǎn)方計算機的工作是否是正確的以及是否有一條可用的網(wǎng)絡(luò)路徑到這種遠(yuǎn)方的計算機(即該計算機是否可接入一條可用的路徑以便到達(dá)它需要到達(dá)的任何其他的計算機)。具有運行的IP接口的計算機被請求用ICMP回應(yīng)回復(fù)消息來回復(fù)這些消息。這在操作系統(tǒng)中是以低水平發(fā)生的,以及它是通常用于確定計算機是否工作的方法。1989年10月的InternetEngineering Task Force(互聯(lián)網(wǎng)工程任務(wù)組)出版物RFC1122“HostRequirements(主機要求)”敘述了ICMP的操作(見第3.2.2.6章節(jié),第42-43頁)。
通過頻繁地發(fā)送這些消息(例如一次多于一秒鐘),管理系統(tǒng)檢驗每一臺應(yīng)用計算機的功能。如果不能及時地接收到回復(fù)就表明一臺計算機可能已經(jīng)發(fā)生故障。但是,由于消息在網(wǎng)絡(luò)中會丟失,所以這并不完全可靠。如果幾個回復(fù)都未能到達(dá),那么可以更有信心地推測該計算機故障,但是網(wǎng)絡(luò)故障是另一種可能性且應(yīng)該被作為恢復(fù)過程的一部分來進(jìn)行探測。如果回復(fù)能從與被推測為故障的計算機相鄰的計算機接收到,那么有理由認(rèn)為故障就在該懷疑的計算機上,而如果不能從多個相鄰計算機接收到回復(fù),那么有理由認(rèn)為該網(wǎng)絡(luò)本身發(fā)生故障。
一個可選擇的解決方案是應(yīng)用計算機自己定期給管理系統(tǒng)發(fā)送一個消息(不必是ICMP消息)聲明它們?nèi)耘f是活著的,而不是管理系統(tǒng)對應(yīng)用計算機進(jìn)行“ping”(使用ICMP回應(yīng)請求消息)。同樣,幾個這種預(yù)期消息的缺少將是應(yīng)用計算機發(fā)生故障的一種指示。
遺憾的是,上述的兩種解決方案遇到同樣的問題即雖然在每臺應(yīng)用計算機上的負(fù)荷很小,但管理系統(tǒng)將承擔(dān)很高的負(fù)荷,因為它必須與每一臺應(yīng)用計算機(可能有大量的計算機)交換網(wǎng)絡(luò)通信業(yè)務(wù)。這種通信業(yè)務(wù)會降低管理系統(tǒng)執(zhí)行其它任務(wù)的能力,并可能是制約整個系統(tǒng)大小或使得故障恢復(fù)所花費的時間比所期望的要長的關(guān)鍵因素。
本發(fā)明提供了一種包括一個第一節(jié)點和多個第二節(jié)點的通信系統(tǒng);其中該第一節(jié)點與所述的多個第二節(jié)點連接,用于控制該第二節(jié)點的操作;其中所述的多個第二節(jié)點被物理地相互連接;其中所述的多個第二節(jié)點被布置在一個或多個邏輯的相互連接中;其中所述的一個或多個邏輯的相互連接的拓?fù)浣Y(jié)構(gòu)與該物理的相互連接的拓?fù)浣Y(jié)構(gòu)不同;其中每個第二節(jié)點包括向它的邏輯后繼者第二節(jié)點發(fā)送狀態(tài)消息的裝置,以及監(jiān)測從它的邏輯前站第二節(jié)點接收的狀態(tài)消息用以確定其狀態(tài)的裝置。
根據(jù)一種優(yōu)選的實施方案,本發(fā)明提供了一種系統(tǒng),其中每個第二節(jié)點包括向它的邏輯前站第二節(jié)點定期發(fā)送一個控制消息用于向其請求狀態(tài)消息的裝置,包括用于檢測來自它的邏輯后繼者節(jié)點的控制消息的接收、并響應(yīng)這個或每個檢測到的已接收控制消息向它的邏輯后繼者節(jié)點發(fā)送一個狀態(tài)消息的裝置。
本發(fā)明的實施方案將使用例子參考附圖來說明,其中
圖1顯示一種根據(jù)現(xiàn)有技術(shù)的分布式計算系統(tǒng);圖2顯示一種根據(jù)本發(fā)明在邏輯環(huán)中布置的分布式計算系統(tǒng);圖3顯示一種根據(jù)本發(fā)明的雙向邏輯環(huán)。
圖1顯示一個IP網(wǎng)絡(luò),其中一個管理系統(tǒng)(即在管理計算機上運行的一個軟件系統(tǒng))在管理節(jié)點1上,并通過IP網(wǎng)絡(luò)3與多個應(yīng)用計算機連接,各個應(yīng)用計算機分別在多個第二節(jié)點2中不同的一個節(jié)點中提供。IP網(wǎng)絡(luò)包括例如以星形、樹形、總線或網(wǎng)形或者在例如無線電網(wǎng)絡(luò)情形中以無定形的方式布置的連接媒體(例如銅線、光纖或無線電)。實際上IP網(wǎng)絡(luò)一般是這些媒體布置的一些或全部結(jié)合在一起的組合。
圖2顯示一種具有與圖1的系統(tǒng)一樣的物理拓?fù)浣Y(jié)構(gòu)的分布式計算系統(tǒng)。然而,第二節(jié)點2現(xiàn)在布置成如箭頭4所示的邏輯環(huán)。箭頭4指示狀態(tài)消息沿邏輯環(huán)的流動方向。
在圖2中,計算機的物理布置和連接性與圖1相比并未改動。然而,在第二節(jié)點2中的每一臺應(yīng)用計算機現(xiàn)在使用由管理系統(tǒng)配置的軟件進(jìn)行修改,這樣每一臺應(yīng)用計算機都知道它的邏輯后繼者(即在沿邏輯環(huán)的線路上按箭頭4的方向的下一臺計算機)和它的邏輯前站(即在沿邏輯環(huán)的線路上相反方向的下一臺計算機),所述應(yīng)用計算機需要向它的邏輯后繼者發(fā)送狀態(tài)消息,而期望從它的邏輯前站接收狀態(tài)消息。應(yīng)該注意,該邏輯環(huán)拓?fù)浣Y(jié)構(gòu)(即計算機之間的邏輯連接的布置)不同于物理拓?fù)浣Y(jié)構(gòu)(即計算機之間的物理連接的布置)。
根據(jù)圖2的實施方案,現(xiàn)在每一臺應(yīng)用計算機向邏輯環(huán)中它的邏輯前站定期發(fā)送一個ICMP回應(yīng)請求消息,并等候來自邏輯前站的ICMP回應(yīng)回復(fù)消息。該回復(fù)將在回應(yīng)請求消息流的相反方向上沿該邏輯環(huán)傳遞。如果在預(yù)設(shè)的時間段內(nèi)接收到有效的回復(fù),那么一切都是好的。否則,發(fā)送ICMP回應(yīng)請求消息的計算機將告知管理系統(tǒng)(使用適當(dāng)?shù)膮f(xié)議)它的前站節(jié)點似乎發(fā)生故障。用于此的一種適當(dāng)?shù)膮f(xié)議是例如Internet Engineering Task Force(互聯(lián)網(wǎng)任務(wù)工程組)在1990年5月的RFC1155“Structure of Management Information(SMI)(管理信息的結(jié)構(gòu)SMI)”和1990年5月的RFC1157“Simple NetworkManagement Protocol(SNMP)(簡單網(wǎng)絡(luò)管理協(xié)議SNMP)”中發(fā)布的簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)-特別是該協(xié)議的“陷阱(Trap)”操作,它被接受管理的計算機用來引起管理系統(tǒng)的注意,并可選擇地向管理系統(tǒng)傳遞一些感興趣的數(shù)據(jù)。這樣每一臺應(yīng)用計算機作為另一臺特定的應(yīng)用計算機的監(jiān)視者,雖然一臺計算機不能產(chǎn)生一個向管理系統(tǒng)告警自己的故障的消息,但是它的功能仍正常的監(jiān)視者可以產(chǎn)生這種消息。管理系統(tǒng)還執(zhí)行“注冊”協(xié)議(一般使用SNMP),由此它通知新啟動的主計算機它們在環(huán)上的位置,以及調(diào)整在環(huán)上的原有主機的前站-后繼者關(guān)系,兩個功能都用于方便新主機的進(jìn)入和允許原有主機在控制之下退出(例如為了硬件升級或更換),這個過程與在這些主計算機上的分布式應(yīng)用程序的啟動和關(guān)閉緊密同步。
有利的是,本發(fā)明避免了向管理系統(tǒng)例行發(fā)送定期的監(jiān)測消息。實際上,當(dāng)所有的節(jié)點都工作時(幾乎所有時候都是這樣的)管理系統(tǒng)上沒有額外的負(fù)荷。這樣,一臺廉價的、性能較低的計算機就可以很好地適應(yīng)這個管理角色。
根據(jù)本發(fā)明的網(wǎng)絡(luò)總體上傳輸與前一種解決方案一樣多的消息。但是,實際上一個網(wǎng)絡(luò)將包括多個“本地”子網(wǎng),在這種情況下,沿虛擬環(huán)的通信業(yè)務(wù)將主要包括始發(fā)和終接都在同一子網(wǎng)中的通信業(yè)務(wù),并在這些子網(wǎng)之間均勻地分布。結(jié)果在網(wǎng)絡(luò)中加載的通信業(yè)務(wù)得到很大的改進(jìn)。因此,由于通信系統(tǒng)中的IP網(wǎng)絡(luò)和它們所支持的下層網(wǎng)絡(luò)的結(jié)構(gòu),所以根據(jù)本發(fā)明的大多數(shù)請求消息和相應(yīng)的回復(fù)一般僅限制在整個IP網(wǎng)絡(luò)的一部分中,因而在計算機上或在IP網(wǎng)絡(luò)的其它部分的網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)上施加少許負(fù)擔(dān)或不增負(fù)擔(dān)(不象在前一種解決方案中來自每個應(yīng)用計算機的故障檢測通信業(yè)務(wù)都必須匯聚到一個單點即管理系統(tǒng)上)。
所以,整個系統(tǒng)是可縮放的。而前一種解決方案在管理系統(tǒng)中有一個性能瓶頸,這意味著當(dāng)達(dá)到瓶頸的容量時,整個系統(tǒng)就不能再擴大,而在根據(jù)本發(fā)明的系統(tǒng)中,每臺計算機只有一個很小的與故障檢測有關(guān)的負(fù)荷,而由于每臺計算機的負(fù)荷不隨應(yīng)用計算機數(shù)目的增加而增加,所以在系統(tǒng)的大小上沒有這種限制。
根據(jù)本發(fā)明的一種進(jìn)一步的實施方案,如圖3所示,邏輯環(huán)以如箭頭4、5所指示的雙向方式運行。根據(jù)圖3的實施方案,每一臺應(yīng)用計算機給環(huán)中它的邏輯后繼者和邏輯前站定期發(fā)送一個ICMP回應(yīng)請求消息,并等候來自邏輯后繼者和邏輯前站的ICMP回應(yīng)回復(fù)消息。該回復(fù)將在與相應(yīng)的回應(yīng)請求消息相反的方向中沿邏輯環(huán)傳遞。如在圖3中可見,邏輯上與一個節(jié)點相鄰(沿邏輯環(huán))的兩個另外的節(jié)點將監(jiān)測該節(jié)點并檢測它是否發(fā)生故障。如果檢測到一個節(jié)點的故障,那么邏輯上相鄰的節(jié)點就獨立地通知管理系統(tǒng)。因此這種實施方案具有提高可靠性的優(yōu)點,因為管理系統(tǒng)將更容易區(qū)別是實際的節(jié)點故障或僅僅是消息丟失。
根據(jù)一種進(jìn)一步的實施方案,對同一個節(jié)點進(jìn)行檢查的兩個另外節(jié)點之間的通信將允許在通知管理系統(tǒng)之前更有信心地確定該節(jié)點的狀態(tài)。
根據(jù)一種進(jìn)一步的實施方案,每個第二節(jié)點包含應(yīng)用數(shù)據(jù),而應(yīng)用消息用于在節(jié)點之間傳遞該應(yīng)用數(shù)據(jù),作為一種在分布式系統(tǒng)的一部分發(fā)生故障時保護數(shù)據(jù)不被丟失的方式。根據(jù)這種實施方案,使用應(yīng)用消息而不是ICMP來請求一個來自目的節(jié)點的響應(yīng),而且通常由目的節(jié)點使用邏輯環(huán)結(jié)構(gòu)來確認(rèn)。如果在一定的時間間隔中沒有數(shù)據(jù)需要交換(即如果沒有狀態(tài)的變化),那么就發(fā)送空的應(yīng)用消息或常規(guī)的回應(yīng)請求消息。
作為發(fā)送一個請求消息并等候一個有效回復(fù)的替代,每個節(jié)點可以同上面一樣按常規(guī)向它的邏輯后繼者僅僅發(fā)送狀態(tài)消息,并監(jiān)測從它的邏輯前站接收的狀態(tài)消息。
所述狀態(tài)消息可以包含與發(fā)出節(jié)點的狀態(tài)有關(guān)的信息,或者可替代地,僅僅狀態(tài)消息的到達(dá)便可以用作發(fā)出節(jié)點狀態(tài)的指示。
邏輯環(huán)的結(jié)構(gòu),特別是第二節(jié)點沿邏輯環(huán)布置的順序,不受這些節(jié)點物理上的布置和相互連接的任何限制。
根據(jù)本發(fā)明的一種進(jìn)一步的實施方案,所述的多個第二節(jié)點在邏輯的相互連接中可以以環(huán)狀之外的其它形式布置,即采用某種網(wǎng)形或其它的布置形式。每個第二節(jié)點的邏輯后繼者和邏輯前站的標(biāo)識可以如在建立該邏輯相互連接時所指配的。該邏輯的相互連接的拓?fù)浣Y(jié)構(gòu)(即計算機之間邏輯連接的布置)不同于物理的拓?fù)浣Y(jié)構(gòu)。
權(quán)利要求
1.一種包括一個第一節(jié)點和多個第二節(jié)點的通信系統(tǒng);其中該第一節(jié)點與所述的多個第二節(jié)點連接,用于控制該第二節(jié)點的操作;其中所述的多個第二節(jié)點被物理地相互連接;其中所述的多個第二節(jié)點被布置在一個或多個邏輯的相互連接中;其中所述的一個或多個邏輯的相互連接的拓?fù)浣Y(jié)構(gòu)與物理的相互連接的拓?fù)浣Y(jié)構(gòu)不同;其中每個第二節(jié)點包括向它的邏輯后繼者第二節(jié)點發(fā)送狀態(tài)消息的裝置,以及監(jiān)測從它的邏輯前站第二節(jié)點接收的狀態(tài)消息用以確定其狀態(tài)的裝置。
2.如權(quán)利要求1的系統(tǒng),其中每個第二節(jié)點包括以預(yù)設(shè)的時間間隔向它的邏輯后繼者節(jié)點發(fā)送狀態(tài)消息的裝置。
3.如權(quán)利要求1的系統(tǒng),其中每個第二節(jié)點包括向它的邏輯前站第二節(jié)點定期發(fā)送一個控制消息用以向其請求狀態(tài)消息的裝置,以及用于檢測來自它的邏輯后繼者節(jié)點的控制消息的接收、并響應(yīng)這個或每個檢測到的所接收控制消息向它的邏輯后繼者節(jié)點發(fā)送一個狀態(tài)消息的裝置。
4.如上述任一權(quán)利要求的系統(tǒng),其中每個第二節(jié)點包括用于監(jiān)測這個或每個接收的狀態(tài)消息、并當(dāng)在預(yù)設(shè)的時段內(nèi)沒有從該邏輯前站節(jié)點接收到預(yù)設(shè)數(shù)目的有效狀態(tài)消息時識別錯誤狀態(tài)的裝置。
5.如上述任一權(quán)利要求的系統(tǒng),其中每個第二節(jié)點包括應(yīng)用數(shù)據(jù)和以應(yīng)用消息的形式與它的邏輯后繼者節(jié)點交換應(yīng)用數(shù)據(jù)的裝置,其中所述應(yīng)用消息中的至少一些用作狀態(tài)消息,用于上述任一權(quán)利要求的目的。
6.如從屬于權(quán)利要求3的上述任一權(quán)利要求的系統(tǒng),其中每個第二節(jié)點包括應(yīng)用數(shù)據(jù)和以應(yīng)用消息的形式與它的邏輯前站第二節(jié)點交換應(yīng)用數(shù)據(jù)的裝置,其中所述應(yīng)用消息中的至少一些用作控制消息,用于權(quán)利要求3的目的。
7.如上述任一權(quán)利要求的系統(tǒng),其中每個第二節(jié)點包括將該第二節(jié)點的邏輯前站節(jié)點的狀態(tài)通知第一節(jié)點的裝置。
8.如上述任一權(quán)利要求的系統(tǒng),其中至少一個邏輯的相互連接包括所述的第一節(jié)點。
9.如上述任一權(quán)利要求的系統(tǒng),其中所述的一個或多個邏輯的相互連接包括一個或多個邏輯環(huán)。
10.如上述任一權(quán)利要求的系統(tǒng),其中所述系統(tǒng)包括一種互聯(lián)網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)。
全文摘要
一種通信系統(tǒng),其中一個第一節(jié)點與多個個第二節(jié)點連接,用于控制該第二節(jié)點的操作;其中所述的多個第二節(jié)點被布置在一個或多個邏輯的相互連接中,所述的一個或多個邏輯的相互連接的拓?fù)浣Y(jié)構(gòu)與節(jié)點的物理的相互連接的拓?fù)浣Y(jié)構(gòu)不同,而且其中每個第二節(jié)點包括向它的邏輯后繼者第二節(jié)點發(fā)送狀態(tài)消息的裝置,以及監(jiān)測從它的邏輯前站第二節(jié)點接收的狀態(tài)消息用以確定其狀態(tài)的裝置。
文檔編號H04L12/437GK1440606SQ0181249
公開日2003年9月3日 申請日期2001年5月1日 優(yōu)先權(quán)日2000年5月9日
發(fā)明者S·C·弗雷 申請人:馬科尼通訊有限公司