(57)【要約】【課題】ユーザの体感品質を向上させ、アプリケーションの操作性及び作業効率を高めるために、サービスを提供する仮想マシンを、地理的に離れたデータセンタ間で移動させることができるようにする。【解決手段】本発明は、それぞれ地理的に離れた拠点のうちいずれの拠点のサーバ上で動作するものであって、複数のユーザ端末が同時にアクセス可能なアプリケーションを実行する仮想マシンを制御する仮想マシン制御装置において、複数のユーザ端末と各拠点との間の遅延時間を取得する遅延時間取得手段と、複数のユーザ端末と各拠点との間の遅延時間に基づいて、複数のユーザ端末との間の遅延時間のばらつきが最小の拠点を決定する位置決定手段と、決定された拠点のサーバ上で仮想マシンを動作させる位置制御手段とを備える。【選択図】      図１
2013196287.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ地理的に離れた拠点のうちいずれの拠点のサーバ上で動作するものであって、複数のユーザ端末が同時にアクセス可能なアプリケーションを実行する仮想マシンを制御する仮想マシン制御装置において、
前記仮想マシンが提供するサービスを受ける前記複数のユーザ端末と前記各拠点との間の遅延時間を取得する遅延時間取得手段と、
前記複数のユーザ端末と前記各拠点との間の遅延時間に基づいて、前記複数のユーザ端末との間の遅延時間のばらつきが比較的小さい拠点を、前記仮想マシンを動作させる位置として決定する位置決定手段と、
前記位置決定手段により決定された拠点のサーバ上で前記仮想マシンを動作させる位置制御手段と
を備えることを特徴とする仮想マシン制御装置。
【請求項２】
前記位置決定手段が、前記複数のユーザ端末との間の遅延時間を前記拠点毎に取得し、前記拠点毎の遅延時間の最大値と最小値との差が最小となる拠点を、前記仮想マシンを動作させる位置として決定するものであることを特徴とする請求項１に記載の仮想マシン制御装置。
【請求項３】
前記位置決定手段が、前記複数のユーザ端末との間の遅延時間を前記拠点毎に取得し、前記拠点毎の遅延時間の分散値が最小となる拠点を、前記仮想マシンを動作させる位置として決定するものであることを特徴とする請求項１に記載の仮想マシン制御装置。
【請求項４】
前記位置決定手段が、前記複数のユーザ端末と前記拠点との間の遅延時間のうち、閾値を超える遅延時間を含む場合、当該拠点を前記仮想マシンを動作させる候補から除外することを特徴とする請求項１又は２に記載の仮想マシン制御装置。
【請求項５】
それぞれ地理的に離れた拠点のうちいずれの拠点のサーバ上で動作するものであって、複数のユーザ端末が同時にアクセス可能なアプリケーションを実行する仮想マシンを制御する仮想マシン制御プログラムにおいて、
コンピュータを、
前記仮想マシンが提供するサービスを受ける前記複数のユーザ端末と前記各拠点との間の遅延時間を取得する遅延時間取得手段、
前記複数のユーザ端末と前記各拠点との間の遅延時間に基づいて、前記複数のユーザ端末との間の遅延時間のばらつきが比較的小さい拠点を、前記仮想マシンを動作させる位置として決定する位置決定手段、
前記位置決定手段により決定された拠点のサーバ上で前記仮想マシンを動作させる位置制御手段
として機能させることを特徴とする仮想マシン制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン制御装置及びプログラムに関し、例えば、データセンタにおいて、仮想マシンが提供するサービスの体感品質を向上させるために、仮想マシンを制御する仮想マシン制御装置及びプログラムに適用し得るものである。
【背景技術】
【０００２】
例えば、複数のユーザが同時に共同編集しながら文章や画像等を制作するサービスがある。
【０００３】
この種のサービスは、例えば、遠隔にあるユーザ端末同士がドキュメントを共同で作成したり、又複数のユーザ端末が、ディスプレイをホワイトボードとして活用して文章等を書き込み、ネットワークを通じて、書き込んだ文章等を同時に共有したりすることが必要となる。
【０００４】
一般的なサーバ−クライアントシステムは１対１の情報通信を行なうため、上記のような複数のクライントが同時にかつ共通の情報を共有することはできない。
【０００５】
近年、上記のようなサービスを提供するために、データセンタにおいて、サーバが仮想マシンを起動させ、仮想マシンが複数のユーザ端末との間で情報通信をして情報を統合することで、複数のユーザ間で共通の情報を同時に共有することができる。
【０００６】
ここで、仮想マシンとは、サーバのハードウェア上で動作し、ＯＳ（オペレーティングシステム）の機能やサービスを提供するソフトウェアをいう。
【０００７】
特許文献１には、ユーザ端末（クライアント）に最高レベルの応答性を提供するために、接続モニタがデータセンタのサーバのパフォーマンスを観測し、その観測値が閾値よりも低下した場合に、そのサーバで起動しているプロセス（当該プロセスが仮想マシンに相当する）を、パフォーマンスの高い他のサーバに移動させる技術が記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２００５−５２４１６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、仮想マシンの提供サービスをユーザが享受する際、ユーザのクライアントと仮想マシンとの間の遅延時間がユーザ毎に異なり、ユーザのアプリケーション操作に支障をきたす場合が生じ得る。
【００１０】
すなわち、クライアントから仮想マシンまでの遅延時間はユーザ毎に異なるため、文章等の編集が反映されるまでの時間がユーザ毎に異なり、作業の同期がとれず、共同作業の効率が大きく低下する場合がある。
【００１１】
また、特許文献１の記載技術は、サーバのパフォーマンスの観測値に基づいて、同じデータセンタ内に存在するサーバに、プロセス（仮想マシン）を移動させるものである。
【００１２】
しかし、ある時点においてユーザ毎の遅延時間に大きな差がないとしても、ネットワークを流れるトラフィック量やトラフィック量の分布は一定ではない。そのため、ネットワークの輻輳状態は時間とともに変化し、ユーザ毎の遅延時間もそれに伴い変化する。
【００１３】
特許文献１の記載技術は、同じデータセンタ内のサーバにプロセス（仮想マシン）を移動させても、同じデータセンタ内にプロセス（仮想マシン）が存在する限り、移動後のユーザの遅延時間は移動前と変わらず生じ得る。そのため、ユーザ毎の遅延時間が異なることによって生じ得るアプリケーションの操作上の不都合は解消し得ない。
【００１４】
そのため、ユーザが体感する、クライアントとサーバとの間の応答速度等の品質を向上させ、アプリケーションの操作性及び作業効率を高めるために、サービスを提供する仮想マシンを、地理的に離れたデータセンタ間で移動させることができる仮想マシン制御装置及び仮想マシン制御プログラムが求められている。
【課題を解決するための手段】
【００１５】
かかる課題を解決するために、第１の本発明は、それぞれ地理的に離れた拠点のうちいずれの拠点のサーバ上で動作するものであって、複数のユーザ端末が同時にアクセス可能なアプリケーションを実行する仮想マシンを制御する仮想マシン制御装置において、（１）仮想マシンが提供するサービスを受ける複数のユーザ端末と各拠点との間の遅延時間を取得する遅延時間取得手段と、（２）複数のユーザ端末と各拠点との間の遅延時間に基づいて、複数のユーザ端末との間の遅延時間のばらつきが比較的小さい拠点を、仮想マシンを動作させる位置として決定する位置決定手段と、（３）位置決定手段により決定された拠点のサーバ上で仮想マシンを動作させる位置制御手段とを備えることを特徴とする仮想マシン制御装置である。
【００１６】
第２の本発明は、それぞれ地理的に離れた拠点のうちいずれの拠点のサーバ上で動作するものであって、複数のユーザ端末が同時にアクセス可能なアプリケーションを実行する仮想マシンを制御する仮想マシン制御プログラムにおいて、コンピュータを、（１）仮想マシンが提供するサービスを受ける複数のユーザ端末と各拠点との間の遅延時間を取得する遅延時間取得手段、（２）複数のユーザ端末と各拠点との間の遅延時間に基づいて、複数のユーザ端末との間の遅延時間のばらつきが比較的小さい拠点を、仮想マシンを動作させる位置として決定する位置決定手段、（３）位置決定手段により決定された拠点のサーバ上で仮想マシンを動作させる位置制御手段として機能させることを特徴とする仮想マシン制御プログラムである。
【発明の効果】
【００１７】
本発明によれば、ユーザが体感する、クライアントとサーバとの間の応答速度等の品質を向上させ、アプリケーションの操作性及び作業効率を高めるために、サービスを提供する仮想マシンを、地理的に離れた拠点間で移動させることができる。
【図面の簡単な説明】
【００１８】
【図１】実施形態のサービス提供システムの全体構成を示す全体構成図である。
【図２】実施形態のデータセンタのサーバが仮想マシンを起動させている様子を説明する説明図である。
【図３】第１の実施形態の仮想マシン制御装置の機能構成を示す機能構成図である。
【図４】実施形態のユーザ端末の遅延時間測定機能を説明する説明図である。
【図５】第１の実施形態の各ユーザ端末と各ゲートウェイとの間の遅延時間の測定処理を示すフローチャートである。
【図６】第１の実施形態の動作を説明するときに想定するネットワーク構成を示す構成図である。
【図７】第１の実施形態の仮想マシン制御装置における設置位置決定処理の動作を示すフローチャートである。
【図８】第１の実施形態の設置位置決定情報記憶部に記憶される情報の構成を示す構成図である。
【図９】第２の実施形態の仮想マシン制御装置の機能構成を示す機能構成図である。
【図１０】第２の実施形態の仮想マシン制御装置における設置位置決定処理の動作を示すフローチャートである。
【図１１】第２の実施形態の設置位置決定情報記憶部に記憶される情報の構成を示す構成図である。
【発明を実施するための形態】
【００１９】
（Ａ）第１の実施形態
以下では、本発明の仮想マシン制御装置及び仮想マシン制御プログラムの第１の実施形態を、図面を参照しながら詳細に説明する。
【００２０】
（Ａ−１）第１の実施形態の構成
図１は、この実施形態のサービス提供システム１の全体構成を示す全体構成図である。
【００２１】
図１において、この実施形態のサービス提供システム１は、データセンタ１０１−１〜１０１−Ｍ（Ｍは正の整数）、ゲートウェイ１０２−１〜１０２−Ｍ、ユーザ端末１０３−１〜１０３−Ｎ（Ｎは正の整数）、制御装置１０６を少なくとも有して構成される。
【００２２】
図１に示すネットワーク１００は、いわゆるインターネットであり、有線回線、又は無線回線の通信網である。また、ネットワーク１００は、公衆網を想定して説明するが、専用網であってもよい。
【００２３】
データセンタ１０１−ｍ（１≦ｍ≦Ｍ）は、複数のサーバ１０４を有して構成されている。データセンタ１０１−ｍに設置されている複数のサーバ１０４はそれぞれ、ゲートウェイ１０２−ｍを介してネットワーク１００と接続している。
【００２４】
データセンタ１０１−ｍの各サーバ１０４は、仮想マシンとしての機能するためのソフトウェアを有しており、複数の仮想マシンを起動させることができるものである。
【００２５】
図２は、データセンタ１０１−ｍのサーバ１０４が仮想マシン１０５を起動させている様子を説明する説明図である。
【００２６】
サーバ１０４は、既存するサーバと同様のハードウェア構成を備えるものであり、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭ、入出力インタフェース等を有して構成されるものである。そして、サーバ１０４は、ＲＯＭ等に格納されている処理プログラムを、ＣＰＵが読み出して実行することにより実現される。
【００２７】
図２に示すように、各サーバ１０４は、複数のクライアントに対してサービスを提供する仮想マシン１０５を起動させて、仮想マシン１０５が複数のユーザ端末１０３に対してサービスを提供する。
【００２８】
ここで、仮想マシン１０５とは、サーバ１０４のハードウェア上で動作し、ＯＳの機能やサービスをユーザ端末１０３に提供するソフトウェアである。また、仮想マシン１０５は、サーバ１０４の計算機資源やネットワーク資源を互いに共有し、１台のサーバが多重化した信号を通信するという特徴を有している。
【００２９】
また図２では、１台のサーバ１０４がそれぞれ異なる複数の仮想マシン１０５を起動させる場合を例示するが、１台のサーバ１０４が１個の仮想マシン１０５を起動させるものであっても構わない。
【００３０】
さらに、１個の仮想マシン１０５は、複数のユーザ端末１０３−ｎと同時接続が可能であり、複数のユーザ端末１０３−ｎとの間で情報のやり取りが可能である。
【００３１】
例えば、図１では、ネットワーク１００における点線が、データセンタ１０１−１とユーザ端末１０３−１〜１０３−Ｎとの間で接続しているが、これは、１個の仮想マシン１０５がＮ台のユーザ端末１０３−ｎと同時接続していることを示している。
【００３２】
なお、仮想マシン１０５に接続するユーザ数は、現実にはサービス利用形態やユーザの都合等により、サービス提供中でも変動するものである。また、接続ユーザ数は、この実施形態において本質的な影響をもたらすものではない。そこで、接続ユーザ数は、Ｎ台と固定的なものとして説明するが、特に限定されるものではない。
【００３３】
また、この実施形態では、仮想マシン１０５は、後述するように仮想マシン制御装置１０６の制御により、物理的に異なるサーバ１０４に移動するものである。つまり、仮想マシン１０５は、同一のデータセンタ１０１−ｍに設置されている他のサーバ１０４に移動したり、又は、地理的に離れた他のデータセンタ１０１のサーバ１０４に移動したりできる。
【００３４】
仮想マシン１０５は、いずれのデータセンタ１０１−ｍへの移動も可能である。つまり、データセンタ１０１−ｍも仮想マシン１０５を収容する収容能力（例えば、データセンタ１０１−ｍ内のサーバ１０４のパフォーマンス能力等）を有しており、その収容能力に応じて仮想マシン１０５を受け入れることができる。仮想マシン１０５は、その移動先のデータセンタ１０１−ｍでユーザ端末１０４に対してサービスを提供することができる。
【００３５】
ゲートウェイ１０２−ｍ（１≦ｍ≦Ｍ）は、ネットワーク１００と対応するデータセンタ１０１−ｍとの間で信号の転送処理を行なうものである。
【００３６】
この実施形態では、説明便宜上、ゲートウェイ１０２−ｍが、１対１でデータセンタ１０１−ｍと接続する場合を例示する。従って、ゲートウェイ１０２−ｍはＭ台あるものとする。
【００３７】
ユーザ端末１０３−ｎ（１≦ｎ≦Ｎ）は、ユーザがサービス提供を受ける端末であり、サーバ１０４上の仮想マシン１０５に対するクライアントに相当するものである。例えば、ユーザ端末１０３−ｎは、パーソナルコンピュータ（ＰＣ）、タブレット端末、いわゆるスマートフォン等を含む携帯端末、通信機能を有する携帯電話機等が該当する。
【００３８】
仮想マシン制御装置１０６は、ネットワーク１００に接続して、データセンタ１０１、ユーザ端末１０３と通信可能なものであり、ユーザ端末１０３と仮想マシン１０５との間の遅延時間を観測し、その遅延時間に応じて仮想マシン１０５を実行するサーバ１０４を決定するものである。
【００３９】
仮想マシン制御装置１０６は既存のサーバ上で実現されるようにしてもよい。例えば、サーバは、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭ、入出力インタフェース等を有して構成されるものである。そして、ＣＰＵが、ＲＯＭ等に格納されている仮想マシン制御プログラムを読み出して実行することにより仮想マシン制御処理が実現される。
【００４０】
なお、仮想マシン制御装置１０６は、上記のようにネットワーク１００に接続するサーバが仮想マシン制御機能を実行するようにしてもよいし、仮想マシン制御装置１０６の仮想マシン機能が仮想マシン１０５に組み込まれるようにしてもよい。後者のように、仮想マシン機能が仮想マシン１０５のアプリケーションプログラムに組み込まれる場合でも、仮想マシン制御機能は、図３に例示する構成を有する。
【００４１】
図３は、仮想マシン制御装置１０６の機能構成を示す機能構成図である。図３に示すように、仮想マシン制御装置１０６は、遅延情報取得部２０１、設置位置決定部２０２、設置位置制御部２０３、設置位置決定情報記憶部２０４を少なくとも有して構成される。
【００４２】
遅延情報取得部２０１は、ユーザ端末１０３−ｎと仮想マシン１０５との間の遅延時間情報を取得し、その取得した遅延時間情報を設置位置決定部２０２に与えるものである。
【００４３】
ここで、ユーザ端末１０３−ｎと仮想マシン１０５との間の遅延時間は、ユーザ端末１０３−ｎとゲートウェイ１０２−ｍとの間の遅延時間とする。
【００４４】
また、ユーザ端末１０３−ｎとゲートウェイ１０２−ｍとの間の遅延時間の取得方法は、種々の方法を広く適用することができ、例えば、各ユーザ端末１０３−ｎがゲートウェイ１０２−ｍとの間の遅延時間を測定したり、また例えば、各ゲートウェイ１０２−ｍがユーザ端末１０３−ｎとの間の遅延時間を測定したりする方法を適用することができる。
【００４５】
例えば、各ユーザ端末１０３−ｎが遅延時間を測定する場合を、図４を用いて例示する。図４に示すように、ユーザ端末１０３−ｎは、遅延時間測定部３０１と、通知部３０２とを有する。遅延時間測定部３０１は、ゲートウェイ１０２−ｍとの間で送受信されるパケットの往復時間を定期的に又は非定期的に測定し、通知部３０２が、測定されたユーザ端末１０３−ｎとゲートウェイ１０２−ｍとの間の遅延時間を仮想マシン制御装置１０６に通知する。これにより、仮想マシン制御装置１０６が各ユーザ端末１０３−ｎ毎のゲートウェイ１０２−ｍとの間の遅延時間を取得することができる。
【００４６】
また、各ユーザ端末１０３−ｎによる遅延時間の観測対象は、現にサービス提供を受けているデータセンタ１０１−ｍに対応するゲートウェイ１０２−ｍを含む複数のゲートウェイ１０２−ｍとする。すなわち、ユーザ端末１０３−ｎが現在接続しているデータセンタ１０１−ｍのゲートウェイ１０２−ｍだけでなく、接続していない他のデータセンタ１０１−ｍのゲートウェイ１０２−ｍとの間の遅延時間も測定する。
【００４７】
例えば、ユーザ端末１０３−ｎの観測対象とするゲートウェイ１０２がＭ台であり、ユーザ端末１０３がＮ台あるとすると、遅延情報取得部２０１は、Ｍ×Ｎ個の遅延時間情報を各ユーザ端末１０３−ｎから取得する。
【００４８】
なお、観測時間について、Ｍ×Ｎ個の遅延時間がほぼ同じタイミングに観測することが望ましいため、各ユーザ端末１０３−ｎ間で予め決定された時間で行なうようにしてもよいし、又は仮想マシン制御装置１０６又はゲートウェイ１０２−ｍが観測指示を各ユーザ端末１０３−ｎに対して行なうようにしてもよい。
【００４９】
設置位置決定部２０２は、仮想マシン１０５が設置されるべきデータセンタ１０１を決定するものであり、決定したデータセンタ１０１の情報を設置場所制御部４００に与えるものである。
【００５０】
ここで、設置位置決定部２０２による設置位置の決定は、遅延時間情報取得部２０１から同じタイミングで観測されたＭ×Ｎ個の遅延時間情報に基づいて行なう。設置位置決定部２０２は、どのユーザ端末１０３−ｎからどのゲートウェイ１０２−ｍまでの遅延時間情報を得ればよいかは、設置位置情報記憶部２０４から取得する。
【００５１】
また、設置位置決定方法については、例えば以下の方法を適用することができる。
【００５２】
第１の方法例として、設置位置決定部２０２が遅延時間情報のレンジに基づいて判断する方法を適用できる。ここで、遅延時間情報のレンジとは、遅延時間の最大値から最小値を引いた値をいう。
【００５３】
例えば、設置位置決定部２０２は、ゲートウェイ１０２−ｍ毎に遅延時間情報のレンジを求める。そして、レンジの値が最小となるゲートウェイ１０２−ｍに対応するデータセンタ１０１−ｍを、仮想マシン１０５を設定するデータセンタ１０１−ｍとして決定する。
【００５４】
つまり、各ゲートウェイ１０２−ｍについて、ユーザ端末１０３−ｎの台数分（すなわちＮ個）の遅延時間が求められる。そして、ゲートウェイ１０２−ｍ毎に、Ｎ個の遅延時間のレンジを計算することになるから、ゲートウェイ１０２−ｍの台数分のレンジの値、すなわちＭ個のレンジの値が得られる。設置位置決定部２０２は、Ｍ個のレンジの値の中から最小値となるゲートウェイ１０２−ｍを発見し、当該ゲートウェイ１０２−ｍに対応するデータセンタ１０１を、仮想マシン１０５を設置するデータセンタ１０１と決定する。
【００５５】
第２の方法例として、設置位置決定部２０２が遅延時間情報の分散に基づいて判断する方法を適用できる。ここで、分散とは、次のように定義されるものである。
【数１】
2013196287.tif 000003
【００５６】
設置位置決定部２０２は、遅延時間情報の分散をゲートウェイ１０２−ｍ毎に求める。そして、ゲートウェイ１０２−ｍ毎の分散の値が最小となるゲートウェイ１０２−ｍに対応するデータセンタ１０１−ｍを、仮想マシン１０５を設定するデータセンタ１０１−ｍとして決定する。
【００５７】
なお、第２の方法では、標本分散により分散の値を求めるようにしたが、標本分散による方法に限定されるものではなく、例えば不偏分散による方法で求めるようにしてもよい。
【００５８】
設置位置決定部２０２は、ゲートウェイ１０２−ｍとユーザ端末１０３−ｎとの間の遅延時間のばらつきが比較的小さいゲートウェイ１０２−ｍを選択することに意味がある。そこで、ゲートウェイ１０２−ｍとユーザ端末１０３−ｎとの間の遅延時間のばらつきが小さいものを決定することができれば、設置位置の決定方法は広く適用することができる。
【００５９】
設置位置制御部２０３は、設置位置決定部２０２により決定されたデータセンタ１０１−ｍに対して、仮想マシン１０５を移動させるものである。
【００６０】
設置位置決定情報記憶部２０４は、設置位置決定部２０３が仮想マシン１０５の設置位置を求めるのに必要なゲートウェイ１０２−ｍとユーザ端末１０３−ｎの情報を保持するものである。すなわち、設置位置決定情報記憶部２０４は、ゲートウェイ１０２−ｍとユーザ端末１０３−ｎとの間の遅延時間を保持する。
【００６１】
（Ａ−２）第１の実施形態の動作
次に、この実施形態のネットワーク１における仮想マシン制御処理の動作を、図面を参照しながら詳細に説明する。
【００６２】
ここで、仮想マシン制御装置１０６の仮想マシン制御処理の動作を説明するに当たり、図６に例示するネットワーク構成を想定して説明する。
【００６３】
図６では、ネットワーク１００−１〜１００−４は、それぞれリンクＬ１〜Ｌ３で接続されている。
【００６４】
また、図６において、ネットワーク１００−１〜１００−４には、ゲートウェイ（ＧＷ）１０２−１〜１０２−３及びユーザ端末１０３−１〜１０３−４がリンクＬ４〜Ｌ１０を介して接続している。例えば、ネットワーク１００−１には、ゲートウェイ１０２−１がリンク８を介して接続し、ユーザ端末１０３−１がリンクＬ４を介して接続している。
【００６５】
さらに、仮想マシン制御装置１０６もリンクＬ１１を介してネットワーク１００−４に接続している。
【００６６】
また、図６において、リンクＬ１〜Ｌ１０付近に付している数字は、リンク伝送時間を表しており、伝送時間の単位は「ｍｓ」とする。例えば、ユーザ端末１０３−１とネットワーク１００−１とを接続するリンクＬ４の伝送時間は１０ｍｓである。なお、説明を簡単にするために、リンク伝送時間はこれ以外を考慮しない。例えば、パケットがネットワークを通過してもそこを通過するのに要する伝送時間は０として説明する。
【００６７】
図５は、各ユーザ端末１０３−ｎと各ゲートウェイ１０２−ｍとの間の遅延時間の測定処理を示すフローチャートである。ここでは、各ユーザ端末１０３−ｎが遅延時間を測定する場合を例示する。
【００６８】
図５において、各ユーザ端末１０３−ｎは、各ゲートウェイ１０２−ｍとの間でパケットの送受信を行ない、そのパケットの往復時間に基づいて遅延時間を測定する（Ｓ１０１）。
【００６９】
そして、各ユーザ端末１０３−ｎの通知部３０２が、仮想マシン制御装置１０６に測定した遅延時間情報を通知する（Ｓ１０２）。
【００７０】
この実施形態では、データセンタの数がＭ個であり、各データセンタ１０１−ｍに１対１のゲートウェイ１０２−ｍが接続しているから、１台のユーザ端末１０３−ｎが取得する遅延時間は、Ｍ個である。
【００７１】
従って、１台のユーザ端末１０３−ｎは、Ｍ個の遅延時間情報を仮想マシン制御装置１０６に通知する。
【００７２】
例えば、図６において、仮想マシン１０５がデータセンタ１０１−１内のサーバ１０４で起動しているとする。そして、データセンタ１０１−１内の仮想マシン１０５が、ユーザ端末１０３−１〜１０３−４に対して、例えば共同ドキュメント編集サービス等のサービスを提供しているとする。
【００７３】
図６において、ユーザ端末１０３−１〜１０３−４が仮想マシン１０５に接続するには、遅延が発生する。遅延時間は経由するリンクの伝送時間の和となる。例えば、ユーザ端末１０３−２が仮想マシン１０５に接続する場合、パケットが経由するリンクはＬ５＋Ｌ１＋Ｌ８であるから、遅延時間はＬ５＋Ｌ１＋Ｌ８＝１０＋１０＋１０＝３０ｍｓである。
【００７４】
上記のような状況で、各ユーザ端末１０３−１〜１０３−４は、定期的に又は非定期的に、各ゲートウェイ１０２−１〜１０２−３までの遅延時間を測定し、仮想マシン制御装置１０６に遅延時間情報を通知する。
【００７５】
つまり、仮想マシン１０５からサービスの提供を受けている最中も、各ユーザ端末１０３−１〜１０３−４は、各ゲートウェイ１０２−１〜１０２−３との間の遅延時間を測定し、各遅延時間情報を通知する。
【００７６】
また、現在、仮想マシン１０５が設置されているデータセンタ１０１−１の遅延時間を含み、他のデータセンタ１０１−２〜１０１−３との間の遅延時間も各ユーザ端末１０３−１〜１０３−４は測定する。
【００７７】
例えば、図６において、ユーザ端末１０３−１は、３台のゲートウェイ１０２−１、ゲートウェイ１０２−１、ゲートウェイ１０２−３までの遅延時間を測定し、それぞれの遅延時間は、２０ｍｓ、４５ｍｓ、６５ｍｓとなる。そして、これらの遅延時間を仮想マシン制御装置１０６に通知する。
【００７８】
次に、仮想マシン制御装置１０６における仮想マシンの設置位置決定処理の動作について図面を用いて説明する。
【００７９】
図７は、仮想マシン制御装置１０６における設置位置決定処理の動作を示すフローチャートである。
【００８０】
仮想マシン制御装置１０６において、遅延情報取得部２０１は、各ユーザ端末１０３−１〜１０３−４が測定した各ゲートウェイ１０２−１〜１０２−３までの遅延時間情報を取得し、設置位置決定部２０２に与える（Ｓ２０１）。
【００８１】
ここで、現在、仮想マシン１０５はデータセンタ１０１−１に設置されているが、データセンタ１０１−１に対応するゲートウェイ１０２−１との間の遅延時間情報も、仮想マシン制御装置１０６は取得する。
【００８２】
設置位置決定部２０１において、遅延情報取得部２０１から、各ユーザ端末１０３−１〜１０３−４からの各遅延時間情報を受け取る。
【００８３】
このとき、設置位置決定部２０１は、受け取った各ユーザ端末１０３−１〜１０３−４からの遅延時間情報を設置位置決定情報記憶部２０４に記憶する。
【００８４】
これにより、各ユーザ端末１０３−１〜１０３−４と各ゲートウェイ１０２−１〜１０２−３との間の遅延時間情報が全ての取得できているか否かを認識することができる。
【００８５】
例えば、図８に示すように、設置位置決定情報記憶部２０４は、遅延情報取得部２０１が遅延情報を取得するたびに、各ユーザ端末１０３−ｎと各ゲートウェイ１０２−ｍとの間の遅延時間情報を記憶していく。
【００８６】
設置位置決定部２０２は、設置位置決定情報記憶部２０４を参照して、各ユーザ端末１０３−ｎと各ゲートウェイ１０２−ｍとの間の遅延時間情報の全てが揃っているか否かを確認し、全ての遅延時間情報が揃っている場合に、処理をＳ２０３に移行する。
【００８７】
Ｓ２０３では、設置位置決定部２０２は、各ユーザ端末１０３−ｎと各ゲートウェイ１０２−ｍとの間の遅延時間情報に基づいて、ゲートウェイ毎の遅延時間のレンジ又は分散の値を求める（Ｓ２０３）。
【００８８】
そして、設置位置決定部２０２が遅延時間のレンジを求める場合には、レンジの値が最小となるゲートウェイ１０２−ｍのデータセンタ１０１−ｍを、仮想マシン１０５を設置するデータセンタ１０１−ｍとして設置位置決定部２０２は決定する（Ｓ２０４）。
【００８９】
また、設置位置決定部２０２が遅延時間情報の分散を求める場合には、ゲートウェイ１０２−ｍ毎の分散の値が最小となるゲートウェイ１０２−ｍのデータセンタ１０１−ｍを、仮想マシン１０５を設定するデータセンタ１０１−ｍとして設置位置決定部２０２は決定する（Ｓ２０４）。
【００９０】
そして、設置位置決定部２０２は、仮想マシン１０５の設置位置とするデータセンタ１０１−ｍを示す情報を、設置位置制御部２０３に与え、設置位置制御部２０３が、設置位置とするデータセンタ１０１−ｍの情報に従って、仮想マシン１０５をデータセンタ１０１へ移動させる（Ｓ２０５）。
【００９１】
図６を用いて、仮想マシンの設置位置の決定処理を具体的に説明する。図６において、各ユーザ端末１０３−１〜１０３−４は、測定した各ゲートウェイ１０２−１〜１０２−３との間の遅延時間を仮想マシン制御装置１０６に通知する。
【００９２】
仮想マシン制御装置１０６において、設置位置決定部２０２は、取得した各ユーザ端末１０３−ｎと各ゲートウェイ１０２−ｍとの間の遅延時間情報を、設置位置決定情報記憶部２０４に記憶する。
【００９３】
全てのユーザ端末１０３−ｎから遅延時間情報が与えられると、設置位置決定情報記憶部２０４には、例えば、図８に例示する情報が記憶される。
【００９４】
設置位置決定部２０２は、設置位置決定情報記憶部２０４を参照して、全てのユーザ端末１０３−ｎの遅延時間情報があることを確認すると、設置位置決定情報記憶部２０４に記憶されるユーザ端末１０３−ｎの遅延時間情報を用いて、レンジ又は分散の値をゲートウェイ１０２−ｍ毎に求める。
【００９５】
例えば、図８に例示する情報が記憶されているとする。設置位置決定部２０２は、ゲートウェイ１０２−１について、各ユーザ端末１０３−１〜１０３−４との間の遅延時間の最大値は６５ｍｓであり、最小値は２０ｍｓである。
【００９６】
従って、設置位置決定部２０２は、ゲートウェイ１０２−１についてのレンジの値を、６５−２０＝４５ｍｓとして求める。同様の計算方法で、設置位置決定部２０２は、ゲートウェイ１０２−２についてのレンジの値２５ｍｓを求め、ゲートウェイ１０２−２についてのレンジの値４５ｍｓを求める。
【００９７】
そうすると、レンジの値の最小値は、ゲートウェイ１０２−２の２５ｍｓとなる。よって、設置位置決定部２０２は、ゲートウェイ１０２−２に対応するデータセンタ１０１−２を、仮想マシン１０５を設置するものとして決定する。
【００９８】
そして、設置位置制御部２０３が、設置位置決定部２０３からデータセンタ１０１−２の情報を受け取り、仮想マシン１０５をデータセンタ１０２−２に移動する。
【００９９】
例えば、設置位置制御部２０３は、各データセンタ１０１−ｍ内のサーバ１０４のＩＰアドレスを管理している。このとき、設置位置制御部２０３は、各データセンタ１０１−ｍ内のサーバ１０４のパフォーマンス状況を管理するようにしてもよい。
【０１００】
設置位置制御部２０３は、設置位置決定部２０２から移動先とするデータセンタ１０１−２の情報を受け取る。このとき、どのサーバ１０４が仮想マシン１０５を起動するかが問題になるが、仮想マシン１０５を起動させるサーバ１０４の決定は、既存技術を用いるようにしてもよい。
【０１０１】
例えば、設置位置制御部２０３が、各データセンタ１０１−ｍ内のサーバ１０４のパフォーマンス情報（例えば、ＣＰＵの利用率、メモリの残容量等のリソースの負荷情報など）を管理しておき、設置位置制御部２０３が移動先のデータセンタ１０１−２内で、最も負荷の低いサーバ１０４を選択するようにしてもよい。
【０１０２】
この場合、設置位置制御部２０３が、各データセンタ１０１−ｍのサーバ１０４のＩＰアドレスを管理し、移動先のサーバ１０４のＩＰアドレスを宛先として移動元のサーバ１０４のＩＰアドレス及び仮想マシン１０５の実行に係るポート番号を、移動先のサーバ１０４に送信する。また、それまでの仮想マシン１０５がサービスのアプリケーションプログラムの実行に必要なデータも、設置位置制御部２０３は移動先サーバ１０４に送信する。
【０１０３】
また別の方法として、例えば、各データセンタ１０１−ｍ内で、予め仮想マシン１０５を起動させるサーバ１０４を決めておき、設置位置制御部２０３がこれを管理していてもよい。
【０１０４】
この場合、設置位置制御部２０３が、移動先のデータセンタ１０１−ｍのサーバ１０４のＩＰアドレスを管理し、移動先のサーバ１０４のＩＰアドレスを宛先として移動元のサーバ１０４のＩＰアドレス及び仮想マシン１０５の実行に係るポート番号を、移動先のサーバ１０４に送信する。また、それまでの仮想マシン１０５がサービスのアプリケーションプログラムの実行に必要なデータも、設置位置制御部２０３は移動先サーバ１０４に送信する。
【０１０５】
さらに別の方法として、例えば、各データセンタ１０１−ｍ内で、サーバ１０４の動作を制御する制御装置（図示しない）を設け、設置位置制御部２０３は当該制御装置（図示しない）に仮想マシン１０５の移動先であることを通知する。これを受けて、当該制御装置が、現在のサーバ１０４のパフォーマンス状況等を考慮して、仮想マシン１０５を起動させるサーバ１０４を決定するようにしてもよい。
【０１０６】
また、移動先のデータセンタ１０１−ｍ内のサーバ１０４に仮想マシンが切り替わるとき、それまでサービスの提供を受けていたユーザ端末１０３−ｎに移動先サーバ１０４のアドレス情報（ＩＰアドレス及びポート番号）の通知することが問題となるが、移動先サーバ１０４のアドレス情報の通知方法は、既存技術を適用できる。
【０１０７】
例えば、設置位置制御部２０３が、移動先のデータセンタ１０１−ｍのサーバ１０４のＩＰアドレスを管理している場合、設置位置制御部２０３が、サービス提供を受けている各ユーザ端末１０３−ｎに対して、ＩＰアドレス及びポート番号を送信するようにしてもよい。
【０１０８】
また別の方法として、例えば、移動先のデータセンタ１０１−ｍ内のサーバ１０４又は制御装置（図示しない）が、サービス提供を受けている各ユーザ端末１０３−ｎに対して、ＩＰアドレス及びポート番号を送信するようにしてもよい。
【０１０９】
（Ａ−３）実施形態の効果
以上のように、この実施形態によれば、各ユーザ端末から仮想マシンまでの遅延時間のばらつきが小さいデータセンタから、ユーザはサービスを受けられる。
【０１１０】
従来技術は、ユーザ端末から仮想マシンまでの遅延時間のばらつきがこの実施形態におけるそれより大きいため、ユーザ端末が同時に同じ仮想マシンのアプリケーションを操作した場合に、ユーザ端末毎に更新にかかる時間の差が大きく、ユーザの体感品質を下げ、作業効率を低下するという課題があった。しかし、この実施形態によれば、ユーザの体感品質を向上させ、アプリケーションの操作性及び作業効率を向上させることができる。
【０１１１】
（Ｂ）第２の実施形態
次に、本発明の仮想マシン制御装置及び仮想マシン制御プログラムの第２の実施形態を、図面を参照しながら詳細に説明する。
【０１１２】
（Ｂ−１）第２の実施形態の構成
第２の実施形態は、仮想マシン制御装置１０６の仮想マシン制御処理が第１の実施形態と異なり、それ以外の構成要素は第１の実施形態に対応するものである。
【０１１３】
従って、第２の実施形態においても、図１、図２及び図４を用いることとする。また、以下では、第２の実施形態の仮想マシン制御装置１０６の仮想マシン制御処理を中心に詳細に説明するものとし、第１の実施形態で既に説明した構成要素の詳細な説明は省略する。
【０１１４】
図９は、第２の実施形態の仮想マシン制御装置１０６の機能構成を示す機能構成図である。図９に示すように、第２の実施形態の仮想マシン制御装置１０６は、遅延情報取得部２０１、設置位置決定部４０２、設置位置制御部４０３、設置位置決定情報記憶部４０４を有する。
【０１１５】
第２の実施形態は、仮想マシン制御装置１０６が、設置位置決定部２０２に代えて設置位置決定部４０２を有する点、設置位置決定情報記憶部２０４に代えて設置位置決定情報記憶部４０４を有する点が第１の実施形態と異なる。
【０１１６】
設置位置決定部４０２は、第１の実施形態で説明した第１の方法例により、仮想マシン１０５が設置されるべきデータセンタ１０１を決定するものである。
【０１１７】
また、設置位置決定部４０２は、ゲートウェイ１０２−ｍと各ユーザ端末１０３−ｎとの間の遅延時間のうち、閾値を超えるものがあるか否かを各ゲートウェイ１０２−ｍ毎に確認し、閾値を超える遅延時間があるものについては、仮想マシン１０５を設置すべきデータセンタ１０１のゲートウェイ候補から除外する。
【０１１８】
すなわち、遅延時間情報のレンジの値が最小であっても、ゲートウェイ１０２−ｍとユーザ端末１０３−ｎとの間で閾値を超える遅延時間となるものがあれば、設置位置決定部４０２は当該ゲートウェイ１０２−ｍを候補としない。
【０１１９】
これにより、遅延時間のばらつきは小さいが、遅延時間が大きいデータセンタ１０１−ｍへ、仮想マシン１０５が移動することがなくなる。
【０１２０】
これは、ゲートウェイ１０２−ｍと各ユーザ端末１０３−ｎとの間で遅延時間のばらつきが小さいと、各ユーザ端末１０３−ｎ間での作業の同期が取りやすくなる。しかし、ゲートウェイ１０２−ｍと各ユーザ端末１０３−ｎとの間の遅延時間があまりに大きくなると、アプリケーションに対する操作性そのものが低下する。第２の実施形態は、上記の点を考慮したものである。
【０１２１】
設置位置決定情報記憶部４０４は、第１の実施形態で説明した設置位置決定に係る情報と共に、遅延時間の閾値を記憶するものである。ここで、遅延時間の閾値は、予め設定されるものである。また、遅延時間の閾値は、運用に応じて、管理者等の操作により変更可能なものである。
【０１２２】
（Ｂ−２）第２の実施形態の動作
次に、第２の実施形態の仮想マシン制御装置１０６における設置位置決定処理の動作について図面を用いて説明する。
【０１２３】
図１０は、第２の実施形態の仮想マシン制御装置１０６における設置位置決定処理の動作を示すフローチャートである。
【０１２４】
図１０において、仮想マシン制御装置１０６が、Ｓ２０１〜Ｓ２０３の処理は、図７のフローチャートのＳ２０１〜Ｓ２０３の処理と同じである。
【０１２５】
Ｓ２０３では、設置位置決定部４０２が、各ゲートウェイ１０２−３遅延時間のレンジの値を求める。
【０１２６】
Ｓ３０１では、設置位置決定部４０２が、ユーザ端末１０３−ｎからゲートウェイ１０２−ｍまでの遅延時間のうち、閾値を超えるものがあるかを確認する。
【０１２７】
そして、設置位置決定部４０２は、ユーザ端末１０３−ｎからゲートウェイ１０２−ｍまでの遅延時間が全て閾値未満となるゲートウェイ１０２−ｍのうち、レンジの値が最小となるゲートウェイ１０２−ｍを選択し、当該ゲートウェイ１０２−ｍのデータセンタ１０１−ｍを、仮想マシン１０５を設置するデータセンタ１０１−ｍとする（Ｓ２０４）。
【０１２８】
そして、Ｓ２０５では、そして、設置位置決定部２０２は、仮想マシン１０５の設置位置とするデータセンタ１０１−ｍを示す情報を、設置位置制御部２０３に与え、設置位置制御部２０３が、設置位置とするデータセンタ１０１−ｍの情報に従って、仮想マシン１０５をデータセンタ１０１へ移動させる（Ｓ２０５）。
【０１２９】
図１１は、図６のゲートウェイ１０２−１〜１０２−３と、各ユーザ端末１０３−１〜１０３−４との間の遅延時間を示す情報である。図１１に例示する情報は、設置位置決定情報記憶部４０４に記憶される。
【０１３０】
ここでは、遅延時間の閾値が５０ｍｓであるとする。
【０１３１】
この場合、ゲートウェイ１０２−１について、遅延時間の最大値は６５ｍｓであり、最小値は４５ｍｓであるから、遅延時間のレンジの値は６５−４５＝２０ｍｓである。
【０１３２】
同様の計算方法で、ゲートウェイ１０２−２についての遅延時間のレンジの値は２５ｍｓであり、ゲートウェイ１０２−２についての遅延時間のレンジの値は４５ｍｓである。
【０１３３】
上記より、遅延時間のレンジの値は、ゲートウェイ１０２−１が最小であるが、ゲートウェイ１０２−１とユーザ端末１０３−１、１０３−２及び１０３−４との間の遅延時間は、遅延時間の閾値である５０ｍｓを超えている。
【０１３４】
従って、設置位置決定部４０４は、ゲートウェイ１０２−１を候補から除外する。なお、同様の理由から、ゲートウェイ１０２−３も候補から除外する。
【０１３５】
そうすると、設置位置決定部２０２は、遅延時間のレンジの値が最小となる、ゲートウェイ１０２−２に対応するデータセンタ１０１−２を、仮想マシン１０５を設置するものとして決定する。
【０１３６】
（Ｂ−３）第２の実施形態の効果
以上のように、第２の実施形態によれば、第１の実施形態に加えて、アプリケーションの操作性を考慮し遅延時間のばらつきは小さいが、遅延時間が大きいデータセンタへの仮想マシンの移動を防ぐことができる。
【０１３７】
（Ｃ）他の実施形態
（Ｃ−１）上述した第１及び第２の実施形態で説明したサービス提供システムは、複数のユーザが同一サービスに同時にアクセスすることができ、そのサービスを提供する提供場所が可変であるシステムに広く適用することができる。
【０１３８】
（Ｃ−２）上述した第１及び第２の実施形態では、説明を簡単にするために、図１に例示するシステム構成を想定して説明したが、図１に例示するシステム構成に限定されるものではない。
【０１３９】
例えば、１台のゲートウェイを介して、複数のデータセンタがネットワークに接続可能であってもよい。また、仮想マシン制御装置の機能が仮想マシンに含まれるようにしてもよいし、あるデータセンタ内に仮想マシン制御装置が設けられるようにしてもよい。
【０１４０】
（Ｃ−３）仮想マシン制御装置の設置位置決定部が、遅延時間のレンジ又は分散の値に基づいて、仮想マシンの設置位置を決定する際に、レンジ又は分散の値が同じ場合には、いずれのゲートウェイ１０２−ｍを選択するようにしてもよい。例えば、予め優先順位を決めておき、その優先順位に基づいて、設置位置決定部が設置位置を決定するようにしてもよいし、又例えば、設置位置決定部がランダムに設置位置を決定するようにしてもよい。
【符号の説明】
【０１４１】
１…サービス提供システム、１０１−１〜１０１−Ｍ…データセンタ、
１０２−１〜１０２−Ｍ…ゲートウェイ、
１０３−１〜１０３−Ｎ…ユーザ端末、１０４…サーバ、
１０５…仮想マシン、１０６…仮想マシン制御装置、
２０１…遅延情報取得部、２０２…設置位置決定部、
２０３…設置位置制御部、２０４…設置位置決定情報記憶部。
【図１】
2013196287.tif 000004
【図２】
2013196287.tif 000005
【図３】
2013196287.tif 000006
【図４】
2013196287.tif 000007
【図５】
2013196287.tif 000008
【図６】
2013196287.tif 000009
【図７】
2013196287.tif 000010
【図８】
2013196287.tif 000011
【図９】
2013196287.tif 000012
【図１０】
2013196287.tif 000013
【図１１】
2013196287.tif 000014