(57)【特許請求の範囲】
【請求項１】
仮想マシンイメージを生成して、前記仮想マシンイメージを基に仮想マシンを実行する第２の装置に前記仮想マシンイメージを配付するサーバ装置において、
ユーザデータディスクイメージ領域と他のディスクイメージ領域とを区別可能に前記仮想マシンイメージを生成する仮想マシンイメージ生成手段と、
前記ユーザデータディスクイメージ領域におけるデータ回収領域を特定可能なディスクマップを生成するディスクマップ生成手段と、
前記仮想マシンイメージ生成手段が生成した前記仮想マシンイメージと前記ディスクマップ生成手段が生成した前記ディスクマップとを前記第２の装置に配付する仮想マシンイメージ配付手段と、
前記配付された前記仮想マシンを実行する前記第２の装置において前記配付された前記ディスクマップに基づき特定された前記データ回収領域のデータを、前記第２の装置から受信するユーザデータ受信手段とを備えた
ことを特徴とするサーバ装置。
【請求項２】
前記仮想マシンイメージ配付手段が前記仮想マシンイメージを配付した前記第２の装置におけるディスクイメージを指定して削除指示を示すメッセージを前記第２の装置に送信する削除指示手段を備えた
請求項１に記載のサーバ装置。
【請求項３】
新たなオペレーティングシステムディスクイメージおよびアプリケーションディスクイメージを生成するための仮想マシン部品生成手段を備えた
請求項１または請求項２に記載のサーバ装置。
【請求項４】
ユーザデータディスクイメージ領域と他のディスクイメージ領域とを区別可能生成された仮想マシンイメージと、前記ユーザデータディスクイメージ領域におけるデータ回収領域を特定可能なディスクマップとを生成するサーバ装置から前記仮想マシンイメージおよび前記ディスクマップの配付を受け、前記仮想マシンイメージを基に仮想マシンを実行するクライアント装置であって、
前記サーバ装置から配付された前記仮想マシンイメージを基に仮想マシンを実行する仮想マシンイメージ実行手段と、
前記ディスクマップで特定される前記データ回収領域のデータを前記サーバ装置に送信するユーザデータ送信手段とを備えた
ことを特徴とするクライアント装置。
【請求項５】
前記仮想マシンイメージ実行手段を監視し、仮想マシンの実行の終了時に、前記ユーザデータ送信手段に、前記データ回収領域のデータの送信指示を行うユーザログイン手段を備えた
請求項４記載のクライアント装置。
【請求項６】
ユーザデータディスクイメージ領域と他のディスクイメージ領域とを区別可能生成された仮想マシンイメージと、前記ユーザデータディスクイメージ領域におけるデータ回収領域を特定可能なディスクマップとを生成するサーバ装置から前記仮想マシンイメージおよび前記ディスクマップの配付を受ける仮想マシン実行サーバ装置であって、
前記サーバ装置から配付された前記仮想マシンイメージを基に仮想マシンを実行し、当該実行している仮想マシンの画面をクライアント装置に転送する仮想マシンイメージ実行手段と、
前記ディスクマップで特定される前記データ回収領域のデータを前記サーバ装置に送信するユーザデータ送信手段とを備えた
ことを特徴とする仮想マシン実行サーバ装置。
【請求項７】
サーバ装置が、仮想マシンイメージを生成して、前記仮想マシンイメージを基に仮想マシンを実行する第２の装置に前記仮想マシンイメージを配付する仮想マシン運用システムにおいて、
前記サーバ装置は、
ユーザデータディスクイメージ領域と他のディスクイメージ領域とを区別可能に前記仮想マシンイメージを生成する仮想マシンイメージ生成手段と、
前記ユーザデータディスクイメージ領域におけるデータ回収領域を特定可能なディスクマップを生成するディスクマップ生成手段と、
前記仮想マシンイメージ生成手段が生成した前記仮想マシンイメージと前記ディスクマップ生成手段が生成した前記ディスクマップとを前記第２の装置に配付する仮想マシンイメージ配付手段とを備え、
前記第２の装置は、
前記仮想マシンイメージ配付手段から配付された前記仮想マシンイメージを基に仮想マシンを実行する仮想マシンイメージ実行手段と、
前記ディスクマップで特定される前記データ回収領域のデータを前記サーバ装置に送信するユーザデータ送信手段とを備えた
ことを特徴とする仮想マシン運用システム。
【請求項８】
前記第２の装置は、前記仮想マシンイメージ実行手段を監視し、仮想マシンの実行の終了時に、前記ユーザデータ送信手段に、前記データ回収領域のデータの送信指示を行うユーザログイン手段を備えた
請求項７記載の仮想マシン運用システム。
【請求項９】
前記サーバ装置は、前記仮想マシンイメージ配付手段が仮想マシンイメージを配付した前記第２の装置におけるディスクイメージを指定して削除指示を示すメッセージを前記第２の装置に送信する削除指示手段を備え、
前記第２の装置は、前記削除指示を示すメッセージを受信したことに応じて、当該ディスクイメージを削除するイメージ削除手段を備えた
請求項７または請求項８に記載の仮想マシン運用システム。
【請求項１０】
前記第２の装置は、ディスクイメージを削除するイメージ削除手段と、前記仮想マシンイメージ実行手段を監視し、仮想マシンの実行の終了時に、前記イメージ削除手段に削除指示を出すユーザログイン手段とを備えた
請求項７または請求項８に記載の仮想マシン運用システム。
【請求項１１】
前記サーバ装置は、新たなオペレーティングシステムディスクイメージおよびアプリケーションディスクイメージを生成するための仮想マシン部品生成手段を備えた
請求項７から請求項１０のうちのいずれか１項に記載の仮想マシン運用システム。
【請求項１２】
前記第２の装置は、通信ネットワークを介して前記サーバ装置と通信可能に接続される仮想マシン実行サーバであり、
前記仮想マシン実行サーバに前記通信ネットワークを介して通信可能に接続され、前記仮想マシン実行サーバにおける前記仮想マシンイメージ実行手段で実行されている仮想マシンを遠隔操作するクライアント装置を備えた
請求項７から請求項１１のうちのいずれか１項に記載の仮想マシン運用システム。
【請求項１３】
サーバ装置が、仮想マシンイメージを生成して、前記仮想マシンイメージを基に仮想マシンを実行する第２の装置に前記仮想マシンイメージを配付する仮想マシン運用システムにおいて、
前記サーバ装置は、
ユーザＩＤもしくはグループＩＤ、または前記ユーザＩＤと前記グループＩＤの組み合わせに応じて、ユーザデータディスクイメージ領域と他のディスクイメージ領域とを区別可能に前記仮想マシンイメージを生成する仮想マシンイメージ生成手段と、
前記ユーザデータディスクイメージ領域におけるデータ回収領域を特定可能なディスクマップを生成するディスクマップ生成手段と、
前記仮想マシンイメージ生成手段が生成した前記仮想マシンイメージを前記第２の装置に配付する仮想マシンイメージ配付手段と、
前記ユーザＩＤもしくは前記グループＩＤ、または前記ユーザＩＤと前記グループＩＤの組み合わせを指定して前記データ回収領域のユーザデータ回収の指示を出すユーザデータ受信手段とを備え、
前記第２の装置は、
前記仮想マシンイメージ配付手段から配付された前記仮想マシンイメージを基に仮想マシンを実行する仮想マシンイメージ実行手段と、
前記ユーザデータ回収の指示を受けたときに、該当する前記ユーザＩＤもしくは前記グループＩＤ、または前記ユーザＩＤと前記グループＩＤの組み合わせに対応する前記仮想マシンイメージを保持していた場合に、前記ディスクマップで前記データ回収領域を特定し、前記データ回収領域のデータを前記サーバ装置に送信するユーザデータ送信手段とを備えた
ことを特徴とする仮想マシン運用システム。
【請求項１４】
前記サーバ装置は、前記データ回収領域のユーザデータ回収の指示と同時に、前記ユーザＩＤもしくは前記グループＩＤ、または前記ユーザＩＤと前記グループＩＤの登録を削除するユーザ管理手段を備えた
請求項１３に記載の仮想マシン運用システム。
【請求項１５】
サーバ装置が、仮想マシンイメージを生成して、前記仮想マシンイメージを基に仮想マシンを実行する第２の装置に前記仮想マシンイメージを配付する仮想マシン運用方法において、
前記サーバ装置が、ユーザデータディスクイメージ領域と他のディスクイメージ領域とを区別可能に仮想マシンイメージを生成し、
前記サーバ装置が、前記ユーザデータディスクイメージ領域におけるデータ回収領域を特定可能なディスクマップを生成し、
前記サーバ装置が、生成した前記仮想マシンイメージと前記ディスクマップとを前記第２の装置に配付し、
前記第２の装置が、前記サーバ装置から配付された前記仮想マシンイメージを基に仮想マシンを実行し、
前記第２の装置が、前記ディスクマップで前記データ回収領域を特定し、前記データ回収領域のデータを前記サーバ装置に送信する
ことを特徴とする仮想マシン運用方法。
【請求項１６】
前記第２の装置が、前記仮想マシンイメージの実行を監視し、仮想マシンの実行の終了時に、前記データ回収領域のデータの送信指示を行う
請求項１５記載の仮想マシン運用方法。
【請求項１７】
前記サーバ装置が、前記仮想マシンイメージを配付した前記第２の装置におけるディスクイメージを指定して削除指示を示すメッセージを前記第２の装置に送信し、
前記第２の装置が、前記削除指示を示すメッセージを受信したことに応じて、当該ディスクイメージを削除する
請求項１５または請求項１６に記載の仮想マシン運用方法。
【請求項１８】
前記第２の装置が、仮想マシンの実行を監視し、仮想マシンの実行の終了時にディスクイメージを削除する
請求項１５または請求項１６に記載の仮想マシン運用方法。
【請求項１９】
前記サーバ装置は、新たなオペレーティングシステムディスクイメージおよびアプリケーションディスクイメージを生成する
請求項１５から請求項１８のうちのいずれか１項に記載の仮想マシン運用方法。
【請求項２０】
前記第２の装置の機能を、通信ネットワークを介して前記サーバ装置と通信可能に接続される仮想マシン実行サーバによって実行し、
前記仮想マシン実行サーバで実行されている仮想マシンをクライアント装置で遠隔操作する
請求項１５から請求項１９のうちのいずれか１項に記載の仮想マシン運用方法。
【請求項２１】
サーバ装置が、仮想マシンイメージを生成して、前記仮想マシンイメージを基に仮想マシンを実行する第２の装置に前記仮想マシンイメージを配付する仮想マシン運用方法において、
前記サーバ装置が、ユーザＩＤもしくはグループＩＤ、または前記ユーザＩＤと前記グループＩＤの組み合わせに応じて、ユーザデータディスクイメージ領域と他のディスクイメージ領域とを区別可能に仮想マシンイメージを生成し、
前記サーバ装置が、前記ユーザデータディスクイメージ領域におけるデータ回収領域を特定可能なディスクマップを生成し、
前記サーバ装置が、生成した前記仮想マシンイメージと前記ディスクマップとを前記第２の装置に配付し、
前記第２の装置が、前記サーバ装置から配付された前記仮想マシンイメージを基に仮想マシンを実行し、
前記サーバ装置が、前記ユーザＩＤもしくは前記グループＩＤ、または前記ユーザＩＤと前記グループＩＤの組み合わせを指定してユーザデータ回収の指示を出し、
前記第２の装置が、前記ユーザデータ回収の指示を受けたときに、該当する前記ユーザＩＤもしくは前記グループＩＤ、または前記ユーザＩＤと前記グループＩＤの組み合わせに対応する前記仮想マシンイメージを保持していた場合に、前記ディスクマップで前記データ回収領域を特定し、前記データ回収領域のデータを前記サーバ装置に送信する
ことを特徴とする仮想マシン運用方法。
【請求項２２】
前記ユーザＩＤもしくは前記グループＩＤ、または前記ユーザＩＤと前記グループＩＤの組み合わせを用いて認証を行う仮想マシン運用方法において、
前記データ回収領域の回収と同時に、前記ユーザＩＤもしくは前記グループＩＤ、または前記ユーザＩＤと前記グループＩＤの登録を削除する
請求項２１に記載の仮想マシン運用方法。
【請求項２３】
仮想マシンイメージを生成して、前記仮想マシンイメージを基に仮想マシンを実行する第２の装置に前記仮想マシンイメージを配付するサーバ装置に、
ユーザデータディスクイメージ領域と他のディスクイメージ領域とを区別可能に仮想マシンイメージを生成する処理と、
前記ユーザデータディスクイメージ領域におけるデータ回収領域を特定可能なディスクマップを生成する処理と、
生成した前記仮想マシンイメージと前記ディスクマップとを前記第２の装置に配付する処理と、
前記配付された前記仮想マシンを実行する前記第２の装置において前記配付された前記ディスクマップに基づき特定された前記データ回収領域のデータを、前記第２の装置から受信する処理とを
実行させるための仮想マシンイメージ配付プログラム。
【請求項２４】
ユーザデータディスクイメージ領域と他のディスクイメージ領域とを区別可能生成された仮想マシンイメージと、前記ユーザデータディスクイメージ領域におけるデータ回収領域を特定可能なディスクマップとを生成するサーバ装置から前記仮想マシンイメージおよび前記ディスクマップの配付を受け、前記仮想マシンイメージを基に仮想マシンを実行するクライアント装置に、
前記サーバ装置から配付された前記仮想マシンイメージを基に仮想マシンを実行する処理と、
前記ディスクマップに基づき前記データ回収領域を特定し、前記データ回収領域のデータを前記サーバ装置に送信する処理と
を実行させるための仮想マシン実行プログラム。
【請求項２５】
ユーザデータディスクイメージ領域と他のディスクイメージ領域とを区別可能生成された仮想マシンイメージと、前記ユーザデータディスクイメージ領域におけるデータ回収領域を特定可能なディスクマップとを生成するサーバ装置から前記仮想マシンイメージおよび前記ディスクマップの配付を受け、前記仮想マシンイメージを基に仮想マシンを実行するクライアント装置に、
前記サーバ装置から配付された前記仮想マシンイメージを基に仮想マシンを実行する処理と、
仮想マシン実行終了時に、前記ディスクマップに基づき前記データ回収領域を特定し、前記データ回収領域のデータを前記サーバ装置に送信する処理と
を実行させるための仮想マシン実行プログラム。
【請求項２６】
ユーザデータディスクイメージ領域と他のディスクイメージ領域とを区別可能生成された仮想マシンイメージと、前記ユーザデータディスクイメージ領域におけるデータ回収領域を特定可能なディスクマップとを生成するサーバ装置から前記仮想マシンイメージおよび前記ディスクマップの配付を受け、前記仮想マシンイメージを基に仮想マシンを実行するクライアント装置に、
前記サーバ装置から配付された前記仮想マシンイメージを基に仮想マシンを実行する処理と、
ユーザＩＤもしくはグループＩＤ、または前記ユーザＩＤと前記グループＩＤの組み合わせを指定してユーザデータ回収を示すメッセージを受信したことに応じて、前記ユーザＩＤもしくは前記グループＩＤ、または前記ユーザＩＤと前記グループＩＤの組み合わせに対応する前記仮想マシンイメージを保持していた場合に、前記ディスクマップに基づき前記データ回収領域を特定し、前記データ回収領域のデータを前記サーバ装置に送信する処理と
を実行させるための仮想マシン実行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は仮想マシン運用システム、仮想マシン運用方法およびプログラムに関し、特に、安全な仮想マシンイメージの実行およびユーザデータの回収ができるサーバ装置、クライアント装置、仮想マシン運用システム、仮想マシン運用方法、仮想マシンイメージ配付プログラムおよび仮想マシン実行プログラムに関する。
【背景技術】
【０００２】
ある情報処理装置において他のタイプ（例えば、オペレーティングシステム（ＯＳ）が異なる）情報処理装置を仮想的に動作可能にする仮想マシン技術がある。仮想マシン技術によれば、例えば、Ｗｉｎｄｏｗｓ（登録商標）の動作環境におけるウィンドウ内で、Ｌｉｎｕｘ（登録商標）を動作させることができる。仮想マシン技術によれば、あるＯＳが搭載されているパーソナルコンピュータで他のＯＳを動作させることができるので、他のＯＳの元で動作するアプリケーションプログラム（以下、アプリケーションという。）の開発等の効率が向上する。
【０００３】
非特許文献１には、仮想マシン環境を作成できるソフトウェアであるＶＭＷａｒｅ  ＡＣＥ（ＶＭＷａｒｅ社の商標）が記載されている。ＶＭＷａｒｅ  ＡＣＥでは、管理者が仮想マシンのディスク暗号化やログインの設定などの仮想マシンの設定をし、仮想デバイス設定ファイルを生成する。次に、ディスクイメージにＯＳやアプリケーションのインストールを行い、仮想デバイス設定ファイルとディスクイメージを組み合わせ、仮想マシンイメージを生成する。次に、その仮想マシンイメージをＭＳＩ（Ｍｉｃｒｏｓｏｆｔ  Ｉｎｓｔａｌｌｅｒ）形式のパッケージに変換する。最後に、そのパッケージを、ＣＤやＤＶＤによってクライアントマシン（以下、クライアントという。）に送付したり、通信ネットワーク経由でクライアントに送付したりする。ユーザは、送付されたパッケージを用いて仮想マシンイメージのインストールを行う。
【０００４】
ここで、本明細書で使用する仮想マシン技術に関する用語を定義する。仮想マシンとは、物理的なマシン（実マシン）上でエミュレートされるサーバ、パーソナルコンピュータ（ＰＣ）または携帯情報端末である。仮想デバイスとは、エミュレートされたデバイスであり、例えば、仮想メモリ、仮想ディスク、仮想ネットワークカードである。仮想マシンが有する仮想デバイスの構成は、所定のフォーマットで記載された設定ファイル（仮想デバイス設定ファイル）に記録される。仮想ディスクの内容はディスクイメージと呼ばれるファイルに記録される。本明細書において、ＯＳディスクイメージとは、ＯＳがインストールされたディスクイメージである。
【０００５】
プロビジョニングディスクイメージとは、アプリケーション（セキュリティミドルウェアを含む）がインストールされたディスクイメージである。ユーザデータディスクメージとは、ユーザが作成したデータを記録するディスクイメージである。
【０００６】
仮想マシンイメージとは、仮想デバイス設定ファイルと、ＯＳディスクイメージと、プロビジョニングディスクイメージと、ユーザデータディスクメージとの組み合わせである。
【０００７】
非特許文献２には、パッケージをＧＵＩで選択することにより、インストーラがディスクイメージに対し自動的にアプリケーションをインストールし、ディスクのイメージを簡単に生成できるシステムが開示されている。
【０００８】
非特許文献３には、よく使われるアプリケーションを統計的に調査し、あらかじめよく使われるアプリケーションがインストールされたディスクイメージを自動的に生成しておくことによって、管理者が追加インストールしなければならないアプリケーション数を減らし、クラスタ構築の高速化を図るシステムが記載されている。
【０００９】
仮想マシンイメージ配付に関して、特許文献１には、複数のディスクイメージをもつ計算機からクライアントにディスクイメージをコピーすることによって、ディスクイメージの配付を行うシステムが開示されている。特許文献２には、特許文献１に記載されたシステムを改良し、ディスクの空き領域にあらかじめ他のディスクイメージの一部をコピーしておくことによって、仮想マシンイメージの導入を高速化するシステムが開示されている。特許文献３には、クライアントに直接ディスクイメージをコピーせずに、ストレージエリアネットワーク（ＳＡＮ）を利用し、ネットワークベースのファイルシステムを利用することによって、仮想マシンのマイグレーションを行う配付システムが開示されている。
【００１０】
一般に、仮想マシンイメージの実行手段は、まず、仮想デバイス設定ファイルに記載されているデバイス構成に従って仮想デバイスを生成する。仮想デバイスのうち、仮想ディスクの内容はディスクイメージを基に生成される。その後、仮想マシン上のＯＳが仮想ディスクに入出力イベントを発行したとき、仮想マシンイメージの実行手段は、特定の二次記憶装置にあらかじめ配置されたディスクイメージに対して、入出力イベントに対応したデータ入出力を行う。例えば、仮想マシン上のＯＳが、仮想ディスクに対するあるデータの書き込みイベントを発生させると、仮想マシンイメージの実行手段は、データをイメージファイルに書き込む。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００２−２７８７６９号公報（段落０００８−００１５）
【特許文献２】特開２００６−１６３８８５号公報（段落００４３−００５０）
【特許文献３】特開２００６−２４４４８１号公報（段落０００５）
【非特許文献】
【００１２】
【非特許文献１】「ＶＭＷａｒｅ  ＡＣＥ  システム管理者向けマニュアル」，［online］  ，［２００７年２月１４日検索］，インターネット，＜ＵＲＬ：http://www.vmware.com/support/pubs/ace_pubs.html＞，ｐ．１７−３０
【非特許文献２】高宮安仁，栄純明，山形育平，松岡聡  「更新やカスタマイズが可能なクラスタ設定のパッケージ化手法」，電子情報通信学会技術研究報告，２００５年８月，ＶＯＬ．１０５，Ｎｏ．２２５（ＣＰＳＹ２００５  ７−１４），ｐ．１９‐２４
【非特許文献３】西村豪生，中田秀基，松岡聡  「仮想計算機と仮想ネットワークを用いた仮想クラスタの構築」，情報処理学会  研究報告，２００６年８月１日，Ｖｏｌ．２００６  Ｎｏ．８７（２００６−ＨＰＣ−１０３），ｐ．７３−７８
【発明の概要】
【発明が解決しようとする課題】
【００１３】
特許文献１〜３には、ディスクイメージ等の配付技術に関する開示がある。しかし、クライアントにおいて仮想マシンを構築するために、ＯＳやアプリケーションがインストールされたディスクイメージを含む仮想マシンイメージをクライアントに配付する場合、ＯＳやアプリケーションのアップデートなどが生じたときに、数Ｍバイト程度のディスクイメージの部分的な変更で済む場合でも、通常数Ｇ〜数十Ｇバイトに及ぶ仮想ディスクイメージ全体を再配付しなければならない。
【００１４】
また、インターネットワームや悪意のユーザ対策として、ＯＳや標準的なアプリケーションの書き換えを禁止したい場合があっても、従来の仮想マシン実行手段は、ＯＳやアプリケーションが記録されているディスクイメージ領域に対する書き換えを禁止することができない。
【００１５】
さらに、仮想マシンイメージの配付先であるクライアントにおいて仮想マシン上で作成されたユーザデータのみを回収したい場合でも、ディスクイメージ領域におけるＯＳ領域、アプリケーション領域およびユーザデータ領域の３つの領域全てを回収しなければならない。
【００１６】
そこで、本発明は、仮想マシンイメージの一部を変更する場合に仮想ディスクイメージ全体を再配付する必要がなく、ディスクイメージ領域におけるＯＳ領域、アプリケーション領域およびユーザデータ領域の３つの領域のうち、変更したい部分的なディスクイメージを配付するだけで済ませることができる仮想マシン運用システム、仮想マシン運用方法およびプログラムを提供することを目的とする。また、配付したＯＳやアプリケーションを仮想マシン実行時に変更させないようにすることも本発明の目的である。さらに、仮想マシンイメージの配付先からユーザデータのみを回収できるようにすることも本発明の目的である。
【課題を解決するための手段】
【００１７】
本発明による仮想マシン運用システムは、サーバ装置（例えば、サーバ１００，１００Ｂ，１００Ｃ，１００Ｄ）が、オペレーティングシステムディスクイメージ領域と、アプリケーションディスクイメージ領域と、ユーザデータディスクイメージ領域とを区別可能に仮想マシンイメージを生成する仮想マシンイメージ生成手段と、仮想マシンイメージ生成手段が生成した仮想マシンイメージを第２の装置（例えば、クライアント１１０，１１０Ｃ，１１０Ｅ）に配付する仮想マシンイメージ配付手段とを備え、第２の装置が、仮想マシンイメージ配付手段から配付された仮想マシンイメージを基に仮想マシンを実行する仮想マシンイメージ実行手段を備えたことを特徴とする。
【００１８】
本発明による他の態様の仮想マシン運用システムは、サーバ装置が、データ書込禁止領域を含むディスクイメージ領域（例えば、ＯＳディスクイメージ領域やプロビジョニングディスクイメージ領域すなわちアプリケーションディスクイメージ領域）とユーザデータディスクイメージ領域とを含む仮想マシンイメージを生成する仮想マシンイメージ生成手段と、データ書込禁止領域を特定可能なディスクマップを生成するディスクマップ生成手段と、仮想マシンイメージ生成手段が生成した仮想マシンイメージとディスクマップ生成手段が生成したディスクマップとを第２の装置に配付する仮想マシンイメージ配付手段とを備え、第２の装置が、仮想マシンイメージ配付手段から配付された仮想マシンイメージを基に仮想マシンを実行する仮想マシンイメージ実行手段と、ディスクマップでデータ書込禁止領域を特定し、仮想マシンイメージ実行手段による書き込みイベントを監視して、データ書込禁止領域へのデータの書き込みを禁止する入出力監視手段とを備えたことを特徴とする。
【００１９】
本発明による別の態様の仮想マシン運用システムは、サーバ装置が、ユーザデータディスクイメージ領域と他のディスクイメージ領域（例えば、ＯＳディスクイメージ領域やプロビジョニングディスクイメージ領域すなわちアプリケーションディスクイメージ領域）とを区別可能に仮想マシンイメージを生成する仮想マシンイメージ生成手段と、ユーザデータディスクイメージ領域におけるデータ回収領域を特定可能なディスクマップを生成するディスクマップ生成手段と、仮想マシンイメージ生成手段が生成した仮想マシンイメージとディスクマップ生成手段が生成したディスクマップとを第２の装置に配付する仮想マシンイメージ配付手段とを備え、第２の装置が、仮想マシンイメージ配付手段から配付された仮想マシンイメージを基に仮想マシンを実行する仮想マシンイメージ実行手段と、ディスクマップでデータ回収領域を特定し、データ回収領域のデータをサーバ装置に送信するユーザデータ送信手段とを備えたことを特徴とする。
【００２０】
本発明によるさらに他の態様の仮想マシン運用システムは、サーバ装置が、第２の装置の使用者を認証するユーザ認証手段と、ユーザ認証手段が第２の装置の使用者の認証に成功した場合に、オペレーティングシステムディスクイメージ領域と、アプリケーションディスクイメージ領域と、ユーザデータディスクイメージ領域とを区別可能に仮想マシンイメージを前記第２の装置の使用者に応じて生成する仮想マシンイメージ生成手段と、仮想マシンイメージ生成手段が生成した仮想マシンイメージを前記第２の装置に配付する仮想マシンイメージ配付手段とを備え、第２の装置が、仮想マシンイメージ配付手段から配付された仮想マシンイメージを基に仮想マシンを実行する仮想マシンイメージ実行手段を備えたことを特徴とする。
【発明の効果】
【００２１】
第１の効果は、ＯＳやアプリケーションのアップデートを効率的に行えることである。その理由は、仮想マシンイメージ配付手段が、アップデートに必要な領域を特定可能なディスクイメージを配付するためである。
【００２２】
第２の効果は、悪意のあるユーザやソフトウェアからＯＳやセキュリティミドルウェアを保護できることである。その理由は、データ書込禁止領域を特定可能なディスクマップ（書き込み禁止マップ）を生成するディスクマップ生成手段と、書き込み禁止マップに従う入出力監視手段によって、配付したＯＳやセキュリティミドルウェア等のデータ書込禁止領域への上書きを禁止するためである。
【００２３】
第３の効果は、ユーザデータを効率的に回収できることである。その理由は、回収すべきデータのマップを生成するディスクマップ生成手段と、回収すべきデータのマップに従ってデータを送信するユーザデータ送信手段とによって、ユーザデータが記録されている領域だけを回収するからである。
【００２４】
第４の効果は、ユーザデータを漏れなく回収できることである。その理由は、書き込み禁止マップを生成するディスクマップ生成手段と、書き込み禁止マップに従う入出力監視手段とによって、ユーザデータがＯＳやセキュリティミドルウェアが記録されている領域に混入することがないためである。
【図面の簡単な説明】
【００２５】
【図１】第１の実施の形態における仮想マシン運用システムの構成を示すブロック図である。
【図２】仮想マシンイメージ実行手段と仮想マシンイメージ格納手段との関係を示す説明図である。
【図３】仮想マシンイメージ配付の動作を示すシーケンス図である。
【図４】ディスク構成例を示す説明図である。
【図５】ディスクマップの例を示す説明図である。
【図６】第１の実施の形態におけるディスクマップの生成の動作を示すフローチャートである。
【図７】仮想マシン実行時の書き込みの動作を示すフローチャートである。
【図８】仮想マシン実行時の書き込みの動作を示すシーケンス図である。
【図９】仮想マシン実行時の読み込みの動作を示すシーケンス図である。
【図１０】ユーザデータ回収の動作を示すシーケンス図である。
【図１１】ユーザデータをファイルとして取り出す動作を示すフローチャートである。
【図１２】第２の実施の形態におけるサーバの構成を示すブロック図である。
【図１３】第２の実施の形態におけるディスクマップ生成の動作を示すシーケンス図である。
【図１４】第２の実施の形態におけるディスクマップ生成の動作を示すフローチャートである。
【図１５】第２の実施の形態におけるディスクマップの例を示す説明図である。
【図１６】第２の実施の形態における読み込みセクタの監視の動作を示すシーケンス図である。
【図１７】第２の実施の形態における読み込みセクタの監視の動作を示すフローチャートである。
【図１８】第３の実施の形態における情報処理システムの構成を示すブロック図である。
【図１９】第３の実施の形態におけるディスクイメージ削除の動作を示すシーケンス図である。
【図２０】第４の実施の形態におけるサーバの構成を示すブロック図である。
【図２１】第５の実施の形態における仮想マシン運用システムの構成を示すブロック図である。
【図２２】第６の実施の形態における仮想マシン運用システムの構成を示すブロック図である。
【図２３】ログイン時の動作を示すシーケンス図である。
【図２４】ディスク構成例を示す説明図である。
【図２５】ディスク構成例を示す説明図である。
【図２６】ディスク構成例を示す説明図である。
【図２７】管理ＵＩの保護するファイル・パーティション・ディスクの設定画面の例を示す説明図である。
【図２８】管理ＵＩの回収するデータを設定する画面の例を示す説明図である。
【図２９】管理ＵＩのディスクイメージ削除の指定画面の例を示す説明図である。
【図３０】ディスクイメージ組み合わせマップの例を示す説明図である。
【発明を実施するための形態】
【００２６】
以下、本発明を実施するための最良の形態を図面を参照して詳細に説明する。
【００２７】
図１は、本発明の第１の実施の形態（実施の形態１）の仮想マシン運用システムの構成を示すブロック図である。図１に示す仮想マシン運用システムは、サーバ１００と１台以上のクライアント１１０とを含む。なお、図１には１台のクライアント１１０のみが示されている。また、サーバ１００とクライアント１１０は、インターネットなどの通信ネットワークを介してデータを送受信する。
【００２８】
サーバ１００は、仮想デバイス設定ファイルと、ＯＳがインストールされているＯＳディスクイメージと、アプリケーション（セキュリティミドルウェアを含む）がインストールされているプロビジョニングディスクイメージと、ユーザデータを記録するユーザデータディスクイメージとを記録する仮想マシン部品格納手段１０１、仮想マシン部品格納手段１０１に保存されているデバイス設定ファイル、仮想デバイス設定ファイルと３つのディスクイメージ（ＯＳディスクイメージ、プロビジョニングディスクイメージおよびユーザデータディスクイメージ）とを組み合わせ仮想マシンイメージを生成する仮想マシンイメージ生成手段１０２、仮想マシンイメージ生成手段１０２が生成した仮想マシンイメージを配付する仮想マシンイメージ配付手段１０３、ユーザデータを受信するユーザデータ受信手段１０４、ユーザデータを格納するユーザデータ格納手段１０５、ディスクマップを生成するディスクマップ生成手段１０６、および管理者からの指示の受け付けや管理者への報告を行う管理ＵＩ（ユーザインタフェース）１０９を有する。
【００２９】
また、クライアント１１０は、仮想マシンイメージを実行する仮想マシンイメージ実行手段１１１、仮想マシン実行手段１１１の入出力を監視する入出力監視手段１１２、記憶領域を持ち仮想マシンイメージを格納する仮想マシンイメージ格納手段１１３、ユーザデータを送信するユーザデータ送信手段１１４、および仮想マシンイメージを受信する仮想マシンイメージ受信手段１１５を有する。
【００３０】
各手段は、それぞれ以下のように動作する。
【００３１】
仮想マシン部品格納手段１０１は、一つまたは複数の仮想マシンに関する、仮想デバイス設定ファイルや、ＯＳディスクイメージや、プロビジョニングディスクイメージや、ユーザデータディスクイメージを記憶部に保存している。仮想マシン部品格納手段１０１は、仮想マシンイメージ生成手段１０２からの要求に応じて各ディスクイメージと仮想デバイス設定ファイルとを仮想マシンイメージ生成手段１０２に渡す。
【００３２】
仮想マシンイメージ生成手段１０２は、仮想マシン部品格納手段１０１から３つのディスクイメージと、仮想デバイス設定ファイルとを受け取り、各ディスクイメージと仮想デバイス設定ファイルとを合わせて仮想マシンイメージを生成する。仮想マシンイメージ配付手段１０３は、クライアント１１０の仮想マシンイメージ受信手段１１５に、仮想マシンイメージ生成手段１０２が生成した仮想マシンを配付する。
【００３３】
ユーザデータ受信手段１０４は、クライアントのユーザデータ送信手段１１４からユーザデータを受信し、署名をチェックする。署名は、ユーザデータがどのクライアントのものであるかを示す。ユーザデータ格納手段１０５は、ユーザデータ受信手段１０４からユーザデータを受け取り、ユーザデータを保存する。ディスクマップ生成手段１０６は、書き込みを禁止する領域のマップと回収を行う領域のマップとを生成する。
【００３４】
管理ＵＩ１０９は、管理者からの指示を受け、各手段に命令の発行するとともに、各手段からの報告を受け取って表示部に表示する。
【００３５】
仮想マシンイメージ実行手段１１１は、仮想マシンイメージをもとに仮想マシンを実行し、実行中にディスクイメージに対する入出力を行う。入出力監視手段１１２は、仮想マシンによるディスクイメージに対する入出力を監視し、書き込み禁止マップで定義されているセクタまたはディスクへの書き込みをブロックする。仮想マシンイメージ格納手段１１３は、仮想マシンイメージを仮想マシンイメージ受信手段１１５から受け取り、記憶領域に保存する。ユーザデータ送信手段１１４は、ユーザデータの署名を生成し、ユーザデータと署名とをユーザデータ受信手段１０４に出力する。仮想マシンイメージ受信手段１１５は、仮想マシンイメージ配付手段１０３から仮想マシンイメージを受信する。仮想マシンイメージ格納手段１１３は、仮想マシンイメージを保存する。
【００３６】
図２は、クライアント１１０における仮想マシンイメージ実行手段１１１と仮想マシンイメージ格納手段１１３との関係を示す説明図である。図２に示すように、仮想マシンイメージ格納手段１１３には、サーバ１００から受信したＯＳディスクイメージ（ディスクイメージＡ）２１１、セキュリティミドルウェア等を含むプロビジョニングディスクイメージ（ディスクイメージＢ）２１２、ユーザデータディスクイメージ（ディスクイメージＣ）２１３、および仮想デバイス設定ファイル２１４が保存される。
【００３７】
仮想マシンイメージ実行手段１１１は、仮想マシンイメージ格納手段１１３に保存されている仮想デバイス設定ファイル２１４の内容に従って、仮想マシンの仮想ＣＰＵ２０４や仮想メモリ２０５、および仮想ネットワークカード２０６等を生成する。また、ディスクイメージＡ，Ｂ，Ｃのデータから、仮想マシンのＯＳを含む仮想ディスク（仮想ディスクＡ）２０１のデータとセキュリティミドルウェア等を含む仮想ディスク（仮想ディスクＢ）２０２のデータとを作成し、ユーザデータが格納される仮想ディスク（仮想ディスクＣ）２０３を作成する。
【００３８】
次に、本実施の形態の全体の動作を説明する。
【００３９】
まず、仮想マシンイメージの生成および配付について図３のシーケンス図を参照して説明する。仮想マシンイメージ生成手段１０２が、生成対象の仮想マシンの仮想デバイス設定ファイルとディスクイメージとを仮想マシン部品格納手段１０１に要求する（ステップＡ１）。要求するディスクイメージは、ＯＳディスクイメージと、プロビジョニングディスクイメージと、ユーザデータディスクイメージである。仮想マシン部品格納手段１０１は、要求された仮想デバイス設定ファイルとディスクイメージとを記憶部から読み込み（ステップＡ２）、仮想マシンイメージ生成手段１０２に渡す。仮想マシンイメージ生成手段１０２は、仮想デバイス設定ファイルと、ＯＳディスクイメージと、プロビジョニングディスクイメージと、ユーザデータディスクイメージとを組み合わせて仮想マシンイメージを生成する（ステップＡ３）。
【００４０】
例えば、図４に示すように、ＯＳディスクイメージ（ディスクＡ）と、セキュリティミドルウェア等がインストールされているプロビジョニングディスクイメージ（ディスクＢ）と、パーティションのみ作成されている状態のユーザデータディスクイメージ（ディスクＣ）とを組み合わせる。ユーザデータディスクイメージとして、独立したディスクイメージ、またはＯＳやセキュリティミドルウェア等が記録されているディスクイメージの差分を記録する差分ディスクイメージを用いる。
【００４１】
ディスクマップ生成手段１０６は、ディスクマップを生成する（ステップＡ４）。ディスクマップは、少なくとも、ＯＳディスクイメージ領域およびプロビジョニングディスクイメージ領域における書き込みを禁止する領域を指定する書き込み禁止の項目と、ユーザデータディスクイメージ領域における回収する領域を指定する回収の項目とを含む。ディスクマップの例を図５に示す。図５に示す例では、書き込み禁止の項目において、ディスクＡのセクタ１２３４５〜１３０００と、ディスクＢの全ての領域とが指定されている。また、回収の項目では、ディスクＣの全ての領域が指定されている。
【００４２】
次に、ディスクマップ生成手段１０６の動作を、図６のフローチャートを参照して説明する。ディスクマップ生成手段１０６は、仮想マシンイメージ中のディスクイメージを解釈し、パーティションやファイルの情報を得る（ステップＤ１）。ファイルやパーティションの情報は管理ＵＩ１０９によって表示され、管理者が保護したいディスクやパーティションやファイルを指定する（ステップＤ２）。ディスクマップ生成手段１０６は、指定されたパーティションやファイルに対応するセクタをディスクマップの書き込み禁止の項目に追加する（ステップＤ３）。一つの仮想ディスク全てを書き込み禁止にする場合は、セクタではなく、ディスクを指定してもよい。また、マップの回収の項目に、ユーザデータ回収時に回収するディスクまたはパーティションを指定する。
【００４３】
ディスクマップが生成されると、仮想マシンイメージ配付手段１０３が、仮想マシンイメージとディスクマップとをクライアント１１０に送信する（ステップＡ５）。クライアント１１０において、仮想マシンイメージ受信手段１１５が、仮想マシンイメージとディスクマップとを受信する（ステップＡ６）。そして、受信した仮想マシンイメージとディスクマップとを仮想マシンイメージ格納手段１１３に出力する。仮想マシンイメージ格納手段１１３は、仮想マシンイメージとディスクマップとを保存する（ステップＡ７）。
【００４４】
次に、仮想マシン実行について説明する。まず、図７のフローチャートを参照して、仮想マシン内でディスクに対する読み込みイベントおよび書き込みイベントが発生したときのクライアント１１０の動作を説明する。
【００４５】
仮想マシンイメージ実行手段１１１が仮想マシンイメージから仮想マシンを生成する（ステップＢ１）。ディスクへの書き込みイベントが発生した場合に、入出力監視手段１１２は、ディスクマップで書き込みが禁止されているか否かのチェックを行う（ステップＢ２，Ｂ３）。書き込みが禁止されている場合には、入出力監視手段１１２が書き込みをブロックする（ステップＢ４）。書き込みが禁止されていない場合には、仮想マシンイメージ実行手段１１１が仮想ディスクへの書き込みイベントをディスクイメージへの書き込みイベントに変換する。仮想ディスクへの書き込みイベントは、例えば、仮想ディスクに対するＳＣＳＩコマンドを含むイベントであり、ディスクイメージへの書き込みは、例えば、実ディスク上にあるディスクイメージに対する書き込み命令を含むイベントである。最後に、仮想マシンイメージ実行手段１１１は、仮想マシンイメージ格納手段１１３内の適切な仮想マシンイメージへの書き込みを実行する（ステップＢ６）。
【００４６】
書き込みの動作を明確に説明するため、図８を参照して補足説明を行う。図８は、上述した書き込みイベントにおいて、書き込みがブロックされなかったときの仮想マシンイメージ実行手段１１１等の動作を示すシーケンス図である。仮想マシンイメージ実行手段１１１が実行している仮想マシンにおいて仮想ディスクに対する書き込みイベントが発生したときに（ステップＺ１）、仮想マシンイメージ実行手段１１１から入出力監視手段１１２に渡されるイベントは、仮想ディスクに対する書き込みイベントである。書き込みイベントについて入出力監視手段１１２が書き込みが禁止されているか否かチェックする（ステップＺ２）。図５に示された例では、ＯＳの一部およびセキュリティミドルウェアが記録されている領域に、ユーザデータが書き込まれることがないようにチェックされる。チェックにパスした仮想ディスクへの書き込みイベントは、仮想マシンイメージ実行手段１１１によってディスクイメージへの書き込みイベントに変換され（ステップＺ３）、仮想マシンイメージ格納手段１１３に渡される。書き込みイベントの変換は、例えば、ＳＣＳＩコマンド中の仮想ディスクのセクタと物理ディスク上にあるディスクイメージ中の参照テーブルとを比較することによって行われる。仮想マシンイメージ格納手段１１３は、保存されているディスクイメージを書き換える（ステップＺ４）。
【００４７】
仮想マシン内でディスクに対する読み込みイベントが発生したときの動作を、図９のシーケンス図を参照して説明する。仮想マシンイメージ実行手段１１１において読み込みイベントが発生したときに（ステップＹ１）、仮想マシンイメージ実行手段１１１が仮想ディスクに対する読み込みイベントをディスクイメージに対する読み込みイベントに変換する。変換の動作については、書き込みの動作と同様である。仮想マシンイメージ格納手段１１３は、読み込みイベントに従ってディスクイメージの指定領域を読み込む（ステップＹ３）。読み込まれたデータは、仮想マシンイメージ実行手段１１１に渡される。すなわち、仮想マシンにデータが返される。
【００４８】
次に、ユーザデータ回収について図１０のシーケンス図を参照して説明する。仮想マシンイメージ格納手段１１３は、ディスクマップを読み込む（ステップＣ１）。読み込まれたディスクマップは、ユーザデータ送信手段１１４に渡される。ユーザデータ送信手段１１４は、ディスクマップの回収の項目を読み（ステップＣ２）、該当する領域を仮想マシンイメージ格納手段１１３に要求する（ステップＣ３）。仮想マシンイメージ格納手段１１３は、ディスクイメージ内の指定された領域を読み込む（ステップＣ４）。仮想マシンイメージ格納手段１１３は、読み込んだデータをユーザデータ送信手段１１４に出力する。ユーザデータ送信手段１１４は、ユーザデータに対して、クライアント１１０のユーザデータであることを示す署名を生成する（ステップＣ５）。そして、ユーザデータ送信手段１１４は、ユーザデータと署名とをサーバ１００に送信する（ステップＣ６）。サーバ１００において、ユーザデータ受信手段１０４が、ユーザデータと署名とを受信する（ステップＣ７）。ユーザデータ受信手段１０４は、署名の妥当性のチェックを行う（ステップＣ８）。ユーザデータ受信手段１０４は、署名が妥当であると判定すると、受信したデータをユーザデータ格納手段１０５に渡す。ユーザデータ格納手段１０５は、受け取ったデータを記憶部に保存する（ステップＣ９）。
【００４９】
ステップＣ８においてユーザデータ受信手段１０４が署名が妥当でないと判断した場合には、管理ＵＩ１０９が、ユーザデータの破棄、署名を無視して保存などの選択肢を管理者に提示する。
【００５０】
本実施の形態では、以下のような効果を得ることができる。すなわち、ＯＳやセキュリティミドルウェアはディスクマップの書き込み禁止項目に記録され、入出力監視手段１１２によって、ＯＳやセキュリティミドルウェアが記録されている領域にデータが上書きされないように構成されているので、ＯＳやセキュリティミドルウェアを保護できる。
【００５１】
また、本実施の形態では、ＯＳやセキュリティミドルウェアが記録される領域に、ユーザデータが書き込まれないように構成されているので、ユーザデータが記録されている領域のみを回収すれば、全てのユーザデータが回収できる。さらに、本実施の形態では、ユーザデータのみを回収するように構成されているので、サーバ１００とクライアント１１０と間のデータの転送量が少ない。
【００５２】
なお、本実施の形態では、ディスクマップ生成を生成するための方法として、ファイルやパーティションを管理者が管理ＵＩ１０９によって指定する方法を採用したが、ディスクマップ生成手段１０６に組み込まれたルールセットによって、自動的に指定を行ってディスクマップを生成してもよい。ルールセットは、例えば、"ＵＮＩＸ（登録商標）系のＯＳであれば、/boot と/binのディスクを書き込み禁止にする。"、"ＵＮＩＸ（登録商標）系のＯＳであれば、/home を含むパーティションを回収を行う領域に指定する"などである。
【００５３】
また、本実施の形態では、入出力監視手段１１２が、書き込み禁止セクタへの書き込みをブロックする動作を行ったが、書き込みのブロックに加え、書き込みをブロックしたという情報を管理ＵＩ１０９に伝え、管理ＵＩ１０９がその情報を表示してもよい。
【００５４】
また、本実施の形態における仮想マシンイメージ配付手段１０３および仮想マシン受信手段１１５の動作として、仮想マシンイメージの送受信の動作を示したが、仮想マシンイメージの配付後に、仮想マシンイメージ配付手段１０３は、管理ＵＩ１０９の指示に応じて、または仮想マシンイメージ受信手段１１５からの要求に応じて、ディスクイメージの再配付、または追加ディスクイメージの配付を行ってもよい。このような動作によって、管理者はパッチの配付や設定の更新を行うことができる。配付するディスクイメージは独立したディスクイメージでもよいし、配付済みのディスクイメージの差分ディスクイメージでもよい。
【００５５】
本実施の形態におけるユーザデータ格納手段１０５の動作として、ユーザデータをそのまま保存する動作を説明したが、ファイル取出手段を設け、ファイル取出手段がユーザデータからファイルを取り出してもよい。図１１は、ファイル取出手段がユーザデータからファイルを取り出す動作を示すフローチャートである。ファイル取出手段は、ユーザデータ受信手段１０４がクライアント１１０から受信したユーザデータが完全なパーティションを含み、ファイルシステムとして解釈可能であるか否かチェックする（ステップＧ１）。ステップＧ１の処理で完全なパーティションを含むか否かチェックする理由は、差分ディスクを用いていた場合には、差分しか記録されていないため、完全なパーティションを含むとは限らないからである。パーティションが完全ではなく、その一部である場合には、クライアントに配付した仮想マシンイメージに含まれるディスクイメージを基に不完全な部分を補う（ステップＧ２）。その後、ファイル取出手段は、ファイルシステムを解釈する（ステップＧ３）。そして、解釈したファイルシステムからファイル一覧を生成し、管理者が管理ＵＩ１０９で回収するファイルを指定する（ステップＧ４）。ファイル取出手段は、ディスクイメージから指定されたファイルを取り出す（ステップＧ５）。
【００５６】
また、本実施の形態では、仮想マシンイメージ生成手段１０２が、ユーザデータディスクイメージとして、独立したディスクイメージまたは差分ディスクイメージを用いる場合を例にした。また、ディスクマップ生成手段１０６のマップの回収の項目に記載される内容として、ユーザのデータが書き込まれるディスクを例にした（図５参照）。しかし、仮想マシンイメージ生成手段１０２がＯＳやセキュリティミドルウェアとユーザデータが記録されるディスクを一つにし、パーティションでその境界を区切り、ディスクマップ生成手段１０６においてマップの回収の項目でユーザのデータが書き込まれるパーティションのセクタを指定してもよい。ディスクマップの回収の項目にパーティションのセクタを指定した場合には、ユーザデータ送信手段１１４は、ディスクからそのパーティションのセクタを抜き出して、ユーザデータ受信手段１０４に送信する。
【００５７】
実施の形態２．
次に、本発明の第２の実施の形態（実施の形態２）を図面を参照して説明する。図１２は、第２の実施の形態におけるサーバ１００Ｂの構成を示すブロック図である。図１２に示すように、サーバ１００Ｂは、仮想マシンイメージテスト手段１０７を備えている点で、第１の実施の形態におけるサーバ１００とは異なっている。なお、第１の実施の形態における構成要素と同じ構成要素については、同一の符号を付し、詳細な説明を省略する。また、本実施の形態におけるクライアントは、第１の実施の形態におけるクライアント１１０と同じであるため、説明を省略する。
【００５８】
仮想マシンイメージテスト手段１０７は、仮想マシンイメージ生成手段１０２から仮想マシンイメージを受け取り、仮想マシンを実行する。すなわち、ＯＳとセキュリティミドルウェアとを実行する。仮想マシンイメージテスト手段１０７は、ユーザデータ格納手段１０５から呼び出され、仮想マシンを実行する。仮想マシンテスト手段１０７は、仮想マシン実行時に読み書きされたセクタ情報をディスクマップ生成手段１０６に渡す。
【００５９】
次に、本実施の形態の動作を説明する。図１３および図１４は、第２の実施の形態における書き込み禁止の項目に関するディスクマップ生成の動作を示すシーケンス図およびフローチャートである。書き込み禁止の項目に関するディスクマップの生成以外の動作については、第１の実施の形態と同じであるため、説明を省略する。
【００６０】
図１３を参照して本実施の形態の動作の概要を説明する。ディスクマップ生成手段１０６は、仮想マシンイメージテスト手段１０７を呼び出す（ステップＸ１）。仮想マシンイメージテスト手段１０７は、仮想マシンイメージ生成手段１０２から仮想マシンイメージを読み込み、仮想マシンを実行する（ステップＸ２）。仮想マシンの入出力の情報は、ディスクマップ生成手段１０６に渡される。ディスクマップ生成手段１０６は、ディスクマップの生成を行う（ステップＸ３）。また、仮想マシンイメージテスト手段１０７は、仮想ディスクに対するイベントをディスクイメージに対するイベントに変換する（ステップＸ４）。また、仮想マシンイメージ生成手段１０２がディスクイメージに対して読み書きを行う（ステップＸ５）。イベントが読み込みであった場合には、読み込んだデータは仮想マシンイメージテスト手段１０７に渡される。すなわち、仮想マシンに読み込んだデータが仮想マシンイメージテスト手段１０７に渡る（ステップＸ６）。
【００６１】
図１４を参照して、図１３に示されたディスクマップ生成処理（ステップＸ３）の動作を詳細に説明する。最初に、ディスクマップ生成手段１０６が、仮想マシンテスト手段１０７から読み書きのイベントを受け取る（ステップＥ１）。ディスクマップ生成手段１０６は、イベントが読み込みイベントであるか書き込みイベントであるか判断する（ステップＥ２）。読み込みイベントであるときには、読み込み対象のセクタをディスクマップの書き込み禁止の項目に記録する（ステップＥ４）。書き込みイベントであるときは、一時的に書き込み対象のセクタを記録しておく（ステップＥ３）。ステップＥ１〜Ｅ５までの動作が、ＯＳが起動完了するまで続けられる。ＯＳによって書き込みが行われるセクタを書き込み禁止にした場合、ＯＳが正常に動作しなくなるため、一時的に記録しておいた書き込みセクタを参照し、書き込みが行われたセクタをディスクマップの書き込み禁止の項目から削除する（ステップＥ６）。以上のようにして、ＯＳおよびセキュリティミドルウェアの実行中にＯＳおよびセキュリティミドルウェアがデータを読み出す領域が書き込み禁止の対象に設定される。また、ＯＳおよびセキュリティミドルウェアの実行中にＯＳおよびセキュリティミドルウェアがデータを書き込む領域は書き込み禁止の対象から除外される。
【００６２】
なお、第１の実施の形態において、ユーザデータ格納手段１０５の動作として、ディスクのパーティションのファイルシステムを解釈し、ユーザデータをファイルとして取り出す動作を説明したが、本実施の形態の構成では、ユーザデータ格納手段１０５が仮想マシンイメージテスト手段１０７を呼び出し、クライアント１１０に配付した仮想マシンイメージとユーザから回収したユーザデータディスクイメージとを組み合わせてクライアントの環境を再現し、ファイルという形でユーザデータを取り出してもよい。
【００６３】
また、本実施の形態におけるディスクマップ生成手段１０６として、書き込み禁止のセクタを示すマップを生成する様態を示したが、ディスクマップに、書き込み禁止の項目に加えて、ディスクマップの読み込み必須の項目に、必ず読み込まれなければならないセクタを指定し、クライアント１１０において、入出力監視手段１１２が、このセクタが読み込まれているか監視してもよい。図１５にディスクマップの読み込み必須の項目の例を示す。この例では、ディスクＡのセクタ１〜１０００が、必ず読み込まれなければならないセクタであると指定されている。書き込み禁止の項目と回収の項目については、図５と同様である。このような構成によれば、例えば、必ず実行されるべきブートシーケンスをバイパスしていないことを確かめることができる。また、クライアント１１０においてＯＳ等が存在すべきセクタにＯＳ等が存在しないこと、すなわちＯＳ等の改竄がなされた可能性があることを検出できる。
【００６４】
マップの読み込み必須の項目の生成は、例えば、図１３に示すディスクマップ生成処理（ステップＸ３）において、読み込まれたセクタをディスクマップに記録することによって実現される。すなわち、図１４のステップＥ３とＥ６を取り除き、ステップＥ４を、読み込みセクタをディスクマップの読み込み必須の項目に追加する動作に変えれば、マップの読み込み必須の項目の生成処理になる。
【００６５】
図１６のシーケンス図を参照してクライアント１１０の動作の概要を説明する。本実施の形態では、クライアント１１０において、第１の実施の形態の動作（図９参照）に加えて、読み込みイベントの監視を行う読み込みイベントチェック（ステップＷ１）が実行される。第１の実施の形態では、入出力監視手段１１２は、読み込みイベントを監視していなかったが、本実施の形態では、入出力監視手段１１２は、ディスクマップの読み込み必須の項目で指定したセクタが読み込まれていることを確認するために読み込みイベントも監視する。ステップＷ１以外の処理は、図９に示されたステップと同様である。
【００６６】
図１７のフローチャートを参照して読み込みイベントチェックの動作（ステップＷ２）を詳細に説明する。入出力監視手段１１２は、読み込みイベントを仮想マシンイメージ実行手段１１１から受け取る（ステップＨ１）。次に、入出力監視手段１１２は、読み込まれたセクタを記憶部に記録する（ステップＨ２）。次いで、ＯＳ起動完了かどうか確認し（ステップＨ３）、完了していない場合は、ステップＨ１に戻る。ステップＨ３からステップＨ１へ戻った場合は、次の読み込みイベントを受信するまで、ステップＨ１で待機する。
【００６７】
ＯＳの起動が完了したときに、入出力監視手段１１２は、ステップＨ２で記録されたセクタと、マップの読み込み必須の項目で示されているセクタとを照合する（ステップＨ４）。照合の結果、読み込まれていないセクタがあると判定した場合には、入出力監視手段１１２は、例えばブートシーケンスにおいてバイパスが発生したと見なし、仮想マシンを停止する（ステップＨ５）。全て読み込まれていた場合は、読み込みイベントチェック（ステップＷ２）を終了する。
【００６８】
本実施の形態では、以下のような効果を得ることができる。すなわち、第１の実施の形態では、ファイルやパーティションを管理者が管理ＵＩ１０９によって指定することによってディスクマップが生成されたが、本実施の形態では、仮想マシンイメージテスト手段１０７によってＯＳとセキュリティミドルウェアとが実行され、仮想マシンイメージテスト手段１０７の実行状態にもとづいてディスクマップ生成手段１０６によってディスクマップが生成される。よって、ＯＳに詳しい管理者やルールセット作成者が存在しなくても、書き込み禁止項目に関するディスクマップを生成することができる。
【００６９】
実施の形態３．
次に、本発明の第３の実施の形態（実施の形態３）を図面を参照して説明する。図１８は、第３の実施の形態のサーバ１００Ｃおよびクライアント１１０Ｃの構成を示すブロック図である。図１８に示すように、サーバ１００Ｃが削除指示手段１０８を備え、クライアント１１０Ｃがイメージ削除手段１１６を備えている点で、第１の実施の形態におけるサーバ１００とは異なっている。なお、第１の実施の形態と同じ構成要素については、同一の符号を付し、詳細な説明を省略する。また、図１２に示された第２の実施の形態におけるサーバ１００Ｂに削除指示手段１０８を設け、そのようなサーバとクライアント１１０Ｃとが共動する仮想マシン運用システムとしてもよい。
【００７０】
図１９は、第３の実施の形態における仮想マシンイメージ削除の動作を示すシーケンス図である。仮想マシンイメージ削除以外の動作については、第１の実施の形態と同じである。
【００７１】
管理者が管理ＵＩ１０９を操作し、仮想マシンイメージの削除を指示する（ステップＦ１）。削除の対象として、仮想マシンイメージに含まれる複数のディスクイメージ全てを指定してもよいし、特定のディスクイメージ、例えばユーザデータディスクイメージのみを指定してもよい。仮想マシンイメージの削除が指示されると、削除指示手段１０８は、削除対象を示すメッセージをクライアント１１０Ｃに送信する（ステップＦ２）。クライアント１１０Ｃにおいて、イメージ削除手段１１６は、メッセージに応じて、削除対象の領域のデータを選択して削除する（ステップＦ３）。削除が完了すると、イメージ削除手段１１６は、サーバ１００Ｃの削除指示手段１０８に削除結果のメッセージを送信する（ステップＦ４）。このメッセージには、削除失敗または削除成功の情報が含まれている。削除指示手段１０８は、管理ＵＩ１０９に削除結果を渡す（ステップＦ５）。管理ＵＩ１０９は結果の表示を行う（ステップＦ６）。なお、ステップＦ７の処理において、削除指示手段１０８は、削除のイベントが記録されたログを生成してもよい。
【００７２】
本実施の形態では、不要な仮想マシンイメージがクライアント１１０Ｃから削除されるので、物理ディスクを効率的に使用することができる。また、機密情報が記録されているユーザデータディスクイメージの削除を管理者が確認できるので、クライアント１１０Ｃが紛失された場合でも、情報漏洩事故ではないことを保証することができる。
【００７３】
次に、本発明の第４の実施の形態を図面を参照して説明する。図２０は、第４の実施の形態におけるサーバ１００Ｄを示すブロック図である。図２０に示すように、サーバ１００Ｄは、仮想マシン部品生成手段１０１０を備えている点で、第１の実施の形態におけるサーバ１００とは異なっている。第１の実施の形態と同様の構成要素については、同一の符号を付し、詳細な説明を省略する。なお、クライアントは、第１の実施の形態におけるクライアント１１０と同じものである。また、図１２に示された第２の実施の形態におけるサーバ１００Ｂや図１８に示された第３の実施の形態におけるサーバ１００Ｃに仮想マシン部品生成手段１０１０を設けてもよい。
【００７４】
本実施の形態では、適当な仮想マシンイメージが仮想マシン部品格納手段１０１に存在しない場合には、管理者は、仮想マシン部品生成手段１０１０を用いてＯＳディスクイメージやプロビジョニングディスクイメージやユーザデータディスクイメージ生成する。
【００７５】
次に、本実施の形態の動作を説明する。ＯＳディスクイメージを生成する場合には、まず、仮想マシン部品生成手段１０１０は、管理者の操作に応じて、仮想デバイスの設定が書かれている仮想デバイス設定ファイルを生成する。次に、仮想マシン部品生成手段１０１０が、仮想デバイス設定ファイルを基に仮想マシンを生成し実行する。最後に、ＯＳインストールＣＤ−ＲＯＭなどを用いてＯＳをインストールする。
【００７６】
プロビジョニングディスクイメージを生成する場合には、仮想マシン部品生成手段１０１０が、上記のように生成されたＯＳディスクイメージと仮想デバイス設定ファイルとを読み込み、仮想マシンを実行する。次に、仮想マシン上のＯＳを操作し、通信ネットワークや記憶媒体経由でセキュリティミドルウェアをインストールする。
【００７７】
ユーザデータディスクイメージを作成する場合は、空のパーティションを作成し、フォーマッティングを行えばよい。
【００７８】
本実施の形態では、仮想マシン部品格納手段１０１に、管理者の望むＯＳディスクイメージや、プロビジョニングディスクイメージや、ユーザデータディスクイメージが存在していなくても、新たにディスクイメージを生成することによって、仮想マシンイメージ生成手段１０２において管理者の望む仮想マシンイメージを生成できる。
【００７９】
なお、プロビジョニングディスクイメージ生成の動作では、ＯＳディスクイメージを読み込み、新たなプロビジョニングディスクイメージを生成したが、既に生成されているプロビジョニングディスクイメージをコピーし、そのコピーにセキュリティミドルウェアをインストールして、新たなプロビジョニングディスクイメージを生成してもよい。そのように動作する場合には、既に生成されていたプロビジョニングディスクイメージにインストールされていないセキュリティミドルウェアのみインストールすればよい。
【００８０】
次に、本発明の第５の実施の形態を図面を参照して説明する。図２１は、第５の実施の形態の仮想マシン運用システムを示すブロック図である。図２１に示すように、本実施の形態では、仮想マシン実行サーバ１２０が、入出力監視手段１１２、仮想マシンイメージ実行手段１１１、仮想マシンイメージ格納手段１１３、ユーザデータ送信手段１１４、仮想マシンイメージ受信手段１１５を備えている点と、クライアント１１０Ｅが、仮想マシン遠隔操作手段１１７を備えている点で、第１の実施の形態とは異なっている。なお、入出力監視手段１１２、仮想マシンイメージ実行手段１１１、仮想マシンイメージ格納手段１１３、ユーザデータ送信手段１１４および仮想マシンイメージ受信手段１１５の構成は、第１の実施の形態においてクライアント１１０が有していたそれらの構成と同じである。また、サーバ１００に代えて、図１２に示された第２の実施の形態におけるサーバ１００Ｂ、図１８に示された第３の実施の形態におけるサーバ１００Ｃ、または図２０に示された第４の実施の形態におけるサーバ１００を用いてもよい。
【００８１】
サーバ１００の構成は、第１の実施の形態における構成と同様である。クライアント１１０Ｅにおいて、仮想マシン遠隔操作手段１１７は、仮想マシンの画面を表示するためのディスプレイ（図示せず）と、ユーザからの入力を受け付ける入力機器（図示せず）とに接続されている。また、仮想マシン実行サーバ１２０とクライアント１１０Ｅは、インターネットなどの通信ネットワークを介してデータを送受信する。
【００８２】
本実施の形態では、仮想マシンは、仮想マシン実行サーバ１２０内の仮想マシンイメージ実行手段１１１で実行される。仮想マシン遠隔操作手段１１７は、クライアント１１０Ｅ内で動作し、仮想マシンイメージ実行手段１１１と通信を行う。仮想マシンの画面は、仮想マシンイメージ実行手段１１１からクライアント１１０Ｅの仮想マシン遠隔操作手段１１７に転送され、クライアント１１０Ｅのディスプレイに表示される。クライアント１１０Ｅの入力機器による入力は、仮想マシン遠隔操作手段１１７から仮想マシンイメージ実行手段１１１に転送される。
【００８３】
本実施の形態では、第１〜第４の実施の形態の場合と同様に、仮想マシンイメージ生成手段１０２が仮想マシンイメージの生成を行い、ディスクマップ生成手段１０２がディスクマップの生成を行う。仮想マシンイメージの配付についても、仮想マシンイメージ受信手段１１５と仮想マシンイメージ格納手段１１３の動作する場所が、クライアント１１０から仮想マシン実行サーバ１２０へ移るだけであり、第１〜第４の実施の形態と同様であるため、説明を省略する。ユーザデータの回収についても、第１〜第４の実施の形態と同様であるため、説明を省略する。
【００８４】
次に、仮想マシンの実行について説明する。第１〜第４の実施の形態と比較すると、入出力監視手段１１２と仮想マシンイメージ格納手段１１３とが動作する場所が、クライアント１１０，１１０Ｃから仮想マシン実行サーバ１２０に移るだけであり、それらの動作は第１〜第４の実施の形態における動作と同じである。
【００８５】
本実施の形態では、仮想マシンイメージ実行手段１１１は、第１〜第４の実施の形態における動作に加えて、仮想マシン遠隔操作手段１１７との通信を行う。すなわち、仮想マシンイメージ実行手段１１１で実行されている仮想マシンの画面が仮想マシン遠隔操作手段１１７に転送され、クライアント１１０Ｅのディスプレイに表示される。また、クライアント１１０Ｅの入力機器による入力は、仮想マシン遠隔操作手段１１７を通じて、仮想マシンイメージ実行手段１１１に転送される。ユーザは、仮想マシン実行サーバ１２０内の仮想マシンイメージ実行手段１１１で実行されている仮想マシンを、クライアント１１０Ｅの入力機器を操作することによって遠隔操作することができる。
【００８６】
本実施の形態では、仮想マシン実行サーバ１２０内で仮想マシンを実行し、クライアント１１０Ｅに画面のみを転送するというシンクライアントシステムにおいて、仮想マシン実行サーバ１２０内で動作する仮想マシンのＯＳやセキュリティミドルウェアを保護することができるという効果がある。
【００８７】
なお、本実施の形態では、サーバ１００と仮想マシン実行サーバ１２０とを分けた構成を示したが、サーバ１００と仮想マシン実行サーバ１２０とを分割せず、それらを一つのサーバで実現してもよい。
【００８８】
実施の形態６．
次に、本発明の第６の実施の形態を図面を参照して説明する。図２３は、第６の実施の形態の仮想マシン運用システムを示すブロック図である。図２３に示すように、本実施の形態では、サーバ１００Ｇが、ユーザ認証手段１０１１とユーザ管理手段１０１２とを備え、クライアント１１０Ｆが、ユーザログイン手段１１８を備えている点で、第１の実施の形態とは異なっている。
【００８９】
なお、サーバ１００Ｆに代えて、図１２に示された第２の実施の形態におけるサーバ１００Ｂ、図１８に示された第３の実施の形態におけるサーバ１００Ｃ、または図２０に示された第４の実施の形態におけるサーバ１００Ｄにユーザ認証手段１０１１とユーザ管理手段１０１２とを設けてもよい。また、第３の実施の形態におけるクライアント１１０Ｃに、ユーザログイン手段１１８を設けてもよい。
【００９０】
ユーザログイン手段１１８は、ユーザから、ユーザを認証するための認証情報を受け取り、サーバ１００Ｆのユーザ認証手段に送信する。認証情報とは、ユーザＩＤとユーザだけが持つ秘密情報である。ユーザ認証手段１０１１は、ユーザログイン手段１１８との通信と、ユーザ管理手段１０１２への認証情報の正当性の問い合わせと、仮想マシンイメージ生成手段１０２への仮想マシン生成の指示とを行う。ユーザ管理手段１０１２は、ユーザと認証情報とを記憶するデータベースを持ち、ユーザ認証手段１０１１から受け取った認証情報が正しいかどうか判断し、結果をユーザ認証手段１０１１に渡す。
【００９１】
次に、本実施の形態の動作を説明する。第１〜第５の実施の形態では、管理者が管理ＵＩ１０９を操作することによって、仮想マシンの生成の指示と配付の指示とを行っていた。第６の実施の形態では、ユーザがユーザログイン手段１１８を用いて認証を行うことをトリガーとして、管理者の指示なしに仮想マシンが配付される。ユーザデータ回収に関しても、ユーザログイン手段１１８が仮想マシンの終了を検知し、ユーザデータ送信手段１１４にユーザデータ送信の指示を発行することによって、管理者の指示なしで行う。また、仮想マシンイメージ生成手段１０２は、クライアント１１０Ｆにログインしたユーザに応じて、配布する仮想マシンイメージを変える。また、仮想マシンイメージ生成の動作は、ユーザが最初にログインしたときと、２回目以降のログインのときとで異なる。
【００９２】
まず、初回ログインの動作を図２３のシーケンス図を用いて説明する。ユーザは、ユーザログイン手段１１８に、認証情報を入力する（ステップＨ１）。認証情報は、ユーザ認証手段１０１１に渡される。ユーザ認証手段１０１１は、ユーザ管理手段１０１２に認証情報を渡し、認証情報が正しいか否か問い合わせを行う（ステップＨ２）。ユーザ管理手段１０１２は、データベースに記録されている認証情報を読み込む（ステップＨ３）。ユーザ管理手段１０１２は、ユーザ認証手段１０１１から受け取った認証情報と、データベースから読み込んだ認証情報とが一致するか否かを確認することによって、ユーザ認証手段１０１１から受け取った認証情報が正しいかどうかを確認し、結果をユーザ認証手段１０１１に通知する（ステップＨ４）。
【００９３】
ユーザ認証手段１０１１は、認証情報が正しいという結果（認証成功）を受け取った場合、仮想マシン生成の指示を仮想マシンイメージ生成手段１０２に発行する（ステップＨ５）。仮想マシンイメージ生成手段１０２は、ディスクイメージ組み合わせマップを持ち、ディスクイメージ組み合わせマップを用いて、ユーザ毎に仮想マシンイメージを生成する（ステップＨ６）。
【００９４】
ディスクイメージ組み合わせマップには、ユーザＩＤ、ＯＳディスクイメージ名、プロビジョニングディスクイメージ名、ユーザディスクイメージ名が書かれている。つまり、あるユーザＩＤに対して、どのディスクイメージを組み合わせて仮想マシンイメージを生成すればよいかが記録されている。ディスクイメージ組み合わせマップは、管理ＵＩ１０９を用いて管理者があらかじめ生成しておく。仮想マシンイメージには、どのユーザのための仮想マシンイメージか分かるように、ユーザＩＤの情報が埋め込まれる。
【００９５】
なお、図２３には記載されていないが、ステップＨ４において、ユーザ管理手段１０１２が、認証情報が正しくないという結果を送信した場合には、ユーザ認証手段１０１１は、ユーザログイン手段１１８に認証失敗を通知し、ステップＨ１の処理からやり直す。
【００９６】
仮想マシンイメージの配付については、第１〜第５の実施の形態の場合と同様であり、説明を省略する。
【００９７】
次に、ユーザデータの回収について説明する。仮想マシンの実行時に、ユーザログイン手段１１８は、仮想マシンイメージ実行手段１１１を監視する。ユーザログイン手段１１８は、仮想マシンの実行の終了を検知すると、ユーザデータ送信手段１１４に、仮想マシンイメージ格納手段１１３に格納されているディスクマップにもとづいてユーザデータ回収対象のデータの指示を発行する。
【００９８】
次に、２回目以降のログイン時の仮想マシンイメージ生成の動作を説明する。２回目以降のログイン時の仮想マシンイメージ生成の動作は、初回ログイン時の仮想マシンイメージ生成の動作とほぼ同じであるが、仮想マシンイメージ生成手段１０２は、ユーザデータディスクイメージを、仮想マシン部品格納手段１０１からではなく、ユーザデータ格納手段１０５から読み込んで仮想マシンイメージを生成する点が異なる。ユーザデータ格納手段１０５にユーザディスクイメージの一部しか格納されていない場合には、仮想マシン部品格納手段１０１に格納されているユーザディスクイメージから、不足部分を補う。
【００９９】
本実施の形態では、管理者の指示なしに、ユーザのログインをトリガーとして、ログインしたユーザに応じて異なる仮想マシンイメージの生成を行うことができる。また、管理者の指示なしに、ユーザのログインをトリガーとして、仮想マシンイメージの配付とユーザデータの回収とを行うことができる。また、クライアント１１０Ｆが故障したり、盗難にあったりしても、サーバ１００Ｆにユーザデータが記録されているので、データ損失を防ぐことができる。さらに、２回目以降のログインでは、ユーザデータディスクイメージが、ユーザデータ格納手段１０５から読み込まれるため、前回ログインしていたクライアントとは異なるクライアントでも、前回のログイン時の作業を継続できる。
【０１００】
なお、第６の実施の形態では、ユーザのログイン時にユーザに応じて仮想マシンイメージを生成したが、あらかじめ管理者が管理ＵＩ１０９を用いて、仮想マシンイメージを生成しておき、仮想マシンイメージ配付手段１０３がクライアント１１０にログインしているユーザに応じて仮想マシンイメージを配付してもよい。その場合には、例えば、管理者があらかじめ、UserＡ用に、ＯＳディスクイメージＡ、プロビジョニングディスクイメージＢ、ユーザディスクイメージＣを組み合わせて仮想マシンイメージを作成しておく。同様にUserＢ用に、ＯＳディスクイメージＤ、プロビジョニングディスクイメージＥ、ユーザディスクイメージＦを組み合わせて仮想マシンイメージを作成しておく。ユーザログイン手段１１８から、UserＡがログインしてきたときは、ユーザ認証手段１０１１が、仮想マシンイメージ配付手段１０３に、あらかじめ作成しておいたUserＡ用の仮想マシンイメージの配付を指示する。
【０１０１】
また、第６の実施の形態では、ユーザログイン手段１１８がユーザデータ送信手段１１４にユーザデータ回収対象のデータの指示を行ったが、クライアント１１０Ｆが、第３の実施の形態のように、イメージ削除手段１１６を備えている場合には、ユーザログイン手段１１８は、イメージ削除手段１１６に削除の指示をしてもよい。そのように構成した場合には、ユーザがログインしていないときには、クライアント１１０Ｆにユーザデータは記録されていないので、クライアント１１０Ｆが盗難にあっても、情報漏えいが起こらないという効果がある。
【０１０２】
また、第６の実施の形態では、認証情報は、ユーザＩＤとユーザが持つ秘密情報であるとしたが、認証情報にグループＩＤを加え、ユーザＩＤとグループＩＤの組とユーザがもつ秘密情報とで認証を行ってもよい。そのように構成した場合には、ユーザ管理手段１０１２のデータベースには、ユーザＩＤとユーザが持つ秘密情報に加えて、ユーザがどのグループに所属するかという情報が記録される。例えば、UserＡが、グループＸとグループＹに所属している場合、"ユーザＩＤ：UserＡ、秘密情報：XXXX、所属グループＩＤ：グループＸ／グループＹ"のような形式をとる。
【０１０３】
また、そのように構成した場合には、仮想マシンイメージの生成は、ユーザＩＤとグループＩＤの組に応じて行われる。例えば、UserＡがグループＸとグループＹとに所属している場合に、UserＡがログイン時の入力でグループＩＤをＸとしたときには、グループＸ用の仮想マシンイメージが配付され、グループＩＤをＹとしたときには、グループＹ用の仮想マシンイメージが配付される。よって、一人のユーザが、複数の仮想マシンイメージの配付を受けることができる。つまり、ユーザが用途によってグループＩＤを使い分けることによって、複数の仮想マシン環境を使用できるという効果がある。
【０１０４】
さらに、仮想マシンイメージの生成を、ユーザＩＤを考慮せず、グループＩＤのみに応じて行ってもよい。この場合、特定のグループには特定の仮想マシンイメージを配付するといった、グループ単位の仮想マシンイメージの生成制御を行えるという効果がある。
【０１０５】
また、第６の実施の形態では、仮想マシンの実行が終了したときに、自動的にユーザデータの回収が行われたが、管理者が管理ＵＩ１０９を用いて、ユーザ管理手段１０１２のデータベースに記録されているユーザＩＤやグループＩＤを選択することによって、特定のユーザＩＤや特定のグループＩＤのユーザデータを回収してもよい。
【０１０６】
その場合には、管理者が管理ＵＩ１０９を用いてユーザ管理手段１０１２のデータベースに記録されているユーザＩＤもしくはグループＩＤ、またはユーザＩＤとグループＩＤの組み合わせを選択すると、ユーザ管理手段１０１２は、ユーザデータ受信手段１０４に、選択されたユーザＩＤもしくはグループＩＤ、またはユーザＩＤとグループＩＤの組み合わせを伝える。ユーザデータ受信手段１０４は、すべてのクライアントのユーザデータ送信手段１１４に、選択されたユーザＩＤもしくはグループＩＤ、またはユーザＩＤとグループＩＤの組み合わせに対応するユーザデータ回収指示を行う。ユーザデータ送信手段１１４は、仮想マシンイメージ格納手段１１３に、該当するユーザＩＤもしくはグループＩＤ、またはユーザＩＤとグループＩＤの組み合わせの仮想マシンイメージが格納されていた場合、ユーザデータを送信する。このように構成されている場合には、ユーザやグループの削除といったユーザ管理に応じて、ユーザデータを回収できる効果がある。
【０１０７】
なお、ユーザデータの回収の場合と同様に、管理者が管理ＵＩ１０９を用いて、ユーザ管理手段１０１２のデータベースに記録されているユーザＩＤやグループＩＤを選択することによって、特定のユーザＩＤや特定のグループＩＤの仮想マシンイメージの削除を行ってもよい。
【０１０８】
また、ユーザデータ回収や仮想マシンイメージ削除の動作において、ユーザ管理手段１０１２が、ユーザデータ受信手段１０４に、選択されたユーザＩＤもしくはグループＩＤ、またはユーザＩＤとグループＩＤの組み合わせを伝えると同時に、ユーザ管理手段１０１２は、データベースから、選択されたユーザＩＤもしくはグループＩＤ、またはユーザＩＤとグループＩＤを削除してもよい。
【０１０９】
また、サーバ１００Ｆが、第３の実施の形態のように、削除指示手段１０８を備え、クライアント１１０がイメージ削除手段１１６を備えている場合は、ユーザ管理手段１０１２が削除指示手段１０８に、削除対象のユーザＩＤやグループＩＤを伝え、削除指示手段１０８が全てのクライアントのイメージ削除手段１１６に、選択されたユーザＩＤまたはグループＩＤの仮想マシンイメージを削除するように指示を行うようにしてもよい。その場合、イメージ削除手段１１６は、仮想マシンイメージ格納手段１１３に、該当するユーザＩＤまたはグループＩＤの仮想マシンイメージが格納されていた場合に、該当する仮想マシンイメージを削除する。仮想マシンイメージ全てではなく、ユーザデータディスクイメージのみを削除してもよい。
【０１１０】
実施例１
次に、具体的な実施例を説明する。まず、第１の実施の形態の実施例を説明する。
【０１１１】
図１に示されたサーバ１００は、例えば、マウス、キーボード、ディスプレイのような入出力インタフェースを備え、ハードディスクを備える一般的なコンピュータである。クライアント１１０は、例えばデスクトップ型パーソナルコンピュータやノートブック型パーソナルコンピュータである。
【０１１２】
仮想マシンイメージ部品格納手段１０１は、ＯＳをインストールしたＯＳディスクイメージと、アプリケーションやセキュリティミドルウェアをインストールしたプロビジョニングディスクイメージと、ユーザデータを記録するユーザデータディスクイメージを格納する。ＯＳディスクイメージには、例えばＷｉｎｄｏｗｓ  ＸＰ（登録商標）やＬｉｎｕｘ（登録商標）がインストールされている。プロビジョニングディスクイメージには、例えば、セキュリティミドルウェアとしてのアンチウィルスソフトウェアやアプリケーションとしてのワードプロセッサソフトウェアがインストールされている。
【０１１３】
ＯＳ、セキュリティミドルウェア、ユーザデータを記録する領域の分離方法は、例えば、図２４に示すように、３つの独立したディスクを使用して分離する。または、図２５に示すように、２つの独立したディスクとその差分として分離してもよい。
【０１１４】
仮想マシンイメージ配付手段１０３は、クライアント１１０の仮想マシンイメージ受信手段１１５からの要求に応じて仮想マシンイメージを通信ネットワークを介して配付する。配付の際の通信方式は例えばＴＣＰ／ＩＰであり、なりすまし防止や盗聴防止や改竄検知のために、ＩＰＳｅｃやＳＳＬなどの暗号化プロトコルを組み込んでもよい。
【０１１５】
仮想マシンイメージ格納手段１１３は、例えばハードディスクへの読み書きインタフェースであり、ハードディスクは仮想マシンイメージを格納するのに十分な記憶容量を持つ。
【０１１６】
仮想マシンイメージ実行手段１１１は、仮想マシンイメージに含まれる仮想デバイス設定ファイルを読み取り、それに従って、例えば、仮想ＣＰＵ、仮想ＮＩＣ、仮想ＣＤＲＯＭなどの仮想デバイスを生成し、さらに、仮想マシンイメージに含まれているディスクイメージの内容から仮想ディスクを生成する。
【０１１７】
入出力監視手段１１２は、仮想マシンイメージ実行手段１１１による入出力を監視するモジュールであり、ディスクマップで書き込みが禁止されているセクタへの書き込みが発生した場合に、その書き込みをブロックする。
【０１１８】
ユーザデータ送信手段１１４は、ユーザデータディスクイメージとしてどの物理マシンが使用されていたのかを示す署名を生成する。署名の生成には、例えば、ＴＰＭを用いる。さらに、ユーザデータディスクイメージと署名とを、通信ネットワークを介してユーザデータ受信手段に送信する。通信方式は例えばＴＣＰ／ＩＰであり、なりすまし防止や盗聴防止や改竄検知のために、ＩＰＳｅｃやＳＳＬなどの暗号化プロトコルを組み込んでもよい。
【０１１９】
ユーザデータ受信手段１０４はユーザデータの受信と署名の妥当性チェックを行うモジュールである。例えば、クライアントの署名に対する公開鍵を用いて署名の妥当性をチェックする。
【０１２０】
ユーザデータ格手段は１０５は、ユーザデータを格納する記憶媒体とそのインタフェースであり、記憶媒体は、例えば、ハードディスクである。
【０１２１】
管理ＵＩ１０９は、管理者と各手段のインタフェースであり、ＧＵＩやＣＵＩを通して、各手段への命令発行とメッセージ受信とを行うことができるプログラムである。管理ＵＩ１０９は、ＯＳ上で動作するプログラムでもよいし、ブラウザ上で動作するプログラムでもよい。
【０１２２】
管理者は、最初に、仮想マシンのデバイスの設定が記録されている仮想デバイス設定ファイルと、ＯＳがインストールされたＯＳディスクイメージとを選択する。仮想デバイス設定ファイルには、例えば、"メモリ量は５００Ｍバイト、ネットワークカードが１枚、ＵＳＢをサポート"などの情報が記録されている。ＯＳディスクイメージは、ＯＳがインストールされているだけであり、アプリケーションがインストールされていないため、そのままでは業務に使用することができない。
【０１２３】
次に、管理者は、プロビジョニングディスクイメージを選択する。プロビジョニングディスクイメージにはアプリケーションやセキュリティミドルウェアがインストールされている。ＯＳディスクイメージとプロビジョニングディスクイメージとを組み合わせることによって、ＯＳと、アプリケーションやセキュリティミドルウェアとが揃う。さらに、ユーザが作成したデータを記録するユーザデータディスクイメージを組み合わせることによって、業務のできる仮想マシンイメージが完成する。例えば、Ｗｉｎｄｏｗｓ  ＸＰ（登録商標）のＯＳディスクイメージと、Ｊａｖａ（登録商標）開発環境のＥｃｌｉｐｓｅのプロビジョニングディスクイメージを組み合わせることにより、簡単にＪａｖａ（登録商標）を開発する仮想マシンイメージを生成することができる。
【０１２４】
仮想ディスクの構成を、例えば、図２４に示すように、ディスク１Ａ、ディスク１Ｂ、ディスク１Ｃと３つにし、ディスク１ＡにＯＳディスクイメージ、ディスク１Ｂにプロビジョニングディスクイメージ、ディスク１Ｃにユーザデータディスクイメージを割り当てておいて、仮想ディスクを生成し、ユーザデータが記録される領域をユーザデータディスクイメージに割り当てる。例えば、Ｌｉｎｕｘ（登録商標）では、/home や/root などがユーザデータディスクイメージに割り当てられる。または、図２５に示すように、ディスク２ＡにＯＳを割り当て、２Ａとの差分を記録する差分ディスクを設けるというディスク構成にしてもよい。
【０１２５】
ディスクマップ生成手段１０６は、仮想マシンイメージ中のディスクイメージの解釈を行う。すなわち、ディスクマップ生成手段１０６は、ディスク／パーティション／ディレクトリ／ファイルの情報をディスクイメージから取り出し、それらの情報を、管理ＵＩ１０９に出力する。管理ＵＩ１０９は、それらの情報を表示部に表示する。管理者は、管理ＵＩ１０９を用いて、保護したいパーティションやファイル等を指定する。表示部の画面の例として、例えば、図２７に示すように、ディスク／パーティション／ディレクトリ／ファイルの一覧を表示する。管理者は、表示をクリックして保護する対象を指定する。図２７に示す例では、ディスク＃１のファイル２、ディレクトリβ、パーティションＢおよびディスク＃２が保護したい対象として指定されている。ディスクマップ生成手段１０６は、ディスクイメージを解釈することによって、指定されたパーティションやファイル等がどのセクタに記録されているかを把握し、把握したセクタをディスクマップに書き込む。このように、指定されたパーティションやファイル等がどのセクタに記録されているかをディスクイメージの解釈結果をもとにマッピングすることによってディスクマップの書き込み禁止の項目を生成する。例えば、管理者がディスクＡのファイル１を書き込み禁止に指定した場合、そのファイルが記録されているセクタが１２３４５〜１３０００であれば、ディスクマップ生成手段１０６は、図５に示された書き込み禁止の項目のように、１２３４５〜１３０００のセクタを書き込み禁止の項目に追加する。
【０１２６】
同様にして、ディスクマップ生成手段１０６は、ユーザデータ回収の項目をマッピングする場合には、ディスクやパーティションがどのセクタに記録されているかを把握し、把握したセクタをディスクマップに書き込む。
【０１２７】
仮想マシンイメージ配付手段１０３は、クライアントの仮想マシンイメージ受信手段１１５からの要求を待ち、要求があった場合には、通信ネットワークを介して仮想マシンイメージとディスクマップとを配付する。または、仮想マシンイメージ配付手段１０３が仮想マシン受信手段１１５に対して送信要求を出して、仮想マシンイメージを配付してもよい。仮想マシンイメージ受信手段１１５は、仮想マシンイメージを受け取るときに、仮想マシンイメージ格納手段１１３をチェックし、配付されようとしている仮想マシンイメージのＯＳディスクイメージとプロビジョニングディスクイメージとが既に仮想マシンイメージ格納手段１１３に存在するかどうかチェックする。存在する場合には、仮想マシンイメージ配付手段１０３に、その旨を通知する。仮想マシンイメージ配付手段１０３は、クライアントに存在しない種類のディスクイメージのみを配付する。
【０１２８】
仮想マシンイメージを配付した後に、同様の動作でＯＳディスクイメージとプロビジョニングディスクイメージのみを再度配付することによって、管理者は、ＯＳやセキュリティミドルウェア、その設定などのアップデートを行ってもよい。配付するディスクイメージは独立したディスクイメージでもよいし、配付済みのディスクイメージに対する差分ディスクイメージでもよい。例えば、管理者がセキュリティアミドルウェアの設定を変更したい場合には、プロビジョニングディスクイメージの中の当該設定ファイルを書き換え、プロビジョニングディスクイメージをクライアント１１０に配付する。クライアント１１０における仮想マシンイメージ格納手段１１３は、配付されたプロビジョニングディスクイメージを、格納されているプロビジョニングディスクイメージを上書きすることによって変更を行う。差分ディスクイメージとして配付する場合には、クライアント１１０において、配付された差分ディスクイメージは仮想マシンイメージ格納手段１１３に保存される。そして、仮想マシン実行時に仮想マシンイメージ実行手段１１１が二つのディスクイメージを組み合わせて使用する。
【０１２９】
仮想マシンイメージ実行手段１１１は、仮想ディスク、仮想ＣＰＵ、仮想ＮＩＣなどを生成し、仮想マシンを実行する。仮想マシンイメージ実行手段１１１は例えば、ＸｅｎやＶＭＷａｒｅ（登録商標）である。
【０１３０】
入出力監視手段１１２は、ディスクマップに記載されているＯＳディスクイメージおよびプロビジョニングディスクイメージのセクタが上書きされることがないように監視し、ＯＳやセキュリティミドルウェアが改竄されないことを保証する。例えば、仮想ディスクへの書き込みは、読み書きの種類とセクタ情報を基に行われるので、入出力監視手段１１２は、これをフックし、監視すればよい。フックした読み書き命令をディスクマップと照らし合わせ、命令を破棄するかどうかを決定する。命令が破棄された場合、入出力監視手段１１２は、通信ネットワークを介して、サーバ１００の管理ＵＩ１０９に、ブロックが行われたことを通知してもよい。管理者は、管理ＵＩ１０９における書き込みがブロックされたという通知を見ることによって、不正な動作をしようとしているユーザがいるかどうかを確認することができる。
【０１３１】
ユーザデータのバックアップを行ったり、プロジェクト終了によるユーザデータ回収のときには、ユーザデータ送信手段１１４が、ユーザデータディスクイメージのみをサーバ１００に送り返す。ユーザデータ送信手段１１４は、ディスクマップの回収の項目を参照することによって、仮想ディスクのどの領域を回収すればよいか判断する。例えば、ユーザデータディスクイメージＣと書かれていれば、そのディスクイメージを送信する。
【０１３２】
ユーザデータ送信手段１１４は、ユーザデータを送信する前に、ユーザデータに対する署名を生成する。例えば、ＴＰＭを用いる方式であれば、ＴＰＭの署名機能を用いて署名を生成する。署名を生成する秘密鍵はＴＰＭから取り出すことのできないキーを使用する。この署名は、ユーザデータが確かにＴＰＭの付いている物理マシンで使用されていたことを保証する。
【０１３３】
ユーザデータ受信手段１０４は、ユーザデータを受け取ると、署名のチェックを行う。例えば、ＴＰＭを用いる方式であれば、あらかじめ取り出しておいたＴＰＭの公開鍵によって署名の妥当性をチェックする。妥当であった場合は、ユーザデータ格納手段１０５にファイルを渡す。妥当でなかった場合は、管理ＵＩ１０９に警告を表示させる。
【０１３４】
ユーザデータ格納手段１０５は、物理マシンとデータとが対応付けられるように記録する。例えば、日時、物理マシン名、ユーザデータ名を記録しておけば、管理者がユーザデータを確認したいときに、ユーザデータ格納手段１０５は、すぐにユーザデータを提供することができる。
【０１３５】
ユーザデータ格納手段１０５がユーザデータ受信手段１０４から渡されたユーザデータの形式が独立したディスク形式であって、単一のパーティションで構成されている場合には、例えば、Ｌｉｎｕｘ（登録商標）であればループバックデバイスにマウントすることによって、ファイルとしてユーザデータを取り出してもよい。例えば、Ｌｉｎｕｘ（登録商標）であれば、以下のようなコマンドを発行することで、"ｕｓｅｒｄｉｓｋ．ｉｍｇ"というディスクイメージをマウント可能である。
【０１３６】
"ｍｏｕｎｔ  ｕｓｅｒｄｉｓｋ．ｉｍｇ  ／ｍｎｔ  −ｏ  ｌｏｏｐ"
【０１３７】
ディスクが複数のパーティションで構成されている場合には、該当パーティション部分を切り出して、コマンドによってマウントすればよい。ユーザデータ受信手段１０４から渡されたユーザデータの形式が差分ディスクイメージの形式である場合は、ユーザデータ格納手段１０５は、仮想マシン部品格納手段１０に保存されている差分元のディスクイメージと組み合わせ、不足部分を補う。不足部分を補った後に、コマンドを用いてマウントすればよい。
【０１３８】
仮想ディスクの構成として、図２４に示されたようにユーザの生成が書き込まれるディスクを独立したディスクにする構成や、図２５に示されたように差分ディスクとして分ける構成を例示したが、図２６に示すように、一つの仮想ディスクを複数のパーティションに分けることによって、ＯＳディスクイメージ、プロビジョニングディスクイメージ、ユーザデータディスクイメージを一つにまとめてもよい。
【０１３９】
このようなディスク構成の場合、ユーザデータ回収の項目をディスクイメージ単位で指定することはできない。そこで、書き込み禁止の項目を生成するのと同様に、パーティションを指定してマップを生成する。例えば、/home パーティションが１００００〜２００００セクタまでの範囲であれば、１００００〜２００００セクタを回収範囲としてマップに記録する。管理者は、例えば、図２８に示すような管理ＵＩ１０９による画面を用いて、回収の項目の指定を行う。
【０１４０】
ユーザデータ回収時には、このマップを参照してユーザデータを回収する。例えば、上記の例では、仮想ディスクの１００００〜２００００セクタのデータを取り出してユーザデータとする。
【０１４１】
実施例２
次に、第２の実施の形態の実施例を説明する。第１の実施例における箇所と同様の箇所については説明を省略する。
【０１４２】
第２の発明例におけるサーバ１００Ｂは、図１２に示されたように、仮想マシンを実行することのできる仮想マシンイメージテスト手段１０７を持つ。
【０１４３】
第１の実施例では、ディスクマップの生成の動作として、管理者が保護するパーティションやファイルを指定する動作を示したが、管理者に知識がない場合は、指定が難しい。そこで、サーバ１００Ｂにおいて仮想マシンイメージテスト手段１０７が仮想マシンを実行し、実行中に読み込まれるセクタを書き込み禁止にする。ＯＳによるディスクの書き込みを許可しないと、ＯＳが動作しない場合があるため、書き込まれたセクタをディスクマップの書き込み禁止の項目から取り除く。Ｌｉｎｕｘ（登録商標）やＷｉｎｄｏｗｓ（登録商標）では、ユーザのログイン画面が表示されるので、この状態では、ユーザのプロセスは動いていない。よって、ブートからログイン画面表示までの入出力からマップを生成すればよい。例えば、管理者は、ＯＳがログイン画面を表示したことを確認し、管理ＵＩ１０９のディスクマップ生成終了ボタンを押すことによって、ディスクマップの生成を終了する。
【０１４４】
このような構成の場合には、起動時に読み込まれなかった領域や、ＯＳが書き込むセクタはディスクマップの書き込み禁止の項目から除外されている。従って、ここにユーザのデータが混入する可能性がある。ユーザのデータの混入を防ぐために、ユーザプロセスの書き込みを特定領域にしか許さないようなセキュリティミドルウェアを導入する。そして、このセキュリティミドルウェアをセキュリティミドルウェア保護機構で保護してもよい。管理ＵＩ１０９を用いて、パーティション単位ではなく、ファイル単位で保護するセキュリティミドルウェアを指定した場合も同様である。
【０１４５】
ＦＡＴなどのファイルシステムでは、ファイルを移動したときにファイル本体は書き換わらず、ＦＡＴテーブルが書き換わる。よって、ファイルを移動し、移動した先のセクタを書き換えることによって、ＯＳやセキュリティミドルウェアの改竄が可能になる。ＯＳやセキュリティミドルウェアのファイルが移動されると、ＯＳはそのファイルを読み込むときに、移動先のセクタを読み込むので、もともとファイルが存在していたセクタは読み込まれない。よって、ＯＳ起動時のファイル読み込みを監視することによって、ファイルが移動されていないかを検知できる。従って、ファイルの移動による改竄に対応するため、書き込み禁止マップ生成時に、読み込み必須マップを同時に生成し、仮想マシン実行時に入出力監視手段１１２が入力を監視し、起動時にセキュリティミドルウェアが読み込まれていることを確認してもよい。
【０１４６】
第１の実施の形態では、ユーザデータをそのまま保存するか、パーティションのファイルシステムを解釈してファイルとしてユーザデータを取り出して保存した。しかし、例えば、仮想マシン上のＯＳが広く普及していないファイルシステムや仕様が公開されていないファイルシステムを使用していた場合には、ファイルシステムの解釈が難しいときがある。
【０１４７】
そのような場合に、ファイルという形でユーザデータを取り出すため、管理者は、配付した仮想マインイメージと、クライアント１１０から送られてきたユーザデータディスクイメージとを組み合わせ、仮想マシンイメージテスト手段１０７で仮想マシンを実行させることによって、クライアント１１０で動作していた仮想マシンを再現できる。クライアント１１０の仮想マシン環境から、任意のファイルを取り出してユーザデータ保存手段１０５へ渡すことによって、ユーザが作成したデータをファイルの形として取り出す。仮想マシンからファイルを取り出す方法として、例えば、ＣＯＭポート通信や仮想ＮＩＣを用いた通信を使う。または、新たな仮想ディスクに対して仮想マシン上のＯＳとサーバ１００ＢのＯＳの両方が解釈できるファイルシステムを用いて書き出だし、サーバ１００ＢのＯＳでそのディスクをマウントしてもよい。
【０１４８】
実施例３
次に、第３の実施の形態の実施例を説明する。第１の実施例における箇所と同様の箇所については説明を省略する。
【０１４９】
図１８に示されたサーバ１００Ｃにおける削除指示手段１０８は、削除の方法と削除対象とを指定し、通信ネットワークを介してクライアント１１０Ｃのイメージ削除手段１１６に命令を発行する。削除指示手段１０８とイメージ削除手段１１６との間のネットワークプロトコルは、例えば、ＴＣＰ／ＩＰであり、なりすまし防止や盗聴防止や改竄検知のために、ＩＰＳｅｃやＳＳＬなどの暗号化プロトコルを組み込んでもよい。
【０１５０】
削除対象として、例えば、全てのイメージを指定したり、ユーザデータディスクイメージのみ指定したりする。削除方法は、単純な削除の動作や、削除した後にランダムなデータを上書きする動作などである。
【０１５１】
イメージ削除手段１１６は、削除指示手段１０８から命令を受け、仮想イメージ格納手段１１３からディスクイメージを削除する。例えば、物理ディスクの空き容量を増やすだけが目的であれば、Ｌｉｎｕｘ（登録商標）ではｒｍコマンドなどを用いてディスクイメージを削除する。ハードディスクの解析による情報漏洩対策のためであれば、ｒｍコマンドを用いてディスクイメージを削除した後、ディスクイメージが記録さえていたセクタに対し、ランダムな値を上書きすることで、ハードディスクの解析を不可能にする。
【０１５２】
イメージの削除の際に、管理者が管理ＵＩ１０９を用いて指示を行う。管理ＵＩ１０９による画面の例を図２９に示す。図２９では、削除の対象として、ユーザデータディスクイメージが指定されている。さらに、削除の際に、削除領域をランダムデータで上書きするように指示されている。
【０１５３】
管理ＵＩ１０９は、管理者が指定した削除対象と削除方法とを削除指示手段１０８に通知する。削除指示手段１０８は、イメージ削除手段１１１６に命令を送信する。イメージ削除手段１０７は、命令に従って、物理ディスク上のディスクイメージの削除を行う。
【０１５４】
イメージ削除手段１０７は、削除の結果を、削除指示手段１０８とイメージ削除手段１０７との間のネットワークプロトコルによって送信する。例えば、削除が成功した場合には"ＳＵＣＣＥＳＳ"を送信し、失敗した場合には"ＦＡＩＬＵＲＥ  ＰＹＳＩＣＡＬ  ＤＩＳＫ  ＥＲＲＯＲ"等の失敗を示すメッセージおよびその理由を送信する。結果の通知を受けた削除指示手段１０８は、管理ＵＩ１０９に結果を伝え、管理ＵＩ１０９が結果を表示する。このとき、削除指示手段１０８が、日時、削除対象ディスクイメージ、クライアント名、削除結果などをログとして記録しておく。このログは、監査に使用できる。
【０１５５】
実施例４
次に、第４の実施の形態の実施例を説明する。第１の実施例における箇所と同様の箇所については説明を省略する。
【０１５６】
ＯＳディスクイメージを新たに生成する場合に、まず、図２０に示されたサーバ１００Ｄにおける仮想マシン部品生成手段１０１０を用いて仮想デバイス設定ファイルを生成する。既にある仮想バイス設定ファイルを使用する場合には、仮想マシン部品生成手段１０１０の動作は不要である。
【０１５７】
次に、仮想マシンイメージ生成手段１０２が仮想デバイス設定ファイルを読み込み、仮想マシンを生成して実行する。ここで、例えば、Ｗｉｎｄｏｗｓ（登録商標）のインストールディスクを仮想ＣＤＲＯＭに割り当てることによって、Ｗｉｎｄｏｗｓ（登録商標）のインストールを行うことができる。
【０１５８】
プロビジョニングディスクイメージを生成する場合には、仮想マシンイメージ生成手段１０２は、仮想デバイス設定ファイルと、上記のように生成したＯＳディスクイメージとを読み込み、仮想マシンを実行する。このときに、新たにプロビジョニングディスクイメージを生成する。プロビジョニングディスクイメージは独立したディスクイメージ、またはＯＳディスクイメージとの差分イメージである。最後に、管理者は、通信ネットワークやＣＤＲＯＭなどを用いてプロビジョニングディスクイメージにセキュリティミドルウェアをインストールする。
【０１５９】
実施例５
次に、第５の実施の形態の実施例を説明する。第１〜第４の実施例における箇所と同様の箇所については説明を省略する。
【０１６０】
本実施例において、クライアント１１０Ｅは、例えば、ディスプレイと、キーボードやマウスなどの入力機器とを備えたシンクライアントである。仮想マシン実行サーバ１２０は、例えば、マウス、キーボード、ディスプレイのようなインタフェースを備え、ハードディスクを備えた一般的なコンピュータである。
【０１６１】
仮想マシンイメージ実行手段１１１と仮想マシン遠隔操作手段１１７との間のネットワークプロトコルは、例えば、ＴＣＰ／ＩＰであり、なりすまし防止や盗聴防止や改竄検知のために、ＩＰＳｅｃやＳＳＬなどの暗号化プロトコルを組み込んでもよい。
【０１６２】
仮想マシン遠隔操作手段１１７は、仮想マシン実行サーバ１２０内の仮想マシンイメージ実行手段１１１の画面イメージを受信し、ディスプレイに表示する。例えば、仮想マシン上で、Ｗｉｎｄｏｗｓ  ＸＰ（登録商標）が動作している場合は、Ｗｉｎｄｏｗｓ  ＸＰ（登録商標）の画面がクライアント１１０Ｅに表示される。クライアント１１０Ｅのマウスやキーボードの入力は、仮想マシン遠隔操作手段１１７を通して、仮想マシン遠隔操作手段１１７に入力され、ユーザは仮想マシンを操作する。例えば、ユーザがクライアント１１０Ｅに接続されているマウスをクリックしたとき、クリックしたという情報が仮想マシン遠隔操作手段１１７を通じて仮想マシンイメージ実行手段１１１に伝えられ、仮想マシン上のＯＳでは、マウスをクリックしたときの動作が実行される。
【０１６３】
実施例６
次に、第６の実施の形態の実施例を説明する。第１〜第５の実施例における箇所と同様の箇所については説明を省略する。
【０１６４】
本実施例において、ユーザログイン手段１１８は、例えば、ユーザＩＤとパスワードを入力するインターフェースをユーザに提供するプログラムで実現される。ユーザログイン手段１１８は、指紋を読み取る装置や、スマートカードを読み取る装置でもよい。認証情報は、例えば、ユーザＩＤとパスワード、指紋の情報、スマートカードの中に記録された秘密鍵である。ユーザ認証手段１０１１は、ユーザログイン手段１１８と通信し、ユーザ管理手段１０１２への認証情報が正しいかどうかの問い合わせと、仮想マシンイメージ生成手段１０２への仮想マシン生成の指示を出すプログラムで実現される。ユーザ管理手段１０１２は、認証情報を保存するデータベースを持ち、ユーザ認証手段１０１１から渡された認証情報が正しいかどうかの判断を行うプログラムで実現される。
【０１６５】
ユーザログイン手段１１８とユーザ認証手段１０１１との間は通信ネットワークで結ばれ、ネットワークプロトコルは、例えば、ＴＣＰ／ＩＰである。なりすまし防止や盗聴防止や改竄検知のために、ＩＰＳｅｃやＳＳＬなどの暗号化プロトコルを組み込んでもよい。
【０１６６】
次に、動作を説明する。クライアント１１０Ｆのユーザは、ユーザログイン手段１１８を用いて、認証情報を入力する。例えば、ユーザＩＤとパスワードとを入力した場合、その情報はユーザ認証手段１０１１に渡される。ユーザ認証手段１０１１は、ユーザ管理手段１０１２に、認証情報を渡し、認証情報が正しいか否か問い合わせを行う。ユーザ管理手段１０１２は、ユーザ認証手段１０１１から渡されたユーザＩＤとパスワードとが、データベースに記録されているユーザＩＤとパスワードと一致するか否か確認することによって認証の可否を判断し、結果をユーザ認証手段１０１１に通知する。結果が認証失敗であった場合には、ユーザ認証手段１０１１は、ユーザログイン手段１１８に認証失敗を通知する。ユーザログイン手段１１８は、再びＩＤとパスワードとの入力画面を表示することで、ユーザにＩＤとパスワードとの再入力を促す。認証成功の場合には、ユーザ認証手段１０１１は、仮想マシンイメージ生成手段１０２に、仮想マシンイメージ生成の指示を発行する。
【０１６７】
指示には、「ユーザＡ用の仮想マシンイメージを作成」のように、ユーザを識別するためのユーザＩＤが入る。仮想マシンイメージ生成手段１０２は、指示を受け取って、仮想マシンイメージを生成する。このとき、どのディスクイメージを組み合わせて仮想マシンイメージを生成するかは、管理者があらかじめ図３０に示すような、ユーザごとのディスクイメージ組み合わせマップを生成して指定しておく。例えば、図３０に示すマップを用いた場合、User２が認証に成功したとき、Ｗｉｎｄｏｗｓ  ＸＰ（登録商標）のＯＳディスクイメージと、アンチウィルスソフトウェアのプロビジョニングディスクイメージと、通常のユーザデータディスクイメージとを組み合わせて、仮想マシンイメージを生成する。
【０１６８】
仮想マシンイメージの配付は、第１〜第５の実施の形態の場合と同様であり、説明を省略する。ユーザログイン手段１１８は、仮想マシンイメージ実行手段１１１を監視し、仮想マシンの終了を検知すると、ユーザデータ送信手段１１４に、ユーザデータ回収の指示を発行する。ユーザデータ回収の動作は、第１〜第５の実施の形態の場合とほぼ同様であるが、ユーザデータ送信手段１１４が作成する署名には、ユーザデータがどのクライアントのものであるかを示すデータに加えて、どのユーザのデータであるかを示すユーザＩＤが含まれる。
【０１６９】
クライアント１１０Ｆがイメージ削除手段１１６を備えている場合には、ユーザログイン手段１１８は、イメージ削除手段１１６に削除の指示を行い、ユーザデータを削除してもよい。削除の動作は、第３の実施例の場合と同様であり、説明を省略する。
【０１７０】
２回目以降のログインでは、仮想マシンイメージ生成手段１０２は、ユーザデータ格納手段１０５から、ログインしたユーザのユーザデータを読み出し、ユーザデータディスクイメージとする。例えば、User１というユーザが、クライアント１１０Ｆにログインしたとき、仮想マシンイメージ生成手段１０２は、User！のユーザデータをユーザデータ格納手段１０５から読み出して、それをユーザデータディスクイメージとして仮想マシンイメージを生成する。ユーザデータ格納手段１０５にユーザデータディスクイメージの一部しか格納されていない場合、例えば、User１のユーザデータディスクイメージは本来１００００セクタあるのに対して、その一部である５０００セクタしかユーザデータ格納手段１０５に格納されていなかった場合には、残りの５０００セクタを仮想マシン部品格納手段１０１に格納されているユーザデータディスクイメージから補って、ユーザデータディスクイメージを作成し、仮想マシンイメージを生成する。
【０１７１】
次に、ユーザＩＤとグループＩＤとの組み合わせで、仮想マシンを生成する例を説明する。ユーザＩＤのみに応じて仮想マシンを生成する場合と同じ動作の箇所については、説明を省略する。
【０１７２】
ユーザは、ユーザログイン手段１１８に、ユーザＩＤとパスワードとに加えて、グループＩＤを入力する。入力された情報はユーザ認証手段１０１１経由でユーザ管理手段１０１２に渡り、ユーザ管理手段１０１２は、ユーザＩＤとパスワードとが正しいか否かの確認に加えて、ユーザがユーザログイン手段１１８に入力したグループに所属しているか否かの確認も行う。ユーザがグループに所属していない場合には、認証失敗をユーザ認証手段１０１１に通知する。
【０１７３】
ディスクイメージ組み合わせマップには、ユーザＩＤ、ＯＳディスクイメージ、プロビジョニングディスクイメージ、およびユーザデータディスクイメージに加えて、グループＩＤが加わる。例えば、User２のグループＸの仮想マシンイメージの組み合わせは、"User２，グループＸ，Ｗｉｎｄｏｗｓ  ＸＰ（登録商標）のＯＳディスクイメージ、アンチウィルスソフトウェアのプロビジョニングディスクイメージ、常のユーザデータディスクイメージ"のように記述される。
【０１７４】
ユーザ認証手段１０１１は、仮想マシンイメージ生成手段１０２に、仮想マシンイメージ生成の指示を発行する。指示には、「ユーザ２のグループＸ用の仮想マシンイメージを作成」のように、ユーザを識別するためのユーザＩＤとグループを識別するためのグループＩＤとが入る。仮想マシンイメージ生成手段１０２は、ディスクイメージ組み合わせマップを参照して、ディスクイメージの組み合わせを決定することによって、ユーザＩＤとグループＩＤとの組み合わせに応じて仮想マシンを生成することが可能になる。
【０１７５】
グループＩＤのみに応じた仮想マシンイメージを生成するには、ディスクイメージ組み合わせマップで、ユーザＩＤを指定せずに組み合わせを記述する。例えば、"グループＸ，Ｗｉｎｄｏｗｓ  ＸＰ（登録商標）のＯＳディスクイメージ、アンチウィルソフトウェアのプロビジョニングディスクイメージ、通常のユーザデータディスクイメージ"のように記述する。ユーザ認証手段１０１１から仮想マシンイメージ生成手段１０２への仮想マシン生成の指示も、「グループＸ用の仮想マシンイメージを作成」のように、ユーザＩＤを入れないことで、グループ単位の仮想マシンを生成することができる。
【０１７６】
なお、ユーザがユーザログイン手段１１８にグループＩＤを入力する例を説明したが、ユーザが一つのグループにしか所属しないシステムでは、ユーザが決まればグループが決まるため、ユーザがユーザログイン手段１１８にグループＩＤを入力する必要はない。
【０１７７】
次に、管理者が、管理ＵＩ１０９を用いて、特定のユーザＩＤやグループＩＤのユーザデータの回収や削除を行う例を説明する。
【０１７８】
管理者の画面には、管理手段１０１２のデータベースに記録されているユーザＩＤの一覧と、グループＩＤの一覧が表示される。管理者は、対象とするユーザＩＤまたはグループＩＤ、またはユーザＩＤとグループＩＤの組み合わせを選択する。選択されるＩＤは、例えば、ユーザＡであったり、グループＤであったり、ユーザＡのクループＸであったりする。次に管理者は、回収か削除かを選択する。
【０１７９】
管理者が、例えば、ユーザＡのユーザデータ回収を選択した場合、ユーザデータ受信手段１０４は、全てのクライアントのユーザデータ送信手段１１４に、"ユーザＡのユーザデータを回収"というメッセージを送信する。ユーザデータ送信手段１１４は、仮想マシンイメージ格納手段１１３にユーザＡの仮想マシンイメージが格納されていた場合、ユーザデータを送信する。
【０１８０】
管理者が、例えば、ユーザＡのユーザデータ削除を選択した場合、削除指示手段１０８が全てのクライアントのイメージ削除手段１１６に、"ユーザＡのユーザデータを削除"というメッセージを送信する。イメージ削除手段１１６は、仮想マシンイメージ格納手段１１３にユーザＡの仮想マシンイメージが格納されていた場合、ユーザデータを削除する。
【産業上の利用可能性】
【０１８１】
本発明を、ソフトウェアの外注プロジェクトに利用できる。例えば、プロジェクト立ち上げ時に外注元の管理者が仮想マシンイメージ生成し、外注先のクライアントへの配付を行う。プロジェクト運用時には、管理者はセキュリティミドルウェアによってクライアントの監視を行い、情報漏洩を防ぐことができる。また、プロジェクト終了時には、ユーザデータであるドキュメントやプログラムを、通信ネットワークを介して回収できる。
【０１８２】
また、別の利用可能性として、会社の仕事を家で安全に行うことができる。例えば、会社で使用している仮想マシンイメージを自宅のコンピュータに転送して業務を行う。業務が終わったときは、作業内容を会社に送信し、データを削除する。
【符号の説明】
【０１８３】
１００，１００Ｂ，１００Ｃ，１００Ｄ，１００Ｆ  サーバ
１０１  仮想マシン部品格納手段
１０２  仮想マシンイメージ生成手段
１０３  仮想マシンイメージ配付手段
１０４  ユーザデータ受信手段
１０５  ユーザデータ格納手段
１０６  ディスクマップ生成手段
１０７  仮想マシンイメージテスト手段
１０８  削除指示手段
１０９  管理ＵＩ
１０１０  仮想マシン部品生成手段
１０１１  ユーザ認証手段
１０１２  ユーザ管理手段
１１０，１１０Ｃ，１１０Ｅ，１１０Ｆ  クライアント
１１１  仮想マシンイメージ実行手段
１１２  入出力監視手段
１１３  仮想マシンイメージ格納手段
１１４  ユーザデータ送信手段
１１５  仮想マシンイメージ受信手段
１１６  イメージ削除手段
１１７  仮想マシン遠隔操作手段
１１８  ユーザログイン手段
【図１】
0005454715.tif 000002
【図２】
0005454715.tif 000003
【図３】
0005454715.tif 000004
【図４】
0005454715.tif 000005
【図５】
0005454715.tif 000006
【図６】
0005454715.tif 000007
【図７】
0005454715.tif 000008
【図８】
0005454715.tif 000009
【図９】
0005454715.tif 000010
【図１０】
0005454715.tif 000011
【図１１】
0005454715.tif 000012
【図１２】
0005454715.tif 000013
【図１３】
0005454715.tif 000014
【図１４】
0005454715.tif 000015
【図１５】
0005454715.tif 000016
【図１６】
0005454715.tif 000017
【図１７】
0005454715.tif 000018
【図１８】
0005454715.tif 000019
【図１９】
0005454715.tif 000020
【図２０】
0005454715.tif 000021
【図２１】
0005454715.tif 000022
【図２２】
0005454715.tif 000023
【図２３】
0005454715.tif 000024
【図２４】
0005454715.tif 000025
【図２５】
0005454715.tif 000026
【図２６】
0005454715.tif 000027
【図２７】
0005454715.tif 000028
【図２８】
0005454715.tif 000029
【図２９】
0005454715.tif 000030
【図３０】
0005454715.tif 000031