(57)【特許請求の範囲】
【請求項１】
ハードウェア資源を管理することにより、１または２以上の第１の仮想機械を実現する第１の仮想機械実現装置と１または２以上の第２の仮想機械を実現する第２の仮想機械実現装置とが通信可能に接続する仮想計算機システムにおいて、
前記第１の仮想機械実現装置は、
第１の機器が接続されたことを検出する機器接続検出処理部と、
機器毎の通信接続先を示す通信接続先情報にしたがって、前記第１の機器が接続されたことを前記第１の機器の通信接続先である前記第２の仮想機械実現装置に通知する接続機器通知処理部と、
前記第２の仮想機械実現装置から前記第１の機器への第１のデータを受信すると前記第１の機器に前記第１のデータを送信し、前記第１の機器から第２のデータを受信すると、前記通信接続先情報にしたがって、前記第２の仮想機械実現装置に前記第２のデータを送信する第１の入出力制御部と、
を備え、
前記第１の入出力制御部は、前記通信接続先情報における前記第１の機器の前記第２の仮想機械実現装置への通信接続の有効性が無効に設定されている場合、前記第２のデータを前記第１の仮想機械に送信し、
前記第２の仮想機械実現装置は、
接続を許可する装置の識別情報として前記第１の仮想機械実現装置の識別情報が含まれる場合に、該識別情報にしたがって、前記第１の機器が接続されたことを通知した前記第１の仮想機械実現装置に接続を許可するか否か判別し、接続を許可する場合のみ、前記第１の機器が接続されたことを前記第２の仮想機械に通知する認証処理部と、
前記第１の仮想機械実現装置から前記第２のデータを受信すると前記第２の仮想機械に前記第２のデータを送信し、前記第２の仮想機械から前記第１の機器への前記第１のデータを受信すると、前記識別情報にしたがって、前記第１の仮想機械実現装置に前記第１のデータを送信する第２の入出力制御部と、
を備えたことを特徴とする仮想計算機システム。
【請求項２】
前記認証処理部は、前記識別情報に、前記第１の機器が接続されたことを通知した前記第１の仮想機械実現装置の識別情報が含まれる場合、前記第１の仮想機械実現装置の接続を許可する、
ことを特徴とする請求項１に記載の仮想計算機システム。
【請求項３】
ハードウェア資源を管理することにより、１または２以上の仮想機械を実現する仮想計算機制御装置において、
前記仮想計算機制御装置に機器が接続されたことを検出する機器接続検出処理部と、
機器毎の通信接続先を示す通信接続先情報にしたがって、前記機器が接続されたことを、前記仮想計算機制御装置と通信可能に接続した仮想機械実現装置に通知し、前記仮想機械実現装置に接続の許可を要求する接続機器通知処理部と、
接続を許可した前記仮想機械実現装置から前記機器への第１のデータを受信すると前記機器に前記第１のデータを送信し、前記機器から第２のデータを受信すると、前記通信接続先情報にしたがって、接続を許可した前記仮想機械実現装置に前記第２のデータを送信する入出力制御部と、
を備え、
前記入出力制御部は、前記通信接続先情報における前記機器の前記仮想機械実現装置への通信接続の有効性が無効に設定されている場合、前記第２のデータを前記仮想機械に送信する、
ことを特徴とする仮想計算機制御装置。
【請求項４】
ハードウェア資源を管理することにより、１または２以上の第１の仮想機械を実現する第１の仮想機械実現装置と１または２以上の第２の仮想機械を実現する第２の仮想機械実現装置とが通信可能に接続する仮想計算機システムの実行方法において、
前記第１の仮想機械実現装置に、
第１の機器が接続されたことを検出する機器接続検出処理と、
機器毎の通信接続先を示す通信接続先情報にしたがって、前記第１の機器が接続されたことを前記第１の機器の通信接続先である前記第２の仮想機械実現装置に通知する接続機器通知処理と、
前記第２の仮想機械実現装置から前記第１の機器への第１のデータを受信すると前記第１の機器に前記第１のデータを送信し、前記第１の機器から第２のデータを受信すると、前記通信接続先情報にしたがって、前記第２の仮想機械実現装置に前記第２のデータを送信し、前記通信接続先情報における前記第１の機器の前記第２の仮想機械実現装置への通信接続の有効性が無効に設定されている場合、前記第２のデータを前記第１の仮想機械に送信する第１の入出力制御処理と、
を実行させ、
前記第２の仮想機械実現装置に、
接続を許可する装置の識別情報として前記第１の仮想機械実現装置の識別情報が含まれる場合に、該識別情報にしたがって、前記第１の機器が接続されたことを通知した前記第１の仮想機械実現装置に接続を許可するか否か判別し、接続を許可する場合のみ、前記第１の機器が接続されたことを前記第２の仮想機械に通知する認証処理と、
前記第１の仮想機械実現装置から前記第２のデータを受信すると前記第２の仮想機械に前記第２のデータを送信し、前記第２の仮想機械から前記第１の機器への前記第１のデータを受信すると、前記識別情報にしたがって、前記第１の仮想機械実現装置に前記第１のデータを送信する第２の入出力制御処理と、
を実行させたことを特徴とする仮想計算機システムの実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機システム、仮想計算機制御装置および仮想計算機制御方法に関する。
【背景技術】
【０００２】
一般に、クライアント−サーバ間で遠隔操作を行なうには、クライアントとサーバの双方に専用のソフトウェアを用意する。そして、それらのソフトウェアを連携して動作させることで、クライアントからサーバを操作し、サーバの処理結果をクライアントに表示させることが可能となる。
【０００３】
例えば、ＶＮＣ（Ｖｉｒｔｕａｌ  Ｎｅｔｗｏｒｋ  Ｃｏｍｐｕｔｉｎｇ）やリモートデスクトップなどの技術を使用した遠隔操作では、クライアントからサーバに、クライアントに接続したキーボードやマウス操作が伝えられる。すると、サーバは、あたかもサーバに接続されたキーボードやマウスが操作されたように処理を行なう。そして、サーバは、サーバの出力画面をクライアントに送信する。クライアントは、クライアントの出力画面にサーバの出力画面を表示する。
【０００４】
上記技術に関連して、クライアントコンピュータからサーバコンピュータのＩ／Ｏデバイスを使用可能にする仮想化されたＩ／Ｏデバイスをもつ計算機システムについて知られている。
【０００５】
また、クライアントコンピュータに接続されているＵＳＢデバイスに対するアクセスおよび制御をサーバコンピュータへ選択的に導くまたは導き直すプロセスについて知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２５８８４０号公報
【特許文献２】特開２００６−１９５９８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述のように、例えば、クライアントからサーバを遠隔操作する場合、クライアントからは、サーバに接続されたキーボードやマウスなどサーバを操作するための周辺機器のみが操作可能である。したがって、クライアントから、サーバに対して、クライアントに接続される機器を操作させるといったことができない。これは、サーバを遠隔するクライアントに接続される機器をサーバに認識させることができないからである。この場合の簡単な例を図１および図２に示す。
【０００８】
図１は、ネットワーク１３０を介してサーバ１２０と接続したクライアント１１０にＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ１１１が接続されている場合を示している。
【０００９】
この場合、利用者は、クライアント１１０からサーバ１２０を操作し、例えば、ブログ（Ｗｅｂｌｏｇ）やＳＮＳ（Ｓｏｃｉａｌ  Ｎｅｔｗｏｒｋ  Ｓｅｒｖｉｃｅ）のサイトの変更・更新などを行なうプログラムをサーバ１２０で実行させることができる。
【００１０】
しかし、サーバ１２０は、クライアント１１０に接続されたＵＳＢメモリ１１１を認識することができない。そのため、利用者は、サーバ１２０に対して、ＵＳＢメモリ１１１に保存された写真等のデータを直接読み出してブログやＳＮＳのサイトにアップロードさせることができない。
【００１１】
この場合、利用者は、ＵＳＢメモリ１１１に記憶されている写真等のデータをクライアント１１０からサーバ１２０に送信してから、送信した写真等のデータをサーバ１２０にアップロードさせる必要がある。
【００１２】
図２は、携帯端末装置２１０と、ゲームに使用するゲームパッド２２１を接続したゲーム機２２０と、がネットワーク２３０を介して接続している場合を示している。携帯端末装置２１０はクライアント機能を有し、ゲーム機２２０はサーバ機能を有する。
【００１３】
この場合、携帯端末装置２１０は、ゲーム機２２０を操作し、ゲーム機２２０でゲームを実行することができる。
しかし、携帯端末装置２１０にゲームパッド２１１を接続したとしても、ゲーム機２２０はゲームパッド２１１を認識することができない。そのため、利用者は、ゲームパッド２１１を使用してゲームをすることができない。利用者は、携帯端末装置２１０のテンキー等での操作をゲームパッド２２１での操作にエミュレートしてゲームを行なうことになる。
【００１４】
本仮想計算機システムは、上述した問題に鑑みてなされたものであり、その解決しようとする課題は、サーバにアクセスするクライアントに備わる機器をサーバに操作させることができるようにすることである。
【課題を解決するための手段】
【００１５】
本仮想計算機システムの１つの観点によれば、本仮想計算機システムは、以下の構成要素を備える。
本仮想計算機システムは、ハードウェア資源を管理することにより、１または２以上の第１の仮想機械を実現する第１の仮想機械実現装置と１または２以上の第２の仮想機械を実現する第２の仮想機械実現装置とを備える。前記第１の仮想機械実現装置と前記第２の仮想機械実現装置は通信可能に接続する。
【００１６】
前記第１の仮想機械実現装置は、以下の構成要素を備える。
機器接続検出処理部は、第１の機器が接続されたことを検出する。
接続機器通知処理部は、機器毎の通信接続先を示す通信接続先情報にしたがって、前記第１の機器が接続されたことを前記第１の機器の通信接続先である前記第２の仮想機械実現装置に通知する。
【００１７】
第１の入出力制御部は、前記第２の仮想機械実現装置から前記第１の機器への第１のデータを受信すると前記第１の機器に前記第１のデータを送信する。また、第１の入出力制御部は、前記第１の機器から第２のデータを受信すると、前記通信接続先情報にしたがって、前記第２の仮想機械実現装置に前記第２のデータを送信する。また、前記第１の入出力制御部は、前記通信接続先情報に含まれる識別情報の前記第２の仮想機械実現装置の接続性が無効に設定されている場合、前記第２のデータを前記第１の仮想機械に送信する。
【００１８】
前記第２の仮想機械実現装置は、以下の構成要素を備える。
認証処理部は、接続を許可する装置の識別情報として前記第１の仮想機械実現装置の識別情報が含まれる場合に、該識別情報にしたがって、前記第１の機器が接続されたことを通知した前記第１の仮想機械実現装置に接続を許可するか否か判別する。そして、認証処理部は、接続を許可する場合のみ、前記第１の機器が接続されたことを前記第２の仮想機械に通知する。
【００１９】
第２の入出力制御部は、前記第１の仮想機械実現装置から前記第２のデータを受信すると前記第２の仮想機械に前記第２のデータを送信する。また、第２の入出力制御部は、前記第２の仮想機械から前記第１の機器への前記第１のデータを受信すると、前記識別情報にしたがって、前記第１の仮想機械実現装置に前記第１のデータを送信する。
【発明の効果】
【００２０】
本仮想計算機システムによると、サーバにアクセスするクライアントに備わる機器をサーバに操作させることができる。
【図面の簡単な説明】
【００２１】
【図１】ネットワークを介してサーバと接続したクライアントにＵＳＢメモリが接続されている場合の例を示す図である。
【図２】携帯端末装置と、ゲームに使用するゲームパッドを接続したゲーム機と、がネットワークを介して接続している場合の例を示す図である。
【図３】本実施例に係る情報処理システムの概要を説明する図である。
【図４】本実施例に係る識別情報の例を示す図である。
【図５】本実施例に係る通信接続先情報の例を示す図である。
【図６】本実施例に係る割り込み情報の例を示す図である。
【図７】本実施例に係る情報処理システムのクライアントに機器が接続された場合の処理を示すフローチャートである。
【図８】本実施例に係る情報処理システムのクライアントに接続されている機器からサーバのゲストＯＳを操作する処理を示すフローチャートである。
【図９】本実施例に係る情報処理システムのサーバのゲストＯＳからクライアントに接続する機器にデータを送信する処理を示すフローチャートである。
【図１０】本実施例に係るサーバおよびクライアントの構成例を示す図である。
【発明を実施するための形態】
【００２２】
以下、本実施形態の一例について、図３〜図１０に基づいて説明する。
図３は、本実施例に係る情報処理システム３０００の概要を説明する図である。
図３に示す情報処理システム３０００は、サーバとして動作する情報処理装置３１００と、クライアントとして動作する情報処理装置３２００と、を備える。そして、情報処理装置３１００と情報処理装置３２００とは、インターネットや専用回線などを介して、互いに通信可能に接続している。
【００２３】
以下、情報処理装置３１００を単に「サーバ３１００」といい、情報処理装置３２００を単に「クライアント３２００」という。
サーバ３１００は、図１０で後述するＣＰＵ１００１、メモリ１００２、入力装置１００３、出力装置１００４、外部記憶装置１００５、媒体駆動装置１００６およびネットワーク接続装置１００７などを含むハードウェア３１１０を備える。そして、ハードウェア３１１０に含まれるＣＰＵ１００１が、メモリ１００２上に展開された所定のプログラムを実行することにより、ハイパーバイザ３１２０を実現する。
【００２４】
ハイパーバイザ３１２０は、サーバ３１００が実現する仮想計算機システム全体を制御する。例えば、ハイパーバイザ３１２０は、ホストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）３１３０やゲストＯＳ３１４０が動作するためのＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ：仮想機械）を提供する。そして、ハイパーバイザ３１２０は、各ＯＳのディスパッチ処理、各ＯＳが実行する特権命令のエミュレート、ＣＰＵに関するハードウェア制御などを行なう。なお、図３には、ゲストＯＳが１つの場合を示しているが、ゲストＯＳの数を限定する趣旨ではない。
【００２５】
ここで、ハイパーバイザ３１２０は、認証処理部３１２１と、入出力制御部３１２２と、を備える。なお、図３中には、ハイパーバイザ３１２０内に識別情報記憶部３１２３を記載してあるが、これは理解を容易にするためである。識別情報記憶部３１２３がハイパーバイザ３１２０の構成に必須であることを示すものではない。識別情報４００については、図４で後述する。
【００２６】
認証処理部３１２１は、クライアントから送られる割り込み情報６００を受信すると、割り込み情報６００を送信したクライアントが識別情報記憶部３１２３に記憶されている識別情報４００に登録されているか否かを確認する。そして、認証処理部３１２１は、識別情報記憶部３１２３に登録されているクライアントのみ接続を許可する。接続を許可すると、認証処理部３１２１は、割り込み情報６００をゲストＯＳ３１４０に通知する。割り込み情報６００については、図６に示す。
【００２７】
入出力制御部３１２２は、ホストＯＳ３１３０やゲストＯＳ３１４０から機器へのアクセスなどを制御する。なお、サーバ３１００に接続する機器を「機器３１５０」、クライアント３２００に接続する機器を「機器３２５０」という。
【００２８】
例えば、入出力制御部３１２２は、ゲストＯＳ３１４０が識別情報４００に登録されている機器３２５０に送信するデータを受信すると、その受信したデータを、識別情報４００に登録されているクライアント３２００に送信する。
【００２９】
また、入出力制御部３１２２は、ゲストＯＳ３１４０が識別情報４００に登録されていない機器３１５０に送信するデータを受信すると、その受信したデータを、サーバ３１００に接続され機器３２５０に対応する機器３１５０に送信する。なお、「対応する」とは、ホストＯＳ３１３０やゲストＯＳ３１４０からは同一または同種のものと認識するということである。
【００３０】
また、例えば、入出力制御部３１２２は、クライアント３２００からゲストＯＳ３１４０へのデータを受信すると、指定のゲストＯＳ３１４０にデータを送信する。
識別情報記憶部３１２３は、通信接続を許可するクライアントの固体識別子、例えばＭＡＣアドレスやＩＰアドレスを機器毎に登録する識別情報４００を記憶する記憶装置である。識別情報記憶部３１２３は、例えば、ハードウェア３１１０に含まれるメモリ１００２や外部記憶装置１００５などによって実現することができる。
【００３１】
本実施例に係る仮想計算機システムでは、ホストＯＳ３１３０やゲストＯＳ３１４０は、公知のＯＳを使用することができる。したがって、ホストＯＳ３１３０やゲストＯＳ３１４０については、様々な公知技術を用いることができる。以下、ホストＯＳ３１３０やゲストＯＳ３１４０については、概要のみを述べる。
【００３２】
ホストＯＳ３１３０は、ハイパーバイザ３１２０が提供するＶＭで動作するＯＳである。ホストＯＳ３１３０は、ハイパーバイザ３１２０が起動すると、ハイパーバイザ３１２０によって自動的に起動される。
【００３３】
また、ホストＯＳ３１３０は、仮想計算機システム全体の操作や管理を行なう。例えば、ホストＯＳ３１３０は、ゲストＯＳ３１４０の起動や停止などを制御する。また、ホストＯＳ３１３０は、ゲストＯＳ３１４０に割当てるハードウェア資源（例えば、ＣＰＵ、メモリ、Ｉ／Ｏなど）を管理する。また、ホストＯＳ３１３０は、ゲストＯＳ３１４０が実行したＩ／Ｏ命令を実Ｉ／Ｏ装置に送信する。
【００３４】
ゲストＯＳ３１４０も、ホストＯＳ３１３０と同様に、ハイパーバイザ３１２０が提供するＶＭで動作するＯＳである。ゲストＯＳ３１４０は、ホストＯＳ３１３０により起動される。ゲストＯＳ３１４０は、ホストＯＳ３１３０を介して実Ｉ／Ｏ装置にアクセスする。この場合、ゲストＯＳ３１４０には、仮想的なＩ／Ｏ装置が割当てられる。
【００３５】
ゲストＯＳ３１４０は、割り込み処理部３１４１や入出力処理部３１４２などを備える。
割り込み処理部３１４１は、例えば、認証処理部３１２１から割り込み情報６００の通知を受けると、割り込み情報６００に含まれる割り込みベクタ番号に応じて、あらかじめ決められた処理を行なう。
【００３６】
例えば、割り込み処理部３１４１は、割り込み情報６００に含まれる割り込みベクタ番号で特定される機器に対して、入出力処理部３１４２を介してアクセスし、機器、例えばＵＳＢメモリについての情報を取得する。そして、割り込み処理部３１４１は、機器の動作に必要なドライバ３１４３を起動する。また、割り込み処理部３１４１は、機器を、ゲストＯＳ３１４０の装置構成についての情報を保持するデバイス情報に登録する。以後、ゲストＯＳ３１４０は、ドライバ３１４３を使用して機器へのアクセスが可能となる。
【００３７】
クライアント３２００は、サーバ３１００と同様に、図１０で後述するＣＰＵ１００１、メモリ１００２、入力装置１００３、出力装置１００４、外部記憶装置１００５、媒体駆動装置１００６およびネットワーク接続装置１００７などを含むハードウェア３２１０を備える。そして、ハードウェア３２１０に含まれるＣＰＵ１００１が、メモリ１００２上に展開された所定のプログラムを実行することにより、ハイパーバイザ３２２０を実現する。
【００３８】
なお、本実施例では、サーバ３１００に備わるハードウェア３１１０とクライアント３２００に備わるハードウェア３２１０とに共通するハードウェアを、図１０に示すハードウェアを用いて説明する。ただし、ハードウェア３１１０とハードウェア３２１０とが同一の構成であるという意味ではない。例えば、ハードウェア３１１０とハードウェア３２１０が同一のＣＰＵやメモリなどを備えることに限定する趣旨ではない。
【００３９】
ハイパーバイザ３２２０は、ホストＯＳ３２３０やゲストＯＳ３２４０が動作するＶＭを提供し、ホストＯＳ３２３０やゲストＯＳ３２４０が実行する特権命令のエミュレートなどを行なう。なお、図３には、ゲストＯＳが１つの場合を示しているが、ゲストＯＳの数を限定する趣旨ではない。
【００４０】
ハイパーバイザ３２２０は、クライアント３２００が実現する仮想計算機システム全体を制御する。例えば、ハイパーバイザ３２２０は、ホストＯＳ３２３０やゲストＯＳ３２４０が動作するためのＶＭを提供する。そして、ハイパーバイザ３２２０は、各ＯＳのディスパッチ処理、各ＯＳが実行する特権命令のエミュレート、ＣＰＵに関するハードウェア制御などを行なう。なお、図３には、ゲストＯＳが１つの場合を示しているが、ゲストＯＳの数を限定する趣旨ではない。
【００４１】
ここで、ハイパーバイザ３２２０は、接続機器検出処理部３２２１と、接続機器通知処理部３２２２と、入出力制御部３２２３と、を備える。なお、図３中には、ハイパーバイザ３２２０内に通信接続先情報記憶部３２２４を記載してあるが、これは理解を容易にするためである。通信接続先情報記憶部３２２４がハイパーバイザ３２２０の構成に必須であることを示すものではない。
【００４２】
接続機器検出処理部３２２１は、クライアント３２００に機器３２５０が接続したことを検出する。すると、接続機器検出処理部３２２１は、接続機器通知処理部３２２２に対して、クライアント３２００に機器が接続したことを割り込み情報６００とともに通知する。
【００４３】
接続機器通知処理部３２２２は、図５で後述する通信接続先情報５００にしたがって、通信接続先を決定する。そして、接続機器通知処理部３２２２は、決定した通信接続先に割り込み情報６００を通知する。
【００４４】
例えば、通信接続先がサーバ３１００である場合、接続機器通知処理部３２２２は、サーバ３１００に割り込み情報６００を通知する。この場合、接続機器通知処理部３２２２は、割り込み情報６００にクライアント３２００のＩＰアドレスを付加する。また、通信接続先にサーバが設定されていない場合、接続機器通知処理部３２２２は、クライアント３２００のゲストＯＳ３２４０に割り込み情報６００を通知する。
【００４５】
入出力制御部３２２３は、ゲストＯＳ３２４０やホストＯＳ３２３０から機器へのアクセスなどを制御する。
例えば、入出力制御部３２２３は、接続機器３２５０からデータを受信すると、通信接続先情報５００に設定されている通信接続先にデータを送信する。例えば、接続情報に接続機器３２５０の通信接続先としてサーバ３１００が登録されている場合、入出力制御部３２２３は、データをサーバ３１００に送信する。また、通信接続先情報５００の通信接続先にサーバが設定されていない場合、入出力制御部３２２３は、データをゲストＯＳ３２４０に送信する。
また、例えば、入出力制御部３２２３は、サーバ３１００から機器３２５０へのデータを受信すると、指定の機器３２５０にデータを送信する。
【００４６】
通信接続先情報記憶部３２２４は、クライアント３２００に接続された機器毎にその通信接続先を登録する通信接続先情報５００を記憶する記憶装置である。通信接続先情報記憶部３２２４は、例えば、ハードウェア３２１０に含まれるメモリ１００２や外部記憶装置１００５などによって実現することができる。通信接続先情報５００については、図５に示し後述する。
【００４７】
本実施例に係る仮想計算機システムでは、ホストＯＳ３２３０やゲストＯＳ３２４０についても、ホストＯＳ３１３０やゲストＯＳ３１４０と同様に、公知のＯＳを使用することができる。したがって、ホストＯＳ３２３０やゲストＯＳ３２４０についても、様々な公知技術を用いることができる。
【００４８】
図４は、本実施例に係る識別情報４００の例を示す図である。
図４に示す識別情報４００は、登録順に、登録番号と、登録したクライアントに接続している機器の機器ＩＤと、登録したクライアントのＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスおよびＩＰアドレスと、を備える。
【００４９】
識別情報４００は、あらかじめ設定しておくことができる。また、クライアント３２００から割り込み情報６００を受信した時に、入力装置１００３を介して利用者に通信接続先を指定させる機能をハイパーバイザ３１２０に持たせることもできる。
【００５０】
図５は、本実施例に係る通信接続先情報５００の例を示す図である。
図５に示す通信接続先情報５００は、登録順に、登録番号と、登録した機器の識別情報４００である機器ＩＤと、サーバへの通信接続の有効性と、通信接続先のサーバのＩＰアドレスと、を備える。なお、本実施例のように、サーバ３１００が仮想計算機システムを構成する場合、通信接続先情報５００に登録するＩＰアドレスは、仮想計算機システムで動作する各サーバに割当てられたＩＰアドレスである。
【００５１】
サーバ接続有効性は、例えば、「有効」または「無効」を設定することができる。サーバ接続有効性に「有効」と設定されている場合、ＩＰアドレスが示すサーバが通信接続先となる。また、サーバ接続有効性に「無効」と設定されている場合、クライアント３２００のゲストＯＳ３２４０が通信接続先となる。
【００５２】
通信接続先情報５００は、あらかじめ設定しておくことができる。また、クライアント３２００に機器が接続されたことを検出した時に、入力装置１００３を介して利用者に通信接続先を指定させる機能をハイパーバイザ３２２０に持たせることもできる。
【００５３】
通信接続先情報５００には、同一の機器に対して複数のサーバを通信接続先として登録することもできる。この場合、例えば、ハイパーバイザ３２２０に、ディスプレイ等の表示手段に通信接続先の候補を表示して利用者に通信接続先を選択させる機能を持たせることもできる。
【００５４】
図６は、本実施例に係る割り込み情報６００の例を示す図である。
図６に示す割り込み情報６００は、割り込み種別を示す割り込みベクタ番号を備える。ただし、図６に示すように、クライアント３２００からサーバ３１００への割り込み情報６００の送信時には、割り込み情報６００にクライアント３２００のＩＰアドレスが付加される。
【００５５】
図７は、本実施例に係る情報処理システム３０００のクライアント３２００に機器３２５０が接続された場合の機器の接続処理を示すフローチャートである。
サーバ３１００では、例えば、ハイパーバイザ３１２０起動後の初期設定時や利用者から要求に応じて、ハイパーバイザ３１２０は識別情報４００への登録を行なう（ステップＳ７０１ｂ）。識別情報４００への登録は、あらかじめ行なっておいてもよい。
【００５６】
クライアント３２００では、例えば、ハイパーバイザ３２２０起動後の初期設定時や利用者からの要求に応じて、ハイパーバイザ３２２０は通信接続先情報５００への登録を行なう（ステップＳ７０１ｃ）。通信接続先情報５００への登録は、あらかじめ行なっておいてもよい。
【００５７】
ここで、クライアント３２００に機器３２５０が接続された場合を考える。
ステップＳ７０２ｃにおいて、クライアント３２００に機器３２５０が接続されると、接続機器検出処理部３２２１は、ハードウェア３２１０からの割り込み信号などにより、機器３２５０の接続を検出する。すると、接続機器通知処理部３２２２は、通信接続先情報記憶部３２２４に記憶されている通信接続先情報５００を参照し、機器３２５０の通信接続先を取得する。
【００５８】
ステップＳ７０３ｃにおいて、通信接続先情報５００にサーバ接続が有効と設定されているサーバが登録されている場合（ステップＳ７０３ｃ  ＹＥＳ）、接続機器通知処理部３２２２は、サーバ接続が有効となっている複数のサーバから１つのサーバを選択する（ステップＳ７０４ｃ）。
【００５９】
例えば、接続機器通知処理部３２２２は、通信接続先情報５００にサーバ接続が有効となっている複数のサーバを、機器３２５０の通信接続先の選択候補としてディスプレイ等の表示手段に表示し、利用者に機器３２５０の通信接続先の選択を促す。そして、接続機器通知処理部３２２２は、利用者が指定したサーバを、機器３２５０の通信接続先として選択する。
【００６０】
なお、通信接続先情報５００にサーバ接続が有効となっているサーバが１つである場合、接続機器通知処理部３２２２は、そのサーバ接続が有効となっているサーバを機器３２５０の通信接続先として選択する。
【００６１】
ステップＳ７０５ｃにおいて、接続機器通知処理部３２２２は、ステップＳ７０４ｃで選択したサーバに割り込み情報６００を送信する。この送信のとき、接続機器通知処理部３２２２は、割り込み情報６００にクライアント３２００のＩＰアドレスを付加する。
【００６２】
通信接続先情報５００にサーバ接続が有効に設定されているサーバが登録されていない場合（ステップＳ７０３ｃ  ＮＯ）、接続機器通知処理部３２２２は、クライアント３２００のゲストＯＳ３２３０に割り込み情報６００を送信する（ステップＳ７０６ｃ）。なお、通信接続先情報５００にサーバが登録されていない場合も（ステップＳ７０３ｃ  ＮＯ）、接続機器通知処理部３２２２は、クライアント３２００のゲストＯＳ３２３０に割り込み情報６００を送信する（ステップＳ７０６ｃ）。
【００６３】
サーバ３１００では、ハイパーバイザ３１２０がクライアント３２００から送信される割り込み情報６００を受信する（ステップＳ７０２ｂ）。すると、認証処理部３１２１は、識別情報記憶部３１２３に記憶されている識別情報４００を参照する。そして、割り込み情報６００を送信したクライアント３２００が識別情報４００に登録されていない場合（ステップＳ７０３ｂ ＮＯ）、認証処理部３１２１は、送信された割り込み情報６００を無視する（ステップＳ７０５ｂ）。
【００６４】
また、割り込み情報６００を送信したクライアント３２００が識別情報４００に登録されている場合（ステップＳ７０３ｂ  ＹＥＳ）、認証処理部３１２１は、サーバ３１００のゲストＯＳ３１４０に割り込み情報６００を送信する（ステップＳ７０４ｂ）。例えば、認証処理部３１２１は、ハイパーバイザ３１２０が提供するＶＭの任意のＩ／ＯポートＡからの割り込みにより割り込み情報６００をゲストＯＳ３１４０に送信する。
【００６５】
ステップＳ７０１ａにおいて、ゲストＯＳ３１４０は、ハイパーバイザ３１２０から割り込み情報６００を受信する。すると、ゲストＯＳ３１４０は、接続された機器３２５０を認識する（ステップＳ７０２ａ）。
【００６６】
例えば、ゲストＯＳ３１４０は、ハイパーバイザ３１２０から割り込み情報６００を受信すると、必要に応じて、割り込み情報６００で特定される機器３２５０に対して、図８および図９に示す処理にしたがってアクセスする。そして、ゲストＯＳ３１４０は、機器３２５０についての情報を取得する。そして、取得した情報に基づいて、ゲストＯＳ３１４０は、機器３２５０の動作に必要なドライバを起動する。また、ゲストＯＳ３１４０は、機器３２５０を、ゲストＯＳ３１４０の機器構成についての情報を保持するデバイス情報に登録する。
【００６７】
以後、ゲストＯＳ３１４０は、ドライバを使用して機器３２５０に対してアクセスが可能となる。なお、例えば、ハイパーバイザ３１２０は、ハイパーバイザ３１２０が提供するＶＭの任意のＩ／ＯポートＡからの割り込みにより機器３２５０の接続を通知するので、ゲストＯＳ３１４０は、Ｉ／ＯポートＡに機器３２５０が接続したものと認識することになる。
以上の処理が完了すると、機器の接続処理が終了する（ステップＳ７０３ａ、Ｓ７０６ｂ、Ｓ７０７ｃ）。
【００６８】
図８は、本実施例に係る情報処理システム３０００のクライアント３２００に接続されている機器３２５０が、サーバ３１００のゲストＯＳ３１４０を操作する場合の処理を示すフローチャートである。
【００６９】
なお、図８に示す処理は、サーバ３１００のゲストＯＳ３１４０が、クライアント３２００に接続されている機器３２５０からデータ等の情報を取得する場合の処理についても適用できる。この場合、機器３２５０からゲストＯＳ３１４０には、操作情報ではなくデータ等の情報が送信されることになる。
【００７０】
ステップＳ８０１ｃにおいて、クライアント３２００に接続されている機器３２５０を利用者が操作すると、入出力制御部３２２３は、機器３２５０の操作を検出する。すると、入出力制御部３２２３は、通信接続先情報記憶部３２２４に記憶されている通信接続先情報５００を参照する。そして、入出力制御部３２２３は、機器３２５０についてサーバ接続が有効に設定されているか否かを確認する。
【００７１】
ステップＳ８０２ｃにおいて、機器３２５０についてサーバ接続が有効に設定されていない場合（ステップＳ８０２ｃ  ＮＯ）、入出力制御部３２２３は、クライアント３２００のゲストＯＳ３２４０に機器３２５０の操作情報を通知する（ステップＳ８０３ｃ）。
【００７２】
本実施例において、「操作情報」とは、利用者が機器３２５０に対して行なう操作、または操作にともなう処理の指示に関する情報である。例えば、機器３２５０に備わるテンキーに対する操作に関する情報である。この操作情報には、機器３２５０に対して行なわれる操作であって、サーバ３１００のゲストＯＳ３１４０を操作するための操作、または操作にともなう処理の指示に関する情報を含むことができる。
【００７３】
機器３２５０についてサーバ接続が有効に設定されている場合（ステップＳ８０２ｃ  ＹＥＳ）、入出力制御部３２２３は、既に図７のステップＳ７０４ｃで選択したサーバ３１００に機器３２５０の操作情報を送信する（ステップＳ８０４ｃ）。
【００７４】
サーバ３１００では、入出力制御部３１２２がクライアント３２００から送信される操作情報を受信する（ステップＳ８０１ｂ）。すると、入出力制御部３１２２は、識別情報記憶部３１２３に記憶されている識別情報４００を参照する。そして、入出力制御部３１２２は、操作情報とともに受信する送信先情報、すなわちＩＰアドレスで特定されるゲストＯＳ３１４０に操作情報を送信する（ステップＳ８０２ｂ）。このとき、例えば、入出力制御部３１２２は、ハイパーバイザ３１２０が提供するＶＭの特定のＩ／ＯポートＡを通じて機器３２５０の操作情報をゲストＯＳ３１４０に送信する。
【００７５】
ステップＳ８０１ａにおいて、ゲストＯＳ３１４０は、ハイパーバイザ３１２０から操作情報を受信する。すると、ゲストＯＳ３１４０は、操作情報にしたがって処理を行なう（ステップＳ８０２ａ）。
【００７６】
以上の処理が完了すると、クライアント３２００に接続された機器３２５０からの操作の処理が終了する（ステップＳ８０３ａ、Ｓ８０３ｂ、Ｓ８０５ｃ）。
ここで、例えば、サーバ３１００のゲストＯＳ３１４０で動作するアプリケーションを操作することにより、クライアント３２００に接続された機器３２５０が保持する画像データなどをホームページなどにロードする場合を考える。
【００７７】
この場合、クライアント３２００に接続された機器３２５０、例えばテンキーなどを利用者が操作すると、その操作情報は、図８に示した処理にしたがって、サーバ３１００のゲストＯＳ３１４０に送信される。
【００７８】
すると、サーバ３１００のゲストＯＳ３１４０は、操作情報にしたがって、クライアント３２００に接続された機器３２５０、例えばＵＳＢメモリなどに対して画像データなどを要求する。機器３２５０、例えばＵＳＢメモリなどに保持される画像データなどは、図８に示した処理にしたがって、サーバ３１００のゲストＯＳ３１４０に送信される。
そして、サーバ３１００のゲストＯＳ３１４０は、操作情報にしたがって、取得した画像データなどをホームページなどにアップロードする。
【００７９】
図９は、本実施例に係る情報処理システム３０００のサーバ３１００のゲストＯＳ３１４０からクライアント３２００に接続する機器３２５０に画像データなどのデータ等を送信する処理を示すフローチャートである。
【００８０】
なお、図９に示す処理は、サーバ３１００のゲストＯＳ３１４０からクライアント３２００に接続する機器３２５０に操作情報を送信する処理についても適用できる。この場合、ゲストＯＳ３１４０から機器３２５０には、画像データなどのデータ等ではなく操作情報が送信されることになる。
【００８１】
ステップＳ９０１ａにおいて、ゲストＯＳ３１４０は、機器３２５０に対してデータを出力する。なお、ゲストＯＳ３１４０は、例えば、ハイパーバイザ３１２０が提供するＶＭの特定のＩ／ＯポートＡに機器３２５０が接続していると認識しているので、ハイパーバイザ３１２０が提供するＶＭのＩ／ＯポートＡにデータを出力する。
【００８２】
ステップＳ９０１ｂにおいて、ホストＯＳ３１３０が出力したデータは、入出力制御部３１２２が受信する。すると、入出力制御部３１２２は、識別情報記憶部３１２３に記憶されている識別情報４００を参照する。そして、機器３２５０の通信接続先のクライアント３２００が識別情報４００に登録されていない場合（ステップＳ９０２ｂ  ＮＯ）、入出力制御部３１２２は、サーバ３１００に接続されている機器３１５０にデータを送信する（ステップＳ９０３ｂ）。
【００８３】
また、機器３２５０の通信接続先のクライアント３２００が識別情報４００に登録されている場合（ステップＳ９０２ｂ  ＹＥＳ）、入出力制御部３１２２は、識別情報４００に登録されているクライアント３２００に対してデータを送信する（ステップＳ９０４ｂ）。
【００８４】
クライアント３２００では、サーバ３１００から送られるデータを、ハイパーバイザ３２２０が受信する（ステップＳ９０１ｃ）。すると、入出力制御部３２２３は、サーバ３１００から送信されたデータとともに指定された機器３２５０に、データを送信する（ステップＳ９０３ｃ）。機器３２５０は、送信されたデータを受信し、受信したデータ所定のアドレスに格納するなどの処理を行なう（ステップＳ９０４ｃ）。
【００８５】
図１０は、本実施例に係るサーバ３１００およびクライアント３２００の構成例を示す図である。本実施例に係るサーバ３１００とクライアント３２００は、同じ構成のものを用いることができる。以下では、サーバ３１００の場合を例に構成の説明をする。なお、サーバ３１００とクライアント３２００が同一の構成であることに限定する趣旨でないのは当然である。
【００８６】
図１０に示すサーバ３１００のハードウェア３１１０は、ＣＰＵ１００１と、メモリ１００２と、入力装置１００３と、出力装置１００４と、外部記録装置１００５と、媒体駆動装置１００６と、ネットワーク接続装置１００７と、を備える。そして、これらの装置はバスに接続されて相互にデータの受け渡しが行える構成となっている。
【００８７】
ＣＰＵ１００１は、周辺機器や各種ソフトウェアを実行する他に本実施例に係るハイパーバイザ３１２０を実現するプログラムを実行する装置である。また、メモリ１００２は、任意のプログラム等を記憶する装置である。メモリ１００２には、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの揮発性のメモリを使用することができる。
【００８８】
入力装置１００３は、外部からデータを入力する装置である。入力装置１００３として、例えば、キーボードやマウスなどを使用することができる。出力装置１００４は、データ等を出力しディスプレイ等の表示手段に表示させる装置である。
【００８９】
外部記録装置１００５は、サーバ３１００が動作するために必要なプログラムやデータの他に本実施例に係るハイパーバイザ３１２０を実現するプログラムを記録する装置である。外部記録装置１００５には、例えば、磁気ディスク装置などを使用することができる。
【００９０】
媒体駆動装置１００６は、メモリ１００２や外部記録装置１００５のデータを可搬記録媒体１００８に出力し、または可搬記録媒体１００８からプログラムやデータ等を読み出す装置である。なお、可搬記録媒体１００８として、例えば、フロッピイディスクやＭＯディスク、ＣＤ−ＲやＤＶＤ−Ｒなどを使用することができる。
【００９１】
ネットワーク接続装置１００７は、ネットワークに接続するための装置である。
上述のように、クライアント３２００に機器３２５０が接続された場合、機器３２５０が通信接続先情報５００に登録され、そのサーバ接続有効性が「有効」のとき、ハイパーバイザ３２２０は、その「有効」に設定されたサーバ３１００に割り込み情報を送信する。
【００９２】
一方、サーバ３１００で動作するハイパーバイザ３１２０は、識別情報４００に登録されたサーバ３１００から割り込み情報を受信すると、その割り込み情報をゲストＯＳ３１４０に通知する。このとき、ゲストＯＳ３１４０は、例えば、ハイパーバイザ３１２０が提供するＶＭの任意のＩ／Ｏポートからの割り込みによって割り込み情報が通知される。したがって、ＯＳ３１４０は、自身のＩ／Ｏポートに機器３２５０が接続されたと認識し、所定のドライバを起動するなど機器３２５０を動作させるために必要な動作を行なって機器３２５０へのアクセスが可能となる。
【００９３】
その結果、サーバ３１００にアクセスするクライアント３２００に備わる機器３２５０をサーバ３１００に操作させることが可能となる。
例えば、クライアント３２００からサーバ３１００で動作するＯＳ３１４０に対して所定の操作を行なった場合、以下のようにして、ＯＳ３１４０から機器３２５０へのアクセスが可能となる。以下のデータには、単なるデータの他に操作情報も含まれる。なお、同様に、機器３２５０からＯＳ３１４０へのアクセスも可能となることは当然である。
【００９４】
ゲストＯＳ３１４０から識別情報４００に登録された機器３２５０へのデータの送信を検出すると、サーバ３１００で動作するハイパーバイザ３１２０は、識別情報４００に登録されている固体識別子で特定されるクライアント３２００にデータを送信する。
【００９５】
一方、通信接続先情報５００に登録された機器３２５０へのデータを受信すると、クライアント３２００で動作するハイパーバイザ３２２０は、受信したデータを機器３２５０に送信する。
【００９６】
また、通信接続先情報５００に登録された機器３２５０からデータを受信すると、クライアント３２００で動作するハイパーバイザ３２２０は、そのサーバ接続有効性が「有効」に設定されているサーバ３１００に対してデータを送信する。
【００９７】
一方、識別情報４００に登録されたクライアント３２００からデータを受信すると、ハイパーバイザ３１２０は、受信したデータをゲストＯＳ３１４０に送信する。
したがって、例えば、遠隔地のクライアント３２００に接続した機器３２５０でサーバ３１００のゲストＯＳ３１４０で動作するソフトウェアを操作し、そのソフトウェアから、遠隔地のクライアント３２００に接続した機器３２５０を操作することが可能となる。
【００９８】
本実施例に係る仮想計算機システムは、ハイパーバイザ３１２０およびハイパーバイザ３２２０以外は既存のものを用いることができる。例えば、ハードウェア３１１０および３２１０の変更、ホストＯＳ３１３０、３２３０、ゲストＯＳ３１４０および３２４０の変更などが不要である。その結果、本実施例に係る仮想計算機システムを容易に実現することが可能となる効果を奏する。
【００９９】
本実施例に係るサーバ３１００は、識別情報４００に登録されたクライアント３２００からしか割り込み情報を受付けないので、セキュリティを確保することができるという効果を奏する。
【０１００】
以上に説明した情報処理システム３０００において、ホストＯＳ３２３０またはゲストＯＳ３２４０は、第１の仮想機械の一例として挙げられる。また、ホストＯＳ３１３０またはゲストＯＳ３１４０は、第２の仮想機械の一例として挙げられる。
【０１０１】
クライアント３２００は、第１の仮想機械実現装置の一例として挙げられる。また、サーバ３１００は、第２の仮想機械実現装置の一例として挙げられる。
【０１０２】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
ハードウェア資源を管理することにより、１または２以上の第１の仮想機械を実現する第１の仮想機械実現装置と１または２以上の第２の仮想機械を実現する第２の仮想機械実現装置とが通信可能に接続する仮想計算機システムにおいて、
前記第１の仮想機械実現装置は、
第１の機器が接続されたことを検出する機器接続検出処理部と、
機器毎の通信接続先を示す通信接続先情報にしたがって、前記第１の機器が接続されたことを前記第１の機器の通信接続先である前記第２の仮想機械実現装置に通知する接続機器通知処理部と、
前記第２の仮想機械実現装置から前記第１の機器への第１のデータを受信すると前記第１の機器に前記第１のデータを送信し、前記第１の機器から第２のデータを受信すると、前記通信接続先情報にしたがって、前記第２の仮想機械実現装置に前記第２のデータを送信する第１の入出力制御部と、
を備え、
前記第２の仮想機械実現装置は、
接続を許可する装置の識別情報として前記第１の仮想機械実現装置の識別情報が含まれる場合に、該識別情報にしたがって、前記第１の機器が接続されたことを通知した前記第１の仮想機械実現装置に接続を許可するか否か判別し、接続を許可する場合のみ、前記第１の機器が接続されたことを前記第２の仮想機械に通知する認証処理部と、
前記第１の仮想機械実現装置から前記第２のデータを受信すると前記第２の仮想機械に前記第２のデータを送信し、前記第２の仮想機械から前記第１の機器への前記第１のデータを受信すると、前記識別情報にしたがって、前記第１の仮想機械実現装置に前記第１のデータを送信する第２の入出力制御部と、
を備えたことを特徴とする仮想計算機システム。
（付記２）
前記認証処理部は、前記識別情報に、前記第１の機器が接続されたことを通知した前記第１の仮想機械実現装置の識別情報が含まれる場合、前記第１の仮想機械実現装置の接続を許可する、
ことを特徴とする付記１に記載の仮想計算機システム。
（付記３）
前記認証処理部は、前記識別情報に、前記第１の機器が接続されたことを通知した前記第１の仮想機械実現装置の識別情報が含まれない場合、前記第１の仮想機械実現装置の接続を許可しない、
ことを特徴とする付記１に記載の仮想計算機システム。
（付記４）
前記第２の入出力制御部は、前記識別情報に、前記第１の機器が接続されている前記第１の仮想機械実現装置の識別情報が含まれる場合、前記第１の仮想機械実現装置に前記第１のデータを送信する、
ことを特徴とする付記１に記載の仮想計算機システム。
（付記５）
前記第２の入出力制御部は、前記識別情報に、前記第１の機器が接続されている前記第１の仮想機械実現装置の識別情報が含まれない場合、自身に接続し前記第１の機器に対応する第２の機器に前記第１のデータを送信する、
ことを特徴とする付記１に記載の仮想計算機システム。
（付記６）
前記識別情報は、機器と、該機器が接続されている仮想機械実現装置を識別する識別子と、を含む情報である、
ことを特徴とする付記１に記載の仮想計算機システム。
（付記７）
前記第１の入出力制御部は、前記通信接続先情報に前記第１の機器の通信接続先として前記第２の仮想機械実現装置の識別情報が含まれる場合、前記第２のデータを前記第２の仮想機械実現装置に送信する、
ことを特徴とする付記１に記載の仮想計算機システム。
（付記８）
前記第１の入出力制御部は、前記通信接続先情報に含まれる識別情報の前記第２の仮想機械実現装置の接続性が無効に設定されている場合、前記第２のデータを前記第１の仮想機械に送信する、
ことを特徴とする付記７に記載の仮想計算機システム。
（付記９）
前記第１の入出力制御部は、前記通信接続先情報に前記第１の機器の通信接続先の識別情報が含まれない場合、前記第２のデータを前記第１の仮想機械に送信する、
ことを特徴とする付記１に記載の仮想計算機システム。
（付記１０）
前記通信接続先情報は、機器と、該機器の通信接続先となる仮想機械実現装置を識別する識別子と、を含む情報である、
ことを特徴とする付記１に記載の仮想計算機システム。
（付記１１）
ハードウェア資源を管理することにより、１または２以上の仮想機械を実現する仮想機械制御装置において、
機器が接続されたことを検出する機器接続検出処理部と、
機器毎の通信接続先を示す通信接続先情報にしたがって、前機器が接続されたことを、通信可能に接続した仮想機械実現装置に通知し、前記仮想機械実現装置に接続の許可を要求する接続機器通知処理部と、
接続を許可した前記仮想機械実現装置から前記機器への第１のデータを受信すると前記機器に前記第１のデータを送信し、前記機器から第２のデータを受信すると、前記通信接続先情報にしたがって、接続を許可した前記仮想機械実現装置前記第２のデータを送信する入出力制御部と、
を備えたことを特徴とする仮想計算機制御装置。
（付記１２）
前記入出力制御部は、前記通信接続先情報に前記仮想機械実現装置の識別情報が含まれる場合、前記機器から前記第２のデータを受信すると、前記第２のデータを前記仮想機械実現装置に送信する、
ことを特徴とする付記１１に記載の仮想計算機制御装置。
（付記１３）
前記入出力制御部は、前記通信接続先情報に含まれる識別情報の前記仮想機械実現装置についての接続性が無効に設定されている場合、前記機器から前記第２のデータを受信すると、前記第２のデータを前記仮想機械に送信する、
ことを特徴とする付記１２に記載の仮想計算機制御装置。
（付記１４）
前記入出力制御部は、前記通信接続先情報に前記仮想機械実現装置の識別情報が含まれない場合、前記第２のデータを前記仮想機械に送信する、
ことを特徴とする付記１１に記載の仮想計算機制御装置。
（付記１５）
ハードウェア資源を管理することにより、１または２以上の仮想機械を実現する仮想機械制御装置において、
接続を許可する装置の識別情報として仮想機械実現装置の識別情報が含まれる識別情報にしたがって、第１の機器が接続されたことを通知した第１の仮想機械実現装置に接続を許可するか否か判別し、接続を許可する場合のみ、前記第１の機器が接続されたことを前記仮想機械に通知する認証処理部と、
前記第１の仮想機械実現装置から第１のデータを受信すると前記仮想機械に送信し、前記仮想機械から第２のデータを受信すると、前記識別情報にしたがって、前記第１の仮想機械実現装置に前記第２のデータを送信する入出力制御部と、
を備えたことを特徴とする仮想計算機制御装置。
（付記１６）
前記入出力制御部は、前記識別情報に、前記第１の機器が接続されている前記第１の仮想機械実現装置の識別情報が含まれる場合、前記第１の仮想機械実現装置に前記第２のデータを送信する、
ことを特徴とする付記１５に記載の仮想計算機システム。
（付記１７）
前記入出力制御部は、前記識別情報に、前記第１の機器が接続されている前記第１の仮想機械実現装置の識別情報が含まれない場合、自身に接続し前記第１の機器に対応する第２の機器に前記第２のデータを送信する、
ことを特徴とする付記１５に記載の仮想計算機システム。
（付記１８）
ハードウェア資源を管理することにより、１または２以上の第１の仮想機械を実現する第１の仮想機械実現装置と１または２以上の第２の仮想機械を実現する第２の仮想機械実現装置とが通信可能に接続する仮想計算機システムの実行方法において、
前記第１の仮想機械実現装置に、
第１の機器が接続されたことを検出する機器接続検出処理と、
機器毎の通信接続先を示す通信接続先情報にしたがって、前記第１の機器が接続されたことを前記第１の機器の通信接続先である前記第２の仮想機械実現装置に通知する接続機器通知処理と、
前記第２の仮想機械実現装置から前記第１の機器への第１のデータを受信すると前記第１の機器に前記第１のデータを送信し、前記第１の機器から第２のデータを受信すると、前記通信接続先情報にしたがって、前記第２の仮想機械実現装置に前記第２のデータを送信する第１の入出力制御処理と、
を実行させ、
前記第２の仮想機械実現装置に、
接続を許可する装置の識別情報として前記第１の仮想機械実現装置の識別情報が含まれる場合に、該識別情報にしたがって、前記第１の機器が接続されたことを通知した前記第１の仮想機械実現装置に接続を許可するか否か判別し、接続を許可する場合のみ、前記第１の機器が接続されたことを前記第２の仮想機械に通知する認証処理と、
前記第１の仮想機械実現装置から前記第２のデータを受信すると前記第２の仮想機械に前記第２のデータを送信し、前記第２の仮想機械から前記第１の機器への前記第１のデータを受信すると、前記識別情報にしたがって、前記第１の仮想機械実現装置に前記第１のデータを送信する第２の入出力制御処理と、
を実行させたことを特徴とする方法。
（付記１９）
ハードウェア資源を管理することにより、１または２以上の仮想機械を実現する仮想機械の制御方法において、
機器が接続されたことを検出する機器接続検出処理と、
機器毎の通信接続先を示す通信接続先情報にしたがって、前機器が接続されたことを、通信可能に接続した仮想機械実現装置に通知し、前記仮想機械実現装置に接続の許可を要求する接続機器通知処理と、
接続を許可した前記仮想機械実現装置から前記機器への第１のデータを受信すると前記機器に前記第１のデータを送信し、前記機器から第２のデータを受信すると、前記通信接続先情報にしたがって、接続を許可した前記仮想機械実現装置前記第２のデータを送信する入出力制御処理と、
を仮想機械実現装置に実行させたことを特徴とする方法。
（付記２０）
ハードウェア資源を管理することにより、１または２以上の仮想機械を実現する仮想機械の制御方法において、
接続を許可する装置の識別情報として仮想機械実現装置の識別情報が含まれる識別情報にしたがって、第１の機器が接続されたことを通知した第１の仮想機械実現装置に接続を許可するか否か判別し、接続を許可する場合のみ、前記第１の機器が接続されたことを前記仮想機械に通知する認証処理と、
前記第１の仮想機械実現装置から第１のデータを受信すると前記仮想機械に送信し、前記仮想機械から第２のデータを受信すると、前記識別情報にしたがって、前記第１の仮想機械実現装置に前記第２のデータを送信する入出力制御処理と、
を仮想機械実現装置に実行させたことを特徴とする方法。
【符号の説明】
【０１０３】
３０００      情報処理システム
３１００      サーバ
３１２０      ハイパーバイザ
３１２１      認証処理部
３１２２      入出力制御部
３１２３      識別情報記憶部
３２００      クライアント
３２２０      ハイパーバイザ
３２２１      接続機器検出処理部
３２２２      接続機器通知処理部
３２２３      入出力制御部
３２２４      通信接続先情報記憶部
【図３】
0005626839.tif 000002
【図４】
0005626839.tif 000003
【図５】
0005626839.tif 000004
【図６】
0005626839.tif 000005
【図７】
0005626839.tif 000006
【図８】
0005626839.tif 000007
【図９】
0005626839.tif 000008
【図１０】
0005626839.tif 000009
【図１】
0005626839.tif 000010
【図２】
0005626839.tif 000011