(57)【要約】  物理資源を論理的に分割して複数の仮想計算機として動作させる場合であって、情報処理装置１は、仮想マシン４のいずれかがデバイス３を割り当てられると共に操作端末２の被操作状態となった場合、デバイス３又は遠隔操作のいずれかを仮想マシン４から解放する。
2010113248.tif 000002
【特許請求の範囲】
【請求項１】
物理資源を論理的に分割して複数の仮想計算機として動作させる中央装置と、該中央装置と通信回線を介して接続可能な複数の端末装置とを備え、
各仮想計算機は、
自機に対する遠隔操作を前記端末装置のいずれかから受付ける受付手段
を備え、
前記中央装置は、
入出力機器を複数接続するインタフェースと、
接続してある入出力機器をそれぞれ前記仮想計算機のいずれかに割当てる割当手段と、
前記仮想計算機のいずれかが入出力機器を割当てられると共に、前記遠隔操作の被操作機となった場合、入出力機器又は遠隔操作のいずれかを被操作機から解放する解放手段と
を備え、
解放した入出力機器を被操作機と異なる他の仮想計算機に割当可能とするようにしてあることを特徴とする仮想計算機システム。
【請求項２】
前記解放手段は、入出力機器を割当ててある仮想計算機が被操作機となった場合、入出力機器を解放するようにしてあることを特徴とする請求項１に記載の仮想計算機システム。
【請求項３】
前記仮想計算機は、
自機が被操作機となったことを検出する検出手段と、
被操作機となったことを検出した場合、入出力機器を自機から解放することを前記解放手段に要求する出力手段と
を更に備え、
前記解放手段は、解放要求があった被操作機から入出力機器を解放するようにしてあることを特徴とする請求項２に記載の仮想計算機システム。
【請求項４】
前記仮想計算機は、
被操作機となったことを検出した場合、入出力機器を解放することの可否を問う可否情報を出力する手段
を更に備え、
前記出力手段は、受付けた可否情報に応じて、入出力機器を解放することを要求するようにしてあることを特徴とする請求項３に記載の仮想計算機システム。
【請求項５】
前記仮想計算機のいずれかが被操作機となったことを検出する検出装置を更に備え、
該検出装置は、
被操作機となったことを検出した場合、入出力機器を被操作機から解放することを前記中央装置に要求する送信手段
を備え、
前記解放手段は、解放要求された被操作機から入出力機器を解放するようにしてあることを特徴とする請求項２に記載の仮想計算機システム。
【請求項６】
前記中央装置は、
割当可能な入出力機器が尽きた場合、以降に割当てるべき仮想計算機を解放待ちとして記憶する記憶手段
を更に備え、
前記解放手段は、解放待ちとしてある仮想計算機が存在する場合、入出力機器を被操作機から解放するようにしてあることを特徴とする請求項２乃至５のいずれか一つに記載の仮想計算機システム。
【請求項７】
前記中央装置は、
前記解放手段が入出力機器を被操作機から解放した場合、解放したことを解放待ちとしてある仮想計算機に通知する手段
を更に備えることを特徴とする請求項６に記載の仮想計算機システム。
【請求項８】
前記割当手段は、入出力機器の割当を前記仮想計算機のいずれかが要求した場合、割当可能な入出力機器を割当要求があった仮想計算機に割当てるようにしてあることを特徴とする請求項２乃至７のいずれか一つに記載の仮想計算機システム。
【請求項９】
前記割当手段は、割当要求があった順序に従い、入出力機器を割当てるようにしてあることを特徴とする請求項８に記載の仮想計算機システム。
【請求項１０】
前記割当手段は、所定の優先度に従い、入出力機器を割当てるようにしてあることを特徴とする請求項８に記載の仮想計算機システム。
【請求項１１】
前記割当手段は、
入出力機器を仮想化して仮想資源を生成する手段と、
生成した仮想資源を入出力機器に代えて被操作機に割当てる手段と
を更に備え、
前記解放手段は、生成した仮想資源を割当てることにより入出力機器を被操作機から解放するようにしてあることを特徴とする請求項２乃至１０のいずれか一つに記載の仮想計算機システム。
【請求項１２】
前記解放手段は、前記割当手段が入出力機器を被操作機に割当てた場合、遠隔操作を被操作機から解放するようにしてあることを特徴とする請求項１に記載の仮想計算機システム。
【請求項１３】
物理資源を論理的に分割して複数の仮想計算機として動作させる情報処理装置であって、
通信回線を介して接続してある外部装置から各仮想計算機が遠隔操作を受付ける受付手段と、
入出力機器を複数接続するインタフェースと、
接続してある入出力機器をそれぞれ前記仮想計算機のいずれかに割当てる割当手段と、
前記仮想計算機のいずれかが入出力機器を割当てられると共に、前記遠隔操作の被操作機となった場合、入出力機器又は遠隔操作のいずれかを被操作機から解放する解放手段と
を備えることを特徴とする情報処理装置。
【請求項１４】
入出力機器を被操作機から解放する旨の要求を外部装置から受信する手段
を更に備え、
前記解放手段は、解放要求された被操作機から入出力機器を解放するようにしてあることを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
コンピュータに、物理資源を論理的に分割して複数の仮想計算機として動作させるコンピュータプログラムであって、
コンピュータに、
外部装置による遠隔操作を各仮想計算機に受付させるステップと、
自機に複数接続された入出力機器をそれぞれ検出させるステップと、
検出された入出力機器をそれぞれ前記仮想計算機のいずれかに割当てさせるステップと、
前記仮想計算機のいずれかが入出力機器を割当てられると共に、前記遠隔操作の被操作機となった場合、入出力機器又は遠隔操作のいずれかを被操作機から解放させる解放ステップと
を実行させることを特徴とするコンピュータプログラム。
【請求項１６】
前記解放ステップは、入出力機器を被操作装置から解放する旨の要求を外部装置から受付けた場合、解放要求された被操作機から入出力機器を解放するようにしてあることを特徴とする請求項１５に記載のコンピュータプログラム。
【請求項１７】
物理資源を論理的に分割して複数の仮想計算機として動作させる中央装置と、該中央装置と通信回線を介して接続可能な複数の端末装置とを備える仮想システムに用いられる仮想計算機への接続制御方法であって、
仮想計算機に対する利用要求に基づいて、当該仮想計算機と、当該仮想計算機の利用を要求してきた前記中央装置に接続された入出力装置あるいは前記端末装置とを対応付けて記憶しておき、
前記仮想計算機に対する利用要求を受け付けた場合に、当該仮想計算機に対応付けて記憶されている中央装置に接続された入出力装置あるいは端末装置が存在するか否かを確認し、
当該仮想計算機に対応付けて記憶されている中央装置に接続された入出力装置あるいは端末装置が存在することが確認された場合に、確認された当該仮想計算機に対応付けて記憶されている中央装置に接続された入出力装置あるいは端末装置による当該仮想計算機への接続を解放することを特徴とする接続制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理資源を論理的に分割して仮想計算機として動作させる遠隔操作を行う仮想計算機システム、情報処理装置、コンピュータプログラム及び接続制御方法に関する。
【背景技術】
【０００２】
近年、電子計算機は、その能力が飛躍的に向上したため、文書作成、電子メール又はウェブ閲覧などの通常の利用において余力を有している。【０００３】
そこで、仮想化機能を有する電子計算機が提案された。仮想化機能は、物理資源を抽象化して複数の仮想資源に分割し、仮想資源を独立した仮想マシンとして動作させる。仮想化機能を有する電子計算機は、余った能力を複数の仮想マシンとして活用する。【０００４】
このように、仮想化機能は、複数の電子計算機の資源を一台の電子計算機に集約することにより、実機の台数を減らすことができ、設置場所、消費電力及び保守管理の負担を軽減させることができる。【０００５】
また、電子計算機は、仮想マシンを操作するためのリソースを複数種有している。例えば、電子計算機は、ＵＳＢ（Universal Serial Bus）又はＨＤＭＩ（High-Definition Multimedia Interface）などのインタフェースを介して、キーボード、マウス、ディスプレイ装置又はプリンタ装置などの入出力機器を複数接続することができる。また、電子計算機は、コンピュータネットワークを介して複数の外部装置と接続することができる。【０００６】
従って、電子計算機は、各仮想マシンの操作手段として、入出力機器による操作と、外部装置による遠隔操作とを有する。【０００７】
そこで、仮想マシンに対するデバイスの制御に関して複数の制御方法を適切に切り換える装置が提案された（例えば、特許文献１）。【０００８】
【特許文献１】特開２００８−１４６５６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、提案された装置は、デバイスを仮想マシンに占有させる方式か、複数の仮想マシンに共有させる方式かを切り換えるものであって、より多くの仮想マシンに操作リソースを割り当てることは想定されていない。【００１０】
即ち、電子計算機は、物理的性状を有するハードウェア資源を分割することにより、仮想マシンを無限に設定することができる。しかし、電子計算機に接続可能な入出力機器は、電子計算機に実装可能なインタフェースのポート数に応じて有限である。従って、入出力機器を全ての仮想マシンに割り当てることは不可能である。【００１１】
そこで、入出力機器が尽きた場合、仮想マシンは、外部装置によって遠隔操作されるべきである。即ち、入出力機器又は遠隔操作を各仮想マシンに択一的に割り当てることができれば、より多くの仮想マシンを動作させることができ、余った能力を仮想マシンとして有効活用することができる。しかしながら、提案された装置にあっては、そのような事項が想定されていない。【００１２】
また、遠隔操作は、ネットワークによる転送可能なデータ量が有限であるため、操作反応を低下させ、大容量の動画をコマ落ちなく再生させることができないという問題を有している。これに対して、入出力機器は、かかる問題を有していない。従って、仮想マシンの操作は、入出力機器を用いることが望ましい。しかしながら、提案された装置にあっては、そのような事項が想定されていない。【００１３】
本発明はかかる事情を鑑みてなされたものであり、物理資源を論理的に分割して複数の仮想計算機として動作させる場合であって、一つの仮想計算機が複数種の操作リソースを占有することを回避することができ、より多くの仮想マシンに操作リソースを割り当てることができる仮想計算機システム、情報処理装置、コンピュータプログラム及び接続制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
開示の仮想計算機システムは、物理資源を論理的に分割して複数の仮想計算機として動作させる中央装置と、該中央装置と通信回線を介して接続可能な複数の端末装置とを備え、各仮想計算機は、自機に対する遠隔操作を前記端末装置のいずれかから受付ける受付手段を備え、前記中央装置は、入出力機器を複数接続するインタフェースと、接続してある入出力機器をそれぞれ前記仮想計算機のいずれかに割当てる割当手段と、前記仮想計算機のいずれかが入出力機器を割当てられると共に、前記遠隔操作の被操作機となった場合、入出力機器又は遠隔操作のいずれかを被操作機から解放する解放手段とを備え、解放した入出力機器を被操作機と異なる他の仮想計算機に割当可能とするようにしてあることを要件とする。【００１５】
また、開示の情報処理装置は、物理資源を論理的に分割して複数の仮想計算機として動作させる情報処理装置であって、通信回線を介して接続してある外部装置から各仮想計算機が遠隔操作を受付ける受付手段と、入出力機器を複数接続するインタフェースと、接続してある入出力機器をそれぞれ前記仮想計算機のいずれかに割当てる割当手段と、前記仮想計算機のいずれかが入出力機器を割当てられると共に、前記遠隔操作の被操作機となった場合、入出力機器又は遠隔操作のいずれかを被操作機から解放する解放手段とを備えることを要件とする。【００１６】
更にまた、開示のコンピュータプログラムは、コンピュータに、物理資源を論理的に分割して複数の仮想計算機として動作させるコンピュータプログラムであって、コンピュータに、外部装置による遠隔操作を各仮想計算機に受付させるステップと、自機に複数接続された入出力機器をそれぞれ検出させるステップと、検出された入出力機器をそれぞれ前記仮想計算機のいずれかに割当てさせるステップと、前記仮想計算機のいずれかが入出力機器を割当てられると共に、前記遠隔操作の被操作機となった場合、入出力機器又は遠隔操作のいずれかを被操作機から解放させる解放ステップとを実行させることを要件とする。【００１７】
開示の仮想計算機システム、情報処理装置、コンピュータプログラム及び接続制御方法は、物理資源を論理的に分割して複数の仮想計算機として動作させる場合であって、情報処理装置が、仮想計算機のいずれかが入出力機器を割り当てられると共に、外部装置による遠隔操作の被操作機となった場合、入出力機器又は遠隔操作のいずれかを被操作機から解放する。
【発明の効果】
【００１８】
開示の仮想計算機システム、情報処理装置、コンピュータプログラム及び接続制御方法は、物理資源を論理的に分割して複数の仮想計算機として動作させる場合、一つの仮想計算機が複数種の操作リソースを占有することを回避することができ、より多くの仮想マシンに操作リソースを割り当てることができる。
【図面の簡単な説明】
【００１９】
【図１】実施の形態１における仮想計算機システムの全体構成を示す図である。
【図２】実施の形態１における情報処理装置及び周辺機器の構成を示すブロック図である。
【図３】実施の形態１における補助記憶装置の記憶内容を示す図である。
【図４】実施の形態１における情報処理装置の機能ブロック図である。
【図５】デバイス管理テーブルのフォーマット例を示す図である。
【図６】認証画面の表示例を示す図である。
【図７】実施の形態１における情報処理装置１が実行するデバイス解放処理の手順を示すフローチャートである。
【図８】実施の形態２における情報処理装置の機能ブロック図である。
【図９】解放確認画面の表示例を示す図である。
【図１０】実施の形態２における情報処理装置が実行するデバイス解放処理の手順を示すフローチャートである。
【図１１】実施の形態３における情報処理装置の機能ブロック図である。
【図１２】実施の形態３における補助記憶装置の記憶内容を示す図である。
【図１３】実施の形態３における情報処理装置が実行する解放待ち申請処理の手順を示すフローチャートである。
【図１４】実施の形態３における情報処理装置が実行するデバイス解放処理の手順を示すフローチャートである。
【図１５】実施の形態４における情報処理装置の機能ブロック図である。
【図１６】解放通知の表示例を示す図である。
【図１７】実施の形態４における情報処理装置１が実行するデバイス解放処理の手順を示すフローチャートである。
【図１８】実施の形態５における情報処理装置の機能ブロック図である。
【図１９】実施の形態５における補助記憶装置の記憶内容を示す図である。
【図２０】認証情報テーブルのフォーマット例を示す図である。
【図２１】仮想マシン管理テーブルのフォーマット例を示す図である。
【図２２】デバイス群管理テーブルのフォーマット例を示す図である。
【図２３】実施の形態５における情報処理装置が実行するデバイス解放処理の手順を示すフローチャートである。
【図２４】実施の形態６における仮想計算機システムの全体構成を示す図である。
【図２５】実施の形態６における情報処理装置及び周辺機器の構成を示すブロック図である。
【図２６】実施の形態６における情報処理装置及び周辺機器の機能ブロック図である。
【図２７】実施の形態６における情報処理装置が実行する遠隔操作処理の手順を示すフローチャートである。
【図２８】実施の形態６における情報処理装置が実行するデバイス解放処理の手順を示すフローチャートである。
【符号の説明】
【００２０】
１  情報処理装置
１０  ＣＰＵ
１１  外部記憶装置
１２  ネットワーク接続用通信制御部
１３  ＲＯＭ
１４  ＲＡＭ
１５  補助記憶装置
１６  デバイス接続用通信制御部
１７  バス
２  操作端末
２０  リモート操作クライアント
２１  リモート接続制御部
３  デバイス
４  仮想マシン
４０  ゲストＯＳ
４１  リモート操作サーバ
４２  リモート接続監視部
４３  デバイス解放要求部
４４  解放確認部
４５  解放待ち申請部
４６  解放通知出力部
４７  リモート解放要求部
５  仮想マシンモニタ
５０  仮想マシン起動部
５１  デバイス管理テーブル
５２  デバイス接続確認部
５３  デバイス解放部
５４  認証部
５５  デバイス処理振り分け部
５６  デバイスエミュレータ
５７  解放待ち申請受付部
５８  解放待ち申請保存部
５９  解放待ち情報テーブル
５１０  解放通知生成部
５１１認証部
５１２  認証情報テーブル
５１３  デバイス接続部
５１４  仮想マシン管理テーブル
５１５  デバイス群管理テーブル
５１６  リモート解放部
５１７  仮想マシン制御受信部
６  コネクションブローカ
６０  接続依頼受信部
６１  仮想マシン制御部
６２  リモート接続監視部
６３  デバイス解放要求部
【発明を実施するための最良の形態】
【００２１】
実施の形態１．
開示の仮想計算機システム、情報処理装置、コンピュータプログラム及び接続制御方法の内容を本実施の形態を示す図面に基づいて説明する。図１は実施の形態１における仮想計算機システムの全体構成を示す図である。【００２２】
情報処理装置１は、本実施の形態における仮想計算機システムを構成する中央装置である。仮想計算機システムの一例は、仮想ＰＣ方式のシンクライアントシステムである。情報処理装置１は、後述するハードウェア資源を論理的に分割して複数の仮想マシン４として動作させる。情報処理装置１の一例は、汎用的な電子計算機である。情報処理装置１の構成は、後述する。【００２３】
操作端末２は、コンピュータネットワークを介して情報処理装置１に接続可能である。操作端末２は、例えば、有線通信又は無線通信により情報処理装置１に接続可能である。操作端末２は、仮想マシン４を遠隔操作するための装置である。操作端末２の一例は、パーソナルコンピュータ（Personal Computer）又はラップトップコンピュータ（Laptop Computer）である。【００２４】
入出力機器（以下「デバイス」という）３は、インタフェースを介して情報処理装置１に接続可能である。デバイス３は、仮想マシン４との間でデータの授受を行う。デバイス３は、仮想マシン４を操作するための装置である。デバイス３の一例は、キーボード、マウス、イメージスキャナ装置又はタブレット装置などの入力機器、及びディスプレイ装置又はプリンタ装置などの出力機器である。【００２５】
図２は実施の形態１における情報処理装置１及び周辺機器の構成を示すブロック図である。情報処理装置１は、ＣＰＵ１０、外部記憶装置１１、ネットワーク接続用通信制御部１２、ＲＯＭ１３、ＲＡＭ１４、補助記憶装置１５及びデバイス接続用通信制御部１６を有する。各ハードウェア資源は、バス１７を介して相互に接続されている。【００２６】
ＣＰＵ１０は、仮想化機能及びその他の機能を有する資源である。ＣＰＵ１０は、オペレーテイングシステム（以下「ＯＳ」という）及び開示のコンピュータプログラムに従って、後述する処理及び各種処理を行う。ＣＰＵ１０は、上述したハードウェア資源の物理的特性をシステム、アプリケーションソフトウェア及びエンドユーザから隠蔽する。ＣＰＵ１０は、ハードウェア資源を複数の仮想資源に分割して複数の仮想マシン４として動作させる。仮想マシン４は、操作端末２又はデバイス３を用いて操作されて各種演算を実行する。仮想マシン４は、演算結果を操作端末２又はデバイス３に出力する。その他の機能は、後述にて説明する。【００２７】
外部記憶装置１１は、記録媒体１１ａに対するデータの読み書きを行うリーダライタである。リーダライタの一例は、フレキシブルディスクドライブ、ＭＯドライブ、ＣＤ−Ｒドライブ、磁気テープドライブ、メモリカードリーダライタ又はＵＳＢメモリを着脱するためのインタフェースである。【００２８】
外部記憶装置１１は、装着口（図示せず）を有し、記録媒体１１ａが装着口に挿入されることにより、記録媒体１１ａが装着される。また、外部記憶装置１１は、記録媒体１１ａが装着口から抜脱されることにより、記録媒体１１ａが離脱する。外部記憶装置１１は、記録媒体１１ａが装着された旨又は離脱した旨の通知をＣＰＵ１０に出力する。【００２９】
記録媒体１１ａは、リムーバブルメディアである。リムーバブルメディアの一例は、フレキシブルディスク、ＭＯ、ＣＤ−Ｒ、磁気テープ、メモリカード又はＵＳＢメモリなどである。記録媒体１１ａは、プログラム及び各種データを記憶している。プログラムは、ＯＳ、開示のコンピュータプログラム及びその他のアプリケーションソフトウェアを含む。【００３０】
ネットワーク接続用通信制御部１２は、コンピュータネットワークを介して各操作端末２の遠隔操作を受信するための資源である。ネットワーク接続用通信制御部１２は、例えば、インタフェースとしてイーサネット（登録商標）規格を有し、ＴＣＰ／ＩＰに従って通信を行う。ネットワーク接続用通信制御部１２は、操作端末２から送信された操作信号を受信してＣＰＵ１０に出力する。【００３１】
ネットワーク接続用通信制御部１２は、コンピュータネットワーク上において、スイッチングハブを多段的に用いることにより、多数の操作端末２と接続可能である。また、ネットワーク接続用通信制御部１２は、コンピュータネットワークを介して遠方に設置してある操作端末２の遠隔操作を受信することができる。一方、ネットワーク接続用通信制御部１２は、コンピュータネットワークの帯域幅に上限があるため、データ転送能力が１００メガビット毎秒（以下「Ｍｂｐｓ」という）程度にとどまる。【００３２】
ＲＯＭ１３は、記録してあるデータを読み出すことが可能な記憶装置である。ＲＯＭ１３は、Basic Input/Output System（以下ＢＩＯＳという）及びその他のファームウェアを記憶する半導体素子である。【００３３】
ＲＡＭ１４は、ＣＰＵ１０の実行により生じたデータ、補助記憶装置１５から読み出したデータを一時記憶する資源である。ＲＡＭ１４は、例えば、ＳＤＲＡＭ（Synchronous DRAM）又はＳＲＡＭ（Static RAM）などの半導体が該当する。【００３４】
補助記憶装置１５は、外部記憶装置１１、ＲＡＭ１４又はデバイス３から受け付けたデータを記憶する。補助記憶装置１５は、例えば、磁気ディスク記録方式のハードディスクドライブ（ＨＤＤ）又はＮＡＮＤ素子で構成されるフラッシュソリッドステートドライブ（Ｆｌａｓｈ  ＳＳＤ）が該当する。また、補助記憶装置１５は、ネットワーク又はファイバーチャネルを経由して、別の情報処理装置上にあってもよい。【００３５】
図３は実施の形態１における補助記憶装置１５の記憶内容を示す図である。補助記憶装置１５は、ＯＳ及び開示のコンピュータプログラムを記憶する。ＯＳは、情報処理装置１を制御する。またＯＳは、仮想マシン４を制御するゲストＯＳ４０と、ゲストＯＳ４０を制御する仮想マシンモニタ５を含む。なお、ＯＳ、ゲストＯＳ４０、仮想マシンモニタ５の構成は、この例に限らない。例えば、ＯＳ、ゲストＯＳ４０、仮想マシンモニタ５が、それぞれ独立したコンポーネントであって、それぞれが連携して動作するものであってもよい。補助記憶装置１５は、後述するデバイス管理テーブル５１を記憶する。【００３６】
デバイス接続用通信制御部１６は、デバイス３を複数接続するための資源である。デバイス接続用通信制御部１６は、例えば、インタフェースとしてＵＳＢ規格を有し、デバイス３との間で通信を行う。デバイス接続用通信制御部１６は、デバイス３から送信されたデータを受信してＣＰＵ１０又は補助記憶装置１５に出力する。【００３７】
デバイス接続用通信制御部１６は、４８０Ｍｂｐｓ程度のデータ転送能力を有しており、コンピュータネットワーク上のデータ転送能力を上回る。一方、デバイス接続用通信制御部１６は、情報処理装置１が物理的なスペース、規格上の制約又は処理能力に限界があるため、接続可能なデバイス３が数台程度にとどまる。また、デバイス接続用通信制御部１６の最大転送距離は、２０ｍ程度にとどまる。【００３８】
図４は実施の形態１における情報処理装置１の機能ブロック図である。情報処理装置１は、仮想マシン４及び仮想マシンモニタ５を有する。【００３９】
仮想マシン４は、情報処理装置１のハードウェア資源が抽象化されたものであり、複数存在する。仮想化マシン４は、ゲストＯＳ４０、リモート操作サーバ４１、リモート接続監視部４２及びデバイス解放要求部４３を有する。【００４０】
ゲストＯＳ４０は、仮想マシン４内で起動し、仮想マシン４の仮想資源を制御する。ゲストＯＳ４０は、外部記憶装置１１又はネットワーク用接続用通信制御部１２を介して情報処理装置１にインストールされる。ゲストＯＳ４０は、補助記憶装置１５に記憶される。【００４１】
リモート操作サーバ４１は、操作端末２の遠隔操作を受け付け、受け付けた遠隔操作に従ってゲストＯＳ４０を制御する。リモート操作サーバ４１は、表示する画面情報を操作端末２に出力する。リモート操作サーバ４１は、ＣＰＵ１０の機能の一つである。【００４２】
リモート接続監視部４２は、操作端末２の遠隔操作の可否を監視する。リモート接続監視部４２は、操作端末２の遠隔操作を検出した場合、自機が遠隔操作により被操作状態であると判断する。リモート接続監視部４２は、自機が被操作状態であると判断した場合、仮想マシン４からデバイス３を解放する旨の要求をデバイス解放要求部４３に出力する。リモート接続監視部４２は、ＣＰＵ１０が有する機能の一つである。リモート接続監視部４２は、ゲストＯＳ４０により制御される。【００４３】
デバイス解放要求部４３は、解放要求をリモート接続監視部４２から受け付けた場合、受け付けた解放要求及び自機の識別情報を仮想マシンモニタ５に出力する。デバイス解放要求部４３は、ＣＰＵ１０が有する機能の一つである。デバイス解放要求部４３は、ゲストＯＳ４０により制御される。【００４４】
仮想マシンモニタ５は、各仮想マシン４を管理する。仮想マシンモニタ５は、ＣＰＵ１０が有する機能の一つである。仮想マシンモニタ５は、仮想マシン起動部５０、デバイス管理テーブル５１、デバイス接続確認部５２、デバイス解放部５３、認証部５４、デバイス処理振り分け部５５及びデバイスエミュレータ５６を有する。仮想マシン起動部５０は、任意の仮想マシン４を起動する。【００４５】
図５はデバイス管理テーブル５１のフォーマット例を示す図である。デバイス管理テーブル５１は、複数のデバイス３のいずれかと、複数の仮想マシン４のいずれかとの対応付けを記憶する。デバイス管理テーブル５１は、仮想マシン４の識別情報(ＶＭＩＤ)、デバイス３の識別情報(デバイスＩＤ)及びデバイス３の種類（デバイス種類）を対応付けて記憶する。仮想マシン４の識別情報は、仮想マシン４の起動時に仮想マシン起動部５０により生成される。デバイス３の識別情報及びデバイス３の種類は、情報処理装置１起動時及びデバイス３の接続時にデバイス接続用制御部１６により生成される。対応付けは、仮想マシン4の起動時にＣＰＵ１０により実行される。デバイス３は、対応付けにより、仮想マシン４に割り当てられた状態となる。【００４６】
デバイス接続確認部５２は、デバイス３の解放要求及び仮想マシン４の識別情報をデバイス解放要求部４３から受け付けた場合、仮想マシン４に対応するデバイス３の識別情報をデバイス管理テーブル５１から抽出する。仮想マシン４の識別情報は、解放要求があった仮想マシン４を示す。デバイス３の識別情報は、解放すべきデバイス３を示す。デバイス接続確認部５２は、デバイス３の識別情報を抽出できた場合、デバイス３の解放要求、デバイス３の識別情報及び仮想マシン４の識別情報をデバイス解放部５３に出力する。【００４７】
デバイス解放部５３は、デバイス３の解放要求、デバイス３の識別情報及び仮想マシン４の識別情報をデバイス接続確認部５２から受け付けた場合、受け付けたデバイス３の識別情報と仮想マシン４の識別情報との対応付けを解消する。その結果、デバイス３は、仮想マシン４から解放された状態となる。解放されたデバイス３は、入力機器及び出力機器を含む。解放されたデバイス３は、デバイス処理振り分け部５５により制御される。デバイス解放部５３は、デバイス管理テーブルの対応するレコードを削除する。デバイス解放部５３は、認証画面を出力する旨の要求を認証部５４に出力する。【００４８】
認証部５４は、認証画面を出力する旨の要求をデバイス解放部５３から受け付けた場合、解放されたデバイス３（出力機器）に認証画面を出力する。認証部５４は、後述する認証処理を実行する。【００４９】
図６は認証画面の表示例を示す図である。認証画面は、認証情報の入力欄を有する。認証情報は、ユーザＩＤ及びパスワードである。認証画面は、解放されたデバイス３（出力機器）に出力される。ユーザＩＤは、仮想マシン４のいずれかに対応付けられて仮想マシン管理テーブル（図示せず）に記憶されている。対応付けは、仮想マシン４へのログイン時にＣＰＵ１０により実行させる。仮想マシン管理テーブルは、補助記憶装置１５に記憶されている。【００５０】
デバイス処理振り分け部５５は、仮想マシン４から解放されたデバイス３を制御する。デバイス処理振り分け部５５は、解放されたデバイス３（入力機器）のいずれかから認証情報を受け付ける。デバイス処理振り分け部５５は、受け付けた認証情報を認証部５４に出力し、認証画面に表示させる。【００５１】
エンドユーザは、解放されたデバイス３（出力機器）のいずれかに出力された認証画面を視認しながら、解放されたデバイス３（入力機器）のいずれかを用いて認証情報を入力する。【００５２】
認証部５４は、以下の認証処理を実行する。認証部５４は、受け付けた認証情報と、認証情報テーブル（図示せず）とを比較する。認証情報テーブルは、ユーザＩＤ及びパスワードを記憶する。ユーザＩＤ及びパスワードは、エンドユーザにより予め登録される。認証部５４は、受け付けた認証情報が認証情報テーブルに登録されていると判定した場合、認証が成功した旨の通知をデバイス処理振り分け部５５に出力する。【００５３】
デバイス処理振り分け部５５は、認証の成功を認証部５４から受け付けた場合、認証情報を受け付けたデバイス３（入力機器）と、認証情報を表示したデバイス３（出力機器）とを対応付ける。このように、開示の情報処理装置１は、１台のデバイス３（出力機器）を複数のエンドユーザで共有している場合、エンドユーザが利用するデバイス３（入力機器）とデバイス３（出力機器）とを対応付けることができる。【００５４】
更にまた、デバイス処理振り分け部５５は、デバイス３を仮想マシン4に直接割り当てるか、又はエミュレートしたデバイスを仮想マシン４に割り当てる。デバイス処理振り分け部５５は、ユーザＩＤ及びデバイス３の割当要求を受け付けた場合、受け付けたユーザＩＤに対応する仮想マシン４の識別情報を仮想マシン管理テーブル（図示しない）から抽出する。デバイス処理振り分け部５５は、抽出した仮想マシン４の識別情報とデバイス３の識別情報とを対応付けてデバイス管理テーブル５１に記憶する。その結果、デバイス３は、仮想マシン４に割り当てられた状態となる。【００５５】
デバイスエミュレータ５６は、エミュレートしたデバイスが仮想マシン４に割り当てられた場合、デバイス３の物理的性状を抽象化して仮想資源を生成する。デバイス処理振り分け部５５は、生成した仮想資源をデバイス３に代えて仮想マシン４に割り当てる。【００５６】
情報処理装置１のＣＰＵ１０は、仮想マシン４の機能及び仮想マシンモニタ５の機能を発揮することにより以下の処理を実行する。図７は実施の形態１における情報処理装置１が実行するデバイス解放処理の手順を示すフローチャートである。【００５７】
仮想マシン４は、自機が遠隔操作により被操作状態であるか否かを判定する（Ｓ１０１）。例えば、仮想マシン４は、操作端末２からのリモート接続要求を受信したことにより、自機が遠隔操作により被操作状態であることを判定する。この判定方法の一例は、他の実施形態においても、同様に適用可能である。仮想マシン４は、被操作状態でないと判定した場合（Ｓ１０１でＮＯ）、ステップＳ１０１の判定を繰り返す。【００５８】
一方、仮想マシン４は、被操作状態であると判定した場合（Ｓ１０１でＹＥＳ）、自機に接続してあるデバイス３の解放要求を仮想マシンモニタ５に出力する（Ｓ１０２）。【００５９】
仮想マシンモニタ５は、デバイス管理テーブル５１にアクセスし、要求があった仮想マシン４に割り当ててあるデバイス３が存在するか否かを判定する（Ｓ１０３）。仮想マシンモニタ５は、割り当ててあるデバイス３が存在していないと判定した場合（Ｓ１０３でＮＯ）、処理を終了する。例えば、要求があった仮想マシン４の識別情報（ＶＭＩＤ）をキーにして、デバイス管理テーブル５１を参照し、仮想マシン４の識別情報に、デバイスＩＤ３の識別情報（デバイスＩＤ）が対応づけて記憶されていない場合、あるいは、仮想マシン４の識別情報が存在しない場合、仮想マシンモニタ５は、要求があった仮想マシン４に割り当ててあるデバイス３が存在しないと判定する。また、例えば、要求があった仮想マシン４の識別情報（ＶＭＩＤ）をキーにして、デバイス管理テーブル５１を参照し、仮想マシン４の識別情報に、デバイスＩＤ３の識別情報（デバイスＩＤ）が対応づけて記憶されている場合、仮想マシンモニタ５は、要求があった仮想マシン４に割り当ててあるデバイス３が存在すると判定する。なお。この判定方法の一例は、他の実施形態においても、同様に適用可能である。【００６０】
一方、仮想マシンモニタ５は、割り当ててあるデバイス３が存在すると判定した場合（Ｓ１０３でＹＥＳ）、デバイス３を仮想マシン４から解放し、デバイス管理テーブル５１から対応するレコードを削除する（Ｓ１０４）。仮想マシンモニタ５は、解放したデバイス３（出力機器）に認証画面を出力する（Ｓ１０５）。仮想マシンモニタ５は、処理を終了する。仮想マシンモニタ５は、認証情報の入力があるまで待機する。【００６１】
このように、開示の仮想計算機システムは、デバイス３を接続してある仮想マシン４に対する遠隔操作が開始された場合、仮想マシン４からデバイス３を解放する。解放されたデバイス３は、他の仮想マシン４に割り当て可能となる。その結果、より多くの仮想マシン４を操作することができる。【００６２】
実施の形態２．
開示の仮想計算機システム、情報処理装置、コンピュータプログラム及び接続制御方法は、デバイス３を仮想マシン４から解放する場合、仮想マシン４を利用しているエンドユーザに解放の可否を確認するようにしてもよい。当該形態の内容を実施の形態２として以下説明する。【００６３】
図８は実施の形態２における情報処理装置１の機能ブロック図である。情報処理装置１は、仮想マシン４及び仮想マシンモニタ５を有する。【００６４】
仮想マシン４は、実施の形態１における仮想マシン４が有する機能に加え、解放確認部４４を有する。リモート接続監視部４２は、デバイス３の解放要求を解放確認部４４に出力する。解放確認部４４は、解放要求をリモート接続監視部４２から受け付けた場合、解放確認画面を操作端末２に送信する。【００６５】
図９は解放確認画面の表示例を示す図である。解放確認画面は、デバイス３の解放の可否を問う可否情報である。解放確認画面は、デバイス３を解放する旨のメッセージが表示された表示領域、デバイス３の解放を許可する旨を入力する許可ボタン（図９の「はい」と表示されたボタン）、及び解放を拒否する旨を入力する拒否ボタン（図９の「いいえ」と表示されたボタン）を有する。解放確認画面は、操作端末２のディスプレイ（図示せず）に出力される。操作端末２は、操作部（図示せず）を介して、ユーザによっていずれかのボタンに対する操作を受け付けることにより、解放を許可する旨の回答、あるいは、解放を拒否する旨の回答を受け付ける。操作端末２は、受け付けた回答を解放確認部４４に送信する。【００６６】
解放確認部４４は、操作端末２から送信された回答を受信する。解放確認部４４は、解放を許可する旨の回答を受信した場合、デバイス３の解放要求をデバイス解放要求部４３に出力する。解放確認部４４は、解放を拒否する旨の回答を受信した場合、デバイス３の解放を中止する。【００６７】
なお、仮想計算機システムの全体構成、情報処理装置１の構成及び補助記憶装置１５の記憶内容は、実施の形態１と同様であるから、対応箇所に同一の符号を付してその説明を省略する。【００６８】
情報処理装置１のＣＰＵ１０は、仮想マシン４の機能及び仮想マシンモニタ５の機能を発揮することにより以下の処理を実行する。図１０は実施の形態２における情報処理装置１が実行するデバイス解放処理の手順を示すフローチャートである。【００６９】
仮想マシン４は、自機が遠隔操作により被操作状態であるか否かを判定する（Ｓ２０１）。仮想マシン４は、被操作状態でないと判定した場合（Ｓ２０１でＮＯ）、ステップＳ２０１の判定を繰り返す。【００７０】
一方、仮想マシン４は、被操作状態であると判定した場合（Ｓ２０１でＹＥＳ）、操作元となる操作端末２に解放確認画面を送信する（Ｓ２０２）。仮想マシン４は、操作端末２から送信された回答を受信する。仮想マシン４は、解放を許可する旨の回答を受信したか否かを判定する（Ｓ２０３）。仮想マシン４は、解放を許可しない旨の回答を受信したと判定した場合（Ｓ２０３でＮＯ）、処理を終了する。【００７１】
一方、仮想マシン４は、解放を許可する旨の回答を受信したと判定した場合（Ｓ２０３でＹＥＳ）、自機に接続してあるデバイス３の解放要求を仮想マシンモニタ５に出力する（Ｓ２０４）。【００７２】
仮想マシンモニタ５は、デバイス管理テーブル５１にアクセスし、要求があった仮想マシン４に割り当ててあるデバイス３が存在するか否かを判定する（Ｓ２０５）。仮想マシンモニタ５は、割り当ててあるデバイス３が存在していないと判定した場合（Ｓ２０５でＮＯ）、処理を終了する。【００７３】
一方、仮想マシンモニタ５は、割り当ててあるデバイス３が存在すると判定した場合（Ｓ２０５でＹＥＳ）、デバイス３を仮想マシン４から解放し、デバイス管理テーブル５１から対応するレコードを削除する（Ｓ２０６）。仮想マシンモニタ５は、解放したデバイス３（出力機器）に認証画面を出力する（Ｓ２０７）。仮想マシンモニタ５は、処理を終了する。仮想マシンモニタ５は、認証情報の入力があるまで待機する。【００７４】
このように、開示の仮想計算機システムは、デバイス３を使用して仮想マシン４を利用しているエンドユーザが、さらに、操作端末２を使用して仮想マシン４を遠隔操作したとしても、エンドユーザの意に反して、デバイス３を仮想マシン４から自動的に解放するという事態を回避する。例えば、エンドユーザが、少しの時間、操作端末２を使用して仮想マシン４を利用した後、また直ぐに、デバイス３を使用して仮想マシン４の利用を再開したい場合に、デバイス３が自動的に解放されて、他のユーザに使用されることを防止することが可能であり、また、デバイス３による仮想マシン４の利用を再開する場合に、再度認証処理を行う必要がなく、エンドユーザの利便性が増す。【００７５】
実施の形態３．
開示の仮想計算機システム、情報処理装置、コンピュータプログラム及び接続制御方法は、割り当て可能なデバイス３が尽きた場合、その後にデバイス３を割り当てるべき仮想マシン４を解放待ちにしてもよい。また、解放待ちの仮想マシン４が存在する場合に、デバイス３を遠隔操作を要求する仮想マシン４から解放するようにしてもよい。当該形態の内容を実施の形態３として以下説明する。【００７６】
図１１は実施の形態３における情報処理装置１の機能ブロック図である。情報処理装置１は、仮想マシン４及び仮想マシンモニタ５を有する。【００７７】
仮想マシン４は、実施の形態１における仮想マシン４が有する機能に加え、解放待ち申請部４５を有する。解放待ち申請部４５は、デバイス３が解放されることを待っている旨の申請を受け付ける。解放待ち申請は、仮想マシン４を利用しているエンドユーザにより入力される。解放待ち申請は、解放されたデバイス３を自機に割り当てる旨の割当要求を意味する。解放待ち申請部４５は、受け付けた解放待ち申請及び自機の識別情報を仮想マシンモニタ５に出力する。【００７８】
仮想マシンモニタ５は、実施の形態１における仮想マシンモニタ５が有する機能に加え、解放待ち申請受付部５７、解放待ち申請保存部５８及び解放待ち情報テーブル５９を有する。【００７９】
解放待ち申請受付部５７は、解放待ち申請及び仮想マシン４の識別情報を解放待ち申請部４５から受け付ける。解放待ち申請受付部５７は、解放待ち申請を受け付けた場合、解放待ちを保存する旨の要求を解放待ち申請保存部５８に出力する。【００８０】
解放待ち申請保存部５８は、保存要求を解放待ち申請受付部５７から受け付けた場合、仮想マシン４の識別情報を解放待ち情報テーブル５９に記憶する。解放待ち情報テーブル５９は、解放待ちの仮想マシン４の識別情報を記憶する。【００８１】
デバイス接続確認部５２は、デバイス３の解放要求をデバイス解放要求部４３から受け付けた場合であって仮想マシン４の識別情報が解放待ち情報テーブル５９に存在すると判断したとき、デバイス３の解放要求をデバイス解放部５３に出力する。【００８２】
なお、仮想計算機システムの全体構成及び情報処理装置１の構成のうち、実施の形態１と同様のものについては、対応箇所に同一の符号を付してその説明を省略する。【００８３】
図１２は実施の形態３における補助記憶装置１５の記憶内容を示す図である。補助記憶装置１５は、実施の形態１における補助記憶装置１５の記憶内容に加え、解放待ち情報テーブル５９を記憶する。【００８４】
情報処理装置１のＣＰＵ１０は、仮想マシン４の機能及び仮想マシンモニタ５の機能を発揮することにより以下の処理を実行する。図１３は実施の形態３における情報処理装置１が実行する解放待ち申請処理の手順を示すフローチャートである。【００８５】
仮想マシン４は、解放待ち申請を受け付けたか否かを判定する（Ｓ３０１）。仮想マシン４は、解放待ち申請を受け付けていないと判定した場合（Ｓ３０１でＮＯ）、ステップＳ３０１の判定を繰り返す。【００８６】
一方、仮想マシン４は、解放待ち申請を受け付けたと判定した場合（Ｓ３０１でＹＥＳ）、解放待ち申請及び解放待ち申請を要求した仮想マシン４の識別情報を仮想マシンモニタ５に出力する。【００８７】
仮想マシンモニタ５は、受け付けた、解放待ち申請を要求した仮想マシン４の識別情報を解放待ち情報テーブル５９に記憶する（Ｓ３０２）。仮想マシンモニタ５は、処理の実行権を仮想マシン４に譲渡する。仮想マシン４は、ステップＳ３０１の判定を繰り返す。【００８８】
図１４は実施の形態３における情報処理装置１が実行するデバイス解放処理の手順を示すフローチャートである。仮想マシン４は、自機が遠隔操作により被操作状態であるか否かを判定する（Ｓ４０１）。仮想マシン４は、被操作状態でないと判定した場合（Ｓ４０１でＮＯ）、ステップＳ４０１の判定を繰り返す。【００８９】
一方、仮想マシン４は、被操作状態であると判定した場合（Ｓ４０１でＹＥＳ）、自機に接続してあるデバイス３の解放要求を仮想マシンモニタ５に出力する（Ｓ４０２）。【００９０】
仮想マシンモニタ５は、デバイス３の解放要求を受信すると、解放待ち情報テーブル５９にアクセスし、解放待ちの仮想マシン４が存在するか否かを判定する（Ｓ４０３）。仮想マシンモニタ５は、解放待ちの仮想マシン４が存在していないと判定した場合（Ｓ４０３でＮＯ）、処理を終了する。【００９１】
一方、仮想マシンモニタ５は、解放待ちの仮想マシン４が存在すると判定した場合（Ｓ４０３でＹＥＳ）、デバイス管理テーブル５１にアクセスし、遠隔操作の要求があった仮想マシン４に割り当ててあるデバイス３が存在するか否かを判定する（Ｓ４０４）。仮想マシンモニタ５は、割り当ててあるデバイス３が存在していないと判定した場合（Ｓ４０４でＮＯ）、処理を終了する。【００９２】
一方、仮想マシンモニタ５は、割り当ててあるデバイス３が存在すると判定した場合（Ｓ４０４でＹＥＳ）、デバイス３を仮想マシン４から解放し、デバイス管理テーブル５１及び解放待ち情報テーブル５９から対応するレコードを削除する（Ｓ４０５）。仮想マシンモニタ５は、解放したデバイス３（出力機器）に認証画面を出力する（Ｓ４０６）。仮想マシンモニタ５は、処理を終了する。仮想マシンモニタ５は、認証情報の入力があるまで待機する。【００９３】
このように、開示の仮想計算機システムは、解放待ちの仮想マシン４が存在していない場合をデバイス解放が不要であると判断する。開示の仮想計算機システムは、デバイス解放が不要であると判断した場合、デバイス３を解放する事態を回避する。その結果、エンドユーザは、可能な限り、仮想マシン４をデバイス３により操作することができる。また、デバイス３の利用を希望するユーザが存在しない場合に、無駄なデバイス３の解放処理を行わないことにより、情報処理装置１の処理負荷を低減できる。【００９４】
また、情報処理装置１は、解放したデバイス３を、解放待ちの順序に従って仮想マシン４に割り当てる。例えば、解放待ち情報テーブル５９に、解放待ち申請を要求した仮想マシン４の識別情報を記憶する際に、解放待ち申請を受け付けた日時等を対応づけて記憶しておく。デバイス処理振り分け部５５は、解放待ち情報テーブル５９にアクセスし、解放待ち申請を受け付けた日時が最も古い仮想マシン４の識別情報を抽出する。デバイス処理振り分け部５５は、抽出した仮想マシン４の識別情報とデバイス３の識別情報とを対応付けてデバイス管理テーブル５１に記憶する。その結果、デバイス３は、解放待ちの順序に従い、仮想マシン４に割り当てられた状態となる。なお、解放待ち申請を受け付けた日時以外に、解放待ち申請を受け付けた順番に連番を振る等、解放待ち申請を受け付けた順番が判別可能な情報を使用してもよい。【００９５】
また、情報処理装置１は、解放したデバイス３を、所定の優先度に従って仮想マシン４に割り当てる。具体的には、デバイス処理振り分け部５５は、起動の日時が最も古い仮想マシン４を選定する。デバイス処理振り分け部５５は、選定した仮想マシン４の識別情報とデバイス３の識別情報とを対応付けてデバイス管理テーブル５１に記憶する。その結果、デバイス３は、所定の優先度に従い、仮想マシン４に割り当てられた状態となる。【００９６】
また、所定の優先度は、起動の日時が古いほど高くなる一例に限らず、起動の日時が新しいほど高くなるようにしてもよい。また、所定の優先度は、ＣＰＵ１０の処理負荷が大きいほど高くなるようにしてもよい。【００９７】
実施の形態４．
開示の仮想計算機システム、情報処理装置、コンピュータプログラム及び接続制御方法は、デバイス３を解放した旨の通知を解放待ちの仮想マシン４に出力するようにしてもよい。当該形態の内容を実施の形態４として以下説明する。【００９８】
図１５は実施の形態４における情報処理装置１の機能ブロック図である。情報処理装置１は、仮想マシン４及び仮想マシンモニタ５を有する。【００９９】
仮想マシン４は、実施の形態３における仮想マシン４が有する機能に加え、解放通知出力部４６を有する。解放通知出力部４６は、仮想マシンモニタ５から出力された解放通知を受け付ける。解放通知出力部４６は、受け付けた解放通知をエンドユーザに報知する。【０１００】
仮想マシンモニタ５は、実施の形態３における仮想マシンモニタ５が有する機能に加え、解放通知生成部５１０を有する。解放通知生成部５１０は、デバイス接続確認部５２から、デバイス３が解放された旨の通知を受信すると、解放待ち申請を要求した仮想マシン４のエンドユーザに対してデバイス３が解放されたことを報知するための解放通知を生成する。解放通知生成部５１０は、解放待ち情報テーブル５９にアクセスし、解放待ちの仮想マシン４の識別情報を抽出する。解放通知生成部５１０は、抽出した識別情報が示す仮想マシン４を利用している操作端末２の表示部に解放通知を出力する。【０１０１】
図１６は解放通知の表示例を示す図である。解放通知は、デバイス３が解放されたことを示すメッセージを表示する表示領域、確認完了を入力する完了ボタン（図１６の「ＯＫ」が表示されたボタン）を有する。解放通知は、操作端末２のディスプレイに出力される。操作端末２は、操作部を介して確認完了を受け付け、仮想マシン４に出力する。この例では解放された旨のみの表示であるが、デバイス管理テーブル５１から解放されたデバイス３のデバイス情報を取得し、どのデバイス３が解放されたか表示しても良い。【０１０２】
なお、仮想計算機システムの全体構成、情報処理装置１の構成及び補助記憶装置１５の記憶内容は、実施の形態３と同様であるから、同一の箇所に同一の符号を付してその説明を省略する。【０１０３】
情報処理装置１のＣＰＵ１０は、仮想マシン４の機能及び仮想マシンモニタ５の機能を発揮することにより以下の処理を実行する。図１７は実施の形態４における情報処理装置１が実行するデバイス解放処理の手順を示すフローチャートである。【０１０４】
仮想マシン４は、自機が遠隔操作により被操作状態であるか否かを判定する（Ｓ５０１）。仮想マシン４は、被操作状態でないと判定した場合（Ｓ５０１でＮＯ）、ステップＳ５０１の判定を繰り返す。【０１０５】
一方、仮想マシン４は、被操作状態であると判定した場合（Ｓ５０１でＹＥＳ）、自機に接続してあるデバイス３の解放要求を仮想マシンモニタ５に出力する（Ｓ５０２）。【０１０６】
仮想マシンモニタ５は、デバイス管理テーブル５１にアクセスし、要求があった仮想マシン４に割り当ててあるデバイス３が存在するか否かを判定する（Ｓ５０３）。仮想マシンモニタ５は、割り当ててあるデバイス３が存在していないと判定した場合（Ｓ５０３でＮＯ）、処理を終了する。【０１０７】
一方、仮想マシンモニタ５は、割り当ててあるデバイス３が存在すると判定した場合（Ｓ５０３でＹＥＳ）、デバイス３を仮想マシン４から解放し（Ｓ５０４）、デバイス管理テーブル５１及び解放待ち情報テーブル５９から対応するレコードを削除する。仮想マシンモニタ５は、解放待ち要求を行った仮想マシン４を利用している操作端末２の表示部に解放通知を出力する（Ｓ５０５）。一方、仮想マシンモニタ５は、解放したデバイス３（出力機器）に認証画面を出力する（Ｓ５０６）。仮想マシンモニタ５は、処理を終了する。仮想マシンモニタ５は、認証情報の入力があるまで待機する。【０１０８】
このように、開示の仮想計算機システムは、デバイス３を解放した後、デバイス３を解放した旨を解放待ち要求を行った仮想マシン４を利用している操作端末２の表示部に報知させることにより、デバイス３の解放待ちをしているエンドユーザに対して、デバイス３が解放されたことを即座に認識させる。解放待ちのエンドユーザは、仮想マシン４から解放されて自機に割り当て可能なデバイス３が存在することを早期に確認できる。【０１０９】
なお、上述した実施例では、解放通知生成部５０１が解放待ちの仮想マシン４の全てに解放通知を出力する一例に説明した。しかしながら、開示の仮想計算機システムは、これに限定されるものでなく、解放通知生成部５０１が解放待ちの日時が最も古い仮想マシン４のみに解放通知を出力する、あるいは、解放待ちしている仮想マシン４のユーザの優先度付けを行い、優先度の高い順に解放通知を出力するようにしてもよい。【０１１０】
実施の形態５．
実施の形態１〜４にあっては、仮想マシン４からデバイス３を解放する一例を説明した。しかし、開示の仮想計算機システム、情報処理装置、コンピュータプログラム及び接続制御方法は、これに限定されるものでなく、仮想マシン４から遠隔操作を解放するようにしてもよい。当該形態の内容を実施の形態５として以下説明する。【０１１１】
図１８は実施の形態５における情報処理装置１の機能ブロック図である。情報処理装置１は、仮想マシン４及び仮想マシンモニタ５を有する。【０１１２】
仮想マシン４は、ゲストＯＳ４０、リモート操作サーバ４１及びリモート解放要求部４７を有する。ゲストＯＳ４０は、仮想マシン４内で起動し、仮想マシン４の仮想資源を制御する。【０１１３】
リモート解放要求部４７は、遠隔操作を解放する旨の要求を、後述するリモート解放部５１６から受け付けた場合、当該要求をリモート操作サーバ４１に出力する。【０１１４】
リモート操作サーバ４１は、解放要求をリモート解放要求部４７から受け付けた場合、操作端末２の遠隔操作の受け付けを拒否する。その結果、遠隔操作は、仮想マシン４から解放された状態となる。【０１１５】
仮想マシンモニタ５は、仮想マシン起動部５０、デバイス管理テーブル５１、デバイス処理振り分け部５５、デバイスエミュレータ５６、認証部５１１、認証情報テーブル５１２、デバイス接続部５１３、仮想マシン管理テーブル５１４、デバイス群管理テーブル５１５及びリモート解放部５１６を有する。【０１１６】
図１９は実施の形態５における補助記憶装置１５の記憶内容を示す図である。補助記憶装置１５は、実施の形態１のおける補助記憶装置１５の記憶内容に加え、認証情報テーブル５１２、仮想マシン管理テーブル５１４及びデバイス群管理テーブル５１５を記憶する。【０１１７】
図２０は認証情報テーブル５１２のフォーマット例を示す図である。認証情報テーブル５１２は、ユーザＩＤとパスワードとを対応付けて記憶する。【０１１８】
図２１は仮想マシン管理テーブル５１４のフォーマット例を示す図である。仮想マシン管理テーブル５１４は、ユーザＩＤと仮想マシン４の識別情報（ＶＭＩＤ）とを対応付けて記憶する。ユーザＩＤと仮想マシン４との対応付けは、ユーザが認証画面にてユーザＩＤ及びパスワードを入力して、仮想マシン４へのログイン操作を行うことを契機にして、ＣＰＵ１０により実行され、仮想マシン管理テーブル５１４に記憶される。【０１１９】
図２２はデバイス群管理テーブル５１５のフォーマット例を示す図である。デバイス群管理テーブル５１５は、仮想マシン４に割り当てる複数のデバイス３の識別情報を対応付け、グループとして記憶する。デバイス群管理テーブル５１５は、グループの識別情報（グループＩＤ）、デバイス３の識別情報（デバイスＩＤ）及びデバイス３の種類（デバイス種類）を対応付けて記憶する。【０１２０】
仮想マシン起動部５０、デバイス管理テーブル５１及びデバイスエミュレータ５６は、実施の形態１と同様であるので、対応箇所に同一の符号を付してその説明を省略する。【０１２１】
デバイス処理振り分け部５５は、デバイス３（入力機器）のいずれかから認証情報を受け付ける。デバイス処理振り分け部５５は、受け付けた認証情報を認証部５１１に出力し、デバイス３（入力機器）に対応するデバイス３（出力機器）に認証画面に表示させる。【０１２２】
認証部５１１は、仮想マシン４に使われていないデバイス３（出力機器）に認証画面（図６参照）を出力する。認証部５１１は、以下の認証処理を実行する。認証部５１１は、認証情報をデバイス処理振り分け部５５から受け付けた場合、受け付けた認証情報と認証情報テーブル１５２とを比較する。認証部５１１は、受け付けた認証情報が認証情報テーブル５１２に記憶されていると判定した場合、認証が成功した旨の通知をデバイス接続部５１３に出力する。【０１２３】
デバイス接続部５１３は、認証の成功示す通知を認証部５１１から受け付けた場合、仮想マシン管理テーブル５１４にアクセスし、ユーザＩＤに対応する仮想マシン４の識別情報を抽出する。デバイス接続部５１３は、デバイス群管理テーブル５１５にアクセスし、入力があったデバイス３（入力機器）と同一のグループに属するデバイス３の識別情報を全て抽出する。【０１２４】
デバイス接続部５１３は、デバイス接続部５１３にて抽出した仮想マシン４の識別情報とデバイス３の識別情報とを対応付けてデバイス管理テーブル５１に記憶する。その結果、デバイス３は、仮想マシン４に割り当てられた状態となる。デバイス接続部５１３は、デバイス３を割り当てた仮想マシン４の識別情報をリモート解放部５１６に出力する。【０１２５】
リモート解放部５１６は、仮想マシン４の識別情報をデバイス接続部５１３から受け付けた場合、受け付けた仮想マシン４の識別情報に対応する仮想マシン４に対して、遠隔操作の解放を要求する旨の解放要求を出力する。【０１２６】
なお、仮想計算機システムの全体構成及び情報処理装置１の構成は、実施の形態１と同様であるから、対応箇所に同一の符号を付してその説明を省略する。【０１２７】
情報処理装置１のＣＰＵ１０は、仮想マシン４の機能及び仮想マシンモニタ５の機能を発揮することにより以下の処理を実行する。図２３は実施の形態５における情報処理装置１が実行するデバイス解放処理の手順を示すフローチャートである。【０１２８】
仮想マシンモニタ５は、仮想マシン４に使われていないデバイス３（出力機器）に認証画面を出力する。仮想マシンモニタ５は、デバイス３（入力機器）のいずれかを介して入力された認証情報を受け付ける（Ｓ６０１）。仮想マシンモニタ５は、受け付けた認証情報に基づいて認証処理を実行する。仮想マシンモニタ５は、認証が成功したか否かを判定する（Ｓ６０２）。仮想マシンモニタ５は、認証が失敗したと判定した場合（Ｓ６０２でＮＯ）、ステップＳ６０１の判定を繰り返す。【０１２９】
一方、仮想マシンモニタ５は、認証が成功したと判定した場合（Ｓ６０２でＹＥＳ）、ユーザＩＤに対応する仮想マシン４を選定する（Ｓ６０３）。仮想マシンモニタ５は、認証情報の入力があったデバイス３（入力機器）と同一のグループに属するデバイス３を選定する（Ｓ６０４）。仮想マシンモニタ５は、選定したデバイス３を仮想マシン４に割り当てる（Ｓ６０５）。仮想マシンモニタ５は、選定した仮想マシン４に対して、仮想マシン４への操作端末２による遠隔操作を解放する旨の解放要求を仮想マシン４に出力する（Ｓ６０６）。【０１３０】
仮想マシン４は、仮想マシンモニタ５から操作端末２による遠隔操作の解放要求を受け付けると、操作端末２による遠隔操作を自機から解放する（Ｓ６０７）。仮想マシン４は、以後、新たに認証されたデバイス３との間で入出力情報の送受信を行い、処理を続行する。【０１３１】
このように、開示の仮想計算機システムは、操作端末２による遠隔操作の被操作状態である仮想マシン４にデバイス３が割り当てられた場合、仮想マシン４から操作端末２による遠隔操作を解放する。解放された操作端末２は、他の仮想マシン４から利用することが可能となる。その結果、デバイス３に空きが無い場合や、多少処理性能が低くなっても操作端末２による遠隔操作による仮想マシンの利用を希望するエンドユーザが、仮想マシン４を操作する機会を増加することができる。【０１３２】
実施の形態６．
実施の形態１〜５にあっては、遠隔操作の被操作状態を検出する手段及びデバイス３の解放を要求する手段を仮想マシン４が有する一例を説明した。しかし、開示の仮想計算機システム、情報処理装置、コンピュータプログラム及び接続制御方法は、これに限定されるものでなく、仮想マシン４以外の機器が有してもよい。当該形態の内容を実施の形態６として以下説明する。【０１３３】
図２４は実施の形態６における仮想計算機システムの全体構成を示す図である。図２４のうち、実施の形態１と同様のものについては、対応箇所に同一の符号を付してその説明を省略する。コネクションブローカ６は、コンピュータネットワークを介して情報処理装置１に接続可能である。コネクションブローカ６は、遠隔操作の被操作状態を検出する手段と、デバイス３の解放を要求する手段とを有する。【０１３４】
図２５は実施の形態６における情報処理装置１及び周辺機器の構成を示すブロック図である。ネットワーク接続用通信制御部１２は、コンピュータネットワークを介して各操作端末２の遠隔操作を受信するための資源である。また、ネットワーク接続用通信制御部１２は、コンピュータネットワークを介してコネクションブローカ６に接続するための資源である。なお、その他のハードウェア資源は、実施の形態１と同様であるから、対応箇所に同一の符号を付してその説明を省略する。【０１３５】
図２６は実施の形態６における情報処理装置１及び周辺機器の機能ブロック図である。【０１３６】
操作端末２は、リモート操作クライアント２０及びリモート接続制御部２１を有する。リモート接続制御部２１は、いずれかの仮想マシン４に対する遠隔操作を開始する旨の開始要求及びユーザＩＤをエンドユーザの入力により受け付ける。リモート接続制御部２１は、受け付けた開始要求及びユーザＩＤをコネクションブローカ６に送信する。リモート接続制御部２１は、ユーザＩＤに対応する仮想マシン４のアドレスをコネクションブローカ６を介して仮想マシンモニタ５から受信する。リモート接続制御部２１は、受信した仮想マシン４のアドレスをリモート操作クライアント２０に出力する。【０１３７】
リモート操作クライアント２０は、仮想マシン４のアドレスをリモート接続制御部２１から受け付ける。リモート操作クライアント２０は、受け付けたアドレスが示す仮想マシン４に対する遠隔操作を実行する。リモート操作クライアント２０は、表示される画面情報を仮想マシン４から受信する。【０１３８】
コネクションブローカ６は、接続依頼受信部６０、仮想マシン制御部６１、リモート接続監視部６２及びデバイス解放要求部６３を有する。【０１３９】
接続依頼受信部６０は、遠隔操作を開始する旨の開始要求及びユーザＩＤを操作端末２から受信する。接続依頼受信部６０は、受信した開始要求及びユーザＩＤを仮想マシン制御部６１に出力する。【０１４０】
仮想マシン制御部６１は、開始要求及びユーザＩＤを接続依頼受信部６０から受け付ける。仮想マシン制御部６１は、受け付けた開始要求及びユーザＩＤを仮想マシンモニタ５に送信する。【０１４１】
リモート接続監視部６２は、仮想マシン４に対する遠隔操作の可否を検出する。リモート接続監視部６２は、仮想マシン４に対する遠隔操作を検出した場合、デバイス３を解放する旨の要求をデバイス解放要求部６３に出力する。【０１４２】
デバイス解放要求部６３は、解放要求をリモート接続監視部６２から受け付けた場合、受け付けた解放要求、及び被操作状態にある仮想マシン４の識別情報を仮想マシンモニタ５に出力する。【０１４３】
情報処理装置１は、仮想マシン４及び仮想マシンモニタ５を有する。仮想マシン４は、ゲストＯＳ４０及びリモート操作サーバ４１を有する。ゲストＯＳ４０は、仮想マシン４を制御する。リモート操作サーバ４１は、仮想マシン４に対する遠隔操作を操作端末２から受け付け、受け付けた遠隔操作の命令に従ってゲストＯＳ４０を制御する。リモート操作サーバ４１は、表示する画面情報を操作端末２へ出力する。リモート操作サーバ４１は、仮想化されたＣＰＵ１０の機能の一つである。仮想化されたＣＰＵ１０は、ゲストＯＳ４０又はその他のアプリケーションソフトウェアに従う。【０１４４】
仮想マシンモニタ５は、実施の形態１における仮想マシンモニタ５が有する機能に加え、仮想マシン制御受信部５１７を有する。【０１４５】
デバイス管理テーブル５１、デバイス解放部５３、認証部５４、デバイス処理振り分け部５５及びデバイスエミュレータ５６は、実施の形態１と同様であるから、対応箇所に同一の符号を付してその説明を省略する。【０１４６】
デバイス接続確認部５２は、デバイス３の解放要求及び仮想マシン４の識別情報をコネクションブローカ６から受け付ける。デバイス接続確認部５２は、仮想マシン４に対応するデバイス３の識別情報をデバイス管理テーブル５１から抽出する。デバイス３の識別情報がデバイス管理テーブル５１に存在する場合、デバイス３の解放要求、デバイス３の識別情報及び仮想マシン４の識別情報をデバイス解放部５３に出力する。【０１４７】
仮想マシン制御受信部５１７は、開始要求及びユーザＩＤをコネクションブローカ６から受信する。仮想マシン制御受信部５１７は、仮想マシン管理テーブル（図示せず）にアクセスし、ユーザＩＤに対応する仮想マシン４の識別情報を抽出する。仮想マシン制御受信部５１７は、ユーザＩＤに対応する仮想マシン４が起動していない場合、開始要求及び仮想マシン４の識別情報を仮想マシン起動部５０に出力する。仮想マシン制御受信部５１７は、仮想マシン４のアドレスをコネクションブローカ６を介して操作端末２のリモート接続制御部２１に送信する。【０１４８】
仮想マシン起動部５０は、開始要求及び仮想マシン４の識別情報を仮想マシン制御受信部５１７から受け付ける。仮想マシン起動部５０は、受信した仮想マシン４の識別情報に対応する仮想マシン４を起動する。【０１４９】
情報処理装置１のＣＰＵ１０は、仮想マシンモニタ５の機能を発揮することにより以下の処理を実行する。図２７は実施の形態６における情報処理装置１が実行する遠隔操作処理の手順を示すフローチャートである。【０１５０】
仮想マシンモニタ５は、遠隔操作の開始要求及びユーザＩＤをコネクションブローカ６を介して操作端末２から受信する（Ｓ７０１）。仮想マシンモニタ５は、仮想マシン管理テーブルにアクセスし、受信したユーザＩＤに対応する仮想マシン４を選定し、起動する（Ｓ７０２）。仮想マシンモニタ５は、選定した仮想マシン４のアドレスをコネクションブローカ６を介して操作端末２に送信する（Ｓ７０３）。仮想マシンモニタ５は、処理を終了する。なお、仮想マシン４は、操作端末２から接続要求が来た時点で起動していない場合は起動し、遠隔操作終了時点で止めてもよいし、常に起動させた状態のままでもよい。【０１５１】
図２８は実施の形態６における情報処理装置１が実行するデバイス解放処理の手順を示すフローチャートである。仮想マシンモニタ５は、デバイス３の解放要求及びユーザＩＤをコネクションブローカ６から受信する（Ｓ８０１）。仮想マシンモニタ５は、デバイス管理テーブル５１にアクセスし、受信した仮想マシン４に割り当ててあるデバイス３が存在するか否かを判定する（Ｓ８０２）。仮想マシンモニタ５は、割り当ててあるデバイス３が存在していないと判定した場合（Ｓ８０２でＮＯ）、処理を終了する。【０１５２】
一方、仮想マシンモニタ５は、割り当ててあるデバイス３が存在すると判定した場合（Ｓ８０２でＹＥＳ）、デバイス３を仮想マシン４から解放する（Ｓ８０３）。仮想マシンモニタ５は、解放したデバイス３（出力機器）に認証画面を出力する（Ｓ８０４）。仮想マシンモニタ５は、処理を終了する。仮想マシンモニタ５は、認証情報の入力があるまで待機する。【０１５３】
このように、開示の仮想計算機システムは、デバイス３を接続してある仮想マシン４に対する遠隔操作が開始された場合、仮想マシン４からデバイス３を解放する。解放されたデバイス３は、他の仮想マシン４に割り当て可能となる。その結果、より多くの仮想マシン４を操作することができる。
【図１】
2010113248.tif 000003
【図２】
2010113248.tif 000004
【図３】
2010113248.tif 000005
【図４】
2010113248.tif 000006
【図５】
2010113248.tif 000007
【図６】
2010113248.tif 000008
【図７】
2010113248.tif 000009
【図８】
2010113248.tif 000010
【図９】
2010113248.tif 000011
【図１０】
2010113248.tif 000012
【図１１】
2010113248.tif 000013
【図１２】
2010113248.tif 000014
【図１３】
2010113248.tif 000015
【図１４】
2010113248.tif 000016
【図１５】
2010113248.tif 000017
【図１６】
2010113248.tif 000018
【図１７】
2010113248.tif 000019
【図１８】
2010113248.tif 000020
【図１９】
2010113248.tif 000021
【図２０】
2010113248.tif 000022
【図２１】
2010113248.tif 000023
【図２２】
2010113248.tif 000024
【図２３】
2010113248.tif 000025
【図２４】
2010113248.tif 000026
【図２５】
2010113248.tif 000027
【図２６】
2010113248.tif 000028
【図２７】
2010113248.tif 000029
【図２８】
2010113248.tif 000030
【手続補正書】
【提出日】平成23年8月3日(2011.8.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
物理資源を論理的に分割して複数の仮想計算機として動作させる中央装置と、該中央装置と通信回線を介して接続可能な複数の端末装置とを備え、
各仮想計算機は、
自機に対する遠隔操作を前記端末装置のいずれかから受付ける受付手段
を備え、
前記中央装置は、
入出力機器を複数接続するインタフェースと、
接続してある入出力機器をそれぞれ前記仮想計算機のいずれかに割当てる割当手段と、
前記仮想計算機のいずれかが入出力機器を割当てられると共に、前記遠隔操作の被操作機となった場合、入出力機器又は遠隔操作のいずれかを被操作機から解放する解放手段と
を備え、
解放した入出力機器を被操作機と異なる他の仮想計算機に割当可能とするようにしてあることを特徴とする仮想計算機システム。 
【請求項２】
前記解放手段は、入出力機器を割当ててある仮想計算機が被操作機となった場合、入出力機器を解放するようにしてあることを特徴とする請求項1に記載の仮想計算機システム。 
【請求項３】
前記仮想計算機は、
自機が被操作機となったことを検出する検出手段と、
被操作機となったことを検出した場合、入出力機器を自機から解放することを前記解放手段に要求する出力手段と
を更に備え、
前記解放手段は、解放要求があった被操作機から入出力機器を解放するようにしてあることを特徴とする請求項2に記載の仮想計算機システム。 
【請求項４】
前記仮想計算機は、
被操作機となったことを検出した場合、入出力機器を解放することの可否を問う可否情報を出力する手段
を更に備え、
前記出力手段は、受付けた可否情報に応じて、入出力機器を解放することを要求するようにしてあることを特徴とする請求項3に記載の仮想計算機システム。 
【請求項５】
前記中央装置は、
割当可能な入出力機器が尽きた場合、以降に割当てるべき仮想計算機を解放待ちとして記憶する記憶手段
を更に備え、
前記解放手段は、解放待ちとしてある仮想計算機が存在する場合、入出力機器を被操作機から解放するようにしてあることを特徴とする請求項2乃至４のいずれか一つに記載の仮想計算機システム。 
【請求項６】
前記中央装置は、
前記解放手段が入出力機器を被操作機から解放した場合、解放したことを解放待ちとしてある仮想計算機に通知する手段
を更に備えることを特徴とする請求項５に記載の仮想計算機システム。 
【請求項７】
前記解放手段は、前記割当手段が入出力機器を被操作機に割当てた場合、遠隔操作を被操作機から解放するようにしてあることを特徴とする請求項1に記載の仮想計算機システム。 
【請求項８】
物理資源を論理的に分割して複数の仮想計算機として動作させる情報処理装置であって、
通信回線を介して接続してある外部装置から各仮想計算機が遠隔操作を受付ける受付手段と、
入出力機器を複数接続するインタフェースと、
接続してある入出力機器をそれぞれ前記仮想計算機のいずれかに割当てる割当手段と、
前記仮想計算機のいずれかが入出力機器を割当てられると共に、前記遠隔操作の被操作機となった場合、入出力機器又は遠隔操作のいずれかを被操作機から解放する解放手段と
を備えることを特徴とする情報処理装置。 
【請求項９】
コンピュータに、物理資源を論理的に分割して複数の仮想計算機として動作させるコンピュータプログラムであって、
コンピュータに、
外部装置による遠隔操作を各仮想計算機に受付させるステップと、
自機に複数接続された入出力機器をそれぞれ検出させるステップと、
検出された入出力機器をそれぞれ前記仮想計算機のいずれかに割当てさせるステップと、
前記仮想計算機のいずれかが入出力機器を割当てられると共に、前記遠隔操作の被操作機となった場合、入出力機器又は遠隔操作のいずれかを被操作機から解放させる解放ステップと
を実行させることを特徴とするコンピュータプログラム。 
【請求項１０】
物理資源を論理的に分割して複数の仮想計算機として動作させる中央装置と、該中央装置と通信回線を介して接続可能な複数の端末装置とを備える仮想システムに用いられる仮想計算機への接続制御方法であって、
仮想計算機に対する利用要求に基づいて、当該仮想計算機と、当該仮想計算機の利用を要求してきた前記中央装置に接続された入出力装置あるいは前記端末装置とを対応付けて記憶しておき、
前記仮想計算機に対する利用要求を受け付けた場合に、当該仮想計算機に対応付けて記憶されている中央装置に接続された入出力装置あるいは端末装置が存在するか否かを確認し、
当該仮想計算機に対応付けて記憶されている中央装置に接続された入出力装置あるいは端末装置が存在することが確認された場合に、確認された当該仮想計算機 に対応付けて記憶されている中央装置に接続された入出力装置あるいは端末装置による当該仮想計算機への接続を解放することを特徴とする接続制御方法。 
【国際調査報告】
2010113248.tif 000031
2010113248.tif 000032
2010113248.tif 000033
2010113248.tif 000034