(57)【要約】【課題】リソース・グリッドを確立するプロセスのほとんどの部分または全体を自動化するための機構を提供する。【解決手段】グリッド確立コンポーネント（ＧＥＣ）の形態をとることができるこの機構は、複数のノードに通信可能に結合される。ノードは、ゼロまたは複数のリソースを提供する。ＧＥＣが、ノードに結合された後、ＧＥＣは、どのノードがリソース・グリッドに含まれることを決定する。リソース・グリッドに含まれるように選択されるノードが、グリッド・ノードに呼び出される。グリッド・ノードが選択された後、ＧＥＣは、各グリッド・ノードがリソース・グリッドの一部として加われるように、各グリッド・ノードを構成させることによって、リソース・グリッドを確立することを進める。さらに、ＧＥＣは、グリッド・ノードによって提供されるリソースに対するアクセスを管理するために、１つ以上のグリッド・マスタを確立する。【選択図】図１
2005092880.tif 000002
【特許請求の範囲】
【請求項１】
グリッド確立コンポーネントによって、リソース・グリッドに含むように、複数のノードからグリッド・ノードのセットを決定することを含み、各グリッド・ノードは、ゼロ以上のリソースを提供し、さらに、
前記グリッド確立コンポーネントによって、前記リソース・グリッドを確立することを含み、その確立することが、
グリッド・ノードが前記リソース・グリッドの一部として加われるように、各グリッド・ノードを構成させることと、
前記グリッド・ノードによって形成される前記リソース・グリッドが１つ以上のグリッド・マスタを介してアクセス可能な単一のリソースのプールとして振る舞うように、前記グリッド・ノードによって提供される前記リソースへのアクセスを管理するために、１つ以上のグリッド・マスタを確立することとを含む、方法。
【請求項２】
各グリッド・ノードが、そのノードで動作するグリッド・ファシリテーション・エージェントを有し、グリッド・ノードが前記リソース・グリッドの一部として加われるようにグリッド・ノードを構成させることとが、
前記グリッド・ノード上で動作する前記グリッド・ファシリテーション・エージェントに対してグリッド参加モジュールを展開することと、
前記グリッド・ノードが前記リソース・グリッドの一部として加われるように、前記グリッド・ノード上で前記グリッド参加モジュールを実行させるために、前記グリッド・ファシリテーション・エージェントに命令することとを含む請求項１に記載の方法。
【請求項３】
前記グリッド・ノードのセットを決定することが、
複数のノードのどれが、その上で動作するグリッド・ファシリテーション・エージェントを有するかを決定することと、
前記グリッド・ノードとしてそれらノードを選択することとを含む請求項２に記載の方法。
【請求項４】
グリッド・ノードが前記リソース・グリッドの一部として加われるように、グリッド・ノードを構成させることとが、
前記グリッド・ノードにその上で前記グリッド・ファシリテーション・エージェントを実行させることと、
前記グリッド・ノード上で実行するグリッド・ファシリテーション・エージェントに対して、グリッド参加モジュールを展開することと、
グリッド・ノードが前記リソース・グリッドの一部として加われるように、前記グリッド・ノード上の前記グリッド参加モジュールを実行させるために、前記グリッド・ファシリテーション・エージェントに命令することとを含む請求項１に記載の方法。
【請求項５】
前記グリッド・ノードに前記グリッド・ファシリテーション・エージェントを実行させることが、
前記グリッド・ノードとは分離されたコンポーネントから得られたオペレーティング・システム・イメージを使用して、前記グリッド・ノードにリブートさせることを含み、前記オペレーティング・システム・イメージが、前記グリッド・ファシリテーション・エージェントを備える請求項４に記載の方法。
【請求項６】
前記グリッド・ノードに前記グリッド・ファシリテーション・エージェントを実行させることが、
前記グリッド・ノードの特権ポートを介して、前記グリッド・ノードとは分離されたコンポーネントから得られたオペレーティング・システム・イメージを使用してリブートするように、前記グリッド・ノードに命令することを含み、前記オペレーティング・システム・イメージが、前記グリッド・ファシリテーション・エージェントを備える請求項４に記載の方法。
【請求項７】
前記グリッド・ノードのセットを決定することが、
複数のノードのどれに対して、前記グリッド確立コンポーネントが、特権ポートに対するアクセスを有するかを決定することと、
前記グリッド・ノードとしてそれらノードを選択することとを含む請求項６に記載の方法。
【請求項８】
グリッド・ノードが前記リソース・グリッドの一部として加われるように、グリッド・ノードを構成させることとが、
前記グリッド・ノード上で実行するオペレーティング・システムに対してグリッド・ファシリテーション・エージェントを展開することと、
前記グリッド・ノード上で前記グリッド・ファシリテーション・エージェントを実行するように、前記オペレーティング・システムに命令することと、
前記グリッド・ノード上で実行する前記グリッド・ファシリテーション・エージェントに対して、グリッド参加モジュールを展開することと、
前記グリッド・ノードが前記リソース・グリッドの一部として加われるように、前記グリッド・ノード上で前記グリッド参加モジュールを実行させるように、前記グリッド・ファシリテーション・エージェントに命令することとを含む請求項１に記載の方法。
【請求項９】
前記複数のノードそれぞれが、その上で実行するオペレーティング・システムを有し、前記グリッド・ノードのセットを決定することが、
前記複数のノードそれぞれに関して、前記グリッド確立コンポーネントが、前記オペレーティング・システムに対して前記グリッド・ファシリテーション・エージェントを展開するために、そのノードで実行する前記オペレーティング・システムに対する十分な特権アクセスを有するかどうかを決定することと、
前記グリッド確立コンポーネントが、前記オペレーティング・システムに対する十分な特権アクセスを有することの決定に応答して、前記ノードを前記グリッド・ノードの１つとして選択することとを含む請求項８に記載の方法。
【請求項１０】
決定することが、
前記グリッド・ノードのセットを特定するアドミニストレータから情報のセットを受け取ることを含む請求項１に記載の方法。
【請求項１１】
前記リソース・グリッドを確立することが、ユーザの介在なしに前記グリッド確立コンポーネントによって実装される請求項１に記載の方法。
【請求項１２】
１つ以上のグリッド・マスタを確立することが、
グリッド・マスタとして前記グリッド確立コンポーネントを確立することを含む請求項１に記載の方法。
【請求項１３】
１つ以上のグリッド・マスタを確立することが、
グリッド・マスタとして少なくとも１つの前記グリッド・ノードを確立することを含む請求項１に記載の方法。
【請求項１４】
複数のノードに通信可能に結合される装置であって、
前記複数のノードから、リソース・グリッドに含むようにグリッド・ノードのセットを決定する機構を含み、各グリッド・ノードは、ゼロ以上のリソースを提供し、装置はさらに、
前記リソース・グリッドを確立する機構を含み、前記リソース・グリッドを確立する機構が、
グリッド・ノードが前記リソース・グリッドの一部として加われるように、各グリッド・ノードを構成させるための機構と、
前記グリッド・ノードによって形成される前記リソース・グリッドが、１つ以上のグリッド・マスタを介してアクセス可能な単一のリソースのプールとして振る舞うように、前記グリッド・ノードによって提供される前記リソースへのアクセスを管理するために、１つ以上のグリッド・マスタを確立する機構とを含む、装置。
【請求項１５】
各グリッド・ノードが、その上で動作するグリッド・ファシリテーション・エージェントを有し、グリッド・ノードが前記リソース・グリッドの一部として加われるように、グリッド・ノードを構成させる前記機構が、
前記グリッド・ノード上で動作する前記グリッド・ファシリテーション・エージェントに対してグリッド参加モジュールを展開する機構と、
前記グリッド・ノードを前記リソース・グリッドの一部として加わえるために、そのグリッド・ノード上で前記グリッド参加モジュールを実行させるように、前記グリッド・ファシリテーション・エージェントに命令する機構とを含む請求項１４に記載の装置。
【請求項１６】
前記グリッド・ノードのセットを決定する機構が、
複数のノードのどれが、その上で動作するグリッド・ファシリテーション・エージェントを有するかを決定する機構と、
前記グリッド・ノードとしてそれらノードを選択する機構とを含む請求項１５に記載の装置。
【請求項１７】
グリッド・ノードが前記リソース・グリッドの一部として加われるように、グリッド・ノードを構成させるための機構が、
前記グリッド・ノードにその上でグリッド・ファシリテーション・エージェントを実行させるための機構と、
前記グリッド・ノード上で実行する前記グリッド・ファシリテーション・エージェントに対して、グリッド参加モジュールを展開する機構と、
グリッド・ノードを前記リソース・グリッドの一部として加わえるために、前記グリッド・ノード上の前記グリッド参加モジュールを実行させるように、前記グリッド・ファシリテーション・エージェントに命令する機構とを含む請求項１４に記載の装置。
【請求項１８】
前記グリッド・ノードに前記グリッド・ファシリテーション・エージェントを実行させるための機構が、
前記グリッド・ノードとは分離されたコンポーネントから得られたオペレーティング・システム・イメージを使用して、前記グリッド・ノードにリブートさせるための機構を含み、前記オペレーティング・システム・イメージが、前記グリッド・ファシリテーション・エージェントを備える請求項１７に記載の装置。
【請求項１９】
前記グリッド・ノードに前記グリッド・ファシリテーション・エージェントを実行させるための機構が、
前記グリッド・ノードの特権ポートを介して、前記グリッド・ノードとは分離されたコンポーネントから得られたオペレーティング・システム・イメージを使用してリブートするように、前記グリッド・ノードに命令する機構を含み、前記オペレーティング・システム・イメージが、前記グリッド・ファシリテーション・エージェントを備える請求項１７に記載の装置。
【請求項２０】
前記グリッド・ノードのセットを決定する機構が、
複数のノードのどれに対して、前記グリッド確立コンポーネントが、特権ポートに対するアクセスを有するかを決定する機構と、
前記グリッド・ノードとしてそれらノードを選択する機構とを含む請求項１９に記載の装置。
【請求項２１】
グリッド・ノードが前記リソース・グリッドの一部として加われるように、グリッド・ノードを構成させるための機構が、
前記グリッド・ノード上で実行するオペレーティング・システムに対してグリッド・ファシリテーション・エージェントを展開する機構と、
前記グリッド・ノード上で前記グリッド・ファシリテーション・エージェントを実行するように、前記オペレーティング・システムに命令する機構と、
前記グリッド・ノード上で実行する前記グリッド・ファシリテーション・エージェントに対して、グリッド参加モジュールを展開する機構と、
前記グリッド・ノードを前記リソース・グリッドの一部として加わえるために、前記グリッド・ノード上で前記グリッド参加モジュールを実行させるように、前記グリッド・ファシリテーション・エージェントに命令する機構とを含む請求項１４に記載の装置。
【請求項２２】
前記複数のノードそれぞれが、その上で実行するオペレーティング・システムを有し、前記グリッド・ノードのセットを決定する機構が、
前記複数のノードそれぞれに関して、前記グリッド確立コンポーネントが、前記オペレーティング・システムに対して前記グリッド・ファシリテーション・エージェントを展開するために、そのノードで実行する前記オペレーティング・システムに対する十分な特権アクセスを有するかどうかを決定する機構と、
前記グリッド確立コンポーネントが、前記オペレーティング・システムに対する十分な特権アクセスを有することの決定に応答して、前記ノードを前記グリッド・ノードの１つとして選択する機構とを含む請求項２１に記載の装置。
【請求項２３】
決定する機構が、
前記グリッド・ノードのセットを特定するアドミニストレータから情報のセットを受け取るための機構を含む請求項１４に記載の装置。
【請求項２４】
前記装置が、ユーザの介在なしに前記リソース・グリッドを確立する請求項１４に記載の装置。
【請求項２５】
１つ以上のグリッド・マスタを確立する機構が、
グリッド・マスタとして前記グリッド確立コンポーネントを確立する機構を含む請求項１４に記載の装置。
【請求項２６】
１つ以上のグリッド・マスタを確立する機構が、
グリッド・マスタとして少なくとも１つの前記グリッド・ノードを確立する機構を含む請求項１４に記載の装置。
【請求項２７】
複数のノードを含むシステムにおける、コンピュータ読み取り可能な媒体であって、
１つ以上のプロセッサに、前記複数のノードから、リソース・グリッドに含むグリッド・ノードのセットを決定させる命令を含み、各グリッド・ノードは、ゼロ以上のリソースを提供し、コンピュータ読み取り可能な媒体はさらに、
１つ以上のプロセッサに前記リソース・グリッドを確立させる命令を含み、前記１つ以上のプロセッサに確立させる命令が、
１つ以上のプロセッサにグリッド・ノードが前記リソース・グリッドの一部として加われるように、各グリッド・ノードを構成させる命令と、
前記グリッド・ノードによって形成される前記リソース・グリッドが、１つ以上のグリッド・マスタを介してアクセス可能な単一のリソースのプールとして振る舞うように、前記グリッド・ノードによって提供される前記リソースへのアクセスを管理するために、１つ以上のプロセッサに、１つ以上のグリッド・マスタを確立させる命令とを含む、コンピュータ読み取り可能な媒体。
【請求項２８】
各グリッド・ノードが、その上で動作するグリッド・ファシリテーション・エージェントを有し、１つ以上のプロセッサに、グリッド・ノードが前記リソース・グリッドの一部として加わるようにグリッド・ノードを構成させる命令が、
１つ以上のプロセッサに、前記グリッド・ノード上で動作する前記グリッド・ファシリテーション・エージェントに対してグリッド参加モジュールを展開させる命令と、
１つ以上のプロセッサに、前記グリッド・ノードが前記リソース・グリッドの一部として加われるように前記グリッド・ノード上で前記グリッド参加モジュールを実行させるために、前記グリッド・ファシリテーション・エージェントに命令させる命令とを含む請求項２７に記載のコンピュータ読み取り可能な媒体。
【請求項２９】
１つ以上のプロセッサに、前記グリッド・ノードのセットを決定させる命令が、
１つ以上のプロセッサに、複数のノードのどれが、その上で動作するグリッド・ファシリテーション・エージェントを有するかを決定させる命令と、
１つ以上のプロセッサに、前記グリッド・ノードとしてそれらノードを選択させる命令とを含む請求項２８に記載のコンピュータ読み取り可能な媒体。
【請求項３０】
１つ以上のプロセッサに、グリッド・ノードが前記リソース・グリッドの一部として加われるように、グリッド・ノードを構成させる命令が、
１つ以上のプロセッサに、前記グリッド・ノードにその上でグリッド・ファシリテーション・エージェントを実行させる命令と、
１つ以上のプロセッサに、前記グリッド・ノード上で実行する前記グリッド・ファシリテーション・エージェントに対して、グリッド参加モジュールを展開させる命令と、
１つ以上のプロセッサに、グリッド・ノードを前記リソース・グリッドの一部として加わえるために、前記グリッド・ノード上の前記グリッド参加モジュールを実行させるように、前記グリッド・ファシリテーション・エージェントに命令させる命令とを含む請求項２７に記載のコンピュータ読み取り可能な媒体。
【請求項３１】
１つ以上のプロセッサに、前記グリッド・ノードに前記グリッド・ファシリテーション・エージェントを実行させる命令が、
１つ以上のプロセッサに、前記グリッド・ノードとは分離されたコンポーネントから得られたオペレーティング・システム・イメージを使用して、前記グリッド・ノードにリブートさせる命令を含み、前記オペレーティング・システム・イメージが、前記グリッド・ファシリテーション・エージェントを備える請求項３０に記載のコンピュータ読み取り可能な媒体。
【請求項３２】
１つ以上のプロセッサに、前記グリッド・ノードに前記グリッド・ファシリテーション・エージェントを実行させる命令が、
１つ以上のプロセッサに、前記グリッド・ノードの特権ポートを介して、前記グリッド・ノードとは分離されたコンポーネントから得られたオペレーティング・システム・イメージを使用してリブートするように、前記グリッド・ノードに命令させる命令を含み、前記オペレーティング・システム・イメージが、前記グリッド・ファシリテーション・エージェントを備える請求項３０に記載のコンピュータ読み取り可能な媒体。
【請求項３３】
１つ以上のプロセッサに、前記グリッド・ノードのセットを決定させる命令が、
１つ以上のプロセッサに、複数のノードのどれに対して、前記グリッド確立コンポーネントが特権ポートに対するアクセスを有するかを決定させる命令と、
１つ以上のプロセッサに、前記グリッド・ノードとしてそれらノードを選択させる命令とを含む請求項３２に記載のコンピュータ読み取り可能な媒体。
【請求項３４】
１つ以上のプロセッサに、グリッド・ノードが前記リソース・グリッドの一部として加われるように、グリッド・ノードを構成させる命令が、
１つ以上のプロセッサに、前記グリッド・ノード上で実行するオペレーティング・システムに対してグリッド・ファシリテーション・エージェントを展開させる命令と、
１つ以上のプロセッサに、前記グリッド・ノード上で前記グリッド・ファシリテーション・エージェントを実行するように、前記オペレーティング・システムに命令させる命令と、
１つ以上のプロセッサに、前記グリッド・ノード上で実行する前記グリッド・ファシリテーション・エージェントに対して、グリッド参加モジュールを展開させる命令と、
１つ以上のプロセッサに、前記グリッド・ノードを前記リソース・グリッドの一部として加わえるために、前記グリッド・ノード上で前記グリッド参加モジュールを実行させるように、前記グリッド・ファシリテーション・エージェントに命令させる命令とを含む請求項２７に記載のコンピュータ読み取り可能な媒体。
【請求項３５】
前記複数のノードそれぞれが、その上で実行するオペレーティング・システムを有し、１つ以上のプロセッサに、前記グリッド・ノードのセットを決定させる命令が、
１つ以上のプロセッサに、前記複数のノードそれぞれに関して、前記グリッド確立コンポーネントが、前記オペレーティング・システムに対して前記グリッド・ファシリテーション・エージェントを展開するために、そのノードで実行する前記オペレーティング・システムに対する十分な特権アクセスを有するかどうかを決定させる命令と、
１つ以上のプロセッサに、前記グリッド確立コンポーネントが、前記オペレーティング・システムに対する十分な特権アクセスを有することの決定に応答して、前記ノードを前記グリッド・ノードの１つとして選択させる命令とを含む請求項３４に記載のコンピュータ読み取り可能な媒体。
【請求項３６】
１つ以上のプロセッサに、決定させる命令が、
１つ以上のプロセッサに、前記グリッド・ノードのセットを特定するアドミニストレータから情報のセットを受け取らせる命令を含む請求項２７に記載のコンピュータ読み取り可能な媒体。
【請求項３７】
１つ以上のプロセッサに、前記リソース・グリッドを確立させる命令が、ユーザの介在なしに１つ以上のプロセッサに前記リソース・グリッドを確立させる請求項２７に記載のコンピュータ読み取り可能な媒体。
【請求項３８】
１つ以上のプロセッサに、１つ以上のグリッド・マスタを確立させる命令が、
１つ以上のプロセッサに、グリッド・マスタとして前記グリッド確立コンポーネントを確立させる命令を含む請求項２７に記載のコンピュータ読み取り可能な媒体。
【請求項３９】
１つ以上のプロセッサに、１つ以上のグリッド・マスタを確立させる命令が、
１つ以上のプロセッサに、グリッド・マスタとして少なくとも１つの前記グリッド・ノードを確立させる命令を含む請求項２７に記載のコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
多くのコンピュータ・システム実装において、複数のノードを、リソース・グリッドとして作用するように構成することが望ましい。そうすることによって、個々のノードが、その１つまたは複数のリソースをリソース・プールに設けることができる。リソース・グリッドが設定されると、リソース・プールにおけるリソースを、外部コンポーネントによって呼び出すことができる。ストレージ・リソースと処理・リソースを含むがそれに限定されない任意のタイプのリソースを、このようにプールすることができる。
【背景技術】
【０００２】
一般に、リソース・グリッドは、複数のスレーブ・ノードと１つ以上のマスタ・ノードを備える。スレーブ・ノードはリソースを提供するノードであり、マスタ・ノードは、スレーブ・ノードと外部コンポーネントとの間のインタフェースとして作用する。ノードはスレーブ・ノードとマスタ・ノードの両方である。すなわち、ノードは、１つ以上のリソースを提供することができ、かつスレーブ・ノードと外部コンポーネントとの間のインタフェースとして作用する。
【０００３】
インタフェースとしての役割を果たす際、マスタ・ノードは外部コンポーネントからリソース要求を受け取る。リソース要求に応答して、マスタ・ノードは、要求を果たすためにどのスレーブ・ノードを呼び出すかを決定する。この決定を行う際に、マスタ・ノードは、例えばスレーブ・ノード上の現在の負荷を含む多くの要因を考慮する（これによって、マスタ・ノードがスレーブ・ノード間の負荷を平衡することを可能にする）。スレーブ・ノードが選択されると、マスタ・ノードは、リソース要求を処理するためにスレーブ・ノードに転送する。このように、マスタ・ノードは、スレーブ・ノードの使用を調整し、リソース・グリッドにおけるスレーブ・ノードによって提供されるリソースにアクセスするために、外部コンポーネントに関するアクセス・ポイントとして作用する。マスタ・ノードが、アクセス・ポイントとして作用するので、外部コンポーネントは、リソース・グリッドの隠された構造と複雑性から遮蔽される。したがって外部コンポーネントの観点から、リソース・グリッドは、マスタ・ノードを通じてアクセス可能であるリソースの単一のプールとして振る舞う。
【０００４】
リソース・グリッドは、多数の有利な特性を有する。リソース・グリッドは、任意の数のノードを有するので、リソース・グリッドは、一般に極めてスケーラブルである（リソース・プールにおけるリソースの数を増大させるために多くのノードを追加することができる）。また、リソース・グリッドはフォールト・トレラントである。スレーブ・ノードがダウンしたなら、マスタ・ノードは、そのスレーブ・ノードの使用を単に停止しかつ他のスレーブ・ノードに要求を転送するだけでよい。リソース・グリッドの負荷を平衡させることができ、全てのスレーブ・ノードは、効率を最大化するために適切な作業負荷を有する。これらとその他の特性のために、リソース・グリッドを実装することは、多くのコンピューティング・アプリケーションにおいて望ましい。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
現在、リソース・グリッドを実装するプロセスは、システム・アドミニストレータの観点から非常に労力がかかりかつ時間がかかる。特に、アドミニストレータは、そのノードをリソース・グリッドの一部として機能させるために、リソース・グリッドの各ノードでの多数の手動の作業を実行しなければならない。これらの手動の作業は、例えば、各ノードに手動でアクセスすること、各ノードにグリッド・パーティシペーション・ソフトウェアをロードすること、グリッド・パーティシペーション・ソフトウェアを構成しかつ実行すること、スレーブ・ノード、マスタ・ノード、または両方であるようにノードを設定することを含む。これらの手動の作業は、実行するために著しい量の時間を必要とすることがあり、それらの作業は、各ノードに対して実行されなければならないので、特にリソース・グリッドが非常に多くのノードを備えるなら、リソース・グリッド全体を設定するために必要なアドミニストレータの時間量はかなりなものとなる。
【課題を解決するための手段】
【０００６】
アドミニストレータの負担を軽減するために、本発明の一実施態様は、リソース・グリッドを確立するプロセスのほとんどの部分または全体を自動化するための機構を提供する。
【０００７】
一実施態様において、グリッド確立コンポーネント（Grid Establishment Component：ＧＥＣ）は、複数のノードに通信可能に結合され、各ノードは、ゼロまたは複数のリソースを提供する。ＧＥＣがノードに結合された後、ＧＥＣは、どのノードをリソース・グリッドに含めるかを決定する。例えば、これは、ＧＥＣが、どのノードでグリッド確立動作を実行するかを決定することを含む。リソース・グリッドはいくつかのまたは全てのノードを含むことができる（リソース・グリッドに含まれると選択されたノードは以降グリッド・ノードと呼び出される）。
【０００８】
グリッド・ノードが決定された後、ＧＥＣは、リソース・グリッドを確立することを進める。一実施態様において、ＧＥＣは、各グリッド・ノードがリソース・グリッドの一部として加われるように、各グリッド・ノードを構成させることによってそれを行う。これは、例えば、グリッド・ノードにグリッド・ファシリテーション・エージェントを実行させることや、グリッド・ノードで実行するため、グリッド・ファシリテーション・エージェントに対してグリッド参加モジュールを展開することを含むことができる。リソース・グリッドの確立を完成させるために、ＧＥＣは、グリッド・ノードによって提供されるリソースに対するアクセスを管理するために、１つ以上のグリッド・マスタを確立する。ＧＥＣは、管理する全てのノード（スレーブ・ノード）をグリッド・マスタに知らせ、かつスレーブ・ノードにグリッド・マスタを知らせる。スレーブ・ノードとグリッド・マスタが、互いに知らされると、それらは、リソース・グリッドとして作用するように協働することができる。その後、リソース・グリッドは通常の動作の準備状態にある。
【０００９】
グリッド確立プロセスを自動化することによって、ＧＥＣは、アドミニストレータから著しい負担を取り除き、リソース・グリッドを確立するプロセスを著しく簡略化しかつ加速する。
【発明を実施するための最良の形態】
【００１０】
図１は本発明の一実施形態による、リソース・グリッドの確立におけるグリッド確立コンポーネントの動作を示す、高いレベルの動作のフロー図である。
【００１１】
図２Ａ−２Ｃは本発明の一実施形態を実装することができる第１のサンプル・システムの機能ブロック図を示す。
【００１２】
図３Ａ−３Ｃは本発明の一実施形態を実装することができる第２のサンプル・システムの機能ブロック図を示す。
【００１３】
図４Ａ−４Ｂは本発明の一実施形態を実装することができる第３のサンプル・システムの機能ブロック図を示す。
【００１４】
図５は図２−図４のＧＥＣの一実施形態を実行することができる、サンプル・コンピュータ・システムのハードウェア・ブロック図である。
【００１５】
概要
本発明の一実施形態によれば、リソース・グリッドを確立するプロセスの大部分または全体を自動化するために、グリッド確立コンポーネント（以降ＧＥＣ）を用意する。本明細書で使用されるとき、用語「リソース・グリッド」は、１つ以上のリソースのプールを提供するために協働するノードの任意の収集を広く言及する。
【００１６】
リソース・グリッドを確立するために、ＧＥＣは、複数のノードに通信可能に結合される。本発明の目的のために、ノードは、ゼロまたは複数のリソースを提供することができる任意の機構でありえる。これらのリソースは、ストレージ・リソースと処理・リソースを含むがこれらに限定されない、任意のタイプのリソースでよい。ノードは、物理エンティ（例えば、コンピュータ、周辺機器）、論理エンティ（例えば、ソフトウェア・プロセス）、またはリプリゼンタティブ・エンティ（例えば、コンピュータのクラスタを表すエンティ）でありえる。
【００１７】
ＧＥＣが、複数のノードに結合された後、ＧＥＣは、リソース・グリッドを確立することを進める。一実施形態において、ＧＥＣは、アドミニストレータからの入力とともにまたは入力なしに、リソース・グリッドを確立することができる。図１は、リソース・グリッドの確立におけるＧＥＣの動作を示す、高いレベルの動作のフロー図を示す。
【００１８】
最初に、ＧＥＣは、複数のノードからリソース・グリッドに含まれるノードを決定する（ブロック１０４）。これは、アドミニストレータからノードのリストを受け取るのと同じように簡単である。代わりに、ＧＥＣは、ノード発見／選択プロセスを実行することによって、どのノードをリソース・グリッドに含むかを決定することができる。複数のノードの全てまたはいくつかがリソース・ノードに含まれる。リソース・グリッドに含まれるように選択されるノードのセットが以降、グリッド・ノードと呼び出される。
【００１９】
グリッド・ノードが決定された後、ＧＥＣは、リソース・グリッドを確立することを進める（ブロック１０８）。一実施形態において、ＧＥＣは、各グリッド・ノードがリソース・グリッドの一部として加われるように各グリッド・ノードを構成させることによって（ブロック１１２）、リソース・グリッドを確立する。これは、各グリッド・ノードに対してグリッド参加モジュールを展開することと、グリッド・モードにそのモジュールを実行させることとを伴うことがある。リソース・グリッドの確立を完成させるために、ＧＥＣは、グリッド・ノードによって提供されるリソースに対するアクセスを管理するために、１つ以上のグリッド・マスタを確立する（ブロック１１６）。一実施形態において、リソース・グリッドとして１つのグリッド・マスタを確立するが、所望であれば、１つ以上のグリッド・マスタを確立することができる。ＧＥＣが、グリッド・マスタとして自身を確立することができ、またはグリッド・マスタとして、グリッド・ノードの１つを確立することができる。グリッド・マスタの確立に加えて、ＧＥＣは、全ての他のグリッド・ノードをスレーブ・ノードとして動作するように構成する。ＧＥＣは、グリッド・マスタに管理する全てのスレーブ・ノードを知らせ、かつスレーブ・ノードにグリッド・マスタを知らせる。スレーブ・ノードとグリッド・マスタが、互いに知らされると、それらは、リソース・グリッドとして動作することができる。このように、リソース・グリッドは、ＧＥＣによって自動的に確立される。
【００２０】
上述の議論は、ＧＥＣの高いレベルの一般的な記載を提供する。ＧＥＣが実装される特定のシステムに応じて、ブロック１０４−１１６で実行される動作が異なってもよい。本発明の完全な理解を容易にするために、ＧＥＣの動作は、いくつかの特別の実装を参照して記載される。しかしながら、以下の例は、例示の目的だけで提供されることに留意されたい。それらは、包括的でありまたは排他的であることを意味しない。ＧＥＣは、これらのや多くの他のシステムに実装されることができる。したがって、本発明は、以下のサンプル実装に制限されると解釈されるべきではない。
【００２１】
第１のサンプル実装
図２Ａは、本発明の一実施形態を実装することができる第１のサンプル・システム２００の機能ブロック図を示す。図２Ａは、リソース・グリッドの確立前のシステム２００を示す。示されるように、システム２００は、相互接続部２０４を介してともに結合された複数のノード２０６を備えている。ＧＥＣ２０２も相互接続部２０４に結合される。相互接続部２０４を通じて、ＧＥＣ２０２は、リソース・グリッドを確立するために、少なくともいくつかのノード２０６と通信することができる。
【００２２】
一実施形態において、システム２００における相互接続部２０４は、いくつかまたは全てのノード２０６の特権ポートに結合される。ノード２０６に１つ以上の基本機能を実行させるために、この特権ポート（例えば、シリアル・ポートである）で、コンポーネント（例えば、ＧＥＣ２０２）がノード２０６に命令を送ることができる。例えば、ＧＥＣ２０２が、相互接続部２０４を介してノード２０６の特権ポートにアクセスすると、ＧＥＣ２０２は、ノードをリブートさせるためにノード２０６に命令を送ることができる。以下により詳細に記載されるように、ＧＥＣ２０２がこの能力を利用して、リソース・グリッドの一部として加わるように、ノードを構成させることができる。
【００２３】
システム２００におけるリソース・グリッドを確立するために、ＧＥＣ２０２は、図１に示される一般的な動作を実行する。ＧＥＣ２０２は、リソース・グリッドに含まれるノードを複数のノード２０６から決定する（図１のブロック１０４）ことから始める。システム２００において、ＧＥＣ２０２が特権ポートへのアクセスをどのノード２０６に対して有するかを決定することによって、ＧＥＣ２０２はこの決定を行うことができる。例えば、これは、特権ポートのＭＡＣアドレスに対して、各ノード２０６を調査することによって行うことができる。ＧＥＣ２０２が、ノード２０６の特権ポートに対するアクセスを有するなら、この調査は他のＭＡＣアドレスに戻る。このように、ＧＥＣ２０２は、アクセスを有する全ての特権ポートのＭＡＣアドレスを得ることができる。一実施形態において、ＧＥＣ２０２が特権ポートへのアクセスを有する全てのノード２０６は、リソース・グリッドに含まれる。リソース・グリッドに含まれるように選択されたノード２０６は、以降グリッド・ノードと呼び出される。例示の目的のために、ノード２０６（１）と２０６（２）（示されていない可能な他のノード）が、グリッド・ノードとして選択されることが仮定される。
【００２４】
ＭＡＣアドレスに対してノード２０６を調査する代わりに、ＧＥＣ２０２は、アドミニストレータからノードのリストまたはＭＡＣアドレスを単に得ることによって、どのノードをリソース・グリッドに含むかを決定することができる。これおよび他の実装がブロック１０４に関して可能である。
【００２５】
グリッド・ノードが決定された後、ＧＥＣ２０２は、グリッド・ノードを有するリソース・グリッドを確立する（図１のブロック１０８）ことを進める。そうするために、ＧＥＣ２０２は、リソース・グリッドの一部として加われるように、各グリッド・ノードを構成させる（図１のブロック１１２）。システム２００において、ＧＥＣ２０２は、以下のように各グリッド・ノードを構成させる。
【００２６】
最初に、ＧＥＣ２０２は、グリッド・ノードが「ネットワーク・リブート」するように、グリッド・ノードの特権ポートに信号を送る。グリッド・ノードが、ネットワーク・リブートを実行すると、グリッド・ノードは、グリッド・ノードに格納された（あれば）オペレーティング・システムでブート・アップしない。むしろ、他のコンポーネントから得られたオペレーティング・システムのイメージとともにブート・アップする。ネットワーク・リブートは、カルフォルニアのサンタ・クララのＳｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓから入手可能なＪｕｍｐＳｔａｒｔという名称の製品を使用して行われる。一実施形態において、このオペレーティング・システムのイメージがＧＥＣ２０２によって提供される。代わりとして、グリッド・ノードは、（図示されていない）他のコンポーネントからオペレーティング・システムのイメージを得ることができる。一実施形態において、オペレーティング・システム・イメージは、オペレーティング・システムだけでなく、グリッド・ファシリテーション・エージェント（以降エージェント）も含む。したがって、グリッド・ノードが、そのリブート動作を完了すると、それは、エージェントとオペレーティング・システムを実行する。図２Ｂは、グリッド・ノード２０６（１）がこのようにリブートされた後、システム２００の機能ブロック図を示す。示されるように、グリッド・ノード２０６（１）は、今やオペレーティング・システム（ＯＳ）２０８とそこで実行するエージェント２１０を有する。このように、ＧＥＣ２０２は、エージェント２１０をグリッド・ノード２０６（１）にロードさせかつ実行させる。
【００２７】
一実施形態において、エージェント２１０は、リソース・グリッドの確立、保守、進行中の管理を容易にするための機能を備える。例えば、エージェント２１０は、ＧＥＣ２０２と通信するための機能を備える。エージェント２１０は、また、ＧＥＣ２０２からグリッドに関連するモジュールを受け取り、ＧＥＣ２０２によって指示されるようにグリッド・ノード上にこれらのモジュールをインストールし、構成し、かつ動作させる機能を備えている。エージェント２１０は、さらに、グリッド・モジュール２０６（１）にインストールされたグリッドに関連するソフトウェアとＧＥＣ２０２との間の通信を容易にする機能を備える。基本的に、エージェント２１０が、グリッド・ノードにインストールされグリッド・ノードで動作して、ＧＥＣ２０２は、任意のグリッドに関連する動作をグリッド・ノード２０６（１）上で実行させることができる。
【００２８】
エージェント２１０が、グリッド・ノード２０６（１）にインストールされかつ実行された後、ＧＥＣ２０２は、エージェント２１０に対してグリッド参加モジュール（以降ＧＰＭ）を展開し、かつグリッド・ノード２０６（１）上にＧＰＭをインストールし、動作し、かつ構成するようにエージェント２１０に命令することによって、構成プロセスを続ける（図１のブロック１１２）。この命令に応答して、エージェント２１０は、グリッド・ノード２０６（１）上にＧＰＭをインストールし、動作し、構成する。ＧＰＭが展開された後の、グリッド・ノード２０６（１）の機能ブロック図が、図２Ｃに示される。
【００２９】
一実施形態において、ＧＰＭ２１２は、グリッド・ノード２０６（１）が、リソース・グリッドの一部として加わることを可能にする機能を備える。例えば、グリッド・ノード２０６（１）が、スレーブ・ノードであるべきなら、ＧＰＭ２１２は、グリッド・マスタからのリソース要求を受け取り、要求を処理し、かつグリッド・マスタに対して応答（もしあれば）を提供する機能を備えることができる。もしグリッド・ノード２０６（１）が、グリッド・マスタであるなら、ＧＰＭ２１２は、外部コンポーネントからリソース要求を受け取り、どのスレーブ・ノードが、要求を処理するために呼び出されるべきかを決定し、かつ適切なスレーブ・ノードにリソース要求を転送する機能を備える。一実施形態において、ＧＰＭ２１２はスレーブ動作とマスタ動作の両方に関して同じモジュールである。モジュールは、目的の動作のモードに応じて異なって構成されてもよい。代わりに、異なるＧＰＭ２１２は、スレーブ動作とマスタ動作に関して展開されてもよい。これらの実装と他の実装は、本発明の範囲内である。
【００３０】
ＧＰＭ２１２を展開することに加えて、ＧＥＣ２０２は、エージェント２１０に他のアプリケーションとデータ・セットをさらに展開し、エージェント２１０にデータ・セットでそれらのアプリケーションをインストールし、実行し、かつ構成するように命令することができる。これらのアプリケーションは、リソース要求の処理においてＧＰＭ２１２によって呼び出される。エージェント２１０は、ＧＥＣ２０２から任意のモジュールを受け取り、グリッド・ノード２０６（１）上でそのモジュールをインストールし、実行し、かつ構成する機能を備えているので、エージェント２１０は、ＧＥＣ２０２が要求したときに行うことができる。かくして、ＧＥＣ２０２は、それがグリッド・ノード２０６（１）上で展開できるものに対して大きなラティチュードと制御を有する。
【００３１】
記述された方法で、ＧＥＣ２０２は、グリッド・ノード２０６（１）が、リソース・グリッドの一部として加わることができるように、グリッド・ノード２０６（１）を構成させる。ＧＥＣ２０２は、各グリッド・ノードに関してこのプロセスを繰り返す。したがって、図２Ｃに示されるように、構成プロセスの終わりで、各グリッド・ノード２０６（１）、２０６（２）は、インストールされかつその上で実行するエージェント２１０とＧＰＭ２１２を有する。
【００３２】
リソース・グリッドを確立するプロセスを完成させるために、ＧＥＣ２０２は、グリッド・ノードによって提供されるリソースに対するアクセスを管理するために、１つ以上のグリッド・マスタを確立する（図１のブロック１１６）。一実施形態において、リソース・グリッドに対してただ１つのグリッド・マスタを確立させるが、所望であれば、１つ以上のグリッド・マスタが確立させてもよい。ＧＥＣ２０２は、自身をグリッド・マスタとして確立させることができるか（その場合、ＧＥＣ２０２は、グリッド・マスタとして作用する機能を備える）、またはＧＥＣ２０２は、グリッド・ノードの１つをグリッド・マスタとして確立させることができる（例えば、グリッド・ノードに対して適切なＧＰＭ２１２を展開することによって、またはグリッド・マスタとして作用するようにグリッド・ノード上にＧＰＭ２１２を構成することによって）。ＧＥＣ２０２は、どのコンポーネント（自身またはグリッド・ノードの１つ）を、あるビルトイン・ロジックに基づいて、またはアドミニストレータによって提供される入力に基づいて、グリッド・マスタとして確立させるかを決定することができる。
【００３３】
グリッド・マスタが確立された後、ＧＥＣ２０２は、グリッド・マスタに管理される全てのノード（スレーブ・ノード）を知らせ、スレーブ・ノードにグリッド・マスタを知らせる。スレーブ・ノードとグリッド・マスタが互いに知らされると、それらは、リソース・グリッドとして動作するために協働することができる。このように、ＧＥＣ２０２は自動的にリソース・グリッドを確立する。
【００３４】
第２のサンプル実装
図３Ａは、本発明の他の実施形態を実装することができる第２のサンプル・システム３００の機能ブロック図を示す。図３Ａは、リソース・グリッドの確立前のシステム３００を示す。システム３００は複数のノード３０６とＧＥＣ３０２を備え、それらはシステム２００のように、相互接続部３０４を介して全て結合されている。しかしながら、システム２００とは異なり、システム３００の相互接続部３０４は、任意のノード３０６の任意の特権ポートに結合されない（または結合される必要がない）。さらに、システム３００の少なくともいくつかのノード３０６は、他のコンポーネント（ＧＥＣ３０２などの）が、ノード３０６にプログラムをインストールしかつ動作することができるケイパビリティでＯＳ３０８を実行する。ただし、他のコンポーネントが、そのようなアクションを命令するためにＯＳ３０８に対する十分な特権アクセスを有する場合。ＯＳ３０８で利用可能なそのようなケイパビリティで、ＧＥＣ３０２は、リソース・グリッドを確立するためにＯＳ３０８を利用することができる。
【００３５】
システム３００におけるリソース・グリッドを確立するために、ＧＥＣ３０２は、図１に示される一般的な動作を実行する。特に、ＧＥＣ３０２は、リソース・グリッドに含まれるノードを複数のノード３０６から決定する（図１のブロック１０４）ことによって始める。システム３００では、プログラムをインストールさせかつ実行させるために、どのノード３０６に対して、ＧＥＣ３０２が十分な特権アクセスを有するかを決定することによって、ＧＥＣ３０２はこの決定を行うことができる。例えば、これは、各ノード３０６上のＯＳ３０８と通信し、かつ、プログラムをインストールさせかつ実行させるために、そのＯＳ３０８に対して、ＧＥＣ３０２が十分な特権アクセスを有するかどうかを決定するように、認証プロセスを実装することによって行われることができる。このプロセスは、ある認証／確認情報（例えば、認証コードまたはパスワード）を提供することを含む。その場合、この情報は、アドミニストレータによってＧＥＣ３０２に提供される。一実施形態において、ＧＥＣ３０２が、プログラムをインストールさせかつ実行させるように、十分な特権アクセスを有する全てのノード３０６を、グリッド・ノードとして選択しかつリソース・グリッドに含ませることができる。例示の目的のために、ノード３０６（１）と３０６（２）（と示されていない可能な他のノード）が、グリッド・ノードとして選択されることが仮定される。
【００３６】
ノード３０６との通信に代わりとして、ＧＥＣ３０２は、アドミニストレータからノードのリストを単に得ることによって、どのノードがリソース・グリッドに含まれるかを決定することができる。これと他の実装は、ブロック１０４に関して可能である。
【００３７】
グリッド・ノードが決定された後、ＧＥＣ３０２は、グリッド・ノードを有するリソース・グリッドを確立する（図１のブロック１０８）ことを進める。そうするために、ＧＥＣ３０２は、リソース・グリッドの一部として加われるように、各グリッド・ノードを構成させる（図１のブロック１１２）。システム３００において、ＧＥＣ３０２は、以下のように各グリッド・ノードを構成させる。
【００３８】
最初に、ＧＥＣ３０２は、あるグリッド・ノードを（例えばノード３０６（１））を選択する。次に、ＧＥＣ３０２は特権アクセスを得るためにそのグリッド・ノード上のＯＳ３０８と通信する。これは、ＧＥＣ３０２が、ＯＳ３０８にある認証／確認情報を提供する認証プロセスを実装することを含んでもよい。ＧＥＣ３０２が、ＯＳ３０８に対する特権アクセスを得た後、ＧＥＣ３０２は、エージェント（このエージェントは、エージェント２１０の機能と類似のまたは同一の機能を有することができる）をＯＳ３０８に展開し、かつＯＳ３０８に、エージェントをインストールしかつ実行することを命令する。エラーを防ぐため、ＯＳ３０８は、ＧＥＣ３０２が要求したときに行う。このようにして、エージェントは、グリッド・ノード上にインストールされかつ実行される。図３Ｂは、エージェント３１０がグリッド・ノード３０６（１）上に展開された後の、システム３００の機能ブロック図を示す。グリッド・ノード３０６（１）上に展開されかつ実行しているエージェント３１０で、ＧＥＣ３０２は、今や、任意のグリッドに関連する動作をグリッド・ノード３０６（１）上で実行させることができる。
【００３９】
グリッド・ノード３０６（１）をさらに構成させるために（図１のブロック１１２）、ＧＥＣ３０２は、エージェント３１０にＧＰＭを展開し、エージェント３１０に、グリッド・ノード３０６（１）上でＧＰＭをインストールしかつ実行することを命令する。この命令に応答して、エージェント３１０は、グリッド・ノード３０６（１）上にＧＰＭをインストールしかつ実行する。ＧＰＭが展開された後の、グリッド・ノード３０６（１）の機能ブロック図が図３Ｃに示される。
【００４０】
一実施形態において、前述のＧＰＭ２１２のように、ＧＰＭ３１２は、グリッド・ノード３０６（１）が、リソース・グリッドの一部として加わることを可能にする機能を備える。例えば、グリッド・ノード３０６（１）がスレーブ・ノードであるべきなら、ＧＰＭ３１２は、グリッド・マスタからのリソース要求を受け取り、要求を処理し、かつグリッド・マスタに対して応答（もしあれば）を提供する機能を備えることができる。グリッド・ノード３０６（１）がグリッド・マスタであるべきなら、ＧＰＭ３１２は、外部コンポーネントからリソース要求を受け取り、要求を処理するためにどのスレーブ・ノードを呼び出すべきであるかを決定し、かつ適切なスレーブ・ノードにリソース要求を転送する機能を備えている。一実施形態において、ＧＰＭ３１２は、スレーブ動作とマスタ動作の両方に関して同じモジュールである。モジュールは、目的の動作のモードに応じて異なって構成されてもよい。代わりに、異なるＧＰＭ３１２は、スレーブ動作とマスタ動作に関して展開されてもよい。これらの実装と他の実装は本発明の範囲内である。
【００４１】
ＧＰＭ３１２を展開することに加えて、ＧＥＣ３０２は、エージェント３１０に他のアプリケーションとデータ・セットをさらに展開し、エージェント３１０にデータ・セットでそれらのアプリケーションをインストールし、実行し、かつ構成するように命令することができる。これらのアプリケーションは、リソース要求の処理においてＧＰＭ２１２によって呼び出されることができる。エージェント３１０は、ＧＥＣ３０２から任意のモジュールを受け取り、グリッド・ノード３０６（１）上でそのモジュールをインストールし、実行し、かつ構成する機能を備えるので、エージェント３１０は、ＧＥＣ３０２が要求したときに行うことができる。したがって、ＧＥＣ３０２は、それがグリッド・ノード３０６（１）上で展開できるものに対する大きなラティチュードと制御を有する。
【００４２】
記述された方法で、ＧＥＣ３０２は、グリッド・ノード３０６（１）がリソース・グリッドの一部として加わることを可能にするように、グリッド・ノード３０６（１）を構成させることができる。ＧＥＣ３０２は、各グリッド・ノードに関してこのプロセスを繰り返す。したがって、図３Ｃに示されるように、構成プロセスの終わりで、各グリッド・ノード３０６（１）と３０６（２）は、インストールされかつ実行するエージェント３１０とＧＰＭ３１２を有する。
【００４３】
リソース・グリッドを確立するプロセスを完成させるために、ＧＥＣ３０２は、グリッド・ノードによって提供されたリソースへのアクセスを管理するために、１つ以上のグリッド・マスタを確立する（図１のブロック１１６）。一実施形態において、リソース・グリッドに対してただ１つのグリッド・マスタが確立されるが、所望であれば、１つ以上のグリッド・マスタが確立されてもよい。ＧＥＣ３０２は、グリッド・マスタとして自身を確立させることができ（その場合、ＧＥＣ３０２は、グリッド・マスタとして作用する機能を備える）、またはＧＥＣ３０２は、グリッド・ノードの１つをグリッド・マスタとすることができる（例えば、グリッド・ノードに対して適切なＧＰＭ３１２を展開することによって、またはグリッド・マスタとして作用するようにグリッド・ノード上にＧＰＭ３１２を構成することによって）。ＧＥＣ３０２は、いくつかのビルトイン・ロジックに基づいて、またはアドミニストレータによって提供される入力に基づいて、どのコンポーネント（自身またはグリッド・ノードの１つ）をグリッド・マスタとして確立するかを決定することができる。
【００４４】
グリッド・マスタが確立された後、ＧＥＣ３０２は、グリッド・マスタに管理される全てのノード（スレーブ・ノード）を知らせ、スレーブ・ノードにグリッド・マスタを知らせる。スレーブ・ノードとグリッド・マスタが互いに知らされると、それらは、リソース・グリッドとして動作するために協働することができる。このようにして、ＧＥＣ３０２は自動的にリソース・グリッドを確立する。
【００４５】
第３のサンプル実装
図４Ａは、本発明のさらに他の実施形態を実装することができる第３のサンプル・システム４００の機能ブロック図を示す。図４Ａは、リソース・グリッドの確立前のシステム４００を示す。システム３００のように、システム４００は、相互接続部４０４を介してともに結合された複数のノード４０６とＧＥＣ４０２を備える。しかしながら、システム３００とは異なり、システム４００の少なくともいくつかのノード４０６は、インストールされ実行するエージェント４１０（このエージェントは、エージェント２１０の機能と類似のまたは同一の機能を有することができる）を既に有している。
【００４６】
システム４００においてリソース・グリッドを確立するために、ＧＥＣ４０２は、図１に示される一般的な動作を実行する。特に、ＧＥＣ４０２は、リソース・グリッドに含まれるノードを複数のノード４０６から決定する（図１のブロック１０４）ことによって始める。システム４００において、ＧＥＣ４０２は、どのノード４０６に、エージェント４１０が既にインストールされ実行しているかを決定することによって、この決定を行うことができる。例えば、これは、各ノード４０６上でエージェントとの通信を試みることによって行うことができる。ノード４０６が、適切なエージェント応答を提供するなら、そのノード４０６は、それにインストールされ、実行するエージェント４１０を有していることが知られる。一実施形態において、エージェント４１０がインストールされ実行する全てのノード４０６は、グリッド・ノードとして選択されかつリソース・グリッドに含まれる。例示の目的のために、ノード４０６（１）と４０６（２）（さらに示されていない可能な他のノード）が、グリッド・ノードとして選択されることが仮定される。
【００４７】
ノード４０６との通信の代わりに、ＧＥＣ４０２は、アドミニストレータからノードのリストを単に得ることによって、どのノードがリソース・グリッドに含まれるかを決定することができる。これと他の実装は、ブロック１０４に関して可能である。
【００４８】
グリッド・ノードが決定された後、ＧＥＣ４０２は、グリッド・ノードを有するリソース・グリッドを確立する（図１のブロック１０８）ことを進める。そうするために、ＧＥＣ４０２は、リソース・グリッドの一部として加われるように、各グリッド・ノードを構成させる（図１のブロック１１２）。システム４００において、ＧＥＣ４０２は、以下のように各グリッド・ノードを構成させる。
【００４９】
最初に、ＧＥＣ４０２は、グリッド・ノードを（例えばノード４０６（１））を選択する。それは、各グリッド・ノードは、その上で実行するエージェント４１０を既に有するので、ＧＥＣ４０２は、任意のグリッドに関連する動作をグリッド・ノード４０６（１）上で実行させることができる。したがって、グリッド・ノード４０６（１）を構成させる（図１のブロック１１２）ために、ＧＥＣ４０２は、ＧＰＭをエージェント４１０に展開し、かつグリッド・ノード４０６（１）にＧＰＭをインストールしかつ動作するようにエージェント４１０を命令する。この命令に応答して、エージェント４１０は、グリッド・ノード４０６（１）にＧＰＭをインストールしかつ動作させる。ＧＰＭが展開された後の、グリッド・ノード４０６（１）の機能ブロック図が、図４Ｂに示される。
【００５０】
一実施形態において、前述のＧＰＭ２１２のように、ＧＰＭ４１２は、グリッド・ノード４０６（１）が、リソース・グリッドの一部として加わることを可能にする機能を備える。例えば、グリッド・ノード４０６（１）がスレーブ・ノードであるなら、ＧＰＭ４１２は、グリッド・マスタからのリソース要求を受け取り、要求を処理し、かつグリッド・マスタに対して応答（もしあれば）を提供する機能を備えることができる。グリッド・ノード４０６（１）がグリッド・マスタであるなら、ＧＰＭ４１２は、外部コンポーネントからリソース要求を受け取り、要求を処理するためにどのスレーブ・ノードが呼び出されるべきであるかを決定し、かつ適切なスレーブ・ノードにリソース要求を転送する機能を備える。一実施形態において、ＧＰＭ４１２は、スレーブ動作とマスタ動作の両方に関して同じモジュールである。モジュールは、目的の動作のモードに応じて異なって構成されてもよいる。代わりに、異なるＧＰＭ４１２は、スレーブ動作とマスタ動作に関して展開されることができる。これらの実装と他の実装は、本発明の範囲内である。
【００５１】
ＧＰＭ４１２を展開することに加えて、ＧＥＣ４０２は、エージェント４１０に他のアプリケーションとデータ・セットをさらに展開し、エージェント４１０にデータ・セットでそれらのアプリケーションをインストールし、実行し、かつ構成するように命令することができる。これらのアプリケーションは、リソース要求の処理においてＧＰＭ２１２によって呼び出されることができる。エージェント４１０は、ＧＥＣ４０２から任意のモジュールを受け取り、グリッド・ノード４０６（１）上でそのモジュールをインストールし、実行し、かつ構成する機能を備えるので、エージェント４１０は、ＧＥＣ４０２が要求したときに行うことができる。したがって、ＧＥＣ４０２は、それがグリッド・ノード４０６（１）上で展開できるものに対する大きなラティチュードと制御を有する。
【００５２】
記述された方法で、ＧＥＣ４０２は、グリッド・ノード４０６（１）が、リソース・グリッドの一部として加われるように、グリッド・ノード４０６（１）を構成させることができる。ＧＥＣ４０２は、各グリッド・ノードに関してこのプロセスを繰り返す。したがって、図４Ｂに示されるように、構成プロセスの終わりで、各グリッド・ノード４０６（１）、４０６（２）は、インストールされかつその上で実行するエージェント４１０とＧＰＭ４１２を有する。
【００５３】
リソース・グリッドを確立するプロセスを完成させるために、ＧＥＣ４０２は、グリッド・ノードによって提供されるリソースに対するアクセスを管理するために、１つ以上のグリッド・マスタを確立させる（図１のブロック１１６）。一実施形態において、リソース・グリッドに対してただ１つのグリッド・マスタを確立させるが、所望であれば、１つ以上のグリッド・マスタを確立させることができる。ＧＥＣ４０２は、グリッド・マスタとして自身を確立させることがもきるが（その場合、ＧＥＣ４０２は、グリッド・マスタとして作用する機能を備える）、ＧＥＣ４０２は、グリッド・マスタとしてグリッド・ノードの１つを確立させることができる（例えば、グリッド・ノードに対して適切なＧＰＭ４１２を展開することによって、またはグリッド・マスタとして作用するようにグリッド・ノード上にＧＰＭ４１２を構成させることによって）。ＧＥＣ４０２は、あるビルトイン・ロジックに基づいて、またはアドミニストレータによって提供される入力に基づいて、どのコンポーネント（自身またはグリッド・ノードの１つ）をグリッド・マスタとして確立させるかを決定することができる。
【００５４】
グリッド・マスタが確立された後、ＧＥＣ４０２は、グリッド・マスタに管理される全てのノード（スレーブ・ノード）を知らせ、スレーブ・ノードにグリッド・マスタを知らせる。スレーブ・ノードとグリッド・マスタが、互いに知らされると、それらは、リソース・グリッドとして動作するために協働することができる。このように、ＧＥＣ４０２は自動的にリソース・グリッドを確立することができる。
【００５５】
ハードウェア概要
本発明の目的のために、ＧＥＣ２０２、３０２、４０２は、任意の知られている技術を使用して実装させられる。例えば、ＧＥＣは、ハードウェア・ロジック・コンポーネント（例えば、１つ以上のＡＳＩＣ）を使用して実装されてもよく、また１つ以上のプロセッサによって実行される一組の命令として実装されてもよい。これらと他の実装は、本発明の範囲内である。
【００５６】
一実施形態において、ＧＥＣ２０２、３０２、４０２は、１つ以上のプロセッサによって実行される一組の命令として実装される。そのような実施形態において、ＧＥＣは、図５に示されるコンピュータ・システムなどのコンピュータ・システムで実行される。図５のコンピュータ・システム５００は、情報を通信するためのバス５０２または他の通信機構と、そのバス５０２に情報を処理するために結合されたプロセッサ５０４とを含む。コンピュータ・システム５００は、プロセッサ５０４によって実行される情報と命令を格納するために、バス５０２に結合されたランダム・アクセス・メモリ（ＲＡＭ）または他のダイナミック・ストレージ・デバイスなどのメイン・メモリ５０６も含む。メイン・メモリ５０６は、プロセッサ５０４による命令の実行の間に、一時的な変数または他の中間情報を格納するためにも使用される。コンピュータ・システム５００は、プロセッサ５０４に関するスタティックな情報と命令を格納するためにバス５０２に結合された、リード・オンリー・メモリ（ＲＯＭ）５０８または他のスタティック・ストレージ・デバイスをさらに含む。磁気ディスクまたは光ディスクなどのストレージ・デバイス５１０は、情報と命令を格納するために、提供されかつバス５０２に結合される。
【００５７】
コンピュータ・システム５００では、コンピュータ・ユーザに対して情報を表示するために、陰極線管（ＣＲＴ）などのディスプレイ５１２がバス５０２を介して結合されている。英数字と他のキーを含む入力デバイス５１４が、プロセッサ５０４に対して情報とコマンド選択を通信するためにバス５０２に結合されている。他のタイプのユーザ入力デバイスは、プロセッサ５０４に対して方向性の情報とコマンド選択を通信するために、かつディスプレイ５１２上のカーソルの動きを制御するために、マウス、トラックボール、またはカーソル・ディレクション・キーなどのカーソル制御部５１６である。この入力デバイスは、一般に、デバイスが平面における位置を特定することができる、２つの軸、すなわち第１の軸（例えばｘ）と第２の軸（例えばｙ）における２つの自由度を有する。
【００５８】
一実施形態において、本発明の機能は、メイン・メモリ５０６に含まれる１つ以上の命令の１つ以上のシーケンスを実行するプロセッサ５０４に応答して、コンピュータ・システム５００によって提供される。そのような命令は、ストレージ・デバイス５１０などの他のコンピュータ読み取り可能な媒体から、メイン・メモリ５０６に読み込まれる。メイン・メモリ５０６に含まれる命令のシーケンスを実行することで、プロセッサ５０４に本明細書に記載されるプロセス・ステップを実行させる。他の実施形態において、ハード・ワイヤード回路は、本発明を実装するために、ソフトウェア命令の代わりにまたはソフトウェア命令と組み合わせて使用されることができる。したがって、本発明の実施形態は、ハードウェア回路とソフトウェアの任意の特定の組み合わせに限定されない。
【００５９】
本明細書で使用される「コンピュータ読み取り可能な媒体」の用語は、実行するためにプロセッサ５０４に命令を提供する任意の媒体を意味する。そのような媒体は、不揮発性媒体、揮発性媒体、送信媒体を含むがそれらに限定されない多くの形態をとることができる。不揮発性媒体は、例えば、ストレージ・デバイス５１０などの光または磁気ディスクを含む。揮発性媒体は、メイン・メモリ５０６などのダイナミック・メモリを含む。送信媒体は、バス５０２を備えるワイヤを含む、同軸ケーブル、銅ワイヤ、光ファイバなどを含む。送信媒体は無線波、赤外、光データ通信の間に生成されるなどの、音響または電磁波の形態をとることもできる。
【００６０】
コンピュータ読み取り可能な媒体の共通の形態は、例えば、フロッピー（登録商標）・ディスク、フレキシブル・ディスク、ハード・ディスク、磁気テープ、または任意の他の磁気媒体、ＣＤ−ＲＯＭ、任意の他の光媒体、パンチカード、紙テープ、孔のパターンを有する任意の他の物理媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、任意の他のメモリ・チップまたはカートリッジ、以降に記載されるようなキャリア波、コンピュータが読むことができる任意の他の媒体を含む。
【００６１】
コンピュータ読み取り可能な媒体の様々な形態は、実行のためにプロセッサ５０４に１つ以上の命令の１つ以上のシーケンスを搬送することを含む。例えば、命令は、最初に遠隔コンピュータの磁気ディスク上にある。遠隔コンピュータは、そのダイナミック・メモリに命令をロードし、かつモデムを使用して電話線を介して命令を送ることができる。コンピュータ・システム５００に対するローカルなモデムは、電話線でデータを受け取り、かつ赤外信号にデータを変換するために赤外送信機を使用することができる。赤外検出器は、赤外信号で搬送されたデータを受け取ることができ、適切な回路は、バス５０２にデータを置くことができる。バス５０２は、メイン・メモリ５０６にデータを搬送し、メイン・メモリ５０６から、プロセッサ５０４は、命令を検索しかつ実行する。メイン・メモリ５０６によって受け取られた命令は、任意に、プロセッサ５０４による実行の前または後のいずれかで、ストレージ・デバイス５１０に格納される。
【００６２】
コンピュータ・システム５００は、バス５０２に結合された通信インタフェース５１８も含む。通信インタフェース５１８は、ローカル・ネットワーク５２２に接続されたネットワーク・リンク５２０に対する２方向データ通信結合を提供する。例えば、通信インタフェース５１８は、対応するタイプの電話線にデータ通信接続を提供するために、統合サービス・デジタル・ネットワーク（ＩＳＤＮ）カードまたはモデムであろう。他の例として、互換性があるＬＡＮにデータ通信接続を提供するために、通信インタフェース５１８はローカル・ネットワーク（ＬＡＮ）カードである。無線リンクも実装されることができる。任意のそのような実装において、通信インタフェース５１８は、様々なタイプの情報を表すデジタル・データ・ストリームを搬送する電気、電磁、または光信号を送信しかつ受信する。
【００６３】
ネットワーク・リンク５２０は、一般に、他のデータ・デバイスに対して１つ以上のネットワークを介してデータ通信を提供する。例えば、ネットワーク・リンク５２０は、ホスト・コンピュータ５２４、またはインターネット・サービス・プロバイダ（ＩＳＰ）５２６によって動作させられるデータ機器に、ローカル・ネットワーク５２２を介して接続することができる。ＩＳＰ５２６は、次に、一般に「インターネット」５２８と称されるワールド・ワイド・パケット・データ通信ネットワークを介するデータ通信サービスを提供する。ローカル・ネットワーク５２２とインターネット５２８は、両方とも、デジタル・データ・ストリームを搬送する電気、電磁、または光信号を使用する。様々なネットワークを介する信号、およびネットワーク・リンク５２０上ならびにコンピュータ・システム５００へかつコンピュータ・システム５００からデジタル・データを搬送する通信インタフェース５１８を介する信号は、情報を伝送する搬送波の例示的な形態である。
【００６４】
コンピュータ・システム５００は、ネットワーク、ネットワーク・リンク５２０と通信インタフェース５１８を介して、プログラム・コードを含めて、メッセージを送りかつデータを受け取ることができる。インターネットの例において、サーバ５３０は、インターネット５２８、ＩＳＰ５２６、ローカル・ネットワーク５２２、通信インタフェース５１８を介して、アプリケーション・プログラムに関する要求されたコードを送ることができる。受け取られたコードは、それが受け取られたときにプロセッサ５０４によって実行されることができ、および／または後の実行のためにストレージ・デバイス５１０または他の不揮発性ストレージに格納されることができる。このように、コンピュータ・システム５００は、搬送波の形態でアプリケーション・コードを得ることができる。
【００６５】
この点で、本発明は、特定の実施形態を参照して記載されたが、本発明は、そのように制限されると解釈されるべきでないことに留意されたい。様々な修正は、本発明の精神から逸脱せずに、本開示の恩恵を受ける当業者によってなされることができる。したがって、本発明は、本発明を例示するために使用された特定に実施形態によって制限されるべきではなく、発行される請求項の範囲によってだけ制限される。
【図面の簡単な説明】
【００６６】
【図１】本発明の一実施形態による、リソース・グリッドの確立におけるグリッド確立コンポーネントの動作を示す、高いレベルの動作のフロー図である。
【図２Ａ】本発明の一実施形態を実装することができる第１のサンプル・システムの機能ブロック図を示す。
【図２Ｂ】本発明の一実施形態を実装することができる第１のサンプル・システムの機能ブロック図を示す。
【図２Ｃ】本発明の一実施形態を実装することができる第１のサンプル・システムの機能ブロック図を示す。
【図３Ａ】本発明の一実施形態を実装することができる第２のサンプル・システムの機能ブロック図を示す。
【図３Ｂ】本発明の一実施形態を実装することができる第２のサンプル・システムの機能ブロック図を示す。
【図３Ｃ】本発明の一実施形態を実装することができる第２のサンプル・システムの機能ブロック図を示す。
【図４Ａ】本発明の一実施形態を実装することができる第３のサンプル・システムの機能ブロック図を示す。
【図４Ｂ】本発明の一実施形態を実装することができる第３のサンプル・システムの機能ブロック図を示す。
【図５】図２−図４のＧＥＣの一実施形態を実行することができる、サンプル・コンピュータ・システムのハードウェア・ブロック図である。
【符号の説明】
【００６７】
２００、３００、４００  システム、２０２、３０２、４０２  ＧＥＣ、２０４、３０４、４０４  相互接続部、２０６、３０６、４０６  ノード、２０８、３０８、４０８  オペレーション・システム、  ２１０、３１０、４１０  エージェント、２１２、３１２、４１２  ＧＰＭ
【図１】
2005092880.tif 000003
【図２Ａ】
2005092880.tif 000004
【図２Ｂ】
2005092880.tif 000005
【図２Ｃ】
2005092880.tif 000006
【図３Ａ】
2005092880.tif 000007
【図３Ｂ】
2005092880.tif 000008
【図３Ｃ】
2005092880.tif 000009
【図４Ａ】
2005092880.tif 000010
【図４Ｂ】
2005092880.tif 000011
【図５】
2005092880.tif 000012