(57)【要約】【課題】保証要求に応じて、ネットワーク内の計算リソースの効率的な活用を図ること。【解決手段】プロセッサは、複数の転送装置にロードする対象のプログラムであるロード対象プログラムの動作保証に関する保証要求を受け付ける受付処理と、管理情報に基づいて経路を構成する転送装置群を複数の転送装置から選択する選択処理と、受付処理によって受け付けられた保証要求に応じて、選択処理によって選択された転送装置に構築される第１の仮想マシンおよび第２の仮想マシンのうち、いずれか一方の仮想マシンをロード対象プログラムのロード先に決定する決定処理と、決定処理によって決定されたロード先の仮想マシンにロード対象プログラムに関する情報を送信する送信処理と、を実行し、複数の転送装置のうちロード先の仮想マシンを構築する転送装置は、ロード対象プログラムに関する情報を受信すると、ロード先の仮想マシン上でロード対象プログラムを実行する。【選択図】図１
2016144133.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク内においてデータを転送する複数の転送装置を制御する制御装置であって、
前記複数の転送装置の各々には、プログラムの動作保証を遵守するように前記プログラムを実行する第１の仮想マシンと、前記プログラムの実行に際し前記プログラムの動作保証を遵守しなくてもよい第２の仮想マシンと、が構築され、
前記制御装置は、プロセッサと、前記ネットワーク内に設定された経路を示す経路管理情報を記憶する記憶デバイスと、を有し、
前記プロセッサは、
前記複数の転送装置にロードする対象のプログラムであるロード対象プログラムの動作保証に関する保証要求を受け付ける受付処理と、
前記経路管理情報に基づいて前記経路を構成する転送装置群を前記複数の転送装置から選択する選択処理と、
前記受付処理によって受け付けられた前記保証要求に応じて、前記選択処理によって選択された転送装置に構築される前記第１の仮想マシンおよび前記第２の仮想マシンのうち、いずれか一方の仮想マシンを前記ロード対象プログラムのロード先に決定する決定処理と、
を実行することを特徴とする制御装置。
【請求項２】
前記記憶デバイスは
プログラムごとの想定計算リソースをさらに記憶し、
前記保証要求は、
前記ロード対象プログラムの動作保証を遵守する第１の保証内容と、前記ロード対象プログラムの動作保証を遵守しなくてもよい第２の保証内容のいずれかの保証内容を含み、
前記プロセッサは、
前記選択処理によって選択された転送装置について、前記いずれか一方の仮想マシンにおける現在の計算リソースを取得する取得処理と、
前記記憶デバイスに記憶されている前記ロード対象プログラムの想定計算リソースと、前記取得処理によって取得された前記現在の計算リソースと、に基づいて、前記ロード対象プログラムが前記選択された転送装置に構築されている前記いずれか一方の仮想マシンにロードされた場合におけるロード後想定計算リソースを算出する算出処理と、
をさらに実行し、
前記決定処理では、前記プロセッサは、前記算出処理によって算出された前記ロード後想定計算リソースに基づいて、前記ロード先の仮想マシンを決定することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記取得処理では、前記プロセッサは、前記いずれかの保証内容が前記第１の保証内容である場合、前記選択された転送装置における前記第１の仮想マシンの現在の計算リソースを取得し、前記いずれかの保証内容が前記第２の保証内容である場合、前記選択された転送装置における前記第２の仮想マシンの現在の計算リソースを取得することを特徴とする請求項２に記載の制御装置。
【請求項４】
前記決定処理では、前記プロセッサは、前記選択された転送装置の前記いずれか一方の仮想マシンにおいて、前記ロード後想定計算リソースが前記ロード対象プログラムの動作保証を遵守できる計算リソースであるかを判断し、前記ロード後想定計算リソースが前記ロード対象プログラムの動作保証を遵守できる計算リソースである場合、前記選択された転送装置の前記いずれか一方の仮想マシンを前記ロード対象プログラムのロード先に決定することを特徴とする請求項２に記載の制御装置。
【請求項５】
前記決定処理では、前記プロセッサは、前記ロード後想定計算リソースが前記ロード対象プログラムの動作保証を遵守できる前記選択された転送装置の前記いずれか一方の仮想マシンが、前記転送装置群に複数存在する場合、前記複数存在する前記仮想マシンのうち前記ロード後想定計算リソースが最低または所定のしきい値以下となる前記選択された転送装置の前記いずれか一方の仮想マシンを、前記ロード対象プログラムのロード先に決定することを特徴とする請求項４に記載の制御装置。
【請求項６】
前記決定処理では、前記プロセッサは、前記ロード後想定計算リソースが前記ロード対象プログラムの動作保証を遵守できる前記選択された転送装置の前記いずれか一方の仮想マシンが、前記転送装置群に存在しない場合、前記いずれかの保証内容に応じて、前記ロード対象プログラムのロード先を決定することを特徴とする請求項４に記載の制御装置。
【請求項７】
前記決定処理では、前記プロセッサは、前記いずれかの保証内容が前記第１の保証内容である場合、前記ロード対象プログラムのロード先の決定不可通知を出力することを特徴とする請求項６に記載の制御装置。
【請求項８】
前記記憶デバイスは、前記プログラムごとに、負荷が一定であるか変動であるかを示す負荷種別を規定した負荷種別情報を記憶しており、
前記決定処理では、前記プロセッサは、前記いずれかの保証内容が前記第２の保証内容である場合、前記選択された転送装置ごとに、前記第２の仮想マシンで実行中のプログラム群のうち前記負荷種別が変動であるプログラムの割合を算出し、算出した前記選択された転送装置ごとの当該割合が最大または所定割合以上である前記選択された転送装置の前記いずれか一方の仮想マシンを、前記ロード対象プログラムのロード先に決定することを特徴とする請求項５に記載の制御装置。
【請求項９】
前記保証要求は、
前記第１の保証内容を充足しなければ前記第２の保証内容が適用される第３の保証内容をさらに含み、
前記決定処理では、前記プロセッサは、前記いずれかの保証内容が前記第３の保証内容である場合、前記いずれかの保証内容を前記第３の保証内容から前記第２の保証内容に変更し、
前記プロセッサは、前記変更された第２の保証内容により、前記取得処理、前記算出処理、および、前記決定処理を再実行することを特徴とする請求項６に記載の制御装置。
【請求項１０】
前記プロセッサは、前記決定処理によって決定されたロード先の仮想マシンに前記ロード対象プログラムに関する情報を送信する送信処理を実行することを特徴とする請求項１に記載の制御装置。
【請求項１１】
前記プロセッサは、前記ロード先の計算リソースが所定のしきい値以上となった場合に、前記取得処理、前記算出処理、および、前記決定処理を再実行することを特徴とする請求項２に記載の制御装置。
【請求項１２】
ネットワーク内においてデータを転送する複数の転送装置を制御する制御装置のプロセッサに実行させる制御プログラムであって、
前記複数の転送装置の各々には、プログラムの動作保証を遵守するように前記プログラムを実行する第１の仮想マシンと、前記プログラムの実行に際し前記プログラムの動作保証を遵守しなくてもよい第２の仮想マシンと、が構築され、
前記制御装置は、前記プロセッサと、前記ネットワーク内に設定された経路を示す経路管理情報を記憶する記憶デバイスと、を有し、
前記制御プログラムは、
前記プロセッサに、
前記複数の転送装置にロードする対象のプログラムであるロード対象プログラムの動作保証に関する保証要求を受け付ける受付処理と、
前記経路管理情報に基づいて前記経路を構成する転送装置群を前記複数の転送装置から選択する選択処理と、
前記受付処理によって受け付けられた前記保証要求に応じて、前記選択処理によって選択された転送装置に構築される前記第１の仮想マシンおよび前記第２の仮想マシンのうち、いずれか一方の仮想マシンを前記ロード対象プログラムのロード先に決定する決定処理と、
を実行させることを特徴とする制御プログラム。
【請求項１３】
前記記憶デバイスは
プログラムごとの想定計算リソースをさらに記憶し、
前記保証要求は、
前記ロード対象プログラムの動作保証を遵守する第１の保証内容と、前記ロード対象プログラムの動作保証を遵守しなくてもよい第２の保証内容のいずれかの保証内容を含み、
前記制御プログラムは、
前記プロセッサに、
前記選択処理によって選択された転送装置について、前記いずれか一方の仮想マシンにおける現在の計算リソースを取得する取得処理と、
前記記憶デバイスに記憶されている前記ロード対象プログラムの想定計算リソースと、前記取得処理によって取得された前記現在の計算リソースと、に基づいて、前記ロード対象プログラムが前記選択された転送装置に構築されている前記いずれか一方の仮想マシンにロードされた場合におけるロード後想定計算リソースを算出する算出処理と、
前記決定処理によって決定されたロード先の仮想マシンに前記ロード対象プログラムに関する情報を送信する送信処理と、
をさらに実行させ、
前記決定処理では、前記制御プログラムは、前記プロセッサに、前記算出処理によって算出された前記ロード後想定計算リソースに基づいて、前記ロード先の仮想マシンを決定させることを特徴とする請求項１２に記載の制御プログラム。
【請求項１４】
ネットワーク内においてデータを転送する複数の転送装置と、前記複数の転送装置を制御する制御装置と、を有する通信システムであって、
前記複数の転送装置の各々には、プログラムの動作保証を遵守するように前記プログラムを実行する第１の仮想マシンと、前記プログラムの実行に際し前記プログラムの動作保証を遵守しなくてもよい第２の仮想マシンと、が構築され、
前記制御装置は、プロセッサと、前記ネットワーク内に設定された経路を示す経路管理情報を記憶する記憶デバイスと、を有し、
前記プロセッサは、
前記複数の転送装置にロードする対象のプログラムであるロード対象プログラムの動作保証に関する保証要求を受け付ける受付処理と、
前記管理情報に基づいて前記経路を構成する転送装置群を前記複数の転送装置から選択する選択処理と、
前記受付処理によって受け付けられた前記保証要求に応じて、前記選択処理によって選択された転送装置に構築される前記第１の仮想マシンおよび前記第２の仮想マシンのうち、いずれか一方の仮想マシンを前記ロード対象プログラムのロード先に決定する決定処理と、
前記決定処理によって決定されたロード先の仮想マシンに前記ロード対象プログラムに関する情報を送信する送信処理と、
を実行し、
前記複数の転送装置のうち前記ロード先の仮想マシンを構築する転送装置は、
前記ロード対象プログラムに関する情報を受信すると、前記ロード先の仮想マシン上で前記ロード対象プログラムを実行することを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク内においてデータを転送する複数の転送装置を制御する制御装置、制御プログラム、および、通信システムに関する。
【背景技術】
【０００２】
近年、ＮＦＶ（Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎｓ  Ｖｉｒｔｕａｌｉｓａｔｉｏｎ）技術が注目されている。ＮＦＶは、汎用サーバ上で実現するパケット転送やファイアウォール等のネットワーク機能を、ネットワークを構成するノード上のソフトウェアで実現する技術である。ＮＦＶでは、ネットワーク機能の動的な追加、削除、および変更が可能となり、ネットワーク構成の変更が容易になり、また、ネットワーク内の物理的なリソースを有効に活用することが可能となる。
【０００３】
ＮＦＶ環境では、ノード上で実行する各機能に対する動作保証要件を満たし、かつ、各ノードの計算リソースをネットワーク全体として効率的に利用するよう各ノードに機能を配備する必要がある。現状では、ネットワーク保守者が、各ノードの計算リソースを管理し、残計算リソースによりソフトウェアのロード対象ノードを決定する。
【０００４】
また、ネットワークを管理するコントローラが、ネットワークを構成する各ノードに負荷を分散する例が、特許文献１に記載されている。特許文献１には、「仮想ノードの作成に際し、物理ノードのリソースと仮想ノードの要求位置の物理ノード位置との差異に対する重み係数を用いて、ネットワークリソースを有効活用出来る仮想ネットワークを提供する」と記載される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１９９６４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載された技術では、各ノードが要求される保証品質や優先度等の実行要件を満たす各ノード内の計算リソース配分を保証しない。したがって、特許文献１に記載された技術では、ＮＦＶ環境において、ノード上で実行する各機能に対する動作保証要件を満たし、かつ、各ノードの計算リソースをネットワーク全体として効率的に利用するよう各ノードに機能を配備することができないという問題がある。
【０００７】
本発明は、保証要求に応じて、ネットワーク内の計算リソースの効率的な活用を図ることを目的とする。
【課題を解決するための手段】
【０００８】
本願において開示される発明の一側面となる通信システムは、ネットワーク内においてデータを転送する複数の転送装置と、前記複数の転送装置を制御する制御装置と、を有する通信システムであって、前記複数の転送装置の各々には、プログラムの動作保証を遵守するように前記プログラムを実行する第１の仮想マシンと、前記プログラムの実行に際し前記プログラムの動作保証を遵守しなくてもよい第２の仮想マシンと、が構築され、前記制御装置は、プロセッサと、前記ネットワーク内に設定された経路を示す経路管理情報を記憶する記憶デバイスと、を有し、前記プロセッサは、前記複数の転送装置にロードする対象のプログラムであるロード対象プログラムの動作保証に関する保証要求を受け付ける受付処理と、前記管理情報に基づいて前記経路を構成する転送装置群を前記複数の転送装置から選択する選択処理と、前記受付処理によって受け付けられた前記保証要求に応じて、前記選択処理によって選択された転送装置に構築される前記第１の仮想マシンおよび前記第２の仮想マシンのうち、いずれか一方の仮想マシンを前記ロード対象プログラムのロード先に決定する決定処理と、前記決定処理によって決定されたロード先の仮想マシンに前記ロード対象プログラムに関する情報を送信する送信処理と、を実行し、前記複数の転送装置のうち前記ロード先の仮想マシンを構築する転送装置は、前記ロード対象プログラムに関する情報を受信すると、前記ロード先の仮想マシン上で前記ロード対象プログラムを実行することを特徴とする。
【発明の効果】
【０００９】
本発明の代表的な実施の形態によれば、保証要求に応じて、ネットワーク内の計算リソースの効率的な活用を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１０】
【図１】本実施例にかかる通信システムの構成例を示す説明図である。
【図２】サービスコントローラの内部構成例を示すブロック図である。
【図３】図１に示したソフト機能テーブルの記憶内容例を示す説明図である。
【図４】図１に示した計算リソース管理テーブルの記憶内容例を示す説明図である。
【図５】候補ノードテーブルの記憶内容例を示す説明図である。
【図６】ノードの内部構成例を示すブロック図である。
【図７】計算リソーステーブルの記憶内容例を示す説明図である。
【図８】通信システムのシーケンス例を示す説明図である。
【図９】図８に示したロード対象ノード／ＶＭ選択処理（ステップＳ８０６）の詳細な処理手順例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
本実施例では、制御対象となるネットワーク内の各ノードに仮想化技術を適用して複数の仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ、「ＶＭ」）を構築することにより、各ノード内の計算リソース（たとえば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ））がＶＭ単位で分割される。各ノードを管理するサービスコントローラは、ネットワーク内に適用するソフトウェアを各ノードにロードするのに先立って、当該ソフトウェアに対する動作の保証要求と、ネットワーク内の各ノードの計算リソースと、により、ロード先のノードおよびノード内のＶＭを決定する。
【００１２】
これにより、ソフトウェアに対する動作の保証要求に応じたソフトウェアの計算リソース（たとえば、ＣＰＵ使用率）を確保して、ネットワーク内の計算リソースを効率的に活用することができる。また、ＶＭ単位でソフトウェアをノードで実行させるため、ＶＭごとに計算リソースを取得することができる。したがって、ソフトウェアの計算リソースを容易に特定することができる。さらに、これらの処理が自動化されることで、ネットワークの保守者の負担軽減を図ることができる。
【００１３】
＜通信システムの構成例＞
図１は、本実施例にかかる通信システムの構成例を示す説明図である。まず、通信システム１００内の接続関係について説明する。通信システム１００は、制御対象となるパケットトランスポートネットワーク１０１上のノード群Ｎｓと、サービスコントローラ１０３と、を含む。通信システム１００では、たとえば、トラフィックモニタやファイアウォール等のパケットトランスポートネットワーク１０１に付加価値を与える機能を、サービスコントローラ１０３がノード群Ｎｓにソフトウェアとして提供する。
【００１４】
ノード群Ｎｓは、エッジノードＥＮ１，ＥＮ２と、中継ノードＲＮ１〜ＲＮ５と、を含む。エッジノードＥＮ１，ＥＮ２はそれぞれ、パケットトランスポートネットワーク１０１の端点に配置される転送装置である。図１では、エッジノードＥＮ１がネットワーク１１１と接続され、エッジノードＥＮ２がネットワーク１１２に接続される。なお、以下の説明で、いずれのエッジノードＥＮ１，ＥＮ２でもよい場合は、「エッジノードＥＮ」と表記する。
【００１５】
中継ノードＲＮ１〜ＲＮ５はそれぞれ、パケットトランスポートネットワーク１０１の中継ポイントに配置される転送装置である。なお、以下の説明で、いずれの中継ノードＲＮ１〜ＲＮ５でもよい場合は、「中継ノードＲＮ」と表記する。また、以下の説明で、エッジノードＥＮおよび中継ノードＲＮのいずれでもよい場合は、「ノードＮ」と表記する。なお、ノードＮの数は、図１で示した数に限定されない。
【００１６】
ノードＮは、仮想マシン（ＶＭ）を構築する。ＶＭは、サービスコントローラ１０３からロードされてくるプログラムＰを実行する環境である。具体的には、たとえば、２種類のＶＭが構築される。１つは、プログラムの動作保証を遵守するようにプログラムを実行するＶＭである。このＶＭは、後述する動作保証プログラム用ＶＭに相当する。もう１つは、プログラムの実行に際しプログラムの動作保証を遵守しなくてもよいＶＭである。このＶＭは、後述するベストエフォートプログラム用ＶＭに相当する。ノードＮは、たとえば、データを転送する転送装置であるが、Ｌ２スイッチやルータでもよい。
【００１７】
保守者／他管理システム１０２は、パケットトランスポートネットワーク１０１を管理する保守者またはサービスコントローラ１０３に接続される上位の管理システムを指す。保守者／他管理システム１０２は、サービスコントローラ１０３に指示を与える。
【００１８】
サービスコントローラ１０３は、各ノードＮと接続し、保守者／他管理システム１０２からの指示にしたがって、ノードＮに各種サービスを提供する制御装置である。たとえば、保守者／他管理システム１０２からの指示が、経路設定要求ｒ１である場合、サービスコントローラ１０３は、当該経路設定要求ｒ１に従い、経路設定情報ＲＴＩを生成し、パケットトランスポートネットワーク１０１内に経路を設定する。経路設定要求ｒ１には、始点となるエッジノードＥＮを特定する情報、終点となるエッジノードＥＮを特定する情報、使用するポート番号、必要な通信帯域（ｂｐｓ）などが含まれる。図１では、例として、太線で示した選択経路ＲＴが設定される。なお、経路設定情報ＲＴＩの生成方法は、公知の方法を用いればよい。
【００１９】
また、保守者／他管理システム１０２からの指示が、サービス提供要求ｒ２である場合、サービスコントローラ１０３は、当該サービス提供要求ｒ２に従い、プログラムＰをロードするノードＮを決定する。サービス提供要求ｒ２には、ノードＮが提供するサービスのプログラムであり、ノードＮにロードさせることを要求するプログラムＰ（以下、要求プログラム）を識別する情報（要求プログラムの識別情報）、要求プログラムの動作保証内容を指定する情報（保証要求）などが含まれる。
【００２０】
つぎに、サービスコントローラ１０３およびノードＮが保持する情報について説明する。サービスコントローラ１０３は、ソフト機能テーブルＴ１、計算リソース管理テーブルＴ２、通信リソース管理テーブルＴ３、および候補ノードテーブルＴ５を有する。ソフト機能テーブルＴ１は、ソフトウェアの機能を規定する情報である。ここでいうソフトウェアとは、サービスコントローラ１０３がノードＮにロードするプログラムＰである。ソフト機能テーブルＴ１は、あらかじめ用意される情報である。ソフト機能テーブルＴ１の詳細については図３で説明する。
【００２１】
計算リソース管理テーブルＴ２は、ノードＮの計算リソースを管理するテーブルである。ノードＮの計算リソースは、たとえば、ＣＰＵ使用率やメモリ使用率である。本例では、ＣＰＵ使用率を例に挙げて説明する。サービスコントローラ１０３からロードされてきたプログラムがノードＮで実行されると、ＣＰＵ使用率が上昇する。計算リソースは、たとえば、ノードＮ上に構築されるＶＭごとに管理される。計算リソース管理テーブルＴ２の詳細については図４で説明する。
【００２２】
通信リソース管理テーブルＴ３は、ノードＮの通信リソースを管理するテーブルである。ノードＮの通信リソースは、たとえば、ノードＮの通信帯域（Ｇｂｐｓ）やポートの使用状況などである。サービスコントローラ１０３は、保守者／他管理システム１０２からの経路設定要求ｒ１（経路の両端となるエッジノードＥＮを指定）に従い、通信リソース管理テーブルＴ３を参照して、パケットトランスポートネットワーク１０１内に設定する経路を示す経路設定情報ＲＴＩを生成することができる。ここで、パケットトランスポートネットワーク１０１内に設定する経路とは、最短経路であってもよいし、中継ノードＲＮの通信リソースが均一となるように負荷分散した経路であってもよい。サービスコントローラ１０３がどのような経路を設定するかのポリシーを予め保持していてもよい。
【００２３】
候補ノードテーブルＴ５は、プログラムＰのロード先のノードの候補を管理するテーブルである。プログラムＰのロード先のノードは、パケットトランスポートネットワーク１０１内に設定される経路上のノードである。サービスコントローラ１０３は、保守者／他管理システム１０２からのサービス提供要求ｒ２（ノードが実行するサービス（プログラムＰ）を指定）に従い、候補ノードテーブルＴ５を参照して、プログラムＰのロード先のノードを決定する。候補ノードテーブルＴ５の詳細については図５で説明する。
【００２４】
ノードＮは、計算リソーステーブルＴ４を有する。計算リソーステーブルＴ４は、ノードＮの計算リソース（本例では、ＣＰＵ使用率）を記録するテーブルである。計算リソースは、たとえば、ＶＭごとに管理される。ノードＮの計算リソースは、ノードＮからサービスコントローラ１０３に送られ、計算リソース管理テーブルＴ２の更新に利用される。計算リソーステーブルＴ４の詳細については図７で説明する。
【００２５】
つぎに、通信システム１００の動作について説明する。サービスコントローラ１０３は、保守者／他管理システム１０２からの経路設定要求ｒ１に従い、通信リソース管理テーブルＴ３を参照して、経路設定情報ＲＴＩを生成する。サービスコントローラ１０３は、経路設定情報ＲＴＩにより規定される選択経路ＲＴ上のノードＮ（たとえば、エッジノードＥＮ１，ＥＮ２，中継ノードＲＮ１〜ＲＮ３）に経路設定情報ＲＴＩを送信する。経路設定情報ＲＴＩを受信したノードＮは、経路設定情報ＲＴＩに従って、ルーティングを実行する。これにより、選択経路ＲＴが設定される。また、サービスコントローラ１０３は、生成した経路設定情報ＲＴＩを識別する情報と経路設定情報ＲＴＩに規定される選択経路ＲＴ上のノードＮを特定する情報とを対応付けて経路管理テーブル（不図示）に格納する。つまり、経路管理テーブルは、複数の経路設定情報ＲＴＩと経路設定情報ＲＴＩそれぞれのノードＮとを対応付けて記録するテーブルである。
【００２６】
つぎに、サービスコントローラ１０３は、保守者／他管理システム１０２からのサービス提供要求ｒ２に従い、候補ノードテーブルＴ５を参照してプログラムＰを実行した場合の選択経路ＲＴ上のノードＮのＶＭの計算リソースを確認する。そして、サービスコントローラ１０３は、プログラムＰを実行しても計算リソースに余裕のある選択経路ＲＴ上のノードＮのＶＭに、プログラムＰをロードする。プログラムＰがロードされたノードは、指定されたＶＭ上で当該プログラムＰを実行する。これにより、動作保証を要求されたプログラムＰの計算リソースを確保することができるとともに、パケットトランスポートネットワーク１０１内の計算リソースを効率的に活用することができる。また、これらの処理が自動化されることで、パケットトランスポートネットワーク１０１の保守者の負担軽減を図ることができる。
【００２７】
＜サービスコントローラ１０３の内部構成例＞
図２は、サービスコントローラ１０３の内部構成例を示すブロック図である。サービスコントローラ１０３は、ソフト機能テーブルＴ１と、計算リソース管理テーブルＴ２と、通信リソース管理テーブルＴ３と、保守者／他管理システムＩＦ５０１と、経路生成部５０２と、ノードリソース監視部５０３と、ソフトウェア管理部５０４と、ソフトウェアロード部５０５と、ノードＩＦ５０６と、を有する。
【００２８】
ソフト機能テーブルＴ１、計算リソース管理テーブルＴ２、および、通信リソース管理テーブルＴ３は、具体的には、たとえば、メモリやハードディスクなどの記憶デバイス（不図示）により実現される。保守者／他管理システムＩＦ５０１およびノードＩＦ５０６は、具体的には、たとえば、ポートを含むインタフェース回路（不図示）により実現される。経路生成部５０２、ノードリソース監視部５０３、ソフトウェア管理部５０４、および、ソフトウェアロード部５０５は、具体的には、たとえば、記憶デバイスに記憶されたプログラムをプロセッサ（不図示）に実行させることにより実現される。
【００２９】
保守者／他管理システムＩＦ５０１は、保守者／他管理システム１０２からの経路設定要求ｒ１やサービス提供要求ｒ２を受け付ける。保守者／他管理システムＩＦ５０１は、受け付けた要求の種別を識別して、経路設定要求ｒ１を経路生成部５０２に送り、サービス提供要求ｒ２をソフトウェア管理部５０４に送る。
【００３０】
経路生成部５０２は、経路設定要求ｒ１に従い、通信リソース管理テーブルＴ３を参照して経路設定情報ＲＴＩを生成し、経路管理テーブルを生成する。経路生成部５０２は、生成した経路設定情報ＲＴＩを、ノードＩＦ５０６を介して、経路設定情報ＲＴＩで特定される選択経路ＲＴに含まれるノードＮに送信する。
【００３１】
ノードリソース監視部５０３は、ノードＮの計算リソースを監視する。具体的には、たとえば、ノードリソース監視部５０３は、所定のタイミングでノードＮに計算リソースの取得要求を送信する。当該取得要求を受けたノードＮは、計算リソーステーブルＴ４を参照して、ＶＭ種別４０１ごとに、実行プログラム４０２ごとのＣＰＵ使用率をＣＰＵ使用率４０３から読み出して、ノードリソース監視部５０３に送る。ノードリソース監視部５０３は、ノードＮからの計算リソース情報ＲＳＩであるＣＰＵ使用率をノードＩＦ５０６を介して受信し、受信したＣＰＵ使用率をソフトウェア管理部５０４に送る。
【００３２】
ソフトウェア管理部５０４は、ノードリソース監視部５０３からのＣＰＵ使用率を用いて、計算リソース管理テーブルＴ２のＣＰＵ使用率３０４を更新する。また、ソフトウェア管理部５０４は、サービス提供要求ｒ２を受けた場合、候補ノードテーブルＴ５を作成し、選択経路ＲＴに含まれるノードＮのうち、どのノードＮのどのＶＭにサービス提供要求ｒ２で要求された要求プログラムを実行させるかを、候補ノードテーブルＴ５を用いて決定する。ソフトウェア管理部５０４は、当該決定結果およびサービス提供要求ｒ２に含まれる要求プログラムの識別情報をソフトウェアロード部５０５に送る。
【００３３】
ソフトウェアロード部５０５は、ソフトウェア管理部５０４からの要求プログラムの識別情報により、サービスコントローラ１０３に格納されている要求プログラムを記憶デバイスから読み出す。そして、ソフトウェアロード部５０５は、ソフトウェア管理部５０４の決定結果にしたがって、該当するノードＮのＶＭを指定して、読み出したプログラムＰを要求プログラムとしてロードする。
【００３４】
ノードＩＦ５０６は、経路生成部５０２からの経路設定情報ＲＴＩや要求プログラム（プログラムＰ）をノードＮに送信する。
【００３５】
＜サービスコントローラが有するテーブルの記憶内容例＞
図３は、図１に示したソフト機能テーブルＴ１の記憶内容例を示す説明図である。ソフト機能テーブルＴ１は、プログラム名２０１と、負荷種別２０２と、適用ノード種別２０３と、想定ＣＰＵ使用率２０４と、を有する。ソフト機能テーブルＴ１は、あらかじめサービスコントローラ１０３が保持する情報である。
【００３６】
プログラム名２０１は、ノードＮにロードするプログラムＰを一意に特定する識別情報である。負荷種別２０２は、プログラム名２０１で特定されるプログラムＰの負荷の種別を規定する情報であり、一定負荷と変動負荷がある。一定負荷は、そのプログラムＰを実行した場合の負荷が一定であることを示す。変動負荷は、そのプログラムＰを実行した場合の負荷が変動することを示す。
【００３７】
適用ノード種別２０３は、プログラム名２０１で特定されるプログラムＰが適用されるノードＮの種別を示す情報である。つまり、適用ノード種別２０３は、プログラム名２０１で特定されるプログラムＰを実行するノードＮの種別を示す情報である。適用ノード種別２０３が「エッジ」である場合、エッジノードＥＮにのみ適用可能である。適用ノード種別２０３が「エッジ／中継」である場合、エッジノードＥＮにも中継ノードＲＮにも適用可能である。適用ノード種別２０３が「中継」である場合、中継ノードＲＮにのみ適用可能である。
【００３８】
想定ＣＰＵ使用率２０４は、プログラム名２０１で特定されるプログラムＰのＣＰＵ使用率の予測値である。想定ＣＰＵ使用率２０４は、ＣＰＵ１個あたりのＣＰＵ使用率の予測値である。
【００３９】
図４は、図１に示した選択経路ＲＴの計算リソース管理テーブルＴ２の記憶内容例を示す説明図である。計算リソース管理テーブルＴ２は、ノード名３０１と、ＶＭ種別３０２と、ロード済みプログラム３０３と、ＣＰＵ使用率３０４と、を有する。計算リソース管理テーブルＴ２は、ノードＮからの情報により更新されるテーブルである。なお、経路設定情報ＲＴＩが複数生成される場合は、計算リソース管理テーブルＴ２は、経路設定情報ＲＴＩ毎に作成される。
【００４０】
ノード名３０１は、ノードＮを一意に特定する識別情報である。ノード名３０１は、あらかじめ設定されてもよい。また、経路設定情報ＲＴＩが生成された場合に、サービスコントローラ１０３のソフトウェア管理部５０４が、選択経路ＲＴ内のノードＮのノードをノード名３０１に格納してもよい。
【００４１】
ＶＭ種別３０２は、ノード名３０１で特定されるノードＮ上で動作するＶＭの種別を示す情報である。ＶＭ種別３０２である「動作保証プログラム用ＶＭ」は、そのＶＭが、動作保証プログラムを実行するＶＭであることを示す。動作保証プログラムは、ノードＮ内の計算リソースの負荷状態に因らず即時かつ完全な動作保証を要求されるプログラムＰである。
【００４２】
また、ＶＭ種別３０２である「ベストエフォートプログラム用ＶＭ」は、そのＶＭが、ベストエフォートプログラムを実行するＶＭであることを示す。ベストエフォートプログラムは、厳密な動作保証を要求されず、ノードＮ内の計算リソースの負荷状況に因っては、リソースに空きができるまで実行されないことが許容されるという保証レベルのプログラムＰである。
【００４３】
なお、ＶＭ種別３０２は、保守者／他管理システム１０２から予め設定される。
【００４４】
ロード済みプログラム３０３は、ノード名３０１で特定されるノードＮにロードされたプログラムＰである。ロード済みプログラム３０３は、ＶＭ種別３０２ごとに分類される。なお、ロード済みプログラム３０３には、サービスコントローラ１０３が、各ノードＮにプログラムＰをロードした後に、ロードしたプログラムＰのプログラム名が格納される。
【００４５】
ＣＰＵ使用率３０４は、ロード済みプログラム３０３についてのＶＭ種別３０２で規定されるＶＭでのＣＰＵ使用率である。ＣＰＵ使用率３０４については、サービスコントローラ１０３のソフトウェア管理部５０４がノードＮからＣＰＵ使用率を受信した場合に、ソフトウェア管理部５０４が、受信したＣＰＵ使用率をそのまま、ＣＰＵ使用率３０４に格納してもよく、また受信したＣＰＵ使用率を用いて所定の統計値を算出し、算出結果をＣＰＵ使用率３０４に格納してもよい。
【００４６】
ＶＭ種別３０２が動作保証プログラム用ＶＭである場合、ロード済みプログラム３０３の各ＣＰＵ使用率３０４については、同一ノードＮから収集したＣＰＵ使用率の最大値がＣＰＵ使用率３０４にロード済みプログラム３０３ごとに格納される。最大値とすることにより、動作保証プログラムＶＭがロード済みプログラム３０３を確実に実行するように計算リソース割当をおこなうことができる。
【００４７】
また、ＶＭ種別３０２がベストエフォートプログラム用ＶＭである場合、ロード済みプログラム３０３の各ＣＰＵ使用率３０４については、同一ノードＮから収集したＣＰＵ使用率の平均値がＣＰＵ使用率３０４にロード済みプログラム３０３ごとに格納される。平均値とすることにより負荷の変動があった場合を想定した計算リソース割当をおこなうことができる。
【００４８】
図５は、候補ノードテーブルＴ５の記憶内容例を示す説明図である。候補ノードテーブルＴ５は、選択経路内ノード６０１と、候補フラグ６０２と、ＣＰＵ使用率６０３と、必要ＣＰＵ使用率６０４と、ロード後想定ＣＰＵ使用率６０５と、を有する。候補ノードテーブルＴ５は、サービスコントローラ１０３のソフトウェア管理部５０４がサービス提供要求ｒ２を受信した場合にソフトウェア管理部５０４によって作成される。
【００４９】
選択経路内ノード６０１は、選択経路ＲＴを構成するノードＮを一意に特定する識別情報である。図１の例では、選択経路内ノード６０１には、選択経路ＲＴを構成するノードＮの識別情報として、ＥＮ１，ＥＮ２，ＲＮ１，ＲＮ２，ＲＮ３が格納される。ノードＮの識別情報の「ＥＮ」は、そのノードＮがエッジノードであることを示す。ノードＮの識別情報の「ＲＮ」は、そのノードＮが中継ノードであることを示す。選択経路内ノード６０１には、サービスコントローラ１０３の経路生成部５０２が選択経路を決定した後に、決定した選択経路上のノードＮのノード名がソフトウェア管理部５０４によって格納される。
【００５０】
候補フラグ６０２は、選択経路内ノード６０１が、図３のソフト機能テーブルＴ１における要求プログラムに対応する適用ノード種別２０３に該当するか否かを示す識別情報である。本例では、該当する場合が「１」、該当しない場合が「０」である。
【００５１】
たとえば、要求プログラムが「導通特性試験」である場合、ソフトウェア管理部５０４は、ソフト機能テーブルＴ１を参照して、プログラム名２０１：「導通特性試験」に対応する適用ノード種別２０３：「エッジ」を特定する。図５の選択経路内ノード６０１が「ＥＮ１」である場合、適用ノード種別２０３：「エッジ」に該当するため、「ＥＮ１」に対応する候補フラグは「１」になる。選択経路内ノード６０１が「ＥＮ２」についても同様である。反対に、選択経路内ノード６０１が「ＲＮ１」、「ＲＮ２」、「ＲＮ３」の場合は、適用ノード種別「エッジ」に該当しないため、候補フラグ６０２は「０」のままである。
【００５２】
ＣＰＵ使用率６０３は、計算リソース管理テーブルＴ２において、サービス提供要求ｒ２に含まれる要求プログラムの動作保証要件の情報（保証要求）に応じたＶＭ種別３０２でのロード済みプログラム３０３のＣＰＵ使用率３０４の合計値である。たとえば、保証要求が「保証」である場合、ＶＭ種別３０２は「動作保証プログラム用ＶＭ」となる。したがって、計算リソース管理テーブルＴ２において、ノード名３０１：「ＥＮ１」の場合、ロード済みプログラム３０３である「帯域制御」、「ファイアウォール」、および「接続性監視」の各ＣＰＵ使用率３０４である「１８％」、「１７％」、および「５％」の合計である「４０％」が、候補ノードテーブルＴ５において選択経路内ノード６０１：「ＥＮ１」のＣＰＵ使用率６０３に格納される。
【００５３】
保証要求が、「保証ｏｒベストエフォート」の場合も同様である。「保証ｏｒベストエフォート」は、可能な限り「保証」として扱い、「保証」では要求プログラムのロード先が決定しない場合に、「ベストエフォート」として扱われる保証要求である。なお、上記の例で、保証要求が「ベストエフォート」である場合、ＶＭ種別３０２は「ベストエフォートプログラム用ＶＭ」となる。したがって、計算リソース管理テーブルＴ２において、ノード名３０１：「ＥＮ１」の場合、ロード済みプログラム３０３である「遅延時間測定」、「導通特性試験」および「トラフィックモニタ」の各ＣＰＵ使用率である「７％」、「５％」、および「８％」の合計である「２０％」が、候補ノードテーブルＴ５において、選択経路内ノード６０１が「ＥＮ１」のＣＰＵ使用率６０３に格納される。
【００５４】
必要ＣＰＵ使用率６０４は、要求プログラムの実行に必要とされるＣＰＵ使用率である。ソフトウェア管理部５０４は、図３のソフト機能テーブルＴ１を参照し、プログラム名２０１で特定される要求プログラムの負荷種別２０２が「一定負荷」である場合、想定ＣＰＵ使用率２０４を、必要ＣＰＵ使用率として必要ＣＰＵ使用率６０４に格納する。一方、プログラム名２０１で特定される要求プログラムの負荷種別２０２が「変動負荷」である場合、ソフトウェア管理部５０４は、想定ＣＰＵ使用率２０４の最大値を、必要ＣＰＵ使用率として必要ＣＰＵ使用率６０４に格納する。
【００５５】
たとえば、要求プログラムが「帯域制御」である場合、負荷種別２０２が「一定負荷」であり、想定ＣＰＵ使用率２０４は「２０％」であるため、必要ＣＰＵ使用率６０４に「２０％」が格納される。一方、要求プログラムが「導通特性試験」である場合、負荷種別２０２が「変動負荷」であり、想定ＣＰＵ使用率２０４は「０〜１０％」であるため、必要ＣＰＵ使用率６０４に「１０％」が格納される。図５は、サービス提供要求ｒ２の要求プログラムが「導通特性試験」であり、保証要求が、「保証」である場合の例である。
【００５６】
ロード後想定ＣＰＵ使用率６０５は、要求プログラムがロード先のノードＮにロードされた場合において、当該ロード先のノードＮで当該要求プログラムを実行するＶＭでのＣＰＵ使用率の予測値である。具体的には、たとえば、ロード後想定ＣＰＵ使用率は、ＣＰＵ使用率６０３と必要ＣＰＵ使用率６０４との合計値である。ロード後想定ＣＰＵ使用率６０５には、ソフトウェア管理部５０４がＣＰＵ使用率６０３と必要ＣＰＵ使用率６０４とに基づいて算出した値が格納される。
【００５７】
＜ノードＮの内部構成例＞
図６は、ノードＮの内部構成例を示すブロック図である。ノードＮは、ネットワークインタフェース（ＮＷ−ＩＦ）７０１と、ＶＭ管理部７０２と、動作保証プログラム用ＶＭ７０３と、ベストエフォートプログラム用ＶＭ７０４と、経路テーブル７０５と、入出力処理部７０６と、ポート７０７と、を有する。
【００５８】
ＮＷ−ＩＦ７０１は、ノードＮがサービスコントローラ１０３と通信するインタフェースである。ＮＷ−ＩＦ７０１がサービスコントローラ１０３から受け付けるデータには、経路設定情報ＲＴＩとプログラムＰがある。また、ＮＷ−ＩＦ７０１からサービスコントローラ１０３に送るデータには、計算リソース情報ＲＳＩがある。
【００５９】
ＶＭ管理部７０２は、ノードＮ内部にＶＭを構築（動作保証プログラム用ＶＭ７０３、ベストエフォートプログラム用ＶＭ７０４）し、構築されたＶＭを管理する。ＶＭ管理部７０２は、ゲストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を起動し、ＶＭの種別ごとにプロセッサを割り当てる。たとえば、ノードＮがｘ個のプロセッサを有する場合、ＶＭ管理部７０２は、動作保証プログラム用ＶＭ７０３にｙ個、ベストエフォートプログラム用ＶＭ７０４にｚ個のプロセッサを割り当てる（ｙ＋ｚ≦ｘ）。
【００６０】
ＶＭ管理部７０２は、動作保証プログラム用ＶＭ７０３とベストエフォートプログラム用ＶＭ７０４とでプロセッサを共有させないようにするのが好ましい。そして、ＶＭ管理部７０２は、ＶＭごとにゲストＯＳを起動して、動作保証プログラム用ＶＭ７０３およびベストエフォートプログラム用ＶＭ７０４を構築する。各ＶＭには、サービスコントローラ１０３からロードされてきたプログラムＰが実装される。
【００６１】
また、ＶＭ管理部７０２は、計算リソース監視部７２１と、プログラム格納部７２２と、上述した計算リソーステーブルＴ４と、を含む。計算リソース監視部７２１は、ＶＭごとに、ＣＰＵ使用率などの計算リソースの使用状況を監視する。たとえば、計算リソース監視部７２１は、各ＶＭに対して計算リソースの取得要求を繰り返し（たとえば、定期的に）送信し、ＶＭから当該ＶＭ上で実行されているプログラムの計算リソースの使用状況（たとえば、ＣＰＵ使用率）を取得し、計算リソーステーブルＴ４に格納する。計算リソース監視部７２１は、具体的には、たとえば、ノードＮのホストＯＳまたはホストＯＳ上で動作するアプリケーションをプロセッサに実行させることにより実現される。
【００６２】
プログラム格納部７２２は、サービスコントローラ１０３から要求プログラムとしてロードされてきたプログラムＰを格納する記憶領域である。プログラム格納部７２２に格納されたプログラムＰは、該当するＶＭに送られる。プログラム格納部７２２は、具体的には、たとえば、ノードＮ内の記憶デバイスにより実現される。
【００６３】
動作保証プログラム用ＶＭ７０３は、割り当てられたプロセッサにより、動作保証プログラムを実行するＶＭである。動作保証プログラムは、ＣＰＵ使用率などのノードＮ内の計算リソースの負荷状態に因らず、即時かつ完全な動作保証を要求されるプログラムＰである。動作保証プログラム用ＶＭ７０３は、プログラムインスタンス７３１と、ソフト機能実行部７３２と、により構成される。プログラムインスタンス７３１は、動作保証プログラム用ＶＭ７０３上で動作する動作保証プログラムである。ソフト機能実行部７３２は、プログラムインスタンス７３１を実行するゲストＯＳである。
【００６４】
ベストエフォートプログラム用ＶＭ７０４は、割り当てられたプロセッサにより、ベストエフォートプログラムを実行するＶＭである。ベストエフォートプログラムは、厳密な動作保証を要求されず、ＣＰＵ使用率などのノードＮ内の計算リソースの負荷状況に因っては、計算リソースに空きができるまで実行されないことが許容されるという保証レベルのプログラムＰである。ベストエフォートプログラム用ＶＭ７０４は、プログラムインスタンス７４１と、ソフト機能実行部７４２と、により構成される。プログラムインスタンス７４１は、ベストエフォートプログラム用ＶＭ７０４上で動作するベストエフォートプログラムである。ソフト機能実行部７４２は、プログラムインスタンス７４１を実行するゲストＯＳである。両ＶＭ７０３，７０４は、計算リソース監視部７２１から計算リソースの取得要求を受けると、動作中のプログラムインスタンス７３１，７４１についてのＣＰＵ使用率を返す。
【００６５】
このように、ノードＮ内で保証要求毎にＶＭを分けることで、ノードＮ内の計算リソースが明確に分割され、プログラム動作の保証要求を満たすことができる。なお、本実施例では、動作保証プログラム用ＶＭ７０３とベストエフォートプログラム用ＶＭ７０４とをそれぞれ１つ構築した例について示した。動作保証プログラム用ＶＭ７０３は、複数構築されてもよい。この場合、各動作保証プログラム用ＶＭ７０３で動作するプログラムインスタンス７３１は、重複しないように配備される。同様に、ベストエフォートプログラム用ＶＭ７０４も複数構築されてもよい。この場合、各ベストエフォートプログラム用ＶＭ７０４で動作するプログラムインスタンス７４１は、重複しないように配備される。
【００６６】
経路テーブル７０５は、サービスコントローラ１０３からＮＷ−ＩＦ７０１を経由して展開された経路設定情報ＲＴＩを格納するテーブルである。
【００６７】
入出力処理部７０６は、経路テーブル７０５を参照して、あるポート７０７から入力されたパケットの出力先ポート７０７を決定し、決定した出力先ポート７０７にパケットを渡す。また、入出力処理部７０６は、あるポート７０７から入力されたパケットを解析して、解析結果に応じて動作保証プログラム用ＶＭ７０３やベストエフォートプログラム用ＶＭ７０４に転送する。ポート７０７は、パケットを送受信する。
【００６８】
計算リソーステーブルＴ４は、具体的には、たとえば、メモリやハードディスクなどの記憶デバイス（不図示）により実現される。ＶＭ管理部７０２、動作保証プログラム用ＶＭ７０３、およびベストエフォートプログラム用ＶＭ７０４は、具体的には、たとえば、記憶デバイスに記憶されたプログラムをプロセッサに実行させることにより実現される。ＮＷ−ＩＦ７０１およびポート７０７は、具体的には、たとえば、インタフェース回路（不図示）により実現される。経路テーブル７０５および入出力処理部７０６は、具体的には、たとえば、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）により実現される。
【００６９】
＜ノードが有するテーブルの記憶内容例＞
図７は、計算リソーステーブルＴ４の記憶内容例を示す説明図である。計算リソーステーブルＴ４は、ＶＭ種別４０１と、実行プログラム４０２と、ＣＰＵ使用率４０３と、を有する。計算リソーステーブルＴ４は、サービスコントローラ１０３からの情報およびＶＭでのＣＰＵの使用状況により更新されるテーブルである。図７の例は、エッジノードＥＮ１が有する計算リソーステーブルＴ４の例を示す。
【００７０】
ＶＭ種別４０１については、サービスコントローラ１０３からＶＭ種別が指定された場合に、ノードＮが、当該ＶＭ種別をＶＭ種別４０１に格納する。
【００７１】
実行プログラム４０２は、サービスコントローラ１０３からロードされ、ＶＭ種別４０１のＶＭ上で実行されているプログラムＰである。実行プログラム４０２については、サービスコントローラ１０３からプログラムＰがロードされた場合に、ノードＮが、当該プログラム名を実行プログラム４０２に格納する。
【００７２】
ＣＰＵ使用率４０３は、ＶＭ種別４０１でのＶＭ上での実行プログラム４０２のＣＰＵ使用率である。ＶＭが占有するプロセッサが複数ある場合には、全プロセッサでのＣＰＵ使用率となる。ＣＰＵ使用率４０３については、ノードＮが、ＶＭ種別４０１のＶＭがＣＰＵ使用率の取得コマンドを所定のタイミングで実行した場合に取得されるＣＰＵ使用率を、ＣＰＵ使用率４０３に格納する。すなわち、ＣＰＵ使用率４０３には、最新のＣＰＵ使用率が格納される。取得コマンドは、たとえば、一定時間間隔で発行される。
【００７３】
＜通信システム１００のシーケンス＞
図８は、通信システム１００のシーケンス例を示す説明図である。保守者／他管理システム１０２は、サービスコントローラ１０３に経路設定要求ｒ１を与える(ステップＳ８０１)。サービスコントローラ１０３は、経路設定要求ｒ１を受けると、経路を決定して経路設定情報ＲＴＩを生成する（ステップＳ８０２）。図１では、始点エッジノードＥＮとしてＥＮ１、終点エッジノードＥＮとしてＥＮ２が経路設定要求ｒ１で指定され、選択経路ＲＴ（エッジノードＥＮ１、中継ノードＲＮ１、ＲＮ２、ＲＮ３、エッジノードＥＮ２）が決定される。
【００７４】
そして、サービスコントローラ１０３は、決定した選択経路ＲＴに関する経路設定情報ＲＴＩを、選択経路ＲＴ上のノードＮに送信する（ステップＳ８０３）。経路設定情報ＲＴＩを受信したノードＮは、受信した経路設定情報ＲＴＩを経路テーブル７０５に格納して、経路設定情報ＲＴＩに従った経路を設定する（ステップＳ８０４）。
【００７５】
このあと、保守者／他管理システム１０２は、サービスコントローラ１０３にサービス提供要求ｒ２を与える(ステップＳ８０５)。サービス提供要求ｒ２には、要求プログラムの識別情報であるプログラム名と保証要求とが含まれる。保証要求は、たとえば、「保証」、「ベストエフォート」、「保証ｏｒベストエフォート」の３種類がある。
【００７６】
「保証」は、要求プログラムを動作保証プログラム用ＶＭ７０３で実行させたい場合に指定される保証要求である。具体的には、たとえば、「保証」は、ロード対象プログラムの動作保証を遵守するという保証内容を示す保証要求である。
【００７７】
「ベストエフォート」は、要求プログラムをベストエフォートプログラム用ＶＭ７０４で実行させたい場合に指定される保証要求である。具体的には、たとえば、「ベストエフォート」は、ロード対象プログラムの動作保証を遵守しなくてもよいという保証内容を示す保証要求である。
【００７８】
「保証ｏｒベストエフォート」は、要求プログラムを可能な限り動作保証プログラム用ＶＭ７０３で実行させたい場合に指定される保証要求である。具体的には、たとえば、「保証ｏｒベストエフォート」は、「保証」の保証内容を充足しなければ「ベストエフォート」の保証内容が適用されるという保証内容を示す保証要求である。動作保証プログラム用ＶＭ７０３で動作保証されない場合には、要求プログラムは、ベストエフォートプログラム用ＶＭ７０４に割り当てられる。
【００７９】
サービスコントローラ１０３は、サービス提供要求ｒ２を受けると、ロード対象ノード／ＶＭ選択処理を実行する（ステップＳ８０６）。ロード対象ノード／ＶＭ選択処理（ステップＳ８０６）は、要求プログラムのロード先、すなわち、ノードＮおよび当該ノードＮ上のＶＭを選択する処理である。ロード対象ノード／ＶＭ選択処理（ステップＳ８０６）の詳細については、図９で説明する。
【００８０】
サービスコントローラ１０３は、ロード対象ノード／ＶＭ選択処理（ステップＳ８０６）によりロード先を選択すると、要求プログラムであるプログラムＰおよびプログラムＰを実行させるＶＭのＶＭ種別をロード先のノードＮに送信する（ステップＳ８０７）。ノードＮは、送信されたプログラムＰをプログラム格納部７２２に格納する（ステップＳ８０８）。そして、ノードＮは、プログラムＰを送信されたＶＭ種別が示すロード先として選択されたＶＭにプログラムインスタンスとして割り当てて、当該ＶＭ上で要求プログラムを実行する（ステップＳ８０９）。
【００８１】
＜ロード対象ノード／ＶＭ選択処理（ステップＳ８０６）＞
図９は、図８に示したロード対象ノード／ＶＭ選択処理（ステップＳ８０６）の詳細な処理手順例を示すフローチャートである。サービスコントローラ１０３のソフトウェア管理部５０４は、ステップＳ８０２で決定した選択経路ＲＴ上のノードＮのノード名を候補ノードテーブルＴ５の選択経路内ノード６０１に設定する（ステップＳ９０１）。図１の例では、選択経路内ノード６０１には、選択経路ＲＴを構成するノードＮの識別情報として、ＥＮ１，ＥＮ２，ＲＮ１，ＲＮ２，ＲＮ３が格納される。
【００８２】
つぎに、サービスコントローラ１０３のソフトウェア管理部５０４は、図３に示したソフト機能テーブルＴ１を参照して、受信したサービス提供要求ｒ２に含まれる要求プログラムのプログラム名を基にプログラム名２０１を検索し、該当するプログラム名２０１の適用ノード種別２０３を特定する（ステップＳ９０２）。たとえば、要求プログラムのプログラム名２０１が「帯域制御」である場合、その適用ノード種別２０３は、「エッジ」である。また、要求プログラムのプログラム名２０１が「トラフィックモニタ」である場合、その適用ノード種別２０３は、「エッジ／中継」である。
【００８３】
つぎに、サービスコントローラ１０３のソフトウェア管理部５０４は、ステップＳ９０２で特定された適用ノード種別２０３に基づいて選択経路内ノード６０１から候補ノードを選定する（ステップＳ９０３）。たとえば、適用ノード種別２０３が「エッジ」である場合、サービスコントローラ１０３のソフトウェア管理部５０４は、エッジノードを候補ノードに設定する。つまり、ソフトウェア管理部５０４は、候補ノードテーブルＴ５の選択経路内ノード６０１が「エッジノード」である候補フラグ６０２を「１」に変更する。
【００８４】
また、適用ノード種別２０３が「エッジ／中継」である場合、サービスコントローラ１０３のソフトウェア管理部５０４は、エッジノードおよび中継ノードを候補ノードに設定する。つまり、ソフトウェア管理部５０４は、候補ノードテーブルＴ５の選択経路内ノード６０１が「エッジノード」および「中継ノード」である候補フラグ６０２を「１」に変更する。また、適用ノード種別２０３が「中継」である場合、サービスコントローラ１０３のソフトウェア管理部５０４は、中継ノードを候補ノードに設定する。つまり、ソフトウェア管理部５０４は、候補ノードテーブルＴ５の選択経路内ノード６０１が「中継ノード」である候補フラグ６０２を「１」に変更する。サービスコントローラ１０３は、候補ノードテーブルＴ５の候補フラグ６０２を「１」にすることにより、候補ノードを設定する。図５の例では、適用ノード種別２０３が「エッジ」であるため、選択経路内ノード６０１：ノードＥＮ１，ＥＮ２について、候補フラグ６０２が「１」に設定される。
【００８５】
このあと、サービスコントローラ１０３のソフトウェア管理部５０４は、保証要求について判断する（ステップＳ９０４）。ステップＳ９０４〜Ｓ９０８は、候補ノードごとに実行される。ステップＳ９０４において、保証要求が「ベストエフォート」である場合（ステップＳ９０４：ベストエフォート）、サービスコントローラ１０３のソフトウェア管理部５０４は、候補ノードのＶＭ種別のうち保証要求に応じたＶＭ種別であるベストエフォートプログラム用ＶＭのＣＰＵ使用率の合算値を取得して、候補ノードの選択経路内ノード６０１に対応する候補ノードテーブルＴ５のＣＰＵ使用率６０３に格納し（ステップＳ９０５）、ステップＳ９０７に移行する。
【００８６】
具体的には、たとえば、サービスコントローラ１０３のソフトウェア管理部５０４は、受信した要求プログラムのプログラム名を基に図４の計算リソース管理テーブルＴ２を参照し、候補ノードのエントリをノード名３０１から特定する。保証要求が「ベストエフォート」であるため、ＶＭ種別３０２：「ベストエフォートプログラム用ＶＭ」に対応するロード済みプログラムおよびＣＰＵ使用率を、候補ノードのエントリ内のロード済みプログラム３０３およびＣＰＵ使用率３０４から特定する。サービスコントローラ１０３のソフトウェア管理部５０４は、特定したＣＰＵ使用率３０４の合算値を算出し、算出した合算値をＣＰＵ使用率６０３に格納する。
【００８７】
たとえば、図４において、候補ノードのノード名３０１がＥＮ１で、かつ、保証要求が「ベストエフォート」である場合、ロード済みプログラム３０３およびＣＰＵ使用率３０は、「遅延時間測定」の「７％」と、「導通特性試験」の「５％」と、「トラフィックモニタ」の「８％」である。したがって、サービスコントローラ１０３のソフトウェア管理部５０４は、ＣＰＵ使用率の合算値として「２０％」を算出する。そして、サービスコントローラ１０３のソフトウェア管理部５０４は、合算値である「２０％」を、候補ノードテーブルＴ５において、候補ノード「ＥＮ１」のＣＰＵ使用率６０３に格納する。
【００８８】
また、ステップＳ９０４において、保証要求が「保証」または「保証ｏｒベストエフォート」である場合（ステップＳ９０４：「保証」または「保証ｏｒベストエフォート」）、サービスコントローラ１０３のソフトウェア管理部５０４は、候補ノードのＶＭ種別のうち保証要求に応じたＶＭ種別である動作保証プログラム用ＶＭのＣＰＵ使用率の合算値を取得して、候補ノードの選択経路内ノード６０１に対応する候補ノードテーブルＴ５のＣＰＵ使用率６０３に格納し（ステップＳ９０６）、ステップＳ９０７に移行する。
【００８９】
具体的には、たとえば、サービスコントローラ１０３のソフトウェア管理部５０４は、受信した要求プログラムのプログラム名を基に図４の計算リソース管理テーブルＴ２を参照し、候補ノードのエントリをノード名３０１から特定する。保証要求が「保証」または「保証ｏｒベストエフォート」であるため、ＶＭ種別３０２：「動作保証プログラム用ＶＭ」に対応するロード済みプログラムおよびＣＰＵ使用率を、候補ノードのエントリ内のロード済みプログラム３０３およびＣＰＵ使用率３０４から特定する。サービスコントローラ１０３のソフトウェア管理部５０４は、特定したＣＰＵ使用率３０４の合算値を算出し、算出した合算値をＣＰＵ使用率６０３に格納する。
【００９０】
たとえば、図４において、候補ノードのノード名３０１がＥＮ１で、かつ、保証要求が「保証」または「保証ｏｒベストエフォート」である場合、ロード済みプログラム３０３およびＣＰＵ使用率３０４は、「帯域制御」の「１８％」と、「ファイアウォール」の「１７％」と、「接続性監視」の「５％」である。したがって、サービスコントローラ１０３のソフトウェア管理部５０４は、ＣＰＵ使用率３０４の合算値として「４０％」を算出する。そして、サービスコントローラ１０３のソフトウェア管理部５０４は、合算値である「４０％」を、候補ノードテーブルＴ５において、候補ノード「ＥＮ１」のＣＰＵ使用率６０３に格納する。
【００９１】
つまり、ＣＰＵ使用率６０３に格納される値は、受信する保証要求に応じたＶＭ種別（保証要求が「保証」または「保証ｏｒベストエフォート」であれば、「動作保証プログラム用ＶＭ」、保証要求が「ベストエフォート」であれば、「ベストエフォートプログラム用ＶＭ」）のＣＰＵ使用率である。
【００９２】
ステップＳ９０７において、サービスコントローラ１０３のソフトウェア管理部５０４は、ソフト機能テーブルＴ１を参照して、要求プログラムの負荷種別および想定ＣＰＵ使用率を負荷種別２０２および想定ＣＰＵ使用率２０４を取得する（ステップＳ９０７）。具体的には、たとえば、サービスコントローラ１０３のソフトウェア管理部５０４は、受信したサービス提供要求ｒ２に含まれる要求プログラムのプログラム名を基にプログラム名２０１を検索し、該当するプログラム名２０１の要求プログラムの負荷種別および想定ＣＰＵ使用率を該当するプログラム名２０１のエントリ内の負荷種別２０２および想定ＣＰＵ使用率２０４から特定する。たとえば、要求プログラムのプログラム名２０１が「帯域制御」である場合、負荷種別２０２は「一定負荷」であり、想定ＣＰＵ使用率２０４は「２０％」である。
【００９３】
なお、想定ＣＰＵ使用率２０４はプロセッサ１個あたりのＣＰＵ使用率の予測値であるため、保証要求に応じた候補ノードのＶＭに割り当てられているプロセッサの個数が１個の場合は、取得した想定ＣＰＵ使用率２０４がそのまま用いられる。
【００９４】
一方、保証要求に応じた候補ノードのＶＭに割り当てられているプロセッサの個数が複数の場合は、サービスコントローラ１０３のソフトウェア管理部５０４は、取得した想定ＣＰＵ使用率２０４を、保証要求に応じた候補ノードのＶＭに割り当てられたプロセッサの個数で除算する。たとえば、保証要求に応じた候補ノードのＶＭに割り当てられたプロセッサの個数が４個で、ソフト機能テーブルＴ１から取得した想定ＣＰＵ使用率２０４が「２０％」である場合、除算後の想定ＣＰＵ使用率は、「５％」となる。後述の説明では、保証要求に応じた候補ノードのＶＭに割り当てられているプロセッサの個数が１個の場合を例に挙げて説明するが、除算後の想定ＣＰＵ使用率も想定ＣＰＵ使用率２０４として扱われる。
【００９５】
そして、サービスコントローラ１０３のソフトウェア管理部５０４は、取得した想定ＣＰＵ使用率２０４を候補ノードの候補ノードテーブルＴ５の必要ＣＰＵ使用率６０４に格納する。具体的には、たとえば、要求プログラムが「トラフィックモニタ」である場合、想定ＣＰＵ使用率２０４は「１０％」であるため、候補ノードテーブルＴ５において、候補ノード（たとえば、ＥＮ１）の必要ＣＰＵ使用率６０４に「１０％」が格納される。
【００９６】
また、たとえば、要求プログラムについての負荷種別２０２が「変動負荷」である場合、サービスコントローラ１０３のソフトウェア管理部５０４は、想定ＣＰＵ使用率２０４を取得して、想定ＣＰＵ使用率２０４の最大値を候補ノードテーブルＴ５の必要ＣＰＵ使用率６０４に格納する。具体的には、たとえば、要求プログラムが「ロードバランサ」である場合、想定ＣＰＵ使用率２０４は「０〜３０％」であるため、候補ノードテーブルＴ５において、候補ノード（たとえば、ＥＮ１）の必要ＣＰＵ使用率６０４に、想定ＣＰＵ使用率２０４：「０〜３０％」の最大値「３０％」が格納される。
【００９７】
このあと、サービスコントローラ１０３のソフトウェア管理部５０４は、候補ノードごとに、ロード後想定ＣＰＵ使用率６０５を算出する（ステップＳ９０８）。具体的には、たとえば、サービスコントローラ１０３のソフトウェア管理部５０４は、候補ノードテーブルＴ５の候補フラグが「１」であるエントリごとに、ＣＰＵ使用率６０３と必要ＣＰＵ使用率６０４とを合算して、ロード後想定ＣＰＵ使用率を算出し、ロード後想定ＣＰＵ使用率６０５に格納する。図５の候補ノードテーブルＴ５の選択経路内ノード６０１：「ＥＮ１」のエントリでは、ＣＰＵ使用率６０３が「４０％」、必要ＣＰＵ使用率６０４が「１０％」であるため、ロード後想定ＣＰＵ使用率６０５として「５０％」が格納される。
【００９８】
このあと、サービスコントローラ１０３のソフトウェア管理部５０４は、候補ノード群の中に、ロード後想定ＣＰＵ使用率６０５が１００％以下の候補ノードがあるか否かを判断する（ステップＳ９０９）。すなわち、サービスコントローラ１０３のソフトウェア管理部５０４は、ロード後想定計算リソースが要求プログラムの動作保証を遵守できる計算リソースであるか否かを候補ノードごとに判断する。ロード後想定ＣＰＵ使用率６０５が１００％以下の候補ノードがある場合（ステップＳ９０９：Ｙｅｓ）、サービスコントローラ１０３のソフトウェア管理部５０４は、ロード後想定ＣＰＵ使用率６０５が１００％以下の候補ノードにおけるＣＰＵ使用率の取得元ＶＭ（ステップＳ９０５でＣＰＵ使用率を取得したベストエフォートプログラム用ＶＭまたはステップＳ９０６でＣＰＵ使用率を取得した動作保証プログラム用ＶＭ）をロード先に決定する（ステップＳ９１０）。
【００９９】
ロード後想定ＣＰＵ使用率６０５が１００％以下の候補ノードが複数ある場合は、ロード後想定ＣＰＵ使用率６０５が最低となる候補ノードにおけるＣＰＵ使用率の取得元ＶＭをロード先に決定してもよい。また、ロード後想定ＣＰＵ使用率６０５が１００％以下の候補ノードが複数ある場合は、ロード後想定ＣＰＵ使用率６０５が所定ＣＰＵ使用率以下となるいずれかの候補ノードにおけるＣＰＵ使用率の取得元ＶＭをロード先に決定してもよい。このあと、サービスコントローラ１０３のソフトウェア管理部５０４は、要求プログラムと保証要求に応じたＶＭ種別を、ステップＳ９１０で選択した候補ノードに送信することになる（ステップＳ８０７）。
【０１００】
一方、ロード後想定ＣＰＵ使用率６０５が１００％以下の候補ノードがない場合（ステップＳ９０９：Ｎｏ）、サービスコントローラ１０３のソフトウェア管理部５０４は、保証要求を判断する（ステップＳ９１１）。保証要求が「保証ｏｒベストエフォート」である場合（ステップＳ９１１：保証ｏｒベストエフォート）、サービスコントローラ１０３のソフトウェア管理部５０４は、保証要求を「ベストエフォート」に更新し（ステップＳ９１２）、ステップＳ９０５に戻る。すなわち、ステップ９０９において、ロード後想定ＣＰＵ使用率６０５が１００％以下の候補ノードがない（ステップＳ９０９：Ｎｏ）ため、ロード先の候補ノードで動作保証できなくなる。したがって、保証要求を「ベストエフォート」に更新して、ステップＳ９０５に戻すことで、その後、ステップＳ９１１で保証要求が判断されると、後述するステップＳ９１４が実行される。すなわち、要求プログラムの動作を「保証」で動作させたいが動作保証できないため、「ベストエフォート」での動作に変更する。
【０１０１】
また、保証要求が「保証」である場合（ステップＳ９１１：保証）、ロード後想定ＣＰＵ使用率６０５が１００％以下の候補ノードがない（ステップＳ９０９：Ｎｏ）ため、ロード先の候補ノードで動作保証できなくなる。この場合、サービスコントローラ１０３のソフトウェア管理部５０４は、要求プログラムのロード先の決定不可通知を保守者／他管理システム１０２に出力する（ステップＳ９１３）。すなわち、要求プログラム動作を「保証」で動作させたいが動作保証できず、「ベストエフォート」にも変更できないため、保守者／他管理システム１０２に対して選択経路ＲＴの再設定を促すことになる。
【０１０２】
また、保証要求が「ベストエフォート」である場合（ステップＳ９１１：ベストエフォート）、サービスコントローラ１０３のソフトウェア管理部５０４は、ベストエフォートプログラム用ＶＭの総ＣＰＵ使用率に対する変動負荷プログラムのＣＰＵ使用率の割合が最も高い候補ノードにおけるＣＰＵ使用率の取得元ＶＭをロード先に決定する（ステップＳ９１４）。また、サービスコントローラ１０３のソフトウェア管理部５０４は、ベストエフォートプログラム用ＶＭの総ＣＰＵ使用率に対する変動負荷プログラムのＣＰＵ使用率の割合が所定割合以上となる候補ノードにおけるＣＰＵ使用率の取得元ＶＭをロード先に決定してもよい。
【０１０３】
ベストエフォートプログラム用ＶＭの総ＣＰＵ使用率とは、計算リソース管理テーブルＴ２において、候補ノードのノード名３０１に対応するベストエフォートプログラム用ＶＭ３０２のロード済みプログラム３０３のＣＰＵ使用率３０４の合算値である。たとえば、図４において、ノード名３０１：「ＥＮ１」のエントリでは、ベストエフォートプログラム用ＶＭ３０２のロード済みプログラム３０３は、「遅延時間測定」、「導通特性試験」および「トラフィックモニタ」であり、また、それぞれのＣＰＵ使用率３０４は「７％」、「５％」、および「８％」である。したがって、候補ノードＥＮ１についてのベストエフォートプログラム用ＶＭの総ＣＰＵ使用率は「２０％」である。
【０１０４】
また、ベストエフォートプログラム用ＶＭ３０２のロード済みプログラム３０３：「遅延時間測定」、「導通特性試験」および「トラフィックモニタ」のうち、変動負荷プログラムは、「遅延時間測定」および「導通特性試験」である。したがって、変動負荷プログラムのＣＰＵ使用率は、それぞれのＣＰＵ使用率「７％」および「５％」の合算値「１２％」となる。
【０１０５】
そして、ベストエフォートプログラム用ＶＭの総ＣＰＵ使用率に対する変動負荷プログラムのＣＰＵ使用率の割合は、たとえば、変動負荷プログラムのＣＰＵ使用率をベストエフォートプログラム用ＶＭの総ＣＰＵ使用率で除算して求められる。上記の例の場合、１２％／２０％＝３／５（＝６０％）となる。
【０１０６】
サービスコントローラ１０３のソフトウェア管理部５０４は、当該割合が最高となる候補ノードをロード先として選択することになる。すなわち、ステップＳ９０５で変動負荷プログラムのＣＰＵ使用率の平均値であるＣＰＵ使用率３０４を取得しているため、変動負荷プログラムの割合が高い方が、負荷が低下する確率が高くなり、ロード後のＣＰＵ使用率を抑制できるからである。このあと、サービスコントローラ１０３のソフトウェア管理部５０４は、要求プログラムと保証要求に応じたＶＭ種別を、ステップＳ９１４で選択した候補ノードに送信することになる（ステップＳ８０７）。
【０１０７】
このように、本実施例によれば、動作保証を要求されたソフトウェアの計算リソースを確保することができるとともに、ネットワーク内の計算リソースを効率的に活用することができる。また、ＶＭ単位でソフトウェアをノードで実行させるため、ＶＭごとに計算リソースを取得することができる。したがって、ソフトウェアの計算リソースを容易に特定することができる。さらに、これらの処理が自動化されることで、ネットワークの保守者の負担軽減を図ることができる。
【０１０８】
また、ロード対象ノード／ＶＭ選択処理（ステップＳ８０６）は、サービス提供要求ｒ２をトリガにして実行されるが、要求プログラムが割り当てられたノードのＶＭの計算リソースが所定のしきい値（たとえば、ＣＰＵ使用率が１００％）以上になったことをサービスコントローラ１０３が検知した場合に、サービスコントローラ１０３がロード対象ノード／ＶＭ選択処理（ステップＳ８０６）を再実行してもよい。
【０１０９】
ここでいう所定のしきい値は、ＶＭ種別ごとに異なる値でもよい。たとえば、ＶＭが動作保証プログラム用ＶＭである場合、計算リソースが１００％以上となったことをサービスコントローラ１０３が検知した場合に、サービスコントローラ１０３がロード対象ノード／ＶＭ選択処理（ステップＳ８０６）を再実行する。また、ベストエフォートプログラム用ＶＭでは、ＣＰＵ使用率が１００％を超過することを許容しているが、１００％を超過した状態が所定時間以上継続したことをサービスコントローラ１０３が検知した場合に、サービスコントローラ１０３がロード対象ノード／ＶＭ選択処理（ステップＳ８０６）を再実行する。
【０１１０】
再実行の場合、ロード対象ノード／ＶＭ選択処理（ステップＳ８０６）では、ステップＳ９０４から実行が開始される。これにより、ロード先の決定後においても計算リソースの上昇を動的に抑制することができる。なお、要求プログラムが別のノードＮに割り当てられた場合には、元のノードＮのＶＭにおいて実行されていた要求プログラムのプログラムインスタンスは消去される。
【０１１１】
なお、上述した実施例では、プログラムＰをロードする構成としたが、プログラムＰをあらかじめノードＮに格納しておく構成でもよい。この場合、サービスコントローラ１０３は、プログラムＰをロードする代わりに、プログラムＰの識別情報（例えば、プログラム名）をロードし、プログラムＰの識別情報を受けたノードＮは、ＶＭ管理部によりプログラムＰのプログラムインスタンスを指定されたＶＭに構築すればよい。このように、プログラムＰの代わりにプログラムＰの識別情報をロードすることにより、サービスコントローラ１０３からノードＮへの通信量の低減化を図ることができる。
【０１１２】
上述した実施例では、サービスコントローラ１０３が保守／他管理システム１０２から受信する経路設定要求ｒ１および経路設定要求ｒ１に続いて受信するサービス提供要求ｒ２に基づいて、ノードＮにロードするプログラムＰを選択する構成としたが、サービスコントローラ１０３が独立に受信した経路設定要求ｒ１およびサービス提供要求ｒ２に基づいて、ノードＮにロードするプログラムＰを選択する構成としてもよい。すなわち、サービスコントローラ１０３は、複数の経路設定要求ｒ１を受信して、複数の選択経路ＲＴをパケットトランスポートネットワーク１０１内に設定し、その後受信するサービス提供要求ｒ２に基づいて、経路情報テーブルを参照して、複数の選択経路ＲＴから要求プログラムをロードする選択経路ＲＴを選択して、選択した選択経路ＲＴ上のノードＮにロードするプログラムＰを選択してもよい。
【０１１３】
この場合、サービス提供要求ｒ２に、要求プログラムをロードする選択経路ＲＴを特定する情報が含まれる構成であっても、サービスコントローラ１０３が、サービス提供要求ｒ２とともに、要求プログラムをロードする選択経路ＲＴを特定する情報を受信する構成であってもよい。
【０１１４】
サービスコントローラ１０３が経路設定要求ｒ１およびサービス提供要求ｒ２を独立に受信する構成とすることで、経路設定とロードするプログラムＰの選択を独立して実行し、例えば、経路設定要求ｒ１を受信せずサービス提供要求ｒ２を受信した場合に、既に設定した経路を変更せずに、複数の設定ずみの経路のうちの１つに対してプログラムＰをロードすることができ、また、既にロードされたプログラムＰを変更することもできるため、プログラムＰのロード先の決定を柔軟に行うことができる。また、ネットワーク内の計算リソースの効率的な活用を図ることができる。
【０１１５】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【０１１６】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【０１１７】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【０１１８】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【０１１９】
１００  通信システム
１０１  パケットトランスポートネットワーク
１０３  サービスコントローラ
５０２  経路生成部
５０３  ノードリソース監視部
５０４  ソフトウェア管理部
５０５  ソフトウェアロード部
７０２  ＶＭ管理部
７０６  入出力処理部
７２１  計算リソース監視部
７２２  プログラム格納部
Ｎ  ノード
Ｔ１  ソフト機能テーブル
Ｔ２  計算リソース管理テーブル
Ｔ４  計算リソーステーブル
Ｔ５  候補ノードテーブル
【図１】
2016144133.tif 000003
【図２】
2016144133.tif 000004
【図３】
2016144133.tif 000005
【図４】
2016144133.tif 000006
【図５】
2016144133.tif 000007
【図６】
2016144133.tif 000008
【図７】
2016144133.tif 000009
【図８】
2016144133.tif 000010
【図９】
2016144133.tif 000011