以下に、本願に開示する情報処理装置、情報処理方法及びコンピュータプログラムを、各実施形態を示す図面に基づいて詳述する。以下では、本願に開示する情報処理装置をパーソナルコンピュータ(以下、PCという)に適用した各実施形態について説明する。
(実施形態1)
以下に、実施形態1に係るPCについて説明する。図1は実施形態1のPCの構成を示す模式図である。本実施形態1のPC10は、筺体に8つのUSBポート5a,5a…及び4つのモニタ接続ポート6a,6a…を有する。図1では、PC10の側面の下方に水平方向に8つ並べて示したポートがUSBポート5a,5a…であり、USBポート5a,5a…の上方に水平方向に4つ並べて示したポートがモニタ接続ポート6a,6a…である。
本実施形態1のPC10には、USBポート5a,5a…に接続されたUSBケーブルを介して、4つのキーボード51b,52b,53b,54b及び4つのマウス51c,52c,53c,54cが接続されている。また、本実施形態1のPC10には、モニタ接続ポート6a,6a…に接続されたモニタ接続用ケーブルを介して4つのモニタ51a,52a,53a,54aが接続されている。
従って、本実施形態1のPC10では、モニタ51a(52a,53a,54a)、キーボード51b(52b,53b,54b)及びマウス51c(52c,53c,54c)をそれぞれ含む入出力デバイスセット51(52,53,54)を4つ設置することができる。しかし、本願に開示する情報処理装置を適用できるPCは、このような構成に限られない。例えば、USBポート5a,5a…の数は8つに限られず、モニタ接続ポート6a,6a…の数は4つに限られない。また、1つのUSBポート5aにUSBハブを接続し、USBハブを介して複数のキーボード及びマウスを接続させたPC10にも、本願に開示する情報処理装置を適用することができる。
図2は実施形態1のPC10の構成を示すブロック図である。本実施形態1のPC10は、CPU1、ROM(Read Only Memory)2、RAM(Random Access Memory)3、ハードディスクドライブ(HDD)4、USBインタフェース5、モニタインタフェース6等のハードウェア各部を備える。これらのハードウェア各部はバス1aを介して相互に接続されている。
CPU1は、ROM2又はHDD4に予め格納されている制御プログラムを適宜RAM3に読み出して実行すると共に、上述したハードウェア各部の動作を制御する。CPU1は、HDD4に格納されているVMM(Virtual Machine Monitor)プログラム20及びOSプログラム30をそれぞれRAM3に読み出して実行することにより、VMM21及びOS31a,31b,31c,31d(図4,5参照)として動作する。CPU1は、VMM21として動作することにより、論理的に複数のCPU1として動作する。なお、CPU1にマルチコアCPUを用いた場合、VMM21、OS31a,31b,31c,31dをそれぞれ物理的に異なるCPUコア上に分散させて動作させることができるが、CPU1にシングルコアCPUを用いてもよいことは勿論である。
ROM2は、PC10を本願に開示する情報処理装置として動作させるために必要な種々の制御プログラムを予め格納している。RAM3は、例えばSRAM(Static RAM)、DRAM(Dynamic RAM)、フラッシュメモリ等である。RAM3は、CPU1による制御プログラムの実行時に発生する種々のデータを一時的に記憶する。
HDD4は大容量の記憶装置である。HDD4は、PC10を本願に開示する情報処理装置として動作させるために必要な種々の制御プログラム、図3(a)に示すようなVM−ユーザ対応テーブル4a、図3(b)に示すようなデバイステーブル4b、図3(c)に示すようなユーザ情報テーブル4c、図3(d)に示すようなVM−デバイス対応テーブル4d、各種のデータ等を格納している。また、HDD4は、CPU1が読み出して実行する制御プログラムとして、VMMプログラム20、4つのOSプログラム30、アプリケーションプログラム40等を格納している。
USBインタフェース5には、8つのUSBポート5a,5a…が接続されている。USBインタフェース5は、USBポート5a,5a…にそれぞれ接続されたUSBケーブルを介して接続された機器との間でデータの送受信を行なう。本実施形態1のUSBインタフェース5は、USBケーブルを介してキーボード51b,52b,53b,54b及びマウス51c,52c,53c,54cと接続されている。従って、USBインタフェース5は、キーボード51b,52b,53b,54b及びマウス51c,52c,53c,54cとの間でデータの送受信を行なう。
キーボード51b,52b,53b,54b及びマウス51c,52c,53c,54cは、ユーザがPC10を操作するために必要な各種の操作キー及び移動検知装置等を備えている。ユーザにより各操作キーが操作された場合、キーボード51b,52b,53b,54b及びマウス51c,52c,53c,54cは、操作された操作キーに対応した制御信号を、対応するOS31a,31b,31c,31dへ送出する。OS31a,31b,31c,31dは、キーボード51b,52b,53b,54b及びマウス51c,52c,53c,54cから取得した制御信号に対応した処理を実行する。
モニタインタフェース6には、4つのモニタ接続ポート6a,6a…が接続されている。本実施形態1のモニタインタフェース6は、モニタ接続ポート6a,6a…にそれぞれ接続されたモニタ接続用ケーブルを介してモニタ51a,52a,53a,54aと接続されている。従って、モニタインタフェース6は、モニタ51a,52a,53a,54aとの間でデータの送受信を行なう。
モニタ51a,52a,53a,54aは、液晶ディスプレイ又はCRT(Cathode Ray Tube)ディスプレイ等である。モニタ51a,52a,53a,54aは、対応するOS31a,31b,31c,31dから、モニタインタフェース6を介して送出されてくるデータに従って、PC10(VM)の動作状態、ユーザによって入力された情報、ユーザに対して通知すべき情報等を表示する。
図3は各テーブルの格納内容を示す模式図である。図3(a)はVM−ユーザ対応テーブル4aの格納内容を、図3(b)はデバイステーブル4bの格納内容を、図3(c)はユーザ情報テーブル4cの格納内容を、図3(d)はVM−デバイス対応テーブル4dの格納内容をそれぞれ示す。
図3(a)に示すように、VM−ユーザ対応テーブル(ユーザ対応記憶部)4aには、CPU1がOSプログラム30のそれぞれを実行することによって構築されるVMを識別するためのVM−IDと、それぞれのVMを割り当てられているユーザを識別するためのユーザID(ユーザ情報)とが対応付けて格納されている。VM−ユーザ対応テーブル4aの格納内容は、PC10の初期設定処理時に登録される。従って、PC10は、VM−ユーザ対応テーブル4aに格納されたユーザIDのユーザによってのみ使用可能である。なお、各VMは、自身を割り当てられたユーザのユーザID、ユーザによって設定された各種の設定情報等を、自身に割り当てられたRAM3又はHDD4に格納している。
図3(b)に示すように、デバイステーブル4bには、PC10に接続されている全ての入出力デバイスセット51,52,53,54のそれぞれに割り当てられた入出力デバイスIDが格納されている。デバイステーブル4bの格納内容は、PC10の初期設定処理時に登録される。なお、モニタ51a(又は52a,53a,54a)、キーボード51b(又は52b,53b,54b)及びマウス51c(又は52c,53c,54c)のそれぞれをまとめて入出力デバイスセット51(又は52,53,54)として扱う。
図3(c)に示すように、ユーザ情報テーブル(認証情報記憶部)4cには、PC10の使用が可能なユーザのユーザIDと、各ユーザによって予め登録されているパスワード(認証情報)とが対応付けて格納されている。ユーザ情報テーブル4cの格納内容は、PC10の初期設定処理時に登録されると共に、ユーザが自身のVMを使用中に自身のパスワードを変更した場合には、対応するOS31a,31b,31c,31dによって変更される。
図3(d)に示すように、VM−デバイス対応テーブル4dには、VMのVM−IDと、各VMに対応付けられた入出力デバイスセット51,52,53,54を示す入出力デバイスIDとが対応付けて格納されている。VM−デバイス対応テーブル4dの格納内容は、VMM21がOS31a,31b,31c,31dを起動させた場合に、OS31a,31b,31c,31dのそれぞれに入出力デバイスセット51,52,53,54を対応付ける都度、VMM21によって登録される。また、VM−デバイス対応テーブル4dの格納内容は、VMM21によってOS31a,31b,31c,31dと入出力デバイスセット51,52,53,54との対応が変更される都度、VMM21によって更新される。
以下に、上述した構成のPC10において、CPU1が、ROM2又はHDD4に格納されている各種の制御プログラムを実行することによって実現される機能について説明する。図4及び図5は実施形態1のPC10の機能を示す機能ブロック図である。なお、図4及び図5は、PC10が仮想化技術により複数のPC(VM)として動作する原理を示している。
図4及び図5には、PC10において、VMM21の動作により、4つのVM(第1VM、第2VM、第3VM、第4VM)がそれぞれ独立して実行可能となっていることを示している。なお、VMM21は、CPU1、RAM3、HDD4、入出力デバイスセット51,52,53,54等を含むハードウェア上で動作する。
VMMプログラム20は、PC10において複数(本実施形態1では4つ)のOS31a,31b,31c,31dが動作する仮想化技術を実現するためのソフトウェアプログラムである。CPU1は、VMMプログラム20をHDD4から読み出して実行することによりVMM(仮想マシンモニタ)21として動作し、PC10が論理的に複数のPCとして動作する仮想環境(第1VM,第2VM,第3VM,第4VM)を提供する。これにより、1つのPC10において論理的に4つの独立した仮想マシン(VM)が動作することが可能となる。
VMM21(制御部)は、各ソフトウェアとハードウェア資源との間の管理を実現し、OS31a,31b,31c,31dのそれぞれに対するハードウェアの動作の基本的な制御を行なう。例えば、VMM21は、各OS31a,31b,31c,31dを起動させた場合に、OS31a,31b,31c,31dのそれぞれに対して入出力デバイスセット51,52,53,54の割り当てを行なう。
OSプログラム30は、ユーザが操作できるCUI(Command User Interface)、GUI(Graphic User Interface)を持つWindows(登録商標)、Linux等のOSソフトウェアである。CPU1は、4つのOSプログラム30をそれぞれHDD4から読み出して実行することによりOS31a,31b,31c,31dとして動作し、各種処理を実行する実行部として機能する。OS31a,31b,31c,31dのそれぞれは、実行した処理に応じて表示すべきCUI,GUI等を含む表示画面を生成し、自身に対応付けられているモニタ51a(又は52a,53a,54a)に表示させる。また、OS31a,31b,31c,31dのそれぞれは、自身に対応付けられているキーボード51b(又は52b,53b,54b)及びマウス51c(又は52c、53c、54c)からの制御信号を受け付け、受け付けた制御信号に応じて各種処理を実行する。
VMM21は、OSプログラム30のそれぞれをHDD4から読み出して実行することにより、OS31a,31b,31c,31dを起動させる。このとき、VMM21は、各OS31a,31b,31c,31dによって利用されるハードウェア、即ち、RAM3、HDD4、入出力デバイスセット51,52,53,54の割り当て等を行なう。なお、CPU1も、VMM21自身、OS31a,31b,31c,31dのそれぞれにCPUコア単位に割り当てられる。
RAM3は、CPU1がVMMプログラム20及びOSプログラム30等をそれぞれ読み出す際に使用されるほか、CPU1が各制御プログラムを読み出して実行し、各処理を行なう際に一時的に各種情報を記憶する。また、RAM3は、CPU1がOS31a,31b,31c,31dとして動作する際に、OS31a,31b,31c,31d毎の設定情報を記憶するためにも使用される。従って、RAM3も、VMM21によって論理的に複数のRAM3に分割され、VMM21、OS31a,31b,31c,31dのそれぞれに割り当てられる。
上述した構成のPC10において電源が投入され、PC10のハードウェア各部の起動が完了した場合、CPU1は、まず、VMMプログラム20を実行してVMM21の動作を開始する。そして、VMM21が、OSプログラム30のそれぞれを読み出して実行し、OS31a,31b,31c,31dのそれぞれを起動させる。このとき、VMM21は、各OS31a,31b,31c,31dに使用されるハードウェアの割り当て等を行ない、それぞれのOS31a,31b,31c,31dに仮想環境(第1VM,第2VM,第3VM,第4VM)を割り当てる。なお、各OS31a,31b,31c,31dに割り当てるハードウェアとしては、例えば、CPU1、RAM3、HDD4、入出力デバイスセット51,52,53,54等がある。
VMM21は、OS31a,31b,31c,31dのそれぞれの動作を正常に維持するための機能を有する。具体的には、OS31a,31b,31c,31dのそれぞれの起動及び終了を制御する機能、OS31a,31b,31c,31dのそれぞれへのハードウェアの割り当てを行なう機能、OS31a,31b,31c,31dのそれぞれに適切なアプリケーションを実行させる機能等を有する。
アプリケーションプログラム40は、OS31a,31b,31c,31dのそれぞれによって実行されるソフトウェアプログラムである。アプリケーションプログラム40は、外部メモリ又はネットワーク(共に図示せず)を介してPC10に読み取らせてHDD4に格納させてもよい。
本実施形態1のVMM21は、VMMプログラム20に含まれるモジュールによって、VM起動部22、デバイス切替部23、デバイス振分部24、認証部25、対象VM決定部26等の各機能を有する。また、本実施形態1のOS31a,31b,31c,31dは、OSプログラム30に含まれるモジュールによって、認証ユーザインタフェース部(以下、認証UI部という)32a,32b,32c,32d、ユーザ判定部33a,33b,33c,33d、モード切替部34a,34b,34c,34d、デスクトップユーザインタフェース部(以下、デスクトップUI部という)35a,35b,35c,35d等の各機能を有する。
なお、図4及び図5では、認証UI部32b,32c,32d、ユーザ判定部33b,33c,33d、モード切替部34c,34d、デスクトップUI部35b,35c,35dの図示を省略している。
また、以下では、第1VM、第2VM、第3VM及び第4VMをまとめてVMと呼び、OS31a,31b,31c,31dをまとめてOS31と呼び、認証UI部32a,32b,32c,32dをまとめて認証UI部32と呼ぶこともある。また、ユーザ判定部33a,33b,33c,33dをまとめてユーザ判定部33と呼び、モード切替部34a,34b,34c,34dをまとめてモード切替部34と呼び、デスクトップUI部35a,35b,35c,35dをまとめてデスクトップUI部35と呼ぶこともある。
PC10に電源が投入され、CPU1がVMM21の動作を開始した場合、まず、VM起動部22が、VM−ユーザ対応テーブル4a及びデバイステーブル4bの格納内容に基づいて第1VM,第2VM,第3VM,第4VMのそれぞれを起動させる。具体的には、VM起動部22は、VM−ユーザ対応テーブル4aに格納されているVM−ID及びデバイステーブル4bに格納されている入出力デバイスIDをそれぞれ先頭から順に読み出す。
VM起動部22は、VM−ユーザ対応テーブル4aから読み出したVM−IDのVMに、デバイステーブル4bから読み出した入出力デバイスIDが示す入出力デバイスセット51を割り当て、第1VM,第2VM,第3VM,第4VMを起動させる。VM起動部22は、VM−ユーザ対応テーブル4aから読み出したVM−IDに対応するOSプログラム30を、それぞれのVMに実行させてOS31a、OS31b,OS31c,OS31dを起動させる。VM起動部22は、起動させた第1VMのVM−IDと、この第1VMに割り当てた入出力デバイスセット51の入出力デバイスIDとを対応付けてVM−デバイス対応テーブル4dに格納させる。
なお、各ユーザがOS31に対して設定した各種の設定情報を、OS31を起動させる際に読み込ませることにより、各ユーザに対応したOS31を構成することができる。また、設定情報には各ユーザのユーザID等のユーザ情報が含まれており、各OS31は、ユーザ情報に基づいて、自身に予めどのユーザが対応付けられているのかを把握することができる。
VM起動部22は、VM−ユーザ対応テーブル4aに格納されている全てのVM−IDに対応するVMの起動を行なう。ここでは、VM起動部22は、4つのVMの起動を行ない、4つのVMのVM−ID及びそれぞれのVMに割り当てた入出力デバイスセット51,52,53,54の入出力デバイスIDをVM−デバイス対応テーブル4dに格納する。VM起動部22は、全てのVMを起動させた後、その旨をデバイス切替部23へ通知する。
デバイス切替部23は、VM−デバイス対応テーブル4dの格納内容に基づいて、それぞれのVMと、入出力デバイスセット51,52,53,54とを対応付ける。具体的には、デバイス切替部23は、VM−デバイス対応テーブル4dに格納されているVM−ID及び入出力デバイスIDを先頭から順に読み出す。デバイス切替部23は、読み出したVM−IDに対応するOS31a,31b,31c,31dに、読み出した入出力デバイスIDが示す入出力デバイスセット51,52,53,54を割り当てるようにデバイス振分部24に指示する。
デバイス振分部24は、デバイス切替部23からの指示に従って、OS31a,31b,31c,31dのそれぞれに、入出力デバイスセット51,52,53,54のそれぞれを振り分ける。具体的には、デバイス振分部24は、入出力デバイスセット51,52,53,54のそれぞれからの入力情報を、それぞれ対応するVM(OS31)へ転送し、VMからの出力情報を、それぞれ対応する入出力デバイスセット51,52,53,54へ転送する。これにより、入出力デバイスセット51,52,53,54のそれぞれは、対応するOS31a,31b,31c,31dに対するダイレクトI/O(Input/Output)として機能することができる。
上述したようにVM起動部22によって起動したVMのそれぞれでは、まず、認証UI部32が動作する。なお、VMのそれぞれは、認証UIモード及びデスクトップUIモードの2つのモードを備えており、起動直後は認証UIモードが選択されている。認証UIモードは、認証UI部32が動作し、ユーザの認証処理のみを行なうモードであり、デスクトップUIモードは、デスクトップUI部35が動作し、OS31が通常動作を行なうモードである。
認証UI部(入力受付部)32は、図6に示すような表示画面を、自身のVMに割り当てられたモニタ51a(又は52a,53a,54a)に表示させ、ユーザを認証するための情報の受け付けを行なう。図6は表示画面の構成を示す模式図である。図6に示した認証ダイアログは、ユーザID(ユーザ情報)及びパスワード(認証情報)の入力欄、OKボタン及びキャンセルボタンをそれぞれ表示する。PC10を使用したいユーザは、入出力デバイスセット51,52,53,54のいずれかを用いてユーザID及びパスワードを入力する。
入出力デバイスセット51,52,53,54のいずれかを用いてユーザID及びパスワードが入力され、OKボタンが選択された場合、使用された入出力デバイスセット51(又は52,53,54)に対応する認証UI部(ユーザ情報取得部)32が、ユーザID及びパスワードを取得する。即ち、認証UI部32は、自身のVMに対応付けられている入出力デバイスセット51(又は52,53,54)を介してユーザID及びパスワードを取得する。認証UI部(認証依頼部)32は、取得したユーザID及びパスワードをVMM21の認証部25へ通知し、取得したユーザID及びパスワードの認証を認証部25に依頼する。
VMM21の認証部25は、ユーザ情報テーブル4cの格納内容に基づいて、認証UI部32から取得したユーザID及びパスワードの認証を行ない、認証結果を認証UI部32へ返す。具体的には、認証部25は、認証UI部32から取得したユーザID及びパスワードがユーザ情報テーブル4cに格納されているか否かを判断する。
認証部(認証結果通知部)25は、取得したユーザID及びパスワードがユーザ情報テーブル4cに格納されていると判断した場合、このユーザID及びパスワードが認証できた旨を示す認証結果を認証UI部32へ返す。一方、取得したユーザID及びパスワードがユーザ情報テーブル4cに格納されていないと判断した場合、認証部(認証結果通知部)25は、このユーザID及びパスワードが認証できなかった旨を示す認証結果を認証UI部32へ返す。
VMの認証UI部32は、VMM21の認証部25から、認証できなかった旨を示す認証結果が通知された場合、例えば「ユーザIDまたはパスワードが誤りです」のようなエラーメッセージを表示する。そして、認証UI部32は、図6に示した認証ダイアログを再度表示し、ユーザを認証するための情報の受け付けを行なう。
一方、認証UI部32は、VMM21の認証部25から、認証できた旨を示す認証結果が通知された場合、認証されたユーザIDをユーザ判定部33へ通知する。ユーザ判定部(判断部)33は、認証UI部32から通知されたユーザIDが、自身のVMに予め対応付けられているユーザのユーザIDに一致するか否かを判断する。なお、自身のVMに予め対応付けられているユーザのユーザIDは、VMのシステム情報としてOS31毎にHDD4等に格納されている。
ユーザIDが一致すると判断した場合、ユーザ判定部33は、モード切替部34に、認証UIモードからデスクトップUIモードへの切り替えを指示する。この場合、ユーザがユーザID及びパスワードを入力するために使用した入出力デバイスセット51(又は52,53,54)に予め対応付けられているVMが、このユーザに対応付けられているVMであったので、このVMをそのまま使用すればよいからである。
モード切替部34は、認証UIモードからデスクトップUIモードへの切り替えをユーザ判定部33から指示された場合、認証UI部32によってモニタ51a(又は52a,53a,54a)に表示していた認証ダイアログの表示を終了させる。次に、モード切替部(動作開始部)34は、デスクトップUI部35に動作を開始させ、これにより、ユーザは、自身に割り当てられているVMのデスクトップUIモードでの使用を開始できる。
一方、ユーザIDが一致しないと判断した場合、ユーザ判定部(特定要求部)33は、認証UI部32から通知されたユーザIDをVMM21の対象VM決定部26に通知し、このユーザIDに対応付けられている他のVMの特定を要求する。この場合、ユーザがユーザID及びパスワードを入力するために使用した入出力デバイスセット51(又は52,53,54)に予め対応付けられているVMが、このユーザに対応付けられているVMでなかったので、このユーザに対応付けられている他のVMを特定する必要があるからである。
なお、ここでは、説明を明確にするために、ユーザがユーザID及びパスワードを入力するために使用した入出力デバイスセット51(又は52,53,54)に予め対応付けられているVMを切替前のVMと呼び、このユーザに対応付けられているVMを切替後のVMと呼んで区別する。
VMM21の対象VM決定部(特定部)26は、VM−ユーザ対応テーブル4aの格納内容に基づいて、切替前のVMのユーザ判定部33から通知されたユーザIDに対応付けられているVM(切替後のVM)を特定する。具体的には、対象VM決定部26は、ユーザ判定部33から通知されたユーザIDに対応してVM−ユーザ対応テーブル4aに格納されているVM−ID(切替後のVMのVM−ID)をVM−ユーザ対応テーブル4aから読み出す。対象VM決定部26は、ユーザが使用している入出力デバイスセット51(又は52,53,54)を、切替後のVMに対応付けるようにデバイス切替部(切替部)23に指示する。
デバイス切替部23は、VMと入出力デバイスセット51,52,53,54との対応付けの切り替えを指示された場合、ユーザが使用している入出力デバイスセット51(又は52,53,54)を切替前のVMから剥奪する。デバイス切替部23は、切替後のVMから、この時点で切替後のVMに対応付けられている入出力デバイスセット52(又は51,53,54)を剥奪する。そして、デバイス切替部23は、切替後のVMに、ユーザが使用している入出力デバイスセット51(又は52,53,54)を対応付ける。また、デバイス切替部23は、切替前のVMに、切替後のVMから剥奪された入出力デバイスセット52(又は51,53,54)を対応付ける。
デバイス切替部23は、VMから入出力デバイスセット51(又は52,53,54)を剥奪する場合、このVMのVM−IDに対応してVM−デバイス対応テーブル4dに格納されている入出力デバイスIDを削除する。また、デバイス切替部23は、VMに入出力デバイスセット51(又は52,53,54)を対応付ける場合、このVMのVM−IDに対応させ、対応付ける入出力デバイスセット51(又は52,53,54)の入出力デバイスIDをVM−デバイス対応テーブル4dに格納する。
デバイス切替部23は、切替前のVMに対応付けられていた入出力デバイスセット51(又は52,53,54)と、切替後のVMに対応付けられていた入出力デバイスセット52(又は51,53,54)との切替を完了した場合、VM−デバイス対応テーブル4dの格納内容をデバイス振分部24へ通知する。これにより、デバイス振分部24は、対応付けを切り替えられたVM及び入出力デバイスセット51,52,53,54の対応付けを行なうことができる。
デバイス切替部23によって、ユーザが使用している入出力デバイスセット51(又は52,53,54)を切替後のVMに対応付けた後、VMM21の対象VM決定部26は、切替後のVMのモード切替部34に、認証UIモードからデスクトップUIモードへの切り替えを指示する。切替後のVMのモード切替部34は、VMM21の対象VM決定部26から、認証UIモードからデスクトップUIモードへの切り替えを指示された場合、認証UI部32によって表示していた認証ダイアログの表示を終了させる。次に、切替後のVMのモード切替部34は、デスクトップUI部35に動作を開始させ、これにより、ユーザは、自身に割り当てられているVMのデスクトップUIモードでの使用を開始できる。
なお、切替前のVMは、切替後のVMに元々対応付けられていた入出力デバイスセット52(又は51,53,54)を対応付けられた後は、認証UI部32によって認証ダイアログを、対応付けられたモニタ52a(又は51a,53a,54a)に表示させる。
このように、ユーザが、入出力デバイスセット51,52,53,54のいずれを使用した場合であっても、ユーザが使用した入出力デバイスセット51(又は52,53,54)を各ユーザに割り当てられているVMに対応付けることができる。よって、ユーザは、VMを使用する際に、特定の入出力デバイスセット51(又は52,53,54)を使用する必要はなく、使用場所に自由度を設けることができ、ユーザの利便性も向上する。
上述したようにデスクトップUIモードでの動作を開始したVMにおいて、ユーザが動作の終了を指示した場合、OS31は、モード切替部34に、デスクトップUIモードから認証UIモードへの切り替えを指示する。モード切替部34は、デスクトップUIモードから認証UIモードへの切り替えをOS31から指示された場合、デスクトップUI部35の動作を終了させた後、認証UI部32に動作を開始させる。これにより、VMは、認証UIモードでの動作を開始し、図6に示した認証ダイアログが、このVMに対応付けられているモニタ51a(又は52a,53a,54a)に表示される。
以下に、上述したPC10の動作を、具体的な例を用いて説明する。図7は実施形態1のPC10の動作を説明するための説明図である。PC10に電源が投入されてVMM21が起動し、VMM21によってVMのそれぞれが起動した場合、図7(a)に示すように、各VMでは、認証UI部32a,32b,32c,32dが動作している。この状態で、例えば、第1VMに対応付けられている入出力デバイスセット51(又は52,53,54)を用いてユーザがユーザID及びパスワードを入力してきたとする。このユーザID及びパスワードは、第1VMの認証UI部32aによって取得される。
第1VMの認証UI部32aが取得したユーザID及びパスワードは、VMM21(認証部25)によって認証され、認証できた場合、第1VMのユーザ判定部33aによって、このユーザIDのユーザが第1VMのユーザであるか否かが判定される。このユーザが第1VMのユーザであれば、第1VMのモード切替部34aによって、第1VMのモードが認証UIモードからデスクトップUIモードに切り替えられ、図7(b)に示すように、第1VMにおいてデスクトップUI部35aの動作が開始される。
一方、このユーザが第1VMのユーザでなければ、VMM21(対象VM決定部26)によって、このユーザに対応するVMが特定される。ここでは、対応するVMが第2VMであると特定されたとする。VMM21は、対応するVMを特定した場合、この第2VMのモード切替部34bに、認証UIモードからデスクトップUIモードへの切り替えを指示する。これにより、第2VMのモード切替部34bによって、第2VMのモードが認証UIモードからデスクトップUIモードに切り替えられ、図7(c)に示すように、第2VMにおいてデスクトップUI部35bの動作が開始される。
また、図7(b)に示す第1VM又は図7(c)に示す第2VMのようにデスクトップUI部35が動作を行なっているVMにおいて、ユーザが動作の終了を指示した場合、各VMのモード切替部34によって、デスクトップUI部35の動作が終了され、認証UI部32の動作が開始される。この場合、図7(a)に示すように、各VMで認証UI部32a,32b,32c,32dが動作している状態に戻る。
以下に、本実施形態1のPC10において、電源が投入された場合にCPU1が行なう処理についてフローチャートに基づいて説明する。図8は電源投入時にCPU1が行なう処理の手順を示すフローチャートである。なお、以下の処理は、PC10のROM2又はHDD4に格納してある制御プログラムに従ってCPU1によって実行される。
PC10に電源が投入され、PC10のハードウェア各部の起動が完了した場合、CPU1は、まず、VMMプログラム20を実行してVMM21を起動する(S1)。VMM21(CPU1)は、VM−ユーザ対応テーブル4aからVM−IDを1つ読み出し(S2)、デバイステーブル4bから入出力デバイスIDを1つ読み出す(S3)。VMM21は、VM−ユーザ対応テーブル4aから読み出したVM−IDに、デバイステーブル4bから読み出した入出力デバイスIDが示す入出力デバイスセット51(又は52,53,54)を割り当て(対応付け)、1つのVMを起動させる(S4)。VMM21は、起動させたVMに、VM−ユーザ対応テーブル4aから読み出したVM−IDに対応するOSプログラム30を実行させる。
VMM21は、起動させたVMのVM−IDと、このVMに割り当てた入出力デバイスセット51(又は52,53,54)の入出力デバイスIDとを対応付けてVM−デバイス対応テーブル4dに格納する(S5)。VMM21は、VM−ユーザ対応テーブル4aに格納されている全てのVM−IDに対応するVMの起動を行なったか否かを判断する(S6)。VMM21は、全てのVMを起動していないと判断した場合(S6:NO)、ステップS2へ処理を戻し、VM−ユーザ対応テーブル4aから異なるVM−IDを1つ読み出す(S2)。
VMM21は、VM−ユーザ対応テーブル4aに格納されている全てのVM−IDに対応するVMの起動を行なうまで、ステップS2〜S6の処理を繰り返す。全てのVMを起動したと判断した場合(S6:YES)、VMM21は処理を終了する。これにより、VMM21は、複数(ここでは4つ)のVMの起動処理を完了し、複数のVMをそれぞれ独立して動作させることができる。
次に、上述したように全てのVMが起動した状態のPC10において、ユーザが1つの入出力デバイスセット51(又は52,53,54)を使用してPC10(VM)の使用を開始した場合にCPU1が行なう処理についてフローチャートに基づいて説明する。図9〜図11はユーザの認証処理の手順を示すフローチャートである。なお、以下の処理は、PC10のROM2又はHDD4に格納してある制御プログラムに従ってVMM21及びVM(OS31)によって実行される。
なお、以下では、ユーザが、第1VMに対応付けられている入出力デバイスセット51を介してユーザID及びパスワードを入力してきた場合にCPU1(VMM21、VM)が行なう処理を例に説明する。また、図9及び図10では、破線で区切った2つの領域において、左側の領域に第1VMによる処理を、右側の領域にVMM21による処理をそれぞれ示し、図11では、破線で区切った2つの領域において、左側の領域にVMM21による処理を、右側の領域に第2VMによる処理をそれぞれ示している。
VMM21によって起動した第1VM(OS31a)は、対応付けられているモニタ51aに、図6に示すような認証ダイアログを表示している(S11)。第1VMは、対応付けられている入出力デバイスセット51(具体的には、キーボード51b及びマウス51c)を介してユーザ情報(ユーザID及びパスワード)が入力されたか否かを判断する(S12)。第1VMは、ユーザ情報が入力されていないと判断した場合(S12:NO)、待機し、ユーザ情報が入力されたと判断した場合(S12:YES)、ユーザ情報を取得する(S13)。
第1VMは、取得したユーザ情報をVMM21へ通知し、取得したユーザ情報の認証を依頼する(S14)。VMM21は、第1VMから依頼されたユーザ情報の認証を、ユーザ情報テーブル4cの格納内容に基づいて行ない(S15)、認証結果を第1VMへ通知する(S16)。
第1VMは、VMM21から認証結果を取得し(S17)、取得した認証結果が認証された旨を示す認証結果であるか否かを判断する(S18)。取得した認証結果が認証されなかった旨を示す認証結果であると判断した場合(S18:NO)、第1VMは、認証できなかった旨を示すエラーメッセージを、対応付けられているモニタ51aに表示させる(S19)。第1VMは、ステップS11に処理を戻し、図6に示すような認証ダイアログをモニタ51aに表示する(S11)。
取得した認証結果が認証された旨を示す認証結果であると判断した場合(S18:YES)、第1VMは、ステップS13で取得したユーザIDが、自身の第1VMに予め対応付けられているユーザのユーザIDに一致するか否かを判断する(S20)。なお、自身の第1VMに予め対応付けられているユーザのユーザIDは、第1VMのシステム情報としてOS31aが管理している。
ユーザIDが一致すると判断した場合(S20:YES)、第1VMは、ステップS11で表示した認証ダイアログの表示を終了する(S21)。第1VMは、認証UI部32aの動作を終了して、デスクトップUI部35aの動作を開始させる(S22)。デスクトップUI部35aが動作することによって、第1VMは、対応付けられているモニタ51aに、デスクトップの表示を開始する(S23)。そして、第1VMは、上述したユーザ認証処理を終了し、デスクトップUIモードの動作を開始する。
ユーザIDが一致しないと判断した場合(S20:NO)、第1VMは、ステップS13で取得したユーザIDをVMM21へ通知する(S24)。なお、以下では、このユーザは第2VMを割り当てられているユーザであるとして説明する。VMM21は、第1VMから通知されたユーザIDを取得し(S25)、VM−ユーザ対応テーブル4aの格納内容に基づいて、このユーザに対応するVM(第2VM)を特定する(S26)。
VMM21は、第1VMから、ユーザが使用している入出力デバイスセット51を剥奪し(S27)、第2VMから、第2VMに割り当てられている入出力デバイスセット52を剥奪する(S28)。VMM21は、第2VMに、ユーザが使用している入出力デバイスセット51を対応付ける(S29)。これにより、第2VMに入出力デバイスセット51が割り当てられる。
VMM21は、第2VMに、認証UIモードからデスクトップUIモードへの切り替えを指示する(S30)。第2VMは、VMM21からデスクトップUIモードへの切り替えを指示された場合、認証UI部32bによって表示していた認証ダイアログの表示を終了する(S31)。第2VMは、認証UI部32bの動作を終了して、デスクトップUI部35bの動作を開始させる(S32)。デスクトップUI部35bが動作することによって、第2VMは、対応付けられているモニタ51aに、デスクトップの表示を開始する(S33)。そして、第2VMは、上述したユーザ認証処理を終了し、デスクトップUIモードの動作を開始する。
一方、VMM21は、第1VMに、第2VMから剥奪した入出力デバイスセット52を対応付け(S34)、上述したユーザ認証処理を終了する。これにより、第1VMに入出力デバイスセット52が割り当てられ、第1VMは、認証ダイアログを、対応付けられたモニタ52aに表示させる。
次に、上述したようにデスクトップUI部35によるデスクトップUIモードでの動作中のVMにおいて、ユーザがVMの動作を終了させた場合にCPU1が行なう処理についてフローチャートに基づいて説明する。図12はVMが行なう終了処理の手順を示すフローチャートである。なお、以下の処理は、PC10のROM2又はHDD4に格納してある制御プログラムに従ってCPU1(VM、OS31)によって実行される。
デスクトップUIモードでの動作中のVMは、ユーザから終了指示を受け付けたか否かを判断しており(S41)、終了指示を受け付けていないと判断した場合(S41:NO)、デスクトップUIモードでの動作を継続する。終了指示を受け付けたと判断した場合(S41:YES)、VMは、デスクトップUI部35に終了処理を実行させる(S42)。デスクトップUI部35は、保存すべき各種の情報をHDD4に格納させた後、動作を終了する。VMは、デスクトップUI部35が終了処理を行なった後、認証UI部32の動作を開始させる(S43)。認証UI部32が動作することによって、VMは、対応付けられているモニタ51a(又は52a,53a,54a)に、認証ダイアログを表示させる(S44)。これにより、VMは、デスクトップUIモードでの動作を終了させ、認証ダイアログを介したユーザID及びパスワードの受付待ち状態に戻る。
本実施形態1では、1つのPC10に4つのVMを構築することによって4人のユーザによって1つのPC10を共用する構成を例に説明した。本願に開示する情報処理装置は、このような構成に限られないことは勿論である。PC10に設けられたUSBポート5a,5a…の数、モニタ接続ポート6a,6a…の数に応じて、構築するVMの数も適宜変更可能である。
上述したように、本実施形態1のPC10では、ユーザが、入出力デバイスセット51,52,53,54のいずれを使用した場合であっても、ユーザが使用した入出力デバイスセット51(又は52,53,54)を各ユーザに割り当てられているVMに対応付けることができる。よって、ユーザは、自身のVMを使用する際に、特定の入出力デバイスセット51(又は52,53,54)を使用する必要がないので、使用場所に自由度を設けることができ、ユーザの利便性も向上する。
本実施形態1のPC10では、入出力デバイスセット51,52,53,54のいずれから入力されたユーザ情報(ユーザID及びパスワード)は、予め対応付けられているVM(OS31a,31b,31c,31d)へ転送される。従って、VMM21は、VMのそれぞれが取得したユーザ情報を認証すればよいので、単純な認証処理によってユーザを認証することができる。
即ち、入出力デバイスセット51,52,53,54から入力されたユーザ情報をVMMが取得し、VMMが認証処理を行なう場合に、ユーザ情報が入力されたキーボード51b,52b,53b,54bが、どの入出力デバイスセット51,52,53,54のキーボード51b,52b,53b,54bであるかをVMMに判断させることは困難であったが、本実施形態1では、このような問題は発生しない。また、一般的なVMMはUI機能を有しないため、図6に示すような認証ダイアログをモニタ51a,52a,53a,54aに表示させるためには、VMMにUI機能を持たせる必要があるが、本実施形態1では、このような必要は生じない。
本実施形態1のPC10は、4人のユーザのいずれかに予め割り当てられているVMの認証UI部32を用いて、VMの使用を要求してきたユーザのユーザ情報を受け付ける構成である。従って、各ユーザのVMとは別に認証用のVMを備える必要がないので、認証用のVMが使用するOSのライセンス料、各リソースの削減が可能である。
本実施形態1では、PC10の電源投入時にVMのそれぞれを起動させ、VMのそれぞれは、認証UIモードとしてユーザの使用が開始されるまで待機する。本実施形態1のVMのそれぞれは、ユーザが認証された場合に、認証UIモードからデスクトップUIモードに切り替えるだけなので、ユーザが認証されてはじめてVMが起動される構成と比較して、ユーザが認証されてからVMが使用可能となるまでの待ち時間が短縮される。また、本実施形態1では、VMのそれぞれは、認証UIモードの場合、デスクトップUI部35を動作させないので、デスクトップUI部35の動作に伴う各リソースの無駄な消費を削減できる。
(実施形態2)
以下に、実施形態2に係るPCについて説明する。なお、本実施形態2のPCは、上述した実施形態1のPC10と同様の構成によって実現することができるので、同様の構成については同一の符号を付して説明を省略する。
上述した実施形態1では、VMM21が4つのVMのそれぞれを起動させる場合に、VM−ユーザ対応テーブル4aの先頭から順に読み出したVM−IDのVMに、デバイステーブル4bの先頭から順に読み出した入出力デバイスIDの入出力デバイスセット51,52,53,54を対応付ける構成であった。
これに対して、本実施形態2のPC10は、VMM21が4つのVMのそれぞれを起動させる場合に、VMのそれぞれに、VMのユーザのそれぞれが以前に使用した入出力デバイスセット51,52,53,54を対応付ける構成とする。
本実施形態2のPC10において、HDD4には、図13に示すような履歴情報テーブル4eが格納されている。図13は履歴情報テーブル4eの格納内容を示す模式図である。図13に示すように、履歴情報テーブル(入力対応記憶部)4eには、VMのVM−IDと、各VMのユーザが以前にVMを使用した際に使用した入出力デバイスセット51,52,53,54の入出力デバイスIDとを対応付けた履歴情報が格納されている。履歴情報テーブル4eの格納内容は、各VMのユーザが各VMを使用する際に、各VMに入出力デバイスセット51,52,53,54のいずれかが対応付けられる都度、VMM21によって登録又は更新される。
本実施形態2のPC10において、CPU1は、ROM2又はHDD4に格納されている各種の制御プログラムを実行させることによって、図4及び図5に示した各機能を実現する。また、本実施形態2のCPU1は、図4及び図5に示した各機能のほかに、履歴情報テーブル更新部27の機能を有する。図14は実施形態2のPC10の機能を示す機能ブロック図である。なお、図14には、VMM21の機能として、VM起動部22、デバイス切替部23、対象VM決定部26及び履歴情報テーブル更新部27のみを記載しているが、CPU1は、図4及び図5に示した各機能も有する。
本実施形態2のVMM21において、VM起動部22は、まず、履歴情報テーブル4eから1つの履歴情報(VM−ID及び入出力デバイスID)を読み出す。VM起動部22は、履歴情報テーブル4eから読み出したVM−IDに、履歴情報テーブル4eから読み出した入出力デバイスIDが示す入出力デバイスセット51(又は52,53,54)を割り当て、VMを起動させる。VM起動部22は、起動させたVMのそれぞれに、履歴情報テーブル4eから読み出したVM−IDに対応するOSプログラム30を実行させてOS31を起動させる。VM起動部22は、起動させたVMのVM−IDと、このVMに割り当てた入出力デバイスセット51(又は52,53,54)の入出力デバイスIDとを対応付けてVM−デバイス対応テーブル4dに格納させる。
VM起動部22は、履歴情報テーブル4eに格納されている全ての履歴情報に対応するVMの起動を行なう。図13に示した履歴情報テーブル4eでは、VM−IDがVM−A及びVM−Bの2つのVMが起動される。
本実施形態2のVM起動部22は、履歴情報テーブル4eに履歴情報が格納されていないVMについては、上述した実施形態1のVM起動部22と同様に、VM−ユーザ対応テーブル4a及びデバイステーブル4bの格納内容に基づいて起動させる。具体的には、VM起動部22は、VM−ユーザ対応テーブル4aに格納されているVM−IDのうちで、まだ起動していないVMのVM−IDを先頭から順に読み出す。また、VM起動部22は、デバイステーブル4bに格納されている入出力デバイスIDのうちで、まだVMに割り当てられていない入出力デバイスセット51,52,53,54の入出力デバイスIDを先頭から順に読み出す。
VM起動部22は、VM−ユーザ対応テーブル4aから読み出したVM−IDに、デバイステーブル4bから読み出した入出力デバイスIDが示す入出力デバイスセット51(又は52,53,54)を割り当て、VMを起動させる。VM起動部22は、起動させたVMのそれぞれに、VM−ユーザ対応テーブル4aから読み出したVM−IDに対応するOSプログラム30を実行させてOS31を起動させる。VM起動部22は、起動させたVMのVM−IDと、このVMに割り当てた入出力デバイスセット51(又は52,53,54)の入出力デバイスIDとを対応付けてVM−デバイス対応テーブル4dに格納させる。
VM起動部22は、VM−ユーザ対応テーブル4aに格納されている全てのVM−IDに対応するVMの起動を行ない、全てのVMを起動させた後、その旨をデバイス切替部23へ通知する。なお、全てのVMが起動した旨を通知された場合にデバイス切替部23が行なう処理は、上述の実施形態1で説明した処理と同様であるので説明を省略する。
一方、本実施形態2のデバイス切替部23は、対象VM決定部26から、ユーザが使用している入出力デバイスセット51(又は52,53,54)を切替後のVMに割り当てるように指示され、VMと入出力デバイスセット51,52,53,54との対応付けを切り替えた場合、その旨を履歴情報テーブル更新部27に通知する。
履歴情報テーブル更新部27は、切り替えられたVMと入出力デバイスセット51,52,53,54との対応付けを通知された場合、通知されたVMのVM−IDと、通知された入出力デバイスセット51,52,53,54の入出力デバイスIDとを対応付けて履歴情報テーブル4eに格納する。具体的には、履歴情報テーブル更新部27は、通知されたVMのVM−IDが履歴情報テーブル4eに既に格納されているか否かを判断する。既に格納されていると判断した場合、履歴情報テーブル更新部27は、このVM−IDに対応して履歴情報テーブル4eに格納されている入出力デバイスIDを、デバイス切替部23から通知された入出力デバイスIDに更新する。
まだ格納されていないと判断した場合、履歴情報テーブル更新部27は、デバイス切替部23から通知されたVM−ID及び入出力デバイスIDを対応付けて履歴情報テーブル4eに格納する。これにより、各ユーザがVMを使用した場合に、どの入出力デバイスセットを使用したかを把握することができる。
本実施形態2のCPU1が実現する各機能において、上述したVM起動部22及び履歴情報テーブル更新部27の各処理以外は、上述の実施形態1で説明した処理と同様の処理であるので説明を省略する。
以下に、本実施形態2のPC10において、電源が投入された場合にCPU1が行なう処理についてフローチャートに基づいて説明する。図15及び図16は電源投入時にCPU1が行なう処理の手順を示すフローチャートである。なお、以下の処理は、PC10のROM2又はHDD4に格納してある制御プログラムに従ってCPU1によって実行される。
PC10に電源が投入され、PC10のハードウェア各部の起動が完了した場合、CPU1は、まず、VMMプログラム20を実行してVMM21を起動する(S51)。VMM21(CPU1)は、履歴情報テーブル4eから履歴情報を1つ読み出す(S52)。VMM21は、読み出した履歴情報に含まれるVM−IDに、読み出した履歴情報に含まれる入出力デバイスIDが示す入出力デバイスセット51(又は52,53,54)を割り当て、1つのVMを起動させる(S53)。VMM21は、起動させたVMに、読み出した履歴情報に含まれるVM−IDに対応するOSプログラム30を実行させる。
VMM21は、起動させたVMのVM−IDと、このVMに割り当てた入出力デバイスセット51(又は52,53,54)の入出力デバイスIDとを対応付けてVM−デバイス対応テーブル4dに格納する(S54)。VMM21は、履歴情報テーブル4eに格納されている全ての履歴情報に対応するVMの起動を行なったか否かを判断する(S55)。VMM21は、全てのVMを起動していないと判断した場合(S55:NO)、ステップS52へ処理を戻し、履歴情報テーブル4eから異なる履歴情報を1つの読み出す(S52)。
VMM21は、履歴情報テーブル4eに格納されている全ての履歴情報に対応するVMの起動を行なうまで、ステップS52〜S55の処理を繰り返す。全てのVMを起動したと判断した場合(S55:YES)、VMM21は、VM−ユーザ対応テーブル4aに格納されているVM−IDのうちで、まだ起動していないVMのVM−IDを1つ読み出す(S56)。VMM21は、デバイステーブル4bに格納されている入出力デバイスIDのうちで、まだVMに割り当てられていない入出力デバイスセット51,52,53,54の入出力デバイスIDを1つ読み出す(S57)。
VMM21は、VM−ユーザ対応テーブル4aから読み出したVM−IDに対応するOSプログラム30を実行し、起動させたOS31に、デバイステーブル4bから読み出した入出力デバイスIDが示す入出力デバイスセット51(又は52,53,54)を割り当て、1つのVMを起動させる(S58)。
VMM21は、起動させたVMのVM−IDと、このVMに割り当てた入出力デバイスセット51(又は52,53,54)の入出力デバイスIDとを対応付けてVM−デバイス対応テーブル4dに格納する(S59)。VMM21は、VM−ユーザ対応テーブル4aに格納されている全てのVM−IDに対応するVMの起動を行なったか否かを判断する(S60)。VMM21は、全てのVMを起動していないと判断した場合(S60:NO)、ステップS56へ処理を戻し、VM−ユーザ対応テーブル4aに格納されているVM−IDのうちで、まだ起動していないVMのVM−IDを1つの読み出す(S56)。
VMM21は、VM−ユーザ対応テーブル4aに格納されている全てのVM−IDに対応するVMの起動を行なうまで、ステップS56〜S60の処理を繰り返す。全てのVMを起動したと判断した場合(S60:YES)、VMM21は処理を終了する。これにより、VMM21は、複数(ここでは4つ)のVMの起動処理を完了し、複数のVMをそれぞれ独立して動作させることができる。
上述したように、本実施形態2のPC10では、各ユーザに割り当てられているVMと、各ユーザがVMを以前に使用した場合に用いた入出力デバイスセット51(又は52,53,54)との対応を履歴情報テーブル4eによって管理することができる。そして、VM起動部22が各VMを起動させる際に、各VMのユーザが以前に使用した入出力デバイスセット51(又は52,53,54)を対応付ける。これによって、VMのそれぞれと入出力デバイスセット51,52,53,54のそれぞれとの切替処理の発生回数を削減できる。これは、同一ユーザが同一の入出力デバイスセット51,52,53,54を使用する可能性が高いからである。
本実施形態2のPC10において、ユーザが1つの入出力デバイスセット51(又は52,53,54)を使用してPC10(VM)の使用を開始した場合にCPU1が行なう処理は、上述の実施形態1において図9〜図11で説明した処理と同様であるので説明を省略する。なお、本実施形態2のVMM21(履歴情報テーブル更新部27)は、図11のステップS34の後に、ステップS29で対応付けた第2VMのVM−ID及び入出力デバイスセット51の入出力デバイスIDを履歴情報テーブル4eに格納する処理と、ステップS34で対応付けた第1VMのVM−ID及び入出力デバイスセット52の入出力デバイスIDを履歴情報テーブル4eに格納する処理とを行なう。
また、本実施形態2のPC10において、デスクトップUI部35によるデスクトップUIモードでの動作中のVMが行なう終了処理は、上述の実施形態1において図12で説明した処理と同一であるので説明を省略する。
本実施形態2のPC10では、履歴情報テーブル4eに格納される履歴情報は、VMのそれぞれに対して、VMの各ユーザが直近に使用した入出力デバイスセット51,52,53,54の入出力デバイスIDのみであった。このような構成に限られず、例えば、各ユーザが入出力デバイスセット51,52,53,54のそれぞれを使用した履歴を蓄積し、各ユーザが使用する可能性の最も高い入出力デバイスセット51(又は52,53,54)を特定するようにしてもよい。このように特定された入出力デバイスセット51(又は52,53,54)を、各ユーザのVMの起動時に対応付けることによって、VMのそれぞれと入出力デバイスセット51,52,53,54のそれぞれとの切替処理の発生回数をより削減できる。
(実施形態3)
以下に、実施形態3に係るPCについて説明する。なお、本実施形態3のPCは、上述した実施形態1のPC10と同様の構成によって実現することができるので、同様の構成については同一の符号を付して説明を省略する。
上述した実施形態1では、4つのVMのそれぞれに対して、入出力デバイスセット51,52,53,54のそれぞれのみを対応付ける構成であった。これに対して、本実施形態3のPC10は、入出力デバイスセット51,52,53,54だけでなく、VMによっては、他の入出力デバイスも対応付け、他の入出力デバイスの利用も可能となる構成とする。なお、入出力デバイスセット51,52,53,54以外の入出力デバイスとしては、例えば、FDD(フレキシブルディスクドライブ)、CD(Compact Disc)及びDVD等の光ディスクドライブ、プリンタ、スピーカ等が挙げられる。
本実施形態3のPC10において、HDD4には、図17に示すようなデバイス対応付けテーブル4fが格納されている。図17はデバイス対応付けテーブル4fの格納内容を示す模式図である。図17に示すように、デバイス対応付けテーブル(入出力装置対応記憶部)4fには、PC10の使用が可能なユーザのユーザIDと、各ユーザのVMで使用可能な入出力デバイスを示すデバイスIDとが対応付けて格納されている。デバイス対応付けテーブル4fの格納内容は、PC10の初期設定処理時に各ユーザによって登録されると共に、ユーザが自身のVMを使用中に登録内容を変更した場合には、対応するOS31a,31b,31c,31dによって変更される。
本実施形態3のPC10において、CPU1は、ROM2又はHDD4に格納されている各種の制御プログラムを実行させることによって、図4及び図5に示した各機能を実現する。また、本実施形態3のCPU1は、図4及び図5に示した各機能のほかに、個別デバイス対応付け部28の機能を有する。図18は実施形態3のPC10の機能を示す機能ブロック図である。なお、図18には、VMM21の機能として、デバイス切替部23、デバイス振分部24、対象VM決定部26及び個別デバイス対応付け部28のみを記載しているが、CPU1は、図4及び図5に示した各機能も有する。
本実施形態3のVMのそれぞれにおいて、ユーザ判定部33は、認証UI部32から通知されたユーザIDが、自身のVMに予め対応付けられているユーザのユーザIDに一致するか否かを判断する。ユーザIDが一致すると判断した場合、ユーザ判定部33は、モード切替部34に、認証UIモードからデスクトップUIモードへの切り替えを指示すると共に、このユーザIDをVMM21の個別デバイス対応付け部28に通知する。
個別デバイス対応付け部(対応付け制御部)28は、いずれかのVMのユーザ判定部33からユーザIDを通知された場合、通知されたユーザIDに対応付けてデバイス対応付けテーブル4fに格納されているデバイスIDを読み出す。個別デバイス対応付け部28は、読み出したデバイスIDが示す入出力デバイスを、通知されたユーザIDのユーザに割り当てられているVMに対応付けるようにデバイス振分部24に指示する。
具体的には、個別デバイス対応付け部28は、通知されたユーザIDに対応するVM−IDをVM−ユーザ対応テーブル4aから読み出す。そして、個別デバイス対応付け部28は、デバイス対応付けテーブル4fから読み出したデバイスIDの入出力デバイスを、VM−ユーザ対応テーブル4aから読み出したVM−IDのVMに対応付けるようにデバイス振分部24に指示する。
デバイス振分部24は、個別デバイス対応付け部28からの指示に従って、OS31a,31b,31c,31dのそれぞれに、入出力デバイスのそれぞれを振り分ける。なお、上述した処理によってOS31a,31b,31c,31dのそれぞれに対応付けられる入出力デバイスは、各ユーザが使用する入出力デバイスセット51,52,53,54の近傍に用意される必要がある。これにより、ユーザは、入出力デバイスセット51(又は52,53,54)以外の入出力デバイスの使用も可能となる。
一方、本実施形態3のVMM21において、デバイス切替部23は、対象VM決定部26から、ユーザが使用している入出力デバイスセット51(又は52,53,54)を、切替後のVMに割り当てるように指示された場合、VM及び入出力デバイスセット51,52,53,54の対応を切り替える。VM及び入出力デバイスセット51,52,53,54の対応を切り替えた後、デバイス切替部23は、VM−デバイス対応テーブル4dの格納内容をデバイス振分部24へ通知する。また、このとき、デバイス切替部23は、切替後のVMを割り当てられているユーザのユーザIDをVMM21の個別デバイス対応付け部28に通知する。具体的には、デバイス切替部23は、切替後のVMに対応するユーザIDをVM−ユーザ対応テーブル4aから特定して個別デバイス対応付け部28に通知する。
個別デバイス対応付け部(対応付け制御部)28は、デバイス切替部23からユーザIDを通知された場合、上述したようにVMのユーザ判定部33からユーザIDを通知された場合と同様の処理を行なう。具体的には、個別デバイス対応付け部28は、通知されたユーザIDに対応付けてデバイス対応付けテーブル4fに格納されているデバイスIDを読み出し、読み出したデバイスIDが示す入出力デバイスを、通知されたユーザIDのユーザに割り当てられているVMに対応付けるようにデバイス振分部24に指示する。
これにより、ユーザが使用した入出力デバイスセット51(又は52,53,54)に予め対応付けられていたVMが、このユーザに割り当てられているVMではない場合であっても、ユーザは、入出力デバイスセット51(又は52,53,54)と共に、入出力デバイスセット51(又は52,53,54)以外の入出力デバイスを介してVMを使用することができる。
本実施形態3のCPU1が実現する各機能において、上述したデバイス切替部23、デバイス振分部24及び個別デバイス対応付け部28の各処理以外は、上述の実施形態1で説明した処理と同様の処理であるので説明を省略する。
なお、本実施形態3のVMM21は、個別デバイス対応付け部28によって入出力デバイスセット51,52,53,54以外の入出力デバイスが対応付けられたVMのそれぞれがデスクトップUIモードでの動作を終了した場合、VMのそれぞれから、対応付けられた入出力デバイスを剥奪する。具体的には、VMM21は、デスクトップUIモードでの動作中のVMが動作を終了した場合、このVMに対応付けられている入出力デバイスをデバイス対応付けテーブル4fから特定する。そして、VMM21は、このVMから、特定した入出力デバイスを剥奪する。
なお、各VMは、モード切替部34によってデスクトップUIモードから認証UIモードへの切り替えが行なわれた場合、その旨をVMM21に通知するように構成してあり、これにより、VMM21は、デスクトップUIモードでの動作中のVMが動作を終了したことを把握できる。
以下に、本実施形態3のPC10において、CPU1が行なう処理についてフローチャートに基づいて説明する。なお、本実施形態3のPC10において、電源が投入された場合にCPU1が行なう処理は、上述の実施形態1において図8で説明した処理と同一であるので説明を省略する。
次に、本実施形態3のPC10において、全てのVMが起動した状態で、ユーザが1つの入出力デバイスセット51(又は52,53,54)を使用してPC10(VM)の使用を開始した場合にCPU1が行なう処理についてフローチャートに基づいて説明する。図19〜図21はユーザの認証処理の手順を示すフローチャートである。なお、以下の処理は、PC10のROM2又はHDD4に格納してある制御プログラムに従ってVMM21及びVM(OS31)によって実行される。
なお、以下では、ユーザが、第1VMに対応付けられている入出力デバイスセット51を介してユーザID及びパスワードを入力してきた場合にCPU1(VMM21、VM)が行なう処理を例に説明する。また、図19及び図20では、破線で区切った2つの領域において、左側の領域に第1VMによる処理を、右側の領域にVMM21による処理をそれぞれ示し、図21では、破線で区切った2つの領域において、左側の領域にVMM21による処理を、右側の領域に第2VMによる処理をそれぞれ示している。また、図19及び図20に示したステップS71〜S80の処理は、図9及び図10に示したステップS11〜ステップS20の処理と同一であるので説明を省略する。
第1VMは、ステップS73で取得したユーザIDが、自身の第1VMに予め対応付けられているユーザのユーザIDに一致すると判断した場合(S80:YES)、ステップS71で表示した認証ダイアログの表示を終了する(S81)。第1VMは、このユーザIDをVMM21に通知し、自身の第1VMに入出力デバイスセット51以外の入出力デバイスの対応付けを依頼する(S82)。
VMM21は、第1VMに入出力デバイスの対応付けを依頼された場合、第1VMに対応付けすべき入出力デバイスを特定し、特定した入出力デバイスを第1VMに対応付ける(S83)。一方、第1VMは、認証UI部32aの動作を終了して、デスクトップUI部35aの動作を開始させる(S84)。デスクトップUI部35aが動作することによって、第1VMは、対応付けられているモニタ51aに、デスクトップの表示を開始する(S85)。そして、第1VMは、上述したユーザ認証処理を終了し、デスクトップUIモードの動作を開始する。
ステップS73で取得したユーザIDが、自身の第1VMに予め対応付けられているユーザのユーザIDに一致しないと判断した場合(S80:NO)、第1VMは、ステップS73で取得したユーザIDをVMM21へ通知する(S86)。なお、以下では、このユーザは第2VMを割り当てられているユーザであるとして説明する。VMM21は、第1VMから通知されたユーザIDを取得し(S87)、VM−ユーザ対応テーブル4aの格納内容に基づいて、このユーザに対応するVM(第2VM)を特定する(S88)。
VMM21は、第1VMから、ユーザが使用している入出力デバイスセット51を剥奪し(S89)、第2VMから、第2VMに割り当てられている入出力デバイスセット52を剥奪する(S90)。VMM21は、第2VMに、ユーザが使用している入出力デバイスセット51を対応付ける(S91)。これにより、第2VMに入出力デバイスセット51が割り当てられる。
VMM21は、第2VMに対応付けすべき入出力デバイスを特定し、特定した入出力デバイスを第2VMに対応付ける(S92)。VMM21は、第2VMに、認証UIモードからデスクトップUIモードへの切り替えを指示する(S93)。第2VMは、VMM21からデスクトップUIモードへの切り替えを指示された場合、認証UI部32bによって表示していた認証ダイアログの表示を終了する(S94)。
第2VMは、認証UI部32bの動作を終了して、デスクトップUI部35bの動作を開始させる(S95)。デスクトップUI部35bが動作することによって、第2VMは、対応付けられているモニタ51aに、デスクトップの表示を開始する(S96)。そして、第2VMは、上述したユーザ認証処理を終了し、デスクトップUIモードでの動作を開始する。
一方、VMM21は、第1VMに、第2VMから剥奪した入出力デバイスセット52を対応付け(S97)、上述したユーザ認証処理を終了する。これにより、第1VMに入出力デバイスセット52が割り当てられ、第1VMは、認証ダイアログを、対応付けられたモニタ52aに表示させる。
本実施形態3のPC10において、上述したようにデスクトップUI部35によるデスクトップUIモードでの動作中のVMが、ユーザから動作終了の指示を受け付けた場合に行なう終了処理は、上述の実施形態1において図12で説明した処理と同一であるので説明を省略する。
次に、本実施形態3のPC10において、デスクトップUI部35によるデスクトップUIモードでの動作中のVMが動作を終了した場合にVMM21が行なう処理についてフローチャートに基づいて説明する。図22はVMがデスクトップUIモードでの動作を終了した場合にVMM21が行なう処理の手順を示すフローチャートである。なお、以下の処理は、PC10のROM2又はHDD4に格納してある制御プログラムに従ってCPU1(VMM21)によって実行される。
VMM21は、デスクトップUI部35によるデスクトップUIモードでの動作中のVMのいずれかがデスクトップUIモードでの動作を終了したか否かを判断しており(S101)、終了していないと判断した場合(S101:NO)、デスクトップUIモードでの動作を継続する。いずれかのVMがデスクトップUIモードでの動作を終了したと判断した場合(S101:YES)、VMM21は、動作を終了したVMに対応する入出力デバイスを、デバイス対応付けテーブル4fの格納内容に基づいて特定する(S102)。
VMM21は、動作を終了したVMから、特定した入出力デバイスを剥奪し(S103)、処理を終了する。これにより、ユーザ毎に使用が許可され、それぞれのVMに対応付けられていた入出力デバイスを、VMのデスクトップUIモードでの動作終了後にVMから確実に剥奪することができる。よって、使用を許可されていないユーザによって各入出力デバイスが使用されることを防止できる。
本実施形態3のPC10では、各VMに入出力デバイスセット51,52,53,54を割り当てるだけでなく、ユーザ毎にその他の入出力デバイスの使用も可能となるので、ユーザがVMを使用する際の利便性を向上させることができる。
本実施形態3のPC10では、図17に示すようにユーザID及びデバイスIDを対応付けて格納するデバイス対応付けテーブル4fに基づいて、各VMに入出力デバイスを対応付ける構成であった。このような構成のほかに、デバイス対応付けテーブル4fに、各ユーザに割り当てられているVMのVM−ID及びデバイスIDを対応付けて格納しておいてもよい。
本実施形態3のPC10は、上述した実施形態1のPC10の変形例として説明したが、本実施形態3の構成は、上述した実施形態2のPC10にも適用することができる。
(実施形態4)
以下に、実施形態4に係るPCについて説明する。なお、本実施形態4のPCは、上述した実施形態1のPC10と同様の構成によって実現することができるので、同様の構成については同一の符号を付して説明を省略する。
上述した実施形態1では、入出力デバイスセット51,52,53,54のいずれかを使用してユーザID及びパスワードを入力したユーザのVMが、使用した入出力デバイスセット51(又は52,53,54)に対応付けられているVMではない場合、VMのそれぞれと入出力デバイスセット51,52,53,54のそれぞれの対応付けを切り替える構成であった。
本実施形態4のPC10は、更に、VMのそれぞれと入出力デバイスセット51,52,53,54のそれぞれの対応付けを切り替える際に、このユーザのVMに対応付けられている入出力デバイスセット51(又は52,53,54)が他のユーザによって使用されている場合に、他のユーザが入力中の情報を保持し、VMのそれぞれと入出力デバイスセット51,52,53,54のそれぞれの対応付けを切り替えた後に、切り替えた後の入出力デバイスセット51(又は52,53,54)に保持した情報を移行させる構成を備える。
本実施形態4のPC10において、CPU1は、ROM2又はHDD4に格納されている各種の制御プログラムを実行させることによって、図4及び図5に示した各機能を実現する。また、本実施形態4のCPU1は、図4及び図5に示した各機能のほかに、認証UI制御部29の機能を有する。図23は実施形態4のPC10の機能を示す機能ブロック図である。なお、図23には、VMM21の機能として、デバイス切替部23、デバイス振分部24、対象VM決定部26及び認証UI制御部29のみを記載しているが、CPU1は、図4及び図5に示した各機能も有する。
本実施形態4のVMM21において、対象VM決定部26は、VM(切替前のVM)のユーザ判定部33からユーザIDを通知された場合、VM−ユーザ対応テーブル4aの格納内容に基づいて、通知されたユーザIDに対応付けられているVM(切替後のVM)を特定する。対象VM決定部26は、ユーザが使用している入出力デバイスセット51(又は52,53,54)を、切替後のVMに割り当てるようにデバイス切替部23に指示する。このとき、対象VM決定部26は、切替前のVM及び切替後のVMを認証UI制御部29に通知する。
認証UI制御部29は、切替前のVM及び切替後のVMを対象VM決定部26から通知された場合、切替後のVMの認証UI部32によるユーザ情報(ユーザID及びパスワード)の受け付けを一時停止させる。認証UI制御部(入力情報記憶部)29は、この認証UI部32がこの時点までに取得したユーザ情報を取得して保持する。認証UI制御部29は、例えば、対象VM決定部26からの指示に従ってデバイス切替部23がVM及び入出力デバイスセット51,52,53,54の対応付けを切り替えた後、保持していたユーザ情報を、切替前のVMへ送出する。
切替前のVMの認証UI部(報知部)32は、認証UI制御部29から送出されたユーザ情報を、対応付けられたモニタ51a(又は52a,53a,54a)に表示する認証ダイアログ中に表示させる。
これにより、複数のユーザが同じタイミングで入出力デバイスセット51,52,53,54からユーザ情報を入力した場合に、VM及び入出力デバイスセット51,52,53,54の対応付けが切り替えられることによって入力中の情報が削除されることを防止できる。ユーザは、ユーザ情報の入力処理が一時的に中断されるが、中断後には入力済みの情報が認証ダイアログに表示されるので、ユーザ情報の重複入力を回避できる。
なお、認証UI制御部29が、保持していたユーザ情報を切替前のVMへ送出するタイミングは、VM及び入出力デバイスセット51,52,53,54の対応付けがデバイス切替部23によって切り替えられる前でも後でもよい。
本実施形態4のCPU1が実現する各機能において、上述した認証UI制御部29の処理以外は、上述の実施形態1で説明した処理と同様の処理であるので説明を省略する。
以下に、本実施形態4のPC10において、CPU1が行なう処理についてフローチャートに基づいて説明する。なお、本実施形態4のPC10において、電源が投入された場合にCPU1が行なう処理は、上述の実施形態1において図8で説明した処理と同一であるので説明を省略する。
次に、本実施形態4のPC10において、全てのVMが起動した状態で、ユーザが1つの入出力デバイスセット51(又は52,53,54)を使用してPC10(VM)の使用を開始した場合にCPU1が行なう処理についてフローチャートに基づいて説明する。図24はユーザの認証処理の手順を示すフローチャートである。なお、以下の処理は、PC10のROM2又はHDD4に格納してある制御プログラムに従ってVMM21及びVM(OS31)によって実行される。また、図24では、破線で区切った2つの領域において、左側の領域にVMM21による処理を、右側の領域に第2VMによる処理をそれぞれ示している。
本実施形態4におけるユーザの認証処理は、図9及び図10に示したステップS11〜ステップS26の処理と同一の処理によって開始されるので、同一の処理については説明及び図示を省略する。従って、図24に示した処理は、図10に示したステップS26の続きの処理である。
図10に示したステップS26において、VMM21は、VM−ユーザ対応テーブル4aの格納内容に基づいて、第1VMから通知されたユーザIDに対応するVM(第2VM)を特定する(S26)。VMM21は、特定した第2VMによるユーザ情報(ユーザID及びパスワード)の受け付けを一時停止させ(S111)、第2VMがこの時点までに取得したユーザ情報を保持する(S112)。
VMM21は、第1VMから、ユーザが使用している入出力デバイスセット51を剥奪し(S113)、第2VMから、第2VMに割り当てられている入出力デバイスセット52を剥奪する(S114)。VMM21は、第2VMに、ユーザが使用している入出力デバイスセット51を対応付ける(S115)。これにより、第2VMに入出力デバイスセット51が割り当てられる。
VMM21は、第2VMに、認証UIモードからデスクトップUIモードへの切り替えを指示する(S116)。第2VMは、VMM21からデスクトップUIモードへの切り替えを指示された場合、認証UI部32bによって表示していた認証ダイアログの表示を終了する(S117)。
第2VMは、認証UI部32bの動作を終了して、デスクトップUI部35bの動作を開始させる(S118)。デスクトップUI部35bが動作することによって、第2VMは、対応付けられているモニタ51aに、デスクトップの表示を開始する(S119)。そして、第2VMは、上述したユーザ認証処理を終了し、デスクトップUIモードの動作を開始する。
一方、VMM21は、第1VMに、第2VMから剥奪した入出力デバイスセット52を対応付ける(S120)。これにより、第1VMに入出力デバイスセット52が割り当てられ、第1VMは、認証ダイアログを、対応付けられたモニタ52aに表示させる。更に、VMM21は、ステップS112で保持したユーザ情報を第1VMに送出し(S121)、上述したユーザ認証処理を終了する。
第1VMは、VMM21から送出されたユーザ情報を表示した認証ダイアログをモニタ52aに表示させる。これにより、モニタ52aを含む入出力デバイスセット52を使用してユーザ情報を入力中のユーザは、ユーザ情報の入力処理が一時的に停止された後、自身が入力したユーザ情報が表示された認証ダイアログに、残りの情報を入力すればよい。よって、ユーザの操作性を向上させることができる。
本実施形態4のPC10において、上述したようにデスクトップUI部35によるデスクトップUIモードでの動作中のVMが、ユーザから動作終了の指示を受け付けた場合に行なう処理は、上述の実施形態1において図12で説明した処理と同一であるので説明を省略する。
本実施形態4のPC10は、上述した実施形態1のPC10の変形例として説明したが、本実施形態4の構成は、上述した実施形態2,3のPC10にも適用することができる。
(実施形態5)
以下に、実施形態5に係るPCについて説明する。なお、本実施形態5のPCは、上述した実施形態1のPC10と同様の構成によって実現することができるので、同様の構成については同一の符号を付して説明を省略する。
上述した実施形態1では、VMの認証UI部32のそれぞれが、予め対応付けられている入出力デバイスセット51,52,53,54からユーザ情報(ユーザID及びパスワード)を取得した場合、このユーザ情報の認証をVMM21が行なう構成であった。これに対して、本実施形態5のPC10は、VMの認証UI部32のそれぞれが取得したユーザ情報の認証を、いずれかのVMが行なう構成とする。
本実施形態5のPC10において、CPU1は、ROM2又はHDD4に格納されている各種の制御プログラムを実行させることによって、図4及び図5に示した各機能を実現する。ただし、VMのそれぞれは、ユーザ判定部33の代わりに認証部36(36a,36b,36c,36d)を備える。また、VMM21は、認証部25を有しない。
図25は実施形態5のPC10の機能を示す機能ブロック図である。なお、図25には、VMM21の機能として、デバイス切替部23、デバイス振分部24及び対象VM決定部26のみを記載しているが、CPU1は、図4及び図5に示した各機能も有する。
本実施形態5のVMのそれぞれにおいて、認証UI部32は、図6に示すような表示画面を介してユーザID及びパスワードを取得した場合、取得したユーザID及びパスワードを認証部36に通知する。認証部36は、認証UI部32から通知されたユーザID及びパスワードの認証を行ない、認証結果をOS31へ通知する。具体的には、認証部36は、認証UI部32から取得したユーザID及びパスワードが、予め格納されているユーザID及びパスワードに一致するか否かを判断する。なお、各VMに予め対応付けられているユーザのユーザID及びパスワードは、各VMのシステム情報としてOS31毎にHDD4等に格納されている。
認証部36は、取得したユーザID及びパスワードが、予め格納されているユーザID及びパスワードに一致すると判断した場合、このユーザID及びパスワードが認証できた旨を示す認証結果をOS31へ通知する。一方、取得したユーザID及びパスワードが、予め格納されているユーザID及びパスワードに一致しないと判断した場合、認証部36は、このユーザID及びパスワードが認証できなかった旨を示す認証結果をOS31へ通知する。
OS31は、認証部36から、認証できた旨を示す認証結果が通知された場合、モード切替部34に、認証UIモードからデスクトップUIモードへの切り替えを指示する。モード切替部34は、認証UIモードからデスクトップUIモードへの切り替えをOS31から指示された場合、認証UI部32によってモニタ51a(又は52a,53a,54a)に表示していた認証ダイアログの表示を終了させる。モード切替部34は、デスクトップUI部35に動作を開始させ、これにより、ユーザは、自身に割り当てられているVMのデスクトップUIモードでの使用を開始できる。
一方、認証部36から認証できなかった旨を示す認証結果が通知された場合、OS31(認証依頼部)は、認証できなかったユーザID及びパスワードをVMM21の対象VM決定部26へ通知し、このユーザID及びパスワードの認証をVMM21に依頼する。
VMM21の対象VM決定部(認証実行部特定部)26は、VM(第1VMとする)からユーザID及びパスワードの認証を依頼された場合、VM−ユーザ対応テーブル4aの格納内容に基づいて、第1VMのOS31aから取得したユーザIDに対応するVM(第2VMとする)を特定する。対象VM決定部26は、第2VMを特定できなかった場合、エラーメッセージを第1VMのOS31aに通知する。
第1VMのOS31aは、VMM21の対象VM決定部26からエラーメッセージを通知された場合、例えば「ユーザIDまたはパスワードが誤りです」のようなエラーメッセージを、対応付けられているモニタ51a(又は52a,53a,54a)に表示する。そして、第1VMの認証UI部32aは、図6に示した認証ダイアログを再度表示し、ユーザを認証するための情報の受け付けを再度行なう。
第2VMを特定できた場合、対象VM決定部(認証依頼転送部)26は、第1VMのOS31aから取得したユーザID及びパスワードを第2VMの認証部36bに送出し、このユーザID及びパスワードの認証を第2VMの認証部36bに依頼する。第2VMの認証部36bは、対象VM決定部26から取得したユーザID及びパスワードの認証を行ない、認証結果をVMM21の対象VM決定部26へ返す。
VMM21の対象VM決定部26は、第2VMの認証部36bから認証結果を通知された場合、ユーザID及びパスワードが認証できた旨を示す認証結果を通知されたか否かを判断する。ユーザID及びパスワードが認証できなかった旨を示す認証結果が通知された場合、対象VM決定部26は、エラーメッセージを第1VMのOS31aに通知する。第1VMのOS31aは、対象VM決定部26からエラーメッセージを通知された場合、対応付けられているモニタ51a(又は52a,53a,54a)にエラーメッセージを表示する。そして、第1VMの認証UI部32aは、図6に示した認証ダイアログを再度表示し、ユーザを認証するための情報の受け付けを再度行なう。
ユーザID及びパスワードが認証できた旨を示す認証結果を通知された場合、対象VM決定部26は、ユーザが使用している入出力デバイスセット51(又は52,53,54)を、第2VMに割り当てるようにデバイス切替部23に指示する。即ち、対象VM決定部26は、第1VMに対応付けられている入出力デバイスセット51(又は52,53,54)と、第2VMに対応付けられている入出力デバイスセット52(又は51,53,54)とを取り替えるようにデバイス切替部23に指示する。
これにより、ユーザが使用している入出力デバイスセット51(又は52,53,54)を、このユーザに割り当てられている第2VMに対応付けることができる。また、VM及び入出力デバイスセット51,52,53,54の対応付けを切り替えた後、VMM21の対象VM決定部26は、第2VMのモード切替部34bに、認証UIモードからデスクトップUIモードへの切り替えを指示する。これにより、ユーザは、自身に割り当てられているVMのデスクトップUIモードでの使用を開始できる。
なお、第1VMは、第2VMに元々対応付けられていた入出力デバイスセット52(又は51,53,54)を対応付けられた後は、認証UI部32によって認証ダイアログを、対応付けられたモニタ51a(又は52a,53a,54a)に表示させる。
本実施形態5のCPU1が実現する各機能において、上述した対象VM決定部26及び認証部36の処理以外は、上述の実施形態1で説明した処理と同様の処理であるので説明を省略する。
以下に、本実施形態5のPC10において、CPU1が行なう処理についてフローチャートに基づいて説明する。なお、本実施形態5のPC10において、電源が投入された場合にCPU1が行なう処理は、上述の実施形態1において図8で説明した処理と同一であるので説明を省略する。
次に、本実施形態5のPC10において、全てのVMが起動した状態で、ユーザが1つの入出力デバイスセット51(又は52,53,54)を使用してPC10(VM)の使用を開始した場合にCPU1が行なう処理についてフローチャートに基づいて説明する。図26〜図28はユーザの認証処理の手順を示すフローチャートである。なお、以下の処理は、PC10のROM2又はHDD4に格納してある制御プログラムに従ってVMM21及びVM(OS31)によって実行される。
なお、以下では、ユーザが、第1VMに対応付けられている入出力デバイスセット51を介してユーザID及びパスワードを入力してきた場合にCPU1が行なう処理を例に説明する。また、図26では、破線で区切った2つの領域において、左側の領域に第1VMによる処理を、右側の領域にVMM21による処理をそれぞれ示し、図27及び図28では、破線で区切った2つの領域において、左側の領域にVMM21による処理を、右側の領域に第2VMによる処理をそれぞれ示している。
VMM21によって起動した第1VM(OS31a)は、対応付けられているモニタ51aに、図6に示すような認証ダイアログを表示している(S131)。第1VMは、対応付けられている入出力デバイスセット51(具体的には、キーボード51b及びマウス51c)を介してユーザ情報(ユーザID及びパスワード)が入力されたか否かを判断する(S132)。第1VMは、ユーザ情報が入力されていないと判断した場合(S132:NO)、待機し、ユーザ情報が入力されたと判断した場合(S132:YES)、ユーザ情報を取得する(S133)。
第1VMは、取得したユーザ情報を、予め格納されているユーザ情報に基づいて認証し(S134)、認証された場合(S135:YES)、ステップS131で表示した認証ダイアログの表示を終了する(S136)。第1VMは、認証UI部32aの動作を終了して、デスクトップUI部35aの動作を開始させる(S137)。デスクトップUI部35aが動作することによって、第1VMは、対応付けられているモニタ51aに、デスクトップの表示を開始する(S138)。そして、第1VMは、上述したユーザ認証処理を終了し、デスクトップUIモードの動作を開始する。
一方、認証されなかった場合(S135:NO)、第1VMは、ステップS133で取得したユーザ情報をVMM21へ通知する(S139)。VMM21は、第1VMから通知されたユーザ情報を取得し(S140)、VM−ユーザ対応テーブル4aの格納内容に基づいて、取得したユーザ情報に含まれるユーザIDに対応するVM(第2VM)が有るか否かを判断する(S141)。ユーザIDに対応するVMが有ると判断した場合(S141:YES)、VMM21は、ステップS140で取得したユーザ情報の認証を第2VMに依頼する(S142)。
第2VMは、VMM21から依頼されたユーザ情報の認証を、予め格納されているユーザ情報に基づいて行ない(S143)、認証結果をVMM21へ通知する(S144)。VMM21は、第2VMから認証結果を取得し(S145)、取得した認証結果が認証された旨を示す認証結果であるか否かを判断する(S146)。取得した認証結果が認証されなかった旨を示す認証結果であると判断した場合(S146:NO)、又は、ステップS141でユーザIDに対応するVMが無いと判断した場合(S141:NO)、VMM21は、第1VMにエラーメッセージを通知し(S147)、処理を終了する。
VMM21からエラーメッセージを通知された第1VMは、認証されなかった旨を示すエラーメッセージを、対応付けられているモニタ51aに表示させ、図6に示すような認証ダイアログを再度表示する。
取得した認証結果が認証された旨を示す認証結果であると判断した場合(S146:YES)、VMM21は、第1VMから、ユーザが使用している入出力デバイスセット51を剥奪する(S148)。VMM21は、第2VMから、第2VMに割り当てられている入出力デバイスセット52を剥奪する(S149)。VMM21は、第2VMに、ユーザが使用している入出力デバイスセット51を対応付ける(S150)。これにより、第2VMに入出力デバイスセット51が割り当てられる。
VMM21は、第2VMに、認証UIモードからデスクトップUIモードへの切り替えを指示する(S151)。第2VMは、VMM21からデスクトップUIモードへの切り替えを指示された場合、認証UI部32によって表示していた認証ダイアログの表示を終了する(S152)。第2VMは、認証UI部32bの動作を終了して、デスクトップUI部35bの動作を開始させる(S153)。デスクトップUI部35bが動作することによって、第2VMは、対応付けられているモニタ51aに、デスクトップの表示を開始する(S154)。そして、第2VMは、上述したユーザ認証処理を終了し、デスクトップUIモードの動作を開始する。
一方、VMM21は、第1VMに、第2VMから剥奪した入出力デバイスセット52を対応付け(S155)、上述したユーザ認証処理を終了する。これにより、第1VMに入出力デバイスセット52が割り当てられ、第1VMは、認証ダイアログを、対応付けられたモニタ52aに表示させる。
本実施形態5のPC10において、上述したようにデスクトップUI部35によるデスクトップUIモードでの動作中のVMが、ユーザから動作終了の指示を受け付けた場合に行なう処理は、上述の実施形態1において図12で説明した処理と同一であるので説明を省略する。
上述したように、本実施形態5のPC10では、入出力デバイスセット51,52,53,54のそれぞれを用いて入力されたユーザ情報の認証を、いずれかのVMの認証部36が行なう。各VMは、OS31のシステム情報として、自身を割り当てられているユーザのユーザID及びパスワードを記憶しており、この情報を用いることによって、自身を割り当てられているユーザに対する認証処理を行なえる。このようにユーザ情報の認証処理をVMで行なうことにより、VMM21の処理をより軽減することができる。
本実施形態5のPC10は、上述した実施形態1のPC10の変形例として説明したが、本実施形態5の構成は、上述した実施形態2〜4のPC10にも適用することができる。
(実施形態6)
以下に、実施形態6に係るPCについて説明する。なお、本実施形態6のPCは、上述した実施形態1のPC10と同様の構成によって実現することができるので、同様の構成については同一の符号を付して説明を省略する。
上述した実施形態1では、VMのそれぞれは、認証UIモードで動作中の場合、図6に示すような認証ダイアログを、予め対応付けられている入出力デバイスセット51,52,53,54のモニタ51a,52a,53a,54aに表示させる構成であった。これに対して、本実施形態6では、認証UIモードで動作中のVMは、図6に示す認証ダイアログのユーザIDの入力欄に、自身を割り当てられたユーザのユーザIDを予め表示させておく構成とする。
本実施形態6のPC10において、CPU1は、ROM2又はHDD4に格納されている各種の制御プログラムを実行させることによって、図4及び図5に示した各機能を実現する。本実施形態6のVMのそれぞれにおいて、認証UI部32は、図6に示すような表示画面を、対応付けられているモニタ51a(又は52a,53a,54a)に表示させる際に、自身のユーザのユーザIDを読み出す。なお、各VMに予め対応付けられているユーザのユーザIDは、各VMのシステム情報としてOS31毎にHDD4等に格納されている。
認証UI部(ユーザ情報報知部)32は、読み出したユーザIDをユーザIDの入力欄に表示させた認証ダイアログを、自身のVMに割り当てられたモニタ51a(又は52a,53a,54a)に表示させ、ユーザを認証するための情報の受け付けを行なう。図29は実施形態6の表示画面の構成を示す模式図である。図29に示した認証ダイアログは、ユーザID及びパスワードの入力欄、OKボタン及びキャンセルボタンをそれぞれ表示しており、ユーザIDの入力欄には既に1つのユーザIDが入力された状態となっている。
また、本実施形態6の認証ダイアログにおいて、ユーザIDの入力欄にはプルダウンメニューが設けられており、このPC10の使用が可能な各ユーザのユーザIDを選択できるように構成してある。図29に示した認証ダイアログにおいて、ユーザIDの入力欄に既に入力されているユーザIDのユーザは、このモニタ51a(又は52a,53a,54a)を含む入出力デバイスセット51(又は52,53,54)を用いて自身のパスワードのみを入力すればよい。
また、ユーザIDの入力欄に入力されているユーザIDのユーザ以外のユーザは、このモニタ51a(又は52a,53a,54a)を含む入出力デバイスセット51(又は52,53,54)を用いて、自身のユーザID及びパスワードを入力すればよい。
なお、図29に示す認証ダイアログにおいても、ユーザID及びパスワードが入力され、OKボタンが選択された場合、使用された入出力デバイスセット51(又は52,53,54)に対応する認証UI部32が、ユーザID及びパスワードを取得する。
本実施形態6のCPU1が実現する各機能において、上述した認証UI部32の処理以外は、上述の実施形態1で説明した処理と同様の処理であるので説明を省略する。
また、本実施形態6のPC10において、電源が投入された場合にCPU1が行なう処理は、上述の実施形態1において図8で説明した処理と同一であるので説明を省略する。なお、本実施形態6のPC10では、VMのそれぞれは、起動した後、図29に示すように自身のユーザのユーザIDを表示した認証ダイアログを、対応付けられているモニタ51a(又は52a,53a,54a)に表示させる。
また、本実施形態6のPC10において、全てのVMが起動した状態で、ユーザが1つの入出力デバイスセット51(又は52,53,54)を使用してPC10(VM)の使用を開始した場合にCPU1が行なう処理も、上述の実施形態1において図9〜図11で説明した処理と同一であるので説明を省略する。更に、本実施形態6のPC10において、デスクトップUIモードでの動作中のVMの動作をユーザが終了させた場合にCPU1が行なう処理も、上述の実施形態1において図12で説明した処理と同一であるので説明を省略する。
上述したように、本実施形態6のPC10では、認証UIモードで動作中のVMが、対応付けられているモニタ51a,52a,53a,54aに表示させた認証ダイアログに、自身のユーザのユーザIDを表示させておく。これにより、各ユーザは、モニタ51a,52a,53a,54aのそれぞれに表示させた認証ダイアログ中のユーザIDを確認し、自身のユーザIDが表示されたモニタ51a(又は52a,53a,54a)を含む入出力デバイスセット51(又は52,53,54)を使用した場合には、VM及び入出力デバイスセット51,52,53,54の切替処理が不要となるので、VMの使用が可能となるまでの待ち時間を削減できる。
本実施形態6のPC10は、上述した実施形態1のPC10の変形例として説明したが、本実施形態6の構成は、上述した実施形態2〜5のPC10にも適用することができる。
上述した実施形態1〜6では、VMを使用するユーザが、入出力デバイスセット51,52,53,54のいずれかを用いてユーザ情報を入力する構成であった。このような構成に限られず、ユーザ情報の入力は、例えばIDカードを用いて行なってもよいし、音声入力によって行なってもよい。
上述した実施形態1〜6では、それぞれのユーザに1つのVMが割り当てられている構成であった。このような構成に限られず、例えば、1つのVMを複数のユーザで共用する構成、1人のユーザに複数のVMを割り当てる構成であってもよい。1つのVMを複数のユーザで共用する場合には、例えば、図3(a)に示したVM−ユーザ対応テーブル4aにおいて、1つのVM−IDに複数のユーザIDを対応付けて格納しておけばよい。また、1人のユーザに複数のVMを割り当てる場合には、例えば、図3(a)に示したVM−ユーザ対応テーブル4aにおいて、複数のVM−IDのそれぞれに同一のユーザIDを対応付けて格納しておけばよい。なお、1つのVMを複数のユーザで共用する場合には、複数のユーザが同時に1つのVMを使用できない構成とする。
以上の実施形態1〜6を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
各種処理を実行する複数の実行部と、該複数の実行部の動作を制御する制御部とを備える情報処理装置であって、
前記複数の実行部と、前記複数の実行部のそれぞれに対応付けられたユーザのユーザ情報との対応を記憶するユーザ対応記憶部を備え、
前記実行部のそれぞれは、
予め対応付けられたユーザのユーザ情報を記憶するユーザ情報記憶部と、
予め対応付けられた入力部からのユーザ情報の入力を受け付ける入力受付部と、
該入力受付部が受け付けたユーザ情報を前記対応付けられた入力部を介して取得するユーザ情報取得部と、
該ユーザ情報取得部が取得したユーザ情報が前記ユーザ情報記憶部に記憶してあるユーザ情報に一致するか否かを判断する判断部と、
前記ユーザ情報取得部が取得したユーザ情報が前記ユーザ情報記憶部に記憶してあるユーザ情報に一致すると前記判断部が判断した場合、通常動作を開始する動作開始部と、
前記ユーザ情報取得部が取得したユーザ情報が前記ユーザ情報記憶部に記憶してあるユーザ情報に一致しないと前記判断部が判断した場合、前記ユーザ情報取得部が取得したユーザ情報に対応付けられた他の実行部の特定を前記制御部に要求する特定要求部とを有し、
前記制御部は、
前記ユーザ情報に対応付けられた他の実行部の特定を前記実行部から要求された場合、前記ユーザ情報に対応付けられた他の実行部を前記ユーザ対応記憶部に記憶してある対応に基づいて特定する特定部と、
該特定部が前記他の実行部を特定した場合、前記他の実行部の特定を要求してきた実行部に対応付けられている入力部と、前記他の実行部に対応付けられている入力部とを取り替える取替部とを有すること
を特徴とする情報処理装置。
(付記2)
前記実行部の前記入力受付部は、ユーザ情報と共に、それぞれのユーザを認証するための認証情報の入力を受け付け、
前記実行部の前記ユーザ情報取得部は、前記入力受付部が受け付けたユーザ情報及び認証情報を取得し、
前記実行部は、前記ユーザ情報取得部が取得した認証情報の認証を前記制御部に依頼する認証依頼部を備え、
前記制御部は、
それぞれのユーザの認証情報を予め記憶する認証情報記憶部と、
該認証情報記憶部に記憶してある認証情報に基づいて、前記実行部から依頼された認証情報の認証を行なう認証部と、
該認証部による認証結果を、前記認証を依頼してきた実行部へ通知する認証結果通知部とを備え、
前記実行部の前記判断部は、前記認証情報が認証された旨の認証結果を前記制御部から通知された場合に、前記認証情報と共に前記ユーザ情報取得部が取得したユーザ情報が前記ユーザ情報記憶部に記憶してあるユーザ情報に一致するか否かを判断することを特徴とする付記1に記載の情報処理装置。
(付記3)
前記実行部の前記ユーザ情報記憶部は、ユーザ情報と、それぞれのユーザを認証するための認証情報とを記憶しており、
前記実行部の前記入力受付部は、ユーザ情報と共に、それぞれのユーザの認証情報の入力を受け付け、
前記実行部の前記ユーザ情報取得部は、前記入力受付部が受け付けたユーザ情報及び認証情報を取得し、
前記実行部は、
前記ユーザ情報記憶部に記憶してある認証情報に基づいて、前記ユーザ情報取得部が取得した認証情報の認証、または、前記制御部から依頼された認証情報の認証を行なう認証部と、
前記ユーザ情報取得部が取得した認証情報が前記認証部によって認証されなかった場合に、前記認証情報の認証を前記制御部に依頼する認証依頼部と、
前記制御部から依頼された認証情報の前記認証部による認証結果を前記制御部へ通知する認証結果通知部とを備え、
前記実行部の前記動作開始部は、前記ユーザ情報取得部が取得した認証情報が前記認証部によって認証された場合に、通常動作を開始し、
前記制御部は、
前記実行部に前記認証情報の認証を依頼された場合、前記認証情報と共に前記実行部の前記ユーザ情報取得部が取得したユーザ情報に対応付けられた他の実行部を、前記ユーザ対応記憶部に記憶してある対応に基づいて特定する認証実行部特定部と、
該認証実行部特定部が特定した他の実行部に、前記認証情報の認証を依頼する認証依頼転送部とを備え、
前記制御部の前記取替部は、前記認証実行部特定部が特定した他の実行部から、前記認証情報が認証された旨を通知された場合に、前記認証情報の認証を依頼してきた実行部に対応付けられている入力部と、前記認証結果を通知してきた他の実行部に対応付けられている入力部とを取り替えることを特徴とする付記1に記載の情報処理装置。
(付記4)
前記実行部のそれぞれと、前記実行部のそれぞれに対応付けられた入力部との対応を記憶する入力対応記憶部を備え、
前記制御部は、前記実行部のそれぞれを起動させる際に、前記入力対応記憶部に記憶してある対応に従った入力部を前記実行部のそれぞれに対応付けて起動する起動部を有することを特徴とする付記1から3までのいずれかひとつに記載の情報処理装置。
(付記5)
前記実行部のそれぞれと、前記実行部のそれぞれが使用可能な入出力装置との対応を記憶する入出力装置対応記憶部を備え、
前記制御部は、起動後の前記実行部のそれぞれに、前記入出力装置対応記憶部に記憶してある対応に従った入出力装置を使用可能に対応付ける対応付け制御部を有することを特徴とする付記1から4までのいずれかひとつに記載の情報処理装置。
(付記6)
前記制御部は、前記取替部が入力部を取り替える際に、前記他の実行部に対応付けられている入力部を介して入力中の情報を記憶する入力情報記憶部を有し、
前記実行部の前記入力受付部は、前記取替部が入力部を取り替えた後に、取り替えられることによって対応付けられた入力部を介して、前記入力情報記憶部に記憶させた情報を報知する報知部を有することを特徴とする付記1から5までのいずれかひとつに記載の情報処理装置。
(付記7)
前記実行部の前記入力受付部は、自身の実行部に予め対応付けられたユーザのユーザ情報を、予め対応付けられた入力部を介して報知するユーザ情報報知部を有することを特徴とする付記1から6までのいずれかひとつに記載の情報処理装置。
(付記8)
各種処理を実行する複数の実行部と、該複数の実行部の動作を制御する制御部とを備える情報処理装置による情報処理方法であって、
前記実行部のそれぞれが、予め対応付けられた入力部からのユーザ情報の入力を受け付けるステップと、
前記実行部のそれぞれが、受け付けたユーザ情報を前記対応付けられた入力部を介して取得するステップと、
前記実行部のそれぞれが、取得したユーザ情報が予め対応付けられたユーザのユーザ情報に一致するか否かを判断するステップと、
前記実行部のそれぞれが、取得したユーザ情報が予め対応付けられたユーザのユーザ情報に一致すると判断した場合、通常動作を開始するステップと、
前記実行部のそれぞれが、取得したユーザ情報が予め対応付けられたユーザのユーザ情報に一致しないと判断した場合、前記取得したユーザ情報に対応付けられた他の実行部の特定を前記制御部に要求するステップと、
前記制御部が、前記ユーザ情報に対応付けられた他の実行部の特定を前記実行部から要求された場合、前記ユーザ情報に対応付けられた他の実行部を特定するステップと、
前記制御部が、前記他の実行部を特定した場合、前記他の実行部の特定を要求してきた実行部に対応付けられている入力部と、前記他の実行部に対応付けられている入力部とを取り替えるステップと
を含むことを特徴とする情報処理方法。
(付記9)
コンピュータに、各種処理を実行する複数の実行部と、該複数の実行部の動作を制御する制御部としての動作を実行させるためのコンピュータプログラムであって、
前記コンピュータに、
予め対応付けられた入力部からのユーザ情報の入力を受け付ける入力受付部、該入力受付部が受け付けたユーザ情報を前記対応付けられた入力部を介して取得するユーザ情報取得部、該ユーザ情報取得部が取得したユーザ情報が予め対応付けられたユーザのユーザ情報に一致するか否かを判断する判断部、前記ユーザ情報取得部が取得したユーザ情報が予め対応付けられたユーザのユーザ情報に一致すると前記判断部が判断した場合、通常動作を開始する動作開始部、及び、前記ユーザ情報取得部が取得したユーザ情報が予め対応付けられたユーザのユーザ情報に一致しないと前記判断部が判断した場合、前記ユーザ情報取得部が取得したユーザ情報に対応付けられた他の実行部の特定を前記制御部に要求する特定要求部を有する前記実行部としての動作を実行させるための第1コンピュータプログラムと、
前記コンピュータに、
前記ユーザ情報に対応付けられた他の実行部の特定を前記実行部から要求された場合、前記ユーザ情報に対応付けられた他の実行部を特定する特定部、及び、該特定部が前記他の実行部を特定した場合、前記他の実行部の特定を要求してきた実行部に対応付けられている入力部と、前記他の実行部に対応付けられている入力部とを取り替える取替部を有する前記制御部としての動作を実行させるための第2コンピュータプログラムと
を含むことを特徴とするコンピュータプログラム。