(57)【要約】【課題】デプロイされたアプリケーションの動作を常に保証するとともに、アプリケーションを各クライアントノードのリソースの状況に応じて動的にデプロイすることが可能な方法、プログラム、及びシステムを提供すること。【解決手段】ジョブが投入されるとジョブスケジューラ１１０は、クライアントノード３００のリソース状況に応じてアプリケーションのデプロイ情報を決定する。アプリケーション実行環境管理エージェント２１０は、クライアントノード３００のアプリケーション実行環境が動作検証されたアプリケーション実行環境と整合するか判別する。そして、アプリケーション実行環境管理エージェント２１０は、この判別が整合する場合にはデプロイ可能である旨をジョブスケジューラ１１０に通知し、この判別が整合しない場合にはクライアントノード３００を再起動させることで整合するアプリケーション実行環境に切り替える。【選択図】図１
2010122963.tif 000002
【特許請求の範囲】
【請求項１】
複数のクライアントノードと接続され、前記複数のクライアントノードにアプリケーションをデプロイする分散システムにおいて、前記複数のクライアントノードのアプリケーション実行環境を管理する方法であって、
アプリケーションをデプロイするクライアントノードにおけるアプリケーション実行環境が、デプロイ対象のアプリケーションに対して予め動作検証されたアプリケーション実行環境と整合するか判別するステップと、
整合すると判別されることを条件に、対応するアプリケーションを前記クライアントノードにおいてデプロイ可能であると判断するステップと、
を含む方法。
【請求項２】
前記複数のクライアントノードのリソースの状況に応じて、アプリケーションをデプロイするクライアントノードを決定するステップを含む、
請求項１に記載の方法。
【請求項３】
前記判別するステップにおいて整合しないと判別されたクライアントノードを再起動することで、デプロイ対象のアプリケーションに対して予め動作検証されたアプリケーション実行環境に切り替えるステップを含む、
請求項１に記載の方法。
【請求項４】
クライアントノードのアプリケーション実行環境が、前記判別するステップにおいて整合しないと判別されることを条件に、前記クライアントノードのネットワークブート設定ファイルを、前記クライアントノードがデプロイ対象のアプリケーションに対して前記予め動作検証されたアプリケーション実行環境で起動できるように変更するステップと、
変更された前記ネットワークブート設定ファイルに応じて、前記クライアントノードを再起動するステップと、
を含む請求項１に記載の方法。
【請求項５】
再起動した前記クライアントノードのアプリケーション実行環境が、前記予め動作検証されたアプリケーション実行環境に切り替わったか判別するステップを含む、
請求項４に記載の方法。
【請求項６】
アプリケーションに対して予め動作検証されたアプリケーション実行環境を１つのバージョンとして管理する、
請求項１に記載の方法。
【請求項７】
前記判別するステップは、クライアントノードのアプリケーション実行環境のバージョンと予め動作検証されたアプリケーション実行環境のバージョンとを対比することにより行う、
請求項６に記載の方法。
【請求項８】
１のアプリケーションをデプロイする全てのクライアントノードにおいてデプロイ可能であると判断することを条件に、このアプリケーションをデプロイするステップを含む、
請求項１に記載の方法。
【請求項９】
複数のクライアントノードと接続され、前記複数のクライアントノードにアプリケーションをデプロイする分散システムにおいて、前記複数のクライアントノードのアプリケーション実行環境を管理する方法であって、
前記複数のクライアントノードのリソースの状況に応じて、アプリケーションをデプロイするクライアントノードを決定するステップと、
アプリケーションをデプロイするクライアントノードにおけるアプリケーション実行環境のバージョンが、デプロイ対象のアプリケーションに対して予め動作検証されたアプリケーション実行環境のバージョンと整合するか判別するステップと、
整合しないと判別されることを条件に、前記クライアントノードのネットワークブート設定ファイルを、前記クライアントノードがデプロイ対象のアプリケーションに対して予め動作検証されたアプリケーション実行環境で起動できるように変更するステップと、
変更された前記ネットワークブート設定ファイルに応じて、前記クライアントノードを再起動するステップと、
再起動した前記クライアントノードのアプリケーション実行環境が、前記予め動作検証されたアプリケーション実行環境に切り替わったか判別するステップと、
整合すると判別されること又は前記予め動作検証されたアプリケーション実行環境に切り替わったと判別されることを条件に、対応するアプリケーションを前記クライアントノードにおいてデプロイ可能であると判断するステップと、
１のアプリケーションをデプロイする全てのクライアントノードにおいてデプロイ可能であると判断することを条件に、このアプリケーションをデプロイするステップと、
を含む方法。
【請求項１０】
請求項１から９のいずれか１項に記載の方法のステップを実行するためのプログラム。
【請求項１１】
アプリケーションをデプロイする複数のクライアントノードのアプリケーション実行環境を管理するシステムであって、
アプリケーションとそのアプリケーションの動作が検証されたアプリケーション実行環境とを対応付けて記憶する記憶手段を備え、
アプリケーションをデプロイするクライアントノードにおけるアプリケーション実行環境が、デプロイ対象のアプリケーションに対して動作検証されたアプリケーション実行環境と整合するか判別する手段と、
整合すると判別されることを条件に、対応するアプリケーションを前記クライアントノードにおいてデプロイ可能であると判断する手段と、
を含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散システムにおいて各クライアントノードのアプリケーション実行環境を管理する方法、プログラム、及びシステムに関する。
【背景技術】
【０００２】
今日、情報処理を実行するシステムとして、複数のクライアントノードをネットワークで接続し、これら複数のクライアントノードでアプリケーションの処理を分散して実行する分散システムが構築されている。なお、このような分散システムでは、クライアントノードに必要最小限の機能のみを備えディスクやＵＳＢメモリ等の不揮発性の記憶装置を備えないコンピュータが用いられることがある。
【０００３】
ところで、このような分散システムにおいて、サーバが複数のアプリケーションを各クライアントノードのリソースの空き状況に応じてデプロイし分散実行する場合、各クライアントノードはデプロイされたアプリケーションを実行するのに適したアプリケーション実行環境（Ａｐｐｌｉｃａｔｉｏｎ  Ｒｕｎｔｉｍｅ  Ｅｎｖｉｒｏｎｍｅｎｔ）を有している必要がある。なお、アプリケーションをデプロイするとは、アプリケーション実行バイナリを転送配置することをいう。
【０００４】
図８に各クライアントノードの有するアプリケーション実行環境（図中、「ＲＴＥ」）と各クライアントノードで実行されるアプリケーション（図中、「ＡＰＰ」）との関係の概念図を示す。図中「ＡＰＰ１〜６」は対応する「ＲＴＥ１〜６」により動作が保証される。すなわち、「ＡＰＰ１」は「ＲＴＥ１」により動作が保証される。
【０００５】
クライアントノードＡ〜Ｆにはアプリケーション実行環境として「ＲＴＥ１」が設定されている。「時刻ｔ」において、クライアントノードＡ及びＢで「ＡＰＰ１」を、クライアントノードＣ及びＤで「ＡＰＰ２」を、クライアントノードＥ及びＦで「ＡＰＰ３」をデプロイする場合（図８（１））、「ＡＰＰ２」及び「ＡＰＰ３」は、「ＲＴＥ１」により動作が保証されていないため、正常に動作しない可能性がある（図８（２））。また、「時刻ｔ」において「ＡＰＰ１」が正常に動作したクライアントノードＡ及びＢであっても、動作が保証されていない「ＡＰＰ４」や「ＡＰＰ５」をデプロイする「時刻ｔ＋１」においては、デプロイするアプリケーションが正常に動作しない場合がある。
【０００６】
このように動作が保証されていない実行環境においてアプリケーションをデプロイした場合には、デプロイしたアプリケーションが実行できなくなったり、他のアプリケーションに悪影響を与えてしまうおそれがあった。そこで、アプリケーションをデプロイする際に、各クライアントノードの実行環境とデプロイするアプリケーションが要求する要求実行環境とを比較し、アプリケーションが確実に実行できる場合にのみデプロイを許可する分散コンピュータ・システムが知られている（例えば、特許文献１）。この分散コンピュータ・システムによれば、アプリケーションが実行できないと判断された場合には、アプリケーションをデプロイしない。
【特許文献１】特開２００８−９８６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、特許文献１に記載された分散コンピュータ・システムによれば、要求実行環境を事前に定義しなければならないところ、個々のアプリケーションの動作を保証するアプリケーション実行環境を事前に全て網羅するのは困難である。すなわち、アプリケーションＡを実行するために、ライブラリＡ（ｖｅｒ０．１）、ライブラリＢ（ｖｅｒ０．２）が必要だと定義していても、実際には、ライブラリＣ（ｖｅｒ０．１）も必要な場合がある。この場合において、上記分散コンピュータ・システムでは、ライブラリＡ（ｖｅｒ０．１）、ライブラリＢ（ｖｅｒ０．２）、ライブラリＣ（ｖｅｒ０．２）からなる実行環境を有するクライアントノードはアプリケーションＡの実行環境の動作保証がないにもかかわらず、チェックにかからないこととなってしまう。
【０００８】
また、上記分散コンピュータ・システムでは、要求実行環境とクライアントノードのアプリケーション実行環境とが一致しない場合にはアプリケーションをデプロイしないため、クライアントノードのアプリケーション実行環境を考慮してアプリケーションをデプロイしなければならず、各クライアントノードのリソースの状況に応じて、アプリケーションをデプロイすることができない。
【０００９】
本発明は、上記課題を解決するためのものであり、デプロイされたアプリケーションの動作を常に保証するとともに、アプリケーションを各クライアントノードのリソースの状況に応じて動的にデプロイすることが可能な方法、コンピュータ・プログラ、及びシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の１つの態様では、以下のような解決手段を提供する。なお、以下において、「アプリケーションをデプロイする」とは、アプリケーション実行バイナリを転送配置することをいう。
【００１１】
本発明の第１の形態によると、複数のクライアントノードと接続された分散システムにおけるアプリケーション実行環境を管理する方法は、アプリケーションをデプロイするクライアントノードにおけるアプリケーション実行環境が適切なアプリケーション実行環境であるか判別する。ここで、適切なアプリケーション実行環境であるかは、予めアプリケーションの動作検証がされたアプリケーション実行環境に基づいて行われる。そして、クライアントノードにおけるアプリケーション実行環境が、デプロイ対象のアプリケーションの動作検証が行われたアプリケーション実行環境と整合すると、デプロイ可能である旨の通知を行い、アプリケーションのデプロイを行う。
【００１２】
本実施の第２の形態によると、クライアントノードにおけるアプリケーション実行環境が、動作検証が行われたアプリケーション実行環境と整合しないと判別されると、ブート設定ファイルを、デプロイ対象のアプリケーションに対して動作検証されたアプリケーション実行環境で起動できるように変更する。そして、変更したブート設定ファイルに応じてクライアントノードを再起動することで、クライアントノードのアプリケーション実行環境を動作検証されたアプリケーション実行環境に切り替える。
【００１３】
本実施の第３の形態によると、動作検証されたアプリケーション実行環境をバージョン管理する。そして、クライアントノードのアプリケーション実行環境がデプロイ対象のアプリケーションの動作検証が行われたアプリケーション実行環境と整合するかを、クライアントノードのアプリケーション実行環境のバージョンにより判別する。
【００１４】
また、本発明は別の形態として、上記の方法の各ステップをコンピュータに実行させるプログラムとしても提供可能である。さらに別の形態として、上記の方法を実行するシステムとしても提供可能である。
【発明の効果】
【００１５】
本発明によれば、動作を保証するアプリケーション実行環境を網羅的に定義するのではなく、予めアプリケーションに対して動作検証がなされたアプリケーション実行環境を用いてクライアントノードでアプリケーションをデプロイ可能か判別するため、デプロイされたアプリケーションの動作を常に保証することができる。また、動作検証されたアプリケーション実行環境と整合しない場合には、クライアントノードを自動的に再起動し、動作検証されたアプリケーション実行環境に切り替える。そのため、アプリケーションを各クライアントノードのリソースの状況に応じて動的にデプロイすることができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態について図を参照しながら説明する。なお、これらはあくまでも一例であって、本発明の技術的範囲はこれらに限られるものではない。
【００１７】
［アプリケーション実行環境管理システム１の全体構成］
図１は、本発明の一実施形態に係る、分散システムにおけるアプリケーション実行環境管理システム１の全体構成を示す図である。アプリケーション実行環境管理システム１は、ネットワークで接続されたジョブ管理ノード１００、イメージサーバ２００、及び複数のクライアントノード３００−１，３００−２，３００−３・・・から構成される。なお、以下においては複数のクライアントノード３００−１，３００−２，３００−３・・・のうち任意のクライアントノードを「クライアントノード３００」として実施形態について説明する。
【００１８】
ここで、ジョブ管理ノード１００、イメージサーバ２００、及びクライアントノード３００の三者は、アプリケーション実行環境管理システム１内で協調動作する。そして、アプリケーション実行環境管理システム１は、クライアントノード３００のアプリケーション実行環境が動作検証されたアプリケーション実行環境でない場合には、この協調動作により、クライアントノード３００のアプリケーション実行環境を動作検証されたアプリケーション実行環境に切り替える。
【００１９】
図１を参照して、ジョブ管理ノード１００は、クライアントノード３００のリソースの状況に応じてアプリケーションの割り当てを管理するジョブスケジューラ１１０を有する。
【００２０】
イメージサーバ２００は、各クライアントノード３００のアプリケーション実行環境をデプロイされるアプリケーションに応じて自律的に構成するアプリケーション実行環境管理エージェント２１０と、各クライアントノード３００のアプリケーション実行環境のバージョンチェックを行うためのアプリケーション実行環境バージョンテーブル２３０（図２）と、クライアントノード３００のアプリケーション実行環境を切り替えるためのネットワークブート設定ファイル２５０（図４）と、を有する。
【００２１】
クライアントノード３００は、アプリケーション実行環境管理エージェント２１０からの要求に応じて、アプリケーション実行環境のバージョン情報を提供したり、システムの再起動を実施する実行環境管理デーモン３１０を有する。なお、本実施の形態ではクライアントノード３００はディスクやＵＳＢメモリ等の不揮発性の記憶装置を使用しないディスクレスで運用される。
【００２２】
ここで、ジョブスケジューラ１１０はユーザからのジョブの実行要求及びリソースの空き状況を基に、各クライアントノード３００へジョブの割り当てを行うプログラムである。ジョブスケジューラ１１０はスケジューリングの結果（どのクライアントノード３００でどのアプリケーションを実行するか）をアプリケーション実行環境管理エージェント２１０に伝える。本実施の形態では、各クライアントノード３００に適切な実行環境を構成する処理をアプリケーション実行環境管理エージェント２１０に一任しているため、ジョブスケジューラ１１０は処理を委任すべきアプリケーション実行環境管理エージェント２１０だけを特定できればよく、クライアントノード３００の実行環境を管理する必要はない。また、ジョブスケジューラ１１０は必ずしもジョブ管理ノード１００上で実行される必要もなく、任意の場所に配置可能である。
【００２３】
アプリケーション実行環境管理エージェント２１０は、各クライアントノード３００のアプリケーション実行環境を、デプロイされるアプリケーションに応じて自律的に構成するプログラムである。アプリケーション実行環境管理エージェント２１０は、ジョブスケジューラ１１０から渡される情報（どのクライアントノード３００でどのアプリケーションを実行するか）を受け取ると、実行環境管理デーモン３１０と協調動作することにより、各クライアントノード３００のアプリケーション実行環境をデプロイされるアプリケーションに適したものに自律的に構成する。なお、アプリケーション実行環境管理エージェント２１０は、イメージサーバ上に配置されたアプリケーション実行環境バージョンテーブル２３０及びネットワークブート設定ファイル２５０を参照、更新できればよく、必ずしもイメージサーバ２００上で動作する必要はない。
【００２４】
次に、アプリケーション実行環境バージョンテーブル２３０について説明する。図２は、本実施の形態におけるアプリケーション実行環境バージョンテーブル２３０の一例を示す図である。アプリケーション実行環境バージョンテーブル２３０は、「どのアプリケーションがどの実行環境で動作検証されたか」という情報（図中（Ａ））と、「各実行環境のバージョンがどのカーネルやライブラリで構成されているか」という情報（図中（Ｂ））とから構成され、アプリケーション実行環境のバージョンを管理している。
【００２５】
具体的には、図２に示すようにアプリケーション「ａｐｐ００１」はアプリケーション実行環境「ａｒｔ_０_１」で動作保証され（図２（Ａ））、この「ａｒｔ_０_１」はカーネル「２．６．１６」及びシステムイメージ「０．１」により構成される（図２（Ｂ））。
【００２６】
ここで、図３に示すように、システムイメージ「０．１」はライブラリＡ「０．７」、ライブラリＢ「１．３」、ライブラリＣ「１．５」・・・により構成される（図３（１））。そのため、アプリケーション「ａｐｐ００１」は、カーネル「２．６．１６」、ライブラリＡ「０．７」、ライブラリＢ「１．３」、ライブラリＣ「１．５」・・・によりその動作が保証される。また、図３（２）に示すように、アプリケーション「ａｐｐ００２」は、カーネル「２．６．２０」、ライブラリＡ「０．８」、ライブラリＢ「１．４」、ライブラリＣ「１．５」・・・によりその動作が保証される。
【００２７】
なお、アプリケーション実行環境バージョンテーブル２３０に規定されたアプリケーション実行環境は、事前に動作検証が実施されている。すなわち、アプリケーション毎に動作検証に合格したアプリケーション実行環境がアプリケーション実行環境バージョンテーブル２３０で定義される。これにより、定義されたアプリケーション実行環境によれば、アプリケーションの動作を常に保証することができる。また、アプリケーション実行環境管理エージェント２１０は、たとえ動作検証が完了していないアプリケーションのデプロイ要求が来ても、実行不可なアプリケーションとして検知し、ジョブスケジューラ１１０へ実行不可である旨を通知することができる。
【００２８】
また、本実施の形態では、アプリケーション実行環境を構成するカーネル、ルートファイルシステムをそれぞれ１つのイメージファイルとして管理する。そのため、動作検証されたアプリケーション実行環境を簡単にコピーすることができ、アプリケーション実行環境の復旧が容易になる。
【００２９】
また、クライアントノード３００のアプリケーション実行環境のチェックを行う際に、デプロイ対象のアプリケーションに対して動作検証されたアプリケーション実行環境のバージョンを持っているかどうかだけチェックすればよく、アプリケーション実行環境のチェックが容易になる。
【００３０】
次に、ネットワークブート設定ファイル２５０について説明する。図４は、ネットワークブート設定ファイル２５０の一例を示す図である。ネットワークブート設定ファイル２５０は、クライアントノード３００を特定するための情報（ＭＡＣアドレス及びＩＰアドレス）と、クライアントノード３００を再起動する際に使用するカーネル及びルートファイルシステムと、により構成される。クライアントノード３００は、ブート時にネットワークブート設定ファイル２５０のカーネル及びルートファイルシステムに基づいて起動することで、アプリケーション実行環境をデプロイ対象のアプリケーションに対して動作検証されたアプリケーション実行環境に切り替える。
【００３１】
ここで、本実施の形態では、アプリケーション実行環境のバージョンを「ａｒｔ_（ｖｅｒ）」として管理し、そのアプリケーション実行環境を構成するカーネルを「ｚＩｍａｇｅ．ａｒｔ_（ｖｅｒ）」とするとともに、ルートファイルシステムを「／ｖａｒ／ｒｏｏｔｆｓ／ａｒｔ_（ｖｅｒ）／ｉｍａｇｅｓ」として管理する。そのため、ネットワークブート設定ファイル２５０のカーネル及びルートファイルシステムが、「ｚＩｍａｇｅ．ａｒｔ_０_１」及び「／ｖａｒ／ｒｏｏｔｆｓ／ａｒｔ_０_１／ｉｍａｇｅｓ」である場合には、クライアントノード３００はアプリケーション実行環境のバージョン「ａｒｔ_０_１」で起動する。
【００３２】
次に、クライアントノード３００の実行環境管理デーモン３１０について説明する。実行環境管理デーモン３１０は各クライアントノード３００に常駐し、アプリケーション実行環境管理エージェント２１０からの要求に応えるプログラムである。実行環境管理デーモン３１０には実行すべき２つのタスクを有する。アプリケーション実行環境管理エージェント２１０からのアプリケーション実行環境のバージョン問い合わせに応答するタスクと、再起動要求に応じるタスクとである。どちらのタスクもクライアントノード３００毎に独立したタスクであるため、実行環境管理デーモン３１０は必ずクライアントノード３００毎に動作させておく必要がある。
【００３３】
［アプリケーション実行環境管理システム１の基本処理］
次に、図５を参照してアプリケーション実行環境管理システム１の基本処理、すなわち、アプリケーション実行環境の管理手順について説明する。
【００３４】
Ｓ１０１：ユーザからジョブの投入を受け付けると、ジョブスケジューラ１１０は、各クライアントノード３００のリソースの空き状況を基に、各クライアントノード３００でデプロイされるアプリケーションの割り当てを行い、このアプリケーションのデプロイ情報をアプリケーション実行環境管理エージェント２１０に通知する。
【００３５】
Ｓ１０２：アプリケーション実行環境管理エージェント２１０は、デプロイ対象のクライアントノード３００の実行環境管理デーモン３１０へアプリケーション実行環境のバージョン情報の問い合わせを行う。
【００３６】
Ｓ１０３、Ｓ１０４：アプリケーション実行環境管理エージェント２１０は、アプリケーション実行環境バージョンテーブル２３０を参照し、クライアントノード３００のアプリケーション実行環境のバージョンが、デプロイ対象のアプリケーションに対して動作検証されたバージョンと整合するかチェックする。ここで、アプリケーション実行環境は、バージョン管理されているため、クライアントノード３００のアプリケーション実行環境のバージョンをチェックするだけで、本処理を行うことができる。なお、「整合する」とは、クライアントノード３００のアプリケーション実行環境のバージョンがデプロイ対象のアプリケーションに対して動作検証されたバージョンと一致することをいう。
【００３７】
Ｓ１０５：クライアントノード３００のアプリケーション実行環境のバージョンが、デプロイ対象のアプリケーションに対して動作検証されたバージョンと整合しない場合には、アプリケーション実行環境管理エージェント２１０は、クライアントノード３００のネットワークブートの設定を変更する。すなわち、アプリケーション実行環境管理エージェント２１０は、ネットワークブート設定ファイル２５０を、デプロイ対象のアプリケーションに対して動作検証されたバージョンと整合するアプリケーション実行環境に書き換える。
【００３８】
Ｓ１０６：アプリケーション実行環境管理エージェント２１０は、クライアントノード３００の実行環境管理デーモン３１０へ再起動要求を行う。
【００３９】
Ｓ１０７：実行環境管理デーモン３１０は、ネットワークブート設定ファイル２５０を参照してシステムを再起動し、アプリケーション実行環境を切り替える。
【００４０】
Ｓ１０８、Ｓ１０９：アプリケーション実行環境管理エージェント２１０は、クライアントノード３００の実行環境管理デーモン３１０に、アプリケーション実行環境を問い合わせ、ネットワークブート設定ファイル２５０に規定された通りに切り替わったかチェックする。
【００４１】
Ｓ１１０：クライアントノード３００のアプリケーション実行環境のバージョンがデプロイ対象のアプリケーションに対して動作検証されたバージョンと整合することとなると、アプリケーション実行環境管理エージェント２１０は、ジョブスケジューラ１１０へクライアントノード３００の準備が完了したことを通知する。なお、ジョブスケジューラ１１０は、あるアプリケーションを実行する全てのクライアントノード３００の準備の完了が通知された場合に、当該アプリケーションの実行を開始するように指示する。
【００４２】
このように、ジョブ管理ノード１００のジョブスケジューラ１１０の動作により、デプロイするアプリケーションのクライアントノード３００への割り当てが行われると、イメージサーバ２００のアプリケーション実行環境管理エージェント２１０が動作し、ジョブスケジューラ１１０からの要求に応じて、自律的に各クライアントノード３００のアプリケーション実行環境を構成する。すなわち、クライアントノード３００の実行環境管理デーモン３１０は、アプリケーション実行環境管理エージェント２１０からの要求に応じて、アプリケーション実行環境のバージョン情報を提供し、動作が保証されないアプリケーション実行環境である場合には、システムの再起動を行うことで動作が保証されたアプリケーション実行環境に切り替える。
【００４３】
［アプリケーション実行環境管理の動作の具体例］
図６に、本発明の一実施形態に係るアプリケーション実行環境管理システム１におけるアプリケーション実行環境管理の動作の具体例を示す。図中「ＡＰＰ１〜６」は対応する「ＲＴＥ１〜６」により動作が保証される。すなわち、「ＡＰＰ１」は「ＲＴＥ１」により動作が保証される。
【００４４】
「時刻ｔ」では、クライアントノードＡ及びＢにおいて「ＡＰＰ１」、クライアントノードＣ及びＤにおいて「ＡＰＰ２」、クライアントノードＥ及びＦにおいて「ＡＰＰ３」のデプロイ要求がなされる（図６（１））。この場合において、クライアントノードＡ及びＢのアプリケーション実行環境はデプロイする「ＡＰＰ１」の動作が保証される実行環境であり、クライアントノードＡ及びＢでは「ＡＰＰ１」をデプロイすることができる（図６（２））。ところが、クライアントノードＣ〜Ｆのアプリケーション実行環境はデプロイするアプリケーションの動作が保証されない実行環境であるため、クライアントノードＣ〜Ｆでは要求されたアプリケーションをデプロイできない。そこで、本実施の形態では、クライアントノードＣ〜Ｆを再起動することで、アプリケーション実行環境を要求されたアプリケーションの動作が保証された実行環境に自動的に切り替える。その結果、クライアントノードＣ〜Ｆにおいても要求されたアプリケーションをデプロイすることができる（図６（２））。
【００４５】
また、「時刻ｔ＋１」において、クライアントノードＡには「時刻ｔ」のときとは異なる「ＡＰＰ４」のデプロイ要求がなされる。この場合においても、クライアントノードＡのアプリケーション実行環境を「ＡＰＰ４」の動作が保証される「ＲＴＥ４」に自動的に切り替える。その結果、同一のクライアントノードにおいて、複数のアプリケーションを実行することができる。
【００４６】
このように、アプリケーション実行環境管理システム１ではクライアントノード３００におけるアプリケーション実行環境をジョブ管理ノード１００、イメージサーバ２００、及びクライアントノード３００、といった三者の協調動作により自動的に切り替えることができるため、アプリケーションをクライアントノード３００のリソースの状況に応じて動的にデプロイすることができる。
【００４７】
［ハードウェア構成］
図８は、本実施の形態に係るアプリケーション実行環境管理システム１を構成するジョブ管理ノード１００、イメージサーバ２００、及びクライアントノード３００のハードウェア構成の一例を示す図である。図８（１）は、ジョブ管理ノード１００及びイメージサーバ２００のハードウェア構成の一例を示し、図８（２）は、クライアントノード３００のハードウェア構成の一例を示す。
【００４８】
図８（１）を参照して、ジョブ管理ノード１００、イメージサーバ２００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１１０，１２１０、バスライン１１０５，１２０５、通信Ｉ／Ｆ１１２０，１２２０、メモリ１１３０，１２３０、ハードディスク１１４０，１２４０を備える。図８（２）を参照して、クライアントノード３００は、ＣＰＵ１３１０、バスライン１３０５、通信Ｉ／Ｆ１３２０、及びメモリ１３３０を備える。
【００４９】
ＣＰＵ１１１０，１２１０，１３１０は、上述した各種処理（Ｓ１０１〜Ｓ１１０）を行う。通信Ｉ／Ｆ１１２０，１２２０，１３２０は、ジョブ管理ノード１００、イメージサーバ２００、及びクライアントノード３００の三者の間での通信に用いられる。すなわち、ジョブ管理ノード１００、イメージサーバ２００、及びクライアントノード３００は、通信Ｉ／Ｆ１１２０，１２２０，１３２０を介して通信可能に接続される。ハードディスク１２４０は、上述したアプリケーション実行環境バージョンテーブルやネットワークブート設定ファイルを格納する。
【００５０】
なお、図８に示すハードウェア構成は、ジョブ管理ノード１００、イメージサーバ２００、及びクライアントノード３００に最低限必要な構成のみを示しているが、この構成に含まれない構成を備えることとしてもよい。すなわち、クライアントノード３００はハードディスクを使用しないだけであり、ハードディスクを備えていてもよい。また、ジョブ管理ノード１００とイメージサーバ２００とが互いに接続されるとともに、イメージサーバ２００とクライアントノード３００とが互いに接続されていれば、必ずしも専用通信回線やインターネットに接続されている必要はない。
【００５１】
以上、本発明を実施形態に則して説明したが、本発明は、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアの組み合わせによる実施では、所定のプログラムを有するコンピュータ・システムでの実施が典型的な例として挙げられる。係る場合、該所定のプログラムが該コンピュータ・システムにロードされ実行されることにより、該プログラムは、コンピュータ・システムに本発明に係る処理を実行させる。このプログラムは、任意の言語、コード、又は表記によって表現可能な命令群から構成される。そのような命令群は、システムが特定の機能を直接実行すること、又は（１）他の言語、コード、もしくは表記への変換、（２）他の媒体への複製、のいずれか一方もしくは双方が行われた後に、実行することを可能にするものである。もちろん、本発明は、そのようなプログラム自体のみならず、プログラムを記録した媒体を含むプログラム製品もその範囲に含むものである。本発明の機能を実行するためのプログラムは、フレキシブル・ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ、ハードディスク装置、ＲＯＭ、ＲＡＭ、Ｍ−ＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  ＲＡＭ）、フラッシュメモリ等の任意のコンピュータ可読媒体に格納することができる。係るプログラムは、コンピュータ可読媒体への格納のために、通信回線で接続する他のコンピュータ・システムからダウンロードしたり、他の媒体から複製したりすることができる。また、係るプログラムは、圧縮し、又は複数に分割して、単一又は複数の記録媒体に格納することもできる。
【００５２】
また、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態又は実施例に記載されたものに限定されるものではない。
【図面の簡単な説明】
【００５３】
【図１】本発明のアプリケーション実行環境管理システムを示す図である。
【図２】本発明のアプリケーション実行環境バージョンテーブルを示す図である。
【図３】本発明のアプリケーション実行環境のバージョン管理手法を示す図である。
【図４】本発明のネットワークブート設定ファイルを示す図である。
【図５】本発明のアプリケーション実行環境管理手順を示すフローチャートである。
【図６】本発明のアプリケーション実行環境管理の動作を示す図である。
【図７】本発明のハードウェア構成を示す図である。
【図８】従来におけるアプリケーション実行環境管理の動作を示す図である。
【符号の説明】
【００５４】
１  アプリケーション実行環境管理システム
１００  ジョブ管理ノード
１１０  ジョブスケジューラ
２００  イメージサーバ
２１０  アプリケーション実行環境管理エージェント
２３０  アプリケーション実行環境バージョンテーブル
２５０  ネットワークブート設定ファイル
３００  クライアントノード
３１０  実行環境管理デーモン
【図１】
2010122963.tif 000003
【図２】
2010122963.tif 000004
【図３】
2010122963.tif 000005
【図４】
2010122963.tif 000006
【図５】
2010122963.tif 000007
【図６】
2010122963.tif 000008
【図７】
2010122963.tif 000009
【図８】
2010122963.tif 000010