(57)【要約】【課題】仮想マシン実行環境で動作中の仮想マシンに対し、仮想マシン実行環境に接続された複数のヒューマンインターフェースデバイスから適切なものを対応付け、前記ヒューマンインターフェースデバイスを対応付けた仮想マシンを適切な表示装置に対応付ける技術を提供する。【解決手段】複数のヒューマンインターフェースデバイス５０、５１および表示装置４０、４１が接続された仮想マシン実行環境１００における仮想マシンモニタ１０が、所定のインターフェース４５を介して利用者の認証情報の入力を受け付け、この認証情報と予め記憶手段に格納している認証用情報とを照合して前記利用者の認証を実行し、当該認証に成功すると仮想マシン２００を起動する処理と、前記利用者が前記認証情報の入力に用いたヒューマンインタフェースデバイス５０、５１および表示装置４０、４１の情報と、前記表示装置４０、４１が接続された旨の情報を、前記起動した仮想マシン２００に通知する処理と、を実行する。【選択図】図１
2010097567.tif 000002
【特許請求の範囲】
【請求項１】
複数のヒューマンインターフェースデバイスおよび表示装置が接続された仮想マシン実行環境における仮想マシンモニタが、
所定のインターフェースを介して利用者の認証情報の入力を受け付け、この認証情報と予め記憶手段に格納している認証用情報とを照合して前記利用者の認証を実行し、当該認証に成功すると仮想マシンを起動する処理と、
前記利用者が前記認証情報の入力に用いたヒューマンインタフェースデバイスおよび表示装置の情報と、前記表示装置が接続された旨の情報を、前記起動した仮想マシンに通知する処理と、
を実行するデバイス接続制御方法。
【請求項２】
前記仮想マシンモニタもしくは仮想マシンが、
前記複数のヒューマンインタフェースデバイスないし前記複数の表示装置を、該当ヒューマンインターフェースデバイスないし表示装置に対応するクラスドライバまたは個々のデバイスドライバで制御することを特徴とする請求項１に記載のデバイス接続制御方法。
【請求項３】
前記複数のヒューマンインタフェースデバイスおよび前記複数の表示装置がＵＳＢデバイスであり、ＵＳＢインターフェースを備える中継装置に接続されており、
前記中継装置が、前記複数のヒューマンインタフェースデバイスおよび前記複数の表示装置と前記仮想マシンモニタもしくは仮想マシンとの間に生じるＵＳＢバスプロトコルでの通信データを、ＩＰプロトコルでカプセル化してＩＰパケットに変換し、前記複数のヒューマンインタフェースデバイスおよび前記複数の表示装置と前記仮想マシンモニタもしくは仮想マシンとの間で前記ＩＰパケットの通信を仲介し、
前記仮想マシンモニタもしくは仮想マシンが、前記複数のヒューマンインタフェースデバイスおよび前記複数の表示装置と前記中継装置を介してＵＳＢバスプロトコルで通信し、前記複数のヒューマンインタフェースデバイスおよび前記複数の表示装置の制御を実行する、
ことを特徴とする請求項１に記載のデバイス接続制御方法。
【請求項４】
前記仮想マシンモニタもしくは仮想マシンが、
前記ヒューマンインタフェースデバイスまたは前記中継装置と通信し、前記ヒューマンインターフェースデバイスまたは前記中継装置における特定の入力インターフェースでの入力事象のデータを受け付けて、前記複数の表示装置に、前記利用者の認証情報の入力を受け付ける認証ダイアログの画面データを送信する処理を実行する、ことを特徴とする請求項３に記載のデバイス接続制御方法。
【請求項５】
前記仮想マシンモニタもしくは仮想マシンが、
前記中継装置に接続された前記複数のヒューマンインターフェースデバイスおよび前記複数の表示装置の情報を記憶手段に格納しており、
前記複数の表示装置のうちから、前記特定の入力インターフェースでの入力事象がなされたヒューマンインタフェースデバイスまたは中継装置に接続された表示装置を選択し、該当表示装置に対して前記認証ダイアログの画面データを送信する処理を実行する、
ことを特徴とする請求項４に記載のデバイス接続制御方法。
【請求項６】
前記表示装置が、ＩＰプロトコルで動画ストリームを受信し、この動画ストリームをデコードし再生するテレビであり、
前記仮想マシンモニタもしくは仮想マシンが、前記テレビと通信し、前記テレビにおける前記動画ストリームの受信と無関係に表示する特定の入力インターフェースでの入力事象のデータを受け付けて、前記テレビに前記認証ダイアログの画面データを送信する処理を実行する、
ことを特徴とする請求項４に記載のデバイス接続制御方法。
【請求項７】
前記テレビが、
前記動画ストリームの受信と無関係に表示する特定の入力インターフェースと、当該テレビのリモートコントローラの特定ボタンとの対応関係を記憶手段にて記憶しており、
前記テレビのリモートコントローラと通信し前記リモートコントローラの特定ボタンの押下事象のデータを受け付けて、この押下事象のデータを前記仮想マシンモニタもしくは仮想マシンに送信し、
前記仮想マシンモニタもしくは仮想マシンが、前記テレビから前記入力事象のデータを受け付けて、前記テレビに前記認証ダイアログの画面データを送信する処理を実行する、
ことを特徴とする請求項６に記載のデバイス接続制御方法。
【請求項８】
前記仮想マシンが、前記動画ストリームの画面描画を実行し、
前記仮想マシンまたは前記仮想マシンが動作する仮想マシン実行環境、もしくは仮想マシンモニタが、前記動画ストリームの描画画面のデータをエンコードし、前記テレビに配信する、
ことを特徴とする請求項６に記載のデバイス接続制御方法。
【請求項９】
前記仮想マシンモニタが、
前記認証ダイアログを介して利用者の認証情報の入力を受け付け、この認証情報と予め記憶手段に格納している認証用情報とを照合して前記利用者の認証を実行し、当該認証に成功すると、前記認証ダイアログを表示していた表示装置と認証情報の入力に用いられたヒューマンインタフェースデバイスとを関連付けた情報を記憶手段に格納する処理と、
前記認証に成功した利用者について、記憶手段にて予め対応付けされた仮想マシンを起動する処理とを実行する、
ことを特徴とする請求項４に記載のデバイス接続制御方法。
【請求項１０】
前記仮想マシンモニタが、起動した前記仮想マシンに対し、前記関連付けを行った前記表示装置と前記ヒューマンインタフェースデバイスとが接続された旨の情報を通知し、
前記仮想マシンが、前記表示装置と前記ヒューマンインターフェースデバイスについてプラグアンドプレイを行い、前記表示装置と前記ヒューマンインターフェースデバイスに対応するクラスドライバもしくは個々のデバイスドライバをロードし、前記関連付けを行った前記表示装置と前記ヒューマンインタフェースデバイスを占有する、
ことを特徴とする請求項９に記載のデバイス接続制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイス接続制御方法に関するものであり、具体的には、仮想マシン実行環境で動作中の仮想マシンの画面を遠隔の利用者の表示装置に表示する為の関連付け手法に関する。
【背景技術】
【０００２】
仮想マシンモニタは、仮想マシンモニタ上の複数の仮想マシンの画面を、仮想マシン毎に１枚のウィンドウを割り当て、仮想マシンモニタのデスクトップウィンドウに並べて表示していた。例えば、従来提案されているグラフィックサブシステムを仮想化する技術では、仮想マシンモニタが管理するグラフィックハードウェアを、仮想マシンモニタ上の複数の仮想マシンで共用させ、前記仮想マシンが並行して画面を描画している（特許文献１参照）。この場合、前記仮想マシンが描画した画面は、仮想マシンごとに１つのウィンドウとして、仮想マシンモニタが管理する表示装置に表示された仮想マシンモニタのデスクトップウィンドウに並べて表示する。
【０００３】
また、ＵＳＢメモリやＣＤ−ＲＯＭドライブ、プリンタやスキャナといったＵＳＢデバイスを接続すると仮想マシンモニタがプラグアンドプレイし、これらＵＳＢデバイスを占有する。仮想マシンモニタが占有したＵＳＢデバイスについて、例えばＵＳＢメモリの場合、仮想マシンモニタが仮想マシンにファイル共有を許可する事で仮想マシンから利用できた。また、プリンタの場合、仮想マシンモニタがプリンタスプールを公開しこのプリンタスプールのキューに仮想マシンから印刷ジョブを積む事で、仮想マシンからの印刷がなされていた。
【特許文献１】特開２００６−１９０２８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来、仮想マシン実行環境で動作中の仮想マシンの画面は、仮想マシン実行環境の仮想マシンモニタのデスクトップウィンドウに、仮想マシン毎に１枚のウィンドウとして表示し、アクティブなウィンドウでのキーボードやマウスの入力を仮想マシンに入力し、ユーザ操作を受け付けていた。仮想マシン実行環境に仮想マシンの数だけキーボードとマウスを接続しても、何れのキーボードやマウスからの入力はアクティブなウィンドウすなわち一つの仮想マシンにしか入力されない。従って、複数の利用者が各々の仮想マシンに対し、各利用者のキーボードやマウスから同時に入力し操作を行うことはできない。
【０００５】
つまり、仮想マシン実行環境に仮想マシンの数だけキーボードとマウスと表示装置を接続し、前記表示装置に仮想マシンのウィンドウを最大表示しても、アクティブなウィンドウは１枚なので各仮想マシンの利用者が表示装置の前のキーボードやマウスから各人の仮想マシンに同時に入力したり操作できなかった。  
同様にＵＳＢデバイスの場合、ＵＳＢデバイスをＰＣに直接接続し、このＰＣに占有させ排他的に利用させる従来の使い方は、仮想マシン実行環境上の仮想マシンでは実現できなかった。
【０００６】
そこで本発明は上記課題を鑑みてなされたものであり、仮想マシン実行環境で動作中の仮想マシンに対し、仮想マシン実行環境に接続された複数のヒューマンインターフェースデバイス（キーボードやマウスなど）から適切なヒューマンインターフェースデバイスを対応付ける技術、並びに、ヒューマンインターフェースデバイスを対応付けた仮想マシンを適切な表示装置に対応付ける技術の提供を目的とする。
【０００７】
また、ＵＳＢデバイスについて仮想マシンがプラグアンドプレイして占有し、独占利用する技術、前記仮想マシンがシャットダウンしてＵＳＢデバイスを占有していない状態でも、前記ＵＳＢデバイスの状態を監視し把握する技術の提供を目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決する本発明のデバイス接続制御方法は、複数のヒューマンインターフェースデバイスおよび表示装置が接続された仮想マシン実行環境における仮想マシンモニタが、所定のインターフェースを介して利用者の認証情報の入力を受け付け、この認証情報と予め記憶手段に格納している認証用情報とを照合して前記利用者の認証を実行し、当該認証に成功すると仮想マシンを起動する処理と、前記利用者が前記認証情報の入力に用いたヒューマンインタフェースデバイスおよび表示装置の情報と、前記表示装置が接続された旨の情報を、前記起動した仮想マシンに通知する処理とを実行することを特徴とする。
【０００９】
なお、前記仮想マシンは、計算機（＝仮想マシン）を構成するハードウェアを、実際に物理的なハードウェアを具備する計算機がソフトウェア的にエミュレートして作り出した計算機となる。計算機はその処理能力に応じて複数台の仮想計算機を提供できる。なお、前記仮想マシンは仮想化ソフトウェアにより生成される。こうした仮想化ソフトウェアは、仮想マシンモニタ(VMM：Virtual Machine Monitor)とも呼ばれるソフトウェアである。通常、単一のコンピュータを複数のコンピュータであるかのように分割して使うためのものである。前記仮想マシンは、例えば、前記仮想マシンモニタもしくは仮想マシン実行環境が管理サーバとしてシンクライアント接続したクライアントから遠隔操作されるコンピュータとなる。
【００１０】
また、前記デバイス接続制御方法において、前記仮想マシンモニタもしくは仮想マシンが、前記複数のヒューマンインタフェースデバイスないし前記複数の表示装置を、該当ヒューマンインターフェースデバイスないし表示装置に対応するクラスドライバまたは個々のデバイスドライバで制御するとしてもよい。
【００１１】
また、前記デバイス接続制御方法において、前記複数のヒューマンインタフェースデバイスおよび前記複数の表示装置がＵＳＢデバイスであり、ＵＳＢインターフェースを備える中継装置に接続されているとしてもよい。  
この場合、前記中継装置が、前記複数のヒューマンインタフェースデバイスおよび前記複数の表示装置と前記仮想マシンモニタもしくは仮想マシンとの間に生じるＵＳＢバスプロトコルでの通信データを、ＩＰプロトコルでカプセル化してＩＰパケットに変換し、前記複数のヒューマンインタフェースデバイスおよび前記複数の表示装置と前記仮想マシンモニタもしくは仮想マシンとの間で前記ＩＰパケットの通信を仲介する。
【００１２】
また、前記仮想マシンモニタもしくは仮想マシンが、前記複数のヒューマンインタフェースデバイスおよび前記複数の表示装置と前記中継装置を介してＵＳＢバスプロトコルで通信し、前記複数のヒューマンインタフェースデバイスおよび前記複数の表示装置の制御を実行する。
【００１３】
また、前記デバイス接続制御方法において、前記仮想マシンモニタもしくは仮想マシンが、前記ヒューマンインタフェースデバイスまたは前記中継装置と通信し、前記ヒューマンインターフェースデバイスまたは前記中継装置における特定の入力インターフェースでの入力事象のデータを受け付けて、前記複数の表示装置に、前記利用者の認証情報の入力を受け付ける認証ダイアログの画面データを送信する処理を実行する、としてもよい。
【００１４】
例えば、前記ヒューマンインターフェースデバイスまたは前記中継装置が具備する入力装置にホットキーを用意しておき、このホットキーが利用者から押下されると、仮想マシンモニタがこれを感知し、仮想マシンの起動やログイン、ログオンの為の認証ダイアログの画面データを表示装置に送って表示させるのである。
【００１５】
また、前記デバイス接続制御方法において、前記仮想マシンモニタもしくは仮想マシンが、前記中継装置に接続された前記複数のヒューマンインターフェースデバイスおよび前記複数の表示装置の情報を記憶手段に格納しており、前記複数の表示装置のうちから、前記特定の入力インターフェースでの入力事象がなされたヒューマンインタフェースデバイスまたは中継装置に接続された表示装置を選択し、該当表示装置に対して前記認証ダイアログの画面データを送信する処理を実行する、としてもよい。
【００１６】
また、前記デバイス接続制御方法において、前記表示装置が、ＩＰプロトコルで動画ストリームを受信し、この動画ストリームをデコードし再生するテレビであるとしてもよい。この場合、前記仮想マシンモニタもしくは仮想マシンが、前記テレビと通信し、前記テレビにおける前記動画ストリームの受信と無関係に表示する特定の入力インターフェースでの入力事象のデータを受け付けて、前記テレビに前記認証ダイアログの画面データを送信する処理を実行する。
【００１７】
また、前記デバイス接続制御方法において、前記テレビが、前記動画ストリームの受信と無関係に表示する特定の入力インターフェースと、当該テレビのリモートコントローラの特定ボタンとの対応関係を記憶手段にて記憶しており、前記テレビのリモートコントローラと通信し前記リモートコントローラの特定ボタンの押下事象のデータを受け付けて、この押下事象のデータを前記仮想マシンモニタもしくは仮想マシンに送信するとしてもよい。  
この場合、前記仮想マシンモニタもしくは仮想マシンが、前記テレビから前記入力事象のデータを受け付けて、前記テレビに前記認証ダイアログの画面データを送信する処理を実行する。
【００１８】
また、前記デバイス接続制御方法において、前記仮想マシンが、前記動画ストリームの画面描画を実行し、前記仮想マシンまたは前記仮想マシンが動作する仮想マシン実行環境、もしくは仮想マシンモニタが、前記動画ストリームの描画画面のデータをエンコードし、前記テレビに配信するとしてもよい。
【００１９】
また、前記デバイス接続制御方法において、前記仮想マシンモニタが、前記認証ダイアログを介して利用者の認証情報の入力を受け付け、この認証情報と予め記憶手段に格納している認証用情報とを照合して前記利用者の認証を実行し、当該認証に成功すると、前記認証ダイアログを表示していた表示装置と認証情報の入力に用いられたヒューマンインタフェースデバイスとを関連付けた情報を記憶手段に格納する処理と、前記認証に成功した利用者について、記憶手段にて予め対応付けされた仮想マシンを起動する処理とを実行する、としてもよい。
【００２０】
また、前記デバイス接続制御方法において、前記仮想マシンモニタが、起動した前記仮想マシンに対し、前記関連付けを行った前記表示装置と前記ヒューマンインタフェースデバイスとが接続された旨の情報を通知し、前記仮想マシンが、前記表示装置と前記ヒューマンインターフェースデバイスについてプラグアンドプレイを行い、前記表示装置と前記ヒューマンインターフェースデバイスに対応するクラスドライバもしくは個々のデバイスドライバをロードし、前記関連付けを行った前記表示装置と前記ヒューマンインタフェースデバイスを占有する、としてもよい。
【００２１】
こうした仮想マシンモニタは、例えば、認証ダイアログでの認証に成功すると、認証ダイアログに対して利用者アカウントとパスワードを入力したキーボード（ヒューマンインターフェースデバイス）と、この認証ダイアログを表示していた表示装置と、利用者からの操作を受け付けていたマウス（ヒューマンインターフェースデバイス）とを括り付けする。そして、前記キーボード、表示装置、マウスらを仮想マシンに接続してプラグアンドプレイをさせることで仮想マシンに占有させる。以後、仮想マシンモニタは、前記占有を行っている仮想マシンがシャットダウン、休止、スリープ、ログアウトないしログオフするまでの間、前記キーボードとマウスからの入力を、これらに対応付けた仮想マシンに入力し、仮想マシンモニタに接続された他のキーボードとマウスから隔絶する。
【００２２】
なお、上述したようなキーボード、マウス、および表示装置の括り付けの際、仮想マシンモニタは、仮想マシンにＵＳＢハブを介してキーボードやマウス、表示装置がつながっていると、このＵＳＢハブについてもキーボード、マウスおよび表示装置に括りつける。このＵＳＢハブに接続されているＵＳＢメモリやＣＤ−ＲＯＭドライブ、プリンタやスキャナ等のＵＳＢデバイスも括りつける。
【００２３】
一方、前記仮想マシンがシャットダウン、休止、スリープ、ログアウトないしログオフすると、仮想マシン実行環境は、前記仮想マシンから表示装置、キーボード、マウス、およびＵＳＢハブらを取り戻し、占有する。
【００２４】
仮想マシンモニタは、仮想マシンが占有していない表示装置とキーボードとマウス、そしてＵＳＢハブやＵＳＢハブにつながるＵＳＢデバイスを占有する間、占有している表示装置とヒューマンインターフェースデバイス、ＵＳＢデバイスの状態を監視ないし把握する。また表示装置やキーボードとマウス、中継装置へのＵＳＢハブの挿抜や、ＵＳＢデバイスの挿抜とプラグアンドプレイの成否や、通信が途切れたり、ホットキーが押されたり、どの表示装置やキーボードとマウスで認証を試み、どの仮想マシンに移譲したか等のログを残す。
【００２５】
その他、本願が開示する課題、及びその解決方法は、発明の実施の形態の欄、及び図面により明らかにされる。
【発明の効果】
【００２６】
本発明によれば、仮想マシン実行環境で動作中の仮想マシンに対し、仮想マシン実行環境に接続された複数のヒューマンインターフェースデバイス（キーボードやマウスなど）から適切なヒューマンインターフェースデバイスを対応付けることが可能となる。また、前記ヒューマンインターフェースデバイスを対応付けた仮想マシンを適切な表示装置に対応付けることが可能となる。また、ＵＳＢデバイスについて仮想マシンがプラグアンドプレイして占有し、独占利用することが可能となる。また、前記仮想マシンがシャットダウンしてＵＳＢデバイスを占有していない状態でも、前記ＵＳＢデバイスの状態を監視し把握することが可能となる。
【発明を実施するための最良の形態】
【００２７】
−−−システム構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図１は、本実施形態におけるデバイス接続制御システム１の構成例１を示す図である。図１に示すデバイス接続制御システム１は、ネットワーク１４０を介して互いに接続された、ブレードＰＣなどの情報処理装置１００、前記情報処理装置１００ないし当該情報処理装置１００が提供する仮想マシン実行環境上で稼働する仮想マシン２００と接続されるリモートＵＳＢハブ３、を含むものである。
【００２８】
また、前記仮想マシンモニタ１０は、仮想マシン２００を（仮想的に）構成するハードウェアを、実在する物理的なハードウェア（情報処理装置１００のもの）からソフトウェア的にエミュレートし、仮想マシン２００を作り出す。この仮想マシンモニタ１０は仮想化ソフトウェアとも呼ばれるソフトウェアである。また、前記仮想マシンモニタ１０は、ＴＣＰ／ＩＰのプロトコルスタック１１１、仮想マシン２００に公開している仮想ＮＩＣ１１１（ネットワークインタフェースカード）、仮想ＵＳＢハブ１１３、ＵＳＢバスドライバ１１４を各々仮想マシンモニタ１０が管理するプロセスとして実行する。また、前記仮想マシンモニタ１０は、管理テーブル１６（情報処理装置１００の記憶手段から割り当てされた記憶領域に格納）、および認証ダイアログ表示用のＶＲＡＭ４００，４０１を具備している。
【００２９】
こうした仮想マシンモニタ１０は、仮想マシン実行環境たる情報処理装置１００上に常駐し、仮想マシン２００の起動と利用者の管理、利用者毎のＨＩＤ（ヒューマンインターフェースデバイス）や表示装置のバインドと、これらＨＩＤや表示装置の仮想マシン２００への接続を担う。
【００３０】
一方、仮想マシン実行環境を提供する前記情報処理装置１００は、ＮＩＣ１０５（ネットワークインタフェースカード）を具備し、前記ＮＩＣ１０５でネットワーク１４０に接続している。このネットワーク１４０を介して表示装置４１が情報処理装置１００には接続される。同様に、前記ネットワーク１４０で前記リモートＵＳＢハブ３を介して表示装置４０とＨＩＤ５０、５１が情報処理装置１００に接続されている。前記ＨＩＤ５０、５１は、例えば、キーボードやマウスといったヒューマンインタフェースデバイス＝ＨＩＤを意味する（以下、ＨＩＤと記載）。
【００３１】
前記情報処理装置１００は、例えば、データセンターなどに設置されたシャーシに挿入されて使用され、利用者の端末に対し仮想マシン２００を提供するサーバ装置である。情報処理装置１００は、必要な機能を備えるべくＨＤＤ（ハードディスクドライブ）１０１などに格納されたプログラム１０２をＲＡＭ１０３に読み出し、演算装置たるＣＰＵ１０４により実行する。
【００３２】
また、前記情報処理装置１００は、コンピュータ装置が一般に備えている各種キーボードやボタン類などの入力インターフェースやディスプレイなどの出力インターフェースを必要に応じて備えることもできる。また、前記ネットワーク１４０に接続して前記リモートＵＳＢハブ３らとの間のデータ授受を担うＮＩＣ１０５などを有している。前記情報処理装置１００は、前記ＮＩＣ１０５により、前記リモートＵＳＢハブ３らと例えばインターネットやＬＡＮなどのネットワーク１４０を介して接続し、データ授受を実行する。  
また、情報処理装置１００は、他にも、フラッシュＲＯＭ（Read Only Memory）１０６と、デスクトップの映像情報を生成するビデオカード３３０とを有する。  
前記フラッシュＲＯＭ１０６には、ＢＩＯＳ１０７（Basic Input/Output System）が記憶されている。前記ＣＰＵ１０４は、電源の投入後、先ずフラッシュＲＯＭ１０６にアクセスしてＢＩＯＳ１０７を実行することにより、情報処理装置１００のシステム構成を認識する。
【００３３】
こうした情報処理装置１００は、前記ＨＤＤ１０１において、ＯＳ（Operating System）１０８と、シンクライアント接続用のリモート操作サーバ、暗号化通信プログラム、セッション管理エージェント等のプログラム（図示せず）を格納している。前記ＯＳ１０８は、ＣＰＵ１０４が情報処理装置１００の各部を統括的に制御して、必要な機能を実現する各プログラムを実行するためのプログラムである。ＣＰＵ１０４は、ＢＩＯＳ１０７に従い、ＨＤＤ１０１からＯＳ１０８をＲＡＭ１０３にロードして実行する。これにより、ＣＰＵ１０４は、情報処理装置１００の各部を統括的に制御する。
【００３４】
前記リモート操作サーバのプログラムは、情報処理装置１００および仮想マシンモニタ１０を介して仮想マシン２００のデスクトップを、利用者の端末、リモートＵＳＢハブ３を介したＨＩＤ等から遠隔操作可能とするためのプログラムであり、例えばＡＴ＆Ｔケンブリッジ研究所で開発されたＶＮＣ（Virtual Network Computing）のサーバプログラムである。ＣＰＵ１０４は、ＯＳ１０８に従い、ＨＤＤ１０１からこのリモート操作サーバをＲＡＭ１０３にロードして実行する。これにより、ＣＰＵ１０４は、ＶＰＮ等のネットワーク１４０を介してリモートＵＳＢハブ３らから送られてきた入力情報（キーボードおよびマウスの操作内容）を受信し、仮想マシンモニタ１０を介して仮想マシン２００に転送して処理させると共に、仮想マシン２００での処理結果を示す映像情報（ディスプレイのデスクトップ画面）を、ＶＰＮ等のネットワーク１４０を介してリモートＵＳＢハブ３や表示装置４１らに返す。
【００３５】
また、前記暗号化通信プログラムは、リモートＵＳＢハブ３らとの間にＶＰＮ等のネットワーク１４０を構築するための通信プログラムであり、例えばＩＰｓｅｃ（Security Architecture for the Internet Protocol）を用いた通信プログラムである。ＣＰＵ１０４は、ＯＳ１０８に従い、ＨＤＤ１０１から暗号化通信プログラム３７１をＲＡＭ１０３にロードして実行する。これにより、ＣＰＵ１０４は、ＮＩＣ１０５を介してリモートＵＳＢハブ３や表示装置４１らから受付けた接続確立要求等に従い、対象装置との間にＶＰＮ等のセキュアなネットワーク１４０を構築し、このＶＰＮ等を介して通信を行なう。
【００３６】
また、前記セッション管理エージェントは、仮想マシン２００とこれに割り当てされた利用者の端末、リモートＵＳＢハブ３らとのシンクライアント接続におけるセッション状態を管理するエージェントである。例えば、リモートＵＳＢハブ３を介したＨＩＤ５０，５１とのシンクライアント接続終了をモニタリングしており、セッション終了時にはその旨を情報処理装置１００に通知する。
【００３７】
一方、前記情報処理装置１００とネットワーク１４０を介して接続されるリモートＵＳＢハブ３は、ＵＳＢプロトコルをＩＰプロトコルに変換する中継装置となる。このリモートＵＳＢハブ３は、ホットキー３０を具備し、当該ホットキー３０が利用者らに押下されると、仮想マシン実行環境（を提供する情報処理装置１００）に対し、前記ホットキー３０が押された旨のイベントを通知する。上記仮想マシン実行環境において、遠隔の利用者はＨＩＤ５０やＨＩＤ５１により、動作中の仮想マシン２００を操作し、一方、仮想マシン２００の画面は遠隔の利用者の表示装置４０や表示装置４１に表示される。
【００３８】
他方、前記仮想マシン２００は、利用者の用いるＨＩＤ５０、５１での入力データをリモートＵＳＢハブ３のリモート操作クライアントを介して通信し、ＨＩＤ５０、５１らからの遠隔操作を実現するリモート操作サーバのプログラムを備える。
【００３９】
−−−処理例１−−−
以下、本実施形態におけるデバイス接続制御方法の実際手順について、図１、図２に基づき説明する。図２は本実施形態におけるデバイス接続制御方法の処理フロー例１を示す図である。なお、以下で説明するデバイス接続制御方法に対応する各種動作は、例えば、前記デバイス接続制御システム１を構成する各装置らが実行するプログラムによって実現される（勿論、ハードウェアとして実現してもよい）。そしてこのプログラムは、各装置の記憶手段に格納されており、実行に合わせてメモリに読み出され演算装置により実行される。
【００４０】
ここで、仮想マシン実行環境を提供する情報処理装置１００（以後、仮想マシン実行環境１００）に直接もしくはネットワーク１４０越しに接続されるＵＳＢデバイスは、仮想マシンモニタ１０が管理するプロセスであるＵＳＢバスドライバ１１４が制御する。ネットワーク１４０上のＵＳＢデバイスは、ＴＣＰ／ＩＰのプロトコルスタック１１１を介して仮想ＵＳＢハブ１１３に接続される。また、この仮想ＵＳＢハブ１１３を管理、制御しているＵＳＢバスドライバ１１４が、前記ＵＳＢデバイスを管理、制御する。
【００４１】
すなわち図１において、ＨＩＤ５０，５１と、表示装置４０，４１は、ＴＣＰ／ＩＰのプロトコルスタック１１１を介して仮想ＵＳＢハブ１１３に接続される。ＵＳＢバスドライバ１１４が管理、制御する仮想ＵＳＢハブ１１３を介して仮想マシンモニタ１０はＨＩＤ５０，５１と、表示装置４０，４１を管理、制御する。
【００４２】
上記において、前記ＴＣＰ／ＩＰのプロトコルスタック１１１、仮想ＮＩＣ１１２、仮想ＵＳＢハブ１１３、およびＵＳＢバスドライバ１１４は、各々仮想マシンモニタ１０が管理するプロセスであるが、仮想マシン実行環境１００が管理するプロセスとして実行し、仮想マシンモニタ１０がこれらプロセスを制御する構成としてもよい。
【００４３】
また、前記ホットキー３０が実装されたリモートＵＳＢハブ３には、表示装置４０とＨＩＤ５０，ＨＩＤ５１が接続されている。仮想マシン実行環境１００はホットキー３０が実装されたリモートＵＳＢハブ３と接続状態に有り、仮想マシン実行環境１００にＵＳＢのハブが追加される。仮想マシン実行環境１００は追加されたＵＳＢハブに表示装置４０とＨＩＤ５０，ＨＩＤ５１が接続されていると認識し、ＵＳＢのプラグアンドプレイで、表示装置４０とＨＩＤ５０，ＨＩＤ５１の各々に適切なドライバをロードし使用可能な状態にしている。
【００４４】
なお、前記表示装置４１はＩＰプロトコルでストリーミング配信された動画を受信し再生するテレビである。仮想マシン実行環境１００の仮想マシンモニタ１０が、前記ＶＲＡＭ４００のデータをエンコードし、この表示装置４１に配信している。
【００４５】
こうした状況において、前記リモートＵＳＢハブ３のホットキー３０が利用者により押下されたとする。するとこの押下イベントは当該リモートＵＳＢハブ３から仮想マシン実行環境１００にｈｔｔｐプロトコルのリクエストで送られる（ｓ１００）。リクエストを受信した仮想マシン実行環境１００は、仮想マシンモニタ１０に前記リクエストを中継し、前記ホットキー３０が押された旨イベントとして通知する（ｓ１０１）。一方、前記仮想マシンモニタ１０は前記イベントの通知を受信し、イベントとして処理する（ｓ１０２）。
【００４６】
なお、前記リモートＵＳＢハブ３は、前記ホットキー３０の押下イベントをｈｔｔｐプロトコルのリクエストで仮想マシン実行環境１００を介して仮想マシン２００に通知する他、ホットキー３０をリモートＵＳＢハブ３にＨＩＤとして実装する。そして、前記押下リクエストをこのＨＩＤからの入力として仮想マシンモニタ１０に通知するのである。ここでのリモートＵＳＢハブ３は、ＵＳＢハブとＨＩＤのマルチファンクションデバイスであり、本実施形態の仮想マシンモニタ１０においてはＵＳＢデバイスとして認識される。
【００４７】
前記リモートＵＳＢハブ３のＨＩＤ機能（ホットキー３０の機能など）には、キーボードやマウス、ジョイスティックとは異なるＨＩＤクラスのＩＤが割り当てられている。前記ＨＩＤ機能は、割り当てられたＩＤでＨＩＤデバイスとして振舞う。一方、前記仮想マシンモニタ１０は、ＵＳＢのプラグアンドプレイの際、前記割り当てられたＩＤに該当するドライバをロードし該当ＵＳＢデバイスを使用可能な状態にする。
【００４８】
よって、前記仮想マシンモニタ１０は、前記ホットキー３０での押下イベントをＨＩＤからの入力として扱い、前記割り当てられたＩＤに基づきホットキー３０からのイベントと認識し処理する。
【００４９】
次に、前記仮想マシンモニタ１０は、認証ダイアログを表示する為、仮想マシンモニタ用に仮想マシン実行環境の記憶手段１０１に確保されている記憶領域から、認証ダイアログ描画用のデータを読み出す。そして、例えばＶＲＡＭ４０１に認証ダイアログとその背景を描画してエンコードし、前記ネットワーク１４０およびリモートＵＳＢハブ３を介して表示装置４０で表示させる（ｓ１０３）。こうして、前記ホットキー３０の押下に呼応した前記仮想マシンモニタ１０は、当該仮想マシンモニタ１０に接続され、表示装置識別用の表示装置番号を付与してある表示装置（この場合、表示装置４０）に認証ダイアログを表示させる。
【００５０】
仮想マシンモニタ１０がこうして認証ダイアログを表示させるのは、後述するステップｓ１０５での認証処理の他に、後述するステップｓ１０６でのポートバインドの為、該当利用者がどのＨＩＤとどの表示装置を利用したいのか特定することを目的としている。
【００５１】
前記ＶＲＡＭ４０１に描画した認証ダイアログとその背景のエンコードデータは、前記ＴＣＰ／ＩＰプロトコルスタック１１１からＩＰパケットとしてネットワーク１４０を介してリモートＵＳＢハブ３に送信され、リモートＵＳＢハブ３が前記ＩＰパケットをＵＳＢプロトコルのパケットに変換を行って、前記表示装置４０に配信される。
【００５２】
なお、前記仮想マシンモニタ１０は、前記ホットキー３０から仮想マシン実行環境１００までの経路や過去の利用状況、例えば前記ホットキー３０とリモートＵＳＢハブ３に接続されたキーボードと表示装置との組み合わせ履歴（後述する管理テーブル１６にて記憶）を参考に、前記ホットキー３０が押されたリモートＵＳＢハブ３に接続されている表示装置４０を選択し、前記ＶＲＡＭ４０１に認証ダイアログを描画した。この表示装置の選択処理の詳細については後述する。
【００５３】
他方、前記仮想マシンモニタ１０は、前記ＶＲＡＭ４００に認証ダイアログの背景のみを描画してエンコードし、前記ネットワーク１４０およびリモートＵＳＢハブ３を介して表示装置４１で表示させる（ｓ１０４）。
【００５４】
なお、利用されていない状態にある表示装置に対しては、前記仮想マシンモニタ１０がこれを監視・検知してビデオ信号の送信を止め、表示装置が具備する節電モードに遷移させるとよい。これにより表示装置の節電や画面焼きつきによる劣化防止を図る。
【００５５】
前記表示装置４０の周囲には、当該表示装置４０がＵＳＢ接続しているリモートＵＳＢハブ３に同じくＵＳＢ接続されているＨＩＤ５０が設置されている。また、前記表示装置４１の周囲には同様にＨＩＤ５１が設置されているとする。利用者は前記認証ダイアログが表示された前記表示装置４０の周囲にあるＨＩＤ５０を操作して、利用者のＩＤとパスワードを入力する。ここで入力されたＩＤとパスワードは、前記ＨＩＤ５０からリモートＵＳＢハブ３を介して前記仮想マシンモニタ１０が受け取って認証処理を行う（ｓ１０５）。仮想マシンモニタ１０は、前記ＩＤとパスワードを、例えば、前記仮想マシン実行環境１００の記憶手段１０１に予め記憶済みの前記利用者のＩＤ・パスワードと照合し、その一致／不一致で認証成功／失敗の判定を行う。
【００５６】
前記利用者に関する認証に成功すると（ｓ１０５：ＯＫ）、前記仮想マシンモニタ１０は、認証に成功した利用者が使用中の表示装置４０とＨＩＤ５０の情報をバインド（関連付け）し所定の記憶手段に記憶する（ｓ１０６）。前記利用者に関する認証に失敗すると（ｓ１０５：ＮＧ）、前記仮想マシンモニタ１０は、例えば、処理を終了する。
【００５７】
前記利用者に関する認証に成功した前記仮想マシンモニタ１０は、前記ステップｓ１０６と並行して、前記利用者に割り当てている仮想マシン２００を起動する、またはスリープ状態や休止状態から復帰させる（ｓ１０７）。利用者毎の仮想マシン２００の割当管理は、通常のシンクライアント接続におけるクライアントへのシンクライアントサーバの割当管理と同様に、利用者と仮想マシン２００との対応関係を記憶手段に設けた所定のテーブルに設定して行う。例えば、仮想マシン実行環境１００ないし仮想マシンモニタ１０、或いはシンクライアント接続の一般的な管理用サーバがこの管理を実行している。
【００５８】
前記仮想マシン２００が起動または復帰すると、仮想マシンモニタ１０は、前記ステップｓ１０６で情報をバインドした表示装置４０とＨＩＤ５０を、仮想マシン２００にプラグし、これら表示装置４０とＨＩＤ５０の使用権限を当該仮想マシンモニタ１０から仮想マシン２００に移譲する（ｓ１０８）。このステップｓ１０８が完了した時点で、前記仮想マシン２００へのログオン認証が行われる。
【００５９】
前記仮想マシン２００のＯＳはＵＳＢデバイスとして前記表示装置４０とＨＩＤ５０を認識し、ＵＳＢのプラグアンドプレイで、各々に適切なドライバをロードし使用可能な状態にする。前記仮想マシン２００は、前記ステップｓ１０８を終えた時点で、排他的に表示装置４０とＨＩＤ５０を占有する。
【００６０】
一方、前記表示装置４１やＨＩＤ５１の使用権限は依然として仮想マシンモニタ１０が占有しており、ＨＩＤ５１から仮想マシン２００に入力したり、仮想マシン２００から表示装置４１に表示することは出来ない。すなわち、仮想マシン２００に対して、表示装置４１やＨＩＤ５１から干渉したり、乗っ取ることは出来ない。
【００６１】
前記仮想マシン２００に、前記表示装置４０がプラグされプラグアンドプレイに成功すると、仮想マシン２００に１つディスプレイが増える。前記仮想マシン２００は起動時点では仮想の表示装置（仮想マシンモニタ１０によりエミュレートされたもの）のみを持ち、仮想マシンモニタ１０が表示装置４０をプラグすることで初めて外部の表示装置を得て、外部の表示装置に表示処理が可能となる。仮想マシンモニタ１０が表示装置４０をプラグすることで外部の表示装置が得られるため、前記仮想マシン２００は仮想の表示装置が無い状態で起動しても構わない。
【００６２】
また、前記仮想マシンモニタ１０が、前記仮想マシン２００の起動前に当該仮想マシン２００に対する仮想表示装置を準備して仮想マシン２００に公開し、仮想マシンモニタ１０内で仮想表示装置に表示装置４０をプラグするとしてもよい。この場合、起動後の仮想マシン２００が前記仮想表示装置に描画したデータを透過的に前記表示装置４０に表示する要領で、仮想マシンモニタ１０による前記ステップｓ１０８のプラグにおける仮想マシン２００でのプラグアンドプレイを省略することも可能である。
【００６３】
その後、前記利用者が前記仮想マシン２００からログアウトやログオフしたり、或いは前記仮想マシン２００をシャットダウンやスリープ、休止にしたり、または前記ステップのいずれかのステップで処理に失敗すると、仮想マシンモニタ１０はこれを検知し、前記ホットキー３０が押下される前の状態、すなわち仮想マシンモニタ１０が表示装置４０とＨＩＤ５０を占有していた状態に戻す（ｓ１０９）。
【００６４】
すなわち前記仮想マシン２００が占有しないことになった表示装置４０とＨＩＤ５０は、仮想マシンモニタ１０が占有する。前記表示装置４０とＨＩＤ５０を占有する間、仮想マシンモニタ１０は、占有している表示装置４０とＨＩＤ５０の状態を監視ないし把握し、また前記表示装置４０やＨＩＤ５０のＵＳＢ接続が解除されたり、通信が途切れたり、或いはホットキーが押された事象や、利用者がどの表示装置４０やＨＩＤ５０で認証を試み、その結果、表示装置４０やＨＩＤ５０をどの仮想マシン２００に移譲したか等のログを記憶手段の管理テーブル１６に格納し残しておく。
【００６５】
前記管理テーブル１６のログに基づき、利用者が好んで使うＨＩＤと表示装置の組み合わせ（例えば、所定期間中に所定頻度以上の利用があったＨＩＤと表示装置の組み合わせなど）が予め明確であり、この組み合わせに一定期間変化がない場合、前記ステップｓ１０５の認証で利用者を認証して認証に成功後に、ステップｓ１０６において、前記利用者用の仮想マシン２００に、当該利用者が好んで使うＨＩＤと表示装置を接続し、その後の仮想マシン２００へのログオン認証を省略しても構わない。
【００６６】
また、会社等組織のネットワーク内での利用で、不特定多数で共有し排他的に利用するＫＩＯＳＫ端末様態では、仮想マシン実行環境へのアクセス権限や仮想マシン２００の実行権限の確認を目的とするステップｓ１０５の認証は省略し、ステップｓ１０８完了後の仮想マシン２００へのログオン時の認証に一元化しても構わない。
【００６７】
また、前述のステップｓ１０５の認証を省略する場合、仮想マシン実行環境が載った情報処理装置１００に接続されている複数のＨＩＤと複数の表示装置の中から、ＨＩＤと表示装置をステップｓ１０３でバインドする必要があるので、仮想マシンモニタ１０は、前記認証ダイアログの代わりに認証を伴わないダイアログを表示装置４０に表示させ、利用者にこのダイアログをＨＩＤ５０で操作させる事でＨＩＤ５０と表示装置４０をバインドするとしても構わない。
【００６８】
以上の構成によれば、複数の表示装置と複数のＨＩＤから利用者が認証に使った表示装置とＨＩＤを特定して両者をバインドし、バインドした表示装置とＨＩＤを利用者の仮想マシン２００にプラグすることができる。この利用者は前記バインドした表示装置とＨＩＤを介して前記仮想マシン２００を利用することが出来る。バインドした表示装置とＨＩＤのみが前記仮想マシン２００にプラグされ、他の表示装置や他のＨＩＤに仮想マシン２００を乗っ取られることは無い。また、前記仮想マシンモニタ１０が表示装置をプラグすることで前記仮想マシン２００は外部の表示装置が得られる。従ってこの仮想マシン２００は仮想の表示装置が無い状態で起動できる。
【００６９】
−−−処理例２−−−
図３は、本実施形態におけるホットキー３０の種別ごとの処理内容例を示す図である。ここでは、前記ホットキー３０の種別ごとにステップｓ１０３とステップｓ１０５を詳述し、上記処理例１と重複するステップｓ１０６〜ステップｓ１０８の説明は割愛する。
【００７０】
前記ホットキー３０としては、前記表示装置のリモコンのボタンや表示装置に表示されているボタン、キーボードやマウスの特定のボタン、リモートＵＳＢハブ３が具備するボタンの主に３種類を想定している。
【００７１】
こうしたホットキー３０が押されると、上記処理例１で説明したステップｓ１０１〜ステップｓ１０８の手順を踏んで、仮想マシンモニタ１０は表示装置とＨＩＤを仮想マシン２００に接続し、利用者が仮想マシン２００を使えるようになるのであるが、想定した３種類のホットキー毎に、ステップｓ１０３での認証ダイアログの表示とＨＩＤデバイスの操作が異なる。
【００７２】
例えば、表示装置４０、４１のリモコンのボタンや表示装置４０、４１に表示されているボタンがホットキー３０である場合、表示装置が表示するメニューやリモコン表面に複数のボタンが配置され、各々所定のサービスや機能を指し示している。前記メニュー上におけるボタンの並びは、例えばリモコンの１〜０の数字キー所謂テンキーの並びに準じている。メニュー上に表示されているボタンの中から前記ホットキー３０に割り当てられているボタンを利用者が押したい場合、押したいボタンの並びに対応したリモコンの数字キーを選んで利用者が押す。すると、例えばリモコンの赤外線通信装置が該当ボタンのキーデータを表示装置に送信する。
【００７３】
例えば、表示装置４０はこのキーデータを赤外線受光部で受信し、メニュー中で表示されているホットキー対応ボタンが押されたことを認識する。こうしてホットキーが押されたことを認識した表示装置４０は、ホットキーが押された旨を仮想マシンモニタ１０にイベントとして通知する（前記ステップｓ１０３）。  
一方、前記仮想マシンモニタ１０はこの表示装置４０に前記認証ダイアログを表示すべく、仮想マシンモニタ１０のＶＲＡＭ４０１に認証ダイアログとその背景を描画し、その描画データを前記表示装置４０に送信し表示させる（前記ステップｓ１０４）。
【００７４】
前記表示装置４０の周囲にはＨＩＤ５０が置かれており、利用者は認証ダイアログが表示された表示装置４０の周囲にあるＨＩＤ５０を操作して、利用者のＩＤとパスワードを入力する。ここで入力されたＩＤとパスワードは、ＨＩＤ５０からリモートＵＳＢハブ３およびネットワーク１４０を介して仮想マシンモニタ１０が受け取り、認証処理を行う（前記ステップｓ１０５）。
【００７５】
一方、キーボードやマウスの特定のボタンや、リモートＵＳＢハブ３が具備するボタンがホットキーである場合は以下の通りの処理手順となる。この場合、前記ホットキーが利用者により押されると、仮想マシン実行環境１００は仮想マシンモニタ１０にホットキーが押された旨イベントとして通知する（前記ステップｓ１０３）。  
前記仮想マシンモニタ１０は、認証ダイアログを表示すべく前記ＶＲＡＭ４０１に認証ダイアログとその背景を描画し、例えば、表示装置が複数ある場合一つの表示装置に描画データを表示させる（前記ステップｓ１０４）。
【００７６】
この時、前記利用者は前記ホットキー３０を押下したキーボードやマウス、リモートＵＳＢハブ３の周囲の表示装置に前記認証ダイアログが表示されることを期待している。前記仮想マシンモニタ１０は、接続されている表示装置が複数ある場合、前記ホットキーが押されたキーボードやマウス、リモートＵＳＢハブ３の周囲の表示装置に認証ダイアログを表示するように務める（この処理については後述）。
【００７７】
例えば、前記利用者が期待した表示装置に認証ダイアログが表示されなかった場合、この利用者が目にしている表示装置には背景のみが表示されている。そこでこの利用者は、キーボードやマウスを操作して背景のみ表示されている表示装置に、認証ダイアログを移動させる操作を行うこととなる。
【００７８】
認証ダイアログの表示装置間の移動方法は例えば３種類を想定できる。一つは、最寄りの表示装置に背景のみが表示された時点で、前記利用者は改めてキーボードのホットキーを押す。すると、再度のホットキー押下のデータを受けた仮想マシンモニタ１０が、予め前記キーボードに対応付けた表示装置（つまり前記利用者の最寄りの表示装置）に付与してある通し番号（管理テーブル１６から読み出す）を、該当表示装置に表示させる。前記利用者は前記キーボードでこの通し番号を押す。例えば通し番号が「２」なら数字キーの「２」を利用者が押す。すると、この通し番号の押下データが仮想マシンモニタ１０に返信される。仮想マシンモニタ１０はこれを受けて、今まで背景のみ表示させていた表示装置に対し、ＶＲＡＭに描画した認証ダイアログの描画データを送信して表示させる。前記表示装置では認証ダイアログの画面が表示される一方、それまで認証ダイアログが表示されていた表示装置から認証ダイアログは消えて背景のみの表示となる。
【００７９】
もう一つは、例えば、最寄りの表示装置に背景のみが表示された時点で、前記利用者が改めてキーボードのＴＡＢキーを押す。すると、このＴＡＢキーの押下データを受けた仮想マシンモニタ１０は、それまで認証ダイアログを表示していた表示装置から認証ダイアログを消し、別の表示装置に認証ダイアログを表示させる。仮想マシンモニタ１０に接続されている表示装置が例えば３台あった場合、前記利用者がＴＡＢキーを押す毎に、１台目から順番に認証ダイアログの表示対象が切り換わり、３台目の表示装置にて認証ダイアログの表示がなされている時にまたＴＡＢキーの押下があれば、表示対象を１台目に戻す。こうして、背景のみが表示されていた表示装置に認証ダイアログを順次表示させることができる。
【００８０】
ところで、背景のみが表示されている表示装置にマウスポインタは表示されていない。そこでＨＩＤとしてマウスが使われる場合、前記利用者はマウスを縦横に動かして（例えば、マウスポインタが画面で見えるまで一定方向にマウスポインタの移動動作を継続する）マウスポインタを目前の表示装置まで表示させる。利用者は、目前の表示装置でマウスポインタが視認できたならば、例えば前記マウスの右ボタンをクリックする。するとこの右クリックがなされた前記目前の表示装置の情報が前記リモートＵＳＢハブ３から仮想マシンモニタ１０に送信される。仮想マシンモニタ１０はこの表示装置の情報を受けて、該当表示装置に対して前記認証ダイアログを表示させる。
【００８１】
或いは、前記マウスの右ボタンを利用者が押し続けたことを仮想マシンモニタ１０ないしリモートＵＳＢハブ３が検知して、ポップアップメニューを該当表示装置に表示させるとしてもよい。この場合、前記利用者が前記ポップアップメニューのアイテムから認証ダイアログを選び、前記右ボタンから押していた指を離すと、認証ダイアログの表示指示として仮想マシンモニタ１０が認識し、該当表示装置に認証ダイアログを表示させることも出来る。なお、利用者がこのポップアップメニューから、中止やキャンセルを選んで右ボタンから押していた指を離すと、これを仮想マシンモニタ１０が検知し、前記ステップｓ１０３を中止してホットキーが押される前の状態に戻す。
【００８２】
前記認証ダイアログが表示装置に表示されると、利用者はキーボードとマウスを操作して、利用者のＩＤとパスワードを入力する。ここで入力されたＩＤとパスワードは仮想マシンモニタ１０が受け取って認証する（ステップｓ１０５）。
【００８３】
なお、上記例では、複数の表示装置の中から１台を選んで認証ダイアログを表示しているが、複数台の表示装置に同時に認証ダイアログを表示するとしてもよい。この場合、例えば、認証ダイアログに識別子、例えばCAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart)を表示したり、表示装置に識別子が刷り込まれたステッカーを貼る。利用者は認証の際にＩＤとパスワードと識別子を入力し、一方、仮想マシンモニタ１０はこの利用者に関して認証に成功した表示装置を前記識別子等で特定できる。
【００８４】
上記処理例２において、ホットキーは、ＨＩＤやリモートＵＳＢハブ、表示装置に表示されたボタンもしくは表示されたボタンに割り当てられたリモコンの数字ボタンで実現できる。また、仮想マシン実行環境に複数の表示装置がつながった状態でも、認証ダイアログを表示する表示装置を利用者の意図した表示装置に切換えて、認証処理を実行出来る。また、仮想マシンモニタ１０は、認証に成功した利用者が使ったＨＩＤと表示装置を容易に特定できる。
【００８５】
−−−処理例３−−−
図４は本実施形態における管理テーブルの状態例を示す図である。また、図５は、本実施形態のデバイス接続制御方法における処理手順例３を示す図である。前記仮想マシンモニタ１０は、前記管理テーブル１６において仮想マシン実行環境に接続されたデバイスと利用者と仮想マシン２００と情報処理装置１００との対応関係を管理する。そこで、前記ステップｓ１０１〜ステップｓ１０８まで手順を踏む際の前記管理テーブル１６の状態について以下説明する。
【００８６】
なお、前記管理テーブル１６は、前記仮想マシンモニタ１０のＯＳがメモリ上に展開するテーブルである。図４は、前記管理テーブル１６の一部を抜粋したもので、デバイス管理とアカウント管理、仮想マシン管理、起動管理、接続先管理の各データ例を示している。
【００８７】
前記起動管理と接続先管理のデータ内容は、仮想マシンモニタ１０が別途管理するレジストリファイルの該当データをコピーしたものである。過去に仮想マシンモニタ１０がプラグアンドプレイしたデバイスに発見したホットキーと接続経路の情報が起動管理に、そのホットキーで仮想マシン２００を起動した利用者のアカウント情報が接続先管理にそれぞれ保持されている。
【００８８】
図４に示す管理テーブル１６の例において、起動管理のデータとして３つのホットキーと接続経路が登録されている。１番目のレコードは通し番号が「＃１」で、実体は仮想マシン実行環境の電源ボタンであり、その接続経路は「直付け」である。２番目のレコードは通し番号が「＃９５」で、実体はリモートＵＳＢハブ３が具備するホットキーであり、その接続経路はリモートＵＳＢハブ３のＩＰアドレスである「ｉｐ＃１」である。３番目のレコードは通し番号が「＃９８」で、実体は表示装置４１に表示されるボタンであり、接続経路は前記表示装置４１のＩＰアドレスである「ｉｐ＃２」である。
【００８９】
一方、前記デバイス管理、アカウント管理、仮想マシン管理の各データは、仮想マシンモニタ１０のＯＳがメモリ上に展開し、その内容は仮想マシンモニタ１０もしくは仮想マシン実行環境がシャットダウンすると消失する。
【００９０】
前記デバイス管理のデータとしては、ＵＳＢハブとポート番号を示すポート情報と、デバイスの種別と、デバイスクラス毎の通し番号と、接続経路と、表示装置番号（仮想マシンモニタ１０が表示装置を識別する為に付与した番号）が保持される。
【００９１】
図中、ポート番号はＵＳＢハブの通し番号と当該ＵＳＢハブのポートの番号を「−」で区切って表記している。例えば、ポート「＃１−１」は、仮想マシン実行環境を提供する情報処理装置１００が具備するＵＳＢハブの１番目のポートを意味する。以後のハブの通し番号は見つかった順に付与され、リモートＵＳＢハブ３は２番目に（デバイスクラス毎の通し番号が‘＃２’）、ポート「＃２−３」につながるＨＩＤ５０内のＵＳＢハブは３番目に（デバイスクラス毎の通し番号が‘＃３’）見つかったことを意味する。
【００９２】
上述の通り、ポート「＃２−３」につながっているＨＩＤ５０に対してエニュメレーションする過程で、ＨＩＤ５０内にＵＳＢのハブが見つかる。このプラグアンドプレイの結果、ＨＩＤ５０内のＵＳＢハブが使用可能となると、仮想マシン実行環境を提供する情報処理装置１００に、前記ＨＩＤ５０内のＵＳＢハブから接続イベントが到着する。情報処理装置１００は、前記ＨＩＤ５０内のＵＳＢハブの当該ポートにつながるデバイスをエニュメレーションする。図の通り、ポート「＃３−１」にはＨＩＤ５０の実体であるＨＩＤが見つかり、ポート「＃３−２」にはＨＩＤ５０内のＵＳＢハブにケーブルで外付けされたＣＤ−ＲＯＭドライブが見つかり、それぞれプラグアンドプレイされ、使用可能となる。
【００９３】
前記ＨＩＤ５０内のＵＳＢハブにケーブルで外付けされるデバイスはＣＤ−ＲＯＭドライブに限らず、ＵＳＢメモリ等のマスストレージや生体認証装置、ＩＣカードリーダライタ、プリンタ、スキャナ、キャッシュレジスタのお金が入ったドロワ等のＵＳＢデバイスでもかまわない。
【００９４】
また、前記アカウント管理のデータとしては、個々のデバイスを占有している利用者すなわち認証に成功して仮想マシン２００にログインもしくはログオンした利用者のアカウント名が設定される。また、前記仮想マシン管理のデータとしては、デバイスを占有している仮想マシン２００の識別番号とその仮想マシン２００を稼働させている情報処理装置１００（＝仮想マシン実行環境）の識別番号が設定される。あるデバイスのアカウント管理と仮想マシン管理の各データが空欄である場合、そのデバイスは仮想マシンモニタ１０が占有している。
【００９５】
利用者が認証に成功して仮想マシン２００にログインもしくはログオンすると、仮想マシンモニタ１０は、ログ取得と学習を兼ねて前記管理テーブル１６における接続先管理のデータとして、前記利用者のアカウント名を設定しレジストリに保存する。
【００９６】
続いて、前記ステップｓ１０１〜ステップｓ１０８の手順に従って図４の管理テーブルを説明する。ここで、前記ホットキー３０が利用者に押されると、仮想マシン実行環境１００は仮想マシンモニタ１０に対し、前記ホットキー３０が押された旨イベントとして、ホットキー３０の通し番号「９５」を通知する（前記ステップｓ１０１）。仮想マシンモニタ１０は、前記管理テーブル１６の起動管理のデータを参照し、前記ホットキー３０の通し番号「９５」に基づき、経路を「ｉｐ＃１」すなわちリモートＵＳＢハブ３のＩＰアドレスと特定することができる。
【００９７】
前記仮想マシンモニタ１０は、前記経路を特定したので、直付けの表示装置以外の表示装置すなわちポート「＃２−１」と「＃２−２」に接続されている表示装置（表示装置４０と表示装置４１）に、前記ステップｓ１０３の認証ダイアログを表示させる。ここでは、経路「ｉｐ＃１」すなわちリモートＵＳＢハブ３の先の表示装置は「＃２−１」の表示装置４０なので、仮想マシンモニタ１０は、認証ダイアログを前記表示装置４０に表示させ、他方、表示装置４１には背景のみを表示させる（前記ステップｓ１０３、ｓ１０４）。
【００９８】
この時、利用者は認証ダイアログが表示された前記表示装置４０の周囲にあるＨＩＤ５０を操作して、利用者のＩＤとパスワードを入力する。入力されたＩＤとパスワードは仮想マシンモニタ１０が受け取り認証する（前記ステップｓ１０５）。この認証に成功したならば、仮想マシンモニタ１０は、前記管理テーブル１６における、リモートＵＳＢハブ「＃２−３」に関するアカウント管理のデータとして、例えば「ｕｓｒ１」を設定する。
【００９９】
なお、ポート「＃３−１」につながるＨＩＤ５０は、リモートＵＳＢハブ３に直接つながらず、ＨＩＤ５０内のＵＳＢハブを介してリモートＵＳＢハブ３につながっている。前記ステップｓ１０８で表示装置４０とＨＩＤ５０は仮想マシン２００にプラグし、仮想マシン２００のＯＳはＵＳＢデバイスとして表示装置４０とＨＩＤ５０を認識し、プラグアンドプレイする。そこで、前記仮想マシン２００は、前記ＨＩＤ５０について、ＨＩＤ５０内のＵＳＢハブ、このＵＳＢハブのポートにつながるＨＩＤ、ＨＩＤ５０内のＵＳＢハブにケーブルで外付けされたＣＤ−ＲＯＭドライブの順にプラグアンドプレイを行う。
【０１００】
すなわち、ＨＩＤ５０内のＵＳＢハブもＣＤ−ＲＯＭドライブも仮想マシン２００が占有する。よって、前記ステップｓ１０５の時点で、このＨＩＤ５０内のＵＳＢハブの認識に成功した仮想マシンモニタ１０は、前記管理テーブル１６における、ＨＩＤ「＃３−１」に関するアカウント管理のデータとして、前記「ｕｓｒ１」を設定する。また、このＵＳＢハブには、ポート「＃３−２」にＣＤ−ＲＯＭドライブが接続されている。前記仮想マシンモニタ１０は、前記ステップｓ１０５の時点で、このＣＤ−ＲＯＭドライブの認識に成功したならば、前記管理テーブル１６における、ＣＤ−ＲＯＭドライブ「＃３−２」に関するアカウント管理のデータとして前記「ｕｓｒ１」を設定する。
【０１０１】
前記ステップｓ１０５での認証処理に成功すると、前記仮想マシンモニタ１０は、認証に成功した利用者が使用中の表示装置４０とＨＩＤ５０をバインド（関連付け）する。前記仮想マシンモニタ１０は、前記管理テーブル１６におけるデバイス管理のデータにおいて、ポート「＃２−１」に接続されている表示装置４０に認証ダイアログを表示中に、ポート「＃３−１」に接続されているＨＩＤ５０からの入力データに基づいて利用者認証に成功した事を根拠に、前記表示装置４０とＨＩＤ５０をバインドし、前記管理テーブル１６における表示装置「＃２−１」に関するアカウント管理データベースとして前記「ｕｓｒ１」を設定する（前記ステップｓ１０６）。
【０１０２】
前記ＨＩＤ５０には上述の通り、ＨＩＤ５０内のＵＳＢハブとこのＵＳＢハブにケーブルで外付けされたＣＲ−ＲＯＭドライブが含まれ、都合４つのＵＳＢデバイスがバインドされる。認証に成功した利用者は仮想マシン２００から、このＣＤ−ＲＯＭドライブを排他的に占有し、独占的に利用する。
【０１０３】
なお、前記ＨＩＤ５０内にＵＳＢハブを具備する事で、他のＵＳＢ機器（ＣＤ−ＲＯＭドライブ等）のバインドと独占を実現しているが、既製のＵＳＢハブをリモートＵＳＢハブ３に接続し、この既製のＵＳＢハブに接続したＨＩＤないし表示装置で認証に成功すれば、認証に成功した利用者は、この利用者の仮想マシン２００から既製のＵＳＢハブに接続されたＵＳＢデバイスを排他的に占有し、独占的に利用できる。
【０１０４】
また、前記ＨＩＤ５０内のＵＳＢハブや既製のＵＳＢハブを仮想マシン２００が占有した状態で利用中に、これらＵＳＢハブに別途ＵＳＢデバイスが挿されると上記同様にプラグアンドプレイが実行される。そして、別途挿されたＵＳＢデバイスも前記利用者が排他的に占有し、独占的に利用できる。
【０１０５】
上述の通り、前記ＨＩＤ５０内のＵＳＢハブや既製のＵＳＢハブをＨＩＤと表示装置と一緒にバインドし、仮想マシン２００にプラグする事でこれらＵＳＢハブに接続されるＵＳＢデバイスが利用できる。しかし、企業や官公庁では、利用者による安易なＵＳＢデバイス接続や利用を抑止する必要がある。一般的なＰＣでは、接続されたＵＳＢデバイスについてその製品名や種別を認識し、例えば該当デバイスのクラスドライバを差換えたり、デバイスへのアクセスをフィルタリングするドライバを挿入してＵＳＢデバイスの利用を制限ないし抑止している。クラスドライバの差換えやフィルタリングするドライバの挿入は前記仮想マシン２００に適用してもよく、そうした場合、ＵＳＢデバイスの利用を制限ないし抑止できる。
【０１０６】
一方、前記ステップｓ１０６に並行して、仮想マシンモニタ１０は利用者の仮想マシン２００を起動する（前記ステップｓ１０７）。またはスリープ状態や休止状態から復帰させる。この時、前記仮想マシン２００は、仮想マシンモニタ１０が起動する１台目の仮想マシン２００となるので通し番号「１」が付与される。よって、前記管理テーブル１６におけるポート「＃２−３」＝リモートＵＳＢハブ３、と「＃２−１」＝表示装置４０に関する仮想マシン管理のデータとして、前記仮想マシンモニタ１０は、通し番号「＃１」を設定することになる。
【０１０７】
仮想マシン２００が起動または復帰すると、前記仮想マシンモニタ１０は、前記ステップｓ１０６でバインドした表示装置４０とＨＩＤ５０を仮想マシン２００にプラグし、前記表示装置４０とＨＩＤ５０の使用権限を仮想マシン２００に移譲する（前記ステップｓ１０８）。仮想マシン２００のＯＳはＵＳＢデバイスとして前記表示装置４０とＨＩＤ５０を認識し、ＵＳＢのプラグアンドプレイで、各々に適切なドライバをロードし使用可能な状態にする。このステップｓ１０８を終えた時点で、仮想マシン２００は、排他的に前記表示装置４０とＨＩＤ５０を占有する。
【０１０８】
前記仮想マシン２００に前記表示装置４０がプラグされプラグアンドプレイに成功すると、仮想マシン２００に１つディスプレイが増える。上記例での仮想マシン２００は、起動時点で仮想の表示装置のみを持ち、仮想マシンモニタ１０が表示装置４０をプラグすることで初めて外部の表示装置を得ることとなる。仮想マシンモニタ１０が表示装置４０をプラグすることで外部の表示装置が得られるため、前記仮想マシン２００は仮想の表示装置が無い状態で起動しても構わない。  
この時点で、仮想マシンモニタ１０は、前記管理テーブル１６における接続先管理のデータとしてアカウント名「ｕｓｒ１」を設定する。
【０１０９】
前記利用者が前記仮想マシン２００からログアウトやログオフしたり、仮想マシン２００をシャットダウンやスリープ、休止にしたり、または上述のステップｓ１０１〜ステップｓ１０８のいずれかのステップで処理に失敗すると、仮想マシンモニタ１０は、前記ホットキー３０が押される前の状態、すなわち仮想マシンモニタ１０が表示装置４０とＨＩＤ５０を占有する状態に戻す。この場合、前記管理テーブル１６では、仮想マシンモニタ１０により、アカウント管理と仮想マシン管理の各データが空欄に戻される。
【０１１０】
一方、仮想マシン２００が占有していない表示装置とＨＩＤ、ＵＳＢハブやＵＳＢハブにつながるＵＳＢデバイスは、仮想マシンモニタ１０が占有する。仮想マシンモニタ１０は、これら表示装置とＨＩＤ、ＵＳＢハブやＵＳＢハブにつながるＵＳＢデバイスを占有する間、占有している表示装置とＨＩＤ、ＵＳＢデバイスの状態を監視ないし把握する。また、仮想マシンモニタ１０は、表示装置やＨＩＤ、リモートＵＳＢハブへのＵＳＢハブの挿抜や、ＵＳＢデバイスの挿抜とプラグアンドプレイの成否、通信の途絶、ホットキーの押下、どの表示装置やＨＩＤで利用者が認証を試み、どの仮想マシン２００に表示装置らの占有権が移譲されたか等のログを所定の記憶手段に記録する。
【０１１１】
以上の例によれば、前記仮想マシンモニタ１０は、前記管理テーブル１６を管理・利用することで、ＯＳには単純にポートにつながっていると認識されるＨＩＤや表示装置の接続経路を把握でき、押されたホットキーと同一経路もしくは周辺のＨＩＤや表示装置を特定でき、特定した表示装置に認証ダイアログを表示できる。
【０１１２】
また、仮想マシンモニタ１０は、認証に成功した利用者が認証に使った表示装置とＨＩＤを特定してバインドし、バインドした表示装置とＨＩＤを一意に仮想マシン２００にプラグできる。前記利用者は前記表示装置やＨＩＤを介して仮想マシン２００を利用することが出来る。
【０１１３】
また、前記リモートＵＳＢハブ３にＵＳＢハブを介してＨＩＤや表示装置が接続されると、前記仮想マシンモニタ１０は、このＵＳＢハブにつながる他のＵＳＢデバイスを、前記ＨＩＤと表示装置にバインドし、認証に成功した前記利用者が仮想マシン２００から前記ＵＳＢデバイスらを排他的に占有し、独占的に利用できることになる。
【０１１４】
−−−処理例４−−−
図５は、本実施形態の表示装置におけるメニュー表示中のホットキーを示す図である。テレビなどの表示装置のリモコンのボタンや、表示装置に表示されているボタンがホットキーである場合を想定する。この場合、前記表示装置が表示するメニューには複数のボタンが表示され、各ボタンは所定のサービスや機能に対応付いている。なお、前記表示装置としては、ＩＰプロトコルでストリーミング配信された動画を受信し再生するデジタルテレビを想定できる。
【０１１５】
図５に示すメニュー画面５００は、表示装置が表示している画面である。このメニュー画面５００において、画面中央付近から左端までがカレンダ表示で、このカレンダ表示中の日付についてのハイライトを利用者がリモコンからの指示で適宜移動させて所定日を選択すると、表示装置は、該当日付の天気やニュース、或いはｂｌｏｇや日記、受信したメール、その日の写真データなどを当該表示装置の備える記憶手段ないしネットワークで接続された記憶手段より読み出して表示する。一方、前記メニュー画面５００の右側には、複数のボタンが配置されている。これらボタンの並びはリモコンの１〜０の数字キー所謂１０キーの並びに準じている。表示されているボタンの中で、上段の３つのボタンのうち右端の「ＰＣ」と書かれたボタンがホットキー３１に割り当てられている。ホットキー３１に割り当てられたボタンを利用者が押したい場合、前記リモコンの同じ位置の数字キーを選んで押すことで、前記メニュー画面５００にて表示されている「ＰＣ」ボタンが押され、ホットキー３１を押したことになる。  
前記「ＰＣ」ボタンすなわちホットキー３１が押されると、前記表示装置はホットキー３１が押された旨を前記仮想マシンモニタ１０にイベントとして通知する（前記ステップｓ１０３）。
【０１１６】
一方、前記仮想マシンモニタ１０は、この表示装置に認証ダイアログを表示すべく、前記ＶＲＡＭに認証ダイアログとその背景を描画し、描画データを表示装置に送る。この時点で前記表示装置から前記メニュー画面５００の表示は消え、代わりに前記認証ダイアログがこの表示装置に表示されることとなる。
【０１１７】
前記表示装置の周囲にはＨＩＤがが置かれており、前記利用者は認証ダイアログが表示された前記表示装置の周囲にあるＨＩＤを操作して、利用者のＩＤとパスワードを入力する。ここで入力されたＩＤとパスワードは前記ＨＩＤから仮想マシンモニタ１０に送られる。仮想マシンモニタ１０は前記ＩＤ・パスワードを受け取って認証処理を行う（前記ステップｓ１０５）。
【０１１８】
以上の例によれば、ＩＰプロトコルでストリーミング配信された動画を受信し再生するテレビについても、画面表示したボタンをホットキーに対応させることが出来る。利用者は、ホットキーに対応付けたリモコンの数字キーでホットキーの押下動作を行うことが出来る。また、仮想マシンモニタ１０は前記テレビの画面に認証ダイアログを表示させられる。
【０１１９】
−−−処理例５−−−
図６は、本実施形態におけるデバイス接続制御システムの構成例２を示す図である。この例は、図１に示した１台目の仮想マシン２００が起動した後の状況を示している。前記仮想マシン２００は既に表示装置４０とＨＩＤ５０を占有し、仮想マシンモニタ１０は残された表示装置４１とＨＩＤ５１を占有している。
【０１２０】
利用者が、例えば図５で説明した表示装置４１のメニュー画面５００で表示されているホットキー３１を押すと、前記表示装置４１は仮想マシンモニタ１０に対し、前記ホットキー３１が押された旨のイベントを通知する。
【０１２１】
この時、前記仮想マシンモニタ１０は、認証ダイアログを表示する為、ＶＲＡＭ４００に認証ダイアログとその背景を描画する。そしてこのＶＲＡＭ４００のデータをエンコードして表示装置４１に配信する。この配信データを受信した表示装置４１は前記認証ダイアログとその背景を表示する（前記ステップｓ１０３）。前記表示装置４１では、それまで表示していた前記メニュー画面５００が消え去り、代わりに前記認証ダイアログが表示される。以後、前記表示装置４１のリモコンは、前記仮想マシンモニタ１０や仮想マシン２００の画面表示を止めて、前記メニュー画面５００に戻るかテレビ放送に切り換える際に用いられる。
【０１２２】
前記仮想マシンモニタ１０や仮想マシン２００への入力には、ＨＩＤであるキーボードとマウスが用いられる。前記表示装置４１の周囲にはＨＩＤ５１が置かれており、前記利用者は認証ダイアログが表示された表示装置４１の周囲にあるＨＩＤ５１を操作して、利用者のＩＤとパスワードを入力する。ここで入力されたＩＤとパスワードは表示装置４１から仮想マシンモニタ１０に送られる。仮想マシンモニタ１０は前記ＩＤ・パスワードを受け取って認証処理する（前記ステップｓ１０５）。
【０１２３】
仮想マシンモニタ１０は前記認証に成功すると、この認証に成功した利用者が使用中の表示装置４１とＨＩＤ５１をバインド（関連付け）する（前記ステップｓ１０６）。また仮想マシンモニタ１０は並行して、前記利用者の仮想マシン２０１を起動するか、またはスリープ状態や休止状態から復帰させる（前記ステップｓ１０７）。
【０１２４】
仮想マシン２０１が起動または復帰すると、仮想マシンモニタ１０は、前記ステップｓ１０６でバインドした表示装置４１とＨＩＤ５１を仮想マシン２０１にプラグし、表示装置４１とＨＩＤ５１の使用権限を仮想マシン２０１に移譲する（前記ステップｓ１０８）。前記仮想マシン２０１のＯＳはＵＳＢデバイスとして表示装置４１とＨＩＤ５１を認識し、ＵＳＢのプラグアンドプレイで、各々に適切なドライバをロードし使用可能な状態にする。前記ステップｓ１０８を終えた時点で、仮想マシン２０１は排他的に表示装置４１とＨＩＤ５１を占有する。
【０１２５】
前記表示装置４０やＨＩＤ５０は仮想マシン２００が占有しており、ＨＩＤ５０から仮想マシン２０１に入力したり、仮想マシン２０１から表示装置４０に表示することは出来ない。同様に、ＨＩＤ５１から仮想マシン２００に入力したり、仮想マシン２００から表示装置４１に表示することは出来ない。これにより、仮想マシン２００と仮想マシン２０１は互いに独立で、お互いに干渉したり、一方が他を乗っ取ることは出来ない。
【０１２６】
なお、前記仮想マシン２０１からログアウトやログオフしたり、仮想マシン２０１をシャットダウンやスリープ、休止にしたり、または上述のステップｓ１０１〜ステップｓ１０８のいずれかのステップで処理に失敗すると、仮想マシンモニタ１０は、前記ホットキー３１が押される前の状態、すなわち仮想マシンモニタ１０が表示装置４１とＨＩＤ５１を占有する状態に戻す。
【０１２７】
上記例によれば、仮想マシン実行環境に複数の表示装置と複数のＨＩＤが接続されていても、１対１対応で表示装置とＨＩＤを仮想マシンに接続できる。従って、複数の利用者が仮想マシン実行環境上で銘々の仮想マシンを利用できる。
【０１２８】
−−−表示画面の遷移例−−−
図７は、本実施形態における１台目と２台目の仮想マシンに対する一連の処理における表示画面の遷移例を示す図である。図７において、時間は紙面上から下に向かって経過し、この時間経過と前記ステップｓ１０１〜ステップｓ１０８の進行に従って、表示装置における表示画面が遷移する。
【０１２９】
例えば、前記リモートＵＳＢハブ３の具備する前記ホットキー３０が押されると、上述してきた通り、これに伴って認証ダイアログ４５がＶＲＡＭ４０１に描画され、前記認証ダイアログ４５が表示装置４０に表示される。ＶＲＡＭ４００には背景のみが描画され、例えば、他の表示装置４１に前記背景が表示される。前記仮想マシンモニタ１０は、前記ステップｓ１０１〜ステップｓ１０８を踏む。前記ステップｓ１０８を終えた時点で、前記仮想マシン２００は、排他的に表示装置４０とＨＩＤ５０を占有している。これにより表示装置４０には仮想マシン２００の画面２００が表示される。
【０１３０】
この後、仮想マシンモニタ１０は表示装置４１やＨＩＤ５１を占有している。ある時点で前記表示装置４１のホットキー３１が押されると、前記仮想マシンモニタ１０は、例えば、ＶＲＡＭ４００に認証ダイアログ４５を描画してそのデータをエンコードする。エンコードしたデータは仮想マシンモニタ１０から表示装置４１に配信され、表示装置４１が表示する。
【０１３１】
前記仮想マシンモニタ１０は前記ステップｓ１０１〜ステップｓ１０８を踏む。そして前記ステップｓ１０８を終えた時点で、前記仮想マシン２０１は、排他的に前記表示装置４１とＨＩＤ５１を占有している。これにより前記表示装置４１には仮想マシン２０１の画面２０１が表示される。
【０１３２】
以上の図１〜図７に基づき説明した、前記仮想マシンモニタ１０による仮想マシンとＵＳＢ機器の動的な接続制御手法は、仮想マシンモニタ１０が仮想マシンに公開している仮想ＮＩＣ１１２を介して、動的に仮想マシンへのＵＳＢ機器の接続制御を行うことで実現している。例えば、上述の実施例では仮想マシン実行環境は１台の情報処理装置１００に構築され、仮想マシンモニタ１０と仮想マシンは実質的に１台の情報処理装置上で動作している。しかし、複数台の情報処理装置上に構築された仮想マシン実行環境でも、仮想マシンモニタ１０と仮想マシンが仮想ＮＩＣ１１２を介して接続されるのでＵＳＢ機器の動的な接続制御が可能である。
【０１３３】
また、仮想ＮＩＣ１１２の代わりにＴＣＰ／ＩＰのプロトコルスタック１１１配下のＮＩＣ１０７を介して、前記情報処理装置１００がつながるネットワーク上に設置した在来のＰＣに対して通信が可能である。そこで仮想マシンモニタ１０は、仮想マシンに対する前記ステップｓ１０７と同様に、既存の遠隔起動コマンドで在来のＰＣの電源を投入し、在来のＰＣを起動できる。また同様に、前記仮想マシンモニタ１０は、仮想マシンに対する前記ステップｓ１０８と同様に、在来のＰＣの起動後に動的にＵＳＢ機器の接続制御ができる。よって、上述までの実施例における仮想マシンモニタ１０によるＵＳＢ機器の接続制御は、ネットワーク上の在来のＰＣに対しても有効である。
【０１３４】
以上本実施形態によれば、複数の表示装置と複数のＨＩＤの中から、利用者が認証に使った表示装置とＨＩＤを特定してそれらをバインドし、バインドした表示装置とＨＩＤを利用者の仮想マシンにプラグすることで、前記利用者が前記ＨＩＤや表示装置を介して仮想マシンを利用することが出来る。バインドした表示装置とＨＩＤのみが仮想マシンにプラグされ、他の表示装置や他のＨＩＤに仮想マシンを乗っ取られることが無く、仮想マシンは排他的に表示装置とＨＩＤを利用できる。
【０１３５】
また、仮想マシンモニタは管理テーブルを利用し、ＯＳには単純にポートにつながっていると認識されるＨＩＤや表示装置の接続経路を確実に把握できる。また、押されたホットキーと同一経路もしくは周辺のＨＩＤや表示装置を特定し、ここで特定した表示装置に認証ダイアログを表示する処理が可能である。それ故、仮想マシン実行環境に複数の表示装置がつながった状態でも、認証ダイアログを表示する表示装置を利用者の意図した表示装置に切換え、認証処理を実行出来る。また仮想マシンモニタは、認証に成功した利用者が使ったＨＩＤと表示装置を容易に特定できる。
【０１３６】
その結果、仮想マシンモニタは、認証に成功した利用者が認証に使った表示装置とＨＩＤを特定してバインドし、ここでバインドした表示装置とＨＩＤを一意に仮想マシンにプラグできる。利用者が仮想マシンを利用することが出来る。すなわち、仮想マシン実行環境に複数の表示装置と複数のＨＩＤが接続されていても、１対１対応で表示装置とＨＩＤを仮想マシンに接続でき、複数の利用者が仮想マシン実行環境上で銘々の仮想マシンを利用できる。
【０１３７】
加えて前記ホットキーは、ＨＩＤやリモートＵＳＢハブ、或いは表示装置に表示されたボタンもしくは表示されたボタンに関連付けられたリモコンの数字ボタンで実現できるものであり、実現手段として柔軟性を兼ね備えている。
【０１３８】
また、ＩＰプロトコルでストリーミング配信された動画を受信し再生するテレビであっても、画面表示したボタンをホットキーに対応付けて利用することが出来る。また、利用者は前記ホットキーに対応付けたリモコンの数字キーでホットキーを押下することが出来る。このホットキーの押下により、前記仮想マシンモニタから送信されてくる認証ダイアログを前記テレビは画面表示し、利用者の認証データ入力に提供することができる。
【０１３９】
したがって、仮想マシン実行環境で動作中の仮想マシンに対し、仮想マシン実行環境に接続された複数のヒューマンインターフェースデバイスから適切なものを対応付け、前記ヒューマンインターフェースデバイスを対応付けた仮想マシンを適切な表示装置に対応付けることが可能となる。
【０１４０】
以上、本発明の実施の形態について、その実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【図面の簡単な説明】
【０１４１】
【図１】本実施形態におけるデバイス接続制御システムの構成例１を示す図である。
【図２】本実施形態のデバイス接続制御方法における処理手順例１を示す図である。
【図３】本実施形態におけるホットキーの種別ごとの処理内容例を示す図である。
【図４】本実施形態における管理テーブルの状態例を示す図である。
【図５】本実施形態の表示装置におけるメニュー表示中のホットキーを示す図である。
【図６】本実施形態におけるデバイス接続制御システムの構成例２を示す図である。
【図７】本実施形態における１台目と２台目の仮想マシンに対する一連の処理における表示画面の遷移例を示す図である。
【符号の説明】
【０１４２】
１  デバイス接続制御システム
３  リモートＵＳＢハブ（中継装置）
１０  仮想マシン実行環境上の仮想マシンモニタ
１６  管理テーブル
３０，３１  ホットキー
４０，４１  表示装置
４５  認証ダイアログ
５０，５１  ＨＩＤ（ヒューマンインタフェースデバイス）
１００  （仮想マシン実行環境を実現する）情報処理装置
１０１  ＨＤＤ（Hard Disk Drive）
１０２  プログラム
１０３  ＲＡＭ（Random Access Memory）
１０４  ＣＰＵ（Central Processing Unit）
１０５  ＮＩＣ（Network Interface Card）
１０６  フラッシュＲＯＭ
１０７  ＢＩＯＳ
１０８  ＯＳ
１１１  ＴＣＰ／ＩＰのプロトコルスタック
１１２  仮想ＮＩＣ（ネットワークインタフェースカード）
１１３  仮想ＵＳＢハブ
１１４  ＵＳＢバスドライバ
１４０  ネットワーク
２００、２０１  仮想マシン
４００，４０１  ＶＲＡＭ
【図２】
2010097567.tif 000003
【図３】
2010097567.tif 000004
【図４】
2010097567.tif 000005
【図１】
2010097567.tif 000006
【図５】
2010097567.tif 000007
【図６】
2010097567.tif 000008
【図７】
2010097567.tif 000009