專利名稱:用于在不同的信息技術(shù)產(chǎn)品/方案部署之間共享性能數(shù)據(jù)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總地涉及配置信息技術(shù)(IT)產(chǎn)品/方案,特別地涉及在IT產(chǎn)品/方案部 署之間共享配置信息。
背景技術(shù):
當(dāng)在生產(chǎn)環(huán)境中部署信息技術(shù)(IT)產(chǎn)品/方案時(shí),經(jīng)常要解決且難以解決的問題 是找到最優(yōu)配置集合來實(shí)現(xiàn)特別的服務(wù)水平或性能目標(biāo)。當(dāng)前,部署企業(yè)應(yīng)用程序和確定 帶來最優(yōu)性能的配置時(shí)的一個(gè)問題是,應(yīng)用程序越來越基于一組其它的軟件產(chǎn)品,該軟件 產(chǎn)品為該應(yīng)用程序提供運(yùn)行時(shí)平臺(中間件)。另一問題是,應(yīng)用程序被開發(fā)成在多種平 臺(操作系統(tǒng))上運(yùn)行。再一問題是每個(gè)應(yīng)用程序必須專門地調(diào)試,因?yàn)椴荒芸偸堑玫匠?序開發(fā)的最佳實(shí)施和提供最優(yōu)的性能。當(dāng)前,如果相同的IT產(chǎn)品/方案被部署在不同的用戶環(huán)境中,每個(gè)用戶必須花費(fèi) 時(shí)間來找到最優(yōu)配置。如果兩個(gè)用戶具有類似的計(jì)算環(huán)境,這會導(dǎo)致他們具有相同的最優(yōu) 配置,但是每個(gè)用戶仍然必須花費(fèi)時(shí)間來找到最優(yōu)配置,因?yàn)檫@些用戶沒有用于共享關(guān)于 最優(yōu)配置的信息的動態(tài)機(jī)制。當(dāng)IT服務(wù)提供者必須多次配置產(chǎn)品/方案時(shí)也會發(fā)生類似 問題。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個(gè)實(shí)施例,本發(fā)明提供一種用于在不同信息技術(shù)產(chǎn)品/方案部署 之間共享性能數(shù)據(jù)的方法和系統(tǒng)。一種實(shí)施方式包括一種用于在多個(gè)計(jì)算節(jié)點(diǎn)間動態(tài)地共 享性能信息的方法和系統(tǒng),包括動態(tài)地從所述計(jì)算節(jié)點(diǎn)處的信息技術(shù)(IT)產(chǎn)品/方案的 部署獲得性能信息,將獲得的性能信息經(jīng)通信網(wǎng)絡(luò)發(fā)送到服務(wù)器以便在知識數(shù)據(jù)庫中存儲 所獲得的性能信息。服務(wù)器運(yùn)行來基于數(shù)據(jù)庫中的信息動態(tài)地確定新的配置信息,將新的 配置信息存儲在數(shù)據(jù)庫中,并通過經(jīng)網(wǎng)絡(luò)傳送該新的配置信息將新的配置信息提供給所述 的部署。每個(gè)部署處的性能信息可以包括該部署處的當(dāng)前配置信息,并且確定新的配置信 息的步驟還可以包括基于數(shù)據(jù)庫中的配置信息確定新的配置信息。性能信息可以包括基于每個(gè)部署的配置策略的每個(gè)部署處的硬件和軟件配置的 當(dāng)前配置參數(shù)信息,并且確定新的配置信息的步驟還可以包括基于數(shù)據(jù)庫中的信息確定最 優(yōu)配置。確定一個(gè)部署的最優(yōu)配置信息的步驟還可以包括基于從該部署得到的信息,向 該部署分配一個(gè)基于從該部署得到的參數(shù)信息的部署類型,其中部署類型是該部署的計(jì)算 環(huán)境的特征的函數(shù),如果在數(shù)據(jù)庫中存在該部署類型的最優(yōu)配置,則為該部署類型提供該 已經(jīng)存在的最優(yōu)配置。如果在數(shù)據(jù)庫中不存在該部署類型的最優(yōu)配置,則基于數(shù)據(jù)庫中該 部署類型的配置信息確定該部署的最優(yōu)配置,將該部署的最優(yōu)配置存儲到數(shù)據(jù)庫中,并為
4該部署提供最優(yōu)配置。新的配置信息可以基于一個(gè)部署的配置策略被應(yīng)用于該部署。一個(gè)部署可以請求 新的配置信息,使得提供新的配置信息的步驟可以包括提供該新的配置信息到提出請求的
部署ο本發(fā)明的其它方面和優(yōu)點(diǎn)將從后面的詳細(xì)說明中變得明顯,這些詳細(xì)說明結(jié)合附 圖僅是以舉例的方式說明本發(fā)明的原理。
為了更全面理解本發(fā)明的實(shí)質(zhì)和優(yōu)點(diǎn)以及優(yōu)選的使用方式,應(yīng)該參考下面的結(jié)合 附圖的詳細(xì)說明,其中圖1顯示了根據(jù)本發(fā)明的一個(gè)實(shí)施例的在不同信息技術(shù)產(chǎn)品/方案部署之間共享 性能數(shù)據(jù)的知識共享系統(tǒng)的功能性方塊圖。圖2顯示了根據(jù)本發(fā)明的一個(gè)實(shí)施例的知識共享系統(tǒng)中一個(gè)客戶端模塊的功能 性方塊圖。圖3顯示了根據(jù)本發(fā)明的一個(gè)實(shí)施例的知識共享系統(tǒng)中一個(gè)服務(wù)器模塊的功能 性方塊圖。圖4顯示了根據(jù)本發(fā)明的一個(gè)實(shí)施例的,在不同信息技術(shù)產(chǎn)品/方案部署之間共 享性能數(shù)據(jù)的體系結(jié)構(gòu)的功能性方塊圖。圖5顯示了根據(jù)本發(fā)明的一個(gè)實(shí)施例的,在不同信息技術(shù)產(chǎn)品/方案部署之間共 享性能數(shù)據(jù)的一種方法的流程圖。圖6顯示了根據(jù)本發(fā)明的一個(gè)實(shí)施例的,用于在不同信息技術(shù)產(chǎn)品/方案部署之 間確定和共享最優(yōu)配置信息的一種方法的流程圖。圖7顯示了根據(jù)本發(fā)明的一個(gè)實(shí)施例的,在不同信息技術(shù)產(chǎn)品/方案部署之間共 享和應(yīng)用最優(yōu)配置信息的一個(gè)例子。
具體實(shí)施例方式以下說明是用于說明本發(fā)明的總原理,不意在限定這里要求保護(hù)的本發(fā)明的概 念。此外,這里說明的特定的特征可以與多種可能的組合和置換的每一個(gè)中說明的其它特 征組合使用。除非這里具體另外限定,這里所有術(shù)語都做可能的最大范圍的理解,包括說明 書所隱含的含義以及本領(lǐng)域的技術(shù)人員理解的含義和/或字典、論文等中限定的含義。本發(fā)明提供用于在不同信息技術(shù)(IT)產(chǎn)品/方案部署之間動態(tài)共享諸如配置信 息的性能數(shù)據(jù)的方法和系統(tǒng)。一個(gè)實(shí)施例包括知識共享機(jī)制,該機(jī)制通過動態(tài)地獲得和在 數(shù)據(jù)庫中存儲信息(所述信息包括關(guān)于各種計(jì)算環(huán)境中的(IT)產(chǎn)品/方案(例如軟件產(chǎn) 品)的部署的新配置的信息),并且將某一環(huán)境的這種新的配置信息從數(shù)據(jù)庫提供到該環(huán) 境的一個(gè)客戶端,來允許共享配置信息。在一個(gè)實(shí)施例中,新的配置信息包括實(shí)質(zhì)上最優(yōu)的配置信息。知識共享機(jī)制應(yīng)用 到IT產(chǎn)品/方案的多個(gè)部署以減少用于找到這樣的多個(gè)部署的最優(yōu)配置的時(shí)間范圍,由此 避免在多個(gè)部署中針對同樣的任務(wù)進(jìn)行重復(fù)工作。本發(fā)明還包括動態(tài)改善IT產(chǎn)品/方案 的性能模型,由此克服利用靜態(tài)本地配置顧問的局限。
一種實(shí)施方式包括知識共享機(jī)制,該機(jī)制允許類似Web2. 0的系統(tǒng)在企業(yè)級和企 業(yè)(企業(yè)2. 0)之間傳遞值。這在給定的IT產(chǎn)品/方案的多個(gè)部署間提供一個(gè)知識共享系 統(tǒng),來找到該IT產(chǎn)品/方案的最優(yōu)性能配置。這樣的系統(tǒng)通常包括每個(gè)IT產(chǎn)品/方案部 署的一個(gè)客戶端,和一個(gè)服務(wù)器。通過從部署收集需要的硬件和軟件數(shù)據(jù)、發(fā)送該數(shù)據(jù)到服 務(wù)器、接收對于該部署來說最優(yōu)的配置來配置客戶端以便優(yōu)化相應(yīng)的IT產(chǎn)品/方案部署。 服務(wù)器被配置為從IT產(chǎn)品/方案的所有部署收集數(shù)據(jù)、找到每個(gè)部署的最佳(最優(yōu))配置 以及將該最優(yōu)配置信息發(fā)回給每個(gè)部署。在一個(gè)操作場景中,客戶端包括嵌在一特定IT產(chǎn)品/方案中的軟件模塊,該軟件 模塊周期性地發(fā)送計(jì)算環(huán)境中的IT產(chǎn)品/方案部署的配置狀態(tài)以及要應(yīng)用到該部署的優(yōu) 化策略到服務(wù)器。服務(wù)器分析這樣的信息來根據(jù)期望的用戶優(yōu)化策略確定該配置對于該環(huán) 境是否最優(yōu)。通過利用類似計(jì)算環(huán)境的已知配置和來自其他部署(用戶)的類似優(yōu)化策略 和/或分析配置優(yōu)化技術(shù),服務(wù)器確定該配置是否為最優(yōu)的。一旦服務(wù)器確定對于一個(gè)計(jì)算環(huán)境中的IT產(chǎn)品/方案部署的最優(yōu)配置,該服務(wù)器 就將該最優(yōu)配置信息發(fā)送給該部署的客戶端。該部署的用戶然后可以決定讓系統(tǒng)自動實(shí)施 配置改變,改變到當(dāng)前配置來進(jìn)入最優(yōu)配置狀態(tài),或者要求人工確認(rèn)來在處理之前使改變 有效。隨著IT產(chǎn)品/方案的部署的數(shù)量的增加,類似計(jì)算環(huán)境的配置的優(yōu)化性也增加。 這進(jìn)一步允許IT產(chǎn)品/方案的性能模型的動態(tài)增強(qiáng)。如果在不同時(shí)間要求不同的配置(例 如計(jì)算負(fù)荷的季節(jié)性變化),系統(tǒng)提供了不同配置,這些配置可以迅速地被請求從服務(wù)器下 載到每個(gè)部署。系統(tǒng)通過基于收集關(guān)于多個(gè)配置的信息(正面和負(fù)面)來產(chǎn)生部署的最優(yōu) 配置而提供知識產(chǎn)生機(jī)制,由此不僅利用“負(fù)面”知識(當(dāng)IT產(chǎn)品/方案出錯時(shí)產(chǎn)生的知 識)也利用“正面”知識(IT產(chǎn)品/方案正確動作時(shí)的知識)。圖1顯示了根據(jù)本發(fā)明一個(gè)實(shí)施例的,用于在不同的IT產(chǎn)品/方案部署(例如用 戶A和用戶B計(jì)算環(huán)境處的部署)間共享性能數(shù)據(jù)的系統(tǒng)10的功能性方塊圖??蛻舳四?塊11提供在要優(yōu)化的計(jì)算環(huán)境的每個(gè)IT產(chǎn)品/方案部署處,服務(wù)器12利用不同部署的知 識共享來產(chǎn)生最優(yōu)配置??蛻裟K11和服務(wù)器12經(jīng)諸如因特網(wǎng)的通信網(wǎng)絡(luò)(可以使用其 他通信網(wǎng)絡(luò))相連接。每個(gè)計(jì)算環(huán)境可以包括一個(gè)或多個(gè)計(jì)算節(jié)點(diǎn),其中每個(gè)計(jì)算節(jié)點(diǎn)可 以包括一個(gè)或多個(gè)處理器、存儲設(shè)備、數(shù)據(jù)庫模塊、通信模塊、網(wǎng)絡(luò)等等。圖2顯示了客戶端模塊11的一個(gè)實(shí)施例的功能性方塊圖,包括數(shù)據(jù)收集器15、數(shù) 據(jù)發(fā)送器16、方案接收器17、配置激活器18、周期性檢查器19和優(yōu)化策略配置器20。數(shù)據(jù) 收集器15利用探測器21收集性能模塊需要的數(shù)據(jù)。在一個(gè)例子中,探測器21包括OS探 測器、HW探測器和SW探測器,這些探測器包括分別接口部署計(jì)算環(huán)境處的OS、硬件和中間 件的軟件模塊,來提取最優(yōu)配置和性能模型所需要的數(shù)據(jù)。數(shù)據(jù)發(fā)送器16將性能模型數(shù)據(jù)發(fā)送到服務(wù)器12 (圖1)。方案接收器17從服務(wù)器 接收配置(即“方案”)的最優(yōu)集合并將它們存儲在存儲器22中。配置激活器18執(zhí)行IT 產(chǎn)品/方案部署處需要的配置改變。周期性檢查器19監(jiān)視部署處的用于性能模型的參數(shù) 集合,并在所述參數(shù)中的一個(gè)或多個(gè)的值改變得大于/小于特定閾值時(shí)啟動數(shù)據(jù)流(即發(fā) 送性能模型數(shù)據(jù)到服務(wù)器和接收最優(yōu)配置集合)。優(yōu)化策略配置器20允許用戶指定要應(yīng)用 的用戶策略。
圖3顯示了服務(wù)器12的一個(gè)實(shí)施例的功能性方塊圖。服務(wù)器12利用獨(dú)立于產(chǎn)品 的基礎(chǔ)結(jié)構(gòu),該基礎(chǔ)結(jié)構(gòu)為每個(gè)IT產(chǎn)品/方案提供插件25。插件25允許從IT產(chǎn)品/方案 部署的每個(gè)客戶端11接收性能模型數(shù)據(jù),并且向每個(gè)客戶端發(fā)送優(yōu)化相應(yīng)部署所需要的 數(shù)據(jù)集合,該性能模型數(shù)據(jù)包括描述IT產(chǎn)品/方案的配置所需要的性能數(shù)據(jù)的集合。服務(wù) 器12包括優(yōu)化引擎(方案查找器)13,被配置為運(yùn)行基于知識數(shù)據(jù)庫14中的數(shù)據(jù)提供每個(gè) IT產(chǎn)品/方案部署的實(shí)質(zhì)上最佳配置的性能模型。優(yōu)化引擎13可以利用線性內(nèi)插算法或 遺傳算法(或其他任何優(yōu)化技術(shù))來為每個(gè)部署提供最優(yōu)配置。IT產(chǎn)品/方案(例如軟件產(chǎn)品X,軟件產(chǎn)品Y)的插件25可以與該IT產(chǎn)品/方案 的部署的客戶端11通信。在一個(gè)實(shí)施例中,IT產(chǎn)品/方案的插件25包括一軟件模塊,該 軟件模塊包括數(shù)據(jù)接收器26、產(chǎn)品性能模型27和方案發(fā)送器觀。數(shù)據(jù)接收器沈接收由相 應(yīng)IT產(chǎn)品/方案的部署的客戶端11發(fā)送的數(shù)據(jù)。產(chǎn)品性能模型27表示該IT產(chǎn)品/方案 的性能模型。在一個(gè)例子中,要分析的性能參數(shù)集合是矢量A= IHW數(shù)據(jù)、SW數(shù)據(jù)、部署尺 寸},要優(yōu)化的參數(shù)集合是矢量£,要應(yīng)用于矢量P的每個(gè)元素Pi的優(yōu)化策略集合可以由用 戶指定為元素Pi的當(dāng)前值的期望的變化,狀態(tài)i的配置是并集Cli = AU£,其中性能模型由 配置狀態(tài)的函數(shù)φ (Cli)表示。優(yōu)化引擎13通過訪問IT產(chǎn)品/方案的不同部署(不同用戶)間共享的數(shù)據(jù)來確 定該IT產(chǎn)品/方案的給定性能模型的最優(yōu)配置。優(yōu)化引擎13給每個(gè)IT產(chǎn)品/方案(軟 件產(chǎn)品X、方案產(chǎn)品Y)的客戶端11提供相應(yīng)的最優(yōu)配置。如圖4中的實(shí)例體系結(jié)構(gòu)30所 示,服務(wù)器12于是可以經(jīng)每個(gè)IT產(chǎn)品/方案的多個(gè)部署的相關(guān)聯(lián)客戶端的相應(yīng)插件25,對 于多個(gè)IT產(chǎn)品/方案執(zhí)行最優(yōu)配置分析。圖5顯示了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于在不同的IT產(chǎn)品/方案部署間共享性 能數(shù)據(jù)的客戶端處理過程40的流程圖。處理方塊41掃描IT產(chǎn)品/方案部署的客戶端側(cè) 的當(dāng)前配置數(shù)據(jù),包括要分析的諸如硬件數(shù)據(jù)、軟件數(shù)據(jù)(例如OS、中間件、產(chǎn)品特性)、部 署尺寸(例如此部署要支持的客戶端的數(shù)量)的參數(shù)集合和要優(yōu)化的參數(shù)集合(例如前一 數(shù)據(jù)群的子集)以及每個(gè)參數(shù)的期望優(yōu)化策略。處理方塊42確定這樣的數(shù)據(jù)是否已經(jīng)上 載到服務(wù)器。如果是,處理過程回到方塊41,否則到方塊43。在處理方塊43,客戶端發(fā)送掃描的數(shù)據(jù)到服務(wù)器。例如,掃描的數(shù)據(jù)可以被周期性 地上載到服務(wù)器或者當(dāng)某些參數(shù)值改變到高于/低于預(yù)定閾值時(shí)被上載到服務(wù)器。在處理 方塊44,在服務(wù)器側(cè),來自IT產(chǎn)品/方案的所有不同客戶端的數(shù)據(jù)被收集起來,對于每個(gè)部 署確定最優(yōu)配置,如下面要結(jié)合圖6進(jìn)一步說明的。在處理方塊45,最優(yōu)配置信息被下載到 相應(yīng)的請求客戶端。在處理方塊46,在客戶端側(cè),新接收的配置信息被自動/人工地應(yīng)用到 IT產(chǎn)品/方案部署。具體地,客戶端可以基于策略設(shè)置來應(yīng)用該最優(yōu)配置,策略設(shè)置諸如 自動地(即總是應(yīng)用從服務(wù)器推送來的配置改變);當(dāng)?shù)陀?高于閾值時(shí)(即,將配置改變 應(yīng)用到高于/低于預(yù)定閾值的配置參數(shù));需要人工干預(yù)(即操作人員必須接受該改變或 其它處理)。圖6顯示了根據(jù)本發(fā)明一個(gè)實(shí)施例的,確定IT產(chǎn)品/方案的每個(gè)部署的最優(yōu)配置 的服務(wù)器處理50的流程圖。處理方塊說明如下方塊51 定義部署類別。此處理包括根據(jù)部署類型過濾從客戶端接收的性能模型 參數(shù)數(shù)據(jù)。每個(gè)產(chǎn)品性能模型定義了要分析的參數(shù)的子集的范圍,以定義每個(gè)部署的類別。
方塊52 定義優(yōu)化策略類別。一旦部署已經(jīng)被分配到一個(gè)類別(例如SMB部署、 企業(yè)部署等等),它就被根據(jù)由該部署的用戶指定的優(yōu)化策略(例如Web應(yīng)用程序的兩個(gè)不 同的策略可以為“最大化吞吐量”或“最小化響應(yīng)時(shí)間”)進(jìn)一步過濾。方塊53 確定部署是否為已知的部署類型(Δ) ?如果是,前進(jìn)到方塊Ma,否則前 進(jìn)到方塊討匕。方塊Ma 確定部署的未知配置(Cli)是否已經(jīng)為最優(yōu)的。如果否,前進(jìn)到方塊55,
否則停止。方塊Mb 確定部署的配置(Cli)是否已經(jīng)最優(yōu)?如果否,則前進(jìn)到方塊55,否則停止。方塊55 查找部署的新的更好/最優(yōu)配置。方塊56 發(fā)送新的配置到部署處的客戶端。這樣,在方塊5 和Mb中,如果已經(jīng)存在該部署環(huán)境的最優(yōu)配置(例如,因?yàn)橄?前為同一用戶或不同用戶識別),則不發(fā)生進(jìn)一步的處理。在方塊陽中,由于不存在該環(huán)境 的最優(yōu)方案,方案引擎13(圖幻通過利用來自不同部署的數(shù)據(jù)來確定最優(yōu)配置。參考圖7中的示例處理過程60,考慮由要分析的性能模型參數(shù)集合(Pi, i = 1,...,8)所表示的IT產(chǎn)品/方案的部署(用戶A),其優(yōu)化策略可以表示為參數(shù)P2的值的 期望增量。假定其部署類型和優(yōu)化策略與用戶A相同的另一用戶(用戶B)已經(jīng)達(dá)到了其 部署的最優(yōu)配置,則方案引擎13可以比較性能模型參數(shù)的兩個(gè)集合(即用戶A和用戶B的 性能模型參數(shù))并發(fā)現(xiàn)改變其中的兩個(gè)(例如P5和P7)使得用戶A達(dá)到其部署的期望最優(yōu) 配置(類似于用戶B的部署)。下面的例子提供的場景說明了知識共享過程,來處理新的次最優(yōu)IT產(chǎn)品/方案配 置(對應(yīng)于IT產(chǎn)品/方案的新的安裝)并建議了該部署的已知的“好”配置。假定該知識 共享系統(tǒng)利用XML文件來管理與產(chǎn)品/方案有關(guān)的所有配置信息。設(shè)計(jì)用來說明此場景的 樣本產(chǎn)品具有下面的XML概述所定義的性能模型
< xml version="1.0" encoding='UTF-8" >
<xsd:schema xml ns: xsd="http ://www.w3 .org/2001 /XMLSchema"
targetNa mespace="http:y/www.exa mple .org/PerfM odel Schema" xmlns:tns='http://vvww. example.org/PerfMod el Schema" elementFormDefault="qualifieci">
<xsd:complexType name="PerfModer> <xsd:annotation>
<xsd:docu mentation >
Performance Mode! for product Sample Product </xsd: documentation> </xsd:annotation> <xsd:sequence>
<xsd:element name="ProductDetails" type='tns:PD* min0ccurs="1 “ max0ccurs='1' l>
8<xsd;element name^HardwareConfiguration" type=ptns:HC'
minOccurs=M" maxOccurs=T /> <xsd;element name=,OperatingSystemConfigu ration·
type="tns:OSC" minOccurs="r maxOccurs="r l>
<xsd:element name^ProductConfiguration" Iype=pInsPC
minOccurs=wr maxOccurs=Mr/> <xsd:element name="Metrics_and_optimization_policies· type="tns:MCS_ minOccurs=_1_ maxOccurs 二 _ />
</xsd:sequence> <xsd:complexType>
<xsd;complexType name="PD'> <xsd:annotation>
<xsd:documentation>
Description of product </xsd:documentation> </xsd:annotation> <xsd: sequence〉
<xsd:element name=_prod 一 name_ type=_xsd:string_ !> <xsd;element name=-pnDOersionfl type=exsd:string" /> </xsd:sequence> </xsd:complexType>
<xsd:complexType name=_HC"> <xsd;annotation>
<xsd:documentation>
Hardware configuration </xsd !documentation > </xsd:annotation> <xsd:sequence>
<xsd:element name=,arch· type=,,xsd:stiirig" /> <xsd:element name="CPU_number'' type=,,xsd:positivelnteger" /> <xsd:element name="CPU_speedw type=*xsd:positivelnteger /> <xsd:element name=· Physical jnemory·
type="xsd:posUivelnleger" /> <xsd:elemerit name='Storage^sizelt type—xs^posilivelnteger" I> <xsd:element name="Storage_speed" type='xsd:positivelnteger /> <xsd;element name=pNetwork_speed" type="xsd:positivelnteger" />
</xsd;sequence> </xsd:complexType>
<xsd:comptexType name="OSC"> <xsd:annotation>
<xsd:documentation>
Operating System configuration </xsd;documentation> </xsd;annotation> <xsd:sequence>
<xsd:element name=OS_name" type='xsd:stringB /><xsd;element name=OS_version" type="xsd:string' /> <xsd:element name=-Virtual_memory_size, type="xsd:positivelnleger />
</xsd:sequence> </xsd:complexType>
<xsd:complexType name="PC> <KSd:annotation>
<xsd:documenlation>
Product Specific configuration </xsd;documentation> </xsd:annotation> <xsd:sequence>
<xsd:element Hame=llDepIoynnenLsize" type='xsd:string# /> <xsd:element name=_Thread_pooL_size·
type="xsd:positivelnteger" /> <xsd :e!ement nameyDBjionnectionjjooLsize· type="xsd:positivetnteger" />
</xsd:sequence> </xsd:complexType>
<xsd:complexType name="MCS"> <xsd: annotation〉
<xsd:documentation>
Product Specific metrics </xsd:documentation> </xsd:annotation> <xsd:sequence>
<xsd:element name="CPU_ulilization" type="tns:mcs_opt_pol' <xsd;element name="Memory_utinzation·
type=1ns:mcs_opt_por I> <xsd:element name:.IO_utilization, type="tns:rncs_opt_pol_ />
<xsd:element namefThraughput11 type="tns:mcs_opl_por /> <xsd:element Rame=ltResponseJme" type="tns:mcs_opi_por />
</xsd:sequerice> </xsd:complexType>
<xsd:complexType name=_mcs_opt_pd_> <xsd:sequence>
<xsd;element name=_Metric_value_ type="xsd:positivelnteger /> <xsd:element name=OptPor type='tns:opt7> </xsd:sequence> </xsd:complexType>
<xsd:simpleType name="opt">
<xsd:restri ction base-xsd:stririg">
<xsd:enumeration value="keep"></xsd:enumeration> <xsd !enumeration value=Hup,,></xsd:enumeration> <xsd !enumeration value dowrT></xsd:enurneralion> </xsd: restriction > </xsd:simpleType>
<xsd:element name-" PerfM odel" type="tns;PerfModel'></xsd:element> </xstJ:schema> 在產(chǎn)品幵發(fā)和測試階段定義的產(chǎn)品性能模型包括可能影響其性能的所有參數(shù) (例如硬件、操作系統(tǒng)和產(chǎn)品配置的參數(shù))以及關(guān)鍵/重要度量的當(dāng)前值(說明該產(chǎn)品當(dāng)前 正如何運(yùn)行在該系統(tǒng)上)以及用戶指定的那些值的期望改變量(其性能目標(biāo)或優(yōu)化策略)。為了簡化說明,參數(shù)和度量的數(shù)量和類型保持為小的值。例如,樣本產(chǎn)品具有單服務(wù)器拓?fù)?配置,其中服務(wù)器模塊是僅有的其配置影響整個(gè)產(chǎn)品的性能的模塊。其它的產(chǎn)品和性能模 型可以包括更多的信息。樣本產(chǎn)品的每個(gè)安裝/部署都由該XML概述的一個(gè)實(shí)例(XML文 件)表示。樣本產(chǎn)品被部署在四個(gè)不同用戶位置(用戶A、B、C和D),其中三個(gè)用戶(用戶A、 C和D)已經(jīng)運(yùn)行該產(chǎn)品一些時(shí)間并且它們的配置已經(jīng)存儲在知識共享系統(tǒng)10的服務(wù)器12 上的數(shù)據(jù)庫中(例如根據(jù)圖6中的處理過程50)。此產(chǎn)品的所述三個(gè)用戶部署的配置由下 面的XML代碼表示。用戶A代表在一個(gè)環(huán)境中部署該樣本產(chǎn)品的客戶端11,知識共享系統(tǒng)10將該環(huán)境 分類為“大”(XML文件中的“enterprise (企業(yè))”)。由于用戶仍然在請求某些性能度量向 “上”或向“下”變化,其配置尚不是“最優(yōu)”的。用戶A配置< xml version=” .0" encoding=" UTF-B,, >
<tns: PerfModeI xmlns:tns=_http://www. example.org/PerfModelSchema· xmlnsixsi^ttp^/www.wS.org/ZOOt/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org/PerfModeISchema PerfModelSchema.xsd _> <tns:PnoductDetails>
<tns:prod_name>SampleProduct</tns:prod_riame> <tns:prod_version>1.0.0.0</tns:prod_version> </tns:ProductDetails>
<!- This product has a model with a single server ··> <tns:HardwareConfiguration> <tns:arch>PPC</tns:arOh> <tns:CPU_number>4</tns:CPU_number> <tns:CPU_speed>1200</tns:CPU_speed> <tns;Physical_memory>4096</tris:PhysicaLmemory> <tns:Storage^.size>360</tns:Storage_size>
<! Storage speed has to be specified according ο a predefined benchmarlc ■> <tns;Slorage_speed>7<ytns:Storage,speed> <tns:Network_speed>100</tns:Networ1c_speed> </tns:HardwareConfiguration> <tns:OpenatingSystemConfiguration> <tns:OS_name>AIX</tns:OS_riame> <tns:OS_version>5.3.0.5</tns:OS_version> <tns:VjrtuaLrnerriory_size>4096</tns:VirtuaLmemory_size> </tns:OperatingSystemConiiguration> <tns:ProductConfiguration>
<tns:D 印loyment sjze>Enterprise</tns:Deployment_size> <tns:ThreadjDOo!_size>10</tns:Threadj)ooLsize> <tns:DB_connection_pool_size>2<ytns:DB_connectionj)ooLsize> </tns:ProductConfiguration> <tris;Metrics_and_optimization_policies> <tns:CPU utilization> <tns:Metric_value>40</tns:Metric-value> <tns:OptPol>keep</tns:OptPol> </tns:CPU_utilization> <lns:Memory_utilizalion> <tns:Metric_value>40</tns:Metric value> <tns:OptPoT>dowri</tns:OptPol> </tns:Memory_utilizatiori> <1- Average IO read/write bytes per second ~>
<lns:IOjJtilizat 丨 on>
<tns:Wetric_value>50000<ytns:Metric_value> <lns:OptPol>keep</tns;OptPol> </tns; IO^utiIiza tion>
<!- Number of transactions per second -> <tns: Throughput
<tns:Metric_value>10</ins:Metric_valie> <tns:OptPol>up</tns:OptPol> </tns:Throughpul> <tns:Response_time>
<!- Average transaction response time in milliseconds -> <tns:Metric_value>100</tns;Metric_value> <tns:OptPol>down<ytns:OptPol> </tns:Response_time> </tns:Metrics_and-optimization_po1icies>
</tns:PerfModel>用戶C代表在一個(gè)環(huán)境中部署該樣本產(chǎn)品的客戶端,知識共享系統(tǒng)10將該環(huán)境分 類為“小”(XML文件中的“SMB”)。對于用戶A,其性能目標(biāo)尚未達(dá)到。用戶C配置< xml version。.O" encoding="UTF-8" > <tns:PerfModel xmlns:tns-http://www.example.org/PerfModelSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=_http://www.example.org/PerfModelSchema PerfMode 丨 Schema,xsd ">
<tns:ProductDelails>
<tns:prod_name>SampteProducl</tns:prod_name> <tns:prod_veision>1.0.0.0</tns:prod_veision> </tns:PraductDetails>
<\- TTiis product has a model with a single server -> <tns:HardwareConfiguration> <tns:arcti>xB6</tns:arch> <tns:CPU_number>2</lns:CPU_number> <tns:CPUjpeed>1200</tns:CPU_speed> <tns: PhysicaLme[nory>2048</tns: Physical_memory> <tns:Storage_size>240</tns:Storage_size> <!- Storage speed has to be specified according to a predefined benchmari< -> <tns:Storage_speed>7</tns:Storage_speed> <tfis;Nelworii_speed>100</tns:Networ1t_speed> </tns;HardwareConftguration> <tns:OperatingSystemConfiguration> <tns:OS_name>Windows</tns:OS name> <lns:OS_version>5.2</tns:OS_version>
權(quán)利要求
1.一種用于在多個(gè)計(jì)算節(jié)點(diǎn)間動態(tài)地共享性能信息的方法,包括從所述計(jì)算節(jié)點(diǎn)處的信息技術(shù)(IT)產(chǎn)品/方案的部署動態(tài)地獲得性能信息;將獲得的性能信息經(jīng)通信網(wǎng)絡(luò)發(fā)送到服務(wù)器,以便將獲得的性能信息存儲在知識數(shù)據(jù) 庫中;以及在服務(wù)器處,基于數(shù)據(jù)庫中的信息動態(tài)地確定新的配置信息,在數(shù)據(jù)庫中存儲該新的 配置信息,并且通過經(jīng)網(wǎng)絡(luò)傳送該新的配置信息來動態(tài)地將該新的配置信息提供給所述部1W O
2.根據(jù)權(quán)利要求1的方法,其中每個(gè)部署處的該性能信息包括該部署處的當(dāng)前配置信 息,并且確定新的配置信息的步驟還包括基于數(shù)據(jù)庫中的配置信息來確定新的配置信息。
3.根據(jù)權(quán)利要求1的方法,其中該性能信息包括基于部署的配置策略的每個(gè)部署的硬 件和軟件配置的當(dāng)前配置參數(shù)信息,并且確定新的配置信息的步驟還包括基于數(shù)據(jù)庫中的 信息確定最優(yōu)配置。
4.根據(jù)權(quán)利要求3的方法,其中確定一個(gè)部署的最優(yōu)配置信息的步驟還包括基于從該部署獲得的信息基于從該部署獲得的參數(shù)信息給該部署分配一個(gè)部署類型,其中該部署類型是該部署 的計(jì)算環(huán)境的特征的函數(shù);如果在數(shù)據(jù)庫中存在該部署類型的最優(yōu)配置,則為該部署類型提供該已經(jīng)存在的最優(yōu) 配置。
5.根據(jù)權(quán)利要求4的方法,還包括如果在數(shù)據(jù)庫中不存在該部署類型的最優(yōu)配置,則基于數(shù)據(jù)庫中該部署類型的配置 信息確定該部署的最優(yōu)配置,在數(shù)據(jù)庫中存儲該部署的最優(yōu)配置,并且為該部署提供該最 優(yōu)配置。
6.根據(jù)權(quán)利要求1的方法,還包括基于部署處的配置策略在該部署處應(yīng)用該新的配置 fn息ο
7.根據(jù)權(quán)利要求1的方法,還包括部署請求新的配置信息,使得提供新的配置信息的 步驟包括提供該新的配置信息給該提出請求的部署。
8.一種用于在多個(gè)計(jì)算節(jié)點(diǎn)間動態(tài)地共享性能信息的系統(tǒng),包括一個(gè)或多個(gè)客戶端模塊,以及一個(gè)服務(wù)器模塊;每個(gè)客戶端模塊被配置為在計(jì)算節(jié)點(diǎn)處的信息技術(shù)(IT)產(chǎn)品/方案的部署處運(yùn)行,每 個(gè)客戶端模塊還被配置為動態(tài)地從相應(yīng)部署獲得性能信息并將獲得的性能信息經(jīng)通信網(wǎng) 絡(luò)傳送到服務(wù)器;該服務(wù)器模塊被配置為在知識數(shù)據(jù)庫中存儲獲得的性能信息,基于數(shù)據(jù)庫中的信息動 態(tài)地確定新的配置信息,將該新的配置信息存儲在數(shù)據(jù)庫中,并且通過經(jīng)網(wǎng)絡(luò)傳送該新的 配置信息來將該新的配置信息提供給每個(gè)部署客戶端模塊。
9.根據(jù)權(quán)利要求8的系統(tǒng),其中每個(gè)部署處的該性能信息包括該部署處的當(dāng)前配置信 息,并且該服務(wù)器模塊還被配置為基于數(shù)據(jù)庫中的配置信息確定新的配置信息。
10.根據(jù)權(quán)利要求8的系統(tǒng),其中該性能信息包括基于部署的配置策略的每個(gè)部署的 硬件和軟件配置的當(dāng)前配置參數(shù)信息,并且其中該服務(wù)器模塊還被配置為基于數(shù)據(jù)庫中的 信息確定最優(yōu)配置。
11.根據(jù)權(quán)利要求10的系統(tǒng),其中該服務(wù)器模塊還被配置為基于從部署獲得的信息來 確定該部署的最優(yōu)配置信息,包括基于從該部署獲得的參數(shù)信息給該部署分配一個(gè)部署類型,其中該部署類型是該部署 的計(jì)算環(huán)境的特征的函數(shù);如果在數(shù)據(jù)庫中存在該部署類型的最優(yōu)配置,則為該部署類型提供該已經(jīng)存在的最優(yōu) 配置。
12.根據(jù)權(quán)利要求11的系統(tǒng),其中該服務(wù)器模塊還被配置為基于從部署獲得的信息來 確定該部署的最優(yōu)配置信息,包括如果在數(shù)據(jù)庫中不存在該部署類型的最優(yōu)配置,則基于數(shù)據(jù)庫中該部署類型的配置 信息確定該部署的最優(yōu)配置,在數(shù)據(jù)庫中存儲該部署的最優(yōu)配置,并且為該部署提供該最 優(yōu)配置。
13.根據(jù)權(quán)利要求8的系統(tǒng),其中每個(gè)客戶端還被配置為基于部署處的配置策略在該 部署處應(yīng)用該新的配置信息。
14.根據(jù)權(quán)利要求8的系統(tǒng),其中每個(gè)客戶端還被配置為請求新的配置信息,該服務(wù)器 模塊還被配置為提供該新的配置信息給該提出請求的部署客戶端。
15.一種計(jì)算機(jī)程序產(chǎn)品,包括編程代碼指令,用于當(dāng)所述程序在計(jì)算機(jī)上執(zhí)行時(shí),執(zhí) 行根據(jù)權(quán)利要求1-7中任一項(xiàng)的方法的步驟。
全文摘要
一種用于在多個(gè)計(jì)算節(jié)點(diǎn)間動態(tài)地共享性能信息的方法和系統(tǒng)。一種實(shí)施方式包括動態(tài)地從所述計(jì)算節(jié)點(diǎn)處的信息技術(shù)(IT)產(chǎn)品/方案的部署獲得性能信息,將獲得的性能信息經(jīng)通信網(wǎng)絡(luò)發(fā)送到服務(wù)器以便在知識數(shù)據(jù)庫中存儲所獲得的性能信息。服務(wù)器運(yùn)行來基于數(shù)據(jù)庫中的信息動態(tài)地確定新的配置信息,將新的配置信息存儲在數(shù)據(jù)庫中,并通過經(jīng)網(wǎng)絡(luò)傳送該新的配置信息將新的配置信息提供到所述部署。
文檔編號H04L12/24GK102150134SQ200980135048
公開日2011年8月10日 申請日期2009年5月11日 優(yōu)先權(quán)日2008年9月9日
發(fā)明者P·卡瓦扎, S·布蘭卡, S·馬克萊蘭 申請人:國際商業(yè)機(jī)器公司