欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于相似性管理的方法和系統(tǒng)的制作方法

文檔序號:6655239閱讀:243來源:國知局
專利名稱:用于相似性管理的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及相似性(affinity)管理的領(lǐng)域。特別地,本發(fā)明涉及包含消息通知(messaging)系統(tǒng)的分布式計(jì)算機(jī)系統(tǒng)中的相似性管理。
背景技術(shù)
在希望以類似的方式處理多個(gè)實(shí)體的情形下需要相似性管理??梢栽诜植际接?jì)算機(jī)系統(tǒng)中的WebSphere MQ(WebSphere和MQ是國際商業(yè)機(jī)器公司的商標(biāo))消息通知環(huán)境下提供這樣的相似性的實(shí)例。可以發(fā)送這樣的消息組,其中不傳送這種組中的任何成員直到所有成員已經(jīng)到達(dá)為止。然而,如果將組的每個(gè)成員傳送到不同的隊(duì)列管理器,則由于在隊(duì)列管理器見到所有的組成員之前將不傳送,所以其結(jié)果是不會傳送組成員。在這種情況下,需要利用相似性對待組的成員以保證將它們?nèi)堪l(fā)送到相同的隊(duì)列管理器。
相似性必要性的另一實(shí)例為是否存在兩個(gè)應(yīng)用程序,它們依賴于以問題和回答的形式在它們之間流動的一系列消息。所有的回答被送回到相同的隊(duì)列管理器可能是重要的。非常重要的是工作負(fù)載管理進(jìn)程不將消息發(fā)送到碰巧掌控(host)正確隊(duì)列的副本的任何隊(duì)列管理器。類似地,可能存在要求按順序處理的消息的應(yīng)用程序,例如,發(fā)送必須按順序檢索的多批消息的文件傳送應(yīng)用程序或數(shù)據(jù)庫復(fù)制應(yīng)用程序。
在簇隊(duì)列管理器中,可以將消息路由到掌控合適的隊(duì)列的實(shí)例(instance)任何隊(duì)列管理器。必須檢查應(yīng)用程序來了解是否存在諸如需要交換相關(guān)的消息之類的消息相似性的程序。如果將消息路由到不同的隊(duì)列管理器,則具有消息相似性的應(yīng)用程序的邏輯可能會混亂。
通過改變應(yīng)用程序打開隊(duì)列的方式(例如,在MQQPEN調(diào)用上的BIND_ON_OPEN選項(xiàng))可以處理在消息通知系統(tǒng)中的相似性管理。然而,這具有假設(shè)應(yīng)用程序理解消息相似性的發(fā)出的缺點(diǎn)。
在WebSphere MQ消息通知系統(tǒng)的上下文中描述本發(fā)明的實(shí)施例。特別地,在簇隊(duì)列管理器的環(huán)境中。然而,本發(fā)明也可以應(yīng)用到諸如其中許多相關(guān)的客戶應(yīng)用程序希望使用網(wǎng)絡(luò)服務(wù)的相同實(shí)例的網(wǎng)絡(luò)服務(wù)之類的其它分布式計(jì)算系統(tǒng)的很廣的范圍中。另一實(shí)例是WebSphere Edge Server系統(tǒng)。
本發(fā)明可以應(yīng)用到必須由尋址實(shí)體組保持相似性使得組中的每個(gè)成員被指向相同的服務(wù)實(shí)例的任何情形中。在WebSphere MQ的環(huán)境中,消息組可以保持相似性,并且將其都發(fā)送到相同的隊(duì)列管理器。
可以保持由尋址實(shí)體進(jìn)行的事務(wù)的目的地的歷史,來確保如果在尋址實(shí)體之間存在相似性,則可以選擇相同的目的地。然而,在高容量事務(wù)系統(tǒng)中,保持指示已經(jīng)發(fā)送了每個(gè)事務(wù)的歷史通常是不實(shí)際或不有效的。

發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,提供用于分布式計(jì)算機(jī)系統(tǒng)中的相似性管理的方法,該方法包括為多個(gè)尋址實(shí)體中的每一個(gè)提供標(biāo)識符,其中具有相似性的尋址實(shí)體的組的每個(gè)成員的標(biāo)識符是相同的組標(biāo)識符;確定可由尋址實(shí)體利用來尋址以提供服務(wù)的實(shí)例的服務(wù)提供器的數(shù)量;通過下面的方法管理尋址實(shí)體到服務(wù)提供器的分布將散列(hash)函數(shù)應(yīng)用到尋址實(shí)體的標(biāo)識符來獲得標(biāo)準(zhǔn)整數(shù);將標(biāo)準(zhǔn)整數(shù)除以服務(wù)提供器的數(shù)量并獲得模數(shù);通過參照模數(shù)選擇服務(wù)提供器;將尋址實(shí)體發(fā)送到所選擇的服務(wù)提供器提供的服務(wù)的實(shí)例。
可以周期地執(zhí)行用于確定服務(wù)提供器的數(shù)量的步驟,并且在一個(gè)時(shí)間段內(nèi)服務(wù)提供器的數(shù)量是恒定的。即使服務(wù)提供器是動態(tài)的,并且在該周期加入或離開,服務(wù)提供器的數(shù)量也保持恒定。
該方法還可以包括提供由模數(shù)值參考的可用服務(wù)提供器的索引。例如,對于6個(gè)可用的服務(wù)提供器,模數(shù)值將為0到5,并且每個(gè)模數(shù)值可以提供服務(wù)提供器之一的索引。
如果所選擇的服務(wù)提供器不可用,則可以以預(yù)定順序?qū)ぶ穼?shí)體發(fā)送到下一服務(wù)提供器。如果服務(wù)提供器出故障,則可以激活處理來檢索先前傳送的尋址實(shí)體。如果服務(wù)提供器出故障,則可以在確保在另一服務(wù)提供器中沒有具有組相似性的尋址實(shí)體后恢復(fù)它。此外,如果服務(wù)提供器出故障,則可以重新分布發(fā)送到服務(wù)提供器的尋址實(shí)體。
在一個(gè)實(shí)施例中,分布式計(jì)算系統(tǒng)可以是尋址實(shí)體是消息而服務(wù)提供器是掌控一個(gè)或多個(gè)簇隊(duì)列的實(shí)例的簇隊(duì)列管理器的消息通知系統(tǒng)。組標(biāo)識符可以是通用唯一標(biāo)識符(UUID)的形式。
在另外的實(shí)施例中,尋址實(shí)體可以是客戶應(yīng)用程序,并且服務(wù)提供器可以是掌控服務(wù)的實(shí)例的網(wǎng)絡(luò)服務(wù)。
根據(jù)本發(fā)明的第二方面,提供用于分布式計(jì)算機(jī)系統(tǒng)中的相似性管理的系統(tǒng),該系統(tǒng)包括每一個(gè)具有標(biāo)識符的多個(gè)尋址實(shí)體,其中具有相似性的尋址實(shí)體的組的每個(gè)成員的標(biāo)識符是相同的組標(biāo)識符;可由尋址實(shí)體利用來尋址以提供服務(wù)的實(shí)例的多個(gè)服務(wù)提供器的列表;通過使用具有下列步驟的算法用于管理尋址實(shí)體到服務(wù)提供器的分布的裝置將散列函數(shù)應(yīng)用到尋址實(shí)體的標(biāo)識符來獲得標(biāo)準(zhǔn)整數(shù);將標(biāo)準(zhǔn)整數(shù)除以列表中的服務(wù)提供器的數(shù)量并獲得模數(shù);通過參照模數(shù)選擇服務(wù)提供器;和用于將尋址實(shí)體發(fā)送到所選擇的服務(wù)提供器提供的服務(wù)的實(shí)例的裝置。
可以周期地更新服務(wù)提供器的列表,并且在該周期內(nèi)列表上的服務(wù)提供器的數(shù)量是恒定的??梢蕴峁┮环N裝置來提示列表中給出的服務(wù)提供器的工作負(fù)載管理器。該系統(tǒng)可以包括由模數(shù)值參照的列表中的服務(wù)提供器的索引。
如果所選擇的服務(wù)提供器不可用,則工作負(fù)載管理器可以以預(yù)定順序?qū)ぶ穼?shí)體發(fā)送到下一服務(wù)提供器。如果服務(wù)提供器出故障,則可以提供裝置來檢索先前傳送的尋址實(shí)體。如果服務(wù)提供器出故障,則可以在恢復(fù)故障的服務(wù)提供器之前,確保在另一服務(wù)提供器中沒有具有組相似性的尋址實(shí)體。此外,如果服務(wù)提供器出故障,則可以提供裝置來重新分布發(fā)送到服務(wù)提供器的尋址實(shí)體。
在一個(gè)實(shí)施例中,分布式計(jì)算系統(tǒng)可以是尋址實(shí)體是消息而服務(wù)提供器是掌控一個(gè)或多個(gè)簇隊(duì)列的實(shí)例的簇隊(duì)列管理器的消息通知系統(tǒng)。組標(biāo)識符可以是通用唯一標(biāo)識符(UUID)的形式。
在另外的實(shí)施例中,尋址實(shí)體可以是客戶應(yīng)用程序,并且服務(wù)提供器可以是掌控服務(wù)的實(shí)例的網(wǎng)絡(luò)服務(wù)。
根據(jù)本發(fā)明的第三方面,提供存儲在計(jì)算機(jī)可讀存儲介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品,其包括計(jì)算機(jī)可讀程序代碼方法,用于執(zhí)行步驟為多個(gè)尋址實(shí)體中的每一個(gè)提供標(biāo)識符,其中具有相似性的尋址實(shí)體的組的每個(gè)成員的標(biāo)識符是相同的組標(biāo)識符;確定可由尋址實(shí)體利用來尋址以提供服務(wù)的實(shí)例的服務(wù)提供器的數(shù)量;通過下面的方法管理尋址實(shí)體到服務(wù)提供器的分布將散列(hash)函數(shù)應(yīng)用到尋址實(shí)體的標(biāo)識符來獲得標(biāo)準(zhǔn)整數(shù);將標(biāo)準(zhǔn)整數(shù)除以服務(wù)提供器的數(shù)量并獲得模數(shù);通過參照模數(shù)選擇服務(wù)提供器;將尋址實(shí)體發(fā)送到所選擇的服務(wù)提供器提供的服務(wù)的實(shí)例。


參照附圖,僅通過示例的方式描述本發(fā)明的實(shí)施例,其中圖1是根據(jù)本發(fā)明的分布式計(jì)算系統(tǒng)的方框圖;圖2是根據(jù)本發(fā)明的方法的流程圖;和圖3是根據(jù)具有簇隊(duì)列管理器的本發(fā)明實(shí)施例的消息通知系統(tǒng)的方框圖。
具體實(shí)施例方式
圖1是分布式計(jì)算系統(tǒng)100的示意圖。該系統(tǒng)100被用于概括地說明其中需要可以由所述相似性管理方法提供的相似性管理的布置。這可以應(yīng)用到不同架構(gòu)的很大范圍中。描述WebSphere MQ消息通知系統(tǒng)的形式的一個(gè)實(shí)施例。
在分布式計(jì)算系統(tǒng)100中的多個(gè)尋址實(shí)體102可以尋址提供相同服務(wù)的一個(gè)以上的服務(wù)提供器104。經(jīng)由提供通信基本架構(gòu)的一個(gè)或多個(gè)網(wǎng)絡(luò)106進(jìn)行系統(tǒng)100中的通信。
術(shù)語尋址實(shí)體被用作包含尋址服務(wù)提供器104的任何裝置的一般術(shù)語。例如,尋址實(shí)體可以是客戶應(yīng)用程序,也可以是消息通知系統(tǒng)中的消息。
可以將多個(gè)尋址實(shí)體102以某種方式相關(guān)來形成組108,該組的成員具有相似性。組108的成員必須通過尋址來自可用的服務(wù)提供器104的服務(wù)的相同實(shí)例,保持它們的相似性。
也使用術(shù)語服務(wù)提供器104的一般含義。多個(gè)服務(wù)提供器104將相同服務(wù)的實(shí)例提供到尋址實(shí)體102,使得可以由尋址實(shí)體102均等地選擇多個(gè)服務(wù)提供器104中的任意一個(gè)。在下面描述的消息通知系統(tǒng)的實(shí)施例中,服務(wù)提供器104是隊(duì)列管理器,并且多個(gè)隊(duì)列管理器可以掌控消息所尋址的隊(duì)列的實(shí)例。在網(wǎng)絡(luò)服務(wù)環(huán)境中,多個(gè)服務(wù)提供器104中每一個(gè)都可以掌控要被客戶應(yīng)用程序?qū)ぶ返姆?wù)的實(shí)例。
在所描述的相似性管理的方法中,首先確定在特定時(shí)間上哪些服務(wù)提供器正在參加組分布。即,可以由尋址實(shí)體均等地選擇服務(wù)提供器來執(zhí)行服務(wù)。參加的服務(wù)提供器的列表在直到修改列表時(shí)之前的時(shí)期是靜態(tài)的。該時(shí)期可以是被規(guī)則更新的周期,也可以是不規(guī)則周期,例如由列表上繼續(xù)可用的服務(wù)提供器的數(shù)量確定的時(shí)期。
如果在已經(jīng)確定了列表之后服務(wù)提供器變?yōu)榭捎?,則在修改列表之前將不添加服務(wù)提供器。類似地,如果在列表中給出了服務(wù)提供器,但是停止為可用,則服務(wù)提供器保持在列表上直到修改列表為止。在其中將尋址實(shí)體發(fā)送到不再可用的服務(wù)提供器的這樣的實(shí)例中使用在下面描述的故障轉(zhuǎn)移(failover)機(jī)構(gòu)。
從服務(wù)提供器的列表計(jì)數(shù)在該時(shí)期中列表上的服務(wù)提供器的數(shù)量。該數(shù)量用在選擇和平衡算法來選擇在該時(shí)期期間用于每個(gè)尋址實(shí)體的服務(wù)提供器。建立由數(shù)字0到n參考的服務(wù)提供器的索引,其中n是列表上的服務(wù)提供器的數(shù)量。
當(dāng)尋址實(shí)體希望尋址服務(wù)提供器時(shí)使用選擇算法。尋址實(shí)體具有標(biāo)識符,該標(biāo)識符可以是名稱、ID參考、通用唯一標(biāo)識符(UUID)等。需要保持相似性的尋址實(shí)體的組的成員具有相同的組標(biāo)識符。通過任何合適的散列操作來散列標(biāo)識符,以獲得標(biāo)準(zhǔn)整數(shù)。
將標(biāo)準(zhǔn)整數(shù)除以在當(dāng)前時(shí)期中從列表計(jì)數(shù)的服務(wù)提供器的數(shù)量n,并且獲得模數(shù)。該模數(shù)用于參考索引來確定尋址實(shí)體應(yīng)該尋址哪個(gè)服務(wù)提供器。由于作為相似性組的成員的尋址實(shí)體具有相同的標(biāo)識符(如,組ID),所以組的每個(gè)成員將發(fā)送到相同的服務(wù)提供器。如果尋址實(shí)體具有不同的標(biāo)識符,則根據(jù)選擇算法的結(jié)果,它們將被發(fā)送到服務(wù)提供器中的任意一個(gè),這導(dǎo)致尋址實(shí)體在列表中的、所參加的服務(wù)提供器間的隨機(jī)分布。
圖2是圖解以上方法的流程圖。在第一步驟201,創(chuàng)建參加的服務(wù)提供器的列表。在步驟202確定基于服務(wù)提供器的數(shù)量n的除數(shù)。在步驟203創(chuàng)建用于每個(gè)模數(shù)的服務(wù)提供器的索引。
在步驟204處理尋址實(shí)體。在步驟205執(zhí)行尋址實(shí)體的標(biāo)識符的散列來獲得標(biāo)準(zhǔn)整數(shù)。在步驟206將標(biāo)準(zhǔn)整數(shù)除以除數(shù)n來獲得模數(shù)。在步驟207查找服務(wù)提供器的索引來找出所獲得的模數(shù)值。在步驟208將尋址實(shí)體發(fā)送到以關(guān)于該模數(shù)的索引標(biāo)識的服務(wù)提供器。
然后在步驟209確定是否存在等待處理的另一尋址實(shí)體,如果存在,則在步驟210為下一尋址實(shí)體執(zhí)行方法中的循環(huán)。如果沒有更多的尋址實(shí)體,則在步驟211將處理放入待命狀態(tài)來等待要被處理的下一尋址實(shí)體。
在要被處理的尋址實(shí)體是消息的消息通知環(huán)境中,通過消息的到達(dá)觸發(fā)步驟204,并且為消息而執(zhí)行步驟205到208。因此,不需要循環(huán)步驟210。
該方法通過相似性組的成員具有相同的標(biāo)識符,由此將其發(fā)送到相同的服務(wù)提供器來使尋址實(shí)體保持相似性。
提供故障轉(zhuǎn)移機(jī)構(gòu)來處理將尋址實(shí)體發(fā)送到不再可用的服務(wù)提供器的實(shí)例。如果服務(wù)提供器不可用,則將尋址實(shí)體發(fā)送到故障轉(zhuǎn)移列表中的下一服務(wù)提供器。以這種方式,將被發(fā)送到不可用的服務(wù)提供器的所有尋址實(shí)體發(fā)送到相同的回退(fallback)服務(wù)提供器,由此保持尋址實(shí)體的相似性。
如果服務(wù)提供器出故障,則可能需要考慮相似性,同時(shí)將不具有相似性的尋址實(shí)體平衡在有效的資源間,將其尋址實(shí)體送回服務(wù)提供器來進(jìn)行重新處理和重新導(dǎo)向。需要檢索所有被先前導(dǎo)向的尋址實(shí)體的處理。
在WebSphere MQ消息通知系統(tǒng)的環(huán)境下描述實(shí)施例。在網(wǎng)絡(luò)內(nèi)不同計(jì)算機(jī)或節(jié)點(diǎn)上運(yùn)行的應(yīng)用程序能夠使用消息和排隊(duì)(queuing)進(jìn)行通信。通過消息通知和排隊(duì)進(jìn)行的通信使應(yīng)用程序在網(wǎng)絡(luò)中通信,而不需要具有專門的、專用邏輯連接來鏈接它們。通過將消息放入消息隊(duì)列并從消息隊(duì)列獲得消息來進(jìn)行通信。
網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)都具有隊(duì)列管理器。隊(duì)列管理器通過由應(yīng)用程序調(diào)用的消息隊(duì)列接口與應(yīng)用程序進(jìn)行接口。消息隊(duì)列接口支持許多不同的操作系統(tǒng)平臺。
在分布式排隊(duì)系統(tǒng)中,隊(duì)列管理器是獨(dú)立的,并且使用分布式排隊(duì)進(jìn)行通信。向另一個(gè)隊(duì)列管理器發(fā)送消息的一個(gè)隊(duì)列管理器必須已經(jīng)定義了發(fā)送隊(duì)列、到達(dá)遠(yuǎn)端隊(duì)列管理器的信道和用于希望將消息發(fā)送到的每個(gè)隊(duì)列的遠(yuǎn)端隊(duì)列定義。
當(dāng)以簇分組隊(duì)列管理器時(shí),隊(duì)列管理器可以使其掌控的隊(duì)列對于簇中的每個(gè)其它的隊(duì)列管理器都是可用的。任意隊(duì)列管理器可以將消息發(fā)送到同一簇中的任意其它的隊(duì)列管理器,而不需要明確的信道定義、遠(yuǎn)端隊(duì)列定義或用于每個(gè)目的地的發(fā)送隊(duì)列。簇中每個(gè)隊(duì)列管理器具有單獨(dú)的發(fā)送隊(duì)列,每個(gè)隊(duì)列管理器可以從該隊(duì)列將消息發(fā)送到簇中的任意其它的隊(duì)列管理器。簇中的每個(gè)隊(duì)列管理器僅需要定義一個(gè)在其上接收消息的簇接收機(jī)信道和使用來介紹自己并了解簇的一個(gè)簇發(fā)送器信道。
圖3顯示消息通知系統(tǒng)中的隊(duì)列管理器300的簇。顯示了四個(gè)隊(duì)列管理器QM301、QM302、QM303、QM304。每個(gè)隊(duì)列管理器服務(wù)一個(gè)或多個(gè)應(yīng)用程序311、312、313、314和315。
每個(gè)隊(duì)列管理器可以具有僅能由該隊(duì)列管理器服務(wù)的應(yīng)用程序訪問的本地隊(duì)列305。簇中的每個(gè)隊(duì)列管理器還可以具有簇隊(duì)列306。簇隊(duì)列306能夠訪問簇中的任意其它的隊(duì)列管理器。一個(gè)或多個(gè)隊(duì)列管理器還可以掌控關(guān)于簇中的隊(duì)列管理器的信息的庫(repository)307。
應(yīng)用程序311使用MQPUT調(diào)用來將消息放入任意隊(duì)列管理器301、302、303和304上的簇隊(duì)列306。應(yīng)用程序311使用MQGET呼叫來從本地隊(duì)列管理器301上的簇隊(duì)列306檢索消息。
通過用于平衡工作負(fù)載的分布隊(duì)列管理中的工作負(fù)載管理器將發(fā)送到簇300的消息分散在有效的隊(duì)列管理器301、302、303、304中的簇隊(duì)列的實(shí)例中。
WebSphere MQ消息通知系統(tǒng)提供發(fā)送消息組的能力,其中不傳送組的成員直到所有成員到達(dá)為止。這是要求將所有消息發(fā)送到簇中的相同隊(duì)列管理器的組的示例。如果將組中的消息發(fā)送到不同的隊(duì)列管理器,則由于任意一個(gè)隊(duì)列管理器沒有見到所有消息已經(jīng)到達(dá),所以消息將不傳送。需要確保到簇中的相同隊(duì)列管理器的、屬于給定組的消息具有相似性。然而,必須不影響沒有被分組的消息,以使在簇中的隊(duì)列管理器間仍在存在平衡。
通過表現(xiàn)為24位通用唯一標(biāo)識符(UUID)的組ID表示組成員。每個(gè)組的成員還具有序列號,并且組的最后一個(gè)成員同樣標(biāo)識自己。
在所述的方法中,在簇中的分布隊(duì)列管理器的工作負(fù)載管理器執(zhí)行平衡算法來確定將消息發(fā)送到哪個(gè)隊(duì)列管理器的簇隊(duì)列。該平衡算法通過確保組的成員被發(fā)送到簇中的相同隊(duì)列管理器來保持組成員的相似性。
平衡算法對組ID執(zhí)行散列函數(shù)來獲得標(biāo)準(zhǔn)整數(shù)。通過將標(biāo)準(zhǔn)整數(shù)除以隊(duì)列管理器的數(shù)量獲得標(biāo)準(zhǔn)整數(shù)的模數(shù),以確定目標(biāo)隊(duì)列管理器的索引。
以配置文件或其它機(jī)構(gòu)為形式的列表被用于通知分布隊(duì)列管理器簇隊(duì)列參加組分布。該列表確定除數(shù)來獲得用在平衡算法中的模數(shù)。該除數(shù)是隊(duì)列管理器的數(shù)量,因而是可以將消息發(fā)送到的簇隊(duì)列的實(shí)例的數(shù)量。無論隊(duì)列是進(jìn)入或離開簇,允許平衡算法一致地尋址正確的隊(duì)列,該列表都不改變。
這允許分布隊(duì)列管理器將消息的相同組的所有成員發(fā)送到相同的隊(duì)列管理器,而不需要保持狀態(tài)或招致檢查歷史產(chǎn)生的大量開銷等等。
隊(duì)列管理器的簇是動態(tài)的,使得隊(duì)列管理器可以在任意時(shí)間加入或離開。如果除數(shù)基于隊(duì)列管理器的當(dāng)前數(shù)量,則平衡算法將更容易出錯(cuò)。因此,向平衡算法給定隊(duì)列管理器的列表(靜態(tài)的)來進(jìn)行選擇,并且允許平衡算法在選擇隊(duì)列管理器方面是一致的。
此外,隊(duì)列管理器落入多米諾形式。例如,如果如圖3所示在組中存在四個(gè)隊(duì)列管理器,則隊(duì)列管理器具有預(yù)定的順序QM1、QM2、QM3和QM4。如果一個(gè)隊(duì)列管理器QM1故障,則將其消息送回工作負(fù)載管理器。如果由平衡算法選擇了隊(duì)列管理器QM1,并且它不可用,則按順序地(in line)選擇下一個(gè),即QM2。
結(jié)合用于檢索所有先前傳送的組成員來使能該多米諾故障轉(zhuǎn)移技術(shù)?;謴?fù)的隊(duì)列管理器的重新建立需要類似的控制。
一旦表明隊(duì)列管理器故障,則在沒有確保不存在屬于在另外的隊(duì)列管理器中等待的組的任何消息的情況下,不能恢復(fù)該隊(duì)列管理器。
此外,如果新檢測出隊(duì)列管理器故障,則必須以普通的WebSphere系統(tǒng)方式存儲消息用于發(fā)送,直到提示隊(duì)列管理器已經(jīng)被關(guān)閉,并且將重新分布已經(jīng)被發(fā)送的消息為止。
以這種方式,可以恢復(fù)故障的隊(duì)列管理器的工作負(fù)載,同時(shí)考慮相似性并在有效的資源間平衡不具有相似性的消息。
示例在圖3所示的示例中,有四個(gè)可用的隊(duì)列管理器。將隊(duì)列管理器以及因此簇隊(duì)列的有效實(shí)例的列表編譯為索引,并且每個(gè)隊(duì)列管理器具有索引號QM1=0,QM2=1,QM3=2,QM4=3。
由于在表中有四個(gè)隊(duì)列管理器,因此用在平衡算法中的除數(shù)是4。保持除數(shù)恒定直到修改列表并確定新除數(shù)為止。
在該示例中,存在具有組標(biāo)識符的一些消息組。為說明的目的將組標(biāo)識符選為合適的名稱。在實(shí)踐中,組標(biāo)識符可以是例如以24字節(jié)UUID為形式的組ID。
在該示例中,散列函數(shù)向字母表的字母順序分配號碼,并且將號碼相加來獲得標(biāo)準(zhǔn)整數(shù)。
下面的表顯示對組的名稱進(jìn)行處理的散列函數(shù)的操作。

通過關(guān)于具有標(biāo)識符“HAMPSHIRE”的組的成員的平衡算法獲得的索引號是1。因此,組的成員被發(fā)送到QM2。下面的表顯示每個(gè)組的成員的目的地。

以這種方式,具有相似性的組的成員被發(fā)送到相同的隊(duì)列管理器,同時(shí)平衡隊(duì)列管理器的工作負(fù)載。
可以將本發(fā)明實(shí)現(xiàn)為計(jì)算機(jī)程序產(chǎn)品,包括用于控制計(jì)算機(jī)或類似裝置的程序指令集??梢酝ㄟ^預(yù)裝載在系統(tǒng)或記錄在諸如CD-ROM之類的存儲介質(zhì)來提供這些指令,或者通過諸如因特網(wǎng)或移動電話網(wǎng)之類的網(wǎng)絡(luò)下載來實(shí)現(xiàn)。
可以對上述實(shí)施例進(jìn)行改進(jìn)和修改而不背離本發(fā)明的范圍。
權(quán)利要求
1.一種用于分布式計(jì)算機(jī)系統(tǒng)(100)中的相似性管理的方法,該方法包括為多個(gè)尋址實(shí)體(311-315)中的每一個(gè)提供標(biāo)識符,其中具有相似性的尋址實(shí)體的組的每個(gè)成員的標(biāo)識符是相同的組標(biāo)識符;確定可由尋址實(shí)體利用來尋址以提供服務(wù)的實(shí)例的服務(wù)提供器(301-304)的數(shù)量;通過下面的方法管理尋址實(shí)體到服務(wù)提供器的分布將散列函數(shù)應(yīng)用到尋址實(shí)體的標(biāo)識符來獲得標(biāo)準(zhǔn)整數(shù)(205),將標(biāo)準(zhǔn)整數(shù)除以服務(wù)提供器的數(shù)量并獲得模數(shù)(206),以及通過參照模數(shù)選擇服務(wù)提供器(207),和將尋址實(shí)體發(fā)送到由所選擇的服務(wù)提供器提供的服務(wù)的實(shí)例(208)。
2.如權(quán)利要求1所述的方法,其中,周期地執(zhí)行用于確定服務(wù)提供器的數(shù)量的步驟,并且在一段時(shí)間內(nèi)服務(wù)提供器的數(shù)量是恒定的。
3.如權(quán)利要求1或2所述的方法,其中,該方法還包括提供由模數(shù)值參考的可用服務(wù)提供器的索引(203)。
4.如權(quán)利要求1到3中任意一個(gè)所述的方法,其中,如果所選擇的服務(wù)提供器不可用,則以預(yù)定順序?qū)ぶ穼?shí)體發(fā)送到下一服務(wù)提供器。
5.如前述權(quán)利要求中任意一個(gè)所述的方法,其中,如果服務(wù)提供器出故障,則激活處理來檢索先前傳送的尋址實(shí)體。
6.如前述權(quán)利要求中任意一個(gè)所述的方法,其中,如果服務(wù)提供器出故障,則在確保在另一服務(wù)提供器中沒有具有組相似性的尋址實(shí)體后恢復(fù)它。
7.如前述權(quán)利要求中任意一個(gè)所述的方法,其中,如果服務(wù)提供器出故障,則重新分布發(fā)送到服務(wù)提供器的尋址實(shí)體。
8.如前述權(quán)利要求中任意一個(gè)所述的方法,其中,分布式計(jì)算系統(tǒng)是消息通知系統(tǒng),尋址實(shí)體是消息而服務(wù)提供器是掌控一個(gè)或多個(gè)簇隊(duì)列的實(shí)例的簇隊(duì)列管理器。
9.一種用于分布式計(jì)算機(jī)系統(tǒng)中的相似性管理的系統(tǒng),該系統(tǒng)包括每一個(gè)都具有標(biāo)識符的多個(gè)尋址實(shí)體(311-315),其中具有相似性的尋址實(shí)體的組的每個(gè)成員的標(biāo)識符是相同的組標(biāo)識符;可由尋址實(shí)體利用來尋址以提供服務(wù)的實(shí)例的多個(gè)服務(wù)提供器(301-304)的列表;通過使用具有下列步驟的算法用于管理尋址實(shí)體到服務(wù)提供器的分布的裝置將散列函數(shù)應(yīng)用到尋址實(shí)體的標(biāo)識符來獲得標(biāo)準(zhǔn)整數(shù)(205),將標(biāo)準(zhǔn)整數(shù)除以列表中的服務(wù)提供器的數(shù)量并獲得模數(shù)(206),以及通過參照模數(shù)選擇服務(wù)提供器(207),和用于將尋址實(shí)體發(fā)送到所選擇的服務(wù)提供器提供的服務(wù)的實(shí)例(208)的裝置。
10.如權(quán)利要求9所述的系統(tǒng),其中,周期地更新服務(wù)提供器的列表,并且在一個(gè)時(shí)間段內(nèi)列表上的服務(wù)提供器的數(shù)量是恒定的。
11.如權(quán)利要求9或10所述的系統(tǒng),其中,提供一種裝置來提示列表中給出的服務(wù)提供器的工作負(fù)載管理器。
12.如權(quán)利要求9到11中任意一個(gè)所述的系統(tǒng),其中,該系統(tǒng)包括由模數(shù)值參照的列表中的服務(wù)提供器的索引。
13.如權(quán)利要求9到12中任意一個(gè)所述的系統(tǒng),其中,如果所選擇的服務(wù)提供器不可用,則工作負(fù)載管理器以預(yù)定順序?qū)ぶ穼?shí)體發(fā)送到下一服務(wù)提供器。
14.如權(quán)利要求9到13中任意一個(gè)所述的系統(tǒng),其中,如果服務(wù)提供器出故障,則提供裝置來獲取先前傳送的尋址實(shí)體。
15.如權(quán)利要求9到14中任意一個(gè)所述的系統(tǒng),其中,如果服務(wù)提供器出故障,則提供裝置來在恢復(fù)故障的服務(wù)提供器之前,確保在另一服務(wù)提供器中沒有具有組相似性的尋址實(shí)體。
16.如權(quán)利要求9到15中任意一個(gè)所述的系統(tǒng),其中,如果服務(wù)提供器出故障,則提供裝置來重新分布發(fā)送到服務(wù)提供器的尋址實(shí)體。
17.如權(quán)利要求9到16中任意一個(gè)所述的系統(tǒng),其中,分布式計(jì)算系統(tǒng)是消息通知系統(tǒng),尋址實(shí)體是消息而服務(wù)提供器是掌控一個(gè)或多個(gè)簇隊(duì)列的實(shí)例的簇隊(duì)列管理器。
18.一種可裝入數(shù)字計(jì)算機(jī)的內(nèi)部存儲器的計(jì)算機(jī)程序產(chǎn)品,包括用于當(dāng)在計(jì)算機(jī)上運(yùn)行所述產(chǎn)品時(shí)執(zhí)行權(quán)利要求1到10的計(jì)算機(jī)代碼部分。
全文摘要
提供用于分布式計(jì)算機(jī)系統(tǒng)(100)中的相似性管理的方法和系統(tǒng),其中需要在多個(gè)服務(wù)提供器(301-304)之間平衡多個(gè)尋址實(shí)體(311-315),同時(shí)保持尋址實(shí)體中的組相似性。為多個(gè)尋址實(shí)體中的每一個(gè)提供標(biāo)識符,其中具有相似性的尋址實(shí)體的組的每個(gè)成員的標(biāo)識符是同一組標(biāo)識符。提供可由尋址實(shí)體利用來尋址以提供服務(wù)的實(shí)例的服務(wù)提供器列表。由一種算法管理尋址實(shí)體到服務(wù)提供器的分布。該算法包括將散列(hash)函數(shù)應(yīng)用到尋址實(shí)體的標(biāo)識符來獲得標(biāo)準(zhǔn)整數(shù)(205);將標(biāo)準(zhǔn)整數(shù)除以服務(wù)提供器的數(shù)量并獲得模數(shù)(206);以及通過參照模數(shù)選擇服務(wù)提供器(207)。將尋址實(shí)體發(fā)送到所選擇的服務(wù)提供器提供的服務(wù)的實(shí)例(306)。
文檔編號G06F9/46GK1926517SQ200580006397
公開日2007年3月7日 申請日期2005年3月1日 優(yōu)先權(quán)日2004年3月12日
發(fā)明者安德魯·A·皮珀, 馬爾科姆·M·沃維克, 詹姆斯·R·H·懷特 申請人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
鸡西市| 宝鸡市| 大新县| 灵寿县| 房产| 句容市| 乌鲁木齐县| 巴彦淖尔市| 普定县| 丘北县| 赤峰市| 黎川县| 大新县| 吉水县| 贵阳市| 惠水县| 新绛县| 阿荣旗| 永仁县| 曲阳县| 上虞市| 秦皇岛市| 河津市| 仙游县| 汉中市| 聂荣县| 天祝| 林周县| 九台市| 千阳县| 南宫市| 汝阳县| 志丹县| 河间市| 若羌县| 南皮县| 汤阴县| 罗城| 闻喜县| 怀化市| 新竹市|