(57)【要約】【課題】サービスチェインにおいて、要求された通信機能の開始までの時間を短縮する。【解決手段】管理サーバは、ネットワーク中の転送経路を管理し、送信部と制御部を備える。送信部は、転送経路に含まれる仮想マシンを起動させるための要求と、仮想マシンが起動するまでの間、仮想マシンが行う転送処理を代行するアプリケーションを起動させるための要求とを送信する。制御部は、アプリケーションの起動後に、転送経路中にアプリケーションを実行する実行装置を含めた第１の経路を設定する。制御部は、仮想マシンの起動後に、第１の経路を、第１の経路中の実行装置を仮想マシンに置き換えた第２の経路に切り替えるための制御を行う。【選択図】図４
2016134700.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク中の転送経路を管理する管理サーバであって、
前記転送経路に含まれる仮想マシンを起動させるための要求と、前記仮想マシンが起動するまでの間、前記仮想マシンが行う転送処理を代行するアプリケーションを起動させるための要求とを送信する送信部と、
前記アプリケーションの起動後に、前記転送経路中に前記アプリケーションを実行する実行装置を含めた第１の経路を設定し、前記仮想マシンの起動後に、前記第１の経路を、前記第１の経路中の前記実行装置を前記仮想マシンに置き換えた第２の経路に切り替えるための制御を行う制御部
を備えることを特徴とする管理サーバ。
【請求項２】
前記制御部は、
前記実行装置に、前記実行装置が前記仮想マシンで行われる処理を代行する際に生成した情報を前記仮想マシンに送信することを要求し、
前記仮想マシンに、前記実行装置から前記情報を受信することを要求し、
前記仮想マシンが前記情報を受信すると、前記第１の経路を前記第２の経路に切り替える
ことを特徴とする請求項１に記載の管理サーバ。
【請求項３】
前記転送経路で処理を行っている装置を、前記仮想マシンに置換する場合、前記制御部は、
前記仮想マシンで置換される対象の装置である対象装置に、前記対象装置が転送処理に使用している第１の通信情報を、前記実行装置へ転送することを要求し、
前記実行装置に、前記対象装置から前記第１の通信情報を取得することを要求し、
前記仮想マシンが起動すると、前記実行装置が前記第１の通信情報を用いた処理により生成した第２の通信情報の前記仮想マシンへの送信を、前記実行装置に要求し、
前記仮想マシンが前記第２の通信情報を受信すると、前記第１の経路を前記第２の経路に切り替える
ことを特徴とする請求項１または２に記載の管理サーバ。
【請求項４】
前記送信部は、前記転送経路に複数の仮想マシンが含められる場合、前記複数の仮想マシンの各々を起動させるための要求と、前記複数の仮想マシンの各々で行われる処理を代行する複数のアプリケーションを起動させるための要求を送信し、
前記制御部は、
前記転送経路に、前記複数のアプリケーションのいずれかを実行する装置を含めた経路を設定し、
前記転送経路中で、前記複数の仮想マシンのうちで起動が確認できた仮想マシンの処理を代行しているアプリケーションが動作している装置を、前記起動が確認できた仮想マシンで置換する
ことを特徴とする請求項１〜３のいずれか１項に記載の管理サーバ。
【請求項５】
ネットワーク中の転送経路を管理する管理サーバと、
前記ネットワーク中で通信処理を行う通信サーバ
を備え、
前記管理サーバは、前記転送経路に含める仮想マシンの起動の要求と、前記仮想マシンが起動するまでの間、前記仮想マシンが行う転送処理を代行するアプリケーションの起動の要求とを、前記転送経路の情報とともに送信し、
前記通信サーバは、
前記アプリケーションの起動後に、前記転送経路中に前記通信サーバを含めた第１の経路を設定し、
前記仮想マシンの起動後に、前記第１の経路を、前記第１の経路中の前記通信サーバを前記仮想マシンに置き換えた第２の経路に切り替える
ことを特徴とする通信システム。
【請求項６】
前記ネットワーク中で動作する他の通信サーバをさらに備え、
前記管理サーバは、
前記通信サーバに前記アプリケーションの起動の要求と、前記転送経路の情報を送信し、
前記他の通信サーバに、前記転送経路に含める仮想マシンの起動の要求を送信し、
前記通信サーバは、前記他の通信サーバでの前記仮想マシンの起動を確認すると、前記第１の経路を、前記第２の経路に切り替える
ことを特徴とする請求項５に記載の通信システム。
【請求項７】
ネットワーク中の転送経路を管理する管理サーバが、
前記転送経路に含まれる仮想マシンを起動させるための要求と、前記仮想マシンが起動するまでの間、前記仮想マシンが行う転送処理を代行するアプリケーションを起動させるための要求とを送信し、
前記アプリケーションの起動後に、前記転送経路中に前記アプリケーションを実行する実行装置を含めた第１の経路を設定し、
前記仮想マシンの起動後に、前記第１の経路を、前記第１の経路中の前記実行装置を前記仮想マシンに置き換えた第２の経路に切り替える
処理を行うことを特徴とする経路管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク中でのデータの転送経路の管理方法と管理サーバに関する。
【背景技術】
【０００２】
ネットワーク機能仮想化（Network Functions Virtualization、ＮＦＶ）と呼ばれる技術が注目されている。ＮＦＶは、ルータ、ゲートウェイ、ロードバランサなどのネットワーク機器によって実現されていた機能をアプリケーションプログラムとして実装し、サーバ上の仮想マシン（Virtual Machine、ＶＭ）として動作させる技術である。欧州の標準化団体であるＥＴＳＩ（European Telecommunications Standards Institute）のＮＦＶ  ＩＳＧ（Industry Specification Group）では、ファイアウォールやプロキシサーバを経由した通信をＮＦＶで実現することが検討されている。この場合、サーバ上の仮想マシン内で動作している複数の機能を選択的に利用するデータ転送経路（サービスチェイン）が用いられる。
【０００３】
図１は、サービスチェインの例を説明する図である。ファイアウォールやプロキシサーバ（Ｗｅｂ  Ｐｒｏｘｙ）はアプリケーションプログラムとしてサーバ上２０の仮想マシン内で動作している。図１の例では、仮想マシンＶＭ１はサーバ２０ａで動作しており、仮想マシンＶＭ２はサーバ２０ｂで動作している。ユーザがインターネットにアクセスする際に送信されるパケットは、全てファイアウォールが動作している仮想マシンＶＭ１と、Ｗｅｂ  Ｐｒｏｘｙが動作している仮想マシンＶＭ２を経由して送信される。なお、サーバ上では他のネットワーク機能も仮想マシンとして動作している場合もある。
【０００４】
ここで、各端末や仮想マシンは、パケットの最終宛先に対応付けて転送先をルーティングテーブルに記憶しているものとする。例えば、図１において端末１０Ａが端末１０Ｚにパケットを送信する場合、端末１０Ａから送信されたパケットは、仮想マシンＶＭ１に転送され、仮想マシンＶＭ１で動作するファイアウォールのアプリケーションにより処理される。同様に、端末１０Ｚ宛のパケットは、仮想マシンＶＭ１から仮想マシンＶＭ２に転送され、仮想マシンＶＭ２で動作するＷｅｂ  Ｐｒｏｘｙのアプリケーションにより処理される。仮想マシンＶＭ２は、端末１０Ｚ宛のパケットを、端末１０Ｚに転送する。なお、これらのルーティングテーブルは、各仮想マシンにおいて動作しているオペレーションシステム（ＯＳ）により管理されている。
【０００５】
関連する技術として、ネットワーク上を流れるパケットを通信管理装置が処理し、各クライアントは省電力モードに設定されているときには、通信管理装置から送信されたパケット以外に応答しないシステムが提案されている。通信管理装置は任意のクライアントからの接続先への接続要求を受信すると、接続先に省電力モードからの復帰要求を送信すると共に、接続先の代理で接続要求の送信元との通信準備処理を実行する（例えば、特許文献１など）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−１２６９５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
サービスチェインを用いるシステムでは、ユーザからの要求や負荷状況に応じて、サービスチェイン中の仮想マシンの変更や追加などを伴う通信経路の変更が行われる。仮想マシンの変更や追加の際、通信経路を管理する管理サーバは、新たな経路に含まれる仮想マシンが起動してから、経路の変更処理を行う。ここで、仮想マシン内で動作するＯＳの起動が完了しないと、仮想マシンの起動は完了しない。仮想マシン内のＯＳの起動には時間がかかるが、管理サーバは、仮想マシンが起動するまでは、サービスチェインを生成しない。このため、仮想マシンが起動して新たな経路が設定されるまで、要求された機能が提供されない。
【０００８】
本発明は、サービスチェインにおいて、要求された通信機能の開始までの時間を短縮することを目的とする。
【課題を解決するための手段】
【０００９】
ある１つの態様にかかる管理サーバは、ネットワーク中の転送経路を管理し、送信部と制御部を備える。送信部は、前記転送経路に含まれる仮想マシンを起動させるための要求と、前記仮想マシンが起動するまでの間、前記仮想マシンが行う転送処理を代行するアプリケーションを起動させるための要求とを送信する。制御部は、前記アプリケーションの起動後に、前記転送経路中に前記アプリケーションを実行する実行装置を含めた第１の経路を設定する。制御部は、前記仮想マシンの起動後に、前記第１の経路を、前記第１の経路中の前記実行装置を前記仮想マシンに置き換えた第２の経路に切り替えるための制御を行う。
【発明の効果】
【００１０】
サービスチェインにおいて、要求された通信機能の開始までの時間を短縮できる。
【図面の簡単な説明】
【００１１】
【図１】サービスチェインの例を説明する図である。
【図２】仮想マシンの動作例を説明する図である。
【図３】コンテナを用いた仮想化の例を説明する図である。
【図４】実施形態にかかる方法の例を説明するフローチャートである。
【図５】管理サーバの構成の例を説明する図である。
【図６】管理サーバのハードウェア構成の例を説明する図である。
【図７】通信経路の例を説明する図である。
【図８】第１の実施形態で行われる処理の例を説明する図である。
【図９】起動要求メッセージの例を示す図である。
【図１０】第１の実施形態で行われる処理の例を説明する図である。
【図１１】書き換え要求メッセージの例を示す図である。
【図１２】仮想マシンが起動したときの通信経路の例を示す図である。
【図１３】第１の実施形態で行われる処理の例を説明する図である。
【図１４Ａ】第１の実施形態で行われる処理の例を説明するフローチャートである。
【図１４Ｂ】第１の実施形態で行われる処理の例を説明するフローチャートである。
【図１５】第２の実施形態で行われる処理の例を説明する図である。
【図１６】第２の実施形態で行われる処理の例を説明する図である。
【図１７】第３の実施形態が適用される通信経路の例を説明する図である。
【図１８】第３の実施形態で行われる処理の例を説明する図である。
【図１９】第３の実施形態で行われる処理の例を説明するフローチャートである。
【図２０】第４の実施形態が適用されるネットワークの例を説明する図である。
【図２１】第４の実施形態で行われる処理の例を説明する図である。
【図２２】第４の実施形態で行われる処理の例を説明する図である。
【図２３】第４の実施形態で行われる処理の例を説明する図である。
【図２４】複数の仮想マシンの追加に用いられるテーブルの例を示す図である。
【図２５】第５の実施形態が適用されるネットワークの例を説明する図である。
【図２６】第５の実施形態で行われる処理の例を説明する図である。
【図２７】第５の実施形態で行われる処理の例を説明する図である。
【図２８】第５の実施形態で行われる処理の例を説明する図である。
【図２９】第５の実施形態で行われる処理の例を説明する図である。
【図３０】第５の実施形態で行われる処理の例を説明する図である。
【図３１】第５の実施形態で行われる処理の例を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
実施形態にかかる方法では、新たに仮想マシンが起動される際に、仮想マシンが起動するまでの期間に、仮想マシンで行われる処理を代行するコンテナも起動される。図２、図３を参照しながら、仮想マシンとコンテナについて説明する。
【００１３】
図２は、仮想マシン３０の動作例を説明する図である。図２の例では、１つのサーバ２０で仮想マシン３０ａと仮想マシン３０ｂが動作している場合を例として示しているが、１つのサーバ２０で動作する仮想マシン３０の数は任意である。サーバ２０では、物理ハードウェア２１を用いてＯＳ（Operation System）２２が動作している。さらに、ハードウェアエミュレーションを行うプログラム２３がＯＳ２２上で動作している。ハードウェアエミュレーションを行うプログラム２３により、仮想ハードウェア３１（３１ａ、３１ｂ）が実現される。仮想マシン３０aで動作するアプリケーション３３ａは、仮想ハードウェア３１ａを用いて動作するＯＳ３２ａ上で動作している。同様に、仮想マシン３０ｂで動作するアプリケーション３３ｂは、仮想ハードウェア３１ａを用いて動作するＯＳ３２ｂ上で動作している。従って、ケースＣ１に示すように、アプリケーション３３ｂの処理に応じてＯＳ３２ｂが仮想ハードウェア３１ｂに処理を要求すると、ハードウェアエミュレーションを行うプログラム２３に処理要求が出される。プログラム２３の処理に応じて、ＯＳ２２から物理ハードウェア２１に処理要求が出される結果、仮想マシン３０ｂ上で動作するアプリケーション３３ｂでの処理が行われる。すなわち、仮想マシン３０の起動が完了するまでには、仮想マシン３０上で動作するＯＳ３２が起動していることになる。このため、仮想マシン３０を用いる場合、仮想マシン３０ごとに任意のＯＳ３２を起動させることができるという利点はあるが、ＯＳ３２が起動するまで仮想マシン３０の起動が完了しないため、仮想マシン３０の起動には時間がかかるという問題がある。
【００１４】
図３は、コンテナ４０を用いた仮想化の例を説明する図である。サーバ２０では、物理ハードウェア２１を用いてＯＳ２２が動作しており、ＯＳ２２上でコンテナ４０ａとコンテナ４０ｂが動作する。各コンテナではコンテナごとのＩＤが用いられ、コンテナごとのＩＤがＯＳ２２によるアクセス先を特定するＩＤに変換されるので、各コンテナ４０中のアプリケーション４１は、他のコンテナ４０や物理ハードウェア２１の構成によらずに処理を実行できる。ＩＤテーブル４２（４２ａ、４２ｂ）は、各コンテナ中のアプリケーション４１のアクセス先と、コンテナ内のＩＤを対応付けている。一方、変換情報テーブル２４は、コンテナの識別子とコンテナ内ＩＤの組み合わせごとに、ＯＳ２２で使用されるＩＤを対応付けている。
【００１５】
例えば、サーバ２０中のＣＰＵ（Central Processing Unit）は、ＣＰＵ１とＣＰＵ２であるとする。アプリケーション４１ａは、ＩＤテーブル４２を用いて、コンテナ４０ａ内で使用されるＩＤがＣＰＵ０のＣＰＵに処理を要求したとする。すると、コンテナ４０ａでのＣＰＵ０の指定は、変換情報テーブル２４により、ＣＰＵ１に変換される。このため、アプリケーション４１ａに関する処理がＣＰＵ１により行われる。また、コンテナ４０ｂについても同様に、コンテナ４０ｂ中でのＣＰＵ０への指定は、ＣＰＵ２への指定に読み替えられるので、アプリケーション４１ｂに関する処理がＣＰＵ２で行われる。
【００１６】
このように、コンテナ４０を用いた仮想化では、仮想ＯＳが使用されない。従って、コンテナ４０を起動する際には仮想ＯＳの起動を待たなくてよいので、仮想マシン３０の起動よりもコンテナ４０の起動には時間がかからない。ここで、コンテナ４０は仮想ＯＳを用いずに、ＯＳ２２上で動作するため、コンテナ４０は、ＯＳ２２上で動作するアプリケーションであるということもできる。また、コンテナ４０に対する処理要求は、コンテナ４０をアプリケーションとして実行しているサーバ２０に対する処理の要求であるということもできる。なお、１つのサーバ２０で動作するコンテナ４０の数も任意である。
【００１７】
図２と図３を参照しながら説明したように、コンテナは、仮想マシン３０よりも起動時間が短い。しかし、コンテナ４０を用いた仮想化では複数のコンテナ４０が同じＯＳ２２で動作し、コンテナごとに異なるＯＳ２２が使用されることはない。このため、ＯＳ２２レベルで問題が発生すると全てのコンテナ４０に問題が起こってしまい、運用管理や安定性で問題がある。従って、コンテナ４０を用いた経路よりは、仮想マシン３０を用いた経路を使用する方が望ましい。そこで、実施形態にかかる方法では、仮想マシン３０の起動に際して、仮想マシン３０の処理を代行するコンテナ４０も起動する。起動されるコンテナは、仮想マシンが起動するまで、仮想マシンで行われる処理を代行することにより、仮想マシンを用いた際に行われるサービスと同等のサービスを提供する。
【００１８】
図４は、実施形態にかかる方法の例を説明するフローチャートである。図４は、サーバ２０と、ネットワーク中のサーバ２０を管理する管理サーバを含むシステムにおいて行われる処理の例を表している。なお、図４は動作の一例であり、実装に応じて変更されうる。例えば、ステップＳ２とステップＳ３の処理は並行して行われてもよく、また、ステップＳ２とステップＳ３の順序が変更されてもよい。
【００１９】
ステップＳ１において、管理サーバ５０は、新たな仮想マシン３０を含む経路の設定の要求を検出する。ここで、管理サーバ５０は、新たな仮想マシン３０を含む経路の要求を、オペレータが使用している端末から受信してもよい。また、管理サーバ５０が入力を受け付けるための入力装置を備えている場合、オペレータは、管理サーバ５０に対して、新たな仮想マシン３０を含む経路の設定を要求してもよい。この場合、管理サーバ５０は、入力装置からの入力を用いて、新たな経路の設定の要求を検出する。管理サーバ５０は、新たな経路に設定する仮想マシン３０を動作させるサーバ２０と、コンテナ４０を動作させるサーバ２０を決定する。ここで、コンテナ４０は、新たに起動させる仮想マシン３０が起動するまでの間、その仮想マシン３０の起動後に仮想マシン３０で行われる処理を代行する。なお、仮想マシン３０が動作するサーバ２０は、仮想マシン３０の処理を代行するコンテナ４０が動作するサーバ２０と同じであっても異なっていてもよい。
【００２０】
ステップＳ２において、管理サーバ５０は、新たな仮想マシン３０を動作させるサーバ２０に対して、新経路に含める仮想マシン３０の起動を要求する。さらに、管理サーバ５０は、新経路に含める仮想マシン３０の処理を代行するコンテナ４０の起動を、コンテナ４０を動作させるサーバ２０に要求する（ステップＳ３）。
【００２１】
ステップＳ３において起動を要求したコンテナ４０が起動すると、起動したコンテナ４０を経由する第１の経路が設定される（ステップＳ４）。その後、仮想マシン３０が起動するまで、第１の経路を用いた通信が行われる（ステップＳ５でＮｏ）。仮想マシン３０が起動すると、第１の経路を、仮想マシン３０を経由する第２の経路に切り替える処理が行われる（ステップＳ５でＹｅｓ、ステップＳ６）。
【００２２】
このように、実施形態にかかる方法では、起動が高速なコンテナ４０を一時的に用いてサービスチェインを構築した後で、仮想マシン３０の起動後に仮想マシン３０を用いた経路に切り替えている。仮想マシン３０を用いた経路は、コンテナ４０を用いた経路に比べて、安定的に運用でき、さらに、運用管理も容易である。このため、要求されたサービスを早期に開始するとともに、仮想マシン３０を用いて安定的にサービスの提供を行うことができる。
【００２３】
＜装置構成＞
図５は、管理サーバ５０の構成の例を説明する図である。管理サーバ５０は、送受信部５１、取得部５４、制御部６０、記憶部７０を備える。送受信部５１は、送信部５２と受信部５３を有する。制御部６０は、経路変更部６１、仮想マシン起動要求部６２、コンテナ起動要求部６３、起動判定部６４を有し、オプションとして、転送要求部６５を有してもよい。記憶部７０は、要素管理テーブル７１、ＳＣ管理テーブル７２、ＩＰアドレステーブル７３を記憶する。
【００２４】
送信部５２は、ネットワーク中のサーバ２０に制御メッセージを送信する。受信部５３は、ネットワーク中のサーバ２０から制御メッセージを受信する。取得部５４は、新たな仮想マシンを含む経路の設定の要求を取得する。
【００２５】
経路変更部６１は、あるサービスチェインについての、新たな仮想マシンを含む経路の設定の要求に応じて、仮想マシン起動要求部６２に新たな仮想マシン３０の起動を要求する。さらに、経路変更部６１は、新たに起動される仮想マシン３０の処理を代行するコンテナ４０の起動を、コンテナ起動要求部６３に要求する。さらに、仮想マシン３０やコンテナ４０の起動に際して、サービスチェインでの通信経路を変更する。
【００２６】
仮想マシン起動要求部６２は、新たな仮想マシン３０を起動させるサーバ２０を選択し、選択したサーバ２０に、仮想マシン３０の起動を要求する。コンテナ起動要求部６３は、新たなコンテナ４０を起動させるサーバ２０を選択し、選択したサーバ２０に、コンテナ４０の起動を要求する。起動判定部６４は、仮想マシン３０やコンテナ４０が起動したかを判定し、仮想マシン３０やコンテナ４０の起動を、経路変更部６１に通知する。転送要求部６５は、コンテナ４０の処理により、転送パケットの処理に関する情報（状態情報）が生成された場合、コンテナ４０で生成されたデータを仮想マシン３０に転送させるための処理を行う。状態情報の例として、例えば、Ｐｒｏｘｙのアドレス変換の対応情報や、Ｆｉｒｅｗａｌｌが通過させたパケットの情報などがあげられる。
【００２７】
要素管理テーブル７１は、各サービスチェインに含まれる端末１０、仮想マシン３０、コンテナ４０についての情報を格納する。例えば、要素管理テーブル７１には、サービスチェインに含まれる装置の識別子、サービスチェインの識別子（ＳＣ  ＩＤ）、ＩＰアドレス、パケットの転送先のＩＰアドレス、転送先が動作しているサーバ２０のＩＰアドレスなどの情報が含まれる。
【００２８】
ＳＣ管理テーブル７２は、サービスチェインでのパケットの転送経路を記録する。ＳＣ管理テーブル７２には、サービスチェインに含まれる装置の識別子、サービスチェインの識別子、サービスチェインにおけるその装置の順番などが含まれている。ＩＰアドレステーブル７３は、新たに起動させる仮想マシン３０やコンテナ４０に割り当て可能なＩＰアドレスが記録されている。
【００２９】
図６は、管理サーバ５０のハードウェア構成の例を説明する図である。管理サーバ５０は、プロセッサ８１、メモリ８２、入力装置８３、出力装置８４、バス８５、ネットワークインタフェース８６を備える。プロセッサ８１は、ＣＰＵを含む任意の処理回路である。プロセッサ８１は、メモリ８２をワーキングメモリとして使用して、ＯＳやアプリケーションプログラムを実行することにより、様々な処理を実行する。なお、プロセッサ８１の数は任意であり、複数のプロセッサ８１が搭載されていてもよい。メモリ８２は、主記憶装置や補助記憶装置として動作する。メモリ８２には、ＲＡＭ（Random Access Memory）が含まれ、さらに、ＥＰＲＯＭ（Erasable Programmable ROM）等の不揮発性のメモリも含まれる。入力装置８３は、キーボードやマウス等、オペレータが管理サーバ５０への入力処理に使用可能な装置である。入力装置８３から入力されたデータは、プロセッサ８１に出力される。出力装置８４は、プロセッサでの処理の結果を出力する装置である。出力装置８４には、スピーカ等の音声出力装置、ディスプレイが含まれる。
【００３０】
プロセッサ８１は、制御部６０として動作する。メモリ８２は、記憶部７０として動作する。ネットワークインタフェース８６は、送受信部５１として動作する。取得部５４は、ネットワークインタフェース８６、または、入力装置８３により実現される。
【００３１】
＜第１の実施形態＞
図７は、通信経路の例を説明する図である。図７は、管理サーバ５０に要素管理テーブル７１＿１とＳＣ管理テーブル７２＿２が記憶されている場合での、ＳＣ  ＩＤ＝ＳＣ１のサービスチェインで使用される転送経路を示す。以下の説明では、時間の経過に従ってテーブルの内容が変化する場合、符号の最後にアンダースコアと数字を続けて、いつの時点でのテーブルの状態かを示す。
【００３２】
図７に示すＳＣ  ＩＤ＝ＳＣ１のサービスチェインでは、端末１０Ａから端末１０Ｚにパケットが送信される。ＳＣ  ＩＤ＝ＳＣ１のサービスチェインで使用される通信経路には、ＳＣ管理テーブル７２＿１に示すように、端末１０Ａ、仮想マシン３０ａ、仮想マシン３０ｂ、端末１０Ｚが含まれている。パケットの通過順序は、ＳＣ管理テーブル７２＿１の順番が示すとおりに、端末１０Ａ、仮想マシン３０ａ、仮想マシン３０ｂ、端末１０Ｚとなる。
【００３３】
要素管理テーブル７１＿１は、ＳＣ  ＩＤ＝ＳＣ１のサービスチェインの生成に使用される要素の情報が含まれている。また、仮想マシン３０ａの識別子はＶＭ１であり、仮想マシン３０ａはＤＰＩ（Deep Packet Inspection）として動作する。仮想マシン３０ｂの識別子はＶＭ２であり、仮想マシン３０ｂはWeb Proxy（Proxy）として動作する。要素管理テーブル７１＿１では、仮想マシン３０が動作しているサーバ２０の情報は、そのサーバ２０に割り当てられたＩＰアドレス（サーバアドレス）で示されている。ここで、端末１０Ａに割り当てられたＩＰアドレスはＩＰＡ、端末１０Ｚに割り当てられたＩＰアドレスはＩＰＺである。仮想マシン３０ａはサーバ２０ａで動作しており、仮想マシン３０ｂはサーバ２０ｂで動作している。また、各装置に割り当てられたＩＰアドレスは、サーバ２０ａでＩＰＳ１、サーバ２０ｂでＩＰＳ２、仮想マシン３０ａでＩＰ１、仮想マシン３０ｂでＩＰ２である。なお、ネットワーク中にはサーバ２０ｃが含まれているが、サーバ２０ｃには、端末１０Ａが端末１０Ｚに宛てて送信したパケットが転送されない。このため、現時点では、サーバ２０ｃの情報は要素管理テーブル７１＿１に含まれていない。なお、サーバ２０ｃに割り当てられたＩＰアドレスはＩＰＳ３であるものとする。
【００３４】
さらに、各装置はサービスチェインに設定された転送経路を用いるための転送先を記憶している。例えば、端末１０Ａは、端末１０Ｚ宛（ＩＰＺ宛て）のパケットの転送先が仮想マシン３０ａ（ＶＭ１）であると記憶している。同様に、端末１０Ｚ宛のパケットの転送先は、仮想マシン３０ａでは仮想マシン３０ｂ（ＶＭ２）、仮想マシン３０ａでは端末１０Ｚである。
【００３５】
図８は、第１の実施形態で行われる処理の例を説明する図である。以下、図７に示したサービスチェインにおいて、ＤＰＩとして動作する仮想マシン３０ａとＰｒｏｘｙとして動作する仮想マシン３０ｂの間に、新たに、ファイアウォールとして動作する仮想マシンを追加する場合に行われる処理の例を説明する。なお、第１の実施形態では、管理サーバ５０には転送要求部６５が備えられていなくてもよい。
【００３６】
まず、経路変更部６１は、あるサービスチェインについての、新たな仮想マシンを含む経路の設定の要求が発生したことを検出する。経路変更部６１は、仮想マシン起動要求部６２に新たな仮想マシン３０の起動を要求する（矢印Ａ１）。以下、新たに追加される仮想マシン３０を仮想マシン３０ｃとし、仮想マシン３０ｃの識別子をＶＭｎｅｗとする。さらに、経路変更部６１は、新たに起動される仮想マシン３０ｃの処理を代行するコンテナ４０の起動を、コンテナ起動要求部６３に要求する（矢印Ａ２）。以下、起動されるコンテナ４０の識別子を、コンテナｎｅｗとする。
【００３７】
仮想マシン起動要求部６２は、仮想マシン３０の配備ポリシに従い、仮想マシン３０ｃ（ＶＭｎｅｗ）を動作させるサーバ２０を選択する。サーバ２０の選択に用いるポリシは任意であり、処理負荷が小さいサーバ２０を優先して選択することなどが考えられる。ここで、仮想マシン起動要求部６２は、サーバ２０ｃに仮想マシン３０ｃを動作させることを決定したとする。
【００３８】
矢印Ａ３に示すように、仮想マシン起動要求部６２は、ＩＰアドレステーブル７３を参照して、ＶＭｎｅｗに割り当てることができるＩＰアドレスを選択する。ここでは、仮想マシン起動要求部６２は、ＶＭｎｅｗに割り当てるＩＰアドレスとして、ＩＰＶを選択したとする。仮想マシン起動要求部６２は、選択したＩＰアドレスを、ＩＰアドレステーブル７３から削除する。
【００３９】
矢印Ａ４において、仮想マシン起動要求部６２は、要素管理テーブル７１に、新たに追加する仮想マシン３０ｃに関する情報を追加する。仮想マシン３０ｃの識別子はＶＭｎｅｗであり、仮想マシン３０ｃが動作するサーバ２０ｃに割り当てられたＩＰアドレスはＩＰＳ３である。また、仮想マシン３０ｃは、ファイアウォール（ＦＷ）として、ＳＣ  ＩＤ＝ＳＣ１のサービスチェインに追加される。このため、仮想マシン起動要求部６２は、矢印Ａ４の処理により、要素管理テーブル７１＿１（図７）に、要素管理テーブル７１＿２中のＶＭｎｅｗのエントリの情報を追加する。
【００４０】
矢印Ａ５において、仮想マシン起動要求部６２は、サーバ２０ｃに、仮想マシンの起動を要求するための要求メッセージを送信する。要求メッセージの詳細については後述する。
【００４１】
一方、矢印Ａ２の要求を受けたコンテナ起動要求部６３は、コンテナ４０の配備ポリシに従い、コンテナ４０（コンテナｎｅｗ）を動作させるサーバ２０を選択する。コンテナ４０を動作させるサーバ２０の選択に用いるポリシは任意であり、コンテナ４０を動作させるサーバ２０は、新たな仮想マシン３０ｃを動作させるサーバ２０と同じであっても異なっていてもよい。図８の例では、コンテナ起動要求部６３は、サーバ２０ｃにコンテナ４０を動作させることを決定したとする。
【００４２】
矢印Ａ６に示すように、コンテナ起動要求部６３は、ＩＰアドレステーブル７３を参照して、新たに起動するコンテナ４０に割り当てることができるＩＰアドレスを選択する。ここで、コンテナ起動要求部６３は、コンテナ４０に割り当てるＩＰアドレスとして、ＩＰＣを選択したとする。コンテナ起動要求部６３は、選択したＩＰアドレスを、ＩＰアドレステーブル７３から削除する。
【００４３】
矢印Ａ７において、コンテナ起動要求部６３は、要素管理テーブル７１に、新たに追加するコンテナ４０に関する情報を追加する。コンテナ４０の識別子はコンテナｎｅｗであり、コンテナ４０が動作するサーバ２０ｃに割り当てられたＩＰアドレスはＩＰＳ３である。また、コンテナ４０は、ファイアウォール（ＦＷ）として、ＳＣ  ＩＤ＝ＳＣ１のサービスチェインに追加される。このため、コンテナ起動要求部６３は、矢印Ａ７の処理により、要素管理テーブル７１＿２中のコンテナｎｅｗのエントリの情報を追加する。さらに、コンテナ起動要求部６３は、サーバ２０ｃに、コンテナ４０の起動を要求するための要求メッセージを送信する（矢印Ａ８）。
【００４４】
図９は、起動要求メッセージの例を示す図である。Ｐ１１は、仮想マシン３０の起動の要求に用いられる起動要求メッセージのフォーマットの例である。仮想マシン３０の起動の要求に用いられる起動要求メッセージは、ヘッダ、仮想マシン３０の起動要求を示す情報（ＶＭ起動）、仮想マシン３０を起動するサービスチェインの識別子、起動する仮想マシン３０に割り当てるＩＰアドレス、種別情報を含む。種別情報は、新たに起動される仮想マシン３０が提供するサービスの種類を示す。Ｐ１２は、コンテナ４０の起動の要求に用いられる起動要求メッセージのフォーマットの例である。コンテナ４０の起動の要求に用いられる起動要求メッセージは、ヘッダ、コンテナ４０の起動要求を示す情報（コンテナ起動）、コンテナ４０を起動するサービスチェインの識別子、コンテナ４０に割り当てるＩＰアドレス、種別情報を含む。種別情報は、コンテナ４０が提供するサービスの種類を示す。
【００４５】
例えば、図８の矢印Ａ５では、Ｐ１３に示す起動要求メッセージが、仮想マシン起動要求部６２から送信部５２を介して、サーバ２０ｃに送信されている。一方、図８の矢印Ａ８では、Ｐ１４に示す起動要求メッセージが、コンテナ起動要求部６３から送信部５２を介して、サーバ２０ｃに送信されている。
【００４６】
サーバ２０ｃは、Ｐ１３に示す起動要求メッセージの受信に伴って、仮想マシン３０ｃの起動を開始する。さらに、Ｐ１４に示す起動要求メッセージの受信に伴い、サーバ２０ｃは、コンテナ４０の起動を開始する。
【００４７】
起動判定部６４は、コンテナ４０の起動が完了しているかを、コンテナ４０の起動を要求したサーバ２０ｃに、定期的に問い合わせる。問い合わせの例として、サーバ２０ｃ上でコンテナ４０によるプロセスが実行されているかを調べる方法や、サーバ２０ｃに起動を要求したコンテナ４０に対してＩＣＭＰ（Internet Control Message Protocol）エコーを送信する方法が挙げられる。
【００４８】
図１０は、コンテナ４０の起動の際に行われる処理の例を説明する図である。起動判定部６４は、コンテナ４０が起動したと判定すると、コンテナ４０が起動したことを経路変更部６１に通知する。さらに、起動判定部６４は、仮想マシン３０ｃの起動が完了しているかを、仮想マシン３０ｃの起動を要求したサーバ２０ｃに、定期的に問い合わせる処理を開始する。なお、サーバ２０ｃへの問い合わせの処理は、コンテナ４０の起動が完了しているかを問い合わせる場合の処理と同様である。
【００４９】
経路変更部６１は、経路の変更の要求を検出した際に、仮想マシン３０ａ（ＶＭ１）から仮想マシン３０ｂ（ＶＭ２）に至る経路にコンテナ４０が追加されることも併せて認識している。そこで、コンテナ４０が起動すると、経路変更部６１は、サービスチェイン中のコンテナ４０（コンテナｎｅｗ）の順序が仮想マシン３０ａ（ＶＭ１）の前で仮想マシン３０ｂ（ＶＭ２）の後になるように、ＳＣ管理テーブル７２を変更する（矢印Ａ１１）。この処理により、ＳＣ管理テーブル７２＿１（図７）は、ＳＣ管理テーブル７２＿２（図１０）に示すように変更される。
【００５０】
経路変更部６１は、ＳＣ管理テーブル７２＿２を参照することにより、コンテナ４０がサービスチェインＳＣ１に追加されたときに、パケットの転送先が変更される装置を決定する。ＩＰＺ宛のパケットの転送先が変更される装置は、サービスチェインに追加されるコンテナ４０自身と、コンテナ４０にパケットを転送することになる装置である。そこで、経路変更部６１は、コンテナ４０（コンテナｎｅｗ）と仮想マシン３０ａ（ＶＭ１）について、ＩＰＺ宛のパケットの転送先を決定する。仮想マシン３０ａ（ＶＭ１）はパケットをコンテナ４０（コンテナｎｅｗ）に転送することになるので、仮想マシン３０ａでの転送先のＩＰアドレスは、コンテナ４０のアドレス（ＩＰＣ）となる。一方、コンテナ４０はパケットを仮想マシン３０ｂ（ＶＭ２）に転送するので、コンテナ４０での転送先のＩＰアドレスは、仮想マシン３０ｂのアドレス（ＩＰ２）となる。そこで、経路変更部６１は、決定した転送先を要素管理テーブル７１に記録する。この処理により、要素管理テーブル７１＿２（図８）は要素管理テーブル７１＿３に変更される（矢印Ａ１２）。
【００５１】
矢印Ａ１３において、経路変更部６１は、送受信部５１を介して、書き換え要求メッセージを仮想マシン３０ａに送信することにより、仮想マシン３０ａに、ＩＰＺ宛のパケットの転送先のアドレスをＩＰＣに変更することを要求する。さらに、矢印Ａ１４において、経路変更部６１は、書き換え要求メッセージをコンテナ４０に送信することにより、コンテナ４０に、ＩＰＺ宛のパケットの転送先のアドレスをＩＰ２に設定することを要求する。
【００５２】
図１０中の矢印Ａ１３とＡ１４の処理により、図１０に示すように、サービスチェインＳＣ１での端末１０Ｚ宛のパケットの転送経路は、端末１０Ａ、仮想マシン３０ａ、コンテナ４０、仮想マシン３０ｂ、端末１０Ｚとなる。さらに、仮想マシン３０ａによりＤＰＩ、仮想マシン３０ｂによりＰｒｏｘｙの処理が行われるだけでなく、コンテナ４０によってファイアウォールとしての処理も行われるようになる。
【００５３】
図１１は、書き換え要求メッセージのフォーマットの例を示す図である。書き換え要求メッセージには、ヘッダ、書き換え要求であることを示す情報、パケットの宛先アドレス、パケットの転送先のアドレスが記録されている。書き換え要求メッセージを受信した装置は、宛先に対応付けられた転送先の値を、書き換え要求メッセージで指定されたアドレスに設定する。このため、図１０に示すように、仮想マシン３０ａでは、ＩＰＺ宛のパケットの転送先のアドレスがＩＰ２（仮想マシン３０ｂのアドレス）からＩＰＣ（コンテナ４０のアドレス）に変更される。同様に、コンテナ４０では、ＩＰＺ宛のパケットの転送先のアドレスがＩＰ２（仮想マシン３０ｂのアドレス）に設定される。
【００５４】
その後、仮想マシン３０ｃの起動が完了したとする。
図１２は、仮想マシン３０ｃの起動が完了したときのサービスチェインＳＣ１の転送経路の例を示す。仮想マシン３０ｃが起動した時点では、仮想マシン３０ｃを経由する経路の設定は行われていない。このため、端末１０Ｚ宛のパケットは、図１２中の矢印Ａ１５で示すように、端末１０Ａから、仮想マシン３０ａ、コンテナ４０、仮想マシン３０ｂを経由して、端末１０Ｚに送信されている。起動判定部６４は、仮想マシン３０ｃが起動したと判定すると、仮想マシン３０ｃが起動したことを経路変更部６１に通知する。
【００５５】
図１３は、仮想マシン３０ｃの起動の際に行われる処理の例を説明する図である。経路変更部６１は、仮想マシン３０ｃが起動すると、サービスチェインＳＣ１の転送経路を、コンテナ４０の代わりに仮想マシン３０ｃを通過するように変更するための処理を開始する。
【００５６】
矢印Ａ２１において、経路変更部６１は、ＳＣ管理テーブル７２に仮想マシン３０ｃ（ＶＭｎｅｗ）の情報を追加するとともに、ＳＣ１での仮想マシン３０ｃの順序を仮想マシン３０ａ（ＶＭ１）と仮想マシン３０ｂ（ＶＭ２）の間に設定する。このため、ＳＣ管理テーブル７２＿３に示すように、仮想マシン３０ｃ（ＶＭｎｅｗ）に対応付けられる順序は３になる。さらに、コンテナ４０に対応付けられる順序を無効値にすることにより、サービスチェインＳＣ１で使用される転送経路からコンテナ４０を除外する。
【００５７】
経路変更部６１は、ＳＣ管理テーブル７２＿３を参照することにより、仮想マシン３０ｃがサービスチェインＳＣ１に追加されたときに、パケットの転送先が変更される装置を決定する。図１３の例では、パケット転送先が変更される装置は、仮想マシン３０ｃと、仮想マシン３０ｃにパケットを転送することになる仮想マシン３０ａである。そこで、経路変更部６１は、仮想マシン３０ｃ（ＶＭｎｅｗ）と仮想マシン３０ａ（ＶＭ１）について、新たなパケットの転送先を決定する。仮想マシン３０ａ（ＶＭ１）はＩＰＺ宛のパケットを仮想マシン３０ｃ（ＶＭｎｅｗ）に転送することになるので、仮想マシン３０ａでのＩＰＺ宛のパケットの転送先のＩＰアドレスは、仮想マシン３０ｃのアドレス（ＩＰＶ）となる。一方、仮想マシン３０ｃはＩＰＺ宛のパケットを仮想マシン３０ｂ（ＶＭ２）に転送するので、仮想マシン３０ｃでのＩＰＺ宛のパケットの転送先のＩＰアドレスは、仮想マシン３０ｂのアドレス（ＩＰ２）となる。そこで、経路変更部６１は、決定した転送先を要素管理テーブル７１に記録する。この処理により、要素管理テーブル７１＿３（図１０）は要素管理テーブル７１＿４に変更される（矢印Ａ２２）。
【００５８】
矢印Ａ２３において、経路変更部６１は、送受信部５１を介して、書き換え要求メッセージを仮想マシン３０ａに送信することにより、仮想マシン３０ａに、ＩＰＺ宛のパケットの転送先のアドレスをＩＰＶに変更することを要求する。さらに、矢印Ａ２４において、経路変更部６１は、書き換え要求メッセージを仮想マシン３０ｃに送信することにより、仮想マシン３０ｃに、ＩＰＺ宛のパケットの転送先のアドレスをＩＰ２に設定することを要求する。
【００５９】
図１３中の矢印Ａ２３とＡ２４の処理により、図１３の矢印Ａ２５に示すように、サービスチェインＳＣ１での端末１０Ｚ宛のパケットの転送経路は、端末１０Ａ、仮想マシン３０ａ、仮想マシン３０ｃ、仮想マシン３０ｂ、端末１０Ｚとなる。すなわち、サービスチェインＳＣ１での転送経路は、図１２に示す経路から図１３に示すように切り替えられる。また、経路の切り替えに伴い、仮想マシン３０ｃがコンテナ４０の代わりにファイアウォールとしての処理を開始する。
【００６０】
なお、図７〜図１３を参照しながら、仮想マシン３０やコンテナ４０が起動されるサーバ２０が配備ポリシに従って選択される場合の例を説明したが、オペレータが仮想マシン３０やコンテナ４０を配置するサーバ２０を指定してもよい。この場合、経路変更部６１は、オペレータから仮想マシン３０を配置するように指定されたサーバ２０を仮想マシン起動要求部６２に通知し、仮想マシン起動要求部６２は、通知されたサーバ２０に対して仮想マシン３０の起動を要求する。また、コンテナ４０についても、コンテナ起動要求部６３は、オペレータからコンテナ４０の起動が要求されたサーバ２０に対して、コンテナ４０の起動を要求する。
【００６１】
図１４Ａと図１４Ｂは、第１の実施形態で行われる処理の例を説明するフローチャートである。経路変更部６１から仮想マシン３０の追加要求を受けた仮想マシン起動要求部６２は、仮想マシン３０の配備ポリシやオペレータからの要求に応じて、仮想マシン３０を起動させるサーバ２０を特定する（ステップＳ１１）。仮想マシン起動要求部６２は、ＩＰアドレステーブル７３中に記録されている割り当て可能なＩＰアドレスの一覧から、仮想マシン３０に割り当てるＩＰアドレスを選択する（ステップＳ１２）。仮想マシン起動要求部６２は、ＩＰアドレステーブル７３から、選択したＩＰアドレスを削除する（ステップＳ１３）。仮想マシン起動要求部６２は、起動を要求する仮想マシン３０の情報を、要素管理テーブル７１に記録する（ステップＳ１４）。仮想マシン起動要求部６２は、選択したサーバ２０に対し、仮想マシン３０の起動と、選択したＩＰアドレスの割り当てを要求する（ステップＳ１５）。
【００６２】
経路変更部６１からコンテナ４０の追加要求を受けたコンテナ起動要求部６３は、コンテナ４０の配備ポリシやオペレータからの要求に応じて、コンテナ４０を起動させるサーバ２０を特定する（ステップＳ１６）。コンテナ起動要求部６３は、ＩＰアドレステーブル７３中に記録されている割り当て可能なＩＰアドレスの一覧から、コンテナ４０に割り当てるＩＰアドレスを選択する（ステップＳ１７）。コンテナ起動要求部６３は、ＩＰアドレステーブル７３から、選択したＩＰアドレスを削除する（ステップＳ１８）。コンテナ起動要求部６３は、起動を要求するコンテナ４０の情報を、要素管理テーブル７１に記録する（ステップＳ１９）。コンテナ起動要求部６３は、選択したサーバ２０に対し、コンテナ４０の起動と、選択したＩＰアドレスの割り当てを要求する（ステップＳ２０）。
【００６３】
起動判定部６４は、コンテナ４０の起動を要求したサーバ２０に対し、コンテナ４０の起動が完了したかを問い合わせる（ステップＳ２１）。起動判定部６４は、コンテナ４０の起動が完了するまで待機する（ステップＳ２２でＮｏ）。コンテナ４０の起動が完了すると、経路変更部６１は、ＳＣ管理テーブル７２を用いて、新しい転送経路を求める（ステップＳ２２でＹｅｓ、ステップＳ２３）。経路変更部６１は、サービスチェイン中で転送先を変更する装置に経路情報を送信する（ステップＳ２４）。なお、経路情報の送信には、書き換え要求メッセージが使用される。ステップＳ２４の処理により、起動中の仮想マシン３０で行われる予定のサービスの代行が、コンテナ４０によって開始される。
【００６４】
起動判定部６４は、仮想マシン３０の起動を要求したサーバ２０に対し、仮想マシン３０の起動が完了したかを問い合わせる（ステップＳ２５）。起動判定部６４は、仮想マシン３０の起動が完了するまで待機する（ステップＳ２６でＮｏ）。仮想マシン３０の起動が完了すると、経路変更部６１は、ＳＣ管理テーブル７２を用いて、新しい転送経路を求める（ステップＳ２６でＹｅｓ、ステップＳ２７）。経路変更部６１は、サービスチェイン中で転送先を変更する装置に経路情報を送信する（ステップＳ２８）。
【００６５】
なお、図７〜図１３を参照しながら、ファイアウォールとして動作する仮想マシン３０ｃをサービスチェインに追加する場合の処理を説明したが、追加される仮想マシン３０やコンテナ４０で行われる処理は任意である。
【００６６】
このように、第１の実施形態にかかる方法を用いると、起動が高速なコンテナ４０を一時的に用いて要求されたサービスを早期に開始することができる。さらに、仮想マシン３０の起動後に仮想マシン３０を用いた経路に切り替えることにより、安定的にサービスの提供を行うことができる。
【００６７】
＜第２の実施形態＞
第２の実施形態では、新たに追加される仮想マシン３０や、その仮想マシン３０の処理を代行するコンテナ４０において、パケットの転送処理の際に、転送パケットの処理に関する情報が生成される場合について説明する。第２の実施形態に用いられる管理サーバ５０には、経路変更部６１、仮想マシン起動要求部６２、コンテナ起動要求部６３、起動判定部６４に加えて、転送要求部６５が含まれている。第２の実施形態においても、コンテナ４０や仮想マシン３０の起動要求や、コンテナ４０が起動した際にコンテナ４０を経由する転送経路を設定するときの処理は、第１の実施形態と同様である。以下、理解しやすくするために、図８と同様に、サーバ２０ｃでコンテナ４０と仮想マシン３０ｃが起動される場合を例として、第２の実施形態での処理の例を説明する。
【００６８】
図１５は、第２の実施形態で行われる処理の例を説明する図である。図１５は、コンテナ４０を経由する転送経路Ａ３１が設定されている状態の例を示している。第２の実施形態では、コンテナ４０は、起動が完了していない仮想マシン３０ｃの処理を代行しているときに転送パケットの処理に関する情報（状態情報）を作成している。コンテナ４０が保持する状態情報は、ファイアウォールが通過させたパケットの情報などである。例えば、端末１０Ａから仮想マシン３０ａを介してコンテナ４０に転送されたパケットのうち、ファイアウォールの処理により、コンテナ４０が仮想マシン３０ｂに転送したパケットの情報が、状態情報として記録される。
【００６９】
図１６は、第２の実施形態において、仮想マシン３０ｃの起動が完了したときに行われる処理の例を説明する図である。起動判定部６４により仮想マシン３０ｃが起動したことが経路変更部６１に通知されたとする。すると、経路変更部６１は、仮想マシン３０ｃの代替えとして動作していたコンテナ４０では、状態情報が生成されているかを判定する。この判定は、コンテナ４０や仮想マシン３０ｃが提供するサービスの種類に基づいて行われる。ここでは、コンテナ４０と仮想マシン３０ｃは、状態情報を生成するファイアウォールとして動作するので、経路変更部６１は、コンテナ４０において状態情報が生成されていると判定する。経路変更部６１は、コンテナ４０で状態情報が生成されていると判定すると、経路の切り替え処理の前に、転送要求部６５に、コンテナ４０から仮想マシン３０ｃへの状態情報の転送に関する処理を要求する（矢印Ａ３２）。
【００７０】
転送要求部６５は、経路変更部６１からの要求に応じて、コンテナ４０に対し、状態情報を仮想マシン３０ｃに送信することを要求するための要求メッセージを送信する（矢印Ａ３３）。要求メッセージには、状態情報の通知先の仮想マシン３０ｃのアドレス（ＩＰＶ）と、仮想マシン３０ｃに通知する状態情報の種類を指定する情報が含まれている。さらに、転送要求部６５は、仮想マシン３０ｃに対し、コンテナ４０から状態情報を受信し、受信した状態情報を、パケットの処理に使用することを要求する要求メッセージを送信する（矢印Ａ３４）。仮想マシン３０ｃに送信される要求メッセージには、状態情報の送信元となるコンテナ４０のアドレス（ＩＰＣ）と、転送される状態情報の種類が含まれている。
【００７１】
コンテナ４０は、転送要求部６５から要求メッセージを受信すると、要求メッセージに指定されている種類の状態情報を、仮想マシン３０ｃに送信する（矢印Ａ３５）。一方、仮想マシン３０ｃも、転送要求部６５からの要求メッセージに指定された送信元から受信した状態情報を、以後の処理に使用する。換言すると、矢印Ａ３５に示す送信処理により、コンテナ４０で生成された状態情報がコンテナ４０から仮想マシン３０ｃに送信され、仮想マシン３０ｃは状態情報を用いて、コンテナ４０で行われた処理を引き継ぐことができる。
【００７２】
矢印Ａ３５に示す処理が行われた後で、経路変更部６１は、仮想マシン３０ａと仮想マシン３０ｃに切り替え要求メッセージを送信する（矢印Ａ３６、Ａ３７）。矢印Ａ３６、Ａ３７で行われる処理は、図１３を参照しながら説明した矢印Ａ２３、Ａ２４の処理と同様である。従って、矢印Ａ３６、Ａ３７で行われる処理により、サービスチェインＳＣ１での転送経路は、矢印Ａ３１（図１５）に示す経路から、矢印Ａ３８に示す経路に切り替えられる。
【００７３】
＜第３の実施形態＞
第３の実施形態では、サービスチェインに含まれている仮想マシン３０での障害からの復旧、仮想マシン３０の再起動、負荷分散などの目的により、サービスチェイン中の仮想マシン３０を他の仮想マシン３０に置き換える際の処理について説明する。
【００７４】
図１７は、第３の実施形態が適用される通信経路の例を説明する図である。図１７の例では、サービスチェインＳＣ１の処理に使用される転送経路は、矢印Ａ４１に示すとおりである。すなわち、端末１０Ａから端末１０Ｚに送信されたパケットは、仮想マシン３０ａ、仮想マシン３０ｂ、仮想マシン３０ｃを介して、端末１０Ｚに到達する。また、仮想マシン３０ａはＤＰＩ、仮想マシン３０ｂはファイアウォール、仮想マシン３０ｃはＰｒｏｘｙとして動作している。仮想マシン３０ａはサーバ２０ａで動作しており、仮想マシン３０ｂはサーバ２０ｂ、仮想マシン３０ｃはサーバ２０ｃで動作している。このため、図１７に示す経路が使用されているときには、管理サーバ５０は、要素管理テーブル７１＿１１とＳＣ管理テーブル７２＿１１を保持している。
【００７５】
以下、矢印Ａ４１に示す経路において、仮想マシン３０ｂを他の仮想マシン３０に置き換える場合を例として、第３の実施形態で行われる処理の例を説明する。
【００７６】
仮想マシン３０ｂを他の仮想マシン３０に置き換える場合、経路変更部６１は、まず、仮想マシン３０ｂの代替えとなる仮想マシン３０ｄ（図示せず）の起動を仮想マシン起動要求部６２に要求する。また、経路変更部６１は、仮想マシン３０ｄが起動するまでに稼働するコンテナ４０の起動も、コンテナ起動要求部６３に要求する。
【００７７】
仮想マシン起動要求部６２は、経路変更部６１の要求に応じて、仮想マシン３０ｄを起動するサーバ２０を選択し、選択したサーバ２０に、仮想マシン３０ｄの起動を要求する。仮想マシン３０ｄの起動の要求の際に仮想マシン起動要求部６２が行う処理は、第１の実施形態と同様である。第３の実施形態の説明では、仮想マシン３０ｄの識別子はＶＭｎｅｗであるとする。仮想マシン起動要求部６２の処理により、要素管理テーブル７１＿１２（図１８）のＶＭｎｅｗに関するエントリが生成される。
【００７８】
コンテナ起動要求部６３も、第１の実施形態と同様の処理により、仮想マシン３０ｄが起動するまでの間、仮想マシン３０ｄの代替えとして動作するコンテナ４０の起動を要求する。なお、以下の例では、コンテナ起動要求部６３がコンテナ４０の起動先として、サーバ２０ｂを選択した場合を例とするが、コンテナ４０が動作するサーバ２０は、サービスチェインから削除される仮想マシン３０が稼動しているサーバ２０でなくてもよい。起動判定部６４は、第１の実施形態と同様の処理により、コンテナ４０が起動したと判定したとする。第３の実施形態の説明でも、コンテナ４０の識別子はコンテナｎｅｗであるとする。コンテナ起動要求部６３の処理により、コンテナｎｅｗに関するエントリが要素管理テーブル７１に追加される。
【００７９】
図１８は、コンテナ４０が起動した際に第３の実施形態で行われる処理の例を説明する図である。経路変更部６１は、コンテナ４０が起動したことを起動判定部６４から通知されると、サービスチェインＳＣ１から削除する仮想マシン３０ｂにおいて、状態情報を生成しているかを判定する。図１８の例では、仮想マシン３０ｂはファイアウォールとして動作しているので、状態情報を生成している。そこで、経路変更部６１は、転送要求部６５に、仮想マシン３０ｂで生成されている状態情報をコンテナ４０に転送させるための処理を要求する（矢印Ａ４２）。
【００８０】
転送要求部６５は、経路変更部６１からの要求に応じて、コンテナ４０に対し、仮想マシン３０ｂから状態情報を受信し、受信した状態情報を、パケットの処理に使用することを要求する要求メッセージを送信する（矢印Ａ４３）。コンテナ４０に送信される要求メッセージには、状態情報の送信元となる仮想マシン３０ｂのアドレスと、状態情報の種類が指定されている。さらに、転送要求部６５は、仮想マシン３０ｂに対し、パケットの転送処理に際して生成した状態情報をコンテナ４０に送信することを要求するための要求メッセージを送信する（矢印Ａ４４）。なお、要求メッセージには、状態情報の通知先のコンテナ４０のアドレス（ＩＰＣ）と、コンテナ４０に通知する状態情報の種類を指定する情報が含まれている。
【００８１】
仮想マシン３０ｂは、転送要求部６５から要求メッセージを受信すると、要求メッセージに指定されている種類の状態情報を、コンテナ４０に送信する（矢印Ａ４５）。一方、コンテナ４０は、仮想マシン３０ｂから受信した状態情報を、以後の処理に使用する。つまり、矢印Ａ４５の処理以降は、仮想マシン３０ｂが生成した状態情報がコンテナ４０に引き継がれるので、サービスチェインＳＣ１中の仮想マシン３０ｂをコンテナ４０に置き換えても、ファイアウォールの機能を継続的に提供できる。
【００８２】
経路変更部６１は、コンテナ４０が仮想マシン３０ｂ（ＶＭｏｌｄ）の代替えとなる仮想マシン３０ｄが起動するまでの処理を行うコンテナ４０であることを認識している。そこで、コンテナ４０が起動すると、経路変更部６１は、コンテナ４０（コンテナｎｅｗ）の順序を、仮想マシン３０ｂ（ＶＭｏｌｄ）に割り当てられていた値に設定する。一方、仮想マシン３０ｂ（ＶＭｏｌｄ）の順序の値を無効値にすることにより、仮想マシン３０ｂをサービスチェインＳＣ１から削除する。このため、ＳＣ管理テーブル７２＿１１（図１７）は、ＳＣ管理テーブル７２＿１２に示すように変更される。
【００８３】
経路変更部６１は、ＳＣ管理テーブル７２＿１２を参照することにより、コンテナ４０と仮想マシン３０ａ（ＶＭ１）について、端末１０Ｚ宛のパケットの転送先を決定する。仮想マシン３０ａ（ＶＭ１）は、端末１０Ｚ（ＩＰＺ）宛のパケットをコンテナ４０（コンテナｎｅｗ）に転送することになるので、仮想マシン３０ａでの転送先のＩＰアドレスは、コンテナ４０のアドレス（ＩＰＣ）となる。一方、コンテナ４０はＩＰＺ宛てのパケットを仮想マシン３０ｃ（ＶＭ２）に転送するので、コンテナ４０での転送先のＩＰアドレスは、仮想マシン３０ｂのアドレス（ＩＰ２）となる。経路変更部６１は、決定した転送先を要素管理テーブル７１に記録する（矢印Ａ４７）。このため、経路変更部６１の処理により、要素管理テーブル７１＿１２が得られる。
【００８４】
矢印Ａ４８において、経路変更部６１は、送受信部５１を介して、書き換え要求メッセージを仮想マシン３０ａに送信することにより、仮想マシン３０ａに、ＩＰＺ宛のパケットの転送先のアドレスをＩＰＣに変更することを要求する。さらに、矢印Ａ４９において、経路変更部６１は、書き換え要求メッセージをコンテナ４０に送信することにより、コンテナ４０に、ＩＰＺ宛のパケットの転送先のアドレスをＩＰ２に設定することを要求する。
【００８５】
矢印Ａ４８とＡ４９の処理により、矢印Ａ５０に示すように、サービスチェインＳＣ１での端末１０Ｚ宛のパケットの転送経路は、端末１０Ａ、仮想マシン３０ａ、コンテナ４０、仮想マシン３０ｃ、端末１０Ｚとなる。さらに、コンテナ４０によってファイアウォールとしての処理も行われるようになる。
【００８６】
仮想マシン３０ｄが起動すると、サービスチェインＳＣ１の転送経路は、コンテナ４０を用いる経路から仮想マシン３０ｄを用いる経路に切り替えられる。経路の切り替えの際に行われる状態情報の転送処理は第２の実施形態で説明した処理と同様である。状態情報の転送処理の後に行われる切り替えの処理は、第１の実施形態で図１２および図１３を参照しながら説明した処理と同様である。
【００８７】
図１９は、第３の実施形態で行われる処理の例を説明するフローチャートである。稼働中の仮想マシン３０を新たな仮想マシン３０に切り替える処理の要求を検出すると、管理サーバ５０は、新たな仮想マシン３０の起動要求とコンテナ４０の起動要求を送信する（ステップＳ３１）。管理サーバ５０は、コンテナ４０の起動が完了するまで待機する（ステップＳ３２でＮｏ）。コンテナ４０の起動が完了すると、管理サーバ５０中の転送要求部６５は、稼働を停止させる予定の仮想マシン３０に、状態情報をコンテナ４０に転送することを要求する（ステップＳ３２でＹｅｓ、ステップＳ３３）。経路変更部６１は、ＳＣ管理テーブル７２を用いて、コンテナ４０を含む経路を求める（ステップＳ３４）。経路変更部６１は、得られた経路情報を、パケットの転送先を変更する装置に送信する（ステップＳ３５）。その後、管理サーバ５０は、新たな仮想マシン３０の起動が完了するまで待機する（ステップＳ３６でＮｏ）。新たな仮想マシン３０の起動が完了すると、転送要求部６５は、コンテナ４０に、新たに起動した仮想マシン３０へ状態情報を送信することを要求する（ステップＳ３７）。経路変更部６１は、ＳＣ管理テーブル７２を用いて、新たに起動した仮想マシン３０を含む経路を求める（ステップＳ３８）。経路変更部６１は、得られた経路情報を、パケットの転送先を変更する装置に送信する（ステップＳ３９）。
【００８８】
このように、第３の実施形態を用いると、サービスチェインに含まれている仮想マシン３０を、障害からの復旧などの目的で他の仮想マシン３０に置き換える際にも、新たに起動する仮想マシン３０が動作する前にコンテナ４０を用いてサービスを提供できる。
【００８９】
＜第４の実施形態＞
第４の実施形態では、サービスチェインを生成するときに行われる処理の例を説明する。
【００９０】
図２０は、第４の実施形態が適用されるネットワークの例を説明する図である。ネットワークには、端末１０Ａ、端末１０Ｚ、サーバ２０ａ、サーバ２０ｂが含まれており、サーバ２０ａでは仮想マシン３０ａが動作している。第４の実施形態では、仮想マシン３０ａの識別子をＶＭＥとする。端末１０Ａは、サービスチェインを用いた通信を行う際のアクセス先として、仮想マシン３０ａの情報を予め保持している。
【００９１】
さらに、管理サーバ５０は、端末１０Ａが仮想マシン３０ａを介してサービスチェインを介した通信を行うことができることを、記憶している。このため、管理サーバ５０は、要素管理テーブル７１＿２１に、サービスチェインに含まれる可能性のある要素として、端末１０Ａ（識別子＝Ａ）と、仮想マシン３０ａ（ＶＭＥ）を登録している。なお、仮想マシン３０ａは、端末１０Ａにとってのサービスチェインにアクセスするときのデフォルトルータとして動作する。
【００９２】
図２１は、第４の実施形態で行われる処理の例を説明する図である。図２１を参照しながら、端末１０Ａのユーザがファイアウォールを介して端末１０Ｚと通信するためのサービスチェインを生成する場合に行われる処理の例を説明する。経路変更部６１は、端末１０Ａから端末１０Ｚに至る経路中にファイアウォールを含むサービスチェインの生成の要求が行われたことを検出する。すると、経路変更部６１は、端末１０Ａと仮想マシン３０ａに対応付けられたサービスチェインＳＣ１に含まれる要素として、端末１０Ｚを追加する。さらに、経路変更部６１は、サービスチェインＳＣ１中でファイアウォールとして動作する仮想マシン３０を起動させるための処理を、仮想マシン起動要求部６２に要求する（矢印Ａ６１）。以下、新たに仮想マシン３０ｂが起動される場合を例とする。仮想マシン３０ｂの識別子は、ＶＭｎｅｗであるとする。
【００９３】
仮想マシン起動要求部６２は、仮想マシン３０の配備ポリシなどを用いて、仮想マシン３０ｂをサーバ２０ｂで動作させること決定したとする。仮想マシン起動要求部６２は、ＩＰアドレステーブル７３を参照して、ＶＭｎｅｗに割り当てるＩＰアドレスを選択するとともに、選択したＩＰアドレスを、ＩＰアドレステーブル７３から削除する（矢印Ａ６２）。ここでは、ＩＰＶがＶＭｎｅｗに割り当てられるとする。仮想マシン起動要求部６２は、要素管理テーブル７１に、仮想マシン３０ｂ（ＶＭｎｅｗ）に関するエントリを追加する。すなわち、仮想マシン３０ｂはサーバ２０ｂ上でファイアウォール（ＦＷ）として、動作することが要素管理テーブル７１に記録される（矢印Ａ６３）。その後、仮想マシン起動要求部６２は、サーバ２０ｂに、仮想マシンの起動を要求するための要求メッセージを送信する（矢印Ａ６４）。
【００９４】
また、経路変更部６１は、サービスチェインＳＣ１中でファイアウォールとして動作する仮想マシン３０が起動するまで動作させるコンテナ４０を起動させるための処理を、コンテナ起動要求部６３に要求する（矢印Ａ６５）。
【００９５】
コンテナ起動要求部６３は、コンテナ４０の配備ポリシに従い、コンテナ４０（コンテナｎｅｗ）をサーバ２０ｂで動作させることを決定したとする。コンテナ起動要求部６３は、ＩＰアドレステーブル７３を参照して、新たに起動するコンテナ４０に割り当てるＩＰアドレスを選択し、選択したＩＰアドレスを、ＩＰアドレステーブル７３から削除する（矢印Ａ６６）。ここでは、ＩＰＣがコンテナ４０に割り当てられるとする。コンテナ起動要求部６３は、要素管理テーブル７１に、コンテナ４０（コンテナｎｅｗ）に関するエントリを追加する。すなわち、コンテナ４０はサーバ２０ｂ上でファイアウォール（ＦＷ）として、動作することが要素管理テーブル７１に記録される（矢印Ａ６７）。このため、矢印Ａ６７の処理が終わった時点では、管理サーバ５０は要素管理テーブル７１＿２２を備えている。一方、コンテナ起動要求部６３は、サーバ２０ｂに、コンテナ４０の起動を要求するための要求メッセージを送信する（矢印Ａ６８）。
【００９６】
なお、矢印Ａ６８の処理が終わった段階でも、端末１０Ａから端末１０Ｚに至るサービスチェインＳＣ１は確立されていない。このため、管理サーバ５０は、サービスチェインＳＣ１の情報が含まれていないＳＣ管理テーブル７２＿２１を保持している。
【００９７】
図２２は、コンテナ４０が起動したときの第４の実施形態で行われる処理の例を説明する図である。起動判定部６４は、第１の実施形態と同様の処理により、コンテナ４０の起動を検出し、経路変更部６１にコンテナ４０の起動を通知する。経路変更部６１は、コンテナ４０が起動したことが通知されると、要素管理テーブル７１＿２２（図２１）を用いて、端末１０Ａからコンテナ４０を経由して端末１０Ｚまで至るサービスチェインが確立できると判定する。そこで、ＳＣ管理テーブル７２に、端末１０Ａ、仮想マシン３０ａ（ＶＭＥ）、コンテナ４０（コンテナｎｅｗ）、端末１０Ｚの順に転送処理が行われるサービスチェインを登録する（矢印Ａ７２）。このため、ＳＣ管理テーブル７２＿２１（図２１）はＳＣ管理テーブル７２＿２２に変更される。
【００９８】
経路変更部６１は、ＳＣ管理テーブル７２＿２２に記録した経路を用いる場合について、サービスチェインに含まれる各装置での端末１０Ｚ宛のパケットの転送先を決定するとともに、パケットの転送先を要素管理テーブル７１に記録する。このため、経路変更部６１の処理により、要素管理テーブル７１＿２２（図２２）は要素管理テーブル７１＿２３に変更される。経路変更部６１は、サービスチェインＳＣ１に含まれる装置のうちで、パケットの転送先が新たに設定される装置は、仮想マシン３０ａとコンテナ４０であると判定する。
【００９９】
矢印Ａ７３において、経路変更部６１は、書き換え要求メッセージを仮想マシン３０ａに送信することにより、仮想マシン３０ａに、ＩＰＺ宛のパケットの転送先のアドレスをＩＰＣに設定することを要求する。さらに、矢印Ａ７４において、経路変更部６１は、書き換え要求メッセージをコンテナ４０に送信することにより、コンテナ４０に、ＩＰＺ宛のパケットの転送先のアドレスをＩＰＺに設定することを要求する。
【０１００】
図２２中の矢印Ａ７３とＡ７４の処理により、サービスチェインＳＣ１での端末１０Ｚ宛のパケットの転送経路は、端末１０Ａ、仮想マシン３０ａ、コンテナ４０、端末１０Ｚとなる。さらに、コンテナ４０によってファイアウォールとしての処理も行われる。
【０１０１】
図２３は、仮想マシン３０が起動したときに第４の実施形態で行われる処理の例を説明する図である。矢印Ａ１７１〜Ａ１７４の処理は、図１６を参照しながら説明した矢印Ａ３２〜Ａ３５で行われる処理と同様である。矢印Ａ１７１〜Ａ１７４の処理により、コンテナ４０で生成された状態情報は仮想マシン３０ｂに引き継がれる。
【０１０２】
コンテナ４０で生成された状態情報が仮想マシン３０ｂに引き継がれた後で、経路変更部６１は、ＳＣ管理テーブル７２をＳＣ管理テーブル７２＿２３に示すように変更する（矢印Ａ１７５）。この処理により、コンテナ４０を仮想マシン３０ｂに置き換えたときにサービスチェインＳＣ１で端末１０Ａから端末１０Ｚへの送信処理に用いられる経路は、端末１０Ａから仮想マシン３０ａ、仮想マシン３０ｂを介して端末１０Ｚに至る経路に決定される。経路変更部６１は、サービスチェインＳＣ１で用いる経路に合わせて、要素管理テーブル７１を要素管理テーブル７１＿２４に示すように変更する（矢印Ａ１７６）。
【０１０３】
さらに、経路変更部６１は、仮想マシン３０ａと仮想マシン３０ｂに切り替え要求メッセージを送信する（矢印Ａ１７７、Ａ１７８）。矢印Ａ１７７、Ａ１７８で行われる処理は、図１３を参照しながら説明した矢印Ａ２３、Ａ２４の処理と同様である。従って、矢印Ａ１７７、Ａ１７８で行われる処理により、サービスチェインＳＣ１での転送経路は、図２２に示す経路から、図２３に示す経路に切り替えられる。
【０１０４】
このように、実施形態にかかる方法は、既存のサービスチェインに仮想マシン３０を追加する場合だけでなく、新たなサービスチェインを生成する場合にも、適用可能である。このため、仮想マシン３０が起動するまでの間に、コンテナ４０を用いてサービスチェインを確立することにより、コンテナ４０を使用しない場合に比べて、サービスチェインの使用開始時期を早めることができる。
【０１０５】
＜変形例＞
第１〜第４の実施形態では、１つの仮想マシン３０がサービスチェインに追加される場合を例として説明したが、１度に複数の仮想マシン３０が１つのサービスチェインに追加されてもよい。１度に複数の仮想マシン３０が１つのサービスチェインに追加される場合は、要素管理テーブル７１において、新たに起動される仮想マシン３０の各々について、その仮想マシン３０の処理を代替えするコンテナ４０が明確になるように対応付けられる。
【０１０６】
図２４は、複数の仮想マシン３０の追加に用いられるテーブルの例を示す図である。複数の仮想マシン３０を起動する場合、要素管理テーブル７１は、装置の識別子、ＳＣ  ＩＤ、装置のアドレス、パケットの転送先、装置が動作しているサーバに割り当てられたアドレス、装置の機能に加えて関連ＩＤを含む。関連ＩＤは、起動される仮想マシン３０ごとに、経路変更部６１によって決定される。ここで、関連ＩＤは、１つのサービスチェイン中の複数の仮想マシン３０において、同じ値にならないように決定される。経路変更部６１は、仮想マシン３０の起動を要求する際に、仮想マシン起動要求部６２に対して、起動を要求する仮想マシン３０に対して決定した関連ＩＤを通知する。経路変更部６１は、さらに、コンテナ起動要求部６３にコンテナ４０の起動を要求する際にも、起動を要求するコンテナ４０が処理を代行する仮想マシン３０に対して決定した関連ＩＤを通知する。
【０１０７】
例えば、図２４は、サービスチェイン中に、ＶＭｎｅｗとＶＭｎｅｗ＿２の２つの仮想マシン３０が起動される場合の要素管理テーブル７１を示している。この例では、経路変更部６１は、ＶＭｎｅｗで識別される仮想マシン３０に対する関連ＩＤをＩＤ１、ＶＭｎｅｗ＿２で識別される仮想マシン３０に対する関連ＩＤをＩＤ２に決定している。経路変更部６１は、ファイアウォールとして動作する仮想マシン３０（ＶＭｎｅｗ）の起動を仮想マシン起動要求部６２に要求する際に関連ＩＤ＝ＩＤ１であることを通知する。一方、経路変更部６１は、コンテナ起動要求部６３にファイアウォールとして動作するコンテナ４０（コンテナｎｅｗ）の起動をコンテナ起動要求部６３に要求する際にも関連ＩＤ＝ＩＤ１であることを通知する。このため、仮想マシン起動要求部６２は、ＶＭｎｅｗで識別される仮想マシン３０に対する情報を要素管理テーブル７１に記録する際に、関連ＩＤをＩＤ１に設定する。同様に、コンテナ起動要求部６３も、ファイアウォールとして動作するコンテナ４０（コンテナｎｅｗ）の情報を要素管理テーブル７１に記録する際に、関連ＩＤをＩＤ１に設定する。同様の処理が、ＶＭｎｅｗ＿２で識別される仮想マシン３０とコンテナｎｅｗ＿２で識別されるコンテナ４０（関連ＩＤ＝ＩＤ２）についても行われる。
【０１０８】
経路変更部６１は、ＶＭｎｅｗで識別される仮想マシン３０（関連ＩＤ＝ＩＤ１）が起動すると、要素管理テーブル７１を参照して、関連ＩＤ＝ＩＤ１に設定されているコンテナ４０を特定する。経路変更部６１は、サービスチェインでの処理に用いる転送経路を、関連ＩＤ＝ＩＤ１のコンテナ４０を経由する経路から、関連ＩＤ＝ＩＤ１の仮想マシン３０を経由する経路に切り替える。
【０１０９】
一方、ＶＭｎｅｗ＿２で識別される仮想マシン３０（関連ＩＤ＝ＩＤ２）が起動されたとする。この場合、経路変更部６１は、サービスチェインでの転送経路を、関連ＩＤ＝ＩＤ２のコンテナ４０の代わりにＶＭｎｅｗ＿２で識別される仮想マシン３０を用いる経路に置き換える。
【０１１０】
なお、関連ＩＤの値と起動の順序の間に関連はないため、任意の関連ＩＤの仮想マシン３０から起動する。例えば、図２４に示すＳＣ管理テーブル７２では、関連ＩＤ＝ＩＤ１の仮想マシン３０（ＶＭｎｅｗ）よりも、関連ＩＤ＝ＩＤ２の仮想マシン３０（ＶＭｎｅｗ＿２）の方が先に起動している。このため、端末１０Ａから端末１０Ｚに至る経路は、ＶＭＥで識別される仮想マシン３０、コンテナｎｅｗ、および、ＶＭｎｅｗ＿２で識別される仮想マシン３０を介している。
【０１１１】
このように、要素管理テーブル７１において、追加対象となる仮想マシン３０をその仮想マシン３０の処理を代行するコンテナ４０と対応付ける関連情報を記録することにより、複数の仮想マシン３０を追加する処理を容易に行うことができる。
【０１１２】
＜第５の実施形態＞
図２５は、第５の実施形態が適用されるネットワークの例を説明する図である。第５の実施形態では、経路の切り替え処理をサーバ１００が行う場合について説明する。このため、第５の実施形態で使用される管理サーバ９０には、起動判定部６４や転送要求部６５が含まれない。一方、ネットワーク中のサーバ１００には、経路変更部１０１、起動判定部１０２、転送要求部１０３が含まれる。以下、矢印Ａ８０に示す経路を用いたサービスチェインが設定されている場合において、ファイアウォールとして動作する仮想マシン３０ｃを追加する場合を例として、第５の実施形態で行われる処理の例を説明する。なお、矢印Ａ８０に示す経路が設定されている場合、管理サーバ９０は、要素管理テーブル７１＿３１とＳＣ管理テーブル７２＿３１を保持しているものとする。このため、端末１０Ａから端末１０Ｚに充てたパケットは、仮想マシン３０ａと仮想マシン３０ｂを介して端末１０Ｚに到達する。また、仮想マシン３０ａはＤＰＩとして動作し、仮想マシン３０ｂはＰｒｏｘｙとして動作する。
【０１１３】
図２６は、第５の実施形態で行われる処理の例を説明する図である。経路変更部６１は、仮想マシン３０ｃの追加が要求されたことを検出すると、仮想マシン３０ｃの起動のための処理を仮想マシン起動要求部６２に要求する（矢印Ａ８１）。仮想マシン起動要求部６２で行われる処理（矢印Ａ８２〜Ａ８４）は、図８を参照しながら説明した矢印Ａ３〜Ａ５の処理と同様である。さらに、経路変更部６１は、仮想マシン３０ｃの起動まで、仮想マシン３０ｃの処理を代行するコンテナ４０を起動するための処理をコンテナ起動要求部６３に要求する（矢印Ａ８５）。仮想マシン起動要求部６２で行われる処理（矢印Ａ８６〜Ａ８８）は、図８を参照しながら説明した矢印Ａ６〜Ａ８の処理と同様である。なお、図２６の例では、コンテナ４０と仮想マシン３０ｃのいずれもサーバ１００ｃで起動されるものとする。
【０１１４】
矢印Ａ８９において、経路変更部６１は、要素管理テーブル７１とＳＣ管理テーブル７２を参照して、コンテナ４０が起動した場合のサービスチェインで用いられる転送経路を計算する。図２６の例では、コンテナ４０が起動した場合のサービスチェインの転送経路は、端末１０Ａから、仮想マシン３０ａ（ＶＭ１）、コンテナ４０、仮想マシン３０ｂ（ＶＭ２）を介して、端末１０Ｚに至る経路である。さらに、経路変更部６１は、仮想マシン３０ｃが起動した場合のサービスチェインで用いられる転送経路を計算する。仮想マシン３０ｃが起動した場合のサービスチェインの転送経路は、端末１０Ａから、仮想マシン３０ａ（ＶＭ１）、仮想マシン３０ｃ（ＶＭｎｅｗ）、仮想マシン３０ｂ（ＶＭ２）を介して、端末１０Ｚに至る経路である。経路変更部６１は、仮想マシン３０ｃが起動した場合の経路の情報を、要素管理テーブル７１とＳＣ管理テーブル７２に記録する。このため、矢印Ａ８９の処理が終わると、管理サーバ９０は、要素管理テーブル７１＿３２と要素管理テーブル７１＿３２を保持することになる。
【０１１５】
矢印Ａ９０において、経路変更部６１は、コンテナ４０が起動したときの転送経路と仮想マシン３０ｃが起動したときの転送経路の各々を、サーバ１００ｃの経路変更部１０１に通知する。このとき、経路変更部６１は、各経路を用いる場合に転送先が変更される装置の情報も併せて通知している。例えば、図２６の場合、経路変更部６１は、以下の情報を、コンテナ４０が起動されるサーバ１００の経路変更部１０１に通知する。
コンテナ４０の起動処理
コンテナ４０の起動の判定条件
コンテナ４０が起動したときの経路：ＩＰＡ→ＩＰ１→ＩＰＣ→ＩＰ２→ＩＰＺ
転送先の設定を行う装置と設定：ＩＰ１（ＩＰＺ宛パケットの転送先：ＩＰＣ）
転送先の設定を行う装置と設定：ＩＰＣ（ＩＰＺ宛パケットの転送先：ＩＰ２）
仮想マシン３０ｃの起動処理
仮想マシン３０ｃの起動の判定条件
仮想マシン３０ｃが起動するサーバ１００のアドレス
コンテナ４０からの状態情報の引き継ぎ：有り
仮想マシン３０ｃが起動したときの経路：ＩＰＡ→ＩＰ１→ＩＰＶ→ＩＰ２→ＩＰＺ
転送先の設定を行う装置と設定：ＩＰ１（ＩＰＺ宛パケットの転送先：ＩＰＶ）
転送先の設定を行う装置と設定：ＩＰＶ（ＩＰＺ宛パケットの転送先：ＩＰ２）
【０１１６】
図２７は、コンテナ４０の起動が完了したかを判定するときに第５の実施形態で行われる処理の例を説明する図である。
【０１１７】
矢印Ａ１０１において、経路変更部１０１は、経路変更部６１から取得した情報のうち、コンテナ４０の起動判定条件と仮想マシン３０ｃの起動判定条件を、起動判定部１０２に通知する。
【０１１８】
矢印Ａ１０２において、起動判定部１０２は、経路変更部１０１から通知された条件のうち、コンテナ４０の起動判定条件を用いて、コンテナ４０が起動しているかを判定する。起動判定部１０２は、コンテナ４０の起動が確認できるまで、コンテナ４０の起動が完了しているかの判定を定期的に繰り返す。起動判定部１０２は、コンテナ４０が起動すると、コンテナ４０の起動の完了を経路変更部１０１に通知する。
【０１１９】
図２８は、コンテナ４０が起動したときに第５の実施形態で行われる処理の例を説明する図である。経路変更部１０１は、経路変更部６１から通知された情報を用いて、仮想マシン３０ａ（アドレス＝ＩＰ１）とコンテナ４０（アドレス＝ＩＰＣ）においての、端末１０Ｚ（ＩＰＺ）宛てのパケットの転送先を設定する（矢印Ａ１０３、Ａ１０４）。矢印Ａ１０４において、経路変更部１０１は、仮想マシン３０ａに対して、切り替えメッセージを送信している。これらの処理により、サービスチェインの転送経路は、矢印Ａ８０（図２７）から矢印Ａ１１１に切り替えられる。
【０１２０】
図２９は、仮想マシン３０ｃの起動が完了したかを判定するときに第５の実施形態で行われる処理の例を説明する図である。
【０１２１】
矢印Ａ１１２において、起動判定部１０２は、経路変更部１０１から通知された条件のうち、仮想マシン３０ｃの起動判定条件を用いて、仮想マシン３０ｃが起動しているかを判定する。起動判定部１０２は、仮想マシン３０ｃの起動が確認できるまで、仮想マシン３０ｃの起動が完了しているかの判定を定期的に繰り返す。起動判定部１０２は、仮想マシン３０ｃが起動すると、仮想マシン３０ｃの起動の完了を経路変更部１０１に通知する（矢印Ａ１１３）。
【０１２２】
図３０は、仮想マシン３０ｃが起動したときに第５の実施形態で行われる処理の例を説明する図である。仮想マシン３０ｃが起動したことが通知されると、仮想マシン３０ｃについて、コンテナ４０からの状態情報の引き継ぎが行われるかを判定する。図２６を参照しながら説明したように、経路変更部１０１には、仮想マシン３０ｃについて、「コンテナ４０からの状態情報の引き継ぎ＝有り」という情報が通知されている。そこで、経路変更部１０１は、仮想マシン３０ｃがコンテナ４０から状態情報を引き継ぐと判定し、転送要求部１０３に、仮想マシン３０ｃが起動したことを通知する（矢印Ａ１２１）。
【０１２３】
転送要求部１０３は、経路変更部１０１からの要求に応じて、コンテナ４０に対し、パケットの転送処理に際して生成した状態情報を仮想マシン３０ｃに送信することを要求する（矢印Ａ１２２）。また、仮想マシン３０ｃに対し、転送要求部１０３は、コンテナ４０から状態情報を受信し、受信した状態情報を、パケットの処理に使用することを要求する（矢印Ａ１２３）。コンテナ４０は、転送要求部１０３からの要求に応じて、状態情報を仮想マシン３０ｃに送信する（矢印Ａ１２４）。一方、仮想マシン３０ｃは、コンテナ４０から受信した状態情報を、以後の処理に使用する。つまり、矢印Ａ１２４の処理以降は、コンテナ４０が生成した状態情報が仮想マシン３０ｃに引き継がれるので、サービスチェインＳＣ１中のコンテナ４０を仮想マシン３０ｃに置き換えても、ファイアウォールの機能を継続的に提供できる。
【０１２４】
次に、経路変更部１０１は、経路変更部６１から通知された情報を用いて、仮想マシン３０ａ（アドレス＝ＩＰ１）と仮想マシン３０ｃ（アドレス＝ＩＰＶ）においての、端末１０Ｚ（ＩＰＺ）宛てのパケットの転送先を設定する（矢印Ａ１２５、Ａ１２６）。このため、サービスチェインの転送経路は、矢印Ａ１１１（図２８）から矢印Ａ１２７に切り替えられる。
【０１２５】
図２５〜図３０を参照しながら、コンテナ４０と仮想マシン３０が同じサーバ１００で起動される場合を例として説明したが、コンテナ４０と仮想マシン３０は異なるサーバ１００で起動されてもよい。コンテナ４０と仮想マシン３０が異なるサーバ１００で起動される場合でも、コンテナ４０を起動しているサーバ１００中の経路変更部１０１には、管理サーバ９０から仮想マシン３０が起動するサーバ１００のアドレスが通知されている。そこで、コンテナ４０を起動するサーバ１００中の経路変更部１０１は、仮想マシン３０を起動しているサーバ１００にアクセスすることにより、仮想マシン３０の起動が完了しているかを判定できる。
【０１２６】
図３１は、第５の実施形態で行われる処理の例を説明するフローチャートである。図３１は、コンテナ４０を起動するサーバ１００で行われる処理の例である。なお、図３１は、コンテナ４０と仮想マシン３０が異なるサーバ１００で起動される場合の例を示している。
【０１２７】
経路変更部１０１は、管理サーバ９０から経路変更の要求を受信する（ステップＳ５１）。起動判定部１０２は、コンテナ４０が起動したかを判定し、コンテナ４０が起動するまで待機する（ステップＳ５２でＮｏ）。コンテナ４０が起動すると、経路変更部１０１は、コンテナ４０の起動によりパケットの転送先を変更する装置に、新しい転送先を通知する（ステップＳ５３）。起動判定部１０２は、仮想マシン３０の起動を要求されたサーバ１００に対し、仮想マシン３０の起動が完了したかを問い合わせる（ステップＳ５４）。起動判定部１０２は、仮想マシン３０の起動が完了しているかを判定し、仮想マシン３０の起動が完了するまで待機する（ステップＳ５５でＮｏ）。経路変更部１０１は、仮想マシン３０の起動が完了すると、コンテナ４０に、状態情報を仮想マシン３０に通知することを要求する（ステップＳ５５でＹｅｓ、ステップＳ５６）。さらに、経路変更部１０１は、仮想マシン３０の起動に伴い、パケットの転送先を変更する装置に、新しい転送先を通知する（ステップＳ５７）。
【０１２８】
第５の実施形態で説明したように、経路の切り替え処理をサーバ１００が行うことにより、第１〜第４の実施形態に比べて、管理サーバ９０の処理負担が小さくなる。
【０１２９】
＜その他＞
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【０１３０】
以上の説明では、起動判定部６４が問合わせを行うことにより、コンテナ４０や仮想マシン３０の起動を確認する場合を例として説明したが、コンテナ４０や仮想マシン３０が起動したかを判定する方法は変更され得る。
【０１３１】
例えば、コンテナ４０を起動することが要求されたサーバ２０が、コンテナ４０の起動が完了したかを判定してもよい。このとき、サーバ２０は、コンテナ４０でのプロセスが実行されているかを判定し、プロセスが実行されている場合に、コンテナ４０が起動したと判定する。さらに、サーバ２０は、コンテナ４０の起動を確認すると、管理サーバ５０に起動完了メッセージを送信することにより、コンテナ４０の起動が完了したことを通知する。起動完了メッセージには、起動したコンテナ４０を一意に識別する情報が含まれている。起動判定部６４は、サーバ２０から起動完了メッセージを受信すると、起動完了メッセージで起動が通知されたコンテナ４０が起動していると判定して、コンテナ４０の起動を経路変更部６１に通知する。なお、仮想マシン３０が起動される場合も、同様に、仮想マシン３０を起動するサーバ２０は、仮想マシン３０の起動を確認すると、起動完了メッセージを管理サーバ５０に通知する。
【０１３２】
このように変形すると、管理サーバ５０からサーバ２０に送信されるメッセージの数が削減される。このため、管理サーバ５０で管理するサービスチェインの数が大きくなっても、管理サーバ５０がコンテナ４０や仮想マシン３０の起動を確認するために行う処理の負担が小さくなる。
【０１３３】
また、起動判定部６４は、管理サーバ５０が起動完了メッセージを受信すると、起動完了メッセージによって起動が通知されたコンテナ４０または仮想マシン３０が起動しているかを問合わせるように変形されても良い。この場合も、起動判定部６４は、起動の完了が通知されるまでは、問い合わせ処理を行わないので、管理サーバ５０にかかる処理負担が小さい。さらに、起動完了メッセージの受信を契機に起動判定部６４が仮想マシン３０やコンテナ４０の起動を確認するので、誤作動が発生しにくい。
【０１３４】
さらに、コンテナ４０と仮想マシン３０の各々について、起動の要求から起動の完了にかかる時間の長さの予測値を予め設定しても良い。起動判定部６４は、コンテナ４０の起動がコンテナ起動要求部６３から行われた時刻からの経過時間が、コンテナ４０の起動にかかる予測値に達すると、コンテナ４０が起動したと判定して、経路変更部６１に通知する。同様に、仮想マシン３０についても、仮想マシン起動要求部６２から仮想マシン３０の起動が要求された時刻からの経過時間が、仮想マシン３０の起動にかかる時間の予測値に達すると、仮想マシン３０が起動したと判定して、経路変更部６１に通知する。このように変更されると、管理サーバ５０は、コンテナ４０や仮想マシン３０が起動したかを判定するためにメッセージを送信しないので、処理負担が軽減される。
【０１３５】
以上の説明で述べたテーブルに含まれる情報要素は実装に応じて変更され得る。また、起動要求メッセージなどの制御メッセージに含まれる情報要素も変更され得る。例えば、起動要求メッセージには、サービスチェイン識別子（ＳＣ  ＩＤ）の代わりに、起動されるコンテナ４０や仮想マシン３０の識別子が含まれていても良い。例えば、図９のＰ１３の代わりに、データとして、以下の情報を含む起動要求メッセージがサーバ２０ｃに送信されても良い。
仮想マシン３０の起動要求
起動される仮想マシン３０の識別子      ：ＶＭｎｅｗ
起動される仮想マシン３０のＩＰアドレス：ＩＰＶ
起動される仮想マシン３０の種別        ：ＦＷ
また、図９に示す起動要求メッセージに、さらに、起動されるコンテナ４０や仮想マシン３０の識別子が追加されていても良い。
【０１３６】
さらに、書き換え要求メッセージは、仮想マシン３０やコンテナ４０が動作しているサーバ２０に対して送信されるように変形されても良い。この場合、書き換え要求メッセージには、図１１に示す情報要素に加えて、書き換え要求メッセージで通知する転送先の変更の設定先を表わす情報が含まれる。
【０１３７】
第２の実施形態で述べた処理は、仮想マシン３０の処理を代行するコンテナ４０が、生成した状態情報を仮想マシン３０に送信する方法の一例であり、コンテナ４０で生成された状態情報を仮想マシン３０が取得する方法は、実装に応じて変更され得る。例えば、管理サーバ５０は、コンテナ４０に対しては、状態情報を仮想マシン３０に転送することを要求するが、仮想マシン３０に対しては、特に状態情報をコンテナ４０から受信することを要求しなくても良い。この場合も、仮想マシン３０は、コンテナ４０から受信した情報を状態情報として使用する。
【０１３８】
また、管理サーバ５０が状態情報を中継しても良い。この場合、仮想マシン３０が起動すると、経路変更部６１は、経路を切り替える前に、転送要求部６５に対して、コンテナ４０で生成されている状態情報を、起動した仮想マシン３０（ＶＭｎｅｗ）に引き継ぐための処理を要求する。転送要求部６５は、コンテナ４０に対して、コンテナ４０での転送処理に使用されている状態情報を管理サーバ５０に転送することを要求する。このとき、転送要求部６５は、コンテナ４０に対して、管理サーバ５０に割り当てられているアドレスと、管理サーバ５０に送信する状態情報の種類を特定するための情報などを含む要求メッセージを送信する。コンテナ４０は、管理サーバ５０からの要求を受信すると、管理サーバ５０に対して、状態情報を送信する。状態情報は、管理サーバ５０の転送要求部６５によって管理される。
【０１３９】
次に、転送要求部６５は、状態情報をパケットの転送処理に使用することを要求する命令と状態情報を含む要求を、コンテナ４０で行われていた処理を引き継ぐ仮想マシン３０（ＶＭｎｅｗ）に対して送信する。ＶＭｎｅｗで識別される仮想マシン３０は、管理サーバ５０からの要求を受信すると、受信したデータを状態情報として記憶する。
【０１４０】
いずれの実施形態においても、コンテナ４０を含む経路から、コンテナ４０が処理を代行していた仮想マシン３０を含む経路への切り替えが終了すると、コンテナ４０は削除される。経路変更部６１によって経路の切り替えが行われる場合、経路変更部６１から、コンテナ４０を稼動させているサーバ２０に対して、コンテナ４０の削除が要求される。一方、サーバ１００中の経路変更部１０１が経路の切り替えを行っている場合、経路変更部１０１がコンテナ４０の終了を要求する。なお、コンテナ４０の削除は、コンテナ４０自身に要求されても良い。コンテナ４０の削除がサーバ２０に要求される場合、削除対象のコンテナ４０の特定の際に、コンテナ４０の識別子、サービスチェインＩＤ、関連ＩＤなどのうちの少なくとも１つが使用される。
【０１４１】
上述の第１〜第５の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
ネットワーク中の転送経路を管理する管理サーバであって、
前記転送経路に含まれる仮想マシンを起動させるための要求と、前記仮想マシンが起動するまでの間、前記仮想マシンが行う転送処理を代行するアプリケーションを起動させるための要求とを送信する送信部と、
前記アプリケーションの起動後に、前記転送経路中に前記アプリケーションを実行する実行装置を含めた第１の経路を設定し、前記仮想マシンの起動後に、前記第１の経路を、前記第１の経路中の前記実行装置を前記仮想マシンに置き換えた第２の経路に切り替えるための制御を行う制御部
を備えることを特徴とする管理サーバ。
（付記２）
前記制御部は、
前記実行装置に、前記実行装置が前記仮想マシンで行われる処理を代行する際に生成した情報を前記仮想マシンに送信することを要求し、
前記仮想マシンに、前記実行装置から前記情報を受信することを要求し、
前記仮想マシンが前記情報を受信すると、前記第１の経路を前記第２の経路に切り替える
ことを特徴とする付記１に記載の管理サーバ。
（付記３）
前記転送経路で処理を行っている装置を、前記仮想マシンに置換する場合、前記制御部は、
前記仮想マシンで置換される対象の装置である対象装置に、前記対象装置が転送処理に使用している第１の通信情報を、前記実行装置へ転送することを要求し、
前記実行装置に、前記対象装置から前記第１の通信情報を取得することを要求し、
前記仮想マシンが起動すると、前記実行装置が前記第１の通信情報を用いた処理により生成した第２の通信情報の前記仮想マシンへの送信を、前記実行装置に要求し、
前記仮想マシンが前記第２の通信情報を受信すると、前記第１の経路を前記第２の経路に切り替える
ことを特徴とする付記１または２に記載の管理サーバ。
（付記４）
前記送信部は、前記転送経路に複数の仮想マシンが含められる場合、前記複数の仮想マシンの各々を起動させるための要求と、前記複数の仮想マシンの各々で行われる処理を代行する複数のアプリケーションを起動させるための要求を送信し、
前記制御部は、
前記転送経路に、前記複数のアプリケーションのいずれかを実行する装置を含めた経路を設定し、
前記転送経路中で、前記複数の仮想マシンのうちで起動が確認できた仮想マシンの処理を代行しているアプリケーションが動作している装置を、前記起動が確認できた仮想マシンで置換する
ことを特徴とする付記１〜３のいずれか１項に記載の管理サーバ。
（付記５）
ネットワーク中の転送経路を管理する管理サーバと、
前記ネットワーク中で通信処理を行う通信サーバ
を備え、
前記管理サーバは、前記転送経路に含める仮想マシンの起動の要求と、前記仮想マシンが起動するまでの間、前記仮想マシンが行う転送処理を代行するアプリケーションの起動の要求とを、前記転送経路の情報とともに送信し、
前記通信サーバは、
前記アプリケーションの起動後に、前記転送経路中に前記通信サーバを含めた第１の経路を設定し、
前記仮想マシンの起動後に、前記第１の経路を、前記第１の経路中の前記通信サーバを前記仮想マシンに置き換えた第２の経路に切り替える
ことを特徴とする通信システム。
（付記６）
前記ネットワーク中で動作する他の通信サーバをさらに備え、
前記管理サーバは、
前記通信サーバに前記アプリケーションの起動の要求と、前記転送経路の情報を送信し、
前記他の通信サーバに、前記転送経路に含める仮想マシンの起動の要求を送信し、
前記通信サーバは、前記他の通信サーバでの前記仮想マシンの起動を確認すると、前記第１の経路を、前記第２の経路に切り替える
ことを特徴とする付記５に記載の通信システム。
（付記７）
ネットワーク中の転送経路を管理する管理サーバが、
前記転送経路に含まれる仮想マシンを起動させるための要求と、前記仮想マシンが起動するまでの間、前記仮想マシンが行う転送処理を代行するアプリケーションを起動させるための要求とを送信し、
前記アプリケーションの起動後に、前記転送経路中に前記アプリケーションを実行する実行装置を含めた第１の経路を設定し、
前記仮想マシンの起動後に、前記第１の経路を、前記第１の経路中の前記実行装置を前記仮想マシンに置き換えた第２の経路に切り替える
処理を行うことを特徴とする経路管理方法。
（付記８）
前記実行装置に、前記実行装置が前記仮想マシンで行われる処理を代行する際に生成した情報を前記仮想マシンに送信することを要求し、
前記仮想マシンに、前記実行装置から前記情報を受信することを要求し、
前記仮想マシンが前記情報を受信すると、前記第１の経路を前記第２の経路に切り替える
処理を、前記管理サーバが実行することを特徴とする付記７に記載の経路管理方法。
（付記９）
前記転送経路で処理を行っている装置を、前記仮想マシンに置換する場合、
前記仮想マシンで置換される対象の装置である対象装置に、前記対象装置が転送処理に使用している第１の通信情報を、前記実行装置へ転送することを要求し、
前記実行装置に、前記対象装置から前記第１の通信情報を取得することを要求し、
前記仮想マシンが起動すると、前記実行装置が前記第１の通信情報を用いた処理により生成した第２の通信情報の前記仮想マシンへの送信を、前記実行装置に要求し、
前記仮想マシンが前記第２の通信情報を受信すると、前記第１の経路を前記第２の経路に切り替える
処理を、前記管理サーバが実行することを特徴とする付記７または８に記載の経路管理方法。
（付記１０）
前記転送経路に複数の仮想マシンが含められる場合、前記複数の仮想マシンの各々を起動させるための要求と、前記複数の仮想マシンの各々で行われる処理を代行する複数のアプリケーションを起動させるための要求を送信し、
前記転送経路に、前記複数のアプリケーションのいずれかを実行する装置を含めた経路を設定し、
前記転送経路中で、前記複数の仮想マシンのうちで起動が確認できた仮想マシンの処理を代行しているアプリケーションが動作している装置を、前記起動が確認できた仮想マシンで置換する
処理を、前記管理サーバが実行することを特徴とする付記７〜９のいずれか１項に記載の経路管理方法。
【符号の説明】
【０１４２】
１０  端末
２０、１００  サーバ
２１  物理ハードウェア
２２、３２  ＯＳ
２３  プログラム
２４  変換情報テーブル
３０  仮想マシン
３１  仮想ハードウェア
３３、４１  アプリケーション
４０  コンテナ
４２  ＩＤテーブル
５０、９０  管理サーバ
５１  送受信部
５２  送信部
５３  受信部
５４  取得部
６０、９１  制御部
６１、１０１  経路変更部
６２  仮想マシン起動要求部
６３  コンテナ起動要求部
６４、１０２  起動判定部
６５、１０３  転送要求部
７０  記憶部
７１  要素管理テーブル
７２  ＳＣ管理テーブル
７３  ＩＰアドレステーブル
８１  プロセッサ
８２  メモリ
８３  入力装置
８４  出力装置
８５  バス
８６  ネットワークインタフェース
【図２】
2016134700.tif 000003
【図３】
2016134700.tif 000004
【図４】
2016134700.tif 000005
【図５】
2016134700.tif 000006
【図６】
2016134700.tif 000007
【図７】
2016134700.tif 000008
【図８】
2016134700.tif 000009
【図９】
2016134700.tif 000010
【図１０】
2016134700.tif 000011
【図１１】
2016134700.tif 000012
【図１２】
2016134700.tif 000013
【図１３】
2016134700.tif 000014
【図１４Ａ】
2016134700.tif 000015
【図１４Ｂ】
2016134700.tif 000016
【図１５】
2016134700.tif 000017
【図１６】
2016134700.tif 000018
【図１７】
2016134700.tif 000019
【図１８】
2016134700.tif 000020
【図１９】
2016134700.tif 000021
【図２０】
2016134700.tif 000022
【図２１】
2016134700.tif 000023
【図２２】
2016134700.tif 000024
【図２３】
2016134700.tif 000025
【図２４】
2016134700.tif 000026
【図２５】
2016134700.tif 000027
【図２６】
2016134700.tif 000028
【図２７】
2016134700.tif 000029
【図２８】
2016134700.tif 000030
【図２９】
2016134700.tif 000031
【図３０】
2016134700.tif 000032
【図３１】
2016134700.tif 000033
【図１】
2016134700.tif 000034