(57)【要約】【課題】  グリッド環境にサブミットされるグリッド・ジョブによる使用の前にリソースの機能を検査するための方法、システム、及びプログラムを提供する。【解決手段】  新たなリソースが、グリッド管理システムによって管理されるグリッド環境内の特定の実行環境に割り当てられたときに、グリッド検査サービスが、グリッド環境管理システムによって制御されるように新たなリソースの少なくとも１つの機能テストを自動的に選択し、実行する。機能テストの結果に応答して、グリッド検査システムは、新たなリソースへのグリッド・ジョブのルーティングを可能にする前に、結果が予測された結果を満たすかどうかを検査し、その結果、新たなリソースへのアクセスが可能になる前に新たなリソースの機能が自動的に検査され、グリッド・ジョブを処理する際のサービスの質が維持される。【選択図】  図５
2008527513.tif 000002
【特許請求の範囲】
【請求項１】
グリッド環境にサブミットされるグリッド・ジョブのための特定の実行環境内のリソースを検査する方法であって、
グリッド管理システムによって管理されるグリッド環境内の特定の実行環境において新たなリソースを検出するステップであって、前記特定の実行環境は、グリッド・ジョブを処理するためにグループ化される複数のグリッド・リソースを含む、ステップと、
前記グリッド管理システムによって制御されるように前記新たなリソースの少なくとも１つの機能テストを実行するステップと、
前記少なくとも１つの機能テストの結果を受信したことに応答して、前記新たなリソースへのアクセスが可能になる前に前記新たなリソースの機能が自動的に検査されるように、前記新たなリソースへの前記グリッド・ジョブのルーティングを可能にする前に前記結果が予測された結果を満たすかどうかを検査するステップと、
を含む方法。
【請求項２】
グリッド管理システムによって管理されるグリッド環境内の特定の実行環境において新たなリソースを検出するステップは、機能について予めテストされた複数のリソースを含む前記実行環境に追加される前記新たなリソースを検出するステップをさらに含む、特定の実行環境内のリソースを検査するための請求項１に記載の方法。
【請求項３】
グリッド管理システムによって管理されるグリッド環境内の特定の実行環境において新たなリソースを検出するステップは、機能についてテストすることが必要な複数の付加的なリソースを含む前記実行環境に追加される前記新たなリソースを検出するステップをさらに含む、特定の実行環境内のリソースを検査するための請求項１に記載の方法。
【請求項４】
グリッド管理システムによって管理されるグリッド環境内の特定の実行環境において新たなリソースを検出するステップは、欠陥のあるリソースを置換するために前記実行環境に追加される前記新たなリソースを検出するステップをさらに含む、特定の実行環境内のリソースを検査するための請求項１に記載の方法。
【請求項５】
前記グリッド管理システムによって制御されるように前記新たなリソースの少なくとも１つの機能テストを実行するステップは、
テスト・ジョブを前記グリッド管理システムから前記新たなリソースに命令するステップと、
前記テスト・ジョブについてのテスト結果を受信するステップと、
をさらに含む、特定の実行環境内のリソースを検査するための請求項１に記載の方法。
【請求項６】
前記グリッド管理システムによって制御されるように前記新たなリソースの少なくとも１つの機能テストを実行するステップは、
前記新たなリソースをローカルにテストすることを可能にする診断ツールを呼び出すステップと、
少なくとも１つのテスト結果を示すログ・ファイルを前記診断ツールから受信するステップと、
をさらに含む、特定の実行環境内のリソースを検査するための請求項１に記載の方法。
【請求項７】
複数の特定のエラー状態について前記結果を分析するステップと、
前記複数の特定のエラー状態の中から少なくとも１つのエラーを検出したことに応答して、前記少なくとも１つのエラーを解決することを試行するステップと、
前記エラーを解決したことに応答して、前記結果が前記予測された結果を満たすことを検査するステップと、
をさらに含む、特定の実行環境内のリソースを検査するための請求項１に記載の方法。
【請求項８】
前記エラーが解決されないままの状態であることに応答して、前記実行環境における前記新たなリソースを置換するステップをさらに含む、特定の実行環境内のリソースを検査するための請求項７に記載の方法。
【請求項９】
前記グリッド・ジョブをサブミットするクライアントから少なくとも１つのテスト基準を受信するステップと、
前記新たなリソースへの前記グリッド・ジョブのルーティングを可能にしたことに応答して、前記グリッド・ジョブが実行されている間に、前記少なくとも１つのテスト基準を用いて前記少なくとも１つの機能テストを実行するステップと、
をさらに含む、特定の実行環境内のリソースを検査するための請求項７に記載の方法。
【請求項１０】
前記グリッド管理システムは、前記グリッド環境内の複数のグリッド・リソースの複数の実行環境への割り当てを管理する、特定の実行環境内のリソースを検査するための請求項１に記載の方法。
【請求項１１】
グリッド環境にサブミットされるグリッド・ジョブのための特定の実行環境内のリソースを検査するシステムであって、
グリッド管理システムによって管理される複数のグリッド・リソースを含むグリッド環境と、
前記グリッド環境内の前記グリッド管理システムによってサポートされるグリッド・サービスと、
を含み、
前記グリッド・サービスは、
前記グリッド環境内の特定の実行環境において新たなリソースを検出するための手段であって、前記特定の実行環境は、グリッド・ジョブを処理するためにグループ化される複数のグリッド・リソースを含む、手段と、
前記グリッド管理システムによって制御されるように前記新たなリソースの少なくとも１つの機能テストを実行するための手段と、
前記少なくとも１つの機能テストの結果を受信したことに応答して、前記新たなリソースへの前記グリッド・ジョブのルーティングを可能にする前に前記結果が予測された結果を満たすかどうかを検査するための手段と、
を含む、システム。
【請求項１２】
グリッド管理システムによって管理されるグリッド環境内の特定の実行環境において新たなリソースを検出するための前記手段は、機能について予めテストされた複数のリソースを含む前記実行環境に追加される前記新たなリソースを検出するための手段をさらに含む、特定の実行環境内のリソースを検査するための請求項１１に記載のシステム。
【請求項１３】
グリッド管理システムによって管理されるグリッド環境内の特定の実行環境において新たなリソースを検出するための前記手段は、機能についてテストすることが必要な複数の付加的なリソースを含む前記実行環境に追加される前記新たなリソースを検出するための手段をさらに含む、特定の実行環境内のリソースを検査するための請求項１１に記載のシステム。
【請求項１４】
グリッド管理システムによって管理されるグリッド環境内の特定の実行環境において新たなリソースを検出するための前記手段は、欠陥のあるリソースを置換するために前記実行環境に追加される前記新たなリソースを検出するための手段をさらに含む、特定の実行環境内のリソースを検査するための請求項１１に記載のシステム。
【請求項１５】
前記グリッド管理システムによって制御されるように前記新たなリソースの少なくとも１つの機能テストを実行するための前記手段は、
テスト・ジョブを前記グリッド管理システムから前記新たなリソースに命令するための手段と、
前記テスト・ジョブについてのテスト結果を受信するための手段と、
をさらに含む、特定の実行環境内のリソースを検査するための請求項１１に記載のシステム。
【請求項１６】
前記グリッド管理システムによって制御されるように前記新たなリソースの少なくとも１つの機能テストを実行するための前記手段は、
前記新たなリソースをローカルにテストすることを可能にする診断ツールを呼び出すための手段と、
少なくとも１つのテスト結果を示すログ・ファイルを前記診断ツールから受信するための手段と、
をさらに含む、特定の実行環境内のリソースを検査するための請求項１１に記載のシステム。
【請求項１７】
前記グリッド・サービスは、
複数の特定のエラー状態について前記結果を分析するための手段と、
前記複数の特定のエラー状態の中から少なくとも１つのエラーを検出したことに応答して、前記少なくとも１つのエラーを解決することを試行するための手段と、
前記エラーを解決したことに応答して、前記結果が前記予測された結果を満たすことを検査するための手段と、
をさらに含む、特定の実行環境内のリソースを検査するための請求項１１に記載のシステム。
【請求項１８】
前記グリッド・サービスは、前記エラーが解決されないままの状態であることに応答して、前記実行環境における前記新たなリソースを置換するための手段をさらに含む、特定の実行環境内のリソースを検査するための請求項１７に記載のシステム。
【請求項１９】
前記グリッド・サービスは、
前記グリッド・ジョブをサブミットするクライアントから少なくとも１つのテスト基準を受信するための手段と、
前記新たなリソースへの前記グリッド・ジョブのルーティングを可能にしたことに応答して、前記グリッド・ジョブが実行されている間に、前記少なくとも１つのテスト基準を用いて前記少なくとも１つの機能テストを実行するための手段と、
をさらに含む、特定の実行環境内のリソースを検査するための請求項１７に記載のシステム。
【請求項２０】
前記グリッド管理システムは、前記グリッド環境内の複数のグリッド・リソースの複数の実行環境への割り当てを管理する、特定の実行環境内のリソースを検査するための請求項１１に記載のシステム。
【請求項２１】
コンピュータ上で実行されたときに請求項１から請求項１１に記載の方法を前記コンピュータに実現させるように機能するソフトウェア・コード部分を含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、改善されたグリッド・コンピューティングに関し、より具体的には、グリッド環境内のリソースについてのリソース機能の自動検査に関する。さらにより具体的には、本発明は、グリッド環境にサブミットされるグリッド・ジョブのリソースへのルーティングを可能にする前にグリッド・リソース機能を検査し、グリッド・ジョブを処理するリソースの機能が保証されるようにすることに関する。
【背景技術】
【０００２】
２つのコンピュータ・システム間の最初の接続が行われて以来、接続を介して２つのコンピュータ・システム間でデータ、リソース、及び他の情報を転送する新たな方法が開発され続けている。典型的なネットワーク・アーキテクチャにおいては、２つのコンピュータ・システムが接続を介してデータを交換するときには、コンピュータ・システムの一方は、要求を送信するクライアントとみなされ、他方は、その要求を処理して結果を戻すサーバとみなされる。要求が処理される速度を高めるために、サーバ・システムのサイズ及び速度は拡大し続けている。さらに、複数の要求が刻々と到着するピーク時を処理するために、サーバ・システムは多くの場合グループとして結合され、要求はグループ化されたサーバ間で分散される。クラスタリング、多重システム共有データ（シスプレックス）環境、及びエンタープライズ・システムなどの、サーバをグループ化する複数の方法が、開発されてきた。サーバのクラスタでは、１つのサーバが、典型的には、入力する要求と出力する応答の分散を管理するように設定される。その他のサーバは、典型的には、クライアントからの分散された要求を処理するために並列で作動する。従って、クラスタ内の複数のサーバの１つは、サーバのクラスタが要求を処理していることをクライアントが検出することなく、クライアント要求を処理することができる。
【０００３】
典型的には、サーバ又はサーバのグループは、Ｕｎｉｘ又はＵｎｉｘのいくつかのバリエーションなどの特定のネットワーク・プラットフォーム上で作動し、アプリケーションを実行するためのホスティング環境を提供する。各々のネットワーク・プラットフォームは、データベース統合、クラスタリング・サービス、及びセキュリティからワークロード管理及び問題判別までに及ぶ機能を提供することができる。各々のネットワーク・プラットフォームは、典型的には、異なる実装形態、意味行動（semantic behaviors）、及びアプリケーション・プログラミング・インターフェース（ＡＰＩ）を提供する。
【０００４】
しかしながら、処理能力を拡大するためにサーバをまとめてグループ化することは、ネットワークにおける応答時間の効率を改善する限定的な方法にすぎない。従って、次第に、企業ネットワーク内で単にサーバをグループ化するのではなく、サーバ及びサーバ・システムのグループを分散リソースとして編成するようになっている。企業ネットワーク内部と企業ネットワーク外部のサーバ間で、協働し、データを共有し、サイクルを共有し、他のモードの対話を改善するためのさらなる努力が行われている。さらに、本質的ではない要素を１つの企業ネットワークからサービス・プロバイダ・ネットワークにアウトソーシングするためのさらなる努力が行われている。さらに、同じ管理システムを対象とするものではないが、セキュリティ、ポリシー、支払い、及びメンバーシップの問題を扱うリソース間で、共有するリソースを調整する動きがある。例えば、個人のデスクトップ上のリソースは、典型的には、企業のサーバ・クラスタのリソースと同じ管理システムを対象とするものではない。企業ネットワーク内部の異なる管理グループでさえ、別個の管理システムを実装する場合がある。
【０００５】
異なるネットワーク・プラットフォーム上で作動し、異なる地域に設置され、異なるセキュリティ・プロトコルを持ち、各々が異なる管理システムによって制御されるサーバ及び他のコンピュータ・システムから利用可能なリソースを分散することに伴う問題は、グリッド環境を作動させるためのオープン・スタンダードを用いるグリッド技術の開発につながった。グリッド環境は、動的で分散した仮想的な組織において多様なリソースを共用し、その使用を調整することをサポートする。異なるポリシー及び管理システムを持つ異なる組織によって操作される地理的に分散されたシステムからのリソースの選択が、ジョブ要求を処理するために編成されるときに、グリッド環境内に仮想組織（virtual organization）が生成される。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
グリッド環境内でサーバのクラスタ又は他のグループをグループ化することができるが、グリッド技術は、異なる管理システムによって異なる標準で管理されるリソースのグループがグリッド・ジョブを処理する場合には、サービスの質と性能を保証することに関する全ての問題を解決するものではない。具体的には、グリッド技術の特性及び利点は、利用可能なリソースを最適化するために、実行環境とも呼ばれる異なる仮想組織内をリソースが移動することである。いずれかのコンピュータ・システムにジョブをサブミットするクライアントは、グリッド・ジョブを処理するために提供されるリソースが機能するものと期待している。しかしながら、グリッド環境における問題は、新たな実行環境への各々のリソースの再割り当てに伴ってリソースの機能が検査されなくなることである。例えば、ネットワーク・アダプタが新たな実行環境に割り当てられたときには、システム管理者がそのネットワーク・アダプタの接続性を保証するテストを実行しない限り、そのネットワーク・アダプタを用いた接続性が検査されなくなる。グリッド環境においてリソース及びリソース再割り当ての数が増加するにつれて、システム管理者を利用して各々のリソースのテストを手動で選択し実行することは、性能を低下させることになる。
【０００７】
上記を考慮すると、グリッド環境にサブミットされる各々のジョブのサービスの質を保証するために、グリッド・ジョブをリソースにルーティングする前に、実行環境における新たなリソースを検出し、機能について各々のリソースをテストして、リソースの機能を検査することに関するコンピュータ実装方法、システム、及びプログラムの必要性が存在する。
【課題を解決するための手段】
【０００８】
上記の観点から、本発明は、一般に、改善されたグリッド・コンピューティングを提供するものであり、より具体的には、グリッド環境内のリソースについてのリソース機能の自動検査を提供するものである。さらにより具体的には、本発明は、グリッド環境にサブミットされるグリッド・ジョブを実行環境内のリソースにルーティングすることを可能にする前に、実行環境内のリソースを検査し、グリッド・ジョブを処理するリソースの機能が保証されるようにすることに関する。
【０００９】
１つの実施形態においては、新たなリソースが、グリッド管理システムによって管理されるグリッド環境内の特定の実行環境に割り当てられたときに、グリッド検査サービスが、グリッド環境管理システムによって制御されるように新たなリソースの少なくとも１つの機能テストを自動的に選択し、実行する。機能テストの結果に応答して、グリッド検査システムが、新たなリソースへのグリッド・ジョブのルーティングを可能にする前に、結果が予測された結果を満たすかどうかを検査することによって、新たなリソースへのアクセスが可能になる前に新たなリソースの機能が自動的に検査され、グリッド・ジョブを処理する際のサービスの質が維持される。
【００１０】
グリッド管理システムは、機能について予めテストされたリソースの既存の実行環境に新たなリソースが追加されるときに、新たなリソースが特定の実行環境に割り当てられることを検出することができる。さらに、グリッド管理システムは、新たに構築される特定の実行環境に新たなリソースが割り当てられ、従ってその実行環境における全てのリソースが機能についてテストされる必要があることを検出することができる。さらに、グリッド管理システムは、実行環境内の欠陥のあるリソースを置換するために新たなリソースが特定の実行環境に割り当てられることを検出することができる。
【００１１】
新たなリソースの少なくとも１つの機能テストを実行する場合に、テストは、リソースのタイプに応じて選択し、さらに、リソースのクラス又はリソース・ブランドに応じて指定することができる。１つのタイプの機能テストは、テスト・ジョブをグリッド管理システムから新たなリソースに向け、そのテスト・ジョブについてのテスト結果を収集する。別のタイプの機能テストは、新たなリソースをローカルにテストすることを可能にする診断ツールを呼び出し、テスト結果を示すログ・ファイルを受信する。
【００１２】
結果においてエラー状態が検出された場合には、グリッド検査サービスは、エラーを解決することを試行することができる。エラーが解決された場合には、グリッド検査サービスは、新たなリソースの機能を検査する。代替的に、エラーが解決されなかった場合には、グリッド検査サービスはエラーを特定し、グリッド管理システムは、リソースを置換することを試行することができる。
【００１３】
第１の態様から見ると、本発明は、グリッド環境にサブミットされるグリッド・ジョブのための特定の実行環境内のリソースを検査する方法であって、グリッド管理システムによって管理されるグリッド環境内の特定の実行環境において新たなリソースを検出するステップであって、特定の実行環境は、グリッド・ジョブを処理するためにグループ化される複数のグリッド・リソースを含む、ステップと、グリッド管理システムによって制御されるように、新たなリソースの少なくとも１つの機能テストを実行するステップと、少なくとも１つの機能テストの結果を受信したことに応答して、新たなリソースへのアクセスが可能になる前に新たなリソースの機能が自動的に検査されるように、新たなリソースへのグリッド・ジョブのルーティングを可能にする前に結果が予測された結果を満たすかどうかを検査するステップと、を含む方法からなる。
【００１４】
好ましくは、本発明は、特定の実行環境内のリソースを検査するための方法を提供するものであり、グリッド管理システムによって管理されるグリッド環境内の特定の実行環境において新たなリソースを検出するステップは、機能について予めテストされた複数のリソースを含む実行環境に追加される新たなリソースを検出するステップをさらに含む。
【００１５】
好ましくは、本発明は、特定の実行環境内のリソースを検査するための方法を提供するものであり、グリッド管理システムによって管理されるグリッド環境内の特定の実行環境において新たなリソースを検出するステップは、機能についてテストすることが必要な複数の付加的なリソースを含む実行環境に追加される新たなリソースを検出するステップをさらに含む。
【００１６】
好ましくは、本発明は、特定の実行環境内のリソースを検査するための方法を提供するものであり、グリッド管理システムによって管理されるグリッド環境内の特定の実行環境において新たなリソースを検出するステップは、欠陥のあるリソースを置換するために実行環境に追加される新たなリソースを検出するステップをさらに含む。
【００１７】
好ましくは、本発明は、特定の実行環境内のリソースを検査するための方法を提供するものであり、グリッド管理システムによって制御されるように、新たなリソースの少なくとも１つの機能テストを実行するステップは、テスト・ジョブをグリッド管理システムから新たなリソースに向けるステップと、テスト・ジョブについてのテスト結果を受信するステップとをさらに含む。
【００１８】
好ましくは、本発明は、特定の実行環境内のリソースを検査するための方法を含むものであり、グリッド管理システムによって制御されるように、新たなリソースの少なくとも１つの機能テストを実行するステップは、新たなリソースをローカルにテストすることを可能にする診断ツールを呼び出すステップと、少なくとも１つのテスト結果を示すログ・ファイルを診断ツールから受信するステップとをさらに含む。
【００１９】
好ましくは、本発明は、特定の実行環境内のリソースを検査するための方法を提供するものであり、複数の特定のエラー状態について結果を分析するステップと、複数の特定のエラー状態の中から少なくとも１つのエラーを検出したことに応答して、少なくとも１つのエラーを解決することを試行するステップと、エラーを解決したことに応答して、結果が予測された結果を満たすことを検査するステップとをさらに含む。
【００２０】
好ましくは、本発明は、特定の実行環境内のリソースを検査するための方法を提供するものであり、エラーが解決されないままの状態であることに応答して、実行環境において新たなリソースを置換するステップをさらに含む。
【００２１】
好ましくは、本発明は、特定の実行環境内のリソースを検査するための方法を提供するものであり、グリッド・ジョブをサブミットするクライアントから少なくとも１つのテスト基準を受信するステップと、新たなリソースへのグリッド・ジョブのルーティングを可能にしたことに応答して、グリッド・ジョブが実行されている間に、少なくとも１つのテスト基準を用いて少なくとも１つの機能テストを実行するステップとをさらに含む。
【００２２】
好ましくは、本発明は、特定の実行環境内のリソースを検査するための方法を含むものであり、グリッド管理システムは、グリッド環境内の複数のグリッド・リソースの複数の実行環境への割り当てを管理する。
【００２３】
第２の態様から見ると、本発明は、グリッド環境にサブミットされるグリッド・ジョブのための特定の実行環境内のリソースを検査するシステムであって、グリッド管理システムによって管理される複数のグリッド・リソースを含むグリッド環境と、グリッド環境内のグリッド管理システムによってサポートされるグリッド・サービスとを含み、グリッド・サービスは、グリッド環境内の特定の実行環境において新たなリソースを検出するための手段であって、特定の実行環境は、グリッド・ジョブを処理するためにグループ化される複数のグリッド・リソースを含む、手段と、グリッド管理システムによって制御されるように、新たなリソースの少なくとも１つの機能テストを実行するための手段と、少なくとも１つの機能テストの結果を受信したことに応答して、新たなリソースへのグリッド・ジョブのルーティングを可能にする前に結果が予測された結果を満たすかどうかを検査するための手段と、を含むシステムからなる。
【００２４】
好ましくは、本発明は、特定の実行環境内のリソースを検査するためのシステムを提供するものであり、グリッド管理システムによって管理されるグリッド環境内の特定の実行環境において新たなリソースを検出するための手段は、機能について予めテストされた複数のリソースを含む実行環境に追加される新たなリソースを検出するための手段をさらに含む。
【００２５】
好ましくは、本発明は、特定の実行環境内のリソースを検査するためのシステムを提供するものであり、グリッド管理システムによって管理されるグリッド環境内の特定の実行環境において新たなリソースを検出するための手段は、機能についてテストすることが必要な複数の付加的なリソースを含む実行環境に追加される新たなリソースを検出するための手段をさらに含む。
【００２６】
好ましくは、本発明は、特定の実行環境内のリソースを検査するためのシステムを提供するものであり、グリッド管理システムによって管理されるグリッド環境内の特定の実行環境において新たなリソースを検出するための手段は、欠陥のあるリソースを置換するために実行環境に追加される新たなリソースを検出するための手段をさらに含む。
【００２７】
好ましくは、本発明は、特定の実行環境内のリソースを検査するためのシステムを提供するものであり、グリッド管理システムによって制御されるように、新たなリソースの少なくとも１つの機能テストを実行するための手段は、テスト・ジョブをグリッド管理システムから新たなリソースに向けるための手段と、テスト・ジョブについてのテスト結果を受信するための手段とをさらに含む。
【００２８】
好ましくは、本発明は、特定の実行環境内のリソースを検査するためのシステムを提供するものであり、グリッド管理システムによって制御されるように、新たなリソースの少なくとも１つの機能テストを実行するための手段は、新たなリソースをローカルにテストすることを可能にする診断ツールを呼び出すための手段と、少なくとも１つのテスト結果を示すログ・ファイルを診断ツールから受信するための手段とをさらに含む。
【００２９】
好ましくは、本発明は、特定の実行環境内のリソースを検査するためのシステムを提供するものであり、グリッド・サービスは、複数の特定のエラー状態について結果を分析するための手段と、複数の特定のエラー状態の中から少なくとも１つのエラーを検出したことに応答して、少なくとも１つのエラーを解決することを試行するための手段と、エラーを解決したことに応答して、結果が予測された結果を満たすことを検査するための手段とをさらに含む。
【００３０】
好ましくは、本発明は、特定の実行環境内のリソースを検査するためのシステムを含むものであり、グリッド・サービスは、エラーが解決されないままの状態であることに応答して、実行環境における新たなリソースを置換するための手段をさらに含む。
【００３１】
好ましくは、本発明は、特定の実行環境内のリソースを検査するためのシステムを含むものであり、グリッド・サービスは、グリッド・ジョブをサブミットするクライアントから少なくとも１つのテスト基準を受信するための手段と、新たなリソースへのグリッド・ジョブのルーティングを可能にしたことに応答して、グリッド・ジョブが実行されている間に、少なくとも１つのテスト基準を用いて少なくとも１つの機能テストを実行するための手段とをさらに含む。
【００３２】
好ましくは、本発明は、特定の実行環境内のリソースを検査するためのシステムを含むものであり、グリッド管理システムは、グリッド環境内の複数のグリッド・リソースの複数の実行環境への割り当てを管理する。
【００３３】
第３の態様から見ると、本発明は、コンピュータ上で実行されたときに上述の発明を実現するように機能するソフトウェア・コード部分を含む、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラム製品を含む。
【発明を実施するための最良の形態】
【００３４】
本発明の実施形態は、添付図面を参照して、例示のみの目的で以下に詳細に説明される。
【００３５】
ここで図面、特に図１を参照すると、グリッド環境に実装することができ、かつ、本発明を実装することができる、コンピュータ・システムの１つの実施形態が示される。さらに説明されるように、グリッド環境は、リソースを提供するように管理される複数のコンピュータ・システムを含む。また、さらに説明されるように、本発明は、グリッド環境内で管理される多くの異なるオペレーティング・システムの下で作動する様々なコンピューティング・システム、モバイル・システム、及び電子装置を含む様々なコンピュータ・システムにおいて、実行することができる。
【００３６】
１つの実施形態においては、コンピュータ・システム１００は、コンピュータ・システム１００内部で情報を通信するためのバス１２２又は他の装置と、情報を処理するためにバス１２２に結合される、プロセッサ１１２などの少なくとも１つの処理装置とを含む。バス１２２は、ブリッジ及びアダプタによって接続され、多数のバス・コントローラによってコンピュータ・システム１００内部で制御される、低遅延パスと、遅延時間がより長いパスとを含むことができる。サーバ・システムとして実装されるときには、コンピュータ・システム１００は、典型的に、ネットワークのサービス力を改善するように設計された複数のプロセッサを含む。
【００３７】
プロセッサ１１２は、通常の作動中には、ランダム・アクセス・メモリ（ＲＡＭ）１１４などの動的ストレージ装置及び読み取り専用メモリ（ＲＯＭ）１１６などの静的ストレージ装置からアクセス可能なオペレーティング・システム及びアプリケーション・ソフトウェアの制御下でデータを処理する、ＩＢＭのＰｏｗｅｒＰＣ（商標）プロセッサなどの汎用プロセッサとすることができる。オペレーティング・システムは、グラフィカル・ユーザ・インターフェース（ＧＵＩ）をユーザに提供することができる。１つの実施形態においては、アプリケーション・ソフトウェアは、プロセッサ１１２上で実行されたときに、図８及び図９のフローチャートに示される動作と本明細書において説明される他の動作とを実現する機械実行可能命令を含む。代替的に、本発明のステップは、該ステップを行うための配線論理回路を含む特定のハードウェア・コンポーネントによって、又は、プログラムされたコンピュータ・コンポーネントとカスタム・ハードウェア・コンポーネントとのいずれかの組み合わせによって、行うことができる。
【００３８】
本発明は、本発明に従って処理を行うようにコンピュータ・システム１００をプログラムするのに用いられる機械実行可能命令が格納された、機械可読媒体上に含まれるコンピュータ・プログラム製品として提供することができる。本明細書において用いられる「機械可読媒体」という用語は、実行するためにコンピュータ・システム１００のプロセッサ１１２又は他のコンポーネントに命令を与えることに関わるいずれかの媒体を含む。このような媒体は、不揮発性媒体、揮発性媒体、及び伝送媒体を含むがこれらに限定されない、多くの形態を取ることができる。不揮発性媒体の一般的な形態は、例えば、フロッピー（商標）ディスク、フレキシブル・ディスク、ハード・ディスク、磁気テープ又は他のいずれかの磁気媒体、コンパクト・ディスクＲＯＭ（ＣＤ−ＲＯＭ）又は他のいずれかの光媒体、パンチ・カード又は穴のパターンを持つ他のいずれかの物理媒体、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的ＥＰＲＯＭ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、他のいずれかのメモリ・チップ又はカートリッジ、あるいは、コンピュータ・システム１００が読み取ることが可能で、命令を格納するのに適した他のいずれかの媒体を含む。本実施形態においては、不揮発性媒体の例は、図示されるようにコンピュータ・システム１００の内部コンポーネントである大容量ストレージ装置１１８であるが、外部装置によって提供されることも分かるであろう。揮発性媒体は、ＲＡＭ１１４などの動的メモリを含む。伝送媒体は、バス１２２からなる配線を含む、同軸ケーブル、銅線、又は光ファイバを含む。伝送媒体は、無線周波数通信又は赤外線データ通信の際に生成されるような音波又は光波の形態を取ることもできる。
【００３９】
さらに、本発明は、コンピュータ・プログラム製品としてダウンロードすることができ、プログラム命令は、バス１２２に結合された通信インターフェース１３２へのネットワーク・リンク１３４（例えば、モデム又はネットワーク接続）を介して、搬送波又は他の伝搬媒体に組み込まれたデータ信号によって、仮想リソース１６０などの遠隔仮想リソースから、要求しているコンピュータ・システム１００に転送することができる。仮想リソース１６０は、単一のシステム又は複数のシステムからアクセス可能なリソースの仮想表現を含むものとすることができ、ここで複数のシステムの各々は、独立したプラットフォーム上で作動するリソースの別個の組と考えられるが、グリッド・マネージャによって仮想リソースとして連携される。通信インターフェース１３２は、例えばローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、又は、ネットワーク１０２へのアクセスを提供するインターネット・サービス・プロバイダ（ＩＳＰ）に接続できるネットワーク・リンク１３４に結合する双方向データ通信を提供する。具体的には、ネットワーク・リンク１３４は、有線ネットワーク通信及び／又は無線ネットワーク通信を、ネットワーク１０２などの１つ又は複数のネットワークに提供することができ、これによって、グリッド環境１５０内に提供される仮想リソース１６０などの仮想リソースの使用が可能となる。グリッド環境１５０は、ピアツーピア・ネットワークを含む多くのタイプのネットワークの一部とするか、又は、コンピュータ・システム１００などの単一コンピュータ・システムの一部とすることができる。
【００４０】
１つの例として、ネットワーク１２０は、伝送制御プロトコル（ＴＣＰ）及びインターネット・プロトコル（ＩＰ）などの特定のプロトコルを用いて互いに通信するネットワーク及びゲートウェイの世界的に広がる集まりを指すものとする。ネットワーク１０２は、デジタル・データ・ストリームを搬送する電気信号、電磁信号、又は光信号を用いる。コンピュータ・システム１００との間でデジタル・データを搬送する、種々のネットワークを通る信号並びにネットワーク・リンク１３４上の信号及び通信インターフェース１３２を通る信号は、情報を運ぶ搬送波の例示的な形態である。代替的なタイプのネットワーク、ネットワークの組み合わせ、及びネットワークのインフラストラクチャを実装できることが分かるであろう。
【００４１】
サーバ・システムとして実装されるときには、コンピュータ・システム１００は、典型的には、入出力コントローラに接続される複数の周辺コンポーネント相互接続（ＰＣＩ）バス・ブリッジを介してアクセス可能な複数の通信インターフェースを含む。このようにして、コンピュータ・システム１００は、複数のネットワーク・コンピュータへの接続を可能にする。
【００４２】
さらに、図示されていないが、バス１２２の多くのレベルの１つに結合される複数のコントローラ、アダプタ、及び拡張スロットに接続される複数の周辺コンポーネント及び内部／外部装置をコンピュータ・システム１００に追加することができる。周辺コンポーネントとして、例えば、ディスプレイ装置、オーディオ装置、キーボード、又はカーソル制御装置を追加することができる。
【００４３】
当業者であれば、図１に示されるハードウェアを変更できることが分かるであろう。さらに、当業者であれば、図示される例は本発明に関してアーキテクチャ上の制限を示すことを意味するものではないことが分かるであろう。
【００４４】
ここで図２を参照すると、ブロック図が、グリッド環境内の一般的なタイプのコンポーネントの１つの実施形態を示す。この例では、グリッド環境１５０のコンポーネントは、グリッド管理システム２４０とインターフェース接続されるクライアント・システム２００を含み、グリッド管理システム２４０は、サーバ・クラスタ２２２、サーバ２２４、ワークステーション及びデスクトップ２２６、データ・ストレージ・システム２２８、及びネットワーク２３０とインターフェース接続される。例示を目的とするため、グリッド環境１５０内のコンポーネントに接続するネットワークのネットワーク・ロケーション及びタイプは図示されない。しかしながら、グリッド環境１５０内のコンポーネントは、互いにオーバーラップする複数のタイプのネットワークで実装できるネットワーク・インフラストラクチャ・アーキテクチャ上に常駐できることが分かるであろう。ネットワーク・インフラストラクチャは、複数の巨大なエンタープライズ・システムから、ピアツーピア・システム又は単一コンピュータ・システムにまで及ぶ。さらに、グリッド環境１５０内のコンポーネントは、グリッド環境内のコンポーネントのタイプを表すものに過ぎないことが分かるであろう。グリッド環境は、単に単一コンピュータ・システム内に含まれるものとするか、又は、複数のエンタープライズ・システムを含むものとすることができる。さらに、グリッド・ベンダーが、グリッド環境１５０を提供することができ、グリッド・ベンダーは、例えば、グリッド・ジョブを実行するのに必要な時間、又は、使用される実際のリソース量に基づいて、グリッド環境１５０内のリソースを使用するための費用を計算できることが分かるであろう。
【００４５】
グリッド環境１５０などのグリッド環境の重要な目的は、仮想リソース１６０とみなされる複数の別個のシステムからリソースを編成し、引き渡すことである。クライアント・システム２００、サーバ・クラスタ２２２、サーバ２２４、ワークステーション及びデスクトップ２２６、データ・ストレージ・システム２２８、ネットワーク２３０、及び、グリッド管理システム２４０を作るシステムは、独立した管理システムを用いて異種の局所的に分散させたものとすることができるが、グリッド管理システム２４０によって有効にされるグリッド・インフラストラクチャを通して、情報、リソース、及びサービスを交換することができるようになる。さらに、サーバ・クラスタ２２２、サーバ２２４、ワークステーション及びデスクトップ２２６、データ・ストレージ・システム２２８、及びネットワーク２３０は、国及び大陸にわたって地理的に分散させるか、又は互いにローカルにアクセス可能にすることができる。仮想リソース１６０内でグリッド・リソースを発見するための機構はここでは図示されないが、クライアント・システム２００は、グリッド環境１５０内で利用可能なローカル・ディレクトリ及びグローバル・ディレクトリから通知されたときに、仮想リソース１６０内のリソースを発見できることが分かるであろう。
【００４６】
この例においては、クライアント・システム２００は、グリッド管理システム２４０とインターフェース接続される。クライアント・システム２００は、要求をグリッド管理システム２４０に送信するいずれかのコンピューティング・システムを表すものとすることができる。具体的には、クライアント・システム２００は、仮想ジョブ要求及びジョブをグリッド管理システム２４０に送信することができ、グリッド管理システム２４０は、グリッド・オファによって応答し、グリッド・ジョブの処理を制御することができる。さらに、本実施形態においては、クライアント・システム２００は、要求によってグリッド環境１５０にアクセスするように示されるが、代替的な実施形態においては、クライアント・システム２００は、グリッド環境１５０内で作動することもできる。
【００４７】
仮想リソース１６０内のシステムは並列に図示されているが、実際には、システムは、システムの階層の一部とすることができ、その場合には、仮想リソース１６０内のいくつかのシステムをクライアント・システム２００に対してローカルなものとし、一方、他のシステムを外部ネットワークへのアクセスが必要なものとすることができる。さらに、クライアント・システム２００は、仮想リソース１６０内に図示されるシステムを物理的に含むものとすることができることに留意することが重要である。さらに、仮想リソース１６０内のシステムは、リソース・ノード及び実行環境の中で割り当てることができ、この場合には、リソース・ノードは、特定のグリッド機能を行うことを可能にしたリソースのグループであり、実行環境は、特定のグリッド・ジョブを処理することを可能にしたリソース及びリソース・ノードのグループである。
【００４８】
グリッド環境１５０を実装するため、グリッド管理システム２４０はグリッド・サービスを容易にする。グリッド・サービスは、オープン・グリッド・サービス・アーキテクチャ（ＯＧＳＡ）を含むがこれに限定されない複数のアーキテクチャに従って、設計することができる。具体的には、グリッド管理システム２４０は、グリッド・サービスを通したリソースの共有によって特徴付けられる異種ネットワーク環境にコンピューティング・システムをリンクすることによってグリッドを生成する管理環境を参照する。
【００４９】
１つの例においては、さらに詳細に説明されるように、グリッド管理システム２４０は、リソース及びリソース・ノードを入力グリッド・ジョブに適した実行環境に割り当て、グリッド・ジョブの性能を保証するように実行環境内のリソース及びリソース・ノードを管理する、グリッド・サービスを含むことができる。さらに、グリッド管理システムは、割り当てられたリソースにグリッド・ジョブがルーティングされる前に、実行環境に割り当てられたグリッド・リソースを最初にテストして検査する、グリッド・サービスを含むことができる。エラーが検出された場合には、グリッド・サービスは、エラーを解決するか、又は、リソースを置換することを試行する。
【００５０】
ここで図３を参照すると、ブロック図が、グリッド環境に実装することができるアーキテクチャの１つの例を示す。図示されるように、アーキテクチャ３００は、複数の機能の層を含む。さらに説明されるように、本発明は、図２において説明されるグリッド環境などのグリッド環境に実装される、アーキテクチャ３００などのアーキテクチャの１つ又は複数の層において実行することができる処理である。アーキテクチャ３００は、グリッド環境において実装することができ、本発明を実行することができるアーキテクチャの単なる１つの例であることに留意することが重要である。さらに、複数のアーキテクチャをグリッド環境内に実装できることに留意することが重要である。
【００５１】
アーキテクチャ３００の層の内部では、まず、物理及び論理リソース層３３０がグリッド内のシステムのリソースを編成する。物理リソースは、サーバ、ストレージ媒体、及びネットワークを含むが、これらに限定されるものではない。論理リソースは、物理層を、オペレーティング・システム、処理能力、メモリ、Ｉ／Ｏ処理、ファイル・システム、データベース・マネージャ、ディレクトリ、メモリ・マネージャ、及び他のリソースなどの利用可能なリソースに仮想化し、集約する。
【００５２】
次に、ウェブ・サービス層３２０が、グリッド・サービス３１０と、物理及び論理リソース３３０との間のインターフェースを提供する。ウェブ・サービス層３２０は、インターネット・プロトコル（ＩＰ）又は他のネットワーク転送層上で実行されるウェブ・サービス記述言語（ＷＳＤＬ）、シンプル・オブジェクト・アクセス・プロトコル（ＳＯＡＰ）、及び拡張可能マークアップ言語（ＸＭＬ）を含むがこれらに制限されるものではない、サービス・インターフェースを実装する。さらに、オープン・グリッド・サービス・インフラストラクチャ（ＯＳＧＩ）標準３２２は、グリッドのリソースをモデル化するのに必要な動的かつ管理可能なウェブ・サービスの機能を与えるようにウェブ・サービス３２０を拡張することによって、現在のウェブ・サービス３２０の上に構築する。具体的には、ＯＧＳＩ標準３２２をウェブ・サービス３２０に実装することによって、ＯＧＳＡを用いて設計されるグリッド・サービス３１０が相互運用可能である。代替的な実施形態においては、ウェブ・サービス層３２０の上に他のインフラストラクチャ又は付加的なインフラストラクチャを実装することができる。
【００５３】
グリッド・サービス層３１０は、グリッド管理システム２４０に組み入れることができる複数のサービスを含む。例えば、グリッド・サービス層３１０は、ＯＧＳＡを用いて設計されるグリッド・サービスを含むことができるため、グリッド・サービスを生成するのにあたって一定の基準が満たされる。代替的に、グリッド・サービスは、複数のアーキテクチャの下で設計することができる。グリッド・サービスは、４つの主要な機能にグループ化することができる。しかしながら、グリッド・サービスによって他の機能を実行できることが分かるであろう。
【００５４】
第１に、リソース管理サービス３０２が、物理リソース及び論理リソースの使用を管理する。リソースは、処理リソース、メモリ・リソース、及び、ストレージ・リソースを含むことができるが、これらに限定されるものではない。これらのリソースの管理は、ジョブをスケジュールすること、ジョブを分散すること、及び、ジョブの結果の取得を管理することを含む。リソース管理サービス３０２は、リソース負荷を監視し、グリッドのあまり混雑していない部分にジョブを分散して、リソース負荷のバランスを取り、予期しない作業ピークを吸収する。具体的には、リソース管理サービス３０２が、ジョブを分散してグリッド内の好ましい性能レベルを維持するように、ユーザが、好ましい性能レベルを指定することができる。
【００５５】
第２に、情報サービス３０４が、グリッド内のコンピューティング・システム間の情報転送及び通信を管理する。複数の通信プロトコルを実装することができるため、情報サービス３０４は、複数のタイプの通信プロトコルを利用して、複数のネットワークにわたる通信を管理する。
【００５６】
第３に、データ管理サービス３０６が、グリッド内のデータ転送及びストレージを管理する。具体的には、データ管理サービス３０６は、データを必要とするジョブが実行されるグリッド内のノードに、データを移動することができる。グリッド・ファイル転送プロトコル（ＧｒｉｄＦＴＰ）などの特定のタイプの転送プロトコルを実装することができる。
【００５７】
最後に、セキュリティ・サービス３０８が、グリッド内で作動するシステムの各々の接続層におけるセキュリティのために、セキュリティ・プロトコルを適用する。セキュリティ・サービス３０８は、安全な伝送を提供するために、オープン・セキュア・ソケット層（ＳＳＬ）などのセキュリティ・プロトコルを実装することができる。さらに、セキュリティ・サービス３０８は、シングル・サインオン機構を提供することができ、ユーザが一度認証されると、プロキシ証明書が生成され、ユーザがグリッド内で作業を行うときに用いられる。
【００５８】
複数のサービスは、グリッド・コンピューティング・システムのいくつかの主要機能を提供するように協調することができる。第１の例として、計算タスクがグリッド内に分散される。データ管理サービス３０６は、計算タスクを、次にリソース管理サービス３０２によって分散され管理されるデータのパケットの個別のグリッド・サービス要求に分割することができる。結果は、データ管理サービス３０６によって収集され、統合される。第２の例として、グリッド内の複数のコンピューティング・システムにわたるストレージ・リソースは、データ管理サービス３０６によって管理され、リソース管理サービス３０２によって監視される、単一の仮想的なデータ・ストレージ・システムと考えられる。
【００５９】
アプリケーション層３４０は、グリッド・サービス層３１０において利用可能な１つ又は複数のグリッド・サービスを用いるアプリケーションを含む。利点として、アプリケーションは、グリッド・サービス層３１０及びウェブ・サービス３２０を介して物理及び論理リソース３３０とインターフェース接続し、その結果、複数の異種システムは、対話して相互作動することができる。
【００６０】
ここで図４を参照すると、本発明の方法、システム、及びプログラムに係る、グリッド環境内の複数の実行環境を管理するグリッド管理システムの例のブロック図が示される。図示されるように、グリッド管理システム（ＧＭＳ）２４０は、複数の実行環境４０２及び４１０を管理する。この例においては、実行環境４０２及び４１０の各々は、特定のグリッド・ジョブ又はグリッド・ジョブのバッチを処理するために割り当てられる複数のリソースを含む。ＧＭＳ２４０は、ＧＭＳ２４０の機能を提供する複数のインスタンスを物理的に含むことができることが分かるであろう。さらに、ＧＭＳ２４０は、グリッド環境１５０内の複数の物理システムにわたって分散することができ、複数のグリッド・サービスを組み込むことができる。
【００６１】
１つの実施形態によれば、ＧＭＳ２４０は、グリッド・ジョブを処理し、特定のレベルのサービスの質をグリッド・ジョブに与えることができる、グリッド・ソースの実行環境を構築する。ＧＭＳ２４０は、特定の実行環境に予め含まれていなかったすべての新たなリソースの実行環境を構築することができる。さらに、ＧＭＳ２４０は、実行環境を構築し、次いで、付加的なリソースが必要とされるか、又は欠陥のあるリソースの置換が必要なときに、新たなリソースを追加することができる。さらに、実行環境が、各々のグリッド・ジョブの性能及び他の要件について合意された仕様を満足する限り、ＧＭＳ２４０は、複数の異なるクライアントからの複数のグリッド・ジョブのために実行環境を再使用することができる。
【００６２】
実行環境内では、グリッド・インフラストラクチャを介してＧＭＳ２４０とインターフェース接続するローカル管理システムによって、各々のリソースを制御することができる。さらに、実行環境内では、クラスタ内でグループ化される複数のサーバ・システム間の負荷を管理するクラスタ・ベースの管理システムのようなハードウェア・レベルの管理システムによって、リソースのグループを制御することができる。例示の目的で図示される構成に加えて、リソースの付加的な構成が本発明を実装できることが分かるであろう。
【００６３】
１つの例において、実行環境４０２は、個々に見るとハードウェア・プラットフォーム４０４、ネットワーク・アダプタ４０６、及びオペレーティング・システム・ソフトウェア４０８を含む複数のグリッド・リソースを含む。これらの個々のリソースは、物理的に異なる複数の場所の間で分散することができる。さらに、これらの個々のリソースは、クラスタ管理ツールによって管理されるサーバ・システムのクラスタの一部とすることができる。
【００６４】
ＧＭＳ２４０は、実行環境４１０を管理することもできる。実行環境４１０は、ハードウェア・プラットフォーム４１２、ネットワーク・アダプタ４１４、及びオペレーティング・システム・ソフトウェア４１６を含む。さらに、ＧＭＳ２４０は、ハードウェア・プラットフォーム４０４を実行環境４０２から実行環境４１０に移動させる。
【００６５】
本発明の利点を説明すると、ＧＭＳ２４０がハードウェア・プラットフォーム４０４を実行環境４１０に割り当てるときには、ハードウェア・プラットフォーム４０４は、実行環境４１０にルーティングされるいずれかのグリッド・ジョブをハードウェア・プラットフォーム４０４上で実行することを可能にする前に、機能について検査をすることが必要な新たなリソースと考えられる。１つの例においては、ＧＭＳ２０４は、オペレーティング・システム・ソフトウェア４１６のハードウェア・テスト診断ツール４３０を呼び出して、ハードウェア・テスト診断ツール４３０がハードウェア・プラットフォーム４０４の機能の診断テストを行うことを要求する。さらに、ハードウェア・プラットフォーム４０４上で実行されるオペレーティング・システム・リソースを呼び出して、診断テストを行うことができる。ハードウェア・テスト診断ツール４３０は、テスト中に発見されたいずれかのエラーを示すログ・ファイルを戻すことができる。別の例においては、ＧＭＳ２４０は、テスト式又はテスト動作をハードウェア・プラットフォーム４０４に向け、予測される結果と比較することが可能なテスト結果を受信して、いずれかの機能エラーが存在するかどうかを判断することができる。機能エラーが検出された場合には、ＧＭＳ２４０は、新たなリソースを除去して、実行環境４１０内のリソースを置換することを試行することができる。
【００６６】
この例においては、ハードウェア・テスト診断ツール４３０は、ＧＭＳ２４０によって行われるテスト・ジョブからではなく、リソース・レベルで機能テストを行うために呼び出すことができるローカルな又は固有の診断ツールの例として示される。各々のタイプのリソースは、リソース・レベルで機能テストを行うために呼び出すことができる、ローカルな、固有の、又はオンボードの診断ツール又はコマンドを含むことができることが分かるであろう。さらに、オペレーティング・システム又はアプリケーション・ソフトウェアは、リソース・レベルで他のリソースの機能テストを行うために呼び出すことができる診断ツール又はコマンドを含むことができることが分かるであろう。
【００６７】
ここで図５を参照すると、本発明の方法、システム、及びプログラムに係る、グリッド環境を管理するためのグリッド管理システムのブロック図が示される。この例においては、ＧＭＳ２４０は、グリッド・サービスを提供し、グリッド環境１５０全体にわたるアクセスのためのデータを格納する、複数のグリッド・モジュールを含む。ＧＭＳ２４０に記載されるグリッド・モジュールは、グリッド環境１５０内の複数のグリッド・マネージャ間に分散することができ、リソース・レベルの管理ツールと対話できることに留意することが重要である。
【００６８】
図示されるように、ＧＭＳ２４０は、入力ジョブを検出し、グリッド環境１５０内における入力ジョブの実行をスケジュールするためのグリッド・スケジューラ５０１を含む。具体的には、グリッド・スケジューラ５０１は、入力グリッド・ジョブを検出したときには、入力グリッド・ジョブをグリッド割り当てサービス５０２に渡す。
【００６９】
グリッド割り当てサービス５０２は、実行環境内のリソースの割り当てを制御する。グリッド割り当てサービス５０２は、利用可能な実行環境を維持し、リソースを実行環境間で移動させ、新たな実行環境を構築することができる。１つの実施形態においては、グリッド割り当てサービス５０２は、ジョブのタイプをサポートするのに必要なリソースのリソース・ノードを構築し、次いでリソース・ノード全体を実行環境間で移動させることができる。例えば、グリッド割り当てサービス５０２は、データベースをベースとするジョブをサポートするのに必要なハードウェア・プラットフォーム、オペレーティング・システム・リソース、ネットワーク・コネクタ・リソース、ストレージ・サブシステム、及び、アプリケーション・ソフトウェアを持つリソース・ノードを構築することができる。さらに、グリッド割り当てサービス５０２は、外部のグリッド環境からの付加的なリソースのアクセスを制御するために、他のグリッド環境のグリッド管理システムと通信することができる。
【００７０】
グリッド割り当てサービス５０２が実行環境内の新たなリソースを割り当てるときには、グリッド割り当てサービス５０２は、ジョブ・ルータ５０４がグリッド・ジョブを新たなリソースにルーティングすることを可能にする前にグリッド検査サービス５０６を呼び出すことができる。別の実施形態においては、グリッド割り当てサービス５０２は、現在のグリッド・ジョブの終了時であるが新たなリソースを新たな実行環境に割り当てる前にリソースをテストするために、グリッド検査サービス５０６を呼び出すことができる。さらに、別の実施形態においては、グリッド検査サービス５０６は、グリッド・ジョブが実行環境内で開始した後に、リソースをテストして検査し続けることができ、特に、クライアントが提供したテスト基準を用いて、リソースをテストし検査することができる。
【００７１】
グリッド検査サービス５０６は、機能を検査するために新たなリソースに関してどのテストが実行されるべきかを判断し、新たなリソースのテストを実行し、テスト結果を分析する。グリッド検査サービス５０６は、新たなリソースの検査された機能か又は新たなリソース内の解決されないエラー状態のいずれかを示すレポートを、グリッド割り当てサービス５０２に戻す。
【００７２】
１つの実施形態によれば、グリッド検査サービス５０６が新たなリソースの機能のエラーを検出した場合には、グリッド検査サービス５０６は、エラー解決についての要求を持つグリッド劣化防止サービス５０８を呼び出す。グリッド劣化防止サービス５０８は、新たなリソースに対してローカルなエラー解決ツールと通信することによって、又は、エラー解決ルーチンを実行することによって、新たなリソースのエラーを解決することを試行することができる。１つの例においては、グリッド検査サービス５０６が、ＣＰＵの平均使用率が９０％より大きいことを検出した場合には、９０％より大きいＣＰＵ平均使用率はエラーであると考えられるため、グリッド検査サービス５０６はグリッド劣化防止サービス５０８を呼び出すことができる。次いで、グリッド劣化防止サービス５０８は、性能のさらなる低下を防止するために、別のＣＰＵを有効にするか、又は別の論理パーティションをアクティブにすることができる。
【００７３】
エラーを検出するテストを行うことに加えて、グリッド検査サービス５０６は、グリッド・エラー監視サービス５１０からエラー・インジケータを受信することができる。グリッド・エラー監視サービス５１０は、環境においてエラーを示すことがある状態について、グリッド環境１５０内の各々の実行環境を監視する。グリッド・エラー監視サービス５１０によって報告されるエラーは、エラー・メッセージ又はエラー・ログの形態とすることができる。
【００７４】
本明細書において説明されるサービスは、グリッド・ジョブのための自動的な処理を行うが、グリッド管理システム２４０の一部として説明されるグリッド・サービスのいずれも、人の介入を通してシステム管理者によって行うことができることが分かるであろう。さらに、グリッド管理システム２４０は、グリッド環境１５０全体の効率、及び、個々のグリッド・ジョブを処理する際のグリッド管理システム２４０の効率を改善するために、付加的なグリッド・サービス、ジョブ・キュー、及びストレージ・システムを含むことができることが分かるであろう。
【００７５】
ここで図６を参照すると、本発明の方法、システム、及びプログラムに係る、グリッド検査サービスのコンポーネントの例のブロック図が示される。図示されるように、グリッド検査サービス５０６は、テスト・コントローラ６０２を含む。テスト・コントローラ６０２は、新たなリソースが実行環境に加えられるときに開始される。さらに、テスト・コントローラ６０２は、グリッド環境内の他のイベントに応答して開始できることが分かるであろう。
【００７６】
テスト・コントローラ６０２が開始されるときに、テスト・コントローラ６０２は、新たなリソースに対して適用可能なテストに関する利用可能テスト・テーブル６０４を検索する。図７を参照してさらに説明されるように、利用可能テスト・テーブル６０４は、リソースのタイプに応じた、さらにリソースのクラスによって指定される、テストを含む。さらに、利用可能テスト・テーブル６０４は、ローカル・リソース・テストを呼び出すテストと、テスト・コントローラ６０２によって実行されるテスト・ジョブとの両方を含む。利用可能テスト・テーブル６０４にアクセスすることに加えて、テスト・コントローラ６０２は、新たなリソースが自己検査することを可能にするように呼び出すことができるローカル診断ツールをリソースが含むかどうかを判断するために、新たなリソースに照会することができる。
【００７７】
テスト・コントローラ６０２は、テスト結果をテスト結果テーブル６０６に収集する。テスト結果テーブル６０６は、新たなリソースに応じて編成される、ログ・ファイル・データと直接テスト結果の両方を含むことができる。
【００７８】
テスト・コントローラ６０２が新たなリソースのテストを終了すると、エラー検出器６１０が、エラーについてテスト結果テーブル６０６を分析する。具体的には、エラー検出器６１０は、エラー状態についてログ・ファイルを検索することができる。さらに、エラー検出器６１０は、テスト・コントローラ６０２によって行われたテストによるテスト結果と、予測される結果とを比較し、結果が予測と一致しないエラーを検出することができる。
【００７９】
次いで、エラー検出器６１０は、検出されたエラーにどのように応答するかを判断するときに、許容可能エラー・テーブル６０８にアクセスする。許容可能エラー・テーブル６０８は、特定の実行環境内又はグリッド環境内の許容可能なエラーについての状態を含む。例えば、テストされたディスク・サブシステムについてのログ・ファイルは、不良ブロックの再割り当てを示すことができるが、ディスク・サブシステム上の不良ブロックの再割り当ては、ディスク・コントローラの通常の機能として、許容可能エラー・テーブル６０８に指定される。
【００８０】
エラー検出器６１０は、検出されたエラーを解決することを試行する要求を持つグリッド劣化防止サービス５０８を呼び出すことができる。１つの例においては、グリッド劣化防止サービス５０８は、検出されたエラーを解決することができ、エラー解決レポートをエラー検出器６１０に戻す。別の例においては、グリッド劣化防止サービス５０８は、検出されたエラーを解決することができず、エラーが解決されなかったことを示すインジケータを戻す。次いで、エラー検出器６１０は、解決されなかったいずれかのエラーが存在するどうか、又は、新たなリソースのすべてが検査されたかどうかを、グリッド割り当てサービス５０２に通知する。
【００８１】
ここで図７を参照すると、本発明の方法、システム、及びプログラムに係る、利用可能テスト・テーブルの項目の例が示される。図示されるように、利用可能テスト・テーブル６０４は、一般的なリソースのタイプに応じて指定され、さらにタイプ内のリソースのクラスに応じて指定される、テストを含む。さらに、テストは、各々の特定のリソースについてリソース名によって指定することができる。利用可能テスト・テーブル６０４に示されるテストは、実行し呼び出すことができるテストのタイプの例であり、実際のテスト・シーケンスは、グリッド・リソースの機能を検査するのに必要なテストの精度に応じて調整できることが分かるであろう。
【００８２】
リソースがプロセッサのときには、利用可能テスト・テーブル６０４は、参照数字７０２において示されるように、複数の利用可能なテストと予測される結果のタイプとを指定する。第１の例においては、オペレーティング・システムから起動することができる固有のプロセッサ診断を呼び出すことによってプロセッサをテストすることができ、利用可能テスト・テーブル６０４は、複数のタイプのオペレーティング・システムベースのプロセッサ診断についての呼び出し参照を含むことができる。固有のプロセッサ診断は、ログ・ファイルを戻すことができる。第２の例においては、テスト式の組を持つテスト・ジョブを実行し、テスト結果を収集することによって、プロセッサをテストすることができる。複数のテスト式の組が利用可能であり、それらは、プロセッサ又は複数のプロセッサのタイプに応じて指定することができる。いずれの例においても、バス及びバックプレーンを含むプロセッサをテストして、結果を検査することができる。
【００８３】
リソースがメモリのときには、利用可能テスト・テーブル６０４は、参照数字７０４において示されるように、複数の利用可能なテストと予測される結果のタイプとを指定する。第１の例においては、ローカルなオペレーティング・システムベースのメモリ診断ツールを呼び出すことによってメモリをテストすることができ、利用可能テスト・テーブル６０４は、複数のタイプのオペレーティング・システムベースのメモリ診断についての呼び出し参照を含むことができる。第２の例においては、ビット・チェック・テストのテスト・ジョブをメモリ上で実行することによってメモリをテストすることができ、テスト結果は、予測されるビット・パターンに対する比較のために収集される。第３の例においては、メモリ機能を検査するために設計されたフルパターン読み取り書き込みテストのテスト・ジョブを実行することによってメモリをテストすることができ、テスト結果は、読み取り及び書き込みが適切に実行されたかどうかの判断のために収集される。１つの例においては、テスト・コントローラ６０２は、より高速のメモリ・リソースの場合にはフルパターン読み取り書き込みテストを選択し、より低速のメモリ・リソースの場合にはビット・チェック・テストを選択することができる。
【００８４】
リソースがネットワーク・アダプタのときには、利用可能テスト・テーブル６０４は、参照数字７０６において示されるように、利用可能であり、かつ、ネットワーク・アダプタのクラスによってソートされる、複数のテストを作成する。ネットワーク・アダプタのクラスは、ＳＡＮアダプタ及びＩＰアダプタを含むことができるが、これらに限定されるものではない。ネットワーク・アダプタの各々のクラスについて、一連のテストを行うことができる。第１に、一連のテストにおいて、テスト・コントローラ６０２は、オンボード・ループ・バック・テストを呼び出すように指示される。具体的には、ネットワーク・アダプタが、コマンド呼び出しを通して他のシステムによって呼び出すことができるオンボード診断を含むことができる。第２に、一連のテストにおいて、テスト・コントローラ６０２は、接続テストを実行するように指示される。１つの例においては、結果として得られる「ピング」が予測されるピング・テストなどの接続テストを用いることができる。個々のネットワーク・アダプタとネットワーク・アダプタのクラスの両方の機能をテストするために、付加的なテストを指定できることが分かるであろう。
【００８５】
リソースが、ＳＣＳＩデバイス・コントローラなどのデバイス・コントローラのときには、利用可能テスト・テーブル６０４は、参照数字７０８において示されるように、利用可能であり、かつ、デバイス・コントローラのクラスによって格納される、複数のテストを作成する。デバイス・コントローラの各々のクラスについて、一連のテストを行うことができる。第１に、一連のテストにおいて、テスト・コントローラ６０２は、ローカル・ハードウェアをテストするためにオンボード・ループ・バック・テストを呼び出すように指示される。第２に、一連のテストにおいて、テスト・コントローラ６０２は、ハードウェアのテスト・アクセスのテスト・ジョブを行うように指示される。テスト・アクセスは、一般に、デバイス・コントローラのアダプタ、パス、及び、読み取り書き込み能力の検査を可能にする命令を含む。例えば、デバイス・コントローラがディスク・サブシステムの場合には、テスト・アクセスは、所定のデータ・パターンを用いて各々のディスク上にファイルを書き込み、各々のファイルを再び読み取り、次いで各々のファイルを削除するための命令を含むことができる。
【００８６】
リソースが、ディスク又はテープなどのストレージ・サブシステムのときには、利用可能テスト・テーブル６０４は、参照数字７１０において示されるように、利用可能であり、かつ、ストレージ・サブシステムのクラスによって格納される、複数のテストを作成する。ストレージ・サブシステムの各々のクラスについて、特定のテスト・アクセスを行うことができる。媒体が取り外し可能ではない場合には、テストは、ストレージ・サブシステムの各々の部分を検査するための命令を含むことができる。代替的に、媒体が取り外し可能な場合には、テストは、ストレージ・サブシステム全体のパス及び読み取り書き込み能力を検査するための命令を含むことができる。さらに、ストレージ・サブシステムがオンボード診断ツールを含む場合には、利用可能テスト・テーブル６０４は、オンボード診断ツールのための呼び出し動作を含むことができる。
【００８７】
リソースがオペレーティング・システム・ソフトウェアのときには、利用可能テスト・テーブル６０４は、参照数字７１２に示されるように、オペレーティング・システムのタイプに応じて利用可能な複数のテストを作成する。オペレーティング・システムの各々のタイプについて、テストは、パラメータ・テスト及び即応性テスト（readiness testing）のためのオペレーティング・システム・ツールを呼び出す命令を含む。具体的には、各々のオペレーティング・システムは、オペレーティング・システムを検査するために呼び出すことができる診断ツールを含むことができる。１つの例においては、テストは、ＡＩＸオペレーティング・システム（ＡＩＸは、インターナショナル・ビジネス・マシーンズ・コーポレーションの商標である）内部のツールを呼び出すための命令を含むことができる。具体的には、ＡＩＸオペレーティング・システムを参照すると、「ｌｐｐｃｈｋ−ｖ」命令は、ソフトウェア・コンポーネントの不整合が存在しないことを保証するテストを行うために呼び出すことができ、「ｏｓｌｅｖｅｌ―ｒ」命令は、オペレーティング・システムのリリース・レベル及びメンテナンス・レベルを要求するために呼び出すことができ、「ｉｎｓｔｆｉｘ−ｉｋ」命令は、現在のリリース・レベル及びメンテナンス・レベルについて全てのファイルセットが存在することを検査するために呼び出すことができ、いずれかの特定のオペレーティング・システム・ファイルセット又はデバイス・ドライバの存在及び状態を判断するために、「ｌｓｌｐｐ−Ｌ」命令を呼び出して、どの結果が必要であるかを指定するフィルタと共に用いることができ、必要な環境変数の存在及び値を判断するために、「ｓｅｔ」命令を呼び出して、フィルタと共に用いることができる。ＡＩＸオペレーティング・システムのパラメータ及び即応性をテストするために、付加的なＡＩＸオペレーティング・システム命令を呼び出すことができることが分かるであろう。さらに、他のオペレーティング・システムのための他のタイプの命令を指定して呼び出すことができることが分かるであろう。
【００８８】
リソースがアプリケーション・ソフトウェアのときには、利用可能テスト・テーブル６０４は、参照数字７１４に示されるように、ソフトウェアのタイプに応じて利用可能な複数のテストを作成する。アプリケーション・ソフトウェアが自己検査ルーチンを含む場合には、利用可能テスト・テーブル６０４は、自己検査ルーチンのための特定の呼び出しを含むことができる。代替的に、利用可能テスト・テーブル６０４は、現在のアプリケーションの特定のアプリケーションのクラスについて機能テスト・ジョブを実行する命令を含むことができる。１つの例においては、アプリケーション・ソフトウェア・リソースは、データベース・ソフトウェア・クラスにあるＤＢ２データベース・ソフトウェアである（ＤＢ２は、インターナショナル・ビジネス・マシーンズ・コーポレーションの商標である）。データベース・クラスの機能テスト・ジョブは、以下の動作を実行すること、すなわち、（１）正常なデーモン及び処理が実行中であることを検査すること、（２）データベースに接続して、データベースへの接続を検査すること、（３）テスト・テーブルをデータベースに作成すること、（４）テスト・データをテーブルに入れること、（５）既知の結果を持つクエリをテーブルに対して実行し、その結果を検査すること、（６）テスト・テーブルを削除すること、（７）データベースから切断すること、（８）データベース別名を除去すること、を必要とする。データベース・ソフトウェアをテストして検査する付加的な動作を呼び出すことができることが分かるであろう。さらに、利用可能テスト・テーブル６０４は、結果及び結果のタイプを伴うサンプル・テスト・ケースを例示するものであるが、当業者であれば、これらのサンプル・テスト・ケースを付加的な又はさらに適切なプラットフォーム及びアプリケーションに拡張できることが分かるであろう。
【００８９】
ここで図８を参照すると、本発明の方法、システム、及びプログラムに係る、グリッド・ジョブための実行環境内における検査されたリソースにルーティングするグリッド・ジョブを制御するための処理及びプログラムの、ハイレベル論理フローチャートが示される。図示されるように、処理はブロック８００で開始し、その後、ブロック８０２に進む。ブロック８０２は、グリッド・スケジューラが新たなグリッド・ジョブを受信することを示す。次に、ブロック８０４は、グリッド・スケジューラが新たなグリッド・ジョブについてグリッド割り当てサービスに通知することを示す。その後、ブロック８０６は、グリッド割り当てサービスが、新たなグリッド・ジョブに必要なリソースを新たなグリッド・ジョブのための実行環境内に集めることを示す。次に、ブロック８０８は、グリッド割り当てサービスが、実行環境における新たなリソースを検査するためにグリッド検査サービスを開始することを示し、処理はブロック８１０に移る。
【００９０】
ブロック８１０は、リソース機能が検査されることを示すインジケータをグリッド割り当てサービスが受信したかどうかの判定を示す。リソース機能が検査される場合には、処理はブロック８１２に移る。ブロック８１２は、グリッド割り当てサービスが、実行環境内のリソース又は置換リソースにジョブをルーティングするようにグリッド・ジョブ・ルータに通知することを示し、処理は終了する。ブロック８１０においてリソース機能が検査されない場合には、処理はブロック８１４に移る。ブロック８１４は、グリッド割り当てサービスが置換リソースを探して、実行環境内の機能していないリソースを置換し、次いで処理はブロック８０８に戻る。
【００９１】
ここで図９を参照すると、本発明の方法、システム、及びプログラムに係る、グリッド・ジョブをリソースにサブミットする前にグリッド・ジョブのための実行環境に追加されたリソースについてのリソース検査を制御するための処理及びプログラムの、ハイレベル論理フローチャートが示される。図示されるように、処理はブロック９００で開始し、その後、ブロック９０２に進む。ブロック９０２は、グリッド検査サービスが、新たなリソースを検査するための要求をグリッド割り当てサービスから受信したかどうかの判定を示す。新たなリソースを検査するための要求が受信された場合には、処理はブロック９０４に移る。ブロック９０４は、新たなリソースに必要なテストを利用可能テスト・テーブルから選択することを示す。次に、ブロック９０６は、新たなリソースの選択されたテストを実行することを示し、処理はブロック９０８に移る。
【００９２】
ブロック９０８は、各々の新たなリソースについてテスト結果をテスト結果テーブルに収集することを示す。ブロック９１０は、全てのテストが実行されたことに応答して結果が受信されたかどうかの判定を示す。全ての結果がまだ受信されていない場合には、処理はブロック９０８に戻る。全ての結果が受信されると、処理はブロック９１２に移る。
【００９３】
ブロック９１２は、結果においていずれかのエラーが検出されたかどうかの判定を示す。エラーが検出されなかった場合には、処理はブロック９２０に移る。ブロック９２０は、リソース機能が検査されたことをグリッド割り当てサービスに通知することを示し、処理は終了する。ブロック９１２においてエラーが検出された場合には、処理はブロック９１６に移る。
【００９４】
ブロック９１６は、グリッド劣化防止サービスにエラーをサブミットすることを示す。グリッド劣化防止サービスは、エラーを解決することを試行する。グリッド劣化防止サービスがエラーを解決できない場合には、処理はブロック９２２に移る。ブロック９２２は、リソース・エラーについてグリッド割り当てサービスに通知することを示し、処理は終了する。ブロック９１８においてグリッド劣化防止サービスがエラーを解決できた場合には、処理はブロック９２０に移る。
【図面の簡単な説明】
【００９５】
【図１】グリッド環境に実装することができ、かつ、本発明を実装することができる、コンピュータ・システムの１つの実施形態を示す。
【図２】グリッド環境内の一般的なタイプのコンポーネントの１つの実施形態を示すブロック図である。
【図３】グリッド環境に実装することができるアーキテクチャの１つの例を示すブロック図である。
【図４】本発明の方法、システム、及びプログラムに係る、グリッド環境内の複数の実行環境を管理するグリッド管理システムの例を示すブロック図である。
【図５】本発明の方法、システム、及びプログラムに係る、グリッド環境を管理するためのグリッド管理システムを示すブロック図である。
【図６】本発明の方法、システム、及びプログラムに係る、グリッド検査サービスのコンポーネントの例を示すブロック図である。
【図７】本発明の方法、システム、及びプログラムに係る、利用可能テスト・テーブルにおける項目の例を示すブロック図である。
【図８】本発明の方法、システム、及びプログラムに係る、グリッド・ジョブための実行環境内における検査されたリソースにルーティングするグリッド・ジョブを制御するための処理及びプログラムの、ハイレベル論理フローチャートである。
【図９】本発明の方法、システム、及びプログラムに係る、グリッド・ジョブをリソースにサブミットする前にグリッド・ジョブのための実行環境に追加されたリソースについてのリソース検査を制御するための処理及びプログラムの、ハイレベル論理フローチャートである。
【図１】
2008527513.tif 000003
【図２】
2008527513.tif 000004
【図３】
2008527513.tif 000005
【図４】
2008527513.tif 000006
【図５】
2008527513.tif 000007
【図６】
2008527513.tif 000008
【図７】
2008527513.tif 000009
【図８】
2008527513.tif 000010
【図９】
2008527513.tif 000011
【国際調査報告】
2008527513.tif 000012
2008527513.tif 000013