專利名稱:分布式web服務的上下文中的自主故障轉(zhuǎn)移的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分布式計算的領(lǐng)域,包括Web服務,具體來說,涉及在分布式Web服務的上下文中管理自主故障轉(zhuǎn)移。
背景技術(shù):
Web服務代表了分布式計算的前沿,被視為開發(fā)用于支持World Wide Web上的基于組件的應用程序的快速開發(fā)的真正通用的模型的基礎(chǔ)。在當前技術(shù)中,已知Web服務包括許多描述面向服務的基于組件的應用程序體系結(jié)構(gòu)的新興標準。具體來說,Web服務是松散耦合的,可重用的軟件組件,它們從語義上封裝單獨的功能,并且是分布式的,并通過標準因特網(wǎng)協(xié)議以編程方式來對它們訪問。
在概念上,Web服務代表其中進程內(nèi)的單獨的任務在值網(wǎng)絡內(nèi)廣泛地分布的模型。值得注意的是,許多工業(yè)專家認為面向服務的Web服務倡議是因特網(wǎng)的下一個發(fā)展階段。通常,Web服務可以通過諸如Web服務定義語言(WSDL)之類的接口來進行定義,并可以根據(jù)該接口來實現(xiàn),盡管實現(xiàn)方式的細節(jié)無關(guān)緊要,只要該實現(xiàn)方式符合Web服務接口即可。一旦根據(jù)對應的接口實現(xiàn)了Web服務,則可以向Web服務注冊機構(gòu)(如當前技術(shù)中已知的通用說明、發(fā)現(xiàn)和集成(UDDI))注冊該實現(xiàn)方式。在注冊時,Web服務可以被服務請求者通過使用任何支持消息協(xié)議,包括簡單對象訪問協(xié)議(SOAP)來進行訪問。
在支持Web服務的面向服務的應用程序環(huán)境中,查找可靠的服務并實時動態(tài)地集成這些可靠的服務以滿足應用程序的目標已經(jīng)證明是有問題的。盡管注冊表、目錄和發(fā)現(xiàn)協(xié)議提供了用于實現(xiàn)服務檢測和服務到服務的互連邏輯的基本結(jié)構(gòu),但是,僅憑注冊表、目錄和發(fā)現(xiàn)協(xié)議還不能用于實現(xiàn)分布式互操作性。相反地,需要更加結(jié)構(gòu)化的、形式化的機制來促進形成統(tǒng)一的應用程序時的Web服務的分布。
值得注意的是,通過開放式網(wǎng)格服務體系結(jié)構(gòu)(OGSA)的網(wǎng)格機制的生理機能可以跨分布式系統(tǒng)地在發(fā)現(xiàn)以及在Web服務(以下簡稱為“網(wǎng)格服務”)的綁定中提供協(xié)議,否則,僅通過使用注冊表、目錄和發(fā)現(xiàn)協(xié)議是不可能實現(xiàn)的。如在Ian Foster、Carl Kesselman和Steven Tuecke所著的The Anatomy of the Grid,[Intl J.Supercomputer Applications(2001)]和Ian Foster、Carl Kesselman、Jeffrey M.Nick和Steven Tuecke所著的The Physiology of theGrid,[Globus.org(June 22,2002)]中所描述的,網(wǎng)格機制可以提供分布式計算基礎(chǔ)結(jié)構(gòu),通過該基礎(chǔ)結(jié)構(gòu),可以創(chuàng)建、命名網(wǎng)格服務實例,并被發(fā)出請求的客戶端發(fā)現(xiàn)。
網(wǎng)格服務通過提供增強的資源共享和調(diào)度支持、完善的分布式應用程序通常需要的長壽的狀態(tài)的支持,以及企業(yè)之間的協(xié)作的支持來延伸Web服務。此外,盡管僅憑Web服務可以滿足持久服務的發(fā)現(xiàn)和調(diào)用,但是,網(wǎng)格服務支持可以動態(tài)地創(chuàng)建和損壞的臨時服務實例。使用網(wǎng)格服務的顯著優(yōu)點可以包括由于計算資源的比較有效的利用而使得擁有信息技術(shù)的成本降低,以及集成不同的計算組件變得更加容易。如此,網(wǎng)格機制,具體來說,符合OGSA的網(wǎng)格機制,可以實現(xiàn)面向服務的體系結(jié)構(gòu),通過該體系結(jié)構(gòu),可以提供分布式系統(tǒng)集成的基礎(chǔ)-甚至可以跨組織域。
在服務網(wǎng)格內(nèi),提供基礎(chǔ)結(jié)構(gòu)的服務可以提供用于托管諸如網(wǎng)格服務之類的分布式服務的執(zhí)行的處理資源。提供基礎(chǔ)結(jié)構(gòu)的服務可以包括一組資源,包括服務器計算設備、存儲器系統(tǒng),包括直接連接的存儲器,網(wǎng)絡連接的存儲器和存儲區(qū)域網(wǎng)絡,處理和通信帶寬等等。在提供基礎(chǔ)結(jié)構(gòu)的服務內(nèi)處理的單個事務可以消耗這些資源的不同組合。
值得注意的是,OGSA定義了其中服務實例可以部署到服務網(wǎng)格內(nèi)的一個或多個不同位置的體系結(jié)構(gòu)。相應地,客戶端訪問特定服務的實例的請求可以被路由到被視為對于該請求來說特定服務的最佳實例的實例。為此,單個服務實例可以基于優(yōu)化標準以戰(zhàn)略性的方式被復制到服務網(wǎng)格中的不同節(jié)點。優(yōu)化標準通??梢越馕鰹榭梢栽L問特定資源的節(jié)點、具有與其他重要服務實例共存的服務實例的節(jié)點,相對于特定客戶端的位置等等。
當托管了服務網(wǎng)格中的服務實例的一個服務實例或節(jié)點發(fā)生故障時,不管是什么原因,故障轉(zhuǎn)移策略都可以變?yōu)榉站W(wǎng)格的操作的重要方面。在這方面,至關(guān)重要的是,當在服務網(wǎng)格中的節(jié)點或服務實例中檢測到故障時,隨后的訪問發(fā)生故障的節(jié)點中的服務實例內(nèi)的服務功能的請求被重新路由到服務網(wǎng)格中的別處,到所希望的服務的其他實例。重要的是,這樣的重新路由必須透明地進行,以便不干擾服務網(wǎng)格的虛擬組織方面。此外,盡管在當前技術(shù)中故障轉(zhuǎn)移重新路由是已知的,但是,很少注意服務網(wǎng)格中的發(fā)生故障的服務實例的重新部署。
發(fā)明內(nèi)容
優(yōu)選情況下,本發(fā)明涉及分布式計算,包括Web服務和網(wǎng)格服務(特別是網(wǎng)格服務故障轉(zhuǎn)移)。
根據(jù)優(yōu)選實施例的本發(fā)明是配置為在分布式Web服務的上下文中管理自主故障轉(zhuǎn)移的系統(tǒng)、方法和設備。
根據(jù)一個方面,提供了一種用于進行自主故障轉(zhuǎn)移的方法,包括下列步驟收集節(jié)點中的服務實例的量度;檢測所述節(jié)點中的故障;在檢測到所述故障時,定位一組替換節(jié)點并確定每一個所述替換節(jié)點的平臺量度;以及,基于所述收集的量度和所述平臺量度,在所述替換節(jié)點的最佳地選擇的替換節(jié)點中創(chuàng)建新的替換服務實例。
關(guān)于這一點,根據(jù)優(yōu)選實施例,在收集的量度和平臺量度之間執(zhí)行最佳匹配分析,以識別將在其中創(chuàng)建新的替換服務實例的最佳替換節(jié)點。然后,優(yōu)選情況下,在識別的最佳替換節(jié)點中創(chuàng)建這樣的新的替換服務實例。
在一些情況下,覺察到單個替換節(jié)點將能夠托管新創(chuàng)建的替換服務實例,以便不大可能在任何一個服務實例中導致性能的下降??墒?,在許多其他情況下,跨多個替換節(jié)點,將需要新的和預先存在的服務實例的比較復雜的重新布局。關(guān)于這一點,根據(jù)優(yōu)選實施例,創(chuàng)建步驟包括,另外收集最佳替換節(jié)點中的現(xiàn)有服務實例的量度。優(yōu)選情況下,在收集和另外收集的量度兩者和最佳替換節(jié)點的平臺量度之間執(zhí)行最佳匹配分析。隨后,優(yōu)選情況下,在最佳替換節(jié)點中創(chuàng)建一組新的替換服務實例,以與一部分現(xiàn)有服務實例共存,在該部分現(xiàn)有服務實例中,計算新的替換服務實例集合和現(xiàn)有服務實例的部分,以便在最佳替換節(jié)點中最佳地合并。比較起來,優(yōu)選情況下,將現(xiàn)有服務實例的其他實例移動到其他替換節(jié)點,優(yōu)選情況下,在其他替換節(jié)點中創(chuàng)建其余的新的替換服務實例集合。
根據(jù)優(yōu)選實施例,量度可以包括從由網(wǎng)格主機中消耗的資源、優(yōu)選的操作系統(tǒng)平臺、網(wǎng)格主機中需要的最少資源、網(wǎng)格主機中的供消耗的優(yōu)選資源構(gòu)成的組中選擇的至少一個量度。
另外,在本發(fā)明的再一個優(yōu)選實施例中,量度包括從由性能的單位成本、資源消耗的單位成本、性能的單位收入以及資源消耗的單位收入構(gòu)成的組中選擇的至少一個額外的量度。相應地,根據(jù)優(yōu)選實施例,可以在收集和另外收集的量度兩者和最佳替換節(jié)點的平臺量度之間執(zhí)行最佳匹配分析,同時給從由性能的單位成本、資源消耗的單位成本、性能的單位收入以及資源消耗的單位收入構(gòu)成的組中選擇的至少一個量度加權(quán)。
根據(jù)優(yōu)選實施例,基于收集的量度和平臺量度,在替換節(jié)點的最佳地選擇的替換節(jié)點中創(chuàng)建新的替換服務實例包括下列步驟另外收集最佳替換節(jié)點中的現(xiàn)有服務實例的量度;在所述收集和另外收集的量度兩者和所述最佳替換節(jié)點的平臺量度之間執(zhí)行最佳匹配分析;在所述最佳替換節(jié)點中創(chuàng)建一組新的替換服務實例,以與一部分所述現(xiàn)有服務實例共存,在該部分所述現(xiàn)有服務實例中,計算新的替換服務實例的所述集和所述現(xiàn)有服務實例的所述部分,以便在所述最佳替換節(jié)點中最佳地合并;以及,將所述現(xiàn)有服務實例的其他實例移動到其他替換節(jié)點,并在所述其他替換節(jié)點中創(chuàng)建其余的新的替換服務實例集合。
根據(jù)優(yōu)選實施例,基于收集的量度和平臺量度,在替換節(jié)點的最佳地選擇的替換節(jié)點中創(chuàng)建新的替換服務實例包括下列步驟另外收集最佳替換節(jié)點中的現(xiàn)有服務實例的量度;在所述收集和另外收集的量度兩者和所述最佳替換節(jié)點的平臺量度之間執(zhí)行最佳匹配分析,同時給從由性能的單位成本、資源消耗的單位成本、性能的單位收入以及資源消耗的單位收入構(gòu)成的組中選擇的至少一個量度加權(quán);在所述最佳替換節(jié)點中創(chuàng)建一組新的替換服務實例,以與一部分所述現(xiàn)有服務實例共存,在該部分所述現(xiàn)有服務實例中,計算新的替換服務實例的所述集和所述現(xiàn)有服務實例的所述部分,以便根據(jù)所述加權(quán)的至少一個量度來在所述最佳替換節(jié)點中最佳地合并;以及,將所述現(xiàn)有服務實例的其他實例移動到其他替換節(jié)點,并在所述其他替換節(jié)點中創(chuàng)建其余的新的替換服務實例集合。
根據(jù)另一個方面,本發(fā)明提供一種網(wǎng)格協(xié)調(diào)器,包括以通信方式鏈接到服務網(wǎng)格中的多個網(wǎng)格主機的監(jiān)視器;連接到所述監(jiān)視器并被配置為在所述網(wǎng)格主機中存儲單個服務實例的服務量度的量度存儲器;優(yōu)化邏輯,被編程為在為發(fā)生故障的網(wǎng)格主機中的一組服務實例存儲的量度,以及為提議的替換網(wǎng)格主機確定的平臺量度之間計算“最佳匹配”;以及,連接到所述監(jiān)視器和所述優(yōu)化邏輯的并以通信方式鏈接到所述網(wǎng)格主機的故障轉(zhuǎn)移處理器,以在所述提議的替換網(wǎng)格主機中創(chuàng)建新的一組服務實例,以便根據(jù)在所述優(yōu)化邏輯中計算的所述“最佳匹配”替換所述發(fā)生故障的網(wǎng)格主機中的所述服務實例集合。
優(yōu)選情況下,監(jiān)視器包括位于所述網(wǎng)格主機中的多個協(xié)作監(jiān)視進程,每一個協(xié)作監(jiān)視進程具有將對應的網(wǎng)格主機的狀態(tài)報告到所述故障轉(zhuǎn)移處理器的配置。
優(yōu)選情況下,服務量度包括從由網(wǎng)格主機中消耗的資源、優(yōu)選的操作系統(tǒng)平臺、網(wǎng)格主機中需要的最少資源、網(wǎng)格主機中的供消耗的優(yōu)選資源構(gòu)成的組中選擇的至少一個量度。優(yōu)選情況下,服務量度進一步包括從由性能的單位成本、資源消耗的單位成本、性能的單位收入以及資源消耗的單位收入構(gòu)成的組中選擇的至少一個量度。
根據(jù)另一個方面,提供了一種在其上存儲了用于管理自主故障轉(zhuǎn)移的計算機程序的機器可讀的存儲器,計算機程序包括用于使機器執(zhí)行下列步驟的例行指令集收集節(jié)點中的服務實例的量度;檢測所述節(jié)點中的故障;在檢測到所述故障時,定位一組替換節(jié)點并確定每一個所述替換節(jié)點的平臺量度;以及,基于所述收集的量度和所述平臺量度,在所述替換節(jié)點的最佳地選擇的替換節(jié)點中創(chuàng)建新的替換服務實例。
優(yōu)選情況下,所述量度包括從由網(wǎng)格主機中消耗的資源、優(yōu)選的操作系統(tǒng)平臺、網(wǎng)格主機中需要的最少資源、網(wǎng)格主機中的供消耗的優(yōu)選資源構(gòu)成的組中選擇的至少一個量度。
優(yōu)選情況下,量度進一步包括從由性能的單位成本、資源消耗的單位成本、性能的單位收入以及資源消耗的單位收入構(gòu)成的組中選擇的至少一個量度。
優(yōu)選情況下,創(chuàng)建步驟包括下列步驟在所述收集的量度和所述平臺量度之間執(zhí)行最佳匹配分析,以識別將在其中創(chuàng)建新的替換服務實例的最佳替換節(jié)點;以及,在所述識別的最佳替換節(jié)點中創(chuàng)建新的替換服務實例。
優(yōu)選情況下,創(chuàng)建步驟包括下列步驟另外收集最佳替換節(jié)點中的現(xiàn)有服務實例的量度;在所述收集和另外收集的量度兩者和所述最佳替換節(jié)點的平臺量度之間執(zhí)行最佳匹配分析;在所述最佳替換節(jié)點中創(chuàng)建一組新的替換服務實例,以與一部分所述現(xiàn)有服務實例共存,在該部分所述現(xiàn)有服務實例中,計算新的替換服務實例的所述集和所述現(xiàn)有服務實例的所述部分,以便在所述最佳替換節(jié)點中最佳地合并;以及,將所述現(xiàn)有服務實例的其他實例移動到其他替換節(jié)點,并在所述其他替換節(jié)點中創(chuàng)建其余的新的替換服務實例集合。
在優(yōu)選實施例中,創(chuàng)建步驟包括下列步驟另外收集最佳替換節(jié)點中的現(xiàn)有服務實例的量度;在所述收集和另外收集的量度兩者和所述最佳替換節(jié)點的平臺量度之間執(zhí)行最佳匹配分析,同時給從由性能的單位成本、資源消耗的單位成本、性能的單位收入以及資源消耗的單位收入構(gòu)成的組中選擇的至少一個量度加權(quán);在所述最佳替換節(jié)點中創(chuàng)建一組新的替換服務實例,以與一部分所述現(xiàn)有服務實例共存,在該部分所述現(xiàn)有服務實例中,計算新的替換服務實例的所述集和所述現(xiàn)有服務實例的所述部分,以便根據(jù)所述加權(quán)的至少一個量度來在所述最佳替換節(jié)點中最佳地合并;以及,將所述現(xiàn)有服務實例的其他實例移動到其他替換節(jié)點,并在所述其他替換節(jié)點中創(chuàng)建其余的新的替換服務實例集合。
根據(jù)另一個方面,提供了包括程序代碼裝置的計算機程序,當所述程序在計算機上運行時,用于執(zhí)行下列方法步驟,該步驟包括收集節(jié)點中的服務實例的量度;檢測所述節(jié)點中的故障;在檢測到所述故障時,定位一組替換節(jié)點并確定每一個所述替換節(jié)點的平臺量度;以及,基于所述收集的量度和所述平臺量度,在所述替換節(jié)點的最佳地選擇的替換節(jié)點中創(chuàng)建新的替換服務實例。
優(yōu)選情況下,還提供了用于進行自主故障轉(zhuǎn)移的設備,包括用于收集節(jié)點中的服務實例的量度的裝置;用于檢測所述節(jié)點中的故障的裝置;用于響應于檢測到所述故障的情況,定位一組替換節(jié)點并確定每一個所述替換節(jié)點的平臺量度的裝置;以及,基于所述收集的量度和所述平臺量度,在所述替換節(jié)點的最佳地選擇的替換節(jié)點中創(chuàng)建新的替換服務實例的裝置。
現(xiàn)在將參考下面的附圖,只作為示例,對本發(fā)明的優(yōu)選實施例進行描述圖1是根據(jù)本發(fā)明的優(yōu)選實施例的被配置為自主故障轉(zhuǎn)移的服務網(wǎng)格的示意圖;圖2是根據(jù)本發(fā)明的優(yōu)選實施例的圖1的服務網(wǎng)格中的進行故障轉(zhuǎn)移優(yōu)化的過程的方框圖;以及,圖3是根據(jù)本發(fā)明的優(yōu)選實施例的圖1的服務網(wǎng)格中的用于管理自主故障轉(zhuǎn)移的過程的方框圖。
具體實施例方式
根據(jù)優(yōu)選實施例,說明了一種用于用于管理諸如Web服務或網(wǎng)格服務托管基礎(chǔ)結(jié)構(gòu)之類的服務基礎(chǔ)結(jié)構(gòu)中的自主故障轉(zhuǎn)移的方法和系統(tǒng)。在對網(wǎng)格服務托管基礎(chǔ)結(jié)構(gòu)的具體參考中,優(yōu)選情況下,檢測發(fā)生故障的網(wǎng)格托管節(jié)點,優(yōu)選情況下,判斷發(fā)生故障的節(jié)點中托管的對應的網(wǎng)格服務集。對于對應的集中的每一個服務,可以確定計算要求、計算性能和成本/收入特征。此外,優(yōu)選情況下,識別可以容納對應的集中的網(wǎng)格服務的新實例的現(xiàn)有的網(wǎng)格服務主機節(jié)點。在可以識別可以容納對應的集中的所有服務的主機節(jié)點的情況下,優(yōu)選情況下,在識別的主機節(jié)點中實例化該集中的服務。否則,根據(jù)一個或多個確定的計算要求、性能和成本/收入特征,優(yōu)選情況下,優(yōu)化一個或多個主機節(jié)點中的服務的放置。
關(guān)于這一點,對每一個服務實例進行監(jiān)視,以便了解計算要求、性能量度和成本/收入特征。作為示例,計算要求可以包括操作系統(tǒng)要求和硬件資源要求。比較起來,性能量度可以包括資源消耗量度,如在服務實例的操作過程中消耗的通信帶寬、處理器、存儲器或磁盤存儲器。最后,成本/收入特征可以包括每個消耗的資源的成本,以及每個消耗的資源的收入。在任何情況下,優(yōu)選情況下,在每一個服務的操作過程中,動態(tài)地記錄量度。如此,預計量度將隨著時間而變化。
響應檢測到節(jié)點故障的情況,優(yōu)選情況下,在一個節(jié)點中放置較高優(yōu)先級的服務,這樣的較高優(yōu)先級的服務可以享受符合或超過發(fā)生故障的節(jié)點中的以前的級別的資源消耗級別。然而,在資源有限上下文中,在替換節(jié)點缺乏足夠的資源以在發(fā)生故障的節(jié)點的以前的資源消耗級別容納發(fā)生故障的節(jié)點中的所有服務的新實例的情況下,可以給較低的優(yōu)先級的服務分配甚至比發(fā)生故障的節(jié)點中先前分配的更少的資源。為避免此情況,優(yōu)選情況下,使用多個替換節(jié)點來托管服務的新實例,其中,該集中的服務的拆分所產(chǎn)生的性能影響不會重于由于分配較低的優(yōu)先級服務的替換節(jié)點中的較低的資源級別所造成的性能影響。
在任何情況下,盡管本發(fā)明可以在分布式的Web服務集的上下文中,或在網(wǎng)格服務基礎(chǔ)結(jié)構(gòu)的比較特定的情況下來實現(xiàn),但是,在本發(fā)明的優(yōu)選實施例中,網(wǎng)格服務基礎(chǔ)結(jié)構(gòu)被配置為自主故障轉(zhuǎn)移,如這里所描述的。為此,圖1是根據(jù)本發(fā)明的優(yōu)選實施例的被配置為自主故障轉(zhuǎn)移的服務網(wǎng)格的示意圖。對熟練的技術(shù)人員顯而易見的是,服務網(wǎng)格可以是這樣的Web服務網(wǎng)格其中配置了一個或多個網(wǎng)格主機120A、120B,它們跨計算機通信網(wǎng)絡110(如因特網(wǎng))以網(wǎng)格方式以通信方式彼此鏈接在一起。單個發(fā)出請求的客戶端100可以請求從一個或多個網(wǎng)格主機120A、120B來訪問Web服務。具體來說,如在當前技術(shù)中已知的,SOAP編碼的消息可以在發(fā)出請求的客戶端100和駐留在相應的網(wǎng)格主機120A、120B中的網(wǎng)格服務130A、130B之間來回被路由。
具體來說,客戶端100可以通過同樣地從網(wǎng)格協(xié)調(diào)器150請求來請求訪問單個Web服務。具體來說,可以在消息路由器140中接收SOAP編碼的消息,這些消息可以有選擇地被路由到已知的網(wǎng)格協(xié)調(diào)器150集中的一個網(wǎng)格協(xié)調(diào)器(只顯示了一個)。對于接收到的每一個消息,網(wǎng)格協(xié)調(diào)器150優(yōu)選情況下通過查詢已知的網(wǎng)格主機120A、120B內(nèi)托管的已知的網(wǎng)格服務130A、130B的服務注冊表190來查找服務網(wǎng)格中的被請求的Web服務的所希望的實例。隨后,網(wǎng)格服務協(xié)調(diào)器150中的請求路由邏輯160優(yōu)選情況下將請求路由到網(wǎng)格主機120A、120B的相應的網(wǎng)格主機中的網(wǎng)格服務130A、130B的所選擇的一個網(wǎng)格服務。
那些熟練的技術(shù)人員將認識到,網(wǎng)格主機120A、120B可以以集中方式位于服務器計算設備內(nèi)或以分布式方式跨多個服務器計算設備地布置。網(wǎng)格主機120A、120B可以包括諸如計算設備之類的物理主機,或諸如虛擬機或物理主機內(nèi)的進程之類的虛擬主機。不論是哪一種情況,通常,每一個網(wǎng)格主機120A、120B可以被視為其中Web服務可以被實例化、維護和損壞的主機節(jié)點。
重要的是,網(wǎng)格服務協(xié)調(diào)器150優(yōu)選情況下實現(xiàn)如OGSA定義的并且根據(jù)Globus Project,Globus Toolkit FuturesAn OpenGrid Services Architecture,Globus Tutorial,Argonne NationalLaboratory(January 29,2002)說明的接口的網(wǎng)格服務接口。如在當前技術(shù)中已知的,符合OGSA的網(wǎng)格服務接口可以包括下列接口和行為1.Web服務創(chuàng)建(工廠)2.全局命名(網(wǎng)格服務句柄)和參考(網(wǎng)格服務參考)3.使用壽命管理4.注冊和發(fā)現(xiàn)5.授權(quán)6.通知7.并行性8.可管理性關(guān)于這一點,網(wǎng)格服務協(xié)調(diào)器150優(yōu)選情況下包括能夠使用“工廠創(chuàng)建服務”將所選擇的Web服務的實例克隆到新的或預先存在的應用程序容器中的工廠接口。
具體來說,根據(jù)優(yōu)選實施例,網(wǎng)格服務協(xié)調(diào)器150可以請求跨一個或多個遠程網(wǎng)格主機120A、120B地實例化被請求的Web服務的網(wǎng)格服務實例130A、130B。因此,響應接收在指定的Web服務中進行處理的服務請求的情況,不管指定的Web服務的任何特定實例,網(wǎng)格服務協(xié)調(diào)器150中的請求路由邏輯160優(yōu)選情況下選擇網(wǎng)格主機120A、120B內(nèi)的服務實例130A、130B中的特定的一個服務實例,以根據(jù)任何數(shù)量路由標準來處理服務請求。
根據(jù)本發(fā)明的優(yōu)選實施例,故障轉(zhuǎn)移邏輯170和優(yōu)化量度180的存儲器兩者都包括在網(wǎng)格協(xié)調(diào)器150中,完全地或通過關(guān)聯(lián)來進行。優(yōu)化量度180可以包括不同的靜態(tài)和動態(tài)參數(shù)以及單個服務實例130A、130B的操作與關(guān)聯(lián)測量的列表。在這方面,優(yōu)化量度180優(yōu)選情況下包括在網(wǎng)格主機120A、120B中消耗的資源的測量、優(yōu)選的操作系統(tǒng)平臺、需要的最少資源,以及需要的優(yōu)選資源。此外,優(yōu)化量度180優(yōu)選情況下為每一個單個服務實例130A、130B指定性能的單位成本、資源消耗的單位成本、性能的單位收入以及資源消耗的單位收入。值得注意的是,優(yōu)化量度180的存儲器中包括的數(shù)據(jù)優(yōu)選情況下通過連接到優(yōu)化量度180(優(yōu)選情況下,收集單個服務實例130A、130B的性能數(shù)據(jù))的存儲器監(jiān)視器(未顯示)的操作定期更新。
隨著情況的產(chǎn)生,故障轉(zhuǎn)移邏輯170優(yōu)選情況下能夠檢測一個或多個服務實例所在的的網(wǎng)格主機120A、120B中的發(fā)生故障的那一個。識別發(fā)生故障的網(wǎng)格主機的情況下,故障轉(zhuǎn)移邏輯170優(yōu)選情況下查找一個或多個替換網(wǎng)格主機。替換網(wǎng)格主機可以包括能夠在發(fā)生故障的網(wǎng)格主機內(nèi)容納所有服務實例的網(wǎng)格主機。相反,替換網(wǎng)格主機可以包括已經(jīng)托管了服務實例并且目前沒有分配全部主機資源供發(fā)生故障的網(wǎng)格主機中的服務實例使用的網(wǎng)格主機。在可以識別幾乎相同或完全相同的替換網(wǎng)格主機的情況下,優(yōu)選情況下,在識別的替換主機中創(chuàng)建駐留在發(fā)生故障的grid主機中的服務實例的新實例。否則,可以執(zhí)行故障轉(zhuǎn)移優(yōu)化的過程,以便最佳地放置駐留在發(fā)生故障的網(wǎng)格主機中的服務實例的新實例。
圖2是根據(jù)本發(fā)明的優(yōu)選實施例的圖1的服務網(wǎng)格中的進行故障轉(zhuǎn)移優(yōu)化的過程的方框圖。根據(jù)本發(fā)明的布局,網(wǎng)格協(xié)調(diào)器215可以監(jiān)視所選擇的節(jié)點210X、210Y、210Z中工作的單個服務實例260A、260B、260C的操作。在監(jiān)視單個服務實例260A、260B、260C的過程中,優(yōu)選情況下,對于服務實例260A、260B、260C中的每一單個服務實例,記錄了服務量度230。具體來說,優(yōu)選情況下,對服務實例260A、260B、260C中的每一個服務實例進行監(jiān)視,以便了解計算要求、性能量度和成本/收入特征。作為示例,計算要求可以包括操作系統(tǒng)要求和硬件資源要求。比較起來,性能量度可以包括資源消耗量度,如在服務實例的操作過程中消耗的通信帶寬、處理器、存儲器或磁盤存儲器。最后,成本/收入特征可以包括每個消耗的資源的成本,以及每個消耗的資源的收入。
在檢測到特定被監(jiān)視的節(jié)點中的故障時,例如,服務實例260A、260C所在的節(jié)點210Y,優(yōu)選情況下,優(yōu)化邏輯220嘗試根據(jù)下列過程進行故障轉(zhuǎn)移。首先,優(yōu)選情況下,識別一個或多個替換節(jié)點240A、240B。優(yōu)選情況下,為每一個相應的替換節(jié)點240A、240B確定單個平臺量度250A、250B。單個平臺量度250A、250B可以包括,計算諸如處理器類型、操作系統(tǒng)類型、存儲器和storage數(shù)量等等。單個平臺量度250A、250B進一步可以包括替換節(jié)點250A、250B的動態(tài)地指定的狀態(tài),如消耗的計算資源,被托管的服務實例的數(shù)量和身份,等等。
在圖2的典型的情況下,優(yōu)化邏輯220最初可以根據(jù)優(yōu)選實施例判斷在發(fā)生故障的節(jié)點210Y內(nèi)托管的服務260A、260C是否可以在其中一個被識別的替換節(jié)點240A、240B中完全地被重新實例化,以便服務260A、260C可以繼續(xù)在發(fā)生故障的節(jié)點210Y中預先實現(xiàn)的性能級別下工作。關(guān)于這一點,作為一個簡單情況,在已經(jīng)判斷替換節(jié)點240A包括能夠在發(fā)生故障的節(jié)點210Y中預先實現(xiàn)的性能級別下容納服務260A、260C的新實例的計算資源的情況下,優(yōu)選情況下,將服務260A、260C的新實例放在替換節(jié)點240A內(nèi)。
相反,在替換節(jié)點240A、240B中沒有一個替換節(jié)點能夠在發(fā)生故障的節(jié)點210Y中預先實現(xiàn)的性能級別下容納服務260A、260C的新實例的的情況下,優(yōu)選情況下,基于服務260A、260C的實例的服務量度230,以最佳方式,跨替換節(jié)點240A、240B中的一個或多個,放置服務260A、260C的新實例。具體來說,優(yōu)選情況下,跨替換節(jié)點240A、240B兩者放置服務260A、260C的新實例,以便任何一個替換節(jié)點240A、240B不必容納服務260A、260C兩者的新實例?;蛘撸瑑?yōu)選情況下,服務260A、260C的實例的服務量度230與平臺量度250A、250B匹配,以識別服務260A、260C的任何一個實例的最兼容的平臺。例如,在這方面,可以確定優(yōu)選的操作系統(tǒng)。
在本發(fā)明的優(yōu)選實施例中,對于服務260A、260C的每一個實例,確定成本對性能和收入對性能比。如此,服務260A、260C的新實例可以放置在替換節(jié)點240A、240B中的一個或多個替換節(jié)點內(nèi),以便優(yōu)化這樣的可能性享受較高的收入/性能和較低的成本/性能比的服務260A、260C的實例將更可能地在替換節(jié)點內(nèi)實現(xiàn)更高的性能,而具有較低的收入/性能和較高的成本/性能比的服務260A、260C的實例將讓步于服務260A、260C的前面的實例。為幫助前面的計算,可以對服務量度230和平臺量度250A、250B應用最佳匹配分析。
圖3是根據(jù)本發(fā)明的優(yōu)選實施例的圖1的服務網(wǎng)格中的用于管理自主故障轉(zhuǎn)移的過程的方框圖。在方框310中開始,優(yōu)選情況下,在網(wǎng)格協(xié)調(diào)器內(nèi)檢測節(jié)點故障。在方框320中,優(yōu)選情況下,識別駐留在發(fā)生故障的節(jié)點內(nèi)的每一個服務實例。在方框330中,優(yōu)選情況下,進一步識別一個或多個替換節(jié)點。在方框340中,優(yōu)選情況下,檢索發(fā)生故障的節(jié)點中的每一個服務實例的記錄的量度?;蛘撸瑢τ诎l(fā)生故障的節(jié)點中托管的服務的每一個實例,可以檢索該服務的跨其他節(jié)點的多個實例的記錄的量度,以便消除該服務的任何一個實例中的異常事件。在任何情況下,在方框350中識別每一個被識別的替換節(jié)點的平臺量度。
在判斷方框360中,優(yōu)選情況下,基于發(fā)生故障的節(jié)點中預先體驗到的性能,判斷被識別的替換節(jié)點中是否有某個節(jié)點可以容納服務的新實例,而不需要降低性能。如果是這樣,則在方框380中,優(yōu)選情況下,將服務的新實例放置在能夠容納服務的新實例而不需要性能下降的被識別的替換節(jié)點內(nèi)。否則,在方框370中,優(yōu)選情況下,執(zhí)行最佳服務放置分析。具體來說,優(yōu)選情況下,檢索每一個服務的量度,并與每一個潛在的替換節(jié)點的量度進行比較。
優(yōu)選情況下,應用最佳匹配分析,以判斷應該在哪些替換節(jié)點中創(chuàng)建服務的新實例。特別是,可以給服務量度的不同的元素加權(quán),以強調(diào)某些元素比其他元素更重要,例如,“每個百分比的資源消耗的收入”比“優(yōu)選的操作系統(tǒng)”更重要。因此,可以在替換節(jié)點中創(chuàng)建全部新服務實例,而不是一個或多個新服務實例,或跨多個替換節(jié)點地分解全部新服務實例,以確保任何一個新服務實例中的性能都不會下降。最后,在可預見任何一個預先存在的服務實例可以通過將新服務放置在替換節(jié)點來移動的情況下,可以將方框370的分析延伸到一個或多個替換節(jié)點內(nèi)的預先存在的服務實例。
本發(fā)明可以以硬件、軟件或硬件和軟件的組合實現(xiàn)。本發(fā)明的方法和系統(tǒng)可以使用一個計算機系統(tǒng)以集中方式,或者以不同的元素跨多個互連的計算機系統(tǒng)的分布式方式來實現(xiàn)。適于執(zhí)行這里描述的方法的任何類型的計算機系統(tǒng)或其他設備都適于執(zhí)行這里描述的功能。典型的硬件和軟件的組合可以是具有這樣的計算機程序的通用計算機系統(tǒng),當加載并執(zhí)行該計算機程序時,控制計算機系統(tǒng)以便它執(zhí)行這里描述的方法。本發(fā)明還可以嵌入在包括實現(xiàn)這里描述的方法的所有特點的計算機程序產(chǎn)品中,這種計算機程序產(chǎn)品在加載到計算機系統(tǒng)中時,能夠執(zhí)行這些方法。
本上下文中的計算機程序或者應用程序是指以任何語言、代碼或注釋表達的一組指令的任何表達式,用于導致具有信息處理能力的系統(tǒng)直接或者在下列操作中的任何一種或兩種操作都執(zhí)行之后執(zhí)行特定的功能a)轉(zhuǎn)換到另一種語言、代碼或注釋;b)以不同的材料形式再現(xiàn)。具體來說,在不偏離本發(fā)明的精神或必需的屬性的情況下,本發(fā)明可以以其他特定的形式來實現(xiàn),相應地,在表示本發(fā)明的范圍時,應該參考下面的權(quán)利要求,而不是參考上述說明。
權(quán)利要求
1.一種用于進行自主故障轉(zhuǎn)移的方法,包括下列步驟收集節(jié)點中的服務實例的量度;檢測所述節(jié)點中的故障;在檢測到所述故障時,定位一組替換節(jié)點并確定每一個所述替換節(jié)點的平臺量度;以及,基于所述收集的量度和所述平臺量度,在所述替換節(jié)點的最佳地選擇的替換節(jié)點中創(chuàng)建新的替換服務實例。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述量度包括從由網(wǎng)格主機中消耗的資源、優(yōu)選的操作系統(tǒng)平臺、網(wǎng)格主機中需要的最少資源、網(wǎng)格主機中的供消耗的優(yōu)選資源構(gòu)成的組中選擇的至少一個量度。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述量度進一步包括從由性能的單位成本、資源消耗的單位成本、性能的單位收入以及資源消耗的單位收入構(gòu)成的組中選擇的至少一個量度。
4.根據(jù)權(quán)利要求1所述的方法,其中,所述創(chuàng)建步驟包括下列步驟在所述收集的量度和所述平臺量度之間執(zhí)行最佳匹配分析,以識別將在其中創(chuàng)建新的替換服務實例的最佳替換節(jié)點;以及,在所述識別的最佳替換節(jié)點中創(chuàng)建新的替換服務實例。
5.根據(jù)權(quán)利要求1所述的方法,其中,所述創(chuàng)建步驟包括下列步驟另外收集最佳替換節(jié)點中的現(xiàn)有服務實例的量度;在所述收集和另外收集的量度兩者和所述最佳替換節(jié)點的平臺量度之間執(zhí)行最佳匹配分析;在所述最佳替換節(jié)點中創(chuàng)建一組新的替換服務實例,以與一部分所述現(xiàn)有服務實例共存,在該部分所述現(xiàn)有服務實例中,計算新的替換服務實例的所述集和所述現(xiàn)有服務實例的所述部分,以便在所述最佳替換節(jié)點中最佳地合并;以及,將所述現(xiàn)有服務實例的其他實例移動到其他替換節(jié)點,并在所述其他替換節(jié)點中創(chuàng)建其余的新的替換服務實例集合。
6.根據(jù)權(quán)利要求3所述的方法,其中,所述創(chuàng)建步驟包括下列步驟另外收集最佳替換節(jié)點中的現(xiàn)有服務實例的量度;在所述收集和另外收集的量度兩者和所述最佳替換節(jié)點的平臺量度之間執(zhí)行最佳匹配分析,同時給從由性能的單位成本、資源消耗的單位成本、性能的單位收入以及資源消耗的單位收入構(gòu)成的組中選擇的至少一個量度加權(quán);在所述最佳替換節(jié)點中創(chuàng)建一組新的替換服務實例,以與一部分所述現(xiàn)有服務實例共存,在該部分所述現(xiàn)有服務實例中,計算新的替換服務實例的所述集和所述現(xiàn)有服務實例的所述部分,以便根據(jù)所述加權(quán)的至少一個量度來在所述最佳替換節(jié)點中最佳地合并;以及,將所述現(xiàn)有服務實例的其他實例移動到其他替換節(jié)點,并在所述其他替換節(jié)點中創(chuàng)建其余的新的替換服務實例集合。
7.一種網(wǎng)格協(xié)調(diào)器,包括以通信方式鏈接到服務網(wǎng)格中的多個網(wǎng)格主機的監(jiān)視器;連接到所述監(jiān)視器并被配置為在所述網(wǎng)格主機中存儲單個服務實例的服務量度的量度存儲器;優(yōu)化邏輯,被編程為在為發(fā)生故障的網(wǎng)格主機中的一組服務實例存儲的量度,以及為提議的替換網(wǎng)格主機確定的平臺量度之間計算“最佳匹配”;以及,連接到所述監(jiān)視器和所述優(yōu)化邏輯的并以通信方式鏈接到所述網(wǎng)格主機的故障轉(zhuǎn)移處理器,以在所述提議的替換網(wǎng)格主機中創(chuàng)建新的一組服務實例,以便根據(jù)在所述優(yōu)化邏輯中計算的所述“最佳匹配”替換所述發(fā)生故障的網(wǎng)格主機中的所述服務實例集合。
8.根據(jù)權(quán)利要求7所述的網(wǎng)格協(xié)調(diào)器,其中,所述監(jiān)視器包括位于所述網(wǎng)格主機中的多個協(xié)作監(jiān)視進程,每一個所述協(xié)作監(jiān)視進程具有將對應的網(wǎng)格主機的狀態(tài)報告到所述故障轉(zhuǎn)移處理器的配置。
9.一種在其上存儲了用于管理自主故障轉(zhuǎn)移的計算機程序的機器可讀的存儲器,計算機程序包括用于使機器執(zhí)行下列步驟的例行指令集收集節(jié)點中的服務實例的量度;檢測所述節(jié)點中的故障;在檢測到所述故障時,定位一組替換節(jié)點并確定每一個所述替換節(jié)點的平臺量度;以及,基于所述收集的量度和所述平臺量度,在所述替換節(jié)點的最佳地選擇的替換節(jié)點中創(chuàng)建新的替換服務實例。
10.包括程序代碼裝置的計算機程序,當所述程序在計算機上運行時,用于執(zhí)行權(quán)利要求1到6中的任何一個權(quán)利要求所述的方法。
全文摘要
已經(jīng)被配置為進行自主故障轉(zhuǎn)移的網(wǎng)格協(xié)調(diào)器可以包括以通信方式鏈接到服務網(wǎng)格中的許多網(wǎng)格主機的監(jiān)視器。量度存儲器可以連接到監(jiān)視器并被配置為在網(wǎng)格主機中存儲單個服務實例的服務量度。優(yōu)化邏輯可以被編程為在為發(fā)生故障的網(wǎng)格主機中的一組服務實例存儲的量度,以及為提議的替換網(wǎng)格主機確定的平臺量度之間計算“最佳匹配”。最后,故障轉(zhuǎn)移處理器可以連接到監(jiān)視器和優(yōu)化邏輯并以通信方式鏈接到網(wǎng)格主機,以在提議的替換網(wǎng)格主機中創(chuàng)建新的一組服務實例,以便根據(jù)在優(yōu)化邏輯中計算的“最佳匹配”替換發(fā)生故障的網(wǎng)格主機中的服務實例集合。
文檔編號G06F11/34GK1784661SQ200480012004
公開日2006年6月7日 申請日期2004年5月13日 優(yōu)先權(quán)日2003年5月15日
發(fā)明者羅納德·多伊勒, 戴維·路易斯·卡明斯基 申請人:國際商業(yè)機器公司