(57)【要約】【課題】サービスチェーンの信頼性を向上させる。【解決手段】複数の物理プラットフォームに配置された複数の仮想ネットワーク機能（ＶＮＦ）が連携してそれぞれ構成される複数のサービスチェーンを管理するオーケストレータ装置１０は、記憶部１２と制御部１３とを備える。記憶部１２は、各サービスチェーンのサービス品質の推定値を出力するニューラルネットワークを記憶する。制御部１３は、複数のサービスチェーンのうち１つのサービスチェーンをデフォルトサービスチェーンに設定し、ニューラルネットワークから出力される各サービスチェーンの将来のサービス品質の推定値に基づいて、複数のサービスチェーンのうちからデフォルトサービスチェーンよりも将来のサービス品質が良いと推定される他のサービスチェーンを特定し、特定したサービスチェーンをデフォルトサービスチェーンに再設定する。【選択図】図１
2020053711.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理プラットフォームに配置された複数の仮想ネットワーク機能（ＶＮＦ）が連携してそれぞれ構成される複数のサービスチェーンを管理するオーケストレータ装置であって、
各前記サービスチェーンのサービス品質の推定値を出力する１つ又は複数のニューラルネットワークを記憶する記憶部と、
前記複数のサービスチェーンのうち１つの前記サービスチェーンを、ユーザに利用させるデフォルトサービスチェーンに設定し、
前記ニューラルネットワークから出力される各前記サービスチェーンの将来のサービス品質の推定値を取得し、
各前記サービスチェーンの将来のサービス品質の推定値に基づいて、前記複数のサービスチェーンのうちから、前記デフォルトサービスチェーンよりも将来のサービス品質が良いと推定される他のサービスチェーンを特定し、
特定した前記サービスチェーンを前記デフォルトサービスチェーンに再設定する制御部と、
を備える、オーケストレータ装置。
【請求項２】
請求項１に記載のオーケストレータ装置であって、
前記記憶部は、前記複数のニューラルネットワークと、各前記ニューラルネットワークの精度情報と、を記憶し、
前記制御部は、
各前記ニューラルネットワークから出力される各前記サービスチェーンの将来のサービス品質の推定値を取得し、
前記複数のニューラルネットワークのうち最高精度の１つのニューラルネットワークから出力された各前記サービスチェーンの将来のサービス品質の推定値に基づいて、前記複数のサービスチェーンのうちから、前記デフォルトサービスチェーンよりも将来のサービス品質が良いと推定される他のサービスチェーンを特定し、
前記デフォルトサービスチェーンの再設定後、各前記ニューラルネットワークから出力される各前記サービスチェーンの将来のサービス品質の推定値と、各前記サービスチェーンのサービス品質の実績値と、の比較に基づいて各前記ニューラルネットワークの前記精度情報を更新する、オーケストレータ装置。
【請求項３】
情報処理装置を、請求項１又は２に記載のオーケストレータ装置として機能させる、プログラム。
【請求項４】
複数の物理プラットフォームと、前記複数の物理プラットフォームに配置された複数の仮想ネットワーク機能（ＶＮＦ）が連携してそれぞれ構成される複数のサービスチェーンを管理するオーケストレータ装置と、を備える情報処理システムであって、
前記オーケストレータ装置は、
各前記サービスチェーンのサービス品質の推定値を出力する１つ又は複数のニューラルネットワークを記憶する記憶部と、
前記複数のサービスチェーンのうち１つの前記サービスチェーンを、ユーザに利用させるデフォルトサービスチェーンに設定し、
前記ニューラルネットワークから出力される各前記サービスチェーンの将来のサービス品質の推定値を取得し、
各前記サービスチェーンの将来のサービス品質の推定値に基づいて、前記複数のサービスチェーンのうちから、前記デフォルトサービスチェーンよりも将来のサービス品質が良いと推定される他のサービスチェーンを特定し、
特定した前記サービスチェーンを前記デフォルトサービスチェーンに再設定する制御部と、
を有する、情報処理システム。
【請求項５】
請求項４に記載の情報処理システムであって、
前記記憶部は、前記複数のニューラルネットワークと、各前記ニューラルネットワークの精度情報と、を記憶し、
前記制御部は、
各前記ニューラルネットワークから出力される各前記サービスチェーンの将来のサービス品質の推定値を取得し、
前記複数のニューラルネットワークのうち最高精度の１つのニューラルネットワークから出力された各前記サービスチェーンの将来のサービス品質の推定値に基づいて、前記複数のサービスチェーンのうちから、前記デフォルトサービスチェーンよりも将来のサービス品質が良いと推定される他のサービスチェーンを特定し、
前記デフォルトサービスチェーンの再設定後、各前記ニューラルネットワークから出力される各前記サービスチェーンの将来のサービス品質の推定値と、各前記サービスチェーンのサービス品質の実績値と、の比較に基づいて各前記ニューラルネットワークの前記精度情報を更新する、情報処理システム。
【請求項６】
複数の物理プラットフォームに配置された複数の仮想ネットワーク機能（ＶＮＦ）が連携してそれぞれ構成される複数のサービスチェーンを管理するオーケストレータ装置の制御方法であって、
各前記サービスチェーンのサービス品質の推定値を出力する１つ又は複数のニューラルネットワークを記憶する記憶ステップと、
前記複数のサービスチェーンのうち１つの前記サービスチェーンを、ユーザに利用させるデフォルトサービスチェーンに設定するステップと、
前記ニューラルネットワークから出力される各前記サービスチェーンの将来のサービス品質の推定値を取得する取得ステップと、
各前記サービスチェーンの将来のサービス品質の推定値に基づいて、前記複数のサービスチェーンのうちから、前記デフォルトサービスチェーンよりも将来のサービス品質が良いと推定される他のサービスチェーンを特定する特定ステップと、
特定した前記サービスチェーンを前記デフォルトサービスチェーンに再設定するステップと、
を含む、制御方法。
【請求項７】
請求項６に記載の制御方法であって、
前記記憶ステップは、前記複数のニューラルネットワークと、各前記ニューラルネットワークの精度情報と、を記憶し、
前記取得ステップは、各前記ニューラルネットワークから出力される各前記サービスチェーンの将来のサービス品質の推定値を取得し、
前記特定ステップは、前記複数のニューラルネットワークのうち最高精度の１つのニューラルネットワークから出力された各前記サービスチェーンの将来のサービス品質の推定値に基づいて、前記複数のサービスチェーンのうちから、前記デフォルトサービスチェーンよりも将来のサービス品質が良いと推定される他のサービスチェーンを特定し、
前記デフォルトサービスチェーンの再設定後、各前記ニューラルネットワークから出力される各前記サービスチェーンの将来のサービス品質の推定値と、各前記サービスチェーンのサービス品質の実績値と、の比較に基づいて各前記ニューラルネットワークの前記精度情報を更新するステップを更に含む、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オーケストレータ装置、プログラム、情報処理システム、及び制御方法に関する。
【背景技術】
【０００２】
従来、ネットワークサービスを提供するためのアプリケーションを、機能単位で複数の構成要素（マイクロサービス）に分けて開発し、ネットワーク上で連携させる技術が知られている（例えば、非特許文献１参照）。各マイクロサービスを実現する機能を「仮想ネットワーク機能（ＶＮＦ；Virtual Network Function）」といい、互いに連携して１つのサービスを構成する複数のＶＮＦの組合せを「サービスチェーン」という。例えば、ネットショッピングのサービスチェーンは、顧客管理機能、注文管理機能、在庫管理機能、及び出荷管理機能等の複数のＶＮＦを含んで構成され得る。ＶＮＦは、物理プラットフォーム（例えば、物理計算機、又はＩａａＳ（Infrastructure as a Service）やＰａａＳ（Platform as a Service）等のデータセンタ）に配置される。当該技術は、システム構築における設計・試験の効率化及び運用における維持管理の簡易さ・コスト削減効果等から、今後も有望な技術と見込まれる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Lianping Chen, “Microservices: Architecting for Continuous Delivery and DevOps”, in IEEE International Conference on Software Architecture, March 2018, Seattle, USA: IEEE
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ハードウェアの発達とともに、単独のサービスではハードウェアリソースを余らせることが多くなる。コスト削減のために、多数の異なるＶＮＦを同じ物理プラットフォームに配置することが多くなる。例えば、マイクロサービスアーキテクチャを効率的に運用するために、計算機のリソース量やネットワークの帯域に比較して実使用リソース量が少ないＶＮＦは、１つの物理プラットフォームに集約させることで、運用コストを削減させる。しかしながら、単一の物理プラットフォームに多数のＶＮＦを配置すると、特定のサービスチェーンの稼働率又はネットワーク帯域がピークに到達したとき、当該サービスチェーンは、他の同居しているサービスから影響を受け、サービス品質が低下するという問題がある。サービス提供者と物理プラットフォーム提供者とが異なる場合、当該問題の回避は困難である。また、当該サービスチェーンが、他の同居しているサービスに悪影響を与えたり、それらの性能を悪化させたりする場合がある。したがって、サービスチェーンの信頼性の向上が望まれている。
【０００５】
かかる事情に鑑みてなされた本発明の目的は、サービスチェーンの信頼性を向上させることにある。
【課題を解決するための手段】
【０００６】
本発明の一実施形態に係るオーケストレータ装置は、
複数の物理プラットフォームに配置された複数の仮想ネットワーク機能（ＶＮＦ）が連携してそれぞれ構成される複数のサービスチェーンを管理するオーケストレータ装置であって、
各前記サービスチェーンのサービス品質の推定値を出力する１つ又は複数のニューラルネットワークを記憶する記憶部と、
前記複数のサービスチェーンのうち１つの前記サービスチェーンを、ユーザに利用させるデフォルトサービスチェーンに設定し、
前記ニューラルネットワークから出力される各前記サービスチェーンの将来のサービス品質の推定値を取得し、
各前記サービスチェーンの将来のサービス品質の推定値に基づいて、前記複数のサービスチェーンのうちから、前記デフォルトサービスチェーンよりも将来のサービス品質が良いと推定される他のサービスチェーンを特定し、
特定した前記サービスチェーンを前記デフォルトサービスチェーンに再設定する制御部と、を備える。
【０００７】
本発明の一実施形態に係るプログラムは、
情報処理装置を、
複数の物理プラットフォームに配置された複数の仮想ネットワーク機能（ＶＮＦ）が連携してそれぞれ構成される複数のサービスチェーンを管理するオーケストレータ装置であって、
各前記サービスチェーンのサービス品質の推定値を出力する１つ又は複数のニューラルネットワークを記憶する記憶部と、
前記複数のサービスチェーンのうち１つの前記サービスチェーンを、ユーザに利用させるデフォルトサービスチェーンに設定し、
前記ニューラルネットワークから出力される各前記サービスチェーンの将来のサービス品質の推定値を取得し、
各前記サービスチェーンの将来のサービス品質の推定値に基づいて、前記複数のサービスチェーンのうちから、前記デフォルトサービスチェーンよりも将来のサービス品質が良いと推定される他のサービスチェーンを特定し、
特定した前記サービスチェーンを前記デフォルトサービスチェーンに再設定する制御部と、を備える、オーケストレータ装置として機能させる。
【０００８】
本発明の一実施形態に係る情報処理システムは、
複数の物理プラットフォームと、前記複数の物理プラットフォームに配置された複数の仮想ネットワーク機能（ＶＮＦ）が連携してそれぞれ構成される複数のサービスチェーンを管理するオーケストレータ装置と、を備える情報処理システムであって、
前記オーケストレータ装置は、
各前記サービスチェーンのサービス品質の推定値を出力する１つ又は複数のニューラルネットワークを記憶する記憶部と、
前記複数のサービスチェーンのうち１つの前記サービスチェーンを、ユーザに利用させるデフォルトサービスチェーンに設定し、
前記ニューラルネットワークから出力される各前記サービスチェーンの将来のサービス品質の推定値を取得し、
各前記サービスチェーンの将来のサービス品質の推定値に基づいて、前記複数のサービスチェーンのうちから、前記デフォルトサービスチェーンよりも将来のサービス品質が良いと推定される他のサービスチェーンを特定し、
特定した前記サービスチェーンを前記デフォルトサービスチェーンに再設定する制御部と、を有する。
【０００９】
本発明の一実施形態に係る制御方法は、
複数の物理プラットフォームに配置された複数の仮想ネットワーク機能（ＶＮＦ）が連携してそれぞれ構成される複数のサービスチェーンを管理するオーケストレータ装置の制御方法であって、
各前記サービスチェーンのサービス品質の推定値を出力する１つ又は複数のニューラルネットワークを記憶する記憶ステップと、
前記複数のサービスチェーンのうち１つの前記サービスチェーンを、ユーザに利用させるデフォルトサービスチェーンに設定するステップと、
前記ニューラルネットワークから出力される各前記サービスチェーンの将来のサービス品質の推定値を取得する取得ステップと、
各前記サービスチェーンの将来のサービス品質の推定値に基づいて、前記複数のサービスチェーンのうちから、前記デフォルトサービスチェーンよりも将来のサービス品質が良いと推定される他のサービスチェーンを特定する特定ステップと、
特定した前記サービスチェーンを前記デフォルトサービスチェーンに再設定するステップと、を含む。
【発明の効果】
【００１０】
本発明の一実施形態に係るオーケストレータ装置、プログラム、情報処理システム、及び制御方法によれば、サービスチェーンの信頼性が向上する。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係る情報処理システムの概略構成を示す図である。
【図２】サービスチェーンの概略構成を示す図である。
【図３】ニューラルネットワークの例を示す図である。
【図４】オーケストレータ装置の第１動作を示すフローチャートである。
【図５】オーケストレータ装置の第２動作を示すフローチャートである。
【図６】オーケストレータ装置の第３動作を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について説明する。概略として、本実施形態に係る発明は、サービスチェーンを構成する複数のＶＮＦがネットワーク上に分散して配置されるマイクロサービス環境における信頼性を向上させる。具体的には、本実施形態では、同一のＶＮＦをインターネット上に分散配置し、全ての組合せにおける性能を測定、測定結果を深層学習し、性能の劣化が予想される箇所を事前に検知し、その箇所への作業リクエスト配送＾を減らすことで、サービス全体の効率を向上させる。
【００１３】
例えば、多数のサービスチェーンを地理的に離れた場所に複製してそれらのサービス品質の周期性を学習することで、サービスチェーンのサービス品質悪化の兆候を検出し、事前に帯域を調整させる。同一のＶＮＦを複数の場所に複製すると、単一の場所に配置するよりもコストが上昇すると思われるかもしれないが、動作を確実にするために、大きなリソースを確保した高価な特定箇所の物理プラットフォームを使用するよりは、小さなリソースを安価で確保した物理プラットフォームを世界中で分散させ、需要の予測に応じて柔軟にリソースを調整する方が、信頼性・コスト面で有利となることを目指す。
【００１４】
（情報処理システムの構成）
図１を参照して、本発明の一実施形態に係る情報処理システム１の概要について説明する。情報処理システム１は、複数の物理プラットフォームｂ（ｂ１〜ｂｎ。ただし、ｎは２以上の整数。）と、オーケストレータ装置１０と、ロードバランサｃ（ｃ１〜ｃｍ。ただし、ｍは２以上の整数。）と、プローブ２０と、を備える。各物理プラットフォームｂ、各ロードバランサｃ、オーケストレータ装置１０、及びプローブ２０は、例えばインターネット等を含むネットワーク３０に接続される。
【００１５】
物理複数の物理プラットフォームｂ１〜ｂｎには、サービスチェーンを構成するための複数のＶＮＦａ（ａ１〜ａｍ）が配置される。１つの物理プラットフォームｂに１つ又は複数のＶＮＦａが配置されてもよい。少なくとも１つのＶＮＦａは、複製されて２つ以上の物理プラットフォームｂに分散配置される。本実施形態では、各物理プラットフォームｂに全てのＶＮＦａ１〜ａｍが配置されている構成について例示的に説明する。２つ以上の物理プラットフォームｂが、同一の地理的領域に存在してもよく、異なる地理的領域に存在してもよい。
【００１６】
物理プラットフォームｂは、例えば１つの情報処理装置であってもよく、或いは同一の地理的領域に設置され互いに通信可能な複数の情報処理装置であってもよい。物理プラットフォームｂは、例えば通信インタフェースと、メモリと、プロセッサと、を備える。物理プラットフォームｂは、通信インタフェースを介してネットワーク３０に接続される。物理プラットフォームｂは、配置されたＶＮＦａを実現するために用いられる任意のソフトウェア資源をメモリに記憶する。物理プラットフォームｂは、メモリに記憶された当該ソフトウェア資源を用いた情報処理をプロセッサで実行することによって、ＶＮＦａを実現する。
【００１７】
ロードバランサｃ１〜ｃｍは、ＶＮＦａ１〜ａｍに対応して設けられる。ロードバランサｃは、クライアント又はプローブ２０からのリクエストを、対応するＶＮＦａが配置された複数の物理プラットフォームｂの間で割り振ることで負荷を分散する。
【００１８】
図２を参照して詳細に説明する。以下、ＶＮＦａｉ（ｊ）は、ロードバランサｃｉに対応し、物理プラットフォームｂｊに配置されているＶＮＦａであることを示す。例えば、ロードバランサｃ１は、対応するＶＮＦａ１（１）〜ａ１（ｎ）のうち、いずれか１つのＶＮＦａ１（ｊ）が配置された物理プラットフォームｂｊにリクエストを割り振る。ＶＮＦａ１（ｊ）を実行した物理プラットフォームｂｊは、リクエストを次のロードバランサｃ２に送信する。最終的に、ＶＮＦａ１〜ａｍが実行され、サービスチェーンが実現する。本実施形態では、同一種類のＶＮＦａｉであっても、その実行主体によって異なるＶＮＦａｉであるものとして扱う。したがって、ＶＮＦａ１〜ａｍの実行主体である物理プラットフォームｂの組合せが異なる場合、実現されるサービスチェーンも異なるものとして区別する。以下、サービスチェーンを｛ａ１（ｉ１），ａ２（ｉ２），…，ａｍ（ｉｍ）｝（ただし、１≦ｉ１，ｉ２，…，ｉｍ≦ｎ。）とも表現する。例えば、ＶＮＦａ１〜ａｍの全てを物理プラットフォームｂ１が実行した場合のサービスチェーン｛ａ１（１），ａ２（１），…，ａｍ（１）｝と、ＶＮＦａ１を物理プラットフォームｂ１が実行し、ＶＮＦａ２〜ａｍを物理プラットフォームｂ２が実行した場合のサービスチェーン｛ａ１（１），ａ２（２），…，ａｍ（２）｝とは互いに異なる。本実施形態では、ｎ個の物理プラットフォームｂ１〜ｂｎのそれぞれにｍ個のＶＮＦａ１〜ａｍが配置されているため、これらが複数のロードバランサｃ１〜ｃｍによって接続され、ｎｍ個のサービスチェーンが仮想的に構成される。
【００１９】
ここで、クライアント（例えば、ユーザの使用する端末装置）及びプローブ２０のいずれからのリクエストであるかに応じて、ロードバランサｃによる割り振り先の決定方法が異なる。クライアントからのリクエストである場合、ロードバランサｃｉは、対応するＶＮＦａｉ（１）〜ａｉ（ｎ）のうち、規定（デフォルト）の１つのＶＮＦａｉ（ｊ）が配置された物理プラットフォームｂｊを優先的に割り振り先として決定する。いずれの物理プラットフォームｂを規定とするかは、オーケストレータ装置１０によりロードバランサｃ毎に定められる。以下、規定のＶＮＦａ１〜ａｍにより実現されクライアント（ユーザ）に利用させるサービスチェーンを、デフォルトサービスチェーンともいう。したがって、例えば各物理プラットフォームｂのパフォーマンスが十分高い場合（即ち、ロードバランシングを行う必要がない場合）、クライアントからのリクエストは、デフォルトサービスチェーンで処理される。なお、デフォルトサービスチェーンを構成する各ＶＮＦａには、当該ＶＮＦａが配置された物理プラットフォームｂの、より大きなリソースとネットワーク帯域が割り当てられ、当該物理プラットフォームｂに配置された他のＶＮＦａには必要最低限のリソースしか割り当てられなくてもよい。
【００２０】
一方、プローブ２０からのリクエストである場合、ロードバランサＣｉは、対応するＶＮＦａｉ（１）〜ａｉ（ｎ）が配置された全ての物理プラットフォームｂ１〜ｂｎのうち、プローブ２０によって指定された１つ以上の物理プラットフォームｂを割り振り先として決定する。本実施形態では、プローブ２０は、対応するＶＮＦａｉ（１）〜ａｉ（ｎ）が配置された全ての物理プラットフォームｂ１〜ｂｎを指定する。したがって、プローブ２０からのリクエストは、ｎｍ個のサービスチェーンそれぞれで処理される。
【００２１】
プローブ２０は、リクエストをロードバランサｃ１に送信することによりｎｍ個のサービスチェーンが実行されると、サービスチェーンのサービス品質の実績データＱ０＝［ｑ０（１），…，ｑ０（ｎ＾ｍ）］を測定する。ここで、ｑ０（ｉ）（ただし、１≦ｉ≦ｎｍ。）は、ｉ番目のサービスチェーンのサービス品質の実績値である。サービスチェーンのサービス品質は、サービスチェーンの観測可能な品質を示す情報であって、例えば当該サービスチェーンを利用するエンドユーザの体感品質（ＱｏＥ；Quality of Experience）を任意の手法で定量化した情報であるが、これに限られず任意に定められてもよい。
【００２２】
オーケストレータ装置１０は、例えばコンピュータ等の情報処理装置であって、ネットワーク３０に接続される。オーケストレータ装置１０は、複数のＶＮＦａ１〜ａｍが連携することによって構成されるサービスチェーンを管理する。具体的には、オーケストレータ装置１０は、複数の物理プラットフォームｂ１〜ｂｎに複数のＶＮＦａ１〜ａｍを分散配置し、これらを連携させることによって、複数（本実施形態では、ｎｍ個）のサービスチェーンを構成する。本実施形態において「物理プラットフォームｂにＶＮＦａを配置する」ことは、当該ＶＮＦａの実行主体を当該物理プラットフォームｂに決定すること、及び、当該ＶＮＦａを実現するためのソフトウェア資源を当該物理プラットフォームｂに記憶させることを含んでもよい。
【００２３】
概略として、本実施形態に係る情報処理システム１において、オーケストレータ装置１０は、複数（例えば、ｎｍ個）のサービスチェーンのうち、１つのサービスチェーンをデフォルトサービスチェーンに設定する。プローブ２０は、測定した複数のサービスチェーンのサービス品質の実績データＱ０をオーケストレータ装置１０へ送信する。オーケストレータ装置１０は、実績データＱ０を後述するニューラルネットワークＦに投入（入力）することにより、当該複数のサービスチェーンの将来のサービス品質の推定データＱを取得する。オーケストレータ装置１０は、当該推定データＱに基づいて、デフォルトサービスチェーンよりも将来のサービス品質が良いと推定される他のサービスチェーンを特定する。例えば、デフォルトサービスチェーンのサービス品質の推定値ｑと、よりサービス品質が良い他のサービスチェーンのサービス品質の推定値ｑとの差又はその２乗値が所定の閾値以上である場合、デフォルトサービスチェーンよりも当該他のサービスチェーンの方が将来のサービス品質が良いと推定される。そして、オーケストレータ装置１０は、特定した当該他のサービスチェーンをデフォルトサービスチェーンに再設定する。
【００２４】
このように、本実施形態によれば、将来のサービス品質がデフォルトサービスチェーンよりも良いと推定される他のサービスチェーンが特定された場合、当該他のサービスチェーンがデフォルトサービスチェーンに再設定されるので、デフォルトサービスチェーンの信頼性を向上可能である。
【００２５】
次に、オーケストレータ装置１０の構成について、詳細に説明する。図１に示すように、オーケストレータ装置１０は、ハードウェアコンポーネントとして、通信部１１と、記憶部１２と、制御部１３と、を備える。
【００２６】
通信部１１は、ネットワーク３０に接続する通信モジュールを含む。例えば、通信部１１は、有線ＬＡＮ（Local Area Network）規格に対応する通信モジュールを含んでもよい。本実施形態において、オーケストレータ装置１０は、通信部１１を介してネットワーク３０に接続される。
【００２７】
記憶部１２は、１つ以上のメモリを含む。本実施形態において「メモリ」は、例えば半導体メモリ、磁気メモリ、又は光メモリ等であるが、これらに限られない。記憶部１２に含まれる各メモリは、例えば主記憶装置、補助記憶装置、又はキャッシュメモリとして機能してもよい。記憶部１２は、オーケストレータ装置１０の動作に用いられる任意の情報を記憶する。例えば、記憶部１２は、システムプログラム及びアプリケーションプログラム等を記憶してもよい。
【００２８】
制御部１３は、１つ以上のプロセッサを備える。本実施形態において「プロセッサ」は、汎用のプロセッサ、又は特定の処理に特化した専用のプロセッサであるが、これらに限られない。制御部１３は、オーケストレータ装置１０全体の動作を制御する。以下、制御部１３によって制御されるオーケストレータ装置１０の主要な動作の例として、第１〜第３動作について説明するが、オーケストレータ装置１０の実行可能な動作はこれらに限られない。
【００２９】
（第１動作）
オーケストレータ装置１０の第１動作について説明する。概略として第１動作は、後述するニューラルネットワーク、又は類する教師付き学習を行う機械Ｆの生成及び学習を行う動作である。制御部１３は、複数のサービスチェーンのサービス品質の実績データＱ０＝［ｑ０（１），…，ｑ０（ｎ＾ｍ）］Ｔ（ただし、ｎ＾ｍはｎのｍ乗を意味する。）を入力Ｘとし、当該複数のサービスチェーンのサービス品質の推定データＱ＝［ｑ（１），…，ｑ（ｎ＾ｍ）］を出力Ｙとする複数のニューラルネットワークＦ（Ｆ１〜Ｆｊ。ただし、ｊは２以上の整数。）を生成し、記憶部１２に記憶する。ここで、ｑ０（ｉ）及びｑ（ｉ）（ただし、１≦ｉ≦ｎｍ。）は、それぞれｉ番目のサービスチェーンのサービス品質の実績値及び推定値である。以下、ニューラルネットワークＦに入力する実績データＱ０を入力データＸともいう。また、ニューラルネットワークＦから出力される推定データＱを出力データＹともいう。各ニューラルネットワークＦは、ベクトルである入力データＸを入力し、ベクトルである出力データＹを出力する関数Ｙ＝Ｆ（Ｘ）として振る舞う。
【００３０】
図３は、ニューラルネットワークＦの構成例を示す。典型的には、ニューラルネットワークＦは、１つの入力層（ｌ＝１）、１つ以上の任意の数の中間層（ｌ＝２、…、Ｌ−１）、及び１つの出力層（ｌ＝Ｌ）を含むＬ層（ただし、Ｌは３以上の整数。）で構成される。入力層は、ニューラルネットワークＦの入力データＸの成分数（ベクトルＸの次元数）と同数のニューロンを含む。本実施形態では、入力データＸの成分数は上述したようにｎｍ個であり、図３に示す入力層に含まれるニューロンの数もｎｍ個である。中間層は、２つ以上の任意の数のニューロンを含む。中間層の数は、任意に定められてもよい。図３に示す例では、中間層の数は３層（ｌ＝２、３、４）であり、各中間層に含まれるニューロンの数はｒ個である。中間層毎にニューロンの数が異なってもよい。出力層は、出力データＹの成分数（ベクトルＹの次元数）と同数のニューロンを含む。本実施形態では、出力データＹの成分数は上述したようにｎｍ個であり、図３に示す出力層に含まれるニューロンの数もｎｍ個である。しかしながら、ニューラルネットワークＦの構成は当該例に限られず、任意に定められてもよい。なお図３において、ｘｉは入力層のｉ番目のニューロンの出力を示し、ｚｉ（ｊ）はｌ＝ｊの中間層のｉ番目のニューロンの出力を示し、ｙｉは出力層のｉ番目のニューロンの出力を示す。
【００３１】
ニューラルネットワークＦの作成は、例えば各層のニューロン数、及びオンライン学習における学習用データの取得時間間隔等のハイパーパラメータを含むパラメータベクトルに基づいて実施されるが、これに限られず任意の手法で実施されてもよい。パラメータベクトルは、例えばユーザ入力に基づいて決定されてもよく、或いは制御部１３が自動的に決定してもよい。各ニューラルネットワークＦは、中間層の数及び／又は各中間層に含まれるニューロンの数が同一であってもよく、互いに異なってもよい。また、ニューラルネットワークＦを作成するに際して、ニューロンの種類（例えば、線形、ＬＳＴＭ（Long Short-Term Memory）、又はＧＲＵ（Gated Recurrent Unit）等）、及び活性化関数として用いる関数の種類（例えば、ステップ関数、シグモイド関数、又はソフトマックス関数等の非線形関数の種類）が指定可能であってもよい。各ニューラルネットワークＦは、ネットワークアーキテクチャ（例えば、順伝播型、ＣＮＮ（Convolutional Neural Network）、又はＲＮＮ（Recurrent Neural Network）等）が同一であってもよく、互いに異なってもよい。
【００３２】
本実施形態において、各ニューラルネットワークＦはＲＮＮであってもよい。かかる場合、各ニューラルネットワークＦは、複数のサービスチェーンのサービス品質の実績データＱ０の変化パターンを学習可能である。例えば、ネットワークサービスシステムにおける大規模な障害の発生によりサービス品質が低下する以前に、小規模な障害が周期的又は非周期的に発生する現象が従来観測されている。このような小規模な障害の発生に起因する、複数のサービスチェーンのサービス品質の実績データＱ０の変化パターンを大規模障害の発生の予兆として学習することにより、将来のサービス品質の推定精度が向上し得る。
【００３３】
制御部１３は、入力データＸ（ｋ−１）と、複数のサービスチェーンのサービス品質の実績データＱ０（ｋ）である教師データと、を含む学習データを逐次取得し、当該学習データを用いるオンライン学習により各ニューラルネットワークＦを修正する。ここでｋは離散時刻であり、入力データＸ（ｋ−１）は時刻ｋ−１における入力データを示し、教師データＱ０（ｋ）は時刻ｋにおける教師データを示す。入力データＸは、上述したように、複数のサービスチェーンのサービス品質の実績データＱ０＝［ｑ０（１），…，ｑ０（ｎ＾ｍ）］Ｔである。
【００３４】
制御部１３は、各ニューラルネットワークＦに入力データＸ（ｋ−１）＝実績データＱ０（ｋ−１）を入力し、各ニューラルネットワークＦから出力データＹ（ｋ）＝推定データＱ（ｋ）を取得する。制御部１３は、サービス品質の推定データＱ（ｋ）と実績データＱ０（ｋ）との差を低減するように、各ニューラルネットワークＦを修正（学習）する。各ニューラルネットワークＦの修正は、例えば誤差逆伝播法によって実施されるが、これに限られず任意の手法によって実施されてもよい。制御部１３は、学習データを所定の時間間隔で逐次取得する度に、各ニューラルネットワークＦを修正する。このようにして、各ニューラルネットワークＦのオンライン学習が実施される。学習済みのニューラルネットワークＦに、例えば現在の入力データＸ（ｋ）を入力することにより、複数のサービスチェーンの将来のサービス品質を推定する（即ち、推定データＱ（ｋ＋１）を出力する）ことが可能である。
【００３５】
（第２動作）
オーケストレータ装置１０の第２動作について説明する。概略として第２動作は、デフォルトサービスチェーンを再設定する動作である。制御部１３は、複数のニューラルネットワークＦ１〜Ｆｊの精度を示す精度情報ｓ（Ｆ１）〜ｓ（Ｆｊ）を初期値に設定する。初期値は任意の手法で定められてもよいが、各ニューラルネットワークＦの精度情報ｓ（Ｆ）は後述する第３動作によって逐次更新され得る。ニューラルネットワークＦの精度情報ｓ（Ｆ）は、当該ニューラルネットワークＦを用いて推定される、複数のサービスチェーンの将来のサービス品質の推定精度を示す情報である。推定精度の高いニューラルネットワークＦを用いることにより、複数のサービスチェーンの将来のサービス品質を精度良く推定し得る。以下、複数のニューラルネットワークＦ１〜Ｆｊのうち、精度情報ｓ（Ｆ）により示される推定精度が最も高い（即ち、最高精度の）ニューラルネットワークＦをＦｈｉｇｈともいい、精度情報ｓ（Ｆ）により示される推定精度が最も低い（即ち、最低精度の）ニューラルネットワークＦをＦｌｏｗともいう。
【００３６】
制御部１３は、現在の入力データＸ（ｋ）を取得する。制御部１３は、入力データＸ（ｋ）を最高精度のニューラルネットワークＦｈｉｇｈに入力することにより、複数のサービスチェーンの将来のサービス品質の推定データＱ（ｋ＋１）を取得する。制御部１３は、取得した推定データＱ（ｋ＋１）に基づいて、複数のサービスチェーンのうちから、デフォルトサービスチェーンよりも将来のサービス品質が良いと推定される他のサービスチェーンを特定する。ここで、複数のサービスチェーンのうち、将来のサービス品質が高い他のサービスチェーンが優先的に特定されてもよい。例えば、複数のサービスチェーンのうち将来のサービス品質が最高である他のサービスチェーンが特定され得る。
【００３７】
他のサービスチェーンを特定した場合、制御部１３は、複数の物理プラットフォームｂ１〜ｂｎ及び複数のロードバランサｃ１〜ｃｍと通信することにより、当該他のサービスチェーンをデフォルトサービスチェーンに再設定する。詳細には、制御部１３は、当該他のサービスチェーンに対するリソース割り当て量を増加させる指示を各物理プラットフォームｂに送信するとともに、デフォルトサービスチェーンを構成する各ＶＮＦａのルートを変更させる指示を各ロードバランサｃに送信する。
【００３８】
（第３動作）
オーケストレータ装置１０の第３動作について説明する。概略として第３動作は、複数のニューラルネットワークＦ１〜Ｆｊの精度情報ｓ（Ｆ１）〜ｓ（Ｆｊ）を更新するとともに、最低精度のニューラルネットワークＦｌｏｗを、最高精度のニューラルネットワークＦｈｉｇｈを構成するパラメータの近傍パラメータを有する新たなニューラルネットワークＦｎｅｗに置き換える動作である。制御部１３は、上述した第２動作によりデフォルトサービスチェーンを再設定した後、入力データＸ（ｋ−１）及びサービス品質の実績データＱ０（ｋ）を取得する。
【００３９】
制御部１３は、入力データＸ（ｋ−１）を入力することにより複数のニューラルネットワークＦ１〜Ｆｊから出力される、複数の推定データＱ１（ｋ）〜Ｑｊ（ｋ）を取得する。
【００４０】
制御部１３は、サービス品質の推定データＱ１（ｋ）〜Ｑｊ（ｋ）のそれぞれと、サービス品質の実績データＱ０（ｋ）と、の比較に基づいて、複数のニューラルネットワークＦ１〜Ｆｊの精度情報ｓ（Ｆ１）〜ｓ（Ｆｊ）を更新する。具体的には、制御部１３は、サービス品質の実績データＱ０（ｋ）と、ニューラルネットワークＦを用いて取得したサービス品質の推定データＱ（ｋ）との差の絶対値（ノルム）又は２乗値が大きいほど当該ニューラルネットワークＦの推定精度が低いと判定して、当該ニューラルネットワークＦの精度情報ｓ（ｋ）を更新する。しかしながら、サービス品質の実績データＱ０（ｋ）及び推定データＱ（ｋ）の比較に基づく精度情報ｓ（Ｆ）の更新は、上記の例に限られず、任意の手法により実施されてもよい。例えば、サービス品質の実績データＱ０（ｋ）と推定データＱ（ｋ）との差とともに、ニューラルネットワークＦに入力データＸ（ｋ−１）を入力してから出力データＹが出力されるまでの時間を考慮して、当該ニューラルネットワークＦの精度情報ｓ（ｋ）を更新してもよい。例えば、制御部１３は、当該時間が長いほど当該ニューラルネットワークＦの推定精度が低いと判定して、当該ニューラルネットワークＦの精度情報ｓ（ｋ）を更新してもよい。
【００４１】
制御部１３は、新たなニューラルネットワークＦｎｅｗを生成して、記憶部１２に記憶する。ニューラルネットワークＦｎｅｗの生成は、任意の手法により実施されてもよい。例えば、制御部１３は、複数のニューラルネットワークＦ１〜Ｆｊのうち、最高精度のニューラルネットワークＦｈｉｇｈのパラメータベクトル（ハイパーパラメータ）に基づいて、例えば焼きなまし法により新たなニューラルネットワークＦｎｅｗを生成する。詳細には、制御部１３は、最高精度のニューラルネットワークＦｈｉｇｈのパラメータベクトルと、次に推定精度の高いニューラルネットワークＦのパラメータベクトルと、の中間地点から各方向にランダムに微小な値だけ動かした新たなパラメータベクトルを決定し、当該新たなパラメータベクトルを用いて新たなニューラルネットワークＦｎｅｗを生成する。
【００４２】
制御部１３は、複数のニューラルネットワークＦ１〜Ｆｊのうち最低精度のニューラルネットワークＦｌｏｗを、新たなニューラルネットワークＦｎｅｗに置き換える。ここで制御部１３は、最低精度のニューラルネットワークＦｌｏｗを廃棄（即ち、記憶部１２から消去）してもよい。
【００４３】
上述した第３動作により最低精度のニューラルネットワークＦｌｏｗを新たなニューラルネットワークＦｎｅｗに置き換えた後、上述した第２動作及び第３動作を再度実行する際、制御部１３は、ニューラルネットワークＦｎｅｗの学習が一定程度進むまで、ニューラルネットワークＦｎｅｗを利用せずに（即ち、ニューラルネットワークＦｎｅｗが「複数のニューラルネットワークＦ１〜Ｆｊ」に含まれないものとして）第２動作及び第３動作を実行してもよい。また、過去の学習データを記憶部１２に記憶しておき、当該過去の学習データを用いて新たなニューラルネットワークＦｎｅｗをバッチ学習させてもよい。
【００４４】
（オーケストレータ装置の第１動作のフロー）
図４を参照して、オーケストレータ装置１０の上述した第１動作のフローについて説明する。
【００４５】
ステップＳ１００：制御部１３は、複数のサービスチェーンのサービス品質の実績データＱ０＝［ｑ０（１），…，ｑ０（ｎ＾ｍ）］Ｔを入力Ｘとし、当該複数のサービスチェーンのサービス品質の推定データＱ＝［ｑ（１），…，ｑ（ｎ＾ｍ）］を出力Ｙとする複数のニューラルネットワークＦ（Ｆ１〜Ｆｊ。ただし、ｊは２以上の整数。）を生成し、記憶部１２に記憶する。
【００４６】
ステップＳ１０１：制御部１３は、入力データＸ（ｋ−１）と、複数のサービスチェーンのサービス品質の実績データＱ０（ｋ）である教師データと、を含む学習データを取得する。
【００４７】
ステップＳ１０２：制御部１３は、学習データを用いるオンライン学習により各ニューラルネットワークＦを修正する。
【００４８】
ステップＳ１０３：制御部１３は、離散時刻ｋをインクリメントする。その後、プロセスはステップＳ１０１に戻る。
【００４９】
（オーケストレータ装置の第２動作のフロー）
図５を参照して、オーケストレータ装置１０の上述した第２動作のフローについて説明する。
【００５０】
ステップＳ２００：制御部１３は、複数のサービスチェーンのうち１つのサービスチェーンを、複数のロードバランサｃ１〜ｃｍと通信することによりデフォルトサービスチェーンに設定する。
【００５１】
ステップＳ２０１：制御部１３は、複数のニューラルネットワークＦ１〜Ｆｊの精度を示す精度情報ｓ（Ｆ１）〜ｓ（Ｆｊ）を初期値に設定する。
【００５２】
ステップＳ２０２：制御部１３は、現在の入力データＸ（ｋ）を取得する。
【００５３】
ステップＳ２０３：制御部１３は、入力データＸ（ｋ）を最高精度のニューラルネットワークＦｈｉｇｈに入力することにより当該ニューラルネットワークＦｈｉｇｈから出力される、複数のサービスチェーンの将来のサービス品質の推定データＱ（ｋ＋１）を取得する。
【００５４】
ステップＳ２０４：制御部１３は、取得した推定データＱ（ｋ＋１）に基づいて、複数のサービスチェーンのうちから、デフォルトサービスチェーンよりも将来のサービス品質が良いと推定される他のサービスチェーンを特定する。当該他のサービスチェーンが特定できた場合（ステップＳ２０４−Ｙｅｓ）、プロセスはステップＳ２０５に進む。一方、当該他のサービスチェーンが特定できなかった場合（ステップＳ２０４−Ｎｏ）、プロセスはステップＳ２０６に進む。
【００５５】
ステップＳ２０５：制御部１３は、複数の物理プラットフォームｂ１〜ｂｎ及び複数のロードバランサｃ１〜ｃｍと通信することにより、当該他のサービスチェーンをデフォルトサービスチェーンに再設定する。
【００５６】
ステップＳ２０６：制御部１３は、離散時刻ｋをインクリメントする。その後、プロセスはステップＳ２０１に戻る。
【００５７】
（オーケストレータ装置の第３動作のフロー）
図６を参照して、オーケストレータ装置１０の上述した第３動作のフローについて説明する。第３動作は、例えば、上述した第２動作によりデフォルトサービスチェーンが再設定される度に実行される。
【００５８】
ステップＳ３００：制御部１３は、上述した第２動作によりデフォルトサービスチェーンを再設定した後、入力データＸ（ｋ−１）及びサービス品質の実績データＱ０（ｋ）を取得する。
【００５９】
ステップＳ３０１：制御部１３は、入力データＸ（ｋ−１）を入力することにより複数のニューラルネットワークＦ１〜Ｆｊから出力される、サービス品質の推定データＱ１（ｋ）〜ｑｊ（ｋ）を取得する。
【００６０】
ステップＳ３０２：制御部１３は、サービス品質の推定データＱ１（ｋ）〜Ｑｊ（ｋ）のそれぞれと、サービス品質の実績データＱ０（ｋ）と、の比較に基づいて、複数のニューラルネットワークＦ１〜Ｆｊの精度情報ｓ（Ｆ１）〜ｓ（Ｆｊ）を更新する。
【００６１】
ステップＳ３０３：制御部１３は、新たなニューラルネットワークＦｎｅｗを生成して、記憶部１２に記憶する。
【００６２】
ステップＳ３０４：制御部１３は、複数のニューラルネットワークＦ１〜Ｆｊのうち最低精度のニューラルネットワークＦｌｏｗを、新たなニューラルネットワークＦｎｅｗに置き換える。そして、プロセスは終了する。
【００６３】
以上述べたように、本実施形態に係るオーケストレータ装置１０は、複数のサービスチェーンのサービス品質の推定データＱ＝［ｑ（１），…，ｑ（ｎ＾ｍ）］を出力Ｙとする複数のニューラルネットワークＦ１〜Ｆｊを記憶する。オーケストレータ装置１０は、複数のサービスチェーンのうち１つのサービスチェーンをデフォルトサービスチェーンに設定する。オーケストレータ装置１０は、ニューラルネットワークＦから出力される複数のサービスチェーンの将来のサービス品質の推定データＱを取得する。オーケストレータ装置１０は、推定データＱに基づいて、複数のサービスチェーンのうちから、デフォルトサービスチェーンよりも将来のサービス品質が良いと推定される他のサービスチェーンを特定する。そしてオーケストレータ装置１０は、当該他のサービスチェーンをデフォルトサービスチェーンに再設定する。
【００６４】
かかる構成によれば、将来のサービス品質がデフォルトサービスチェーンよりも良いと予測される他のサービスチェーンが特定された場合、当該他のサービスチェーンがデフォルトサービスチェーンに再設定されるので、デフォルトサービスチェーンの信頼性を向上可能である。また、時系列的な要因によるサービスチェーンの障害やパフォーマンスをニューラルネットワークＦで学習し、必要に応じて、近い将来に障害が予見されるサービスチェーンを迂回することができるようになり、低コストなＶＮＦａを使用するサービスチェーンの信頼性を向上可能である。
【００６５】
また、従来のオートスケーリングやディスアスタリカバリでは、障害やパフォーマンス劣化が発生してから、サービスチェーンの移動やルーティングの変更を行っていたため、途中のチェーンのＶＮＦの通信パケットがキューから喪失する可能性があった。そのため、サービスの信頼性を高めるためには、サービスプロバイダは、プラットフォームサービス提供者に対し高額な料金を支払って、潤沢なリソースを確保する必要があった。その代償として、サービス要求が少ないときは確保したリソースが遊んでしまう問題があった。本実施形態は、信頼性を高めるために、一定量のリソースを高価な価格で予約するより、安価なサービスを多数予約し、それらを接続したサービスチェーンの複製を用意し、一定期間毎に性能を測定して機械学習に与えることで、サービスチェーンのサービス品質の変化パターンを学習させ、サービスチェーンの将来のサービス品質を推定し、将来のサービス品質がより良いと推定される他のサービスチェーンをデフォルトサービスチェーンに再設定することで、低コストでも信頼性の高いサービスを提供することを可能にする。
【００６６】
本発明を諸図面及び実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形及び修正を行うことが容易であることに注意されたい。したがって、これらの変形及び修正は本発明の範囲に含まれることに留意されたい。例えば、各手段又は各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の手段又はステップ等を１つに組み合わせたり、或いは分割したりすることが可能である。
【００６７】
例えば、上述した実施形態において、オーケストレータ装置１０を互いに通信可能な複数の情報処理装置に分割した構成も可能である。
【００６８】
また、上述した実施形態では、オーケストレータ装置１０が複数のニューラルネットワークＦ１〜Ｆｊを用いる構成について説明した。しかしながら、例えばオーケストレータ装置１０が１つのニューラルネットワークＦを生成及び記憶し、当該１つのニューラルネットワークＦを用いてデフォルトサービスチェーンを再設定する構成も可能である。かかる場合には、当該１つのニューラルネットワークＦの精度情報ｓ（Ｆ）を決定する必要はない。
【００６９】
また、ニューラルネットワークＦのオンライン学習を行うために、情報処理システム１は、障害や性能劣化を意図的に付加する機能を有してもよい。かかる機能によれば、障害や性能劣化を発生させたときの学習データを容易に得ることができる。
【００７０】
また、上述した実施形態において、デフォルトチェーンよりも将来のサービス品質が良いと推定される他のサービスチェーンが特定された場合に、必ずしもデフォルトサービスチェーンの再設定が実施されなくてもよい。例えば、当該他のサービスチェーンが特定された場合に、所定の確率でデフォルトサービスチェーンの再設定が実施されてもよい。
【００７１】
また、例えばコンピュータ等の情報処理装置を、上述した実施形態に係るオーケストレータ装置１０として機能させる構成も可能である。具体的には、実施形態に係るオーケストレータ装置１０の各機能を実現する処理内容を記述したプログラムを、情報処理装置のメモリに格納し、情報処理装置のプロセッサによって当該プログラムを読み出して実行させる。したがって、本実施形態に係る発明は、プロセッサが実行可能なプログラムとしても実現可能である。当該プログラムを記録媒体に記録して提供することも、ネットワークを通して提供することも可能である。
【符号の説明】
【００７２】
１    情報処理システム
１０    オーケストレータ装置
１１    通信部
１２    記憶部
１３    制御部
２０    プローブ
３０    ネットワーク
ａ    ＶＮＦ
ｂ    物理プラットフォーム
ｃ    ロードバランサ
【図１】
2020053711.tif 000003
【図２】
2020053711.tif 000004
【図３】
2020053711.tif 000005
【図４】
2020053711.tif 000006
【図５】
2020053711.tif 000007
【図６】
2020053711.tif 000008