(57)【要約】【課題】効率的な通信システムを設計できる設計方法を提案する。【解決手段】制御装置は、受信部、算出部、決定部、送信部を備える。受信部は、通信経路の生成要求を受信する。算出部は、通信経路中の通信装置が行う処理に使用する複数の処理条件を、通信経路の生成に使用可能な通信装置に割り振ったパターンを算出する。決定部は、通信装置に設定される処理条件の数と転送速度の予測値を対応付けた予測情報に基づいて、算出部が算出したパターンから、決定パターンを決定する。送信部は、決定パターンに沿って、決定パターンで使用される通信装置の各々に、処理条件の設定を要求する制御パケットを送信する。【選択図】図２
2018011217.tif 000002
【特許請求の範囲】
【請求項１】
通信経路の生成要求を受信する受信部と、
前記通信経路中の通信装置が行う処理に使用する複数の処理条件を、前記通信経路の生成に使用可能な通信装置に割り振ったパターンを算出する算出部と、
前記通信装置に設定される処理条件の数と転送速度の予測値を対応付けた予測情報に基づいて、前記算出部が算出したパターンから、決定パターンを決定する決定部と、
前記決定パターンに沿って、前記決定パターンで使用される通信装置の各々に、前記処理条件の設定を要求する制御パケットを送信する送信部
を備えることを特徴とする制御装置。
【請求項２】
前記算出部は、前記複数の処理条件のうち、第１の処理に使用される処理条件と、第２の処理に使用される処理条件の両方を１つの通信装置に割り振った第１の割り振りパターンと、前記第１の処理に使用される処理条件と前記第２の処理に使用される処理条件を異なる通信装置に割り振った第２の割り振りパターンを算出し、
前記決定部は、前記第１の割り振りパターンと前記第２の割り振りパターンのいずれでも、前記予測情報を用いて計算した転送速度が前記通信経路に要求される転送速度以上である場合、前記第１の割り振りパターンを前記第２の割り振りパターンより優先する
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記算出部は、前記通信経路中の通信装置の各々が仮想マシンである場合、各通信装置として動作する仮想マシンに前記複数の処理対象を割り振ったパターンと、各通信装置として動作する仮想マシンに割り当てるＣＰＵコアの数の設定の組み合わせを算出し、
前記決定部は、
前記組み合わせのうちで、前記予測情報を用いて計算した転送速度が前記通信経路に要求される転送速度以上であるパターンを選択し、
選択したパターンのうちで、使用するＣＰＵコアの数が相対的に小さいパターンを前記決定パターンとして決定する
ことを特徴とする請求項１または２に記載の制御装置。
【請求項４】
前記決定部は、
前記通信経路が前記決定パターンに従って生成された後で、前記通信経路中の通信装置が行う処理に使用する新たな処理条件を取得すると、前記新たな処理条件を適用可能な処理が割り当てられている対象通信装置を特定し、
前記対象通信装置に前記新たな処理条件を登録したときの前記対象通信装置からのパケットの転送速度を、前記予測情報を用いて予測し、
前記新たな処理条件を登録したときの前記対象通信装置からのパケットの転送速度が、前記通信経路に要求される転送速度以上であると予測される場合、前記対象通信装置に前記新たな処理条件を登録することを決定する
ことを特徴とする請求項１〜３のいずれか１項に記載の制御装置。
【請求項５】
前記決定部は、前記新たな処理条件を登録したときの前記対象通信装置からのパケットの転送速度が、前記通信経路に要求される転送速度未満であると予測される場合、前記通信経路に１つ以上の新たな通信装置を追加することを決定し、
前記算出部は、前記１つ以上の新たな通信装置に前記新たな処理条件を割り振ったパターンを算出し、
前記決定部は、前記予測情報に基づいて、前記新たな処理条件の登録に使用するパターンを、前記算出部が算出したパターンから選択する
ことを特徴とする請求項４に記載の制御装置。
【請求項６】
前記受信部は、第１の通信経路の生成要求と第２の通信経路の生成要求を受信し、
前記算出部は、
前記第１の通信経路と前記第２の通信経路のいずれでも共通して行われる共通処理を特定し、
前記共通処理で使用する処理条件を割り当てる通信装置を、前記第１の通信経路と前記第２の通信経路の両方が通過する通信装置とするパターンを含む第１のパターン群と、前記第１の通信経路では前記共通処理で使用する処理条件を第１の通信装置に割り当てるとともに、前記第２の通信経路では前記共通処理で使用する処理条件を第２の通信装置に割り当てたパターンを含む第２のパターン群を算出し、
前記決定部は、前記第１のパターン群と前記第２のパターン群の中から、前記予測情報に基づいて、決定パターンを決定する
ことを特徴とする請求項１〜５のいずれか１項に記載の制御装置。
【請求項７】
通信装置を制御する制御装置が行う処理方法において、
通信経路の生成要求を受信し、
前記通信経路中の通信装置が行う処理に使用する複数の処理条件を、前記通信経路の生成に使用可能な通信装置に割り振ったパターンを算出し、
算出したパターンから、前記通信装置に設定される処理条件の数と転送速度の予測値を対応付けた予測情報に基づいて、決定パターンを決定し、
前記決定パターンに沿って、前記決定パターンで使用される通信装置の各々に、前記処理条件の設定を要求する制御パケットを送信する
処理を制御装置が行うことを特徴とする処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信経路の設計に関する処理方法と制御装置に関する。
【背景技術】
【０００２】
近年、トラフィック増大に伴う設備投資や運用管理コストの増加を抑えるため、ＳＤＮ（Software-Defined Networking）やＮＦＶ（Network Functions Virtualization）などの技術が注目されている。ＳＤＮは、汎用スイッチの通信設定をソフトウェアにより実現する技術である。一方、ＮＦＶはファイヤーウオールやロードバランサなどの機器によって提供される処理と同様の処理を行わせるソフトウェアを、汎用的に用いられるサーバに実行させる技術である。これらの技術により、汎用ハードウェアとソフトウェアを用いて様々な処理を実現できるため、コストダウンが見込める上、転送経路中で行われる処理の高機能化を実現することもできる。
【０００３】
ＮＦＶシステムでは、ＮＦＶを実現するサーバでアプリケーションが実行される。サーバで実行されるアプリケーションは、仮想ネットワーク機能（ＶＮＦ：Virtualized Network Functions)の実現に使用される。さらに、ＮＦＶシステムを制御するＮＦＶオーケストレータもＮＦＶシステムに含まれる。ＮＦＶシステムでは、ユーザからの要求に応じてサーバ上で起動された仮想マシン（ＶＭ）にアプリケーションを実行させるとともに、仮想マシン間を接続することで、ユーザから要求されたネットワーク機能を提供することができる。
【０００４】
ＳＤＮ／ＮＦＶのユースケースとして、サービスチェインが挙げられる。サービスチェインでは、ユーザが通信する際に、通信事業者が、クラウド上でファイヤーウオール、アンチウィルス、侵入防止機器などのネットワークセキュリティ機器を実現し、ネットワークサービスとして提供する。
【０００５】
図１は、サービスチェインの例を説明する図である。通信事業者は、広域ネットワーク３中にデータセンター５を保持している。制御装置６は、ユーザからの要求を受信すると、データセンター５中の物理サーバ８（８ａ〜８ｆ）を用いて、要求された通信経路を実現するために、サービスチェインを生成する。例えば、ＵＲＬ（Uniform Resource Locator）フィルタ、不正侵入防止装置、ファイヤーウオールを経てインターネット４に至る経路の設定の要求を、企業２ａから制御装置６が受信したとする。すると、制御装置６は、要求に応じて、データセンター５中の物理サーバ８に仮想マシンを起動させるとともに、起動した仮想マシンを用いて、企業２ａから要求された機能を有するサービスチェイン（矢印Ａ）を生成する。一方、企業２ｂは、アンチウィルスとファイヤーウオールを介して拠点７と通信する経路の生成を制御装置６に要求したとする。すると、制御装置６は、物理サーバ８に起動させた仮想マシンを用いて、矢印Ｂに示すサービスチェインを生成する。このようなサービスでは、ユーザのサービスチェインに対して、スループットの契約（ＳＬＡ：Service Level Agreement）が行われることが多い。スループットの契約が行われると、サービスチェインの性能保証が求められる。
【０００６】
関連する技術として、分散エージェントでのリソース利用状況とプロセスの実行状況を取得し、得られた情報が処理の目標値やリソース仕様に対する制約に合致していない場合に、リソースを再割り当てする管理方法が提案されている（例えば、特許文献１など）。また、汎用プロセッサによって送信されたオリジナルパケットに対して、コプロセッサがアプリケーションレイヤでの解析を行って、汎用プロセッサがコプロセッサでの解析結果に従って処理を行う方法も提案されている（例えば、特許文献２など）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−７４０５６号公報
【特許文献２】特表２０１５−５３７２７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
制御装置６は、サービスチェイン中の各仮想マシンに１つのＶＮＦを割り当てた上で、物理サーバ８が備えるＣＰＵ（Central Processing Unit）コアなどのリソースを、その仮想マシンに割り当てたＶＮＦの実現に使用する量を超えて割り当てることが多い。この場合、サービスチェイン中の各仮想マシンは、その仮想マシンに割り当てられたＶＮＦの実行をしても、さらに他の処理が可能な分のリソースを確保することになり、システム中の物理サーバ８が効率的に使用されない。このような問題は、ハードウェア装置に所定の処理を割り振って、システムを生成する場合にも発生しうる。
【０００９】
本発明は、効率的な通信システムを設計できる設計方法を提案することを目的とする。
【課題を解決するための手段】
【００１０】
ある１つの態様にかかる制御装置は、受信部、算出部、決定部、送信部を備える。受信部は、通信経路の生成要求を受信する。算出部は、前記通信経路中の通信装置が行う処理に使用する複数の処理条件を、前記通信経路の生成に使用可能な通信装置に割り振ったパターンを算出する。決定部は、前記通信装置に設定される処理条件の数と転送速度の予測値を対応付けた予測情報に基づいて、前記算出部が算出したパターンから、決定パターンを決定する。送信部は、前記決定パターンに沿って、前記決定パターンで使用される通信装置の各々に、前記処理条件の設定を要求する制御パケットを送信する。
【発明の効果】
【００１１】
効率的な通信システムを設計できる。
【図面の簡単な説明】
【００１２】
【図１】サービスチェインの例を説明する図である。
【図２】実施形態にかかる設計方法の例を説明する図である。
【図３】制御装置の構成の例を説明する図である。
【図４】制御装置のハードウェア構成の例を説明する図である。
【図５】サービスチェインで行われる処理の例を説明する図である。
【図６】シグネチャ数とスループットの関係を説明する図である。
【図７】割り振りパターンとＣＰＵコア数の組み合わせの例を説明する図である。
【図８】各組み合わせで得られるスループットの計算例を説明する図である。
【図９】第１の実施形態にかかる設計方法の例を説明するフローチャートである。
【図１０】シグネチャが追加される場合の例を説明する図である。
【図１１Ａ】第２の実施形態にかかる設計方法の例を説明するフローチャートである。
【図１１Ｂ】第２の実施形態にかかる設計方法の例を説明するフローチャートである。
【図１２】第３の実施形態にかかる変数の設定例を説明する図である。
【図１３】第３の実施形態にかかる制約条件の設定例を説明する図である。
【図１４】設計結果の例を説明する図である。
【図１５】第４の実施形態にかかる割り振りパターンの例を説明する図である。
【図１６】各割り振りパターンで得られるスループットの計算例を説明する図である。
【図１７】第４の実施形態にかかる設計方法の例を説明するフローチャートである。
【発明を実施するための形態】
【００１３】
図２は、実施形態にかかる設計方法の例を説明する図である。実施形態にかかる設計方法を行う制御装置１０（図３を参照）は、ユーザの端末などから通信経路の設定要求を受信する（ステップＳ１）。通信経路は、サービスチェインを含む。制御装置１０は、受信した設定要求で要求されているスループットとネットワーク機能の種類を特定する。例えば、設定要求が図２中のＲ１に示すように、ネットワーク機能としてアンチウィルス、ファイヤーウオール（ＦＷ）、不正侵入防止機能（ＩＰＳ、Intrusion Prevention System）を含むとする。さらに、サービスチェイン要求Ｒ１では、１Ｇｂｐｓのスループットが要求されているとする。
【００１４】
以下の説明では、セキュリティ保持のために用いられるネットワーク機能は、いずれも、ＤＰＩ（Deep Packet Inspection）とフィルタ処理の組み合わせによって実現されるものとする。通信装置は、ＤＰＩでの処理に用いる情報として、予め、不正コード（シグネチャ）を保持しており、入力されたパケットとシグネチャとの比較結果により、不正なパケットを廃棄する。このため、いずれのシグネチャを登録するかに応じて、ネットワーク機能で実現される処理を選択することができる。ここで、シグネチャとして１つの通信装置に登録する情報は、１つの機能を実現するためのシグネチャだけであってもよく、複数の機能を実現するためのシグネチャを合わせたものであってもよい。さらに、１つの機能を実現するためのシグネチャの一部が１つの通信装置に登録されてもよい。
【００１５】
ステップＳ２において、制御装置１０は、通信経路に使用可能な通信装置５０へのシグネチャの割り振りパターンを計算する。このとき、制御装置１０は、通信装置５０へのシグネチャの割り振りパターンとして、設定要求Ｒ１で要求された機能を実行する際に可能な全てのパターンを求める。ここで、シグネチャの割り振りパターンとして、通信経路の生成の際に使用される通信装置５０の数が異なるパターンも求められる。
【００１６】
例えば、設定要求がＲ１に示すとおりである場合、制御装置１０は、パターン１からパターンｙまでの様々なパターンを求める。パターン１は、３つの通信装置５０（５０ａ〜５０ｃ）を用いるパターンである。パターン１では、通信装置５０ａにアンチウィルスを実行するためのシグネチャを設定し、通信装置５０ｂにはＦＷを実行するためのシグネチャ、通信装置５０ｃにはＩＰＳを実行するためのシグネチャを登録する。パターンｘでは、通信装置５０ａと通信装置５０ｂが使用される場合のパターンが求められている。パターンｘでは、通信装置５０ａにアンチウィルスを実行するためのシグネチャを設定し、通信装置５０ｂにはＦＷとＩＰＳを実行するためのシグネチャを登録する。さらに、パターンｙでは、通信装置５０ａにアンチウィルス、ＦＷ、ＩＰＳの全てを実行するためのシグネチャを設定する。
【００１７】
シグネチャの割り振りパターンを決定すると、制御装置１０は、各パターンを用いた場合のスループットを推定する（ステップＳ３）。このとき、制御装置１０は、各仮想マシンが処理するシグネチャの数と得られるスループットの予測値を計算するためのスループットデータを予め保持している。制御装置１０は、得られたパターンの各々について、そのパターンに含まれている通信装置５０が、その通信装置５０に登録される予定のシグネチャを実行する際に得られるスループットの予測値を求め、予測値のうちの最低値を推定されるスループットとする。
【００１８】
制御装置１０は、各パターンについてスループットを推定すると、推定したスループットを用いて、通信経路の設定に使用するパターンを決定する（ステップＳ４）。例えば、制御装置１０は、シグネチャの割り振りパターンのうちで、スループットの推定値がユーザから要求されているスループット以上であるパターンを選択した上で、選択したパターンの中から、使用するリソースが最少のパターンを決定することができる。ここで、リソースは、通信装置５０の数であっても良い。また、通信装置５０が仮想マシンとして実行される場合、リソースは、各仮想マシンの実現に使用されるＣＰＵ（Central Processing Unit）コアの数や各仮想マシンでの処理に使用されるメモリの容量などであっても良い。制御装置１０は、決定したパターンに基づいて、通信経路を設定し、シグネチャを通信装置５０に登録する（ステップＳ５）。
【００１９】
このように、実施形態にかかる設計方法では、１つの通信装置５０で１つのネットワーク機能を実現させる場合以外のパターンを含めて、設定可能なシグネチャの割り振りパターンを計算する。このため、制御装置１０は、１つの通信装置５０が複数のＶＮＦを実現するパターンや、１つのＶＮＦが複数の通信装置５０で実現されるパターンも含めた候補の中から、経路の設計に使用するパターンを選択できる。このため、各通信装置５０に１つのＶＮＦを割り当てる場合に比べて、効率的に通信装置５０を使用するためのシグネチャの配置を見つけやすく、通信システムを効率的に設定しやすくなる。
【００２０】
なお、以上の説明では、通信装置５０が用いられる場合を例として説明したが、通信装置５０は、仮想マシンと物理サーバ８のいずれであっても良い。通信装置５０が物理サーバ８である場合、通信装置５０として使用される物理サーバ８の各々にシグネチャを設定することによって、セキュリティ機能を実現可能なネットワークを設計できる。
【００２１】
＜装置構成＞
図３は、制御装置１０の構成の例を説明する図である。制御装置１０は、通信部１１、制御部２０、記憶部３０を備える。通信部１１は、受信部１２と送信部１３を有する。制御部２０は、受付処理部２１、パターン算出部２２、決定部２３、経路計算部２４、シグネチャ登録部２５、装置設定部２６、経路設定部２７を有し、オプションとして、計測処理部２８を有する。記憶部３０は、スループットデータベース３１、装置データベース３２、アプリ設定情報３３、ＮＷステートデータベース３４、シグネチャ数情報３５を格納する。
【００２２】
スループットデータベース３１は、シグネチャの数と得られるスループットの予測値の関係を示す。スループットデータベース３１の例は後述する（図６）。アプリ設定情報３３は、仮想マシンで実行される各アプリケーションの設定情報であり、各アプリケーションに含まれるシグネチャの数を含む。なお、アプリ設定情報３３は、適宜、セキュリティ機能を提供している提供元やオペレータが用いる管理端末から送られる制御情報によって、更新され得る。例えば、新たなウィルスが発見された場合は、新たなウィルスに対応するためのシグネチャが追加され、シグネチャの情報とともに、アプリ設定情報３３の更新情報を制御装置１０が受信する。装置データベース３２は、物理サーバ８によって実現される各仮想マシンの状態を保持する。例えば、仮想マシンが起動中であるかを示す情報や、各仮想マシンにいくつのＣＰＵコアが割り当てられるかなどの情報が含まれ得る。ＮＷステートデータベース３４は、仮想マシン間の接続状況や経路情報を含む。
【００２３】
設定要求情報３５は、生成中のサービスチェインについての情報を含む。設定要求情報３５には、例えば、要求されたネットワーク機能の種類、ユーザから要求されたスループット、サービスチェイン要求の送信元などの情報が含まれる。なお、複数のサービスチェイン要求を並行して制御装置１０が処理する場合には、処理中の個々のサービスチェインを特定可能な識別情報が含められてもよい。この場合、制御部２０での処理は、サービスチェイン要求ごとに、識別情報に対応付けて行われる。
【００２４】
受信部１２は、ユーザの端末や、データセンター５中の物理サーバ８からパケットを受信する。送信部１３は、ユーザの端末や、データセンター５中の物理サーバ８にパケットを送信する。
【００２５】
受付処理部２１は、受信部１２を介して、サービスチェイン要求を取得する。受付処理部２１は、サービスチェイン要求中の情報を、設定要求情報３５に記録する。パターン算出部２２は、設定要求情報３５を適宜参照して、シグネチャの割り振りパターンを算出する。決定部２３は、スループットデータベース３１中の情報を用いて、パターン算出部２２で計算された各パターンについて、スループットの推定値を求める。決定部２３は、ユーザから要求されたスループットを満たし、かつ、サービスチェインの生成に使用されるリソースが最少であるパターンを決定する。なお、該当するパターンが複数ある場合、決定部２３は、得られるスループットが相対的に高いパターンを、サービスチェインの設計に使用することを決定する。
【００２６】
経路計算部２４は、決定部２３で決定されたパターンに沿って、サービスチェインを設計する際に使用される仮想マシン間の通信経路を計算する。経路計算部２４は、計算で得られた経路情報を、ＮＷステートデータベース３４として格納する。装置設定部２６は、仮想マシンの起動処理を行うとともに、各仮想マシンの状況に応じて、装置データベース３２を更新する。シグネチャ登録部２５は、決定部２３で決定されたパターンに沿って、起動済みの仮想マシンにシグネチャを登録する。経路設定部２７は、仮想マシンが起動されると、ＮＷステートデータベース３４を用いて、経路設定を行う。
【００２７】
計測処理部２８を有する制御装置１０は、サービスチェインを用いた通信処理が行われている間、適宜、スループットを測定する。計測処理部２８は、シグネチャ数とスループットの実測値の組み合わせをスループットデータベース３１に登録することにより、スループットデータベース３１を更新する。
【００２８】
図４は、制御装置１０のハードウェア構成の例を説明する図である。制御装置１０は、プロセッサ１０１、メモリ１０２、バス１０３、ネットワーク接続装置１０４、記憶装置１０５を備える。プロセッサ１０１は、任意の処理回路であり、ＣＰＵであってもよい。メモリ１０２は、ＲＡＭ（Random Access Memory）とＲＯＭ（Read Only Memory）を含む。プロセッサ１０１は、メモリ１０２や記憶装置１０５に記憶されたプログラムを実行することができる。バス１０３は、プロセッサ１０１、メモリ１０２、ネットワーク接続装置１０４、記憶装置１０５を、相互にデータの送受信が可能になるように接続する。ネットワーク接続装置１０４は、ネットワーク中の他の装置との情報の入出力を行う。ネットワーク接続装置１０４は、例えば、ＮＩＣ（Network Interface Card）として実現される。制御装置１０において、プロセッサ１０１は、制御部２０として動作する。メモリ１０２と記憶装置１０５は、記憶部３０として動作する。ネットワーク接続装置１０４は、通信部１１を実現する。
【００２９】
オプションとして、制御装置１０は、入力装置、出力装置、可搬記憶媒体駆動装置の１つ以上を有していても良い。入力装置は、キーボードなど、情報の入力に使用される任意の装置であり、出力装置は、ディスプレイなど、データの出力に使用される任意の装置である。可搬記憶媒体駆動装置は、メモリ１０２や記憶装置１０５中のデータを可搬記憶媒体に出力することができ、また、可搬記憶媒体からプログラムやデータ等を読み出すことができる。ここで、可搬記憶媒体は、持ち運びが可能な任意の記憶媒体である。
【００３０】
＜第１の実施形態＞
第１の実施形態では、通信装置５０として仮想マシンが用いられ、サービスチェインの設定が要求される場合の例を説明する。従って、通信経路の設定要求として、サービスチェインの生成要求が使用される。サービスチェイン中の仮想マシンの各々は、サービスチェインに要求されるＶＮＦを実現するための処理を行う。まず、第１の実施形態で行われる処理の例を説明する前に、制御装置１０が保持するスループットデータベース３１について図５と図６を用いて説明する。
【００３１】
（Ａ）ＶＮＦの処理例とスループットデータベース３１の例
図５は、サービスチェインで行われる処理の例を説明する図である。図５の例では、サービスチェインに要求されるＶＮＦはセキュリティ機能である。以下の説明では、図５に示すように、いずれのネットワーク機能も、ＤＰＩとフィルタ処理を行う仮想マシンによって実現される。ネットワーク機能で実現する処理の内容に応じて、ＤＰＩに登録される処理条件は様々である。ケースＣ１は、ＵＲＬフィルタが行われる場合の処理の例である。ＵＲＬフィルタを行う仮想マシンには、不正コンテンツのコードがＤＰＩで使用されるシグネチャとして登録されている。ケースＣ１では、ＤＰＩの処理を行う仮想マシンは、入力されたパケットとシグネチャを比較する。入力されたパケットが、シグネチャのいずれかと一致する情報を含むと、仮想マシンは、そのパケットを廃棄する。一方、入力されたパケットに、シグネチャとして登録された不正コンテンツのコードのいずれも含まれていない場合、仮想マシンは、入力パケットを、サービスチェイン中の転送先に転送する。
【００３２】
ケースＣ２は、不正侵入防止を行う仮想マシンでの処理例である。不正侵入防止処理を行う仮想マシンには、不正侵入コードがＤＰＩで使用されるシグネチャとして登録されている。ケースＣ２でも、ＤＰＩの処理を行う仮想マシンは、入力されたパケットとシグネチャを比較し、シグネチャのいずれかと一致する情報を含む入力パケットを廃棄する。一方、入力されたパケットに、シグネチャとして登録された不正侵入コードのいずれも含まれていない場合、仮想マシンは、入力パケットを、サービスチェイン中の転送先に転送する。
【００３３】
ケースＣ３は、ウィルス対策処理を行う仮想マシンでの処理例である。ウィルス対策処理を行う仮想マシンには、ウィルスやスパムのコードがＤＰＩで使用されるシグネチャとして登録されている。ケースＣ３でも、ＤＰＩの処理を行う仮想マシンは、入力されたパケットとシグネチャを比較し、シグネチャのいずれかと一致する情報を含む入力パケットを廃棄する。一方、入力されたパケットが、シグネチャとして登録されたウィルスのコードとスパムコードのいずれも含まない場合、仮想マシンは、入力パケットを、サービスチェイン中の転送先に転送する。
【００３４】
図５のケースＣ１〜Ｃ３を参照しながら説明したように、サービスチェイン中のＶＮＦは、そのＶＮＦを実現する仮想マシンに登録されたシグネチャを用いたＤＰＩとフィルタリングにより実現される。このため、シグネチャの種類やＶＮＦの種類によらず、仮想マシンが処理するシグネチャ数が多くなるほど、その仮想マシンで得られるスループットの最大値は小さくなる。
【００３５】
図６は、シグネチャ数とスループットの関係を説明する図である。図６に示すグラフの横軸は、１つの仮想マシンに登録されるシグネチャの数であり、縦軸はその仮想マシンで得られるスループット限界である。ここで、ある仮想マシンでの「スループット限界」は、その仮想マシンにおいて、それ以上のスループットが出ない状態のときのスループットの値である。制御装置１０は、スループットデータベース３１として、予め、図６に示すグラフの情報を保持する。図６のグラフは、仮想マシンに横軸に示す数のシグネチャを登録したときに、その仮想マシンで得られるスループットの実測値やシミュレーション値を用いて生成される。白丸のプロットは、１つのＣＰＵコアを用いて実現された仮想マシンに設定されるシグネチャ数と、その仮想マシンで得られるスループット限界を表わす。スループット限界値は、その仮想マシンが処理するシグネチャ数に反比例すると近似した場合、近似曲線は、（１）式で表わせる。
【００３６】
Ｓｒ＝ｗ×Ｄ×Ｃ／（ａ＋ｂ×ｘ）  ・・・（１）
ここで、Ｓｒはスループット限界値である。Ｄは転送データサイズをビット単位で表わした値であり、ＣはＣＰＵコア数である。ａは転送対象のパケットの送受信などの処理にかかる遅延時間であり、シグネチャの数によって変動しない一定の値となる。ｂは、１つのシグネチャを用いた処理に起因して発生する処理遅延である。ｗはチューニング用の重みパラメータであり、例えば、フレーム長などの影響を受ける。
【００３７】
なお、スループットデータベース３１には、近似曲線上の複数の点についてのシグネチャ数とスループットの組み合わせが記録されていても良い。また、スループットデータベース３１として、得られた近似曲線について式（１）中のａ、ｂ、ｗの値が記録されていても良い。以下、近似曲線の特定に用いるａ、ｂ、ｗの値を、（ａ，ｂ，ｗ）の順に括弧中に並べて記載することがある。以下の説明では、１つのＣＰＵコアを用いて実現された仮想マシンを用いた場合には、（ａ，ｂ，ｗ）＝（ａ１，ｂ１，ｗ１）の近似曲線ＣＵ１が得られたとする。
【００３８】
白三角のプロットは、仮想マシンに２つのＣＰＵコアが割り当てられた場合に、仮想マシンに設定されるシグネチャ数と、その仮想マシンで得られるスループットの最大値の関係である。白三角のプロットについても、式（１）を用いて近似曲線を求めると、太い破線で示す近似曲線ＣＵ２が得られたとする。白三角のプロットを用いて求められた近似曲線ＣＵ２では、（ａ，ｂ，ｗ）＝（ａ２，ｂ２，ｗ２）であるとする。
【００３９】
十字（＋）のプロットは、仮想マシンに４つのＣＰＵコアが割り当てられた場合に、仮想マシンに設定されるシグネチャ数と、その仮想マシンで得られるスループットの最大値の関係である。十字のプロットについても、式（１）を用いて近似曲線を求めると、細い破線で示す近似曲線ＣＵ３が得られたとする。十字のプロットを用いて求められた近似曲線ＣＵ３では、（ａ，ｂ，ｗ）＝（ａ３，ｂ３，ｗ３）であるとする。
【００４０】
ここで、得られた近似曲線を比較すると、仮想マシンに割り当てられるＣＰＵコアの数が多くなるほど、その仮想マシンで得られるスループット限界値も大きくなることが分かる。例えば、同じシグネチャ数を処理する場合、ＣＰＵコアが２つの仮想マシンで得られるスループットは、ＣＰＵコアが１つの仮想マシンで得られるスループットの２倍である。同様に、同じシグネチャ数を処理する場合、ＣＰＵコアが４つの仮想マシンで得られるスループットは、ＣＰＵコアが１つの仮想マシンで得られるスループットの４倍である。
【００４１】
（Ｂ）生成要求を受信した際の処理
以下、制御装置１０がサービスチェインの生成要求を受信した際に行う処理の例を、パターンの計算、スループットの推定値の計算、適用するパターンの決定、設定処理に分けて説明する。なお、以下の説明では、計測処理部２８を含まない制御装置１０での処理を例として説明する。
【００４２】
（Ｂ１）パターンの計算
まず、制御装置１０の受信部１２は、サービスチェインの生成要求を受信する。受付処理部２１は、サービスチェインの生成要求を取得すると、サービスチェインに含める仮想マシンで実現するＶＮＦを特定する。以下の例では、アンチウィルス、ファイヤーウオール、ＩＰＳがサービスチェインに含められるとする。受付処理部２１は、サービスチェインの生成要求を設定要求情報３５に格納する。
【００４３】
パターン算出部２２は、設定要求情報３５が更新されると、新たに要求されたサービスチェインを生成するためにパターンの算出を開始する。パターン算出部２２は、サービスチェインで要求されたＶＮＦを実現するために使用するアプリケーションのシグネチャ数を、アプリ設定情報３３を用いて特定する。以下の例では、アンチウィルスで使用されるシグネチャ数は５０００であるとする。さらに、ファイヤーウオールで使用されるシグネチャ数は２０００であり、ＩＰＳで使用されるシグネチャ数は３０００であるとする。パターン算出部２２は、サービスチェインに含まれる仮想マシンの数が１台である場合から、サービスチェインにＶＮＦと同数の仮想マシンが含まれる場合までの各々のケースについて、適用可能なシグネチャの割り振りパターンを計算する。さらに、パターン算出部２２は、各ＶＮＦの実現に使用されるシグネチャ数を用いて、割り振りパターンの各々で、各仮想マシンに登録されるシグネチャの数も求める。
【００４４】
図７は、割り振りパターンとＣＰＵコア数の組み合わせの例を説明する図である。図７は、１つのサービスチェインに、アンチウィルス、ファイヤーウオール（ＦＷ）、ＩＰＳの３つのＶＮＦが含められることと、アンチウィルスが最初に適用されることが指定されている場合についての例である。この場合、パターン算出部２２は、１つの仮想マシンを用いる場合の割り振りパターンとして、図７のＡ１に示すように、アンチウィルス、ファイヤーウオール、ＩＰＳの全てを同じ仮想マシンで実現するパターンを求める。割り振りパターンＡ１では、１つの仮想マシンに、アンチウィルス、ファイヤーウオール、ＩＰＳの処理に用いられるシグネチャが登録されるので、５０００＋３０００＋２０００＝１００００のシグネチャが登録される。
【００４５】
パターン算出部２２は、２つの仮想マシンを用いる場合の割り振りパターンとして、図７のＡ２〜Ａ４を計算する。割り振りパターンＡ２では、アンチウィルスを１つの仮想マシンで実現し、ファイヤーウオールとＩＰＳを１つの仮想マシンで実現する。従って、割り振りパターンＡ２では、アンチウィルス処理を行う仮想マシンに５０００のシグネチャが登録される。一方、ファイヤーウオールとＩＰＳとして動作する仮想マシンにも、３０００＋２０００＝５０００のシグネチャが登録される。
【００４６】
割り振りパターンＡ３では、アンチウィルスとファイヤーウオールを１つの仮想マシンで実現し、アンチウィルス等を実現する仮想マシンとは異なる１つの仮想マシンでＩＰＳを実現する。割り振りパターンＡ３では、アンチウィルスとファイヤーウオールとして動作する仮想マシンに５０００＋２０００＝７０００のシグネチャが登録される。一方、ＩＰＳとして動作する仮想マシンには、３０００のシグネチャが登録される。
【００４７】
割り振りパターンＡ４では、アンチウィルスとＩＰＳを１つの仮想マシンで実現し、アンチウィルス等を実現する仮想マシンとは異なる１つの仮想マシンでファイヤーウオールを実現する。割り振りパターンＡ４では、アンチウィルスとＩＰＳとして動作する仮想マシンに５０００＋３０００＝８０００のシグネチャが登録される。一方、ファイヤーウオールとして動作する仮想マシンには、２０００のシグネチャが登録される。
【００４８】
パターン算出部２２は、３つの仮想マシンを用いる場合の割り振りパターンとして、図７のＡ５に示すように、アンチウィルス、ファイヤーウオール、ＩＰＳの各々を異なる仮想マシンで実現するパターンを求める。割り振りパターンＡ５では、アンチウィルスとして動作する仮想マシンに５０００のシグネチャが登録され、ファイヤーウオールとして動作する仮想マシンに２０００のシグネチャが登録される。さらに、ＩＰＳとして動作する仮想マシンには、３０００のシグネチャが登録される。
【００４９】
第１の実施形態で説明するように、通信装置５０が仮想マシンとして実現される場合、サービスチェイン中の仮想マシンの各々に割り当てるＣＰＵコア数は、設定によって変更され得る。そこで、パターン算出部２２は、各割り振りパターンに対して、仮想マシンの各々に使用可能なＣＰＵコア数の候補を求める。以下、割り振りパターンと、割り振りパターンに含まれている各仮想マシンへのＣＰＵコアの割り当て数の組み合わせを、組み合わせパターンと記載する。組み合わせパターンは、割り振りパターンとサービスチェインで使用されるＣＰＵコアの総数に対応付けて求められる。図７中のテーブルは、処理対象のサービスチェインの生成の際にＣＰＵコアを３つまで使用可能である場合に得られる組み合わせパターンである。
【００５０】
パターン算出部２２は、１つの仮想マシンを用いた際の割り振りパターンＡ１に対して、仮想マシンに割り当てられるＣＰＵコア数が１〜３の場合の組み合わせパターンを求める。割り振りパターンＡ１に対して得られる組み合わせパターンは、図７のテーブルの５番目のエントリの通りである。組み合わせパターンＰａ１では、アンチウィルス、ファイヤーウオール、ＩＰＳの全ての処理を、１つのＣＰＵコアを有する仮想マシンで行う。組み合わせパターンＰａ５では、アンチウィルス、ファイヤーウオール、ＩＰＳの処理を、２つのＣＰＵコアを有する仮想マシンで行う。組み合わせパターンＰａ１３では、アンチウィルス、ファイヤーウオール、ＩＰＳの処理を、３つのＣＰＵコアを有する仮想マシンで行う。
【００５１】
パターン算出部２２は、割り振りパターンＡ２に対して、図７のテーブルの２番目のエントリに示すように、組み合わせパターンＰａ２、Ｐａ７、Ｐａ８を求める。組み合わせパターンＰａ２では、アンチウィルス処理を行う仮想マシンに１つのＣＰＵコアが割り当てられ、ファイヤーウオールとＩＰＳとして動作する仮想マシンにも１つのＣＰＵコアが割り当てられる。組み合わせパターンＰａ７では、アンチウィルス処理を行う仮想マシンに２つのＣＰＵコアが割り当てられ、ファイヤーウオールとＩＰＳとして動作する仮想マシンに１つのＣＰＵコアが割り当てられる。組み合わせパターンＰａ８では、アンチウィルス処理を行う仮想マシンに１つのＣＰＵコアが割り当てられ、ファイヤーウオールとＩＰＳとして動作する仮想マシンに２つのＣＰＵコアが割り当てられる。
【００５２】
パターン算出部２２は、割り振りパターンＡ３に対して、図７のテーブルの３番目のエントリに示すように、組み合わせパターンＰａ３、Ｐａ９、Ｐａ１０を求める。組み合わせパターンＰａ３では、アンチウィルスとファイヤーウオールの処理を行う仮想マシンに１つのＣＰＵコアが割り当てられ、ＩＰＳとして動作する仮想マシンにも１つのＣＰＵコアが割り当てられる。組み合わせパターンＰａ９では、アンチウィルスとファイヤーウオールの処理を行う仮想マシンに２つのＣＰＵコアが割り当てられ、ＩＰＳとして動作する仮想マシンに１つのＣＰＵコアが割り当てられる。組み合わせパターンＰａ１０では、アンチウィルスとファイヤーウオールの処理を行う仮想マシンに１つのＣＰＵコアが割り当てられ、ＩＰＳとして動作する仮想マシンに２つのＣＰＵコアが割り当てられる。
【００５３】
パターン算出部２２は、割り振りパターンＡ４に対して、図７のテーブルの４番目のエントリに示すように、組み合わせパターンＰａ４、Ｐａ１１、Ｐａ１２を求める。組み合わせパターンＰａ４では、アンチウィルスとＩＰＳの処理を行う仮想マシンに１つのＣＰＵコアが割り当てられ、ファイヤーウオールとして動作する仮想マシンにも１つのＣＰＵコアが割り当てられる。組み合わせパターンＰａ１１では、アンチウィルスとＩＰＳの処理を行う仮想マシンに２つのＣＰＵコアが割り当てられ、ファイヤーウオールとして動作する仮想マシンに１つのＣＰＵコアが割り当てられる。組み合わせパターンＰａ１２では、アンチウィルスとＩＰＳの処理を行う仮想マシンに１つのＣＰＵコアが割り当てられ、ファイヤーウオールとして動作する仮想マシンに２つのＣＰＵコアが割り当てられる。
【００５４】
パターン算出部２２は、３つの仮想マシンを用いた割り振りパターンＡ５に対して、図７のテーブルの１番目のエントリに示す組み合わせパターンＰａ６を求める。組み合わせパターンＰａ６では、アンチウィルス、ファイヤーウオール、ＩＰＳのいずれかとして動作する仮想マシンの各々に、ＣＰＵコアを１つずつ割り当てる。
【００５５】
（Ｂ２）スループットの推定値の計算
パターン算出部２２での組み合わせパターンの算出が終わると、決定部２３は、得られた組合せパターンの各々について、スループットデータベース３１を用いて、スループットの推定値を求める。例えば、スループットデータベース３１に図６に示す近似曲線が記憶されているとする。すると、決定部２３は、各仮想マシンに割り当てられるＣＰＵコア数に応じた近似曲線を用いて、各仮想マシンでのスループットの推定値を求める。複数の仮想マシンが含まれている組み合わせパターンの場合、決定部２３は、各仮想マシンについてスループットの推定値を求め、推定値のうちの最小の値を、その組み合わせパターンで推定されるスループットとする。
【００５６】
例えば、組み合わせパターンＰａ１では１つのＣＰＵコアでシグネチャの処理が行われるため、組み合わせパターンＰａ１でのスループットの推定値を求める場合、決定部２３は、図６の近似曲線ＣＵ１を用いる。近似曲線ＣＵ１では、（１）式中の変数は、（ａ，ｂ，ｗ）＝（ａ１，ｂ１，ｗ１）である。そこで、Ｐａ１に対する推定スループット（Ｓｒ＿Ｐａ１）は、（２）式で計算される。なお、組み合わせパターンＰａ１では、ＣＰＵコア数（Ｃ）は１であり、処理対象のシグネチャ数ｘは１００００である。
【００５７】
Ｓｒ＿Ｐａ１＝ｗ１×Ｄ×Ｃ／（ａ１＋ｂ１×ｘ）
＝ｗ１×Ｄ×１／（ａ１＋ｂ１×１００００）・・・（２）
（２）式での計算により、Ｓｒ＿Ｐａ１＝０．６５Ｇｂｐｓという値が得られたとする。
【００５８】
図８は、各組み合わせで得られるスループットの推定値を、その組合せで用いられるＣＰＵコアの総数に対応付けて示している。図８中のＰａ１のプロットは、組み合わせパターンＰａ１に対して計算されたスループットの推定値である。
【００５９】
ＣＰＵコアが２つ用いられる場合の組み合わせパターンのうち、Ｐａ２〜Ｐａ４では、２つの仮想マシンに１つずつＣＰＵコアが割り当てられる。このため、組み合わせパターンＰａ２〜Ｐａ４では、組み合わせパターンＰａ１と同様に、近似曲線ＣＵ１を用いて各仮想マシンでのスループットの推定値が求められる。例えば、組み合わせパターンＰａ４においてアンチウィルスとＩＰＳの両方として動作する仮想マシンでは、ＣＰＵコア数（Ｃ）は１であり、処理対象のシグネチャ数ｘは８０００である。そこで、Ｐａ４においてアンチウィルスとＩＰＳの両方として動作する仮想マシンに対する推定スループット（Ｓｒ＿ＶＭ１）は、（３）式で計算される。
【００６０】
Ｓｒ＿ＶＭ１＝ｗ１×Ｄ×Ｃ／（ａ１＋ｂ１×ｘ）
＝ｗ１×Ｄ×１／（ａ１＋ｂ１×８０００）・・・（３）
（３）式での計算により、Ｓｒ＿ＶＭ１＝０．８Ｇｂｐｓという値が得られたとする。
【００６１】
一方、組み合わせパターンＰａ４においてファイヤーウオールとして動作する仮想マシンでは、ＣＰＵコア数（Ｃ）は１であり、処理対象のシグネチャ数ｘは２０００である。そこで、Ｐａ４においてファイヤーウオールとして動作する仮想マシンに対する推定スループット（Ｓｒ＿ＶＭ２）は、（３）式で計算される。
【００６２】
Ｓｒ＿ＶＭ２＝ｗ１×Ｄ×Ｃ／（ａ１＋ｂ１×ｘ）
＝ｗ１×Ｄ×１／（ａ１＋ｂ１×２０００）・・・（４）
（４）式での計算により、Ｓｒ＿ＶＭ２＝１．６Ｇｂｐｓという値が得られたとする。すると、決定部２３は、Ｓｒ＿ＶＭ２よりもＳｒ＿ＶＭ１の方が低い値であるので、組み合わせパターンＰａ４でのスループットの推定値として、Ｓｒ＿ＶＭ１の値（０．８Ｇｂｐｓ）を採用する。
【００６３】
決定部２３は、組み合わせパターンＰａ２、Ｐａ３についても、組み合わせパターンＰａ４と同様に処理を行う。組み合わせパターンＰａ２〜Ｐａ４に対する処理の結果として得られたスループットの推定値を図８のＰａ２〜Ｐａ４に示す。
【００６４】
組み合わせパターンＰａ５では、１つの仮想マシンにおいて、２つのＣＰＵコアが用いられている。このため、決定部２３は、スループットの推定の際に近似曲線ＣＵ２を用いる。近似曲線ＣＵ２では、（１）式中の変数は、（ａ，ｂ，ｗ）＝（ａ２，ｂ２，ｗ２）である。そこで、組み合わせパターンＰａ５に対する推定スループット（Ｓｒ＿Ｐａ５）は、（５）式で計算される。なお、組み合わせパターンＰａ５では、ＣＰＵコア数（Ｃ）は２であり、処理対象のシグネチャ数ｘは１００００である。
【００６５】
Ｓｒ＿Ｐａ５＝ｗ２×Ｄ×Ｃ／（ａ２＋ｂ２×ｘ）
＝ｗ２×Ｄ×２／（ａ２＋ｂ２×１００００）・・・（５）
（５）式での計算により、Ｓｒ＿Ｐａ５＝１．３Ｇｂｐｓという値が得られたとする。スループットの推定値Ｓｒ＿Ｐａ５を、図８のＰａ５に示す。
【００６６】
ＣＰＵコアの総数が３個の組み合わせのうち、組み合わせパターンＰａ６〜Ｐａ１２については、各仮想マシンに割り当てられるＣＰＵコアの数が１つか２つである。このため、決定部２３は、１つのＣＰＵコアで実現される仮想マシンについては近似曲線ＣＵ１を用い、２つのＣＰＵコアで実現される仮想マシンについては近似曲線ＣＵ２を用いることで各仮想マシンでのスループットを求める。その後、決定部２３は、各組み合わせパターンについて得られたスループットの最小値を推定値とする。組み合わせパターンＰａ６〜Ｐａ１２について得られたスループットの推定値は、図８において、Ｐａ６〜Ｐａ１２に示されている。
【００６７】
組み合わせパターンＰａ１３では、１つの仮想マシンに３つのＣＰＵコアが用いられるが、スループットデータベース３１には、図６と同様に、ＣＰＵコアが３つの仮想マシンについての近似曲線が含まれていないとする。この場合、決定部２３は、ＣＰＵコアが１つの場合の近似曲線を用いて得られたスループットの推定値を３倍する。図６を参照しながら説明したとおり、スループットの推定値は、処理対象のシグネチャ数が同じ場合は、処理に用いるＣＰＵコアの数に比例して大きくなるためである。Ｐａ１３について得られたスループットの推定値を図８のＰａ１３に示す。
【００６８】
（Ｂ３）適用するパターンの決定
決定部２３は、組合せパターンの各々について推定スループットを求めると、サービスチェインに要求されているスループット以上の推定スループットが得られた組み合わせパターンを、設定に使用する組み合わせの候補として選択する。例えば、サービスチェインに要求されているスループットが１Ｇｂｐｓであるとする。この場合、決定部２３は、組み合わせパターンＰａ２、Ｐａ５〜Ｐａ９、Ｐａ１１、Ｐａ１３を設定に使用する組み合わせの候補として選択する。
【００６９】
次に、得られた候補の中で、使用するＣＰＵコアの総数が小さい組み合わせパターンを、設定に使用する組み合わせとして選択する。図８の例では、推定スループットが要求されているスループット以上の組み合わせのパターンとして、ＣＰＵコアの総数が２コアの場合と３コアの場合が得られている。１つのサービスチェインの生成に使用されるＣＰＵコアの総数が多くなるほど、そのサービスチェインの設置や維持にかかるコストは大きくなる。そこで、決定部２３は、図８の例では、ＣＰＵコアの総数が２コアである組み合わせパターンＰａ２とＰａ５を選択する。図８の例のように、推定スループットの条件と、ＣＰＵコアの総数の条件の両方を用いて、組み合わせパターンを限定したときで、複数の組み合わせパターンが候補として残った場合、決定部２３は、推定スループットがより大きい組み合わせを採用する。従って、図８の例では、決定部２３は、組み合わせパターンＰａ５を、サービスチェインの設定に使用する組合せパターンに決定する。
【００７０】
（Ｂ４）設定処理
決定部２３は、サービスチェインの設定に使用する組合せパターン（決定パターン）を経路計算部２４、シグネチャ登録部２５、装置設定部２６に通知する。装置設定部２６は、決定パターンで用いられる仮想マシンを起動させ、仮想マシンの起動状態などを装置データベース３２に記録する。なお、仮想マシンの起動の処理は、任意の既知の方法を用いて行われうる。
【００７１】
シグネチャ登録部２５は、装置データベース３２を用いて仮想マシンの起動状態をモニタする。シグネチャ登録部２５は、起動が確認できた仮想マシンに対して、決定パターンでその仮想マシンに対応付けられているシグネチャを登録するための処理を行う。例えば、シグネチャ登録部２５は、登録しようとするシグネチャを含む制御パケットを、処理対象の仮想マシンに送信することにより、処理対象の仮想マシンにシグネチャの登録を要求する。
【００７２】
経路計算部２４は、決定パターンで特定されるサービスチェインを実現するために、仮想マシンの間での転送経路を計算する。経路計算部２４は、適宜、ＮＷステートデータベース３４を用いることにより、ネットワーク中のトポロジ情報などを取得して、経路計算を行う。経路計算部２４での経路の計算方法として、任意の既知の方法が採用されうる。経路計算部２４は、計算した経路の情報を経路設定部２７に出力する。経路設定部２７は、仮想マシン間での転送経路を設定するための処理を行う。例えば、経路設定部２７は、設定しようとする経路情報を含む制御メッセージを仮想マシンに送信することにより、処理対象の仮想マシンに経路設定を行わせる。以上の処理により、ユーザから要求されたサービスチェインが生成される。
【００７３】
図９は、第１の実施形態にかかる設計方法の例を説明するフローチャートである。図９に示すフローチャートは、パターン算出部２２で計算された各組合せパターンについてのスループットの推定と決定パターンの選択の処理の例を示している。図９では、変数ｍと変数ｎが使用される。変数ｍは、処理対象とした組み合わせパターンの数を計数するために使用され、変数ｎは、スループットの推定処理の対象とした仮想マシンの数を計数するために使用される。なお、図９では、紙面の関係から組み合わせパターンを、単に、「組み合わせ」と記載している。
【００７４】
決定部２３は、パターン算出部２２で計算された割り振りパターンとＣＰＵコアの組み合わせの数を定数Ｍとして求める（ステップＳ１１）。決定部２３は、変数ｍを１に設定する（ステップＳ１２）。決定部２３は、ｍ番目の組み合わせに含まれる仮想マシンの数（Ｎ）を取得し、変数ｎを１に設定する（ステップＳ１３、Ｓ１４）。決定部２３は、ｍ番目の組み合わせ中のｎ番目の仮想マシンのスループットを、スループットデータベース３１を用いて求める（ステップＳ１５）。決定部２３は、変数ｎが定数Ｎ以上であるかを判定する（ステップＳ１６）。変数ｎが定数Ｎ未満の場合、決定部２３は、変数ｎを１つインクリメントして、ステップＳ１５以降の処理を繰り返す（ステップＳ１６でＮｏ、ステップＳ１７）。
【００７５】
一方、変数ｎが定数Ｎ以上である場合、ｍ番目の組み合わせ中に含まれている全ての仮想マシンについて推定スループットが求められていることになる（ステップＳ１６でＹｅｓ）。そこで、決定部２３は、ｍ番目の組み合わせについて、最低のスループットが得られている仮想マシンを選択する（ステップＳ１８）。決定部２３は、ステップＳ１８で選んだ仮想マシンでのスループットを、ｍ番目の組み合わせで得られるスループットとする（ステップＳ１９）。決定部２３は、変数ｍが定数Ｍ以上であるかを判定する（ステップＳ２０）。変数ｍが定数Ｍ未満の場合、決定部２３は、変数ｍを１つインクリメントして、ステップＳ１３以降の処理を繰り返す（ステップＳ２０でＮｏ、ステップＳ２１）。
【００７６】
一方、変数ｍが定数Ｍ以上である場合、求められた組み合わせの全てについて推定スループットが求められていることになる（ステップＳ２０でＹｅｓ）。そこで、決定部２３は、要求されたスループット以上のスループットが得られる組合せを抽出する（ステップＳ２２）。さらに、決定部２３は、抽出した組み合わせの中から、使用されるＣＰＵコアの総数が１番少ない組み合わせを特定する（ステップＳ２３）。決定部２３は、特定した組み合わせの中で、スループットが最大の組み合わせを決定パターンとする（ステップＳ２４）。
【００７７】
以上説明したように、第１の実施形態にかかる設計方法では、１つの仮想マシンで１つのネットワーク機能を実現させる場合以外のパターンを含めて、設定可能なシグネチャの割り振りパターンを計算する。さらに、割り振りパターンとＣＰＵコアの割り当ての状況を組み合わせた組合せパターンのうちで、要求されたスループットを満たし、かつ、使用するリソース数がなるべく少ない組み合わせを、設定処理に使用するパターン（決定パターン）とする。このため、１つの仮想マシンに１つのＶＮＦを割り当てるケースだけを考えてサービスチェインを設計する場合に比べて、効率的に仮想マシンを使用できるようにシグネチャを配置できる。さらに、個々の仮想マシンに設定されるＣＰＵコアなどのリソースが異なるパターンについてもスループットを求めた上で、ユーザから要求されたスループットを満たしつつ、使用されるリソースの量が少なくなるようにサービスチェインが設計される。このため、第１の実施形態によると、通信システムを効率的に設定しやすくなる。
【００７８】
＜変形例＞
第１の実施形態の変形例として、制御装置１０が計測処理部２８を備えている場合について説明する。制御装置１０が計測処理部２８を備えている場合も、サービスチェインの設定は、第１の実施形態と同様に行われる。
【００７９】
計測処理部２８は、設定されたサービスチェイン中の個々の仮想マシンについて、単位時間当たりに入力されるパケットの量と、単位時間当たりに出力されるパケットの量を観測する。なお、仮想マシンに単位時間当たりに入力されるパケットの量と、仮想マシンから単位時間当たりに出力されるパケットの量の求め方は、任意の既知の方法が用いられる。
【００８０】
計測処理部２８は、仮想マシンに単位時間当たりに入力されるパケットの量が、同じ仮想マシンから単位時間当たりに出力されるパケットの量を上回ると、そのときに得られた情報を用いてスループットデータベース３１を更新する。例えば、ある仮想マシンに対してパケットが２Ｇｂｐｓで入力されているのに対して、その仮想マシンからのスループットが１．５Ｇｂｐｓであるとする。この場合、仮想マシンに登録されているシグネチャ数に対して、その仮想マシンに割り当てられているＣＰＵコア数で得られるスループットの最大値として、スループットの計測値をスループットデータベース３１に登録する。
【００８１】
なお、計測処理部２８での計測処理は、仮想マシンごとに行われる。また、各仮想マシンに登録されているシグネチャ数は、シグネチャ登録部２５での処理結果から特定されるものとする。なお、シグネチャ登録部２５は、シグネチャの登録結果を記憶部３０に記録していても良い。
【００８２】
一方、仮想マシンに単位時間当たりに入力されるパケットの量が、仮想マシンから単位時間当たりに出力されるパケットの量を超えていない場合、得られているスループットは、仮想マシンのスループット限界値ではない。このため、計測処理部２８は、仮想マシンに単位時間当たりに入力されるパケットの量が、仮想マシンから単位時間当たりに出力されるパケットの量を超えていない場合、計測結果をスループットデータベース３１に登録しない。
【００８３】
このように、サービスチェインの設定後に、実際の通信結果を用いてスループットデータベース３１が更新される場合、更新処理により、スループットデータベース３１の情報の信頼性が向上する。従って、スループットデータベース３１を用いたスループットの推定の精度も向上する。
【００８４】
＜第２の実施形態＞
第２の実施形態では、サービスチェインの設定後に、サービスチェインで提供されているＶＮＦで使用されるシグネチャが追加された場合の処理の例を説明する。
【００８５】
図１０は、シグネチャが追加される場合の例を説明する図である。図１０のサービスチェインＳＣ１１とＳＣ１２が設定されているとする。サービスチェインＳＣ１１には、２つの仮想マシンＶＭ１とＶＭ２が含まれている。仮想マシンＶＭ１には１つのＣＰＵコアが割り当てられており、アンチウィルス処理を行うための５０００個のシグネチャが登録されている。仮想マシンＶＭ２には１つのＣＰＵコアが割り当てられており、ＩＰＳ処理を行うための３０００個のシグネチャが登録されている。
【００８６】
一方、サービスチェインＳＣ１２には、１つの仮想マシンＶＭ３が含まれている。仮想マシンＶＭ３には４つのＣＰＵコアが割り当てられており、アンチウィルス処理を行うための５０００個のシグネチャと、ＩＰＳ処理を行うための３０００個のシグネチャが登録されている。
【００８７】
サービスチェインＳＣ１１とＳＣ１２が設定された後に、ＩＰＳ処理に使用されるシグネチャがＣ個追加され、アンチウィルス処理に使用されるシグネチャもＤ個追加されたとする。すると、ＩＰＳ処理やアンチウィルス処理のアプリケーションの提供者やオペレータは、追加されたシグネチャを制御装置１０に登録する。図１０の例では、追加されたシグネチャの登録処理は、ネットワーク経由で行われるとする。以下、図１０に示すケースについて行われる処理の例を、フローチャートを参照しながら説明する。
【００８８】
図１１Ａと図１１Ｂは、第２の実施形態にかかる設計方法の例を説明するフローチャートである。なお、図１１Ａでは、処理対象としたサービスの数を計数する際に、変数ｐを使用する。
【００８９】
制御装置１０の受信部１２は、追加されたシグネチャを受信する（ステップＳ３１）。受付処理部２１は、受信部１２を介して、追加されたシグネチャを含む情報を取得する。受付処理部２１は、追加されたシグネチャをアプリ設定情報３３に追加する。さらに、受付処理部２１は、シグネチャの追加が発生したことを決定部２３に通知する。このとき、受付処理部２１は、追加されたシグネチャを使用するアプリケーションの種類を、合わせて決定部２３に通知する。図１０に示す例では、受付処理部２１は、アンチウィルス処理に使用されるアプリケーションと、ＩＰＳ処理に使用されるアプリケーションにシグネチャの追加が発生したことを、決定部２３に通知する。
【００９０】
決定部２３は、シグネチャが追加されたサービスの総数Ｐを求める（ステップＳ３２）。図１０の例では、シグネチャの追加が発生したサービスの総数Ｐは２である。決定部２３は、変数ｐを１に設定する（ステップＳ３３）。決定部２３は、ｐ番目のサービスの処理に使用されている仮想マシンに対して、追加されたシグネチャを登録したときに得られるスループットを推定する（ステップＳ３４）。ステップＳ３４の処理において、決定部２３は、適宜、スループットデータベース３１を使用する。決定部２３は、ｐ番目のサービスの処理に使用されている仮想マシンに対して、ｐ番目のサービスに関連して追加されたシグネチャを登録したときのスループットが、要求されるスループットを満たすかを判定する（ステップＳ３５）。追加されたシグネチャを登録しても要求されるスループットを満たす場合、決定部２３は、ｐ番目のサービスについて追加されたシグネチャを、ｐ番目のサービスに使用されている仮想マシンに追加することを決定する（ステップＳ３５でＹｅｓ）。シグネチャ登録部２５は、決定部２３での決定に従って、ｐ番目のサービスについて追加されたシグネチャを、ｐ番目のサービスに使用されている仮想マシンに登録する（ステップＳ３６）。決定部２３は、変数ｐと定数Ｐを比較し、変数ｐが定数Ｐ以上の場合、処理を終了する（ステップＳ３７でＹｅｓ）。一方、変数ｐが定数Ｐ未満の場合、決定部２３は、変数ｐを１つインクリメントして、ステップＳ３４以降の処理を繰り返す（ステップＳ３７でＮｏ、ステップＳ３８）。
【００９１】
例えば、サービスチェインＳＣ１２において、ＩＰＳ処理に対して追加されたＣ個のシグネチャを仮想マシンＶＭ３に追加しても、仮想マシンＶＭ３で予測されるスループットが、サービスチェインの生成要求で要求されたスループットを上回っているとする。すると、シグネチャ登録部２５は、ＩＰＳ処理に対して追加されたＣ個のシグネチャを仮想マシンＶＭ３に追加する。次に、決定部２３は、アンチウィルス処理に対して追加されたＤ個のシグネチャを、仮想マシンＶＭ３にさらに追加した場合について、得られるスループットを、サービスチェインに要求されているスループットと比較する。ここでは、仮想マシンＶＭ３にシグネチャを追加したときに予測されるスループットが、サービスチェインの生成要求で要求されたスループットを上回っているとする。すると、シグネチャ登録部２５は、アンチウィルス処理に対して追加されたＤ個のシグネチャも仮想マシンＶＭ３に追加する。
【００９２】
次に、ステップＳ３５において、追加されたシグネチャを登録したときに仮想マシンで得られるスループットが、要求されるスループットを満たさないと判定された場合（ステップＳ３５でＮｏ）の処理を、図１１Ｂを参照しながら説明する。追加されたシグネチャを登録したときに、要求されるスループットを満たさない場合、決定部２３は、追加されたシグネチャを新たな仮想マシンに設定することを、パターン算出部２２に通知する。パターン算出部２２は、追加されたシグネチャの登録に使用する新たな仮想マシンについて適用可能な割り振りパターンと、ＣＰＵコアの割り当ての組み合わせを求める（ステップＳ３９）。決定部２３は、パターン算出部２２が求めた各々の組み合わせについて、得られるスループットを推定する（ステップＳ４０）。スループットの推定処理は第１の実施形態と同様に行われる。決定部２３は、スループットの推定値を用いて割り振りパターンとＣＰＵコアの組み合わせを決定する（ステップＳ４１）。ステップＳ４１での決定処理は、図８、図９を参照しながら説明した処理と同様である。その後、装置設定部２６や経路設定部２７は、サービスチェインに新たな仮想マシンを含める。さらに、シグネチャ登録部２５は、決定された組み合わせに応じて、シグネチャを登録する（ステップＳ４２）。
【００９３】
例えば、図１０に示すサービスチェインＳＣ１１では、仮想マシンＶＭ１にアンチウィルス処理に追加されたＤ個のシグネチャを追加すると、要求されたスループットが得られないとする。すると、パターン算出部２２は、サービスチェインに新たな仮想マシンを１つ以上追加したときについて、追加されたシグネチャの割り振りパターンを計算する。その結果、仮想マシンＶＭ４（図示せず）にＣＰＵコアを２つ割り当てて、ＩＰＳ処理に対して追加されたＣ個のシグネチャと、アンチウィルス処理に対して追加されたＤ個のシグネチャを仮想マシンＶＭ４に登録することが、決定部２３によって決定されたとする。すると、装置設定部２６は、仮想マシンＶＭ４をサービスチェインＳＣ１１に追加する。経路計算部２４は、サービスチェインＳＣ１１で用いる転送経路を計算しなおし、経路設定部２７に新たな経路情報の設定を行わせる。シグネチャ登録部２５は、新たに起動された仮想マシンＶＭ４に、追加されたシグネチャを、決定部２３で決定されたパターンに沿って登録する。
【００９４】
このように、サービスチェインの運用中に、サービスチェインで提供しているサービスを実現するアプリケーションで用いられるシグネチャが追加された場合であっても、効率的にリソースが使用されるようにシグネチャが仮想マシンに割り当てられる。従って、第２の実施形態によると、サービスチェインの運用中に、シグネチャが追加された場合であっても、効率的に通信システムを設計することができる。
【００９５】
＜第３の実施形態＞
第３の実施形態では、第１および第２の実施形態で説明した設計処理を、複数の組合せパターンについて簡便に計算するために、パターン算出部２２や決定部２３において、数学的記述を用いる場合の例について説明する。
【００９６】
図１２は、第３の実施形態にかかる変数の設定例を説明する図である。ユーザ１とユーザ２から、異なるサービスチェインの生成が制御装置１０に要求されたとする。以下、ケースＣ１１に示すように、ユーザ１から要求されたサービスチェインをＳＣ１、ユーザ２から要求されたサービスチェインをＳＣ２と記載する。サービスチェインＳＣ１では、機能Ａを提供するＶＮＦの後に機能Ｂを提供するＶＮＦを経由して、１０００Ｍｂｐｓのスループットとなることが要求されているとする。ここで、要求スループットをＴとし、Ｔの上付き文字として、サービスチェインの番号を記載するとする。すると、サービスチェインＳＣ１での要求スループットは、Ｔ１＝１０００Ｍｂｐｓと表わせる。サービスチェインＳＣ２では、機能Ｂを提供するＶＮＦの後に機能Ｃを提供するＶＮＦを経由して、５００Ｍｂｐｓのスループットとなることが要求されているとする。すると、サービスチェインＳＣ２での要求スループットは、Ｔ２＝５００Ｍｂｐｓと表わせる。
【００９７】
ケースＣ１２は、サービスチェインＳＣ１に含められる仮想マシンの例を示している。機能Ａと機能Ｂが異なる仮想マシンで提供される場合、ケースＣ１２の割り振りパターン１に示すように、機能Ａと機能Ｂのシグネチャが別々の仮想マシンに登録される。一方、機能Ａと機能Ｂが同じ仮想マシンで提供される場合、ケースＣ１２の割り振りパターン２に示すように、機能Ａと機能Ｂのシグネチャが同じ仮想マシンに登録される。
【００９８】
ケースＣ１３は、サービスチェインＳＣ２に含められる仮想マシンの例を示している。機能Ｂと機能Ｃが異なる仮想マシンで提供される場合、ケースＣ１３の割り振りパターン１に示すように、機能Ｂと機能Ｃのシグネチャが別々の仮想マシンに登録される。一方、機能Ｂと機能Ｃが同じ仮想マシンで提供される場合、ケースＣ１３の割り振りパターン２に示すように、機能Ｂと機能Ｃのシグネチャが同じ仮想マシンに登録される。
【００９９】
なお、サービスチェインＳＣ１とサービスチェインＳＣ２の両方が割り振りパターン１を用いて生成される場合、いずれのサービスチェインにおいても、機能Ｂは１つの仮想マシンから提供される。また、この場合、機能Ｂを提供する仮想マシンは、機能Ｂ以外の機能を提供していない。そこで、サービスチェインＳＣ１、ＳＣ２の両方が割り振りパターン１を用いて生成される場合、機能Ｂの提供に用いられる仮想マシンを、サービスチェインＳＣ１とサービスチェインＳＣ２で同じ仮想マシンに設定できる可能性もある。
【０１００】
次に、仮想マシンの生成を行うかを示す変数の設定について説明する。第３の実施形態では、サービスチェインごとに、ある機能を実現する各ＶＮＦについて、ＣＰＵコア数ｃを割り当てた仮想マシンを生成するかを表す変数ｘが設定される。ケースＣ１２に、サービスチェインＳＣ１の計算で使用される変数の例を示す。ｘの上付き文字は、その変数が用いられるサービスチェインの符号のうち、ＳＣに続いて記載されている番号であり、サービスチェインの識別に使用する。ｘの下付き文字は、カンマの前がＶＮＦで提供する機能の種類であり、カンマの後ろにＣＰＵコア数ｃが設定される。なお、ＣＰＵコア数ｃは、変数であるので、計算の際の条件で設定された範囲のいずれかが用いられ得る。
【０１０１】
例えば、ｘ１Ａ，ｃは、サービスチェインＳＣ１において、機能Ａとして動作し、ｃ個のＣＰＵコアが設定された仮想マシンを生成するかを記述する変数である。ＣＰＵコアの数が１つ（ｃ＝１）の場合はｘ１Ａ，１と記載され、ＣＰＵコアの数が２つ（ｃ＝２）の場合はｘ１Ａ，２と記載される。ここで、ｘ１Ａ，ｃなどの生成を行うかを表わす変数は、０か１のいずれかの値を取るものとする。ｘ１Ａ，ｃ＝１の場合、ｘ１Ａ，ｃで特定される仮想マシンを生成することを表す。一方、ｘ１Ａ，ｃ＝０の場合、ｘ１Ａ，ｃで特定される仮想マシンを生成しないことを表す。
【０１０２】
同様に、ｘ１Ｂ，ｃは、サービスチェインＳＣ１において、機能Ｂとして動作し、ｃ個のＣＰＵコアが設定された仮想マシンを生成するかを記述する変数である。ｘ１Ａ＋Ｂ，ｃは、サービスチェインＳＣ１において、機能Ａと機能Ｂの両方を提供し、ｃ個のＣＰＵコアが設定された仮想マシンを生成するかを記述する変数である。
【０１０３】
ケースＣ１３中の変数も仮想マシンの生成を行うかの記述に使用される。ｘ２Ｂ，ｃは、サービスチェインＳＣ２において、機能Ｂとして動作し、ｃ個のＣＰＵコアが設定された仮想マシンを生成するかを記述する変数である。ｘ２Ｃ，ｃは、サービスチェインＳＣ２において、機能Ｃとして動作し、ｃ個のＣＰＵコアが設定された仮想マシンを生成するかを記述する変数である。ｘ１Ｂ＋Ｃ，ｃは、サービスチェインＳＣ２において、機能Ｂと機能Ｃの両方を提供し、ｃ個のＣＰＵコアが設定された仮想マシンを生成するかを記述する変数である。
【０１０４】
次に、複数のサービスチェインにおいて、同じ仮想マシンが使用されうる場合を記述するために用いられる変数について説明する。複数のサービスチェインに含められる仮想マシンの生成を行うかの記述に用いられる変数では、サービスチェインの指定に用いられる上付き文字には、その仮想マシンが含められうる全てのサービスチェインの番号が含められる。例えば、ケースＣ１２とケースＣ１３において、サービスチェイン中で機能Ｂを提供する仮想マシンを共通化するかを表す変数としてｘ１＋２Ｂ，ｃが用いられる。ｘ１＋２Ｂ，ｃは、サービスチェインＳＣ１とＳＣ２の両方において機能Ｂとして動作し、ｃ個のＣＰＵコアが設定された仮想マシンを生成するかを記述する変数である。
【０１０５】
図１３のケースＣ２１は、第３の実施形態にかかる制約条件の設定例である。変数ｐは、あるサービスチェインにおいて、特定の割り振りパターンが使用されるかを示す。ｐの上付き文字は、その変数が用いられるサービスチェインの符号のうちでＳＣに続いて記載されている番号である。ｐの下付き文字は、そのサービスチェインで使用される割り振りパターンの種類である。例えば、式（１１）と式（１２）で定義されているｐ１１は、サービスチェインＳＣ１で割り振りパターン１が使用されるかを示す。一方、式（２１）と式（２２）で定義されているｐ２１は、サービスチェインＳＣ２で割り振りパターン１が使用されるかを示す。同様に、ｐ１２は、サービスチェインＳＣ１で割り振りパターン２が使用されるかを示す変数であり、ｐ２２は、サービスチェインＳＣ２で割り振りパターン２が使用されるかを示す変数である。
【０１０６】
式（１１）において、ｐ１１は、ｘ１Ａ，ｃについてＣＰＵコア数ｃが取りうる全てのパターンでとりうる値の総和と同じ値に定義されている。ここで、ｘ１Ａ，ｃで定義される変数のうち、決定パターンに採用されている変数では値が１となり、決定パターンに採用されていない変数では値が０となる。サービスチェインＳＣ１において割り振りパターン１が用いられる場合、機能Ａのみを提供する仮想マシンがいずれかのＣＰＵコア数を用いて生成されることになるので、ｐ１１は１となる。同様に、式（１２）では、ｐ１１は、機能Ｂのみを提供する仮想マシンがいずれかの形態で生成される可能性の総和に等しいことを定義している。すなわち、ｐ１１は、機能Ｂを提供する仮想マシンがサービスチェインＳＣ１用に生成される場合と、サービスチェインＳＣ１とＳＣ２での共用として生成される場合の総和に設定されている。式（１３）では、ｐ１２は、機能Ａと機能Ｂの両方を提供する仮想マシンがいずれかの形態で生成される可能性の総和に等しいことを定義している。
【０１０７】
ここで、サービスチェインＳＣ１で割り振りパターン１が採用される場合、サービスチェインＳＣ１では割り振りパターン２が採用されないことになる。換言すると、ｐ１１が１の場合には、ｐ１２は１にはならない。この条件が式（１４）に記載されている。従って、式（１４）は、サービスチェインＳＣ１においていずれかの割り振りパターンが選択されることを記述している。
【０１０８】
式（１５）〜（１７）は、サービスチェインＳＣ１で得られるスループットの条件を定義している式である。Ｆ（Ｓ）は、Ｓ個のシグネチャが登録された仮想マシンで得られるスループットである。Ｓの下付き文字のうちカンマの前の値はシグネチャによって提供される機能の種類を表わし、カンマの後の値はそのシグネチャを処理する仮想マシンに割り当てられるＣＰＵコア数を表す。例えば、Ｆ（ＳＡ，ｃ）は、機能Ａの提供に使用されるアプリケーションのシグネチャ数Ｓが、ｃ個のＣＰＵコアを備える仮想マシンに登録されたときに、その仮想マシンで得られるスループットである。式（１５）では、スループットは、Ｆ（ＳＡ，ｃ）とｘ１Ａ，ｃの積以下に設定されている。ここで、ｘ１Ａ，ｃとして表わされる変数のうち、サービスチェインＳＣ１の設計に採用される設定を表わす変数以外は０となる。従って、式（１５）の値は、サービスチェインＳＣ１で割り振りパターン１が採用される場合に、機能Ａを提供している仮想マシンで得られるスループットである。従って、式（１５）は、サービスチェインＳＣ１で割り振りパターン１が採用される場合に、機能Ａを提供している仮想マシンからのスループットがサービスチェインＳＣ１に要求されるスループット（Ｔ１）以上であることを条件として記載している。同様に、式（１６）は、サービスチェインＳＣ１で割り振りパターン１が採用される場合に、機能Ｂを提供している仮想マシンからのスループットがサービスチェインＳＣ１に要求されるスループット（Ｔ１）以上であることを条件としている。式（１７）は、サービスチェインＳＣ１で割り振りパターン２が採用される場合に、機能Ａと機能Ｂを提供している仮想マシンからのスループットがサービスチェインＳＣ１に要求されるスループット（Ｔ１）以上であることを条件としている。
【０１０９】
式（２１）〜（２７）では、式（１１）〜（１７）と同様の条件がサービスチェインＳＣ２について定義されている。例えば、式（２１）は、サービスチェインＳＣ２で割り振りパターン１が使用される可能性（ｐ２１）が、機能Ｂのみを提供する仮想マシンがいずれかの形態で生成される可能性に等しいことを定義している。式（２２）は、サービスチェインＳＣ２で割り振りパターン１が使用される可能性（ｐ２１）が、機能Ｃのみを提供する仮想マシンがいずれかの形態で生成される可能性に等しいことを定義している。式（２３）は、サービスチェインＳＣ２で割り振りパターン２が使用される可能性（ｐ２２）が、機能Ｂと機能Ｃの両方を提供する仮想マシンがいずれかの形態で生成される可能性に等しいことを定義している。式（２４）は、サービスチェインＳＣ２では、割り振りパターン１か割り振りパターン２のいずれか一方が適用されることを記述している。
【０１１０】
式（２５）は、サービスチェインＳＣ２で割り振りパターン１が採用される場合に、機能Ｂを提供している仮想マシンからのスループットがサービスチェインＳＣ２に要求されるスループット（Ｔ２）以上であることを条件として記載している。式（２６）は、サービスチェインＳＣ２で割り振りパターン１が採用される場合に、機能Ｃを提供している仮想マシンからのスループットがサービスチェインＳＣ２に要求されるスループット（Ｔ２）以上であることを条件としている。式（２７）は、サービスチェインＳＣ２で割り振りパターン２が採用される場合に、機能Ｂと機能Ｃを提供している仮想マシンからのスループットがサービスチェインＳＣ２に要求されるスループット（Ｔ２）以上であることを条件としている。
【０１１１】
式（３１）は、１つの仮想マシンから、サービスチェインＳＣ１とＳＣ２の両方に機能Ｂを提供することができるかを判定する際に用いられる。サービスチェインＳＣ１とＳＣ２の両方に機能Ｂを提供する仮想マシンは、サービスチェインＳＣ１とＳＣ２の両方でのパケットの処理を同時に行う可能性がある。そこで、サービスチェインＳＣ１とＳＣ２の両方で共有される仮想マシンでは、サービスチェインＳＣ１とＳＣ２の両方での要求されるスループットの和よりも大きなスループットが要求されることになる。式（３１）は、この条件を記述している。すなわち、サービスチェインＳＣ１とＳＣ２に機能Ｂを提供する仮想マシンのスループットは、サービスチェインＳＣ１とＳＣ２の両方での要求されるスループットの和以上であることが、式（３１）で条件付けられている。
【０１１２】
図１４は、図１３に記載された制約条件を用いて計算する目的関数と、目的関数の計算結果から得られる設計結果の例を示す。決定部２３は、図１３に記載された制約条件に従って、式（４１）に示す目的関数を計算する。目的関数には、設計対象とする全てのサービスチェインの全体で、各機能の処理に使用される仮想マシンに割り当てられるＣＰＵコアの数を最小とすることが記載されている。式（４１）において、ｘｕｆ，ｃは、ｕ番目のサービスチェインにおいて、ｃ個のＣＰＵコアを用いて機能ｆを実現する仮想マシンを生成する可能性があるかを示す。従って、ＣＰＵのコア数とｘｕｆ，ｃの積を全てのｃの値に対して総和を取ると、ｕ番目のサービスチェインにおいて機能ｆを実現する仮想マシンで用いるＣＰＵコア数となる。さらに、全ての機能と、全てのサービスチェインについて総和を取ることにより、最小化の対象が、並行して設計仕様とするサービスチェインの全体で利用するＣＰＵコアの総数となる。
【０１１３】
ここで、目的関数で合計される値のうち、ｘ１＋２Ｂ，ｃのように、複数の通信経路に含まれる仮想マシンの生成を行う可能性が含まれている場合の値は、１つの仮想マシンが複数の通信経路で共有されるパターンに相当する。一方、複数の通信経路に含まれる仮想マシンの生成を行う可能性が含まれていない場合の値は、複数の通信経路で仮想マシンを共有しないパターンに相当する。目的関数を処理することにより、決定部２３は、１つの仮想マシンが複数の通信経路で共有されるパターン群と、複数の通信経路で仮想マシンを共有しないパターン群を含む全てのパターンから、経路の設計に用いるパターンを決定していることになる。なお、ｘｕｆ，ｃについて、ＣＰＵコア数の割り当て状況でも総和をとることにより、決定部２３は、各パターンについて、ＣＰＵコアの割り当て状況が異なる組み合わせパターンも検討することになる。
【０１１４】
決定部２３が制約条件等を用いて目的関数を解析した結果、ケースＣ３１に示す解が得られたとする。ケースＣ３１の解では、ｐ１１＝１なので、サービスチェインＳＣ１では割り振りパターン１に沿って、機能Ａを提供する仮想マシンと機能Ｂを提供する仮想マシンが別に生成される。また、ｐ２１＝１なので、サービスチェインＳＣ２でも割り振りパターン１に沿って、機能Ｂを提供する仮想マシンと機能Ｃを提供する仮想マシンが別に生成される。ｘ１Ａ，１＝１より、サービスチェインＳＣ１で機能Ａを提供する仮想マシンにはＣＰＵコアが１つ割り当てられる。ｘ１＋２Ｂ，２＝１より、機能Ｂを提供する仮想マシンは、ＣＰＵコアが２つ割り当てられ、サービスチェインＳＣ１とＳＣ２の両方に使用される。ｘ２Ｃ，１＝１より、サービスチェインＳＣ２で機能Ｃを提供する仮想マシンにはＣＰＵコアが１つ割り当てられる。
【０１１５】
得られた情報を用いて仮想マシンの起動、経路の設定、仮想マシンへのシグネチャの設定などを行う方法は、第１の実施形態と同様である。ケースＣ３１に示す情報を用いると、ネットワークＮ１に示すように、サービスチェインＳＣ１とＳＣ２が生成される。サービスチェインＳＣ１は太い矢印で示されており、サービスチェインＳＣ２は細い矢印で示されている。なお、ネットワークＮ１の図では、各機能を提供する仮想マシンを表す四角形の下に、その仮想マシンに割り当てられているＣＰＵコア数が記載されている。
【０１１６】
次に、サービスチェイン間で共有する仮想マシンが無い場合に得られる解の例とネットワークの設計例を説明する。決定部２３が制約条件等を用いて目的関数を解析した結果、ケースＣ３２に示す解が得られたとする。ケースＣ３２の解では、ｐ１２＝１なので、サービスチェインＳＣ１では割り振りパターン２に沿って、機能Ａと機能Ｂの両方を提供する仮想マシンが生成される。また、ｐ２２＝１が得られているので、サービスチェインＳＣ２でも割り振りパターン２に沿って、機能Ｂと機能Ｃの両方を提供する仮想マシンが生成される。ｘ１Ａ＋Ｂ，２＝１より、サービスチェインＳＣ１で機能Ａと機能Ｂを提供する仮想マシンにはＣＰＵコアが２つ割り当てられる。ｘ２Ｂ＋Ｃ，１＝１より、サービスチェインＳＣ２で機能Ｂと機能Ｃを提供する仮想マシンにはＣＰＵコアが１つ割り当てられる。
【０１１７】
ケースＣ３２に示す情報を用いると、ネットワークＮ２に示すように、サービスチェインＳＣ１とＳＣ２が生成される。サービスチェインＳＣ１は太い矢印で示されており、サービスチェインＳＣ２は細い矢印で示されている。ネットワークＮ２の図でも、各機能を提供する仮想マシンを表す四角形の下に、その仮想マシンに割り当てられているＣＰＵコア数が記載されている。
【０１１８】
なお、以上の説明は一例であり、並行して設計されるサービスチェインの数や、各サービスチェインに含められるＶＮＦの数は実装に応じて任意に変更され得る。
【０１１９】
以上説明したように、目的関数を用いた計算処理により、各サービスチェインの設定に使用するパターンを用いると、第１の実施形態に比べて簡便に設定に用いるパターンを特定できる。例えば、第１の実施形態の場合、図７、図８を参照しながら説明したように、各サービスチェインの設計を個別に決定する。従って、複数のサービスチェインで仮想マシンを共有したほうがシステム全体で使用するＣＰＵコア数を削減できるかは検討されない。一方、第３の実施形態では、並行して設計される複数の数のサービスチェインの間で仮想マシンを共有する場合も含めて、使用するＣＰＵコア数の少ない設計が求められる。従って、第３の実施形態では、第１の実施形態よりもさらに効率的にシステムを設計できる場合がある。
【０１２０】
＜第４の実施形態＞
第４の実施形態では、シグネチャを登録した物理アプライアンスを用いて通信経路を設計する場合の例を説明する。以下の説明では、「物理アプライアンス」は、セキュリティ処理を専用とした専用装置である。なお、物理アプライアンスは、物理サーバなどによって実現されても良い。
【０１２１】
第４の実施形態においても、制御装置１０は、ユーザやオペレータからの通信経路の設計要求を受信する。受付処理部２１は、受信部１２を介して、通信経路の設定要求を受信すると、設定要求で要求された情報を設定要求情報３５として記憶部３０に格納する。パターン算出部２２は、第１の実施形態と同様の処理により、通信経路中でのセキュリティ機能の実現に使用するシグネチャの数をアプリ設定情報３３から取得すると共に、シグネチャの割り振りパターンを求める。
【０１２２】
図１５は、第４の実施形態にかかる割り振りパターンの例を説明する図である。図１５は、アンチウィルス、ファイヤーウオール（ＦＷ）、ＩＰＳの３つのセキュリティ機能を通信経路に含めることと、通信経路においてアンチウィルスが最初に適用されることが指定されている場合に得られる割り振りパターンの例である。図１５の例では、アンチウィルスで５０００のシグネチャが使用され、ファイヤーウオールで２０００のシグネチャ、ＩＰＳで３０００のシグネチャが使用されるとする。
【０１２３】
割り振りパターンＰａ２１では、アンチウィルス、ファイヤーウオール、ＩＰＳの各々のシグネチャが異なる物理アプライアンスで実現される。このため、通信経路には３つの物理アプライアンスが含められる。各物理アプライアンスには、その物理アプライアンスが処理するセキュリティ機能のシグネチャが登録対象として割り振られる。
【０１２４】
割り振りパターンＰａ２２では、アンチウィルスを１つの物理アプライアンスで実現し、ファイヤーウオールとＩＰＳを別の物理アプライアンスで実現する。このため、アンチウィルス処理を行う物理アプライアンスには、５０００のシグネチャが登録される。一方、ファイヤーウオールおよびＩＰＳとして動作する物理アプライアンスにも、ファイヤーウオールとＩＰＳの各々のシグネチャが登録されるので、５０００のシグネチャが登録対象として割り当てられる。
【０１２５】
割り振りパターンＰａ２３では、アンチウィルスとファイヤーウオールを１つの物理アプライアンスで実現し、ＩＰＳを別の物理アプライアンスで実現する。このため、アンチウィルスとファイヤーウオールの処理を行う物理アプライアンスには、アンチウィルスとファイヤーウオールの両方のシグネチャが登録されるので、７０００のシグネチャが割り振られる。一方、ＩＰＳとして動作する物理アプライアンスには、３０００のシグネチャが登録対象として割り当てられる。
【０１２６】
割り振りパターンＰａ２４では、アンチウィルスとＩＰＳを１つの物理アプライアンスで実現し、ファイヤーウオールを別の物理アプライアンスで実現する。このため、アンチウィルスとＩＰＳの処理を行う物理アプライアンスには、アンチウィルスとＩＰＳの両方のシグネチャが登録されるので、８０００のシグネチャが割り振られる。一方、ファイヤーウオールとして動作する物理アプライアンスには、２０００のシグネチャが登録対象として割り当てられる。
【０１２７】
割り振りパターンＰａ２５では、アンチウィルス、ファイヤーウオール、ＩＰＳの３つのシグネチャが１つの物理アプライアンスで実現される。このため、通信経路には１つの物理アプライアンスが含められる。物理アプライアンスには、アンチウィルス、ファイヤーウオール、ＩＰＳに対応付けられた１００００のシグネチャが登録対象として割り振られる。
【０１２８】
なお、物理アプライアンスにシグネチャを割り当てることにより、セキュリティ機能を有する通信経路を設計する場合、物理アプライアンス中のＣＰＵコアの数は変動しないため、パターン算出部２２は、ＣＰＵコアの数に応じた組み合わせは求めない。パターン算出部２２が割り振りパターンを計算すると、決定部２３は、スループットデータベース３１を用いて、各割り振りパターンについて予測されるスループットを求める。なお、第４の実施形態において、スループットデータベース３１には、通信経路の生成に用いられる物理アプライアンスにおいての、登録シグネチャ数とスループットの関係が記録されているとする。
【０１２９】
図１６に、各割り振りパターンで得られるスループットの計算例を示す。割り振りパターンＰａ２１では、３台の物理アプライアンスを用いており、予測されるスループットは５Ｇｂｐｓである。割り振りパターンＰａ２５では、１台の物理アプライアンスを用いており、予測されるスループットは３Ｇｂｐｓ程度である。
【０１３０】
２台の物理アプライアンスを用いている割り振りパターンＰａ２２〜Ｐａ２４では、シグネチャの分散の度合いによって、スループットが異なっている。各割り振りパターンでのスループットは、登録されるシグネチャ数が最大の物理アプライアンスで得られるスループットと同じ値と推測される。また、図６などを参照しながら説明したように、処理対象のシグネチャ数が多い物理アプライアンスほど、スループットの予測値が小さくなる。従って、割り振りパターンＰａ２２〜Ｐａ２４の間では、割り振りパターンＰａ２２で得られるスループットが最も高く、Ｐａ２３、Ｐａ２４の順にスループットが低下する。
【０１３１】
ここで、通信経路に要求されているスループットが５Ｇｂｐｓであるとする。そこで、決定部２３は、図１６に示す結果から、割り振りパターンＰａ２１とＰａ２２のいずれも、要求スループットを満たしていると判定したとする。決定部２３は、要求スループットを満たす割り振りパターンのうちで、使用する物理アプライアンスの台数が小さいほうのパターンを、通信経路の設計に使用することを決定する。図１６の例では、割り振りパターンＰａ２１では３台の物理アプライアンスが用いられるのに対して、割り振りパターンＰａ２２では２台の物理アプライアンスが用いられる。このため、決定部２３は、割り振りパターンＰａ２２を用いることを決定する。
【０１３２】
決定部２３は、通信経路の設定に使用する割り振りパターンを、経路計算部２４とシグネチャ登録部２５に通知する。経路計算部２４は、通信経路を生成するための経路計算をして、経路設定部２７に経路の設定を要求する。一方、シグネチャ登録部２５は、経路の生成に用いられる物理アプライアンスの各々に対して、その物理アプライアンスで使用されるシグネチャを登録するための処理を行う。経路計算部２４、シグネチャ登録部２５、経路設定部２７での処理は、シグネチャの登録先が物理アプライアンスであることを除いて第１の実施形態と同様である。
【０１３３】
図１７は、第４の実施形態にかかる設計方法の例を説明するフローチャートである。図１７は、第４の実施形態での決定部２３の処理の例を示している。図１７では、変数ｍと変数ｎが使用される。変数ｍは、処理対象とした割り振りパターンの数を計数するために使用され、変数ｎは、スループットの推定処理の対象とした物理アプライアンスの数を計数するために使用される。
【０１３４】
決定部２３は、パターン算出部２２で計算された割り振りパターンの数を定数Ｍとして求める（ステップＳ５１）。決定部２３は、変数ｍを１に設定する（ステップＳ５２）。決定部２３は、ｍ番目の割り振りパターンに含まれる物理アプライアンスの数（Ｎ）を取得し、変数ｎを１に設定する（ステップＳ５３、Ｓ５４）。決定部２３は、ｍ番目の割り振りパターン中のｎ番目の物理アプライアンスのスループットを、スループットデータベース３１を用いて求める（ステップＳ５５）。決定部２３は、変数ｎが定数Ｎ以上であるかを判定する（ステップＳ５６）。変数ｎが定数Ｎ未満の場合、決定部２３は、変数ｎを１つインクリメントして、ステップＳ５５以降の処理を繰り返す（ステップＳ５６でＮｏ、ステップＳ５７）。
【０１３５】
一方、変数ｎが定数Ｎ以上である場合、ｍ番目の割り振りパターン中に含まれている全ての物理アプライアンスについて推定スループットが求められている（ステップＳ５６でＹｅｓ）。そこで、決定部２３は、ｍ番目の割り振りパターンについて、最低のスループットが得られている物理アプライアンスを選択する（ステップＳ５８）。決定部２３は、ステップＳ５８で選んだ物理アプライアンスでのスループットを、ｍ番目の割り振りパターンで得られるスループットとする（ステップＳ５９）。決定部２３は、変数ｍが定数Ｍ以上であるかを判定する（ステップＳ６０）。変数ｍが定数Ｍ未満の場合、決定部２３は、変数ｍを１つインクリメントして、ステップＳ５３以降の処理を繰り返す（ステップＳ６０でＮｏ、ステップＳ６１）。
【０１３６】
一方、変数ｍが定数Ｍ以上である場合、求められた割り振りパターンの全てについて推定スループットが求められている（ステップＳ６０でＹｅｓ）。そこで、決定部２３は、要求されたスループット以上のスループットが得られる割り振りパターンを抽出する（ステップＳ６２）。さらに、決定部２３は、抽出した割り振りパターンの中から、使用される物理アプライアンスの数が１番少ない組み合わせを特定する（ステップＳ６３）。決定部２３は、特定した組み合わせの中で、スループットが最大の割り振りパターンを決定パターンとする（ステップＳ６４）。
【０１３７】
第４の実施形態によると、物理アプライアンスにシグネチャを割り当てて通信経路を設計する場合であっても、１台の物理アプライアンスに複数のアプリケーションのシグネチャを割り当てる場合などを含めて、物理アプライアンスの数が最小となる通信経路を設定できる。このため、通信システムを効率的に設計することができる。
【０１３８】
＜その他＞
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【０１３９】
例えば、第２の実施形態は第４の実施形態と組み合わせて実施されてもよい。例えば、物理アプライアンスを用いた通信経路の設定後に新たな処理条件を取得した場合、制御装置１０は、第２の実施形態と同様の処理により、新たな処理条件を設定することができる。
【０１４０】
第３の実施形態において制約条件や仮想マシンが生成される可能性の記載に使用した数学的表記は一例であり、実装に応じて変更されうる。
【０１４１】
第３の実施形態は第４の実施形態と組み合わせて実施されてもよい。例えば、物理アプライアンスを用いた通信経路の設定の際にも、第３の実施形態で説明したように、並行して複数の通信経路の設定を行うことができる。
【０１４２】
上述の第１〜第４の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
通信経路の生成要求を受信する受信部と、
前記通信経路中の通信装置が行う処理に使用する複数の処理条件を、前記通信経路の生成に使用可能な通信装置に割り振ったパターンを算出する算出部と、
前記通信装置に設定される処理条件の数と転送速度の予測値を対応付けた予測情報に基づいて、前記算出部が算出したパターンから、決定パターンを決定する決定部と、
前記決定パターンに沿って、前記決定パターンで使用される通信装置の各々に、前記処理条件の設定を要求する制御パケットを送信する送信部
を備えることを特徴とする制御装置。
（付記２）
前記算出部は、前記複数の処理条件のうち、第１の処理に使用される処理条件と、第２の処理に使用される処理条件の両方を１つの通信装置に割り振った第１の割り振りパターンと、前記第１の処理に使用される処理条件と前記第２の処理に使用される処理条件を異なる通信装置に割り振った第２の割り振りパターンを算出し、
前記決定部は、前記第１の割り振りパターンと前記第２の割り振りパターンのいずれでも、前記予測情報を用いて計算した転送速度が前記通信経路に要求される転送速度以上である場合、前記第１の割り振りパターンを前記第２の割り振りパターンより優先する
ことを特徴とする付記１に記載の制御装置。
（付記３）
前記算出部は、前記通信経路中の通信装置の各々が仮想マシンである場合、各通信装置として動作する仮想マシンに前記複数の処理対象を割り振ったパターンと、各通信装置として動作する仮想マシンに割り当てるＣＰＵコアの数の設定の組み合わせを算出し、
前記決定部は、
前記組み合わせのうちで、前記予測情報を用いて計算した転送速度が前記通信経路に要求される転送速度以上であるパターンを選択し、
選択したパターンのうちで、使用するＣＰＵコアの数が相対的に小さいパターンを前記決定パターンとして決定する
ことを特徴とする付記１または２に記載の制御装置。
（付記４）
前記決定部は、
前記通信経路が前記決定パターンに従って生成された後で、前記通信経路中の通信装置が行う処理に使用する新たな処理条件を取得すると、前記新たな処理条件を適用可能な処理が割り当てられている対象通信装置を特定し、
前記対象通信装置に前記新たな処理条件を登録したときの前記対象通信装置からのパケットの転送速度を、前記予測情報を用いて予測し、
前記新たな処理条件を登録したときの前記対象通信装置からのパケットの転送速度が、前記通信経路に要求される転送速度以上であると予測される場合、前記対象通信装置に前記新たな処理条件を登録することを決定する
ことを特徴とする付記１〜３のいずれか１項に記載の制御装置。
（付記５）
前記決定部は、前記新たな処理条件を登録したときの前記対象通信装置からのパケットの転送速度が、前記通信経路に要求される転送速度未満であると予測される場合、前記通信経路に１つ以上の新たな通信装置を追加することを決定し、
前記算出部は、前記１つ以上の新たな通信装置に前記新たな処理条件を割り振ったパターンを算出し、
前記決定部は、前記予測情報に基づいて、前記新たな処理条件の登録に使用するパターンを、前記算出部が算出したパターンから選択する
ことを特徴とする付記４に記載の制御装置。
（付記６）
前記受信部は、第１の通信経路の生成要求と第２の通信経路の生成要求を受信し、
前記算出部は、
前記第１の通信経路と前記第２の通信経路のいずれでも共通して行われる共通処理を特定し、
前記共通処理で使用する処理条件を割り当てる通信装置を、前記第１の通信経路と前記第２の通信経路の両方が通過する通信装置とするパターンを含む第１のパターン群と、前記第１の通信経路では前記共通処理で使用する処理条件を第１の通信装置に割り当てるとともに、前記第２の通信経路では前記共通処理で使用する処理条件を第２の通信装置に割り当てたパターンを含む第２のパターン群を算出し、
前記決定部は、前記第１のパターン群と前記第２のパターン群の中から、前記予測情報に基づいて、決定パターンを決定する
ことを特徴とする付記１〜５のいずれか１項に記載の制御装置。
（付記７）
前記予測情報は、前記通信装置からのパケットの転送速度が前記通信装置に設定される処理条件の数に反比例し、かつ、前記通信装置からのパケットの転送速度が前記通信装置に備えられるＣＰＵコアの数に正比例することを表す
ことを特徴とする付記１〜６のいずれか１項に記載の制御装置。
（付記８）
通信装置を制御する制御装置が行う処理方法において、
通信経路の生成要求を受信し、
前記通信経路中の通信装置が行う処理に使用する複数の処理条件を、前記通信経路の生成に使用可能な通信装置に割り振ったパターンを算出し、
算出したパターンから、前記通信装置に設定される処理条件の数と転送速度の予測値を対応付けた予測情報に基づいて、決定パターンを決定し、
前記決定パターンに沿って、前記決定パターンで使用される通信装置の各々に、前記処理条件の設定を要求する制御パケットを送信する
処理を制御装置が行うことを特徴とする処理方法。
（付記９）
前記制御装置は、
前記複数の処理条件のうち、第１の処理に使用される処理条件と、第２の処理に使用される処理条件の両方を１つの通信装置に割り振った第１の割り振りパターンと、前記第１の処理に使用される処理条件と前記第２の処理に使用される処理条件を異なる通信装置に割り振った第２の割り振りパターンを算出し、
前記第１の割り振りパターンと前記第２の割り振りパターンのいずれでも、前記予測情報を用いて計算した転送速度が前記通信経路に要求される転送速度以上である場合、前記第１の割り振りパターンを前記第２の割り振りパターンより優先する
ことを特徴とする付記８に記載の処理方法。
（付記１０）
前記制御装置は、
前記通信経路中の通信装置の各々が仮想マシンである場合、各通信装置として動作する仮想マシンに前記複数の処理対象を割り振ったパターンと、各通信装置として動作する仮想マシンに割り当てるＣＰＵコアの数の設定の組み合わせを算出し、
前記組み合わせのうちで、前記予測情報を用いて計算した転送速度が前記通信経路に要求される転送速度以上であるパターンを選択し、
選択したパターンのうちで、使用するＣＰＵコアの数が相対的に小さいパターンを前記決定パターンとして決定する
ことを特徴とする付記８または９に記載の処理方法。
（付記１１）
前記制御装置は、
前記通信経路が前記決定パターンに従って生成された後で、前記通信経路中の通信装置が行う処理に使用する新たな処理条件を取得すると、前記新たな処理条件を適用可能な処理が割り当てられている対象通信装置を特定し、
前記対象通信装置に前記新たな処理条件を登録したときの前記対象通信装置からのパケットの転送速度を、前記予測情報を用いて予測し、
前記新たな処理条件を登録したときの前記対象通信装置からのパケットの転送速度が、前記通信経路に要求される転送速度以上であると予測される場合、前記対象通信装置に前記新たな処理条件を登録することを決定する
ことを特徴とする付記８〜１０のいずれか１項に記載の処理方法。
（付記１２）
前記制御装置は、
前記新たな処理条件を登録したときの前記対象通信装置からのパケットの転送速度が、前記通信経路に要求される転送速度未満であると予測される場合、前記通信経路に１つ以上の新たな通信装置を追加することを決定し、
前記１つ以上の新たな通信装置に前記新たな処理条件を割り振ったパターンを算出し、
前記予測情報に基づいて、前記新たな処理条件の登録に使用するパターンを、算出したパターンから選択する
ことを特徴とする付記１１に記載の処理方法。
（付記１３）
前記制御装置は、
第１の通信経路の生成要求と第２の通信経路の生成要求を受信し、
前記第１の通信経路と前記第２の通信経路のいずれでも共通して行われる共通処理を特定し、
前記共通処理で使用する処理条件を割り当てる通信装置を、前記第１の通信経路と前記第２の通信経路の両方が通過する通信装置とするパターンを含む第１のパターン群と、前記第１の通信経路では前記共通処理で使用する処理条件を第１の通信装置に割り当てるとともに、前記第２の通信経路では前記共通処理で使用する処理条件を第２の通信装置に割り当てたパターンを含む第２のパターン群を算出し、
前記第１のパターン群と前記第２のパターン群の中から、前記予測情報に基づいて、決定パターンを決定する
ことを特徴とする付記８〜１２のいずれか１項に記載の処理方法。
（付記１４）
前記予測情報は、前記通信装置からのパケットの転送速度が前記通信装置に設定される処理条件の数に反比例し、かつ、前記通信装置からのパケットの転送速度が前記通信装置に備えられるＣＰＵコアの数に正比例することを表す
ことを特徴とする付記８〜１３のいずれか１項に記載の処理方法。
【符号の説明】
【０１４３】
２  企業
３  広域ネットワーク
４  インターネット
５  データセンター
６  制御装置
７  拠点
８  物理サーバ
１０  制御装置
１１  通信部
１２  受信部
１３  送信部
２０  制御部
２１  受付処理部
２２  パターン算出部
２３  決定部
２４  経路計算部
２５  シグネチャ登録部
２６  装置設定部
２７  経路設定部
２８  計測処理部
３０  記憶部
３１  スループットデータベース
３２  装置データベース
３３  アプリ設定情報
３４  ＮＷステートデータベース
３５  設定要求情報
５０  通信装置
１０１  プロセッサ
１０２  メモリ
１０３  バス
１０４  ネットワーク接続装置
１０５  記憶装置
【図１】
2018011217.tif 000003
【図２】
2018011217.tif 000004
【図３】
2018011217.tif 000005
【図４】
2018011217.tif 000006
【図５】
2018011217.tif 000007
【図６】
2018011217.tif 000008
【図７】
2018011217.tif 000009
【図８】
2018011217.tif 000010
【図９】
2018011217.tif 000011
【図１０】
2018011217.tif 000012
【図１１Ａ】
2018011217.tif 000013
【図１１Ｂ】
2018011217.tif 000014
【図１２】
2018011217.tif 000015
【図１３】
2018011217.tif 000016
【図１４】
2018011217.tif 000017
【図１５】
2018011217.tif 000018
【図１６】
2018011217.tif 000019
【図１７】
2018011217.tif 000020