(57)【特許請求の範囲】
【請求項１】
配備元サーバと、
前記配備元サーバと通信可能に接続された、配備候補サーバ群と、
を具備し、
前記配備元サーバは、
コンポーネント群を含むアプリケーションが登録されたときに、前記コンポーネント群に含まれる各コンポーネントの実行条件を、アプリケーション情報として取得する、アプリケーション解釈部と、
前記配備候補サーバ群に含まれる各配備候補サーバについて、配備される可能性があるコンポーネント群を配備候補コンポーネント群として決定し、前記配備候補コンポーネント群の実行条件を示すリソース購読要求を生成して前記各配備候補サーバに送信する、リソース購読要求送信部と、
前記各コンポーネントの配備先サーバを前記配備候補サーバ群の中から決定する、リソース監視部とを備え、
前記各配備候補サーバは、前記リソース購読要求を取得したときに、前記配備候補コンポーネント群に含まれる各配備候補コンポーネントの実行可否を判定し、実行可能な配備候補コンポーネントを参加対象コンポーネントとして示すアプリケーション参加申請を前記配備元サーバに送信する、参加判定部を備え、
前記リソース監視部は、前記アプリケーション参加申請に基づいて、前記配備先サーバを決定し、
前記リソース監視部は、複数の前記配備候補サーバから取得した複数のアプリケーション参加申請において、前記参加対象コンポーネントが同一であった場合に、既に前記各配備候補サーバに前記参加対象コンポーネントが搭載されているか否かを判定し、すでに搭載されている前記各配備候補サーバを優先的に前記参加対象コンポーネントの配備先サーバとして決定し、前記参加対象コンポーネントの配備先サーバに対して前記参加対象コンポーネントの配信を行わずに、前記配備先サーバに搭載されたコンポーネントの実行を指示する
アプリケーション配備システム。
【請求項２】
請求項１に記載されたアプリケーション配備システムであって、
前記配備元サーバは、更に、
前記アプリケーション情報を前記各配備候補サーバに送信する、アプリケーション情報送信部と、
前記各配備候補サーバが前記コンポーネント群に含まれるどのコンポーネントを実行可能かを検証する、スペック検証部とを備え、
前記各配備候補サーバは、更に、自身のアプリケーション実行能力を示すノード能力情報を生成し、前記配備元サーバに送信する、ノード能力管理部、を備え、
前記参加判定部は、前記アプリケーション情報を受信したときに、前記アプリケーションの中に実行可能なコンポーネントが含まれているか否かを判定し、
前記ノード能力管理部は、前記参加判定部により実行可能なコンポーネントが含まれていると判定された場合に、前記ノード能力情報を前記配備元サーバに送信し、
前記スペック検証部は、前記ノード能力情報と前記アプリケーション情報とに基づいて、検証を行い、
前記リソース購読要求送信部は、前記スペック検証部における検証結果に基づいて、前記配備候補コンポーネント群を決定する
アプリケーション配備システム。
【請求項３】
互いにアクセス可能に接続された、複数のサーバ
を具備し、
前記複数のサーバのそれぞれは、
配備元サーバ部分と、
配備候補サーバ部分とを備え、
前記配備元サーバ部分は、
コンポーネント群を含むアプリケーションが登録されたときに、前記コンポーネント群に含まれる各コンポーネントの実行条件を、アプリケーション情報として取得する、アプリケーション解釈部と、
前記複数のサーバのうちの他の各サーバついて、配備される可能性があるコンポーネント群を配備候補コンポーネント群として決定し、前記配備候補コンポーネント群と前記配備候補コンポーネント群の実行条件とを示すリソース購読要求を前記他の各サーバに送信する、リソース購読要求送信部と、
前記各コンポーネントの配備先サーバを、前記複数のサーバのうちの他のサーバ群の中から決定する、リソース監視部とを備え、
前記配備候補サーバ部分は、前記他の各サーバから前記リソース購読要求を取得したときに、前記配備候補コンポーネント群に含まれる各配備候補コンポーネントの実行可否を判定し、実行可能な配備候補コンポーネントを参加対象コンポーネントとして示すアプリケーション参加申請を生成し、前記アプリケーション参加申請を前記他の各サーバに送信する、参加判定部を備え、
前記リソース監視部は、前記アプリケーション参加申請に基づいて、前記配備先サーバを決定し、
前記配備候補サーバ部分は、更に、自身のアプリケーション実行能力を示すノード能力情報を生成し、前記複数のサーバのうちの他の全サーバに送信する、ノード能力管理部を備え、
前記配備元サーバ部分は、前記他のサーバから前記ノード能力情報を取得すると、前記ノード能力情報と前記アプリケーション情報とに基づいて、どのサーバによりどのコンポーネントが実行できるかを検証する、スペック検証部を備え、
前記リソース監視部は、前記アプリケーション参加申請と前記スペック検証部における検証結果に基づいて、前記配備先サーバを決定する
アプリケーション配備システム。
【請求項４】
請求項３に記載されたアプリケーション配備システムであって、
前記ノード能力管理部は、前記ノード能力情報を、前記他の各サーバに前記アプリケーションが登録されるよりも前に、送信する
アプリケーション配備システム。
【請求項５】
コンポーネント群を含むアプリケーションが登録されたときに、前記コンポーネント群に含まれる各コンポーネントの実行条件を、アプリケーション情報として取得する、アプリケーション解釈部と、
配備候補サーバ群に含まれる各配備候補サーバについて、配備される可能性があるコンポーネント群を配備候補コンポーネント群として決定し、前記配備候補コンポーネント群と前記配備候補コンポーネント群の実行条件とを示すリソース購読要求を前記各配備候補サーバに送信する、リソース購読要求送信部と、
前記各コンポーネントの配備先サーバを前記配備候補サーバ群の中から決定する、リソース監視部と、
を具備し、
前記リソース監視部は、前記各配備候補サーバが、前記リソース購読要求に応じて、前記配備候補コンポーネント群に含まれる各配備候補コンポーネントの実行可否を判定し、実行可能な配備候補コンポーネントを参加対象コンポーネントとして示すアプリケーション参加申請を配備元サーバに送信したときに、前記アプリケーション参加申請に基づいて、前記各コンポーネントの配備先サーバを決定し、
前記リソース監視部は、複数の前記配備候補サーバから取得した複数のアプリケーション参加申請において、前記参加対象コンポーネントが同一であった場合に、既に前記各配備候補サーバに前記参加対象コンポーネントが搭載されているか否かを判定し、すでに搭載されている前記各配備候補サーバを優先的に前記参加対象コンポーネントの配備先サーバとして決定し、前記参加対象コンポーネントの配備先サーバに対して前記参加対象コンポーネントの配信を行わずに、前記配備先サーバに搭載されたコンポーネントの実行を指示する
アプリケーション配備装置。
【請求項６】
配備元サーバが、コンポーネント群を含むアプリケーションが登録されたときに、前記コンポーネント群に含まれる各コンポーネントの実行条件を、アプリケーション情報として取得するステップと、
前記配備元サーバが、配備候補サーバ群に含まれる各配備候補サーバについて、配備される可能性があるコンポーネント群を配備候補コンポーネント群として決定するステップと、
前記配備元サーバが、前記配備候補コンポーネント群と前記配備候補コンポーネント群の実行条件とを示すリソース購読要求を前記各配備候補サーバに送信するステップと、
前記各配備候補サーバが、前記リソース購読要求を取得したときに、前記配備候補コンポーネント群に含まれる各配備候補コンポーネントの実行可否を判定するステップと、
前記各配備候補サーバが、実行可能な配備候補コンポーネントを参加対象コンポーネントとして示すアプリケーション参加申請を前記配備元サーバに送信するステップと、
前記配備元サーバが、前記アプリケーション参加申請に基づいて、前記各コンポーネントの配備先サーバを前記配備候補サーバ群の中から決定するステップと、
複数の前記配備候補サーバから取得した複数のアプリケーション参加申請において、前記参加対象コンポーネントが同一であった場合に、既に前記各配備候補サーバに前記参加対象コンポーネントが搭載されているか否かを判定し、すでに搭載されている前記各配備候補サーバを優先的に前記参加対象コンポーネントの配備先サーバとして決定し、前記参加対象コンポーネントの配備先サーバに対して前記参加対象コンポーネントの配信を行わずに、前記配備先サーバに搭載されたコンポーネントの実行を指示するステップと、
を具備する
アプリケーション配備方法。
【請求項７】
請求項６に記載されたアプリケーション配備方法をコンピュータにより実現するための、アプリケーション配備プログラム。
【請求項８】
コンポーネント群を含むアプリケーションが登録されたときに、前記コンポーネント群に含まれる各コンポーネントの実行条件を、アプリケーション情報として取得するステップと、
配備候補サーバ群に含まれる各配備候補サーバについて、配備される可能性があるコンポーネント群を配備候補コンポーネント群として決定するステップと、
前記配備候補コンポーネント群と前記配備候補コンポーネント群の実行条件とを示すリソース購読要求を前記各配備候補サーバに送信するステップと、
前記各配備候補サーバが、前記リソース購読要求に応じて、前記配備候補コンポーネント群に含まれる各配備候補コンポーネントの実行可否を判定し、実行可能な配備候補コンポーネントを参加対象コンポーネントとして示すアプリケーション参加申請を配備元サーバに送信したときに、前記アプリケーション参加申請に基づいて、前記各コンポーネントの配備先サーバを決定するステップと、
複数の前記配備候補サーバから取得した複数のアプリケーション参加申請において、前記参加対象コンポーネントが同一であった場合に、既に前記各配備候補サーバに前記参加対象コンポーネントが搭載されているか否かを判定し、すでに搭載されている前記各配備候補サーバを優先的に前記参加対象コンポーネントの配備先サーバとして決定し、前記参加対象コンポーネントの配備先サーバに対して前記参加対象コンポーネントの配信を行わずに、前記配備先サーバに搭載されたコンポーネントの実行を指示するステップと、
を具備する
アプリケーション配備システムにおけるアプリケーション配備装置の動作方法。
【請求項９】
請求項８に記載されたアプリケーション配備システムにおけるアプリケーション配備装置の動作方法を、コンピュータにより実現するための、アプリケーション配備装置の動作プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション配備システム、アプリケーション配備方法、及びアプリケーション配備プログラムに関する。
【背景技術】
【０００２】
複数のコンピュータを備え、一つのアプリケーションが複数のコンピュータで分散して実行される、分散処理装置が知られている。このような分散処理装置によれば、各コンピュータの資源が効率よく使用されるため、アプリケーションの実行能力が高められる。【０００３】
分散処理装置では、アプリケーションが、複数のコンポーネントに分けられる。そして、個々のコンポーネントが、別々のコンピュータにより実行される。複数のコンピュータの資源を効率よく使用するためには、複数のコンポーネントをどのように各コンピュータに割り当てるかが重要である。【０００４】
関連技術が、特開２００８−４０９２号公報に記載されている。この公報に記載された方法は、データ処理システム構成を求めるオンデマンド・プロビジョニングリクエストを受け取る中央管理資源を提供するステップと、グループ単位で配設された複数のプロビジョニング可能なデータ処理システム資源を提供するステップと、前記中央管理資源に応答し、前記プロビジョニング可能なデータ処理システム資源を複数のオンデマンド・リクエストに個別に又はグループ単位で動的に割り当てることができる少なくとも一個のプロビジョニングサーバーを提供するステップとを含む。【０００５】
他の関連技術が、特開２００４−３２６４５２号公報に記載されている。この公報に記載された分散処理サービス提供サーバは、第１のコンピュータからのサービス要求を受け付ける第１の手段と、第２のコンピュータの資源に関する情報に基づいて、受け付けたサービス要求に関する処理を分割した各処理ブロックを割り当てる第２のコンピュータを決定する第２の手段と、決定された第２のコンピュータに、割り当てた処理ブロックを配信する第３の手段と、処理ブロックを配信した第２のコンピュータからの処理ブロックの処理結果を受信し、その処理結果に基づいてサービス要求に対する処理結果を第１の処理結果に配信する第４の手段とを備える。【０００６】
その他に本発明者が知りえた関連技術としては、特表２００２−５２１７６５号公報、特開２００３−９９４１０号公報、特開２００４−２４０６９７号公報、及び特開２００５−５６４０５号公報が挙げられる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−４０９２号公報
【特許文献２】特開２００４−３２６４５２号公報
【特許文献３】特表２００２−５２１７６５号公報
【特許文献４】特開２００３−９９４１０号公報
【特許文献５】特開２００４−２４０６９７号公報
【特許文献６】特開２００５−５６４０５号公報
【発明の概要】
【０００８】
特開２００４−３２６４５２号公報に記載された分散処理サービス提供サーバは、第２のコンピュータの資源に関する情報に基づいて、各処理ブロックを割り当てる第２のコンピュータを決定している。そして、各処理ブロックは、決定された第２のコンピュータに配信される。この発明によれば、コンピュータ資源の余剰部分を効率的に利用できる。
【０００９】
しかしながら、コンピュータの資源の利用状況は、コンポーネントの配備状況などにより、動的に変化し得る。そのため、配備先のコンピュータを決定する時に用いた資源情報が、配備先に決定されたコンピュータで実際にコンポーネントを実行する時の資源状態とは異なっている可能性がある。例えば、配備先候補のコンピュータに、１０２４ＭＢバイトのメモリが搭載されているものとする。そして、配備しようとするコンポーネントが、７６８ＭＢバイトのメモリを要するものであるとする。ここで、配備先のコンピュータを決定する際に、配備先候補のコンピュータの搭載メモリが１０２４ＭＢである、という静的な情報を用いたとする。この場合、配備先候補のコンピュータに対してコンポーネントが配備可能である、と判断される。しかし、その後、配備先のコンピュータに、メモリを５１２ＭＢバイト使用する他のアプリケーションが配備されることも有りうる。この場合、実際に利用可能なメモリは、５１２ＭＢバイトとなる。そのため、配備先コンピュータにおいては、配備対象コンポーネントを実行するのに必要な７６８ＭＢバイトが確保することができない。結果として、配備したアプリケーションが実行できないことになる。
【００１０】
すなわち、特開２００４−３２６４５２号公報に記載された技術では、配備先のコンピュータの資源が動的に変化した場合に、実際のアプリケーションの実行時に想定どおりの実行環境が得られない可能性がある、という問題点があった。
【００１１】
本発明に係るアプリケーション配備システムは、配備元サーバと、前記配備元サーバと通信可能に接続された、配備候補サーバ群とを具備する。前記配備元サーバは、コンポーネント群を含むアプリケーションが登録されたときに、前記コンポーネント群に含まれる各コンポーネントの実行条件を、アプリケーション情報として取得する、アプリケーション解釈部と、前記配備候補サーバ群に含まれる各配備候補サーバについて、配備される可能性があるコンポーネント群を配備候補コンポーネント群として決定し、前記配備候補コンポーネント群の実行条件を示すリソース購読要求を生成して前記各配備候補サーバに送信する、リソース購読要求送信部と、前記各コンポーネントの配備先サーバを前記配備候補サーバ群の中から決定する、リソース監視部とを備える。前記各配備候補サーバは、前記リソース購読要求を取得したときに、前記配備候補コンポーネント群に含まれる各配備候補コンポーネントの実行可否を判定し、実行可能な配備候補コンポーネントを参加対象コンポーネントとして示すアプリケーション参加申請を前記配備元サーバに送信する、参加判定部を備える。前記リソース監視部は、前記アプリケーション参加申請に基づいて、前記配備先サーバを決定する。
【００１２】
本発明に係るアプリケーション配備システムの他の形態は、互いにアクセス可能に接続された、複数のサーバを具備する。前記複数のサーバのそれぞれは、配備元サーバ部分と、配備候補サーバ部分とを備える。前記配備元サーバ部分は、コンポーネント群を含むアプリケーションが登録されたときに、前記コンポーネント群に含まれる各コンポーネントの実行条件を、アプリケーション情報として取得する、アプリケーション解釈部と、前記複数のサーバのうちの他の各サーバついて、配備される可能性があるコンポーネント群を配備候補コンポーネント群として決定し、前記配備候補コンポーネント群と前記配備候補コンポーネント群の実行条件とを示すリソース購読要求を前記他の各サーバに送信する、リソース購読要求送信部と、前記各コンポーネントの配備先サーバを、前記複数のサーバのうちの他のサーバ群の中から決定する、リソース監視部とを備える。前記配備元サーバ部分は、前記他の各サーバから前記リソース購読要求を取得したときに、前記配備候補コンポーネント群に含まれる各配備候補コンポーネントの実行可否を判定し、実行可能な配備候補コンポーネントを参加対象コンポーネントとして示すアプリケーション参加申請を生成し、前記アプリケーション参加申請を前記他の各サーバに送信する、参加判定部を備える。前記リソース監視部は、前記アプリケーション参加申請に基づいて、前記配備先サーバを決定する。
【００１３】
本発明に係るアプリケーション配備装置は、コンポーネント群を含むアプリケーションが登録されたときに、前記コンポーネント群に含まれる各コンポーネントの実行条件を、アプリケーション情報として取得する、アプリケーション解釈部と、前記配備候補サーバ群に含まれる各配備候補サーバについて、配備される可能性があるコンポーネント群を配備候補コンポーネント群として決定し、前記配備候補コンポーネント群と前記配備候補コンポーネント群の実行条件とを示すリソース購読要求を前記各配備候補サーバに送信する、リソース購読要求送信部と、前記各コンポーネントの配備先サーバを前記配備候補サーバ群の中から決定する、リソース監視部とを具備する。前記リソース監視部は、前記各配備候補サーバが、前記リソース購読要求に応じて、前記配備候補コンポーネント群に含まれる各配備候補コンポーネントの実行可否を判定し、実行可能な配備候補コンポーネントを参加対象コンポーネントとして示すアプリケーション参加申請を前記配備元サーバに送信したときに、前記アプリケーション参加申請に基づいて、前記各コンポーネントの配備先サーバを決定する。
【００１４】
本発明に係るアプリケーション被配備装置は。配備元サーバから、配備される可能性があるコンポーネント群を示す配備候補コンポーネント群と前記配備候補コンポーネント群の実行条件とを示すリソース購読要求を受信する、リソース購読要求受信部と、前記リソース購読要求に基づいて、前記配備候補コンポーネント群に含まれる各配備候補コンポーネントの実行可否を判定し、実行可能な配備候補コンポーネントを参加対象コンポーネントとして示すアプリケーション参加申請を前記配備元サーバに送信する、参加判定部とを具備する。
【００１５】
本発明に係るアプリケーション配備方法は、前記配備元サーバが、コンポーネント群を含むアプリケーションが登録されたときに、前記コンポーネント群に含まれる各コンポーネントの実行条件を、アプリケーション情報として取得するステップと、前記配備元サーバが、前記配備候補サーバ群に含まれる各配備候補サーバについて、配備される可能性があるコンポーネント群を配備候補コンポーネント群として決定するステップと、前記配備元サーバが、前記配備候補コンポーネント群と前記配備候補コンポーネント群の実行条件とを示すリソース購読要求を前記各配備候補サーバに送信するステップと、前記各配備候補サーバが、前記リソース購読要求を取得したときに、前記配備候補コンポーネント群に含まれる各配備候補コンポーネントの実行可否を判定するステップと、前記各配備候補サーバが、実行可能な配備候補コンポーネントを参加対象コンポーネントとして示すアプリケーション参加申請を前記配備元サーバに送信するステップと、前記配備元サーバが、前記アプリケーション参加申請に基づいて、前記各コンポーネントの配備先サーバを前記配備候補サーバ群の中から決定するステップとを具備する。
【００１６】
本発明にかかるアプリケーション配備プログラムは、上述のアプリケーション配備方法をコンピュータにより実現するための、プログラムである。
【００１７】
アプリケーション配備システムにおけるアプリケーション配備装置の動作方法は、コンポーネント群を含むアプリケーションが登録されたときに、前記コンポーネント群に含まれる各コンポーネントの実行条件を、アプリケーション情報として取得するステップと、配備候補サーバ群に含まれる各配備候補サーバについて、配備される可能性があるコンポーネント群を配備候補コンポーネント群として決定するステップと、前記配備候補コンポーネント群と前記配備候補コンポーネント群の実行条件とを示すリソース購読要求を前記各配備候補サーバに送信するステップと、前記各配備候補サーバが、前記リソース購読要求に応じて、前記配備候補コンポーネント群に含まれる各配備候補コンポーネントの実行可否を判定し、実行可能な配備候補コンポーネントを参加対象コンポーネントとして示すアプリケーション参加申請を前記配備元サーバに送信したときに、前記アプリケーション参加申請に基づいて、前記各コンポーネントの配備先サーバを決定するステップとを具備する。
【００１８】
本発明に係るアプリケーション配備装置の動作プログラムは、上述のアプリケーション配備システムにおけるアプリケーション配備装置の動作方法を、コンピュータにより実現するためのプログラムである。
【００１９】
本発明に係るアプリケーション配備システムにおけるアプリケーション被配備装置の動作方法は、配備元サーバから、配備される可能性があるコンポーネント群を示す配備候補コンポーネント群と前記配備候補コンポーネント群の実行条件とを示すリソース購読要求を受信するステップと、前記リソース購読要求に基づいて、前記配備候補コンポーネント群に含まれる各配備候補コンポーネントの実行可否を判定し、実行可能な配備候補コンポーネントを参加対象コンポーネントとして示すアプリケーション参加申請を前記配備元サーバに送信するステップとを具備する。
【００２０】
本発明に係るアプリケーション被配備装置の動作プログラムは、上述のアプリケーション配備システムにおけるアプリケーション被配備装置の動作方法を、コンピュータにより実現するためのプログラムである。
【００２１】
本発明によれば、配備先のコンピュータの資源が動的に変化した場合であっても、実際のアプリケーションの実行時に想定どおりの実行環境を得ることのできる、アプリケーション配備システム、アプリケーション配備方法、及びアプリケーション配備プログラムが提供される。
【図面の簡単な説明】
【００２２】
【図１】図１は、第１の実施形態に係るアプリケーション配備システムを示す概略ブロック図である。
【図２】図２は、アプリケーション配備システムの概略動作を示すフローチャートである。
【図３】図３は、ステップＳ１〜Ｓ３の動作を詳細に示すフローチャートである。
【図４】図４は、ステップＳ４及びＳ５の動作を詳細に示すフローチャートである。
【図５】図５は、ステップＳ６及びＳ７の動作を詳細に示すフローチャートである。
【図６】図６は、リソース購読要求の一例を示す概念図である。
【図７】図７は、ステップＳ８及びＳ９の動作を詳細に示すフローチャートである。
【図８】図８は、ステップＳ９−７において、実行不可能であると判定した場合の動作を示すフローチャートである。
【図９】図９は、ステップＳ９−７において、実行可能であると判定された場合の動作を示すフローチャートである。
【図１０】図１０は、第２の実施形態に係るアプリケーション配備システムを示す概略図である。
【図１１】図１１は、第２の実施形態に係るアプリケーション配備システムの概略動作を示すフローチャートである。
【図１２】図１２は、ステップＳ１１〜Ｓ１３の動作を詳細に示すフローチャートである。
【図１３】図１３は、ステップＳ１４の動作を詳細に示すフローチャートである。
【図１４】図１４は、実施例に係るアプリケーション配備システムの構成を示す概略図である。
【発明を実施するための形態】
【００２３】
（第１の実施形態）
以下に、本発明の第１の実施形態について、図面を参照して詳細に説明する。
【００２４】
図１は、本実施形態に係るアプリケーション配備システムを示す概略ブロック図である。このアプリケーション配備システムは、配備元サーバ１００（アプリケーション配備装置）と、配備対象アプリケーションの配備先候補となる配備候補サーバ群（アプリケーション被配備装置群）とを備えている。この配備アプリケーション配備システムでは、配備元サーバ１００に配備対象アプリケーションが登録される。ここで、配備対象アプリケーションには、複数のコンポーネントがコンポーネント群として含まれている。配備元サーバ１００は、配備候補サーバ群の中から、各コンポーネントの配備先サーバを決定する。そして、決定した配備先サーバに、各コンポーネントを配備する。
【００２５】
配備元サーバ１００は、配備対象アプリケーションをシステムに投入するために用いられる。配備元サーバ１００は、アプリケーション情報解釈部１と、アプリケーション情報送信部２と、ノード能力受信部３と、リソース購読要求送信部４と、リソース監視部５と、コンポーネント配信部６と、スペック検証部７とを備えている。これらは、ＣＤ−ＲＯＭなどの記憶媒体などから配備元サーバ１００のＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）にインストールされたプログラム（アプリケーション配備装置の動作プログラム）がＣＰＵにより実行されることで、実現される。
【００２６】
配備候補サーバ群は、配備対象アプリケーションの配備先候補となるサーバ装置の集合である。配備候補サーバ群に含まれる各配備候補サーバ２００は、アプリケーション情報受信部８と、ノード能力送信部９と、ノード能力管理部１０と、リソース購読要求受信部１１と、アプリケーション参加通知部１３と、アプリケーション参加判定部１２と、コンポーネント受信部１４と、コンポーネント配備部１５とを備えている。これらは、ＣＰＵが、ＣＤ−ＲＯＭなどの記憶媒体から各配備候補サーバ２００に含まれるＲＯＭにインストールされたプログラム（アプリケーション被配備装置の動作プログラム）を実行することにより、実現される。
【００２７】
次いで、アプリケーション配備システムの概略動作について説明する。図２は、アプリケーション配備システムの概略動作を示すフローチャートである。
【００２８】
ステップＳ１；アプリケーションの登録
配備対象アプリケーションは、このアプリケーション配備システムの管理者によって、配備元サーバ１００に登録される。配備対象アプリケーションには、アプリケーション構成定義情報と、アプリケーションの実行形式であるコンポーネント群とが含まれている。ここで、コンポーネント群に含まれる各コンポーネントは、その実装形式になんらの制限もないものとする。アプリケーション構成定義情報は、コンポーネント群に含まれるコンポーネントの一覧を示している。また、アプリケーション構成定義情報において、各コンポーネントには、各コンポーネントの実行に必用な要件（必要なメモリ容量など）が、コンポーネント実行条件として対応付けられている。
【００２９】
ステップＳ２；配備元サーバがアプリケーション情報を取得
アプリケーション情報解釈部１は、配備対象アプリケーションが登録されると、アプリケーション構成定義情報を取得し、アプリケーション情報として、図示しないメモリなどの記憶装置に保存する。アプリケーション情報は、アプリケーション情報送信部２によって各配備候補サーバ２００に送信される。
【００３０】
ステップＳ３；配備候補サーバが実行可否を判定
各配備候補サーバ２００では、アプリケーション情報受信部８がアプリケーション情報を取得し、アプリケーション参加判定部１２に通知する。そして、アプリケーション参加判定部１２により、配備対象アプリケーションの中に実行可能なコンポーネントが含まれているか否かが判定される。具体的には、ノード能力管理部１０が現在の配備候補サーバ２００のアプリケーション実行能力を計測し、これをノード能力情報としてアプリケーション参加判定部１２に通知する。ノード能力情報には、例えば、搭載されたメモリの容量などのハードウェアに関する情報や、既に配備されているコンポーネントの情報等が含まれている。アプリケーション参加判定部１２は、ノード能力情報とアプリケーション情報とに基づいて、実行可能なコンポーネントが含まれているか否かを判定する。
【００３１】
ステップＳ４；ノード能力情報の送信
判定の結果、実行可能なコンポーネントが含まれている場合には、ノード能力管理部１０が、ノード能力情報を、ノード能力送信部９によって、配備元サーバ１００に送信する。
【００３２】
ステップＳ５；配備元サーバがスペック検証
配備元サーバ１００では、ノード能力情報受信部３がノード能力情報を受信する。そして、スペック検証部７が、アプリケーション情報とノード能力情報とに基づいて、各配備候補サーバ２００のスペック検証を行う。具体的には、各配備候補サーバ２００がどのコンポーネントを実行可能であるのかが、検証される。
【００３３】
ステップＳ６；リソース購読要求の送信
次いで、リソース購読要求送信部４が、スペック検証部７における検証結果に基づいて、各配備候補サーバ２００に対して配備される可能性があるコンポーネント群を、配備候補コンポーネント群として決定する。更に、リソース購読要求送信部４は、アプリケーション情報を参照し、配備候補コンポーネント群に含まれる各配備候補コンポーネントの実行条件を取得する。そして、配備候補コンポーネントの一覧とその実行条件とを対応付け、リソース購読要求を生成する。リソース購読要求送信部４は、生成したリソース購読要求を、各配備候補サーバ２００へ送信する。
【００３４】
ステップＳ７；配備候補サーバが実行可否を判定
各配備候補サーバ２００では、リソース購読要求受信部１１がリソース購読要求を受信し、これをアプリケーション参加判定部１２に通知する。アプリケーション参加判定部１２は、リソース購読要求に基づいて、配備候補コンポーネント群に含まれる各配備候補コンポーネントの実行可否を判定する。
【００３５】
ステップＳ８；ＡＰ参加申請の送信
実行可能な配備候補コンポーネントが存在した場合、アプリケーション参加判定部１２は、その配備候補コンポーネントを参加対象コンポーネントとして決定する。そして、参加対象コンポーネントを示す情報がアプリケーション参加申請として生成される。更に、アプリケーション参加判定部１２は、アプリケーション参加通知部１３によって、アプリケーション参加申請を配備元サーバ１００に送信する。
【００３６】
ステップＳ９；配備元サーバがスペック検証
配備元サーバ１００では、リソース監視部５が、各配備候補サーバ２００からのアプリケーション参加申請を受け付ける。リソース監視部５は、スペック検証部７により、アプリケーション参加申請に記載された参加対象コンポーネントが、発行元の配備候補サーバ２００で実行可能かどうかを確認する。そして、実行可能であれば、参加対象コンポーネントの配備先サーバとして、発行元の配備候補サーバ２００を決定する。尚この際、複数の配備候補サーバ２００から同一の参加対象コンポーネントが通知されてくることがある。この場合、リソース監視部５は、最適な配備候補サーバ２００を選択し、参加対象コンポーネントの配備先サーバとして決定する。
【００３７】
ステップＳ１０；コンポーネントの配信
その後、リソース監視部５は、コンポーネント配信部６により、各コンポーネントを配備先サーバに送信する。尚、この際、既に、配備先サーバに、配備予定のコンポーネントが搭載されていることもある。そこで、リソース監視部５は、ノード能力情報を参照し、配備される予定のコンポーネントが既に搭載されているか否かを判定する。既に搭載されていた場合には、コンポーネントの配信を行わずに、配備先サーバに対して、搭載されたコンポーネントを配備（実行）する旨を指示する。配備先サーバ（配備候補サーバ）では、コンポーネント受信部１４がコンポーネント又はコンポーネントの配備指示を受信し、コンポーネント配備部１５がコンポーネントを配備する。
【００３８】
以上のステップＳ１〜１０の動作により、配備対象アプリケーションに含まれる各コンポーネントが配備される。
【００３９】
上述のような構成及び動作によれば、アプリケーションが配備元サーバ１００に登録されると、各コンポーネントの実行条件を示す情報（リソース購読要求）が、各配備候補サーバ２００に対して送信される。そして、各配備候補サーバ２００において、各コンポーネントの実行可否が判定される。配備元サーバ１００側では、各配備候補サーバ２００における実行可否の判定結果（アプリケーション参加申請）に応じて、各コンポーネントの配備先サーバが決定される。各配備候補サーバ２００で実行可否が判定されるため、常に最新のノード能力情報に基づいて、各コンポーネントが配備可能であるか否かを判定することができる。その結果、配備候補サーバ２００における資源の利用状況が動的に変化する場合であっても、配備対象アプリケーションの各コンポーネントを最適に各配備候補サーバに割り当てることが可能となる。また、例えば、システムからサーバ装置を削除したり、新規にサーバ装置をシステムに組み込んだりした場合であっても、配備対象アプリケーションの各コンポーネントの割り当てを自動的に行うことができる。
【００４０】
続いて、本実施形態に係るアプリケーション配備システムの動作方法を、詳細に説明する。
【００４１】
まず、ステップＳ１〜Ｓ３の処理について詳述する。図３は、ステップＳ１〜Ｓ３の動作を詳細に示すフローチャートである。配備対象アプリケーションが配備元サーバ１００に登録されると、処理が開始される（ステップＳ１）。
【００４２】
配備元サーバ１００では、アプリケーション情報解釈部１が、登録された配備対象アプリケーションを分析する（ステップＳ２−１）。そして、アプリケーション情報解釈部１は、アプリケーション構成定義情報を、アプリケーション情報として記録装置に保存する（ステップＳ２−２）。次に、アプリケーション情報送信部２が、記録装置からアプリケーション情報を読み出し、配備元サーバ１００が接続されているネットワーク内に送信する。このときのデータ送信は、このシステム内の配備候補サーバ群に含まれる全サーバに対して行う。すなわち、配備元サーバ１００は、アプリケーション情報を、ブロードキャストする（ステップＳ２−３）。
【００４３】
各配備候補サーバ２００では、アプリケーション情報受信部８が、アプリケーション情報を受信する（ステップＳ３−１）。アプリケーション情報受信部８は、アプリケーション情報を、各配備候補サーバ２００内の記録装置（図示せず）に記録する（ステップＳ３−２）。アプリケーション情報受信部８は、アプリケーション参加判定部１２に対して、アプリケーション情報に記されるコンポーネントの実行可否を判断するように要求する（ステップＳ３−３）。次に、アプリケーション参加判定部１２は、ノード能力管理部１０に対して、配備候補サーバ２００の能力情報を取得するように要求する（ステップＳ３−４）。次に、ノード能力管理部１０は、配備候補サーバ２００のノード能力情報を取得する。ここで、ノード能力情報には、搭載メモリ量などのハードウェア情報、及び配備済みのコンポーネントを特定する情報（識別子）が含まれているものとする。次に、ノード能力管理部１０は、取得したノード能力情報を、アプリケーション参加判定部１２に通知（返却）する（ステップＳ３−５）。次に、アプリケーション参加判定部１２は、アプリケーション情報とノード能力情報とを元に、アプリケーション情報に記されるコンポーネント群に、実行可能なコンポーネントが存在するか否かを判定する（ステップＳ３−６）。
【００４４】
ステップＳ３−６の判定の結果、実行可能なコンポーネントが存在する場合には、以降のフロー（ステップＳ４−１）へ進む。一方、実行可能なコンポーネントが存在しない場合には、処理を終了する。
【００４５】
次に、ステップＳ４〜Ｓ５の処理について詳述する。図４は、ステップＳ４及びＳ５の動作を詳細に示すフローチャートである。
【００４６】
アプリケーション参加判定部１２は、ノード能力送信部９に対して、配備候補サーバ２００のノード能力情報を、配備元サーバ１００へ送信するよう依頼する（ステップＳ４−１）。次に、ノード能力送信部９は、ノード能力管理部１０に対して、ノード能力情報の取得を要求する（ステップＳ４−２）。次に、ノード能力管理部１０は、配備候補サーバ２００のノード能力を計測し、計測結果をノード能力情報としてノード能力送信部９に通知（返却）する（ステップＳ４−３）。次に、ノード能力送信部９は、ノード能力情報を、配備元サーバ１００に送信する（ステップＳ４−４）。
【００４７】
次に、配備元サーバ１００では、ノード能力受信部３が、ノード能力情報を受信する（ステップＳ５−１）。次に、ノード能力受信部３は、受信したノード能力情報を、記録装置に記録する（ステップＳ５−２）。次に、リソース購読要求送信部４が、スペック検証部７に対して、コンポーネント群のなかから配備候補サーバ２００で実行できるコンポーネントを検索するように、依頼する（ステップＳ５−３）。次に、スペック検証部７は、ノード能力受信部３に対して、配備候補サーバ２００のノード能力情報を取得するように要求する（ステップＳ５−４）。次に、ノード能力受信部１０３は、記録装置から、配備候補サーバ２００のノード能力情報を取得し、スペック検証部７に通知（返却）する（ステップＳ５−５）。次に、スペック検証部７は、アプリケーション情報解釈部１に対して、アプリケーション情報の取得を要求する（ステップＳ５−６）。次に、アプリケーション情報解釈部１は、アプリケーション情報を記録装置から取得し、スペック検証部７に通知（返却）する（ステップＳ５−７）。次に、スペック検証部７は、取得したノード能力情報とアプリケーション情報とに基づいて、配備対象アプリケーションに含まれる各コンポーネントが、配備候補サーバ２００により実行可能であるかを、判定（検証）する（ステップＳ５−８）。
【００４８】
ステップＳ５−８の判定の結果、配備対象アプリケーションに配備候補サーバ２００で実行可能なコンポーネントが存在した場合には、ステップＳ６−１へ進む。配備対象アプリケーションに配備候補サーバ２００で実行可能なコンポーネントが含まれていない場合には、処理を終了する。
【００４９】
続いて、ステップＳ６〜Ｓ７の処理について詳述する。図５は、ステップＳ６及びＳ７の動作を詳細に示すフローチャートである。
【００５０】
リソース購読要求送信部４が、リソース購読要求を生成する。図６は、リソース購読要求の一例を示す概念図である。リソース購読要求は、配備候補コンポーネントと、配備候補コンポーネントの実行条件とを示す情報を含んでいる。ここで、配備候補コンポーネントとしては、ステップＳ５−８にてサーバ配備候補２００が実行可能であると判定したコンポーネントが選ばれる。配備候補コンポーネントは、アプリケーション情報を参照することにより、取得される。また、リソース購読要求には、配備元サーバ２００のアドレス情報が、アプリケーション参加申請送信アドレスとして含まれている。リソース購読要求送信部４は、生成したリソース購読要求を、配備候補サーバ２００に送信する（ステップＳ６−１）。配備候補サーバ２００では、リソース購読要求受信部１１が、リソース購読要求を受信する（ステップＳ６−２）。次に、リソース購読受信部１１は、リソース購読要求を記録装置に記録する（ステップＳ６−３）。
【００５１】
次に、アプリケーション参加判定部１２が、ノード能力管理部１０に対して、配備候補サーバ２００の能力情報の取得を要求する（ステップＳ７−１）。次に、ノード能力管理部１０は、配備候補サーバ２００のノード能力を計測して、計測結果をノード能力情報としてアプリケーション参加判定部１２に通知（返却）する（ステップＳ７−２）。次に、アプリケーション参加判定部１２は、リソース購読要求とノード能力情報とに基づいて、リソース購読要求に記された配備候補コンポーネントの実行可否を判定する。本ステップでは、最新のノード能力情報を用いて判定が行われることになる。そのため、本ステップにおける判定結果は、ステップＳ３−６における判定結果と異なることがある（ステップＳ７−３）。
【００５２】
ステップＳ７−３における判定の結果、リソース購読要求のなかに、実行可能な配備候補コンポーネントが存在した場合には、次のステップＳ８−１に進む。一方、実行可能な配備候補コンポーネントが存在しない場合には、処理を終了する。
【００５３】
続いて、ステップＳ８及びＳ９の動作について詳細に説明する。図７は、ステップＳ８及びＳ９の動作を詳細に示すフローチャートである。
【００５４】
アプリケーション参加判定部１２は、アプリケーション参加通知部１３に対して、アプリケーション参加申請の送信を要求する（ステップＳ８−１）。次に、アプリケーション参加通知部１３は、アプリケーション参加申請を情報として生成し、配備元サーバ１００に対して送信する。ここで、アプリケーション参加申請には、参加対象コンポーネントを特定する識別子と、配備候補サーバ２００を特定する識別子とが含まれている。参加対象コンポーネントとしては、ステップＳ７−３における判定の結果、実行可能であると判定された配備候補コンポーネントが選ばれる（ステップＳ８−２）。
【００５５】
配備元サーバ１００では、リソース監視部４が、アプリケーション参加申請を受信する（ステップＳ９−１）。次に、リソース監視部４は、スペック検証部７に対して、配備候補サーバ２００で参加対象コンポーネントが実行できるか否かを判定するように、依頼する（ステップＳ９−２）。次に、スペック検証部７は、ノード能力受信部３に対して、配備候補サーバ２００のノード能力情報を取得するように要求する（ステップＳ９−３）。次に、ノード能力受信部３は、記録装置から、既に記録された配備候補サーバ２００のノード能力情報を取得し、スペック検証部７に通知（返却）する（ステップＳ９−４）。次に、スペック検証部７は、アプリケーション情報解釈部１に対して、参加対象コンポーネントの実行条件の取得を要求する（ステップＳ９−５）。次に、アプリケーション情報解釈部１は、参加対象コンポーネントの実行条件を、記録装置に記録されたアプリケーション情報から取得し、スペック検証部７に通知（返却）する（ステップＳ９−６）。次に、スペック検証部７は、取得したノード能力情報と取得した実行条件とに基づいて、参加対象コンポーネントが配備候補サーバ２００で実行可能か否かを判定する（ステップＳ９−７）。
【００５６】
ステップＳ９−７の判定の結果、参加対象コンポーネントが配備候補サーバ２００で実行可能であると判定した場合、ステップＳ１０−１へ進む。一方、参加対象コンポーネントが配備候補サーバ２００で実行不可能であると判定した場合は、ステップＳ１０−６に進む。
【００５７】
図８は、ステップＳ９−７において、実行不可能であると判定された場合の動作を示すフローチャートである。リソース監視部５は、配備候補サーバ２００に対して、アプリケーション参加通知の拒否通知を送信する（ステップＳ１０−６）。配備候補サーバ２００では、アプリケーション参加通知部１３が、アプリケーション参加通知の拒否通知を受信する（ステップＳ１０−７）。アプリケーション参加通知部１３は、アプリケーション参加通知の拒否通知を、記録装置に記録し、処理を終了する（ステップＳ１０−８）。
【００５８】
図９は、ステップＳ９−７において、実行可能であると判定された場合の動作を示すフローチャートである。リソース監視部５は、コンポーネント配信部６に対して、参加対象コンポーネントを配信するように要求する（ステップＳ１０−１）。次に、コンポーネント配信部６は、参加対象コンポーネントを、配備先サーバである配備候補サーバ２００に送信する（ステップＳ１０−２）。次に、配備候補サーバ２００では、コンポーネント受信部１４が、参加対象コンポーネントを受信する（ステップＳ１０−３）。次に、コンポーネント受信部１４は、コンポーネント配備部１５に対して、参加対象コンポーネントを配備するように要求する（ステップＳ１０−４）。次に、コンポーネント配備部１５は、参加対象コンポーネントを配備する（ステップＳ１０−５）。
【００５９】
（第２の実施形態）
続いて、第２の実施形態について説明する。
【００６０】
図１０は、本実施形態に係るアプリケーション配備システムを示す概略図である。図１０に示されるように、このアプリケーション配備システムは、互いにアクセス可能に接続された、複数のサーバ装置を備えている。そして、複数のサーバ装置のそれぞれには、配備元サーバ部分と、配備候補サーバ部分とが設けられている。配備元サーバ部分は、図１で示した第１の実施形態の配備元サーバと同じ機能構成を有する部分である。また、配備候補サーバ部分は、図１で示した第１の実施形態の配備候補サーバと同じ機能構成を有する部分である。従って、配備元サーバ部分と配備候補サーバ部分との詳細な機能構成の説明は省略する。
【００６１】
複数のサーバ装置のうち、一のサーバ装置に配備対象アプリケーションが登録されたとする。この場合、このサーバ装置は、配備元サーバ部分により配備元サーバとして動作する。一方、他のサーバ装置は、配備候補サーバ部分により、配備候補サーバとして動作する。すなわち、配備対象アプリケーションは、複数のサーバ装置のうちのどのサーバ装置にも登録することができる。
【００６２】
また、本実施形態では、第１の実施形態とは異なり、配備対象アプリケーションが登録されるよりも前に、各サーバ装置のノード能力情報が他のサーバ装置に対して送信されている。
【００６３】
以下に、本実施形態におけるアプリケーション配備システムの動作方法について説明する。図１１は、本実施形態に係るアプリケーション配備システムの概略動作を示すフローチャートである。
【００６４】
本実施形態では、複数のサーバ装置のそれぞれが、自サーバ装置のノード能力情報を、他のサーバ装置群に対して、常時又は定期的に、ブロードキャストしている。各サーバ装置は、他のサーバ群のノード能力を取得する（ステップＳ１１）。ここで、複数のサーバ装置のうちの一つに、配備対象アプリケーションが登録されたとする。この場合、配備対象アプリケーションが登録されたサーバ装置が配備元サーバ１００として動作し、他のサーバ群が配備候補サーバ群として動作する（ステップＳ１２）。配備元サーバ１００は、配備対象アプリケーションのアプリケーション情報を取得する（ステップＳ１３）。ここで、他のサーバ装置群（配備候補サーバ群）のノード能力情報は、既に配備元サーバ１００内に記憶されている。そのため、配備元サーバ２００では、スペック検証部７が、ノード能力情報とアプリケーション情報とに基づいて、配備候補サーバ２００がどのコンポーネントを実行可能であるかの検証を行う（ステップＳ１４）。以降の動作は、第１の実施形態のステップＳ６以降の動作と同じである。従って、詳細な説明は省略する。
【００６５】
上述のように、本実施形態によれば、複数のサーバ装置のそれぞれが、配備元サーバ１００としても配備候補サーバ２００としても機能しうるように構成されている。そのため、管理者は、複数のサーバ装置のいずれかに配備対象アプリケーションを登録すればよい。これにより、管理者にとっての利便性を向上させることができる。
【００６６】
また、本実施形態では、配備対象アプリケーションの登録に先立って、ノード能力情報がブロードキャストされている。そのため、配備元サーバ１００は、配備対象アプリケーションからアプリケーション情報を取得すると、即座に、ステップＳ１４（第１の実施形態におけるステップＳ５）の処理を実行することができる。すなわち、第１の実施形態におけるステップＳ３、４の処理を省略することができ、配備対象アプリケーションが登録されてから、配備が完了するまでの時間を短縮することができる。
【００６７】
以下の、本実施形態におけるアプリケーション配備システムの動作を詳細に説明する。図１２は、ステップＳ１１〜Ｓ１３の動作を詳細に示すフローチャートである。
【００６８】
各サーバ装置では、配備候補サーバ部分に含まれるノード能力送信部９が、ノード能力管理部１０に対してノード能力情報の取得を要求する（ステップＳ１１−１）。次に、ノード能力管理部１０は、自サーバ装置のノード能力を計測し、ノード能力情報としてノード能力送信部２０２に返却する（ステップＳ１１−２）。次に、ノード能力送信部９は、取得したノード能力情報を、他のサーバ装置群に対して送信する。これは、ブロードキャスト通信でノード能力情報を送信することを意味する（ステップＳ１１−３）。各サーバ装置では、配備元サーバ部分に含まれるノード能力受信部３が、他サーバ装置からノード能力情報を受信する（ステップＳ１１−４）。ノード能力受信部３は、ノード能力情報を記録装置に記録する（ステップＳ１１−５）。
【００６９】
次に、管理者が、配備対象アプリケーションを、複数のサーバ装置のうちの一つに登録したとする（ステップＳ１２）。
【００７０】
配備対象アプリケーションが登録されたサーバ装置は、配備元サーバ１００として動作し、アプリケーション情報解釈部１により、アプリケーション構成定義が分析される（ステップＳ１３−１）。アプリケーション情報解釈部１は、アプリケーション構成定義をアプリケーション情報として記録装置に保存する（ステップＳ１３−２）。
【００７１】
続いて、ステップＳ１４の動作を詳述する。図１３は、ステップＳ１４の動作を詳細に示すフローチャートである。
【００７２】
リソース購読要求送信部４が、スペック検証部７に対して、各コンポーネントを実行可能な配備候補サーバのリストを検索するように要求する（ステップＳ１４−１）。次に、スペック検証部７は、アプリケーション情報解釈部１に対して、アプリケーション情報を取得するように要求する（ステップＳ１４−２）。次に、アプリケーション情報解釈部１は、各コンポーネントの実行条件を、記録装置から取得し、スペック検証部７に通知（返却）する（ステップＳ１４−３）。次に、スペック検証部７は、ノード能力受信部３に対して、ノード能力情報を取得するように要求する（ステップＳ１４−４）。ノード能力受信部３は、記録装置から、各配備候補サーバ２００のノード能力情報を取得し、スペック検証部７に通知する（ステップＳ１４−５）。スペック検証部７は、各コンポーネントの実行条件と各配備候補サーバ２００のノード能力情報とに基づいて、各コンポーネントの実行条件に合致するスペック（ノード能力）を有する配備候補サーバ２００のリストを取得する。すなわち、各コンポーネントがどの配備候補サーバ２００で実行可能であるかを検証する。そして、検証結果をリソース購読要求送信部４に通知する（ステップＳ１４−６）。
【００７３】
以降の処理は、第１の実施形態におけるステップＳ６以降の動作と同様である。
【００７４】
（実施例）
続いて、本発明をより詳細に説明するために、実施例について説明する。以下に説明する実施例は、既述の第１の実施形態に対応する例である。
【００７５】
図１４は、本実施例に係るアプリケーション配備システムの構成を示す概略図である。
【００７６】
図１４に示されるように、アプリケーション配備システムは、配備対象アプリケーションをシステムに投入する際に利用される、配備元サーバ１００と、アプリケーションを実行するためのサーバ装置である、配備候補サーバ群（２００−１、２００−２、２００−３）とを備えている。配備元サーバ１００と配備候補サーバ群との構成は、第１の実施形態と同じであるものとする（図１参照）。
【００７７】
配備候補サーバ群のうち、配備候補サーバ２００−１は、以下のようなスペックを有しているものとする。
搭載メモリ容量＝１０２４ＭＢ
利用可能なメモリ容量＝８９６ＭＢ
ディスク容量＝１００ＧＢ
搭載されたミドルウェア＝データベース−Ｘ（ＤＢ−Ｘ）、及びアプリケーションサーバ−Ｘ（ＡｐｐＳ−Ｘ）
既に搭載済みのコンポーネント＝コンポーネントＡ
【００７８】
また、配備候補サーバ２００−２は、以下のようなスペックを有しているものとする。
搭載メモリ容量＝２０４８ＭＢ
利用可能なメモリ容量＝２０４８ＭＢ
ディスク容量＝１００ＧＢ
搭載されたミドルウェア＝Ｗｅｂサーバ（ＷｅｂＳ−Ｘ）
既に搭載済みのコンポーネント＝なし
【００７９】
また、配備候補サーバ２００−３は、以下のようなスペックを有しているものとする。
搭載メモリ容量＝５１２ＭＢ
利用可能なメモリ容量＝５２１ＭＢ
ディスク容量＝１００ＧＢ
搭載されたミドルウェア＝Ｗｅｂサーバ（ＷｅｂＳ−Ｘ）
既に搭載済みのコンポーネント＝なし
【００８０】
ここで、配備候補サーバ１００に登録された配備対象アプリケーションには、コンポーネントＡと、コンポーネントＢと、コンポーネントＣとが含まれているものとする。そして、配備対象アプリケーションのアプリケーション構成定義には、以下の内容が記述されているものとする。
【００８１】
コンポーネントＡの実行条件；
必要メモリ＝１２８ＭＢ
必要ディスク容量＝１．０ＧＢ
必要ミドルウェア＝データベース−Ｘ（ＤＢ−Ｘ）
【００８２】
コンポーネントＢの実行条件；
必要メモリ＝２５６ＭＢ
必要ディスク容量＝０．５ＧＢ
必要ミドルウェア＝アプリケーションサーバ−Ｘ（ＡｐｐＳ−Ｘ）
【００８３】
コンポーネントＣの実行条件；
必要メモリ＝２５６ＭＢ
必要ディスク容量＝１．０ＧＢ
必要ミドルウェア＝Ｗｅｂサーバ−Ｘ（ＷｅｂＳ−Ｘ）
【００８４】
配備元サーバ１００に、管理者によって上述の配備対象アプリケーションが登録されたときの動作について説明する。
【００８５】
配備元サーバ１００では、アプリケーション情報解釈部１が、配備対象アプリケーションからアプリケーション構成定義を取得し、各コンポーネントの実行条件情報を、アプリケーション情報として記録装置に記録する。次に、アプリケーション情報送信部２が、コンポーネントＡ、コンポーネントＢ及びコンポーネントＣの実行条件情報を取得し、それらをネットワークを介して、各配備候補サーバ２００に配信する。このときの配信方法は、ブロードキャストである。
【００８６】
次に、各配備候補サーバ２００は、アプリケーション情報受信部８により、アプリケーション情報（各コンポーネントの実行条件情報）を受信し、記録装置に記録する。
【００８７】
ここで、配備候補サーバ２００−１の動作について説明する。配備候補サーバ２００−１は、受信したアプリケーション情報と、自サーバのノード能力情報とに基づいて、各コンポーネントの実行可否を判定する。ここで、配備候補サーバ２００−１は、利用可能なメモリ容量が８５６ＭＢである。従って、コンポーネントＡ、Ｂ及びＣの全てに対して、必要なメモリ要件を満たす。また、配備候補サーバ２００−１のディスク容量は１００ＧＢであるため、コンポーネントＡ、Ｂ及びＣ全てに対して、必要なディスク容量要件を満たす。また、配備候補サーバ２００−１には、データベース−Ｘ及びアプリケーションサーバ−Ｘが搭載されている。したがって、必要なミドルウェア要件については、コンポーネントＡ及びコンポーネントＢの要件を満たし、コンポーネントＣの要件は満たさない。すなわち、配備候補サーバ２００−１は、コンポーネントＡ及びＢについて実行可能であると判定する。実行可能なコンポーネントが存在する為、配備候補サーバ２００−１は、配備元サーバに対してノード能力情報を送信する。
【００８８】
同様に、配備候補サーバ２００−２及び２００−３も、実行可能なコンポーネントが存在するか否かを判定する。配備候補サーバ２００−２の場合、コンポーネントＣが実行可能であるため、ノード能力情報を送信する。配備候補サーバ２００−３も、同様に、コンポーネントＣが実行可能であるため、ノード能力情報を送信する。
【００８９】
次に、配備元サーバ１００は、各配備候補サーバ２００からのノード能力情報を受信し、これを記録する。そして、配備元サーバ１００では、各配備候補サーバ２００がどのコンポーネントを実行可能であるのかを検証する。これにより、配備候補サーバ２００−１に対しては、実行可能なコンポーネントとして、コンポーネントＡ及びコンポーネントＢが抽出される。配備候補サーバ２００−２に対しては、実行可能なコンポーネントとして、コンポーネントＣが抽出される。配備候補サーバ２００−３に対しては、実行可能なコンポーネントとして、コンポーネントＣが抽出される。
【００９０】
配備元サーバ１００は、リソース購読要求を生成し、各配備候補サーバ２００に送信する。このとき、配備候補サーバ２００−１に対しては、リソース購読要求として、コンポーネントＡ及びコンポーネントＢの実行条件情報が送信される。配備候補サーバ２００−２及び２００−３に対しては、リソース購読要求として、コンポーネントＣの実行条件情報が送信される。
【００９１】
各配備候補サーバ２００は、リソース購読要求を受信すると、記録装置に記録する。そして、リソース購読要求に記載されたコンポーネント（配備候補コンポーネント）が実行可能であるか否かを判定する。ここでの判定は、前述と同様の判定となるが、最新のノード能力情報により判定するため、前述の判定の結果とは結果が異なる場合がある。但し、本実施例では、前述の判定結果と同じ判定結果になるものとする。判定の結果、配備候補コンポーネントの実行が可能であれば、各配備候補サーバ２００は配備元サーバ１００に対してアプリケーション参加申請を送信する。具体的には、配備候補サーバ２００−１は、コンポーネントＡ及びコンポーネントＢを参加対象コンポーネントとして決定し、これをアプリケーション参加申請として送信する。配備候補サーバ２００−２及び２００−３は、コンポーネントＣを参加対象コンポーネントとして決定し、これをアプリケーション参加申請として送信する。
【００９２】
配備元サーバ１００は、各配備候補サーバ２００からアプリケーション参加申請を受信すると、アプリケーション情報を参照し、参加対象コンポーネントが未配備であることを確認する。そして、既に取得している各ノード能力情報と、参加対象コンポーネントとの実行条件を比較し、実行可能であるか否かを判定する。判定の結果に基づいて、参加対象コンポーネントの配備先サーバを決定する。
【００９３】
具体的には、配備候補サーバ２００−１から送られてきた参加対象コンポーネント（コンポーネントＡ及びＢ）の配備先サーバとして、配備候補サーバ２００−１が決定される。このとき配備元サーバ１００は、ノード能力情報を参照し、配備先サーバ（配備候補サーバ２００−１）に既にコンポーネントＡ又はＢが搭載されているか否かを判定する。配備候補サーバ２００−１には、既に、コンポーネントＡが搭載されている。そのため、配備元サーバ１００は、コンポーネントＢだけを配備候補サーバ２００−１に配信する。そして、配備元サーバ２００−１に対して、コンポーネントＡの実行指示を通知する。
【００９４】
一方、配備候補サーバ２００−２と配備元サーバ２００−２からは、同一のコンポーネント（コンポーネントＣ）が参加対象コンポーネントとして配備元サーバ１００に通知される。この場合、配備元サーバ１００は、ノード能力情報を参照し、配備候補サーバ２００−２及び２００−３のいずれかに既にコンポーネントＣが既に搭載されているか否かを判定する。そして、搭載されている場合には、搭載されている配備候補サーバ２００を優先的に配備先サーバとして決定する。本実施例では、どちらの配備候補サーバにも参加対象コンポーネント（コンポーネントＣ）は搭載されていない。この場合、配備元サーバ１００は、先にアプリケーション参加申請を通知してきた方の配備候補サーバを、配備先サーバに決定する。尚、配備先サーバの決定時における判定条件は、他の条件が用いられても構わない。本実施例では、配備候補サーバ２００−２からのアプリケーション参加申請が先に届いたものとする。配備元サーバ１００は、配備候補サーバ２００−２を配備先サーバとして決定する。配備候補サーバ２００−２にはコンポーネントＣが搭載されていないため、配備元サーバ１００は、コンポーネントＣを配備候補サーバ２００−３に配信し、配備させる。配備元サーバ１００は、配備候補サーバ２００−３からアプリケーション参加申請に対しては、アプリケーション参加通知拒否通知を返信する。配備候補サーバ２００−３では、アプリケーション参加通知拒否通知を受信すると、これを記録装置へ記録し、処理を終了する。一方、配備候補サーバ２００−１及び２００−２では、それぞれ、コンポーネントＢ及びＣを受信し、配備を行い、処理を終了する。
【００９５】
以上の動作により、配備対象アプリケーションの配備が完了する。
【００９６】
以上、実施の形態や実施例を参照して本発明を説明したが、本発明は上記実施の形態及び実施例に限定されるものではない。本発明の構成や詳細には、請求の範囲に記載された本発明の技術的思想の範囲内において、当業者が適宜、様々な変形または変更を加えることが可能である。
【００９７】
尚、この出願は、２００９年２月２３日に出願された日本特許出願２００９−０３９９９１号を基礎とする優先権を主張し、その開示の全てを引用によりここに組み込む。
【図１】
0005382106.tif 000002
【図２】
0005382106.tif 000003
【図３】
0005382106.tif 000004
【図４】
0005382106.tif 000005
【図５】
0005382106.tif 000006
【図６】
0005382106.tif 000007
【図７】
0005382106.tif 000008
【図８】
0005382106.tif 000009
【図９】
0005382106.tif 000010
【図１０】
0005382106.tif 000011
【図１１】
0005382106.tif 000012
【図１２】
0005382106.tif 000013
【図１３】
0005382106.tif 000014
【図１４】
0005382106.tif 000015