(57)【要約】【課題】グリッド環境管理を促進する方法、システム、およびプログラムを提供する。【解決手段】コンピュータ・グリッド環境の中のグリッド・ワークロード・コントローラは、複数の異種のグリッド・アプリケーション環境からのアプリケーション・レベルにおけるリアルタイム・グリッド・アクティビティをモニタする。その後、グリッド・ワークロード・コントローラは、コンピュータ・グリッド環境の管理についての決定を行うためにリアルタイム・グリッド・アクティビティを要求するコンピュータ・グリッド環境の中のグリッド・モジュールの選択を決定する。グリッド・ワークロード・コントローラは、グリッド・モジュールの選択に対してリアルタイム・グリッド・アクティビティを振り分け、その後、グリッド・モジュールの選択がグリッド環境の中で自動決定を行い、パフォーマンス要件を保持する。【選択図】図５
2008527514.tif 000002
【特許請求の範囲】
【請求項１】
グリッド・ワークロード・コントローラで、コンピュータ・グリッド環境の中の複数の異種のグリッド・アプリケーション環境からのアプリケーション・レベルにおけるリアルタイム・グリッド・アクティビティをモニタするステップと、
前記コンピュータ・グリッド環境の管理についての決定を行うために前記リアルタイム・グリッド・アクティビティを要求するグリッド・モジュールの選択を決定するステップと、
前記グリッド・ワークロード・コントローラから、前記リアルタイム・グリッド・アクティビティを、グリッド・モジュールの前記選択に振り分けるステップであって、グリッド・モジュールの前記選択が前記グリッド環境の中で自動決定を行い、前記コンピュータ・グリッド環境の中のワークロード・パフォーマンス要件を保持するものと
を有する、グリッド環境の中の作業負荷を管理する方法。
【請求項２】
グリッド・ワークロード・コントローラで、コンピュータ・グリッド環境の中の複数の異種のグリッド・アプリケーション環境からのアプリケーション・レベルにおけるリアルタイム・グリッド・アクティビティをモニタするステップが、
前記グリッド・ワークロード・コントローラで、前記グリッド・ワークロード・コントローラにより使用される特定のプロトコルに適合することを要求する複数のプロトコル内に受信される前記リアルタイム・グリッド・アクティビティをモニタするステップをさらに含む、請求項１に記載の作業負荷を管理する方法。
【請求項３】
グリッド・ワークロード・コントローラで、コンピュータ・グリッド環境の中の複数の異種のグリッド・アプリケーション環境からのアプリケーション・レベルにおけるリアルタイム・グリッド・アクティビティをモニタするステップが、
前記グリッド・ワークロード・コントローラで、前記リアルタイム・グリッド・アクティビティの中の複数の種類のグリッド特性を受信するステップと、
複数のモニタ規則に基づいて、前記リアルタイム・グリッド・アクティビティの中の前記複数の種類のグリッド特性をフィルタリングするステップであって、前記複数のモニタ規則が、前記複数の種類のグリッド特性の選択と、前記複数の異種のグリッド・アプリケーション環境の選択とを規定し、この前記複数の異種のグリッド・アプリケーション環境から前記リアルタイム・グリッド・アクティビティが収納されるものと
をさらに含む、請求項１に記載の作業負荷を管理する方法。
【請求項４】
グリッド・ワークロード・コントローラで、コンピュータ・グリッド環境の中の複数の異種のグリッド・アプリケーション環境からのアプリケーション・レベルにおけるリアルタイム・グリッド・アクティビティをモニタするステップが、
前記リアルタイム・グリッド・アクティビティについて複数のマネージャ・モジュールに問い合わせるステップであって、前記複数のマネージャ・モジュールの各々が、前記コンピュータ・グリッド環境の中の前記複数の異種のグリッド・アプリケーション環境のうちの１つに割り当てられた資源ノードの分類の少なくとも１つのリアルタイム・パフォーマンス特性を追跡するものをさらに含む、請求項１に記載の作業負荷を管理する方法。
【請求項５】
前記コンピュータ・グリッドの管理についての決定を行うために前記リアルタイム・グリッド・アクティビティを要求するグリッド・モジュールの選択を決定するステップが、
システム管理者および自動決定コントローラの中の少なくとも１つにより設定される複数の振り分け規則を介して、前記リアルタイム・グリッド・アクティビティをフィルタリングするステップをさらに含む、請求項１に記載の作業負荷を管理する方法。
【請求項６】
前記リアルタイム・グリッド・アクティビティが、ジョブ要求の受信、保留中のジョブ提供、新たに予定されたグリッド・ジョブ、現在実行処理中のグリッド・ジョブ・パフォーマンス、将来のジョブ・スケジュール、現在の価格設定スケジュール、将来の価格設定スケジュール、現在の資源利用性、および予測される資源利用性の中の少なくとも１つについてのデータを含む、請求項１に記載の作業負荷を管理する方法。
【請求項７】
グリッド・モジュールの前記選択が、グリッド資源割り当てモジュール、グリッド処分モジュール、グリッド・ディスカウンタ・モジュール、グリッド課金処理モジュール、およびグリッド価格設定モジュールの中の少なくとも１つを含む、請求項１に記載の作業負荷を管理する方法。
【請求項８】
前記グリッド・ワークロード・コントローラがグリッド・サービスである、請求項１に記載の作業負荷を管理する方法。
【請求項９】
コンピュータ・グリッド環境の中に実現されるグリッド・ワークロード・コントローラを含み、
前記グリッド・ワークロード・コントローラは、
前記コンピュータ・グリッド環境の中の複数の異種のグリッド・アプリケーション環境からのアプリケーション・レベルにおけるリアルタイム・グリッド・アクティビティをモニタする手段と、
前記コンピュータ・グリッド環境の管理についての決定を行うために前記リアルタイム・グリッド・アクティビティを要求するグリッド・モジュールの選択を決定する手段と、
前記リアルタイム・グリッド・アクティビティを、グリッド・モジュールの前記選択に振り分ける手段であって、グリッド・モジュールの前記選択が前記グリッド環境の中で自動決定を行い、前記コンピュータ・グリッド環境の中のワークロード・パフォーマンス要件を保持するものと
を含む、グリッド環境の中の作業負荷を管理するシステム。
【請求項１０】
前記コンピュータ・グリッド環境の中の複数の異種のグリッド・アプリケーション環境からのアプリケーション・レベルにおけるリアルタイム・グリッド・アクティビティをモニタする前記手段が、
前記グリッド・ワークロード・コントローラにより使用される特定のプロトコルに適合することを要求する複数のプロトコル内に受信される前記リアルタイム・グリッド・アクティビティをモニタする手段をさらに含む、請求項９に記載の作業負荷を管理するシステム。
【請求項１１】
前記コンピュータ・グリッド環境の中の複数の異種のグリッド・アプリケーション環境からのアプリケーション・レベルにおけるリアルタイム・グリッド・アクティビティをモニタする前記手段が、
前記グリッド・ワークロード・コントローラで、前記リアルタイム・グリッド・アクティビティの中の複数の種類のグリッド特性を受信する手段と、
複数のモニタ規則に基づいて、前記リアルタイム・グリッド・アクティビティの中の前記複数の種類のグリッド特性をフィルタリングする手段であって、前記複数のモニタ規則が、前記複数の種類のグリッド特性の選択と、前記複数の異種のグリッド・アプリケーション環境の選択とを規定し、この前記複数の異種のグリッド・アプリケーション環境から前記リアルタイム・グリッド・アクティビティが収納されるものと
を含む、請求項９に記載の作業負荷を管理するシステム。
【請求項１２】
前記コンピュータ・グリッド環境の中の複数の異種のグリッド・アプリケーション環境からのアプリケーション・レベルにおけるリアルタイム・グリッド・アクティビティをモニタする前記手段が、
前記リアルタイム・グリッド・アクティビティについて複数のマネージャ・モジュールに問い合わせる手段であって、前記複数のマネージャ・モジュールの各々が、前記コンピュータ・グリッド環境の中の前記複数の異種のグリッド・アプリケーション環境のうちの１つに割り当てられた資源ノードの分類の少なくとも１つのリアルタイム・パフォーマンス特性を追跡するものをさらに含む、請求項９に記載の作業負荷を管理するシステム。
【請求項１３】
前記コンピュータ・グリッドの管理についての決定を行うために前記リアルタイム・グリッド・アクティビティを要求するグリッド・モジュールの選択を決定する前記手段が、
システム管理者および自動決定コントローラの中の少なくとも１つにより設定される複数の振り分け規則を介して、前記リアルタイム・グリッド・アクティビティをフィルタリングする手段をさらに含む、請求項９に記載の作業負荷を管理するシステム。
【請求項１４】
前記リアルタイム・グリッド・アクティビティが、ジョブ要求の受信、保留中のジョブ提供、新たに予定されたグリッド・ジョブ、現在実行処理中のグリッド・ジョブ・パフォーマンス、将来のジョブ・スケジュール、現在の価格設定スケジュール、将来の価格設定スケジュール、現在の資源利用性、および予測される資源利用性の中の少なくとも１つについてのデータを含む、請求項９に記載の作業負荷を管理するシステム。
【請求項１５】
グリッド・モジュールの前記選択が、グリッド資源割り当てモジュール、グリッド処分モジュール、グリッド・ディスカウンタ・モジュール、グリッド課金処理モジュール、およびグリッド価格設定モジュールの中の少なくとも１つを含む、請求項９に記載の作業負荷を管理するシステム。
【請求項１６】
前記グリッド・ワークロード・コントローラがグリッド・サービスである、請求項９に記載の作業負荷を管理するシステム。
【請求項１７】
コンピュータ上で実行されるとき、請求項１〜１１に記載の発明を達成するソフトウェア・コード部を含む、デジタル・コンピュータの内部メモリにロードできるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、改良されたグリッド・コンピューティングに関し、特に、グリッド・コンピューティング環境の中の自動ワークロード・パフォーマンス・コントローラの調整に関する。さらに詳細には、本発明は、異種のグリッド資源グループから収集されたグリッド・アクティビティに基づいて決定を行う複数の決定グリッド・モジュールによる自動グリッド・ワークロード・パフォーマンス保守の促進に関する。
【背景技術】
【０００２】
初めて２つのコンピュータ・システムの間で接続が行われて以来、接続を介して２つのコンピュータ・システム間のデータ、資源、および他の情報を送受信する新しい方法が開発され続けている。典型的なネットワーク・アーキテクチャでは、２つのコンピュータ・システムが、接続を介してデータを交換しているとき、コンピュータ・システムの一方は、要求を送出するクライアントとみなされ、もう片方は、要求を処理して、結果を返すサーバとみなされる。要求の処理速度を向上させる取り組みにおいて、サーバ・システムの規模および速度は、拡大し続けている。さらに、複数の要求が刻々と到来してくる最高使用期間を処理する取り組みにおいて、サーバ・システムは、多くの場合グループとして結合され、要求は、グループ化されたサーバ間で振り分けられる。クラスタリング、マルチ・システム共用データ（シスプレックス）環境、および企業システムのようなサーバをグループ化する複数の方法が開発された。サーバのクラスタでは、通常、入ってくる要求および出て行く応答の振り分けを管理するために１つのサーバが指定される。通常、他のサーバは、クライアントから振り分けられた要求を処理するために並行して作動する。その結果、サーバのクラスタが要求を処理していることをクライアントが検知することなしに、クラスタ内の複数のサーバのうちの１つが、クライアント要求を提供することができる。
【０００３】
通常、サーバ、またはサーバのグループは、Ｕｎｉｘ（登録商標）、またはＵｎｉｘの何らかの変形のような特定のネットワーク・プラットフォーム上で作動し、アプリケーションを実行するホスティング環境を提供する。各ネットワーク・プラットフォームは、データベース統合、クラスタリング・サービス、およびセキュリティから、作業負荷管理および問題判別まで多岐にわたる機能を提供できる。通常、各ネットワーク・プラットフォームは、異なった実装方法、意味論的振る舞い（ｓｅｍａｎｔｉｃ  ｂｅｈａｖｉｏｒｓ）、およびアプリケーション・プログラミング・インタフェース（ＡＰＩ）を提供する。
【０００４】
しかしながら、処理能力を拡張するために単にサーバを共にグループ化することは、ネットワーク内の応答時間の効率を向上させる限定的な方法である。その結果、会社のネットワークの中において、サーバをただ単にグループ化するよりむしろ、サーバ、およびサーバ・システムのグループが、ますます分散資源として組織化されることになる。協働し、データを共有し、サイクルを共有し、会社のネットワークの中のサーバ間の、および会社のネットワークの外のサーバ間の他の形態のインタラクションを改善する取り組みが高まっている。さらに、本質的でない要素を１つの会社のネットワークからサービス・プロバイダ・ネットワークへとアウトソーシングする取り組みが増えている。さらに、同じ管理システムに従ってはいないが、セキュリティ、ポリシー、ペイメント、およびメンバーシップの問題に対処する資源の間で、資源共有を調整する動きがある。例えば、通常、個人のデスクトップ上の資源は、会社のサーバのクラスタの資源と同じ管理システムには従わない。会社のネットワークの中の異なった管理グループでさえ、異なった管理システムを実行できる。
【０００５】
異なったネットワーク・プラットフォーム上で作動するサーバおよび他のコンピューティング・システムから利用可能であり、異なった領域内にあり、異なったセキュリティ・プロトコルを有し、かつそれぞれ異なった管理システムにより制御される資源の分散化に関連する問題は、グリッド環境を作動させるオープン・スタンダードを用いたグリッド技術の開発につながった。グリッド環境は、動的な分散型のバーチャル・オーガニゼーション内の多様な資源の共用および連携使用をサポートする。異なったポリシーおよび管理システムを有する異なったオーガニゼーションで作動される地域的に分散されたシステムからの資源の選択が、ジョブ要求を処理するために組織化されるとき、バーチャル・オーガニゼーションが、グリッド環境の中に作成される。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
サーバのクラスタ、または他のグループを、グリッド環境の中に分類できるが、グリッド技術は、異なった規格を有する異なった管理システムで管理される資源のグループ間の通信を提供するためのすべての問題を解決するわけではない。特に、グリッド技術に関連する現在の問題は、システムの各グループを既にモニタするツールおよびシステムの制限である。特に、標準のパフォーマンス・モニタの制限は、これらのモニタがハードウェア資源の種類に基づいて資源を分類することである。例えば、第１の監視ツールは、ｐＳｅｒｉｅｓ（登録商標）・マシンをモニタでき、第２の監視ツールは、ｚＳｅｒｉｅｓ（登録商標）・マシンとして分類されたシステムをモニタする（ｐＳｅｒｉｅｓおよびｚＳｅｒｉｅｓは、インターナショナル・ビジネス・マシーンズ・コーポレーション（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎ）社の登録商標である）。ハードウェア資源に基づいて資源を分類する結果、これらの監視ツールは、ハードウェア・レベルのパフォーマンスのモニタ結果に限定される。さらに、ハードウェア資源に基づいて資源を分類する結果、これらの監視ツールは、ハードウェア資源上で実行されるプロトコルの使用に制約されるため、通常、監視ツール間の通信を直接的にはサポートしていない。
【０００７】
システムのクラスタおよび他のグループが、グリッド環境に分散されるため、単にハードウェア・レベルよりむしろ、アプリケーション・レベルにおける異種のハードウェアおよびソフトウェア・プラットフォーム全体にわたってグリッド・ベース・アクティビティを追跡することと、単に特定のハードウェア環境よりむしろ、ハードウェア、ソフトウェア、およびネットワーク資源を含む全体のグリッド環境にわたってグリッド・ジョブおよびグリッド・ワークロードのバランスをとることとが有利であろう。その結果、グリッド環境の中で、全体のグリッド環境にわたってパフォーマンスおよび他のアクティビティをモニタすることと、現在のグリッド・アクティビティで影響を受けるモジュールに対して、そのグリッド・アクティビティの振り分けを調整することとが有利であろう。
【課題を解決するための手段】
【０００８】
上記に照らして、本発明は、一般に、グリッド・コンピューティングを改良し、特に、グリッド・コンピューティング環境の中の自動ワークロード・パフォーマンス・コントローラを調整する。さらに詳細には、本発明は、異種のグリッド資源グループから収集されたグリッド・アクティビティに基づく複数の決定グリッド・モジュールによる自動グリッド・ワークロード・パフォーマンスの調整に関する。
【０００９】
一実施形態に基づいて、コンピュータ・グリッド環境の中のグリッド・ワークロード・コントローラは、複数の異種のグリッド・アプリケーション環境からのアプリケーション・レベルにおけるリアルタイム・グリッド・アクティビティをモニタする。その後、グリッド・ワークロード・コントローラは、コンピュータ・グリッド環境の管理についての決定を行うためにリアルタイム・グリッド・アクティビティを要求するコンピュータ・グリッド環境の中のグリッド・モジュールの選択を決定する。グリッド・ワークロード・コントローラは、グリッド・モジュールの選択に対してリアルタイム・グリッド・アクティビティを振り分け、その後、グリッド・モジュールの選択がグリッド環境の中で自動決定を行い、パフォーマンス要件を保持する。
【００１０】
リアルタイム・グリッド・アクティビティは、新たに予定されたグリッド・ジョブ、現在実行処理中のグリッド・ジョブ、将来のジョブ・スケジュール、現在の価格設定スケジュール、将来の価格設定スケジュール、現在の資源利用性、および予測される資源利用性のようなデータを含みうる。さらに、リアルタイム・グリッド・アクティビティは、決定グリッド・モジュールにより決定されたコマンドまたは命令を含みうる。グリッド・モジュールは、例えば、グリッド資源割り当てモジュール、グリッド資源マネージャ・モジュール、グリッド処分モジュール、グリッド・ディスカウンタ・モジュール、グリッド課金処理モジュール、およびグリッド価格設定モジュールを含みうる。
【００１１】
複数の異種のグリッド・アプリケーション環境からのリアルタイム・グリッド・アクティビティをモニタする際に、グリッド・ワークロード・コントローラは、グリッド・ワークロード・コントローラにより使用される特定のプロトコルに適合することを要求する複数のプロトコル内にグリッド・アクティビティを受信できる。グリッド・アクティビティを適合させることに加えて、グリッド・ワークロード・コントローラは、グリッド・アクティビティの中のグリッド特性の種類に基づいて、およびどのグリッド・アプリケーション環境またはモジュールがグリッド・アクティビティを送出するかに基づいて、グリッド・アクティビティを除外できる。さらに、グリッド・ワークロード・コントローラは、自動的にグリッド・アクティビティを受信でき、またはグリッド・ワークロード・コントローラは、リアルタイム・グリッド・アクティビティについて資源マネージャ・モジュールに問い合わせることができ、各資源マネージャ・モジュールは、複数の異種のグリッド・アプリケーション環境の中の１つに対して割り当てられた資源ノードの分類の少なくとも１つのリアルタイム・パフォーマンス特性を追跡する。
【００１２】
リアルタイム・グリッド・アクティビティを要求するグリッド・モジュールの選択を決定する際に、グリッド・ワークロード・コントローラは、どの種類のグリッド・アクティビティが、どの種類のグリッド・モジュールに影響を及ぼしうるかを示す振り分け規則に基づいてグリッド・アクティビティをフィルタリングできる。振り分け規則は、例えば、システム管理者または自動決定コントローラにより設定されうる。
【００１３】
第１の態様から見ると、本発明は、グリッド・ワークロード・コントローラで、コンピュータ・グリッド環境の中の複数の異種のグリッド・アプリケーション環境からのアプリケーション・レベルにおけるリアルタイム・グリッド・アクティビティをモニタするステップと、前記コンピュータ・グリッド環境の管理についての決定を行うために前記リアルタイム・グリッド・アクティビティを要求するグリッド・モジュールの選択を決定するステップと、前記グリッド・ワークロード・コントローラから、前記リアルタイム・グリッド・アクティビティを、グリッド・モジュールの前記選択に振り分けるステップとを含み、グリッド・モジュールの前記選択が前記グリッド環境の中で自動決定を行い、前記コンピュータ・グリッド環境の中のワークロード・パフォーマンス要件を保持する、グリッド環境の中の作業負荷を管理するコンピュータで実行される方法を提供する。
【００１４】
本発明は、グリッド・ワークロード・コントローラで、コンピュータ・グリッド環境の中の複数の異種のグリッド・アプリケーション環境からのアプリケーション・レベルにおけるリアルタイム・グリッド・アクティビティをモニタするステップが、さらに、前記グリッド・ワークロード・コントローラで、前記グリッド・ワークロード・コントローラにより使用される特定のプロトコルに適合することを要求する複数のプロトコル内に受信される前記リアルタイム・グリッド・アクティビティをモニタするステップを含む、作業負荷を管理する方法を提供することが好ましい。
【００１５】
本発明は、グリッド・ワークロード・コントローラで、コンピュータ・グリッド環境の中の複数の異種のグリッド・アプリケーション環境からのアプリケーション・レベルにおけるリアルタイム・グリッド・アクティビティをモニタするステップが、さらに、前記グリッド・ワークロード・コントローラで、前記リアルタイム・グリッド・アクティビティの中の複数の種類のグリッド特性を受信するステップと、複数のモニタ規則に基づいて、前記リアルタイム・グリッド・アクティビティの中の前記複数の種類のグリッド特性をフィルタリングするステップとを含み、前記複数のモニタ規則が、前記複数の種類のグリッド特性の選択と、前記複数の異種のグリッド・アプリケーション環境の選択とを規定し、この前記複数の異種のグリッド・アプリケーション環境から前記リアルタイム・グリッド・アクティビティが収納される、作業負荷を管理するコンピュータで実行される方法を提供することが好ましい。
【００１６】
本発明は、グリッド・ワークロード・コントローラで、コンピュータ・グリッド環境の中の複数の異種のグリッド・アプリケーション環境からのアプリケーション・レベルにおけるリアルタイム・グリッド・アクティビティをモニタするステップが、さらに、前記リアルタイム・グリッド・アクティビティについて複数のマネージャ・モジュールに問い合わせるステップを含み、前記複数のマネージャ・モジュールの各々が、前記コンピュータ・グリッド環境の中の前記複数の異種のグリッド・アプリケーション環境のうちの１つに割り当てられた資源ノードの分類の少なくとも１つのリアルタイム・パフォーマンス特性を追跡する、作業負荷を管理するコンピュータで実行される方法を提供することが好ましい。
【００１７】
本発明は、前記コンピュータ・グリッドの管理についての決定を行うために前記リアルタイム・グリッド・アクティビティを要求するグリッド・モジュールの選択を決定するステップが、さらに、システム管理者および自動決定コントローラの中の少なくとも１つにより設定される複数の振り分け規則を介して、前記リアルタイム・グリッド・アクティビティをフィルタリングするステップを含む、作業負荷を管理するコンピュータで実行される方法を提供することが好ましい。
【００１８】
本発明は、前記リアルタイム・グリッド・アクティビティが、ジョブ要求の受信、保留中のジョブ提供、新たに予定されたグリッド・ジョブ、現在実行処理中のグリッド・ジョブ・パフォーマンス、将来のジョブ・スケジュール、現在の価格設定スケジュール、将来の価格設定スケジュール、現在の資源利用性、および予測される資源利用性の中の少なくとも１つについてのデータを含む、作業負荷を管理するコンピュータで実行される方法を提供することが好ましい。
【００１９】
本発明は、グリッド・モジュールの前記選択が、グリッド資源割り当てモジュール、グリッド処分モジュール、グリッド・ディスカウンタ・モジュール、グリッド課金処理モジュール、およびグリッド価格設定モジュールの中の少なくとも１つを含む、作業負荷を管理するコンピュータで実行される方法を提供することが好ましい。
【００２０】
本発明は、前記グリッド・ワークロード・コントローラがグリッド・サービスである、作業負荷を管理する方法を提供することが好ましい。
【００２１】
第２の態様から見ると、本発明は、コンピュータ・グリッド環境の中に実現されるグリッド・ワークロード・コントローラを含み、前記グリッド・ワークロード・コントローラは、前記コンピュータ・グリッド環境の中の複数の異種のグリッド・アプリケーション環境からのアプリケーション・レベルにおけるリアルタイム・グリッド・アクティビティをモニタする手段と、前記コンピュータ・グリッド環境の管理についての決定を行うために前記リアルタイム・グリッド・アクティビティを要求するグリッド・モジュールの選択を決定する手段と、前記リアルタイム・グリッド・アクティビティを、グリッド・モジュールの前記選択に振り分ける手段とを含み、グリッド・モジュールの前記選択が前記グリッド環境の中で自動決定を行い、前記コンピュータ・グリッド環境の中のワークロード・パフォーマンス要件を保持する、グリッド環境の中の作業負荷を管理するシステムを提供する。
【００２２】
本発明は、前記コンピュータ・グリッド環境の中の複数の異種のグリッド・アプリケーション環境からのアプリケーション・レベルにおけるリアルタイム・グリッド・アクティビティをモニタする前記手段が、さらに、前記グリッド・ワークロード・コントローラにより使用される特定のプロトコルに適合することを要求する複数のプロトコル内に受信される前記リアルタイム・グリッド・アクティビティをモニタする手段を含む、作業負荷を管理するシステムを提供することが好ましい。
【００２３】
本発明は、前記コンピュータ・グリッド環境の中の複数の異種のグリッド・アプリケーション環境からのアプリケーション・レベルにおけるリアルタイム・グリッド・アクティビティをモニタする前記手段が、さらに、前記グリッド・ワークロード・コントローラで、前記リアルタイム・グリッド・アクティビティの中の複数の種類のグリッド特性を受信する手段と、複数のモニタ規則に基づいて、前記リアルタイム・グリッド・アクティビティの中の前記複数の種類のグリッド特性をフィルタリングする手段とを含み、前記複数のモニタ規則が、前記複数の種類のグリッド特性の選択と、前記複数の異種のグリッド・アプリケーション環境の選択とを規定し、この前記複数の異種のグリッド・アプリケーション環境から前記リアルタイム・グリッド・アクティビティが収納される、作業負荷を管理するシステムを提供することが好ましい。
【００２４】
本発明は、前記コンピュータ・グリッド環境の中の複数の異種のグリッド・アプリケーション環境からのアプリケーション・レベルにおけるリアルタイム・グリッド・アクティビティをモニタする前記手段が、さらに、前記リアルタイム・グリッド・アクティビティについて複数のマネージャ・モジュールに問い合わせる手段を含み、前記複数のマネージャ・モジュールの各々が、前記コンピュータ・グリッド環境の中の前記複数の異種のグリッド・アプリケーション環境のうちの１つに割り当てられた資源ノードの分類の少なくとも１つのリアルタイム・パフォーマンス特性を追跡する、作業負荷を管理するシステムを提供することが好ましい。
【００２５】
本発明は、前記コンピュータ・グリッドの管理についての決定を行うために前記リアルタイム・グリッド・アクティビティを要求するグリッド・モジュールの選択を決定する前記手段が、さらに、システム管理者および自動決定コントローラの中の少なくとも１つにより設定される複数の振り分け規則を介して、前記リアルタイム・グリッド・アクティビティをフィルタリングする手段を含む、作業負荷を管理するシステムを提供することが好ましい。
【００２６】
本発明は、前記リアルタイム・グリッド・アクティビティが、ジョブ要求の受信、保留中のジョブ提供、新たに予定されたグリッド・ジョブ、現在実行処理中のグリッド・ジョブ・パフォーマンス、将来のジョブ・スケジュール、現在の価格設定スケジュール、将来の価格設定スケジュール、現在の資源利用性、および予測される資源利用性の中の少なくとも１つについてのデータを含む、作業負荷を管理するシステムを提供することが好ましい。
【００２７】
本発明は、グリッド・モジュールの前記選択が、グリッド資源割り当てモジュール、グリッド処分モジュール、グリッド・ディスカウンタ・モジュール、グリッド課金処理モジュール、およびグリッド価格設定モジュールの中の少なくとも１つを含む、作業負荷を管理するシステムを提供することが好ましい。
【００２８】
本発明は、前記グリッド・ワークロード・コントローラがグリッド・サービスである、作業負荷を管理するシステムを提供することが好ましい。
【００２９】
第３の態様から見ると、本発明は、コンピュータ上で実行されるとき、上述したような本発明を達成するために実行するソフトウェア・コード部を含む、デジタル・コンピュータの内部メモリにロードできるコンピュータ・プログラムを提供する。
【発明を実施するための最良の形態】
【００３０】
ここで図面、特に図１を参照すると、グリッド環境内で実施されうるコンピュータ・システムの一実施形態が示されており、このコンピュータ・システムの一実施形態において、本発明は実現されうる。さらに説明するように、グリッド環境は、資源を提供するために管理される複数のコンピュータ・システムを含む。加えて、さらに説明するように、本発明は、様々なコンピューティング・システム、移動システム、およびグリッド環境の中で管理された多くの異なるオペレーティング・システムの下で作動する電子デバイスを含む様々なコンピュータ・システムで実行されうる。
【００３１】
一実施形態では、コンピュータ・システム１００は、コンピュータ・システム１００の中で情報を伝えるバス１２２または他のデバイス、および情報を処理するためにバス１２２に結合されたプロセッサ１１２のような少なくとも１つの制御演算装置を含む。バス１２２は、ブリッジおよびアダプタにより接続され、かつコンピュータ・システム１００の中で複数のバス・コントローラにより制御される低レイテンシおよび高レイテンシ・パスを含みうる。サーバ・システムとして実行されるとき、通常、コンピュータ・システム１００は、ネットワーク・サービス能力を改善するように設計されたマルチ・プロセッサを含む。
【００３２】
プロセッサ１１２は、正常動作時に、ランダム・アクセス・メモリ（ＲＡＭ）１１４のような動的記憶デバイスおよび読み出し専用メモリ（ＲＯＭ）１１６のような静的記憶デバイスからアクセス可能なオペレーティング・システムおよびアプリケーション・ソフトウェアの制御の下にデータを処理するＩＢＭ（インタナショナル・ビジネス・マシーンズ・コーポレーション）社のＰｏｗｅｒＰＣ（登録商標）プロセッサのような汎用プロセッサでありうる。オペレーティング・システムは、利用者に対してグラフィカル・ユーザ・インタフェース（ＧＵＩ）を提供できる。一実施形態では、アプリケーション・ソフトウェアは、プロセッサ１１２上で実行処理されるとき、図７のフローチャートに示した動作、および本明細書に説明した他の動作を実行する機械実行可能命令を含む。あるいは、本発明のステップは、ステップを実行する配線論理を含む特定のハードウェア・コンポーネントで、またはプログラムされたコンピュータ・コンポーネント、およびカスタム・ハードウェア・コンポーネントの任意の組み合わせで実行されうる。
【００３３】
本発明は、コンピュータ・システム１００をプログラミングして、本発明に基づくプロセスを実行するために使用される機械実行可能命令を保存した機械可読媒体上に含まれるコンピュータ・プログラムとして提供されうる。本明細書に使用したような用語「機械可読媒体」は、プロセッサ１１２または実行処理用のコンピュータ・システム１００の他のコンポーネントに命令を提供することに関係する任意の媒体を含む。このような媒体は、不揮発性媒体、揮発性媒体、および伝送媒体を含む多数の形態を取りうるが、これらに限らない。不揮発性媒体の一般的な形態としては、例えば、フロッピー・ディスク、フレキシブル・ディスク、ハード・ディスク、磁気テープまたは他の任意の磁気媒体、コンパクト・ディスクＲＯＭ（ＣＤ−ＲＯＭ）または他の任意の光学媒体、パンチ・カードまたは穿孔パターンを有する他の任意の物理的媒体、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的ＥＰＲＯＭ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、他の任意のメモリ・チップまたはカートリッジ、もしくはコンピュータ・システム１００が読み取ることができ、かつ命令の保存に適した他の任意の媒体などがある。本実施形態では、不揮発性媒体の例は、図示したようなコンピュータ・システム１００の内部コンポーネントである大容量記憶デバイス１１８であるが、また、外部デバイスにより提供されることも理解されるであろう。揮発性媒体は、ＲＡＭ１１４のような動的メモリを含む。伝送媒体は、バス１２２を有する電線を含む、同軸ケーブル、銅線、または光ファイバを含む。また、伝送媒体は、無線周波数または赤外線通信時に生成されるような音波または光波の形態を取りうる。
【００３４】
さらに、本発明は、コンピュータ・プログラムとしてダウンロードされることも可能であり、プログラム命令が、バス１２２に結合された通信インタフェース１３２へのネットワーク・リンク１３４（例えば、モデムまたはネットワーク接続など）を介して、搬送波または他の伝搬媒体内に具現されたデータ信号により、仮想リソース１６０のようなリモート仮想リソースから、要求元のコンピュータ・システム１００に転送されうる。仮想リソース１６０は、単一システムまたはシステムからアクセス可能な資源の仮想表示を含むことができ、複数システムは、それぞれ独自のプラットフォーム上で作動する個々の資源の集合とみなされうるが、グリッド・マネージャにより仮想リソースとして調整されうる。通信インタフェース１３２は、例えば、ネットワーク１０２へのアクセスを提供するローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、またはインターネット・サービス・プロバイダ（ＩＳＰ）に接続されうるネットワーク・リンク１３４に対する双方向データ通信カップリングを提供する。特に、ネットワーク・リンク１３４は、ネットワーク１０２のような１つ以上のネットワークに対する有線および無線ネットワーク通信、もしくは、有線または無線ネットワーク通信を提供でき、このネットワーク１０２を介して、仮想リソース１６０のような仮想リソースの使用が、グリッド環境１５０の中に与えられているように、利用しやすくなる。グリッド環境１５０は、ピア・ツー・ピア・ネットワークを含む複数の種類のネットワークの一部、またはコンピュータ・システム１００のような単一のコンピュータ・システムの一部でありうる。
【００３５】
一実施例として、ネットワーク１０２は、相互に通信するために、伝送制御プロトコル（ＴＣＰ）およびインターネット・プロトコル（ＩＰ）のような特定のプロトコルを使用するネットワークおよびゲートウェイの世界的な集合を示しうる。ネットワーク１０２は、デジタル・データ・ストリームを運ぶ電気信号、電磁信号、または光信号を使用する。デジタル・データを、コンピュータ・システム１００へ運ぶ、およびコンピュータ・システム１００から運ぶ、様々なネットワークを介する信号、ならびにネットワーク・リンク１３４上にあり、かつ通信インタフェース１３２を介する信号は、情報を搬送する搬送波の模範的形態である。他の種類のネットワーク、他の組み合わせのネットワーク、および他のインフラストラクチャのネットワークを実行できることが理解されるであろう。
【００３６】
サーバ・システムとして実行されるとき、通常、コンピュータ・システム１００は、入出力制御装置に接続される複数の周辺コンポーネント相互接続（ＰＣＩ）バス・ブリッジを介してアクセス可能な複数の通信インタフェースを含む。このように、コンピュータ・システム１００は、複数のネットワーク・コンピュータに対する接続を可能とする。
【００３７】
さらに、図示されていないが、複数のコントローラと、アダプタと、バス１２２の複数のレベルのうちの１つに結合される拡張スロットとに接続される複数の周辺コンポーネント、および内部／外部デバイスが、コンピュータ・システム１００に付加されうる。例えば、表示装置、オーディオ・デバイス、キーボード、またはカーソル制御デバイスが、周辺コンポーネントとして付加されうる。
【００３８】
当業者は、図１に示したハードウェアが変化しうることを理解するであろう。さらに、当業者は、図示した例は、本発明についてのアーキテクチャの制限を示すものではないことを理解するであろう。
【００３９】
ここで図２を参照すると、ブロック図は、グリッド環境の中の一般型のコンポーネントの一実施形態を示す。本実施例では、グリッド環境１５０のコンポーネントは、グリッド管理システム２４０と連動するクライアント・システム２００を含み、このグリッド管理システム２４０は、サーバ・クラスタ２２２、サーバ２２４、ワークステーションおよびデスクトップ２２６、データ記憶システム２２８、およびネットワーク２３０と連動する。例示の目的上、グリッド環境１５０の中のコンポーネントを接続するネットワーク位置およびネットワークの種類は、図示されていない。しかしながら、グリッド環境１５０の中のコンポーネントは、相互に重なり合った複数の種類のネットワークで実現されうるネットワーク・インフラストラクチャ・アーキテクチャの上に存在しうることが理解されるであろう。ネットワーク・インフラストラクチャは、複数の大企業システムから、単一のコンピュータ・システムに対するピア・ツー・ピア・システムまで多岐にわたりうる。さらに、グリッド環境１５０の中のコンポーネントは、単にグリッド環境の中のコンポーネントの種類の説明に過ぎないことが理解されるであろう。グリッド環境は、単純に、単一のコンピュータ・システム内に含まれる場合もあり、または複数の企業のシステムを含む場合もある。さらに、グリッド・ベンダーは、グリッド環境１５０を提供でき、グリッド・ベンダーは、例えば、グリッド・ジョブを実行するために要する時間、または使用される資源の実際の量に基づいて、グリッド環境１５０の中の資源の使用の費用を計算できることが理解されるであろう。
【００４０】
グリッド環境１５０のようなグリッド環境の主要な目標は、仮想リソース１６０とみなされる複数の離散的システムからの資源の組織化および配信である。クライアント・システム２００、サーバ・クラスタ２２２、サーバ２２４、ワークステーションおよびデスクトップ２２６、データ記憶システム２２８、ネットワーク２３０、およびグリッド管理システム２４０を作るシステムは、異種であり、独自の管理システムと共に地域に振り分けられうるが、グリッド管理システム２４０により可能にされたグリッド・インフラストラクチャを介して、情報、資源、およびサービスを交換できるようにされうる。さらに、サーバ・クラスタ２２２、サーバ２２４、ワークステーションおよびデスクトップ２２６、データ記憶システム２２８、およびネットワーク２３０は、国および大陸全体にわたって地理的に分散されたり、または局所的に相互にアクセス可能な場合もある。仮想リソース１６０の中のグリッド資源の発見の機構については、本明細書に記述されていないが、グリッド環境１５０の中で利用可能な小域的および世界的規模のディレクトリで公示されるため、クライアント・システム２００は、仮想リソース１６０の中の資源を発見できることが理解されるであろう。
【００４１】
本実施例では、クライアント・システム２００は、グリッド管理システム２４０と連動する。クライアント・システム２００は、グリッド管理システム２４０に要求を送出する任意のコンピューティング・システムを代表することができる。特に、クライアント・システム２００は、グリッド管理システム２４０に対して仮想ジョブ要求およびジョブを送出でき、グリッド管理システム２４０は、グリッド提供で呼応でき、かつグリッド・ジョブの処理を制御する。さらに、本実施形態では、クライアント・システム２００は、要求によりグリッド環境１５０にアクセスするように示されているが、他の実施形態では、クライアント・システム２００は、グリッド環境１５０の中でも作動できる。
【００４２】
仮想リソース１６０の中のシステムは、並列に図示されているが、実際には、システムは、システムの階層の一部であってもよく、仮想リソース１６０の中のいくつかのシステムは、クライアント・システム２００に対してローカルであり、一方、他のシステムは、外部ネットワークへのアクセスを要する場合もある。さらに、クライアント・システム２００は、物理的に、仮想リソース１６０の中に示したシステムを含みうることに注意することが重要である。
【００４３】
グリッド環境１５０を実行するために、グリッド管理システム２４０は、グリッド・サービスを促進する。グリッド・サービスは、オープン・グリッド・サービス・アーキテクチャ（ＯＧＳＡ）を含むが、これに限定されない複数のアーキテクチャに基づいて設計されうる。特に、グリッド管理システム２４０は、グリッド・サービスを介して資源を共有することを特徴とする異種ネットワーク環境にコンピューティング・システムをリンクすることによりグリッドを作成する管理環境を示す。
【００４４】
一実施例では、グリッド管理システム２４０は、グリッド環境１５０の中のグリッド・アクティビティをモニタするグリッド・サービスを実行する複数のグリッド・モジュールを含みうる。グリッド・アクティビティは、グリッド・ジョブ要求の受信、クライアントに送出されたグリッド・ジョブ提供、新たに予定されたグリッド・ジョブ、現在実行処理中のグリッド・ジョブ、現在および将来のグリッド価格設定、グリッド価格設定の調整、仮想リソース１６０の中の現在および将来予測される作業負荷、ならびに仮想リソース１６０の中の資源の現在および将来の割り当ておよび割り当て解除を含みうるが、これらに限らない。一実施形態では、グリッド・アクティビティは、グリッド環境１５０のリアルタイムの状態を示すが、他の実施形態では、グリッド・アクティビティをモニタして、報告するグリッド・モジュールは、報告を遅らせることがありうる。グリッド・モジュールは、現在および将来のパフォーマンスをモニタするモニタ・サービス、作業負荷、およびパフォーマンス要件を保持するためにグリッド環境１５０の中の意志決定を自動化する価格設定および決定サービスを含みうるが、これらに限らない。
【００４５】
本発明の利点に基づいて、グリッド管理システム２４０は、複数のグリッド・モジュール全体からグリッド・アクティビティを収集し、その後、グリッド・アクティビティの影響を受けるそれらのグリッド・モジュールに対して、グリッド・アクティビティを振り分ける集中されたグリッド・ワークロード・エージェントを含みうる。例えば、グリッド・ワークロード・エージェントは、ハードウェア資源の選択の全体にわたる現在の作業負荷を示すデータを１つのモニタ・モジュールから収集するとともに、現在の作業負荷を、現在の作業負荷に基づいて資源の価格設定および利用性を決定するグリッド・モジュールに振り分けることができる。
【００４６】
ここで図３を参照すると、ブロック図は、グリッド環境内で実施されうるアーキテクチャの一例を示す。図示したように、アーキテクチャ３００は、複数の機能レイヤーを含む。さらに説明するように、本発明は、アーキテクチャ３００のようなアーキテクチャの１つ以上のレイヤー内で実行されうるプロセスであり、このアーキテクチャ３００は、図２に説明したグリッド環境のようなグリッド環境内で実施される。アーキテクチャ３００は、グリッド環境内で実施されうるアーキテクチャの一例に過ぎず、このアーキテクチャ３００において、本発明が実現されうることに注意することが重要である。さらに、複数のアーキテクチャがグリッド環境の中で実施されうることに注意することが重要である。
【００４７】
アーキテクチャ３００のレイヤーの中で、最初に、物理および論理資源レイヤー３３０は、グリッド内のシステムの資源を組織化する。物理資源は、サーバ、記憶媒体、およびネットワークを含むが、これらに限らない。論理資源は、物理レイヤーを、オペレーティング・システム、処理能力、メモリ、Ｉ／Ｏ処理、ファイル・システム、データベース・マネージャ、ディレクトリ、メモリ・マネージャ、および他の資源のような使用可能な資源に仮想化し、統合する。
【００４８】
次に、ウェブ・サービス・レイヤー３２０は、グリッド・サービス３１０と物理および論理資源３３０との間のインタフェースを提供する。ウェブ・サービス・レイヤー３２０は、ウェブ・サービス記述言語（ＷＳＤＬ）、シンプル・オブジェクト・アクセス・プロトコル（ＳＯＡＰ）、およびインターネット・プロトコル（ＩＰ）または他のネットワーク・トランスポート・レイヤーの上で実行する拡張マークアップ言語（ＸＭＬ）を含むサービス・インタフェースを実行するが、これらに限らない。さらに、オープン・グリッド・サービス・インフラストラクチャ（ＯＧＳＩ）規格３２２は、グリッドの資源をモデル化するために要求される動的で管理しやすいウェブ・サービスの能力を提供するために、ウェブ・サービス３２０を拡張することにより現在のウェブ・サービス３２０をベースに構築される。特に、ウェブ・サービス３２０と共にＯＧＳＩ規格３２２を実行することにより、ＯＧＳＡを用いて設計されたグリッド・サービス３１０を共同利用できる。他の実施形態では、他のインフラストラクチャまたは付加的なインフラストラクチャが、ウェブ・サービス・レイヤー３２０の上に実装されうる。
【００４９】
グリッド・サービス・レイヤー３１０は、グリッド管理システム２４０の少なくとも１つの管理機能を一体となって提供する複数のサービスを含む。例えば、グリッド・サービス・レイヤー３１０は、ＯＧＳＡを用いて設計されたグリッド・サービスを含み、グリッド・サービスを作る際に一律の規格が実施されるようになされうる。あるいは、グリッド・サービスは、複数のアーキテクチャの下で設計されうる。グリッド・サービスを４つの主要機能に分類できる。しかしながら、他の機能がグリッド・サービスで実行されうることが理解されるであろう。
【００５０】
第１に、資源管理サービス３０２は、物理および論理資源の使用を管理する。資源は、処理リソース、メモリ資源、および記憶リソースを含みうるが、これらに限らない。これらの資源の管理は、ジョブのスケジューリング、ジョブの振り分け、およびジョブの結果の検索の管理を含む。資源管理サービス３０２は、資源負荷のバランスをとって、予想外のアクティビティのピークを吸収するために、資源負荷をモニタし、あまり混んでいないグリッドの部分にジョブを振り分ける。特に、利用者は、好ましいパフォーマンス・レベルを指定して、資源管理サービス３０２がグリッドの中の好ましいパフォーマンス・レベルを保持するためにジョブを振り分けるようにできる。
【００５１】
第２に、情報サービス３０４は、グリッドの中のコンピューティング・システム間の情報伝達および通信を管理する。複数の通信プロトコルが実行されうるため、情報サービス３０４は、複数の種類の通信プロトコルを利用して、多重ネットワーク全体にわたって通信を管理する。
【００５２】
第３に、データ管理サービス３０６は、グリッドの中のデータ転送および記憶を管理する。特に、データ管理サービス３０６は、データを要求しているジョブが実行処理されるであろうグリッドの中のノードにデータを移動させることができる。グリッド・ファイル転送プロトコル（ＧｒｉｄＦＴＰ）のような特定の種類の転送プロトコルが実行されうる。
【００５３】
最後に、セキュリティ・サービス３０８は、グリッドの中で作動する各システムの接続レイヤーにおけるセキュリティのためにセキュリティ・プロトコルを適用する。セキュリティ・サービス３０８は、安全な伝送を提供するために、オープン・セキュア・ソケット・レイヤー（ＳＳＬ）のようなセキュリティ・プロトコルを実行できる。さらに、セキュリティ・サービス３０８は、シングル・サインオン機構を提供し、利用者が一度認証されると、利用者に対してグリッドの中でアクションを実行するとき、プロキシ証明書が作成され、使用されるようになされうる。
【００５４】
複数のサービスは、グリッド・コンピューティング・システムのいくつかの主要な機能を提供するために一体となって働きうる。第１の実施例では、計算タスクが、グリッドの中で振り分けられる。データ管理サービス３０６は、計算タスクを、個々のグリッド・サービス要求のデータのパケットに分割することができ、その後、これらの個々のグリッド・サービス要求のデータのパケットは、資源管理サービス３０２により振り分けられ、かつ管理される。結果は、データ管理システム３０６により収集され、かつ統合される。第２の実施例では、グリッド内の複数のコンピューティング・システム全体の中の記憶リソースは、データ管理サービス３０６により管理され、かつ資源管理サービス３０２によりモニタされる単一の仮想データ記憶システムとみなされる。
【００５５】
アプリケーション・レイヤー３４０は、グリッド・サービス・レイヤー３１０内で利用可能な１つ以上のグリッド・サービスを使用するアプリケーションを含む。アプリケーションは、複数の異種システムが相互作用し、かつ共同利用できるように、グリッド・サービス・レイヤー３１０およびウェブ・サービス３２０を介して物理および論理資源３３０と連動することが好都合である。
【００５６】
ここで図４を参照すると、複数の異種のグリッド・モジュールからのグリッド・アクティビティのモニタリングを調整し、かつ潜在的にグリッド・アクティビティの影響を受けるコンピュータ・グリッド環境の中のそれらの決定グリッド・モジュールに対して、グリッド・アクティビティを振り分けるグリッド・ワークロード・エージェントのコンポーネントのブロック図が示されている。図示したように、グリッド・ワークロード・エージェント４００は、グリッド環境１５０の中の、複数の異種のサーバ・システム全体の中のハードウェアおよびソフトウェアの中、または単一サーバ・システムの中に実装されうる複数のコンポーネントを含む。
【００５７】
本実施例では、グリッド・ワークロード・エージェント４００は、モジュール・データベース４０４を含む。モジュール・データベース４０４は、グリッド・ワークロード・エージェント４００がグリッド・アクティビティに対してモニタできる各グリッド・モジュールについての情報、またはグリッド・ワークロード・エージェント４００がグリッド・アクティビティを振り分けることができる各グリッド・モジュールについての情報を保存する。特に、モジュール・データベース４０４は、グリッド・モジュールの選択、およびモニタするグリッド・アクティビティの種類を指定するモニタ規則４０５を含みうる。さらに、モジュール・データベース４０４は、どのグリッド・モジュールがグリッド・アクティビティを受信するべきか、および各グリッド・モジュールに振り分けるグリッド・アクティビティの種類を指定する振り分け規則４０６を含みうる。モニタ規則４０５および振り分け規則４０６は、システム管理者により提供されてもよく、またはグリッド環境１５０の中で決定を行うグリッド・モジュールで使用されるグリッド・アクティビティ情報の種類に基づいて自動的に決定されてもよいことが理解されるであろう。
【００５８】
さらに、本実施例では、グリッド・ワークロード・エージェント４００は、グリッド・ワークロード・エージェント４００により収集されたリアルタイム・グリッド・アクティビティを保存し、かつ他のグリッド・モジュールに対するグリッド・アクティビティの振り分けの記録を保存するグリッド・アクティビティ・データベース４１０を含む。また、グリッド・アクティビティ・データベース４１０は、ジョブ費用を計算するグリッド課金処理モジュールにより参照されうることが理解されるであろう。
【００５９】
本実施例では、グリッド・ワークロード・エージェント４００は、グリッド・アクティビティに対するグリッド・モジュールへの質問、およびグリッド・モジュールからのグリッド・アクティビティの受信を管理するモジュール・モニタ・コントローラ４０２を含む。特に、モジュール・モニタ・コントローラ４０２は、モニタ規則４０５で指定されたそれらのグリッド・モジュールに照会することができ、モニタ規則４０５に基づいて受信されたグリッド・アクティビティをフィルタリングできる。一実施例では、モジュール・モニタ・コントローラ４０２は、グリッド・アクティビティの受信および振り分けを管理するために待ち行列システムを含みうる。例えば、ＭＱＳｅｒｉｅｓ（登録商標）のような待ち行列システム（ＭＱＳｅｒｉｅｓは、ＩＢＭ社の登録商標である）は、複数の異種の通信プロトコルを用いてパッケージされたグリッド・アクティビティの受信を管理し、かつそれぞれのパッケージされたメッセージの、アダプタに対する振り分けを制御することができ、このアダプタは、グリッド・ワークロード・エージェント４００により使用される一般的なプロトコルにメッセージをマッピングすることを可能にされる。
【００６０】
一実施例では、モジュール・モニタ・コントローラ４０２は、特定のジョブに対する資源利用を要求するクライアント・システムに対して行われたグリッド提供を示すグリッド・アクティビティについてジョブ提供コントローラに照会する。他の実施例では、モジュール・モニタ・コントローラ４０２は、資源マネージャで管理される資源のグループに対する現在の作業負荷およびパフォーマンス特性を示すグリッド・アクティビティについて資源マネージャに照会する。さらに他の実施例では、モジュール・モニタ・コントローラ４０２は、グリッド資源の特定の選択に対する現在の価格設定を示すグリッド・アクティビティについて価格設定コントローラに照会する。
【００６１】
さらに、本実施例では、グリッド・ワークロード・エージェント４００は、グリッド・モジュールに対するグリッド・アクティビティの振り分けを管理する振り分けコントローラ４０８を含む。特に、振り分けコントローラ４０８は、振り分け規則４０６に基づいてグリッド・アクティビティを振り分けることができる。さらに、振り分けコントローラ４０８は、グリッド・アクティビティを受信するグリッド・モジュールにより把握されるプロトコルにグリッド・アクティビティをマッピングするためにマッピング・コントローラを含みうる。
【００６２】
ここで図５を参照すると、本発明の方法、システム、およびプログラムに基づいて、グリッド環境の中の他のグリッド・モジュールと相互作用するグリッド・ワークロード・エージェントの例のブロック図が示されている。図示したように、全体のグリッド環境１５０のグリッド管理システム２４０は、グリッド・ワークロード・エージェント４００を含む複数のグリッド・モジュールを含みうる。グリッド・ワークロード・エージェント４００は、グリッド環境１５０の中のモニタおよび決定グリッド・モジュールから受信されるリアルタイム・グリッド・アクティビティを追跡するとともに、グリッド・アクティビティの影響を受けたり、または決定を行うためにグリッド・アクティビティを要求する可能性が高いグリッド管理システム２４０の中の決定モジュールの選択に対して、グリッド・アクティビティを振り分ける。
【００６３】
一実施例では、グリッド・ワークロード・エージェント４００は、グリッド・マネージャ・モジュール５０４からの資源パフォーマンスおよび作業負荷を示すリアルタイム・グリッド・アクティビティを受信する。グリッド・マネージャ・モジュール５０４は、同じ種類、または同様の種類の資源を含むグリッド・アプリケーション環境に対するグリッド・アクティビティをモニタするとともに、グリッド・アプリケーション環境の中のノードを管理する。特に、グリッド・マネージャ・モジュール５０４は、グリッド資源の選択の資源利用、ならびにグリッド資源の選択に対するグリッド・ジョブおよび作業負荷の状態を示すグリッド・アクティビティをサブミットできる。グリッド・ワークロード・エージェント４００は、グリッド・マネージャ・モジュール５０４からグリッド・アクティビティを受信するとともに、ジョブの現在の費用を計算するグリッド課金処理モジュール５１０、現在の作業負荷およびパフォーマンスに基づいて、追加の資源ノードを特定の目的に対して割り当てるべきか、または割り当て解除するべきかを決定するグリッド資源割り当てモジュール５０２、または現在または将来予測される作業負荷が現在のグリッド資源に対して過剰であるとき、グリッド・ジョブを処分しようとするグリッド処分モジュール５０６のような他の決定グリッド・モジュールに対して、このパフォーマンスおよび作業負荷データを振り分けることができる。
【００６４】
他の実施例では、グリッド資源割り当てモジュール５０２は、グリッド環境１５０の外部のグリッド環境からアクセスされるオンデマンドのグリッド資源の割り当ておよび割り当て解除を含む資源ノード割り当ておよび割り当て解除をモニタする。グリッド・ワークロード・エージェント４００は、グリッド資源割り当てモジュール５０２から、このグリッド・アクティビティを受信するとともに、グリッド負荷が重過ぎるかどうか、およびグリッド・ジョブが、グリッド環境１５０の外のグリッド・ファームまたはグリッド・ベンダーに転送される必要があるかどうかを決定するグリッド処分モジュール５０６に、割り当てアクティビティ情報を振り分けることができる。
【００６５】
さらに他の実施例では、グリッド・ワークロード・エージェント４００は、グリッド・ディスカウンタ・モジュール５０８に対して、現在または将来予測される低資源利用レベルを示す任意のグリッド・アクティビティを振り分ける。グリッド・ディスカウンタ・モジュール５０８は、割り引き価格としてグリッド資源に提供してよいかどうかを決定する。グリッド・ディスカウンタ・モジュール５０８による価格割り引きの決定は、グリッド・ワークロード・エージェント４００により受信されるとともに、例えば、グリッド管理システム２４０により受信されるグリッド・ジョブ要求に対する価格設定提供を決定するグリッド価格設定モジュール５１２に振り分けられる。
【００６６】
グリッド管理システム２４０の中に示したグリッド・モジュールは、あくまでグリッド資源全体のアプリケーション、ハードウェア、およびネットワーク・レベルでグリッド・アクティビティをモニタできるグリッド・モジュールの種類の例に過ぎず、かつグリッド管理システム２４０の中の自動決定サービスを提供するグリッド・モジュールの種類の例に過ぎないことが理解されるであろう。特に、現在の作業負荷要件、さらなる作業負荷要件、およびグリッド環境の中の潜在的変化を予測する付加的な決定モジュールは、グリッド・アクティビティを受信できる。
【００６７】
ここで図６を参照すると、本発明の方法、システム、およびプログラムに基づいて、ノードとして割り当てられたグリッド資源の異種グループを管理する複数のグリッド・マネージャ・モジュールのブロック図が示されている。図示したように、複数のグリッド・マネージャ・モジュール６０２、６０４、６０６、および６０８は、それぞれグリッド資源６１０、６１２、６１４、および６１６のグループの利用を管理する。
【００６８】
グリッド資源の各グループは、複数のノードを含むことができ、ノードは、特定の目的に対して割り当てられたハードウェア、ソフトウェア、またはネットワーク資源の論理的表現である。例えば、グループ６１０は、グリッド環境１５０の中でグリッド・マネージャ・モジュール６０２によりモニタされ、かつ管理されるＤＢ２ＥＥＥノード６２０、６２２、６２４、および６２６を含む（ＤＢ２は、ＩＢＭ社の登録商標である）。グリッド資源のグループは、同じ種類の資源のノード、または異種の資源のノードを含みうることが理解されるであろう。
【００６９】
本実施例では、グリッド資源６１０、６１２、６１４、および６１６の各グループは、異種のプラットフォーム上で、または異なる目的のために作動する資源のノードを含む。例示の目的上、グリッド資源の各グループは、異なるグリッド・アプリケーション環境を表す。例えば、グループ６１０は、ＤＢ２ＥＥＥグリッドノード６２０、６２２、６２４、および６２６、ならびに並列ＤＢ２データベース環境を要求されるジョブの実行処理専用の他の関連資源を含む。他の実施例では、グループ６１２は、ＤＢ２ＥＥグリッドノード６３０、６３２、６３４、および６３６、ならびに現時点では標準ＤＢ２データベース環境を要求するジョブの実行処理専用の他の関連資源を含む。さらに、他の実施例では、グループ６１４は、特定のアプリケーションまたはデータを必要としないが、むしろ単に強力なＣＰＵ、およびハイ・コンパイラ型Ｃコード・モードを必要とするロジックの実行処理専用の６つの計算ノードを含む。さらに、他の実施例では、グループ６１６は、現時点では計算タスクの実行処理に割り当てられておらず、かつグループ６１０のような他のグリッド・アプリケーション環境への組み込み可能な資源のプール内に含まれているアイドル・ノード６４０および６４２を含む。
【００７０】
本実施例では、グリッド・ワークロード・エージェント４００は、グリッド・マネージャ・モジュール６０２、６０４、６０６、および６０８と通信することにより４つの個別のグリッド・アプリケーション・システム環境に対するアプリケーション・レベルのグリッド・アクティビティを追跡できる。各グリッド・マネージャ・モジュール６０２、６０４、６０６、および６０８により報告されたグリッド・アクティビティは、他のグリッド・マネージャ・モジュールにより行われた決定、およびグリッド・ワークロード・エージェント４００がグリッド・アクティビティを振り分ける他のグリッド・モジュールにより行われた決定を実行できる。
【００７１】
一実施例では、グリッド・マネージャ・モジュール６０２は、グリッド・ワークロード・エージェント４００に対して、グループ６１０の中のＤＢ２ＥＥＥノードが、グループ６１０の中の利用可能なＣＰＵ資源の５０％だけを使用しているに過ぎないこと、および並列ＤＢ２データベース環境を必要とする将来のデータベース・ジョブが予定されていないことを示すグリッド・アクティビティを報告できる。グリッド・マネージャ・モジュール６０２は、このグリッド・アクティビティをグリッド割り引きモジュール５０８に振り分けることができ、その後、このグリッド割り引きモジュール５０８が、データベース・ジョブに対して割り引き価格を提供してよいかどうかを決定する。さらに、グリッド・マネージャ・モジュール６０２は、このグリッド・アクティビティをグリッド資源割り当てモジュール５０２に振り分けることができ、その後、このグリッド資源割り当てモジュール５０２は、グループ６１０の中のノードを割り当て解除してよいかどうか、およびより重いジョブ負荷を有する他のグループの中のノードに再割り当てしてよいかどうかを決定する。特に、グリッド・ワークロード・エージェント４００は、グリッド・マネージャ・モジュール６０２とグリッド資源割り当てモジュール５０２の間のグリッド・アクティビティの通信を管理し、ノードがデータベース・ジョブ用の使用から排除されるであろうこと、ノードに対して予定されている作業が、グループ６１０の中の他のノードに変更されるであろうこと、および現在のすべてのトランザクションが終了されるであろうことをグリッド・マネージャ・モジュール６０２に知らせるであろう。例えば、ノード６２２がＤＢ２ＥＥＥトランザクションで使用されていないと、グリッド・ワークロード・エージェント４００は、ノード６２２が使用されていないことを示すグリッド・アクティビティでグリッド・モジュールを更新するであろうとともに、グリッド・マネージャ・モジュール６０８は、ノード６２２のモニタおよび管理を開始するであろう。
【００７２】
他の実施例では、グリッド・マネージャ・モジュール６０４は、グループ６１２内のノードが１００％の能力で稼働していることを検出し、グリッド・ワークロード・エージェント４００を現在の能力で更新する。グリッド・ワークロード・エージェント４００は、能力割合が、グリッド資源割り当てモジュール５０２、およびグリッド価格設定モジュール５１２に対して振り分けられるべきであることを決定する。グリッド資源割り当てモジュール５０２は、グリッド・ワークロード・エージェント４００に対して、新しいノードがグリッド・グループ６１２に割り当てられているかどうかを示すグリッド・アクティビティ情報を返す。グリッド・ワークロード・エージェント４００は、グリッド・マネージャ・モジュール６０２に対して新しいデータベース・ノードのグリッド・アクティビティを振り分ける。さらに、グリッド価格設定モジュール５１２は、次の１０時間に対してデータベース・ジョブの料金の増額が必要であることを決定でき、グリッド・ワークロード・エージェント４００に対して値上げを返す。グリッド・ワークロード・エージェント４００は、グリッド課金処理モジュール５１０に値上げを振り分けることを決定し、グリッド課金処理モジュール５１０が、次の１０時間に対するグリッド・グループ６１２を用いて、データベース・ジョブの費用を適正に計算できるようになされうる。
【００７３】
本実施例は、アプリケーション環境に基づいて分類されたノードに関して説明されるが、他の実施例では、ノードが、ハードウェア環境、ネットワーク環境、および他のグループ分けのような他の機能的な基準に基づいて分類されうることに注意することは重要である。さらに、グループ分けの中の資源ノードは、物理的に一緒に分類されたり、または異種の物理的な場所に位置しうることが理解されるであろう。
【００７４】
ここで図７を参照すると、本発明の方法、システム、およびプログラムに基づいて、グリッド環境の中の異種のモニタおよび決定グリッド・モジュール全体にわたって、グリッド・アクティビティのモニタリングおよび振り分けを調整するプロセスおよびプログラムの高レベルの論理流れ図が示されている。図示したプロセスは、適切なポリシーおよび規則で制御されながら、グリッド・ワークロード・エージェント４００の中で実行処理されうるが、手動の、または自動化された付加的な管理的意思決定が、グリッド・アクティビティのモニタリングおよび振り分けを調整するために必要とされうることが理解されるであろう。
【００７５】
図示したように、プロセスは、ブロック７００で始まり、その後、ブロック７０２に進む。ブロック７０２は、グリッド・アクティビティ指標が検出されるかどうかの判断を示す。グリッド・アクティビティ指標が検出されないとき、プロセスは、ブロック７０４に進む。ブロック７０４は、統計的分析および課金処理アクティビティの履歴を保持するために、グリッド課金処理モジュールに対するグリッド・アクティビティを定期的にアーカイブするステップを示す。次に、ブロック７０６は、現在実行処理中および予定されているジョブ、ならびにグリッド・パフォーマンスをモニタする他のグリッド・モジュールについてグリッド・マネージャ・モジュールに問い合わせるステップを示し、プロセスは、ブロック７０２に戻る。
【００７６】
他方、ブロック７０２で、グリッド・アクティビティが検出されるとき、プロセスは、ブロック７０８に進む。ブロック７０８は、モニタ規則に基づいてグリッド・アクティビティをフィルタリングするステップを示す。次に、ブロック７１０は、新しい特定アプリケーション向けジョブが予定されていることをアクティビティが示すかどうかの判断を示す。新しい特定アプリケーション向けジョブが予定されていることをアクティビティが示さないとき、プロセスは、ブロック７１４に進む。ブロック７１４は、現在の作業負荷統計についてアプリケーション環境に問い合わせるステップ、またはグリッド・アクティビティの現在のアーカイブされたスナップショットを読み出すステップを示し、プロセスは、ブロック７１６に進む。他方、ブロック７１０で、新しい特定アプリケーション向けジョブがグリッド環境の中で実行される予定があることをグリッド・アクティビティが示すとき、プロセスは、ブロック７１２に進む。ブロック７１２は、現在の作業負荷統計について一般的なグリッド・プラットフォームに問い合わせるステップ、またはグリッド・アクティビティの現在のアーカイブされたスナップショットを読み出すことを示し、プロセスは、ブロック７１６に進む。
【００７７】
ブロック７１６は、グリッド環境の中のジョブ・サブミッションの影響を推定するために予測的解析を実行するステップを示す。次に、ブロック７１８は、将来のより正確な予測に向けて実際のジョブ影響と比較するために予測データを保存するステップを示す。その後、ブロック７２０は、潜在的に影響を受ける決定グリッド・モジュールに対してグリッド・アクティビティ・データを振り分けるステップを示し、プロセスは終了する。
【図面の簡単な説明】
【００７８】
発明の態様と考えられる新規な特徴について、添付特許請求の範囲で詳述される。しかしながら、本発明自体、ならびに本発明の好ましい使用形態、さらなる目的、および利点は、添付図面とともに、本発明の実施形態についての以下の詳細な説明を参照することにより、最も良く理解されるであろう。
【００７９】
【図１】グリッド環境内で実施されうるコンピュータ・システムの一実施形態を示し、このコンピュータ・システムの一実施形態において、本発明は実現されうる。
【図２】グリッド環境の中の一般型のコンポーネントの一実施形態を示すブロック図である。
【図３】グリッド環境内で実施されうるアーキテクチャの一実施例を示すブロック図である。
【図４】複数の異種のグリッド・モジュールからのグリッド・アクティビティのモニタリングを調整し、かつ潜在的にグリッド・アクティビティの影響を受けるコンピュータ・グリッド環境の中のそれらの決定グリッド・モジュールに対して、グリッド・アクティビティを振り分けるグリッド・ワークロード・エージェントのコンポーネントを示すブロック図である。
【図５】本発明の方法、システム、およびプログラムに基づいて、グリッド環境の中の他のグリッド・モジュールと相互作用するグリッド・ワークロード・エージェントの例を示すブロック図である。
【図６】本発明の方法、システム、およびプログラムに基づいて、ノードとして割り当てられたグリッド資源の異種グループを管理する複数のグリッド・マネージャ・モジュールを示すブロック図である。
【図７】本発明の方法、システム、およびプログラムに基づいて、グリッド環境の中の異種のモニタおよび決定グリッド・モジュール全体にわたって、グリッド・アクティビティのモニタリングおよび振り分けを調整するプロセスおよびプログラムの高レベルの論理流れ図である。
【図１】
2008527514.tif 000003
【図２】
2008527514.tif 000004
【図３】
2008527514.tif 000005
【図４】
2008527514.tif 000006
【図５】
2008527514.tif 000007
【図６】
2008527514.tif 000008
【図７】
2008527514.tif 000009
【国際調査報告】
2008527514.tif 000010
2008527514.tif 000011
2008527514.tif 000012