專利名稱:基于服務(wù)器加入集群的時(shí)間發(fā)送路由選擇數(shù)據(jù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施例通常涉及計(jì)算機(jī)。特別地,本發(fā)明的實(shí)施例通常 涉及經(jīng)由網(wǎng)絡(luò)連接的計(jì)算機(jī)系統(tǒng)的集群。
背景技術(shù):
1948年EDVAC計(jì)算機(jī)系統(tǒng)的開發(fā)通常被引用為計(jì)算機(jī)時(shí)代的開 始。從那時(shí)起,計(jì)算機(jī)系統(tǒng)已經(jīng)發(fā)展成非常復(fù)雜的設(shè)備,并且計(jì)算機(jī) 系統(tǒng)可以有許多不同的設(shè)置。計(jì)算機(jī)系統(tǒng)通常包含諸如半導(dǎo)體和電路 板的硬件和亦稱為計(jì)算機(jī)程序的軟件的組合。隨著半導(dǎo)體處理和計(jì)算 機(jī)體系結(jié)構(gòu)中的進(jìn)步推動(dòng)計(jì)算機(jī)硬件的性能更高,更成熟和更復(fù)雜的 計(jì)算機(jī)軟件已發(fā)展成利用硬件的更高性能,從而產(chǎn)生比僅僅幾年前的 計(jì)算機(jī)系統(tǒng)要強(qiáng)大得多的當(dāng)今計(jì)算機(jī)系統(tǒng)。
多年前,計(jì)算機(jī)是不互相通信的獨(dú)立設(shè)備,但是現(xiàn)在,計(jì)算機(jī)在
網(wǎng)絡(luò)中被越來越多地連接在一起,并且被稱作客戶端的一個(gè)計(jì)算機(jī)可 以請(qǐng)求被稱作服務(wù)器的另 一個(gè)計(jì)算機(jī)執(zhí)行操作。隨著因特網(wǎng)的出現(xiàn), 這種客戶端/服務(wù)器模型越來越多地用于在線商務(wù)和服務(wù),例如在線拍 賣場(chǎng)、股票交易、銀行業(yè)務(wù)、商務(wù)和信息存儲(chǔ)和檢索。
處理來自客戶端的請(qǐng)求的服務(wù)器通常被組織成經(jīng)由網(wǎng)絡(luò)連接的 集群。集群中穩(wěn)定的服務(wù)器狀態(tài)是理想的,其中處于集群之中的服務(wù) 器以及服務(wù)器上可用的數(shù)據(jù)和服務(wù)是公知的和固定的。穩(wěn)定的服務(wù)器 狀態(tài)使得客戶端請(qǐng)求在服務(wù)器變得可用之后立即使用該服務(wù)器,這樣 客戶端請(qǐng)求不會(huì)遇到錯(cuò)誤。
與穩(wěn)定的服務(wù)器狀態(tài)相反,服務(wù)器的集群可能處于動(dòng)蕩的服務(wù)器 狀態(tài)。動(dòng)蕩的服務(wù)器狀態(tài)可由以下因素引起服務(wù)器針對(duì)集群的動(dòng)態(tài) 添加和移除、數(shù)據(jù)項(xiàng)和服務(wù)針對(duì)服務(wù)器的動(dòng)態(tài)添加和移除、集群中的服務(wù)器的啟動(dòng)以及服務(wù)器的故障。因?yàn)闃?biāo)識(shí)服務(wù)器及其數(shù)據(jù)和服務(wù)的 路由選擇信息變得陳舊,所以動(dòng)蕩的服務(wù)器狀態(tài)在查找集群中正確的 服務(wù)器來處理來自客戶端的請(qǐng)求時(shí)產(chǎn)生問題。陳舊的路由選擇信息可 使客戶端請(qǐng)求遇到錯(cuò)誤。例如,陳舊的路由選擇信息可以使客戶端請(qǐng) 求被路由到數(shù)據(jù)或服務(wù)不再可用(過遲)的服務(wù)器,并且可以使客戶端 請(qǐng)求被路由到新數(shù)據(jù)或新服務(wù)尚未準(zhǔn)備好處理請(qǐng)求(過早)的服務(wù)器。 因而,通常由動(dòng)蕩的服務(wù)器狀態(tài)所引起的陳舊的路由選擇信息會(huì)影響 客戶端的用戶滿意度。
一種試圖處理動(dòng)蕩的服務(wù)器狀態(tài)以及所得到的陳舊的路由選擇 信息的當(dāng)前方案被稱作公告牌方案。在公告牌方案中,集群中的一個(gè)
服務(wù)器被指定為協(xié)調(diào)員(coordinator),集群中的所有服務(wù)器都將其路 由選擇信息發(fā)送給該協(xié)調(diào)員,并且所有客戶端都從該協(xié)調(diào)員中取回集 群中的服務(wù)器的路由選擇信息。如果將該協(xié)調(diào)員從集群中移除或該協(xié) 調(diào)員遇到錯(cuò)誤,則選擇新的協(xié)調(diào)員,并且每個(gè)服務(wù)器將其路由選擇信 息重新投寄給該新協(xié)調(diào)員。因而,公告牌方案產(chǎn)生額外的網(wǎng)絡(luò)業(yè)務(wù)量, 其不利地影響性能和用戶滿意度。
因而,需要一種更好的協(xié)調(diào)路由選擇信息的技術(shù)。
發(fā)明內(nèi)容
本發(fā)明提供了如權(quán)利要求l所述的在接收服務(wù)器處執(zhí)行的一種方法。
本發(fā)明還提供了如權(quán)利要求9所述的在新服務(wù)器處執(zhí)行的一種相 應(yīng)的方法。
還提供了相應(yīng)的系統(tǒng)和計(jì)算機(jī)程序。
這樣,集群可響應(yīng)動(dòng)態(tài)加入和離開該集群的服務(wù)器,同時(shí)降低網(wǎng) 絡(luò)業(yè)務(wù)量。
結(jié)合附圖,此后描述本發(fā)明的各種實(shí)施例圖l描述了用于實(shí)現(xiàn)本發(fā)明的一個(gè)實(shí)施例的示例性系統(tǒng)的框圖。
圖2A描述了根據(jù)本發(fā)明的 一個(gè)實(shí)施例的示例性服務(wù)器集群的框圖。
圖2B描述了根據(jù)本發(fā)明的一個(gè)實(shí)施例的加入服務(wù)器集群的示例 性新服務(wù)器的框圖。
圖3描述了根據(jù)本發(fā)明的一個(gè)實(shí)施例的示例性服務(wù)器集群的合并 的框圖。
圖4描述了根據(jù)本發(fā)明的一個(gè)實(shí)施例的示例性路由選擇數(shù)據(jù) (routing data)的才匡圖。
圖5描述了根據(jù)本發(fā)明的一個(gè)實(shí)施例的加入服務(wù)器集群的新服務(wù) 器的示例性處理的流程圖。
圖6描述了根據(jù)本發(fā)明的一個(gè)實(shí)施例的連接服務(wù)器集群的示例性 處理的流程圖。
圖7描述了根據(jù)本發(fā)明的一個(gè)實(shí)施例的廣播消息的示例性處理的 流程圖。
圖8描述了根據(jù)本發(fā)明的一個(gè)實(shí)施例的響應(yīng)于服務(wù)器離開網(wǎng)絡(luò)進(jìn) 行的示例性處理的流程圖。
然而,應(yīng)當(dāng)注意,附圖只圖解了本發(fā)明的示例性實(shí)施例,因此不 被認(rèn)為是對(duì)本發(fā)明范圍的限制,本發(fā)明允許采用其它等效的實(shí)施例。
具體實(shí)施例方式
參考附圖,其中類似編號(hào)表示若干附圖中的類似部分,圖l描述 了根據(jù)本發(fā)明的實(shí)施例的、連接到網(wǎng)絡(luò)130的服務(wù)器計(jì)算機(jī)系統(tǒng)100的 高層框圖表示。僅僅為了方便而使用術(shù)語"計(jì)算機(jī)系統(tǒng)"和,,服務(wù)器", 可以使用任何適當(dāng)?shù)碾娮釉O(shè)備,在各實(shí)施例中,計(jì)算機(jī)系統(tǒng)100可充 當(dāng)客戶端或服務(wù)器,并且在一種環(huán)境下充當(dāng)客戶端的計(jì)算機(jī)系統(tǒng)或電 子設(shè)備在另 一種環(huán)境下可充當(dāng)服務(wù)器。服務(wù)器計(jì)算機(jī)系統(tǒng)100的主要 部件包含一個(gè)或多個(gè)處理器101、主存儲(chǔ)器102、終端接口lll、存儲(chǔ) 設(shè)備接口112、 1/0(輸入/輸出)設(shè)備接口113和通信/網(wǎng)絡(luò)接口114,為了組件間通信,所有這些部件都經(jīng)由存儲(chǔ)器總線103、 1/0總線104和I/0 總線接口單元105連接起來。
月良務(wù)器計(jì)算機(jī)系統(tǒng)100包含一個(gè)或多個(gè)通用可編程中央處理單元 (CPU)101A、 101B、 101C和101D,其在本文中通稱作處理器101。在 一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)100包含相對(duì)大型系統(tǒng)的典型的多處理器; 然而,在另一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)100可選地為單CPU系統(tǒng)。每 個(gè)處理器101執(zhí)行存儲(chǔ)在主存儲(chǔ)器102中的指令,并且可包含一級(jí)或多 級(jí)板上高速緩存器。
主存儲(chǔ)器102是一種用于存儲(chǔ)數(shù)據(jù)和程序的隨機(jī)訪問半導(dǎo)體存儲(chǔ) 器。主存儲(chǔ)器102在概念上是單個(gè)單片集成電路實(shí)體,但是在其它實(shí) 施例中,主存儲(chǔ)器102是一種更復(fù)雜的方案,例如高速緩存器和其它 存儲(chǔ)器設(shè)備的層次結(jié)構(gòu)。例如,存儲(chǔ)器可以以多級(jí)高速緩存器的形式 存在,并且這些高速緩存器還可按功能進(jìn)一步劃分,從而一個(gè)高速援 存器保存指令,而另一個(gè)保存由一個(gè)或多個(gè)處理器使用的非指令數(shù) 據(jù)。如已知的那樣,按照各種所謂的非均勻存儲(chǔ)器訪問(NUMA)計(jì)算 機(jī)體系結(jié)構(gòu)中的任何一種形式,存儲(chǔ)器還可以是分布式的并且與不同
的CPU或CPU組相關(guān)聯(lián)。
主存儲(chǔ)器102包含控制器158和服務(wù)159。雖然控制器158和服務(wù) 159被圖解成被包含在計(jì)算機(jī)系統(tǒng)100中的存儲(chǔ)器102內(nèi),但是在其它 實(shí)施例中,其一些或全部可以在不同的計(jì)算機(jī)系統(tǒng)上,并且可例如經(jīng) 由網(wǎng)絡(luò)130被遠(yuǎn)程訪問。計(jì)算機(jī)系統(tǒng)100可使用虛擬尋址機(jī)制,其使得 計(jì)算機(jī)系統(tǒng)100的程序就像是其僅能訪問大型的單存儲(chǔ)設(shè)備實(shí)體,而 不是訪問多個(gè)、較小的存儲(chǔ)設(shè)備實(shí)體那樣動(dòng)作。因而,雖然控制器158 和服務(wù)159被圖解成被包含在主存儲(chǔ)器102內(nèi),但是這些單元不必同時(shí) 全部完全地包含于相同的物理存儲(chǔ)裝置中。此外,雖然控制器158和 服務(wù)159被圖解成單獨(dú)的實(shí)體,在其它實(shí)施例中,它們中的一些或它 們中的一些的一部分可被封裝在一起。
在一個(gè)實(shí)施例中,控制器158包含存儲(chǔ)在存儲(chǔ)器102中的、能夠在 處理器101上執(zhí)行的指令,或能夠由在處理器101上執(zhí)行的指令解釋的語句,以執(zhí)行如下參照?qǐng)D5、 6、 7和8進(jìn)一步描述的功能。在另一個(gè)實(shí) 施例中,控制器158可以用微代碼或固件實(shí)現(xiàn)。在另一個(gè)實(shí)施例中, 控制器158可以用通過邏輯門和/或其它適當(dāng)硬件技術(shù)的硬件來實(shí)現(xiàn)。
控制器158包含路由選擇數(shù)據(jù)160、基于時(shí)間的管理器162、健康 監(jiān)聽器164、信息合并器166、信息廣播器167和點(diǎn)到點(diǎn)發(fā)送器168?;?于時(shí)間的管理器162計(jì)算自從服務(wù)器加入服務(wù)器集群所經(jīng)過的時(shí)間。 健康監(jiān)聽器164監(jiān)視與服務(wù)器100或網(wǎng)絡(luò)130相關(guān)的錯(cuò)誤。信息合并器 166將信息合并成路由選擇數(shù)據(jù)160。信息廣播器167將廣播消息發(fā)送 給網(wǎng)絡(luò)130。點(diǎn)到點(diǎn)發(fā)送器168將點(diǎn)到點(diǎn)消息發(fā)送給附接于網(wǎng)絡(luò)130的 服務(wù)器。路由選擇數(shù)據(jù)160描述了連接到網(wǎng)絡(luò)130的服務(wù)器100。下面 參照?qǐng)D4進(jìn)一步描述路由選擇數(shù)據(jù)160。
服務(wù)159是服務(wù)器100處可用的服務(wù)、功能或方法,并且在各種實(shí) 施例中,其可以是應(yīng)用、用戶應(yīng)用、第三方應(yīng)用、應(yīng)用服務(wù)器、操作 系統(tǒng)、任何其它合適的服務(wù)或其部分或組合。
存儲(chǔ)器總線103提供了用于在處理器101、主存儲(chǔ)器102和I/O總線 接口單元105之間傳送數(shù)據(jù)的數(shù)據(jù)通信路徑。1/0總線接口單元105還 被連接到用于到/從各種I/0單元傳送數(shù)據(jù)的系統(tǒng)1/0總線104。 1/0總線 接口單元105通過系統(tǒng)I/O總線104,與亦被稱為I/0處理器(IOP)或I/0 適配器(IOA)的多個(gè)I/0接口單元111、 112、 113和114通信。系統(tǒng)1/0 總線104可以是例如工業(yè)標(biāo)準(zhǔn)PCI總線,或任何其它適當(dāng)?shù)目偩€技術(shù)。
1/0接口單元支持與各種存儲(chǔ)設(shè)備和I/0設(shè)備的通信。例如,終端 接口單元111支持一個(gè)或多個(gè)用戶終端121、 122、 123和124的附接。 存儲(chǔ)設(shè)備接口單元112支持一個(gè)或多個(gè)直接訪問存儲(chǔ)設(shè)備(DASD)125、 126和127的附接(雖然直接訪問存儲(chǔ)設(shè)備(DASD)可選地是其它設(shè)備, 包括被配置成對(duì)主機(jī)來說就像是單個(gè)大型存儲(chǔ)設(shè)備的盤驅(qū)動(dòng)器陣列, 但是其通常為旋轉(zhuǎn)磁盤驅(qū)動(dòng)器存儲(chǔ)設(shè)備)。主存儲(chǔ)器102的內(nèi)容可被存 儲(chǔ)到直接訪問存儲(chǔ)設(shè)備125、 126和127,并且從直接訪問存儲(chǔ)設(shè)備125、 126和127中取回。
1/0設(shè)備接口 113提供了到各種其它輸入/輸出設(shè)備或其它類型設(shè)備中的任何一種的接口 。兩個(gè)這樣的設(shè)備-打印機(jī)128和傳真機(jī)129在 圖l的示例性實(shí)施例中被示出,但是在其它實(shí)施例中,可存在可能是 不同類型的許多其它這樣的設(shè)備。網(wǎng)絡(luò)接口114提供了從計(jì)算機(jī)系統(tǒng) 100到其它數(shù)字設(shè)備和計(jì)算機(jī)系統(tǒng)的一個(gè)或多個(gè)通信路徑;這樣的路 徑可包含,例如, 一個(gè)或多個(gè)網(wǎng)絡(luò)130。
雖然圖1中所示的存儲(chǔ)器總線103為提供在處理器101、主存儲(chǔ)器 102和I/O總線接口105之間的直接通信路徑的相對(duì)簡單的單總線結(jié) 構(gòu),但實(shí)際上存儲(chǔ)器總線103可包括多個(gè)不同的總線或通信路徑,其 可被布置成各種形式中的任何一種,例如按層級(jí)、星形或網(wǎng)狀配置的 點(diǎn)到點(diǎn)鏈路、多個(gè)分層級(jí)總線、平行和冗余路徑等等。此外,雖然1/0 總線接口105和I/O總線104被顯示為單個(gè)相應(yīng)單元,但是計(jì)算機(jī)系統(tǒng) 100實(shí)際上可包含多個(gè)I/O總線接口單元105和/或多個(gè)I/O總線104。雖 然示出了將系統(tǒng)I/O總線104與通向各種I/O設(shè)備的各種通信路徑分離
的多個(gè)i/o接口單元,但是在其它實(shí)施例中, 一些或所有i/o設(shè)備被直
接連接到 一個(gè)或多個(gè)系統(tǒng)I/0總線上。
圖1中所描述的計(jì)算機(jī)系統(tǒng)100具有多個(gè)附接的終端121 、 122、 123 和124,例如可以是典型的多用戶"大型機(jī)"計(jì)算機(jī)系統(tǒng)。通常,在這 種情況下,附接設(shè)備的實(shí)際數(shù)量大于圖l中所示的,盡管本發(fā)明不局 限于任何特定規(guī)模的系統(tǒng)。計(jì)算機(jī)系統(tǒng)100可選地是單用戶系統(tǒng),通 常僅包含單個(gè)用戶顯示和鍵盤輸入,或者可以是具有很少或沒有直接 用戶接口,但是從其它計(jì)算機(jī)系統(tǒng)(客戶端)接收請(qǐng)求的服務(wù)器或類似 設(shè)備。在其它實(shí)施例中,計(jì)算機(jī)系統(tǒng)100可以被實(shí)現(xiàn)成個(gè)人計(jì)算機(jī)、 便攜式計(jì)算機(jī)、膝上型或筆記本計(jì)算機(jī)、PDA(個(gè)人數(shù)字助理)、平板 電腦、掌上電腦、電話、傳呼機(jī)、汽車、電話會(huì)議系統(tǒng)、電器或任何 其它適當(dāng)類型的電子設(shè)備。
網(wǎng)絡(luò)130可以是任何適當(dāng)網(wǎng)絡(luò)或網(wǎng)絡(luò)的組合,并且可以支持適用 于數(shù)據(jù)和/或代碼到/從計(jì)算機(jī)系統(tǒng)100的通信的任何適當(dāng)協(xié)議。在各種 實(shí)施例中,網(wǎng)絡(luò)130可代表被直接或間接地連接到計(jì)算機(jī)系統(tǒng)100的存 儲(chǔ)設(shè)備或存儲(chǔ)設(shè)備的組合。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)130可支持Infiniband。在另一個(gè)實(shí)施例中,網(wǎng)絡(luò)130可支持無線通信。在另一個(gè) 實(shí)施例中,網(wǎng)絡(luò)130可支持硬連線(hard-wired)通信,例如電話線或 電纜。在另一個(gè)實(shí)施例中,網(wǎng)絡(luò)130可支持以太網(wǎng)IEEE(電氣與電子工 程師協(xié)會(huì))802.3x規(guī)范。在另一個(gè)實(shí)施例中,網(wǎng)絡(luò)130可以是因特網(wǎng), 并且可支持IP(網(wǎng)際協(xié)議)。在另一個(gè)實(shí)施例中,網(wǎng)絡(luò)130可以是局域網(wǎng) (LAN)或廣域網(wǎng)(WAN)。在另一個(gè)實(shí)施例中,網(wǎng)絡(luò)130可以是熱區(qū) (hotspot)服務(wù)提供商網(wǎng)絡(luò)。在另 一個(gè)實(shí)施例中,網(wǎng)絡(luò)130可以是內(nèi)聯(lián)網(wǎng)。 在另 一個(gè)實(shí)施例中,網(wǎng)絡(luò)130可以是GPRS(通用分組無線業(yè)務(wù))網(wǎng)絡(luò)。 在另一個(gè)實(shí)施例中,網(wǎng)絡(luò)130可以是FRS(家庭無線電服務(wù))網(wǎng)絡(luò)。在另 一個(gè)實(shí)施例中,網(wǎng)絡(luò)130可以是任何適當(dāng)?shù)姆涓C數(shù)據(jù)網(wǎng)絡(luò)或基于蜂窩 的無線網(wǎng)絡(luò)技術(shù)。在另一個(gè)實(shí)施例中,網(wǎng)絡(luò)130可以是IEEE 802.11B 無線網(wǎng)絡(luò)。在再一個(gè)實(shí)施例中,網(wǎng)絡(luò)130可以是任何適當(dāng)網(wǎng)絡(luò)或網(wǎng)絡(luò) 的組合。雖然示出了一個(gè)網(wǎng)絡(luò)130,但是在其它實(shí)施例中,可以存在 任何數(shù)量的(相同或不同類型的)網(wǎng)絡(luò)。應(yīng)當(dāng)理解,圖l意圖描述計(jì)算機(jī) 系統(tǒng)100的代表性主要部件和高層的網(wǎng)絡(luò)130,其各個(gè)部件可以具有比 圖l中所表示的部件更大的復(fù)雜度,可以存在不同于或除了圖l中示出 的那些部件之外的部件,并且這樣的部件的數(shù)量、類型和結(jié)構(gòu)可以有 所不同。本文揭示了這樣的額外復(fù)雜度或額外變型的若干特定例子; 應(yīng)當(dāng)理解這些僅僅是舉例來說,而不必是唯一的此類變型。
圖1中所圖解并且實(shí)現(xiàn)本發(fā)明的各種實(shí)施例的各種軟件部件可以
用若干種方式,包含利用此后被稱作"計(jì)算機(jī)程序"或簡稱為"程序" 的各種計(jì)算機(jī)軟件應(yīng)用、例程、部件、程序、對(duì)象、模塊、數(shù)據(jù)結(jié)構(gòu)
等等,來實(shí)現(xiàn)。計(jì)算機(jī)程序通常包括一個(gè)或多個(gè)指令或語句,其在各 種時(shí)間駐留在計(jì)算機(jī)系統(tǒng)100中的各種存儲(chǔ)器和存儲(chǔ)設(shè)備中,并且當(dāng) 由計(jì)算機(jī)系統(tǒng)100中的一個(gè)或多個(gè)處理器讀取并且執(zhí)行時(shí),其使計(jì)算 機(jī)系統(tǒng)100執(zhí)行運(yùn)行包括本發(fā)明的實(shí)施例的不同方面的步驟或單元所 需的步驟。
此外,雖然已經(jīng)并且此后仍將在完全功能的計(jì)算機(jī)系統(tǒng)的情況下 描述了本發(fā)明的實(shí)施例,然而本發(fā)明的各個(gè)實(shí)施例能夠被分布為各種形式的程序產(chǎn)品,并且無論用于實(shí)際執(zhí)行分布的信號(hào)承載介質(zhì)的特定 類型如何,本發(fā)明均同等適用。定義該實(shí)施例的功能的程序可經(jīng)由各
種有形計(jì)算機(jī)可記錄和可讀信號(hào)承栽介質(zhì)被傳送給計(jì)算機(jī)系統(tǒng)IOO, 所述信號(hào)承載介質(zhì)包含但不局限于
(1) 信息永久地存儲(chǔ)在非可重寫存儲(chǔ)介質(zhì)上,例如,附接于計(jì)算 機(jī)系統(tǒng)或在計(jì)算機(jī)系統(tǒng)內(nèi)的只讀存儲(chǔ)器設(shè)備,諸如CD-ROM、DVD-R、 或DVD+R;
(2) 可改變信息存儲(chǔ)在可重寫存儲(chǔ)介質(zhì)上,例如,硬盤驅(qū)動(dòng)器(例 如,DASD 125、 126或127)、 CD國RW、 DVD-RW、 DVD+RW、 DVD-RAM 或磁盤;或者
(3) 信息由通信介質(zhì)傳送,例如通過計(jì)算機(jī)或電話網(wǎng)絡(luò),例如網(wǎng) 絡(luò)13(K
當(dāng)承載指示本發(fā)明的功能的機(jī)器可讀指令時(shí),此類有形信號(hào)承載 介質(zhì)代表本發(fā)明的實(shí)施例。
本發(fā)明的實(shí)施例還可以作為與客戶公司、非營利性組織、政府實(shí) 體、內(nèi)部組織機(jī)構(gòu)等等的服務(wù)約定的一部分來傳送。這些實(shí)施例的各 方面可包含配置計(jì)算機(jī)系統(tǒng)來執(zhí)行,以及采用實(shí)現(xiàn)本文所描述的一些 方法或所有方法的軟件系統(tǒng)和網(wǎng)絡(luò)服務(wù)。這些實(shí)施例的各方面還可以 包含分析客戶公司,根據(jù)分析建立建議,生成軟件以實(shí)現(xiàn)建議的各部 分,將軟件集成到現(xiàn)有的處理和基礎(chǔ)設(shè)施中,計(jì)量本文所描述的方法 和系統(tǒng)的使用,分配費(fèi)用給用戶,以及針對(duì)用戶對(duì)這些方法和系統(tǒng)的 使用對(duì)用戶記費(fèi)。此外,根據(jù)在本發(fā)明的具體實(shí)施例中實(shí)現(xiàn)的應(yīng)用, 可以標(biāo)識(shí)此后所描述的各種程序。但是,使用下述的任何特定程序術(shù) 語僅僅是為了方便,因而本發(fā)明的實(shí)施例不應(yīng)被局限于僅在由這樣的 術(shù)語所標(biāo)識(shí)和/或暗示的任何具體應(yīng)用中的使用。
圖l中所圖解的示例性環(huán)境不意欲限制本發(fā)明。實(shí)際上,在不偏 離本發(fā)明的范圍的情況下可以使用其它可選硬件和/或軟件環(huán)境。
圖2A描述了根據(jù)本發(fā)明的一個(gè)實(shí)施例的服務(wù)器100的示例性集 群202的框閨。集群202還可以被稱作分區(qū)(partition)或組。任意數(shù)量的服務(wù)器100可被組織成集群202,并且任意數(shù)量的集群可以存在。集 群202中的服務(wù)器100可互相發(fā)送請(qǐng)求(經(jīng)由圖1的網(wǎng)絡(luò)130),其每一個(gè) 均使用服務(wù)159。服務(wù)器100中的任何一個(gè)可充當(dāng)客戶端。
圖2B描述了根據(jù)本發(fā)明的一個(gè)實(shí)施例的加入包含服務(wù)器100-1、 100-2、 100-3、 100-4和100-5的集群202-1的示例性新服務(wù)器100-6的框 圖。服務(wù)器100(圖1)通常是指服務(wù)器100-1、 100-2、 100-3、 100-4、 100-5 和100-6。集群202(圖2A)通常是指集群202-1。服務(wù)器100-1、 100-2、 100-3、 100-4、 100-5和100-6經(jīng)由網(wǎng)絡(luò)130被連接。
服務(wù)器100-1是集群202-1中最老的服務(wù)器,這意味著服務(wù)器100-1 已經(jīng)在集群202-l中最久,是集群202-l的最初成員,因而在加入集群 202-1的服務(wù)器100-2、 100-3、 100-4、 100-5和100-6之前加入集群202-1。 最老的服務(wù)器100-1的指定可以隨著服務(wù)器100離開和加入集群202-1 而變化。服務(wù)器100-1、 100-2、 100-3、 100-4和100-5是集群202-1的預(yù) 先存在的成員,這意味著其已經(jīng)連接到網(wǎng)絡(luò)130并且先前已經(jīng)從最老 的服務(wù)器100-1接收到識(shí)別集群202-l中的各種服務(wù)器和可用服務(wù)159 的路由選擇數(shù)據(jù)160。
服務(wù)器100-6是集群202-l中的新服務(wù)器,這意味著其在其它服務(wù) 器100畫1、 100-2、 100-3、 100-4和100-5之后加入集群202-1。響應(yīng)于新 服務(wù)器100-6連接到網(wǎng)絡(luò)130,新服務(wù)器100-6經(jīng)由網(wǎng)絡(luò)103將廣播消息 205發(fā)送給集群202-1,該消息包含識(shí)別新服務(wù)器100-6的記錄,并且包 含有關(guān)新服務(wù)器100-6和新服務(wù)器100-6上可用的服務(wù)159的信息。在廣 播消息發(fā)送(broadcast messaging)中,新服務(wù)器100-6無需必須知道接 收服務(wù)器100-1、 100-2、 100-3、 100-4和100-5的網(wǎng)絡(luò)地址,相同的消 息205就被發(fā)送給集群202-l中的所有服務(wù)器。取而代之,新服務(wù)器 100-6將廣播消息205發(fā)送給集群202-1的地址,而網(wǎng)絡(luò)130將廣播消息 205發(fā)送到集群202-1中的服務(wù)器100-1、 100-2、 100-3、 100-4和100畫5 中的每一個(gè)。廣播消息發(fā)送亦被稱為多播(multi-casting)。
廣播消息205由連接到網(wǎng)絡(luò)130的所有服務(wù)器100-1、 100-2、 100-3、 100-4和100-5接收。響應(yīng)于接收到廣播消息205,最老的服務(wù)器100-1將接收到的記錄添加到其路由選擇數(shù)據(jù)160的拷貝,并且將包含全局 資源數(shù)據(jù)160的點(diǎn)到點(diǎn)消息210發(fā)送給新服務(wù)器100-6,所述全局資源數(shù) 據(jù)160代表集群202-1中的所有服務(wù)器100-1、 100-2、 100-3、 100-4和 100-5。最老的服務(wù)器100-1將點(diǎn)到點(diǎn)消息210唯一地發(fā)送給新服務(wù)器 100-6,這意味著最老的服務(wù)器100-1不將點(diǎn)到點(diǎn)消息210發(fā)送給其它服 務(wù)器100-2、 100-3、 100-4和100-5。點(diǎn)到點(diǎn)消息還被稱作單播消息。響 應(yīng)于接收廣播消息205,服務(wù)器100-2、 100-3、 100-4和100-5將所接收 的記錄添加到其路由選擇數(shù)據(jù)160的相應(yīng)拷貝中,但是因?yàn)樽罾系姆?務(wù)器100-1已經(jīng)用包含代表集群202-l中的所有服務(wù)器的路由選擇數(shù)據(jù) 160的單個(gè)點(diǎn)到點(diǎn)消息210進(jìn)行了響應(yīng),所以不需要將其相應(yīng)的路由選 擇數(shù)據(jù)發(fā)送給新服務(wù)器100-6。
圖3描述了根據(jù)本發(fā)明的一個(gè)實(shí)施例的示例性集群202-2和集群 202-3的合并的框圖。集群202-2包含服務(wù)器100-7、 100-8和100-9。集 群202-3包含服務(wù)器100-10、 100-11和100-12。服務(wù)器100(圖l)通常是 指月艮務(wù)器100國7、 100-8、 100-9、 100-10、 100-11和100國12。集群202(圖 2A)通常是指集群202-2和202-3。在一個(gè)實(shí)施例中,集群202-2和202-3 先前被連接成一個(gè)集群202,但是丟失了其彼此連接,被分開,而現(xiàn) 在被重新連接。作為被斷開的結(jié)果,如下面參照?qǐng)D8進(jìn)一步描述的, 在丟失的集群中的服務(wù)器的記錄被從路由選擇數(shù)據(jù)160中移除。在另 一個(gè)實(shí)施例中,集群202-2和202-3先前未被連接,但是現(xiàn)在正在被連 接。
響應(yīng)于集群202-2中的最老的服務(wù)器100-7檢測(cè)到到集群202-3的 連接(或重新連接),最老的服務(wù)器100-7將廣播消息305發(fā)送給集群 202-3的所有服務(wù)器100-10、 100-11和100-12。雖然集群202-2中的服務(wù) 器100-8和100-9可檢測(cè)到到集群202-3的連接,但是因?yàn)槠洳皇羌?202-2中的最老的服務(wù)器,所以其不發(fā)送廣播消息305。廣播消息305 包含集群202-2中的所有服務(wù)器100-7、 100-8和100-9的路由選擇數(shù)據(jù) 160-2中的所有記錄。
響應(yīng)于接收到廣播消息305,接收服務(wù)器10(M1和100-12將來自廣播消息305的路由選擇數(shù)據(jù)160-2的記錄添加到其路由選擇數(shù)據(jù) 160-3的相應(yīng)拷貝中,但是因?yàn)槠洳皇羌?02-3中的最老的服務(wù)器, 所以其不做應(yīng)答。響應(yīng)于接收到廣播消息305,接收服務(wù)器100-10通過 檢查其路由選擇數(shù)據(jù)160-3的拷貝而確定其為集群202-3中的最老的服 務(wù)器,并且將點(diǎn)到點(diǎn)消息310發(fā)送給集群202-2中的最老的服務(wù)器 100-7。點(diǎn)到點(diǎn)消息310包含集群202-3中的所有服務(wù)器100-10、 100-11 和100-12的路由選擇數(shù)據(jù)160-3中的所有記錄。
響應(yīng)于接收到點(diǎn)到點(diǎn)消息310,最老的服務(wù)器100-7隨后將廣播消 息315發(fā)送給集群202-2中的服務(wù)器100-8和100-9,該消息包含來自所 接收的路由選擇數(shù)據(jù)160-3的記錄。集群202-2中的接收服務(wù)器100-8和 100-9將來自所接收的路由選擇數(shù)據(jù)160-3的記錄添加到其路由選擇數(shù) 據(jù)160-2的拷貝中。然后,集群202-2中的最老的服務(wù)器100-7將來自所 接收的路由選擇數(shù)據(jù)160-3的記錄添加到其路由選擇數(shù)據(jù)160-2的拷貝 中?,F(xiàn)在集群202-2和202-3被合并成單個(gè)集群,并且如合并后的路由 選擇數(shù)據(jù)160-2和160-3中表明的那樣,新的單個(gè)集群中的最老的服務(wù) 器是服務(wù)器100-7和100-11中較老的服務(wù)器。
圖4描述了根據(jù)本發(fā)明的一個(gè)實(shí)施例的路由選擇數(shù)據(jù)160的示例 性數(shù)據(jù)結(jié)構(gòu)的框圖。路由選擇數(shù)據(jù)160包含記錄405、 410和415,但是 在其它實(shí)施例中,可能存在具有任何適當(dāng)數(shù)據(jù)的任意數(shù)量的記錄。記 錄405、 410和415中的每一個(gè)包含服務(wù)器標(biāo)識(shí)字段420、資源數(shù)據(jù)字段 425和時(shí)間戳字段430,但是在其它實(shí)施例中可能存在更多或更少的字 段。
服務(wù)器標(biāo)識(shí)字段420標(biāo)識(shí)與記錄相關(guān)的服務(wù)器100。在各種實(shí)施例 中,服務(wù)器標(biāo)識(shí)字段420可包含網(wǎng)絡(luò)地址、IP(網(wǎng)際協(xié)i義)地址、MAC 地址(媒體訪問控制)地址、或者能夠用于訪問或發(fā)送消息、請(qǐng)求或數(shù) 據(jù)給服務(wù)器100的任何其它類型的標(biāo)識(shí)符。
在各種實(shí)施例中,資源數(shù)據(jù)425可包含服務(wù)器100上的資源或服務(wù) 159的資源標(biāo)識(shí)符、服務(wù)器100上的資源或服務(wù)159的狀態(tài)、服務(wù)159的 內(nèi)容、服務(wù)159上的待處理請(qǐng)求的數(shù)量或類型、服務(wù)器100上的處理器101的CPU利用率、服務(wù)器100的存儲(chǔ)器使用、和端點(diǎn)。但是,在其它 實(shí)施例中,資源數(shù)據(jù)425可包含其它服務(wù)器可能希望接收的任何適當(dāng) 數(shù)據(jù)。
時(shí)間戳字段430標(biāo)識(shí)相關(guān)服務(wù)器420加入集群的時(shí)間。服務(wù)器420 加入集群的時(shí)間可能是服務(wù)器420連接到網(wǎng)絡(luò)的時(shí)間,或者服務(wù)器420 發(fā)送廣播消息205的時(shí)間。因而,在圖4的例子中,因?yàn)橛涗?05具有 最早的時(shí)間戳430,所以記錄405標(biāo)識(shí)了集群中的最老的服務(wù)器。
圖5描述了根據(jù)本發(fā)明的一個(gè)實(shí)施例的新服務(wù)器加入集群的示例 性處理的流程圖??刂茝哪K500開始。然后,控制前進(jìn)到模塊505, 其中新服務(wù)器100-6連接到網(wǎng)絡(luò)130,并且確定集群202-l的地址。然后 控制繼續(xù)到模塊510,其中新服務(wù)器100-6上的控制器158利用標(biāo)識(shí)新服 務(wù)器100-6的服務(wù)器標(biāo)識(shí)420,利用有關(guān)新服務(wù)器100-6上可用的服務(wù) 159的資源數(shù)據(jù)425 ,以及標(biāo)識(shí)當(dāng)前時(shí)間(可能包含日期)的時(shí)間戳430 , 建立記錄。
接著控制繼續(xù)到模塊515,其中新服務(wù)器100-6上的控制器158經(jīng) 由網(wǎng)絡(luò)130中的集群202-l的已確定的地址,將包含所建立的記錄的廣 播消息205發(fā)送給集群202-l中的所有服務(wù)器100。然后,控制繼續(xù)到模 塊520,如下面參照?qǐng)D7進(jìn)一步描述的,其中集群202-l中的服務(wù)器100 接收并且處理廣播消息205。
然后,控制繼續(xù)到模塊525,其中新服務(wù)器100-6上的控制器158 接收具有路由選擇數(shù)據(jù)160的點(diǎn)到點(diǎn)消息210,路由選擇數(shù)據(jù)160包含 集群202-l中的所有服務(wù)器100的記錄。點(diǎn)到點(diǎn)消息由集群202-1中的最 老的服務(wù)器100-1發(fā)送,并且被唯一地發(fā)送給新服務(wù)器100-6,而非發(fā) 送給集群202-l中的其它服務(wù)器100-2、 100-3、 100-4和100-5。
然后,控制繼續(xù)到模塊530,其中新服務(wù)器100-6上的控制器158 通過路由選擇數(shù)據(jù)160,將請(qǐng)求發(fā)送給網(wǎng)絡(luò)130的集群202-1中的其它服 務(wù)器上的服務(wù)159??刂破?58可使用路由選擇數(shù)據(jù)160來尋找資源數(shù) 據(jù)425中的適當(dāng)服務(wù),并且確定與期望的適當(dāng)服務(wù)器相關(guān)的服務(wù)器標(biāo) 識(shí)符420,然后將請(qǐng)求發(fā)送給所確定的服務(wù)器標(biāo)識(shí)符420。這樣,控制器158通過所接收的路由選擇數(shù)據(jù)160,向集群202中的 一個(gè)或多個(gè)服 務(wù)器100請(qǐng)求一個(gè)或多個(gè)服務(wù)159。然后,控制繼續(xù)到模塊599,其中 圖5的邏輯返回。
圖6描述了根據(jù)本發(fā)明的 一個(gè)實(shí)施例的連接服務(wù)器的集群的示例 性處理的流程圖??刂茝哪K600開始。然后,控制繼續(xù)到模塊605, 其中集群202-2中的服務(wù)器100上的控制器158連接到集群202-3。然后, 控制繼續(xù)到模塊610,其中服務(wù)器100上的控制器158確定服務(wù)器100是 否是集群202-2中的最老的服務(wù)器100-7,即控制器158通過確定連接到 集群202-3的服務(wù)器100的時(shí)間430是否在路由選擇數(shù)據(jù)160-2中的所有 其它服務(wù)器的時(shí)間430之前或比其早,來確定服務(wù)器100是否在集群 202-2中的所有其它服務(wù)器之前加入集群202-2。
如果模塊610處的確定是真,則連接到集群202-3的服務(wù)器100的 確在集群202-2中的所有其它服務(wù)器之前加入集群202-2,并且是集群 202-2中的最老的服務(wù)器100-7,這樣控制繼續(xù)到模塊615,其中最老的 服務(wù)器100-7上的控制器158將廣播消息305發(fā)送給集群202-3。廣播消 息305包含集群202-2中的所有服務(wù)器100-7、 100-8和100-9的路由選擇 數(shù)據(jù)160-2中的所有記錄。
然后,控制繼續(xù)到模塊620,其中如下面參考圖7進(jìn)一步描述的, 集群202-3中的服務(wù)器處理廣播消息305。然后,控制繼續(xù)到模塊625, 其中集群202-2中的最老的服務(wù)器100-7上的控制器158從集群202-3中 的最老的服務(wù)器100-10接收點(diǎn)到點(diǎn)消息310,點(diǎn)到點(diǎn)消息310包含集群 202-3中的所有服務(wù)器100-10、 100-11和100-12的路由選擇數(shù)據(jù)160-3 中的所有記錄。
然后,控制繼續(xù)到模塊630,其中集群202-2中的最老的服務(wù)器 100-7上的控制器158將廣播消息315發(fā)送給集群202-2中的所有服務(wù)器 100-8和100-9。廣播消息315包含集群202-3中的所有服務(wù)器100-10、 100-11和100-12的路由選擇數(shù)據(jù)160-3中的所有記錄。然后,控制繼續(xù) 到模塊635,其中集群202-2中的服務(wù)器接收廣播消息,合并其路由選 擇數(shù)據(jù)160-3和160-2的拷貝,并且如下面參照?qǐng)D7進(jìn)一步描述的,通過合并后的路由選擇數(shù)據(jù),將請(qǐng)求發(fā)送給集群202-2和202-3中的服務(wù)器。 然后,控制繼續(xù)到模塊640,其中集群202-2中的最老的服務(wù)器100-7 上的控制器158合并其路由選擇數(shù)據(jù)160-3和160-2的拷貝,并且通過合 并后的路由選擇數(shù)據(jù),將請(qǐng)求發(fā)送給集群202-2和202-3中的服務(wù)器。 然后,控制繼續(xù)到模塊699,其中圖6的邏輯返回。
如果模塊610處的確定是假,則連接到集群202-3的集群202-2中 的服務(wù)器IOO未在集群202-2中的所有其它服務(wù)器之前加入集群202-2 , 所以連接到集群202-3的服務(wù)器100是服務(wù)器100-8或100-9,這樣控制 繼續(xù)到模塊699,其中圖6的邏輯返回,
圖7描述了根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于處理廣播消息的接收 的服務(wù)器上的示例性處理的流程圖??刂茝哪K700開始。然后,控 制繼續(xù)到模塊705,其中接收服務(wù)器上的控制器158從發(fā)起服務(wù)器(發(fā)送 廣播消息的服務(wù)器)接收廣播消息(例如,廣播消息205、 305或315)。 所接收的廣播消息包含一個(gè)或多個(gè)記錄405、 410或415,其與發(fā)起服 務(wù)器有關(guān),或者其與集群202中的所有服務(wù)器有關(guān)。
然后,控制繼續(xù)到模塊710,其中控制器158確定接收服務(wù)器是否 是路由選擇數(shù)據(jù)160的本地拷貝中的最老的服務(wù)器??刂破?58通過比 較與接收服務(wù)器相關(guān)的路由選擇數(shù)據(jù)160的記錄中的時(shí)間戳430與路 由選擇數(shù)據(jù)160中的其它記錄的時(shí)間戳430 ,并且確定接收服務(wù)器加入 集群202的時(shí)間430是否早于其它服務(wù)器加入集群202的時(shí)間"0來做 出確定。
如果接收服務(wù)器的時(shí)間戳430是集群202的路由選擇數(shù)據(jù)160中的 最早時(shí)間(在所有其它時(shí)間之前),則接收服務(wù)器是集群202中的最老的 服務(wù)器(例如,服務(wù)器100-1、100-7或100-10),這樣控制繼續(xù)到模塊715, 其中接收服務(wù)器上的控制器158從集群202中的所有服務(wù)器的路由選 擇數(shù)據(jù)160的其本地拷貝中取回記錄,將取回的記錄添加到點(diǎn)到點(diǎn)消 息,并且將該點(diǎn)到點(diǎn)消息(例如,點(diǎn)到點(diǎn)消息210或310)發(fā)送到發(fā)起廣 播消息的服務(wù)器(例如服務(wù)器100-6或100-7)。
然后,控制繼續(xù)到模塊720,其中接收服務(wù)器上的控制器158計(jì)算差值=(tl +t3)/2-t2,其中 t2-廣播消息的到達(dá)時(shí)間;
tl =與發(fā)起服務(wù)器相關(guān)的廣播消息中的所接收的記錄中的時(shí)間 戳430,其為廣播消息的發(fā)起服務(wù)器加入集群202的時(shí)間;以及
t3 =接收服務(wù)器將點(diǎn)到點(diǎn)消息發(fā)送給發(fā)起服務(wù)器的時(shí)間(上面參 照模塊715已經(jīng)描述的)。
然后,控制繼續(xù)到模塊725,其中接收服務(wù)器上的控制器158將計(jì) 算的差值添加到與發(fā)起廣播消息的服務(wù)器相關(guān)的所接收的記錄中的 時(shí)間戳430。這樣,接收服務(wù)器上的控制器158通過所計(jì)算的差值調(diào)整 發(fā)起服務(wù)器加入集群202的時(shí)間,來說明發(fā)起服務(wù)器決定加入集群的 時(shí)間與集群202中的最老的服務(wù)器實(shí)現(xiàn)發(fā)起服務(wù)器加入集群202的時(shí) 間之間的延遲。
然后,控制繼續(xù)到模塊730,其中接收服務(wù)器上的控制器158累加 來回行程的定時(shí)數(shù)據(jù),并且利用多種活動(dòng)調(diào)整該計(jì)算數(shù)據(jù)。
然后,控制繼續(xù)到模塊735,其中接收服務(wù)器上的控制器158將廣 播消息中的所接收的記錄添加到路由選擇數(shù)據(jù)160,并且基于時(shí)間戳 430,將路由選擇數(shù)據(jù)160中的記錄排序。
然后,控制繼續(xù)到模塊740,其中接收服務(wù)器上的控制器158尋找 資源數(shù)據(jù)425中所標(biāo)識(shí)的適當(dāng)服務(wù)159,并且通過相關(guān)的服務(wù)器標(biāo)識(shí)符 420,將請(qǐng)求發(fā)送給集群202中的服務(wù)器100上的服務(wù)159。
如果模塊710上的確定為假,則接收服務(wù)器不是路由選擇數(shù)據(jù)160 的本地拷貝中的最老的服務(wù)器(即,接收服務(wù)器在比集群202中的其它 服務(wù)器100更早的時(shí)間沒有加入集群202),這樣如上面已經(jīng)描述的,控 制繼續(xù)到模塊735。
圖8描述了根據(jù)本發(fā)明的一個(gè)實(shí)施例的響應(yīng)于服務(wù)器離開網(wǎng)絡(luò) 130的示例性處理的流程圖??刂茝哪K800開始。然后,控制繼續(xù)到 模塊80S,其中控制器158確定服務(wù)器100是否已經(jīng)離開集群202,例如, 離開網(wǎng)絡(luò)130的服務(wù)器100是否已經(jīng)遇到錯(cuò)誤,或者已經(jīng)變得不可到 達(dá)。如果模塊805上的確定為真,則服務(wù)器100已經(jīng)離開集群202,服務(wù)器100已經(jīng)離開網(wǎng)絡(luò)130,服務(wù)器100已經(jīng)遇到錯(cuò)誤,或者服務(wù)器IOO 不可到達(dá),這樣控制繼續(xù)到模塊810,其中控制器158從與模塊805處 確定的服務(wù)器100相關(guān)的路由選擇數(shù)據(jù)160中,通過服務(wù)器標(biāo)識(shí)符字段 420尋找記錄,并且從路由選擇數(shù)據(jù)160中移除記錄。然后,控制繼續(xù) 到模塊899,其中圖8的邏輯返回。
如果模塊805處的確定為假,則控制繼續(xù)到模塊899,其中圖8的 邏輯返回,
在本發(fā)明的示例性實(shí)施例的前面詳細(xì)描述中,對(duì)形成本文中的部 分的附圖(其中類似編號(hào)代表類似單元)進(jìn)行參考,并且在所述附圖中 通過圖解示出了可以實(shí)施本發(fā)明的特定示例性實(shí)施例。這些實(shí)施例被 足夠詳細(xì)地描述,以使得本領(lǐng)域技術(shù)人員能夠?qū)嵺`本發(fā)明,但是可以 使用其它實(shí)施例,并且在不偏離本發(fā)明的范圍的情況下,可以做出邏 輯、機(jī)械、電氣以及其它改變。如該說明書內(nèi)使用的詞語"實(shí)施例"的 不同實(shí)例不必是指相同的實(shí)施例,但是其可以是指相同的實(shí)施例。本 文所圖解或描述的任何數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)僅僅為例子,并且在其它實(shí)施 例中,可以使用不同數(shù)量的數(shù)據(jù)、數(shù)據(jù)的類型、字段、字段的數(shù)量和 類型、字段名、記錄的數(shù)量和類型、條目、或者數(shù)據(jù)的組織。此外, 任何數(shù)據(jù)可以與邏輯相結(jié)合,使得單獨(dú)的數(shù)據(jù)結(jié)構(gòu)是不必的。因此, 前面的詳細(xì)描述不會(huì)被認(rèn)為是限制的意思,并且本發(fā)明的范圍僅僅由 所附權(quán)利要求書所限定。
在前面的描迷中,提出了多個(gè)具體細(xì)節(jié)來提供對(duì)本發(fā)明的透徹了 解。但是,沒有這些細(xì)節(jié)也可以實(shí)施本發(fā)明。在其它實(shí)例中,為了不 遮蔽本發(fā)明,未詳細(xì)地示出眾所周知的電路、結(jié)構(gòu)和技術(shù)。
權(quán)利要求
1.一種在多個(gè)服務(wù)器的集群中的接收服務(wù)器處執(zhí)行的方法,包括從新服務(wù)器接收廣播消息,其中所述新服務(wù)器將所述廣播消息發(fā)送給所述多個(gè)服務(wù)器的集群;確定所述接收服務(wù)器是否在所述集群中的多個(gè)服務(wù)器中的所有其它服務(wù)器之前加入所述集群;以及如果所述確定為真,則將點(diǎn)到點(diǎn)消息發(fā)送給所述新服務(wù)器,其中所述點(diǎn)到點(diǎn)消息包括有關(guān)所述集群中的多個(gè)服務(wù)器中的全部服務(wù)器的路由選擇數(shù)據(jù)。
2. 如權(quán)利要求l所述的方法,其中所述廣播消息包括 包括所述新服務(wù)器的標(biāo)識(shí)、有關(guān)所述新服務(wù)器的資源數(shù)據(jù)和所述新服務(wù)器加入所迷集群的時(shí)間的記錄。
3. 如權(quán)利要求2所述的方法,還包括 將所述記錄添加到所述路由選擇數(shù)據(jù)中。
4. 如權(quán)利要求3所述的方法,還包括 通過所述記錄,將請(qǐng)求發(fā)送給所述新服務(wù)器。
5. 如權(quán)利要求l所述的方法,其中所述路由選擇數(shù)據(jù)包括與所述多個(gè)服務(wù)器相關(guān)的多個(gè)記錄,其中所述多個(gè)記錄中的每一 個(gè)包括相應(yīng)服務(wù)器的標(biāo)識(shí)、由相應(yīng)服務(wù)器提供的資源和相應(yīng)服務(wù)器加 入所述集群的時(shí)間,其中所述接收服務(wù)器基于多個(gè)記錄中的時(shí)間執(zhí)行 所述確定。
6. 如權(quán)利要求5所述的方法,還包括如果所述多個(gè)服務(wù)器中的一個(gè)服務(wù)器離開所述集群,則將與離開 所述集群的所述一個(gè)服務(wù)器相關(guān)的記錄從所述路由選擇數(shù)據(jù)中移除。
7. 如權(quán)利要求l所述的方法,其中所述發(fā)送點(diǎn)到點(diǎn)消息還包括 將所述點(diǎn)到點(diǎn)消息唯一地發(fā)送給所述新服務(wù)器。
8. 如權(quán)利要求2所述的方法,還包括如果所述確定為假,則將所述記錄添加到所述路由選擇數(shù)據(jù)。
9. 一種在想要加入服務(wù)器集群的新服務(wù)器處執(zhí)行的方法,包括 將廣播消息發(fā)送給經(jīng)由網(wǎng)絡(luò)連接的所迷服務(wù)器集群;以及 從第 一多個(gè)服務(wù)器的第 一 集群的協(xié)調(diào)服務(wù)器接收點(diǎn)到點(diǎn)消息,其中所述協(xié)調(diào)服務(wù)器在所述第一多個(gè)服務(wù)器中的所有其它服務(wù)器之前 加入所述第一集群,并且其中,所述點(diǎn)到點(diǎn)消息包括有關(guān)所述第一集 群中的所述第一多個(gè)服務(wù)器中的全部服務(wù)器的路由選擇數(shù)據(jù),并且其 中,所述新服務(wù)器唯一地接收所述點(diǎn)到點(diǎn)消息。
10. 如權(quán)利要求9所述的方法,其中所述路由選擇數(shù)據(jù)包括所 述集群中的所有服務(wù)器的標(biāo)識(shí)、由所述集群中的所有服務(wù)器提供的資源以及所述服務(wù)器中的每一個(gè)加入所述集群的時(shí)間。
11. 如權(quán)利要求10所述的方法,還包括通過所述路由選擇數(shù)據(jù),將請(qǐng)求發(fā)送給所迷服務(wù)器中的一個(gè)服務(wù) 器上的至少一個(gè)資源。
12. 如權(quán)利要求9所述的方法,還包括將時(shí)間存儲(chǔ)在所述廣播消息中,其中所述時(shí)間包括所述新服務(wù)器 加入所述集群的時(shí)間。
13. 如權(quán)利要求9所述的方法,還包括將所述新服務(wù)器的標(biāo)識(shí)和資源數(shù)據(jù)存儲(chǔ)在所述廣播消息中,其中 所述資源數(shù)據(jù)描述在所述新服務(wù)器處可用的至少一個(gè)服務(wù)。
14. 一種系統(tǒng),所述系統(tǒng)包括適合于執(zhí)行根據(jù)任何一個(gè)前述方法 權(quán)利要求所述的方法的所有步驟的裝置。
15. —種計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括用于在所述計(jì)算機(jī)程 序在計(jì)算機(jī)系統(tǒng)上執(zhí)行時(shí)執(zhí)行根據(jù)任何一個(gè)前述方法權(quán)利要求所述 的方法的所有步驟的指令。
全文摘要
提供了一種方法、裝置、系統(tǒng)和信號(hào)承載介質(zhì),在一個(gè)實(shí)施例中,其用于將廣播消息發(fā)送到服務(wù)器集群并從集群的協(xié)調(diào)服務(wù)器接收點(diǎn)到點(diǎn)消息,其中協(xié)調(diào)服務(wù)器在集群中的所有其它服務(wù)器之前加入集群。點(diǎn)到點(diǎn)消息包含有關(guān)集群中的所有服務(wù)器的路由選擇數(shù)據(jù)。在一個(gè)實(shí)施例中,廣播消息包含含有新服務(wù)器的標(biāo)識(shí)、有關(guān)新服務(wù)器的資源數(shù)據(jù)和新服務(wù)器加入集群的時(shí)間的記錄,并且集群中的服務(wù)器將該記錄添加到路由選擇數(shù)據(jù),并且通過記錄將請(qǐng)求發(fā)送給新服務(wù)器。在另一個(gè)實(shí)施例中,廣播消息包含第二個(gè)集群中的所有服務(wù)器的記錄,并且新服務(wù)器將路由選擇數(shù)據(jù)發(fā)送給第二集群中的服務(wù)器。如果服務(wù)器離開集群,則其記錄被移除。這樣,集群可響應(yīng)動(dòng)態(tài)地加入和離開集群的服務(wù)器,同時(shí)降低網(wǎng)絡(luò)業(yè)務(wù)量。
文檔編號(hào)H04L12/56GK101300796SQ200680041285
公開日2008年11月5日 申請(qǐng)日期2006年10月26日 優(yōu)先權(quán)日2005年11月17日
發(fā)明者K·W·薩特, P·J·戴克斯, W·紐波特, 沈金梅, 浩 王 申請(qǐng)人:國際商業(yè)機(jī)器公司