專利名稱:支持大量間歇使用的應(yīng)用集群的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般性地涉及網(wǎng)絡(luò)計算。特別地,本發(fā)明提供了支持大量間歇使用的應(yīng)用集群的方法和系統(tǒng)。
背景技術(shù):
圖1描述了示意性現(xiàn)有技術(shù)系統(tǒng)10,其中,基于活動應(yīng)用集群24及其在主機群18中的位置的列表19,使用路由器和負(fù)載均衡器12從多個客戶機16(例如web瀏覽器等的web客戶端)向運行在主機群18上的應(yīng)用集群24(例如,運行web應(yīng)用的服務(wù)器)傳送應(yīng)用請求14。主機群18包括數(shù)臺主機20,每個主機20通常運行多個服務(wù)器進程22。每個服務(wù)器進程22服務(wù)于一個特定的應(yīng)用集群24(例如,應(yīng)用集群“a”,“b”,或者“c”),并且該應(yīng)用集群24可有幾個專用于它的服務(wù)器進程22。服務(wù)器進程22是其服務(wù)的應(yīng)用集群24的“成員”。在圖1中,存在三個應(yīng)用集群24。標(biāo)記(即,標(biāo)記為“a”,“b”,或者“c”)每個服務(wù)器進程22以指示該服務(wù)器進程22支持的應(yīng)用集群24。應(yīng)用布置系統(tǒng)28確定每個應(yīng)用集群24的服務(wù)器進程22的數(shù)量,并確定在主機群18中的何處放置每一個服務(wù)器進程22??梢允謩?例如,通過操作員,管理員等)或者自動地執(zhí)行應(yīng)用布置。假定系統(tǒng)10的操作在本領(lǐng)域技術(shù)人員的理解范圍內(nèi)。因此,在此不提供系統(tǒng)10的操作的具體討論。
系統(tǒng)10不能對大量的應(yīng)用集群24進行有效的衡量,尤其當(dāng)應(yīng)用集群24不是在任意給定的時刻全部同時使用的時候。例如,考慮系統(tǒng)10不是只支持三個應(yīng)用群集,而是支持?jǐn)?shù)以百計或者千計的應(yīng)用集群24的情況。由于主機20的物理限制導(dǎo)致每個主機20只能運行有限數(shù)目的服務(wù)器進程22,因此將需要大量的主機20來提供支持大量應(yīng)用集群24所需的所有服務(wù)器進程22。并且,相當(dāng)部分的應(yīng)用集群24在任意給定的時刻可能是未被使用的,這導(dǎo)致了低的資源利用率。
因此,需要響應(yīng)時變負(fù)荷或其他事件,自動地啟動和終止用于應(yīng)用集群的服務(wù)器進程。
發(fā)明內(nèi)容
一般地,本發(fā)明提供了一種用于支持大量間歇使用的應(yīng)用集群的方法和系統(tǒng),其中始終不消耗完運行所有應(yīng)用集群的服務(wù)器進程所需的所有資源。特別地,本發(fā)明響應(yīng)于時變提供的負(fù)荷或其他事件(例如,一天之內(nèi)的時間,用戶策略等),自動地啟動和終止主機群中應(yīng)用集群的服務(wù)器進程。這解放出主機容量,于是可利用該容量運行其他應(yīng)用集群的附加服務(wù)器進程,或者服務(wù)于其他需要。因此,與其能夠并發(fā)運行的進程相比,該主機群能支持更多的服務(wù)器進程。
本發(fā)明將應(yīng)用集群分成兩組活動的和休眠的。根據(jù)設(shè)置的策略來確定應(yīng)用集群是活動的還是休眠的,并且可能有幾種不同類型的策略。當(dāng)應(yīng)用集群處于休眠狀態(tài)時,應(yīng)用布置系統(tǒng)可停止部分或全部的集群成員,以釋放出用于其他用途的計算容量。提供“保持區(qū)”以臨時保持對沒有服務(wù)器進程的應(yīng)用集群的應(yīng)用請求。響應(yīng)于接收到對此種應(yīng)用集群(必定是休眠狀態(tài)的)的應(yīng)用請求,使該應(yīng)用集群處于活動狀態(tài),為該應(yīng)用集群啟動某些服務(wù)器進程,臨時保持的請求被導(dǎo)向新的服務(wù)器進程。
本發(fā)明的第一方面涉及用于支持大量間歇使用的應(yīng)用集群的方法,該方法包括在保持區(qū)保持對休眠應(yīng)用集群的應(yīng)用請求;將休眠應(yīng)用集群的狀態(tài)改變?yōu)榛顒訝顟B(tài);將未使用的活動應(yīng)用集群的狀態(tài)改變?yōu)樾菝郀顟B(tài);停止新休眠的應(yīng)用集群的服務(wù)器進程;啟動新活動的應(yīng)用集群的服務(wù)器進程;以及將保持在保持區(qū)的應(yīng)用請求導(dǎo)向新活動的應(yīng)用集群的服務(wù)器進程。應(yīng)注意,根據(jù)本發(fā)明的具體實施和其他因素,以上方法步驟可以以多種不同順序(甚至同時地)執(zhí)行。例如,未被使用的活動應(yīng)用集群的狀態(tài)能被改變?yōu)樾菝?,并且在新活動的?yīng)用集群實際需要那些服務(wù)器進程之前,停止其對應(yīng)的服務(wù)器進程。就這一點而論,不打算以任何方式限制方法步驟的順序。
本發(fā)明的第二方面涉及一種用于支持大量間歇使用的應(yīng)用集群的系統(tǒng),該系統(tǒng)包括用于保持對休眠應(yīng)用集群的應(yīng)用請求的保持區(qū);用于將休眠應(yīng)用集群的狀態(tài)改變?yōu)榛顒訝顟B(tài)的系統(tǒng);用于將未使用的活動應(yīng)用集群的狀態(tài)改變?yōu)樾菝郀顟B(tài)的系統(tǒng);用于停止新休眠的應(yīng)用集群的服務(wù)器進程的系統(tǒng);用于啟動新活動的應(yīng)用集群的服務(wù)器進程的系統(tǒng);以及用于將保持在保持區(qū)的應(yīng)用請求導(dǎo)向新活動的應(yīng)用集群的服務(wù)器進程的系統(tǒng)。
本發(fā)明的第三方面涉及一種存儲在可記錄介質(zhì)上、用于支持大量間歇使用的應(yīng)用集群的程序產(chǎn)品,當(dāng)其被執(zhí)行時,該程序產(chǎn)品包括用于在保持區(qū)保持對休眠應(yīng)用集群的應(yīng)用請求的程序代碼;用于將休眠應(yīng)用集群的狀態(tài)改變?yōu)榛顒訝顟B(tài)的程序代碼;用于將未使用的活動應(yīng)用集群的狀態(tài)改變?yōu)樾菝郀顟B(tài)的程序代碼;用于停止新休眠的應(yīng)用集群的服務(wù)器進程的程序代碼;用于啟動新活動的應(yīng)用集群的服務(wù)器進程的程序代碼;以及用于將保持在保持區(qū)的應(yīng)用請求導(dǎo)向新活動的應(yīng)用集群的服務(wù)器進程的程序代碼。
本發(fā)明的第四方面涉及一種部署用于支持大量間歇使用的應(yīng)用集群的應(yīng)用的方法,該方法包括提供能進行以下操作的計算機基礎(chǔ)架構(gòu)在保持區(qū)保持對休眠應(yīng)用集群的應(yīng)用請求;將休眠的應(yīng)用集群的狀態(tài)改變?yōu)榛顒訝顟B(tài);將未使用的活動應(yīng)用集群的狀態(tài)改變?yōu)樾菝郀顟B(tài);停止新休眠的應(yīng)用集群的服務(wù)器進程;啟動新活動的應(yīng)用集群的服務(wù)器進程;并且將保持在保持區(qū)的應(yīng)用請求導(dǎo)向新活動的應(yīng)用集群的服務(wù)器進程。
本發(fā)明的第五個方面涉及一種體現(xiàn)在傳播信號中的用于支持大量間歇性使用的應(yīng)用集群的計算機軟件,該計算機軟件包括使計算機系統(tǒng)執(zhí)行下述功能的指令在保持區(qū)保持對休眠應(yīng)用集群的應(yīng)用請求;將休眠應(yīng)用集群的狀態(tài)改變?yōu)榛顒訝顟B(tài);將未使用的活動應(yīng)用集群的狀態(tài)改變?yōu)樾菝郀顟B(tài);停止新休眠的應(yīng)用集群的服務(wù)器進程;啟動新活動的應(yīng)用集群的服務(wù)器進程;并且將保持在保持區(qū)的應(yīng)用請求導(dǎo)向新活動的應(yīng)用集群的服務(wù)器進程。
通過下面結(jié)合附圖對本發(fā)明的各方面的具體描述,將更容易理解本發(fā)明的這些和其他特征,其中圖1根據(jù)現(xiàn)有技術(shù),描述了用于從多個客戶機向主機群中的應(yīng)用集群傳送應(yīng)用請求的系統(tǒng)。
圖2根據(jù)本發(fā)明的實施例,描述了用于從多個客戶機向主機群中的應(yīng)用集群傳送應(yīng)用請求的系統(tǒng)。
圖3描述了根據(jù)本發(fā)明實施例的方法的流程圖。
圖4描述了圖2所示系統(tǒng)的一部分。
圖5根據(jù)本發(fā)明的另一個實施例,描述了用于從多個客戶機向主機群中的應(yīng)用集群傳送應(yīng)用請求的系統(tǒng)。
圖6描述了用于實現(xiàn)本發(fā)明的計算機系統(tǒng)。
附圖只是示意性的表示,不是旨在說明本發(fā)明的具體參數(shù)。附圖旨在描述本發(fā)明的典型實施例,因此不應(yīng)被理解為限制本發(fā)明的范圍。在附圖中,相同數(shù)字代表相同單元。
具體實施例方式
如上所指述,本發(fā)明提供了一種用于支持大量間歇性使用的應(yīng)用集群的方法和系統(tǒng),其中始終不消耗完運行所有應(yīng)用集群的服務(wù)器進程所需的所有資源。特別地,本發(fā)明響應(yīng)時變提供的負(fù)荷或其他事件(例如,當(dāng)天的時間,用戶策略等),自動地啟動和終止主機群中的應(yīng)用集群的服務(wù)器進程。這解放出了主機容量,使得可利用該主機容量運行活動應(yīng)用集群的附加服務(wù)器進程,或者服務(wù)于其他需要。因此,與其能夠并發(fā)運行的進程相比,該主機群能支持更多的服務(wù)器進程。
圖2說明了根據(jù)本發(fā)明實施例的系統(tǒng)100,其中,根據(jù)活動應(yīng)用集群116及其在主機群108中的位置的列表110,使用路由器和負(fù)載均衡器102從多個客戶機106向運行在主機群108上的應(yīng)用集群116傳送應(yīng)用請求104。主機群108包括數(shù)臺主機(節(jié)點)112,每個主機112通常運行多個服務(wù)器進程114。每個服務(wù)器進程114服務(wù)于一個特定的應(yīng)用集群116(例如,應(yīng)用集群“a”,“b”,...“f”),并且該應(yīng)用集群116可以有數(shù)個專用于它的服務(wù)器進程114。應(yīng)用集群116中的服務(wù)器進程114也被稱為集群成員。
在圖2中,應(yīng)用集群116“a”,“b”,和“c”當(dāng)前處于活動狀態(tài),而應(yīng)用集群116“d”,“e”,和“f”當(dāng)前處于休眠狀態(tài)。當(dāng)前活動的和休眠的應(yīng)用集群116的列表120,122被存儲在存儲單元124(例如,數(shù)據(jù)庫)中。活動的和休眠的應(yīng)用集群116的列表120,122不必是圖2所示的外部數(shù)據(jù)庫。例如,能通過標(biāo)記已經(jīng)保存在其他地方(例如,在后述的應(yīng)用布置管理器128中和/或活動應(yīng)用替代管理器130中)的信息來維護列表120,122。
應(yīng)用布置系統(tǒng)126確定每個活動應(yīng)用集群116所需的服務(wù)器進程114的數(shù)量,并確定在主機群108的主機112上的何處放置該服務(wù)器進程114??梢允謩?例如,通過操作員,管理員等)或者自動地執(zhí)行應(yīng)用布置。圖2所示的應(yīng)用布置系統(tǒng)126能提供對活動應(yīng)用集群116及其位置的列表110的更新。也可由其他來源,包括例如主機112和/或服務(wù)器進程114自身,或者通過系統(tǒng)100中的某些其他管理部件來提供更新。
系統(tǒng)100包括至少一個保持區(qū)128,用于臨時保持對休眠應(yīng)用集群116的應(yīng)用請求104。在圖2中,例如,路由器和負(fù)載均衡器102已經(jīng)接收了對應(yīng)用集群“f”的應(yīng)用請求。路由器和負(fù)載均衡器102已確定或者已被告知應(yīng)用集群“f”是休眠的,并已向保持區(qū)128發(fā)送對應(yīng)用集群“f”的應(yīng)用請求104。在圖中,無陰影的三角形表示對活動應(yīng)用集群116的應(yīng)用請求104,有陰影的三角形表示對休眠應(yīng)用集群116的應(yīng)用請求104。保持區(qū)128可以包括緩沖器或其他合適的存儲設(shè)備。一般地,保持區(qū)128保持因為針對當(dāng)前沒有服務(wù)器進程114的休眠應(yīng)用集群116而不能立刻被服務(wù)的應(yīng)用請求104。應(yīng)注意,可在本發(fā)明的實踐中使用任何合適的現(xiàn)在已知的或者以后開發(fā)的路由器和負(fù)載均衡器102。
應(yīng)用集群116的休眠狀態(tài)可由路由器和負(fù)載均衡器102以多種不同的方式確定,或以多種不同方式提供給路由器和負(fù)載均衡器102。例如,路由器和負(fù)載均衡器102能檢查由應(yīng)用布置系統(tǒng)126提供的活動應(yīng)用集群116及其位置的列表110,來確定對應(yīng)于從客戶機106接收到的應(yīng)用請求104的應(yīng)用集群116是活動的還是休眠的。也可以有其他用于確定應(yīng)用集群116的休眠的技術(shù)。無論應(yīng)用集群116的休眠是如何確定的,路由器和負(fù)載均衡器102均向保持區(qū)128傳送對休眠應(yīng)用集群116的應(yīng)用請求104。
如圖所示,保持區(qū)128可以是系統(tǒng)100的單獨子系統(tǒng),也可以被內(nèi)置于路由器和負(fù)載均衡器102中。保持區(qū)128也可以位于系統(tǒng)100中的其他位置。例如,從路由器和負(fù)載均衡器102(也參見圖5)的角度看,保持區(qū)128可作為正常服務(wù)器進程114出現(xiàn)。這允許保持區(qū)128在不必改變路由器和負(fù)載均衡器102的情況下工作。這意味著本發(fā)明可以廣泛多樣的方式應(yīng)用于提供路由和負(fù)載平衡的系統(tǒng)。在該情況下,路由器和負(fù)載均衡器102將不區(qū)分休眠應(yīng)用集群116和活動應(yīng)用集群116。相反地,不管應(yīng)用集群116是休眠的,或者是活動的,應(yīng)用布置系統(tǒng)126均將向路由器和負(fù)載均衡器102通知每個應(yīng)用集群116,設(shè)置路由器和負(fù)載均衡器102以便向保持區(qū)128傳送對沒有服務(wù)器進程114的每個應(yīng)用集群116的請求,并且設(shè)置路由器和負(fù)載均衡器102以便將針對具有某些服務(wù)器進程114的每個應(yīng)用集群116的應(yīng)用請求104傳送給那些服務(wù)器進程。應(yīng)當(dāng)注意,在某些情況下,可以允許休眠應(yīng)用集群116保持某些服務(wù)器進程,直至為一些其他任務(wù)而確定地需要其計算容量。
可以以多種方式完成使應(yīng)用請求104從一個間歇性進程到另一個(例如,從路由器和負(fù)載均衡器102到保持區(qū)128,從保持區(qū)128到服務(wù)器進程114等)的過程。例如,其可包含直接轉(zhuǎn)發(fā)。一個可選方式是向客戶機106返回附有注解說明的應(yīng)用請求104,該注解說明表示向期望目的地重新傳送應(yīng)用請求104(例如,在300范圍內(nèi)的超文本傳輸協(xié)議響應(yīng)代碼,其通知進行重定向)。進一步地,能在客戶機106上有效地定位保持區(qū)128如下為了將應(yīng)用請求104放置在保持區(qū)中,向客戶機106返回應(yīng)答,使得客戶機106暫停一段時間,然后再次發(fā)送應(yīng)用請求。
系統(tǒng)100進一步包括活動應(yīng)用替代管理器130,用于改變應(yīng)用集群116的活動/休眠狀態(tài)。保持區(qū)128告知活動應(yīng)用替代管理器130已經(jīng)接收到對休眠應(yīng)用集群116的應(yīng)用請求104。作為應(yīng)答,活動應(yīng)用替代管理器130將主機群108中未使用的當(dāng)前處于活動狀態(tài)的應(yīng)用集群116的狀態(tài)改變?yōu)樾菝郀顟B(tài),將由在保持區(qū)128中保持的應(yīng)用請求104所請求的休眠應(yīng)用集群116的狀態(tài)改變?yōu)榛顒訝顟B(tài)。相應(yīng)更新活動和休眠應(yīng)用集群116的列表120,122,向活動應(yīng)用集群116及其位置的列表110通知有關(guān)新休眠應(yīng)用集群116的情況。根據(jù)更新的列表120,122,應(yīng)用布置系統(tǒng)126停止對應(yīng)于新休眠應(yīng)用集群116的應(yīng)用集群116中的(某些或者全部)服務(wù)器進程114,并啟動若干服務(wù)器進程114,以啟動主機群108中對應(yīng)于新活動應(yīng)用集群116的應(yīng)用集群116。應(yīng)注意,可以將應(yīng)用布置系統(tǒng)126提供的功能合并進活動應(yīng)用替代管理器130中。新啟動的應(yīng)用集群116的更新狀態(tài)被反映在活動應(yīng)用集群116及其位置的列表110中。然后,保持區(qū)128向路由器和負(fù)載均衡器102轉(zhuǎn)發(fā)對新啟動的應(yīng)用集群116的應(yīng)用請求104,然后,路由器和負(fù)載均衡器102轉(zhuǎn)發(fā)應(yīng)用請求104到主機群108中的相應(yīng)服務(wù)器進程114以提供服務(wù)。
活動應(yīng)用替代管理器130監(jiān)視主機群108中的當(dāng)前活動的應(yīng)用集群116的使用情況,并根據(jù)該使用情況決定將哪個活動應(yīng)用集群116改變?yōu)樾菝摺@?,如果?yīng)用集群116在過去的一定時間內(nèi)還沒有接收到應(yīng)用請求104,則活動應(yīng)用替代管理器130可以認(rèn)為該應(yīng)用集群116應(yīng)被改為休眠狀態(tài)??蓮南到y(tǒng)100中幾個不同的來源,包括例如路由器和負(fù)載均衡器102,主機112,服務(wù)器進程114,或者從一些其他的管理部件獲得應(yīng)用使用數(shù)據(jù)。也可有其他多種用于確定應(yīng)用使用情況的技術(shù)?;顒討?yīng)用替代管理器130還可以使用其他策略,條件,計劃等(可以考慮到或沒有考慮到應(yīng)用使用情況)來確定將哪個活動應(yīng)用集群116改為休眠狀態(tài)。
圖3圖解了根據(jù)本發(fā)明實施例的方法的示意流程圖200。在流程圖300的下述描述中,將參照圖2所示的系統(tǒng)100的部件。流程圖200中所參照的步驟在圖2中也進行了說明。
在步驟S1中,路由器和負(fù)載均衡器102接收客戶機106所發(fā)送的應(yīng)用請求104(例如,針對應(yīng)用集群“f”的)。在步驟S2中,路由器和負(fù)載均衡器102確定或者被告知在主機群108中應(yīng)用集群“f”是否有服務(wù)器進程114。如果該應(yīng)用請求104是針對具有一些服務(wù)器進程114的應(yīng)用集群116的請求,則以常規(guī)方式處理應(yīng)用請求104(步驟S10)。在步驟S3中,對休眠應(yīng)用集群“f”的應(yīng)用請求104被傳送給保持區(qū)128。在接收到對休眠應(yīng)用集群“f”的應(yīng)用請求104之后,保持區(qū)128通知活動應(yīng)用替代管理器130已經(jīng)接收(步驟S4)了對休眠應(yīng)用集群“f”的應(yīng)用請求104。在步驟S5中,在收到有關(guān)保持區(qū)128已經(jīng)接收了對休眠應(yīng)用集群“f”的應(yīng)用請求104的通知后,活動應(yīng)用替代管理器130將至少一個當(dāng)前是活動狀態(tài)但未使用的應(yīng)用集群116(例如,應(yīng)用集群“c”)的狀態(tài)改變?yōu)樾菝郀顟B(tài),并將休眠應(yīng)用集群“f”的狀態(tài)改變?yōu)榛顒訝顟B(tài)。在步驟S6中,更新活動和休眠應(yīng)用集群116的列表120,122,并更新活動應(yīng)用集群116及其位置的列表110,以反映出新休眠應(yīng)用集群“c”的休眠。在步驟S7中,基于被更新的列表120,122,應(yīng)用布置系統(tǒng)126停止對應(yīng)于新休眠應(yīng)用集群“c”的應(yīng)用集群116中的(某些或者全部)服務(wù)器進程114,并在主機群108中啟動新啟動的應(yīng)用集群“f”的若干服務(wù)器進程114。圖4例示了主機群108如何在過程中觀察此點。如圖4所示,主機群108現(xiàn)包括應(yīng)用集群“f”的服務(wù)器進程114,而不存在應(yīng)用集群“c”的服務(wù)器進程114。在步驟S8中,針對新啟動的應(yīng)用集群“f”,活動應(yīng)用集群116及其位置的列表110被更新。在步驟S9中,從保持區(qū)128向路由器和負(fù)載均衡器102轉(zhuǎn)發(fā)對新啟動的應(yīng)用集群“f”的應(yīng)用請求104,然后路由器和負(fù)載均衡器102向主機群108中的相應(yīng)服務(wù)器進程114轉(zhuǎn)發(fā)(步驟S10)對新啟動的應(yīng)用集群“f”的應(yīng)用請求104以提供服務(wù)(也見圖4)。當(dāng)通過向客戶機106發(fā)送消息以指示客戶機106在超時后重新發(fā)送應(yīng)用請求104來實現(xiàn)保持區(qū)128時,步驟S9將由客戶機106或者客戶機代理執(zhí)行。
圖5圖解了根據(jù)本發(fā)明的另一實施例,用于從多個客戶機106向主機群108中的應(yīng)用集群116傳送應(yīng)用請求104的系統(tǒng)300。在系統(tǒng)300中,保持區(qū)128現(xiàn)在被提供作為主機群108中主機112上的服務(wù)器進程114。在操作中,路由器和負(fù)載均衡器102接收(步驟A,圖5)客戶機106發(fā)送的應(yīng)用請求104(例如,應(yīng)用集群“f”的)。當(dāng)應(yīng)用集群116是休眠狀態(tài)時,路由器和負(fù)載均衡器102被設(shè)置為向保持區(qū)128的服務(wù)器進程(運行在圖5示例中的節(jié)點4上)傳送對休眠應(yīng)用集群116的應(yīng)用請求104。保持區(qū)128象正常服務(wù)器進程一樣運作,只要涉及路由器和負(fù)載均衡器102或者瀏覽器。因此,不需要改變當(dāng)前的負(fù)載平衡和路由技術(shù)。在本實施例中,路由器和負(fù)載均衡器102不區(qū)分休眠和活動應(yīng)用集群116,并以常規(guī)的方式進行配置。當(dāng)應(yīng)用集群116是活動狀態(tài)時,路由器和負(fù)載均衡器102被配置成向活動應(yīng)用集群116的成員傳送對活動應(yīng)用集群116的應(yīng)用請求104。
在接收了對休眠應(yīng)用集群“f”的應(yīng)用請求104之后,保持區(qū)128告知活動應(yīng)用替代管理器130已經(jīng)接收到對休眠應(yīng)用集群“f”的應(yīng)用請求104(步驟D)。在接收到保持區(qū)128已經(jīng)接收了對休眠應(yīng)用集群“f”的應(yīng)用請求104的通知后,活動應(yīng)用替代管理器130將主機群108中處于活動狀態(tài)但未使用的應(yīng)用集群116(例如,應(yīng)用集群“c”)的狀態(tài)改變?yōu)樾菝?,并將休眠?yīng)用集群“f”的狀態(tài)改變?yōu)榛顒?步驟E)。然后活動和休眠應(yīng)用集群116的列表120,122被更新(步驟F),并且活動應(yīng)用集群116及其位置的列表110被更新以反映新休眠應(yīng)用集群“c”的休眠(步驟G)。路由器和負(fù)載均衡器102將對新休眠應(yīng)用集群“c”的應(yīng)用請求104導(dǎo)向保持區(qū)128。根據(jù)更新后的活動和休眠應(yīng)用集群116的列表120,122,應(yīng)用布置系統(tǒng)126停止應(yīng)用集群116中的對應(yīng)于新休眠應(yīng)用集群“c”的(某些或者全部)服務(wù)器進程114,并在主機群108中啟動對應(yīng)于新啟動的應(yīng)用集群“f”的若干服務(wù)器進程114(步驟H)。然后,活動應(yīng)用集群116及其位置的列表110被更新(步驟I),以包括新啟動的應(yīng)用集群“f”。然后,活動應(yīng)用替代管理器130通知保持區(qū)128對應(yīng)于保持區(qū)128中保持的應(yīng)用請求104的應(yīng)用集群“f”已經(jīng)啟動(步驟J)。然后,保持區(qū)128向主機群108中相應(yīng)服務(wù)器進程114轉(zhuǎn)發(fā)對新啟動的應(yīng)用集群“f”的應(yīng)用請求以提供服務(wù)(步驟K)。
圖5圖解了用于實施本發(fā)明的說明性系統(tǒng)500。說明性系統(tǒng)500僅是可用于本發(fā)明的實踐中的諸多不同系統(tǒng)中的一個,并且不是限定性的。
系統(tǒng)500包括計算機系統(tǒng)502等,其可以提供這里所述的功能。計算機系統(tǒng)502通過網(wǎng)絡(luò)504被連接到至少一個客戶機106和包含多臺主機112的主機群108。網(wǎng)絡(luò)504旨在代表能傳輸數(shù)據(jù)的任何類型的網(wǎng)絡(luò)。例如,網(wǎng)絡(luò)504可以包括因特網(wǎng),廣域網(wǎng)(WAN),局域網(wǎng)(LAN),虛擬專用網(wǎng)(VPN),WiFi網(wǎng),個人局域網(wǎng)(PAN),或者其他類型的網(wǎng)絡(luò)。因此,可以經(jīng)由直接硬接線連接或者在客戶機-服務(wù)器(或者服務(wù)器-服務(wù)器)的環(huán)境(可以使用有線和/或者無線傳輸方式的任意組合)中的可尋址連接進行通信。在后一個實例中,服務(wù)器和客戶機可以使用常規(guī)網(wǎng)絡(luò)連接,例如令牌環(huán),以太網(wǎng),WiFi或者其他常規(guī)的通信標(biāo)準(zhǔn)。在客戶機與服務(wù)器經(jīng)由因特網(wǎng)進行通信的情況下,可通過常規(guī)的基于TCP/IP套接字的協(xié)議提供連通性。在本實例中,客戶機將利用因特網(wǎng)服務(wù)提供商建立到計算機系統(tǒng)502的連接。
實踐本發(fā)明所需的數(shù)據(jù)(例如,活動應(yīng)用集群116及其位置的列表110,活動和休眠應(yīng)用集群116的列表120,122等)可以被本地存儲到計算機系統(tǒng)502中,例如,存儲在存儲單元506中,和/或可以通過例如網(wǎng)絡(luò)504的網(wǎng)絡(luò)來提供。存儲單元506可以包括在本發(fā)明中能夠提供數(shù)據(jù)和信息存儲的任何系統(tǒng)。同樣地,存儲單元506可位于單一物理位置,包括一種或多種數(shù)據(jù)存儲類型,或者可以以多種形式分布于多個物理系統(tǒng)上。在另一個實施例中,存儲單元506可以分布在例如局域網(wǎng)(LAN)上,廣域網(wǎng)(WAN)上,或者存儲區(qū)域網(wǎng)(SAN)上(未示出)。
如圖所示,計算機系統(tǒng)502通常包括處理器508,存儲器510,總線512,輸入/輸出(I/O)接口514和外部設(shè)備/資源516??蛻魴C106和主機112通常包括相似的部件(例如,處理器,存儲器,總線,輸入/輸出(I/O)接口,以及外部設(shè)備/資源)。
處理器508可以包括單個處理單元,或者可以分布在一個或多個位置的一個或多個處理單元上,例如,位于客戶機和服務(wù)器上。存儲器510可以包括任何已知類型的數(shù)據(jù)存儲和/或傳輸介質(zhì),包括磁介質(zhì),光介質(zhì),隨機存取存儲器(RAM),只讀存儲器(ROM)等。此外,與處理器508相似,存儲器510可位于單一物理位置,包括一種或多種數(shù)據(jù)存儲,或者以多種形式被分布于多個物理系統(tǒng)上。
I/O接口514可以包括用于向/從外部源交換信息的任何系統(tǒng)。外部設(shè)備/資源516可以包括任何已知類型的外部設(shè)備,包括揚聲器,CRT,LED顯示屏,手持設(shè)備,鍵盤,鼠標(biāo),聲音識別系統(tǒng),語音輸出系統(tǒng),打印機,監(jiān)視器/顯示屏,傳真機,尋呼機等。
總線512提供了計算機系統(tǒng)502中每個部件之間的通信鏈路,并同樣地可以包括任何已知類型的傳輸鏈路,包括電氣的,光學(xué)的,無線的等等。此外,盡管沒有示出,例如高速緩沖存儲器,通信系統(tǒng),系統(tǒng)軟件等的其他部件可以被合并到計算機系統(tǒng)502中。
存儲器510中示出了路由器和負(fù)載均衡器518,活動應(yīng)用替代管理器520,以及應(yīng)用布置系統(tǒng)522,其每一個都可被提供為計算機程序產(chǎn)品。路由器和負(fù)載均衡器518,活動應(yīng)用替代管理器520,以及應(yīng)用布置系統(tǒng)522分別提供了前面參照路由器和負(fù)載均衡器102,活動應(yīng)用替代管理器130,以及應(yīng)用布置系統(tǒng)126描述的功能(圖2)。在存儲器中還示出了用于保持對休眠應(yīng)用集群116(例如,休眠應(yīng)用集群“f”)的應(yīng)用請求526的保持區(qū)524。
路由器和負(fù)載均衡器518接收由客戶機106通過網(wǎng)絡(luò)504發(fā)送的應(yīng)用請求526(例如,應(yīng)用集群“f”的)。路由器和負(fù)載均衡器518確定或者被告知應(yīng)用集群“f”是休眠的。結(jié)果,對休眠應(yīng)用集群“f”的應(yīng)用請求526被傳送到保持區(qū)524。在接收到對休眠應(yīng)用集群“f”的應(yīng)用請求526之后,保持區(qū)524告知活動應(yīng)用替代管理器520已經(jīng)接收到對休眠應(yīng)用集群“f”的應(yīng)用請求526。在接收到有關(guān)保持區(qū)524已經(jīng)接收了對休眠應(yīng)用集群“f”的應(yīng)用請求526的通知之后,活動應(yīng)用替代管理器520將至少一個當(dāng)前處于活動狀態(tài)但未使用的應(yīng)用集群116(例如,應(yīng)用集群“c”)的狀態(tài)改變?yōu)樾菝?,并將休眠?yīng)用集群“f”的狀態(tài)改變?yōu)榛顒?。可以根?jù)例如存儲在存儲器510和/或存儲設(shè)備506中的應(yīng)用使用情況數(shù)據(jù)528來決定把哪一個當(dāng)前活動的應(yīng)用集群116轉(zhuǎn)換成休眠應(yīng)用集群116。根據(jù)狀態(tài)改變,活動和休眠應(yīng)用集群116的列表120,122被更新,并且更新活動應(yīng)用集群116及其位置的列表110,以反映出新休眠應(yīng)用集群“c”的休眠。根據(jù)更新后的列表120,122,應(yīng)用布置系統(tǒng)522停止應(yīng)用集群116中對應(yīng)于新休眠應(yīng)用集群“c”的(部分或全部)服務(wù)器進程114,并啟動若干服務(wù)器進程114以啟動主機群108中對應(yīng)于新啟動的應(yīng)用集群“f”的應(yīng)用集群116。然后,針對新啟動的應(yīng)用集群“f”,更新活動應(yīng)用集群116及其位置的列表110,并且從保持區(qū)524(例如,經(jīng)由路由器和負(fù)載均衡器518)向主機群108中適當(dāng)?shù)姆?wù)器進程114轉(zhuǎn)發(fā)對新啟動的應(yīng)用集群“f”的應(yīng)用請求526以提供服務(wù)。
應(yīng)當(dāng)理解,本發(fā)明的教導(dǎo)可被提供為基于預(yù)訂或收費的商業(yè)方法。例如,可由為客戶提供這里所描述的功能的服務(wù)提供商創(chuàng)建,維護,支持,和/或者部署系統(tǒng)500。即,服務(wù)提供商能被用來響應(yīng)時變提供的負(fù)荷而啟動/終止應(yīng)用集群的服務(wù)器進程。
應(yīng)當(dāng)理解,可以通過硬件,軟件,傳播信號,或者其任意組合來實現(xiàn)本發(fā)明。任何類型的計算機/服務(wù)器系統(tǒng)-或其他適合實施此處所述方法的裝置均是適合的。硬件和軟件的常見組合可以是具有計算機程序的通用計算機系統(tǒng),當(dāng)裝載并執(zhí)行計算機程序時,其實現(xiàn)這里所描述的各個方法??蛇x地,可以使用專用計算機,其包含實現(xiàn)本發(fā)明一個或多個功能任務(wù)的專用硬件。本發(fā)明還可以被嵌入計算機程序產(chǎn)品或者傳播信號中,該計算機程序產(chǎn)品或傳播信號包括允許實現(xiàn)這里所述方法的所有相應(yīng)特征,并且當(dāng)其被裝載進計算機系統(tǒng)中時,能實現(xiàn)這些方法。在本文中的計算機程序,傳播信號,軟件程序,程序,或者軟件是指以任何語言,代碼或者符號對一套指令的表述,該指令直接地或在經(jīng)過以下任一或全部處理后用來使具有信息處理能力的系統(tǒng)執(zhí)行特定功能(a)轉(zhuǎn)換到另一種語言,代碼或者符號;和/或(b)以不同的物質(zhì)形式再現(xiàn)。
前述對本發(fā)明優(yōu)選實施例的描述旨在說明和解釋。其目的不是詳盡列舉本發(fā)明或?qū)⒈景l(fā)明限制為所公開的具體形式,并且明顯地,可以作出許多修改和變化。例如,應(yīng)用集群116可以被主動地改為休眠狀態(tài),并且/或者可以響應(yīng)許多不同的境況,在多個不同的時間停止和啟動應(yīng)用集群116的成員。因此,對休眠應(yīng)用集群116的請求可能到達(dá),但當(dāng)時因為有足夠可用的計算容量,不需要停止任何其他服務(wù)器進程114即可啟動新服務(wù)器進程114;一種這樣的情況是,較早地主動停止一些其他服務(wù)器進程114,對于甚至更早地被主動標(biāo)記為休眠的應(yīng)用集群116。本領(lǐng)域的技術(shù)人員可想到的修改和變化應(yīng)被包含在本發(fā)明如所附權(quán)利要求定義的范圍之內(nèi)。
權(quán)利要求
1.一種用于支持大量間歇使用的應(yīng)用集群的方法,包括在保持區(qū)保持對休眠應(yīng)用集群的應(yīng)用請求;將休眠應(yīng)用集群的狀態(tài)改變?yōu)榛顒訝顟B(tài);將未使用的活動應(yīng)用集群的狀態(tài)改變?yōu)樾菝郀顟B(tài);停止新休眠的應(yīng)用集群的服務(wù)器進程;啟動新活動的應(yīng)用集群的服務(wù)器進程;以及將保持在保持區(qū)的應(yīng)用請求導(dǎo)向新活動的應(yīng)用集群的服務(wù)器進程。
2.如權(quán)利要求1所述的方法,其中將未使用的活動應(yīng)用集群的狀態(tài)改變?yōu)樾菝郀顟B(tài)并停止新休眠應(yīng)用集群的服務(wù)器進程的步驟能夠在將休眠應(yīng)用集群的狀態(tài)改變?yōu)榛顒訝顟B(tài)的步驟之前的任何時間執(zhí)行。
3.如權(quán)利要求1所述的方法,進一步包括監(jiān)視多個活動應(yīng)用集群的使用情況;以及根據(jù)監(jiān)視的應(yīng)用使用情況,選擇多個活動應(yīng)用集群中的將被改變?yōu)樾菝郀顟B(tài)的活動應(yīng)用集群。
4.如權(quán)利要求1所述的方法,進一步包括根據(jù)策略選擇將被改變?yōu)樾菝郀顟B(tài)的活動應(yīng)用集群。
5.如權(quán)利要求1所述的方法,進一步包括停止新休眠的應(yīng)用集群中的所有服務(wù)器進程。
6.如權(quán)利要求1所述的方法,其中應(yīng)用集群位于包括多臺主機的主機群上。
7.如權(quán)利要求1所述的方法,進一步包括響應(yīng)于狀態(tài)的改變,更新有關(guān)活動和休眠應(yīng)用集群的信息;以及根據(jù)更新后的信息,分別停止和啟動新休眠的和新活動的應(yīng)用集群中的服務(wù)器進程。
8.如權(quán)利要求1所述的系統(tǒng),進一步包括從客戶機接收應(yīng)用請求;確定對應(yīng)于從客戶機接收的應(yīng)用請求的應(yīng)用集群是處于活動狀態(tài)還是休眠狀態(tài);以及如果應(yīng)用集群被確定為處于休眠狀態(tài),則將該應(yīng)用請求導(dǎo)向保持區(qū)。
9.一種用于支持大量間歇性使用的應(yīng)用集群的系統(tǒng),包括用于保持對休眠應(yīng)用集群的應(yīng)用請求的保持區(qū);用于將休眠應(yīng)用集群的狀態(tài)改變?yōu)榛顒訝顟B(tài)的系統(tǒng);用于將未使用的活動應(yīng)用集群的狀態(tài)改變?yōu)樾菝郀顟B(tài)的系統(tǒng);用于停止新休眠的應(yīng)用集群的服務(wù)器進程的系統(tǒng);用于啟動新活動的應(yīng)用集群的服務(wù)器進程的系統(tǒng);以及用于將保持在保持區(qū)的應(yīng)用請求導(dǎo)向新活動應(yīng)用集群的服務(wù)器進程的系統(tǒng)。
10.如權(quán)利要求9所述的系統(tǒng),進一步包括用于監(jiān)視多個活動應(yīng)用集群的使用情況的系統(tǒng);以及用于根據(jù)監(jiān)視的應(yīng)用使用情況,選擇多個活動應(yīng)用集群中將被改變?yōu)樾菝郀顟B(tài)的活動應(yīng)用集群的系統(tǒng)。
11.如權(quán)利要求9所述的系統(tǒng),進一步包括用于根據(jù)策略選擇將被改變?yōu)樾菝郀顟B(tài)的活動應(yīng)用集群的系統(tǒng)。
12.如權(quán)利要求9所述的系統(tǒng),其中用于停止新休眠的應(yīng)用集群的服務(wù)器進程的系統(tǒng)停止在新休眠應(yīng)用集群中的所有服務(wù)器進程。
13.如權(quán)利要求9所述的系統(tǒng),其中應(yīng)用集群位于包括多臺主機的主機群上。
14.如權(quán)利要求9所述的系統(tǒng),進一步包括用于響應(yīng)于狀態(tài)的改變,更新有關(guān)活動和休眠應(yīng)用集群的信息的系統(tǒng);以及用于根據(jù)更新后的信息,分別停止和啟動新休眠的和新活動的應(yīng)用集群中的服務(wù)器進程的系統(tǒng)。
15.如權(quán)利要求9所述的系統(tǒng),進一步包括用于從客戶機接收應(yīng)用請求的系統(tǒng);用于確定對應(yīng)于從客戶機接收的應(yīng)用請求的應(yīng)用集群是處于活動狀態(tài)還是休眠狀態(tài)的系統(tǒng);以及如果應(yīng)用集群被確定為處于休眠狀態(tài),用于將應(yīng)用請求導(dǎo)向保持區(qū)的系統(tǒng)。
16.一種存儲在可記錄介質(zhì)上、用于支持大量間歇使用的應(yīng)用集群的程序產(chǎn)品,當(dāng)其被執(zhí)行時,包括用于在保持區(qū)中保持對休眠應(yīng)用集群的應(yīng)用請求的程序代碼;用于將休眠應(yīng)用集群的狀態(tài)改變?yōu)榛顒訝顟B(tài)的程序代碼;用于將未使用的活動應(yīng)用集群的狀態(tài)改變?yōu)樾菝郀顟B(tài)的程序代碼;用于停止新休眠應(yīng)用集群的服務(wù)器進程的程序代碼;用于啟動新活動應(yīng)用集群的服務(wù)器進程的程序代碼;以及用于將保持在保持區(qū)的應(yīng)用請求導(dǎo)向新活動應(yīng)用集群的服務(wù)器進程的程序代碼。
17.如權(quán)利要求16所述的程序產(chǎn)品,其中將未使用的活動應(yīng)用集群的狀態(tài)改變?yōu)樾菝郀顟B(tài)并停止新休眠應(yīng)用集群的服務(wù)器進程能夠在將休眠應(yīng)用集群的狀態(tài)改變?yōu)榛顒訝顟B(tài)之前的任何時間執(zhí)行。
18.如權(quán)利要求16所述的程序產(chǎn)品,進一步包括用于監(jiān)視多個活動應(yīng)用集群的使用情況的程序代碼;以及用于根據(jù)所監(jiān)視的應(yīng)用使用情況,選擇多個活動應(yīng)用集群中將被改變?yōu)樾菝郀顟B(tài)的活動應(yīng)用集群的程序代碼。
19.如權(quán)利要求16所述的程序產(chǎn)品,進一步包括用于根據(jù)策略,選擇將被改變?yōu)樾菝郀顟B(tài)的活動應(yīng)用集群的程序代碼。
20.如權(quán)利要求16所述的程序產(chǎn)品,進一步包括用于停止新休眠應(yīng)用集群中的所有服務(wù)器進程的程序代碼。
21.如權(quán)利要求16所述的程序產(chǎn)品,其中應(yīng)用集群位于包括多臺主機的主機群上。
22.如權(quán)利要求16所述的程序產(chǎn)品,進一步包括用于響應(yīng)狀態(tài)的改變,更新有關(guān)活動和休眠應(yīng)用集群的信息的程序代碼;以及用于根據(jù)更新后的信息,分別停止和啟動新休眠的和新活動的應(yīng)用集群中的服務(wù)器進程的程序代碼。
23.如權(quán)利要求16所述的程序產(chǎn)品,進一步包括用于從客戶機接收應(yīng)用請求的程序代碼;用于確定對應(yīng)于從客戶機接收的應(yīng)用請求的應(yīng)用集群是處于活動狀態(tài)還是休眠狀態(tài)的程序代碼;以及如果應(yīng)用集群被確定為處于休眠狀態(tài),用于將應(yīng)用請求導(dǎo)向保持區(qū)的程序代碼。
24.一種部署用于支持大量間歇使用的應(yīng)用集群的應(yīng)用的方法,包括提供可進行以下操作的計算機基礎(chǔ)架構(gòu)在保持區(qū)保持對休眠應(yīng)用集群的應(yīng)用請求;將休眠應(yīng)用集群的狀態(tài)改變?yōu)榛顒訝顟B(tài);將未使用的活動應(yīng)用集群的狀態(tài)改變?yōu)樾菝郀顟B(tài);停止新休眠應(yīng)用集群的服務(wù)器進程;啟動新活動應(yīng)用集群的服務(wù)器進程;以及將保持在保持區(qū)的應(yīng)用請求導(dǎo)向新活動的應(yīng)用集群的服務(wù)器進程。
25.一種嵌入在傳播信號中、用于支持大量間歇使用的應(yīng)用集群的計算機軟件,該計算機軟件包括使得計算機系統(tǒng)執(zhí)行以下功能的指令在保持區(qū)保持對休眠應(yīng)用集群的應(yīng)用請求;將休眠應(yīng)用集群的狀態(tài)改變?yōu)榛顒訝顟B(tài);將未使用的活動應(yīng)用集群的狀態(tài)改變?yōu)樾菝郀顟B(tài);停止新休眠應(yīng)用集群的服務(wù)器進程;啟動新活動應(yīng)用集群的服務(wù)器進程;以及將保持在保持區(qū)的應(yīng)用請求導(dǎo)向新活動的應(yīng)用集群的服務(wù)器進程。
全文摘要
本發(fā)明提供了用于支持大量間歇使用的應(yīng)用集群的方法和系統(tǒng),而始終不消耗完運行所有應(yīng)用集群服務(wù)器進程所需的所有資源。根據(jù)本發(fā)明的方法包括在保持區(qū)保持對休眠應(yīng)用集群的應(yīng)用請求;將休眠應(yīng)用集群的狀態(tài)改變?yōu)榛顒訝顟B(tài);將未使用的活動應(yīng)用集群的狀態(tài)改變?yōu)樾菝郀顟B(tài);停止新休眠應(yīng)用集群的服務(wù)器進程;啟動新活動應(yīng)用集群的服務(wù)器進程;并且將保持在保持區(qū)的應(yīng)用請求導(dǎo)向新活動的應(yīng)用集群的服務(wù)器進程。
文檔編號G06F9/46GK1755634SQ200510107510
公開日2006年4月5日 申請日期2005年9月23日 優(yōu)先權(quán)日2004年9月29日
發(fā)明者尼克勞斯·安內(nèi)羅西斯, 甄納洛·A.·庫莫, 埃里克·A.·道特利, 布賴恩·K.·馬丁, 戈瓦尼·帕斯費斯, 邁克爾·斯普利特澤, 艾瑟·N·坦塔維, 馬爾格扎塔·斯特恩德 申請人:國際商業(yè)機器公司