(57)【特許請求の範囲】
【請求項１】
ネットワーク機能を提供するノードに設定された機能ルールの設定履歴に基づいて、機能ルールを定量化した機能ルール定量値を算出する機能ルール定量化手段と、
前記ノードのサービス履歴に基づいて、前記ノードにおいて稼働するノードインスタンスの単位時間あたりのサービス量を算出するサービス量算出手段と、
前記ノードについて得られた前記機能ルール定量値および前記サービス量の組に基づいて、前記ノードに対する入力トラフィック量と、前記機能ルール定量値と、前記ノードインスタンスの数（スケール数）との関係を表す性能モデルを生成する性能モデル生成手段と、
前記性能モデルを用いて、想定される前記入力トラフィック量および前記機能ルール定量値に応じた前記スケール数を推定するスケール数推定手段と、
を備えたスケール数推定装置。
【請求項２】
前記性能モデル生成手段は、前記ノードについて得られた前記機能ルール定量値および前記サービス量の組に基づいて、前記機能ルール定量値から前記サービス量を算出するサービス量推定式を推定し、推定したサービス量推定式を含む前記性能モデルを生成することを特徴とする請求項１に記載のスケール数推定装置。
【請求項３】
前記性能モデル生成手段は、前記サービス量推定式によって推定されるサービス量と、前記入力トラフィック量と、前記スケール数との関係を表す方程式を、前記性能モデルに含めることを特徴とする請求項２に記載のスケール数推定装置。
【請求項４】
前記サービス量算出手段は、前記機能ルール定量値の有効期間毎に前記サービス量を算出することを特徴とする請求項１から請求項３のいずれか１項に記載のスケール数推定装置。
【請求項５】
前記機能ルール定量化手段は、前記ノードに設定された機能ルールの数に基づいて、前記機能ルール定量値を算出することを特徴とする請求項１から請求項４のいずれか１項に記載のスケール数推定装置。
【請求項６】
ネットワーク機能を提供するノードからなるネットワーク機能提供装置と、
前記ネットワーク機能提供装置から、前記ノードに設定される機能ルールの設定履歴（機能ルール設定履歴）と、前記ノードのサービス履歴とを取得する取得装置と、
前記取得装置によって取得された前記機能ルール設定履歴および前記サービス履歴を用いて、前記ネットワーク機能提供装置におけるノードのスケール数を推定する請求項１から請求項５のいずれか１項に記載のスケール数推定装置と、
前記スケール数推定装置によって推定されたスケール数に基づいて、前記ネットワーク機能提供装置におけるノードのスケール数を制御する制御装置と、
を備えたスケール数管理システム。
【請求項７】
前記ネットワーク機能提供装置が、複数の前記ノードを連結して機能させるサービスチェーンを実行するサービスチェーン実行装置によって構成されるとき、
前記スケール数推定装置のスケール数推定手段は、前記サービスチェーンに流入が想定される入力トラフィック量に応じて、前記サービスチェーンに含まれるノードのスケール数を推定し、
前記制御装置は、前記スケール数推定装置によって推定されたスケール数に基づいて、前記サービスチェーンにおけるノードのスケール数を制御することを特徴とする請求項６に記載のスケール数管理システム。
【請求項８】
ネットワーク機能を提供するノードに設定された機能ルールの設定履歴に基づいて、機能ルールを定量化した機能ルール定量値を算出し、
前記ノードのサービス履歴に基づいて、前記ノードにおいて稼働するノードインスタンスの単位時間あたりのサービス量を算出し、
前記ノードについて得られた前記機能ルール定量値および前記サービス量の組に基づいて、前記ノードに対する入力トラフィック量と、前記機能ルール定量値と、前記ノードインスタンスの数（スケール数）との関係を表す性能モデルを生成し、
前記性能モデルを用いて、想定される前記入力トラフィック量および前記機能ルール定量値に応じた前記スケール数を推定するスケール数推定方法。
【請求項９】
ネットワーク機能を提供するノードからなるネットワーク機能提供装置における前記ノードにおいて設定される機能ルールの設定履歴（機能ルール設定履歴）を取得し、
前記ネットワーク機能提供装置におけるノードのサービス履歴を取得し、
取得した前記機能ルール設定履歴およびサービス履歴に基づいて、請求項８に記載のスケール数推定方法を用いて、前記ネットワーク機能提供装置におけるノードのスケール数を推定し、
推定したスケール数に基づいて、前記ネットワーク機能提供装置におけるノードのスケール数を制御するスケール数管理方法。
【請求項１０】
ネットワーク機能を提供するノードに設定された機能ルールの設定履歴に基づいて、機能ルールを定量化した機能ルール定量値を算出する機能ルール定量化ステップと、
前記ノードのサービス履歴に基づいて、前記ノードにおいて稼働するノードインスタンスの単位時間あたりのサービス量を算出するサービス量算出ステップと、
前記ノードについて得られた前記機能ルール定量値および前記サービス量の組に基づいて、前記ノードに対する入力トラフィック量と、前記機能ルール定量値と、前記ノードインスタンスの数（スケール数）との関係を表す性能モデルを生成する性能モデル生成ステップと、
前記性能モデルを用いて、想定される前記入力トラフィック量および前記機能ルール定量値に応じた前記スケール数を推定するスケール数推定ステップと、
をコンピュータ装置に実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク機能を提供するノードのスケール数を管理する技術に関する。
【背景技術】
【０００２】
近年、携帯電話やコンピュータ等の端末向けに、様々なＩＴ（Information Technology）サービスがネットワークを経由して提供されている。ＩＴサービスとしては、例えば、ウェブサーバや動画配信、業務システム等がある。このようなＩＴサービスを提供する際には、不要なトラフィックの排除やＩＰ（Internet Protocol）アドレス変換といったような、各種ネットワーク機能が必要となる。そのため、ＩＴサービス提供者は、ネットワーク機能を提供する各種のノードからなるネットワーク機能提供装置を利用する。ネットワーク機能提供装置のノードには、ロードバランサ（ＬＢ：Load Balancer）やファイアウォール（FW：Firewall）)、ＮＡＴ（Network Address Translation）等がある。【０００３】
また、ＩＴサービスの利用トラフィック量は、利用者数や時間帯といった複数の要因により、常に変動する。しかし、既存のネットワーク制御技術では、ネットワーク機能を提供する各種ノードが専用機器であるため、ネットワーク機能提供装置やそのノードのスループット性能を制御することは難しい。そのため、ＩＴサービス提供者は、ネットワーク機能提供装置側のスループット性能に合わせて、ネットワーク機能提供装置に処理させるトラフィック量を調整する必要があった。【０００４】
このような問題に対応する技術として、ＮＦＶ（Network Function Virtualization）やＳＤＮ（Software Defined Networking）といったネットワーク機能仮想化技術がある。ネットワーク機能仮想化技術では、ＦＷやＬＢといったノードをソフトウェアにより実現する。そして、ノード毎に、ノード内の仮想化されたノードインスタンスの並列数を増加（スケールアウト）または減少（スケールイン）させる制御が可能である。これにより、ネットワーク機能のスループット性能が制御可能となる。例えばＮＦＶの場合、個々のネットワーク機能は、ＶＮＦ（Virtualized Network Function）というノードによって提供される。また、ＶＮＦノードの内部では、複数のＶＮＦＣ（ＶＮＦ component）というノードインスタンスが稼働する。この場合、ＶＮＦＣをスケールさせることにより、処理性能の制御を行うことができる。ＶＮＦＣは、それぞれ別個の仮想マシンである。このＶＮＦＣは、ネットワーク要件に合わせた機能を提供するための機能ルールが設定されることにより、ネットワーク機能を調節する。例えば、ファイアウォールの機能を提供するＶＮＦＣの場合、図１８に示すような機能ルールが設定される。このような機能ルールが設定されたＶＮＦＣは、ｈｔｔｐ（Hypertext transfer Protocol）アクセスやｆｔｐ（File Transfer Protocol）アクセスの許可、攻撃の回避といった機能を提供可能となる。【０００５】
このようなネットワーク機能仮想化技術を用いたネットワーク機能提供装置の性能を管理する関連技術の一例が、特許文献１に記載されている。この関連技術は、各種ネットワーク機能を提供するエージェント（上述のノードインスタンスに相当）の性能が目標値を満たさない場合、各エージェントへのリソース（例えば、ＣＰＵ：Central Processing UnitやＲＡＭ：Random Access Memory等）を再割当する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−７４０５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載された関連技術には、以下の課題がある。【０００８】
上述のＶＮＦＣのようなノードインスタンスの処理性能には、ノードの機能ルールの設定内容が影響する。例えば、ノードインスタンスは、設定される機能ルールの設定内容が多いほどＣＰＵ等のリソースをより多く消費し、処理に要する時間が長くなる。そのため、機能ルールの設定内容に応じてノードインスタンスの処理性能は変化する。ここで、想定される入力トラフィックに応じて、各ノードにおいて必要となる並列処理数（スケール数）を推定するには、ノードインスタンスの処理性能をより精度よく推定する必要がある。しかしながら、特許文献１には、エージェントの処理性能を推定し、さらに、エージェントの並列処理数（スケール数）を推定することについては記載がない。そのため、この関連技術は、性能が目標値を満たさない場合にリソースを再割当するだけでは、エージェントの性能を十分に制御することができない。【０００９】
本発明は、上述の課題を解決するためになされたものである。すなわち、本発明は、ネットワーク機能を提供するノードにおけるインスタンスの処理性能をより精度よく推定し、入力トラフィックを処理可能なスケール数をより精度よく推定する技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明のスケール数推定装置は、ネットワーク機能を提供するノードに設定された機能ルールの設定履歴に基づいて、機能ルールを定量化した機能ルール定量値を算出する機能ルール定量化手段と、前記ノードのサービス履歴に基づいて、前記ノードにおいて稼働するノードインスタンスの単位時間あたりのサービス量を算出するサービス量算出手段と、前記ノードについて得られた前記機能ルール定量値および前記サービス量の組に基づいて、前記ノードに対する入力トラフィック量と、前記機能ルール定量値と、前記ノードインスタンスの数（スケール数）との関係を表す性能モデルを生成する性能モデル生成手段と、前記性能モデルを用いて、想定される前記入力トラフィック量および前記機能ルール定量値に応じた前記スケール数を推定するスケール数推定手段と、を備える。【００１１】
また、本発明のスケール数管理システムは、ネットワーク機能を提供するノードからなるネットワーク機能提供装置と、前記ネットワーク機能提供装置から、前記ノードに設定される機能ルールの設定履歴（機能ルール設定履歴）と、前記ノードのサービス履歴とを取得する取得装置と、前記取得装置によって取得された前記機能ルール設定履歴および前記サービス履歴を用いて、前記ネットワーク機能提供装置におけるノードのスケール数を推定する上述のスケール数推定装置と、前記スケール数推定装置によって推定されたスケール数に基づいて、前記ネットワーク機能提供装置におけるノードのスケール数を制御する制御装置と、を備える。【００１２】
また、本発明のスケール数推定方法は、ネットワーク機能を提供するノードに設定された機能ルールの設定履歴に基づいて、機能ルールを定量化した機能ルール定量値を算出し、前記ノードのサービス履歴に基づいて、前記ノードにおいて稼働するノードインスタンスの単位時間あたりのサービス量を算出し、前記ノードについて得られた前記機能ルール定量値および前記サービス量の組に基づいて、前記ノードに対する入力トラフィック量と、前記機能ルール定量値と、前記ノードインスタンスの数（スケール数）との関係を表す性能モデルを生成し、前記性能モデルを用いて、想定される前記入力トラフィック量および前記機能ルール定量値に応じた前記スケール数を推定する。【００１３】
また、本発明のスケール数管理方法は、ネットワーク機能を提供するノードからなるネットワーク機能提供装置における前記ノードにおいて設定される機能ルールの設定履歴（機能ルール設定履歴）を取得し、前記ネットワーク機能提供装置におけるノードのサービス履歴を取得し、取得した前記機能ルール設定履歴およびサービス履歴に基づいて、上述のスケール数推定方法を用いて、前記ネットワーク機能提供装置におけるノードのスケール数を推定し、推定したスケール数に基づいて、前記ネットワーク機能提供装置におけるノードのスケール数を制御する。【００１４】
また、本発明の記憶媒体は、ネットワーク機能を提供するノードに設定された機能ルールの設定履歴に基づいて、機能ルールを定量化した機能ルール定量値を算出する機能ルール定量化ステップと、前記ノードのサービス履歴に基づいて、前記ノードにおいて稼働するノードインスタンスの単位時間あたりのサービス量を算出するサービス量算出ステップと、前記ノードについて得られた前記機能ルール定量値および前記サービス量の組に基づいて、前記ノードに対する入力トラフィック量と、前記機能ルール定量値と、前記ノードインスタンスの数（スケール数）との関係を表す性能モデルを生成する性能モデル生成ステップと、前記性能モデルを用いて、想定される前記入力トラフィック量および前記機能ルール定量値に応じた前記スケール数を推定するスケール数推定ステップと、をコンピュータ装置に実行させるコンピュータ・プログラムを記憶している。
【発明の効果】
【００１５】
本発明は、ネットワーク機能を提供するノードにおけるインスタンスの処理性能をより精度よく推定し、入力トラフィックを処理可能なスケール数をより精度よく推定する技術を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の実施の形態としてのスケール数管理システムの構成を示すブロック図である。
【図２】本発明の第１の実施の形態としてのスケール数管理システムのハードウェア構成図である。
【図３】本発明の第１の実施の形態としてのスケール数管理システムの履歴取得動作を説明するフローチャートである。
【図４】本発明の第１の実施の形態としてのスケール数管理システムの性能モデル生成動作を説明するフローチャートである。
【図５】本発明の第１の実施の形態としてのスケール数管理システムのスケール数推定動作を説明するフローチャートである。
【図６】本発明の第１の実施の形態としてのスケール数管理システムのスケール数制御動作を説明するフローチャートである。
【図７】本発明の第２の実施の形態としてのスケール数管理システムの構成を示すブロック図である。
【図８】本発明の第２の実施の形態としてのスケール数管理システムの性能モデル生成動作を説明するフローチャートである。
【図９】本発明の第２の実施の形態としてのスケール数管理システムのチェーンインスタンス情報生成動作を説明するフローチャートである。
【図１０】本発明の第２の実施の形態としてのスケール数管理システムのスケール数制御動作を説明するフローチャートである。
【図１１】本発明の第２の実施の形態における機能ルール設定履歴の一例を示す図である。
【図１２】本発明の第２の実施の形態におけるサービス履歴の一例を示す図である。
【図１３】本発明の第２の実施の形態における機能ルール定量値情報の一例を示す図である。
【図１４】本発明の第２の実施の形態における性能モデルの一例を示す図である。
【図１５】本発明の第２の実施の形態におけるサービスチェーン定義情報の一例を示す図である。
【図１６】本発明の第２の実施の形態における入力トラフィック情報の一例を示す図である。
【図１７】本発明の第２の実施の形態におけるチェーンインスタンス情報の一例を示す図である。
【図１８】関連技術のノードに設定される機能ルールの一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００１８】
（第１の実施の形態）
本発明の第１の実施の形態としてのスケール数管理システム１の構成を図１に示す。図１において、スケール数管理システム１は、スケール数推定装置１０と、ネットワーク機能提供装置３０と、取得装置５０と、制御装置７０とを備える。また、スケール数推定装置１０は、取得装置５０および制御装置７０と、それぞれ通信可能に接続されている。また、ネットワーク機能提供装置３０は、取得装置５０および制御装置７０と、それぞれ通信可能に接続されている。また、スケール数推定装置１０は、機能ルール定量化部１１と、サービス量算出部１２と、性能モデル生成部１３と、性能モデル記憶部１３０と、スケール数推定部１４とを有する。なお、性能モデル記憶部１３０は、本発明の性能モデル生成部の一部の一実施形態を構成する。また、ネットワーク機能提供装置３０は、１つ以上のノード３１を含む。また、ノード３１内では、それぞれ、１つ以上のノードインスタンス３２が稼働する。また、取得装置５０は、機能ルール設定履歴記憶部５０１およびサービス履歴記憶部５０２を含む。
【００１９】
ここで、スケール数推定装置１０、ネットワーク機能提供装置３０、取得装置５０、および、制御装置７０は、それぞれ、図２に示すようなハードウェア要素によって構成されていてもよい。具体的には、スケール数推定装置１０は、コンピュータ装置１００によって構成可能である。コンピュータ装置１００は、ＣＰＵ（Central Processing Unit）１００１と、ＲＡＭ（Random Access Memory）１００２と、ＲＯＭ（Read Only Memory）１００３と、ハードディスク等の記憶装置１００４と、ネットワークインタフェース１００５とを備える。また、ネットワーク機能提供装置３０は、コンピュータ装置３００によって構成可能である。コンピュータ装置３００は、ＣＰＵ３００１と、ＲＡＭ３００２と、ＲＯＭ３００３と、ハードディスク等の記憶装置３００４と、ネットワークインタフェース３００５とを備える。また、取得装置５０は、コンピュータ装置５００によって構成可能である。コンピュータ装置５００は、ＣＰＵ５００１と、ＲＡＭ５００２と、ＲＯＭ５００３と、ハードディスク等の記憶装置５００４と、ネットワークインタフェース５００５とを備える。また、制御装置７０は、コンピュータ装置７００によって構成可能である。コンピュータ装置７００は、ＣＰＵ７００１と、ＲＡＭ７００２と、ＲＯＭ７００３と、ハードディスク等の記憶装置７００４と、ネットワークインタフェース７００５とを備える。この場合、スケール数推定装置１０と、取得装置５０および制御装置７０とは、ネットワークインタフェース１００５、５００５および７００５によってそれぞれ通信可能に接続される。また、ネットワーク機能提供装置３０と、取得装置５０および制御装置７０とは、ネットワークインタフェース３００５、５００５および７００５によってそれぞれ通信可能に接続される。なお、ネットワーク機能提供装置３０は、ネットワークインタフェース３００５に加えて、ネットワーク機能の提供先となるサービス側や端末側に接続するための図示しないネットワークインタフェースを備えている。
【００２０】
図２のようなハードウェア要素によってスケール数管理システム１が構成される場合、機能ルール定量化部１１、サービス量算出部１２、および、スケール数推定部１４の各機能ブロックは、次のように構成される。すなわち、これらの各機能ブロックは、ネットワークインタフェース１００５と、ＲＯＭ１００３および記憶装置１００４に記憶されたコンピュータ・プログラムおよび各種データをＲＡＭ１００２に読み込んで実行するＣＰＵ１００１とによって構成される。また、性能モデル生成部１３は、ＲＯＭ１００３および記憶装置１００４に記憶されたコンピュータ・プログラムおよび各種データをＲＡＭ１００２に読み込んで実行するＣＰＵ１００１によって構成される。また、ノード３１およびノードインスタンス３２は、ＲＯＭ３００３および記憶装置３００４に記憶されたコンピュータ・プログラムおよび各種データをＲＡＭ３００２に読み込んで実行するＣＰＵ３００１によって構成される。また、取得装置５０の機能ルール設定履歴記憶部５０１およびサービス履歴記憶部５０２は、記憶装置５００４によって構成される。なお、各装置およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。例えば、各装置は、一部または全部が同一のコンピュータ装置上に実現されていてもよい。具体例としては、スケール数推定装置１０および取得装置５０が同一のコンピュータ装置上に実現され、ネットワーク機能提供装置３０および制御装置７０が同一のコンピュータ装置上に実現されていてもよい。その場合、情報の送受信が必要な装置間は、ネットワークインタフェースを介して接続される代わりに、記憶装置を介して情報を入出力することにより接続されていてもよい。
【００２１】
次に、各装置の機能ブロックについて説明する。
【００２２】
ネットワーク機能提供装置３０のノード３１は、設定された機能ルールに基づいて、ネットワーク機能を提供する。
【００２３】
ノードインスタンス３２は、ノード３１のインスタンスであり、それぞれが仮想マシンとして実現される。稼働中のノードインスタンス３２は、外部からの要求に応じて、ネットワーク機能を提供する処理（サービス）を実行する。
【００２４】
取得装置５０は、ネットワーク機能提供装置３０から、各ノード３１の機能ルール設定履歴と、各ノード３１のサービス履歴とを取得する。また、取得装置５０は、取得した機能ルール設定履歴を、機能ルール設定履歴記憶部５０１に記憶しておく。また、取得装置５０は、取得したサービス履歴を、サービス履歴記憶部５０２に記憶しておく。
【００２５】
ここで、機能ルール設定履歴は、ノード３１に設定される機能ルールの設定履歴を表す。例えば、機能ルール設定履歴は、ノード３１に設定された機能ルールの設定内容と、その設定時刻とを含む設定情報の履歴であってもよい。また、取得装置５０は、ネットワーク機能提供装置３０において新たなノード３１に機能ルールが設定された場合や、既存のノード３１の機能ルールが変更された場合、機能ルール設定履歴をさらに取得する。そして、取得装置５０は、新たに取得した機能ルール設定履歴を、機能ルール設定履歴記憶部５０１に追加して記憶しておく。
【００２６】
また、例えば、サービス履歴は、各ノード３１のノードインスタンス３２により実行された処理に要したサービス時間と、処理されたデータ量との組を含む情報であってもよい。また、取得装置５０は、ネットワーク機能提供装置３０においてノードインスタンス３２により新たに処理が実行されると、そのサービス履歴をさらに取得し、サービス履歴記憶部５０２に追加して記憶しておく。
【００２７】
スケール数推定装置１０の機能ルール定量化部１１は、ノード３１の機能ルール設定履歴に基づいて、機能ルールを定量化した機能ルール定量値を算出する。機能ルール定量値は、機能ルールの設定内容を定量的に表現可能な情報である。具体的には、スケール数推定装置１０は、取得装置５０の機能ルール設定履歴記憶部５０１から、機能ルール設定履歴を取得する。そして、機能ルール定量化部１１は、各ノード３１についての機能ルールの設定情報毎に、機能ルール定量値を算出する。もし、同じノード３１について複数の設定情報があれば、機能ルール定量化部１１は、同じノード３１について複数の機能ルール定量値を算出することになる。
【００２８】
サービス量算出部１２は、ノード３１のサービス履歴に基づいて、ノードインスタンス３２の単位時間あたりのサービス量を算出する。具体的には、サービス量算出部１２は、取得装置５０から、サービス履歴を取得する。例えば、サービス量算出部１２は、サービス履歴に含まれるサービス時間とデータ量とに基づいて、単位時間あたりのサービス量を算出可能である。
【００２９】
また、サービス量算出部１２は、各ノード３１について算出したサービス量を、そのノード３１の機能ルール定量値と対応付けて、記憶装置１００４に記憶しておく。もし、１つのノード３１について、複数の機能ルール定量値が算出されている場合、サービス量算出部１２は、各機能ルール定量値について、その機能ルール定量値が有効な期間におけるサービス履歴に基づいて前述のサービス量を求めてもよい。そして、サービス量算出部１２は、求めたサービス量を、該当する機能ルール定量値に対応付けておく。なお、機能ルール定量値の有効期間は、機能ルール設定履歴に含まれる機能ルールの設定時刻から算出可能である。
【００３０】
性能モデル生成部１３は、各ノード３１について得られた機能ルール定量値およびサービス量の組に基づいて、ノード３１に対する入力トラフィック量と、機能ルール定量値と、ノードインスタンス３２の数（スケール数）との関係を表す性能モデルを生成する。つまり、性能モデルは、ノード３１の機能ルール定量値および入力トラフィック量に応じてノードインスタンス３２の数を算出可能な計算式を含む。また、性能モデル生成部１３は、各ノード３１について生成した性能モデルを、性能モデル記憶部１３０に記憶しておく。
【００３１】
スケール数推定部１４は、ノード３１に想定される入力トラフィック量および機能ルール定量値に基づいて、そのノード３１の性能モデルを用いてスケール数を推定する。また、スケール数推定部１４は、ノード３１毎に推定したスケール数を表す情報を、制御装置７０に対して出力する。
【００３２】
制御装置７０は、スケール数推定装置１０から出力された各ノード３１のスケール数に基づいて、ネットワーク機能提供装置３０におけるノード３１内のノードインスタンス３２の数を制御する。
【００３３】
以上のように構成されたスケール数管理システム１の動作について、図面を参照して説明する。
【００３４】
まず、取得装置５０による履歴取得動作を図３に示す。
【００３５】
図３では、まず、取得装置５０は、ネットワーク機能提供装置３０から、ノード３１の機能ルール設定履歴を取得する（ステップＡ１）。前述のように、取得装置５０は、取得した機能ルール設定履歴を、機能ルール設定履歴記憶部５０１に記憶する。
【００３６】
また、サービス量算出部１２は、ネットワーク機能提供装置３０から、ノード３１のサービス履歴を取得する（ステップＡ２）。前述のように、取得装置５０は、取得したサービス履歴を、サービス履歴記憶部５０２に記憶する。
【００３７】
なお、ステップＡ１およびステップＡ２の動作は、この順に実行されなくてもよい。また、ステップＡ１およびステップＡ２の動作は、略同時に実行されてもよい。また、ステップＡ１およびステップＡ２の動作は、指定された期間の間繰り返し実行されてもよい。
【００３８】
次に、スケール数推定装置１０によるサービスモデル生成動作を図４に示す。
【００３９】
図４では、まず、機能ルール定量化部１１は、取得装置５０の機能ルール設定履歴記憶部５０１およびサービス履歴記憶部５０２から、機能ルール設定履歴およびサービス履歴を読み出す（ステップＢ１）。
【００４０】
次に、機能ルール定量化部１１は、機能ルール設定履歴に記録されているノード３１毎に、以下のステップＢ２〜Ｂ４を繰り返す。
【００４１】
ここでは、まず、機能ルール定量化部１１は、このノード３１についての機能ルール設定履歴から、機能ルール定量値を算出する（ステップＢ２）。
【００４２】
前述のように、機能ルール定量化部１１は、このノード３１についての設定情報毎に、機能ルール定量値を求めればよい。
【００４３】
次に、サービス量算出部１２は、ステップＢ２で求められたこのノード３１の各機能ルール定量値について、このノード３１で稼働するノードインスタンス３２の単位時間あたりのサービス量を算出する（ステップＢ３）。
【００４４】
具体的には、サービス量算出部１２は、各機能ルール定量値の有効期間におけるこのノード３１のサービス履歴を用いて、対応するサービス量を求めればよい。また、サービス量算出部１２は、該当するサービス履歴に含まれる各処理のデータ量およびサービス時間に基づいてサービス量を求めればよい。そして、サービス量算出部１２は、各機能ルール定量値について、対応するサービス量を対応付けておく。
【００４５】
次に、性能モデル生成部１３は、このノード３１について得られた機能ルール定量値およびサービス量の組の集合に基づいて、このノード３１に対する入力トラフィック量と、機能ルール定量値と、スケール数との関係を表す性能モデルを生成する（ステップＢ４）。そして、性能モデル生成部１３は、このノード３１について生成した性能モデルを、性能モデル記憶部１３０に記憶する。
【００４６】
各ノード３１についてステップＢ２〜Ｂ４の実行を終えると、スケール数推定装置１０は、サービスモデル生成動作を終了する。
【００４７】
次に、スケール数推定装置１０によるスケール数推定動作を図５に示す。なお、図５では、スケール数を推定する対象となるノード３１が指定されているものとする。
【００４８】
図５では、まず、スケール数推定部１４は、推定対象のノード３１について想定される入力トラフィック量と、ノード３１に設定される機能ルールの内容とを取得する（ステップＣ１）。例えば、スケール数推定部１４は、推定対象となるノード３１に想定される入力トラフィック量および機能ルールの内容を、入力装置（図示せず）、ネットワークインタフェース１００５、または、記憶装置１００４等から取得してもよい。
【００４９】
次に、機能ルール定量化部１１は、ステップＣ１で取得された機能ルールに基づいて、機能ルール定量値を算出する（ステップＣ２）。
【００５０】
次に、スケール数推定部１４は、このノード３１の性能モデルを性能モデル記憶部１３０から取得する。そして、スケール数推定部１４は、このノード３１の性能モデルに、ステップＣ１で取得された入力トラフィック量およびステップＣ２で算出された機能ルール定量値を適用する。これにより、スケール数推定部１４は、このノード３１のスケール数を算出し、制御装置７０に出力する（ステップＣ３）。
【００５１】
次に、制御装置７０のスケール数制御動作を図６に示す。
【００５２】
図６では、まず、制御装置７０は、スケール数推定装置１０から出力されたスケール数を取得する（ステップＤ１）。
【００５３】
次に、制御装置７０は、取得したスケール数に基づいて、ネットワーク機能提供装置３０上のノード３１におけるノードインスタンス３２の数を制御する（ステップＤ２）。例えば、このノード３１について稼働中のノードインスタンス３２の数が、推定したスケール数と異なれば、制御装置７０は、推定したスケール数となるようノードインスタンス３２の数を変更する。また、このノード３１がまだ稼働していなければ、推定したスケール数だけ、このノード３１のノードインスタンス３２を生成して稼働させる。
【００５４】
以上で、制御装置７０は、スケール数制御動作を終了する。なお、スケール数管理システム１は、ネットワーク機能提供装置３０で稼働中または稼働予定の各ノード３１について、上述のステップＣ１〜Ｃ３、Ｄ１〜Ｄ２の動作を繰り返してもよい。
【００５５】
次に、本発明の第１の実施の形態の効果について述べる。
【００５６】
本発明の第１の実施の形態としてのスケール数管理システムは、ネットワーク機能を提供するノードにおけるインスタンスの処理性能をより精度よく推定し、入力トラフィックを処理可能なスケール数をより精度よく制御することができる。
【００５７】
その理由について説明する。本実施の形態では、取得装置が、ネットワーク機能提供装置の各ノードに設定された機能ルール設定履歴およびサービス履歴を取得する。そして、スケール数推定装置の機能ルール定量化部が、機能ルール設定履歴に基づき、機能ルール定量値を算出する。また、サービス量算出部が、サービス履歴に基づき、各ノードのノードインスタンスの単位時間あたりのサービス量を算出する。そして、性能モデル生成部が、機能ルール定量値およびサービス量の組に基づいて、入力トラフィック量と、機能ルール定量値と、スケール数との関係を表す性能モデルを生成する。そして、スケール数推定部が、性能モデルを用いて、想定される入力トラフィック量に応じたノードインスタンス数を推定する。そして、制御装置が、推定されたスケール数に基づいて、ノードインスタンス数を制御するからである。
【００５８】
これにより、本実施の形態は、ノードにおけるインスタンスの処理性能の推定精度を向上させることができる。その結果、本実施の形態は、ノードに設定される機能ルールの内容やその変更に応じて、想定される入力トラフィックを必要最小限のリソースで処理可能なスケール数をより精度よく見積もることができる。
【００５９】
（第２の実施の形態）
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。本実施の形態では、本発明におけるネットワーク機能提供装置に、サービスチェーン実行装置を適用した例について説明する。サービスチェーン実行装置は、複数のノードを連結して機能させるサービスチェーンを実行する装置である。なお、本実施の形態の説明において参照する各図面において、本発明の第１の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【００６０】
まず、本発明の第２の実施の形態としてのスケール数管理システム２の構成を図７に示す。図７において、スケール数管理システム２は、スケール数推定装置２０と、サービスチェーン実行装置４０と、取得装置５０と、制御装置８０とを含む。なお、サービスチェーン実行装置４０は、本発明のネットワーク機能提供装置の一実施形態を構成する。また、本発明の第１の実施の形態と同様に、スケール数推定装置２０およびサービスチェーン実行装置４０は、それぞれ、取得装置５０および制御装置８０と通信可能に接続されている。また、スケール数推定装置２０は、機能ルール定量化部２１と、サービス量算出部２２と、性能モデル生成部２３と、性能モデル記憶部２３０と、チェーンインスタンス生成部２４とを有する。なお、性能モデル記憶部２３０は、本発明の性能モデル生成部の一実施形態を構成する。また、チェーンインスタンス生成部２４は、本発明のスケール数推定部の一実施形態を構成する。サービスチェーン実行装置４０は、サービスチェーン４３と、ノード３１と、ノードインスタンス３２とを有する。ここで、スケール数管理システム２を構成する各装置およびその各機能ブロックは、本発明の第１の実施の形態と同様に、図２に示したハードウェア要素によってそれぞれ構成可能である。なお、各装置およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【００６１】
次に、各装置の機能ブロックについて説明する。
【００６２】
サービスチェーン実行装置４０は、複数のノード３１を連結して機能させるサービスチェーン４３を実行する装置である。サービスチェーン４３は、端末向けに各種のＩＴサービスを提供する装置に対して、ＩＴサービスの内容に応じた一連のネットワーク機能を連携させて提供する。例えば、端末に対するウェブサービス提供に必要となるネットワーク機能を提供するサービスチェーン４３や、動画配信システム提供に必要となるサービスチェーン４３等があってもよい。
【００６３】
サービスチェーン４３は、定義情報により定義される。例えば、サービスチェーン４３の定義情報は、連結させる各ノード３１と、各ノード３１に設定される機能ルールとを含む情報であってもよい。
【００６４】
また、サービスチェーン４３は、サービスチェーン４３の定義情報に基づいてサービスチェーン４３のインスタンス（チェーンインスタンス）が生成されることにより動作するよう構成される。動作中のサービスチェーン４３は、流入する入力トラフィックを、各ノード３１のノードインスタンス３２により順次処理することにより、一連のネットワーク機能を提供する。サービスチェーン実行装置４０では、１つ以上のサービスチェーン４３が稼働可能である。
【００６５】
取得装置５０は、本発明の第１の実施の形態と同様に構成される。これにより、取得装置５０は、サービスチェーン実行装置４０から、サービスチェーン４３を構成する各ノード３１の機能ルール設定履歴と、サービス履歴とを取得する。
【００６６】
本実施の形態では、機能ルール設定履歴は、ノード３１を識別するノードＩＤと、機能ルールの内容を表す情報と、その機能ルールの設定が有効となった時を表す情報（タイムスタンプ）とを含むものとする。また、サービス履歴は、ノードＩＤと、処理の開始時間および終了時間と、処理されたデータ量とを含むものとする。取得装置５０は、このような機能ルール設定履歴およびサービス履歴を、機能ルール設定履歴記憶部５０１およびサービス履歴記憶部５０２に記憶する。
【００６７】
スケール数推定装置２０の機能ルール定量化部２１は、サービスチェーン実行装置４０から取得された機能ルール設定履歴を参照し、機能ルールの数に基づいて、機能ルール定量値を算出する。例えば、機能ルール定量値は、機能ルール数そのものであってもよい。また、機能ルール定量化部２１は、算出した機能ルール定量値について、ノードＩＤと、そのタイムスタンプとを対応付けておく。
【００６８】
サービス量算出部２２は、サービスチェーン実行装置４０から取得されたサービス履歴を参照し、各ノード３１について、機能ルール定量値の有効期間毎に、サービス量を算出する。そして、サービス量算出部２２は、有効期間毎に算出したサービス量を、その有効期間における機能ルール定量値と、該当するノードＩＤと対応付けておく。
【００６９】
前述のように、サービス履歴には、ノードＩＤと、処理の開始時間および終了時間と、処理されたデータ量とが含まれている。また、機能ルール定量化部２１によって、ノードＩＤと、機能ルール定量値と、タイムスタンプとが対応付けられている。そこで、サービス量算出部２２は、同一のノードＩＤのノード３１について算出されている機能ルール定量値毎に、まずその有効期間を算出する。具体的には、サービス量算出部２２は、あるノードＩＤのある機能ルール定量値について、そのタイムスタンプから、同一のノードＩＤの他の機能ルール定量値のタイムスタンプのうち次に新しいタイムスタンプまでを、その有効期間とすればよい。
【００７０】
そして、サービス量算出部２２は、機能ルール定量値の有効期間毎に、該当するノードＩＤを含むその有効期間のサービス履歴において、データ量の平均値を、開始時間から終了時間までのサービス時間の平均値で割ってサービス量を求めてもよい。なお、有効期間のサービス履歴とは、開始時間および終了時間の双方またはいずれかが有効期間に含まれるサービス履歴であってもよい。そして、サービス量算出部２２は、ノードＩＤと、機能ルール定量値と、サービス量とを対応付けておく。
【００７１】
例えば、あるノード３１について、機能ルール定量値ｒ１および機能ルール定量値ｒ２が求められているとする。また、機能ルール定量値ｒ１にはタイムスタンプｔ１が対応付けられ、機能ルール定量値ｒ２にはタイムスタンプｔ２が対応付けられているとする。ただし、タイムスタンプｔ２はタイムスタンプｔ１より新しいものとする。この場合、サービス量算出部２２は、機能ルール定量値ｒ１の有効期間として、タイムスタンプｔ１からｔ２までを算出する。また、さらに、同じノード３１について、タイムスタンプｔ２より新しいタイムスタンプが対応付けられた機能ルール定量値がないとする。この場合、サービス量算出部２２は、機能ルール定量値ｒ２の有効期間として、タイムスタンプｔ２から現時点を算出する。なお、ここでいう現時点とは、例えば、その有効期間を算出する処理時であってもよいし、サービス履歴が得られている最新の時点までであってもよい。
【００７２】
そして、この場合、サービス量算出部２２は、このノード３１について、タイムスタンプｔ１〜ｔ２までのサービス履歴に基づいてサービス量ｓ１を算出し、ノードＩＤと、機能ルール定量値ｒ１と対応付ける。また、サービス量算出部２２は、同じノード３１について、タイムスタンプｔ２〜現時点までのサービス履歴に基づいて、サービス量ｓ２を算出し、ノードＩＤと、機能ルール定量値ｒ２と対応付ける。
【００７３】
性能モデル生成部２３は、サービス量推定式、および、サービス量と入力トラフィック量とスケール数との関係を表す方程式を、性能モデルとして生成する。
【００７４】
具体的には、性能モデル生成部２３は、各ノード３１について機能ルール定量値の有効期間毎に得られたサービス量および機能ルール定量値の組の集合を用いて、サービス量を目的変数、機能ルール定量値を説明変数とした統計解析を行う。これにより、性能モデル生成部２３は、サービス量推定式を生成する。サービス量推定式は、例えば、次式（１）で表される。
0006558374.tif 000002
・・・（１）
ここで、rulen1は、ノードｎ１の機能ルール定量値を示し、μn1は、ノードｎ１のサービス量を示す。このようなサービス量推定式（１）により、あるノード３１の機能ルール定量値から、サービス量を推定可能となる。
【００７５】
また、性能モデル生成部２３は、ノード３１の振る舞いを表すモデルとして、複数窓口の待ち行列モデル(M/M/S)で用いられる次式（２）を採用する。
ρ=λ/Sμ
・・・（２）
ここで、λは、ノード３１に到着するトラフィック量（例えば、Mbps：メガバイト毎秒）を示す。また、μは、前述のサービス量推定式（１）により推定されるノード３１のサービス量を示す。また、Sは、ノード３１における並列処理の数であるスケール数（ノードインスタンス３２の数）を示す。また、ρは、稼働率を示し、各ノード３１における処理の混雑度（０〜１）を表す。稼働率ρは、１に近くなるほど待ち時間が長いことを表す。稼働率ρには、規定値が設定されるものとする。
【００７６】
性能モデル生成部２３は、式（１）のサービス量推定式と、式（２）の方程式とを性能モデルとして生成する。例えば、性能モデル生成部２３は、式（１）と、式（２）と、稼働率ρの値と、ノードＩＤとを対応付けて、性能モデル記憶部２３０に記憶する。
【００７７】
チェーンインスタンス生成部２４は、サービスチェーン４３の定義情報と、サービスチェーン４３に想定される入力トラフィック量の情報とを取得する。サービスチェーン４３の定義情報には、前述のように、連結させる各ノード３１と、各ノード３１に設定される機能ルールの内容とが含まれる。また、想定される入力トラフィック量の情報は、例えば、そのサービスチェーン４３による処理として想定される最大の入力トラフィック量であってもよい。そして、チェーンインスタンス生成部２４は、サービスチェーン４３の定義情報に含まれる各ノード３１について、性能モデルを用いて、入力トラフィック量および機能ルール定量値に応じたスケール数を推定する。具体的には、チェーンインスタンス生成部２４は、各ノード３１について、定義情報から得られる機能ルール定量値と、取得した入力トラフィック量とを、その性能モデルの式（１）および（２）に適用することにより、スケール数を求めればよい。
【００７８】
また、チェーンインスタンス生成部２４は、推定したスケール数と、サービスチェーン４３の定義情報とを用いて、そのサービスチェーン４３のチェーンインスタンス情報を生成する。チェーンインスタンス情報は、チェーンインスタンスを生成に必要となる情報である。例えば、チェーンインスタンス情報は、サービスチェーン４３の定義情報に含まれる情報に加えて、含まれる各ノード３１のスケール数を含む情報であってもよい。チェーンインスタンス生成部２４は、生成したチェーンインスタンス情報を、制御装置８０に出力する。
【００７９】
制御装置８０は、チェーンインスタンス情報に基づいて、サービスチェーン４３のインスタンスを生成する。具体的には、制御装置８０は、チェーンインスタンス情報に含まれる各ノード３１について、設定されたスケール数のノードインスタンス３２を、その機能ルールにしたがって、サービスチェーン実行装置４０上に生成すればよい。もし、チェーンインスタンス情報の示すチェーンインスタンスが既にサービスチェーン実行装置４０上で稼働中の場合、制御装置８０は、各ノード３１のスケール数を、チェーンインスタンス情報に含まれるスケール数に調整すればよい。
【００８０】
以上のように構成されたスケール数管理システム２の動作について、図面を参照して説明する。
【００８１】
なお、取得装置５０がサービスチェーン実行装置４０から機能ルール設定履歴およびサービス履歴を取得する動作は、図３を参照して説明した本発明の第１の実施の形態の履歴取得動作と同様である。ただし、前述のように、本実施の形態では、機能ルール設定履歴として、ノードＩＤと、機能ルールの設定内容と、タイムスタンプとを含む情報が取得される。また、サービス履歴として、ノードＩＤと、処理の開始時間および終了時間と、データ量とを含む情報が取得される。
【００８２】
次に、スケール数推定装置２０によるサービスモデル生成動作を図８に示す。
【００８３】
図８では、まず、機能ルール定量化部２１は、本発明の第１の実施の形態と同様にステップＢ１を実行し、機能ルール設定履歴およびサービス履歴を読み出す。
【００８４】
次に、機能ルール定量化部２１は、機能ルール設定履歴に記録されているノード３１毎に、以下のステップＢ１２〜Ｂ１４を繰り返す。
【００８５】
ここでは、まず、機能ルール定量化部２１は、このノード３１に関する機能ルール設定履歴に含まれる各設定情報の機能ルール数をカウントし、機能ルール定量値とする。そして、機能ルール定量化部２１は、このノード３１のノードＩＤと、算出した機能ルール定量値と、該当する設定情報に含まれるタイムスタンプとを対応付ける（ステップＢ１２）。
【００８６】
次に、サービス量算出部２２は、ステップＢ１２で求められたこのノード３１の機能ルール定量値毎に、以下のステップＢ１３〜Ｂ１４を繰り返す。
【００８７】
ここでは、まず、サービス量算出部２２は、この機能ルール定量値の有効期間を算出する（ステップＢ１３）。
【００８８】
前述のように、サービス量算出部２２は、この機能ルール定量値に対応する設定情報のタイムスタンプから、このノード３１について次に新しい設定情報のタイムスタンプまでを、有効期間として算出すればよい。
【００８９】
次に、サービス量算出部２２は、算出した有効期間のサービス履歴において、各処理のデータ量の平均値をサービス時間の平均値で割った値を、サービス量として算出する。そして、サービス量算出部２２は、この機能ルール定量値と、算出したサービス量と、このノードＩＤとを対応付ける（ステップＢ１４）。
【００９０】
このノード３１について算出した各機能ルール定量値についてステップＢ１３〜Ｂ１４の処理が終了すると、次に、性能モデル生成部２３は、このノード３１について性能モデルを生成する。
【００９１】
具体的には、まず、性能モデル生成部２３は、得られた機能ルール定量値およびサービス量の組の集合を用いて、サービス量推定式（１）を生成する（ステップＢ１５）。
【００９２】
前述のように、性能モデル生成部２３は、サービス量を目的変数、ルール量を説明変数とした統計解析を行うことにより、前述のサービス量推定式（１）におけるＡおよびＢを決定すればよい。
【００９３】
次に、性能モデル生成部２３は、ステップＢ１５で生成したサービス量推定式（１）と、複数窓口の待ち行列モデル(M/M/S)で用いられる方程式（２）とを含む性能モデルを生成する（ステップＢ１６）。
【００９４】
具体的には、性能モデル生成部２３は、サービス量推定式（１）と、複数窓口の待ち行列モデル(M/M/S)で用いられる方程式（２）と、稼働率ρの規定値とを、このノード３１のノードＩＤに対応付けて、性能モデル記憶部２３０に記憶すればよい。
【００９５】
以上で、スケール数管理システム２は、性能モデル生成動作を終了する。
【００９６】
次に、スケール数管理システム２のチェーンインスタンス情報生成動作を図９に示す。
【００９７】
図９では、まず、チェーンインスタンス生成部２４は、サービスチェーン４３の定義情報、および、サービスチェーン４３に流入が想定される入力トラフィック量を取得する（ステップＣ１１）。例えば、チェーンインスタンス生成部２４は、そのような定義情報および入力トラフィック量を、入力装置（図示せず）、ネットワークインタフェース１００５、または、記憶装置１００４等から取得してもよい。
【００９８】
前述のように、サービスチェーン４３の定義情報には、各サービスチェーン４３において連結させるノード３１のノードＩＤおよび各ノード３１に設定される機能ルールが含まれる。また、想定される入力トラフィック量としては、各サービスチェーン４３が処理することが想定される最大の入力トラフィック量が取得されてもよい。
【００９９】
次に、チェーンインスタンス生成部２４は、サービスチェーン４３の定義情報を元に、その構成要素である各ノード３１について、以下のステップＣ１２〜Ｃ１５の動作を繰り返す。
【０１００】
ここでは、まず、チェーンインスタンス生成部２４は、このノード３１の性能モデルを、性能モデル記憶部２３０より取り出す（ステップＣ１２）。
【０１０１】
次に、チェーンインスタンス生成部２４は、サービスチェーン定義情報に含まれるこのノード３１の機能ルールから、機能ルール定量化部２１を用いて機能ルール定量値を算出する（ステップＣ１３）。
【０１０２】
次に、チェーンインスタンス生成部２４は、このノード３１の性能モデルのサービス量推定式（１）に、ステップＣ１３で算出した機能ルール定量値を代入する。これにより、チェーンインスタンス生成部２４は、サービス量を算出する（ステップＣ１４）。
【０１０３】
次に、チェーンインスタンス生成部２４は、このノード３１の性能モデルに含まれる方程式（２）に、ステップＣ１４で算出したサービス量と、ステップＣ１１で取得した入力トラフィック量とを代入する。これにより、チェーンインスタンス生成部２４は、稼働率ρを満たすことのできるスケール数を算出する（ステップＣ１５）。
【０１０４】
このサービスチェーン４３を構成する各ノード３１について、ステップＣ１２〜Ｃ１５の処理を終了すると、チェーンインスタンス生成部２４は、チェーンインスタンス情報を生成し、制御装置８０に出力する（ステップＣ１６）。
【０１０５】
前述のように、チェーンインスタンス情報は、サービスチェーン４３のインスタンスを生成するための情報を表す。チェーンインスタンス生成部２４は、このサービスチェーン４３の定義情報と、各ノード３１について推定したスケール数とに基づいて、チェーンインスタンス情報を生成すればよい。
【０１０６】
以上で、スケール数推定装置２０は、チェーンインスタンス生成動作を終了する。
【０１０７】
次に、制御装置８０のスケール数制御動作を図１０に示す。
【０１０８】
図１０では、まず、制御装置８０は、スケール数推定装置２０からチェーンインスタンス情報を取得する（ステップＤ１１）。
【０１０９】
次に、制御装置８０は、取得したチェーンインスタンス情報に含まれる各チェーンインスタンスについて、以下のステップＤ１２〜Ｄ１４を繰り返す。
【０１１０】
ここでは、まず、制御装置８０は、該当するチェーンインスタンスがまだ作成されていない場合（ステップＤ１２でＮｏ）、サービスチェーン実行装置４０上に、このチェーンインスタンスを生成する。具体的には、制御装置８０は、チェーンインスタンスを構成する各ノード３１のノードインスタンス３２を、スケール数だけ生成する（ステップＤ１３）。
【０１１１】
一方、該当するチェーンインスタンスが既に動作している場合（ステップＤ１２でＹｅｓ）、制御装置８０は、そのチェーンインスタンスに含まれる各ノード３１について、ノードインスタンス３２の数がスケール数となるよう変更する（ステップＤ１４）。
【０１１２】
以上で、スケール数管理システム２は、スケール数制御動作を終了する。
【０１１３】
次に、スケール数管理システム２の動作を具体例で示す。この具体例では、サービスチェーン実行装置４０では、既にいくつかのサービスチェーン４３が稼働しているものとする。また、各ノード３１を識別するノードＩＤを「nodeX」などと表し、ノードＩＤがnodeXのノード３１を、単に「nodeX」とも記載する。
【０１１４】
＜機能ルール設定履歴およびサービス履歴の取得動作＞
まず、取得装置５０は、サービスチェーン実行装置４０から、サービスチェーン４３における各ノード３１について機能ルール設定履歴を取得し、機能ルール設定履歴記憶部５０１に記憶する（ステップＡ１）。取得された機能ルール設定履歴は、ノードＩＤと、機能ルールの設定内容と、タイムスタンプとを含む。ここでは、図１１に示す機能ルール設定履歴が取得されたものとする。図１１では、例えばnodePの場合、タイムスタンプ「2014/03/09: 09:00:00.000」に、ＳＳＨ（Secure SHell）関連で２つ、ＤＮＳ（Domain Name System）関連で４つの合計６つの機能ルールが設定されている。なお、図１１に示す機能ルール設定履歴は、各設定情報に、ノード３１の機能のタイプを示す情報を含んでいるが、本実施の形態における機能ルール設定履歴は、少なくともノードＩＤと、機能ルールの設定内容と、タイムスタンプとを含んでいればよい。
【０１１５】
次に、取得装置５０は、サービスチェーン実行装置４０から、サービスチェーン４３における各ノード３１のサービス履歴を取得し、サービス履歴記憶部５０２に記憶する（ステップＡ２）。取得されたサービス履歴は、ノードＩＤと、処理の開始時間および終了時間と、処理したデータ量とを含む。ここでは、図１２に示すサービス履歴が取得されたものとする。なお、図１２に示すサービス履歴は、各処理の履歴に、ノード３１の機能のタイプを示す情報を含んでいるが、本実施の形態におけるサービス履歴は、少なくともノードＩＤと、処理の開始時間および終了時間と、データ量とを含んでいればよい。
【０１１６】
このようにして、取得装置５０は、ステップＡ１〜Ａ２の処理をある期間繰り返し、機能ルール設定履歴およびサービス履歴を蓄積する。
【０１１７】
＜性能モデル生成動作＞
次に、性能モデル生成部２３は、機能ルール設定履歴記憶部５０１に記憶されている図１１の情報から、各ノード３１の設定情報毎に、機能ルールの数をカウントして機能ルール定量値とする。そして、ノードＩＤと、機能ルール定量値と、タイムスタンプとを対応付ける（ステップＢ１２）。これにより、図１３に示す機能ルール定量値情報が生成される。なお、図１３に示す機能ルール定量値情報は、ノード３１の機能のタイプを示す情報を含んでいるが、本実施の形態における機能ルール定量値情報は、少なくともノードＩＤと、機能ルール定量値と、タイムスタンプとを含んでいればよい。
【０１１８】
次に、サービス量算出部２２は、機能ルール定量値情報に基づいて、機能ルール定量値それぞれについて、その機能ルールが発効されてから更新されるまでの有効期間を求める（ステップＢ１３）。そして、サービス量算出部２２は、機能ルール定量値の有効期間毎にそのノード３１のサービス量を求める（ステップＢ１４）。
【０１１９】
例えば、図１３の機能ルール定量値情報では、nodeXの場合、タイムスタンプｔ１「2014/03/09: 08:00:00.000」に６つの機能ルールが設定されたあと、タイムスタンプｔ２「2014/03/10: 15:00:00.000」に８つの機能ルールに更新されている。そこで、nodeXの機能ルール定量値（ルール数６）については、ｔ１〜ｔ２までの期間が有効期間となる。
【０１２０】
そして、サービス量算出部２２は、ｔ１〜ｔ２までの期間におけるnodeXのサービス履歴を、図１２のサービス履歴から得る。そして、各履歴の開始時間および終了時間の差（サービス時間）の平均値で、データ量の平均値を割ることにより、処理能力を示すサービス量μを算出する。例えば、データ量の単位がＭｂ（メガバイト）であり、サービス時間の単位がｓ（秒）である場合、サービス量の単位は、「Mbps（メガバイト毎秒）」となる。
【０１２１】
サービス量算出部２２は、このような処理を、各ノード３１の各設定情報について繰り返すことにより、各ノード３１について、機能ルール定量値およびサービス量の値の組の集合を生成する。
【０１２２】
次に、性能モデル生成部２３は、各ノード３１について、サービス量を目的変数、ルール量を説明変数とした統計解析を行うことにより、式（１）に示したサービス量推定式における定数ＡおよびＢを求める。例えば、nodeXについて、
μ=59.1/rule+20.5”・・・（１’）
で表されるサービス量推定式が求められたとする。このサービス量推定式（１’）は、機能ルール定量値（ルール数）が増えるほど、サービス量が減少することを表す（ステップＢ１５）。
【０１２３】
そして、性能モデル生成部２３は、各ノード３１について、求めたサービス量推定式（１）と、複数窓口の待ち行列モデルで用いられる方程式（２）と、稼働率ρ（ここでは０．７）とを、性能モデルとして性能モデル記憶部２３０に記憶する（ステップＢ１６）。ここでは、例えば、性能モデル記憶部２３０には、図１４に示す性能モデルが記憶されたものとする。なお、図１４に示す性能モデルは、ノード３１の機能のタイプを示す情報を含んでいるが、本実施の形態の性能モデルは、少なくともノードＩＤ、サービス量推定式、サービス量と入力トラフィック量とスケール数との関係を表す方程式、および稼働率の値を含んでいればよい。
【０１２４】
＜チェーンインスタンス生成動作＞
次に、チェーンインスタンス生成部２４は、サービスチェーン実行装置４０上に生成するサービスチェーン４３に関する定義情報として、図１５に示すサービスチェーン定義情報を取得する。図１５では、chain1というＩＤで識別されるサービスチェーン４３は、ＦＷとして機能するnode1、ＮＡＴとして機能するnode3、および、ＬＢとして機能するnode7を連結して機能させるものである。また、chain2というＩＤで識別されるサービスチェーン４３は、ＦＷとして機能するnode2、ＤＰＩ（Deep Packet Inspection）として機能するnode6を連結して機能させるものである。図１５に示すように、サービスチェーン定義情報は、サービスチェーン４３を構成するノードＩＤと、各ノード３１の機能ルールの設定内容とを含む。
【０１２５】
また、チェーンインスタンス生成部２４は、図１５に示したサービスチェーン定義情報に含まれる各サービスチェーン４３について、想定される最大の入力トラフィック量の情報を取得する。例えば、取得される情報は、図１６に示す通りとなる（ステップＣ１１）。
【０１２６】
次に、チェーンインスタンス生成部２４は、定義情報に含まれる各サービスチェーン４３について、その構成要素である各ノード３１の性能モデルを、性能モデル記憶部２３０に記憶された図１４に示す情報より取り出す（ステップＣ１２）。
【０１２７】
次に、チェーンインスタンス生成部２４は、各サービスチェーン４３の構成要素である各ノード３１について、定義情報で設定されている機能ルールを、機能ルール定量化部２１を用いて定量化する。例えば、図１５のサービスチェーン定義情報において、node1には、２つの機能ルールが設定されている。このため、node1の機能ルール定量値は「２」となる（ステップＣ１３）。
【０１２８】
次に、チェーンインスタンス生成部２４は、定義情報より求めたノード３１の機能ルール定量値を、そのノード３１の性能モデルに含まれるサービス量推定式（１）に代入する。例えば、図１４では、node1の性能モデルは、サービス量推定式（１’）「μ=59.1/rule+20.5」を含む。そこで、チェーンインスタンス生成部２４は、式（１’）に、機能ルール定量値「rule＝２」を代入することにより、サービス量を「μ＝50.05」と推定する（ステップＣ１４）。
【０１２９】
次に、チェーンインスタンス生成部２４は、図１６に示した入力トラフィック量の情報を参照し、node1を含むチェーンインスタンス「chain1」に想定される入力トラフィック量の値「λ=68(Mbps)」を求める。そして、チェーンインスタンス生成部２４は、方程式（２）ρ=λ/Sμに、「λ=68(Mbps)」と、サービス量推定式（１’）により求めた「μ＝50.05」とを代入する。これにより、チェーンインスタンス生成部２４は、稼働率0.7を満たすことのできるスケール数「２」を算出する（ステップＣ１５）。
【０１３０】
このように、チェーンインスタンス生成部２４は、ステップＣ１２〜Ｃ１５の処理を各ノード３１について実行する。
【０１３１】
そして、チェーンインスタンス生成部２４は、推定した各ノード３１のスケール数と、図１５のサービスチェーン定義情報とを用いて、図１７に示すようなチェーンインスタンス情報を生成する（ステップＣ１６）。なお、図１７に示すチェーンインスタンス情報は、各ノード３１の機能ルール定量値を含んでいるが、必ずしも含む必要はない。本実施の形態のチェーンインスタンス情報は、サービスチェーンの定義情報に加えて、各チェーンインスタンスを構成する各ノード３１のスケール数を少なくとも含んでいればよい。
【０１３２】
＜スケール数制御動作＞
次に、制御装置８０は、図１７のチェーンインスタンス情報を読み込み（ステップＤ１１）、サービスチェーン実行装置４０上に、チェーンインスタンスを作成する。具体的には、制御装置８０は、各サービスチェーン４３の各ノード３１について、指定されたスケール数のノードインスタンス３２を生成して稼働させる。または、制御装置８０は、既に稼働中のサービスチェーン４３については、各ノード３１のノードインスタンス３２の数を、チェーンインスタンス情報に含まれるスケール数となるよう調整する（ステップＤ１２〜Ｄ１４）。
【０１３３】
以上で、スケール数管理システム２の具体的な動作の説明を終了する。
【０１３４】
次に、本発明の第２の実施の形態の効果について述べる。
【０１３５】
本発明の第２の実施の形態としてのスケール数管理システムは、サービスチェーン実行装置のノードにおけるインスタンスの処理性能をより精度よく推定し、入力トラフィックを処理可能なスケール数をより精度よく制御することができる。
【０１３６】
その理由について説明する。本実施の形態では、取得装置が、サービスチェーンの各ノードの機能ルール設定履歴およびサービス履歴を取得する。そして、スケール数推定装置の機能ルール定量化部が、サービスチェーンを構成する各ノードの機能ルール数に基づき機能ルール定量値を算出する。また、サービス量算出部が、各ノードにおいて処理されたデータ量の平均値をサービス時間の平均値で割ることにより、ノードインスタンスの単位時間あたりのサービス量を算出する。そして、性能モデル生成部が、機能ルール定量値およびサービス量の組の集合を統計解析することにより、機能ルール定量値からスケール数を推定するスケール数推定式を生成する。そして、性能モデル生成部が、スケール数推定式、および、サービス量と入力トラフィック量とスケール数との関係を表す方程式を含む性能モデルを生成する。そして、スケール数推定部が、性能モデルを用いて、サービスチェーンに流入が想定される入力トラフィック量および想定される機能ルールに応じたスケール数を推定する。そして、制御装置が、推定されたスケール数に基づいたノードインスタンス数となるようサービスチェーンを生成するからである。
【０１３７】
これにより、本実施の形態は、サービスチェーンの各ノードに設定される機能ルールの内容またはその変更に応じて、ノードインスタンスの処理性能の推定精度を向上できる。その結果、本実施の形態は、サービスチェーンに流入が想定される入力トラフィックを必要最小限のリソースで処理可能なスケール数をより精度よく見積もることができる。
【０１３８】
なお、本発明の第２の実施の形態において、機能ルール定量化部が、機能ルール数に基づいて機能ルール定量値を算出する例を中心に説明した。この他、機能ルール定量化部は、機能ルール定量値として、機能ルールの設定内容を定量化して表現可能な情報や、そのような情報の組合せに基づく値を算出してもよい。
【０１３９】
また、本発明の第２の実施の形態において、サービス量算出部は、各ノードにおけるノードインスタンスのサービス時間の平均値およびデータ量の平均値からサービス量を算出する例を中心に説明した。この他、サービス量は、各ノードのサービス履歴を用いたその他の算出方法により、各ノードについてノードインスタンスの単位時間あたりのサービス量を求めてもよい。
【０１４０】
また、本発明の第２の実施の形態において、性能モデルが、サービス量推定式および待ち行列モデルで用いられる方程式からなる例を中心に説明した。この他、性能モデルは、機能ルール定量値および入力トラフィック量からスケール数を推定可能なモデルであれば、その他のモデルであってもよい。
【０１４１】
また、上述した本発明の各実施の形態において、スケール数管理システムを構成する各装置の各機能ブロックが、記憶装置またはＲＯＭに記憶されたコンピュータ・プログラムを実行するＣＰＵによって実現される例を中心に説明した。この他、各装置の各機能ブロックの一部、全部、または、それらの組み合わせが専用のハードウェアにより実現されていてもよい。
【０１４２】
また、上述した本発明の各実施の形態において、スケール数管理システムを構成する各装置の機能ブロックは、複数の装置に分散されて実現されてもよい。また、前述したように、各装置の一部または全部は、同一の装置上に実現されていてもよい。
【０１４３】
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した各装置の動作を、本発明のコンピュータ・プログラムとしてコンピュータの記憶装置（記憶媒体）に格納しておいてもよい。そして、係るコンピュータ・プログラムを当該ＣＰＵが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
【０１４４】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【０１４５】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【０１４６】
この出願は、２０１４年９月９日に出願された日本出願特願２０１４−１８２８１４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１４７】
１、２    スケール数管理システム
１０、２０    スケール数推定装置
３０    ネットワーク機能提供装置
４０    サービスチェーン実行装置
５０    取得装置
７０、８０    制御装置
１１、２１    機能ルール定量化部
１２、２２    サービス量算出部
１３、２３    性能モデル生成部
１４    スケール数推定部
２４    チェーンインスタンス生成部
３１    ノード
３２    ノードインスタンス
４３    サービスチェーン
１３０、２３０    性能モデル記憶部
５０１    機能ルール設定履歴記憶部
５０２    サービス履歴記憶部
１００、３００、５００、７００    コンピュータ装置
１００１、３００１、５００１、７００１    ＣＰＵ
１００２、３００２、５００２、７００２    ＲＡＭ
１００３、３００３、５００３、７００３    ＲＯＭ
１００４、３００４、５００４、７００４    記憶装置
１００５、３００５、５００５、７００５    ネットワークインタフェース
【図１】
0006558374.tif 000003
【図２】
0006558374.tif 000004
【図３】
0006558374.tif 000005
【図４】
0006558374.tif 000006
【図５】
0006558374.tif 000007
【図６】
0006558374.tif 000008
【図７】
0006558374.tif 000009
【図８】
0006558374.tif 000010
【図９】
0006558374.tif 000011
【図１０】
0006558374.tif 000012
【図１１】
0006558374.tif 000013
【図１２】
0006558374.tif 000014
【図１３】
0006558374.tif 000015
【図１４】
0006558374.tif 000016
【図１５】
0006558374.tif 000017
【図１６】
0006558374.tif 000018
【図１７】
0006558374.tif 000019
【図１８】
0006558374.tif 000020