(57)【要約】      （修正有）【課題】ＳＰＰ（Soft Patch Panel）の操作を抽象化し、ＧＵＩにより直感的に操作することができる仮想マシンの接続制御システムおよび仮想マシンの接続制御方法を提供する。【解決手段】仮想マシンの接続制御システム１００は、ＧＵＩ操作に応じてＳＰＰへのコマンドを生成して、ＳＰＰへコマンドを発行するコマンド生成機能部１１１と、ＳＰＰリソース、portオブジェクトおよびＶＭオブジェクトの関係を保持する管理情報格納部１２３Ａを有し、上記管理情報を参照して、生成されたコマンドをＳＰＰへ投入するコマンドへ変換するコマンド変換機能部１２１と、を備える。【選択図】図１
2018032156.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想マシンを動作させる仮想マシンの接続制御システムであって、
前記仮想マシンを含むリソースを管理するＳＰＰ（Soft Patch Panel）を備えるＳＰＰサーバと、
前記ＳＰＰサーバと連携し、前記仮想マシンを接続するためのリソース割り当ておよび経路設定をＧＵＩ（Graphical User Interface）操作により行うＧＵＩ端末と、を備え、
前記ＧＵＩ端末は、
前記ＧＵＩ操作を制御するＧＵＩ制御部と、
前記ＧＵＩ操作に応じて前記ＳＰＰへのコマンドを、抽象化コマンドとして生成するコマンド生成機能部と、を備え、
前記ＳＰＰサーバは、
生成された前記抽象化コマンドを、前記ＳＰＰが使用可能なＳＰＰのコマンドに変換するコマンド変換機能部を備える
ことを特徴とする仮想マシンの接続制御システム。
【請求項２】
前記コマンド生成機能部は、
前記仮想マシン間を接続する経路に前記ＳＰＰのポートオブジェクトを介在させる第１の抽象化レベルの第１抽象化コマンドと、
前記仮想マシン間を接続する経路に前記ＳＰＰのポートオブジェクトを介在させることなく接続する、前記第１の抽象化レベルより抽象度合いの高い第２の抽象化レベルの第２抽象化コマンドと、を生成する
ことを特徴とする請求項１に記載の仮想マシンの接続制御システム。
【請求項３】
前記コマンド生成機能部は、
ユーザのＧＵＩ操作によるイベントを監視し、イベント発生を通知するＧＵＩイベント監視部と、
ＧＵＩに表示されるオブジェクトのＩＤおよびオブジェクト状態を保持するオブジェクト管理部と、
前記ＧＵＩイベント監視部からの通知に基づいて、前記抽象化コマンドを生成するコマンド生成部と、
生成された前記抽象化コマンドをＳＰＰサーバへ送付するコマンド送信部と、を備え、
前記コマンド変換機能部は、
前記ＧＵＩ端末の前記コマンド送信部からの前記抽象化コマンドが付されたメッセージを受信するコマンド受信部と、
前記抽象化コマンドをＳＰＰのコマンドへ展開するための管理情報を格納する管理情報格納部と、
前記管理情報を参照して、前記抽象化コマンドをＳＰＰのコマンドへ展開し、前記ＳＰＰへ入力するコマンド展開部と、を備える
ことを特徴とする請求項１に記載の仮想マシンの接続制御システム。
【請求項４】
複数の仮想マシンを動作させる仮想マシンの接続制御システムが実行する仮想マシンの接続制御方法であって、
前記仮想マシンの接続制御システムは、前記仮想マシンを含むリソースを管理するＳＰＰ（Soft Patch Panel）を備えるＳＰＰサーバと、前記ＳＰＰサーバと連携し、前記仮想マシンを接続するためのリソース割り当ておよび経路設定をＧＵＩ（Graphical User Interface）操作により行うＧＵＩ端末と、を有し、
前記ＧＵＩ端末は、
前記ＧＵＩ操作を制御するステップと、
前記ＧＵＩ操作に応じて前記ＳＰＰへのコマンドを、抽象化コマンドとして生成するステップと、を実行し、
前記ＳＰＰサーバは、
生成された前記抽象化コマンドを、前記ＳＰＰが使用可能なＳＰＰのコマンドに変換するステップを実行する
ことを特徴とする仮想マシンの接続制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンの接続制御システムおよび仮想マシンの接続制御方法に関する。
【背景技術】
【０００２】
ＮＦＶ（Network Functions Virtualization：ネットワーク機能仮想化）による仮想化技術の進展などを背景に、サービス毎にシステムを構築して運用することが行われている。また、上記サービス毎にシステムを構築する形態から、サービス機能を再利用可能なモジュール単位に分割し、独立した仮想マシン（ＶＭ：Virtual Machineやコンテナなど）環境の上で動作させることで、部品のようにして必要に応じて利用し運用性を高めるといったＳＦＣ（Service Function Chaining）と呼ばれる形態が主流となりつつある（非特許文献１参照）。
【０００３】
複数の仮想マシン（以下、適宜ＶＭと略称する）を接続、連携させる手法はInter-VM Communicationと呼ばれ、データセンタなどの大規模な環境では、ＶＭ間の接続には、仮想スイッチが標準的に利用されてきた。しかし、通信の遅延が大きい手法であることから、より高速な手法が新たに提案されている。例えば、SR-IOV（Single Root I/O Virtualization）と呼ばれる特別なハードウェアを用いる手法や、高速パケット処理ライブラリであるIntel DPDK（Intel Data Plane Development Kit）（以下、ＤＰＤＫという）を用いたソフトウェアによる手法などが提案されている（非特許文献２参照）。ＤＰＤＫは、パケット処理のパフォーマンスとスループットを大幅に高めて、データプレーン・アプリケーションに多くの時間を確保することを可能にする。
【０００４】
ＤＰＤＫは、ＣＰＵ（Central Processing Unit）やＮＩＣ（Network Interface Card）などのコンピュータ資源を占有的に使用する。このため、ＳＦＣのようにモジュール単位で柔軟につなぎ替える用途には適用しづらい。これを緩和するためのアプリケーションであるＳＰＰ（Soft Patch Panel）がある（非特許文献３参照）。ＳＰＰは、ＶＭ間に共有メモリを用意し、各ＶＭが同じメモリ空間を直接参照できる構成にすることで、仮想化槽でのパケットコピーを省略する。また、物理ＮＩＣと共有メモリ間のパケットのやり取りには、ＤＰＤＫを用いて高速化を実現する。ＳＰＰは、各ＶＭのメモリ交換の参照先を制御することで、パケットの入力先、出力先をソフトウェア的に変更することができる。こうすることで、ＳＰＰは、ＶＭ間やＶＭと物理ＮＩＣ間の動的な接続切替を実現する。
【０００５】
図１５は、ＳＰＰの概要を説明する図であり、（ａ）はそのハードウェア構成図、（ｂ）はそのＳＰＰのリソース管理のイメージ図である。
図１５（ａ）に示すように、ＳＰＰを有するＶＭ間接続装置１０は、各ＶＭ５と外部ネットワーク（External Network）６とを接続するサーバである。ＶＭ間接続装置１０は、外部ネットワーク６に接続するための物理ポート（Physical Ports）７と、ＳＰＰコントローラ（SPP Controller）２０ａによって制御されるＳＰＰ２０と、ルータ８と、ＶＭ５と、を備える。なお、ＶＭ５は、ＶＭ間接続装置１０の外部にあってもよい。
ＳＰＰ２０は、ＤＰＤＫリソースを管理するためのフレームワーク（framework）であり、リソースの管理を担当するＤＰＤＫアプリケーションから構成される。ＳＰＰ２０は、ＤＰＤＫをベースとしたＶＭ間接続機能であり、従来の仮装スイッチ製品と比較して非常に高速に転送処理を行うことが可能となる。
ＳＰＰコントローラ２０ａは、制御端末装置（Control Terminal）３０からのコマンドライン３１によって操作される。ＳＰＰコントローラ２０ａは、コマンドライン３１による接続制御を基に、ＶＭ間を接続するためのリソース割り当てや経路設定を行う。
図１５（ｂ）に示すＳＰＰのリソース管理（Resource management in SPP）では、物理ポート７を「ＮＩＣ（Network Interface Card）」、ＳＰＰ２０の仮想ＮＷリソースの割り当ての一例を「ivshmem,vhost,vSwitch」、ＶＭ５を「ＶＭ」で表記するとともに、「ＮＩＣ」と仮想ＮＷリソース「ivshmem,vhost,vSwitch」と「ＶＭ」との接続（経路設定）を太実線で表記している。
ＳＰＰは、ＤＰＤＫの高速性を維持しつつ柔軟にＳＦＣを行うことが可能である。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Internet Engineering Task Force (IETF), J. Halpern, Ed. Ericsson, C. Pignataro, Ed. Cisco, October 2015.Service Function Chaining (SFC) Architecture ”, ［online］,［平成２８年７月２０日検索］,インターネット  〈 URL : https://www.ietf.org/rfc/rfc7665.txt〉
【非特許文献２】IntelDPDK,［online］,［平成２８年７月２０日検索］,インターネット  〈 URL : http://dpdk.org/〉
【非特許文献３】Soft Patch Panel, ［online］,［平成２８年７月２０日検索］,インターネット  〈 URL : http://dpdk.org/browse/apps/spp/〉
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＳＰＰは、コマンドラインによる操作が必須であるため、コマンドラインによる操作が複雑であるという課題がある。例えば、図１５（ａ）に示すように、コマンドライン３１から独自コマンドを入力するなど複雑な作業を行わねばならず運用が困難となると考えられる。
【０００８】
このような背景を鑑みて本発明がなされたのであり、本発明は、ＳＰＰの操作を抽象化し、ＧＵＩにより直感的に操作することができる仮想マシンの接続制御システムおよび仮想マシンの接続制御方法を提供することを課題とする。
【課題を解決するための手段】
【０００９】
前記した課題を解決するため、請求項１に記載の発明は、複数の仮想マシンを動作させる仮想マシンの接続制御システムであって、前記仮想マシンを含むリソースを管理するＳＰＰを備えるＳＰＰサーバと、前記ＳＰＰサーバと連携し、前記仮想マシンを接続するためのリソース割り当ておよび経路設定をＧＵＩ操作により行うＧＵＩ端末と、を備え、前記ＧＵＩ端末は、前記ＧＵＩ操作を制御するＧＵＩ制御部と、前記ＧＵＩ操作に応じて前記ＳＰＰへのコマンドを、抽象化コマンドとして生成するコマンド生成機能部と、を備え、前記ＳＰＰサーバは、生成された前記抽象化コマンドを、前記ＳＰＰが使用可能なＳＰＰのコマンドに変換するコマンド変換機能部を備えることを特徴とする仮想マシンの接続制御システムとした。
【００１０】
また、請求項４に記載の発明は、複数の仮想マシンを動作させる仮想マシンの接続制御システムが実行する仮想マシンの接続制御方法であって、前記仮想マシンの接続制御システムは、前記仮想マシンを含むリソースを管理するＳＰＰを備えるＳＰＰサーバと、前記ＳＰＰサーバと連携し、前記仮想マシンを接続するためのリソース割り当ておよび経路設定をＧＵＩ操作により行うＧＵＩ端末と、を有し、前記ＧＵＩ端末は、前記ＧＵＩ操作を制御するステップと、前記ＧＵＩ操作に応じて前記ＳＰＰへのコマンドを、抽象化コマンドとして生成するステップと、を実行し、前記ＳＰＰサーバは、生成された前記抽象化コマンドを、前記ＳＰＰが使用可能なＳＰＰのコマンドに変換するステップを実行することを特徴とする仮想マシンの接続制御方法とした。
【００１１】
このようにすることで、ＳＰＰの操作を抽象化し、ＧＵＩにより直感的に操作することができる。例えば、ＤＰＤＫやvhostなどの仮想ネットワークリソースを抽象化し、グラフィカルな操作を実現することができる。
具体的には、（１）ＧＵＩ操作により、簡易にサービス機能の追加、削除を行うことができ、システムのアップデートを容易にすることができる。（２）ＶＭおよびそれらのコネクション操作、監視をグラフィカルに実行することで、システムの運用性を高めることができる。（３）ＶＭの接続をグラフィカルに接続し、ＶＭ間の中間状態をも含め直感的に監視をすることで、開発および運用における工程を迅速化し、サービス提供サイクルを早めることができる。
【００１２】
また、請求項２に記載の発明は、前記コマンド生成機能部は、前記仮想マシン間を接続する経路に前記ＳＰＰのポートオブジェクトを介在させる第１の抽象化レベルの第１抽象化コマンドと、前記仮想マシン間を接続する経路に前記ＳＰＰのポートオブジェクトを介在させることなく接続する、前記第１の抽象化レベルより抽象度合いの高い第２の抽象化レベルの第２抽象化コマンドと、を生成することを特徴とする仮想マシンの接続制御システムとした。
【００１３】
このようにすることで、ユーザの意向に合わせた、ＧＵＩ操作を実現することができる。例えば、抽象化レベル１では、抽象化されたＳＰＰのリソースのうち、仮想マシン間を接続する経路にＳＰＰのポートオブジェクトが介在したＧＵＩ操作をさせることができる。抽象化レベル２では、ＶＭおよびその経路のみをＧＵＩ操作させることができる。
【００１４】
また、請求項３に記載の発明は、前記コマンド生成機能部が、ユーザのＧＵＩ操作によるイベントを監視し、イベント発生を通知するＧＵＩイベント監視部と、ＧＵＩに表示されるオブジェクトのＩＤおよびオブジェクト状態を保持するオブジェクト管理部と、前記ＧＵＩイベント監視部からの通知に基づいて、前記抽象化コマンドを生成するコマンド生成部と、生成された前記抽象化コマンドをＳＰＰサーバへ送付するコマンド送信部と、を備え、前記コマンド変換機能部は、前記ＧＵＩ端末の前記コマンド送信部からの前記抽象化コマンドが付されたメッセージを受信するコマンド受信部と、前記抽象化コマンドをＳＰＰのコマンドへ展開するための管理情報を格納する管理情報格納部と、前記管理情報を参照して、前記抽象化コマンドをＳＰＰのコマンドへ展開し、前記ＳＰＰへ入力するコマンド展開部と、を備えることを特徴とする仮想マシンの接続制御システムとした。
【００１５】
このように、コマンド生成機能部は、各部を制御してＧＵＩ操作による構成変更処理からコマンドを生成し、ＳＰＰへＧＵＩ操作により生成された抽象化コマンドを発行する。コマンド変換機能部は、各部を制御してこの抽象化コマンドをＳＰＰへ投入するコマンドへ変換する。これにより、ＳＰＰの操作を抽象化し、ＧＵＩにより直感的に操作することができる。また、ＧＵＩ操作により、簡易にサービス機能の追加、削除を行うことができ、システムのアップデートを容易にし、システムの運用性を高めることができる。また、ＶＭ間の中間状態をも含め直感的に監視をすることで、開発および運用における工程を迅速化し、サービス提供サイクルを早めることができる。
【発明の効果】
【００１６】
本発明によれば、ＳＰＰの操作を抽象化し、ＧＵＩにより直感的に操作することができる仮想マシンの接続制御システムおよび仮想マシンの接続制御方法を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係る仮想マシンの接続制御システムを示す構成図である。
【図２】本発明の実施形態に係る仮想マシンの接続制御システムにおけるＧＵＩ端末のＧＵＩ操作とコマンド生成、およびＳＰＰへのコマンド発行を説明する図である。
【図３】非特許文献３の技術による接続構成例<比較例１：接続構成>を示すイメージ図である。
【図４】非特許文献３の技術による接続設定例<比較例１：接続設定>を示すイメージ図である。
【図５】本発明の実施形態に係る仮想マシンの接続制御システムの<実施例１：接続構成：抽象化レベル１>を示す図であり、（ａ）は図２を再掲した図、（ｂ）は図２のＧＵＩ画面に表示される抽象化されたＳＰＰによる接続構成を示す図である。
【図６】本発明の実施形態に係る仮想マシンの接続制御システムの<実施例１：接続構成：抽象化レベル２>を示す図である。
【図７】非特許文献３の技術による接続変更例<比較例２：接続変更>を示すイメージ図であり、（ａ）はネットワーク経路の変更前、（ｂ）はネットワーク経路の変更後を示す。
【図８】本発明の実施形態に係る仮想マシンの接続制御システムの<実施例２：接続変更：抽象化レベル１>を示す図であり、（ａ）はネットワーク経路の変更前、（ｂ）はネットワーク経路の変更後を示す図である。
【図９】本発明の実施形態に係る仮想マシンの接続制御システムの<実施例２：抽象化レベル２>を示す図であり、（ａ）はネットワーク経路の変更前、（ｂ）はネットワーク経路の変更後を示す。
【図１０】本発明の実施形態に係る仮想マシンの接続制御システムの<実施例３：コマンド展開：抽象化レベル１>を示す図であり、（ａ）はコマンド展開前、（ｂ）はコマンド展開後を示す図である。
【図１１】本発明の実施形態に係る仮想マシンの接続制御システムの<実施例３：コマンド展開：抽象化レベル２>を示す図であり、（ａ）はコマンド展開前、（ｂ）はコマンド展開後を示す図である。
【図１２】ＶＭとＶＭとを接続する経路におけるオブジェクトの関係性を示す図であり、（ａ）は非特許文献３の技術のオブジェクト、（ｂ）は本実施形態の抽象化レベル１のオブジェクト、（ｃ）は本実施形態の抽象化レベル２のオブジェクトを示す図である。
【図１３】本発明の実施形態に係る仮想マシンの接続制御システムの管理情報格納部に格納されるリソースのデータ構造の一例を示す図である。
【図１４】本発明の実施形態に係る仮想マシンの接続制御システムのリソースの接続パターンを示す図であり、（ａ）はＶＭへの接続、（ｂ）はＮＩＣへの接続、（ｃ）はportへの接続を示す図である。
【図１５】ＳＰＰの概要を説明する図であり、（ａ）はそのハードウェア構成図、（ｂ）はそのＳＰＰのリソース管理のイメージ図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して本発明を実施するための形態（以下、「本実施形態」という）における仮想マシンの接続制御システム等について説明する。
図１は、本発明の実施形態に係る仮想マシンの接続制御システムを示す構成図である。本実施形態の仮想マシンの接続制御システムは、サービス機能を再利用可能なモジュール単位に分割し、仮想マシンを独立した環境の上で動作させることで、部品のようにして必要に応じて利用し運用性を高めるといったＳＦＣに適用した例である。
図１に示すように、仮想マシンの接続制御システム１００は、ＧＵＩ（Graphical User Interface）端末１１０と、バックエンドでネットワーク１につながるＳＰＰサーバ１２０と、を備える。ＧＵＩ端末１１０とＳＰＰサーバ１２０は、ルータ２を介して接続され、ルータ２は例えばＷＡＮ（Wide Area Network）からなるネットワーク１に接続される。
【００１９】
<ＧＵＩ端末>
ＧＵＩ端末１１０は、ＳＰＰサーバ１２０と連携し、仮想マシンを接続するためのリソース割り当ておよび経路設定をＧＵＩ操作により行う。
ＧＵＩ端末１１０は、コマンド生成機能部１１１と、ＧＵＩ制御部１１６と、を備える。コマンド生成機能部１１１は、ＧＵＩイベント監視部１１２と、オブジェクト管理部１１３と、コマンド生成部１１４と、コマンド送信部１１５と、を備える。
【００２０】
コマンド生成機能部１１１は、ＧＵＩ操作から抽象化コマンドを生成する。具体的には、コマンド生成機能部１１１は、ＧＵＩ操作（例えば、ＧＵＩ操作による構成変更処理）に応じてＳＰＰサーバ１２０のＳＰＰ１２４へのコマンドを、抽象化コマンドとして生成する。ちなみに、非特許文献３の技術では、コマンドライン３１（図１５参照）による操作であり、ＧＵＩ操作からコマンドを生成するものはなかった。
また、後記各<実施例>で説明するように、コマンド生成機能部１１１は、仮想マシン間を接続する経路にＳＰＰのポートオブジェクトを介在させる第１の抽象化レベルの第１抽象化コマンドと、仮想マシン間を接続する経路にＳＰＰのポートオブジェクトを介在させることなく接続する、第１の抽象化レベルより抽象度合いの高い第２の抽象化レベルの第２抽象化コマンドと、を生成する。
【００２１】
ＧＵＩイベント監視部１１２は、ユーザのＧＵＩ操作によるイベント（例えば、ポートおよびＶＭ間のリンクの結線、解除）を監視し、イベント発生をコマンド生成部１１４へ通知する。
オブジェクト管理部１１３は、ＧＵＩ画面２１０（図２参照）に表示されるオブジェクト（ＶＭ、ポートおよびそれらを結ぶリンク）のＩＤおよびオブジェクト状態（リンクの有無、どのオブジェクトと結線されているかなど）を保持する。
コマンド生成部１１４は、ＧＵＩイベント監視部１１２からの通知に基づき、抽象化コマンドを生成し、コマンド送信部１１５へ送付する。
コマンド送信部１１５は、生成された抽象化コマンドをＳＰＰサーバ１２０のコマンド受信部１２２へ送付する。
ＧＵＩ制御部１１６は、グラフィック要素により情報を画面に提示するとともに、ポインティングデバイスにより前記画面上の位置および動きを指示するＧＵＩ操作を制御する。
【００２２】
<ＳＰＰサーバ>
ＳＰＰサーバ１２０は、コマンド変換機能部１２１と、ＳＰＰ１２４と、複数の仮想マシン（ＶＭ）１２５と、を備える。コマンド変換機能部１２１は、コマンド受信部１２２と、コマンド展開部１２３と、管理情報格納部１２３Ａと、を備える。
コマンド変換機能部１２１は、ＧＵＩ操作に応じて生成されたコマンド(抽象化コマンド)を、ＳＰＰ１２４が使用可能な元のＳＰＰのコマンドに変換する。このコマンド変換をコマンド展開と呼ぶ。また、コマンド変換機能部１２１は、ＳＰＰ１２４へのコマンド入力（投入）を行う。
なお、コマンド変換機能部１２１は、非特許文献３の技術によるＳＰＰにはなく、コマンド生成機能部１１１と共に独自に追加実装されたものである。
コマンド受信部１２２は、ＧＵＩ端末のコマンド送信部１１５からの抽象化コマンドが付されたメッセージを受信する。
【００２３】
管理情報格納部１２３Ａは、抽象化コマンドをＳＰＰのコマンドへ展開するための管理情報を格納する。管理情報格納部１２３Ａは、ＳＰＰリソース、ポート（port）オブジェクトおよびＶＭオブジェクトの関係を保持する。具体的には、管理情報格納部１２３Ａは、ＳＰＰのリソース（NIC，ring）を抽象化されたportオブジェクトおよびＶＭオブジェクトとしてユーザに操作させるためのデータ構造（図１３参照）を有する。管理情報の一例については図１２〜図１４により後記する。
コマンド展開部１２３は、管理情報格納部１２３Ａを参照して、抽象化コマンドをＳＰＰのコマンドに展開し、ＳＰＰ１２４へ入力（投入）する。
ＳＰＰ１２４は、仮想マシンを含むリソースを管理する。
【００２４】
<コマンド生成機能部１１１およびコマンド変換機能部１２１の配置>
本実施形態では、ＧＵＩ端末１１０が、コマンド生成機能部１１１を備え、ＳＰＰサーバ１２０が、コマンド変換機能部１２１を備えている。上記配置については、以下の理由に基づく。
ＧＵＩ端末１１０は、ＧＵＩの更新が行われた場合、例えばＧＵＩ操作がされたときに、ＧＵＩ画面の遷移を細かく観察しなければならない。具体的には、ＧＵＩ制御部１１６は、ＧＵＩ操作を監視し、ＧＵＩ操作が行われると、コマンド生成機能部１１１は、ＧＵＩ操作からコマンドを迅速に生成しなければならない。仮に、コマンド生成機能部１１１がＧＵＩ端末１１０の外にネットワーク１を介して離れて設置されている場合、ＧＵＩ操作からコマンドを生成までに遅延が生じる。このため、コマンド生成機能部１１１は、ＧＵＩ端末１１０内にあった方がよい。一旦、コマンドを生成すると、コマンド自体はネットワーク１を経由してＳＰＰサーバ１２０に送信しても遅延の問題はない。
一方、コマンド変換機能部１２１がＳＰＰサーバ１２０側にある理由としては、ＧＵＩ端末１１０が複数あった場合に集約して管理できることが挙げられる。
【００２５】
以下、上述のように構成された仮想マシンの接続制御システム１００の動作を説明する。
［概要］
図２は、本発明の実施形態に係る仮想マシンの接続制御システムにおけるＧＵＩ端末のＧＵＩ操作とコマンド生成、およびＳＰＰへのコマンド発行を説明する図である。
図２に示すように、ＧＵＩ端末１１０は、コマンド生成機能部１１１と、ＧＵＩ操作を表示するＧＵＩ画面２１０と、を有する。
ＧＵＩ端末１１０は、ＳＰＰサーバ１２０の仮想マシンＶＭ＃１〜＃５から取得したリソース情報（図示省略）を基に、ＧＵＩへ更新反映する。図２では、ＧＵＩ画面２１０には、ポートＰｏｒｔ＃１，＃２と、仮想マシンＶＭ＃１〜＃５と、これらを繋ぐ線と、モジュールメニュー１５０と、が表示されている。ここでは、ポートＰｏｒｔ＃１は、負荷ツールＡ（テストモジュールの１つ）の接続点（ＤＰＤＫでは、ＮＷの端点をＰｏｒｔと呼ぶ）であり、ポートＰｏｒｔ＃２は、トラフィック計測点（監視モジュールの１つ）である。また、図２の白抜き矢印（⇒印）は、マウス等のポインティングデバイスの指示点である。
【００２６】
図２の符号ａに示すように、ＧＵＩ画面２１０上のＶＭ等の位置を、上記ポインティングデバイスの指示点によって指定または移動するようなＧＵＩ操作を行うことで、ＧＵＩ操作によりＶＭ間の接続を変更可能である。
また、コマンド生成機能部１１１は、ＳＰＰサーバ１２０のＳＰＰ１２４へコマンド（抽象化コマンド）を発行する（図２の符号ｂ参照）。
ＳＰＰサーバ１２０は、ＧＵＩ端末１１０に対して、ＳＰＰサーバ１２０の仮想マシンＶＭ＃１〜＃５から取得したリソース情報を基に、ＧＵＩへ更新反映する（図２の符号ｃ参照）。これにより、ＧＵＩ端末１１０側では、ＳＰＰのリソース（NIC，ring）を抽象化されたportオブジェクトおよびＶＭオブジェクトとしてユーザに操作させることができる。
【００２７】
［適用例］
非特許文献３の技術を用いる例については<比較例>で、また、本実施形態の例については<実施例>で説明する。
<比較例１>
図３は、非特許文献３の技術による接続構成例<比較例１：接続構成>を示すイメージ図である。図３中の矢印は、この矢印方向にネットワークリソース等が接続されることを示している。
<比較例１>で用いる図３および図４（後記）は、説明のためのイメージ図である。図３および図４は、抽象化をしない場合（<実施例１>を用いない場合）に、ＧＵＩによる操作をしようとしたときはＳＰＰのオブジェクトはこのように表現できる。なお、後記する<実施例１>で用いる図５および図６（後記）は、実際のＧＵＩによる操作を示す図である。ちなみに、非特許文献３の技術は、あくまでもコマンドラインによる操作であり、図３および図４のようなＧＵＩ表現が存在するものではない。
【００２８】
図３は、ＳＰＰにおけるプロセスと、ネットワークリソースをＧＵＩとして表現した場合のイメージ例である。例えば、図３のイメージ図は、前記図１５（ａ）に示すＶＭ間接続装置１０のＳＰＰ２０をＧＵＩとして表現している。
図３のＳＰＰによる接続構成例において、ＳＰＰによるプロセスとネットワークリソースは、下記の通りである。
ＳＰＰにおけるプロセスは、VNF1，VNF2，…，FWD0，FWD1，…があるとする。上記FWD0〜FWD3は、上記プロセスのフォワーダであり、id:sec1〜id:sec5で表記される。上記VNF1〜VNF3は、上記プロセスのＶＭ上にのるアプリケーションであり、id:sec6〜id:sec8で表記される。上記VNF1，VNF2，…は、例えば前記図１５（ａ）に示すＶＭ５に対応する。上記FWD0，FWD1，…は、前記図１５（ａ）には表されていないが、バックグランドで動作している、ネットワークを転送するプロセスである。
【００２９】
ＳＰＰにおけるネットワークリソースは、ring0，ring1，…，ＮＩＣ0，ＮＩＣ1，…である。上記ring0，ring1，…は、前記図１５（ａ）に示すＳＰＰ２０の差し込み口に対応し、上記ＮＩＣ0，ＮＩＣ1，…は、前記図１５（ａ）に示す物理ポート７のＮＩＣに対応する。
【００３０】
図３の接続構成例では、NIC0のR（Received eXchange：受信変換）を上記プロセスFWD0のT（Transmit eXchange：送信変換）に接続し、FWD0の Rをring0のTに接続し、ring0の RをVNF1のTに接続する。以下同様に、VNF1のRをring1のTに接続し、ring1の RをFWD1の Tに接続する。FWD1の Rをring2のTに接続し、ring2の RをVNF2のTに接続する。そして、VNF2のRをring3のTに接続し、ring3の RをFWD2（id:sec4で記述されるFWD2）の Tに接続する。FWD2の Rをring4のTに接続し、ring4の RをVNF3のTに接続する。そして、VNF3のRをring5のTに接続し、ring5の RをFWD3の Tに接続し、FWD3の RをNIC1のTに接続する。
【００３１】
図４は、非特許文献３の技術による接続設定例<比較例１：接続設定>を示すイメージ図である。
図４の接続設定例では、NIC0のRをFWD0のTに接続し、FWD0の Rをring0のTに接続し、ring0の RをVNF1のTに接続する。VNF1のRをring1のTに接続し、ring1の RをFWD1の Tに接続し、FWD1の RをNIC1のTに接続する。
【００３２】
図４のネットワーク経路を設定するために、以下のコマンドを入力する。このコマンド入力の記述方法については、非特許文献３のＳＰＰの仕様に準拠する。なお、下記コマンドにおいて、secはSecondary processであり、ＳＰＰにおけるプロセスVNF， FWDを記述する。また、各数値は、上記プロセスまたはネットワークリソースのidである。下記コマンドを入力すると、図４に示す接続設定が行われる。
【００３３】
SPP>sec 0；add ring 0
SPP>sec 0；add ring 1
SPP>sec 1；add ring 0
SPP>sec 1；add ring 1
SPP>sec 2；add ring 0
SPP>sec 2；add ring 1
SPP>sec 2；patch 0 1
SPP>sec 0；patch 0 2
SPP>sec 1；patch 3 1
SPP>sec 2；forward
SPP>sec 1；forward
SPP>sec 0；forward
【００３４】
<実施例１>
<実施例１>は、仮想スイッチの接続処理（仮想ＮＷリソース）を抽象化して表現するものである。<実施例１>は、非特許文献３の技術による<比較例１>に対比させている。
図５は、本発明の実施形態に係る仮想マシンの接続制御システムの<実施例１：接続構成：抽象化レベル１>を示す図であり、（ａ）は図２を再掲した図、（ｂ）は図２のＧＵＩ画面２１０に表示される抽象化されたＳＰＰによる接続構成を示す図である。図３の仮想スイッチの接続処理が、図５（ｂ）のように、抽象化して表現される。
【００３５】
図５（ｂ）に示すように、ＧＵＩ端末１１０のＧＵＩ画面２１０（図２、図５（ａ）参照）には、ＳＰＰのリソースが抽象化して表示される。図５の接続設定例では、NIC0のTをポートp1に接続し、p1を介してVNF1のTに接続し、VNF1のRをp2に接続し、p2をp4に接続し、p4を介してVNF2のTに接続する。VNF2のRをp5に接続し、p5をp7に接続し、p7を介してVNF3のTに接続する。VNF3のRをp8に接続し、p8を介してNIC1のRに接続する。なお、オブジェクトには、ring、NICがあり、それらを総称してポートpと呼ぶ。
【００３６】
<実施例１>の接続構成を、<比較例１>（図３参照）と比較して分かるように、ＳＰＰリソースの抽象化によって、図５（ｂ）ではＳＰＰにおけるプロセスFWDおよびＳＰＰにおけるネットワークリソースringがなくなり、ポートpに置き換わっている。
ちなみに、ＳＰＰにおけるプロセス（FWD， VNFなど）に対して一つずつ記述するのが、元々のＳＰＰのコマンドである。しかしながら、本当に操作するときに必要なものは、上記プロセスFWDなどではなく、何処と何処とのringをつなぐことが本来実現したい目的である。本実施形態では、本来実現したい目的を浮き彫りにするように抽象化するものである。すなわち、抽象化することで、ＳＰＰの詳細なところをユーザから見えないようにする。
図５（ｂ）では、FWDおよびringがなくなって抽象化されている。また、余分なものを見せないという見た目の抽象化（視覚上の抽象化）だけではなく、コマンドの抽象化（コマンドの簡素化）による直感的な操作性向上の効果が大きい。
【００３７】
従来例（<比較例１>）では、前記図１５（ａ）に示すように、コマンドライン３１から独自コマンドを入力するなど複雑な作業を行わねばならず運用が困難となっていたが、<実施例１>では、ＳＰＰの操作を抽象化し、それに伴うＧＵＩ操作を可能にする。そして、ＧＵＩ操作に応じてＳＰＰへのコマンドを生成する。ＧＵＩ操作に応じてＳＰＰへのコマンドを生成することは、ＧＵＩ端末１１０のコマンド生成機能部１１１（図２、図５（ａ）参照）が担っている。本実施形態では、ＧＵＩ操作に応じてＳＰＰへのコマンドが生成されるので、コマンドラインによるコマンド入力が不要になる。
【００３８】
図５（ｂ）の符号ｄに示すように、コマンド生成機能部１１１のコマンド生成部１１４（図１参照）は、ＧＵＩ操作により抽象化コマンドを生成する。上記抽象化コマンドは、上記ＳＰＰのリソースを抽象化するためのコマンドである。抽象化コマンドの具体例については、後記する。
また、抽象化されたＳＰＰのリソースは、ＧＵＩ操作により変更が反映される。具体的には、コマンド生成機能部１１１（図１参照）のＧＵＩイベント監視部１１２は、ユーザのＧＵＩ操作によるイベント（ポートおよびＶＭ間のリンクの結線、解除）を監視し、イベント発生時にコマンド生成部１１４へ通知する。また、オブジェクト管理部１１３は、ＧＵＩに表示されるオブジェクト（ＶＭ、ポートおよびそれらを結ぶリンク）のＩＤおよびオブジェクト状態（リンクの有無、どのオブジェクトと結線されているかなど）を保持している。コマンド生成部１１４は、ＧＵＩイベント監視部１１２からの通知に基づき、抽象化コマンドを生成する。
【００３９】
一方、ＳＰＰサーバ１２０側では、抽象化された表現と元の表現との差分を吸収するために、抽象化コマンドを元のＳＰＰのコマンドに変換するコマンド変換（コマンド展開）を行う。
抽象化されたコマンドを、元のＳＰＰのコマンドに戻すときに、抽象化されたコマンドだけでは、例えばいずれのFWDに対して発行されたものかが見えない。そこで、本実施形態では、どこのポートに対する操作は、どのFWDが管理しているものかを示す情報を、管理情報として管理情報格納部１２３Ａ（図１参照）保存しておく。ＳＰＰサーバ１２０のコマンド変換機能部１２１（図１参照）は、管理情報格納部１２３Ａの管理情報を参照して、発行された抽象化コマンドを解釈して、元のＳＰＰのコマンドに変換する。
【００４０】
次に、抽象化度合いのより高い抽象化レベル２について説明する。
抽象化レベル２は、上記抽象化レベル１（図５参照）をより抽象化した（抽象化の度合いが高い）ものである。
図６は、本発明の実施形態に係る仮想マシンの接続制御システムの<実施例１：接続構成：抽象化レベル２>を示す図である。
図６に示すように、抽象化レベル２では、NIC0のTをVNF1のTに接続し、VNF1のRをVNF2のTに接続し、VNF2のRをVNF3のTに接続し、VNF3のRをNIC1のRに接続する。
【００４１】
コマンド生成機能部１１１のコマンド生成部１１４（図１参照）は、ＧＵＩ操作により抽象化レベル２の抽象化コマンドを生成する。また、ＳＰＰサーバ１２０のコマンド変換機能部１２１（図１参照）は、抽象化された表現と元の表現との差分を吸収するために、抽象化レベル２で抽象化された抽象化コマンドを元のコマンドに変換するコマンド変換（コマンド展開）を行う。
図６に示すように、仮想マシンの接続制御システム１００は、ユーザに対して、抽象化されたＳＰＰのリソースのうち、ＶＭおよびその経路のみをＧＵＩ操作させることができる。また、ユーザに対して、ＧＵＩの抽象化の度合いを選択させることを可能とする。
【００４２】
ここで、ＧＵＩの抽象化を、抽象化レベル１にするか抽象化レベル２にするかは、ユーザが選択可能である。抽象化レベル１または抽象化レベル２のいずれの場合においても、ＧＵＩ端末１１０のコマンド生成機能部１１１（図２参照）が、ＧＵＩ操作に応じて、該当する抽象化レベルでＳＰＰへのコマンドを生成する。そして、ＧＵＩ端末１１０は、ＳＰＰサーバ１２０のＳＰＰ１２４へコマンドを発行する（図２の符号ｂ参照）。また、コマンド変換機能部１２１は、抽象化コマンドを元のコマンドに変換するＳＳＰへのコマンド変換および入力（投入）を行う。なお、ＳＰＰ１２４は、非特許文献３の技術に準拠したコマンドのみで動作するので、ＳＳＰへのコマンド変換および入力は不可欠である。ただし、このコマンド変換機能および前記コマンド生成機能は、仮想マシンの接続制御システム１００のどこに設置されていてもよい。
以上、非特許文献３の技術を用いる<比較例１>と本実施形態の接続設定例の<実施例１>について説明した。また、<実施例１>では、抽象化度合いの異なる抽象化レベル１と抽象化レベル２についてそれぞれ説明した。
【００４３】
次に、ネットワーク経路の変更手順例について説明する。非特許文献３の技術を用いる<比較例２>とそれに対応する本実施形態の<実施例２>について述べる。
<比較例２>
図７は、非特許文献３の技術による接続変更例<比較例２：接続変更>を示すイメージ図であり、（ａ）はネットワーク経路の変更前、（ｂ）はネットワーク経路の変更後を示す。図７中の矢印は、この矢印方向にネットワークリソース等が接続されることを示している。図７は、ＳＰＰにおけるプロセスと、ネットワークリソースをＧＵＩとして表現した場合のイメージ例である。
なお、上述したように、非特許文献３の技術は、あくまでもコマンドラインによる操作であり、図７のようなＧＵＩ表現が存在するものではない。また、図７においてVNFのブロックの上部にidを表記（例えば図７（ａ）のVNF1のブロック上部にid:sec4を表記）しているが、このidはＳＰＰにおいて記述（ＳＰＰのなかでidを見る手段がありそれを記述）されているものであり、説明の便宜上ここに付している（以下、各図において同様）。
【００４４】
図７（ａ）の接続変更前では、NIC0のRをFWD0のTに接続し、FWD0の Rをring0のTに接続し、ring0の RをVNF1のTに接続している。そして、VNF1のRをring1のTに接続し、ring1の RをFWD1の Tに接続している。FWD1の Rをring2のTに接続し、ring2の RをFWD3の Tに接続し、FWD3の RをNIC1のTに接続している。
【００４５】
図７（ｂ）の接続変更後では、ring2の RをVNF2のTにつなぎ替え（図７（ｂ）の符号ｅ；白抜き矢印参照）、VNF2のRをring3のTに接続する経路を追加し（図７（ｂ）の符号ｆ参照）、ring3の RをFWD3の Tに接続する経路を追加する（図７（ｂ）の符号ｇ参照）。
【００４６】
図７のネットワーク経路の変更を設定するために、以下のコマンドを入力する。
SPP>sec 2；patch 2 5
SPP>sec 5；add ring 3
SPP>sec 3；add ring 3
SPP>sec 5；patch 2 5
SPP>sec 5；patch 5 3
SPP>sec 3；patch 5 3
【００４７】
<実施例２>
<実施例２>は、非特許文献３の技術による<比較例２>に対して、仮想スイッチの接続処理（仮想ＮＷリソース）を抽象化して表現するものである。
図８は、本発明の実施形態に係る仮想マシンの接続制御システムの<実施例２：接続変更：抽象化レベル１>を示す図であり、（ａ）はネットワーク経路の変更前、（ｂ）はネットワーク経路の変更後を示す。
図８（ａ）の接続変更前では、NIC0のRをポートp1に接続し、p1を介してVNF1のTに接続し、VNF1のRをp2に接続し、p2をp3に接続し、p3を介してNIC1のRに接続している。
ここで、<実施例２>（図８（ａ）参照）は、<比較例２>（図７（ａ）参照）と比較して分かるように、プロセスVNFおよびネットワークリソースringがなくなり、ポートpに置き換わっている。
【００４８】
図８（ｂ）の接続変更後では、p3の出力をVNF2のTにつなぎ替え（図８（ｂ）の符号ｈ；白抜き矢印参照）、VNF2のRをp4に接続する経路を追加し（図８（ｂ）の符号ｉ参照）、p4を介してNIC1のR に接続する経路を追加する（図８（ｂ）の符号ｊ参照）。
【００４９】
図８のネットワーク経路の変更を設定するために、下記の抽象化レベル１の抽象化コマンドを入力する。
SPP>port3→vnf2
SPP>vnf2→port4
SPP>port4→NIC1
このように、<実施例２：抽象化レベル１>では、ＧＵＩの抽象化にともない、コマンドも抽象化する。抽象化されたコマンド（抽象化レベル１の抽象化コマンド）は、コマンド変換機能部１２１（図１参照）により元のＳＰＰコマンドへ展開される（後記図１０参照）。
【００５０】
次に、抽象化度合いのより高い抽象化レベル２について説明する。
図９は、本発明の実施形態に係る仮想マシンの接続制御システムの<実施例２：抽象化レベル２>を示す図であり、（ａ）はネットワーク経路の変更前、（ｂ）はネットワーク経路の変更後を示す。
抽象化レベル２は、上記抽象化レベル１（図８参照）をより抽象化した（抽象化の度合いが高い）ものである。
図９（ａ）に示すように、抽象化レベル２の接続変更前では、NIC0のTをVNF1のTに接続し、VNF1のRをNIC1のRに接続している。
【００５１】
図９（ｂ）に示すように、抽象化レベル２の接続変更後では、NIC1のR をVNF2のTにつなぎ替え（図９（ｂ）の符号ｋ；白抜き矢印参照）、VNF2のRをNIC1のTに接続する経路を追加する（図９（ｂ）の符号ｌ参照）。
【００５２】
図９のネットワーク経路の変更を設定するために、下記の抽象化レベル２の抽象化コマンドを入力する。
SPP>vnf1→vnf2
SPP>vnf2→NIC1
このように、<実施例２：接続変更：抽象化レベル２>では、ＧＵＩの抽象化にともない、コマンドも抽象化する。抽象化されたコマンド（抽象化レベル２の抽象化コマンド）は、コマンド変換機能部１２１（図１参照）により元のＳＰＰコマンドへ展開される（後記図１１参照）。
以上、非特許文献３の技術を用いる<比較例２>と本実施形態の<実施例２：接続変更>について説明した。また、<実施例２：接続変更>では、抽象化度合いの異なる抽象化レベル１と抽象化レベル２についてそれぞれ説明した。
【００５３】
<実施例３>
<実施例３>は、前記つなぎ替えにおけるコマンド展開について説明する。
図１０は、本発明の実施形態に係る仮想マシンの接続制御システムの<実施例３：コマンド展開：抽象化レベル１>を示す図であり、（ａ）はコマンド展開前、（ｂ）はコマンド展開後を示す。
図１０は、port→vnf1からport1→port2へのつなぎ替えにおけるコマンド展開の例である。
図１０（ａ）のコマンド展開前（抽象化コマンド）の、つなぎ替え前では、NIC0のTをP1に接続し、p1を介してVNF1に接続し（図１０（ａ）の符号ｍ；破線矢印参照）、VNF1をp2に接続し、p2を介してNIC1のRに接続している。
図１０（ａ）のコマンド展開前（抽象化コマンド）の、つなぎ替え後では、p1の出力をVNF1を跨いでp2につなぎ替える（図１０（ａ）の符号ｎ参照）。
上記抽象化コマンド（抽象化レベル１）を元のＳＰＰコマンドへ展開する。
【００５４】
図１０（ｂ）のコマンド展開後（ＳＰＰコマンド）の、つなぎ替え前では、NIC0の Tをring1のTに接続し、ring1のRをFWD1の Tに接続し、FWD1の Rをring2のTに接続し（図１０（ｂ）の符号ｏ；破線矢印参照）、ring2の RをVNF1のTに接続している。VNF1のRをring3のTに接続し、ring3の RをFWD2の Tに接続し、FWD2のRをring4のTに接続している。ring4のRをNIC1の Rに接続している。
図１０（ｂ）のコマンド展開後（ＳＰＰコマンド）の、つなぎ替え後では、FWD1の Rを、ring2およびVNF1を跨いでring3のTにつなぎ替える（図１０（ｂ）の符号ｐ参照）。
【００５５】
図１０のport1→vnf1からport1→port2へのつなぎ替えにおけるコマンド展開は、下記の通りである。
入力コマンド（抽象化コマンド：抽象化レベル１）
SPP>port1→port2
をコマンド展開して、下記のＳＰＰコマンドに変換する。
SPP>sec 1；del ring 2
SPP>sec 1；add ring 3
SPP>sec 1；patch 2 3
なお、上記「sec 1」はＳＰＰで定められた表記である。
【００５６】
図１１は、本発明の実施形態に係る仮想マシンの接続制御システムの<実施例３：コマンド展開：抽象化レベル２>を示す図であり、（ａ）はコマンド展開前、（ｂ）はコマンド展開後を示す。
図１１は、port1→vnf1からport1→port2へのつなぎ替えにおけるコマンド展開の例である。
図１１（ａ）のコマンド展開前（抽象化コマンド：抽象化レベル２）の、つなぎ替え前では、NIC0のTをVNF1に接続し、VNF1をVNF2に接続し（図１１（ａ）の符号ｑ；破線矢印参照）、VNF2をNIC1のRに接続している。
図１１（ａ）のコマンド展開前（抽象化コマンド：抽象化レベル２）の、つなぎ替え後では、VNF1をNIC1のRに接続するようにつなぎ替える（図１１（ｂ）の符号ｒ参照）。
上記抽象化コマンド（抽象化レベル２）を、抽象化コマンド（抽象化レベル１）に展開する。
【００５７】
図１１（ｂ）のコマンド展開後（抽象化コマンド：抽象化レベル１）の、つなぎ替え前では、NIC0のTをp1に接続し、p1を介してVNF1に接続し、VNF1をp2に接続し、p2を介してVNF2に接続し（図１１（ｂ）の符号ｓ；破線矢印参照）、VNF2をp3に接続し、p3を介してNIC1のRに接続している。
図１１（ｂ）のコマンド展開後（抽象化コマンド：抽象化レベル１）の、つなぎ替え後では、VNF1をp2およびVNF2を跨いでp3につなぎ替える（図１１（ｂ）の符号ｔ参照）。
【００５８】
図１１（ａ）のvnf1→NIC1のつなぎ替えにおけるコマンド展開（抽象化コマンド：抽象化レベル２）と、図１１（ｂ）のvnf1→NIC1のつなぎ替えにおけるコマンド展開（抽象化コマンド：抽象化レベル１）とは、下記の通りである。
入力コマンド（抽象化コマンド：抽象化レベル２）
SPP>vnf1→NIC1
をコマンド展開して、下記の抽象化コマンド（抽象化レベル２→抽象化レベル１）に変換する。
SPP>port2 remove vnf2
SPP>port3 remove vnf2
SPP >port2→port3
なお、図１１では、抽象化コマンド（抽象化レベル２）を抽象化コマンド（抽象化レベル１）にコマンド展開する例を示したが、図１０と同様の方法により、抽象化コマンド（抽象化レベル２）を元のＳＰＰコマンドへ展開することも可能である。
【００５９】
［オブジェクトの関係性］
次に、ＶＭを接続する経路におけるオブジェクトの関係性について説明する。
図１２は、ＶＭとＶＭとを接続する経路におけるオブジェクトの関係性を示す図であり、（ａ）は非特許文献３の技術（既存技術）のオブジェクト、（ｂ）は本実施形態の抽象化レベル１のオブジェクト、（ｃ）は本実施形態の抽象化レベル２のオブジェクトを示す。
図１２（ａ）に示す非特許文献３の技術では、ＶＭとＶＭとをつなぐ最も簡単な経路に、オブジェクトFWD（DPDK process）と、オブジェクトRing（DPDK resource）とを有する。非特許文献３の技術では、最も簡単な経路であってもオブジェクトFWDとRingの最小セットが必要である。
図１２（ｂ）に示す本実施形態の抽象化レベル１では、ＶＭとＶＭとをつなぐ経路に入るのはオブジェクトPortだけである。
図１２（ｃ）に示す本実施形態の抽象化レベル２では、ＶＭとＶＭとをつなぐ経路にオブジェクトはない。
仮想マシンの接続制御システム１００（図１参照）は、以上のオブジェクトの関係性を把握している。
【００６０】
［リソースのデータ構造］
次に、リソースのデータ構造について説明する。
図１３は、管理情報格納部１２３Ａ（図１参照）に格納されるリソースのデータ構造の一例を示す図である。
図１３に示すリソースのデータ構造では、vmのデータ構造の中に、下記のようにそれぞれ所属するポートportを、集合体portsで持っている。
【００６１】
【表１】
2018032156.tif 000003
【００６２】
上記ポートportであるオブジェクトは、別のデータ構造として下記を有する。
【００６３】
【表２】
2018032156.tif 000004
【００６４】
上記ポートportは、rxおよびtxを有し、ここでは、rx：{ resource_id：yyy },tx：{ resource_id：zzz }である。resource_idは、ＳＰＰがもつ元のidである。vmのデータ構造では、このresource_idを持つことで、例えばＶＭからＶＭに直接接続する場合（図１２（ｃ）参照）に対応できる。
【００６５】
［リソースの接続パターン］
次に、リソースの接続パターンについて説明する。
図１４は、リソースの接続パターンを示す図であり、（ａ）はＶＭへの接続、（ｂ）はＮＩＣへの接続、（ｃ）はportへの接続を示す。
例えば、図１３のリソースのデータ構造において、vmが、このresource_idを持つことで、図１４（ａ）に示すＶＭへの接続を行うことができる。すなわち、図１４（ａ）に示すように、ＶＭ（id：v1）をＶＭ（id：v2）につなぎ替えをしようとする場合、まずＶＭ（id：v1）がデータ構造として持つPortのどれに対応する操作であるかをみる。ここでは、ＶＭ（id：v1）は、Port（id：p1）に対応する操作であるので、Port（id：p1）どこにつながっているかをみる。ここでは、Port（id：p1）はＶＭ（id：v2）につながっている。ＶＭ（id：v1）をＶＭ（id：v2）につなぎ替えをしようとする場合、上記リソースのデータ構造からつなぎ先を辿っていき、つなぎ替えのためにコマンドを発行する。
ＮＩＣへの接続（図１４（ｂ）参照）、portへの接続（図１４（ｃ）参照）も同様である。
【００６６】
以上説明したように、本実施形態に係る仮想マシンの接続制御システム１００（図１参照）は、仮想マシンを含むリソースを管理するＳＰＰを備えるＳＰＰサーバ１２０と、ＳＰＰサーバ１２０と連携し、仮想マシンを接続するためのリソース割り当ておよび経路設定をＧＵＩ操作により行うＧＵＩ端末１１０と、を備える。また、ＧＵＩ端末１１０は、ＧＵＩ操作に応じてＳＰＰへのコマンドを、抽象化コマンドとして生成するコマンド生成機能部１１１を備える。ＳＰＰサーバ１２０は、生成された抽象化コマンドを、ＳＰＰが使用可能なＳＰＰのコマンドに変換するコマンド変換機能部１２１を備える。
特に、仮想マシンの接続制御システム１００は、ＧＵＩ操作に応じてＳＰＰへのコマンド（抽象化コマンド）を生成して、ＳＰＰへコマンドを発行するコマンド生成機能部１１１と、ＳＰＰのリソース（NIC，ring）を抽象化されたportオブジェクトおよびＶＭオブジェクトとしてユーザに操作させるためのデータ構造を有し、かつＳＰＰリソース、portオブジェクトおよびＶＭオブジェクトの関係を保持する管理情報格納部１２３Ａと、上記管理情報を参照して、生成されたコマンド（抽象化コマンド）をＳＰＰへ投入するコマンドへ変換するコマンド変換機能部１２１と、を備える。
【００６７】
このようにすることで、ＧＵＩ操作による構成変更処理からコマンドを生成し、これをＳＰＰへ投入するコマンドへ変換することで、ＳＰＰの操作を抽象化し、ＧＵＩにより直感的に操作することができる。例えば、ＤＰＤＫやvhostなどの仮想ネットワークリソースを抽象化し、グラフィカルな操作を実現することができる。
具体的には、（１）ＧＵＩ操作により、簡易にサービス機能の追加、削除を行うことができ、システムのアップデートを容易にすることができる。（２）ＶＭおよびそれらのコネクション操作、監視をグラフィカルに実行することで、システムの運用性を高めることができる。（３）ＶＭの接続をグラフィカルに接続し、ＶＭ間の中間状態をも含め直感的に監視をすることで、開発および運用における工程を迅速化し、サービス提供サイクルを早めることができる。
【００６８】
上述したように、ＳＰＰは、ＤＰＤＫの高速性を維持しつつ柔軟にＳＦＣを行うことが可能であるが、コマンドライン３１（図１５参照）による操作が複雑である。すなわち、コマンドライン３１から独自コマンドを入力するなど複雑な作業を行わねばならず運用が困難であった。これに対して、本実施形態では、ＳＰＰの上記利点を活かしつつ、ＳＰＰの課題であったコマンドライン３１による操作を排して、ＧＵＩ操作により、直感的に操作することができる。
【００６９】
また、本実施形態では、コマンド生成機能部１１１が、仮想マシン間を接続する経路にＳＰＰのポートオブジェクトを介在させる第１の抽象化レベルの第１抽象化コマンドと、仮想マシン間を接続する経路にＳＰＰのポートオブジェクトを介在させることなく接続する、第１の抽象化レベルより抽象度合いの高い第２の抽象化レベルの第２抽象化コマンドと、を生成する。
【００７０】
このようにすることで、ユーザの意向に合わせた、ＧＵＩ操作を実現することができる。例えば、抽象化レベル１では、抽象化されたＳＰＰのリソースのうち、仮想マシン間を接続する経路にＳＰＰのポートオブジェクトが介在したＧＵＩ操作させることができる。抽象化レベル２では、ＶＭおよびその経路のみをＧＵＩ操作させることができる。また、ユーザは、ＧＵＩの抽象化の度合いを選択することができる。このように、抽象化することで、ＳＰＰの詳細なところをユーザから見えないようにすることができる。
【００７１】
また、本実施形態では、コマンド生成機能部１１１が、ユーザのＧＵＩ操作によるイベント（ポートおよびＶＭ間のリンクの結線、解除）を監視し、イベント発生時にコマンド生成部１１４へ通知するＧＵＩイベント監視部１１２と、ＧＵＩに表示されるオブジェクト（ＶＭ、ポートおよびそれらを結ぶリンク）のＩＤおよびオブジェクト状態（リンクの有無、どのオブジェクトと結線されているかなど）を保持するオブジェクト管理部１１３と、ＧＵＩイベント監視部１１２からの通知に基づき、抽象化コマンドを生成し、コマンド送信部１１５へ送付するコマンド生成部１１４と、抽象化コマンドをサーバのコマンド受信部１２２へ送付するコマンド送信部１１５と、を備える。また、コマンド変換機能部１２１が、ＧＵＩ端末１１０のコマンド送信部１１５からのメッセージを受信するコマンド受信部１２２と、抽象化コマンドをＳＰＰのコマンドへ展開するための管理情報を格納する管理情報格納部１２３Ａと、管理情報を参照して、抽象化コマンドをＳＰＰのコマンドへ展開し、ＳＰＰへ送付するコマンド展開部１２３と、を備える。
【００７２】
このように、コマンド生成機能部１１１は、各部を制御してＧＵＩ操作による構成変更処理からコマンド（抽象化コマンド）を生成し、ＳＰＰへＧＵＩ操作により生成されたコマンドを発行する。コマンド変換機能部１２１は、各部を制御してこの抽象化コマンドをＳＰＰへ投入するコマンドへ変換する。これにより、ＳＰＰの操作を抽象化し、ＧＵＩにより直感的に操作することができる。また、ＧＵＩ操作により、簡易にサービス機能の追加、削除を行うことができ、システムのアップデートを容易にし、システムの運用性を高めることができる。また、ＶＭ間の中間状態をも含め直感的に監視をすることで、開発および運用における工程を迅速化し、サービス提供サイクルを早めることができる。
【００７３】
なお、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【００７４】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行するためのソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、又は、ＩＣ（Integrated Circuit）カード、ＳＤ（Secure Digital）カード、光ディスク等の記録媒体に保持することができる。
【符号の説明】
【００７５】
１  ネットワーク
２  ルータ
１００  仮想マシンの接続制御システム
１１０  ＧＵＩ端末
１１１  コマンド生成機能部
１１２  ＧＵＩイベント監視部
１１３  オブジェクト管理部
１１４  コマンド生成部
１１５  コマンド送信部
１１６  ＧＵＩ制御部
１２０  ＳＰＰサーバ
１２１  コマンド変換機能部
１２２  コマンド受信部
１２３  コマンド展開部
１２３Ａ  管理情報格納部
１２４  ＳＰＰ
１２５  仮想マシン（ＶＭ）
１５０  モジュールメニュー
２１０  ＧＵＩ画面
ＶＭ  仮想マシン（オブジェクト）
Ｐｏｒｔ  ポート（オブジェクト）
NIC，ring  ＳＰＰのリソース（オブジェクト）
【図１】
2018032156.tif 000005
【図２】
2018032156.tif 000006
【図３】
2018032156.tif 000007
【図４】
2018032156.tif 000008
【図５】
2018032156.tif 000009
【図６】
2018032156.tif 000010
【図７】
2018032156.tif 000011
【図８】
2018032156.tif 000012
【図９】
2018032156.tif 000013
【図１０】
2018032156.tif 000014
【図１１】
2018032156.tif 000015
【図１２】
2018032156.tif 000016
【図１３】
2018032156.tif 000017
【図１４】
2018032156.tif 000018
【図１５】
2018032156.tif 000019