(57)【要約】【課題】  プロキシ証明書の生成によるグリッド相互認証のための方法、装置、及びプログラムを提供すること。【解決手段】  リソース・コンピュータのグリッド内にある二次リソースの相互認証のための機構が提供される。一次リソースがグリッド・コンピューティング・ジョブをオフロードしたいと願うとき、一次リソースは、プロキシ証明書要求をユーザ・マシンに送る。プロキシ証明書要求に応答して、ユーザ・マシンは、二次リソースとの間の認証を行う。二次リソースとの間の認証がうまくいった場合、ユーザ・マシンは、有効プロキシ証明書を生成し、戻す。次に、一次リソースは、二次リソースとの間の相互認証を行う。二次リソースとの間の認証に失敗した場合、ユーザ・マシンは、無効プロキシ証明書を生成し、戻す。無効プロキシ証明書であるために、一次リソースと二次リソースとの間の相互認証に失敗する。一次リソースは、別の二次リソースを選択し、ユーザ・マシンとの間の相互認証をパスするリソースが見つかるまでプロセスを繰り返す。【選択図】      図１
2007531093.tif 000002
【特許請求の範囲】
【請求項１】
グリッド・コンピューティング・システムにおけるグリッド・ジョブのオフロードを認証する方法であって、前記方法が、
グリッド・ジョブを一次グリッド・リソースに実行依頼するステップと、
前記一次グリッド・リソースからの証明書要求に応答して、前記グリッド・ジョブを実行することになる二次グリッド・リソースを識別するステップと、
前記二次グリッド・リソースとの間の認証を行うステップと、
前記グリッド・リソースとの間の認証に失敗した場合、無効プロキシ証明書を生成し、前記無効プロキシ証明書を前記一次グリッド・リソースに送るステップと
を含む方法。
【請求項２】
前記グリッド・リソースとの間の認証に失敗した場合、有効プロキシ証明書を生成するステップと、
前記有効プロキシ証明書を前記一次グリッド・リソースに送るステップと
をさらに含む、請求項１に記載の方法。
【請求項３】
グリッド・ジョブを一次グリッド・リソースに実行依頼するステップが、前記グリッド・ジョブをグリッド・スケジューラに実行依頼するステップを含み、前記グリッド・スケジューラは、一次グリッド・リソースを選択し、前記グリッド・ジョブを前記一次グリッド・リソースに送る、請求項１又は請求項２に記載の方法。
【請求項４】
前記グリッド・ジョブを実行することになる二次グリッド・リソースを識別するステップは、クエリ・グリッド・ジョブを前記一次グリッド・リソースに実行依頼し、前記二次グリッド・リソースの識別について尋ねるステップを含む、請求項１、請求項２、又は請求項３に記載の方法。
【請求項５】
前記グリッド・ジョブを実行することになる二次グリッド・リソースを識別するステップは、前記証明書要求において前記二次グリッド・リソースのアドレスを検知するステップを含む、請求項１から請求項４までのいずれか１項に記載の方法。
【請求項６】
前記二次グリッド・リソースとの間の認証を行うステップは、認証ジョブを前記二次グリッド・リソースに実行依頼するステップを含む、請求項１から請求項５までのいずれか１項に記載の方法。
【請求項７】
前記認証ジョブは、前記二次グリッド・ジョブのセキュリティ要素を識別するステップ、該二次グリッド・リソースのオペレーティング・システムの少なくとも１つ、該二次グリッド・リソース上にインストールされたセキュリティの更新、該二次リソースが信頼できるオペレーティング・システムを有するかどうか、及び、該二次グリッド・リソース上にいずれかの競合するグリッド・ジョブが実行されているかどうかを判断するステップ、或いは、所定のコマンドが該二次グリッド・リソース上でディスエーブルにされるかどうかを判断するステップのうちの１つを含む、請求項６に記載の方法。
【請求項８】
前記二次グリッド・リソースとの間の認証を実行するステップは、該二次グリッド・リソースがブラックリスト内に含まれるかどうかを判断するステップ、該二次グリッド・リソースがホワイトリスト内に含まれるかどうかを判断するステップ、或いは、１つ又は複数の規則を用いて該二次グリッド・リソースとの間の認証を行うステップのうちの１つを含む、請求項１から請求項７までのいずれか１項に記載の方法。
【請求項９】
グリッド・コンピューティング・システムにおいてグリッド・ジョブのオフロードを認証するための装置であって、前記装置は、
グリッド・ジョブを一次グリッド・リソースに実行依頼するための手段と、
前記一次グリッド・リソースからの証明書要求に応答して、前記グリッド・ジョブを実行することになる二次グリッド・リソースを識別するための手段と、
前記二次グリッド・リソースとの間の認証を行うための手段と、
前記グリッド・リソースとの間の認証に失敗した場合、無効プロキシ証明書を生成し、前記無効プロキシ証明書を前記一次グリッド・リソースに送るための手段と
を備える装置。
【請求項１０】
グリッド・コンピューティング・システムにおいてグリッド・ジョブのオフロードを認証するため、コンピュータに、
グリッド・ジョブを一次グリッド・リソースに実行依頼するための命令と、
前記一次グリッド・リソースからの証明書要求に応答して、前記グリッド・ジョブを実行することになる二次グリッド・リソースを識別するための命令と、
前記二次グリッド・リソースとの間の認証を行うための命令と、
前記グリッド・リソースとの間の認証に失敗した場合、無効プロキシ証明書を生成し、前記無効プロキシ証明書を前記一次グリッド・リソースに送るための命令と
を実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理に関し、具体的には、グリッド・コンピューティングに関する。さらに具体的には、本発明は、プロキシ証明書の生成によるグリッド相互認証のための方法、装置、及びプログラムを提供する。
【背景技術】
【０００２】
グリッド・コンピューティングは、複数のマシンが１つの大きなスーパーコンピュータとして機能するように、ネットワーク全体にわたって中央演算処理ユニット（ＣＰＵ）リソースを共有するというものである。ピア・ツー・ピア型コンピューティング又は分散型コンピューティングとも呼ばれるグリッド・コンピューティングは、いずれかのマシンのＣＰＵに未使用容量がある場合、それを、要求される処理ジョブ全体に割り振ることを可能にする。
【０００３】
大企業においては、いずれの時点においても、何百又は何千ものデスクトップ・マシンがアイドル状態で置かれている可能性がある。ＣＰＵは、ユーザが画面を読んでおり、マシンと対話していない場合でも、アイドル状態にあると考えられることがある。他のコンピューティング・リソースは、一日の様々な時間にアイドル状態とすることができる。例えば、データベース・サーバのクラスタ又はそのサブセットは、例えば、真夜中等の営業時間外において未使用状態とすることができる。好適例として、ニューヨーク・シティの営業時間のピーク時には、インドではほとんどの人が就寝中であると思われる。したがって、一日のうちのいずれの時間においても未使用状態の処理サイクルが存在し、これらを大きな計算問題のために用いることができる。
【０００４】
所定のユーザは、グリッド技術を用いて多くの計算を要するジョブを実行することができる。例えば、ユーザは、ヒューマンゲノム研究プロジェクトのような、バイオテクノロジーを行うことができる。ジョブは、２日間実行することができる任意のプログラムであってもよく、又は単にリソース・マシンに一日のうちの時間帯を要求することができる任意のプログラムであってもよい。しかしながら、グリッド・コンピューティングは、一般に、極めて多くの計算を要するジョブのために用いられる。ユーザは、ジョブをリソース・マシンに送り、夜間又は週末に帰宅することができる。次に、リソース・マシンは、ジョブを処理し、結果をユーザに戻す。
【０００５】
ジョブを実行するために、ユーザは、グリッド内の特定のマシンを選択することができる。ユーザは、ユーザが信頼する特定のマシンのことを知ることができる。例えば、ユーザは、セキュリティ・パッチ、セキュア・オペレーティング・システム等を更新した、未使用の容量を有するマシンのことを知ることができる。代替的に、ユーザは、ジョブを処理するためにホスト（リソース）を選択するグリッド・スケジューラに、ジョブを実行依頼することができる。ユーザがジョブをグリッド・スケジューラに送る場合、ユーザは、ジョブを正しいホストを送ることに関してスケジューラを信頼していると推定される。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
もちろん、グリッド・コンピューティングが、セキュリティ上の問題をもたらすことがある。例えば、リソース・マシンに過度の負荷がかかることがある。この場合、一次リソース・マシンは、作業を二次リソース・マシンにオフロードすることができる。ジョブを実行依頼したユーザが、必ずしも二次リソース又はホストを信頼できるわけではない。ジョブのＩＰ、実行中のプログラム、入力データ、出力データ等は全て、信頼できない二次ホストでも利用できる。このことは、セキュリティに関して、ユーザに不当なリスク又はコストをもたらすことになる。しかしながら、一次リソースにジョブが実行依頼されると、ユーザは、グリッド内のどのマシンが最終的にジョブを処理するかを制御するわけではない。したがって、ジョブを処理する二次リソース・マシンに、所望のセキュリティ・レベル又は必要なセキュリティ・レベルが十分にないことがある。マシンが、ウィルス攻撃又はスパイウェアに弱いオペレーティング・システムを有することがある。或いは、二次リソースに悪意があり、グリッド・ジョブの結果又はインターネット・プロトコル（ＩＰ）アドレスを盗む可能性もある。
【課題を解決するための手段】
【０００７】
本発明の一態様によると、請求項１に記載されるような方法が提供される。
【０００８】
本発明の一態様によると、請求項９に記載されるような装置が提供される。
【０００９】
本発明の一態様によると、請求項１０に記載されるようなコンピュータ・プログラムが提供される。
【００１０】
本発明は、従来技術の欠点を認識し、リソース・コンピュータのグリッド内にある二次リソースの相互認証のための機構を提供する。ユーザを識別するために、多くの場合、グリッドのセキュリティには、証明書及びプロキシ証明書が使用される。一次リソース・マシンがグリッド・コンピューティングのジョブをオフロードしたいと願うとき、一次リソース・マシンは、プロキシ証明書要求をユーザ・マシンに送る。プロキシ証明書要求に応答して、ユーザ・マシンは、二次リソース・マシンとの間の認証ジョブを行う。二次リソース・マシンとの間の認証がうまくいった場合、ユーザ・マシンは、有効プロキシ証明書を生成し、戻す。次に、一次リソース・マシンは、プロキシ証明書を用いて二次リソース・マシンとの間の相互認証を行う。しかしながら、二次リソースとの間の認証がうまくいかなかった場合、ユーザ・マシンは、無効プロキシ証明書を生成し、戻す。次に、一次リソース・マシンは、二次リソース・マシンとの間の相互認証を行うが、無効プロキシ証明書であるために認証に失敗する。次に、一次リソースは、別の二次リソースを選択し、ユーザ・マシンとの間の相互認証をパスするリソースが見つかるまでプロセスを繰り返す。
【発明を実施するための最良の形態】
【００１１】
本発明の特徴であると考えられる新規な特徴は、添付の特許請求の範囲に述べられる。しかしながら、本発明自体、及び使用の好ましい形態、その更なる目的及び利点は、添付の図面と共に読むときに、次の例証となる実施形態の詳細な説明を参照することによって、最も良く理解されるであろう。
【００１２】
本発明は、リソース・コンピュータのグリッド内にある二次リソースの相互認証のための方法、装置、及びコンピュータ・プログラムを提供する。データ処理装置は、本発明の種々の態様を実行するために多数のコンピューティング装置を用いる分散型データ処理システムとすることができる。したがって、次の図１−図３は、本発明を実施することができるデータ処理環境の例示的な図として提供される。図１−図３は例示的なものに過ぎず、本発明を実施することができる環境に関して、何らかの制限を明示的に又は黙示的に認めることを意図するものではないことが認識されるべきである。本発明の精神及び範囲から逸脱することなく、示される環境に対する多くの変更を行うことができる。
【００１３】
ここで図を参照すると、図１は、本発明を実施することができるデータ処理システムのネットワークの図形表示を示す。ネットワーク・データ処理システム１００は、本発明を実施することができるコンピュータのネットワークである。ネットワーク・データ処理システム１００は、ネットワーク・データ処理システム１００内で互いに接続される種々の装置とコンピュータとの間の通信リンクを提供するのに用いられる媒体であるネットワーク１０２を含む。このネットワーク１０２は、有線通信リンク、無線通信リンク、又は光ファイバ・ケーブルのような接続を含むことができる。
【００１４】
示される例において、サーバ１０４が、格納ユニット１０６と共にネットワーク１０２に接続される。さらに、クライアント１０８、１１０、及び１１２が、ネットワーク１０２に接続される。これらのクライアント１０８、１１０、及び１１２は、例えば、パーソナル・コンピュータ又はネットワーク・コンピュータとすることができる。示される例において、サーバ１０４は、クライアント１０８−１１２に、ブート・ファイルのようなデータ、オペレーティング・システム画像、及びアプリケーションを提供する。クライアント１０８、１１０、及び１１２は、サーバ１０４に対するクライアントである。ネットワーク・データ処理システム１００は、付加的なサーバ、クライアント、及び図示されていない他の装置を含むこともできる。
【００１５】
より特定的には、ネットワーク・データ処理システム１００は、コンピューティング・システムのグリッドであるグリッド１２０を含む。グリッド・コンピューティングは、複数のマシンが１つの大きなスーパーコンピュータとして機能するように、ネットワークにわたって中央演算処理ユニット（ＣＰＵ）リソースを共有するというものである。ピア・ツー・ピア型コンピューティング又は分散型コンピューティングとも呼ばれるグリッド・コンピューティングは、いずれかのマシンのＣＰＵに未使用容量がある場合、それを、要求される処理ジョブ全体に割り振ることを可能にする。
【００１６】
図１に示されるように、グリッド１２０は、クライアント・コンピュータとサーバ・コンピュータの組み合わせで形成することができる。未使用のリソースをもつどのようなコンピュータ・システムも、ネットワーク・データ処理システム１００を通してグリッド・ジョブを受け入れるように構成することができる。グリッド１２０内のグリッド・コンピュータは、世界中を領域とするものであり、例えば、制限なく、私的ネットワーク、ダイアルアップ接続、インターネット専用接続、ゲートウェイ・サービス等によりネットワーク１０２に接続することができる。
【００１７】
所定のユーザは、図１のクライアント１０８のようなワークステーションを用いて、グリッド１２０内のリソース・マシンの１つにジョブを実行依頼することによって、グリッド技術を用いて多くの計算を要するジョブを実行することができる。次に、リソース・マシンは、ジョブを処理し、その結果をユーザに戻す。ユーザは、ジョブを実行するために、グリッド１２０内の特定のマシンを選択することができる。代替的に、ユーザは、ジョブを処理するためにホスト（リソース）を選択するグリッド・スケジューラに、ジョブを実行依頼することができる。例えばサーバ１０４等のサーバといった、ネットワーク・データ処理システム１００内のマシン上に、グリッド・スケジューラを組み込むことができる。ユーザがジョブをグリッド・スケジューラに送る場合、ユーザは、ジョブを正しいホストに送ることに関してスケジューラを信頼していると推定される。
【００１８】
示される例において、ネットワーク・データ処理システム１００は、相互通信のために、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）のプロトコル一式を用いる、ネットワーク及びゲートウェイの世界的な集合をもつ、ネットワーク１０２を有するインターネットである。インターネットの心臓部は、主要なノードすなわちホスト・コンピュータ間の高速データ通信ラインのバックボーンであり、これは、データ及びメッセージを送る、何千もの商業用、政府機関用、教育用、その他のコンピュータ・システムにより構成される。当然のことながら、ネットワーク・データ処理システム１００は、例えば、イントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）又は広域エリア・ネットワーク（ＷＡＮ）等の多数の異なるタイプのネットワークとして実施することができる。図１は、例示的なものであることを意図し、本発明のための構造的な制限を意図するものではない。
【００１９】
図２を参照すると、本発明の好ましい実施形態による、図１のサーバ１０４等のサーバとして実装できるデータ処理システムのブロック図が示される。データ処理システム２００は、システム・バス２０６に接続された複数のプロセッサ２０２及び２０４を含む、対称型マルチプロセッサ（ＳＭＰ）システムとすることができる。代替的に、単一のプロセッサ・システムを用いることもできる。ローカル・メモリ２０９とのインターフェースを提供するメモリ・コントローラ／キャッシュ２０８もまた、システム・バス２０６に接続される。Ｉ／Ｏバス・ブリッジ２１０が、システム・バス２０６に接続され、Ｉ／Ｏバス２１２とのインターフェースを提供する。示されるように、メモリ・コントローラ／キャッシュ２０８及びＩ／Ｏバス・ブリッジ２１０を統合することができる。
【００２０】
Ｉ／Ｏバス２１２に接続された周辺機器相互接続（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ、ＰＣＩ）バス・ブリッジ２１４は、ＰＣＩローカル・バス２１６とのインターフェースを提供する。多数のモデムをＰＣＩローカル・バス２１６に接続することができる。一般的なＰＣＩバスの実装は、４つのＰＣＩ拡張スロット又は増設コネクタに対応する。増設コネクタを通してＰＣＩローカル・バスに接続されたモデム２１８及びネットワーク・アダプタ２２０によって、図１のクライアント１０８−１１２との間の通信リンクを提供することができる。
【００２１】
付加的なＰＣＩバス・ブリッジ２２２及び２２４は、付加的なＰＣＩローカル・バス２２６及び２２８のためにインターフェースを提供し、それにより付加的なモデム又はネットワーク・アダプタをサポートすることができる。このように、データ処理システム２００は、多数のネットワーク・コンピュータへの接続を可能にする。示されるように、メモリ・マップ・グラフィックス・アダプタ２３０及びハードディスク２３２を、直接的に又は間接的に、Ｉ／Ｏバス２１２に接続することもできる。
【００２２】
当業者であれば、図２に示されるハードウェアを変更できることを理解するであろう。例えば、光ディスク・ドライブ等といった他の周辺装置を、示されるハードウェアに加えて又はその代わりに用いることもできる。示される例は、本発明に対する構造的な制限を暗示することを意図するものではない。
【００２３】
図２に示されるデータ処理システムは、例えば、Ａｄｖａｎｃｅｄ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｅｘｅｃｕｔｉｖｅ、ＡＩＸ）オペレーティング・システム又はＬＩＮＵＸオペレーティング・システムを作動させる、Ｎｅｗ  Ｙｏｒｋ、Ａｒｍｏｎｋ所在のＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎ社の製品である、ＩＢＭ  ｅＳｅｒｖｅｒ  ｐＳｅｒｉｅｓシステムとすることができる。
【００２４】
ここで図３を参照すると、本発明を実施することができる、データ処理システムのブロック図が示される。データ処理システム３００は、本発明のプロセスを実施するコード又は命令を配置することができる、図１のクライアント１０８のようなコンピュータの一例である。示される例において、データ処理システム３００は、ノース・ブリッジ・メモリコントローラ・ハブ（ＭＣＨ）３０８及びサウス・ブリッジ入力／出力（Ｉ／Ｏ）コントローラ・ハブ（ＩＣＨ）３１０を含むハブ・アーキテクチャを用いる。プロセッサ３０２、メイン・メモリ３０４、及びグラフィックス・プロセッサ３１８は、ＭＣＨ３０８に接続される。グラフィックス・プロセッサ３１８は、例えば、高速グラフィック・ポート（ａｃｃｅｌｅｒａｔｅｄ  ｇｒａｐｈｉｃｓ  ｐｏｒｔ、ＡＧＰ）によりＭＣＨに接続することができる。
【００２５】
示される例において、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ３１２、音声アダプタ３１６、キーボード及びマウス・アダプタ３２０、モデム３２２、読み出し専用メモリ（ＲＯＭ）３２４、ハードディスク・ドライブ（ＨＤＤ）３２６、ＣＤ−ＲＯＭドライバ３３０、ユニバーサル・シリアル・バス（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ、ＵＳＢ）ポート及び他の通信ポート３３２、及びＰＣＩ／ＰＣＩｅ装置３３４を、ＩＣＨ３１０に接続することができる。ＰＣＩ／ＰＣＩｅ装置は、例えば、イーサネット・アダプタ、増設カード、ノートブック型コンピュータのためのＰＣカード等を含むことができる。ＰＣＩは、カードバス・コントローラを使用するが、ＰＣＩｅはこれをしようしない。ＲＯＭ３２４は、例えば、フラッシュ・バイナリ入力／出力システム（ＢＩＯＳ）とすることができる。ハードディスク・ドライブ３２６及びＣＤ−ＲＯＭドライブ３３０は、例えば、ｉｎｔｅｇｒａｔｅｄ  ｄｒｉｖｅ  ｅｌｅｃｔｒｏｎｉｃｓ（ＩＤＥ）又はｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ（ＳＡＴＡ）インターフェースを用いることができる。スーパーＩ／Ｏ(ＳＩＯ)装置３３６をＩＣＨ３１０に接続することもできる。
【００２６】
オペレーティング・システムは、プロセッサ３０２上で稼動し、図３のデータ処理システム３００内の種々のコンポーネントを調整し、かつ、制御するように用いられる。オペレーティング・システムは、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ社から入手可能な、Ｗｉｎｄｏｓ  ＸＰのような商業的に入手可能なオペレーティング・システムとすることができる。Ｊａｖａのようなオブジェクト指向プログラミング・システムは、オペレーティング・システムとの組み合わせで作動し、データ処理システム３００上で実行されているＪａｖａプログラム又はアプリケーションからオペレーティング・システムへの呼び出しを行うようにすることができる。「Ｊａｖａ」は、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ  Ｉｎｃ．社の登録商標である。オペレーティング・システム、オブジェクト指向プログラミング・システム、及びアプリケーション又はプログラムに対する命令は、ハードディスク・ドライブ３２６のような格納装置上に配置され、プロセッサ３０２による実行のためにメイン・メモリ３０４にロードすることができる。本発明のプロセスは、例えば、メイン・メモリ３０４、メモリ３２４のようなメモリ内に、或いは１つ又は複数の周辺装置３２６及び３３０内に配置することができる、コンピュータにより実施される命令を用いて、プロセッサ３０２によって実行される。
【００２７】
当業者であれば、図３のハードウェアは、実施によって変更できることを認識するであろう。フラッシュ・メモリ、等価な不揮発性メモリ、或いは、光ディスク・ドライブ等といった他の内部ハードウェア又は周辺装置を、図３に示されるハードウェアに加えて又はこれの代わりに用いることができる。また、本発明のプロセスは、マルチプロセッサ・データ処理システムに適用することもできる。データ処理システム３００はまた、ＰＤＡの形態をとることに加えて、タブレット型コンピュータ又はラップトップ型コンピュータとすることもできる。
【００２８】
グリッド内のリソース・マシンに過度の負荷がかかることがある。この場合、一次リソース・マシンは、作業を二次リソース・マシンにオフロードすることができる。図４は、一次リソースから二次リソースにグリッド・ジョブをオフロードするためのプロセスを示す。ユーザは、一次リソースとの間の認証を行う。一般的に、この認証は、ユーザがジョブをホストに送るという単純な事実によって行われる。ユーザがホストを信頼しなかった場合、ユーザは、ジョブをホストに送らなかったであろう。つまり、ユーザは最初に一次リソースを信頼するか、又はグリッド・スケジューラを信頼し、グリッド・ジョブを適切な一次リソースに割り当てる。リソースは、ユーザの識別（ＩＤ）を認証リスト又はグリッドマップ・ファイルと比較することによって、ユーザを認証する。グリッド内のリソースの各々は、そのリソース上でジョブを実行する権限を有する各ユーザのＩＤ及び他の属性を格納する認証リスト又はグリッドマップ・ファイルを保持する。多くの場合、グリッドの管理者は、リストが変更される度に、リストをグリッド内の全てのリソースに押しつける。ユーザのプロキシ証明書と一次リソースのホスト証明書を交換することによる相互認証の後、ユーザ４１０は、グリッド・ジョブを一次リソース４２０に送る。
【００２９】
図４に示されるように、作動１において、一次リソース４２０は、ユーザ・マシン４１０との間の相互認証を行う。例えば、Ｘ５０９証明書のようなデジタル証明書を用いて、相互認証を行うことができる。ユーザ４１０は、例えば、証明書「／ｈｏｍｅ／＜ｕｓｅｒ＞／．ｇｌｏｂｕｓ／ｕｓｅｒ＿ｃｅｒｔ．ｐｅｍ．」を格納することができる。
【００３０】
一般的なデジタル証明書は、例えば、（Ｃ＝ＵＳ、Ｏ＝ＩＢＭ、ＯＵ＝ＡＩＸ、ＣＮ＝ＪｏｈｎＵｓｅｒ）のような識別名によって、ユーザのようなエンド・エンティティを説明する。この例において、デジタル証明書は、国（Ｃ）、組織（Ｏ）、組織のユニット（ＯＵ）、及び一般名（ｃｏｍｍｏｎ  ｎａｍｅ:ＣＮ）を識別する。デジタル証明書はまた、エンド・エンティティの公開鍵も含み、信頼できる証明書認証機関（ｃｅｒｔｉｆｉｃａｔｅ  ａｕｔｈｏｒｉｔｙ:ＣＡ）の秘密鍵によって署名される。したがって、デジタル証明書を受け取ったときには、信頼できるＣＡの署名を検証して、そのＣＡが、ユーザの識別を適切に点検したものと信用することができる。
【００３１】
作動２において、一次リソース４２０は、グリッド・ジョブが二次リソース４３０にオフロードされるべきであることを判断することができる。処理リソースが十分に使用されていない状態ではない場合、一次リソースは、グリッド・ジョブをオフロードすることができる。例えば、一次リソースは、該リソースが意図する作業負荷を受け取り、該一次リソースがもはや余分のＣＰＵリソースをもたないようにすることができる。
【００３２】
作動３において、一次リソースは、証明書要求をユーザ・マシンに送る。次に、ユーザ・マシン４１０は、二次リソースとの間の認証に用いるために、一次リソースについてのプロキシ証明書を自動的に生成する。これらのグリッド・ジョブ又はプログラムは、何日間も稼動できるので、これらのプロセスを自動化することが好ましい。言い換えれば、これらの要求を可能にするために、又は拒否するために、ユーザがいることは実際的ではない。次に、ユーザ・マシン４１０は、例えば、「／ｔｍｐ／Ｘ５０９ｐｒｏｘｙｃｅｒｔ．」のようなプロキシ証明書を格納することができる。
【００３３】
プロキシ証明書の識別名は、添付される「／ｐｒｏｘｙ，」のような文字列を有する証明書と類似している。例えば、（Ｃ＝ＵＳ、Ｏ＝ＩＢＭ、ＯＵ＝ＡＩＸ、ＣＮ＝ＪｏｈｎＵｓｅｒ／ｐｒｏｘｙ）。プロキシ証明書は、ＣＡによってではなく、証明書によって署名される。言い換えれば、ＣＡは証明書に署名し、証明書がプロキシ証明書に署名する。プロキシ証明書が遠隔のグリッド・リソースによって受け取られたとき、一連の信頼は、次のとおりである。すなわち、１）自分は信頼できるＣＡを信頼し、信頼できるＣＡは、証明書に署名する、２）したがって、自分は証明書を信頼する、３）自分は証明書を信頼するので、その証明書によって署名されたプロキシ証明書を信頼する、４）したがって、自分はプロキシ証明書を信頼する。
【００３４】
作動４において、ユーザ・マシン４１０は、プロキシ証明書を一次リソース４２０に送る。その後、一次リソースは、ジョブを二次リソース４３０に実行依頼する。次に、作動５において、相互認証が行われ、二次リソース４３０は、ジョブを実行するためにプロキシを介してユーザを認証する。
【００３５】
図４に示されるプロセスの利点は、プロキシ証明書に短い寿命が割り振られることである。一般的な寿命は、例えば、２４時間とすることができる。プロキシ証明書は、グリッド・ジョブを伴う。したがって、プロキシ証明書に障害が起きた場合、該プロキシ証明書は、短期間内に終了し、よって潜在的損害が制限される。また、必要に応じて付加的なプロキシ証明書を自動的に生成できるので、グリッド・ジョブは、ユーザが注意を払わなくても、グリッド全体にわたって移動することができる。このことにより、グリッド内でグリッド・ジョブがどのように分散されても、ユーザが、シングル・サインオンを有するグリッド・ジョブを実行依頼することが可能になる。言い換えれば、ユーザは、単にグリッド・ジョブを実行依頼し、立ち去ることができる。
【００３６】
一次リソースは、１組の基準に基づいて二次リソースを選択することができる。この点で、一次リソースは、二次リソースとの間の認証の形態をとることができる。しかしながら、ジョブを実行依頼したユーザが、必ずしも二次リソース又はホストを信頼できるとは限らない。したがって、ジョブを処理する二次リソース・マシンは、たとえ必要であっても、所望のセキュリティ・レベルを欠いていることがある。マシンが、ウィルス攻撃又はスパイウェアに弱いオペレーティング・システムを有することもある。或いは、二次リソースに悪意があり、グリッド・ジョブの結果又はインターネット・プロトコル（ＩＰ）アドレスを盗むこともある。
【００３７】
図５は、本発明の好ましい実施形態による、プロキシ証明書の生成によるグリッド相互認証を用いて、グリッド・ジョブを一次リソースから二次リソースにオフロードするためのプロセスを示す。プロキシ証明書の生成によるグリッド相互認証の背後にある前提は、次の情報、すなわち、
１．ジョブが一次リソースを超えてオフロード又は分散されようとしていること、
２．このことが起こる正確な時点、
３．二次リソースの生成されたＩＰアドレス
を確認するために、相互認証プロセスを利用すること又は遮断することである。
【００３８】
この情報を用いて、自動化プロセスを実行しているユーザ・マシンは、二次リソースについての詳細な情報を発見し、二次リソースがジョブを実行する権限を有するかどうかを決定し、必要に応じて二次認証プロセスを終了又は妨害し、よって、相互認証機構を形成する。
【００３９】
ユーザ５１０は、グリッド・ジョブを一次リソース５２０に送る。ユーザは、一次リソースとの間の認証を行う。つまり、ユーザは、最初に一次リソースを信頼するか又はグリッド・スケジューラを信頼し、グリッド・ジョブを適切な一次リソースに割り当てる。作動１において、一次リソース５２０は、ユーザ・マシン５１０との間の相互認証を行う。例えば、Ｘ５０９証明書のようなデジタル証明書を用いて相互認証を行うことができる。
【００４０】
作動２において、一次リソース５２０は、グリッド・ジョブが二次リソース５３０にオフロードされることになることを判断することができる。作動３において、一次リソースは、証明書要求をユーザ・マシンに送る。ユーザ・マシン５１０は、一次リソース５２０によってオフロードされる現在のグリッド・ジョブに関係なく、一次リソース５２０からの証明書要求に応答して、作動３Ａにおける認証ジョブを、新しく識別された二次リソース５３０に直接実行依頼（ｄｉｒｅｃｔｌｙ  ｓｕｂｍｉｔ）する。
【００４１】
この認証ジョブは、二次リソース・マシン上で実行され、二次リソースのセキュリティ要素を識別する。例えば、認証ジョブは、二次リソースが最新のオペレーティング・システム及びセキュリティ更新を有するかどうか、二次リソースが信頼できるオペレーティング・システムを有するかどうか、このリソース上で同じく実行されている何らかの矛盾するグリッド・ジョブがあるかどうか等を判断することができる。認証ジョブによって集められたセキュリティ情報は、実施によって変更できる。例えば、あるユーザは、二次リソースが１つの実行中に行っているジョブを列挙したいと願うかもしれないが、あるユーザは、チャネルの変換により重要な情報及び／又は戦略的な情報が漏れるのを回避するために、このコマンドをディスエーブルにしたリソースの方をより好むことがある。
【００４２】
ユーザ・マシンは、例えば、ブラックリスト及び／又はホワイトリストを有するといった、より静的な判断を用いて相互認証を行うことができる。ユーザ・マシンは、グリッドの仮想組織によって信頼されるあらゆるリソースを信頼するが、あまり監視されていない営業時間後の特定のリソースを信頼しないといった、規則を用いることができる。上述のように、二次リソースは、ユーザＩＤを認証リストと比較することによってユーザを認証するので、二次リソースを用いる認証は、相互的なものである。
【００４３】
二次リソースとの間の相互認証がうまくいった場合、ユーザ・マシン５１０は、二次リソースとの間の認証に用いるために、一次リソースについての有効プロキシ証明書を生成する。しかしながら、二次リソースが認証プロセスに失敗した場合、ユーザ・マシン５１０は、無効プロキシ証明書を生成する。
【００４４】
作動４において、ユーザ・マシン５１０は、プロキシ証明書を一次リソース５２０に送る。その後、一次リソース５２０は、ジョブを二次リソース５３０に実行依頼する。次に、作動５において相互認証が行われ、二次リソース５３０は、ジョブを実行するためにプロキシを介してユーザを認証する。しかしながら、一次リソース５２０が、二次リソース５３０に無効プロキシ証明書を示した場合、二次リソースは、ユーザがグリッド・ジョブを実行することを許容しない。一次リソースは、このエラーを確かめ、次に、別の二次リソースを探してジョブをオフロードし、作動２に戻る。このように、ユーザ・マシンは、二次リソースに、有効プロキシ証明書又は無効プロキシ証明書の生成によってグリッド・ジョブを受諾又は拒否させることによって、二次リソースとの間の相互認証を行う。
【００４５】
ここで図６を参照すると、本発明の例示的な実施形態による、グリッド・コンピューティング・システム内のマシンを示すブロック図が示される。ユーザ・マシン６１０は、認証モジュール６１２、証明書生成モジュール６１４、及び認証モジュール６１２を含む。一次リソース・マシン６２０は、認証モジュール６２２及び作業負荷均衡化モジュール６２４を含む。二次リソース・マシン６３０は、認証モジュール６３２及び作業負荷均衡化モジュール６３４を含む。
【００４６】
一次リソース・マシン６２０がユーザ・マシン６１０からグリッド・ジョブを受け取ると、一次リソース・マシン６２０は、認証モジュール６２２を用いて、ユーザ・マシンとの間の認証を行う。一次リソース・マシン６２０は、該一次リソース・マシン内の認証モジュール６２２及び二次リソース・マシン内の認証モジュール６３２を通して、二次リソース６３０との間の相互認証を行うこともできる。
【００４７】
作業負荷均衡化モジュール６２４を用いて、一次リソース・マシン６２０は、作業を他のリソースにオフロードすることを決定することができる。例えば、一次リソース・マシン６２０は、ユーザ・マシン６１０から二次リソース・マシン６３０に受け取ったグリッド・ジョブをオフロードすることができる。同様に、次に、二次リソース・マシン６３０は、作業負荷均衡化モジュール６３４を用いて、その同じグリッド・ジョブを別のリソース・マシン（図示せず）にオフロードすることができる。
【００４８】
一次リソース・マシン６２０が、ユーザ・マシン６１０から二次リソース・マシン６３０に受け取ったグリッド・ジョブをオフロードすることを決定すると、一次リソース・マシン６２０は、証明書要求をユーザ・マシン６１０に送る。本発明の例示的な実施形態によると、ユーザ・マシン６１０は、一次リソース・マシン６２０からの証明書要求に応答して、二次リソース・マシン６３０との間の相互認証を行う。
【００４９】
証明書要求は、例えば、ＩＰアドレス等によって、二次リソース・マシンを識別することができる。代替的に、ユーザ・マシン６１０は、クエリ・グリッド・ジョブを一次リソース・マシン６２０に実行依頼し、二次リソースのＩＰアドレスについて尋ねることができる。次に、ユーザ・マシン６１０は、認証モジュール６１４を用いて、二次リソース・マシンに基づいた認証判断を行う。ユーザ・マシン６１０は、認証ジョブを、新しく識別された二次リソース６３０に実行依頼することができる。この認証ジョブは、二次リソース・マシン上で実行され、二次リソースのセキュリティ要素を識別することが可能である。認証モジュール６１４はまた、例えば、ブラックリスト及び／又はホワイトリストを有するといった、より静的な判断を用いて相互認証を行うこともできる。
【００５０】
二次リソース・マシン６３０との相互認証がうまくいった場合、ユーザ・マシン６１０は、証明書生成（ｃｅｒｔｉｆｉｃａｔｅ  ｇｅｎｅｒａｔｉｏｎ）モジュール６１６を用いて有効プロキシ証明書を生成する。しかしながら、二次リソース・マシン６３０が認証プロセスに失敗した場合、ユーザ・マシン６１０は、証明書生成モジュール６１６を用いて無効プロキシ証明書を生成する。
【００５１】
ユーザ・マシン６１０は、プロキシ証明書を一次リソース・マシン６２０に送る。その後、一次リソース・マシン６２０は、ジョブを二次リソース・マシン６３０に実行依頼する。次に、認証モジュール６２２と認証モジュール６３２との間で相互認証が行われ、二次リソース６３０は、ジョブを実行するためにプロキシを介してユーザを認証する。しかしながら、一次リソース・マシン６２０が二次リソース・マシン６３０に無効プロキシ証明書を示した場合、二次リソース・マシンは、ユーザのグリッド・ジョブの実行を許容しない。一次リソース・マシンは、このエラーを確かめ、作業負荷均衡化（ｗｏｒｋｌｏａｄ  ｂａｌａｎｃｉｎｇ）モジュール６２４を用いて、別の二次リソースを探し、ジョブをオフロードする。
【００５２】
図７は、本発明の例示的な実施形態による、グリッド・コンピューティング・システム内のリソース・マシンの作動を示すフローチャートである。プロセスは、グリッド・ジョブの処理要求を受け取ったときに始まり、ユーザ・マシンとの間の相互認証が行われる（ブロック７０２）。次に、認証がうまくいったかどうかについての判断がなされる（ブロック７０４）。認証がうまくいかなかった場合、プロセスはグリッド・ジョブを否認し（ブロック７０６）、終了する。
【００５３】
ブロック７０４において認証がうまくいった場合、プロセスはユーザを認証し（ブロック７０８）、認証がうまくいったかどうかの判断がなされる（ブロック７１０）。認証がうまくいかなかった場合、プロセスはグリッド・ジョブを否認し（ブロック７０６）、終了する。
【００５４】
ブロック７１０において認証がうまくいった場合、プロセスは、ユーザ・マシンからグリッド・ジョブを受け取り（ブロック７１２）、グリッド・ジョブをオフロードするかどうかの判断がなされる（ブロック７１４）。グリッド・ジョブが一次リソース・マシンによって処理される前のどの時点においても、ブロック７１４における判断をなすことができる。グリッド・ジョブがオフロードされない場合、プロセスはグリッド・ジョブを実行し（ブロック７１６）、プロセスは終了する。
【００５５】
ブロック７１４において、グリッド・ジョブがオフロードされる場合、プロセスは、グリッド・ジョブを送るための二次リソース・マシンを選択する（ブロック７１８）。次に、プロセスは、証明書要求（ｃｅｒｔｉｆｉｃａｔｅ  ｒｅｑｕｅｓｔ）をユーザ・マシンに送り（ブロック７２０）、ユーザ・マシンからプロキシ証明書を受け取る（ブロック７２２）。その後、プロセスは、プロキシ証明書を用いて、二次リソースとの間の相互認証（ｍｕｔｕａｌ  ａｕｔｈｅｎｔｉｃａｔｉｏｎ）を行う（ブロック７２４）。
【００５６】
二次リソースとの間の認証がうまくいったかどうかの判断がなされる（ブロック７２６）。認証がうまくいかなかった場合、プロセスはブロック７１８に戻り、別の二次リソースを選択する。しかしながら、ブロック７２６において二次リソースとの間の認証がうまくいった場合、プロセスは、グリッド・ジョブを二次リソースにオフロードし（ブロック７２８）、プロセスは終了する。
【００５７】
図８は、本発明の例示的な実施形態による、グリッド・コンピューティング・システム内のユーザ・マシンの作動を示すフローチャートである。プロセスは、グリッド・ジョブがグリッド・コンピューティング・システム内のリソースに実行依頼されたときに始まる。プロセスは、一次リソースを識別し（ブロック８０２）、一次リソースとの間の相互認証を行う（ブロック８０４）。認証がうまくいったかどうかについての判断がなされる（ブロック８０６）。認証がうまくいかなかった場合、プロセスはブロック８０２に戻り、別の一次リソースを識別する。
【００５８】
ブロック８０６において認証がうまくいった場合、プロセスは、一次リソースとの間の認証を行う（ブロック８０８）。次に、一次リソースとの間の認証がうまくいったかどうかの判断がなされる（ブロック８１０）。認証がうまくいかなかった場合、プロセスはブロック８０２に戻り、別の一次リソースを識別する。
【００５９】
ブロック８１０において認証がうまくいった場合、プロセスは、グリッド・ジョブを一次リソースに送る（ブロック８１２）。終了条件が存在するかどうかについての判断がなされる（ブロック８１４）。例えば、ユーザ・マシンが停止されるとき、又はユーザ・マシン上でグリッド・コンピューティング・ソフトウェアが閉じられるとき、終了条件が存在する。グリッド・ジョブについての結果を受け取ったときも、終了条件が存在する。終了条件が存在する場合、プロセスは終了する。
【００６０】
しかしながら、ブロック８１４において終了条件が存在しない場合、一次リソースから証明書要求を受け取ったかどうかについての判断がなされる（ブロック８１６）。証明書要求を受け取っていない場合、プロセスはブロック８１４に戻り、終了条件が存在するかどうかを判断する。
【００６１】
ブロック８１６において一次リソースから証明書要求を受け取った場合、プロセスは二次リソースとの間の認証を行う（ブロック８１８）。次に、二次リソースとの間の認証がうまくいったかどうかについての判断がなされる（ブロック８２０）。ブロック８２０において認証がうまくいった場合、プロセスは、有効プロキシ証明書を生成し（ブロック８２２）、他の場には、プロセスは、無効プロキシ証明書を生成する（ブロック８２４）。ブロック８２２及び８２４の一方において有効プロキシ証明書又は無効プロキシ証明書（ｖａｌｉｄ  ｏｒ  ｉｎｖａｌｉｄ  ｐｒｏｘｙ  ｃｅｒｔｉｆｉｃａｔｉｏｎ）が生成された後、プロセスは、プロキシ証明書を一次リソースに戻す。その後、プロセスはブロック８１４に戻り、終了条件が存在するかどうかを判断する。
【００６２】
このように、本発明は、プロキシ証明書の生成によるグリッド相互認証のための機構を提供することによって、従来技術の欠点を解決するものである。グリッド内のリソース・マシンは、ユーザＩＤを認証リスト又はグリッドマップ・ファイルと比較することによって、ユーザを認証することができる。本発明は、グリッド・リソース・マシン上のグリッド・ソフトウェアを変えることなく、依然として既存のグリッド相互認証及び一方向の認証の流れの中で働く、グリッド・ジョブの分散の認証を制御するように、ユーザ・マシンを構成することを可能にする。本発明の機構は、グリッド・ユーザがジョブを実行依頼し、立ち去ることを可能にしながら、シングル・サインオン・パラダイムを維持する。
【００６３】
本発明は、完全に機能するデータ処理システムに関連して説明されたが、当業者であれば、本発明のプロセスは、コンピュータ可読媒体の命令形態及び種々の形態で配布できること、及び、本発明は、配布を行うために実際に用いられる信号保持媒体の特定形態に関係なく、等しく適用できるものと認識するであろうという点は重要なことである。コンピュータ可読媒体の例は、フロッピィ・ディスク、ハードディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の書込み可能媒体、及び、デジタル通信リンク及びアナログ通信リンク、例えばラジオ周波数及び光波伝送等の伝送形態といった伝送形態を用いる有線通信リンク又は無線通信リンク等の伝送型媒体を含む。コンピュータ可読媒体は、特定のデータ処理システムにおいて実際に用いるために復号化される、符号化フォーマットの形態をとることができる。
【００６４】
本発明の説明は、例示及び説明の目的で提示されるものであり、包括的であること、又は、本発明を開示される形態に限定することを意図するものではない。多くの変更及び変形が当業者には明らかであろう。実施形態は、本発明の原理、実用的な用途を最適に説明するために、また、他の当業者が、意図する特定の用途に適したように種々の修正を行って種々の実施形態で実施する場合に本発明を理解できるように、選択され、説明されたものである。
【図面の簡単な説明】
【００６５】
【図１】本発明を実施することができる、データ処理システムのネットワークの図形表示を示す。
【図２】本発明の好ましい実施形態による、サーバとして実装することができるデータ処理システムのブロック図である。
【図３】本発明を実施することができる、データ処理システムのブロック図である。
【図４】グリッド・ジョブを一次リソースから二次リソースにオフロードするためのプロセスを示す。
【図５】本発明の好ましい実施形態による、プロキシ証明書の生成によるグリッド相互認証を用いて、グリッド・ジョブを一次リソースから二次リソースにオフロードするためのプロセスを示す。
【図６】本発明の例示的な実施形態による、グリッド・コンピューティング・システム内のマシンを示すブロック図である。
【図７】本発明の例示的な実施形態による、グリッド・コンピューティング・システム内のリソース・マシンの作動を示すフローチャートである。
【図８】本発明の例示的な実施形態による、グリッド・コンピューティング・システム内のユーザ・マシンの作動を示すフローチャートである。
【図１】
2007531093.tif 000003
【図２】
2007531093.tif 000004
【図３】
2007531093.tif 000005
【図４】
2007531093.tif 000006
【図５】
2007531093.tif 000007
【図６】
2007531093.tif 000008
【図７】
2007531093.tif 000009
【図８】
2007531093.tif 000010
【国際調査報告】
2007531093.tif 000011
2007531093.tif 000012
2007531093.tif 000013