專利名稱:自動(dòng)識別在其上部署應(yīng)用的服務(wù)器的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明總體涉及計(jì)算機(jī)系統(tǒng),更具體地,涉及自動(dòng)識別多個(gè)服務(wù)器中最適合部署新應(yīng)用的一個(gè)服務(wù)器的技術(shù)。
背景技術(shù):
當(dāng)前,當(dāng)做出在服務(wù)器或服務(wù)器群集上部署新應(yīng)用的決定時(shí),管理員檢查候選服務(wù)器上的資源的可用性(即,存儲(chǔ)器、存儲(chǔ)設(shè)備和處理器的總的可用性),以及該新應(yīng)用是否與已經(jīng)存在于該候選服務(wù)器上的程序(即,操作系統(tǒng)、數(shù)據(jù)庫應(yīng)用、Java應(yīng)用、Web應(yīng)用等)兼容。然后,管理員在具有足夠的資源可用性的兼容的服務(wù)器之一上安裝該新應(yīng)用。
管理員知道還要考慮其他次要的因素。可將這些因素與上述的主要因素一起考慮,或在兩個(gè)或多個(gè)候選服務(wù)器間選擇哪個(gè)服務(wù)器具有部署新應(yīng)用所必需的資源可用性和兼容的相關(guān)程序(即,是“合格的”)。次要因素考慮每個(gè)合格服務(wù)器是否(a)正為同一用戶運(yùn)行另一應(yīng)用,(b)需要更多的應(yīng)用成為有利潤的(當(dāng)服務(wù)器提供者根據(jù)應(yīng)用使用得到支付時(shí)),(c)存在于提供稅收鼓勵(lì)的州或國家內(nèi),(d)提供其他商業(yè)動(dòng)機(jī),(e)是當(dāng)前可操作的,或(f)被作為淘汰或升級的目標(biāo)。
雖然上述的過程是有效的,但其是有些主觀性的,并且確定在哪個(gè)服務(wù)器上部署新應(yīng)用的過程需要得到改進(jìn)。
發(fā)明內(nèi)容
本發(fā)明涉及一種用于確定多個(gè)服務(wù)器中在其上安裝并執(zhí)行應(yīng)用的那一個(gè)服務(wù)器的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品。第一程序指令從多個(gè)服務(wù)器的每一個(gè)獲得關(guān)于它們各自的CPU、RAM和存儲(chǔ)設(shè)備的可用量的信息。第二程序指令確定這些服務(wù)器中具有執(zhí)行該應(yīng)用的足夠的CPU、RAM和存儲(chǔ)設(shè)備的一個(gè)或多個(gè)服務(wù)器。第三程序指令確定對于該一個(gè)或多個(gè)服務(wù)器的這些量中每一個(gè)的權(quán)重。第四程序指令為該一個(gè)或多個(gè)服務(wù)器中的每一個(gè),對它們各自的CPU、RAM和存儲(chǔ)設(shè)備的可用量的權(quán)重進(jìn)行求和。第五程序指令確定該一個(gè)或多個(gè)服務(wù)器中的哪一個(gè)具有最高總和,從而推薦具有最高總和的該服務(wù)器執(zhí)行該應(yīng)用根據(jù)本發(fā)明的特征,第一程序指令還獲得該多個(gè)服務(wù)器中的每一個(gè)是否具有該應(yīng)用在這多個(gè)服務(wù)器的每一個(gè)內(nèi)發(fā)揮作用所需的一個(gè)或多個(gè)程序的信息。第二程序指令確定具有足夠的資源和該應(yīng)用發(fā)揮作用所需的該一個(gè)或多個(gè)程序的一個(gè)或多個(gè)服務(wù)器。第三程序指令量化該一個(gè)或多個(gè)服務(wù)器的每一個(gè)內(nèi)的CPU、RAM和存儲(chǔ)設(shè)備的平均可用量。第六程序指令獲得在該一個(gè)或多個(gè)服務(wù)器的每一個(gè)上安裝該應(yīng)用的金融動(dòng)機(jī)的信息,并且相對于該一個(gè)或多個(gè)服務(wù)器的每一個(gè)內(nèi)的CPU、RAM和存儲(chǔ)設(shè)備的可用量的權(quán)重,確定對于該金融動(dòng)機(jī)的價(jià)值的權(quán)重。
本發(fā)明還涉及一種用于確定多個(gè)服務(wù)器中在其上安裝和執(zhí)行應(yīng)用的一個(gè)服務(wù)器的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品。第一程序指令在多個(gè)采樣時(shí)間從該多個(gè)服務(wù)器的每一個(gè)獲得關(guān)于它們各自的CPU利用量的信息。第二程序指令在該多個(gè)采樣時(shí)間獲得該應(yīng)用在這些服務(wù)器的每一個(gè)上的CPU利用量的估計(jì)。第三程序指令在每個(gè)采樣時(shí)間為該多個(gè)服務(wù)器的每一個(gè),將它們各自的CPU利用量與該應(yīng)用的估計(jì)CPU利用量組合在一起。第三程序指令還部分地根據(jù)該多個(gè)服務(wù)器各自的CPU利用量與該應(yīng)用的估計(jì)CPU利用量的相應(yīng)組合,確定在該多個(gè)服務(wù)器中的哪一個(gè)上執(zhí)行該應(yīng)用。
圖1是本發(fā)明結(jié)合在其中的計(jì)算機(jī)系統(tǒng)的方框圖;圖2(A)和2(B)構(gòu)成一個(gè)流程圖,其示出了根據(jù)本發(fā)明從一列可用服務(wù)器中識別在其上部署新應(yīng)用的一個(gè)或多個(gè)合格服務(wù)器,然后在這些合格服務(wù)器中的一個(gè)上啟動(dòng)該新應(yīng)用的部署;圖3(A)和3(B)構(gòu)成流程圖,其示出了圖2(A)和2(B)的程序內(nèi)根據(jù)本發(fā)明的一個(gè)實(shí)施例的確定在多個(gè)合格服務(wù)器中的哪一個(gè)上部署新應(yīng)用的功能;圖4(A)和4(B)構(gòu)成流程圖,其示出了圖2(A)和2(B)的程序內(nèi)根據(jù)本發(fā)明的另一實(shí)施例的確定將在多個(gè)合格服務(wù)器中的哪一個(gè)上部署新應(yīng)用的功能。
具體實(shí)施例方式
現(xiàn)在將參照附圖詳細(xì)描述本發(fā)明。圖1示出了本發(fā)明可以結(jié)合在其中的總體指示為10的計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)系統(tǒng)10包括管理服務(wù)器12,其包括標(biāo)準(zhǔn)CPU 13、操作系統(tǒng)14和RAM15。管理服務(wù)器12執(zhí)行根據(jù)本發(fā)明的部署分析程序20,部署分析程序20從一列可用服務(wù)器30、32、34...38中識別出將在其上部署新應(yīng)用的一個(gè)或多個(gè)合格服務(wù)器,然后啟動(dòng)在合格服務(wù)器中的一個(gè)服務(wù)器上的新應(yīng)用的部署。管理服務(wù)器12通過一個(gè)或多個(gè)網(wǎng)絡(luò)39(諸如因特網(wǎng))連接到服務(wù)器30、32、34...38。每個(gè)服務(wù)器30、32、34...38包括各自的CPU 50、52、54...58,各自的操作系統(tǒng)60、62、64...68,各自的RAM 70、72、74...78,各自的存儲(chǔ)設(shè)備40、42、44...48,各自的目錄空間180、182、184...188(或是在RAM內(nèi)或是在存儲(chǔ)設(shè)備內(nèi))和其他各自的程序80、82、84和88,諸如與新應(yīng)用相關(guān)聯(lián)的JAVA、中間件、Web服務(wù)器或數(shù)據(jù)庫。每一服務(wù)器上的“相關(guān)”程序如果與該新應(yīng)用兼容,則如果該新應(yīng)用在該服務(wù)器上執(zhí)行,則其將與該新應(yīng)用交互。如下面更詳細(xì)地解釋的,代理程序90、92、94...98運(yùn)行在各個(gè)服務(wù)器30、32、34...38上,以收集關(guān)于各個(gè)服務(wù)器的各自資源的可用性以及相關(guān)程序的類型和版本的信息。分析程序20使用該信息來確定服務(wù)器30、32、34...38中的哪個(gè)服務(wù)器有資格執(zhí)行該新應(yīng)用,以便可以將該新應(yīng)用部署在該服務(wù)器上。
圖2(A)和2(B)構(gòu)成流程圖,其示出了部署分析程序20識別在其上部署新應(yīng)用25的一個(gè)或多個(gè)合格服務(wù)器,然后在這些服務(wù)器中的一個(gè)上啟動(dòng)該新應(yīng)用的部署的功能和操作。在執(zhí)行程序20之前,用戶在文件21中輸入對將要部署的新應(yīng)用25的描述(步驟100)。該描述包括估計(jì)的資源需求和相關(guān)程序的必需類型和版本。該資源需求是平均處理器利用、平均存儲(chǔ)器利用、平均存儲(chǔ)設(shè)備利用、平均目錄空間利用、峰值處理器利用和隨時(shí)間變化的處理器利用。執(zhí)行新應(yīng)用25所需的所有相關(guān)程序可以包括操作系統(tǒng)的類型和版本、數(shù)據(jù)庫管理器、JAVA應(yīng)用、中間件程序和Web應(yīng)用或其他程序。該描述還標(biāo)識出新應(yīng)用25的所有者、該新應(yīng)用的性質(zhì)、對于該新應(yīng)用的聯(lián)系等。后面的信息用于通知和其他管理功能。
或是(a)當(dāng)新應(yīng)用25被寫入存儲(chǔ)器30(并且向程序20發(fā)送通知)時(shí)自動(dòng)地,或是(b)當(dāng)管理員輸入程序20識別在其上部署新應(yīng)用25的服務(wù)器的命令時(shí),程序20啟動(dòng)識別在其上部署該新應(yīng)用的服務(wù)器的過程(步驟106)。在啟動(dòng)服務(wù)器識別過程后,程序20從文件21讀取新應(yīng)用25的需求說明(步驟110)。然后,程序20確定如何“配備”代理程序90、92、94...98,以獲得評價(jià)候選服務(wù)器30,32,34...38運(yùn)行新應(yīng)用25的適合性所需的關(guān)于這些候選服務(wù)器的信息(步驟114)。程序20通過將新應(yīng)用25的需求說明與代理程序配置表40中的各個(gè)條目進(jìn)行比較來做出這一確定。表40包括用于每一可能的應(yīng)用對于每一類型和數(shù)量的資源以及每一類型和版本的相關(guān)兼容程序的需求的一列。表40還包括用于各個(gè)查詢命令串的另一相應(yīng)列,其中這些查詢命令串需要由每一代理程序在候選服務(wù)器上執(zhí)行以便收集關(guān)于這些候選服務(wù)器中的這些需求的信息。例如,有向候選服務(wù)器中的操作系統(tǒng)查詢可用CPU量的查詢命令串。有向候選服務(wù)器中的操作系統(tǒng)查詢可用存儲(chǔ)器量的另一個(gè)查詢命令串。有向候選服務(wù)器中的操作系統(tǒng)查詢可用存儲(chǔ)設(shè)備量的另一個(gè)查詢命令串。有向候選服務(wù)器中的操作系統(tǒng)查詢可用目錄空間量的另一個(gè)查詢命令串。有向候選服務(wù)器中的操作系統(tǒng)查詢操作系統(tǒng)的版本和類型的另一個(gè)查詢命令串。有向候選服務(wù)器中的操作系統(tǒng)查詢數(shù)據(jù)庫應(yīng)用(其將與新應(yīng)用25相關(guān)聯(lián))的版本和類型的另一個(gè)查詢命令串。有向候選服務(wù)器中的操作系統(tǒng)查詢JAVA應(yīng)用(其將與新應(yīng)用25相關(guān)聯(lián))的版本和類型的另一個(gè)查詢命令串。有向候選服務(wù)器中的操作系統(tǒng)查詢web應(yīng)用(其將與新應(yīng)用25相關(guān)聯(lián))的版本和類型的另一個(gè)查詢命令串。作為例子,這些查詢是基于SQL的,但是其他查詢語言也是可用的。然后,程序20對必需的查詢串進(jìn)行打包,以便可以將它們發(fā)送到候選服務(wù)器30、32、34...38內(nèi)的代理程序。
接著,程序20確定哪些服務(wù)器是安裝和執(zhí)行新應(yīng)用25的候選者(步驟118)。程序20通過讀取包含候選服務(wù)器的列表的文件120來做出該確定。文件120被維護(hù)如下。當(dāng)一個(gè)服務(wù)器被激活時(shí),管理員或管理程序?qū)⑵渥鳛楹蜻x服務(wù)器添加到文件120。同樣,當(dāng)一個(gè)候選服務(wù)器被去激活時(shí),管理員或管理程序?qū)⑵鋸奈募?20中移除。此外,如下面更詳細(xì)解釋的,當(dāng)一個(gè)服務(wù)器達(dá)到了關(guān)鍵資源(諸如處理器、存儲(chǔ)器、目錄空間或存儲(chǔ)設(shè)備)的最大能力時(shí),管理員或程序20將其從文件120中移除。
在識別出候選服務(wù)器后,程序20將查詢串包發(fā)送到這些候選服務(wù)器內(nèi)的相應(yīng)的代理程序以便執(zhí)行(步驟122)。然后,每個(gè)候選服務(wù)器上的代理程序執(zhí)行這些查詢串,以收集確定該候選服務(wù)器是否具有必需的資源可用性和新應(yīng)用的相關(guān)程序所需的信息。作為例子,每一代理程序是公知的IBM Tivoli JAC程序或IBM Security Compliance Manager程序,但是也能使用其他的代理程序,諸如SystemTool Hyena(tm)程序(其工作在微軟的Windows產(chǎn)品上)。使用這些查詢串,每一候選服務(wù)器上的代理程序獲得關(guān)于必需資源(處理器、存儲(chǔ)器、目錄空間、存儲(chǔ)設(shè)備等)的可用性,以及當(dāng)前運(yùn)行在該服務(wù)器上的必需相關(guān)程序(即,操作系統(tǒng)、數(shù)據(jù)庫、JAVA、Web和與新應(yīng)用相關(guān)的其他應(yīng)用等)的類型和版本級別的信息(步驟126)。代理程序(通過執(zhí)行這些查詢串)或是通過直接訪問包含該信息的文件或是向候選服務(wù)器內(nèi)的操作系統(tǒng)進(jìn)行查詢以訪問包含該信息的文件來獲得此信息。在獲得關(guān)于候選服務(wù)器內(nèi)的資源和相關(guān)程序的必需信息之后,各個(gè)代理程序?qū)⒃撔畔?bào)告回給程序20,程序20收集關(guān)于每一候選服務(wù)器的信息(步驟130)。
然后,對于每一候選服務(wù)器,程序20將從各個(gè)代理程序收集來的資源可用性以及程序類型和版本信息與從文件21獲得的應(yīng)用需求進(jìn)行比較,以確定該服務(wù)器是否具有必需的資源可用性以及相關(guān)的程序類型和版本,以為該新應(yīng)用提供宿主(步驟140)。例如,如果應(yīng)用說明要求1個(gè)MIP的CPU、10M存儲(chǔ)器和100M存儲(chǔ)設(shè)備的平均水平,而存在1或多個(gè)MIP可用、10M或更多存儲(chǔ)器可用、100M或更多存儲(chǔ)設(shè)備可用的平均水平,則該候選服務(wù)器具有足夠的處理器來為該新應(yīng)用提供宿主。如果應(yīng)用說明要求Mricosoft Windows 2002版本3或更高版本以及IBM DB2版本2或更高版本,而候選服務(wù)器具有Mricosoft Windows 2002版本3或更高版本以及IBM DB2版本2或更高版本,則該服務(wù)器具有兼容的操作系統(tǒng)和數(shù)據(jù)庫軟件。在為每一候選服務(wù)器將資源可用性以及程序類型和版本與新應(yīng)用需求進(jìn)行比較后,程序20編輯具有必需資源和相關(guān)程序的服務(wù)器的列表(步驟144)。
如果存在單個(gè)合格的服務(wù)器(判斷146,否分支),則程序20選擇該服務(wù)器來為該新應(yīng)用提供宿主(步驟148)。然而,如果存在一個(gè)以上的服務(wù)器合格,即,具有足夠的資源可用性和兼容的相關(guān)程序(判斷146,是分支),則程序20確定并且報(bào)告在其上部署該新應(yīng)用的最佳服務(wù)器(步驟150)。該確定基于每個(gè)合格服務(wù)器的以下主要特征平均可用CPU數(shù)量、平均可用存儲(chǔ)器數(shù)量、平均可用目錄空間數(shù)量、平均存儲(chǔ)設(shè)備數(shù)量、和隨時(shí)間變化的現(xiàn)有應(yīng)用與新應(yīng)用兩者組合的峰值CPU需求。一般地,可用平均CPU、存儲(chǔ)器、目錄空間和存儲(chǔ)設(shè)備以及峰值CPU的數(shù)量越大,該服務(wù)器越適合于為該新應(yīng)用提供宿主。組合的峰值CPU利用(來自現(xiàn)有應(yīng)用和新應(yīng)用兩者)越低,該服務(wù)器越適合于為該新應(yīng)用提供宿主。這種(在兩個(gè)或多個(gè)合格服務(wù)器之間)對在其上部署新應(yīng)用的最佳服務(wù)器的確定還可以基于次要因素,諸如由于在合格服務(wù)器上為新應(yīng)用提供宿主的稅款減少及其他財(cái)政鼓勵(lì)。
圖3(A)和3(B)構(gòu)成流程圖,其示出步驟150的一個(gè)實(shí)施例,其中為合格服務(wù)器考慮上述所有的因素,但是對主要因素指派了比次要因素更高的權(quán)重。對于每一合格服務(wù)器執(zhí)行下面的步驟。在步驟200,程序20確定平均可用CPU的數(shù)量。然后,程序20對這一數(shù)量指派權(quán)重,其中該權(quán)重或是線性地或是階梯式地與該數(shù)量成比例(步驟204)。在步驟210,程序20確定平均可用RAM的數(shù)量。然后,程序20對這一數(shù)量指派權(quán)重,其中該權(quán)重或是線性地或是階梯式地與該數(shù)量成比例(步驟214)。然后,程序20對這一數(shù)量指派權(quán)重,其中該權(quán)重或線性地或階梯式地與該數(shù)量成比例(步驟224)。在步驟230,程序20確定平均可用存儲(chǔ)設(shè)備的數(shù)量。然后,程序20對這一數(shù)量指派權(quán)重,其中該權(quán)重或線性地或階梯式地與該數(shù)量成比例(步驟234)。在步驟240,程序20確定現(xiàn)有程序(基于過去的歷史)和新應(yīng)用(基于估計(jì))兩者的峰值使用期間的可用CPU的數(shù)量。然后,程序20對這一數(shù)量指派權(quán)重,其中該權(quán)重或線性地或階梯式地與該數(shù)量成比例(步驟244)。在步驟250,程序20從一個(gè)文件(由會(huì)計(jì)師或其他財(cái)務(wù)人員維護(hù))確定將該新應(yīng)用添加到該合格服務(wù)器是否存在稅收鼓勵(lì)。例如,合格服務(wù)器可能存在于直接或間接提供與在該合格服務(wù)器上部署應(yīng)用有關(guān)的稅收鼓勵(lì)的州或國家。間接的稅收鼓勵(lì)可以是對于操作該合格服務(wù)器所需的人員的或是合格服務(wù)器中的附加投資金額。如果不存在稅收鼓勵(lì)(判斷252,否分支),程序20對這一因素指派零權(quán)重(步驟253)。如果存在(判斷252,是分支),則程序20對稅款節(jié)省或其他財(cái)務(wù)動(dòng)機(jī)指派一個(gè)權(quán)重,其中該權(quán)重或線性地或階梯式地與該稅款節(jié)省的數(shù)量成比例(步驟254)。在步驟260,程序20從一個(gè)文件(由會(huì)計(jì)師或其他財(cái)務(wù)人員維護(hù))確定將新應(yīng)用添加到該候選服務(wù)器是否存在另一商業(yè)動(dòng)機(jī)。如果不存在其他商業(yè)動(dòng)機(jī)(判斷262,否分支),則程序20對這一因素指派零權(quán)重(步驟263)。如果存在其他商業(yè)動(dòng)機(jī)(判斷262,是分支),則程序20對這一商業(yè)動(dòng)機(jī)指派一個(gè)權(quán)重,其中該權(quán)重或線性地或階梯式地與該商業(yè)動(dòng)機(jī)的價(jià)值成比例(步驟264)。然后,程序20對該服務(wù)器的權(quán)重求和(步驟270)。如果需要,在選擇一個(gè)合格服務(wù)器以為該新應(yīng)用提供宿主時(shí)可以是并非所有的上述因素都被考慮。然后,程序20確定是否存在為其執(zhí)行上述的分析步驟200-270的其他合格服務(wù)器(判斷274)。如果存在(判斷274,是分支),則為另一合格服務(wù)器重復(fù)上述步驟200-270。
在為每一合格服務(wù)器執(zhí)行上述步驟200-274之后,程序20確定具有最高得分的合格服務(wù)器(步驟280)。這是為該新應(yīng)用提供宿主的“最佳”服務(wù)器。如果對于最高得分存在“平局”,則管理員可以根據(jù)該管理員已知的任何其他因素選擇一個(gè)。
下面是指派給上述因素中的每一個(gè)的特定權(quán)重的例子,雖然對于本發(fā)明來說確切的權(quán)重并不是至關(guān)重要的。
一個(gè)因素是RAM可用性的平均數(shù)量。可用性越大,加權(quán)因子越高,其被轉(zhuǎn)換為相應(yīng)服務(wù)器為新應(yīng)用提供宿主的吸引力越高。
RAM可用性<256M標(biāo)記服務(wù)器滿載,并且對于該新應(yīng)用不可用(這在步驟140應(yīng)該被認(rèn)為不具候選服務(wù)器的資格)。
256M<RAM可用性<512M服務(wù)器可用,權(quán)重(RAM)=1512M<RAM可用性<1024M服務(wù)器可用,權(quán)重(RAM)=2RAM可用性>1024M服務(wù)器可用,權(quán)重(RAM)=3另一個(gè)因素是CPU可用性的平均數(shù)量(或CPU的使用百分比)??捎眯栽酱?或CPU利用百分比越低),加權(quán)因子越高,其被轉(zhuǎn)換為相應(yīng)服務(wù)器為新應(yīng)用提供宿主的吸引力較高。
CPU平均利用>90%標(biāo)記服務(wù)器滿載,并且對于新應(yīng)用不可用(這在步驟140應(yīng)該被認(rèn)為不具候選服務(wù)器的資格)。
70%<CPU平均利用<90%服務(wù)器可用,權(quán)重(平均CPU)=150%<CPU平均利用<70%服務(wù)器可用,權(quán)重(平均CPU)=225%<CPU平均利用<50%服務(wù)器可用,權(quán)重(平均CPU)=3CPU平均利用<25%服務(wù)器可用,權(quán)重(平均CPU)=4另一個(gè)因素是目錄空間可用性的平均數(shù)量。可用性越大(或目錄空間的利用百分比越低),加權(quán)因子越高,其被轉(zhuǎn)換為相應(yīng)服務(wù)器為新應(yīng)用提供宿主的吸引力較高。
目錄空間平均利用>80%標(biāo)記服務(wù)器滿載,并且對于新應(yīng)用不可用(這在步驟140應(yīng)該被認(rèn)為不具候選服務(wù)器的資格)。
50%<目錄空間平均利用<80%服務(wù)器可用,權(quán)重(目錄空間)=125%<目錄空間平均利用<50%服務(wù)器可用,權(quán)重(目錄空間)=2目錄空間平均利用<25%服務(wù)器可用,權(quán)重(目錄空間)=3另一個(gè)因素是由于現(xiàn)有應(yīng)用的執(zhí)行引起的峰值CPU使用量與由于新應(yīng)用的預(yù)期執(zhí)行而引起的峰值CPU使用的估計(jì)量的組合峰值CPU使用量。這隨著時(shí)間的變化來確定。為了收集用于這個(gè)因素的數(shù)據(jù),工具20周期性地對總的目前CPU利用(以百分比)進(jìn)行采樣,諸如每15分鐘進(jìn)行一次,并且記錄該利用和采樣時(shí)間。根據(jù)新應(yīng)用25在其他服務(wù)器上的過去經(jīng)驗(yàn)或?qū)τ谛聭?yīng)用對CPU需求的了解,并且當(dāng)該新應(yīng)用被最繁重地使用時(shí),管理員為該新應(yīng)用輸入隨時(shí)間變化的近似的估計(jì)信息。例如,某些應(yīng)用常規(guī)在一月或一季度結(jié)束時(shí)運(yùn)行。另一些應(yīng)用常規(guī)在工作日結(jié)束時(shí)運(yùn)行,諸如在5PM運(yùn)行。管理員可以根據(jù)估計(jì)的事務(wù)數(shù)、估計(jì)的要被傳送的數(shù)據(jù)量,來估計(jì)該應(yīng)用隨時(shí)間變化的CPU需求。
預(yù)期的組合CPU峰值利用(t)=現(xiàn)有應(yīng)用CPU峰值使用(t)+新應(yīng)用CPU峰值使用(t)根據(jù)上面的采樣和估計(jì),工具20確定預(yù)期的組合CPU峰值利用(“組合峰值CPU利用”)為最大的時(shí)刻以及在該時(shí)刻的預(yù)期的組合CPU峰值利用。工具20通過對在每一采樣時(shí)間的現(xiàn)有應(yīng)用CPU使用和新應(yīng)用的估計(jì)的CPU使用進(jìn)行累加,來做出這一確定。
組合峰值CPU利用>95%標(biāo)記服務(wù)器滿載,并且對于新應(yīng)用不可用(這在步驟140應(yīng)該被認(rèn)為不具候選服務(wù)器的資格)。
85%<組合峰值CPU利用<95%服務(wù)器可用,權(quán)重(峰值CPU)=150%<組合峰值CPU利用<85%服務(wù)器可用,權(quán)重(峰值CPU)=2組合峰值CPU利用<50%服務(wù)器可用,權(quán)重(峰值CPU)=3在選擇為新應(yīng)用提供宿主的服務(wù)器時(shí)的其他次要因素是商業(yè)性質(zhì)的。下面是關(guān)于這些次要商業(yè)因素和指派給它們的權(quán)重的更多細(xì)節(jié)在合格服務(wù)器上部署新應(yīng)用的一個(gè)次要商業(yè)動(dòng)機(jī)是直接或間接與該新應(yīng)用在該合格服務(wù)器上的部署有關(guān)的州或國家稅收鼓勵(lì)。例如,在一個(gè)國家部署新應(yīng)用可能需要額外的支持人員,對該支持人員可能會(huì)施行稅收鼓勵(lì)。作為另一個(gè)例子,新應(yīng)用的部署可能導(dǎo)致服務(wù)器站點(diǎn)的額外收入,對該額外收入可能會(huì)施行稅收鼓勵(lì)。稅收鼓勵(lì)(“TI”)與和該稅收鼓勵(lì)的數(shù)量相稱的權(quán)重相關(guān)聯(lián)。下面是對應(yīng)于稅收鼓勵(lì)的權(quán)重的特定例子稅款節(jié)?。?2,000,權(quán)重(稅款)=1$1,000<稅款節(jié)?。?2,000,權(quán)重(稅款)=0.5稅款節(jié)?。?1,000,權(quán)重(稅款)=0在服務(wù)器提供者不是因服務(wù)器本身而得到支付,而是因運(yùn)行在該服務(wù)器上的應(yīng)用的使用而得到支付的商業(yè)模式中,在候選服務(wù)器上部署新應(yīng)用的另一個(gè)次要商業(yè)動(dòng)機(jī)是投資回報(bào)。根據(jù)在與客戶支付的使用費(fèi)用相比的提供和維護(hù)該服務(wù)器方面的成本、總服務(wù)器利用限額(即,可以運(yùn)行在一個(gè)服務(wù)器上的應(yīng)用數(shù)量)以及升級服務(wù)器的最高限度,由會(huì)計(jì)師或IBMProject Management(PM)Office程序?yàn)槊恳环?wù)器確定投資回報(bào)。一般地,服務(wù)器被應(yīng)用使用得越多,投資回報(bào)越大。作為例子,在某些商業(yè)模式中可能期望所有服務(wù)器具有正的投資回報(bào),所以具有較低的ROI(投資回報(bào))的服務(wù)器被指派較大的權(quán)重,諸如以下ROI<0,權(quán)重(ROI)=0.50<ROI<0.5,權(quán)重(ROI)=0.2ROI>0.5,權(quán)重(ROI)=0在服務(wù)器提供者不是因服務(wù)器本身而得到支付,而是因運(yùn)行在該服務(wù)器上的應(yīng)用的使用而得到支付的商業(yè)模式中,在合格服務(wù)器上部署新應(yīng)用的另一個(gè)次要商業(yè)動(dòng)機(jī)(除了ROI之外或作為ROI的代替)是按指標(biāo)的成本(“CPI”,cost per index)。CPI指示服務(wù)器上硬件資源(即,CPU、RAM、磁盤空間等)使用或所部署的應(yīng)用數(shù)量(具有平均資源使用)是否足夠大,以便對資源使用的支付(和來自新應(yīng)用的部署的其他收益)超過了提供者所承擔(dān)的服務(wù)器的成本?!癈PI”與“ROI”的不同之處在于,CPI還考慮由于在該合格服務(wù)器上部署新應(yīng)用而由服務(wù)器提供者實(shí)現(xiàn)的某些非傳統(tǒng)價(jià)值。例如,如果該新應(yīng)用是前沿應(yīng)用,則部署這一應(yīng)用可以為服務(wù)器/應(yīng)用提供者帶來“公共關(guān)系/商譽(yù)”價(jià)值或提供廣告價(jià)值。作為另一個(gè)例子,在服務(wù)器上部署新應(yīng)用可能促進(jìn)其他相關(guān)應(yīng)用的許可、或其他相關(guān)服務(wù)器的部署。CPI為1指示收支相當(dāng)。CPI<1指示與提供者的成本相比要少的支付或服務(wù)器的其他價(jià)值。CPI>1指示與提供者的成本相比要多的支付或服務(wù)器的其他價(jià)值。作為例子,在某些商業(yè)模式中可能期望所有服務(wù)器具有CPI>1,因而具有較低的CPI的服務(wù)器被指派較大的權(quán)重,諸如以下CPI<1,權(quán)重(CPI)=0.5CPI>1,權(quán)重(CPI)=0CPI=1,權(quán)重(CPI)=0按指標(biāo)的計(jì)劃(“SPI”,schedule per index)指示計(jì)劃何時(shí)服務(wù)器的CPI為>1。作為例子,可能期望所有服務(wù)器按時(shí)或提前具有CPI>1,所以最落后于預(yù)定計(jì)劃的服務(wù)器可以被指派較大的權(quán)重,諸如以下落后于計(jì)劃的SPI,權(quán)重(SPI)=0.5按時(shí)的SPI,權(quán)重(SPI)=0圖4(A)和4(B)構(gòu)成一個(gè)流程圖,其示出了步驟150的另一個(gè)實(shí)施例,其中首先考慮每一合格服務(wù)器的以下主要因素,并且如上所述來指派權(quán)重平均可用CPU量、平均可用存儲(chǔ)器量、平均可用目錄空間量、平均存儲(chǔ)設(shè)備量、現(xiàn)有應(yīng)用和新應(yīng)用隨時(shí)間變化的組合峰值CPU需求。圖4(A)和4(B)的過程中的上述分析與圖3(A)和3(B)的步驟200-244相同。然后,計(jì)算合格服務(wù)器的這些主要因素中每一個(gè)的權(quán)重(步驟245)。如果還存在其他合格服務(wù)器要被考慮(判斷246,是分支),則為另一合格服務(wù)器重復(fù)圖4(A)和4(B)的上述步驟200-245(步驟246)。然后,程序20確定具有最高得分的合格服務(wù)器(步驟247)。如果僅有一個(gè)具有最高得分的服務(wù)器,則程序20選擇該合格服務(wù)器為新應(yīng)用提供宿主(步驟249)。然而,可能存在最高得分的平局,尤其當(dāng)一組新服務(wù)器被首次部署的時(shí)候,因?yàn)樗羞@些服務(wù)器可能都具有相同的基本程序,即操作系統(tǒng)、中間件、Web應(yīng)用、數(shù)據(jù)庫管理程序等,它們都使用相同數(shù)量的CPU、RAM、存儲(chǔ)設(shè)備和目錄空間。如果存在一個(gè)以上的具有基于這些主要因素的最高得分的合格服務(wù)器(判斷248,是分支),則考慮下面的次要因素,并且如上所述地對最高合格服務(wù)器指派權(quán)重稅收鼓勵(lì)、ROI、CPI和SPI。圖4(A)和4(B)的過程中對次要因素的考慮與圖3(A)和3(B)的步驟250-264相同。然后,為每一最高合格服務(wù)器對次要因素的權(quán)重進(jìn)行組合,以確定為新應(yīng)用提供宿主的最佳合格服務(wù)器(步驟286)。然后,程序20將具有最高得分的最高合格服務(wù)器確定為對該新應(yīng)用提供宿主的最佳服務(wù)器(步驟288)。
在步驟150中選擇服務(wù)器(通過圖3(A)和3(B)、圖4(A)和4(B)的步驟或其變體)之后,將新應(yīng)用安裝在所選擇的服務(wù)器上(圖2(B)的步驟360)??梢愿鞣N方式執(zhí)行該安裝(步驟360)。在一種情境下,程序20將軟件“包”下載到所選擇的服務(wù)器,該軟件“包”包括新應(yīng)用25以及安裝工具。該安裝工具修改所選擇的服務(wù)器的配置,以支持該新應(yīng)用,然后將新應(yīng)用加載到所選擇的服務(wù)器以便執(zhí)行。對配置的修改可以包括代理說明、中間件的運(yùn)行時(shí)、數(shù)據(jù)庫和JCA/JMS(J2EE連接體系結(jié)構(gòu)和JAVA消息傳遞服務(wù))。在另一種情境下,程序20下載支持新應(yīng)用25的配置文件和在所選擇的服務(wù)器上執(zhí)行的腳本程序。該腳本程序(a)安裝該新配置文件(b)從遠(yuǎn)程Web站點(diǎn)獲取新應(yīng)用25并且(c)將該新應(yīng)用加載到所選擇的服務(wù)器以便執(zhí)行。這完成了新應(yīng)用25的部署。
在部署新應(yīng)用25之后,程序20確定在所選擇的服務(wù)器上在部署新應(yīng)用后剩余的可用資源(平均和峰值處理器、平均存儲(chǔ)器、平均存儲(chǔ)設(shè)備、平均目錄空間等)的數(shù)量(步驟370)。通過從先前由所選擇服務(wù)器的代理程序報(bào)告的每一資源的可用性中減去新應(yīng)用的資源需要,來做出這一確定。如果任何資源的剩余量小于這一資源的預(yù)定閾值(判斷371,是分支),則程序20確定所選擇的服務(wù)器對于為任何其他新應(yīng)用提供宿主不再可用,并且將所選擇的服務(wù)器從文件120中移除(步驟372)。程序20還向負(fù)責(zé)管理所選擇的服務(wù)器的人員發(fā)送電子郵件,指示所選擇的服務(wù)器的至少一個(gè)資源被完全利用(步驟372)。該電子郵件還標(biāo)識哪一(些)資源被完全利用了。此人員可以接受這一狀況,即不對所選擇的服務(wù)器進(jìn)行改動(dòng)并且不向該所選擇的服務(wù)器增加任何其他應(yīng)用,或在某些情況下,增加被完全利用的類型的附加資源。例如,如果處理器或存儲(chǔ)器被完全利用,則該人員可能能夠通過插入處理器或存儲(chǔ)器卡來增加附加的處理器或存儲(chǔ)器。在其他情況下,該人員可能能夠激活當(dāng)前存在于該所選擇的服務(wù)器上但還未被激活的附加處理器或存儲(chǔ)器。
接著,程序20更新文件120,以指示哪一服務(wù)器被選擇運(yùn)行該新應(yīng)用,該服務(wù)器的描述,即該服務(wù)器上的程序的類型和版本、服務(wù)器的所有者、服務(wù)器的聯(lián)系等,以及部署的日期和該服務(wù)器上的剩余資源數(shù)量(步驟380)。此外,程序20向有關(guān)人員發(fā)送電子郵件,指出新應(yīng)用被成功地部署并且包括該服務(wù)器的上述描述以及新應(yīng)用的部署日期(步驟380)。
基于上述內(nèi)容,已經(jīng)公開了一種用于識別具有部署新應(yīng)用的足夠資源和兼容的相關(guān)程序的服務(wù)器的系統(tǒng)、方法和程序。然而,可以做出各種修改和替代,而不脫離本發(fā)明的范圍。例如,可以使用不同的服務(wù)器統(tǒng)計(jì)收集程序。再有,可以使用不同的技術(shù)和商業(yè)權(quán)重作為用于打破圖4(A)和(B)的實(shí)施例中的平局的技術(shù)和權(quán)重。因此,本發(fā)明僅以示例而并非限制的方式被公開,可以參考下面的權(quán)利要求來確定本發(fā)明的范圍。
權(quán)利要求
1.一種用于確定多個(gè)服務(wù)器中在其上安裝和執(zhí)行應(yīng)用的一個(gè)服務(wù)器的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可讀介質(zhì);第一程序指令,用于從所述多個(gè)服務(wù)器的每一個(gè)獲得關(guān)于它們各自的CPU、RAM和存儲(chǔ)設(shè)備的可用量的信息;第二程序指令,用于確定所述服務(wù)器中具有執(zhí)行所述應(yīng)用的足夠的CPU、RAM和存儲(chǔ)設(shè)備的一個(gè)或多個(gè)服務(wù)器;第三程序指令,用于確定對于所述一個(gè)或多個(gè)服務(wù)器的所述量的每一個(gè)的權(quán)重;第四程序指令,用于為所述一個(gè)或多個(gè)服務(wù)器中的每一個(gè),對它們各自的所述CPU、RAM和存儲(chǔ)設(shè)備的可用量的權(quán)重進(jìn)行求和;以及第五程序指令,用于確定所述一個(gè)或多個(gè)服務(wù)器中的哪一個(gè)具有最高總和,從而推薦具有最高總和的所述服務(wù)器執(zhí)行所述應(yīng)用;其中所述第一、第二、第三、第四和第五程序指令被記錄在所述介質(zhì)上。
2.如權(quán)利要求1的計(jì)算機(jī)程序產(chǎn)品,其中所述第一程序指令還獲得所述多個(gè)服務(wù)器中的每一個(gè)是否具有所述應(yīng)用在所述多個(gè)服務(wù)器的每一個(gè)內(nèi)發(fā)揮作用所需的一個(gè)或多個(gè)程序;以及第二程序指令確定具有足夠的資源和所述應(yīng)用發(fā)揮作用所需的所述一個(gè)或多個(gè)程序的所述一個(gè)或多個(gè)服務(wù)器。
3.如權(quán)利要求1的計(jì)算機(jī)程序產(chǎn)品,其中所述第三程序指令量化所述一個(gè)或多個(gè)服務(wù)器的每一個(gè)內(nèi)的CPU、RAM和存儲(chǔ)設(shè)備的平均可用量。
4.如權(quán)利要求1的計(jì)算機(jī)程序產(chǎn)品,還包括第六程序指令,用于獲得在所述一個(gè)或多個(gè)服務(wù)器的每一個(gè)上安裝所述應(yīng)用的金融動(dòng)機(jī)的信息,并且相對于所述一個(gè)或多個(gè)服務(wù)器的每一個(gè)內(nèi)的所述CPU、RAM和存儲(chǔ)設(shè)備的所述可用量的權(quán)重,確定對于所述金融動(dòng)機(jī)的價(jià)值的權(quán)重。
5.一種用于確定多個(gè)服務(wù)器中在其上安裝和執(zhí)行應(yīng)用的一個(gè)服務(wù)器的系統(tǒng),所述系統(tǒng)包括用于從所述多個(gè)服務(wù)器的每一個(gè)獲得關(guān)于它們各自的CPU、RAM和存儲(chǔ)設(shè)備的可用量的信息的裝置;用于確定所述服務(wù)器中具有執(zhí)行所述應(yīng)用的足夠的CPU、RAM和存儲(chǔ)設(shè)備的一個(gè)或多個(gè)服務(wù)器的裝置;用于確定對于所述一個(gè)或多個(gè)服務(wù)器的所述量的每一個(gè)的權(quán)重的裝置;用于為所述一個(gè)或多個(gè)服務(wù)器中的每一個(gè),對它們各自的所述CPU、RAM和存儲(chǔ)設(shè)備的可用量的權(quán)重進(jìn)行求和的裝置;以及用于確定所述一個(gè)或多個(gè)服務(wù)器中的哪一個(gè)具有最高總和,從而推薦具有最高總和的所述服務(wù)器執(zhí)行所述應(yīng)用的裝置。
6.如權(quán)利要求5的系統(tǒng),其中上述信息獲得裝置還獲得所述多個(gè)服務(wù)器中的每一個(gè)是否具有所述應(yīng)用在所述多個(gè)服務(wù)器的每一個(gè)內(nèi)發(fā)揮作用所需的一個(gè)或多個(gè)程序;以及所述用于確定所述服務(wù)器中具有執(zhí)行所述應(yīng)用的足夠的CPU、RAM和存儲(chǔ)設(shè)備的一個(gè)或多個(gè)服務(wù)器的裝置確定具有足夠的資源和所述應(yīng)用發(fā)揮作用所需的所述一個(gè)或多個(gè)程序的所述一個(gè)或多個(gè)服務(wù)器。
7.如權(quán)利要求5的系統(tǒng),其中所述用于確定對于所述一個(gè)或多個(gè)服務(wù)器的所述量的每一個(gè)的權(quán)重的裝置量化所述一個(gè)或多個(gè)服務(wù)器的每一個(gè)內(nèi)的CPU、RAM和存儲(chǔ)設(shè)備的平均可用量。
8.如權(quán)利要求5的系統(tǒng),還包括用于獲得在所述一個(gè)或多個(gè)服務(wù)器的每一個(gè)上安裝所述應(yīng)用的金融動(dòng)機(jī)的信息,并且相對于所述一個(gè)或多個(gè)服務(wù)器的每一個(gè)內(nèi)的所述CPU、RAM和存儲(chǔ)設(shè)備的所述可用量的權(quán)重,確定對于所述金融動(dòng)機(jī)的價(jià)值的權(quán)重的裝置。
9.一種用于確定多個(gè)服務(wù)器中在其上安裝和執(zhí)行應(yīng)用的一個(gè)服務(wù)器的方法,所述方法包括步驟從所述多個(gè)服務(wù)器的每一個(gè)獲得關(guān)于它們各自的CPU、RAM和存儲(chǔ)設(shè)備的可用量的信息;確定所述服務(wù)器中具有執(zhí)行所述應(yīng)用的足夠的CPU、RAM和存儲(chǔ)設(shè)備的一個(gè)或多個(gè)服務(wù)器;確定對于所述一個(gè)或多個(gè)服務(wù)器的所述量的每一個(gè)的權(quán)重;為所述一個(gè)或多個(gè)服務(wù)器中的每一個(gè),對它們各自的所述CPU、RAM和存儲(chǔ)設(shè)備的可用量的權(quán)重進(jìn)行求和;以及確定所述一個(gè)或多個(gè)服務(wù)器中的哪一個(gè)具有最高總和。
10.如權(quán)利要求9的方法,還包括步驟獲得在所述一個(gè)或多個(gè)服務(wù)器的每一個(gè)上安裝所述應(yīng)用的金融動(dòng)機(jī)的信息,并且相對于所述一個(gè)或多個(gè)服務(wù)器的每一個(gè)內(nèi)的所述CPU、RAM和存儲(chǔ)設(shè)備的所述可用量的權(quán)重,確定對于所述金融動(dòng)機(jī)的價(jià)值的權(quán)重。
11.一種用于確定多個(gè)服務(wù)器中在其上安裝和執(zhí)行應(yīng)用的一個(gè)服務(wù)器的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可讀介質(zhì);第一程序指令,用于在多個(gè)采樣時(shí)間從所述多個(gè)服務(wù)器的每一個(gè)獲得關(guān)于它們各自的CPU的利用量的信息;第二程序指令,用于在所述多個(gè)采樣時(shí)間獲得所述應(yīng)用在所述服務(wù)器的每一個(gè)上的CPU利用量的估計(jì);以及第三程序指令,用于在每個(gè)所述采樣時(shí)間為所述多個(gè)服務(wù)器的每一個(gè),將它們各自的CPU利用量與所述應(yīng)用的估計(jì)CPU利用量組合在一起,并部分地根據(jù)所述多個(gè)服務(wù)器各自的CPU利用量與所述應(yīng)用的估計(jì)CPU利用量的相應(yīng)組合,確定在所述多個(gè)服務(wù)器中的哪一個(gè)上執(zhí)行所述應(yīng)用;其中所述第一、第二和第三程序指令被記錄在所述介質(zhì)上。
12.如權(quán)利要求11的計(jì)算機(jī)程序產(chǎn)品,其中在確定在所述多個(gè)服務(wù)器中的哪一個(gè)上執(zhí)行所述應(yīng)用中,所述第三程序指令優(yōu)選所述服務(wù)器中的一個(gè)服務(wù)器,其具有所述一個(gè)服務(wù)器的CPU利用峰值量與所述應(yīng)用的估計(jì)CPU利用量的最低組合峰值。
13.一種用于確定多個(gè)服務(wù)器中在其上安裝和執(zhí)行應(yīng)用的一個(gè)服務(wù)器的方法,所述方法包括步驟在多個(gè)采樣時(shí)間從所述多個(gè)服務(wù)器的每一個(gè)獲得關(guān)于它們各自的CPU利用量的信息;在所述多個(gè)采樣時(shí)間獲得所述應(yīng)用在所述服務(wù)器的每一個(gè)上的CPU利用量的估計(jì);以及在每個(gè)所述采樣時(shí)間為所述多個(gè)服務(wù)器的每一個(gè),將它們各自的CPU利用量與所述應(yīng)用的估計(jì)CPU利用量組合在一起,并部分地根據(jù)所述多個(gè)服務(wù)器各自的CPU利用量與所述應(yīng)用的估計(jì)CPU利用量的相應(yīng)組合,確定在所述多個(gè)服務(wù)器中的哪一個(gè)上執(zhí)行所述應(yīng)用。
14.如權(quán)利要求13的方法,其中在確定在所述多個(gè)服務(wù)器中的哪一個(gè)上執(zhí)行所述應(yīng)用中,優(yōu)選所述服務(wù)器中的一個(gè)服務(wù)器,其具有所述一個(gè)服務(wù)器的CPU利用峰值量與所述應(yīng)用的估計(jì)CPU利用量的最低組合峰值。
全文摘要
本發(fā)明提供一種用于確定多個(gè)服務(wù)器中在其上安裝和執(zhí)行應(yīng)用的一個(gè)服務(wù)器的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品。第一程序指令從該多個(gè)服務(wù)器的每一個(gè)獲得關(guān)于它們各自的CPU、RAM和存儲(chǔ)設(shè)備的可用量的信息。第二程序指令確定這些服務(wù)器中具有執(zhí)行該應(yīng)用的足夠的CPU、RAM和存儲(chǔ)設(shè)備的一個(gè)或多個(gè)服務(wù)器。第三程序指令確定對于該一個(gè)或多個(gè)服務(wù)器的這些量中每一個(gè)的權(quán)重。第四程序指令為該一個(gè)或多個(gè)服務(wù)器中的每一個(gè),對它們各自的CPU、RAM和存儲(chǔ)設(shè)備的可用量的權(quán)重進(jìn)行求和。第五程序指令確定該一個(gè)或多個(gè)服務(wù)器中哪一個(gè)具有最高總和,從而推薦具有最高總和的服務(wù)器執(zhí)行該應(yīng)用。
文檔編號G06F9/46GK1811716SQ20051011528
公開日2006年8月2日 申請日期2005年11月11日 優(yōu)先權(quán)日2004年12月17日
發(fā)明者Y·K·迪金森 申請人:國際商業(yè)機(jī)器公司