(57)【特許請求の範囲】
【請求項１】
ユーザを識別するユーザ識別情報と、該ユーザに用いられる仮想マシンのインタフェースを識別する仮想マシンインタフェース識別情報とを対応付けて記憶する仮想マシン情報記憶部と、
ユーザグループを識別するユーザグループ識別情報と、該ユーザグループにより用いられる仮想ネットワークを識別する仮想ネットワーク識別情報とを対応付けて記憶するユーザグループ情報記憶部と、
前記ユーザ識別情報と前記ユーザグループ識別情報とを含む接続要求を受信する受信部と、
前記受信部により受信された前記接続要求に含まれる前記ユーザ識別情報を検索キーとして、前記仮想マシン情報記憶部から前記仮想マシンインタフェース識別情報を取得する仮想マシンインタフェース取得部と、
前記受信部により受信された前記接続要求に含まれる前記ユーザグループ識別情報を検索キーとして、前記ユーザグループ情報記憶部から前記仮想ネットワーク識別情報を取得する仮想ネットワーク取得部と、
前記仮想ネットワーク取得部により取得された前記仮想ネットワーク識別情報により識別される仮想ネットワークと、前記仮想マシンインタフェース取得部により取得された前記仮想マシンインタフェース識別情報により識別される仮想マシンインタフェースとを接続する接続処理を実行するネットワーク接続部と
を備えたことを特徴とする制御サーバ。
【請求項２】
前記受信部は、新たなユーザグループを作成するユーザグループ作成要求を更に受信し、
前記ネットワーク接続部は、前記受信部により前記ユーザグループ作成要求が受信されると、新たに作成されるユーザグループにより用いられる仮想マシンをサーバに作成し、新たなユーザグループにより用いられる仮想ネットワークを作成し、該仮想マシンの仮想マシンインタフェースと該仮想ネットワークとを接続する接続処理を実行し、新たなユーザグループのユーザグループ識別情報と該仮想ネットワークの仮想ネットワーク識別情報とを対応付けてユーザグループ情報記憶部に格納することを特徴とする請求項１に記載の制御サーバ。
【請求項３】
前記受信部は、新たなユーザグループを作成するユーザグループ作成要求を更に受信し、
前記ネットワーク接続部は、前記受信部により前記ユーザグループ作成要求が受信されると、新たに作成されるユーザグループにより用いられる仮想ネットワークを作成し、新たなユーザグループのユーザグループ識別情報と該仮想ネットワークの仮想ネットワーク識別情報とを対応付けてユーザグループ情報記憶部に格納することを特徴とする請求項１に記載の制御サーバ。
【請求項４】
前記仮想マシンが作成されるサーバに設定されて前記仮想ネットワークを形成する仮想スイッチを識別する仮想スイッチ識別情報と、該仮想ネットワークの仮想ネットワーク識別情報とを対応付けて記憶する仮想スイッチ情報記憶部を更に備え、
前記ネットワーク接続部は、前記仮想ネットワーク取得部により取得された前記仮想ネットワーク識別情報を検索キーとして前記仮想スイッチ情報記憶部から前記仮想スイッチ識別情報を取得し、該仮想スイッチ識別情報により識別される仮想スイッチの仮想ポートを前記仮想ネットワークの仮想ネットワークインタフェースとして用いて、前記接続処理を実行することを特徴とする請求項１に記載の制御サーバ。
【請求項５】
前記ユーザにより用いられる仮想マシンは、複数の異なる拠点に配置されたサーバのうち任意の拠点に配置されたサーバに作成され、
前記受信部は、前記拠点を識別する拠点識別情報と前記ユーザ識別情報とを含む仮想マシン再配置要求を更に受信し、
前記制御サーバは、
前記ユーザ識別情報と、該ユーザ識別情報により識別されるユーザの仮想マシンが接続している仮想ネットワークを用いるユーザグループの前記ユーザグループ識別情報とを対応付けて記憶するグループ記憶部と、
前記受信部により前記仮想マシン再配置要求が受信されると、前記ユーザ識別情報により識別されるユーザにより用いられている仮想マシンと同一の仮想マシンを、前記拠点識別情報により識別される拠点に配置されたサーバに作成する仮想マシン作成部と
を更に備え、
前記仮想マシンインタフェース取得部は、前記仮想マシン再配置要求に含まれる前記ユーザ識別情報を検索キーとして、前記仮想マシン情報記憶部から前記仮想マシンインタフェース識別情報を取得し、
前記仮想ネットワーク取得部は、前記仮想マシン再配置要求に含まれる前記ユーザ識別情報を検索キーとして、前記グループ記憶部から前記ユーザグループ識別情報を取得し、取得したユーザグループ識別情報を検索キーとして前記ユーザグループ情報記憶部から前記仮想ネットワーク識別情報を取得し、
前記ネットワーク接続部は、前記仮想ネットワークと接続するための仮想ネットワークインタフェースとして、前記拠点識別情報により識別されるサーバに設けられた仮想ネットワークインタフェースを用いて、前記接続処理を実行することを特徴とする請求項１に記載の制御サーバ。
【請求項６】
前記ユーザにより用いられる仮想マシンは、複数の異なる拠点に配置されたサーバのうち任意の拠点に配置されたサーバに作成され、
前記受信部は、前記サーバの性能に関する性能条件と前記ユーザ識別情報とを含む仮想マシン再配置要求を更に受信し、
前記制御サーバは、
前記ユーザ識別情報と、該ユーザ識別情報により識別されるユーザの仮想マシンが接続している仮想ネットワークを用いるユーザグループの前記ユーザグループ識別情報とを対応付けて記憶するグループ記憶部と、
前記受信部により前記仮想マシン再配置要求が受信されると、前記ユーザ識別情報により識別されるユーザにより用いられている仮想マシンと同一の仮想マシンを、前記性能条件を満たす前記サーバに作成する仮想マシン作成部と
を更に備え、
前記仮想マシンインタフェース取得部は、前記仮想マシン再配置要求に含まれる前記ユーザ識別情報を検索キーとして、前記仮想マシン情報記憶部から前記仮想マシンインタフェース識別情報を取得し、
前記仮想ネットワーク取得部は、前記仮想マシン再配置要求に含まれる前記ユーザ識別情報を検索キーとして、前記グループ記憶部から前記ユーザグループ識別情報を取得し、取得したユーザグループ識別情報を検索キーとして、前記ユーザグループ情報記憶部から前記仮想ネットワーク識別情報を取得し、
前記ネットワーク接続部は、前記仮想ネットワークと接続するための仮想ネットワークインタフェースとして、前記仮想マシン作成部により仮想マシンが作成されたサーバに設けられた仮想ネットワークインタフェースを用いて、前記接続処理を実行することを特徴とする請求項１に記載の制御サーバ。
【請求項７】
制御サーバで実行される制御方法であって、
ユーザを識別するユーザ識別情報とユーザグループを識別するユーザグループ識別情報とを含む接続要求を受信する受信工程と、
前記ユーザ識別情報と、前記ユーザに用いられる仮想マシンのインタフェースを識別する仮想マシンインタフェース識別情報とを対応付けて記憶する仮想マシン情報記憶部から、前記受信工程により受信された前記接続要求に含まれるユーザ識別情報を検索キーとして該仮想マシンインタフェース識別情報を取得する仮想マシンインタフェース取得工程と、
前記ユーザグループ識別情報と、前記ユーザグループにより用いられる仮想ネットワークを識別する仮想ネットワーク識別情報とを対応付けて記憶するユーザグループ情報記憶部から、前記受信工程により受信された前記接続要求に含まれる前記ユーザグループ識別情報を検索キーとして該仮想ネットワーク識別情報を取得する仮想ネットワーク取得工程と、
前記仮想ネットワーク取得工程により取得された前記仮想ネットワーク識別情報により識別される仮想ネットワークと、前記仮想マシンインタフェース取得工程により取得された前記仮想マシンインタフェース識別情報により識別される仮想マシンインタフェースとを接続する接続処理を実行するネットワーク接続工程と
を含んだことを特徴とする制御方法。
【請求項８】
ユーザを識別するユーザ識別情報とユーザグループを識別するユーザグループ識別情報とを含む接続要求を受信する受信ステップと、
前記ユーザ識別情報と、前記ユーザに用いられる仮想マシンのインタフェースを識別する仮想マシンインタフェース識別情報とを対応付けて記憶する仮想マシン情報記憶部から、前記受信ステップにより受信された前記接続要求に含まれるユーザ識別情報を検索キーとして該仮想マシンインタフェース識別情報を取得する仮想マシンインタフェース取得ステップと、
前記ユーザグループ識別情報と、前記ユーザグループにより用いられる仮想ネットワークを識別する仮想ネットワーク識別情報とを対応付けて記憶するユーザグループ情報記憶部から、前記受信ステップにより受信された前記接続要求に含まれる前記ユーザグループ識別情報を検索キーとして該仮想ネットワーク識別情報を取得する仮想ネットワーク取得ステップと、
前記仮想ネットワーク取得ステップにより取得された前記仮想ネットワーク識別情報により識別される仮想ネットワークと、前記仮想マシンインタフェース取得ステップにより取得された前記仮想マシンインタフェース識別情報により識別される仮想マシンインタフェースとを接続する接続処理を実行するネットワーク接続ステップと
をコンピュータに実行させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御サーバ、制御方法及び制御プログラムに関する。
【背景技術】
【０００２】
近年、仮想化技術を利用して、クラウドコンピューティングなど多数のサーバを用いて自律分散処理を実行する大規模分散処理が普及している。また、仮想マシンや仮想デスクトップを用いる技術がある。例えば、仮想デスクトップを用いる技術では、大規模分散処理システムのサーバにユーザにより用いられる仮想マシンが作成され、アプリケーションの実行やデータ保存などの処理を行う。また、仮想デスクトップを用いる技術では、ユーザ端末は、サーバから転送されるリモートデスクトップの画面を表示する。言い換えると、ユーザ端末の役割は、ユーザインタフェースをユーザに提供することになる。
【０００３】
また、仮想デスクトップや仮想マシンを、仮想化されたネットワークに接続する手法もある。ネットワークの仮想化技術としては、例えば、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ、  ）８０２．１Ｑ、ＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＧＲＥ（Ｇｅｎｅｒｉｃ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）トンネルなどがある。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】ＲＦＣ  １７０１  Ｇｅｎｅｒｉｃ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ  （ＧＲＥ）、Ｏｃｔｏｂｅｒ  １９９４
【非特許文献２】「特集１  「仮想化？関係ないね」と思うべからず」、日経ＮＥＴＷＯＲＫ、２０１１年１０月号  ｐ．４４−ｐ４７
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、例えば、オフィスにおけるネットワーク環境を考えると、１人のユーザが複数のプロジェクトに参加し、状況に応じてプロジェクト単位の適切なサーバにアクセスする場合がある。かかる場合にセキュリティを実現する手法としては、例えば、ネットワークレベルで隔離する手法やアプリケーションレベルで隔離する手法が考えられる。もっとも、前者の手法によれば、ネットワーク毎に端末を複数台用意し、ユーザは、端末を切り替えながら作業を行うといった不便が発生するおそれがある。また、後者の手法によれば、ネットワークレベルでセキュリティを実現できないおそれがある。この点、上述したように、仮想デスクトップや仮想マシンを仮想化されたネットワークに接続する手法もあるが、この手法の場合、仮想マシンと仮想ネットワークとの接続作業が複雑であるという問題がある。例えば、仮想デスクトップや仮想マシンにおいては、特定の仮想デスクトップ等を１つの仮想ネットワークに接続させる場合、接続させる全ての仮想デスクトップ等のインタフェースに対して仮想ネットワークの設定を行う必要があり、設定作業が複雑となる。この結果、例えば、接続作業をユーザが行うことは困難であり、仮想デスクトップや仮想マシンのインタフェース情報を把握している運用者が時間をかけて行うことになる。
【０００６】
開示の技術は、上述に鑑みてなされたものであって、仮想マシンと仮想ネットワークとの接続作業をユーザや運用者が簡単に実行可能となる制御サーバ、制御方法及び制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
開示する制御サーバは、１つの態様において、ユーザを識別するユーザ識別情報と、ユーザに用いられる仮想マシンのインタフェースを識別する仮想マシンインタフェース識別情報とを対応付けて記憶する仮想マシン情報記憶部を備える。また、制御サーバは、ユーザグループを識別するユーザグループ識別情報と、ユーザグループにより用いられる仮想ネットワークを識別する仮想ネットワーク識別情報とを対応付けて記憶するユーザグループ情報記憶部を備える。また、制御サーバは、ユーザ識別情報とユーザグループ識別情報とを含む接続要求を受信する受信部を備える。また、制御サーバは、受信部により受信された接続要求に含まれるユーザ識別情報を検索キーとして、仮想マシン情報記憶部から仮想マシンインタフェース識別情報を取得する仮想マシンインタフェース取得部を備える。また、制御サーバは、受信部により受信された接続要求に含まれるユーザグループ識別情報を検索キーとして、ユーザグループ情報記憶部から仮想ネットワーク識別情報を取得する仮想ネットワーク取得部を備える。また、制御サーバは、仮想ネットワーク取得部により取得された仮想ネットワーク識別情報により識別される仮想ネットワークと、仮想マシンインタフェース取得部により取得された仮想マシンインタフェース識別情報により識別される仮想マシンインタフェースとを接続する接続処理を実行するネットワーク制御部を備える。
【発明の効果】
【０００８】
開示する制御サーバの１つの態様によれば、仮想マシンと仮想ネットワークとの接続作業をユーザや運用者が簡単に実行可能となるという効果を奏する。例えば、１つの態様によれば、物理ネットワークとは独立に作成される仮想ネットワークは、ユーザやユーザグループの単位で作成されることが可能である。また、１つの態様によれば、ユーザ自らの操作によって、プロジェクト単位の仮想ネットワークの作成や削除、選択が可能である。このように、１つの態様によれば、ネットワークレベルでのセキュリティを容易に実現することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例１に係る制御サーバの構成の一例について説明するためのブロック図である。
【図２】図２は、実施例１における仮想テーブルに記憶された情報の一例を説明するための図である。
【図３】図３は、実施例１におけるユーザグループテーブルに記憶された情報の一例を説明するための図である。
【図４Ａ】図４Ａは、実施例１における仮想スイッチテーブルに記憶された情報の一例を説明するための図である。
【図４Ｂ】図４Ｂは、実施例１における仮想ポートテーブルに記憶された情報の一例を説明するための図である。
【図５】図５は、実施例１におけるグループテーブルに記憶された情報の一例を説明するための図である。
【図６】図６は、実施例１におけるリソーステーブルに記憶された情報の一例を説明するための図である。
【図７】図７は、実施例１におけるユーザ登録要求受信時における処理の流れの一例を説明するためのシーケンス図である。
【図８】図８は、実施例１におけるユーザグループ作成要求受信時における処理の流れの一例を説明するためのシーケンス図である。
【図９】図９は、実施例１におけるユーザ追加要求受信時における処理の流れの一例を説明するためのシーケンス図である。
【図１０】図１０は、実施例１におけるユーザグループ参加要求受信時における処理の流れの一例を説明するためのシーケンス図である。
【図１１】図１１は、実施例１におけるログアウト時のユーザグループからの切断処理の流れの一例を説明するためのシーケンス図である。
【図１２】図１２は、実施例１における仮想デスクトップ再配置要求受信時における処理の流れの一例を説明するためのシーケンス図である。
【図１３】図１３は、一連の処理を実行するためのプログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。
【発明を実施するための形態】
【００１０】
以下に、開示する制御サーバ、制御方法及び制御プログラムの実施例について、図面に基づいて詳細に説明する。なお、本実施例により開示する発明が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１１】
［制御サーバの構成］
図１は、実施例１に係る制御サーバの構成の一例について説明するためのブロック図である。図１に示す例では、説明の便宜上、ユーザ端末２００とサーバコンピュータ３００とを併せて示した。なお、図１に示す例では、記載の便宜上、１つのユーザ端末２００を記載したが、これに限定されるものではなく、任意の数あって良い。また、図１に示す例では、記載の便宜上、ｎ個のサーバコンピュータ３００を記載した。ここで、「ｎ」は任意の自然数である。以下では、ユーザ端末２００とサーバコンピュータ３００とについて簡単に説明した上で、制御サーバ１００について詳細に説明する。
【００１２】
ユーザ端末２００は、ネットワークを介してユーザ端末２００とサーバコンピュータ３００と接続される。ユーザ端末２００は、ユーザによって用いられる端末である。ユーザ端末２００は、ユーザにユーザインタフェースを提供し、ユーザから各種操作を受け付ける。ユーザ端末２００は、例えば、ユーザインタフェースをユーザに提供するシンクライアント端末である。
【００１３】
また、ユーザ端末２００は、仮想デスクトップがサーバコンピュータ３００に作成された仮想マシンから提供される。また、ユーザ端末２００とサーバコンピュータ３００との間のネットワークは、適宜、ネットワークの仮想化技術が適用される。ネットワークの仮想化技術とは、例えば、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）８０２．１Ｑ  ＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＧＲＥ（Ｇｒａｎｕｌａｒ  Ｒｅｃｏｖｅｒｙ  Ｅｘｔｅｎｓｉｏｎ）トンネルなどである。
【００１４】
サーバコンピュータ３００は、ネットワークを介してユーザ端末２００と制御サーバ１００と接続される。サーバコンピュータ３００は、ユーザの各種操作に対応するアプリケーションの実行やデータ保存などの処理の一部又は全てを実行する。サーバコンピュータ３００は、例えば、他のサーバコンピュータ３００と協働して自律分散処理を実行する大規模分散処理を実行する。サーバコンピュータ３００は、複数の異なる拠点に配置されており、仮想マシンは、任意の拠点に配置されたサーバコンピュータ３００に作成される。
【００１５】
ここで、サーバコンピュータ３００に設けられる仮想マシンについて補足する。サーバコンピュータ３００に設けられる仮想マシンには、例えば、ユーザにより用いられる仮想マシンであって、ユーザ端末２００に仮想デスクトップを提供する仮想マシンがある。ユーザにより用いられる仮想マシンは、ユーザと１対１の関係をとる。
【００１６】
また、サーバコンピュータ３００に設けられる仮想マシンには、ユーザグループにより用いられ、いわば共用サーバとして用いられる仮想マシンもある。ユーザグループにより用いられる仮想マシンは、１つの仮想ネットワークと接続され、一人又は複数のユーザにより用いられる。例えば、ユーザにより用いられる１つ又は複数の仮想マシンと接続される。
【００１７】
図１に示す例では、サーバコンピュータ３００は、ハイパーバイザ３０１と、仮想スイッチ３０２と、仮想ポート３０３とを有する。また、サーバコンピュータ３００は、１つ又は複数の仮想マシン３０４及び仮想ＩＦ（ＩｎｔｅｒＦａｃｅ）３０５、１つ又は複数の仮想デスクトップ３０６及び仮想ＩＦ３０５を有する。また、サーバコンピュータ３００は、仮想マシンや仮想デスクトップをユーザ端末２００に提供する。
【００１８】
なお、以下では、図１に示すように、サーバコンピュータ３００がハイパーバイザ３０１を有する場合を用いて説明するが、これに限定されるものではなく、ハイパーバイザ３０１を有さなくても良い。ハイパーバイザ３０１を有さない場合、サーバコンピュータ３００は、仮想化のための専用のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を用意することなく、任意のＯＳを起動した上で、起動した任意のＯＳ上に１つ又は複数の仮想マシンや仮想デスクトップを作成するようにしても良い。
【００１９】
なお、ユーザ端末２００は、例えば、既知のパーソナルコンピュータ、ワークステーション、携帯電話、ＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍ）端末、シンクライアント端末、移動体通信端末又はＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）などの情報処理装置である。また、サーバコンピュータ３００は、例えば、ワークステーションやサーバなどである。ユーザ端末２００やサーバコンピュータ３００の構成は、公知のユーザ端末やサーバコンピュータの構成を用いて実現して良い。
【００２０】
制御サーバ１００について説明する。制御サーバ１００は、以下に詳細に説明する一連の処理を実行することで、仮想マシンと仮想ネットワークとの接続作業をユーザや運用者が簡単に実行可能となる。具体的には、仮想デスクトップを含む仮想マシンを仮想ネットワークに接続させる際の設定を、ユーザ及びユーザグループの単位で制御・管理することができ、運用者だけでなく、エンドユーザによっても簡単に設定可能となる。
【００２１】
図１に示すように、制御サーバ１００は、記憶部１１０と、制御部１２０とを有する。記憶部１１０、制御部１２０と接続される。記憶部１１０は、制御部１２０による各種処理に用いるデータを記憶する。記憶部１１０は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ（Ｆｌａｓｈ  Ｍｅｍｏｒｙ）などの半導体メモリ素子、又は、ハードディスクや光ディスクなどである。図１に示す例では、記憶部１１０は、仮想マシンテーブル１１１と、ユーザグループテーブル１１２と、仮想スイッチテーブル１１３と、仮想ポートテーブル１１４と、グループテーブル１１５と、リソーステーブル１１６とを有する。
【００２２】
仮想マシンテーブル１１１は、ユーザを一意に識別するユーザ識別情報と、ユーザに用いられる仮想マシンのインタフェースを一意に識別する仮想マシンインタフェース識別情報とを対応付けて記憶する。仮想マシンテーブル１１１を「仮想マシン情報記憶部」とも称し、ユーザ識別情報を「ユーザＩＤ」とも称し、仮想マシンインタフェース識別情報を「仮想インタフェースＩＤ」とも称する。
【００２３】
図２は、実施例１における仮想テーブルに記憶された情報の一例を説明するための図である。図２に示す例では、仮想マシンテーブル１１１は、「ユーザＩＤ」と「仮想デスクトップＩＤ」と「仮想インタフェースＩＤ」と「ログイン状態」とを対応付けて記憶する。「ユーザＩＤ」は、ユーザを一意に識別する識別情報である。「仮想デスクトップＩＤ」は、ユーザに割り当てられた仮想デスクトップを一意に識別する識別情報である。上述したように、仮想デスクトップは、サーバコンピュータ３００に作成された仮想マシンにより提供され、ユーザにより用いられる仮想マシンとユーザとは１対１の関係をとる。このため、「仮想デスクトップＩＤ」は、ユーザにより用いられる仮想マシンも一意に識別することになる。「仮想インタフェースＩＤ」は、仮想マシンの仮想インタフェースを一意に識別する識別情報である。「ログイン状態」は、ユーザが仮想マシンにログイン状態にあるか否かを示す情報である。図２に示す例では、ユーザがログインしている場合には、ログイン状態「ＩＮ」と称し、ユーザがログインしている場合には、ログイン状態「ＯＵＴ」と記載したが、これに限定されるものではなく、任意の記載を用いて良い。また、図２に示す例では、仮想マシンテーブル１１１が、「ログイン状態」を記憶する場合を示したが、これに限定されるものではなく、「ログイン状態」を記憶しなくても良い。
【００２４】
図２に示す例では、仮想マシンテーブル１１１は、ユーザＩＤ「Ｕｓｅｒ−Ａ」と仮想デスクトップＩＤ「ＶＤ−Ａ」と仮想インタフェースＩＤ「ＶＩＦ−Ａ」とログイン状態「ＩＮ」とを対応付けて記憶する。言い換えると、仮想マシンテーブル１１１は、ユーザ「Ｕｓｅｒ−Ａ」に対して、仮想インタフェース「ＶＩＦ−Ａ」を有する仮想デスクトップ「ＶＤ−Ａ」が割り当てられていることを記憶し、ユーザがログインしていることを記憶している。
【００２５】
なお、以下では、ユーザＩＤ「Ｕｓｅｒ−Ａ」により識別されるユーザをユーザ「Ｕｓｅｒ−Ａ」とも記載する。また、同様に、仮想ネットワークＩＤ「ＶＩＦ−Ａ」により識別される仮想ネットワークを仮想ネットワーク「ＶＩＦ−Ａ」とも記載し、仮想デスクトップＩＤ「ＶＤ−Ａ」により識別される仮想デスクトップを仮想デスクトップ「ＶＤ−Ａ」とも記載する。
【００２６】
ここで、ユーザと仮想デスクトップとの関係について説明する。仮想デスクトップは、例えば、サーバコンピュータ３００に作成された仮想マシンによりユーザ端末２００に提供される仮想デスクトップ機能である。仮想デスクトップとユーザとは、１対１の関係となるものとして説明する。図２に示す例では、仮想デスクトップ「ＶＤ−Ａ」は、ユーザ「Ｕｓｅｒ−Ａ」にのみ用いられるものとして説明する。
【００２７】
仮想マシンテーブル１１１に記憶された情報は、後述するデスクトップ制御部１２６によって管理される。具体的には、詳細については後述するように、仮想マシンテーブル１１１は、制御サーバ１００がユーザ登録情報を受信すると、デスクトップ制御部１２６によって新たなレコードが格納される。また、詳細については後述するように、仮想マシンテーブル１１１は、制御サーバ１００がユーザ抹消要求を受信すると、デスクトップ制御部１２６によってレコードが削除される。
【００２８】
なお、ユーザ登録要求は、ユーザＩＤとユーザを認証するための認証情報を指定した上で、ユーザを認証するユーザ管理部１２２にユーザについての情報を登録するとともに、仮想デスクトップを作成する旨の要求である。ユーザ抹消要求は、ユーザＩＤを指定した上で、指定されたユーザＩＤに対応する仮想デスクトップを削除するとともに、ユーザ管理部１２２に登録されたユーザについての情報を削除する旨の要求である。
【００２９】
ユーザグループテーブル１１２は、ユーザグループを一意に識別するユーザグループ識別情報と、ユーザグループにより用いられる仮想ネットワークを一意に識別する仮想ネットワーク識別情報とを対応付けて記憶する。ユーザグループテーブル１１２を「ユーザグループ情報記憶部」とも称する。ユーザグループ識別情報を「ユーザグループＩＤ」とも称する。
【００３０】
図３は、実施例１におけるユーザグループテーブルに記憶された情報の一例を説明するための図である。図３に示す例では、ユーザグループテーブル１１２は、ユーザグループＩＤ「Ｇｒｏｕｐ−Ｘ」と仮想ネットワークＩＤ「ＶＮＷ−Ｘ」とを含むレコードを記憶する。言い換えると、ユーザグループテーブル１１２は、ユーザグループＩＤ「Ｇｒｏｕｐ−Ｘ」により仮想ネットワーク「ＶＮＷ−Ｘ」が用いられることを記憶する。
【００３１】
ユーザグループテーブル１１２に記憶される情報は、クラウド制御部１２３により管理される。詳細については後述するように、ユーザグループテーブル１１２は、制御サーバ１００がユーザグループ作成要求を受信すると、クラウド制御部１２３によって新たなレコードが格納される。また、ユーザグループテーブル１１２は、制御サーバ１００がユーザグループ削除要求を受信すると、クラウド制御部１２３によってレコードが削除される。
【００３２】
なお、ユーザグループ作成要求は、ユーザグループＩＤを指定した上で、ユーザグループにより用いられる仮想マシンを作成する要求である。ユーザグループ削除要求は、ユーザグループを指定した上で、ユーザグループと仮想マシンとを削除する要求である。なお、以下では、ユーザグループ作成要求に、作成する仮想マシンのイメージが含まれる場合を用いて説明するが、これに限定されるものではない。例えば、ユーザグループ作成要求により仮想マシンのイメージが特定されない場合には、任意の仮想マシンを作成するようにしても良い。
【００３３】
仮想スイッチテーブル１１３と仮想ポートテーブル１１４とは、仮想マシンが作成されるサーバに設定されて仮想ネットワークを形成する仮想スイッチを一意に識別する仮想スイッチ識別情報と、仮想ネットワークの仮想ネットワーク識別情報とを対応付けて記憶する。仮想スイッチテーブル１１３と仮想ポートテーブル１１４とを「仮想スイッチ情報記憶部」とも称する。なお、仮想スイッチ識別情報を「仮想スイッチＩＤ」とも称する。
【００３４】
具体的には、サーバコンピュータ３００に作成された仮想マシンと、仮想マシンと接続された仮想ネットワークについての情報を記憶する。具体的には、仮想マシンが作成されたサーバコンピュータ３００を一意に識別する「サーバコンピュータ」と、サーバコンピュータ３００の仮想インタフェースを一意に識別する仮想ネットワークＩＤと、仮想ネットワークを形成する仮想スイッチを一意に識別する「仮想スイッチＩＤ」と、仮想マシンと仮想ネットワークとの接続に用いられた仮想ポートを一意に識別する「仮想ポートＩＤ」と、仮想マシンの仮想インタフェースの「仮想インタフェースＩＤ」とを対応付けて記憶する。
【００３５】
図４Ａは、実施例１における仮想スイッチテーブルに記憶された情報の一例を説明するための図である。また、図４Ｂは、実施例１における仮想ポートテーブルに記憶された情報の一例を説明するための図である。図４Ａに示す例では、仮想スイッチテーブル１１３は、「サーバコンピュータ」と「仮想スイッチＩＤ」と「仮想インタフェースＩＤ」とを含むレコードを記憶する。なお、「サーバコンピュータ」は、仮想マシンが作成されたサーバコンピュータ３００を一意に識別する。
【００３６】
図４Ａに示す例では、仮想スイッチテーブル１１３は、サーバコンピュータ「Ｓｅｒｖｅｒ−Ａ」と仮想スイッチＩＤ「ＶＳＷ−Ｘ」と仮想インタフェースＩＤ「ＶＩＦ−Ａ」とを含むレコードを記憶する。
【００３７】
また、図４Ｂに示す例では、仮想ポートテーブル１１４は、「仮想インタフェースＩＤ」と「仮想ポートＩＤ」と「仮想ネットワークＩＤ」とを含むレコードを記憶する。「仮想ネットワークＩＤ」は、仮想ネットワークを一意に識別する。「仮想ポートＩＤ」は、サーバコンピュータ３００に設けられた仮想スイッチの仮想ポートを一意に識別する。
【００３８】
また、図４Ｂに示す例では、仮想ポートテーブル１１４は、仮想インタフェースＩＤ「ＶＩＦ−Ａ」と仮想ポートＩＤ「ＶＰ−Ｘ」と仮想ネットワークＩＤ「ＶＮＷ−Ｘ」とを含むレコードを記憶する。
【００３９】
すなわち、図４Ａや図４Ｂに示す例では、仮想スイッチテーブル１１３や仮想ポートテーブル１１４は、サーバコンピュータ「Ｓｅｒｖｅｒ−Ａ」に、仮想インタフェース「ＶＩＦ−Ａ」を有する仮想マシンを作成され、サーバコンピュータ「Ｓｅｒｖｅｒ−Ａ」に設けられた仮想スイッチ「ＶＳＷ−Ｘ」の仮想ポート「ＶＰ−Ｘ」を用いて、仮想ネットワーク「ＶＮＷ−Ｘ」と仮想マシンとが接続されたことを記憶する。
【００４０】
なお、仮想スイッチテーブル１１３と仮想ポートテーブル１１４とは、ネットワーク制御部１２５によって管理される。例えば、仮想スイッチテーブル１１３と仮想ポートテーブル１１４とは、ユーザグループ作成要求受信時やユーザグループ参加要求受信時に新たなレコードが格納される。なお、ユーザグループ参加要求を「接続要求」とも称する。また、例えば、仮想スイッチテーブル１１３と仮想ポートテーブル１１４とは、ユーザグループ削除要求受信時やユーザグループ退出要求受信時にレコードが削除される。
【００４１】
なお、ユーザグループ参加要求は、ユーザグループを指定して、ユーザの仮想デスクトップをユーザグループに対応する仮想ネットワークに接続させる要求である。ユーザグループ退出要求は、ユーザが接続する仮想ネットワークからユーザの仮想デスクトップを切断する要求である。
【００４２】
グループテーブル１１５は、ユーザＩＤと、ユーザＩＤにより識別されるユーザの仮想マシンが接続している仮想ネットワークを用いるユーザグループのユーザグループＩＤとを対応付けて記憶する。グループテーブル１１５を「グループ記憶部」とも称する。
【００４３】
図５は、実施例１におけるグループテーブルに記憶された情報の一例を説明するための図である。図５に示す例では、グループテーブル１１５が、「参加状態」を更に記憶する場合を示した。「参加状態」は、対応付けられたユーザＩＤにより識別されるユーザが、対応付けられたユーザグループＩＤにより識別されるユーザグループの仮想ネットワークと接続されているか否かを示す。図５に示す例では、参加状態「Ｔ」はユーザが参加していることを示し、参加状態「Ｆ」は、ユーザが参加していないことを示す。
【００４４】
図５に示す例では、グループテーブル１１５は、ユーザＩＤ「Ｕｓｅｒ−Ａ」とユーザグループＩＤ「Ｇｒｏｕｐ−Ｘ」と参加状態「Ｔ」とを記憶する。また、グループテーブル１１５に格納は、ユーザＩＤ「Ｕｓｅｒ−Ｂ」とユーザグループＩＤ「Ｇｒｏｕｐ−Ｙ」と参加状態「Ｆ」とを記憶する。言い換えると、グループテーブル１１５は、ユーザ「Ｕｓｅｒ−Ａ」が、ユーザグループ「Ｇｒｏｕｐ−Ｘ」「Ｇｒｏｕｐ−Ｙ」の両方に追加されており、現在はユーザグループ「Ｇｒｏｕｐ−Ｘ」に接続していることを記憶する。なお、図５に示すように、ユーザは、１つ又は複数のユーザグループに追加され得る。
【００４５】
グループテーブル１１５は、グループ管理部１２４によって管理される。具体的には、グループテーブル１１５は、詳細は後述するように、制御サーバ１００がユーザ追加要求を受信すると、新たなレコードが格納され、制御サーバ１００がユーザ削除要求を受信すると、レコードが削除される。
【００４６】
なお、ユーザ追加要求は、ユーザグループを指定した上でユーザグループにユーザを追加する要求である。また、ユーザ削除要求は、ユーザグループを指定した上でユーザグループからユーザを削除する要求である。
【００４７】
リソーステーブル１１６は、ネットワーク帯域・遅延、サーバコンピュータ３００において使用可能なリソースを示すリソース情報などを記憶する。図６は、実施例１におけるリソーステーブルに記憶された情報の一例を説明するための図である。図６に示す例では、リソーステーブル１１６は、「仮想マシンＩＤ」と、「サーバコンピュータ」と、「拠点ＩＤ」と、「往復遅延時間」とを対応付けて記憶する。「拠点ＩＤ」は、クラウドコンピューティングシステムが配置されている拠点を示す。言い換えると、対応付けられた「サーバコンピュータ」により識別されるサーバコンピュータ３００が配置されている拠点を示す。「往復遅延時間」は、仮想マシンとの間のネットワークにおいて発生する遅延時間を示す。以下では、サーバコンピュータ３００のリソースとして、往復遅延時間を用いる場合を例に説明するが、これに限定されるものではなく、任意のリソースを用いて良い。
【００４８】
図６に示す例では、リソーステーブル１１６は、仮想マシンＩＤ「ＶＭ−Ａ」と、サーバコンピュータ「Ｓｅｒｖｅｒ−Ａ」と、拠点ＩＤ「ＤＣ−Ａ」と、往復遅延時間「１００ｍｓ」とを対応付けて記憶する。言い換えると、リソーステーブル１１６は、仮想マシン「ＶＭ−Ａ」が、拠点「ＤＣ−Ａ」に設けられたサーバコンピュータ「Ｓｅｒｖｅｒ−Ａ」に作成されており、仮想マシン「ＶＭ−Ａ」との間の往復遅延時間が「１００ｍｓ」であることを記憶する。
【００４９】
なお、リソーステーブル１１６に記憶される情報は、クラウド制御部１２３によって管理される。具体的には、リソーステーブル１１６は、制御サーバ１００がユーザグループ作成要求を受信すると、クラウド制御部１２３によってレコードが作成されるとともに、その後、往復遅延時間が適宜更新される。また、リソーステーブル１１６は、制御サーバ１００がユーザグループ削除要求を受信すると、詳細については後述するように、クラウド制御部１２３によってレコードが削除される。
【００５０】
なお、上述した説明では、記憶部１１０が、仮想マシンテーブル１１１からリソーステーブル１１６を有する場合を示したが、これに限定されるものではない。例えば、仮想マシンテーブル１１１からリソーステーブル１１６のうち、１つ又は複数のテーブルを統合して１つのテーブルとしても良い。
【００５１】
制御部１２０は、送受信部１０１と、記憶部１１０と接続される。制御部１２０は、各種の処理手順などを規定したプログラムを記憶する内部メモリを有し、種々の処理を制御する。制御部１２０は、例えば、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などである。図１に示す例では、制御部１２０は、入力受付部１２１と、ユーザ管理部１２２と、クラウド制御部１２３と、グループ管理部１２４と、ネットワーク制御部１２５と、デスクトップ制御部１２６とを有する。各部の詳細な処理についてはシーケンス図を用いて後述し、以下では簡単に説明するに留める。
【００５２】
入力受付部１２１は、ユーザ端末２００から各種の情報を受信し、受信した情報を制御部１２０の各部に送信する。具体的には、入力受付部１２１は、ユーザ識別情報とユーザグループ識別情報とを含む接続要求を受信したり、ユーザグループ識別情報ユーザグループを作成するユーザグループ作成要求を受信したり、拠点を一意に識別する拠点識別情報とユーザ識別情報とを含む仮想マシン再配置要求を受信したり、サーバの性能に関する性能条件とユーザ識別情報とを含む仮想マシン再配置要求を更に受信したりする。入力受付部１２１を「受信部」とも称する。仮想マシン再配置要求を「仮想デスクトップ再配置要求」とも称する。
【００５３】
ユーザ管理部１２２は、ユーザＩＤと認証情報との対応付けを保持し、ユーザの認証処理を実行する。認証処理は、任意の手法を用いて良い。なお、以下では、特段ユーザ管理部１２２による認証処理を実行するタイミングについて、特段言及しないが、ユーザ管理部１２２は、制御サーバ１００がユーザＩＤを受信するごとに、認証情報をユーザ端末２００に要求して認証処理を実行してもよい。この場合、ユーザ管理部１２２による認証処理が成功した場合に初めて、それ以後の処理が実行されることになる。
【００５４】
クラウド制御部１２３は、ユーザグループテーブル１１２を管理する。具体的には、クラウド制御部１２３は、ユーザグループ作成要求を受信すると、新たなレコードをユーザグループテーブル１１２に格納し、ユーザグループ削除要求を受信すると、ユーザグループテーブル１１２からレコードを削除する。
【００５５】
すなわち、クラウド制御部１２３は、ユーザグループ作成要求を受信すると、ユーザグループ作成要求により指定される仮想マシンをサーバコンピュータ３００のハイパーバイザ上に作成して起動する。また、同様に、クラウド制御部１２３は、ユーザグループ削除要求を受信すると、ユーザグループ削除要求により指定される仮想マシンをサーバコンピュータ３００のハイパーバイザ上から削除する。また、クラウド制御部１２３は、仮想マシンの作成や削除に併せて、ユーザグループテーブル１１２を更新する。
【００５６】
また、クラウド制御部１２３は、リソーステーブル１１６を管理する。例えば、クラウド制御部１２３は、仮想マシンが作成されるごとに、作成された仮想マシンの仮想マシンＩＤとサーバコンピュータ、サーバコンピュータ３００の拠点を示す拠点ＩＤとを含むレコードをリソーステーブル１１６に格納する。
【００５７】
また、例えば、クラウド制御部１２３は、仮想マシンと各サーバコンピュータのハイパーバイザとの間でｐｉｎｇを継続的に実施させ、仮想マシンから収集した結果に基づいて遅延を監視し、監視結果をリソーステーブル１１６に適宜格納する。ただし、これに限定されるものではなく、クラウド制御部１２３は、サーバコンピュータ３００に搭載された任意の管理ツールや、任意のネットワーク管理ツール等から情報を収集することで遅延を監視しても良い。また、例えば、クラウド制御部１２３は、ユーザグループ削除要求を受信すると、対応するレコードをリソーステーブル１１６から削除する。
【００５８】
また、クラウド制御部１２３は、ユーザグループ参加要求に含まれるユーザグループＩＤを検索キーとして、ユーザグループテーブル１１２から仮想ネットワークＩＤを取得する。クラウド制御部１２３を「仮想ネットワーク取得部」とも称する。
【００５９】
グループ管理部１２４は、グループテーブル１１５を管理する。具体的には、グループ管理部１２４は、制御サーバ１００がユーザ追加要求を受信すると、ユーザ追加要求に含まれるユーザＩＤとユーザグループＩＤとを対応付けてグループテーブル１１５に格納し、制御サーバ１００がユーザ削除要求を受信すると、ユーザ削除要求に含まれるユーザＩＤとユーザグループＩＤとを含むレコードをグループテーブル１１５から削除する。
【００６０】
ネットワーク制御部１２５は、クラウド制御部１２３により取得された仮想ネットワークＩＤにより識別される仮想ネットワークと、デスクトップ制御部１２６により取得された仮想マシンインタフェースＩＤにより識別される仮想マシンインタフェースとを接続する接続処理を実行する。
【００６１】
具体的には、ネットワーク制御部１２５は、クラウド制御部１２３により取得された仮想ネットワークＩＤを検索キーとして仮想スイッチテーブル１１３や仮想ポートテーブル１１４から仮想スイッチＩＤを取得し、仮想スイッチ識別情報により識別される仮想スイッチの仮想ポートを仮想ネットワークの仮想ネットワークインタフェースとして用いて、接続処理を実行する。
【００６２】
また、ネットワーク制御部１２５は、制御サーバ１００がユーザグループ作成要求を受信すると、新たに作成されるユーザグループにより用いられる仮想マシンをサーバに作成し、新たなユーザグループにより用いられる仮想ネットワークを作成し、作成した仮想マシンの仮想マシンインタフェースと仮想ネットワークとを接続する接続処理を実行する。また、ネットワーク制御部１２５は、新たに作成されるユーザグループのユーザグループ識別情報と仮想ネットワークを一意に識別する仮想ネットワーク識別情報とを対応付けてユーザグループテーブル１１２に格納する。
【００６３】
また、ネットワーク制御部１２５は、仮想スイッチテーブル１１３と仮想ポートテーブル１１４とを管理する。具体的には、ネットワーク制御部１２５は、制御サーバ１００がユーザグループ作成要求やユーザグループ参加要求を受信すると、仮想スイッチテーブル１１３や仮想ポートテーブル１１４に新たなレコードを格納する。また、詳細については後述するように、ネットワーク制御部１２５は、制御サーバ１００がユーザグループ削除要求やユーザグループ自体要求を受信すると、仮想スイッチテーブル１１３や仮想ポートテーブル１１４からレコードを削除する。
【００６４】
すなわち、ネットワーク制御部１２５は、各サーバコンピュータ３００のハイパーバイザ上にある仮想スイッチや仮想インタフェースを制御したり管理したりする。例えば、ネットワーク制御部１２５は、制御サーバ１００がユーザグループ作成要求を受信すると、仮想スイッチ間に論理ネットワークを作成して仮想マシンの仮想インタフェースを仮想スイッチと接続する。ネットワーク制御部１２５は、制御サーバ１００がユーザグループ参加要求を受信すると、仮想デスクトップの仮想インタフェースを仮想スイッチの仮想ポートと接続する。また、ネットワーク制御部１２５は、仮想スイッチや仮想インタフェースなどの制御に併せて、仮想スイッチテーブル１１３と仮想ポートテーブル１１４とを更新する。
【００６５】
デスクトップ制御部１２６は、制御サーバ１００がユーザグループ作成要求を受信すると、新たに作成されるユーザグループにより用いられる仮想マシンをサーバに作成する。デスクトップ制御部１２６を「仮想マシン作成部」とも称する。
【００６６】
デスクトップ制御部１２６は、仮想マシンテーブル１１１を管理する。具体的には、詳細については後述するように、デスクトップ制御部１２６は、制御サーバ１００がユーザ登録情報を受信すると、新たなレコードを仮想マシンテーブル１１１に格納する。また、詳細については後述するように、デスクトップ制御部１２６は、制御サーバ１００がユーザ抹消要求を受信すると、仮想マシンテーブル１１１からレコードを削除する。
【００６７】
すなわち、デスクトップ制御部１２６は、サーバコンピュータ３００のハイパーバイザ上に仮想デスクトップのプロビジョニングを行うとともに、仮想デスクトップと、仮想デスクトップの仮想インタフェース及び仮想デスクトップを割り当てるユーザのユーザＩＤの対応を仮想マシンテーブル１１１にて管理する。なお、デスクトップ制御部１２６は、ハイパーバイザ上の仮想デスクトップを監視してユーザがログインしているか否かを管理しても良い。
【００６８】
また、デスクトップ制御部１２６は、入力受付部１２１により受信された接続要求に含まれるユーザ識別情報を検索キーとして、仮想マシンテーブル１１１から仮想マシンインタフェースＩＤを取得する。デスクトップ制御部１２６を「仮想マシンインタフェース取得部」とも称する。例えば、デスクトップ制御部１２６は、クラウド制御部１２３からユーザＩＤを受信すると、対応する仮想デスクトップの仮想インタフェースのＩＤをクラウド制御部１２３に送信する。ただし、これに限定されるものではなく、デスクトップ制御部１２６は、クラウド制御部１２３に仮想インタフェースのＩＤを送信しなくても良い。この場合、クラウド制御部１２３は、仮想マシンテーブル１１１からユーザＩＤに対応する仮想ネットワークＩＤを読み取ることで、仮想ネットワークＩＤを取得する。また、同様に、デスクトップ制御部１２６は、仮想マシン再配置要求に含まれるユーザＩＤを検索キーとして、仮想マシンテーブル１１１から仮想マシンインタフェースＩＤを取得する。
【００６９】
また、デスクトップ制御部１２６は、仮想マシン再配置要求を受信すると、ユーザＩＤにより識別されるユーザの仮想マシンを、拠点識別情報により識別される拠点に配置されたサーバに作成する。デスクトップ制御部１２６を「仮想マシン作成部」とも称する。
【００７０】
なお、制御部１２０は、既知のパーソナルコンピュータ、ワークステーション、サーバなどを利用して実現しても良い。例えば、既知のサーバに対して、図１に示した記憶部１１０と制御部１２０の各機能を搭載することによって実現しても良い。
【００７１】
［制御サーバによる処理］
以下では、シーケンス図を用いて、以下に示す処理の流れを順に説明する。具体的には、ユーザ登録要求受信時における処理の流れの一例、ユーザグループ作成要求受信時における処理の流れの一例、ユーザ追加要求受信時における処理の流れの一例、ユーザグループ参加要求受信時における処理の流れの一例、ログアウト時のユーザグループからの切断処理の流れの一例、仮想デスクトップ再配置要求受信時における処理の流れの一例について、順に説明する。
【００７２】
［ユーザ登録要求受信時における処理の流れの一例］
図７は、実施例１におけるユーザ登録要求受信時における処理の流れの一例を説明するためのシーケンス図である。図７に示す一連の処理を実行することで、ユーザにより用いられる仮想マシンがサーバコンピュータ３００に作成され、図２に示す仮想マシンテーブル１１１に新たなレコードが格納される。
【００７３】
図７に示すように、制御サーバ１００では、ユーザ端末２００からユーザ登録要求（Ｕｓｅｒ−Ｂ）を受信すると（ステップＳ１０１）、入力受付部１２１が、ユーザ登録要求に含まれるユーザＩＤ「Ｕｓｅｒ−Ｂ」と認証情報とをユーザ管理部１２２に送信する（ステップＳ１０２）。つまり、ユーザ管理部１２２によるユーザの認証処理に用いられる情報をユーザ管理部１２２に登録する。
【００７４】
また、入力受付部１２１は、仮想デスクトップを作成する作成要求である仮想デスクトップ作成要求を作成し、作成した仮想デスクトップ作成要求をクラウド制御部１２３に送信する（ステップＳ１０３）。なお、入力受付部１２１により作成された仮想デスクトップ作成要求には、ユーザ登録要求に含まれるユーザＩＤが含まれ、例えば、ユーザＩＤ「Ｕｓｅｒ−Ｂ」が含まれる。その後、クラウド制御部１２３は、受信した仮想デスクトップ作成要求をデスクトップ制御部１２６に転送する（ステップＳ１０４）。
【００７５】
そして、デスクトップ制御部１２６は、仮想デスクトップ作成要求を受信すると、受信した仮想デスクトップ作成要求に含まれるユーザＩＤについて、仮想デスクトップを任意のサーバコンピュータ３００に作成して割り当て、割り当てた仮想デスクトップのＩＤである仮想インタフェースＩＤを仮想インタフェースのＩＤと併せて仮想マシンテーブル１１１にて管理する。つまり、デスクトップ制御部１２６は、ユーザ端末２００に仮想デスクトップを提供する仮想マシンをサーバコンピュータ３００に作成する（ステップＳ１０５）。例えば、デスクトップ制御部１２６により割り当てられた仮想デスクトップの仮想デスクトップＩＤが「ＶＤ−Ｂ」であり、仮想インタフェースの仮想インタフェースＩＤが「ＶＩＦ−Ｂ」である場合を用いて説明する。この場合、図２に示すように、デスクトップ制御部１２６は、仮想マシンテーブル１１１に対して、ユーザＩＤ「Ｕｓｅｒ−Ｂ」と仮想デスクトップＩＤ「ＶＤ−Ｂ」と仮想インタフェースＩＤ「ＶＩＦ−Ｂ」とを含むレコードを格納する。
【００７６】
なお、ユーザ抹消要求受信時における処理の一例は、登録するか抹消するかという違いを除いて、図７に示したユーザ登録要求受信時における処理の流れと同様であり、説明を省略する。また、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。例えば、上記のステップＳ１０３とステップＳ１０４とを統合することで、入力受付部１２１は、仮想デスクトップ作成要求をデスクトップ制御部１２６に直接送信しても良い。
【００７７】
［ユーザグループ作成要求受信時における処理の流れの一例］
図８は、実施例１におけるユーザグループ作成要求受信時における処理の流れの一例を説明するためのシーケンス図である。図８に示す一連の処理を実行することで、ユーザグループにより用いられる仮想マシンと仮想ネットワークとが作成され、図３に示すユーザグループテーブル１１２と、図４Ａに示す仮想スイッチテーブル１１３と、図４Ｂに示す仮想ポートテーブル１１４とに格納に新たなレコードを格納される。
【００７８】
図８に示すように、制御サーバ１００では、ユーザ端末２００からユーザグループ作成要求（Ｇｒｏｕｐ−Ｙ、仮想マシンイメージＢ）を受信すると（ステップＳ２０１）、入力受付部１２１が、受信したユーザグループ作成要求をクラウド制御部１２３に転送する（ステップＳ２０２）。
【００７９】
そして、クラウド制御部１２３は、ユーザグループを作成する（ステップＳ２０３）。具体的には、クラウド制御部１２３は、ユーザグループ作成要求に含まれるユーザグループＩＤを含むレコードをユーザグループテーブル１１２に格納する。なお、この段階においては、図３に示すユーザグループテーブル１１２のうち、仮想ネットワークＩＤは空欄となっている。
【００８０】
また、クラウド制御部１２３は、ユーザグループ作成要求に含まれる仮想マシンイメージに相当する仮想マシンをサーバコンピュータ３００に作成し、作成した仮想マシンを起動させる（ステップＳ２０４）。例えば、クラウド制御部１２３は、仮想マシン「Ｂ」をサーバコンピュータ３００に作成して起動させる。その後、クラウド制御部１２３は、ネットワーク制御部１２５に仮想ネットワークの作成を要求する（ステップＳ２０５）。
【００８１】
その後、クラウド制御部１２３は、ネットワーク制御部１２５により用いられた仮想ネットワークを一意に識別する仮想ネットワークＩＤをネットワーク制御部１２５から受信し、受信した仮想ネットワークＩＤをユーザグループＩＤに対応付けて図３のユーザグループテーブル１１２に格納する。
【００８２】
また、ネットワーク制御部１２５は、ユーザグループ作成要求を受けると、仮想ネットワークを設定し（ステップＳ２０６）、設定した仮想ネットワークと仮想マシンとを接続する（ステップＳ２０７）。つまり、ネットワーク制御部１２５は、サーバコンピュータ３００の仮想スイッチ間に論理ネットワークを設定することで仮想ネットワークを設定し、設定した仮想ネットワークの仮想スイッチと、ユーザグループにより用いられる仮想マシンの仮想インタフェースとを接続する。
【００８３】
また、ネットワーク制御部１２５は、仮想ネットワークと仮想マシンとを接続すると、新たなレコードを仮想スイッチテーブル１１３と仮想ポートテーブル１１４とに格納する。例えば、クラウド制御部１２３が、サーバコンピュータ「Ｓｅｒｖｅｒ−Ａ」に、仮想インタフェースＩＤが「ＶＩＦ−Ａ」となる仮想マシンを作成した場合を用いて説明する。また、ネットワーク制御部１２５が、仮想スイッチ「ＶＳＷ−Ｘ」を用いて、仮想ネットワークＩＤが「ＶＮＷ−Ｘ」となる仮想ネットワークを設定した場合を用いて説明する。また、仮想ネットワークと仮想マシンとを接続する際に用いられた仮想スイッチのポートを一意に識別する仮想ポートＩＤが「ＶＰ−Ｘ」である場合を用いて説明する。
【００８４】
この場合、ネットワーク制御部１２５は、図４Ａに示すように、サーバコンピュータ「Ｓｅｒｖｅｒ−Ａ」と仮想スイッチＩＤ「ＶＳＷ−Ｘ」と仮想インタフェースＩＤ「ＶＩＦ−Ａ」とを含むレコードを仮想スイッチテーブル１１３に格納する。また、ネットワーク制御部１２５は、図４Ｂに示すように、仮想インタフェースＩＤ「ＶＩＦ−Ａ」と仮想ポート「ＶＰ−Ｘ」と仮想ネットワークＩＤ「ＶＮＷ−Ｘ」とを含むレコードを格納する。
【００８５】
すなわち、ネットワーク制御部１２５は、制御サーバ１００がユーザグループ作成要求を受信すると、新たに作成されるユーザグループにより用いられる仮想マシンをサーバに作成し、新たなユーザグループにより用いられる仮想ネットワークを作成し、作成した仮想マシンの仮想マシンインタフェースと仮想ネットワークとを接続する接続処理を実行する。また、ネットワーク制御部１２５は、新たに作成されるユーザグループのユーザグループ識別情報と仮想ネットワークを一意に識別する仮想ネットワーク識別情報とを対応付けてユーザグループテーブル１１２に格納する。
【００８６】
なお、ネットワーク制御部１２５により格納される情報のうち、仮想マシンが作成された「サーバコンピュータ」や仮想マシンの「仮想インタフェースＩＤ」については、仮想マシンを作成したクラウド制御部１２３により通知される。
【００８７】
また、ユーザグループを指定してユーザグループと仮想マシンとを削除する要求であるユーザグループ削除要求の受信時における処理の一例は、作成するか抹消するかという違いを除いて、図８に示したユーザグループ作成要求受信時における処理の流れと同様であり、説明を省略する。また、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。例えば、上記のステップＳ２０３をＳ２０７の後に行っても良い。
【００８８】
［ユーザ追加要求受信時における処理の流れの一例］
図９は、実施例１におけるユーザ追加要求受信時における処理の流れの一例を説明するためのシーケンス図である。図９に示す一連の処理を実行することで、制御部１２０は、図３に示すユーザグループテーブル１１２と、図５に示すグループテーブル１１５に新たなレコードを格納する。
【００８９】
図９に示すように、制御サーバ１００では、ユーザＩＤをユーザグループに追加するユーザ追加要求をユーザ端末２００から受信すると（ステップＳ３０１）、入力受付部１２１は、受信したユーザ追加要求をグループ管理部１２４に送信する。
【００９０】
そして、グループ管理部１２４が、図５の仮想ポートテーブル１１４に対して、ユーザ追加要求に含まれるユーザＩＤをユーザ追加要求に含まれるユーザグループＩＤに対応付けて格納する（ステップＳ３０２）。例えば、ユーザ追加要求にユーザＩＤ「Ｕｓｅｒ−Ａ」とユーザグループＩＤ「Ｇｒｏｕｐ−Ｙ」が含まれている場合には、グループ管理部１２４は、ユーザＩＤ「Ｕｓｅｒ−Ａ」とユーザグループＩＤ「Ｇｒｏｕｐ−Ｙ」とを含むレコードをグループテーブル１１５に格納する。
【００９１】
なお、ユーザグループを指定してユーザグループからユーザを削除するユーザ削除要求の受信時における処理の一例は、追加するか削除するかという違いを除いて、図９に示したユーザ追加要求受信時における処理の流れの一例と同様であり、説明を省略する。また、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。例えば、図９の処理において、制御サーバ１００は、ユーザＩＤに加えて認証情報を要求し、ユーザ管理部１２２における認証処理を実行し、認証成功した場合に、ユーザＩＤをグループテーブル１１５に格納するようにしても良い。
【００９２】
［ユーザグループ参加要求受信時における処理の流れの一例］
図１０は、実施例１におけるユーザグループ参加要求受信時における処理の流れの一例を説明するためのシーケンス図である。以下に説明する一連の処理を制御サーバ１００が実行することで、ユーザが参加を希望するユーザグループの仮想ネットワークと、ユーザにより用いられる仮想マシンとが、ユーザＩＤとユーザグループＩＤとに基づき接続される。
【００９３】
図１０に示すように、制御サーバ１００では、ユーザグループを指定した上でユーザの仮想デスクトップをユーザグループに対応する仮想ネットワークに接続させる要求であるユーザグループ参加要求を受信すると（ステップＳ４０１）、入力受付部１２１は、受信したユーザグループ参加要求をクラウド制御部１２３に送信する（ステップＳ４０２）。ここで、ユーザグループ参加要求には、ユーザグループに参加を要求するユーザのユーザＩＤと、参加先となるユーザグループのユーザグループＩＤとが含まれる。以下では、ユーザＩＤ「Ｕｓｅｒ−Ａ」とユーザグループＩＤ「Ｇｒｏｕｐ−Ｙ」とが含まれる場合を用いて説明する。
【００９４】
そして、クラウド制御部１２３は、仮想インタフェースを取得する（ステップＳ４０３）。例えば、クラウド制御部１２３は、ユーザグループ参加要求に含まれるユーザＩＤ「Ｕｓｅｒ−Ａ」をデスクトップ制御部１２６に送信することで、デスクトップ制御部１２６により管理される図２の仮想マシンテーブル１１１にユーザＩＤ「Ｕｓｅｒ−Ａ」に対応付けられた仮想インタフェースＩＤ「ＶＩＦ−Ａ」を取得する。すなわち、デスクトップ制御部１２６は、ユーザグループ参加要求に含まれるユーザ識別情報を検索キーとして、仮想マシンテーブル１１１から仮想マシンインタフェースＩＤを取得し、クラウド制御部１２３に返す。また、クラウド制御部１２３は、ユーザグループ参加要求に含まれるユーザグループＩＤ「Ｇｒｏｕｐ−Ｙ」に対応付けられた仮想ネットワークＩＤ「ＶＮＷ−Ｙ」を図３のユーザグループテーブル１１２から取得する。つまり、クラウド制御部１２３は、ユーザグループ参加要求に含まれるユーザグループ識別情報を検索キーとして、ユーザグループテーブル１１２から仮想ネットワークＩＤを取得する。
【００９５】
すなわち、クラウド制御部１２３は、参加を要求したユーザについて作成された仮想デスクトップの仮想インタフェースＩＤを取得し、参加先となるユーザグループの仮想ネットワークＩＤを取得する。
【００９６】
そして、クラウド制御部１２３は、取得した仮想インタフェースＩＤ「ＶＩＦ−Ａ」と仮想ネットワークＩＤ「ＶＮＷ−Ｙ」とをネットワーク制御部１２５に送信し、仮想ネットワーク接続を要求する（ステップＳ４０４）。
【００９７】
そして、ネットワーク制御部１２５は、仮想ネットワークの接続設定を行う（ステップＳ４０５）。つまり、ネットワーク制御部１２５は、クラウド制御部１２３により取得された仮想ネットワークＩＤにより識別される仮想ネットワークと、デスクトップ制御部１２６により取得された仮想マシンインタフェースＩＤにより識別される仮想マシンインタフェースとを接続する接続処理を実行する。言い換えると、ネットワーク制御部１２５は、参加を要求したユーザの仮想デスクトップの仮想インタフェースと、参加先となるユーザグループの仮想ネットワークとを接続する設定を行う。
【００９８】
例えば、ネットワーク制御部１２５は、仮想ネットワークと仮想インタフェースとの接続に用いる仮想ポートを仮想スイッチに作成する。そして、ネットワーク制御部１２５は、作成した仮想ポートの仮想ポートＩＤを仮想インタフェースＩＤと仮想ネットワークＩＤとに対応付けて仮想ポートテーブル１１４に格納する。仮想ポートＩＤが「ＶＰ−Ｙ」である場合を用いて説明する。この場合、図４Ｂに示すように、ネットワーク制御部１２５は、仮想ポートＩＤ「ＶＰ−Ｙ」と、クラウド制御部１２３から受信した仮想インタフェースＩＤ「ＶＩＦ−Ａ」と仮想ネットワークＩＤ「ＶＮＷ−Ｙ」とを対応付けて仮想ポートテーブル１１４とに格納する。なお、ここで、ネットワーク制御部１２５は、参加先となるユーザグループの仮想ネットワークを形成する仮想スイッチに仮想ポートを作成する。そして、例えば、ネットワーク制御部１２５は、仮想インタフェース「ＶＩＦ−Ａ」を、仮想ネットワーク「ＶＮＷ−Ｙ」を形成する仮想スイッチ「ＶＳＷ−Ｘ」の仮想ポート「ＶＰ−Ｙ」と接続する。
【００９９】
ここで、ユーザ追加要求を受信することで、ユーザグループ参加要求に含まれるユーザＩＤとユーザグループＩＤとを含むレコードがグループテーブル１１５に格納されている場合について説明する。この場合、グループ管理部１２４は、ユーザグループ参加要求に含まれるユーザＩＤとユーザグループＩＤとについて、リソーステーブル１１６の参加状態を「Ｔ」に更新する。例えば、グループ管理部１２４は、ユーザＩＤ「Ｕｓｅｒ−Ａ」とユーザグループＩＤ「Ｇｒｏｕｐ−Ｙ」とに対応する参加状態を「Ｔ」に更新する。
【０１００】
この結果、ユーザＩＤに基づいて、ユーザが接続操作を実行することなく、ユーザに対応する仮想ネットワークに接続が可能となる。
【０１０１】
なお、ユーザが接続する仮想ネットワークからユーザの仮想デスクトップを切断する要求であるユーザグループ退出要求の受信時における処理の一例は、参加するか切断するかという違いを除いて、図１０に示したユーザグループ参加要求受信時における処理の流れの一例と同様であり、説明を省略する。また、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。
【０１０２】
また、ここで、仮想デスクトップが複数のユーザで共用される場合について、具体的な例をあげながら補足する。この場合、制御サーバ１００がユーザグループ参加要求（Ｕｓｅｒ−Ａ、Ｇｒｏｕｐ−Ｙ）をユーザ端末２００から受信すると、クラウド制御部１２３は、ユーザのユーザＩＤに対応する仮想デスクトップ（ＶＤ−Ａ）をデスクトップ制御部１２６により管理されるユーザグループテーブル１１２にて特定する。また、クラウド制御部１２３は、ユーザ（Ｕｓｅｒ−Ａ）の仮想デスクトップの仮想インタフェース情報（ＶＩＦ−Ａ）をデスクトップ制御部１２６より管理されるユーザグループテーブル１１２から取得する。そして、取得した仮想インタフェース情報に基づき、クラウド制御部１２３は、クラウド制御部１２３により管理されるユーザグループテーブル１１２において特定されるユーザグループ（Ｇｒｏｕｐ−Ｙ）について、対応する仮想ネットワーク（ＶＮＷ−Ｙ）との接続をネットワーク制御部１２５に要求する。そして、ネットワーク制御部１２５は、ユーザの仮想デスクトップ（ＶＤ−Ａ）に該当する仮想インタフェース（ＶＩＦ−Ａ）をユーザグループに対応付けられた仮想ネットワーク（ＶＮＷ−Ｙ）の仮想スイッチ（ＶＳＷ−Ｘ）の仮想ポート（ＶＰ−Ｙ）に接続する。
【０１０３】
［ログアウト時のユーザグループからの切断処理の流れの一例］
図１１は、実施例１におけるログアウト時のユーザグループからの切断処理の流れの一例を説明するためのシーケンス図である。
【０１０４】
図１１に示すように、デスクトップ制御部１２６は、サーバコンピュータ３００に作成された仮想デスクトップを任意の手法を用いて監視する（ステップＳ５０１）。具体的には、デスクトップ制御部１２６は、仮想デスクトップからのユーザがログアウトしたかを監視する。例えば、デスクトップ制御部１２６は、定期的にログアウトの有無の確認要求を仮想デスクトップに送信し、確認要求に対する返信を受信することで、仮想デスクトップを監視する。
【０１０５】
そして、デスクトップ制御部１２６は、ログアウトしたとの監視結果を得ると、ログアウトをクラウド制御部１２３に通知する（ステップＳ５０２）。例えば、仮想インタフェースＩＤが「ＶＩＦ−Ａ」の仮想デスクトップからユーザＩＤが「Ｕｓｅｒ−Ａ」のユーザがログアウトした場合を用いて説明する。この場合、デスクトップ制御部１２６は、仮想インタフェースＩＤ「ＶＩＦ−Ａ」とユーザＩＤ「Ｕｓｅｒ−Ａ」とをクラウド制御部１２３に送信する。
【０１０６】
そして、クラウド制御部１２３は、ユーザグループの退出処理を行う（ステップＳ５０３）。具体的には、クラウド制御部１２３は、仮想ネットワーク切断をネットワーク制御部１２５に要求する。例えば、クラウド制御部１２３は、ログアウトしたユーザ「Ｕｓｅｒ−Ａ」のユーザグループ「Ｇｒｏｕｐ−Ｙ」に対応する仮想ネットワークＩＤ「ＶＮＷ−Ｙ」と、ログアウトしたユーザ「Ｕｓｅｒ−Ａ」の仮想インタフェースＩＤ「ＶＩＦ−Ａ」と、切断の指示とをネットワーク制御部１２５に送信する。
【０１０７】
そして、ネットワーク制御部１２５は、仮想ネットワーク切断設定を行う。例えば、ネットワーク制御部１２５は、ログアウトしたユーザ「Ｕｓｅｒ−Ａ」の仮想インタフェース「ＶＩＦ−Ａ」を、仮想ネットワークの仮想スイッチ「ＶＳＷ−Ｘ」の仮想ポート「ＶＰ−Ｙ」から切断する（ステップＳ５０４）。
【０１０８】
なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。
【０１０９】
［仮想デスクトップ再配置要求受信時における処理の流れの一例］
図１２は、実施例１における仮想デスクトップ再配置要求受信時における処理の流れの一例である。すなわち、仮想デスクトップや仮想マシンを提供するサーバコンピュータ３００の拠点が複数ある環境下において、ユーザによって仮想マシンや仮想デスクトップを配置するサーバコンピュータ３００の拠点が指定された場合における処理の流れの一例について説明する。以下に説明する一連の処理を制御サーバ１００が実行する結果、ユーザが使用する仮想マシンを動作させるサーバコンピュータ３００が配置されている拠点を、ユーザ自らが選択した上で、ユーザが接続する仮想ネットワークに接続可能となる。
【０１１０】
以下では、ユーザ「Ｕｓｅｒ−Ａ」により拠点「ＤＣ−Ｂ」が指定された場合を用いて説明する。言い換えると、ユーザＩＤ「Ｕｓｅｒ−Ａ」と拠点ＩＤ「ＤＣ−Ｂ」とを含む仮想デスクトップ再配置要求を制御サーバ１００が受信した場合を用いて説明する。
【０１１１】
図１２に示すように、制御サーバ１００では、仮想デスクトップ再配置要求をユーザにユーザ端末２００から受信すると（ステップＳ６０１）入力受付部１２１は、仮想デスクトップ再配置要求をクラウド制御部１２３に送信する（ステップＳ６０２）。
【０１１２】
そして、クラウド制御部１２３は、仮想デスクトップの再配置をデスクトップ制御部１２６に要求し（ステップＳ６０３）、デスクトップ制御部１２６が、仮想デスクトップ再配置要求により指定された拠点（ＤＣ−Ｂ）のサーバコンピュータ３００で動作するユーザ「Ｕｓｅｒ−Ａ」の仮想デスクトップを作成して起動する（ステップＳ６０４）。ここで、デスクトップ制御部１２６は、ユーザにより用いられている仮想マシンと同一の仮想マシンを作成する。
【０１１３】
例えば、デスクトップ制御部１２６は、ユーザ「Ｕｓｅｒ−Ａ」の仮想デスクトップ「ＶＤ−Ａ」のイメージを指定された拠点「ＤＣ−Ｂ」にあるサーバコンピュータ「Ｓｅｒｖｅｒ−Ｂ」にロードする。また、デスクトップ制御部１２６は、再配置前の仮想デスクトップ「ＶＤ−Ａ」を停止する。また、デスクトップ制御部１２６は、再配置後の仮想デスクトップ「ＶＤ−Ａ」の動作を開始させる。つまり、デスクトップ制御部１２６は、仮想マシン再配置要求を受信すると、ユーザＩＤにより識別されるユーザの仮想マシンを、拠点識別情報により識別される拠点に配置されたサーバに作成する。
【０１１４】
なお、仮想インタフェースは仮想デスクトップのイメージに固定されている。このため、仮想デスクトップ「ＶＤ−Ａ」は、仮想デスクトップ「ＶＤ−Ａ」が実行されるサーバコンピュータ３００の拠点が拠点「ＤＣ−Ｂ」に再配置されたが、仮想デスクトップ「ＶＤ−Ａ」の仮想インタフェースは仮想インタフェース「ＶＩＦ−Ａ」のままである。なお、仮想スイッチは、仮想デスクトップに固定されているわけではなく、サーバコンピュータ３００に設けられている。このため、仮想デスクトップが作成されるサーバコンピュータ３００が変更されると、仮想ネットワークを形成する仮想スイッチや仮想ポートも変わることになる。
【０１１５】
そして、クラウド制御部１２３は、仮想インタフェースを取得する（ステップＳ６０５）。例えば、クラウド制御部１２３は、ユーザ「Ｕｓｅｒ−Ａ」の仮想デスクトップ「ＶＤ−Ａ」に対応する仮想インタフェースＩＤ「ＶＩＦ−Ａ」をデスクトップ制御部１２６により管理される仮想マシンテーブル１１１から取得する。言い換えると、デスクトップ制御部１２６が、仮想マシン再配置要求に含まれるユーザＩＤを検索キーとして、仮想マシンテーブル１１１から仮想マシンインタフェースＩＤを取得し、クラウド制御部１２３は、デスクトップ制御部１２６から仮想マシンインタフェースＩＤを取得する。
【０１１６】
また、例えば、クラウド制御部１２３は、ユーザ「Ｕｓｅｒ−Ａ」の接続先となるユーザグループＩＤ「Ｇｒｏｕｐ−Ｘ」をグループ管理部１２４により管理されるリソーステーブル１１６から取得する。また、クラウド制御部１２３は、ユーザグループＩＤ「Ｇｒｏｕｐ−Ｘ」に対応する仮想ネットワーク「ＶＮＷ−Ｘ」をユーザグループテーブル１１２から取得する。つまり、クラウド制御部１２３は、仮想マシン再配置要求に含まれるユーザＩＤを検索キーとして、グループテーブル１１５からユーザグループＩＤを取得し、取得したユーザグループＩＤを検索キーとして、ユーザグループテーブル１１２から仮想ネットワークＩＤを取得する。
【０１１７】
そして、クラウド制御部１２３は、ネットワーク制御部１２５に対して仮想ネットワーク接続を要求する（ステップＳ６０６）。例えば、クラウド制御部１２３は、仮想デスクトップ「ＶＤ−Ａ」の仮想インタフェースは仮想インタフェース「ＶＩＦ−Ａ」と、ユーザグループＩＤ「Ｇｒｏｕｐ−Ｘ」に対応する仮想ネットワーク「ＶＮＷ−Ｘ」とを接続する要求を送信する。
【０１１８】
そして、ネットワーク制御部１２５は、仮想ネットワーク接続設定を行う（ステップＳ６０７）。つまり、ネットワーク制御部１２５は、仮想ネットワークと接続するための仮想ネットワークインタフェースとして、拠点識別情報により識別されるサーバに設けられた仮想ネットワークインタフェースを用いて、接続処理を実行する。
【０１１９】
例えば、ネットワーク制御部１２５は、拠点「ＤＣ−Ｂ」のサーバコンピュータ３００の仮想スイッチの仮想ポートを用いて、拠点「ＤＣ−Ｂ」に再配置された仮想デスクトップ「ＶＤ−Ａ」の仮想インタフェースは仮想インタフェース「ＶＩＦ−Ａ」と、ユーザグループＩＤ「Ｇｒｏｕｐ−Ｘ」に対応する仮想ネットワーク「ＶＮＷ−Ｘ」とを接続する。その際、ネットワーク制御部１２５は、接続に用いた仮想スイッチや仮想ポートの仮想スイッチＩＤや仮想ポートＩＤを用いて、仮想ポートテーブル１１４とグループテーブル１１５とを更新する。
【０１２０】
なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。例えば、図１２に示す例では、拠点の指定をユーザから受け付ける場合について説明したが、これに限定されるものではなく、制御サーバ１００にて決定しても良い。
【０１２１】
また、例えば、制御サーバ１００は、サーバの性能に関する性能条件とユーザ識別情報とを含む仮想マシン再配置要求を受信した場合には、デスクトップ制御部１２６が、ユーザＩＤにより識別されるユーザの仮想マシンを、性能条件を満たすサーバコンピュータ３００に作成しても良い。この場合、ネットワーク制御部１２５は、仮想ネットワークと接続するための仮想ネットワークインタフェースとして、仮想マシンが作成されたサーバコンピュータ３００に設けられた仮想ネットワークインタフェースを用いて、接続処理を実行する。
【０１２２】
より詳細な一例をあげて説明すると、制御サーバ１００は、ユーザの属するユーザグループに接続された仮想マシンと仮想デスクトップの間の遅延を最小とする要求を受け付けた場合、リソーステーブル１１６に基づいて、仮想マシンや仮想デスクトップとサーバコンピュータ３００との間を遅延が最小となる拠点を１つ選択し、選択した拠点のサーバコンピュータ３００に再配置するようにしても良い。この結果、ユーザのネットワーク遅延に対する条件を満たす拠点のサーバコンピュータでユーザの仮想デスクトップを動作させ、仮想ネットワークに接続させることが可能となる。
【０１２３】
［実施例１の効果］
上述したように、実施例１によれば、制御サーバ１００は、ユーザを識別するユーザＩＤと、ユーザに用いられる仮想マシンのインタフェースを識別する仮想マシンインタフェースＩＤとを対応付けて記憶する。また、制御サーバ１００は、ユーザグループを識別するユーザグループＩＤと、ユーザグループにより用いられる仮想ネットワークを識別する仮想ネットワークＩＤとを対応付けて記憶する。また、制御サーバ１００は、ユーザＩＤとユーザグループＩＤとを含む接続要求を受信する。また、制御サーバ１００は、受信した接続要求に含まれるユーザＩＤを検索キーとして、仮想マシン情報記憶部から仮想マシンインタフェースＩＤを取得する。また、制御サーバ１００は、受信した接続要求に含まれるユーザグループＩＤを検索キーとして、ユーザグループ情報記憶部から仮想ネットワークＩＤを取得する。また、制御サーバ１００は、仮想ネットワーク取得部により取得された仮想ネットワークＩＤにより識別される仮想ネットワークと、仮想マシンインタフェース取得部により取得された仮想マシンインタフェースＩＤにより識別される仮想マシンインタフェースとを接続する接続処理を実行する。この結果、仮想マシンと仮想ネットワークとの接続作業をユーザや運用者が簡単に実行可能となる。
【０１２４】
具体的には、仮想デスクトップを含む仮想マシンを仮想ネットワークに接続させる際の設定を、ユーザ及びユーザグループの単位で制御・管理することができ、運用者だけでなく、エンドユーザによっても簡単に設定可能となる。また、この結果、仮想デスクトップが複数のユーザで共用されていたとしても、ユーザＩＤに基づき、ユーザが仮想デスクトップを使用している間、ユーザグループに対応する仮想ネットワークへの接続／切断が可能となる。
【０１２５】
また、実施例１によれば、制御サーバ１００は、ユーザグループを作成するユーザグループ作成要求を受信する。また、制御サーバ１００は、ユーザグループ作成要求を受信すると、新たに作成されるユーザグループにより用いられる仮想マシンをサーバに作成し、新たなユーザグループにより用いられる仮想ネットワークを作成し、仮想マシンの仮想マシンインタフェースと仮想ネットワークとを接続する接続処理を実行する。また、制御サーバ１００は、新たに作成されるユーザグループのユーザグループＩＤと仮想ネットワークを識別する仮想ネットワークＩＤとを対応付けてユーザグループ情報記憶部に格納する。この結果、ユーザグループを簡単に設定可能となる。
【０１２６】
また、実施例１によれば、制御サーバ１００は、仮想マシンが作成されるサーバに設定されて仮想ネットワークを形成する仮想スイッチを識別する仮想スイッチＩＤと、仮想ネットワークの仮想ネットワークＩＤとを対応付けて記憶する。また、制御サーバ１００は、仮想ネットワーク取得部により取得された仮想ネットワークＩＤを検索キーとして仮想スイッチ情報記憶部から仮想スイッチＩＤを取得し、仮想スイッチＩＤにより識別される仮想スイッチの仮想ポートを仮想ネットワークの仮想ネットワークインタフェースとして用いて、接続処理を実行する。この結果、仮想マシンと仮想ネットワークとの接続作業をユーザや運用者が簡単に実行可能となる。
【０１２７】
また、実施例１によれば、制御サーバ１００は、拠点を識別する拠点ＩＤとユーザＩＤとを含む仮想マシン再配置要求を受信する。また、制御サーバ１００は、ユーザＩＤと、ユーザＩＤにより識別されるユーザの仮想マシンが接続している仮想ネットワークを用いるユーザグループのユーザグループＩＤとを対応付けて記憶する。また、制御サーバ１００は、仮想マシン再配置要求を受信すると、ユーザＩＤにより識別されるユーザにより用いられている仮想マシンと同一の仮想マシンを、拠点ＩＤにより識別される拠点に配置されたサーバに作成する。また、制御サーバ１００は、仮想マシン再配置要求に含まれるユーザＩＤを検索キーとして、仮想マシン情報記憶部から仮想マシンインタフェースＩＤを取得する。また、制御サーバ１００は、仮想マシン再配置要求に含まれるユーザＩＤを検索キーとして、グループテーブル１１５からユーザグループＩＤを取得し、取得したユーザグループＩＤを検索キーとして、ユーザグループ情報記憶部から仮想ネットワークＩＤを取得する。また、制御サーバ１００は、仮想ネットワークと接続するための仮想ネットワークインタフェースとして、拠点ＩＤにより識別されるサーバに設けられた仮想ネットワークインタフェースを用いて、接続処理を実行する。この結果、ユーザや運用者が簡単に仮想マシンの再配置を行うことが可能となる。
【０１２８】
また、実施例１によれば、制御サーバ１００は、サーバの性能に関する性能条件とユーザＩＤとを含む仮想マシン再配置要求を受信する。また、制御サーバ１００は、ユーザＩＤと、ユーザＩＤにより識別されるユーザの仮想マシンが接続している仮想ネットワークを用いるユーザグループのユーザグループＩＤとを対応付けて記憶する。また、制御サーバ１００は、仮想マシン再配置要求を受信すると、ユーザＩＤにより識別されるユーザにより用いられている仮想マシンと同一の仮想マシンを、性能条件を満たすサーバに作成する。また、制御サーバ１００は、仮想マシン再配置要求に含まれるユーザＩＤを検索キーとして、仮想マシン情報記憶部から仮想マシンインタフェースＩＤを取得する。また、制御サーバ１００は、仮想マシン再配置要求に含まれるユーザＩＤを検索キーとして、グループテーブル１１５からユーザグループＩＤを取得し、取得したユーザグループＩＤを検索キーとして、ユーザグループ情報記憶部から仮想ネットワークＩＤを取得する。また、制御サーバ１００は、仮想ネットワークと接続するための仮想ネットワークインタフェースとして、仮想マシン作成部により仮想マシンが作成されたサーバに設けられた仮想ネットワークインタフェースを用いて、接続処理を実行する。この結果、複数拠点に分散したクラウドコンピューティング環境においてユーザの要件を満たすコンピューティングリソースの利用と仮想ネットワークへの接続が可能となる。
【０１２９】
すなわち、仮想デスクトップ等の利用には、画面転送のレスポンス、デスクトップが利用するコンピューティングリソースや通信帯域等、さまざまな要件を満たしながら、仮想デスクトップを配置し、仮想ネットワークを構成する必要があること等から、運用者による制御装置上での複雑な設定作業が求められる。ここで、実施例１によれば、ユーザ自らが簡単に設定可能となる。
【実施例２】
【０１３０】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、その他の実施例にて実施されても良い。そこで、以下では、その他の実施例を示す。
【０１３１】
［ユーザグループ作成要求］
例えば、上述の実施例では、ユーザグループ作成要求受信時に、新たに作成されるユーザグループにより用いられる仮想マシンをサーバに作成し、作成した仮想マシンの仮想マシンインタフェースと仮想ネットワークとを接続する場合について説明した。ただし、これに限定されるものではなく、新たに作成されるユーザグループにより用いられる仮想マシンを作成しなくても良い。
【０１３２】
具体的には、クラウド制御部１２３は、制御サーバ１００によりユーザグループ作成要求が受信されたとしても、新たに作成されるユーザグループ用の仮想マシンを作成しない。その上で、ネットワーク制御部１２５は、制御サーバ１００によりユーザグループ作成要求が受信されると、新たに作成されるユーザグループにより用いられる仮想ネットワークを作成し、新たなユーザグループのユーザグループ識別情報と仮想ネットワークの仮想ネットワーク識別情報とを対応付けてユーザグループテーブル１１２に格納しても良い。
【０１３３】
この場合、その後、上述したユーザ追加要求受信における処理やユーザグループ参加要求受信時における処理、ユーザ登録要求受信における処理が実行されることで、ユーザグループに含まれるユーザの仮想マシンが、それぞれ仮想ネットワークと接続されることで、仮想ネットワークを介してユーザの仮想マシン各々が相互に接続されることになる。この結果、共用サーバとしての仮想マシンを用いることなく、仮想ネットワークを介してユーザの仮想デスクトップがＰ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）で接続することが可能となる。
【０１３４】
なお、制御サーバ１００は、１つ又は複数のユーザＩＤが含まれているユーザグループ作成要求に場合には、ユーザグループ作成要求に含まれているユーザＩＤに対応する仮想マシン各々の仮想マシンインタフェースと、作成した仮想ネットワークとを接続する接続処理を、仮想ネットワークを作成した後に一連の処理として実行しても良い。
【０１３５】
また、制御サーバ１００は、仮想マシンのイメージがユーザグループ作成要求に含まれている場合には、実施例１にて説明したように、仮想マシンをサーバに作成し、作成した仮想マシンの仮想マシンインタフェースと仮想ネットワークしても良い。一方、例えば、制御サーバ１００は、仮想マシンのイメージがユーザグループ作成要求に含まれていない場合には、上述したように、共有サーバとしての仮想マシンを作成することなく、仮想ネットワークを作成するに留めても良い。
【０１３６】
［システム構成］
また、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報（図１〜図１２）については、特記する場合を除いて任意に変更することができる。
【０１３７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、図１に示す例では、記憶部１１０に記憶されたテーブルの一部又は全てを制御サーバ１００から独立した記憶装置に格納した上で、制御サーバ１００と記憶装置とがネットワークを介して接続されるようにしても良い。
【０１３８】
［プログラム］
図１３は、一連の処理を実行するためのプログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。図１３に例示するように、コンピュータ３０００は、例えば、メモリ３０１０と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０２０と、ハードディスクドライブ３０８０と、ネットワークインタフェース３０７０とを有する。コンピュータ３０００の各部はバス３１００によって接続される。
【０１３９】
メモリ３０１０は、図１３に例示するように、ＲＯＭ３０１１及びＲＡＭ３０１２を含む。ＲＯＭ３０１１は、例えば、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）等のブートプログラムを記憶する。
【０１４０】
ここで、図１３に例示するように、ハードディスクドライブ３０８０は、例えば、ＯＳ３０８１、アプリケーションプログラム３０８２、プログラムモジュール３０８３、プログラムデータ３０８４を記憶する。すなわち、開示の技術に係るプログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール３０８３として、例えばハードディスクドライブ３０８０に記憶される。具体的には、上記実施例で説明した制御部１２０の各部と同様の情報処理を実行する手順各々が記述されたプログラムモジュールが、ハードディスクドライブ３０８０に記憶される。
【０１４１】
また、上記実施例で説明した記憶部１１０の各テーブルに記憶されるデータのように、制御プログラムによる情報処理に用いられるデータは、プログラムデータ３０８４として、例えばハードディスクドライブ３０８０に記憶される。そして、ＣＰＵ３０２０が、ハードディスクドライブ３０８０に記憶されたプログラムモジュール３０８３やプログラムデータ３０８４を必要に応じてＲＡＭ３０１２に読み出し、各種の手順を実行する。
【０１４２】
なお、プログラムに係るプログラムモジュール３０８３やプログラムデータ３０８４は、ハードディスクドライブ３０８０に記憶される場合に限られない。例えば、プログラムモジュール３０８３やプログラムデータ３０８４は、着脱可能な記憶媒体に記憶されても良い。この場合、ＣＰＵ３０２０は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、制御プログラムに係るプログラムモジュール３０８３やプログラムデータ３０８４は、ネットワーク（ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等）を介して接続された他のコンピュータに記憶されても良い。この場合、ＣＰＵ３０２０は、ネットワークインタフェースを介して他のコンピュータにアクセスすることで各種データを読み出す。
【０１４３】
［その他］
なお、本実施例で説明したプログラムは、インターネットなどのネットワークを介して配布することができる。また、プログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【０１４４】
１００      制御サーバ
１１０      記憶部
１１１      仮想マシンテーブル
１１２      ユーザグループテーブル
１１３      仮想スイッチテーブル
１１４      仮想ポートテーブル
１１５      グループテーブル
１１６      リソーステーブル
１２０      制御部
１２１      入力受付部
１２２      ユーザ管理部
１２３      クラウド制御部
１２４      グループ管理部
１２５      ネットワーク制御部
１２６      デスクトップ制御部
２００      ユーザ端末
３００      サーバコンピュータ
３０１      ハイパーバイザ
３０２      仮想スイッチ
３０３      仮想ポート
３０４      仮想マシン
３０５      仮想ＩＦ
３０６      仮想デスクトップ
【図１】
0005682932.tif 000002
【図２】
0005682932.tif 000003
【図３】
0005682932.tif 000004
【図４Ａ】
0005682932.tif 000005
【図４Ｂ】
0005682932.tif 000006
【図５】
0005682932.tif 000007
【図６】
0005682932.tif 000008
【図７】
0005682932.tif 000009
【図８】
0005682932.tif 000010
【図９】
0005682932.tif 000011
【図１０】
0005682932.tif 000012
【図１１】
0005682932.tif 000013
【図１２】
0005682932.tif 000014
【図１３】
0005682932.tif 000015