(57)【要約】【課題】仮想デスクトップ環境利用時のコストを低減するとともに接続時間を低減することができるようにする。【解決手段】本発明によるユーザ環境退避制御システムは、仮想PC上でユーザ毎の仮想デスクトップ環境を実現するためのユーザ環境情報を退避させるユーザ環境退避制御システムであって、ユーザ毎の優先度を決定する優先度決定手段と、前記優先度決定手段によって決定された優先度に従って、仮想PC割当サーバによって割り当てられている仮想PCのうち、前記ユーザ環境情報の退避対象とする仮想PCを検索する仮想PC検索手段と、前記仮想PC検索手段の検索結果に基づいて、前記仮想PC割当サーバに、キャッシュを用いて保持されている前記ユーザ環境情報を前記キャッシュから退避させるユーザ環境情報退避制御手段とを備えたことを特徴とする。【選択図】図１３
2011134219.tif 000002
【特許請求の範囲】
【請求項１】
仮想PC上でユーザ毎の仮想デスクトップ環境を実現するためのユーザ環境情報を退避させるユーザ環境退避制御システムであって、
ユーザ毎の優先度を決定する優先度決定手段と、
前記優先度決定手段によって決定された優先度に従って、仮想PC割当サーバによって割り当てられている仮想PCのうち、前記ユーザ環境情報の退避対象とする仮想PCを検索する仮想PC検索手段と、
前記仮想PC検索手段の検索結果に基づいて、前記仮想PC割当サーバに、キャッシュを用いて保持されている前記ユーザ環境情報を前記キャッシュから退避させるユーザ環境情報退避制御手段とを備えた
ことを特徴とするユーザ環境退避制御システム。
【請求項２】
前記仮想PC検索手段は、前記仮想PC割当サーバによって割り当てられている仮想PCのうち、ユーザ端末と非接続状態であり且つ優先度が最も低いユーザに割り当てられている仮想PCを、前記ユーザ環境情報の退避対象とする仮想PCとして検索し、
前記ユーザ環境情報退避制御手段は、前記仮想PC検索手段の検索結果に基づいて、前記仮想PC割当サーバに、前記ユーザ端末と非接続状態であり且つ優先度が最も低いユーザに割り当てられている仮想PCに対応する前記ユーザ環境情報を前記キャッシュから退避させる
請求項１記載のユーザ環境退避制御システム。
【請求項３】
ユーザの入退室情報を管理する入退室管理手段を備え、
前記優先度決定手段は、前記入退室管理手段から入力した前記入退室情報に基づいて、ユーザ毎の優先度を決定する
請求項１又は請求項２記載のユーザ環境退避制御システム。
【請求項４】
ユーザの人事情報を管理する人事情報管理手段を備え、
前記優先度決定手段は、前記人事情報管理手段から入力した前記人事情報に基づいて、ユーザ毎の優先度を決定する
請求項１から請求項３のうちのいずれか１項に記載のユーザ環境退避制御システム。
【請求項５】
前記仮想PC検索手段は、ユーザ端末から仮想PCへの新たな接続要求があったときに、仮想PC割当サーバによって新たに割り当て可能な空き仮想PCがない場合に、前記ユーザ環境情報の退避対象とする仮想PCを検索する
請求項１から請求項４のうちのいずれか１項に記載のユーザ環境退避制御システム。
【請求項６】
前記仮想PC検索手段は、前記優先度決定手段によって決定された優先度の値が所定の閾値に達したときに、優先度が前記所定の閾値に達したユーザに割り当てられている仮想PCを、前記ユーザ環境情報の退避対象とする仮想PCとして検索する
請求項１から請求項５のうちのいずれか１項に記載のユーザ環境退避制御システム。
【請求項７】
仮想PC上でユーザ毎の仮想デスクトップ環境を実現するためのユーザ環境情報を退避させるユーザ環境退避制御装置であって、
ユーザ毎の優先度に従って、仮想PC割当サーバによって割り当てられている仮想PCのうち、前記ユーザ環境情報の退避対象とする仮想PCを検索する仮想PC検索手段と、
前記仮想PC検索手段の検索結果に基づいて、前記仮想PC割当サーバに、キャッシュを用いて保持されている前記ユーザ環境情報を前記キャッシュから退避させるユーザ環境情報退避制御手段とを備えた
ことを特徴とするユーザ環境退避制御装置。
【請求項８】
仮想PC上でユーザ毎の仮想デスクトップ環境を実現するためのユーザ環境情報を退避させるユーザ環境退避制御方法であって、
ユーザ毎の優先度を決定し、
決定した優先度に従って、仮想PC割当サーバによって割り当てられている仮想PCのうち、前記ユーザ環境情報の退避対象とする仮想PCを検索し、
前記ユーザ環境情報の退避対象とする仮想PCの検索結果に基づいて、前記仮想PC割当サーバに、キャッシュを用いて保持されている前記ユーザ環境情報を前記キャッシュから退避させる
ことを特徴とするユーザ環境退避制御方法。
【請求項９】
仮想PC上でユーザ毎の仮想デスクトップ環境を実現するためのユーザ環境情報を退避させるためのユーザ環境退避制御用プログラムであって、
コンピュータに、
ユーザ毎の優先度に従って、仮想PC割当サーバによって割り当てられている仮想PCのうち、前記ユーザ環境情報の退避対象とする仮想PCを検索する処理と、
前記ユーザ環境情報の退避対象とする仮想PCの検索結果に基づいて、前記仮想PC割当サーバに、キャッシュを用いて保持されている前記ユーザ環境情報を前記キャッシュから退避させる処理とを
実行させるためのユーザ環境退避制御用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想デスクトップ環境利用時のユーザ環境情報の退避制御を行うユーザ環境退避制御システム、ユーザ環境退避制御装置、ユーザ環境退避制御方法、及びユーザ環境退避制御用プログラムに関する。
【背景技術】
【０００２】
ユーザが使用するクライアント端末に必要最小限の処理をさせて、その他の処理をサーバ側に集中させるシンクライアントと呼ばれる手法が用いられている。例えば、特許文献１には、シンクライアントサーバとシンクライアント端末との間に、接続先設定テーブルと接続状態管理テーブルとを備えたセッション管理サーバを設けたシンクライアントシステムが記載されている。特許文献１に記載されたシンクラインアントシステムでは、ユーザが意識することなく、目的に応じたシンクライアントサーバへの自動接続や、セッションの再接続による業務の再開、シンクライアントサーバ側にあるオペレーティングシステム（以下、単にOSという）の起動及びシャットダウンを行うことを可能としている。
【０００３】
また、シンクライアントを実現するための手法の１つとして、ソフトウェア的に仮想の処理系を実現する仮想PC方式が用いられている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2007-334686号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
昨今、Desktop as a Service（DaaS）が求められている中、出願人は、仮想PC方式を用いたシンクライアントシステムとして、Virtual PC Center等のシステムを提案している。しかし、そのような既存仮想PC型シンクライアントシステム（Virtual Desktop Infrastructure（VDI環境）を実現したシステム）では、システムの構成が複雑で、設備費用が高くなってしまうため、サービス費が高くなる傾向にある。そのため、設備費用（ハードウェア及びソフトウェアにかかるコスト）や運用費用を削減できるようにすることが求められている。
【０００６】
また、上記に示した既存システムでは、ユーザ毎の仮想PC領域を保持する必要があり、その仮想PC領域には、ユーザ毎のOSや、アプリケーション（以下、単にAPという）、データ（ユーザデータ）等一式が保存されている。そのため、設備的には高価な高速ストレージ設備（SAN：Storage Area Network）が必要となり、また、テナント毎やユーザ毎等、環境毎の管理も必要となり、運用コストの増大が予想される。
【０００７】
一方、上記のようなコスト面の課題をある程度解決するものとして、RingCube社が提供するvDesk等の「デスクトップ仮想化」製品（仮想デスクトップシステム）が提案されている。そのような仮想デスクトップシステムでは、OS上にデスクトップ仮想化クライアントを実現し、デスクトップ仮想化サーバと連携することで、OSの管理とAP及びデータの管理とを分離することができ、以下に示すようなメリットがある。
【０００８】
（1）OSに個人設定が含まれないので、個人のユーザ毎に仮想PC領域を作成する必要がない。そのため、管理対象の仮想PCの数を全ユーザ数分として考える必要はなく、全ユーザのうち現在同時接続している同時接続数分で考えればよいので、サービスプロバイダとしては、ストレージ容量やライセンス料等の削減が可能となる 
【０００９】
（2）OSのパッチ適用を行う等の管理コストにおいて、個人のユーザ毎の環境を考慮する必要がなくなり、一括してOSの管理を行うことができる。そのため、全ユーザに対しての対応が容易となる 
【００１０】
しかし、上記のような仮想デスクトップシステムでは、ユーザ環境を実現する情報（以下、ユーザ環境情報ともいう。具体的には、AP及びデータ。）とOSとを分離することによって、実際のPC（仮想PCではなく物理的なPC）を用いた環境と比較して、立ち上げ時間（接続時間）が遅くなる可能性があり課題となっている。すなわち、ユーザ環境情報であるAP及びデータがOSとは別ストレージに保存されるので、ユーザがOSにRDP接続する度に、ユーザ環境情報（AP及びデータ）をストレージからOS側にダウンロードする必要がある。そのため、上記のようなVDI環境では、実際のPCを用いた環境と比較した場合に接続時間がかかり、利便性が損なわれる可能性がある。
【００１１】
上記のような接続時間の課題を改善するために、キャッシュを用いてユーザ環境情報を保持することが考えられる。しかし、常にユーザ環境情報を保存すると、個人のユーザ毎に仮想PC領域を作成する場合と同じになってしまい、コスト削減の効果がなくなり、OSの管理とユーザ環境情報の管理とを分離した意味がなくなってしまう。
【００１２】
そこで、本発明は、仮想デスクトップ環境利用時のコストを低減するとともに接続時間を低減することができるユーザ環境退避制御システム、ユーザ環境退避制御装置、ユーザ環境退避制御方法、及びユーザ環境退避制御用プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明によるユーザ環境退避制御システムは、仮想PC上でユーザ毎の仮想デスクトップ環境を実現するためのユーザ環境情報を退避させるユーザ環境退避制御システムであって、ユーザ毎の優先度を決定する優先度決定手段と、優先度決定手段によって決定された優先度に従って、仮想PC割当サーバによって割り当てられている仮想PCのうち、ユーザ環境情報の退避対象とする仮想PCを検索する仮想PC検索手段と、仮想PC検索手段の検索結果に基づいて、仮想PC割当サーバに、キャッシュを用いて保持されているユーザ環境情報をキャッシュから退避させるユーザ環境情報退避制御手段とを備えたことを特徴とする。
【００１４】
本発明によるユーザ環境退避制御装置は、仮想PC上でユーザ毎の仮想デスクトップ環境を実現するためのユーザ環境情報を退避させるユーザ環境退避制御装置であって、ユーザ毎の優先度に従って、仮想PC割当サーバによって割り当てられている仮想PCのうち、ユーザ環境情報の退避対象とする仮想PCを検索する仮想PC検索手段と、仮想PC検索手段の検索結果に基づいて、仮想PC割当サーバに、キャッシュを用いて保持されているユーザ環境情報をキャッシュから退避させるユーザ環境情報退避制御手段とを備えたことを特徴とする。
【００１５】
本発明によるユーザ環境退避制御方法は、仮想PC上でユーザ毎の仮想デスクトップ環境を実現するためのユーザ環境情報を退避させるユーザ環境退避制御方法であって、ユーザ毎の優先度を決定し、決定した優先度に従って、仮想PC割当サーバによって割り当てられている仮想PCのうち、ユーザ環境情報の退避対象とする仮想PCを検索し、ユーザ環境情報の退避対象とする仮想PCの検索結果に基づいて、仮想PC割当サーバに、キャッシュを用いて保持されているユーザ環境情報をキャッシュから退避させることを特徴とする。
【００１６】
本発明によるユーザ環境退避制御用プログラムは、仮想PC上でユーザ毎の仮想デスクトップ環境を実現するためのユーザ環境情報を退避させるためのユーザ環境退避制御用プログラムであって、コンピュータに、ユーザ毎の優先度に従って、仮想PC割当サーバによって割り当てられている仮想PCのうち、ユーザ環境情報の退避対象とする仮想PCを検索する処理と、ユーザ環境情報の退避対象とする仮想PCの検索結果に基づいて、仮想PC割当サーバに、キャッシュを用いて保持されているユーザ環境情報をキャッシュから退避させる処理とを実行させるためのものである。
【発明の効果】
【００１７】
本発明によれば、仮想デスクトップ環境利用時のコストを低減するとともに接続時間を低減することができる。
【図面の簡単な説明】
【００１８】
【図１】一般的な仮想デスクトップシステムの構成例を示すブロック図である。
【図２】本発明によるユーザ環境退避制御方法を用いた仮想デスクトップシステムの構成例を示すブロック図である。
【図３】セッション管理サーバが記憶するセッション管理テーブルの例を示す説明図である。
【図４】セッション管理サーバの機能構成例を示す機能ブロック図である。
【図５】優先度決定サーバが記憶する優先度管理テーブルの例を示す説明図である。
【図６】優先度決定サーバの機能構成例を示す機能ブロック図である。
【図７】セッション管理サーバが実行する処理例を説明するためのステートマシン図である。
【図８】クリア後のセッション管理テーブルの例を示す説明図である。
【図９】更新後の優先度管理テーブルの例を示す説明図である。
【図１０】更新後のセッション管理テーブルの例を示す説明図である。
【図１１】優先度の決定方法の例を示す説明図である。
【図１２】第2の実施形態におけるセッション管理サーバが実行する処理例を説明するためのステートマシン図である。
【図１３】ユーザ環境退避制御システムの最小の構成例を示すブロック図である。
【発明を実施するための形態】
【００１９】
実施形態1．
以下、本発明の第1の実施形態を図面を参照して説明する。本発明によるユーザ環境退避制御方法を用いた仮想デスクトップシステムは、VDI環境で仮想デスクトップシステムを採用した場合に発生する接続時間が長くなるという課題を解決するために、回避策としてユーザ環境情報をキャッシュを用いて保持するように制御する。また、そのようにユーザ環境情報を保持するように構成した場合に、退避対象のユーザ環境情報の選定をユーザの勤務状況や勤務予定、役職等の情報に基づいて優先度付けし、効率的にユーザ環境情報を退避するように制御する。
【００２０】
まず、一般的な仮想デスクトップシステムの構成例について説明する。図1は、一般的な仮想デスクトップシステムの構成例を示すブロック図である。図1に示すように、仮想デスクトップシステムは、シンクライアント100と、セッション管理サーバ200と、仮想PCサーバ300と、デスクトップ仮想化サーバ500とを含む。なお、これらシンクライアント100、セッション管理サーバ200、仮想PCサーバ300、及びデスクトップ仮想化管理サーバ500は、インターネット等の通信ネットワークを介して接続される。
【００２１】
セッション管理サーバ200は、シンクライアント100と仮想化クライアント320との間に確立されるセッションを管理するためのセッション管理テーブル210を備える。そして、セッション管理サーバ200は、セッション管理テーブル210を用いて、仮想PCとユーザとの対応関係を管理している。なお、セッション管理サーバ200は、具体的には、セッション管理テーブル210を磁気ディスク装置や光ディスク装置等の記憶装置に記憶して管理する。
【００２２】
仮想PCサーバ300は、OS領域の情報（具体的には、OSと仮想化クライアントとの情報）を保存しているSAN（ストレージ装置）400と接続されている。仮想PCサーバ300上には、SAN400から読み込んだOS310とデスクトップ仮想化クライアント320とが展開され、仮想PCが実現される。なお、本実施形態では、仮想PCサーバ300上に仮想化クライアント320が展開される等の表現を用いるが、具体的には、仮想PCサーバ300が、SAN400から情報を読み込み、読み込んだ情報に基づいて、仮想化クライアント320を実現するための処理を実行する。
【００２３】
デスクトップ仮想化サーバ500は、ユーザ環境情報（AP（アプリケーション）とデータ（ユーザデータ））を保存しているNAS（ストレージ装置）600と接続されている。仮想PCサーバ300に展開されるデスクトップ仮想化クライアント320は、デスクトップ仮想化サーバ500を介してユーザ環境情報300を要求する。また、仮想化クライアント320（具体的には、仮想PCサーバ300）は、要求したユーザ環境情報330（図1に示す例では、ユーザBに対応するユーザ環境情報）を、デスクトップ仮想化管理サーバ500を介してNAS600からダウンロードする。そして、仮想PCサーバ300は、ダウンロードしたユーザ環境情報330（APとデータ）をデスクトップ仮想化クライアント320上に展開する。
【００２４】
次に、本発明によるユーザ環境退避制御方法を用いた仮想デスクトップシステムの構成例について説明する。図2は、本発明によるユーザ環境退避制御方法を用いた仮想デスクトップシステムの構成例を示すブロック図である。図2に示すように、仮想デスクトップシステムは、図1で示す構成要素に加えて、優先度決定サーバ700、入退管理システム800、及び社員情報管理システム900を含む。また、図2に示すように、優先度決定サーバ700は、入退管理システム800及び社員情報管理システム900と接続されている。また、図2に示す仮想デスクトップシステムでは、セッション管理サーバ200の機能が、図1で示したセッション管理サーバ200の機能と異なる。
【００２５】
シンクライアント100は、仮想デスクトップサービスを利用するユーザが使用する端末であり、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理端末によって実現される。なお、図2では、１つのシンクライアント100を示しているが、仮想デスクトップシステムは、複数のシンクライアント100を含む。
【００２６】
入退管理システム800は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置によって実現される。入退管理システム800は、会社等の組織内において社員（例えば、ユーザ）の勤務状態や状況を管理する機能を備える。例えば、入退管理システム800は、各種入退室機器（例えば、フラッパーゲート）に接続されるとともに、各社員の入退室状況を管理するためのデータベースを備えている。そして、入退管理システム800は、各種入退室機器からの入力信号に基づいてデータベースを更新することによって、各社員の勤務状態や状況を管理する。また、入退管理システム800は、所定のタイミングで（例えば、優先度決定サーバ700からの要求に応じて、又は所定期間毎に）、データベースから入退室情報を抽出し、優先度決定サーバ700に送信する機能を備える。
【００２７】
社員情報管理システム900は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置によって実現される。社員情報管理システム900は、社員（例えば、ユーザ）の役職等の情報を管理する機能を備える。例えば、社員情報管理システム900は、各社員の役職等を含む人事情報を記憶するデータベースを備えている。そして、社員情報管理システム900は、人事担当者等の入力操作に従ってデータベースを更新することによって、各社員の役職等の情報を管理する。また、社員情報管理システム900は、所定のタイミングで（例えば、優先度決定サーバ700からの要求に応じて、又は所定期間毎に）、データベースから人事情報を抽出し、優先度決定サーバ700に送信する機能を備える。
【００２８】
優先度決定サーバ700は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置によって実現される。優先度決定サーバ700は、仮想デスクトップサービスを利用するユーザのユーザ環境情報をキャッシュを用いて保持する場合に、いずれのユーザのユーザ環境情報を優先して保持するか（以下、単に優先度という）を決定する機能を備える。本実施形態では、優先度決定サーバ700は、入退管理システム800及び社員情報管理システム900と接続されており、優先度決定に必要な情報（入退室情報や人事情報）を随時共有しながら、優先度を決定する。
【００２９】
また、優先度決定サーバ700は、各ユーザの優先度を管理するための優先度管理テーブル710を備える。なお、優先度決定サーバ700は、具体的には、優先度管理テーブル710を磁気ディスク装置や光ディスク装置等の記憶装置に記憶している。本実施形態では、優先度決定サーバ700は、ユーザID、優先度、及び割り当て仮想PC-IDを対応付けて含む優先度管理テーブル710を記憶し、各ユーザの優先度を管理している。
【００３０】
また、優先度決定サーバ700は、セッション管理サーバ200とも接続されており、セッション管理サーバ200に、通信ネットワークを介して優先度情報を提供する機能を備える。
【００３１】
セッション管理サーバ200は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置によって実現される。セッション管理サーバ200は、シンクライアント100と仮想化クライアント320との間に確立されるセッションを管理するためのセッション管理テーブル210を備える。そして、セッション管理サーバ200は、セッション管理テーブル210を用いて、仮想PCとユーザとの対応関係を管理している。なお、セッション管理サーバ200は、具体的には、セッション管理テーブル210を磁気ディスク装置や光ディスク装置等の記憶装置に記憶して管理する。なお、本実施形態では、仮想PCは、仮想PCサーバ300上にOS310及び仮想化クライアント320が展開されることによって構築される。具体的には、仮想PCサーバ300は、OS310及び仮想化クライアント320の情報をSAN400から読み出して所定の記憶領域に展開し管理する処理を行う。
【００３２】
本実施形態では、セッション管理サーバ200は、優先度決定サーバ700によって決定された優先度に従って、シンクライアント100に割り当て可能な飽き仮想PCを検索して、シンクライアント100に通知する機能を備える。また、セッション管理サーバ200は、優先度決定サーバ700によって決定された優先度に従って、セッション管理テーブル210を随時更新する機能を備える。具体的には、セッション管理サーバ200は、優先度決定サーバ700から受信した優先度情報を、セッション管理テーブル210に随時追記して管理している。
【００３３】
図3は、セッション管理サーバ200が記憶するセッション管理テーブル210の例を示す説明図である。図3に示すように、セッション管理サーバ200は、仮想PC-ID211と、仮想PC-IPアドレス212と、ユーザID213と、ステータス214と、優先度215とを対応付けて含むセッション管理テーブル210を記憶している。
【００３４】
仮想PC-ID211は、仮想PCサーバ300上に展開される仮想PCを識別するための識別子である。また、仮想PC-IPアドレス212は、仮想PCにアクセスするためのIPアドレスである。また、ユーザID213は、その仮想PCが現在割り当てられているユーザを識別するための識別子である。すなわち、ユーザID213を確認することによって、その仮想PCが現在いずれのユーザに対して割り当てられているかが分かる。
【００３５】
なお、仮想PC-ID211、仮想PC-IPアドレス212、及びユーザID213は、図1に示した一般的な仮想デスクトップシステムにおけるセッション管理テーブル210でも必要とされる情報であり、ユーザシンクライアント100からの接続要求に対して接続可能な仮想PCのIPアドレスを通知する際に用いられる。
【００３６】
また、ユーザID213は、その仮想PCにユーザが割り当てられ、ユーザ環境情報が仮想PC上にダウンロードされた状態となったときに、セッション管理テーブル210に追記される。つまり、その仮想PCにユーザが割り当てられていない状態であれば、ユーザID213は空欄（Null）となる。
【００３７】
テータス214は、割り当てられたユーザのシンクライアント100が仮想PCに現在接続中（ログイン中）であるか否かを示している。なお、ステータス214がログインしていない状態（非接続状態）を示していれば、仮想PCサーバ300において、そのユーザに対するユーザ環境情報がキャッシュを用いて保持されている状態となっていることになる。例えば、シンクライアント100が一端に仮想PCに接続した後にログオフした場合には、ステータス214が非接続状態となり、そのシンクライアント100のユーザに対するユーザ環境情報がキャッシュを用いて保持されている状態となる。
【００３８】
優先度215は、その仮想PCが割り当てられているユーザの優先度である。なお、図3に示す例では、優先度215として設定されている値が小さくなるほど優先度が高いことを示しており、値が大きくなるほど優先度が低い。
【００３９】
図4は、セッション管理サーバ200の機能構成例を示す機能ブロック図である。図4に示すように、セッション管理サーバ200は、接続要求受信手段221、空き仮想PC検索手段222、非接続仮想PC検索手段223、ユーザ環境退避指示手段224、ユーザ環境退避完了通知受信手段225、セッション管理テーブルクリア手段226、空き仮想PC通知手段227、優先度要求手段228、優先度通知受信手段229、及びセッション管理テーブル更新手段230を含む。
【００４０】
接続要求受信手段221は、具体的には、プログラムに従って動作する情報処理装置のCPU及びネットワークインタフェース部によって実現される。接続要求受信手段221は、シンクライアント100から、仮想PCへの接続要求を、通信ネットワークを介して受信する機能を備える。
【００４１】
空き仮想PC検索手段222は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。空き仮想PC検索手段222は、接続要求受信手段221が接続要求を受信したときに、セッション管理テーブル210に基づいて、仮想PCサーバ300上に展開されている仮想PCのうち、いずれのユーザも割り当てられていない空き仮想PCを検索する機能を備える。具体的には、空き仮想PC検索手段222は、図3に示すセッション管理テーブル210のユーザID213が空欄（Null）となっている仮想PCがあるか否かを検索する。
【００４２】
非接続仮想PC検索手段223は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。非接続仮想PC検索手段223は、空き仮想PC検索手段222によって空き仮想PCがないと判定されたときに、セッション管理テーブル210に基づいて、仮想PCサーバ300上に展開されている仮想PCのうち、非接続状態となっている仮想PCを検索する機能を備える。具体的には、非接続仮想PC検索手段223は、図3に示すセッション管理テーブル210のステータス214が非接続となっている仮想PCがあるか否かを検索する。
【００４３】
また、非接続仮想PC検索手段223は、非接続状態となっている仮想PCが複数存在する場合には、優先度が最も低い仮想PCを検索する機能を備える。具体的には、非接続仮想PC検索手段223は、図3に示すセッション管理テーブル210の優先度215の値が最も大きい仮想PCを検索する。
【００４４】
ユーザ環境退避指示手段224は、具体的には、プログラムに従って動作する情報処理装置のCPU及びネットワークインタフェース部によって実現される。ユーザ環境退避指示手段224は、非接続仮想PC検索手段223によって検索された仮想PCのユーザ環境情報をキャッシュ上から退避する旨を指示するユーザ環境退避指示情報を、通信ネットワークを介して仮想PCサーバ300に送信する機能を備える。具体的には、ユーザ環境退避指示手段224は、非接続仮想PC検索手段223の検索結果に基づいて、非接続状態となっている仮想PCが割り当てられているユーザ（複数存在する場合には、優先度が最も低いユーザ）に対するユーザ環境情報の退避を指示する指示情報を送信する。
【００４５】
ユーザ環境退避完了通知受信手段225は、具体的には、プログラムに従って動作する情報処理装置のCPU及びネットワークインタフェース部によって実現される。ユーザ環境退避完了通知受信手段225は、仮想PCサーバ300から、ユーザ環境情報の退避を完了した旨のユーザ環境退避完了通知を、通信ネットワークを介して受信する機能を備える。
【００４６】
セッション管理テーブルクリア手段226は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。セッション管理テーブルクリア手段226は、受信したユーザ環境退避完了通知に基づいて、セッション管理テーブル210が記憶する仮想PCの情報のうち、ユーザ環境情報の退避を完了した情報をクリアする機能を備える。具体的には、セッション管理テーブルクリア手段226は、ユーザ環境情報を退避した仮想PCのユーザID213、ステータス214及び優先度215の値をクリアする。
【００４７】
空き仮想PC通知手段227は、具体的には、プログラムに従って動作する情報処理装置のCPU及びネットワークインタフェース部によって実現される。空き仮想PC通知手段227は、空き仮想PCを指定する空き仮想PC通知を、通信ネットワークを介してシンクライアント100に送信する機能を備える。この場合、空き仮想PC検索手段222によって空き仮想PCが検索された場合には、空き仮想PC通知手段227は、空き仮想PC検索手段222によって検索された空き仮想PCを指定する空き仮想PC通知を送信する。また、空き仮想PC検索手段222によって空き仮想PCが検索されなかった場合には、空き仮想PC通知手段227は、ユーザ環境情報を退避されセッション管理テーブルクリア手段226によって情報クリアされた仮想PCを指定する空き仮想PC通知を送信する。
【００４８】
なお、空き仮想PC通知手段227は、具体的には、指定する仮想PCに対応する仮想PC-IPアドレス212を優先度管理テーブル710から抽出し、抽出した仮想PC-IPアドレス212を含む空き仮想PC通知を送信すればよい。
【００４９】
優先度要求手段228は、具体的には、プログラムに従って動作する情報処理装置のCPU及びネットワークインタフェース部によって実現される。優先度要求手段228は、ユーザの優先度情報の送信を要求する優先度要求を、通信ネットワークを介して優先度決定サーバ700に送信する機能を備える。具体的には、優先度要求手段228は、優先度の要求対象のユーザIDを含む優先度要求を送信する。
【００５０】
優先度通知受信手段229は、具体的には、プログラムに従って動作する情報処理装置のCPU及びネットワークインタフェース部によって実現される。優先度通知受信手段229は、ユーザの優先度を通知する優先度通知を、通信ネットワークを介して優先度決定サーバ700から受信する機能を備える。具体的には、優先度通知受信手段229は、ユーザIDと優先度とを対応付けて含む優先度通知を受信する。
【００５１】
セッション管理テーブル更新手段230は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。セッション管理テーブル更新手段230は、受信した優先度通知に基づいて、セッション管理テーブル210を更新する機能を備える。具体的には、セッション管理テーブル更新手段230は、受信した優先度通知に含まれるユーザIDと優先度とを、セッション管理テーブル210のユーザID213と優先度215とに格納させる。
【００５２】
図5は、優先度決定サーバ700が記憶する優先度管理テーブル710の例を示す説明図である。図5に示すように、優先度決定サーバ700は、ユーザID711と、優先度712と、仮想PC-ID713とを対応付けて含む優先度管理テーブル710を記憶している。
【００５３】
ユーザID711は、シンクライアント100のユーザを識別するための識別子である。また、優先度712は、優先度決定サーバ700によって決定された優先度である。なお、図5に示す例では、優先度712として設定されている値が小さくなるほど優先度が高いことを示しており、値が大きくなるほど優先度が低い。また、仮想PC-ID713は、そのユーザに対して割り当てられた仮想PCを機器別するための識別子である。なお、仮想PC-ID713は、セッション管理サーバ200から通知される。
【００５４】
本実施形態では、図5に示すような優先度管理テーブル710を備えることによって、優先度決定サーバ700は、どのユーザに対してどの仮想PCが割り当てられているかを認識することができる。
【００５５】
図6は、優先度決定サーバ700の機能構成例を示す機能ブロック図である。図6に示すように、優先度決定サーバ700は、優先度管理テーブル710、入退管理情報受信手段721、社員情報受信手段722、優先度管理テーブル更新手段723、及び優先度通知手段724を含む。
【００５６】
入退管理情報受信手段721は、具体的には、プログラムに従って動作する情報処理装置のCPU及びネットワークインタフェース部によって実現される。入退管理情報受信手段721は、所定のタイミングで、入退管理システム800から入退室情報（例えば、ユーザの入退室時間や、現在勤務中であるか否かを示す情報）を受信する機能を備える。
【００５７】
社員情報受信手段722は、具体的には、プログラムに従って動作する情報処理装置のCPU及びネットワークインタフェース部によって実現される。社員情報受信手段722は、所定のタイミングで、社員情報管理システム900から人事情報（例えば、ユーザの役職や、異動状況を示す情報）を受信する機能を備える。
【００５８】
優先度管理テーブル更新手段723は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。優先度管理テーブル更新手段723は、入退管理情報受信手段721が受信する入退室情報や社員情報受信手段722が受信する人事情報に基づいて、各ユーザの優先度を決定する機能を備える。また、優先度管理テーブル更新手段723は、決定した優先度に基づいて優先度管理テーブル710を更新する機能を備える。また、優先度管理テーブル更新手段723は、セッション管理サーバ200からの要求に応じて、優先度管理テーブル710から優先度を抽出し、優先度通知手段724に出力する機能を備える。
【００５９】
優先度通知手段724は、具体的には、プログラムに従って動作する情報処理装置のCPU及びネットワークインタフェース部によって実現される。優先度通知手段724は、セッション管理サーバ200から優先度要求を受信したときに、優先度管理テーブル更新手段723によって抽出された優先度を含む優先度通知を、通信ネットワークを介してセッション管理サーバ200に送信する機能を備える。
【００６０】
なお、優先度通知手段724は、入退管理情報受信手段721から入退室情報を新たに受信したことや、社員情報受信手段722から人事情報を新たに受信したことに基づいて優先度が更新されたときにも、更新後の優先度を含む優先度通知を、通信ネットワークを介してセッション管理サーバ200に送信する。
【００６１】
仮想PCサーバ300は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置によって実現される。仮想PCサーバ300は、図1に示した仮想PCサーバ300と同様に、SAN400から情報を読み込み、読み込んだ情報に基づいて仮想PCを実現する機能を備える。
【００６２】
デスクトップ仮想化管理サーバ500は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置によって実現される。デスクトップ仮想化管理サーバ500は、図1に示したデスクトップ仮想化管理サーバ500と同様に、NAS600からユーザ環境情報を読み込み、仮想PCサーバ300に提供する処理を実行する。そのように、デスクトップ仮想化管理サーバ500によって提供されるユーザ環境情報を用いて、仮想PCサーバ300上に展開される仮想PCにおいて、さらに仮想デスクトップ環境を利用することが可能となる。
【００６３】
なお、本実施形態において、セッション管理サーバ200の記憶装置（図示せず）は、仮想デスクトップ環境利用時のユーザ環境退避タイミングを決定するための各種プログラムを記憶している。例えば、セッション管理サーバ200の記憶装置は、コンピュータに、ユーザ毎の優先度に従って、仮想PC割当サーバによって割り当てられている仮想PCのうち、ユーザ環境情報の退避対象とする仮想PCを検索する処理と、ユーザ環境情報の退避対象とする仮想PCの検索結果に基づいて、仮想PC割当サーバに、キャッシュを用いて保持されているユーザ環境情報をキャッシュから退避させる処理とを実行させるためのユーザ環境退避制御用プログラムを記憶している。
【００６４】
次に、動作について説明する。図7は、セッション管理サーバ200が実行する処理例を説明するためのステートマシン図である。なお、本実施形態では、ユーザ操作に従って仮想PCへの接続要求をセッション管理サーバ200に送信する際に、空き仮想PCが無い場合を例に説明する。また、本実施形態では、複数ユーザのうちのユーザBが新たに仮想PCを利用するために、シンクライアント100を操作して接続要求を行う場合を例に説明する。
【００６５】
セッション管理サーバ200がリクエスト待ち状態であるときに（S201）、ユーザBは、新たに仮想PCを利用したい場合には、シンクライアント100を操作して、仮想PCへの接続要求の送信指示を行う。すると、シンクライアント100は、ユーザBの操作に従って、通信ネットワークを介して、接続要求をセッション管理サーバ200に送信する。
【００６６】
次いで、セッション管理サーバ200は、ユーザBのシンクライアント100から、接続要求を受信すると、セッション管理テーブル210に基づいて、空き仮想PCがあるか否かを検索する（S202）する。本実施形態では、図3に示すように、セッション管理テーブル210中にユーザID213が空欄（Null）となっている仮想PCが存在しないので、セッション管理サーバ200は、空き仮想PCが無いと判断する。
【００６７】
なお、ユーザID213が空欄（Null）となっている仮想PCが存在し、空き仮想PCがあると判断した場合には、そのままS207の状態に遷移する。
【００６８】
次いで、セッション管理サーバ200は、セッション管理テーブル210に基づいて、非接続状態となっており、且つ優先度が最も低い仮想PCを検索する（S203）。図3に示す例では、セッション管理サーバ200は、まず、セッション管理テーブル210中のステータス214が非接続となっていることに基づいて、仮想PC-ID211が「0002」及び「0050」である仮想PCを、非接続状態となっている仮想PCとして特定する。次いで、セッション管理サーバ200は、特定したそれらの仮想PCのうち、セッション管理テーブル210中の優先度215列の値が最も大きな数（本例では、優先度が低いほど数字が大きい）である仮想PCを特定する。図3に示す例では、優先度215として「12」が格納されている仮想PC-ID211が「0050」である仮想PCを特定する。そして、セッション管理サーバ200は、セッション管理テーブル210に基づいて、特定した仮想PC-ID211が「0050」である仮想PCに対応するユーザID 213「A」のユーザ環境情報を退避対象の情報として検索する。
【００６９】
次いで、セッション管理サーバ200は、退避対象として検索したユーザ環境情報に対応する仮想PCのデスクトップ仮想化クライアント320（具体的には、仮想PCサーバ300）に対して、通信ネットワークを介してユーザ環境退避指示情報を送信する（S204）。そして、セッション管理サーバ200は、デスクトップ仮想化クライアント320からのユーザ環境退避完了通知の受信を待つ（S205）。
【００７０】
仮想PCサーバ300は、セッション管理サーバ200からユーザ環境退避指示情報を受信すると、受信したユーザ環境退避指示情報で退避を指定されたユーザ環境情報をキャッシュ上から退避し、デスクトップ仮想化管理サーバ500を介してNAS600に格納させる。また、仮想PCサーバ300は、退避したユーザ環境情報をキャッシュ上から削除し、新たなユーザに対して仮想PCを割り当て可能な状態とする。そして、仮想PCサーバ300は、ユーザ環境退避完了通知を、通信ネットワークを介してセッション管理サーバ200に送信する。
【００７１】
次いで、セッション管理サーバ200は、デスクトップ仮想化クライアント320からのユーザ環境退避完了通知を受信すると、セッション管理テーブル210中の仮想PC-ID211が「0050」である仮想PCに対応するユーザID 213、ステータス214及び優先度215を全てクリアする（S206）。具体的には、図8に示すように、セッション管理サーバ200は、セッション管理テーブル210中の仮想PC-ID211「0050」に対応するユーザID213、ステータス214及び優先度215の値を空欄（Null）に更新する。
【００７２】
次いで、セッション管理サーバ200は、ユーザ環境情報を退避することによって空いた仮想PCのIPアドレスを通知するための空き仮想PC通知を、通信ネットワークを介してシンクライアント100に送信する（S207）。なお、S202で空き仮想PCが検索された場合には、S207では、セッション管理サーバ200は、S202で検索された空き仮想PCのIPアドレスを通知するための空き仮想PC通知を送信する。
【００７３】
その後、空き仮想PC通知を受信すると、シンクライアント100は、受信した空き仮想PC通知に含まれるIPアドレスに基づいて、仮想PCへの接続を試みる。そして、シンクライアント100は、仮想PCの利用が可能になるとともに仮想デスクトップ環境の利用も可能となる。
【００７４】
また、セッション管理サーバ200は、仮想PCのIPアドレスを指定した空き仮想PC通知を送信した後、セッション管理サーバ200は、仮想PCへの接続を許可したユーザBのユーザIDをキーとして含む優先度要求を、優先度決定サーバ700に対して送信する（S208）。そして、セッション管理サーバ200は、優先度決定サーバ700からの優先度通知の応答待ち状態となる（S209）。なお、セッション管理サーバ200は、空き仮想PC通知を送信する前に、優先度決定サーバ700に対して優先度要求を送信しても構わない。
【００７５】
優先度決定サーバ700は、優先度要求を受信すると、優先度要求に含まれるユーザBのユーザIDをキーに優先度管理テーブル710を検索し、ユーザBに対応する優先度を優先度管理テーブル710から特定する。なお、受信した優先度要求にはユーザBに対して割り当てた仮想PCの仮想PC-IDも含まれており、優先度決定サーバ700は、受信した優先度要求に含まれる仮想PC-IDに基づいて、優先度管理テーブル710中のユーザBに対応する仮想PC-ID713の値を更新する。本実施形態では、ユーザBに対して仮想PC-ID「0050」の仮想PCを割り当てたので、優先度決定サーバ700は、図9に示すように、ユーザID711「B」に対応する仮想PC-ID713の値を「0050」に更新するとともに、ユーザID711「A」に対応する仮想PC-ID713に格納されていた「0050」の値をクリアする。そして、優先度決定サーバ700は、検索した優先度を含む優先度通知をセッション管理サーバ200に送信する。
【００７６】
次いで、セッション管理サーバ200は、優先度決定サーバ700から優先度通知を受信すると、受信した優先度通知に基づいて、セッション管理テーブル210中の優先度215列を更新し（S20A）、リクエスト待ち状態（S201）に戻る。具体的には、セッション管理サーバ200は、図10に示すように、仮想PC-ID211「0050」に対応するユーザID213の値を「B」に更新しステータス214の値を「接続中」に更新するとともに、優先度215の値を、優先度通知で指定された「66」に更新する。
【００７７】
以上の処理が実行されることによって、新たな仮想PCへの接続要求がなされた場合に、優先度に基づいてユーザ環境情報が退避され、ユーザに対して仮想PCが割り当てられる。
【００７８】
次に、上記のようにユーザに対して仮想PCが割り当てられた後に、優先度決定サーバ700の優先度管理テーブル710が更新された場合の動作を説明する。入退管理システム800が管理する入退室情報や社員情報管理システム900が管理する人事情報が更新された場合等、外部システムの状態が変化した場合、その更新に合わせて、優先度決定サーバ700は、ユーザの優先度を変更する。具体的には、優先度決定サーバ700は、優先度管理テーブル710中の優先度712の値を、更新後の優先度の値に更新する。
【００７９】
優先度を更新した場合、優先度決定サーバ700は、セッション管理サーバ200に対して、ユーザIDと優先度とを含む優先度通知を送信する。すると、セッション管理サーバ200は、受信したい優先度通知に含まれる情報に基づいて、セッション管理テーブル210を更新し（S209）、再びリクエスト待ち状態（S201）に戻る。
【００８０】
次に、優先度決定サーバ700が行う優先度の決定方法について説明する。図11は、優先度の決定方法の例を示す説明図である。なお、優先度決定サーバ700は、存在するユーザ全てに対して一意に設定できるように考慮して、各ユーザの優先度を決定する。図11に示す例では、まず、優先度決定サーバ700は、入退管理システム800から受信した入退室情報に基づいて、ユーザが休暇中（休暇予定も含む）か否かを識別する。そして、優先度決定サーバ700は、休暇中であるユーザと比較して、出社中（出社予定も含む）であるユーザの優先度が高くなるように、優先度を決定する。
【００８１】
次いで、優先度決定サーバ700は、入退管理システム800から受信した入退室情報に基づいて、例えば、ICカードによる入退場管理記録を用いて、現在、ユーザが社内にいるか社外にいるかを識別する。そして、優先度決定サーバ700は、社外にいるユーザと比較して、社内にいるユーザの優先度が高くなるように、優先度を設定する。
【００８２】
次いで、優先度決定サーバ700は、社員情報管理システム900から受信した人事情報に基づいて、役職情報より役職が高い人の優先度を高くなるように、優先度を設定する。
【００８３】
次いで、優先度決定サーバ700は、例えば、セッション管理サーバ200から各ユーザの非接続状態の継続時間の情報を受信し、受信した非接続時間の情報に基づいて、非接続時間が短いほど優先度を高くなるように、優先度を設定する。
【００８４】
以上の処理を実行することによって、優先度決定サーバ700は、ほぼ一意に各ユーザの優先度を決定することができる。
【００８５】
なお、優先度の決定の仕方は、本実施形態で示した方法に限らず、例えば、優先度決定サーバ700は、図11に示した順番とは異なる順番に優先度の判定を行って、各ユーザに対して一意な優先度を決定するようにしてもよい。また、例えば、入退室情報や人事情報、非接続時間の全てを用いて優先度を決定するのではなく、いずれか１つ又は２つを組み合わせて用いて優先度を決定してもよい。また、例えば、入退室情報や人事情報、非接続時間に基づいて優先度を決定する場合に限らず、例えば、ユーザの年齢や性別、嗜好等の属性情報に基づいて、各ユーザの優先度を決定するようにしてもよい。
【００８６】
以上に説明したように、本実施形態によれば、ユーザに対して仮想PCが割り当てられると、仮想PCの空きがなくなるまでは、仮想PCサーバ300において、そのユーザに対するユーザ環境情報がキャッシュを用いて保持される。そのため、ユーザが再接続したときに仮想PCに接続するまで待たされる時間を低減することができる。また、ユーザ環境情報を保持可能な数を超えて仮想PCへの割り当てが行われる場合には、優先度に応じてユーザ環境情報を退避し、新たなユーザに対して仮想PCへの割り当てを行うので、必要以上にコストが増加することも防止できる。従って、仮想デスクトップ環境利用時のコストを低減するとともに接続時間を低減することができる。
【００８７】
例えば、図1に示すような一般的な仮想デスクトップシステムの構成では、ユーザのシンクライアント100から仮想PCに接続する際に、シンクライアント100は、セッション管理サーバ200に問い合わせて接続先の仮想PCのIPアドレスの通知を受ける。そして、シンクライアント100は、セッション管理サーバ200から受信したIPアドレスに基づいて、仮想PCにRDP接続する。また、デスクトップ仮想化管理クライアント320は、シンクライアント100からの接続を検知すると、その都度、ユーザ環境情報（例えば、図1に示すUserBのユーザ環境情報330）を、デスクトップ仮想化管理サーバ500を介してNAS600からダウンロードする。このように、一般に、接続毎にユーザ環境情報をダウンロードしていることが接続時間を長くする要因となっている。
【００８８】
これに対して、本実施形態では、図2に示すように、セッション管理サーバ200とデスクトップ仮想化管理クライアント320との間に、ユーザ環境情報のキャッシュ管理を行うための新たなシーケンスを実現するとともに、キャッシュ管理のための情報列をセッション管理テーブル210に追加する。そのように構成することによって、仮想PCを割り当てたユーザのユーザ環境情報をある程度キャッシュ上に保持するようにし、接続毎にユーザ環境情報をダウンロードすることを不要とし、接続時間を低減している。
【００８９】
また、キャッシュ管理の利用可能ユーザ数を超えた時に、さらにユーザから接続要求があった場合には、優先度が低いユーザのユーザ環境情報をキャッシュから退避して、新たなユーザに対して仮想PCを割り当ているように制御する。本実施形態では、ユーザの勤務状況が分かる入退管理システム800や、ユーザの役職を管理している社員情報管理システム900からの情報に基づいて、優先度決定サーバ700にてユーザ環境情報のキャッシュ及び退避の優先度を決定する。また、決定した優先度は、セッション管理サーバ200のセッション管理テーブル210に追加して格納され、セッション管理サーバ200は、シンクライアント100から接続要求があった場合に、最も優先度の低いユーザ環境情報を退避する。そのようにすることによって、必要以上にコストが増加することを防止している。
【００９０】
また、本実施形態において、ユーザの勤務状況等に基づいて優先度決定用パラメータを変更するように構成すれば、利用企業の業務にあった効率的なユーザ管理を可能とすることができる。
【００９１】
実施形態2．
次に、本発明の第2の実施形態を図面を参照して説明する。第1の実施形態では、キャッシュ上に保持されるユーザ環境情報が上限値を超えてから、優先度の低い順にユーザ環境情報を退避する場合を説明したが、そのように構成すると、常にユーザ環境情報が仮想PC上に存在することになる。そこで、ある程度以上、優先度が下がった場合には、キャッシュに保持可能な上限値を超えていなくても、自動的にユーザ環境情報を退避するようにして、空き仮想PCが確保されるようにしてもよい。
【００９２】
図12は、第2の実施形態におけるセッション管理サーバ200が実行する処理例を説明するためのステートマシン図である。具体的には、図12に示すように、本実施形態では、セッション管理サーバ200は、ステートS20Aのセッション管理テーブル210の更新を行うと、ステートS20Bに移行し、優先度を閾値判定することによって、ユーザ環境情報を強制退避させるユーザが存在するか否かを検索する。具体的には、セッション管理サーバ200は、セッション管理テーブル210中の優先度215が所定の閾値以上となっているユーザが存在するか否かを判定し、存在していれば、そのユーザのユーザ環境情報を強制退避させると判定する。また、存在しなければ、ユーザ環境情報の強制退避が必要なユーザは存在しないと判定する。
【００９３】
次いで、セッション管理サーバ200は、ユーザ環境情報の退避が必要なユーザが存在すると判定した場合には、ステートS203に移行し、ステートS203以降の処理を実行する。ユーザ環境情報の退避が不要であると判定した場合には、ステートS201に戻る。なお、ステートS203以降の処理は、第1の実施形態で示したそれらの処理と同様である。
【００９４】
ここで、強制退避が必要であると判断された場合、ユーザ環境情報の退避が完了し、セッション管理テーブルを更新したら（ステートS206）した後に、ステートS201に再び遷移することになる。
【００９５】
以上に説明したように、本実施形態によれば、優先度の値が所定の閾値以上となった（優先度が低くなった）場合には、キャッシュ上からユーザ環境情報を強制退避させるように制御することによって、必要以上にコストが増加することを防止することができる。従って、仮想デスクトップ環境利用時のコストを低減するとともに接続時間を低減することができる。
【００９６】
次に、本発明によるユーザ環境退避制御システムの最小構成について説明する。図13は、ユーザ環境退避制御システムの最小の構成例を示すブロック図である。図13に示すように、ユーザ環境退避制御システムは、最小の構成要素として、優先度決定サーバ700と、非接続仮想PC検索手段223と、ユーザ環境退避指示手段224とを含む。
【００９７】
図13に示す最小構成のユーザ環境退避制御システムにおいて、優先度決定サーバ700は、ユーザ毎の優先度を決定する機能を備える。また、非接続仮想PC検索手段223は、優先度決定サーバ700によって決定された優先度に従って、仮想PCサーバ300によって割り当てられている仮想PCのうち、ユーザ環境情報の退避対象とする仮想PCを検索する機能を備える。また、ユーザ環境退避指示手段224は、非接続仮想PC検索手段223の検索結果に基づいて、仮想PCサーバ300に、キャッシュを用いて保持されているユーザ環境情報をキャッシュから退避させる機能を備える。
【００９８】
図13に示す最小構成のユーザ環境退避制御システムによれば、仮想デスクトップ環境利用時のコストを低減するとともに接続時間を低減することができる。
【００９９】
なお、上記に示した各実施形態では、以下の(1)〜(7)に示すようなユーザ環境退避制御システムやユーザ環境退避制御装置の特徴的構成が示されている。
【０１００】
(1)ユーザ環境退避制御システムは、仮想PC上でユーザ毎の仮想デスクトップ環境を実現するためのユーザ環境情報（例えば、アプリケーションやデータ（ユーザデータ））を退避させるユーザ環境退避制御システムであって、ユーザ毎の優先度を決定する優先度決定手段（例えば、優先度決定サーバ700によって実現される）と、優先度決定手段によって決定された優先度に従って、仮想PC割当サーバによって割り当てられている仮想PCのうち、ユーザ環境情報の退避対象とする仮想PCを検索する仮想PC検索手段（例えば、非接続仮想PC検索手段223によって実現される）と、仮想PC検索手段の検索結果に基づいて、仮想PC割当サーバに、キャッシュを用いて保持されているユーザ環境情報をキャッシュから退避させるユーザ環境情報退避制御手段（例えば、ユーザ環境退避指示手段224によって実現される）とを備えたことを特徴とする。
【０１０１】
(2)ユーザ環境退避制御システムにおいて、仮想PC検索手段は、仮想PC割当サーバによって割り当てられている仮想PCのうち、ユーザ端末と非接続状態であり且つ優先度が最も低いユーザに割り当てられている仮想PCを、ユーザ環境情報の退避対象とする仮想PCとして検索し、ユーザ環境情報退避制御手段は、仮想PC検索手段の検索結果に基づいて、仮想PC割当サーバに、ユーザ端末と非接続状態であり且つ優先度が最も低いユーザに割り当てられている仮想PCに対応するユーザ環境情報をキャッシュから退避させるように構成されていてもよい。
【０１０２】
(3)ユーザ環境退避制御システムは、ユーザの入退室情報を管理する入退室管理手段（例えば、入退管理システム800によって実現される）を備え、優先度決定手段は、入退室管理手段から入力した入退室情報に基づいて、ユーザ毎の優先度を決定するように構成されていてもよい。
【０１０３】
(4)ユーザ環境退避制御システムは、ユーザの人事情報を管理する人事情報管理手段（例えば、社員情報管理システム900によって実現される）を備え、優先度決定手段は、人事情報管理手段から入力した人事情報に基づいて、ユーザ毎の優先度を決定するように構成されていてもよい。
【０１０４】
(5)ユーザ環境退避制御システムにおいて、仮想PC検索手段は、ユーザ端末から仮想PCへの新たな接続要求があったときに、仮想PC割当サーバによって新たに割り当て可能な空き仮想PCがない場合に、ユーザ環境情報の退避対象とする仮想PCを検索するように構成されていてもよい。
【０１０５】
(6)ユーザ環境退避制御システムにおいて、仮想PC検索手段は、優先度決定手段によって決定された優先度の値が所定の閾値に達したときに、優先度が所定の閾値に達したユーザに割り当てられている仮想PCを、ユーザ環境情報の退避対象とする仮想PCとして検索するように構成されていてもよい。
【０１０６】
(7)ユーザ環境退避制御装置は、仮想PC上でユーザ毎の仮想デスクトップ環境を実現するためのユーザ環境情報を退避させるユーザ環境退避制御装置（例えば、セッション管理サーバ200）であって、ユーザ毎の優先度に従って、仮想PC割当サーバによって割り当てられている仮想PCのうち、ユーザ環境情報の退避対象とする仮想PCを検索する仮想PC検索手段（例えば、非接続仮想PC検索手段223によって実現される）と、仮想PC検索手段の検索結果に基づいて、仮想PC割当サーバに、キャッシュを用いて保持されているユーザ環境情報をキャッシュから退避させるユーザ環境情報退避制御手段（例えば、ユーザ環境退避指示手段224によって実現される）とを備えたことを特徴とする。
【産業上の利用可能性】
【０１０７】
本発明は、仮想デスクトップサービスを提供する仮想デスクトップシステムの用途に適用できる。
【符号の説明】
【０１０８】
100  シンクライアント
200  セッション管理サーバ
210  セッション管理テーブル
221  接続要求受信手段
222  空き仮想PC検索手段
223  非接続仮想PC検索手段
224  ユーザ環境退避指示手段
225  ユーザ環境退避完了通知受信手段
226  セッション管理テーブルクリア手段
227  空き仮想PC通知手段
228  優先度要求手段
229  優先度通知受信手段
230  セッション管理テーブル更新手段
300  仮想PCサーバ
310  OS
320  仮想化クライアント
330  ユーザ環境情報
400  SAN
500  デスクトップ仮想化管理サーバ
600  NAS
700  優先度決定サーバ
710  優先度管理テーブル
721  入退管理情報受信手段
722  社員情報受信手段
723  優先度管理テーブル更新手段
724  優先度通知手段
800  入退管理システム
900  社員情報管理システム
【図１】
2011134219.tif 000003
【図２】
2011134219.tif 000004
【図３】
2011134219.tif 000005
【図４】
2011134219.tif 000006
【図５】
2011134219.tif 000007
【図６】
2011134219.tif 000008
【図７】
2011134219.tif 000009
【図８】
2011134219.tif 000010
【図９】
2011134219.tif 000011
【図１０】
2011134219.tif 000012
【図１１】
2011134219.tif 000013
【図１２】
2011134219.tif 000014
【図１３】
2011134219.tif 000015