專利名稱:基于處理能力的實(shí)時(shí)基準(zhǔn)對(duì)軟件產(chǎn)品的使用進(jìn)行計(jì)量的方法、系統(tǒng)和計(jì)算機(jī)程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息技術(shù)領(lǐng)域。更具體地,本發(fā)明涉及對(duì)軟件產(chǎn)品 在數(shù)據(jù)處理系統(tǒng)上的使用的計(jì)量。
背景技術(shù):
在數(shù)據(jù)處理系統(tǒng)中對(duì)軟件產(chǎn)品的使用所進(jìn)行的計(jì)量在若干管理 應(yīng)用中具有極高的重要性。典型的示例包括許可管理基礎(chǔ)構(gòu)造,其用以控制已知軟件產(chǎn)品在系統(tǒng)上的運(yùn)行;在市場(chǎng)上可獲得的商業(yè)許 可管理基礎(chǔ)構(gòu)造的示例基于由IBM公司提供的"IBM Tivoli許可管 理器(ITLM)"應(yīng)用。如此獲得的、關(guān)于軟件產(chǎn)品使用的信息通常是針對(duì)(根據(jù)相應(yīng) 的使用條件)記賬(charge-back accounting)而開發(fā)。在此上下文中, 當(dāng)前在許可策略中的 一 個(gè)潮流是根據(jù)軟件產(chǎn)品在其上運(yùn)行的系統(tǒng)的 硬件配置來改變軟件產(chǎn)品的收費(fèi)費(fèi)率,例如,隨著可用(微)處理 器的數(shù)量來增加收費(fèi)費(fèi)率。然而,這一模式的限制在于,從定價(jià)的 角度來看,所有的微處理器都被假定是等同的(從而軟件產(chǎn)品在低 端系統(tǒng)上的使用與軟件產(chǎn)品在高端系統(tǒng)上的使用之間不存在區(qū)別)。 這一策略導(dǎo)致對(duì)高端系統(tǒng)進(jìn)行低價(jià)索價(jià);反之亦然,其抑制了相同 的軟件產(chǎn)品在低端系統(tǒng)上的使用(在低端系統(tǒng)上將會(huì)有高價(jià)索價(jià)的 感覺)。為了解決上述問題,已經(jīng)提出了根據(jù)微處理器的處理能力來對(duì) 微處理器進(jìn)行分類;以此方式,可以區(qū)分軟件產(chǎn)品在不同系統(tǒng)上的 使用(以便應(yīng)用相應(yīng)的收費(fèi)費(fèi)率,通常該費(fèi)率隨著處理能力而增加)。然而,上述機(jī)制的實(shí)現(xiàn)無疑具有重要性。實(shí)際上,首先,有必 要建立用于對(duì)微處理器進(jìn)行加權(quán)計(jì)算的標(biāo)準(zhǔn)基準(zhǔn)(以便允許關(guān)聯(lián)于正確的收費(fèi)費(fèi)率)。而且,所有現(xiàn)有微處理器類型的目錄(及其權(quán)重)對(duì)于許可應(yīng)用必須可用;這還產(chǎn)生了為保持目錄持續(xù)處于最新 狀態(tài)而帶來的負(fù)擔(dān)。在任何情況下,只要系統(tǒng)不是由實(shí)際計(jì)算機(jī)構(gòu)成,就會(huì)存在技 術(shù)上的困難。例如,系統(tǒng)可以通過(物理)主機(jī)的邏輯分區(qū)來實(shí)現(xiàn); 那些方案變得越來越流行,這是由于該方案允許模擬大量(邏輯) 客戶機(jī),這些(邏輯)客戶機(jī)非常容易維護(hù)(而不需要增加不同的 實(shí)際計(jì)算機(jī))。然而,在此條件下,系統(tǒng)通常不可能收集許可應(yīng)用所需的配置信息(例如,微處理器的數(shù)量和類型);實(shí)際上,由于 謹(jǐn)慎的設(shè)計(jì)選擇或者是環(huán)境的內(nèi)在限制,此信息對(duì)于客戶機(jī)來說可 能是隱藏的。發(fā)明內(nèi)容本發(fā)明提供了在獨(dú)立權(quán)利要求中所闡明的方案。在從屬權(quán)利要 求中描述了本發(fā)明的有利的實(shí)施例。原則上,本發(fā)明是基于動(dòng)態(tài)地測(cè)量系統(tǒng)的處理能力的思想。具體地,本發(fā)明的一個(gè)方面提供了一種方法,用于計(jì)量軟件產(chǎn) 品在數(shù)據(jù)處理系統(tǒng)上的使用。該方法開始于對(duì)運(yùn)行索引進(jìn)行測(cè)量的 步驟,所述運(yùn)行索引(諸如,軟件的運(yùn)行周期)指示一組預(yù)定義的 軟件產(chǎn)品中的每個(gè)在系統(tǒng)上的運(yùn)行。然后,根據(jù)相應(yīng)的運(yùn)行索引和 系統(tǒng)的處理能力來確定每個(gè)軟件產(chǎn)品的使用。出于此目的,在系統(tǒng) 上執(zhí)行基準(zhǔn)程序;該基準(zhǔn)程序執(zhí)行預(yù)定數(shù)量的指令。通過確定該基 準(zhǔn)程序的執(zhí)行時(shí)間的指示來繼續(xù)該方法?,F(xiàn)在,可以根據(jù)執(zhí)行時(shí)間 以及指令數(shù)量來計(jì)算處理能力。在本發(fā)明的一個(gè)實(shí)施例中,通過記錄基準(zhǔn)程序(不可中斷)的 開始時(shí)間和結(jié)束時(shí)間并且然后計(jì)算其差值來確定其執(zhí)行時(shí)間。在另一實(shí)施例中,通過獲取(諸如,從操作系統(tǒng))由系統(tǒng)的處 理器對(duì)相應(yīng)進(jìn)程所貢獻(xiàn)的時(shí)間可以實(shí)現(xiàn)相同的結(jié)果。通常,以低級(jí)語言(例如,匯編語言)來編寫基準(zhǔn)程序。建議的選擇是,在啟動(dòng)系統(tǒng)時(shí)發(fā)起基準(zhǔn)程序的執(zhí)行。當(dāng)在多處理器系統(tǒng)上實(shí)現(xiàn)所提議的方案時(shí),把基準(zhǔn)程序(單線 程)所確定的處理能力乘以處理器的數(shù)量。在此上下文中,進(jìn)一步改進(jìn)該方案的方式在于,僅當(dāng)檢測(cè)到處 理器數(shù)量的改變時(shí),才重新計(jì)算處理能力。有利的是,所提議的方案適用于實(shí)現(xiàn)多個(gè)(邏輯)客戶機(jī)的(物 理)主機(jī)(其中在單個(gè)客戶機(jī)上實(shí)現(xiàn)所有操作)。本發(fā)明的另 一 方面提出了用于執(zhí)行所述方法的計(jì)算機(jī)程序。本發(fā)明的又一方面提出了相應(yīng)的系統(tǒng)。
參考下文的詳細(xì)描述,將更好地理解本發(fā)明自身及其進(jìn)一步的 特征和優(yōu)點(diǎn),其中下文的詳細(xì)描述僅以非限定性指示的方式給出,以便結(jié)合附圖來進(jìn)行閱讀,其中圖1 a是根據(jù)本發(fā)明實(shí)施例的方案所適用的數(shù)據(jù)處理系統(tǒng)的示意 性框圖;圖lb示出了系統(tǒng)的示例性計(jì)算機(jī)的功能塊; 圖2繪出了可用以實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的方案的主要軟件組 件;以及圖3a至圖3b示出了描述與根據(jù)本發(fā)明實(shí)施例的方案實(shí)現(xiàn)有關(guān)的 活動(dòng)的流程圖。
具體實(shí)施方式
具體參考圖la,其中繪出了具有分布式架構(gòu)的數(shù)據(jù)處理系統(tǒng) 100。系統(tǒng)100實(shí)現(xiàn)許可管理基礎(chǔ)構(gòu)造(例如,基于上述ITLM的許 可管理基礎(chǔ)構(gòu)造),所述許可管理基礎(chǔ)構(gòu)造允許計(jì)量所選擇軟件產(chǎn) 品(諸如,應(yīng)用程序)的使用。系統(tǒng)100包括彼此完全分開并且彼 此不同的一個(gè)或者多個(gè)獨(dú)立的組織(在圖中僅示出了一個(gè));在所 述組織中,定義了一個(gè)或者多個(gè)劃分。6由運(yùn)行時(shí)服務(wù)器105實(shí)現(xiàn)每個(gè)劃分,運(yùn)行時(shí)服務(wù)器105直接控 制所指派的軟件程序在一組相應(yīng)執(zhí)行服務(wù)器(或者節(jié)點(diǎn))110上的使 用。執(zhí)行服務(wù)器110可以包括在物理主機(jī)115上實(shí)現(xiàn)的邏輯客戶機(jī); 每個(gè)主機(jī)115(諸如,由IBM7^司提供的"zSeries" 、 "AS/400" 或者"Power5"類型)支持一個(gè)或者多個(gè)執(zhí)行服務(wù)器110 (例如,借 助于相應(yīng)的邏輯分區(qū))。實(shí)時(shí)服務(wù)器105以及劃分的所有執(zhí)行服務(wù) 器110通過網(wǎng)絡(luò)120 (例如,LAN)進(jìn)行通信。不同的運(yùn)行時(shí)服務(wù)器105向單個(gè)管理服務(wù)器125報(bào)告,所述管 理服務(wù)器125實(shí)現(xiàn)中央控制點(diǎn),用于整個(gè)組織的庫存、調(diào)配以及賬 目信息;運(yùn)行時(shí)服務(wù)器105以及管理服務(wù)器125連接至不同的網(wǎng)絡(luò) 130(例如,基于因特網(wǎng)的虛擬專用網(wǎng)或者VPN)?,F(xiàn)在考慮圖lb,由150表示上述系統(tǒng)(運(yùn)行時(shí)服務(wù)器、執(zhí)行服 務(wù)器的宿主機(jī)器,或者管理服務(wù)器)的一個(gè)一般計(jì)算機(jī)。計(jì)算機(jī)150 由多個(gè)單元形成,所述多個(gè)單元并行地連接至系統(tǒng)總線153(具有根 據(jù)系統(tǒng)中的計(jì)算機(jī)150的實(shí)際功能而適當(dāng)縮放的結(jié)構(gòu))。詳細(xì)地, 一個(gè)或者多個(gè)(微)處理器(^P) 156控制計(jì)算機(jī)150的操作;RAM 159由微處理器156直接用作工作存儲(chǔ)器,以及ROM 162存儲(chǔ)用于 引導(dǎo)計(jì)算機(jī)150的基本代碼。若千外圍單元(借助于各自的接口 ) 聚集在局部總線165周圍。具體地,海量存儲(chǔ)包括一個(gè)或者多個(gè)硬 盤168以及用于讀取CD-ROM 174的驅(qū)動(dòng)器171。而且,計(jì)算機(jī)150 包括輸入單元177 (例如,鍵盤和鼠標(biāo)),以及輸出單元180 (例如, 監(jiān)視器和打印機(jī))。適配器183用以將計(jì)算機(jī)150接入系統(tǒng)。橋接 單元186使得系統(tǒng)總線153與局部總線165對(duì)接。每個(gè)微處理器156 和橋接單元186可作為主代理操作,用于請(qǐng)求訪問系統(tǒng)總線153以 傳輸信息。仲裁器189管理對(duì)系統(tǒng)總線153的互斥訪問的授權(quán)。移至圖2,將上述系統(tǒng)上運(yùn)行的主軟件組件作為整體表示為附圖 標(biāo)記200。信息(程序和數(shù)據(jù))通常存儲(chǔ)在硬盤上,并且當(dāng)程序運(yùn)行 時(shí)被(至少部分地)加載到每個(gè)計(jì)算機(jī)的工作存儲(chǔ)器。最初,程序 例如從CD-ROM上安裝至硬盤。具體考慮一般主機(jī)115,管理器205控制該主機(jī)115的硬件配置; 出于此目的,硬件管理器205提供用戶界面,用以定義可用的硬件 資源(諸如,微處理器、工作存儲(chǔ)器、海量存儲(chǔ)設(shè)備、外圍單元), 以便處理對(duì)這些硬件資源的添加、移除、設(shè)置等。通常,主機(jī)115 的硬件配置中的任何變化都需要重啟(冷啟動(dòng))主機(jī)115。然而,主 機(jī)115還可以支持熱啟動(dòng),其中硬件配置被更新而無需停止該主機(jī) 115的操作。例如,當(dāng)主機(jī)115已經(jīng)購買有按需擴(kuò)容(CoD)方案時(shí), 這是可能的。在此情況下,主機(jī)115包括多于在其標(biāo)準(zhǔn)使用時(shí)所需 的硬件資源(以及尤其是微處理器);微處理器的一個(gè)子集是永久 可用的,而其余的額外微處理器僅在實(shí)際需要時(shí)才按需將其啟用(諸 如,響應(yīng)于工作量的峰值而啟用數(shù)小時(shí))。支持CoD方案的商業(yè)產(chǎn) 品是由IBM公司提供的"zSeries" 、 "AS/400"以及"Power5"計(jì) 算機(jī)。虛擬層210模擬多個(gè)客戶機(jī),這些客戶機(jī)實(shí)現(xiàn)運(yùn)行在主機(jī)115 上的不同執(zhí)行服務(wù)器110。具體地,虛擬層210將主機(jī)115劃分成為 多個(gè)邏輯分區(qū)(LPAR)。每個(gè)邏輯分區(qū)包括作為單獨(dú)計(jì)算機(jī)而獨(dú)立 操作的主機(jī)115的硬件資源的子集。通常,當(dāng)主機(jī)105實(shí)現(xiàn)CoD方 案時(shí),硬件管理器205將微處理器動(dòng)態(tài)地指派給每個(gè)邏輯分區(qū),直 到達(dá)到預(yù)定的最大數(shù)量;例如,如果主機(jī)115包括8個(gè)微處理器和4 個(gè)邏輯分區(qū),則可以為每個(gè)邏輯分區(qū)指派最大數(shù)量為2的微處理器 的(當(dāng)然,直到達(dá)到8的總數(shù))。支持邏輯分區(qū)的商業(yè)產(chǎn)品示例是 由IBM公司提供的"zSeries,,和"AS/400"計(jì)算機(jī)?,F(xiàn)在,參考在主機(jī)115上定義的一般執(zhí)行服務(wù)器110,客戶操作 系統(tǒng)215 (諸如,由IBM公司提供的"zOS,,或者"Linux")定義 其軟件平臺(tái),其上可以運(yùn)行任何其他的程序。如上文所指出,操作 系統(tǒng)215如同安裝在實(shí)際計(jì)算機(jī)(如由虛擬層210所模擬的)上一 樣工作。在執(zhí)行服務(wù)器110上安裝一個(gè)或者多個(gè)軟件產(chǎn)品220。許可代理 225檢測(cè)在執(zhí)行服務(wù)器110上運(yùn)行的軟件產(chǎn)品220。出于此目的,許可代理225訪問從運(yùn)行時(shí)服務(wù)器105(例如,周期性地或者在該運(yùn)行 時(shí)服務(wù)器105發(fā)生任何變化時(shí))下載的軟件目錄230c的本地副本。 軟件目錄230c指明在組織中將要計(jì)量的所有已知軟件產(chǎn)品。每個(gè)軟 件產(chǎn)品由一個(gè)或者多個(gè)可執(zhí)行模塊定義的簽名標(biāo)識(shí),當(dāng)運(yùn)行時(shí),所 述可執(zhí)行模塊指示軟件產(chǎn)品的使用;通常,借助于多個(gè)屬性(諸如, 其名稱、大小以及校驗(yàn)和)來在軟件目錄230c中指明每個(gè)可執(zhí)行模 塊。許可代理225向軟件監(jiān)視器235提供當(dāng)前在執(zhí)行服務(wù)器110上 運(yùn)行的軟件產(chǎn)品220的列表(包括關(guān)于未被認(rèn)出的任何未知軟件產(chǎn) 品的可用信息)。軟件監(jiān)視器235訪問運(yùn)行時(shí)表240,所述運(yùn)行時(shí)表 240提供正在執(zhí)行服務(wù)器115上使用的軟件產(chǎn)品220的快照。這樣, 軟件監(jiān)視器235可確定(從操作的最后一次重復(fù)起)已經(jīng)啟動(dòng)或者 停止的軟件產(chǎn)品220。如此獲得的信息(隨同相應(yīng)的時(shí)間戳一起)被 添加至軟件日志245;同時(shí),運(yùn)4亍時(shí)表240凈皮相應(yīng)地更新。在根據(jù)本發(fā)明實(shí)施例的方案中,基準(zhǔn)程序250動(dòng)態(tài)地測(cè)量執(zhí)行 服務(wù)器110的處理能力。如在下文中詳述,出于此目的,運(yùn)行基準(zhǔn) 程序250并且測(cè)量其執(zhí)行時(shí)間?;鶞?zhǔn)程序250執(zhí)行預(yù)定數(shù)量的指令; 例如,通過將基礎(chǔ)指令(例如,算術(shù)方法)重復(fù)固定次數(shù)(諸如, 通過循環(huán))來獲得結(jié)果。由此,可以根據(jù)執(zhí)行服務(wù)器100的操作速 率來估計(jì)其處理能力,這通過將測(cè)量的基準(zhǔn)程序250的執(zhí)行時(shí)間除 以已知指令數(shù)量來計(jì)算。所提議的方案有力地使對(duì)執(zhí)行服務(wù)器110處理能力的確定變得 容易。具體來講,期望的結(jié)果可以實(shí)時(shí)地獲得,而不需要維護(hù)任何 目錄;此外,所需的信息可以動(dòng)態(tài)地收集,以便該信息總是提供執(zhí) 行服務(wù)器110實(shí)際處理能力的準(zhǔn)確描述。在任何情況下,所發(fā)明的方案將對(duì)執(zhí)行服務(wù)器110處理能力的 測(cè)量與其物理細(xì)節(jié)分離。更具體地,此技術(shù)不需要了解執(zhí)行服務(wù)器 IIO的實(shí)際結(jié)構(gòu)。由此,不必取回關(guān)于執(zhí)行服務(wù)器IIO硬件配置的信 息(諸如,其處理器類型)。當(dāng)執(zhí)行服務(wù)器110不包括實(shí)際計(jì)算機(jī),在這種情況下很難(或者不可能)收集關(guān)于其硬件配置的信息時(shí), 此優(yōu)點(diǎn)是顯而易見的。由此,提議的方案具有通用適用性,而不考慮執(zhí)行服務(wù)器110的實(shí)現(xiàn)。優(yōu)選地,基準(zhǔn)程序250以低級(jí)語言(諸如,匯編語言或者機(jī)器 語言)編寫。低級(jí)語言僅支持基本指令集,該基本指令集對(duì)應(yīng)于可 由計(jì)算機(jī)的微處理器執(zhí)行的操作。在機(jī)器語言中,指令包括可用以 直接控制微處理器操作的比特模式(機(jī)器代碼)。另一方面,在匯 編語言中,相同的指令由更為容易閱讀和編寫的助記符號(hào)(由匯編 器將所述助記符號(hào)轉(zhuǎn)換至相應(yīng)的機(jī)器代碼)來表示。低級(jí)語言不同 于高級(jí)語言,高級(jí)語言支持人類格式(human format)的更為豐富的 指令集。對(duì)于高級(jí)語言的執(zhí)行,必須將那些指令轉(zhuǎn)換(例如,通過 編譯器靜態(tài)地轉(zhuǎn)換或者通過解釋器來動(dòng)態(tài)地轉(zhuǎn)換)成為相應(yīng)的機(jī)器 代碼流;編譯器或者解釋器可以生成用于實(shí)際計(jì)算機(jī)的機(jī)器代碼, 或者生成用于其實(shí)際實(shí)現(xiàn)被隱藏的虛擬機(jī)的機(jī)器代碼(諸如,由Java 運(yùn)行時(shí)環(huán)境支持的字節(jié)代碼)。以低級(jí)語言編寫基準(zhǔn)程序250的選 擇確保在異種執(zhí)行服務(wù)器110上獲得的結(jié)果的良好一致性,這是由于其避免了由編譯器或者解釋器所引入的任何差異。此外,在上述多處理器環(huán)境(其中,執(zhí)行服務(wù)器110可以包括 兩個(gè)或者多個(gè)微處理器)中,基準(zhǔn)程序250必須是單線程的;作為 結(jié)果,基準(zhǔn)程序250總是在單個(gè)微處理器上執(zhí)行,以便提供對(duì)其操 作速率的準(zhǔn)確估計(jì)。在此情況下,通過將如此獲得的結(jié)果乘以執(zhí)行 服務(wù)器110的(相同)微處理器的數(shù)量而獲得執(zhí)行服務(wù)器110的總 處理能力。出于此目的,基準(zhǔn)程序250通過專用應(yīng)用程序接口 (API)來與 操作系統(tǒng)215對(duì)接。基準(zhǔn)程序250將所估計(jì)的執(zhí)行服務(wù)器110的處 理能力(隨同相應(yīng)的時(shí)間戳一起)添加到硬件日志255。許可代理235訪問軟件日志245以及硬件日志255兩者。許可 代理235從軟件日志245提取上述軟件執(zhí)行信息(即,任何軟件產(chǎn) 品220的開始時(shí)間和/或結(jié)束時(shí)間),以及從硬件日志255提取上述硬件能力信息(即,處理能力);然后,將此信息傳送至運(yùn)行時(shí)服 務(wù)器105 (隨同執(zhí)行服務(wù)器110的標(biāo)識(shí)符一起)?,F(xiàn)在,考慮運(yùn)行時(shí)服務(wù)器105,許可管理器260接收在劃分中的 每個(gè)執(zhí)行服務(wù)器110的硬件能力信息以及軟件執(zhí)行信息。許可管理 器260將各條不同信息保存至(全局)劃分日志265,并將其上傳至 管理服務(wù)器(在附圖中未示出)。此外,許可管理器260還從同一 管理服務(wù)器(例如,周期性地或者在該管理服務(wù)器發(fā)生任何變化時(shí)) 下載軟件目錄(由230m所表示)的主副本。通常,管理服務(wù)器將所接收的信息聚集到使用報(bào)告中。使用報(bào) 告列出了在預(yù)定時(shí)間(諸如,最后一天)運(yùn)行在執(zhí)行服務(wù)器110上 的軟件產(chǎn)品;對(duì)于每個(gè)軟件產(chǎn)品,使用報(bào)告指明了在具有不同處理 能力的執(zhí)行服務(wù)器110上(即,在不同執(zhí)行服務(wù)器110上和/或在具 有隨時(shí)間而不同的硬件配置的同一執(zhí)行服務(wù)器110上)的任何運(yùn)行 周期的長(zhǎng)度;例如,使用報(bào)告可以指示在具有1個(gè)低端微處理器 的執(zhí)行服務(wù)器110上運(yùn)行2個(gè)小時(shí)的特定軟件產(chǎn)品、在具有1個(gè)高 端微處理器的執(zhí)行服務(wù)器110上運(yùn)行1個(gè)小時(shí)的特定軟件產(chǎn)品、以 及在現(xiàn)在具有2個(gè)高端微處理器的同一執(zhí)行服務(wù)器110上又運(yùn)行3 小時(shí)的特定軟件產(chǎn)品。通常,使用報(bào)告還可以指出在組織的執(zhí)行服 務(wù)器IIO上發(fā)生的任何異常事件(諸如,使用了未知軟件產(chǎn)品)。針對(duì)已知軟件產(chǎn)品的任何使用,可以使用此信息來對(duì)上述許可 費(fèi)用進(jìn)行收費(fèi)(根據(jù)針對(duì)不同處理能力定義的預(yù)定費(fèi)率,該預(yù)定費(fèi) 率如通過所述軟件產(chǎn)品的使用條件所指明);例如,在上述情況下, 針對(duì)軟件產(chǎn)品在具有1個(gè)低端微處理器的執(zhí)行服務(wù)器IIO上的每小 時(shí)使用可收取較低量的費(fèi)用,而針對(duì)在具有1個(gè)高端微處理器的其 他執(zhí)行服務(wù)器110上的每小時(shí)使用收取較高量的費(fèi)用,以及針對(duì)在 具有2個(gè)高端微處理器的同一執(zhí)行服務(wù)器110上的每小時(shí)使用收取 更高量的費(fèi)用?,F(xiàn)在參考圖3a至圖3b,由方法300表示一種可以在上述系統(tǒng)中 實(shí)現(xiàn)(以便計(jì)量期望軟件產(chǎn)品的使用)的示意性處理的邏輯流程。方法300開始于在一般執(zhí)行服務(wù)器的泳道中的黑色開始圏302。 一旦 執(zhí)行服務(wù)器開啟,則處理下行進(jìn)入塊304。在此階段中,調(diào)用許可代 理以估計(jì)執(zhí)行服務(wù)器的處理能力。出于此目的,在塊306處,許可 代理檢測(cè)對(duì)執(zhí)行服務(wù)器可用的微處理器的數(shù)量(借助于操作系統(tǒng)的 相應(yīng)API)。然后,許可代理扭J亍基準(zhǔn)程序并確定其^U于時(shí)間??梢砸詢煞N 不同方式實(shí)現(xiàn)此結(jié)果,這通過在同步條308處分岔為可選分支的活 動(dòng)的流程來表示。具體地, 一個(gè)實(shí)現(xiàn)包括由塊310-316形成的分支的 執(zhí)行,而另一實(shí)現(xiàn)包括由塊318-320形成的分支的執(zhí)行;兩個(gè)分支在 另一同步條322處匯合?,F(xiàn)在考慮塊310,采樣并記錄系統(tǒng)時(shí)鐘(借助于操作系統(tǒng)的相應(yīng) API)。然后,在塊312處發(fā)起基準(zhǔn)程序。 一旦基準(zhǔn)程序的執(zhí)行結(jié)束 (塊314),則再次采樣和記錄系統(tǒng)時(shí)鐘。轉(zhuǎn)到塊316,通過從第二 系統(tǒng)時(shí)鐘(指示基準(zhǔn)程序結(jié)束時(shí)間)減去第一系統(tǒng)時(shí)鐘(指示基準(zhǔn) 程序開始時(shí)間)來計(jì)算基準(zhǔn)程序的執(zhí)行時(shí)間。分支在同步條322處 結(jié)束。在此情況下,基準(zhǔn)程序必須是不可中斷的,即,其在(指派 的)微處理器上的執(zhí)行不能為服務(wù)于不同的請(qǐng)求而桂起;作為結(jié)果,外,基準(zhǔn)程序?qū)?zhí)行相對(duì)較高數(shù)量的指令(例如,至少數(shù)百以及優(yōu) 選地是數(shù)千);作為結(jié)果,相對(duì)于基準(zhǔn)程序的執(zhí)行時(shí)間,用于記錄 其開始時(shí)間和結(jié)束時(shí)間而花費(fèi)的時(shí)間可忽略(從而所述花費(fèi)的時(shí)間 不會(huì)不利地影響其確定的準(zhǔn)確性)。上述實(shí)現(xiàn)非常簡(jiǎn)單并且具有通 用適用性??商鎿Q地,與通常一樣,在塊318處發(fā)起基準(zhǔn)程序;在此情況 下,基準(zhǔn)程序作為任何其他軟件程序(為了使用執(zhí)行服務(wù)器的微處 理器而與其他軟件程序竟?fàn)?而執(zhí)行。 一旦基準(zhǔn)程序結(jié)束,則方法 300前進(jìn)到塊320。在此階段,許可代理取回用以執(zhí)行基準(zhǔn)程序的進(jìn) 程的處理器時(shí)間(由操作系統(tǒng)記錄);例如,通過調(diào)用操作系統(tǒng)的 相應(yīng)API或者通過訪問專用日志(諸如,"z/OS"上的SMF記錄)來實(shí)現(xiàn)此結(jié)果。應(yīng)該注意,處理器時(shí)間指示由相關(guān)的微處理器對(duì)進(jìn) 程所實(shí)際貢獻(xiàn)的時(shí)間,這不同于在微處理器通常服務(wù)于其他處理期間相應(yīng)地逝去的時(shí)間。另外,分支同樣在同步條322處結(jié)束。在此 情況下,執(zhí)行時(shí)間的非常精確的計(jì)算是可行的。在兩種情況下,處理現(xiàn)在都前進(jìn)至框324。在此階段,將基準(zhǔn)程 序的經(jīng)過測(cè)量的執(zhí)行時(shí)間(通常以"秒,,來表達(dá))除以其指令的數(shù) 量(之前已知);這提供了執(zhí)行服務(wù)器的一般微處理器的(估計(jì)的) 操作速率(以指令/秒表達(dá))。前進(jìn)至塊326,通過將如此獲得的操 作速率乘以其微處理器的數(shù)量來計(jì)算執(zhí)行服務(wù)器的總處理能力。在 塊328處,許可代理將此信息(隨同相應(yīng)時(shí)間戳一起)添加至硬件 曰志。上激活實(shí)際業(yè)務(wù)工作量之前完成基準(zhǔn)程序;這使該操作對(duì)于執(zhí)行服 務(wù)器性能的影響(尤其是,當(dāng)基準(zhǔn)程序是不可中斷的并且隨后對(duì)整 個(gè)微處理器采取獨(dú)占式使用的時(shí)候)最小化。附加地或者可替換地, 一旦超過預(yù)定超時(shí)(例如,每10-60分鐘), 則處理從塊330轉(zhuǎn)到至塊332;在此階段中,許可代理再次檢測(cè)l丸行 服務(wù)器的微處理器數(shù)量?,F(xiàn)在,在塊334處執(zhí)行測(cè)試以確定微處理 器的數(shù)量是否已經(jīng)改變(從操作的上一次重復(fù)開始)。如果改變, 則活動(dòng)的流程前進(jìn)至塊326,以便(根據(jù)微處理器的新數(shù)量以及它們 的已知操作速率)重新計(jì)算執(zhí)行服務(wù)器的處理能力。這一特征使得 即使是在相應(yīng)硬件配置可被更新時(shí),也可以跟蹤執(zhí)行服務(wù)器的處理 能力,而不必停止其操作;然而,選擇僅響應(yīng)于檢測(cè)到任何變化而 執(zhí)行操作,維持了對(duì)執(zhí)行服務(wù)器性能的可接受影響。在任何情況下, 一旦操作已經(jīng)終止,則方法300從塊328前進(jìn) 至塊336;當(dāng)微處理器數(shù)量未改變時(shí),從塊334也直接達(dá)到相同的點(diǎn)。 一旦超過另一超時(shí)(例如,每1-10分鐘),則在塊338處許可代理 取回(借助于操作系統(tǒng)的相應(yīng)API )在執(zhí)行服務(wù)器上活躍的進(jìn)程列表。 然后,針對(duì)每個(gè)進(jìn)程(從第一進(jìn)程開始)執(zhí)行循環(huán);在塊340處開始循環(huán),其中許可代理訪問相應(yīng)的可執(zhí)行模塊(由從操作系統(tǒng)返回 的名稱來標(biāo)識(shí)),以便取回其進(jìn)一步的屬性(即,在所討論的示例中是大小和校驗(yàn)和)。前進(jìn)至塊342,許可代理將可執(zhí)行模塊的校驗(yàn) 和以及大小與在針對(duì)其名稱(如果存在的話)的軟件目錄中指明的 校驗(yàn)和以及大小進(jìn)行比較。當(dāng)可執(zhí)行模塊的屬性與軟件目錄中的條 目匹配時(shí)(判斷塊344),在塊346處標(biāo)識(shí)相應(yīng)的軟件產(chǎn)品。相反, 在塊348處將軟件產(chǎn)品設(shè)置為未知(保存任何可用信息,諸如可執(zhí) 行模塊的名稱)。在兩種情況下,在塊350處,將如此獲得的信息 添加至當(dāng)前在執(zhí)行服務(wù)器上運(yùn)行的軟件產(chǎn)品的列表。然后,在塊352 處進(jìn)行測(cè)試以確定是否已經(jīng)分析了所有進(jìn)程。如果沒有,則方法返 回塊340以針對(duì)下一進(jìn)程重復(fù)相同操作。相反,退出循環(huán)并且下行 進(jìn)入框354;在此階段中,軟件監(jiān)視器將運(yùn)行軟件產(chǎn)品的列表(從許 可代理接收)與運(yùn)行時(shí)表的內(nèi)容進(jìn)行比較,以便確定已經(jīng)開始或者 結(jié)束的軟件產(chǎn)品(從操作的前一重復(fù)開始)。前進(jìn)至塊356,將如此 獲得的信息(隨同相應(yīng)時(shí)間戳一起)添加至軟件日志,并且運(yùn)行時(shí) 表被相應(yīng)地更新。在塊358處, 一旦超過另一超時(shí)(例如,每6-24小時(shí)),則處 理進(jìn)入塊360;在此階段,許可管理器(從軟件日志)提取軟件執(zhí)行 信息以及(從硬件日志)提取硬件能力信息;然后,將此信息(隨 同執(zhí)行服務(wù)器的標(biāo)識(shí)符一起)傳送至運(yùn)行時(shí)服務(wù)器。作為響應(yīng),在 塊362處,運(yùn)行時(shí)服務(wù)器將所接收的信息保存至劃分日志。在塊364處,響應(yīng)于超過不同的超時(shí)(例如,在每天結(jié)束時(shí)), 在塊366處,許可管理器將劃分日志中可用的信息上傳至管理服務(wù) 器。轉(zhuǎn)移至管理服務(wù)器的泳道,可通過聚集所接收的信息而在塊368 處生成新的使用報(bào)告。然后,在塊370處分析如此獲得的使用報(bào)告 (例如,以便收取適當(dāng)?shù)脑S可費(fèi)用)。然后,方法在同心的白/黑停 止圏372處結(jié)束。理所當(dāng)然地,為了滿足本地的具體要求,本領(lǐng)域技術(shù)人員可以 對(duì)上述方案進(jìn)行許多變化和調(diào)整。尤其是,盡管在某種特定程度上參考本發(fā)明的優(yōu)選實(shí)施例而描述了本發(fā)明,然而應(yīng)該理解,在形式和細(xì)節(jié)中的各種省略、替換和變化、以及其他實(shí)施例都是可行的; 此外, 一個(gè)明確的意圖是,與本發(fā)明的任何所公開實(shí)施例相結(jié)合描 述的具體元件和/或方法步驟可以作為設(shè)計(jì)選擇的通用主題而與任何 其他實(shí)施例進(jìn)行結(jié)合。例如,如果系統(tǒng)具有不同的架構(gòu)或者包括等效單元,則類似的 考慮將適用。此外,每個(gè)計(jì)算機(jī)可以具有其他結(jié)構(gòu)或者可以包括類 似元件(諸如,高速緩存存儲(chǔ)器,用于臨時(shí)存儲(chǔ)程序或者程序的部 分以便在執(zhí)行期間降低對(duì)海量存儲(chǔ)器的訪問);在任何情況下,可 以由任何代碼執(zhí)行實(shí)體(諸如,PDA、移動(dòng)電話等)來代替計(jì)算機(jī)。顯而易見的是,本發(fā)明的實(shí)現(xiàn)并不局限于任何具體的許可應(yīng)用 和/或用于識(shí)別運(yùn)行在執(zhí)行服務(wù)器上的軟件產(chǎn)品的技術(shù);例如,通過 攔截相應(yīng)進(jìn)程的啟動(dòng)(例如,使用內(nèi)核鉤(kernel hooking )技術(shù)), 可以檢觀'j任何新的軟件產(chǎn)品(或者任何等效地以數(shù)字方式編碼的產(chǎn) 品,諸如,電子書)。同樣,可以測(cè)量軟件產(chǎn)品的調(diào)用次數(shù)(而不 是相應(yīng)運(yùn)行周期的長(zhǎng)度),或者更一般地,測(cè)量指示軟件產(chǎn)品運(yùn)行 的任何其他索引。另外,可用信息可以簡(jiǎn)單地用來驗(yàn)證是否符合適 用的使用條件,或者更一般地用于其他管理目的。所提出的用于確定基準(zhǔn)程序的執(zhí)行時(shí)間(以及然后確定處理能 力)的算法僅僅是示意性的。例如,完全可以由基準(zhǔn)程序直接實(shí)現(xiàn) 所有操作;可替換地,可以具有不同的代理,所述代理估計(jì)處理能 力并且獨(dú)立地將其傳送至運(yùn)行時(shí)服務(wù)器。在不脫離本發(fā)明的原理的情況下,基準(zhǔn)程序可以執(zhí)行任何其他 指令(即使以不同語言編寫)??商鎿Q地,可以僅在執(zhí)行服務(wù)器啟動(dòng)時(shí)發(fā)起基準(zhǔn)程序(例如, 當(dāng)不可能進(jìn)行熱啟動(dòng)時(shí));反之亦然,當(dāng)其硬件配置持續(xù)地受到監(jiān) 控時(shí),可以避免在執(zhí)行服務(wù)器啟動(dòng)時(shí)發(fā)起基準(zhǔn)程序。在任何情況下, 用于基準(zhǔn)程序執(zhí)行的不同調(diào)度策略(例如,簡(jiǎn)單周期性地)都落入本發(fā)明的范圍中。即使已經(jīng)針對(duì)在多處理器計(jì)算機(jī)上使用而具體設(shè)計(jì)了所提議的 方案,其中所述多處理器計(jì)算機(jī)被劃分成為多個(gè)邏輯分區(qū),但是這 不應(yīng)以限制性方式來解釋。例如,完全可以在具有單個(gè)微處理器的 計(jì)算機(jī)上應(yīng)用相同的方案。此外,根據(jù)本發(fā)明的方案使其自身可在 虛擬機(jī)上使用,或者更一般地,在物理主機(jī)上實(shí)現(xiàn)的任何其他邏輯 客戶機(jī)上使用。在任何情況下,同樣的技術(shù)在不具有虛擬層的實(shí)際 計(jì)算機(jī)上具有相同的應(yīng)用。如果以不同方式來構(gòu)造程序(其可用以實(shí)現(xiàn)本發(fā)明的每個(gè)實(shí)施例),或者如果提供附加的模塊或者函數(shù),則類似的考慮可以適用; 同樣,存儲(chǔ)器結(jié)構(gòu)可以是其他類型,或者可以由等效實(shí)體(不必包 括物理存儲(chǔ)器介質(zhì))來代替。此外,所提議的方案使其自身可用等 效方法(具有類似或者附加的步驟,甚至以不同的順序)來實(shí)現(xiàn)。 在任何情況下,程序可以采用適用于由任何數(shù)據(jù)系統(tǒng)所使用或者與 任何數(shù)據(jù)處理系統(tǒng)結(jié)合使用的任何形式,所述數(shù)據(jù)處理系統(tǒng)諸如外 部軟件或者駐留軟件、固件、或者微代碼(以目標(biāo)代碼的形式或者 以源代碼形式)。此外,程序可以提供在任何計(jì)算機(jī)可用介質(zhì)上; 所述介質(zhì)可以是適用于包含、存儲(chǔ)、傳送、傳播或者傳輸所述程序 的任何元件。這種介質(zhì)的示例是(其中可以預(yù)先裝載程序的)固定 盤、可移動(dòng)盤、磁帶、卡、線纜、光纖、無線連接、網(wǎng)絡(luò)、廣播波 等;例如,所述介質(zhì)可以是電子的、磁性的、光的、電磁的、紅外 的或者半導(dǎo)體類型。在任何情況下,根據(jù)本發(fā)明的方案使其自身可以由硬件結(jié)構(gòu)實(shí) 現(xiàn)(例如,集成在半導(dǎo)體材料芯片中)或者以軟件和硬件的結(jié)合來 實(shí)現(xiàn)。
權(quán)利要求
1.一種方法(300),用于對(duì)軟件產(chǎn)品在數(shù)據(jù)處理系統(tǒng)上的使用進(jìn)行計(jì)量,所述方法包括以下步驟測(cè)量(336-356)運(yùn)行索引,所述運(yùn)行索引指示在所述系統(tǒng)上的一組預(yù)定軟件產(chǎn)品的每一個(gè)的運(yùn)行,根據(jù)所述系統(tǒng)的處理能力以及所述相應(yīng)的運(yùn)行索引來確定(358-370)每個(gè)軟件產(chǎn)品的使用,其特征在于以下步驟在所述系統(tǒng)上執(zhí)行(312;318)基準(zhǔn)程序,所述基準(zhǔn)程序執(zhí)行預(yù)定數(shù)量的指令,確定(310,314-316;320)所述基準(zhǔn)程序的執(zhí)行時(shí)間的指示,以及根據(jù)所述執(zhí)行時(shí)間以及所述指令的數(shù)量來計(jì)算(324)所述處理能力。
2. 根據(jù)權(quán)利要求1所述的方法(300 ),其中所述基準(zhǔn)程序是不 可中斷的,確定所述執(zhí)行時(shí)間的指示(310, 314-316)的步驟包括記錄(310)所述基準(zhǔn)程序的開始時(shí)間, 記錄(314)所述基準(zhǔn)程序的結(jié)束時(shí)間,以及 根據(jù)在所述結(jié)束時(shí)間和所述開始時(shí)間之間的差值來計(jì)算(316) 所述執(zhí)行時(shí)間。
3. 根據(jù)權(quán)利要求1所述的方法(300 ),其中對(duì)由所述系統(tǒng)的處 理器對(duì)所述系統(tǒng)上完成的每個(gè)進(jìn)程所貢獻(xiàn)的處理器時(shí)間進(jìn)行記錄, 確定所述執(zhí)行時(shí)間的指示的步驟(320)包括根據(jù)用以執(zhí)行所述基準(zhǔn)程序的基準(zhǔn)進(jìn)程的所述處理器時(shí)間來設(shè) 置(320 )所述執(zhí)行時(shí)間。
4. 根據(jù)權(quán)利要求1至3的任一項(xiàng)所述的方法(300 ),其中所述 基準(zhǔn)程序包括以低級(jí)語言編寫的指令集。
5. 根據(jù)權(quán)利要求1至4的任一項(xiàng)所述的方法(300),進(jìn)一步包括以下步驟響應(yīng)于所述系統(tǒng)的啟動(dòng)來發(fā)起(304 )所述基準(zhǔn)程序的執(zhí)行。
6. 根據(jù)權(quán)利要求1至5的任一項(xiàng)所述的方法(300),其中所述 系統(tǒng)包括多于 一 個(gè)的多個(gè)處理器,以及其中所述基準(zhǔn)程序適用于在 所述處理器的一個(gè)上執(zhí)行,所述方法進(jìn)一步包括以下步驟確定(306; 332 )所述處理器的數(shù)量,以及 根據(jù)基于所述處理器數(shù)量的乘法因子來更新(326 )所述處理能力。
7. 根據(jù)權(quán)利要求6所述的方法(300 ),進(jìn)一步包括以下步驟 檢測(cè)(330-332 )所述處理器數(shù)量的變化,以及 響應(yīng)于檢測(cè)到所述變化來執(zhí)行(334 )所述處理能力的更新。
8. 根據(jù)權(quán)利要求1至7的任一項(xiàng)所述的方法(300 ),其中所述 系統(tǒng)包括實(shí)現(xiàn)多個(gè)邏輯客戶機(jī)的物理主機(jī),以下步驟在被選擇的一 個(gè)所述客戶機(jī)上執(zhí)行執(zhí)行所述基準(zhǔn)程序(312; 310),確定所述 執(zhí)行時(shí)間的指示(310, 314-316; 320 ),以及計(jì)算所述處理能力(324 )。
9. 一種計(jì)算機(jī)程序(200),當(dāng)在數(shù)據(jù)處理系統(tǒng)(100)上執(zhí)行 所述計(jì)算機(jī)程序時(shí),該程序用于執(zhí)行權(quán)利要求1至8的任一項(xiàng)所述 的方法(300 )。
10. —種系統(tǒng)(100),包括用于執(zhí)行根據(jù)權(quán)利要求1至8的任 一項(xiàng)所述的方法(300 )的步驟的裝置(200)。
全文摘要
提出了一種用于對(duì)軟件產(chǎn)品在數(shù)據(jù)處理系統(tǒng)上的使用進(jìn)行計(jì)量的方案(300)。在此上下文中,通常需要知道其中運(yùn)行普通軟件產(chǎn)品的每個(gè)計(jì)算機(jī)的處理能力(例如,用于基于不同的收費(fèi)費(fèi)率來進(jìn)行許可計(jì)費(fèi))。在所提出的方案中,在計(jì)算機(jī)上直接動(dòng)態(tài)地估計(jì)處理能力。出于此目的,諸如在啟動(dòng)時(shí)或者周期性地執(zhí)行(308-322)以低級(jí)語言編寫的(單線程)基準(zhǔn)程序。以此方式,通過將所測(cè)量的基準(zhǔn)程序的執(zhí)行時(shí)間除以(324)其指令的已知數(shù)量,可以確定計(jì)算機(jī)的單個(gè)微處理器的執(zhí)行速率。將此值乘以(326)所檢測(cè)(306;332)的可用微處理器的數(shù)量,對(duì)計(jì)算機(jī)的處理能力提供了準(zhǔn)確的估計(jì)。實(shí)現(xiàn)了期望的結(jié)果,而不需要知道計(jì)算機(jī)的物理細(xì)節(jié);當(dāng)計(jì)算機(jī)包括在物理主機(jī)上實(shí)現(xiàn)的邏輯客戶機(jī)時(shí),這尤其有利。
文檔編號(hào)G06F11/34GK101331460SQ200680046991
公開日2008年12月24日 申請(qǐng)日期2006年10月25日 優(yōu)先權(quán)日2005年12月16日
發(fā)明者A·佩龍, R·穆拉蒂, S·瑪克萊爾蘭 申請(qǐng)人:國際商業(yè)機(jī)器公司