(57)【要約】【課題】多種多様な内容の隔離環境が存在するグリッドシステムにおいて隔離環境を自律動作によって効率的に運用すること。【解決手段】グリッドを構成するノード上に利用者ごとに作成された隔離環境にジョブの割り当てを行うジョブ割当装置１００は、ジョブを実行するために必要なソフトウェアの情報を取得するソフトウェア情報取得部１１３と、利用者と隔離環境の対応と隔離環境ごとのソフトウェアの配備状況が登録された隔離環境情報のうち、ジョブを発行した利用者に対応する隔離環境の情報を記憶手段より取得し、この情報とソフトウェア情報取得部１１３により取得された情報を照合してジョブを実行するために必要なソフトウェアが多く配備済みの隔離環境を優先してジョブの投入先として選択する投入先選択部１１２と、投入先選択部１１２により選択された隔離環境にてジョブが実行されるようにジョブの投入を行うジョブ投入部１１６とを備える。【選択図】        図３
2007265193.tif 000002
【特許請求の範囲】
【請求項１】
グリッドを構成するノード上に利用者ごとに作成された隔離環境にジョブの割り当てを行うジョブ割当プログラムであって、
前記ジョブを実行するために必要なソフトウェアの情報を取得するソフトウェア情報取得手順と、
利用者と隔離環境の対応と隔離環境ごとのソフトウェアの配備状況が登録された隔離環境情報のうち、前記ジョブを発行した利用者に対応する隔離環境の情報を記憶手段より取得し、この情報と前記ソフトウェア情報取得手順により取得された情報を照合して前記ジョブを実行するために必要なソフトウェアが多く配備済みの隔離環境を優先して前記ジョブの投入先として選択する投入先選択手順と、
前記投入先選択手順により選択された隔離環境にて前記ジョブが実行されるように前記ジョブの投入を行うジョブ投入手順と
をコンピュータに実行させることを特徴とするジョブ割当プログラム。
【請求項２】
前記投入先選択手順は、前記ジョブの投入先となる隔離環境を選択した場合に、前記ソフトウェア情報取得手順により取得された情報に対応するソフトウェアが該隔離環境に配備済みであることを示すように前記隔離環境情報を更新することを特徴とする請求項１に記載のジョブ割当プログラム。
【請求項３】
前記ジョブ投入手順は、前記投入先選択手順により選択された隔離環境が存在するノードに対して前記ジョブとともに前記ソフトウェア情報取得手順により取得された情報を送信することを特徴とする請求項１または２に記載のジョブ割当プログラム。
【請求項４】
前記投入先選択手順は、いずれの隔離環境場合も前記ジョブの投入先として選択することができない場合に、前記ノードごとのソフトウェアの配備状況を示すノード情報を記憶手段より取得し、この情報と前記ソフトウェア情報取得手順により取得された情報を照合して前記ジョブを実行するために必要なソフトウェアが多く配備済みのノードを優先して前記ジョブを投入先する新たな隔離環境の作成先として選択することを特徴とする請求項１〜３のいずれか一つに記載のジョブ割当プログラム。
【請求項５】
前記投入先選択手順は、前記ジョブの投入先となる隔離環境を選択した場合に、前記ソフトウェア情報取得手順により取得された情報に対応するソフトウェアが該隔離環境の存在するノードに配備済みであることを示すように前記ノード情報を更新することを特徴とする請求項４に記載のジョブ割当プログラム。
【請求項６】
前記ソフトウェア情報取得手順により取得された情報にライセンスを必要とするソフトウェアの情報が含まれていた場合に、利用者ごとのライセンスの取得状況を示すライセンス情報のうち、前記ジョブを発行した利用者の情報を記憶手段より取得し、該利用者が前記ソフトウェアを使用するためのライセンスを有しているか否かを検査するライセンス検査手順をさらにコンピュータに実行させ、
前記前記投入先選択手順は、前記ライセンス検査手順により該利用者が前記ソフトウェアを使用するためのライセンスを有していないと判定された場合に、前記ジョブの割り当てを中止することを特徴とする請求項１〜５のいずれか一つに記載のジョブ割当プログラム。
【請求項７】
前記ライセンス検査手順は、前記ソフトウェア情報取得手順により取得された情報に対応するソフトウェアの配備がある隔離環境に対して行われた場合に、前記ライセンス情報に記録されたライセンス条件に違反した状態となるか否かを検査し、
前記前記投入先選択手順は、前記ソフトウェアの配備を行った場合にライセンス条件に違反した状態となると前記ライセンス検査手順により判定された隔離環境を、前記ジョブの投入先から除外することを特徴とする請求項６に記載のジョブ割当プログラム。
【請求項８】
利用者の登録が削除された場合に、前記隔離環境情報を参照して該利用者に対応する隔離環境を抽出し、抽出された隔離環境を削除するように該隔離環境が作成されているノードに指示する隔離環境削除手順をさらにコンピュータに実行させることを特徴とする請求項１〜７のいずれか一つに記載のジョブ割当プログラム。
【請求項９】
グリッドを構成するノード上に利用者ごとに作成された隔離環境にジョブの割り当てを行うジョブ割当装置であって、
前記ジョブを実行するために必要なソフトウェアの情報を取得するソフトウェア情報取得手段と、
利用者と隔離環境の対応と隔離環境ごとのソフトウェアの配備状況が登録された隔離環境情報のうち、前記ジョブを発行した利用者に対応する隔離環境の情報を記憶手段より取得し、この情報と前記ソフトウェア情報取得手段により取得された情報を照合して前記ジョブを実行するために必要なソフトウェアが多く配備済みの隔離環境を優先して前記ジョブの投入先として選択する投入先選択手段と、
前記投入先選択手段により選択された隔離環境にて前記ジョブが実行されるように前記ジョブの投入を行うジョブ投入手段と
を備えたことを特徴とするジョブ割当装置。
【請求項１０】
グリッドを構成するノード上に利用者ごとに作成された隔離環境にジョブの割り当てを行うジョブ割当方法であって、
前記ジョブを実行するために必要なソフトウェアの情報を取得するソフトウェア情報取得工程と、
利用者と隔離環境の対応と隔離環境ごとのソフトウェアの配備状況が登録された隔離環境情報のうち、前記ジョブを発行した利用者に対応する隔離環境の情報を記憶手段より取得し、この情報と前記ソフトウェア情報取得工程により取得された情報を照合して前記ジョブを実行するために必要なソフトウェアが多く配備済みの隔離環境を優先して前記ジョブの投入先として選択する投入先選択工程と、
前記投入先選択工程により選択された隔離環境にて前記ジョブが実行されるように前記ジョブの投入を行うジョブ投入工程と
を含んだことを特徴とするジョブ割当方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、グリッドを構成するノード上に利用者ごとに作成された隔離環境にジョブの割り当てを行うジョブ割当プログラム、ジョブ割当装置およびジョブ割当方法に関し、特に、多種多様な内容の隔離環境が存在するグリッドシステムにおいて隔離環境を自律動作によって効率的に運用することができるジョブ割当プログラム、ジョブ割当装置およびジョブ割当方法に関する。
【背景技術】
【０００２】
近年、情報処理装置の処理能力等を有効活用する技術としてグリッドコンピューティング技術が注目されている。グリッドコンピューティング技術は、複数の情報処理装置をネットワークによって結合し、高性能な情報処理装置を仮想的に作り出す技術である。このグリッドコンピューティング技術を利用することにより、多数のジョブを効率よく並列実行することが可能になる。
【０００３】
複数の情報処理装置を結合して構成された仮想的な情報処理装置（以下、「グリッド」という）を効率よく動作させるには、グリッドに属する各情報処理装置へ負荷が偏ることがないようにジョブを割り当てることが重要である。例えば、特許文献１には、各情報処理装置の静的な性能と動的に変化する負荷状況とに基づいて適切にジョブの割り当てを行う技術が開示されている。
【０００４】
【特許文献１】特開２００５−５６２０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、複数の利用者がグリッドを共同で利用する場合、セキュリティの確保が問題となる。例えば、異なる利用者が発行したジョブＡとジョブＢが同一の情報処理装置に割り当てられた場合、ジョブＡの処理内容がジョブＢを介して、ジョブＢの発行者に知られてしまう恐れがある。
【０００６】
このセキュリティの問題を解決するためには、グリッドに属する各情報処理装置内に利用者ごとの隔離環境を設け、この隔離環境においてジョブを実行する手法が有効であると考えられる。隔離環境とは、その内部で動作するプログラムが外部の資源に自由にアクセスすることができない環境を意味し、例えば、ＢＳＤ版のＵＮＩＸ（登録商標）におけるＪＡＩＬ環境がこれに相当する。
【０００７】
しかしながら、今後、グリッドにおいて実行されるジョブの内容は、従来のような科学計算処理のみでなく、様々な業務内容を含むようになることが予想されており、ジョブの実行環境が多様化すると考えられる。
【０００８】
このような実行環境の多様化が進んだ場合、利用者ごとに隔離環境を用意することとすると、多種多様な内容の隔離環境を用意することが必要となり、特に多数の情報処理装置からなるグリッドにおいては、隔離環境の運用管理のための工数が大きく増大することになる。
【０００９】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、多種多様な内容の隔離環境が存在するグリッドシステムにおいて隔離環境を自律動作によって効率的に運用することができるジョブ割当プログラム、ジョブ割当装置およびジョブ割当方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、本発明の一つの態様では、グリッドを構成するノード上に利用者ごとに作成された隔離環境にジョブの割り当てを行うジョブ割当プログラムであって、前記ジョブを実行するために必要なソフトウェアの情報を取得するソフトウェア情報取得手順と、利用者と隔離環境の対応と隔離環境ごとのソフトウェアの配備状況が登録された隔離環境情報のうち、前記ジョブを発行した利用者に対応する隔離環境の情報を記憶手段より取得し、この情報と前記ソフトウェア情報取得手順により取得された情報を照合して前記ジョブを実行するために必要なソフトウェアが多く配備済みの隔離環境を優先して前記ジョブの投入先として選択する投入先選択手順と、前記投入先選択手順により選択された隔離環境にて前記ジョブが実行されるように前記ジョブの投入を行うジョブ投入手順とをコンピュータに実行させることを特徴とする。
【００１１】
また、本発明の他の態様では、グリッドを構成するノード上に利用者ごとに作成された隔離環境にジョブの割り当てを行うジョブ割当装置であって、前記ジョブを実行するために必要なソフトウェアの情報を取得するソフトウェア情報取得手段と、利用者と隔離環境の対応と隔離環境ごとのソフトウェアの配備状況が登録された隔離環境情報のうち、前記ジョブを発行した利用者に対応する隔離環境の情報を記憶手段より取得し、この情報と前記ソフトウェア情報取得手段により取得された情報を照合して前記ジョブを実行するために必要なソフトウェアが多く配備済みの隔離環境を優先して前記ジョブの投入先として選択する投入先選択手段と、前記投入先選択手段により選択された隔離環境にて前記ジョブが実行されるように前記ジョブの投入を行うジョブ投入手段とを備えたことを特徴とする。
【００１２】
また、本発明の他の態様では、グリッドを構成するノード上に利用者ごとに作成された隔離環境にジョブの割り当てを行うジョブ割当方法であって、前記ジョブを実行するために必要なソフトウェアの情報を取得するソフトウェア情報取得工程と、利用者と隔離環境の対応と隔離環境ごとのソフトウェアの配備状況が登録された隔離環境情報のうち、前記ジョブを発行した利用者に対応する隔離環境の情報を記憶手段より取得し、この情報と前記ソフトウェア情報取得工程により取得された情報を照合して前記ジョブを実行するために必要なソフトウェアが多く配備済みの隔離環境を優先して前記ジョブの投入先として選択する投入先選択工程と、前記投入先選択工程により選択された隔離環境にて前記ジョブが実行されるように前記ジョブの投入を行うジョブ投入工程とを含んだことを特徴とする。
【００１３】
この発明の態様によれば、ジョブの実行に必要なソフトウェアの情報を取得し、この情報と各隔離環境へのソフトウェアの配備状況を示す情報とを照合して、ジョブの実行に必要なソフトウェアの追加配備が少なくて済む隔離環境をジョブの投入先として優先して選択するように構成したので、ソフトウェアの配備状況が異なる隔離環境が複数存在する場合であっても、ジョブを適切な隔離環境へ投入することができる。
【００１４】
また、本発明の他の態様では、上記の発明の態様において、前記投入先選択手順は、前記ジョブの投入先となる隔離環境を選択した場合に、前記ソフトウェア情報取得手順により取得された情報に対応するソフトウェアが該隔離環境に配備済みであることを示すように前記隔離環境情報を更新することを特徴とする。
【００１５】
この発明の態様によれば、ある隔離環境をジョブの投入先として選択した場合に、投入されたジョブの実行に必要なソフトウェアがその隔離環境へ配備済みであることを示すように各隔離環境へのソフトウェアの配備状況を示す情報を更新するように構成したので、ジョブの投入にともなうソフトウェアの配備状況の変化を次回以降のジョブの投入先の選定に適切に反映させることができる。
【００１６】
また、本発明の他の態様では、上記の発明の態様において、前記ジョブ投入手順は、前記投入先選択手順により選択された隔離環境が存在するノードに対して前記ジョブとともに前記ソフトウェア情報取得手順により取得された情報を送信することを特徴とする。
【００１７】
この発明の態様によれば、ジョブとともにジョブの実行に必要なソフトウェアの情報をノードへ送信するように構成したので、ノードにおいてジョブの実行に必要なソフトウェアの追加配備を容易に実行することができる。
【００１８】
また、本発明の他の態様では、上記の発明の態様において、前記投入先選択手順は、いずれの隔離環境場合も前記ジョブの投入先として選択することができない場合に、前記ノードごとのソフトウェアの配備状況を示すノード情報を記憶手段より取得し、この情報と前記ソフトウェア情報取得手順により取得された情報を照合して前記ジョブを実行するために必要なソフトウェアが多く配備済みのノードを優先して前記ジョブを投入先する新たな隔離環境の作成先として選択することを特徴とする。
【００１９】
この発明の態様によれば、いずれの隔離環境もジョブの投入先として選択することができない場合に、ジョブの実行に必要なソフトウェアの情報を取得し、この情報と各ノードへのソフトウェアの配備状況を示す情報とを照合して、ジョブの実行に必要なソフトウェアの追加配備が少なくて済むノードをジョブの新たな隔離環境の作成先として優先して選択するように構成したので、ソフトウェアの配備状況が異なるノードが複数存在する場合であっても、ジョブを投入する隔離環境を適切なノードにて作成することができる。
【００２０】
また、本発明の他の態様では、上記の発明の態様において、前記投入先選択手順は、前記ジョブの投入先となる隔離環境を選択した場合に、前記ソフトウェア情報取得手順により取得された情報に対応するソフトウェアが該隔離環境の存在するノードに配備済みであることを示すように前記ノード情報を更新することを特徴とする。
【００２１】
この発明の態様によれば、ある隔離環境をジョブの投入先として選択した場合に、投入されたジョブの実行に必要なソフトウェアがその隔離環境の存在するノードへ配備済みであることを示すように各ノードへのソフトウェアの配備状況を示す情報を更新するように構成したので、ジョブの投入にともなうソフトウェアの配備状況の変化を、新たな隔離環境の作成が必要になった場合におけるノードの選定に適切に反映させることができる。
【００２２】
また、本発明の他の態様では、上記の発明の態様において、前記ソフトウェア情報取得手順により取得された情報にライセンスを必要とするソフトウェアの情報が含まれていた場合に、利用者ごとのライセンスの取得状況を示すライセンス情報のうち、前記ジョブを発行した利用者の情報を記憶手段より取得し、該利用者が前記ソフトウェアを使用するためのライセンスを有しているか否かを検査するライセンス検査手順をさらにコンピュータに実行させ、前記前記投入先選択手順は、前記ライセンス検査手順により該利用者が前記ソフトウェアを使用するためのライセンスを有していないと判定された場合に、前記ジョブの割り当てを中止することを特徴とする。
【００２３】
この発明の態様によれば、ジョブの投入に際してライセンスの検査を行い、ライセンスを有していないソフトウェアを必要とするジョブについては割り当てを中止するように構成したので、ライセンスを必要とするジョブの割り当てを適切に行うことができる。
【００２４】
また、本発明の他の態様では、上記の発明の態様において、前記ライセンス検査手順は、前記ソフトウェア情報取得手順により取得された情報に対応するソフトウェアの配備がある隔離環境に対して行われた場合に、前記ライセンス情報に記録されたライセンス条件に違反した状態となるか否かを検査し、前記前記投入先選択手順は、前記ソフトウェアの配備を行った場合にライセンス条件に違反した状態となると前記ライセンス検査手順により判定された隔離環境を、前記ジョブの投入先から除外することを特徴とする。
【００２５】
この発明の態様によれば、ジョブの実行に必要なソフトウェアの追加配備を行った場合にライセンス違反が生じることになる隔離環境には、そのジョブの割り当てを行わないように構成したので、ライセンスを必要とするジョブの割り当てを適切に行うことができる。
【００２６】
また、本発明の他の態様では、上記の発明の態様において、利用者の登録が削除された場合に、前記隔離環境情報を参照して該利用者に対応する隔離環境を抽出し、抽出された隔離環境を削除するように該隔離環境が作成されているノードに指示する隔離環境削除手順をさらにコンピュータに実行させることを特徴とする。
【００２７】
この発明の態様によれば、利用者の登録が削除された場合に、その利用者に対応する隔離環境を削除するように構成したので、不要となった隔離環境の整理を自動化することができる。
【発明の効果】
【００２８】
本発明の一つの態様によれば、ジョブの実行に必要なソフトウェアの情報を取得し、この情報と各隔離環境へのソフトウェアの配備状況を示す情報とを照合して、ジョブの実行に必要なソフトウェアの追加配備が少なくて済む隔離環境をジョブの投入先として優先して選択するように構成したので、ソフトウェアの配備状況が異なる隔離環境が複数存在する場合であっても、ジョブを適切な隔離環境へ投入することができるという効果を奏する。
【００２９】
また、本発明の他の態様によれば、ある隔離環境をジョブの投入先として選択した場合に、投入されたジョブの実行に必要なソフトウェアがその隔離環境へ配備済みであることを示すように各隔離環境へのソフトウェアの配備状況を示す情報を更新するように構成したので、ジョブの投入にともなうソフトウェアの配備状況の変化を次回以降のジョブの投入先の選定に適切に反映させることができるという効果を奏する。
【００３０】
また、本発明の他の態様によれば、ジョブとともにジョブの実行に必要なソフトウェアの情報をノードへ送信するように構成したので、ノードにおいてジョブの実行に必要なソフトウェアの追加配備を容易に実行することができるという効果を奏する。
【００３１】
また、本発明の他の態様によれば、いずれの隔離環境もジョブの投入先として選択することができない場合に、ジョブの実行に必要なソフトウェアの情報を取得し、この情報と各ノードへのソフトウェアの配備状況を示す情報とを照合して、ジョブの実行に必要なソフトウェアの追加配備が少なくて済むノードをジョブの新たな隔離環境の作成先として優先して選択するように構成したので、ソフトウェアの配備状況が異なるノードが複数存在する場合であっても、ジョブを投入する隔離環境を適切なノードにて作成することができるという効果を奏する。
【００３２】
また、本発明の他の態様によれば、ある隔離環境をジョブの投入先として選択した場合に、投入されたジョブの実行に必要なソフトウェアがその隔離環境の存在するノードへ配備済みであることを示すように各ノードへのソフトウェアの配備状況を示す情報を更新するように構成したので、ジョブの投入にともなうソフトウェアの配備状況の変化を、新たな隔離環境の作成が必要になった場合におけるノードの選定に適切に反映させることができるという効果を奏する。
【００３３】
また、本発明の他の態様によれば、ジョブの投入に際してライセンスの検査を行い、ライセンスを有していないソフトウェアを必要とするジョブについては割り当てを中止するように構成したので、ライセンスを必要とするジョブの割り当てを適切に行うことができるという効果を奏する。
【００３４】
また、本発明の他の態様によれば、ジョブの実行に必要なソフトウェアの追加配備を行った場合にライセンス違反が生じることになる隔離環境には、そのジョブの割り当てを行わないように構成したので、ライセンスを必要とするジョブの割り当てを適切に行うことができるという効果を奏する。
【００３５】
また、本発明の他の態様によれば、利用者の登録が削除された場合に、その利用者に対応する隔離環境を削除するように構成したので、不要となった隔離環境の整理を自動化することができるという効果を奏する。
【発明を実施するための最良の形態】
【００３６】
以下に添付図面を参照して、本発明に係るジョブ割当プログラム、ジョブ割当装置およびジョブ割当方法の好適な実施の形態を詳細に説明する。
【実施例】
【００３７】
まず、本実施例に係るグリッドシステムの構成について説明する。図１は、本実施例に係るグリッドシステムの構成を示す図である。
【００３８】
同図に示すように、本実施例に係るグリッドシステムは、端末装置２００〜２０２とジョブ割当装置１００をネットワーク２１を介して接続し、さらに、ノード３００〜３０２およびパッケージ記憶装置４００からなるグリッド１０とジョブ割当装置１００をネットワーク２２を介して接続した構成を有する。なお、ネットワーク２１とネットワーク２２は、同一のネットワークであってもよい。また、端末装置とノードの台数は、何台であってもよい。
【００３９】
端末装置２００〜２０２は、当該のグリッドシステムを利用する利用者が操作する端末であり、利用者は、当該のグリッドシステムに対して実行を依頼するジョブをこれらの端末からジョブ割当装置１００へ向けて送信する。
【００４０】
端末装置２００〜２０２からジョブ割当装置１００へのジョブの送信は、例えば、ＺＡＲ（Zero Administration Archive）ファイル３１を用いて行うことができる。ＺＡＲファイル３１は、実行すべきプログラムとともに、そのプログラムの実行条件等を付帯情報として含んだファイルである。
【００４１】
ノード３００〜３０２は、ジョブを実行する情報処理装置である。ノード３００は、隔離環境３００1〜３００kを有し、ノード３０１は、隔離環境３０１1〜３０１mを有し、ノード３０２は、隔離環境３０２1〜３０２nを有する。ノード３００〜３０２は、セキュリティを確保するため、利用者ごとに用意されるこれらの隔離環境内でジョブを実行する。
【００４２】
図２は、隔離環境の一例を示す図である。同図は、ＢＳＤ版のＵＮＩＸ（登録商標）におけるＪＡＩＬ環境の例を示している。同図に示した例では、／ｊａｉｌディレクトリの配下にＡディレクトリとＢディレクトリが設けられ、それぞれの配下に、各種プログラムの実行に必要な／ｕｓｒ配下のディレクトリ及びファイルが複製されている。
【００４３】
そして、Ａディレクトリ配下とＢディレクトリ配下は、それぞれ、ｃｈｒｏｏｔ等の機能を利用して隔離環境３００1および隔離環境３００2として運用される。隔離環境３００1もしくは隔離環境３００2内で起動されたプログラムは、当該の隔離環境外のファイル等に自由にアクセスすることができない。そのため、利用者ごとに隔離環境を作成し、その中でジョブを実行することにより、不正行為等による情報漏洩を防止することができる。
【００４４】
ところで、図２の例では、／ｕｓｒ／ｌｉｂ配下にミドルウェア４１が存在し、／ｕｓｒ／ｂｉｎ配下にミドルウェア４２が存在している。これらのミドルウェアは、一部のジョブを実行するために必要なものであるが、全てのジョブにおいては必要とされていないものであるとする。
【００４５】
このように、全てのジョブにおいては必要とされていないミドルウェアやライブラリ等（以下、単に「ミドルウェア等」という）を全ての隔離環境に配備することは、ディスク容量を浪費することになり好ましくない。そこで、本実施例に係るグリッドシステムにおいては、ある隔離環境で実行するジョブがこのようなミドルウェア等を必要とする場合にのみ、その隔離環境に必要なミドルウェア等を配備する。
【００４６】
そして、このようなミドルウェア等をある隔離環境に配備した以降は、同一の利用者がそのミドルウェア等を必要とするジョブの実行を依頼した場合に、できるだけそのミドルウェア等が既に配備されている隔離環境にジョブが割り当てられるように制御する。
【００４７】
図２の例では、ミドルウェア４１が隔離環境３００2に配備されている。そのため、隔離環境３００2に対応する利用者がミドルウェア４１を必要とするジョブの実行を依頼した場合、そのジョブは、できるだけ隔離環境３００2に割り当てられるように制御される。
【００４８】
また、隔離環境に各種ファイルを配備する場合、ファイルの実体を複製するのではなく、リンクのみを設定することもできる。例えば、図２の例でミドルウェア４１を隔離環境３００2に配備する場合、ミドルウェア４１の実体を複製することなく、スタティックリンク等の機能を用いてリンクを設定し、隔離環境３００2からミドルウェア４１を参照可能にすることができる。
【００４９】
このようなリンクを設定することにより、ファイルの複製が不要となり、ディスク容量を節約することができる。このようなリンクは、利用者ごとに更新が行われるデータファイルや利用者ごとに異なる設定値を必要とする設定ファイル等には適用できないが、プログラムやライブラリの配備において有効である。
【００５０】
また、本実施例に係るグリッドシステムにおいては、隔離環境の作成、削除およびミドルウェア等の追加は、ジョブ割当装置１００とノード３００〜３０２の連動によって自律的に行われ、隔離環境の運用管理のための工数が省力化されている。隔離環境の作成、削除およびミドルウェア等の追加の詳細については後述する。
【００５１】
なお、隔離環境は、ＢＳＤ版のＵＮＩＸ（登録商標）におけるＪＡＩＬ環境以外にも、仮想計算機を実現する種々の仕組みやプログラムを利用して実現することができ、本発明は、隔離環境の実現手法を特定しない。
【００５２】
図１の説明に戻って、パッケージ記憶装置４００は、各種のミドルウェア等を記憶する装置である。ノード３００〜３０２は、割り当てられたジョブを実行するために必要なミドルウェア等が自身に配備されていない場合、パッケージ記憶装置４００にそのミドルウェア等の転送を依頼する。
【００５３】
ジョブ割当装置１００は、端末装置２００〜２０２から依頼されたジョブをグリッド１０に属するノード３００〜３０２のどの隔離環境へ割り当てるべきかを判定し、判定した隔離環境で実行が行われるようにジョブをグリッド１０へ投入する装置である。ジョブの投入は、例えば、ＺＡＲファイル３２を用いて行われる。
【００５４】
ジョブ割当装置１００は、ジョブの割当先を選定するにあたって、従来のグリッドシステムにおいて行われていたようにノード３００〜３０２の負荷状況等を参考にする以外に、ジョブを実行するために必要なミドルウェア等と、ノード３００〜３０２へのミドルウェア等の配備状況と、ノード３００〜３０２の各隔離環境へのミドルウェア等の配備状況とを参考にする。
【００５５】
負荷状況のように従来のグリッドシステムにおいてもジョブの割当先を選定するにあたって参考にされてきた条件がノード３００〜３０２のいずれにおいても同一であるとした場合、ジョブ割当装置１００は、ジョブを実行するために必要なミドルウェア等の追加配備が必要ないか最も少なくて済む隔離環境を当該のジョブの利用者に対応する隔離環境から選択し、ジョブの割当先として選定する。
【００５６】
ノード３００〜３０２は、ジョブの実行を指示された隔離環境にジョブの実行に必要なミドルウェア等が配備されていない場合、自装置内にそのミドルウェア等が配備済みであれば、それを隔離環境に配備し、自装置内にそのミドルウェア等が配備済みでなければ、パッケージ記憶装置４００からそのミドルウェア等の転送を受けて、自装置内に配備し、それを隔離環境に配備する。このため、ミドルウェア等の追加配備が多く必要となるほど、追加配備に要する時間が長くなってジョブの実行開始が遅れ、さらに、記憶容量も多く消費されてしまう。
【００５７】
そこで、ジョブ割当装置１００は、どのノードにどの利用者の隔離環境が存在し、どの隔離環境にどのパッケージ等が配備済みであるかを記憶し、この情報を参照して、ミドルウェア等の追加配備が必要ないか最も少なくて済む隔離環境をジョブの割当先として選定する。
【００５８】
そして、ジョブ割当装置１００は、負荷状況等の理由により利用者に対応する既存の隔離環境のいずれもジョブの割当先として選定することができない場合、もしくは、利用者荷対応する隔離環境が存在しない場合は、ジョブを実行するために必要なミドルウェア等の追加配備が必要ないか最も少なくて済むノードを選定し、選定したノードに対して、新規の隔離環境を作成し、そこでジョブを実行するように指示する。
【００５９】
ノード３００〜３０２は、新規の隔離環境を作成してジョブの実行を行うように指示された場合、各種プログラムの実行に必要な標準的なファイルを含んだ隔離環境を作成した後、ジョブの実行に必要なミドルウェア等の追加配備が必要であれば、上記の手順で追加配備を実行する。このため、ミドルウェア等の追加配備が多く必要となるほど、追加配備に要する時間が長くなってジョブの実行開始が遅れ、さらに、記憶容量も多く消費されてしまう。
【００６０】
そこで、ジョブ割当装置１００は、どのノードにどのパッケージ等が配備済みであるかを記憶し、この情報を参照して、ミドルウェア等の追加配備が必要ないか最も少なくて済むノードを隔離環境の作成先として選定する。
【００６１】
また、ジョブ割当装置１００は、ジョブの割り当てを行うにあたって、ミドルウェア等のライセンスの確認も行う。所定のライセンスを取得すべきミドルウェア等を必要とするジョブの実行を依頼された場合、ジョブ割当装置１００は、予め記憶されている各利用者のライセンスの取得状況を参照し、当該のジョブの実行を依頼した利用者が所定のライセンスを取得していない場合は、ジョブの実行を拒絶する。
【００６２】
そして、当該のジョブの実行を依頼した利用者が所定のライセンスを取得している場合であっても、ＣＰＵ（Central Processing Unit）数等のライセンス条件がある場合には、その条件に違反してミドルウェア等の配備が行われないようにジョブの割当先を選定する。
【００６３】
例えば、ある利用者が、データベースシステムのライセンスを１本取得しており、ＣＰＵ数が２個までの情報処理装置で利用できるというライセンス条件があるものとする。その場合、ジョブ割当装置１００は、この利用者から当該のデータベースシステムを必要とするジョブの実行を依頼された場合、ＣＰＵ数が２個よりも多いノードにはそのジョブを割り当てない。
【００６４】
そして、このジョブをあるノードのある隔離環境に割り当てた後は、ライセンスの本数の問題から他の隔離環境にデータベースシステムを配備することができないため、同じ利用者から当該のデータベースシステムを必要とするジョブの実行を依頼された場合は、常にその隔離環境に割り当てをおこなう。
【００６５】
また、ジョブ割当装置１００は、不要になった隔離環境の整理も担当する。例えば、ある利用者の登録が抹消された場合、ジョブ割当装置１００は、自身が記憶する情報に基づいてその利用者に対応する隔離環境を選択し、それらを削除するようにノード３００〜３０２へ指示する。
【００６６】
さらに、ジョブ割当装置１００は、どの隔離環境に最後にいつジョブを割り当てたかを記憶しておき、所定の期間を超えてジョブの割り当てが行われていない隔離環境を一定時間ごとに取得し、それらを削除するようにノード３００〜３０２へ指示する。
【００６７】
次に、図１に示したジョブ割当装置１００の構成について説明する。図３は、ジョブ割当装置１００の構成を示す機能ブロック図である。同図に示すように、ジョブ割当装置１００は、制御部１１０と、記憶部１２０と、ネットワークインターフェース部１３０とを有する。
【００６８】
制御部１１０は、ジョブ割当装置１００を全体制御する制御部であり、ジョブ受付部１１１と、投入先選択部１１２と、ソフトウェア情報取得部１１３と、ライセンス検査部１１４と、負荷状況取得部１１５と、ジョブ投入部１１６と、隔離環境削除部１１７とを有する。
【００６９】
ジョブ受付部１１１は、端末装置２００〜２０２からジョブの実行依頼を受け付け、実行を依頼されたジョブを記憶部１２０のジョブキュー１２１へ格納する処理部である。ジョブ受付部１１１は、ジョブの実行依頼を受け付ける際に、端末装置２００〜２０２から送信された利用者ＩＤとパスワードを記憶部１２０の利用者マスタ１２２ａと照合して利用者の認証を行い、認証が成功した場合のみジョブの実行依頼を受け付け、ジョブと送信された利用者ＩＤとを関連付けてジョブキュー１２１へ格納する。
【００７０】
投入先選択部１１２は、ジョブキュー１２１からジョブを順次取り出し、そのジョブの投入先となる隔離環境を選択してジョブ投入部１１６にジョブの投入を依頼する処理部である。投入先選択部１１２は、ジョブの投入先を選択するにあたって、ジョブを実行するために追加配備が必要なミドルウェア等の多さ、ジョブを実行するために必要なミドルウェア等のライセンス条件、各隔離環境の負荷状況等を考慮する。投入先選択部１１２が、ジョブの投入先を選択する詳細な手順については後述する。
【００７１】
ソフトウェア情報取得部１１３は、ジョブの実行に必要なミドルウェア等の情報を取得する処理部である。この情報の取得は、ＺＡＲファイル３１に含まれるプログラムを解析して取得することとしてもよいし、利用者が予めＺＡＲファイル３１に含まれる付帯情報の一部としてジョブの実行に必要なミドルウェア等の情報を埋め込んでおき、その情報を読み出すこととしてもよい。
【００７２】
ソフトウェア情報取得部１１３は、投入先選択部１１２の指示に従って、ジョブの実行に必要なミドルウェア等の情報を取得し、取得結果を投入先選択部１１２へ応答する。
【００７３】
ライセンス検査部１１４は、ライセンス違反を生じさせないための各種検査をおこなう処理部である。具体的には、ライセンス検査部１１４は、投入先選択部１１２の指示に従って、ジョブの実行に必要なミドルウェア等の中に当該のジョブの実行を依頼した利用者がライセンスを有していないものが含まれているか否かの検査と、ジョブをある隔離環境に投入した場合にライセンス違反が生じるか否かの検査を行う。
【００７４】
負荷状況取得部１１５は、投入先選択部１１２の指示に従って、隔離環境とノードの負荷状況を取得し、取得結果を投入先選択部１１２へ応答する処理部である。なお、本実施例では、従来からジョブの割当の判断材料として用いられてきた基準のうち、負荷状況のみを判断材料の一つとして用いているが、従来からジョブの割当の判断材料として用いられてきた基準を判断材料に加えることとしてもよい。
【００７５】
ジョブ投入部１１６は、投入先選択部１１２によって選択された投入先へジョブの投入を行う処理部である。ジョブ投入部１１６は、ジョブの投入を行うにあたって、ジョブの実行に必要なミドルウェア等の一覧をジョブとともに送信する。
【００７６】
隔離環境削除部１１７は、隔離環境の削除を担当する処理部である。具体的には、隔離環境削除部１１７は、利用者の登録が抹消された場合、すなわち、記憶部１２０の利用者マスタ１２２ａから利用者のデータが削除された場合に、その利用者に対応する全ての隔離環境の削除をノード３００〜３０２へ指示する。
【００７７】
また、隔離環境削除部１１７は、最後にジョブが投入されてから所定の時間が経過している隔離環境を一定時間ごとに抽出し、それらの削除をノード３００〜３０２へ指示する。
【００７８】
記憶部１２０は、各種情報を記憶する記憶部であり、ジョブキュー１２１と、ジョブ割当用ＤＢ１２２とを有する。ジョブキュー１２１は、ジョブ割当装置１００が端末装置２００〜２０２から受け付けたジョブを一時的に記憶しておくためのキューである。
【００７９】
ジョブ割当用ＤＢ１２２は、投入先選択部１１２等が各種処理を行うために必要な情報を保持するデータベースであり、利用者マスタ１２２ａと、パッケージマスタ１２２ｂと、ライセンスマスタ１２２ｃと、ノードマスタ１２２ｄと、隔離環境マスタ１２２ｅとを保持する。
【００８０】
利用者マスタ１２２ａは、本実施例に係るグリッドシステムの利用者の情報が予め格納されるマスタである。利用者マスタ１２２ａのデータ構成の一例を図４に示す。同図に示すように、利用者マスタ１２２ａは、利用者ＩＤ、パスワード、利用者名といった項目を有し、利用者ごとにデータが登録される。
【００８１】
利用者ＩＤは、利用者を識別するための識別番号である。パスワードは、利用者ＩＤと組み合わせて、利用者の認証を行うためのパスワードである。利用者名は、利用者の名前である。
【００８２】
パッケージマスタ１２２ｂは、パッケージに関する情報が予め登録されるマスタである。パッケージとは、ミドルウェア等を構成する各種ファイルをまとめて扱うための単位である。パッケージマスタ１２２ｂのデータ構成の一例を図５に示す。同図に示すように、パッケージマスタ１２２ｂは、パッケージＩＤ、パッケージ名、利用区分、アーカイブ名、依存パッケージリストといった項目を有し、パッケージごとにデータが登録される。
【００８３】
パッケージＩＤは、パッケージを識別するための識別番号であり、パッケージ名は、パッケージの名前である。利用区分は、そのパッケージがライセンスを必要とする場合は「有償」の値をとり、ライセンスを必要としない場合は「無償」の値をとる。アーカイブ名は、そのパッケージを配備するために必要な各種ファイルやインストールプログラム等が格納されたファイルの名前を示す。依存パッケージリストは、そのパッケージを配備するために必要な他のパッケージの一覧を示す。
【００８４】
ソフトウェア情報取得部１１３は、ジョブの実行に必要なミドルウェア等の情報を取得し、取得結果を投入先選択部１１２へ応答する場合に、ジョブの実行に必要なミドルウェア等の情報をパッケージＩＤのリストとして応答する。そして、応答する際には、依存パッケージリストの情報を参照して、ジョブの実行に必要なミドルウェア等が依存しているパッケージのパッケージＩＤも応答に含める。
【００８５】
例えば、ジョブの実行に「ＤＢ００１−０１」というパッケージＩＤを有するパッケージが必要であった場合、ソフトウェア情報取得部１１３は、パッケージマスタ１２２ｂの該当データの依存パッケージリストに設定されている「ＤＢ００１−０２」、「ＤＢ００１−０３」および「ＤＢ００１−０４」も応答に含める。
【００８６】
このように、パッケージの依存を考慮することにより、隔離環境にて配備が必要なミドルウェア等をジョブ割当装置１００が正確に把握することが可能になる。
【００８７】
ライセンスマスタ１２２ｃは、利用者が取得しているライセンスに関する情報が予め登録されるマスタである。ライセンスマスタ１２２ｃのデータ構成の一例を図６に示す。同図に示すように、ライセンスマスタ１２２ｃは、利用者ＩＤ、パッケージＩＤ、ライセンス数、利用可能ＣＰＵ数といった項目を有し、利用者ＩＤごとに複数のデータを登録することができる。
【００８８】
利用者ＩＤは、利用者を識別するための識別番号であり、利用者マスタ１２２ａの利用者ＩＤと対応する。パッケージＩＤは、パッケージを識別するための識別番号であり、パッケージマスタ１２２ｂのパッケージＩＤと対応する。ライセンス数は、当該の利用者が当該のパッケージに関して取得しているライセンスの数であり、利用可能ＣＰＵ数は、各ライセンスにおいてパッケージを配備可能なノードのＣＰＵ数の上限である。
【００８９】
例えば、１行目のデータは、利用者ＩＤが「Ｕ００１」、パッケージＩＤが「ＤＢ００１−０１」、ライセンス数が「２」、そして利用可能ＣＰＵ数が「４」となっている。これは、「Ｕ００１」という利用者ＩＤをもつ利用者は、「ＤＢ００１−０１」というパッケージを、４個以下のＣＰＵをもつ２台までのノードに配備して使用できることを意味する。
【００９０】
ノードマスタ１２２ｄは、グリッドに属するノードに関する情報が予め登録されるマスタである。ノードマスタ１２２ｄのデータ構成の一例を図７に示す。同図に示すように、ノードマスタ１２２ｄは、ノードＩＤ、ＩＰ（Internet Protocol）アドレス、ＣＰＵ数、隔離環境数、隔離環境上限数、配備パッケージリストといった項目を有し、ノードごとにデータが登録される。
【００９１】
ノードＩＤは、ノードを識別するための識別番号である。ＩＰアドレスは、ノードに割り当てられているＩＰアドレスであり、ＣＰＵ数は、ノードが備えるＣＰＵの数である。隔離環境数は、ノード上に作成済みの隔離環境の数であり、隔離環境上限数は、ノード上に作成可能な隔離環境の上限数である。配備パッケージリストは、ノードに配備済みのパッケージの一覧を示す。
【００９２】
これらの項目のうち、隔離環境数は、投入先選択部１１２と隔離環境削除部１１７により更新される。また、配備パッケージリストは、投入先選択部１１２により更新される。
【００９３】
投入先選択部１１２は、負荷状況等の理由により、既存の隔離環境へジョブを割り当てることができない場合、いくつかの条件に基づいてノードを選択し、そのノードに新たな隔離環境を作成させ、その隔離環境でジョブを実行させる。
【００９４】
条件の一つは、ノードマスタ１２２ｄにおいて隔離環境数が隔離環境上限数よりも小さいことであり、他の条件の一つは、ジョブの実行に必要なミドルウェア等に対応するパッケージＩＤが配備パッケージリストに多く存在することである。そのノードにジョブの実行に必要なソフトウェアを配備してもライセンス違反が生じないことや、負荷の発生状況等も条件となる。
【００９５】
そして、投入先選択部１１２は、新たに隔離環境を作成してジョブを実行させるノードを選択すると、そのノードに対応するノードマスタ１２２ｄのデータの隔離環境数に１を加算し、同データの配備パッケージリストが当該のジョブを実行するのに必要なミドルウェア等に対応するパッケージＩＤを全て含むように更新する。
【００９６】
ノードを選択した段階では、実際には、そのノードに隔離環境が作成されておらず、追加配備がミドルウェア等の配備も行われていないが、これらが完了するまで待っていたのでは、それまでの間に同じ利用者が発行した同様のジョブの割当先の選定を適切に行うことができないので、この段階でノードマスタ１２２ｄの更新を行う。
【００９７】
また、隔離環境削除部１１７は、隔離環境の削除をノードに指示した場合に、そのノードに対応するノードマスタ１２２ｄのデータの隔離環境数から１を減算する。
【００９８】
隔離環境マスタ１２２ｅは、各ノード上の隔離環境に関する情報が登録されるマスタである。隔離環境マスタ１２２ｅのデータ構成の一例を図８に示す。同図に示すように、隔離環境マスタ１２２ｅは、ノードＩＤ、隔離環境ＩＤ、利用者ＩＤ、作成日時、最終利用日時、配備パッケージリストといった項目を有し、隔離環境ごとにデータが登録される。
【００９９】
ノードＩＤは、ノードを識別するための識別番号であり、ノードマスタ１２２ｄのノードＩＤに対応する。隔離環境ＩＤは、隔離環境を識別するための識別番号である。利用者ＩＤは、隔離環境に対応する利用者を識別するための識別番号であり、利用者マスタ１２２ａの利用者ＩＤと対応する。作成日時は、隔離環境が作成された日時であり、最終利用日時は、隔離環境に最後にジョブが割り当てられた日時である。配備パッケージリストは、隔離環境に配備済みのパッケージの一覧を示す。
【０１００】
隔離環境マスタ１２２ｅのデータは、投入先選択部１１２が新たに隔離環境を作成してジョブを実行させるノードを選択した場合に、投入先選択部１１２によって登録される。そして、隔離環境削除部１１７が隔離環境の削除をノードに指示した場合に、その隔離環境に対応するデータが隔離環境削除部１１７によって削除される。
【０１０１】
既に説明したように、投入先選択部１１２は、負荷状況等の理由により、既存の隔離環境へジョブを割り当てることができない場合、いくつかの条件に基づいてノードを選択し、新たな隔離環境のための隔離環境ＩＤを採番する。そして、採番した隔離環境ＩＤを用いて新たなデータを隔離環境マスタ１２２ｅに登録するとともに、採番した隔離環境ＩＤを指定してジョブの投入を行うようにジョブ投入部１１６へ指示する。
【０１０２】
また、投入先選択部１１２は、ジョブを投入する隔離環境を選択するたびに、その隔離環境に対応する隔離環境マスタ１２２ｅのデータの最終利用日時を現在日時へ書き換え、同データの配備パッケージリストが当該のジョブを実行するのに必要なミドルウェア等に対応するパッケージＩＤを全て含むように更新する。
【０１０３】
隔離環境を選択した段階では、実際には、追加配備がミドルウェア等の配備は行われていないが、追加配備完了するまで待っていたのでは、それまでの間に同じ利用者が発行した同様のジョブの割当先の選定を適切に行うことができないので、この段階でノ隔離環境マスタ１２２ｅの更新を行う。
【０１０４】
ネットワークインターフェース部１３０は、ネットワークを介して各種情報をやりとりするためのインターフェースである。
【０１０５】
次に、図１に示したノード３００〜３０２の構成について説明する。ノード３００〜３０２は、いずれも同様の構成を有するので、ここでは、ノード３００を例にして構成の説明を行うこととする。図９は、ノード３００の構成を示す機能ブロック図である。同図に示すように、ノード３００は、制御部３１０と、記憶部３２０と、ネットワークインターフェース部３３０とを有する。
【０１０６】
制御部３１０は、ノード３００を全体制御する制御部であり、ジョブ受付部３１１と、ジョブ実行部３１２と、ソフトウェア情報取得部３１３と、隔離環境管理部３１４と、負荷状況測定部３１５とを有する。
【０１０７】
ジョブ受付部３１１は、ジョブ割当装置１００からジョブの実行依頼を受け付け、実行を依頼されたジョブを記憶部３２０のジョブキュー３２１へ格納する処理部である。ジョブ受付部３１１は、ジョブの実行依頼を受け付ける際に指定された隔離環境ＩＤをジョブと関連付けてジョブキュー３２１へ格納する。この隔離環境ＩＤは、ジョブを実行する隔離環境を指定するものである。
【０１０８】
ジョブ実行部３１２は、ジョブキュー３２１からジョブを順次取り出し、そのジョブと関連付けられた隔離環境ＩＤが示す隔離環境にてジョブを実行し、実行結果をジョブ割当装置１００へ応答する処理部である。
【０１０９】
ジョブ実行部３１２は、記憶部３２０の隔離環境マスタ３２４を参照し、そのジョブと関連付けられた隔離環境ＩＤがいずれのデータにも該当しない場合は、隔離環境管理部３１４に隔離環境の新規作成を行わせる。
【０１１０】
また、ジョブ実行部３１２は、ジョブの実行に先立って、ジョブを実行するために必要なミドルウェア等の情報をソフトウェア情報取得部３１３に取得させ、隔離環境管理部３１４にミドルウェア等の追加配備を行わせる。
【０１１１】
ソフトウェア情報取得部３１３は、ジョブの実行に必要なミドルウェア等の情報を取得する処理部である。この情報の取得は、ジョブとともに送信されたミドルウェア等の一覧を読み出すことにより実現される。ソフトウェア情報取得部３１３は、ジョブ実行部３１２の指示に従って、ジョブの実行に必要なミドルウェア等の情報を取得し、取得結果をジョブ実行部３１２へ応答する。
【０１１２】
隔離環境管理部３１４は、隔離環境の作成、隔離環境へのミドルウェア等の追加配備および隔離環境の削除を行う処理部である。隔離環境管理部３１４は、ジョブ実行部３１２から隔離環境の作成を指示された場合、隔離環境を新たに作成し、その情報を隔離環境マスタ３２４へ登録する。
【０１１３】
また、隔離環境管理部３１４は、ジョブ実行部３１２からミドルウェア等の追加配備を指示された場合、ジョブの実行に必要なミドルウェア等の情報と、隔離環境マスタ３２４に記憶されている配備済みのミドルウェア等の情報とを照合する。そして、追加配備が必要なミドルウェア等があれば、記憶部３２０のパッケージ格納領域３２２から追加配備が必要なミドルウェア等を取得して追加配備を行い、隔離環境マスタ３２４にその旨を記録する。
【０１１４】
ここで、追加配備が必要なミドルウェア等がパッケージ格納領域３２２に存在しない場合は、隔離環境管理部３１４は、パッケージ記憶装置４００にそのミドルウェア等の転送を依頼し、転送されたミドルウェア等をパッケージ格納領域３２２に格納した後、ジョブの実行先の隔離環境へ追加配備する。
【０１１５】
なお、ミドルウェア等の追加配備を行う場合、記憶容量の消費を少なくするため、パッケージ格納領域３２２から各種ファイルの実体を隔離環境へ複製せずに、リンクの設定のみを行うこととしてもよい。
【０１１６】
また、隔離環境管理部３１４は、ジョブ割当装置１００の隔離環境削除部１１７から隔離環境の削除を指示された場合、その隔離環境を削除し、隔離環境マスタ３２４からその隔離環境に対応するデータを削除する。
【０１１７】
負荷状況測定部３１５は、ジョブ割当装置１００の負荷状況取得部１１５の依頼に応じて当該のノード、もしくは、当該のノード上の隔離環境の負荷状況を測定し、応答する処理部である。
【０１１８】
記憶部３２０は、各種情報を記憶する記憶部であり、ジョブキュー３２１と、パッケージ格納領域３２２と、隔離環境作成領域３２３と、隔離環境マスタ３２４とを有する。ジョブキュー３２１は、ノード３００がジョブ割当装置１００から受け付けたジョブを一時的に記憶しておくためのキューである。パッケージ格納領域３２２は、プログラムの実行に必要な各種ファイルが格納される領域であり、隔離環境作成領域３２３は、隔離環境が作成される領域である。
【０１１９】
隔離環境マスタ３２４は、ノード３００上の隔離環境に関する情報が登録されるマスタである。隔離環境マスタ３２４のデータ構成の一例を図１０に示す。同図に示すように、隔離環境マスタ３２４は、隔離環境ＩＤ、パス、配備パッケージリストといった項目を有し、隔離環境ごとにデータが登録される。
【０１２０】
隔離環境ＩＤは、隔離環境を識別するための識別番号であり、ジョブ割当装置１００の隔離環境マスタ１２２ｅの隔離環境ＩＤと対応する。パスは、隔離環境が作成された位置を示す。配備パッケージリストは、隔離環境に配備済みのパッケージの一覧を示す。
【０１２１】
隔離環境マスタ３２４のデータは、隔離環境管理部３１４が新たに隔離環境を作成した場合に、隔離環境管理部３１４によって登録される。そして、隔離環境管理部３１４が隔離環境の削除を実行した場合に、その隔離環境に対応するデータが隔離環境管理部３１４によって削除される。
【０１２２】
また、隔離環境マスタ３２４の配備パッケージリストは、隔離環境管理部３１４がミドルウェア等の追加配備を行うたびに、その隔離環境に配備されているミドルウェア等に対応するパッケージＩＤを全て含むように隔離環境管理部３１４によって更新される。
【０１２３】
ネットワークインターフェース部３３０は、ネットワークを介して各種情報をやりとりするためのインターフェースである。
【０１２４】
次に、図１に示したジョブ割当装置１００の処理手順について説明する。図１１は、ジョブ割当装置１００におけるジョブ投入処理の処理手順を示すフローチャートである。このフローチャートは、ジョブ割当装置１００がジョブキュー１２１に格納されているジョブを１件取り出してから投入するまでの処理手順を示しており、ジョブ割当装置１００は、この処理手順を繰り返し実行する。
【０１２５】
同図に示すように、まず、投入先選択部１１２が、ジョブキュー１２１からジョブを取得し（ステップＳ１０１）、ソフトウェア情報取得部１１３にそのジョブを実行するために必要なパッケージの一覧を取得させる（ステップＳ１０２）。
【０１２６】
そして、投入先選択部１１２は、ソフトウェア情報取得部１１３により取得されたパッケージの一覧に、ジョブを発行した利用者がライセンスを有していないミドルウェア等が含まれていなかをライセンス検査部１１４に検査させる。
【０１２７】
投入先選択部１１２の指示を受けたライセンス検査部１１４は、パッケージマスタ１２２ｂを参照し、ソフトウェア情報取得部１１３により取得されたパッケージの一覧の中にライセンスが必要なものが存在するか否かを検査する（ステップＳ１０３）。そして、パッケージの一覧の中にライセンスが必要なものが存在する場合は（ステップＳ１０４肯定）、ライセンスマスタ１２２ｃを参照し、利用者がそのパッケージを使用するためのライセンスを有しているか否かを検査する（ステップＳ１０５）。
【０１２８】
ここで、利用者がそのパッケージを使用するためのライセンスを有していない場合は（ステップＳ１０６否定）、ライセンス検査部１１４は、その旨を投入先選択部１１２へ応答し、投入先選択部１１２は、エラー処理を実行し、このジョブに関する処理を終了する。ここでのエラー処理は、例えば、ジョブを破棄し、そのジョブの実行を依頼した端末装置へ対してライセンス違反があった旨を通知する処理となる。
【０１２９】
パッケージの一覧の中にライセンスが必要なものが存在しない場合（ステップＳ１０４否定）、もしくは、利用者がパッケージを使用するためのライセンスを有している場合は（ステップＳ１０６肯定）、ライセンス検査部１１４は、ライセンスに問題がない旨を投入先選択部１１２へ応答し、投入先選択部１１２は、後述する投入先選択処理を実行し、ジョブをどのノードのどの隔離環境へ投入するかを決定する（ステップＳ１０７）。
【０１３０】
そして、投入先選択部１１２は、ジョブの投入先のノードに対応するノードマスタ１２２ｄのデータの配備パッケージリストと、ジョブの投入先の隔離環境に対応する隔離環境マスタ１２２ｅのデータの配備パッケージリストとが、ステップＳ１０２で取得されたパッケージの一覧に含まれるパッケージを全て含むように更新する（ステップＳ１０８）。
【０１３１】
そして、ジョブの投入先の隔離環境に対応する隔離環境マスタ１２２ｅのデータの最終利用日時を現在時刻に変更し（ステップＳ１０９）、ステップＳ１０２で取得されたパッケージの一覧とともにジョブをステップＳ１０７で選択した投入先へ投入するようにジョブ投入部１１６に指示する（ステップＳ１１０）。
【０１３２】
図１２は、投入先選択処理の処理手順を示すフローチャートである。投入先選択部１１２は、ライセンス検査部１１４からライセンスに問題がない旨の応答を受けた後、隔離環境マスタ１２２ｅのデータのうち、利用者ＩＤがジョブを発行した利用者の利用者ＩＤと一致する各データの配備パッケージリストと、ステップＳ１０２で取得されたパッケージの一覧とを比較し（ステップＳ２０１）、隔離環境マスタ１２２ｅの各データの隔離環境ＩＤを追加配備が必要なパッケージが少ない順に配列に格納する（ステップＳ２０２）。
【０１３３】
そして、変数ａを１に初期化し（ステップＳ２０３）、ａ番目の隔離環境ＩＤを配列から取得する（ステップＳ２０４）。ここで、ａ番目の隔離環境ＩＤを配列から取得できた場合（ステップＳ２０５肯定）、投入先選択部１１２は、その隔離環境ＩＤに対応する隔離環境の負荷状況を負荷状況取得部１１５に取得させる（ステップＳ２０６）。
【０１３４】
そして、取得された負荷状況が所定の閾値よりも高かった場合（ステップＳ２０７否定）、投入先選択部１１２は、変数ａに１を加算した後（ステップＳ２１０）、ステップＳ２０４へ復帰して次の隔離環境ＩＤの取得を試行する。
【０１３５】
取得された負荷状況が所定の閾値よりも低かった場合（ステップＳ２０７肯定）、投入先選択部１１２は、その隔離環境ＩＤに対応する隔離環境をジョブの投入先として選定した場合に、ライセンス違反が生じるか否かをライセンス検査部１１４に検査させる。
【０１３６】
投入先選択部１１２の指示を受けたライセンス検査部１１４は、ステップＳ１０２で取得されたパッケージの一覧に対応するパッケージが、隔離環境ＩＤに対応する隔離環境に全て配備された状態となった場合に、ライセンス数等のライセンス条件に違反した状態となるかを否かを検査する（ステップＳ２０８）。
【０１３７】
ここで、ライセンス違反となることが分かった場合（ステップＳ２０９否定）、ライセンス検査部１１４は、その旨を投入先選択部１１２へ応答し、投入先選択部１１２は、変数ａに１を加算した後（ステップＳ２１０）、ステップＳ２０４へ復帰して次の隔離環境ＩＤの取得を試行する。
【０１３８】
ライセンス違反が生じないことが分かった場合（ステップＳ２０９肯定）、ライセンス検査部１１４は、ライセンスに問題がない旨を投入先選択部１１２へ応答し、投入先選択部１１２は、ステップＳ２０４で取得した隔離環境ＩＤが示す隔離環境をジョブの投入先に選定する（ステップＳ２１１）。
【０１３９】
一方、ステップＳ２０４にてａ番目の隔離環境ＩＤを配列から取得できなかった場合、すなわち、ジョブを投入可能な隔離環境が存在しなかった場合は（ステップＳ２０５否定）、ライセンス検査部１１４は、後述する隔離環境作成ノード選定処理を行って、隔離環境を新たに作成するノードを選定する（ステップＳ２１２）。
【０１４０】
そして、選定されたノードに対応するノードマスタ１２２ｄのデータの隔離環境数に１を加算し（ステップＳ２１３）、新たな隔離環境のための隔離環境ＩＤを採番する（ステップＳ２１４）。そして、隔離環境マスタ１２２ｅにデータの追加を行い（ステップＳ２１５）、新規追加されることになる隔離環境をジョブの投入先に選定する（ステップＳ２１６）。
【０１４１】
図１３は、隔離環境作成ノード選定処理の処理手順を示すフローチャートである。投入先選択部１１２は、ジョブを投入可能な隔離環境が存在しない場合、ノードマスタ１２２ｄの各データの配備パッケージリストと、ステップＳ１０２で取得されたパッケージの一覧とを比較し（ステップＳ３０１）、ノードマスタ１２２ｄの各データのノードＩＤを追加配備が必要なパッケージが少ない順に配列に格納する（ステップＳ３０２）。
【０１４２】
そして、変数ｂを１に初期化し（ステップＳ３０３）、ｂ番目のノードＩＤを配列から取得する（ステップＳ３０４）。ここで、ｂ番目のノードＩＤを配列から取得できた場合（ステップＳ３０５肯定）、投入先選択部１１２は、そのノードＩＤに対応するノードマスタ１２２ｄのデータの隔離環境数と隔離環境上限数を取得する（ステップＳ３０６）。
【０１４３】
そして、投入先選択部１１２は、隔離環境数と隔離環境上限数を比較し、隔離環境数が隔離環境上限数未満でなければ（ステップＳ３０７否定）、変数ｂに１を加算した後（ステップＳ３１２）、ステップＳ３０４へ復帰して次のノードＩＤの取得を試行する。隔離環境数が隔離環境上限数未満であれば（ステップＳ３０７肯定）、そのノードＩＤに対応するノードの負荷状況を負荷状況取得部１１５に取得させる（ステップＳ３０８）。
【０１４４】
そして、取得された負荷状況が所定の閾値よりも高かった場合（ステップＳ３０９否定）、投入先選択部１１２は、変数ｂに１を加算した後（ステップＳ３１２）、ステップＳ３０４へ復帰して次のノードＩＤの取得を試行する。
【０１４５】
取得された負荷状況が所定の閾値よりも低かった場合（ステップＳ３０９肯定）、投入先選択部１１２は、そのノードＩＤに対応するノードに新規に隔離環境を作成してその隔離環境をジョブの投入先として選定した場合に、ライセンス違反が生じるか否かをライセンス検査部１１４に検査させる。
【０１４６】
投入先選択部１１２の指示を受けたライセンス検査部１１４は、ステップＳ１０２で取得されたパッケージの一覧に対応するパッケージが、ノードＩＤに対応するノードに新規に作成される隔離環境に全て配備された状態となった場合に、ライセンス数等のライセンス条件に違反した状態となるか否かを検査する（ステップＳ３１０）。
【０１４７】
ここで、ライセンス違反となることが分かった場合（ステップＳ３１１否定）、ライセンス検査部１１４は、その旨を投入先選択部１１２へ応答し、投入先選択部１１２は、変数ｂに１を加算した後（ステップＳ３１２）、ステップＳ３０４へ復帰して次のノードＩＤの取得を試行する。
【０１４８】
ライセンス違反が生じないことが分かった場合（ステップＳ３１１肯定）、ライセンス検査部１１４は、ライセンスに問題がない旨を投入先選択部１１２へ応答し、投入先選択部１１２は、ステップＳ３０４で取得したノードＩＤが示すノードを新規に隔離環境を作成するノードに選定する（ステップＳ３１３）。
【０１４９】
一方、ステップＳ３０４にてｂ番目の隔離環境ＩＤを配列から取得できなかった場合、すなわち、隔離環境を作成可能なノードが存在しなかった場合は（ステップＳ３０５否定）、ライセンス検査部１１４は、エラー処理を実行し、このジョブに関する処理を終了する。ここでのエラー処理は、例えば、ジョブをジョブキュー１２１へ戻し、投入先の選定を再実行させる処理となる。
【０１５０】
図１４は、ジョブ割当装置１００における隔離環境の自動削除処理の処理手順を示すフローチャートである。ジョブ割当装置１００は、一定時間ごとに、この処理手順を繰り返し起動する。
【０１５１】
自動削除処理が起動されると、隔離環境削除部１１７は、隔離環境マスタ１２２ｅからデータを１件リードする（ステップＳ４０１）。ここで、全てのデータのリードが完了していれば（ステップＳ４０２肯定）、隔離環境削除部１１７は、自動削除処理を終了させる。
【０１５２】
隔離環境マスタ１２２ｅからデータをリードすることができた場合は（ステップＳ４０２否定）、リードしたデータの最終利用日時と現在時刻の差を算出する（ステップＳ４０３）。そして、差が所定の閾値よりも小さければ（ステップＳ４０４否定）、ステップＳ４０１へ復帰して次のデータのリードを試行する。
【０１５３】
また、差が所定の閾値よりも大きければ（ステップＳ４０４肯定）、後述する隔離環境削除処理を実行し（ステップＳ４０５）、その後、ステップＳ４０１へ復帰して次のデータのリードを試行する。
【０１５４】
図１５は、隔離環境削除処理の処理手順を示すフローチャートである。この処理は、利用者マスタ１２２ａからデータが削除された場合に、削除された利用者に対応する各隔離環境を削除するためにも使用される。
【０１５５】
隔離環境削除部１１７は、削除対象の隔離環境を有するノードに対して隔離環境ＩＤを指示して該当する隔離環境の削除を行わせる（ステップＳ５０１）。ここで、削除が成功しなかった旨の応答がノードからあった場合は（ステップＳ５０２否定）、エラー処理を実行し、この隔離環境に関する処理を終了する。ここでのエラー処理は、例えば、応答されたエラー情報等をエラーログに記録する処理となる。
【０１５６】
一方、削除が成功した旨の応答がノードからあった場合は（ステップＳ５０２肯定）、隔離環境削除部１１７は、隔離環境マスタ１２２ｅから削除対象の隔離環境に対応するデータを削除し（ステップＳ５０３）、削除対象の隔離環境が存在していたノードに対応するノードマスタ１２２ｄのデータの隔離環境数から１を減算する（ステップＳ５０４）。
【０１５７】
図１６は、ノード３００〜３０２におけるジョブ実行処理の処理手順を示すフローチャートである。このフローチャートは、ノード３００〜３０２がジョブキュー３２１に格納されているジョブを１件取り出してから実行結果を応答するまでの処理手順を示しており、ノード３００〜３０２は、それぞれ、この処理手順を繰り返し実行する。
【０１５８】
同図に示すように、まず、ジョブ実行部３１２が、ジョブキュー３２１からジョブを取得し、ジョブと対応付けられている隔離環境ＩＤを隔離環境マスタ３２４と照合して隔離環境の位置を取得する（ステップＳ６０１）。ここで、隔離環境マスタ３２４に該当する隔離環境ＩＤが存在しない場合は（ステップＳ６０２肯定）、隔離環境管理部３１４に新規に隔離環境を作成するように指示する。
【０１５９】
そして、指示を受けた隔離環境管理部３１４は、隔離環境作成領域３２３に初期状態の隔離環境を作成し（ステップＳ６０３）、標準的なパッケージの配備を行い（ステップＳ６０４）、隔離環境マスタ３２４に作成した隔離環境に対応するデータを追加する（ステップＳ６０５）。
【０１６０】
その後、ジョブ実行部３１２は、ソフトウェア情報取得部３１３にジョブを実行するために必要なパッケージの一覧を取得させ（ステップＳ６０６）、取得されたパッケージの一覧を隔離環境管理部３１４に引き渡して、隔離環境ＩＤが示す隔離環境にパッケージの追加配備を行うように指示する。
【０１６１】
そして、指示を受けた隔離環境管理部３１４は、パッケージの一覧と、隔離環境ＩＤに対応する隔離環境マスタ３２４のデータの配備パッケージリストを照合して追加配備が必要なパッケージの有無を検査する（ステップＳ６０７）。そして、追加配備が必要なパッケージがあれば（ステップＳ６０８肯定）、パッケージ格納領域３２２等から追加配備が必要なパッケージを取得して追加配備を行い（ステップＳ６０９）、隔離環境ＩＤに対応する隔離環境マスタ３２４のデータの配備パッケージリストを、パッケージの一覧に含まれるパッケージを全て含むように更新する（ステップＳ６１０）。
【０１６２】
その後、ジョブ実行部３１２は、隔離環境ＩＤが示す隔離環境でジョブを実行し（ステップＳ６１１）、実行結果をジョブ割当装置１００へ応答する（ステップＳ６１２）。
【０１６３】
上記実施例で説明してきたジョブ割当装置１００およびノード３００〜３０２の機能は、あらかじめ用意されたプログラムをコンピュータで実行することによって実現することもできる。そこで、以下では、ジョブ割当装置１００の機能を実現するプログラムを実行するコンピュータの一例について説明することとする。
【０１６４】
図１７は、ジョブ割当プログラム１０７１を実行するコンピュータ１０００を示す機能ブロック図である。このコンピュータ１０００は、各種演算処理を実行するＣＰＵ（Central Processing Unit）１０１０と、ユーザからのデータの入力を受け付ける入力装置１０２０と、各種情報を表示するモニタ１０３０と、各種プログラム等を記録した記録媒体からプログラム等を読み取る媒体読取り装置１０４０と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置１０５０と、各種情報を一時記憶するＲＡＭ（Random Access Memory）１０６０と、ハードディスク装置１０７０とをバス１０８０で接続して構成される。
【０１６５】
そして、ハードディスク装置１０７０には、図３に示した制御部１１０と同様の機能を有するジョブ割当プログラム１０７１が記憶され、図３に示したジョブキュー１２１とジョブ割当用ＤＢ１２２に対応するジョブキュー１０７２とジョブ割当用ＤＢ１０７３が設けられている。なお、ジョブ割当用ＤＢ１０７３を、適宜分散させ、ネットワークを介して接続された他のコンピュータに設けることもできる。
【０１６６】
そして、ＣＰＵ１０１０がジョブ割当プログラム１０７１をハードディスク装置１０７０から読み出してＲＡＭ１０６０に展開することにより、ジョブ割当プログラム１０７１は、ジョブ割当プロセス１０６１として機能するようになる。そして、ジョブ割当プロセス１０６１は、ジョブキュー１０７２およびジョブ割当用ＤＢ１０７３から読み出した情報等を適宜ＲＡＭ１０６０上の自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種データ処理を実行する。
【０１６７】
なお、上記のジョブ割当プログラム１０７１は、必ずしもハードディスク装置１０７０に格納されている必要はなく、ＣＤ−ＲＯＭ等の記憶媒体に記憶されたこのプログラムを、コンピュータ１０００が読み出して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等を介してコンピュータ１０００に接続される他のコンピュータ（またはサーバ）等にこのプログラムを記憶させておき、コンピュータ１０００がこれらからプログラムを読み出して実行するようにしてもよい。
【０１６８】
そして、図９に示した制御部３１０と同様の機能を有するジョブ実行プログラムも、上記のコンピュータ１０００と同様のコンピュータにおいて実行することが可能である。
【０１６９】
上述してきたように、本実施例では、ジョブを実行するために必要なミドルウェア等の情報を取得し、この情報に基づいてジョブの投入先の選択、ミドルウェア等の追加配備、隔離環境の新規作成等を行うように構成したので、多種多様な内容の隔離環境が存在するグリッドシステムにおいて隔離環境を自律動作によって効率的に運用することができる。
【０１７０】
（付記１）グリッドを構成するノード上に利用者ごとに作成された隔離環境にジョブの割り当てを行うジョブ割当プログラムであって、
前記ジョブを実行するために必要なソフトウェアの情報を取得するソフトウェア情報取得手順と、
利用者と隔離環境の対応と隔離環境ごとのソフトウェアの配備状況が登録された隔離環境情報のうち、前記ジョブを発行した利用者に対応する隔離環境の情報を記憶手段より取得し、この情報と前記ソフトウェア情報取得手順により取得された情報を照合して前記ジョブを実行するために必要なソフトウェアが多く配備済みの隔離環境を優先して前記ジョブの投入先として選択する投入先選択手順と、
前記投入先選択手順により選択された隔離環境にて前記ジョブが実行されるように前記ジョブの投入を行うジョブ投入手順と
をコンピュータに実行させることを特徴とするジョブ割当プログラム。
【０１７１】
（付記２）前記投入先選択手順は、前記ジョブの投入先となる隔離環境を選択した場合に、前記ソフトウェア情報取得手順により取得された情報に対応するソフトウェアが該隔離環境に配備済みであることを示すように前記隔離環境情報を更新することを特徴とする付記１に記載のジョブ割当プログラム。
【０１７２】
（付記３）前記ジョブ投入手順は、前記投入先選択手順により選択された隔離環境が存在するノードに対して前記ジョブとともに前記ソフトウェア情報取得手順により取得された情報を送信することを特徴とする付記１または２に記載のジョブ割当プログラム。
【０１７３】
（付記４）前記投入先選択手順は、いずれの隔離環境場合も前記ジョブの投入先として選択することができない場合に、前記ノードごとのソフトウェアの配備状況を示すノード情報を記憶手段より取得し、この情報と前記ソフトウェア情報取得手順により取得された情報を照合して前記ジョブを実行するために必要なソフトウェアが多く配備済みのノードを優先して前記ジョブを投入先する新たな隔離環境の作成先として選択することを特徴とする付記１〜３のいずれか一つに記載のジョブ割当プログラム。
【０１７４】
（付記５）前記投入先選択手順は、前記ジョブの投入先となる隔離環境を選択した場合に、前記ソフトウェア情報取得手順により取得された情報に対応するソフトウェアが該隔離環境の存在するノードに配備済みであることを示すように前記ノード情報を更新することを特徴とする付記４に記載のジョブ割当プログラム。
【０１７５】
（付記６）前記ソフトウェア情報取得手順により取得された情報にライセンスを必要とするソフトウェアの情報が含まれていた場合に、利用者ごとのライセンスの取得状況を示すライセンス情報のうち、前記ジョブを発行した利用者の情報を記憶手段より取得し、該利用者が前記ソフトウェアを使用するためのライセンスを有しているか否かを検査するライセンス検査手順をさらにコンピュータに実行させ、
前記前記投入先選択手順は、前記ライセンス検査手順により該利用者が前記ソフトウェアを使用するためのライセンスを有していないと判定された場合に、前記ジョブの割り当てを中止することを特徴とする付記１〜５のいずれか一つに記載のジョブ割当プログラム。
【０１７６】
（付記７）前記ライセンス検査手順は、前記ソフトウェア情報取得手順により取得された情報に対応するソフトウェアの配備がある隔離環境に対して行われた場合に、前記ライセンス情報に記録されたライセンス条件に違反した状態となるか否かを検査し、
前記前記投入先選択手順は、前記ソフトウェアの配備を行った場合にライセンス条件に違反した状態となると前記ライセンス検査手順により判定された隔離環境を、前記ジョブの投入先から除外することを特徴とする付記６に記載のジョブ割当プログラム。
【０１７７】
（付記８）利用者の登録が削除された場合に、前記隔離環境情報を参照して該利用者に対応する隔離環境を抽出し、抽出された隔離環境を削除するように該隔離環境が作成されているノードに指示する隔離環境削除手順をさらにコンピュータに実行させることを特徴とする付記１〜７のいずれか一つに記載のジョブ割当プログラム。
【０１７８】
（付記９）前記投入先選択手順は、隔離環境をジョブの投入先として選択した時刻を該隔離環境と関連付けて記憶手段に記憶させ、
前記隔離環境削除手順は、前記記憶手段に記憶された情報に基づいて所定の長さよりも長い期間ジョブの投入先として選択されていない隔離環境を抽出し、抽出された隔離環境を削除するように該隔離環境が作成されているノードに指示することを特徴とする付記７に記載のジョブ割当プログラム。
【０１７９】
（付記１０）グリッドを構成するノード上に利用者ごとに作成された隔離環境にジョブの割り当てを行うジョブ割当装置であって、
前記ジョブを実行するために必要なソフトウェアの情報を取得するソフトウェア情報取得手段と、
利用者と隔離環境の対応と隔離環境ごとのソフトウェアの配備状況が登録された隔離環境情報のうち、前記ジョブを発行した利用者に対応する隔離環境の情報を記憶手段より取得し、この情報と前記ソフトウェア情報取得手段により取得された情報を照合して前記ジョブを実行するために必要なソフトウェアが多く配備済みの隔離環境を優先して前記ジョブの投入先として選択する投入先選択手段と、
前記投入先選択手段により選択された隔離環境にて前記ジョブが実行されるように前記ジョブの投入を行うジョブ投入手段と
を備えたことを特徴とするジョブ割当装置。
【０１８０】
（付記１１）グリッドを構成するノード上に利用者ごとに作成された隔離環境にジョブの割り当てを行うジョブ割当方法であって、
前記ジョブを実行するために必要なソフトウェアの情報を取得するソフトウェア情報取得工程と、
利用者と隔離環境の対応と隔離環境ごとのソフトウェアの配備状況が登録された隔離環境情報のうち、前記ジョブを発行した利用者に対応する隔離環境の情報を記憶手段より取得し、この情報と前記ソフトウェア情報取得工程により取得された情報を照合して前記ジョブを実行するために必要なソフトウェアが多く配備済みの隔離環境を優先して前記ジョブの投入先として選択する投入先選択工程と、
前記投入先選択工程により選択された隔離環境にて前記ジョブが実行されるように前記ジョブの投入を行うジョブ投入工程と
を含んだことを特徴とするジョブ割当方法。
【０１８１】
（付記１２）グリッドを構成するノード上に作成された隔離環境においてジョブを実行するジョブ実行プログラムであって、
前記ジョブを実行するために必要なソフトウェアの情報を取得するソフトウェア情報取得手順と、
隔離環境ごとのソフトウェアの配備状況が登録された隔離環境情報のうち、前記ジョブの投入先として指定された隔離環境の情報を記憶手段より取得し、この情報と前記ソフトウェア情報取得手順により取得された情報を照合して前記ジョブを実行するために必要なソフトウェアを該隔離環境へ追加配備する隔離環境管理手順と
をコンピュータに実行させることを特徴とするジョブ実行プログラム。
【０１８２】
（付記１３）前記隔離環境管理手順は、前記隔離環境へソフトウェアを追加配備した場合に、前記ソフトウェア情報取得手順により取得された情報に対応するソフトウェアが該隔離環境に配備済みであることを示すように前記隔離環境情報を更新することを特徴とする付記１２に記載のジョブ実行プログラム。
【０１８３】
（付記１４）前記隔離環境管理手順は、前記隔離環境へソフトウェアを追加配備する場合に、各種ファイルの実体を複製する代わりに、各種ファイルへのリンクを設定して該ファイルを前記隔離環境から参照可能にすることを特徴とする付記１２または１３に記載のジョブ実行プログラム。
【０１８４】
（付記１５）グリッドを構成するノード上に作成された隔離環境においてジョブを実行するジョブ実行方法であって、
前記ジョブを実行するために必要なソフトウェアの情報を取得するソフトウェア情報取得工程と、
隔離環境ごとのソフトウェアの配備状況が登録された隔離環境情報のうち、前記ジョブの投入先として指定された隔離環境の情報を記憶手段より取得し、この情報と前記ソフトウェア情報取得工程により取得された情報を照合して前記ジョブを実行するために必要なソフトウェアを該隔離環境へ追加配備する隔離環境管理工程と
を含んだことを特徴とするジョブ実行方法。
【産業上の利用可能性】
【０１８５】
以上のように、本発明に係るジョブ割当プログラム、ジョブ割当装置およびジョブ割当方法は、グリッドを構成するノード上に利用者ごとに作成された隔離環境にジョブへの割り当てに有用であり、特に、多種多様な内容の隔離環境が存在するグリッドシステムにおいて隔離環境を自律動作によって効率的に運用することが必要な場合に適している。
【図面の簡単な説明】
【０１８６】
【図１】本実施例に係るグリッドシステムの構成を示す図である。
【図２】隔離環境の一例を示す図である。
【図３】ジョブ割当装置の構成を示す機能ブロック図である。
【図４】利用者マスタのデータ構成の一例を示す図である。
【図５】パッケージマスタのデータ構成の一例を示す図である。
【図６】ライセンスマスタのデータ構成の一例を示す図である。
【図７】ノードマスタのデータ構成の一例を示す図である。
【図８】隔離環境マスタのデータ構成の一例を示す図である。
【図９】ノードの構成を示す機能ブロック図である。
【図１０】隔離環境マスタのデータ構成の一例を示す図である。
【図１１】ジョブ割当装置におけるジョブ投入処理の処理手順を示すフローチャートである。
【図１２】投入先選択処理の処理手順を示すフローチャートである。
【図１３】隔離環境作成ノード選定処理の処理手順を示すフローチャートである。
【図１４】ジョブ割当装置における隔離環境の自動削除処理の処理手順を示すフローチャートである。
【図１５】隔離環境削除処理の処理手順を示すフローチャートである。
【図１６】ノードにおけるジョブ実行処理の処理手順を示すフローチャートである。
【図１７】ジョブ割当プログラムを実行するコンピュータを示す機能ブロック図である。
【符号の説明】
【０１８７】
１０  グリッド
２１、２２  ネットワーク
３１、３１  ＺＡＲファイル
４１、４２  ミドルウェア
１００  ジョブ割当装置
１１０  制御部
１１１  ジョブ受付部
１１２  投入先選択部
１１３  ソフトウェア情報取得部
１１４  ライセンス検査部
１１５  負荷状況取得部
１１６  ジョブ投入部
１１７  隔離環境削除部
１２０  記憶部
１２１  ジョブキュー
１２２  ジョブ割当用ＤＢ
１２２ａ  利用者マスタ
１２２ｂ  パッケージマスタ
１２２ｃ  ライセンスマスタ
１２２ｄ  ノードマスタ
１２２ｅ  隔離環境マスタ
１３０  ネットワークインターフェース部
２００〜２０２  端末装置
３００〜３０２  ノード
３００1〜３００k、３０１1〜３０１m、３０２1〜３０２n  隔離環境
３１０  制御部
３１１  ジョブ受付部
３１２  ジョブ実行部
３１３  ソフトウェア情報取得部
３１４  隔離環境管理部
３１５  負荷状況測定部
３２０  記憶部
３２１  ジョブキュー
３２２  パッケージ格納領域
３２３  隔離環境作成領域
３２４  隔離環境マスタ
３３０  ネットワークインターフェース部
４００  パッケージ記憶装置
１０００  コンピュータ
１０１０  ＣＰＵ
１０２０  入力装置
１０３０  モニタ
１０４０  媒体読取り装置
１０５０  ネットワークインターフェース装置
１０６０  ＲＡＭ
１０６１  ジョブ割当プロセス
１０７０  ハードディスク装置
１０７１  ジョブ割当プログラム
１０７２  ジョブキュー
１０７３  ジョブ割当用ＤＢ
１０８０  バス
【図１】
2007265193.tif 000003
【図２】
2007265193.tif 000004
【図３】
2007265193.tif 000005
【図４】
2007265193.tif 000006
【図５】
2007265193.tif 000007
【図６】
2007265193.tif 000008
【図７】
2007265193.tif 000009
【図８】
2007265193.tif 000010
【図９】
2007265193.tif 000011
【図１０】
2007265193.tif 000012
【図１１】
2007265193.tif 000013
【図１２】
2007265193.tif 000014
【図１３】
2007265193.tif 000015
【図１４】
2007265193.tif 000016
【図１５】
2007265193.tif 000017
【図１６】
2007265193.tif 000018
【図１７】
2007265193.tif 000019