(57)【要約】  コンピュータ資源利用を判定するための使用量測定システムが提供される。コンピュータ資源利用は、カウンタのアレイに基づいてコンピュータ資源利用のインスタンスを蓄積することによって判定される。これにより、蓄積された期間にわたってコンピュータ資源利用の所定のしきい値基準を超える場合のインスタンスを正確に判定することができる。ある期間にわたって値を平均化するのではなく、カウンタのアレイを用いてデータを収集することによって、コンピュータ資源利用のより正確な表示が判定される。使用量測定システムは、コンピュータシステム資源にはほとんど影響しない。なぜなら、スナップショットが取られるのはあまり頻繁ではなく、いずれのコンピュータ資源利用計算も、監視されるシステムとは別個のコンピュータプラットフォーム上で行なうことができるからである。
2008546061.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
（ａ）  第１のコンピュータシステムにおけるコンピュータ資源利用のレベルを示す値を収集するステップと、
（ｂ）  収集された値に対応するバケットをアレイから選択するステップとを備え、アレイの各バケットは、特定のコンピュータ資源レベル値が何回観測されたかについての記録履歴を示すカウント値を含み、さらに、
（ｃ）  収集された値に対応するバケットに保持されているカウント値を修正するステップと、
（ｄ）  規定時間の間、ステップ（ａ）、ステップ（ｂ）およびステップ（ｃ）に述べた演算動作を反復的に繰返すステップと、
（ｅ）  少なくとも前記期間中に行なわれたコンピュータ資源利用のレベルを示す、アレイに含まれるカウント値に基づいてレポートを作成するステップとを備える方法。
【請求項２】
第２の期間後に、アレイに保持されている各カウント値を第２のコンピュータシステムに転送するステップをさらに備える、請求項１に記載の方法。
【請求項３】
第２の期間後に、第１のアレイに保持されている各カウント値を第２のアレイに転送し、バケットを含む第２のアレイを保持するステップをさらに備え、各バケットは、第１のアレイにおいて対応するバケットから受取ったカウント値の累積を表すカウント値を含む、請求項１に記載の方法。
【請求項４】
課金センターにレポートを送るステップをさらに備える、請求項１に記載の方法。
【請求項５】
第１のコンピュータシステム上にあるコレクタモジュールによって、収集、選択および修正の反復的な動作が実行される、請求項１に記載の方法。
【請求項６】
レポートを作成する動作はレポータモジュールによって実行される、請求項１に記載の方法。
【請求項７】
コンピュータシステム上で生じるコンピュータ資源利用を測定するための方法であって、
特定の時間間隔中に使用されたコンピュータ資源量を示すコンピュータ資源利用データを収集するステップと、
異なるレベルのコンピュータ資源利用に対応するバケットのアレイを保持するステップとを備え、各バケットは、ある期間にわたってあるレベルのコンピュータ資源利用に到達したインスタンスの数量を示すカウンタを有し、さらに、
バケットのアレイのうち、特定の時間間隔の間のあるレベルのコンピュータ資源利用に対応するバケットにおけるカウンタの値を修正するステップと、
コンピュータ資源利用データを収集するステップおよびカウンタの値を修正するステップを、複数の時間間隔の回数繰返すステップと、
バケットのアレイにおけるカウンタの値に基づいて、複数の時間間隔の回数に等しいある期間にわたるコンピュータ資源利用を報告するステップとを備える方法。
【請求項８】
収集、保持および修正動作は、１個以上のプロセッサ上で実行されるソフトウェアコードとして動作するコレクタモジュールによって行なわれる、請求項７に記載の方法。
【請求項９】
コンピュータ資源利用を報告する動作は、１個以上のプロセッサ上で実行されるソフトウェアコードとして動作するレポータモジュールによって行なわれる、請求項７に記載の
方法。
【請求項１０】
使用量測定システムであって、
コンピュータシステム上で動作するコレクタモジュールを備え、前記コレクタモジュールは、規定時間にわたって継続的にコンピュータシステムのプロセス利用マネージャのスナップショットを取り、パフォーマンスデータをアレイに記録するように構成され、
各スナップショットは、特定の時間間隔で利用されたコンピュータ資源のピーク量を示す値を与え、
アレイは複数のバケットを含み、各バケットは、コンピュータ資源利用の特定の増分値を表し、各バケットはカウンタを有し、カウント値は、特定のコンピュータ資源レベルが観察された回数を示し、
スナップショットの各値はコレクタモジュールによって使用され、スナップショットの値に対応するバケットをアレイから選択し、かつ、選択されたバケットに対応する特定のコンピュータ資源レベルが観察されるたびに、選択されたバケットのカウント値を修正する、使用量測定システム。
【請求項１１】
コレクタモジュールと通信し、かつアレイに関連するコレクタモジュールからデータを受取るように構成されたレポータモジュールをさらに備える、請求項１０に記載の使用量測定システム。
【請求項１２】
レポータモジュールをさらに備え、レポータモジュールは、（ｉ）コレクタモジュールと通信し、（ii）アレイに関連するコレクタモジュールからデータを受信し、かつ（iii）データを集約しフォーマット化して、指定されたシステムに最終的に送信するように構成される、請求項１０に記載の使用量測定システム。
【請求項１３】
レポータモジュールをさらに備え、レポータモジュールは、コレクタモジュールとの通信を試みるように構成されるが、ある規定期間の後、またはコレクタモジュールとの通信を何度か試みた後に、レポータモジュールがコレクタモジュールからデータを受信できなければ、レポータは、インスタンスパーティション、コンピュータシステム、および／またはコレクタモジュールの調子に問題があることを示す警告メッセージを、指定されたサイト、人およびサービスセンターのうちの１つに送る、請求項１０に記載の使用量測定システム。
【請求項１４】
第１のレポータモジュールおよび第２のレポータモジュールをさらに備え、第１のレポータモジュールは、コレクタモジュールからアレイの形態で利用データを収集し、利用データを指定されたエンティティに報告するように構成され、第２のレポータモジュールは、第１のレポータモジュールがコレクタモジュールと通信できなければ、第１のレポータモジュールの代わりに、コレクタモジュールからアレイの形態で利用データを収集し、利用データを指定されたエンティティに報告するように構成される、請求項１０に記載の使用量測定システム。
【請求項１５】
コレクタモジュールはコンピュータシステム上にある、請求項１０に記載の使用量測定システム。
【請求項１６】
コレクタモジュールと通信し、かつデータを集約しフォーマット化して、指定されたシステムに最終的に送信するように構成されたレポータモジュールをさらに備え、レポータモジュールは、コンピュータシステムとは別個の管理コンピュータ上にある、請求項１０に記載の使用量測定システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概して、コンピュータシステムにおけるコンピュータ資源の利用の監視に関し、より具体的には、使用量測定技術に関する。
【背景技術】
【０００２】
背景
コンピュータシステムを購入するための新たなモデルがコンピュータ業界において出現しており、キャパシティオンデマンド課金と称される。このモデルによれば、顧客は、コンピュータシステムに設置されたコンピュータ資源の数量（すなわち、コンピュータシステムにおいて利用可能な中央処理装置（ＣＰＵ）、メモリユニット、および／または入出力（Ｉ／Ｏ）モジュールの数）に基づく一定の基準実行能力レベルでコンピュータシステムを購入することに合意する。これに対してコンピュータシステムの製造業者は、顧客が前払いすることなく余剰のコンピュータ資源をコンピュータシステム上に設置することに合意し、顧客は、その追加コンピュータ資源を利用回数制料金で使用する権利が与えられる。コンピュータシステムとともに採用される自動化された使用量測定技術は、いつ顧客の資源使用量がしきい値レベル、すなわち一定の基準実行能力レベルを超えるかを検出し、顧客はしきい値を超えた超過使用量に対する使用料を請求される。典型的に、使用量測定技術はバックグラウンドで機能し、コンピュータ資源利用データを記録し、請求書作成のために当該データを課金サイトに送信する。
【０００３】
キャパシティオンデマンド課金モデルの利点は、顧客が追加費用を前払いすることなく、コンピュータシステムを予備キャパシティとともに購入できる点である。つまり顧客は、コンピュータの使用需要が高い期間中に即座に利用可能な追加資源を有することができ、需要が低い期間中に休止している追加コンピュータ資源を購入しなければならないという不利益がない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
合意したしきい値を超えたコンピュータ資源の使用に対して顧客が正確に請求されるのを確実にすることは、キャパシティオンデマンド課金モデルに伴う課題である。たとえば、使用量測定技術の一部は平均化方法に依存し、平均化方法は、比較的長期間にわたるコンピュータシステムの資源利用を記録する傾向にあり、実在の世界でのタスクを実行する典型的なコンピュータシステムの短期間単位の動作を計上できないことが多い。たとえば、合意した最大しきい値が４個のＣＰＵであるコンピュータシステムを顧客が購入したが、実際には１６個のＣＰＵがコンピュータシステムにあると仮定する。顧客は、処理能力として１２個分のＣＰＵを１日のうち３時間使用し、残りの２１時間は処理能力として２個分のＣＰＵしか使用しないと仮定する。使用量測定技術が平均化方法を使用するならば、顧客はＣＰＵ資源のうち３．２個分のＣＰＵしか使用していないように見え、これは４個のＣＰＵという顧客の基準しきい値に十分収まる。実際には、ピーク使用時では１日のうち３時間は１２個のＣＰＵが使用されたため、４個の基準ＣＰＵを超えた追加の８個のＣＰＵの使用に対して顧客に請求すべきであった。言い換えれば、ピーク使用時に追加のＣＰＵ資源を使用できる能力がなければ、顧客の作業は適時に完了しなかったであろうし、追加資源の使用に対して顧客に請求すべきであったが、この場合は請求されなかった。したがって、平均化に基づく使用量データのサンプリングに伴う欠点は、測定使用量ツールが短期間のイベントを把握できず、実際にコンピュータシステムにおいて生じているよりも低いコンピュータ資源利用レベルを伴う結果を生じるおそれがある点である。
【０００５】
平均化の問題点を補うため、一部の使用量測定ツールは、ＣＰＵおよびＩ／Ｏパフォーマンスデータなどのシステム資源データメトリクスを高頻度で収集し、システム資源利用を正確に反映させることを試みている。しかしながら、パフォーマンスデータを高頻度でサンプリングする欠点は、相当な量のシステム資源を消費しがちな点であり、コンピュータ資源の消費についての測定結果が歪められ、費用がかかり、かつ負担が大きい。
【課題を解決するための手段】
【０００６】
概要
コンピュータ資源利用を判定するための使用量測定システムをここに説明する。使用量測定システムは、コンピュータ資源利用の反復的なスナップショットを収集する。各スナップショットにより、特定の期間中に利用された具体的なコンピュータ資源量を示す値が与えられる。スナップショットの各値は、スナップショットの値に対応する特定のカウンタをカウンタのアレイから選択するのに用いられる。特定のカウンタがインクリメントされ、次のスナップショットについてプロセスが繰返される。特定の期間後、各カウンタの値がカウンタのアレイから収集され、使用量レポートを作成することができる。使用量レポートは、特定の期間にわたって蓄積された実際のコンピュータ資源利用を示し、より詳細には、特定の期間にわたってコンピュータ資源利用のしきい値レベルを超えたコンピュータ資源を利用した、特定の構成のコンピュータを示すインスタンスの数を示す。使用量レポートに基づいて、しきい値レベルを超えた使用量、ならびに、しきい値レベルを超えて使用した数量および時間の長さに対して課金することが可能である。
【０００７】
ある例示的な実施例では、使用量測定システムは、コレクションモジュールを用いてコンピュータシステムからスナップショットを収集し、カウンタをインクリメントする。コンピュータ資源利用への影響を低減させるため、コレクタモジュールは、別個のシステム上にあるレポータモジュールに資源利用データを送ってもよい（ただし代替的な実施例では、コレクタモジュールおよびレポータモジュールの両方が同じシステム上に存在してもよい）。レポータモジュールは、コレクタモジュールから利用データを受信し、課金の目的、および／または他の目的、たとえば調子の監視および評価の目的で当該データを集約し、フォーマット化する。レポータモジュールは、コレクタモジュールの調子を監視し、コレクタモジュールに問題が検出された場合は警告を送ってもよい。コンピュータ資源利用の監視を妨げるおそれがある利用データの損失または故障を防ぐために、余剰コレクタモジュールおよびレポータモジュールを用いてもよい。
【０００８】
したがって、使用量測定システムは、カウンタのアレイに基づいてコンピュータ資源利用のインスタンスを蓄積することによってコンピュータ資源利用を判定するという広い概念を導入する。これにより、コンピュータ資源利用の所定のしきい値基準がある蓄積期間にわたって超えるインスタンスについて正確に判定することが可能になる。ある期間にわたって値を平均化するのではなく、アレイを用いてデータを収集することによって、コンピュータ資源利用の表示がより正確に判定される。使用量測定システムはコンピュータシステム資源にはほとんど影響がない。なぜなら、スナップショットプロセスは非常に軽く、いずれのコンピュータ資源利用計算も、監視されているシステムとは別個のコンピュータプラットフォーム上で行なうことができるためである。
【発明を実施するための最良の形態】
【０００９】
さまざまな他の特徴および利点が以下の説明からより明らかになるであろう。
添付の図を参照して、詳細な説明を述べる。図面において、参照符号の左端の桁は、当該参照符号が最初に出現する図を特定する。
【００１０】
詳細な説明
コンピュータの使用環境
図１は、例示的なコンピュータの使用環境１００を示し、その内部において、革新的な使用量測定システム１０２および方法を全面的にまたは部分的に実現することができる。ここに説明する革新的なシステムおよび方法は、他の多くの汎用または特殊用途のコンピュータシステム環境または構造によって実用可能である。例示的なコンピュータの使用環境は、適切なコンピュータの使用環境の一例に過ぎず、ここに説明するシステムおよび方法の用途または機能の範囲についていかなる制限も示唆するものではない。また、例示的なコンピュータの使用環境は、コンピュータの使用環境に図示された要素のいずれか１つまたは組合せに依存したり要件とすると解釈されるべきではない。
【００１１】
例示的な一実施例によれば、コンピュータの使用環境１００は、コンピュータシステム１０４、管理コンピュータ１０５およびネットワーク１０６を含む。
【００１２】
コンピュータシステム１０４は、ワークステーション、マルチプロセッサシステム、メインフレームコンピュータ、企業のシステムを含むさまざまなコンピュータデバイスのいずれか、および、上記の例示的なデバイスのいずれかの組合せであり得る。各コンピュータシステム１０４は、コンピュータ資源、たとえば、プロセッサ１２０、メモリユニット１２２およびＩ／Ｏモジュール１２１を含む。
【００１３】
たとえば、各プロセッサまたはプロセッサの各組はＣＰＵを備え、典型的に、ソフトウェアまたはロジックの形態でコンピュータで実行可能な命令（プログラム命令）の解釈および実行の制御を担い、データについて算術演算および論理演算を行ない、Ｉ／Ｏ機能を制御する。
【００１４】
メモリユニット１２２は、データおよび命令が記憶されているコンピュータシステムのいずれかの部分、たとえば、メインメモリ、中央メモリ、即時アクセスメモリ、キャッシュ、レジスタ、ディスク、および関連する記憶装置を表す。メモリユニット１２２は揮発性メモリ（たとえばＲＡＭ）および／または不揮発性メモリ（たとえばＲＯＭ、ＰＣＭＣＩＡカード等）を含んでもよい。
【００１５】
Ｉ／Ｏモジュール１２１は、他のデバイス、たとえばネットワーク、プリンタ、ディスク、コンピュータ、端末、および、コンピュータシステムに接続し通信することができる他のさまざまなデバイスとの通信インターフェイスを提供する。
【００１６】
メモリユニット１２２内には、１個以上のオペレーティングシステム１２３、および１個以上のプロセッサ１２０上で実行されるソフトウェアアプリケーション１２４がある。図示を目的として、プログラムおよび他の動作可能なプログラムモジュールをここでは別個のブロックとして示すが、このようなプログラムおよび要素は、さまざまな時間にコンピュータシステム１０４の異なる記憶要素にあり、１個以上のプロセッサ１２０によって実行されると認識される。ソフトウェアアプリケーション１２４の例には、限定はしないが、アプリケーションプログラム、ｅメールプログラム、文書処理プログラム、表計算プログラム、インターネットブラウザプログラム、ウェブサービスなどが含まれる。
【００１７】
一実施例では、オペレーティングシステム１２３は、アメリカ合衆国ワシントン州レッドモンドのマイクロソフト社によって製造され、このようなMicrosoft（登録商標）Windows（登録商標）関連のオペレーティングシステムは、一般的にハイレベルアプリケーションプログラムインターフェイス（ＡＰＩ）、ファイルシステム、通信プロトコル、入出力データ変換、および他の機能を実装し、ソフトウェアアプリケーション１２４を動作可能にする。マイクロソフト（登録商標）のオペレーティングシステムを例にして例示的な実施例を概略的に説明するが、ここに説明する原理および図示に従って、他のオペレーティングシステム、たとえばＬｉｎｕｘ、ＵＮＩＸ（登録商標）、ＯＳ／４００、ＡＩＸ等を
用いることもできる。
【００１８】
オペレーティングシステム１２３は、一般にプロセス利用マネージャ１２６を保持する。たとえばWindows（登録商標）ＮＴパフォーマンスモニタリングＡＰＩであり、Windows（登録商標）オペレーティングシステム環境内に存在し、Windows（登録商標）タスクマネージャ、システムモニタ、またはパフォーマンスモニタ（Perfmon）として周知のクライアントプログラムによって最も一般的に知られている。プロセス利用マネージャ１２６は、一般に生データ、たとえば、コンピュータシステム１０４に関連するコンピュータ資源を消費するプロセス、サブプロセス、コンポーネントおよびスレッド（以下プロセス）を保持する。プロセス利用マネージャ１２６は、コンピュータシステム１０４におけるＣＰＵ、メモリ、およびＩ／Ｏの利用を示す利用データを保持する。
【００１９】
他の要素、たとえば電源、キーボード、タッチパッド、Ｉ／Ｏインターフェイス、ディスプレイ、ＬＥＤ、オーディオジェネレータ等は、コンピュータシステム１０４の一部として示していないが、容易にコンピュータシステム１０４の一部とすることができる。また、図示してないが、システムバスまたは２点間の接続が、コンピュータシステム１０４内のさまざまな要素を典型的に接続する。
【００２０】
ネットワーク１０６は、さまざまなネットワークのいずれかを表し、インターネットまたは１つ以上の他のネットワーク（たとえばローカルエリアネットワーク（ＬＡＮ）もしくは広域ネットワーク（ＷＡＮ））を含み得る。また、２点間の接続の形態の通信リンクとしてネットワーク１０６を使用せず、さまざまなデバイスが他のデバイスと直接通信することも可能であろう。
【００２１】
管理コンピュータ１０５は、コンピュータシステム１０４と通信可能なコンピュータシステムである。管理コンピュータ１０５は、限定はしないが、パーソナルコンピュータ、ワークステーション、サーバ、メインフレームコンピュータ、企業サーバ、および、事によるとエンドユーザおよび／または他のコンピュータデバイスと通信しサービスを提供する他のデバイスを指し得る。図１には管理コンピュータ１０５を１個だけ示すが、環境１００が２個以上の管理コンピュータ１０５を含んでもよいことは容易に理解される。
【００２２】
管理コンピュータ１０５は、少なくとも１個のプロセッサ１３０およびメモリ１３２も含む。メモリ１３２内には、１個以上のオペレーティングシステム（図示せず）および、１個以上のプロセッサ１３０上で実行されるプログラム１３４がある。他の要素、たとえば電源、キーボード、タッチパッド、Ｉ／Ｏインターフェイス、ディスプレイ、ＬＥＤ等は管理コンピュータ１０５内に示していないが、容易に例示的な管理コンピュータ１０５の一部とすることができる。また、図示していないが、システムバスまたは２点間の接続が、管理コンピュータ１０５内のさまざまなコンポーネントを典型的に接続する。
【００２３】
使用量測定システム１０２が機能する例示的な環境１００について紹介したので、次に使用量測定システム１０２について詳細に説明する。
【００２４】
例示的な使用量測定システム
使用量測定システム１０２はソフトウェアによるツールであり、プロセス利用マネージャ１２６からコンピュータ資源利用データを収集し、コンピュータシステム１０４上で使用されたコンピュータ資源量を、監視設備、たとえば課金センター１８０に報告する。コンピュータ資源利用データには、ＣＰＵ利用、メモリ利用、Ｉ／Ｏメトリクス、ならびに、事によると他のプロセス利用メトリクスおよび実行数（units of execution）が含まれ得る。
【００２５】
使用量測定システム１０２は、２個の主要なソフトウェアコンポーネント、コレクタモジュール１６０およびレポータモジュール１３６からなる。コレクタモジュール１６０は、プロセス利用マネージャ１２６からの利用データの低レベルの収集を担う。レポータモジュール１３６は、ネットワーク１０６または他の通信経路を介してコレクタモジュール１６０から転送された利用データを受信する。レポータモジュール１３６は、利用データをフォーマット化し、収集点に、たとえば課金センター１８０、カスタマーサービスセンター（図示せず）、情報工学部門（図示せず）等に送る役割も担う。レポータモジュール１３６は、たとえば、コンピュータシステム１０４の調子を監視し、かつコンピュータシステム１０４の異常を報告するために、コンピュータシステム１０４上で動作する１個以上のコレクタの状態を監視してもよい。
【００２６】
一実施例において、コレクタモジュール１６０およびレポータモジュール１３６は、コンピュータシステム１０４および管理コンピュータ１０５上でそれぞれ動作し、他のプログラムプロセス同様、互いにプログラム可能に通信する。代替的に、コレクタモジュール１６０およびレポータモジュール１３６は、同じプラットフォーム上にあり得る。典型的に、コレクタモジュール１６０およびレポータモジュール１３６は、さまざまな通信プロトコルのうちの少なくとも１つを用いて互いに通信する。たとえば一実施例では、コレクタモジュール１６０は伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）ソケットを用いてレポータモジュール１３６と通信する。
【００２７】
コレクタモジュール１６０は、システムレベルプロセスとして動作する。図１にはコレクタモジュール１６０を１個しか示していないが、それより多くのコレクタモジュール１６０を採用してもよいことが理解される。たとえば、資源の組が自己のオペレーティングシステムインスタンスによって独立して動作できるように、コンピュータシステム１０４が論理パーティションを有する場合、あるコレクタモジュールを、各特定のＯＳインスタンスから利用データを収集する対象とすることができる。各コレクタモジュール、たとえばコレクタモジュール１６０は、典型的に、プロセス利用マネージャ１２６の一部であるＯＳ実行カウンタ（図示せず）から直接コンピュータ資源利用データをサンプリングする。
【００２８】
コレクタモジュール１６０は、システム利用全体に対する影響が無視できるように極めて軽くなるように設計される。コレクタモジュール１６０は、反復的に観察されたコンピュータ資源利用のピークインスタンスを測定し、測定結果をアレイに記録する（後述する）。アレイの各要素は、対応するコンピュータ利用値が何回観測されたかのカウントを表わす。コレクタモジュール１６０は、ユーザが設定した間隔で、集約およびレポート作成のために利用データ（カウンタのアレイを含むカウント）をレポータモジュール１３６に送信する。したがって、最小限の作業のみがコレクタモジュール１６０によって行なわれ、より集中したプロセス分析およびデータの集約はオフロードされて、レポータモジュール１３６によって管理コンピュータ１０５上で行なわれ、コンピュータシステム１０４上で測定されるコンピュータ資源利用レベルへの影響が最小となる。
【００２９】
レポータモジュール１３６はコンピュータシステム１０４上で実行されることも可能であるが、レポータモジュール１３６は、管理コンピュータ１０５上でシステムレベルプロセスとして実行されてもよい。レポータモジュール１３６が１個以上のコレクタモジュールから利用データを受信すると、当該データが集約されレポートとしてフォーマット化され、ユーザ指定の場所に送信される。たとえば一実施例においては、当該データは電子メッセージ（eメール）の形で受信センターに送信される。しかし、他の形態の転送を用いてもよい。レポートは、コンピュータ資源が何回利用されたかや、利用が特定のしきい値を超えた期間を示してもよい。たとえば、カウンタのアレイによって保持されている情報を一定の期間、たとえば１週間、１ヶ月または１四半期にわたって容易に集約することが
でき、ある期間にわたるコンピュータ資源利用を集計するレポートを所定時に作成することができる。当該レポートは、顧客の合意したしきい値実行可能レベルよりも多くのコンピュータ資源を顧客が利用したと判定された場合、請求書を作成する目的のために使用してもよい。レポータモジュール１３６は、コレクションサイトにおけるデータの損失を防ぐため、データのアーカイブをメモリ１３２に保持してもよい。
【００３０】
レポータモジュール１３６は、いずれかの特定のコレクタモジュール１６０がレポータモジュール１３６と通信できない場合、または規定の方法で通信できない場合は報告することによって、コンピュータシステム１０４の調子を監視してもよい。この場合、ＯＳインスタンスまたはコンピュータシステム１０４が誤動作を起こしていることを示し得る。規定時間が経過し、レポータモジュール１３６がコレクタモジュール１６０から利用データを受信できない、または許容できる方法でコレクタモジュールと通信できない場合、レポータモジュール１３６は、ユーザ指定の場所に警告メッセージ（たとえばeメール）を送り、異常の可能性を報告することができる。
【００３１】
図１は、説明の目的で単一のシステムトポロジーを示すが、当業者は、使用量測定システム１０２をさまざまな形態で配置してもよいことを理解するであろう。たとえば、一実施例において、数個のコレクタモジュールおよびレポータモジュールを使用量測定システム１０２の一部として配置してもよい。コレクタモジュールおよびレポータモジュールは、監視を必要とするシステムパーティションごとに配置してもよい。各コレクタモジュールおよびレポータモジュールの対は独立したユニットとして動作し、同じネットワーク上に配置し得る他のコレクタモジュールおよびレポータモジュールとは通信しなくてもよい。
【００３２】
別の実施例では、コレクタモジュールは、監視される各システム／パーティション上に設置される。レポータモジュールは、コレクタモジュールを使用可能にするように設置される。レポータモジュールは、コレクタを有するシステム／パーティション上にあってもよいし、または、管理コンピュータ１０５のようなスタンドアロンシステム上に設置してもよい。このような実施例では、コレクタモジュールおよびレポータモジュールは通常同じローカルエリアネットワーク（ＬＡＮ）セグメント上に配置される。
【００３３】
さらに別の実施例では、監視される各システム／パーティション上に１個のコレクタモジュールが設置される。２個以上のレポータモジュールが、コレクタモジュールを使用可能にするように設置される。レポータモジュールは、コレクタモジュールと同じシステム／パーティション上にあってもよいし、またはスタンドアロンシステム上に設置されてもよい。余剰レポータモジュールを用いることにより、１個のレポータモジュールが故障（またはそのプラットフォームが故障）した場合に、コレクタモジュールから利用データを収集し、当該データを報告するタスクを別のレポータモジュールが確実に引継ぐことができる。
【００３４】
次に、図１のコレクタモジュール１６０およびレポータモジュール１３６について、より詳細に以下に説明する。
【００３５】
例示的なコレクタモジュール
図２は、コンピュータシステム１０４（図１）のメモリ１２２（図１）内にあるコレクタモジュール１６０のブロック図である。コレクタモジュール１６０は、典型的にバックグラウンドモジュールとして動作し、セキュアモードにおいては、コンピュータシステム１０４のユーザによって改ざんされないように動作し得る。コンピュータシステム１０４が作動しているときには、コレクタモジュール１６０は通常自動的に起動される。一実施例において、コレクタモジュール１６０は、通信モジュール２０２、アレイマネージャ２
０４およびアレイ２０６を含む。ただし、コレクタモジュールはプログラムモジュールおよびデータを含んでもよいことが理解される。プログラムモジュールは典型的に、ルーチン、プログラム、オブジェクト、スレッド、コンポーネント等を含み、特定のタスクを実行する、または特定の抽象データ型を実装する。
【００３６】
通信モジュール２０２はレポータモジュール１３６（図１）と通信する。たとえば、通信モジュール２０２はパフォーマンスデータを送信し、レポータモジュール１３６によって記憶および操作される。通信モジュール２０２は、他の記述的データ、たとえばスナップショットの日付／時刻、および、当該情報が記録された特定のコンピュータシステム（またはパーティション）を示す識別目印も記録し得る。識別目印により、レポータモジュール１３６は、異なるコレクタモジュールからデータを受信すると、そのデータを特定のシステムまたはパーティションに関連付けることが可能になる。通信モジュール２０２は、レポータモジュール１３６（図１）からいつスナップショットを取るか、どの程度の頻度で管理コンピュータ１０５（図１）にデータを送信するか、余剰レポータモジュールにデータを送るかどうかを含めてデータをどこに送るか、などといったルール／命令を受信することもできる。例示的な実施例では、通信モジュール２０２は、ＴＣＰ／ＩＰプロトコルを用いてネットワーク１０６（図１）を介してレポータモジュール１３６（図１）と通信するが、ＲＰＣ、ＣＯＭ＋、ＤＣＯＭおよびＭｕｌｔｉｃａｓｔといった他の通信プロトコルを使用することもできる。
【００３７】
アレイマネージャ２０４は、プロセス利用マネージャ１２６から反復的にパフォーマンスデータを収集する。つまりアレイマネージャ２０４は、規定時間にわたって継続的にプロセス利用マネージャ１２６をサンプリングし（すなわち「スナップショット」を取り）、利用データをアレイ２０６に記憶し、最終的に通信モジュール２０２を介してレポータモジュール１３６（図１）に送信する。アレイマネージャ２０４は、通信モジュール２０２を用いて利用データを送信する。
【００３８】
アレイマネージャ２０４は、タイマー（図示せず）を用いて、連続したスナップショットが取られる期間（分、時間、日、週、月）全体を管理する。アレイマネージャ２０４は、タイマーを用いて、プロセス利用マネージャ１２６（図１）から得られた２つの連続する測定値の間の時間量、すなわちスナップショット間の遅延間隔も管理する。一実施例において、アレイマネージャ２０４は、５秒ごとにプロセス利用マネージャ１２６（図１）の測定値（スナップショットとも称する）を取る。しかし、スナップショット間の時間量は設定可能である。好ましくは、選択されるスナップショット間の時間間隔は、リアルタイムコンピュータ利用イベントを把握するのに十分な頻度であるべきだが、特定のコンピュータシステム１０４（図１）のコンピュータ利用の測定結果に影響するほど頻繁であってはならない。
【００３９】
各スナップショットは、特定の時間間隔で利用されたコンピュータ資源のピーク量を示す値を与える。スナップショットの各値は、アレイマネージャ２０４によって、当該スナップショットの値に対応する特定の要素（「バケット」とも称する）をアレイ２０６から選択するのに用いられる。当該スナップショットの値に対応する各要素は、特定のコンピュータ資源レベル（値）が観察された回数を示すカウントを含む。したがって、特定の値が観察されるたびに、同じ値を有する対応のバケットが選択され、そのバケットに関連するカウントが１つインクリメントされる。
【００４０】
たとえば、アレイマネージャ２０４が、プロセス利用マネージャ１２６（図１）からの最初の２つの測定値の各々について１０％というＣＰＵ資源利用値を読取ると仮定する。この場合、アレイマネージャ２０４はアレイの１０番目のバケットを選択し、１０番目のバケットに関連するカウンタを２回インクリメントするので、１０番目のバケットが有す
る値は２に等しくなる。
【００４１】
図３は、例示的なアレイ２０６を示す。アレイ２０６は各バケットの下に０から１００までの数字が表示されている１０１個のバケットを含む。各バケットの数字は、計量値（すなわち特定のコンピュータ資源レベル値）に対応する。たとえば、アレイマネージャ２０４（図２）によってプロセス利用マネージャ１２６から９０％というＣＰＵ値が読取られると仮定すると、その９０％という値はバケット９０に対応する。各バケットには、特定の期間にわたって特定のコンピュータ資源レベル値が観測された回数を示すカウンタ値が存在する。たとえば、バケット９０にはカウント値１０が入っており、特定の期間にわたってコンピュータ資源が９０％利用されたインスタンスが１０個あることを示す。別のインスタンス時間中にプロセス利用マネージャ１２６からスナップショットが取られ、コンピュータ資源が再び９０％利用されたことを示す場合、バケット９０が有するカウント値が１つインクリメントされ、カウント値は１０（図示）ではなく１１（図示せず）を示すことになる。したがって、各バケットは、特定の期間にわたって特定のコンピュータ資源利用パーセンテージに達した回数を示すカウント値を有する。たとえば、アレイ２０６のバケット１は、特定の期間にわたって、特定のコンピュータ資源が１％のピーク利用レベルで利用されたインスタンスが９０個あったことを示す。
【００４２】
図３に示すように、ログ３０２またはファイルの一部として、アレイ２０６をメモリ１２２（図１）に記憶してもよい。
【００４３】
再び図２を参照し、設定可能な期間（たとえば秒、分、時間または日）の後、アレイ２０６からの利用データ（すなわちバケット０から１００までのカウント値）が通信モジュール２０２（図２）およびネットワーク１０６（図１）を介してレポータモジュール１３６（図１）に送信される。レポータモジュール１３６から、データを正常に受信した旨の確認があれば、アレイモジュール２０４はアレイ２０６のカウンタをすべてリセットし、次の期間についてプロセスが繰返される。
【００４４】
例示的なレポータモジュール
使用量測定システム１０２の一部分は、革新的なレポータモジュール１３６の形態でメモリ内に、たとえば管理コンピュータ１０５のメモリ１３２内にあってもよい。レポータモジュール１３６は、コレクションモジュール１６０と通信し、コレクションモジュール１６０によって送られた（または引出された）情報をアップロードして、コンピュータシステム１０４上で実行されるコンピュータ資源の作業負荷利用を判定するプログラムモジュールである。つまり、レポータモジュール１３６は、コレクションモジュール１６０から利用データ（アレイからのカウンタ値および他に考えられる情報）を収集し、当該データを集約しフォーマット化して、課金記録を作成するように構成され、課金記録は、課金センター１８０が管理コンピュータ１０５とは別個にある場合、課金センター１８０に送信することができる。レポータモジュール１３６は、１個以上のコレクションモジュール１６０の状態を監視し、異常が観察されれば警告メッセージを送る役割を担ってもよい。このようにコンピュータシステム１０４の調子を監視してもよい。
【００４５】
図４は、管理コンピュータ１０５のメモリ１３２内にあるレポータモジュール１３６のブロック図である。この例では、レポータモジュール１３６はプログラムモジュールおよびプログラムデータを含む。プログラムモジュールは典型的に、ルーチン、プログラム、オブジェクト、スレッド、コンポーネント等を含み、特定のタスクを実行する、または特定の抽象データ型を実装する。プロセッサ１３０は、メモリ１３２内のプログラムモジュールからコンピュータプログラム命令を取出して実行するように構成され、さらに、レポータモジュール１３６を実行しつつプログラムデータからデータを取出すように構成される。
【００４６】
例示的な実施例において、レポータモジュール１３６は、フロントエンド４０２、通信モジュール４０４、計算モジュール４０６、レポートモジュール４０８およびデータファイル４１０を含む。
【００４７】
フロントエンド４０２は、ユーザが管理コンピュータ１０５に（直接またはネットワーク１０６を介して）接続（すなわちログイン）し、ユーザインターフェイス（図示せず）にアクセスできるようにするモジュールである。ユーザは、ユーザインターフェイスを用いて、使用量測定システムの特性を制御し、コンピュータシステム１０４のコンピュータ資源利用を監視することができる。たとえば、ネットワークにアクセス可能なフロントエンド４０２は、ディスプレイモジュール４２０およびルールコンポーザモジュール４２２を有する。
【００４８】
ディスプレイモジュール４２０は、コレクタモジュール１６０（図１）に関する情報を表示し、この情報には、データが各コレクタモジュール１６０（図１）からどの程度の頻度で送られるか、どのインスタンスまたはシステムが監視されているか等が含まれる。ディスプレイモジュール２２０により、ユーザは、コンピュータシステム１０４におけるコンピュータ資源利用を詳しく示す正確な情報を閲覧することもできる。
【００４９】
ルールコンポーザモジュール４２２により、ユーザは、レポータモジュールを管理システム１０５上にインストールし、コレクタモジュールをコンピュータシステム１０４上にインストールし、どのように（たとえばどの程度の頻度で）コレクタモジュールから情報が送られるかを指示するルールを設定および配置し、選択された期間（たとえば月、週、四半期等）にわたって利用されたコンピュータシステム資源の数量を示すレポートをどのようにいつ作成するかについてのルールを設定および配置することができる。この情報は、コンピュータシステム１０４上で動作するソフトウェアアプリケーションを担う部門に請求するために、課金ソフトウェアアプリケーションまたは他のアプリケーションによってさらに利用してもよい。
【００５０】
通信モジュール４０４は、ネットワーク１０６（図１）を介して管理コンピュータ１０５をコンピュータシステム１０４に接続し、コレクションエージェント１６０（図１）およびレポータモジュール１３６によって要求されるさまざまなデータを送受信する。通信モジュール４０４は、コレクタモジュール１６０からアレイを有するログを含むデータファイルの送信を受付け、管理コンピュータ１０５上のデータファイル４１０内に記憶する。
【００５１】
通信モジュール４０４により、コンピュータシステム１０４から利用データおよび情報を収集するための命令およびルールの送信も容易になる。これにより、コンピュータシステム１０４は（コレクタモジュール１６０を介して）レポータモジュール１３６によって示された命令、データおよびルールを記憶することができる。
【００５２】
通信モジュール４０４はまた、コレクタモジュール１６０に情報を送信して、（２個以上ある場合）各モジュールが確実に正確な間隔で利用データを収集し、当該データをアレイ２０６から規定期間で送るようにする。
【００５３】
レポータモジュール１３６は、通信モジュール４０４を通じてコンピュータシステム１０４（図１）の調子の監視に関与してもよい。これは、コレクタモジュールの状態を監視する、すなわちコレクタモジュールが機能しているかを確認するように、各コレクタモジュール１６０（図１）をpingすることによって行なわれる。コレクタモジュールの誤動作またはコンピュータシステム１０４との通信の損失があれば、レポータモジュール１３６
は確実に、サービスセンター、課金センター等のセンターまたは他の指定サイトに警告メッセージを送信することになる。
【００５４】
計算モジュール４０６は、データファイル４１０に記憶されている、アレイ１０６からのカウントなどのデータをコレクタモジュール１６０から周期的に取出す。計算モジュール４０６は、アレイ１０６をミラーリングするマスタアレイも保持するが、ある期間からのすべてのバケットの累積カウントを含む。しかし、一旦レポートが計上に送出されると、マスタアレイをゼロにリセットすることができ、次の期間、たとえば１週間、１ヶ月、１四半期等について、カウントの累積を再開することができる。
【００５５】
計算モジュール４０６は、アレイの各バケットのデータをしきい値と比較し、顧客のコンピュータ資源利用が何回しきい値を超えたかを判定する。これは、アレイのデータを課金センターに送ることによって行なわれ、しきい値データは、課金センターにおいて顧客のサービス契約の条件に従って処理される。たとえば顧客が、１６個のプロセッサを有するシステムにおいて８個のプロセッサを使用する契約を結んだ場合、５０％を超えるシステムの利用は、８個を超えるプロセッサの使用を意味する。８個のプロセッサという契約基準を超えた利用に対する実際の課金率は、サービス契約書を作成する際にベンダと顧客とによって取り決められる。
【００５６】
計算モジュール４０６が、規定のしきい値を超えたコンピュータ資源利用を算出すると、レポータモジュール４０８は、合意したしきい値を超えた量について資源が正確にいくつ利用されたかを示す使用量レポートを作成する。合意したしきい値の数量を超えるコンピュータ資源の利用に対して顧客に請求するため、または、コンピュータシステム実行を分析、監視および予測するといった目的で、レポートの情報を使用することが可能である。
【００５７】
余剰レポータモジュールは互いにリンクしてもよく、一方のレポータモジュールは、１個以上のコレクタモジュールから情報およびデータを受信するための一次レポータモジュールとして指定され、他方のレポータモジュールは、一次レポータモジュールが故障した場合に、一次レポータモジュールによって記憶されている情報の複製コピーを保持する二次レポータモジュールとして指定される。典型的に、二次レポータモジュールは、バックアップ用データの複製コピーを要求する際などに一次レポータモジュールを周期的にpingし、一次レポータモジュールが規定期間内に応答できない場合は、一次レポータモジュールの役割を引継ぐことになる。そのような場合には、特定の二次レポータモジュールが、一次レポータモジュールの代わりに自己にデータを転送するよう１個以上のコレクタモジュール１６０に通知することになる。
【００５８】
別の実施例では、複数のレポータモジュールが使用量測定システム１０２の一部として構成されて、一次モジュールおよび二次スタンバイモード関係で機能し、かつ、一次レポータモジュールが、データを送り出すようにとのコレクタモジュールの要求に応答できない場合、二次レポータモジュールのうちの１個が自己を一次モジュールとして指定し、コレクタモジュールからのデータの受信、データの集約および監視のプロセスをレジュームすることになる。故障したレポータモジュールが再起動またはユーザの介入によって最終的に機能するようになれば、故障していたレポータモジュールは、スタンバイすなわち二次レポータモジュールとして自己を指定することになる。
【００５９】
動作方法
プロセス利用マネージャ１２６からコンピュータ資源利用データを収集するための方法は、コンピュータで実行可能な命令の一般的な例において説明することができる。一般的に、コンピュータで実行可能な命令には、ルーチン、プログラム、オブジェクト、スレッ
ド、コンポーネント、データ構造等が含まれ、これらは特定の機能を実行するか、または特定の抽象データ型を実装する。説明する方法は、通信ネットワークを介してリンクされたリモート処理装置によって機能が実行される分散コンピューティング環境において実践してもよい。分散コンピューティング環境において、コンピュータで実行可能な命令は、メモリ記憶装置（コンピュータで読取可能な媒体）を含む、ローカルコンピュータ記憶媒体およびリモートコンピュータ記憶媒体の両方に配置してもよい。
【００６０】
図５は、コンピュータ資源利用データの収集に関連する動作の例示的な方法５００を示すフローチャートである。当該方法を説明する順序は限定と解釈されることを意図しておらず、当該方法を実行するために、説明する方法ブロックのうちいくつでもどの順番でも組合せることができる。動作およびブロックの各々は自由に選択でき、必ずしも実行する必要はない。さらに、当該方法は、いずれかの適切なハードウェア、ソフトウェア、ファームウェアまたはそれらの組合せにおいて実装することができる。例示的な方法５００は、ブロック５０２、５０４、５０６、５０８、５１０、５１２、５１４および５１６を含む。
【００６１】
ブロック５０２において、プロセス利用マネージャのスナップショットが取られる。スナップショットは、ある特定の時間に利用されたコンピュータ資源のピーク量を示す値を与える。たとえば、コレクタモジュール１６０（図１および図２）のアレイマネージャ２０４（図２）は、プロセス利用マネージャ１２６（図１）によって示される値を読取る。
【００６２】
ブロック５０４において、当該値に対応するバケットがアレイから選択される。たとえばアレイマネージャ２０４は、スナップショットを取ることによって得られた値に対応する０から１００番のバケットをアレイ１０６から選択する。
【００６３】
ブロック５０６において、選択されたバケットに関連するカウンタがインクリメントされる。たとえばアレイマネージャ２０４は、選択されたバケットに関連するカウンタを１つインクリメントする。
【００６４】
決定ブロック５０８において、スナップショット間の時間間隔が経過したかどうかの判定が行なわれる。たとえば、アレイマネージャ２０４内のタイマー（図示せず）が、各連続スナップショット間でどのくらいの時間待機するかを判定する。十分な時間が経過していなければ、プロセス５００は、決定ブロック５０８のＮｏ分岐に従って規定時間待機する。十分な時間が経過していれば、プロセス５００は決定ブロック５１０に進む。
【００６５】
決定ブロック５１０において、第２の、より長い期間、たとえば分、時間、週または日が経過したかどうかの判定を行なう。このような第２の期間が経過していなければ、プロセス５００は、決定ブロック５１０のＮｏ分岐に従ってブロック５０２に戻り、次のスナップショットまたは反復的なスナップショットについてプロセス５００が繰返される。第２の期間が経過していれば、プロセス５００は、決定ブロック５１０のＹｅｓ分岐に従ってブロック５１２に進む。
【００６６】
ブロック５１２において、アレイの各カウンタに関連するアレイまたは値がレポータモジュールに送られる。たとえば、通信モジュール２０２（図２）がアレイ２０６（図２）をレポータモジュール１３６（図１）に送信する。
【００６７】
決定ブロック５１４において、アレイがレポータモジュールによって正常に受信されたかの判定を行なう。たとえば、コレクタモジュールによって保持されたアレイに含まれるデータを正常に受信したという受領確認をレポータモジュールから受信しない限り、コレクタモジュールは、決定ブロック５１４のＮｏ分岐に従って規定時間後にメッセージを再
び送る（ブロック５１２）、または一次レポータモジュールとの通信に問題があることを二次レポータモジュールに知らせるなどの他の修正処置を取ることを試みる。アレイが正常に受信されれば、プロセス５００はブロック５１６に進む。
【００６８】
ブロック５１６において、アレイを有するカウンタがゼロにリセットされる。たとえば、アレイマネージャ２０４がアレイ２０６のすべてのカウンタをリセットする。代替的に、アレイマネージャは、新たなアレイを開始するかまたはカウントし続けて、カウントがどこで中断したかについてはレポータモジュールに判断を任せることもできる。プロセス５００は、次の期間について繰返される。
【００６９】
図６は、コンピュータ資源利用データの記録および報告に関連する動作の例示的な方法６００を示すフローチャートである。当該方法を説明する順序は限定と解釈されることを意図しておらず、当該方法を実行するために、説明する方法ブロックのうちいくつでもどの順番でも組合せることができる。動作およびブロックの各々は自由に選択でき、必ずしも実行する必要はない。さらに、当該方法は、いずれかの適切なハードウェア、ソフトウェア、ファームウェアまたはそれらの組合せにおいて実装することができる。例示的な方法６００はブロック６０２、６０４、６０６および６０８を含む。
【００７０】
決定ブロック６０２において、レポータモジュールは、コレクタモジュールからデータを検索するよう試みる（プル戦略（pull strategy））か、または（プッシュモジュールにおいて）コレクタモジュールからデータを受信するのを待つ。いずれの場合でも、規定時間後またはコレクタモジュールとの通信を何度か試みた後に、レポータモジュールがデータを受信できなければ、決定ブロック６０２のＮｏ分岐に従ってプロセス６００はブロック６０４に進み、インスタンスパーティション、コンピュータシステム、および／またはコレクタモジュールの調子に問題があるという警告を、指定サイト、人またはサービスセンターに送る。決定ブロック６０２のＹｅｓ分岐に従って、レポータモジュールが（典型的にアレイの形態で）利用データを受信すれば、プロセス６００はブロック６０６に進む。
【００７１】
ブロック６０６において、アレイからのデータが集約され、課金センターによって要求されるデータ記録フォーマット化に基づいてフォーマット化される。少なくとも当該データは、コンマで区切られたデータファイルおよび人が読取り可能なテキストファイルにフォーマット化される。対象となる課金システムのデータ記録テンプレートを用いて、さらなるデータファイルが作成される。これらのテンプレートは、ソフトウェアをインストールする際にレポータモジュールに設けられる。レポータから送信されたすべてのデータファイルが処理されて、暗号化されたディジタル署名を作成する。この署名は、受信側の課金センターにて受信ファイルの整合性を確保するのに用いられる。
【００７２】
ブロック６０８において、指定サイト、たとえば課金センター１８０（図１）にレポートが送られ、分析されるかまたは、顧客が合意したしきい値レベルより多くのコンピュータ資源を利用した場合には請求書を作成する。
【００７３】
本発明を、構造的な特徴および／または方法的な動作に特定した文言で説明したが、添付の請求項に規定する本発明は、説明した特定の特徴または動作に必ずしも限定されないと理解されるべきである。むしろ特定の特徴および動作は、請求項の発明を実施する例示的な形態として開示される。
【図面の簡単な説明】
【００７４】
【図１】革新的な使用量測定システムおよび方法を、その内部において全体的または部分的に実施することができる、例示的なコンピュータの使用環境を示す図である。
【図２】例示的なコレクタモジュールのブロック図である。
【図３】利用データが保持される例示的なアレイを示す図である。
【図４】例示的なレポータモジュールのブロック図である。
【図５】コンピュータ資源利用データの収集に関連する動作の例示的な方法を示すフローチャートである。
【図６】コンピュータ資源利用データの記録および報告に関連する動作の例示的な方法を示すフローチャートである。
【図１】
2008546061.tif 000003
【図２】
2008546061.tif 000004
【図４】
2008546061.tif 000005
【図５】
2008546061.tif 000006
【図６】
2008546061.tif 000007
【図３】
2008546061.tif 000008
【国際調査報告】
2008546061.tif 000009
2008546061.tif 000010
2008546061.tif 000011