(57)【特許請求の範囲】
【請求項１】
仮想マシン上で実行されるオペレーティングシステムがインストールされたマスター仮想ハードディスクイメージを生成し、第１及び第２のクライアントコンピュータに対応し且つ前記マスター仮想ハードディスクイメージに依存する第１及び第２の差分仮想ハードディスクイメージを生成する仮想ハードディスクイメージ生成手段と、
前記第１及び第２のクライアントコンピュータそれぞれのコンピュータ名を示すクライアント情報データベースを格納する記憶装置と、
前記マスター仮想ハードディスクイメージと前記第１の差分仮想ハードディスクイメージとのペアに対応する第１のオペレーティングシステムを前記仮想マシン上で起動することによって前記第１のオペレーティングシステムに第１セットアップ処理を実行させ、前記マスター仮想ハードディスクイメージと前記第２の差分仮想ハードディスクイメージとのペアに対応する第２のオペレーティングシステムを前記仮想マシン上で起動することによって前記第２のオペレーティングシステムに第２セットアップ処理を実行させ、前記クライアント情報データベースから前記第１のクライアントコンピュータのコンピュータ名をリードし、前記リードされた第１のクライアントコンピュータのコンピュータ名を前記第１の差分仮想ハードディスクイメージに設定し、前記クライアント情報データベースから前記第２のクライアントコンピュータのコンピュータ名をリードし、前記リードされた第２のクライアントコンピュータのコンピュータ名を前記第２の差分仮想ハードディスクイメージに設定するセットアップ手段と、
前記第１のオペレーティングシステムを前記第１のクライアントコンピュータ内の仮想マシン上で実行するために前記マスター仮想ハードディスクイメージと前記第１の差分仮想ハードディスクイメージとのペアを前記第１のクライアントコンピュータに配信し、前記第２のオペレーティングシステムを前記第２のクライアントコンピュータ内の仮想マシン上で実行するために前記マスター仮想ハードディスクイメージと前記第２の差分仮想ハードディスクイメージとのペアを前記第２のクライアントコンピュータに配信する配信手段とを具備し、
前記仮想ハードディスクイメージ生成手段は、前記第１のオペレーティングシステムを更新するために、前記マスター仮想ハードディスクイメージ又は前記第１の差分仮想ハードディスクイメージに依存する第３の差分仮想ハードディスクイメージをさらに生成し、
前記配信手段は、前記第３の差分仮想ハードディスクイメージを前記第１のクライアントコンピュータにさらに配信する情報処理装置。
【請求項２】
前記第１のクライアントコンピュータによるＩＤリスト要求に応答して、前記第１のオペレーティングシステムを実行するために配信される１以上の仮想ハードディスクイメージを示す１以上のＩＤを含むＩＤリストを、前記第１のクライアントコンピュータに送信するリスト送信手段と、
前記ＩＤリストに含まれる前記１以上のＩＤから、前記第１のクライアントコンピュータによって選択されたＩＤを含むイメージ要求を前記第１のクライアントコンピュータから受信するＩＤ受信手段とをさらに具備し、
前記配信手段は、前記受信されたイメージ要求に含まれるＩＤに対応する、仮想ハードディスクイメージ又は差分仮想ハードディスクイメージを前記第１のクライアントコンピュータに配信する請求項１記載の情報処理装置。
【請求項３】
前記仮想ハードディスクイメージ生成手段は、前記仮想マシン上で実行されるオペレーティングシステムと所定のアプリケーションプログラムがインストールされた前記マスター仮想ハードディスクイメージを生成する請求項１記載の情報処理装置。
【請求項４】
前記マスター仮想ハードディスクイメージと前記第１の差分仮想ハードディスクイメージとのペアの配信に先立って、前記マスター仮想ハードディスクイメージを示すＩＤと前記第１の差分仮想ハードディスクイメージを示すＩＤとを含む第１のＩＤリストを前記第１のクライアントコンピュータに送信し、前記第３の差分仮想ハードディスクイメージが生成された後に前記第１のクライアントコンピュータからＩＤリスト要求を受信した場合、前記マスター仮想ハードディスクイメージを示すＩＤと前記第１の差分仮想ハードディスクイメージを示すＩＤと前記第３の差分仮想ハードディスクイメージを示すＩＤとを含む第２のＩＤリストを前記第１のクライアントコンピュータに送信するリスト送信手段と、
前記第１のクライアントコンピュータによって前記第２のＩＤリストから選択された前記第３の差分仮想ハードディスクイメージを示すＩＤを含むイメージ要求を前記第１のクライアントコンピュータから受信するＩＤ受信手段とをさらに具備し、
前記配信手段は、前記ＩＤを含む要求を受信したことに応答して、前記第３の差分仮想ハードディスクイメージを前記第１のクライアントコンピュータに配信する請求項１記載の情報処理装置。
【請求項５】
仮想マシン上で実行されるオペレーティングシステムがインストールされたマスター仮想ハードディスクイメージを生成し、第１及び第２のクライアントコンピュータに対応し且つ前記マスター仮想ハードディスクイメージに依存する第１及び第２の差分仮想ハードディスクイメージを生成し、
前記マスター仮想ハードディスクイメージと前記第１の差分仮想ハードディスクイメージとのペアに対応する第１のオペレーティングシステムを前記仮想マシン上で起動することによって前記第１のオペレーティングシステムに第１セットアップ処理を実行させ、前記マスター仮想ハードディスクイメージと前記第２の差分仮想ハードディスクイメージとのペアに対応する第２のオペレーティングシステムを前記仮想マシン上で起動することによって前記第２のオペレーティングシステムに第２セットアップ処理を実行させ、前記第１及び第２のクライアントコンピュータそれぞれのコンピュータ名を示すクライアント情報データベースから前記第１のクライアントコンピュータのコンピュータ名をリードし、前記リードされた前記第１のクライアントコンピュータのコンピュータ名を前記第１の差分仮想ハードディスクイメージに設定し、前記クライアント情報データベースから前記第２のクライアントコンピュータのコンピュータ名をリードし、前記リードされた第２のクライアントコンピュータのコンピュータ名を前記第２の差分仮想ハードディスクイメージに設定し、
前記第１のオペレーティングシステムを前記第１のクライアントコンピュータ内の仮想マシン上で実行するために前記マスター仮想ハードディスクイメージと前記第１の差分仮想ハードディスクイメージとのペアを前記第１のクライアントコンピュータに配信し、前記第２のオペレーティングシステムを前記第２のクライアントコンピュータ内の仮想マシン上で実行するために前記マスター仮想ハードディスクイメージと前記第２の差分仮想ハードディスクイメージとのペアを前記第２のクライアントコンピュータに配信し、
前記生成することは、前記第１のオペレーティングシステムを更新するために、前記マスター仮想ハードディスクイメージ又は前記第１の差分仮想ハードディスクイメージに依存する第３の差分仮想ハードディスクイメージをさらに生成し、
前記配信することは、前記第３の差分仮想ハードディスクイメージを前記第１のクライアントコンピュータにさらに配信するクライアント管理方法。
【請求項６】
前記第１のクライアントコンピュータによるＩＤリスト要求に応答して、前記第１のオペレーティングシステムを実行するために配信される１以上の仮想ハードディスクイメージを示す１以上のＩＤを含むＩＤリストを、前記第１のクライアントコンピュータに送信し、
前記ＩＤリストに含まれる前記１以上のＩＤから、前記第１のクライアントコンピュータによって選択されたＩＤを含むイメージ要求を前記第１のクライアントコンピュータから受信し、
前記配信することは、前記受信されたイメージ要求に含まれるＩＤに対応する、仮想ハードディスクイメージ又は差分仮想ハードディスクイメージを前記第１のクライアントコンピュータに配信する請求項５記載のクライアント管理方法。
【請求項７】
前記生成することは、前記仮想マシン上で実行されるオペレーティングシステムと所定のアプリケーションプログラムがインストールされた前記マスター仮想ハードディスクイメージを生成する請求項５記載のクライアント管理方法。
【請求項８】
前記マスター仮想ハードディスクイメージと前記第１の差分仮想ハードディスクイメージとのペアの配信に先立って、前記マスター仮想ハードディスクイメージを示すＩＤと前記第１の差分仮想ハードディスクイメージを示すＩＤとを含む第１のＩＤリストを前記第１のクライアントコンピュータに送信し、前記第３の差分仮想ハードディスクイメージが生成された後に前記第１のクライアントコンピュータからＩＤリスト要求を受信した場合、前記マスター仮想ハードディスクイメージを示すＩＤと前記第１の差分仮想ハードディスクイメージを示すＩＤと前記第３の差分仮想ハードディスクイメージを示すＩＤとを含む第２のＩＤリストを前記第１のクライアントコンピュータに送信し、
前記第１のクライアントコンピュータによって前記第２のＩＤリストから選択された前記第３の差分仮想ハードディスクイメージを示すＩＤを含むイメージ要求を前記第１のクライアントコンピュータから受信し、
前記配信することは、前記ＩＤを含む要求を受信したことに応答して、前記第３の差分仮想ハードディスクイメージを前記第１のクライアントコンピュータに配信する請求項５記載のクライアント管理方法。
【請求項９】
仮想マシン上で実行されるオペレーティングシステムがインストールされたマスター仮想ハードディスクイメージを生成し、クライアントコンピュータに対応し且つ前記マスター仮想ハードディスクイメージに依存する第１の差分仮想ハードディスクイメージを生成する仮想ハードディスクイメージ生成手段と、
前記クライアントコンピュータのコンピュータ名を示すクライアント情報データベースを格納する記憶装置と、
前記マスター仮想ハードディスクイメージと前記第１の差分仮想ハードディスクイメージとのペアに対応する前記オペレーティングシステムを前記仮想マシン上で起動することによって前記オペレーティングシステムにセットアップ処理を実行させ、前記クライアント情報データベースから前記クライアントコンピュータのコンピュータ名をリードし、前記リードされたクライアントコンピュータのコンピュータ名を前記第１の差分仮想ハードディスクイメージに設定するセットアップ手段と、
前記オペレーティングシステムを前記クライアントコンピュータ内の仮想マシン上で実行するために前記マスター仮想ハードディスクイメージと前記第１の差分仮想ハードディスクイメージとのペアを前記クライアントコンピュータに配信する配信手段とを具備する情報処理装置。
【請求項１０】
前記クライアントコンピュータによるＩＤリスト要求に応答して、前記オペレーティングシステムを実行するために配信される１以上の仮想ハードディスクイメージを示す１以上のＩＤを含むＩＤリストを、前記クライアントコンピュータに送信するリスト送信手段と、
前記ＩＤリストに含まれる前記１以上のＩＤから、前記クライアントコンピュータによって選択されたＩＤを含むイメージ要求を前記クライアントコンピュータから受信するＩＤ受信手段とをさらに具備し、
前記配信手段は、前記受信されたイメージ要求に含まれるＩＤに対応する、仮想ハードディスクイメージ又は差分仮想ハードディスクイメージを前記クライアントコンピュータに配信する請求項９記載の情報処理装置。
【請求項１１】
前記仮想ハードディスクイメージ生成手段は、前記仮想マシン上で実行されるオペレーティングシステムと所定のアプリケーションプログラムがインストールされた前記マスター仮想ハードディスクイメージを生成する請求項９記載の情報処理装置。
【請求項１２】
前記仮想ハードディスクイメージ生成手段は、前記オペレーティングシステムを更新するために、前記マスター仮想ハードディスクイメージ又は前記第１の差分仮想ハードディスクイメージに依存する第２の差分仮想ハードディスクイメージをさらに生成し、
前記配信手段は、前記第２の差分仮想ハードディスクイメージを前記クライアントコンピュータにさらに配信する請求項９記載の情報処理装置。
【請求項１３】
前記マスター仮想ハードディスクイメージと前記第１の差分仮想ハードディスクイメージとのペアの配信に先立って、前記マスター仮想ハードディスクイメージを示すＩＤと前記第１の差分仮想ハードディスクイメージを示すＩＤとを含む第１のＩＤリストを前記クライアントコンピュータに送信し、前記第２の差分仮想ハードディスクイメージが生成された後に前記クライアントコンピュータからＩＤリスト要求を受信した場合、前記マスター仮想ハードディスクイメージを示すＩＤと前記第１の差分仮想ハードディスクイメージを示すＩＤと前記第２の差分仮想ハードディスクイメージを示すＩＤとを含む第２のＩＤリストを前記クライアントコンピュータに送信するリスト送信手段と、
前記クライアントコンピュータによって前記第２のＩＤリストから選択された前記第２の差分仮想ハードディスクイメージを示すＩＤを含むイメージ要求を前記クライアントコンピュータから受信するＩＤ受信手段とをさらに具備し、
前記配信手段は、前記ＩＤを含む要求を受信したことに応答して、前記第２の差分仮想ハードディスクイメージを前記クライアントコンピュータに配信する請求項１２記載の情報処理装置。
【請求項１４】
仮想マシン上で実行されるオペレーティングシステムがインストールされたマスター仮想ハードディスクイメージを生成し、クライアントコンピュータに対応し且つ前記マスター仮想ハードディスクイメージに依存する第１の差分仮想ハードディスクイメージを生成し、
前記マスター仮想ハードディスクイメージと前記第１の差分仮想ハードディスクイメージとのペアに対応する前記オペレーティングシステムを前記仮想マシン上で起動することによって前記オペレーティングシステムにセットアップ処理を実行させ、前記クライアントコンピュータのコンピュータ名を示すクライアント情報データベースから前記クライアントコンピュータのコンピュータ名をリードし、前記リードされたクライアントコンピュータのコンピュータ名を前記第１の差分仮想ハードディスクイメージに設定し、
前記オペレーティングシステムを前記クライアントコンピュータ内の仮想マシン上で実行するために前記マスター仮想ハードディスクイメージと前記第１の差分仮想ハードディスクイメージとのペアを前記クライアントコンピュータに配信するクライアント管理方法。
【請求項１５】
前記クライアントコンピュータによるＩＤリスト要求に応答して、前記オペレーティングシステムを実行するために配信される１以上の仮想ハードディスクイメージを示す１以上のＩＤを含むＩＤリストを、前記クライアントコンピュータに送信し、
前記ＩＤリストに含まれる前記１以上のＩＤから、前記クライアントコンピュータによって選択されたＩＤを含むイメージ要求を前記クライアントコンピュータから受信し、
前記配信することは、前記受信されたイメージ要求に含まれるＩＤに対応する、仮想ハードディスクイメージ又は差分仮想ハードディスクイメージを前記クライアントコンピュータに配信する請求項１４記載のクライアント管理方法。
【請求項１６】
前記生成することは、前記仮想マシン上で実行されるオペレーティングシステムと所定のアプリケーションプログラムがインストールされた前記マスター仮想ハードディスクイメージを生成する請求項１４記載のクライアント管理方法。
【請求項１７】
前記生成することは、前記オペレーティングシステムを更新するために、前記マスター仮想ハードディスクイメージ又は前記第１の差分仮想ハードディスクイメージに依存する第２の差分仮想ハードディスクイメージをさらに生成し、
前記配信することは、前記第２の差分仮想ハードディスクイメージを前記クライアントコンピュータにさらに配信する請求項１４記載のクライアント管理方法。
【請求項１８】
前記マスター仮想ハードディスクイメージと前記第１の差分仮想ハードディスクイメージとのペアの配信に先立って、前記マスター仮想ハードディスクイメージを示すＩＤと前記第１の差分仮想ハードディスクイメージを示すＩＤとを含む第１のＩＤリストを前記クライアントコンピュータに送信し、前記第２の差分仮想ハードディスクイメージが生成された後に前記クライアントコンピュータからＩＤリスト要求を受信した場合、前記マスター仮想ハードディスクイメージを示すＩＤと前記第１の差分仮想ハードディスクイメージを示すＩＤと前記第２の差分仮想ハードディスクイメージを示すＩＤとを含む第２のＩＤリストを前記クライアントコンピュータに送信し、
前記クライアントコンピュータによって前記第２のＩＤリストから選択された前記第２の差分仮想ハードディスクイメージを示すＩＤを含むイメージ要求を前記クライアントコンピュータから受信し、
前記配信することは、前記ＩＤを含む要求を受信したことに応答して、前記第２の差分仮想ハードディスクイメージを前記クライアントコンピュータに配信する請求項１７記載のクライアント管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、クライアントコンピュータ上で動作するプログラムを管理する情報処理装置及び該装置に適用されるクライアント管理方法に関する。
【背景技術】
【０００２】
クライアントコンピュータ上で動作するオペレーティングシステム（ＯＳ）やアプリケーションプログラムをサーバで管理するための技術が利用されている。クライアントコンピュータは、例えばサーバから、ＯＳ及びアプリケーションプログラムを含むディスクイメージをダウンロードし、それらＯＳ及びアプリケーションプログラムを実行する。この技術では、クライアントコンピュータで利用されるＯＳ及びアプリケーションプログラムの更新やセキュリティパッチの適用等を、クライアントコンピュータ毎に行う必要がなくサーバ上で行うことができるため、クライアントコンピュータの管理の効率化やセキュリティの向上を図ることができる。
【０００３】
また、異なるオペレーティングシステムが動作する複数の環境を、一つの物理コンピュータ上で同時に動作させることができる仮想化技術が利用されている。仮想化技術では、コンピュータのハードウェア（物理資源）が仮想化され、当該コンピュータ上で、異なるＯＳやアプリケーションを含む複数の仮想マシンを同時に実行することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−３２３３５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
さらに、上述のクライアントコンピュータ上で動作するオペレーティングシステム（ＯＳ）やアプリケーションプログラムをサーバで管理するための技術と、仮想化技術とを組み合わせることもできる。これにより、例えば、サーバによって送信された、ＯＳ及びアプリケーションプログラムを含むディスクイメージを用いて、クライアントコンピュータ上で動作する仮想マシンで、それらＯＳ及びアプリケーションプログラムを実行することができる。
【０００６】
しかし、ＯＳ及びアプリケーションプログラムを含む一つのディスクイメージは、同一のハードウェア構成を有するクライアントコンピュータ（例えば、同一機種のクライアントコンピュータ）でしか使用することができない。そのため、サーバが複数の機種のクライアントコンピュータを管理する際には、機種毎にディスクイメージを作成する必要がある。また、ＯＳに設定されるコンピュータ名、プロダクトキー、ＩＰアドレス等のネットワーク情報等は、クライアントコンピュータでそれぞれ設定される必要がある。
【０００７】
本発明は、クライアントコンピュータで動作する仮想マシン上でオペレーティングシステムが使用できるまでに要する時間を短縮できる情報処理装置及びクライアント管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
実施形態によれば、情報処理装置は、仮想ハードディスクイメージ生成手段、記憶装置、セットアップ手段、及び配信手段を具備する。仮想ハードディスクイメージ生成手段は、仮想マシン上で実行されるオペレーティングシステムがインストールされたマスター仮想ハードディスクイメージを生成し、第１及び第２のクライアントコンピュータに対応し且つ前記マスター仮想ハードディスクイメージに依存する第１及び第２の差分仮想ハードディスクイメージを生成する。記憶装置は、前記第１及び第２のクライアントコンピュータそれぞれのコンピュータ名を示すクライアント情報データベースを格納する。セットアップ手段は、前記マスター仮想ハードディスクイメージと前記第１の差分仮想ハードディスクイメージとのペアに対応する第１のオペレーティングシステムを前記仮想マシン上で起動することによって前記第１のオペレーティングシステムに第１セットアップ処理を実行させ、前記マスター仮想ハードディスクイメージと前記第２の差分仮想ハードディスクイメージとのペアに対応する第２のオペレーティングシステムを前記仮想マシン上で起動することによって前記第２のオペレーティングシステムに第２セットアップ処理を実行させ、前記クライアント情報データベースから前記第１のクライアントコンピュータのコンピュータ名をリードし、前記リードされた第１のクライアントコンピュータのコンピュータ名を前記第１の差分仮想ハードディスクイメージに設定し、前記クライアント情報データベースから前記第２のクライアントコンピュータのコンピュータ名をリードし、前記リードされた第２のクライアントコンピュータのコンピュータ名を前記第２の差分仮想ハードディスクイメージに設定する。配信手段は、前記第１のオペレーティングシステムを前記第１のクライアントコンピュータ内の仮想マシン上で実行するために前記マスター仮想ハードディスクイメージと前記第１の差分仮想ハードディスクイメージとのペアを前記第１のクライアントコンピュータに配信し、前記第２のオペレーティングシステムを前記第２のクライアントコンピュータ内の仮想マシン上で実行するために前記マスター仮想ハードディスクイメージと前記第２の差分仮想ハードディスクイメージとのペアを前記第２のクライアントコンピュータに配信する。前記仮想ハードディスクイメージ生成手段は、前記第１のオペレーティングシステムを更新するために、前記マスター仮想ハードディスクイメージ又は前記第１の差分仮想ハードディスクイメージに依存する第３の差分仮想ハードディスクイメージをさらに生成する。前記配信手段は、前記第３の差分仮想ハードディスクイメージを前記第１のクライアントコンピュータにさらに配信する。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る情報処理装置が接続されるネットワークの例を示す概念図。
【図２】同実施形態の情報処理装置に接続されるクライアントコンピュータの構成の例を示す概念図。
【図３】同実施形態の情報処理装置に接続されるクライアントコンピュータの構成の別の例を示す概念図。
【図４】同実施形態の情報処理装置の構成を示す概念図。
【図５】同実施形態の情報処理装置の構成を示すブロック図。
【図６】同実施形態の情報処理装置が用いるクライアント情報の例を示す図。
【図７】同実施形態の情報処理装置が用いるドライバセット情報の例を示す図。
【図８】同実施形態の情報処理装置が用いるマスターイメージ情報の例を示す図。
【図９】同実施形態の情報処理装置が用いる仮想ハードディスクファイルの階層構造の例を示す図。
【図１０】同実施形態の情報処理装置によってクライアントコンピュータに配信される仮想ハードディスクの例を示す図。
【図１１】同実施形態の情報処理装置が用いる仮想ハードディスクファイルの階層構造の別の例を示す図。
【図１２】同実施形態の情報処理装置によってクライアントコンピュータに配信される仮想ハードディスクの別の例を示す図。
【図１３】同実施形態の情報処理装置が用いる仮想ハードディスクファイルの階層構造の他の例を示す図。
【図１４】同実施形態の情報処理装置によってクライアントコンピュータに配信される仮想ハードディスクの他の例を示す図。
【図１５】同実施形態の情報処理装置によって実行されるマスターイメージ作成処理の手順の例を示すフローチャート。
【図１６】同実施形態の情報処理装置が用いるマスターイメージ情報の別の例を示す図。
【図１７】同実施形態の情報処理装置によって実行されるクライアント管理処理の手順の例を示すフローチャート。
【図１８】同実施形態の情報処理装置に接続されるクライアントコンピュータの例を示す図。
【図１９】同実施形態の情報処理装置が用いるクライアント情報の別の例を示す図。
【図２０】同実施形態の情報処理装置が用いるクライアント情報の他の例を示す図。
【図２１】同実施形態の情報処理装置によって実行されるドライバセット管理処理の手順の例を示すフローチャート。
【図２２】同実施形態の情報処理装置によって実行される配信イメージ作成処理の手順の例を示すフローチャート。
【図２３】同実施形態の情報処理装置に接続されるクライアントコンピュータによって実行されるイメージ更新処理の手順の例を示すフローチャート。
【図２４】同実施形態の情報処理装置からクライアントコンピュータに送信されるリストの例を示す図。
【図２５】同実施形態の情報処理装置によって実行されるイメージ更新応答処理の手順の例を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、実施の形態について図面を参照して説明する。  
まず、図１を参照して、一実施形態に係る情報処理装置が接続されるネットワークの例を説明する。この情報処理装置１は、例えば、サーバコンピュータとして実現し得る。この情報処理装置１は管理サーバ１とも称する。
【００１１】
このネットワーク上には、管理サーバ１と複数のクライアントコンピュータ２，３とが接続されている。管理サーバ１と複数のクライアントコンピュータ２，３とは、ＬＡＮ等のネットワークを介して相互に接続される。管理サーバ１は、複数のクライアントコンピュータ２，３の各々に、ディスクイメージを配信する。このディスクイメージは、クライアントコンピュータ２，３の仮想マシン上で動作するＯＳやアプリケーションプログラムを含むディスクイメージである。管理サーバ１は、クライアントコンピュータ２，３にディスクイメージを配信することにより、クライアントコンピュータ２，３の仮想マシン上で動作するＯＳやアプリケーションプログラムを更新することもできる。
【００１２】
図２は、クライアントコンピュータ２の構成を示す。以下では、管理サーバ１に接続されるクライアントコンピュータ２を例として説明するが、管理サーバ１に接続される他のクライアントコンピュータも同様の構成を有するものとする。クライアントコンピュータ２は、物理ハードウェア２１、仮想マシンモニタ２３、ホストＯＳ２２、仮想マシン２５、ユーザ使用ＯＳ２６を備える。
【００１３】
物理ハードウェア２１は、クライアントコンピュータ２に設けられるプロセッサ、メモリ、記憶装置、各種デバイス等のハードウェアリソースを含む。仮想マシンモニタ２３は、ハイパーバイザとも呼ばれ、物理ハードウェア２１上で動作する。また、仮想マシンモニタ２３上では、ホストＯＳ２２及び仮想マシン２５が動作する。そして、仮想マシン２５上では、ユーザ使用ＯＳ２６が動作する。
【００１４】
仮想マシンモニタ２３は、ホストＯＳ２２によって出力される命令、及び仮想マシン２５を介してユーザ使用ＯＳ２６によって出力される命令に応じて、物理ハードウェア２１を制御する。仮想マシンモニタ２３は、例えば、ホストＯＳ２２とユーザ使用ＯＳ２６が動作する仮想マシン２５とに対して、プロセッサの割り当てを行う。また、仮想マシンモニタ２３は、管理サーバ１との通信を行うための通信モジュール２４を備える。通信モジュール２４は、管理サーバ１から配信されるユーザ使用ＯＳ２６のＯＳイメージを含むディスクイメージを受信する。
【００１５】
ホストＯＳ２２は、管理用ＯＳとも呼ばれ、ユーザインタフェースや仮想マシンの管理機能を有する。ホストＯＳ２２は仮想マシンモニタ２３上で動作する。つまり、ホストＯＳ２２によって出力された命令は、仮想マシンモニタ２３を介して物理ハードウェア２１に出力される。
【００１６】
ユーザ使用ＯＳ２６は、ゲストＯＳとも呼ばれ、クライアントコンピュータ２を利用するユーザが使用するＯＳを示す。ユーザ使用ＯＳ２６は、上述のように仮想マシン２５上で動作する。仮想マシン２５は、管理サーバ１から配信されたユーザ使用ＯＳ２６のＯＳイメージを含むディスクイメージ用いて、ユーザ使用ＯＳ２６を実行する。このディスクイメージは、例えば仮想ハードディスク（ＶＨＤ）ファイル形式のデータである。
【００１７】
なお、このディスクイメージは、クライアントコンピュータ２に対応するドライバプログラムのデータも含む。また、ユーザ使用ＯＳ２６は、エージェントソフトウェア２７を備える。エージェントソフトウェア２７は、ディスクイメージに含まれるドライバプログラムをユーザ使用ＯＳ２６にインストールする。以上により、ユーザは、仮想マシン２５上で動作するユーザ使用ＯＳ２６を利用することができる。
【００１８】
また、通信モジュール２４は、前回管理サーバ１から配信されたディスクイメージと、現在管理サーバ１に格納されているディスクイメージとが異なるか否か、すなわち、現在のユーザ使用ＯＳ２６に対応するディスクイメージが、管理サーバ１上で更新されているか否かを、管理サーバ１に問い合わせる。そして、現在のユーザ使用ＯＳ２６に対応するディスクイメージが、管理サーバ１上で更新されている場合、通信モジュール２４は、更新されたディスクイメージを管理サーバ１から受信する。通信モジュール２４は、例えば、現在のユーザ使用ＯＳ２６に対応するディスクイメージと、これに対応する管理サーバ１上のディスクイメージとの差分を含むディスクイメージを、管理サーバ１から受信する。なお、通信モジュール２４は、図３に示すようにエージェントソフトウェア２７内に設けられてもよい。
【００１９】
図４は、管理サーバ１の構成を示す。管理サーバ１は、物理ハードウェア１１、仮想マシンモニタ１３、ホストＯＳ１２、及び仮想マシン１４を備える。管理サーバ１は、クライアントコンピュータ２に設けられた仮想マシン２５上でユーザ使用ＯＳ２６を動作させるためのディスクイメージ（ＶＨＤファイル）を、クライアントコンピュータ２に配信する機能を有する。
【００２０】
物理ハードウェア１１は、管理サーバ１に設けられるプロセッサ、メモリ、記憶装置、各種デバイス等のハードウェアリソースを含む。仮想マシンモニタ１３は、ハイパーバイザとも呼ばれ、物理ハードウェア１１上で動作する。また、仮想マシンモニタ１３上では、ホストＯＳ１２及び仮想マシン１４が動作する。そして、仮想マシン１４上では、任意のゲストＯＳを動作させることができる。
【００２１】
仮想マシンモニタ１３は、ホストＯＳ１２によって出力される命令、及び仮想マシン１４を介してゲストＯＳによって出力される命令に応じて、物理ハードウェア１１を制御する。仮想マシンモニタ１３は、例えば、ホストＯＳ１２とゲストＯＳが動作する仮想マシン１４とに対して、プロセッサの割り当てを行う。
【００２２】
ホストＯＳ１２は、管理用ＯＳとも呼ばれ、ユーザインタフェースや仮想マシンの管理機能を有する。ホストＯＳ１２は仮想マシンモニタ１３上で動作する。つまり、ホストＯＳ１２によって出力された命令は、仮想マシンモニタ１３を介して物理ハードウェア１１に出力される。
【００２３】
図５を参照して、管理サーバ１上で動作するホストＯＳ１２の構成を説明する。ホストＯＳ１２は、クライアント管理モジュール１５、ドライバセット管理モジュール１６、仮想イメージ管理モジュール１７、通信モジュール１８、クライアント管理データベース１２Ａ、ドライバセット管理データベース１２Ｂ、ドライバファイル群１２Ｃ、マスターイメージ管理データベース１２Ｄ、及び仮想ディスクファイル群（ＶＨＤファイル群）１２Ｅを備える。
【００２４】
クライアント管理モジュール１５は、クライアント管理データベース１２Ａを管理する。図６は、クライアント管理データベース１２Ａに格納されるクライアント情報の一構成例を示す。クライアント情報は、複数のクライアントコンピュータにそれぞれ対応する複数のエントリを含む。各エントリは、例えば、クライアント名、機種名、マスターイメージ名、及びステータスを含む。クライアント名は、そのクライアントコンピュータのコンピュータ名を示す。機種名は、そのクライアントコンピュータの機種名を示す。異なる機種名が設定されたクライアントコンピュータ間では、例えばコンピュータのハードウェア構成が異なる。マスターイメージ名は、例えば、そのクライアントコンピュータで用いられるユーザ使用ＯＳがインストールされたマスター仮想ハードディスクファイルの名称を示す。ステータスは、そのクライアントコンピュータに配信されるディスクイメージが作成済みであるか否かを示す。ステータスには、例えば、クライアントコンピュータに配信されるディスクイメージが作成済みであることを示す“作成済み”、及びクライアントコンピュータに配信されるディスクイメージが未作成であることを示す“未作成”のいずれかが設定される。クライアント管理モジュール１５は、クライアントコンピュータに対応するエントリの追加、編集、削除等を行う。
【００２５】
ドライバセット管理モジュール１６は、ドライバセット管理データベース１２Ｂを管理する。図７は、ドライバセット管理データベース１２Ｂに格納されるドライバセット情報の一構成例を示す。ドライバセット情報は、複数のクライアントコンピュータの機種にそれぞれ対応する複数のエントリを含む。ドライバセット情報は、例えば、機種名及びドライバセット名を含む。機種名は、そのクライアントコンピュータの機種名を示す。機種名は、上述のクライアント情報に含まれる機種名に対応する。ドライバセット名は、そのクライアントコンピュータで用いられるドライバセットの名称を示す。ドライバセットは、対象のクライアントコンピュータに接続されたデバイス等を使用するためのドライバプログラムを含む。すなわち、クライアントコンピュータの機種に対応するドライバセットプログラムをインストールすることにより、クライアントコンピュータに接続されたデバイス等を制御することができる。このドライバセットは、例えば、ドライバファイル群１２Ｃとして管理サーバ１内の記憶装置に格納されている。ドライバセット管理モジュール１６は、クライアントコンピュータの機種に対応するエントリの追加、編集、削除等を行う。
【００２６】
仮想イメージ管理モジュール１７は、クライアントコンピュータ２で使用される仮想イメージ（仮想ハードディスクファイル）の生成及び更新を管理する。  
仮想ハードディスクファイルには、マスターとなる仮想ハードディスクファイル（基本仮想ハードディスクファイル）と、この基本仮想ハードディスクファイルに対する変更部分を記録する差分仮想ハードディスクファイルの二つのタイプの仮想ハードディスクファイルがある。差分仮想ハードディスクファイルは、基本仮想ハードディスクファイルとペアで用いられる。基本仮想ハードディスクファイルと差分仮想ハードディスクファイルとは、基本仮想ハードディスクファイルが「親」であって、差分仮想ハードディスクファイルが「子」である階層構造を構成する。換言すると、「子」である差分仮想ハードディスクファイルは、「親」である基本仮想ハードディスクファイルに依存すると云える。なお、差分仮想ハードディスクファイルの親には、基本仮想ハードディスクファイルだけでなく、差分仮想ハードディスクファイルを指定することもできる。したがって、基本仮想ハードディスクファイルを親とする第１の差分仮想ハードディスクファイルが、第２の差分仮想ハードディスクファイルの親に指定されるというように、基本仮想ハードディスクファイルを頂点とする階層構造を構成することもできる。さらに、一つの親（基本仮想ハードディスクファイル又は差分仮想ハードディスクファイル）に対して、複数の差分仮想ハードディスクファイルを子として設定することもできる。
【００２７】
階層構造を有する基本仮想ハードディスクファイル（親）と差分仮想ハードディスクファイル（子）のペアを用いることにより、異なるシステム環境を容易に作成することができる。例えば、マスター仮想ハードディスクファイルにＯＳがインストールされたシステム環境を作成し、差分仮想ハードディスクファイルにセキュリティパッチが適用されたシステム環境を作成する。また、例えば、マスター仮想ハードディスクファイルにＯＳがインストールされたシステム環境を作成し、差分仮想ハードディスクファイルにアプリケーションプログラムがインストールされたシステム環境を作成する。さらに、例えば、マスター仮想ハードディスクファイルにＯＳとアプリケーションプログラムとがインストールされたシステム環境を作成し、複数の差分仮想ハードディスクファイルの各々に異なるコンピュータ名を設定して、コンピュータ名が異なる複数のシステム環境を作成する。差分仮想ハードディスクファイルには、上述のように、親のシステム環境に対して変更があった部分のみが記録されるので、記録に要するディスク容量が必要最低限で済む。
【００２８】
なお、仮想ハードディスクファイルは、その仮想ハードディスクファイルに固有の識別情報（ＵＵＩＤ：universally unique ID）を含む。このＵＵＩＤは、例えばその仮想ハードディスクファイルのフッターに含まれるＵＵＩＤのフィールドに設定される。
【００２９】
また、差分仮想ハードディスクファイルは、その差分仮想ハードディスクファイルの「親」に指定された仮想ハードディスクファイルを示すＵＵＩＤ（Parent unique ID）を含む。親の仮想ハードディスクファイルのＵＵＩＤは、例えば、子の差分仮想ハードディスクファイルのヘッダーに含まれる“Parent unique ID”のフィールドに設定される。つまり、差分仮想ハードディスクから、その差分仮想ハードディスクファイルの親の仮想ハードディスクファイル（基本仮想ハードディスクファイル又は差分仮想ハードディスクファイル）を示すＩＤを検出することができる。
【００３０】
仮想イメージ管理モジュール１７は、マスターＶＨＤ生成部１７１、ＯＳインストール部１７２、第１差分ＶＨＤ生成部１７３、アプリケーションインストール部１７４、マスターイメージ登録部１７５、セットアップＶＨＤ生成部１７６、第２差分ＶＨＤ生成部１７７、ドライバ格納部１７８、及びセットアップ部１７９を備える。
【００３１】
マスターＶＨＤ生成部１７１は、マスターイメージとして用いられる基本仮想ハードディスクファイル（基本ＶＨＤファイル）を生成する。マスターイメージは、例えば、ＯＳがインストールされたＯＳイメージである。マスターイメージは、マスター仮想ハードディスクイメージとも云う。マスターＶＨＤ生成部１７１は、管理サーバ１に接続される複数のクライアントコンピュータ２，３において、それぞれ異なるＯＳ（ユーザ使用ＯＳ２６）が使用されるとき、それらＯＳの数だけ基本ＶＨＤファイルを生成する。マスターＶＨＤ生成部１７１は、生成した基本ＶＨＤファイルに名称（マスターイメージ名）を付与する。なお、この名称は、管理サーバ１を使用する管理者によって付与されてもよい。マスターＶＨＤ生成部１７１は、生成した基本ＶＨＤファイルをＯＳインストール部１７２に出力する。
【００３２】
ＯＳインストール部１７２は、マスターＶＨＤ生成部１７１によって出力された基本ＶＨＤファイルに、所定のオペレーティングシステム（ＯＳ）をインストールする。具体的には、ＯＳインストール部１７２は、仮想マシン１４上に基本ＶＨＤファイルをマウントし、マウントした基本ＶＨＤファイルにＯＳをインストールする。そして、ＯＳインストール部１７２は、基本ＶＨＤファイルにエージェントソフトウェア２７をインストールする。ＯＳインストール部１７２は、ＯＳとエージェントソフトウェア２７とがインストールされた基本ＶＨＤファイル（マスターイメージ）を第１差分ＶＨＤ生成部１７３に出力する。
【００３３】
第１差分ＶＨＤ生成部１７３は、ＯＳインストール部１７２によって出力された基本ＶＨＤファイルを用いて、第１差分ＶＨＤファイルを生成する。換言すると、第１差分ＶＨＤ生成部１７３は、基本ＶＨＤファイルを親とする（すなわち、基本ＶＨＤファイルに依存する）第１差分ＶＨＤファイルを生成する。この第１差分ＶＨＤファイルもマスターイメージとして用いられる。第１差分ＶＨＤ生成部１７３は、管理サーバ１に接続される複数のクライアントコンピュータ２，３のうち、同一のＯＳ（ユーザ使用ＯＳ２６）が使用されるクライアントコンピュータにおいて、異なるアプリケーションプログラムのセットが使用されるとき、１つの基本ＶＨＤファイルに対して、それらアプリケーションプログラムのセットの数だけ第１差分ＶＨＤファイルを作成する。第１差分ＶＨＤ生成部１７３は、第１差分ＶＨＤファイルに名称（マスターイメージ名）を付与する。なお、この名称は、管理サーバ１を使用する管理者によって付与されてもよい。第１差分ＶＨＤ生成部１７３は、生成した第１差分ＶＨＤファイルをアプリケーションインストール部１７４に出力する。
【００３４】
アプリケーションインストール部１７４は、第１差分ＶＨＤ生成部１７３によって出力された第１差分ＶＨＤファイルに、所定のアプリケーションプログラムをインストールする。つまり、アプリケーションインストール部１７４は、仮想マシン１４に差分ＶＨＤファイルをマウントし、マウントした差分ＶＨＤファイルにアプリケーションプログラムをインストールする。アプリケーションインストール部１７４は、第１差分ＶＨＤファイルに、ＯＳのセキュリティパッチ等の更新用プログラムをインストールしてもよい。アプリケーションインストール部１７４は、第１差分ＶＨＤファイルをマスターイメージ登録部１７５に出力する。
【００３５】
マスターイメージ登録部１７５は、上述のようにして作成された基本ＶＨＤファイルと第１差分ＶＨＤファイルとを示すマスターイメージ情報を、マスターイメージ管理データベース１２Ｄに登録する。マスターイメージ登録部１７５は、作成されたＶＨＤファイルに対応する「マスターイメージ名」と「状態」とを含むエントリをマスターイメージ管理データベース１２Ｄに登録する。このエントリに含まれる「状態」には、“配信不可”が設定される。
【００３６】
図８は、マスターイメージ管理データベース１２Ｄに格納されるマスターイメージ情報の一構成例を示す。マスターイメージ情報は、複数のマスターイメージにそれぞれ対応する複数のエントリを含む。マスターイメージ情報は、例えば、マスターイメージ名及び状態を含む。マスターイメージ名は、そのマスターイメージの名称を示す。状態は、そのマスターイメージがクライアントコンピュータに配信可能であるか否かを示す。状態には、例えば、そのマスターイメージが配信可能であることを示す“配信可能”、及びそのマスターイメージが配信できないことを示す“配信不可”のいずれかが設定される。マスターイメージ登録部１７５は、マスターイメージに対応するエントリの追加、編集、削除等を行う。
【００３７】
また、セットアップＶＨＤ生成部１７６は、セットアップモジュールが組み込まれたセットアップ用差分ＶＨＤファイルを生成する。セットアップモジュールは、ＯＳが起動された際に、ＯＳのセットアップ処理を実行するためのモジュールである。このセットアップ処理は、例えば、コンピュータ名を設定する処理、プロダクトキーを設定する処理、ＩＰアドレス等のネットワーク情報を設定する処理、ユーザ名等のユーザ情報を設定する処理等を含む。
【００３８】
具体的には、セットアップＶＨＤ生成部１７６は、まず、第１差分ＶＨＤファイルを親とする（すなわち、第１差分ＶＨＤファイルに依存する）差分ＶＨＤファイルを生成する。そして、セットアップＶＨＤ生成部１７６は、生成した差分ＶＨＤファイルにセットアップモジュールを組み込む。このセットアップモジュールが組み込まれた差分ＶＨＤファイルは、セットアップ用差分ＶＨＤファイルとも称する。なお、セットアップＶＨＤ生成部１７６による処理には、例えば、Windows（登録商標）ＯＳのsysprepツールを用いることができる。セットアップＶＨＤ生成部１７６は、セットアップ用差分ＶＨＤファイルが生成されたことをマスターイメージ登録部１７５に通知する。
【００３９】
マスターイメージ登録部１７５は、セットアップＶＨＤ生成部１７６による通知に応答して、マスターイメージ管理データベース１２Ｄを更新する。マスターイメージ登録部１７５は、生成されたセットアップ用差分ＶＨＤファイルの親である第１差分ＶＨＤファイル（マスターイメージ）に対応するエントリの「状態」に、“配信可能”を設定する。
【００４０】
以上の構成により、マスターイメージである基本ＶＨＤファイル及び第１差分ＶＨＤファイル、並びにセットアップモジュールが組み込まれたセットアップ用差分ＶＨＤファイルが生成され、マスターイメージを示すマスターイメージ情報がマスターイメージ管理データベース１２Ｄに登録される。
【００４１】
上述のクライアント管理モジュール１５は、マスターイメージ管理データベース１２Ｄに登録されたマスターイメージから、複数のクライアントコンピュータの各々で用いられるマスターイメージを選択する。複数のクライアントコンピュータの各々で用いられるマスターイメージは、例えば管理サーバ１の管理者によって選択される。また、クライアント管理モジュール１５は、複数のクライアントコンピュータの各々で用いられるマスターイメージを、クライアントコンピュータとマスターイメージとの対応を示すデータを用いて選択してもよい。クライアント管理モジュール１５は、選択したマスターイメージのマスターイメージ名を、対応するクライアントコンピュータのエントリに設定する。
【００４２】
また、第２差分ＶＨＤ生成部１７７は、クライアントコンピュータ毎に必要なデータが格納された第２差分ＶＨＤファイル（クライアント用ＶＨＤファイルとも云う）を生成する。具体的には、第２差分ＶＨＤ生成部１７７は、クライアント管理データベース１２Ａを参照して、ステータスが“未作成”であるクライアントコンピュータがあるか否かを判定する。ステータスが“未作成”であるクライアントコンピュータがない場合、すなわち、すべてのクライアントコンピュータのステータスが“作成済み”である場合、処理を終了する。ステータスが“未作成”であるクライアントコンピュータがある場合、第２差分ＶＨＤ生成部１７７は、そのクライアントコンピュータに対応するセットアップ用差分ＶＨＤファイルを複製して、当該クライアントコンピュータ用の第２差分ＶＨＤファイルを生成する。
【００４３】
具体的には、第２差分ＶＨＤ生成部１７７は、ステータスが“未作成”であるクライアントコンピュータに対応するマスターイメージ名を読み出す。そして、第２差分ＶＨＤ生成部１７７は、読み出したマスターイメージ名に対応するＶＨＤファイルを親とするセットアップ用差分ＶＨＤファイルを読み出す。そして、第２差分ＶＨＤ生成部１７７は、読み出したセットアップ用差分ＶＨＤファイルを複製することによって、第２差分ＶＨＤファイルを生成する。第２差分ＶＨＤ生成部１７７は、生成した第２差分ＶＨＤファイルに、クライアントコンピュータに対応するコンピュータ名を付与する。第２差分ＶＨＤ生成部１７７は、生成した第２差分ＶＨＤファイルをドライバ格納部１７８に出力する。
【００４４】
ドライバ格納部１７８は、第２差分ＶＨＤ作成部１７７によって出力された第２差分ＶＨＤファイルをマウントする。ドライバ格納部１７８は、ドライバセット管理データベース１２Ｂを参照して、クライアントコンピュータの機種に対応するドライバセットを読み出す。具体的には、ドライバ格納部１７８は、ドライバセット管理データベース１２Ｂを参照して、クライアントコンピュータの機種に対応するドライバセット名を読み出す。そして、ドライバ格納部１７８は、読み出したドライバセット名に対応するドライバセットを、ドライバファイル群１２Ｃから読み出す。ドライバ格納部１７８は、読み出したドライバセットを、第２差分ＶＨＤファイル内の所定の位置に配置する。また、ドライバ格納部１７８は、クライアント管理データベース１２Ａを参照して、クライアントコンピュータに対応するコンピュータ名を読み出す。ドライバ格納部１７８は、読み出したコンピュータ名を、第２差分ＶＨＤファイル内の所定の位置に配置する。そして、ドライバ格納部１７８は、第２差分ＶＨＤファイルをアンマウントする。ドライバ格納部１７８は、第２差分ＶＨＤファイルをセットアップ部１７９に出力する。
【００４５】
セットアップ部１７９は、第２差分ＶＨＤファイル生成部１７７によって出力された第２差分ＶＨＤファイルを用いて、仮想マシン１４上でＯＳを起動する。つまり、セットアップ部１７９は、第２差分ＶＨＤファイル、第２差分ＶＨＤファイルの親である第１差分ＶＨＤファイル、及び第１差分ＶＨＤファイルの親である基本ＶＨＤファイルを用いて、ＯＳを起動する。
【００４６】
仮想マシン１４上でＯＳが起動されたとき、第２差分ＶＨＤファイルに組み込まれたセットアップモジュールによって、ＯＳのセットアップ処理（ミニセットアップ）が実行される。このＯＳのセットアップ処理では、第２差分ＶＨＤファイル内に配置されたコンピュータ名が、ＯＳに設定される。なお、このセットアップ処理に、プロダクトキーを設定する処理、ＩＰアドレス等のネットワーク情報を設定する処理、ＯＳを使用するユーザの情報を設定する処理等を含めてもよい。
【００４７】
セットアップ処理が完了したとき、セットアップ部１７９は、クライアント管理データベース１２Ｂ内の、当該クライアントコンピュータに対応するクライアント情報のステータスを“作成済み”に書き換える。そして、セットアップ部１７９は、実行中のＯＳをシャットダウンする。次いで、セットアップ部１７９は、仮想マシン１４を停止し、ＯＳの実行に用いられたＶＨＤファイルをアンマウントする。
【００４８】
以上の構成により、クライアントコンピュータ２に配信されるディスクイメージ（配信イメージとも云う）が生成される。クライアントコンピュータ２に配信される配信イメージは、例えば、クライアントコンピュータ２内の仮想マシン２５上でユーザ使用ＯＳ２６を実行するために必要なＶＨＤファイルを含む。したがって例えば、クライアントコンピュータ２に配信される配信イメージは、第２差分ＶＨＤファイル、第２差分ＶＨＤファイルの親である第１差分ＶＨＤファイル、及び第１差分ＶＨＤファイルの親である基本ＶＨＤファイルを含む。なお、上述の説明では、一つのクライアントコンピュータ２に配信されるディスクイメージを生成する処理について述べたが、管理サーバ１に接続される複数のクライアントコンピュータの各々に配信されるディスクイメージが同様の処理によって生成される。また、アプリケーションプログラムがインストールされた第１差分ＶＨＤファイルを生成せずに、基本ＶＨＤファイルを親とする第２差分ＶＨＤファイルを生成してもよい。その場合、クライアントコンピュータ２には、第２差分ＶＨＤファイルと基本ＶＨＤファイルとが配信される。
【００４９】
図９は、配信イメージとして用いられるＶＨＤファイルの階層構造の例を示す。各ＶＨＤファイルには、ＩＤ（ＵＵＩＤ）が設定されている。例えば、基本ＶＨＤファイル４０１にはＩＤ“１”が設定されている。また、例えば、差分ＶＨＤファイル４０５にはＩＤ“５”が設定されている。また、図９において実線で接続された２つのＶＨＤファイルは、左側に記載されたＶＨＤファイルが親のＶＨＤファイルであって、右側に記載されたＶＨＤファイルが子のＶＨＤファイルであることを示す。例えば、差分ＶＨＤファイル４０５と差分ＶＨＤファイル４０６の親は、基本ＶＨＤファイル４０１である。
【００５０】
図９に示す例では、マスターイメージとして、基本ＶＨＤファイル４０１（マスターＡ）、及び基本ＶＨＤファイル４０２（マスターＢ）が生成されている。また、クライアント用ＶＨＤファイルとして、差分ＶＨＤファイル４０５（ＰＣ１）、差分ＶＨＤファイル４０６（ＰＣ２）、差分ＶＨＤファイル４０７（ＰＣ３）、及び差分ＶＨＤファイル４０８（ＰＣ４）が生成されている。
【００５１】
なお、差分ＶＨＤファイル４０３及び差分ＶＨＤファイル４０４は、セットアップＶＨＤ生成部１７６によって生成されたセットアップ用差分ＶＨＤファイルを示す。したがって、差分ＶＨＤファイル４０５，４０６は、差分ＶＨＤファイル４０３を複製することによって生成された差分ＶＨＤファイルである。また、差分ＶＨＤファイル４０７，４０８は、差分ＶＨＤファイル４０４を複製することによって生成された差分ＶＨＤファイルである。
【００５２】
図１０は、ＶＨＤファイルが図９に示すように構成される際に、各クライアントコンピュータに配信されるＶＨＤファイルを示す。図９に示すＶＨＤファイルの構成では、ＰＣ１に、基本ＶＨＤファイル４０１（マスターＡ）と差分ＶＨＤファイル４０５（ＰＣ１）とが配信される。ＰＣ２に、基本ＶＨＤファイル４０１（マスターＡ）と差分ＶＨＤファイル４０６（ＰＣ２）とが配信される。ＰＣ３に、基本ＶＨＤファイル４０２（マスターＢ）と差分ＶＨＤファイル４０７（ＰＣ３）とが配信される。また、ＰＣ４に、基本ＶＨＤファイル４０２（マスターＢ）と差分ＶＨＤファイル４０８（ＰＣ４）とが配信される。
【００５３】
また、図１１は、配信イメージとして用いられるＶＨＤファイルの階層構造の別の例を示す。  
図１１に示す例では、マスターイメージとして、基本ＶＨＤファイル４０１（マスターＡ）、差分ＶＨＤファイル４０９（マスターＡ１）、及び差分ＶＨＤファイル４１０（マスターＡ２）が生成されている。また、クライアント用ＶＨＤファイルとして、差分ＶＨＤファイル４１３（ＰＣ１）、差分ＶＨＤファイル４１４（ＰＣ２）、差分ＶＨＤファイル４１５（ＰＣ３）、及び差分ＶＨＤファイル４１６（ＰＣ４）が生成されている。
【００５４】
なお、差分ＶＨＤファイル４１１及び差分ＶＨＤファイル４１２は、セットアップＶＨＤ生成部１７６によって生成されたセットアップ用差分ＶＨＤファイルを示す。したがって、差分ＶＨＤファイル４１３，４１４は、差分ＶＨＤファイル４１１を複製することによって生成された差分ＶＨＤファイルである。また、差分ＶＨＤファイル４１５，４１６は、差分ＶＨＤファイル４１２を複製することによって生成された差分ＶＨＤファイルである。
【００５５】
図１２は、ＶＨＤファイルが図１１に示すように構成される際に、各クライアントコンピュータに配信されるＶＨＤファイルを示す。図１１に示すＶＨＤファイルの構成では、ＰＣ１に、基本ＶＨＤファイル４０１（マスターＡ）、差分ＶＨＤファイル４０９（マスターＡ１）、及び差分ＶＨＤファイル４１３（ＰＣ１）が配信される。ＰＣ２に、基本ＶＨＤファイル４０１（マスターＡ）、差分ＶＨＤファイル４０９（マスターＡ１）、及び差分ＶＨＤファイル４１４（ＰＣ２）が配信される。ＰＣ３に、基本ＶＨＤファイル４０１（マスターＡ）、差分ＶＨＤファイル４１０（マスターＡ２）、及び差分ＶＨＤファイル４１５（ＰＣ３）が配信される。ＰＣ４に、基本ＶＨＤファイル４０１（マスターＡ）、差分ＶＨＤファイル４１０（マスターＡ２）、及び差分ＶＨＤファイル４１６（ＰＣ４）が配信される。このような配信イメージは、通信モジュール１８によってクライアントコンピュータ２に配信される。
【００５６】
通信モジュール１８は、クライアントコンピュータ２へのディスクイメージの配信を管理する。通信モジュール１８は、クライアントコンピュータ２に設けられた通信モジュール２４との間で通信を行うことによって、クライアントコンピュータ２にディスクイメージを配信する。
【００５７】
管理サーバ１（ホストＯＳ１２）の通信モジュール１８は、リスト要求受信部１８１、リスト送信部１８２、配信要求受信部１８３、及びＶＨＤファイル配信部１８４を備える。また、クライアントコンピュータ２の通信モジュール２４は、リスト要求送信部２４１、リスト受信部２４２、配信要求送信部２４３、ＶＨＤファイル受信部２４４、及びＶＨＤファイル更新部２４５を備える。
【００５８】
クライアントコンピュータ２のリスト送信要求部２４１は、管理サーバ１にＶＨＤファイルリストの送信を要求する。ＶＨＤファイルリストは、クライアントコンピュータ２で使用される複数のＶＨＤファイル（ディスクイメージ）にそれぞれに対応するＩＤを含むリスト（ＩＤリストとも云う）である。
【００５９】
管理サーバ１のリスト要求受信部１８１は、クライアントコンピュータ２によって送信されたＶＨＤファイルリストの送信要求を受信する。リスト要求受信部１８１は、ＶＨＤファイルリストの送信が要求されたことをリスト送信部１８２に通知する。
【００６０】
リスト送信部１８２は、この通知に応答して、ＶＨＤファイルリストを要求したクライアントコンピュータ２に配信するＶＨＤファイルのリストを生成する。具体的には、リスト送信部１８２は、クライアント管理データベース１２Ａを参照して、当該クライアントコンピュータに対応するクライアント情報のステータスを読み出す。リスト送信部１８２は、読み出したステータスが“作成済み”であるか否かを判定する。読み出したステータスが“作成済み”である場合、リスト送信部１８２は、ＶＨＤファイル群１２Ｅから当該クライアントコンピュータ用のＶＨＤファイルを読み出す。例えば、リスト送信部１８２は、クライアントコンピュータ２に対応するコンピュータ名が付与されたＶＨＤファイルを読み出す。そして、リスト送信部１８２は、読み出したＶＨＤファイルから、このＶＨＤファイルのＩＤを検出する。リスト送信部１８２は、検出したＶＨＤファイルのＩＤをＶＨＤファイルリストに追加する。
【００６１】
次いで、リスト送信部１８２は、読み出したＶＨＤファイルに親のＶＨＤファイルが存在するか否かを判定する。リスト送信部１８２は、例えば、読み出したＶＨＤファイルが差分ＶＨＤファイルであるとき、当該ＶＨＤファイルに親のＶＨＤファイルが存在すると判定する。また、リスト送信部１８２は、例えば、読み出したＶＨＤファイル内に親のＩＤが設定されているとき、当該ＶＨＤファイルに親のＶＨＤファイルが存在すると判定する。
【００６２】
読み出したＶＨＤファイルに親のＶＨＤファイルが存在する場合、リスト送信部１８２は親のＶＨＤファイルをＶＨＤファイル群１２Ｅから読み出す。そして、リスト送信部１８２は、読み出した親のＶＨＤファイルから、このＶＨＤファイルのＩＤを検出する。リスト送信部１８２は、検出したＶＨＤファイルのＩＤをＶＨＤファイルリストに追加する。リスト送信部１８２は、上述のようにして、親のＶＨＤファイルを辿り、ＶＨＤファイルリストにＩＤを追加していく。すなわち、基本ＶＨＤファイルである親に到達するまで、ＶＨＤファイルリストにＩＤを追加する処理を繰り返す。
【００６３】
そして、読み出したＶＨＤファイルに親のＶＨＤファイルが存在しない場合、すなわち、読み出したＶＨＤファイルが基本ＶＨＤファイルである場合、リスト送信部１８２は、ＶＨＤファイルリストに追加されたＩＤを並び替える。具体的には、リスト送信部１８２は、基本ＶＨＤファイルに対応するＩＤを先頭に、親から子の順にＩＤを並び替える。
【００６４】
ＶＨＤファイルリスト内のＩＤを並び替えた後、又は読み出したステータスが“作成済み”でない場合、リスト送信部１８２は、ＶＨＤファイルリストをクライアントコンピュータ２に送信する。読み出したステータスが“作成済み”でない場合には、例えば、ＶＨＤファイルに対応するＩＤが含まれないＶＨＤファイルリストが送信される。
【００６５】
クライアントコンピュータ２のリスト受信部２４２は、管理サーバ１のリスト送信部１８２によって送信されたＶＨＤファイルリストを受信する。リスト受信部２４２は、受信したＶＨＤファイルリストを配信要求送信部２４３に出力する。
【００６６】
配信要求送信部２４３は、今回受信したＶＨＤファイルリストが前回受信したＶＨＤファイルリストから変更されているか否かを判定する。今回受信したＶＨＤファイルリストが前回受信したＶＨＤファイルリストから変更されていない場合、配信要求送信部２４３は処理を終了する。今回受信したＶＨＤファイルリストが前回受信したＶＨＤファイルリストから変更されている場合、配信要求送信部２４３は、今回受信したＶＨＤファイルリストに含まれるＶＨＤファイルのうち、前回受信したＶＨＤファイルリストに含まれていないＶＨＤファイルの配信を管理サーバ１に要求する。
【００６７】
図１３は、図１１に示した構成に対して、ＰＣ１に配信されるイメージに対応するＶＨＤファイルが変更された例を示す。具体的には、図１３では、マスターイメージとして差分ＶＨＤファイル４１７（マスターＡ３）が追加され、このマスターＡ３の子として、新たなＰＣ１用の差分ＶＨＤファイル４１９が生成されている。なおここでは、クライアントコンピュータ２がＰＣ１であることを想定する。
【００６８】
その場合、管理サーバ１のリスト送信部１８２は、図１４に示すように、ＶＨＤファイルが変更される前には、基本ＶＨＤファイル４０１（マスターＡ）、差分ＶＨＤファイル４０９（マスターＡ１）、及び差分ＶＨＤファイル４１３（ＰＣ１）の各々のＩＤを含むＶＨＤファイルリストをクライアントコンピュータ２に送信する。具体的には、リスト送信部１８２は、基本ＶＨＤファイル４０１（マスターＡ）のＩＤ“１”、差分ＶＨＤファイル４０９（マスターＡ１）のＩＤ“９”、及び差分ＶＨＤファイル４１３（ＰＣ１）のＩＤ“１３”を含むＶＨＤファイルリストをクライアントコンピュータ２に送信する。また、リスト送信部１８２は、ＶＨＤファイルが変更された後には、基本ＶＨＤファイル４０１（マスターＡ）、差分ＶＨＤファイル４１７（マスターＡ３）、及び差分ＶＨＤファイル４１９（ＰＣ１）の各々のＩＤを含むＶＨＤファイルリストをクライアントコンピュータ２に送信する。具体的には、リスト送信部１８２は、基本ＶＨＤファイル４０１（マスターＡ）のＩＤ“１”、差分ＶＨＤファイル４１７（マスターＡ３）のＩＤ“１７”、及び差分ＶＨＤファイル４１９（ＰＣ１）のＩＤ“１９”を含むＶＨＤファイルリストをクライアントコンピュータ２に送信する。
【００６９】
このとき、クライアントコンピュータ２の配信要求送信部２４３は、今回受信したＶＨＤファイルリストが前回受信したＶＨＤファイルリストから変更されているため、今回受信したＶＨＤファイルリストに含まれるＶＨＤファイルのうち、前回受信したＶＨＤファイルリストに含まれていないＶＨＤファイルの配信を管理サーバ１に要求する。つまり、配信要求送信部２４３は、差分ＶＨＤファイル４１７（マスターＡ３）、及び差分ＶＨＤファイル４１９（ＰＣ１）の配信を管理サーバ１に要求する。より具体的には、配信要求送信部２４３は、差分ＶＨＤファイル４１７のＩＤ“１７”と、差分ＶＨＤファイル４１９（ＰＣ１）のＩＤ“１９”とを含む配信要求を管理サーバ１に送信する。
【００７０】
管理サーバ１の配信要求受信部１８３は、クライアントコンピュータ２によるＶＨＤファイルの配信要求を受信する。そして、配信要求受信部１８３は、ＶＨＤファイル配信部１８４にクライアントコンピュータ２からＶＨＤファイルの配信要求を受信したことを通知する。
【００７１】
ＶＨＤファイル配信部１８４は、この配信要求に指定されたＶＨＤファイルのＩＤに基づいて、対応するＶＨＤファイルをＶＨＤファイル群１２Ｅから読み出す。そして、ＶＨＤファイル配信部１８４は、読み出したＶＨＤファイルをクライアントコンピュータ２に送信する。
【００７２】
次いで、ＶＨＤファイル受信部２４４は、管理サーバ１からＶＨＤファイルを受信する。そして、ＶＨＤファイル受信部２４４は、受信したＶＨＤファイルをＶＨＤファイル更新部２４５に出力する。
【００７３】
ＶＨＤファイル更新部２４５は、受信したＶＨＤファイルを用いて、クライアントコンピュータ２内に格納されたディスクイメージを更新する。ＶＨＤファイル更新部２４５は、例えば、次回ユーザ使用ＯＳ２６が起動されるときに、ディスクイメージを入れ替える。図１４に示す例では、差分ＶＨＤファイル４０９（マスターＡ１）と差分ＶＨＤファイル４１３（ＰＣ１）とが破棄され、差分ＶＨＤファイル４１７（マスターＡ３）と差分ＶＨＤファイル４１９（ＰＣ１）とが新たなディスクイメージとして格納される。
【００７４】
新しいディスクイメージで起動すると、ドライバインストール部２７１は、ディスクイメージが更新されたことによって、更新されたドライバセットを用いて、ドライバをインストールする。なお、エージェントソフトウェア２７は、ドライバセットに限らず、ディスクイメージが更新されたことに応じて、必要な処理を実行する。
【００７５】
以上の構成により、クライアントコンピュータ２で使用されるディスクイメージ（ＶＨＤファイル）のうち、変更があったＶＨＤファイルのみが管理サーバ１からクライアントコンピュータ２に送信され、送信に要する時間を短縮することができる。
【００７６】
次いで、図１５のフローチャートを参照して、仮想イメージ管理モジュール１７によるマスターイメージ作成処理の手順の例を説明する。図１５に示す例では、ＯＳがインストールされた基本ＶＨＤファイルと、この基本ＶＨＤファイルを親とし、且つアプリケーションプログラムがインストールされた第１差分ＶＨＤファイルとが作成される。以下では、これら基本ＶＨＤファイルと第１差分ＶＨＤファイルとが、クライアントコンピュータ２，３に配信される配信イメージのマスターイメージとして用いられることを想定する。
【００７７】
まず、マスターＶＨＤ生成部１７１は、マスターイメージとして用いられる基本仮想ハードディスクファイル（基本ＶＨＤファイル）を作成する（ブロックＢ１１）。次に、ＯＳインストール部１７２は、基本ＶＨＤファイルに所定のオペレーティングシステム（ＯＳ）をインストールする（ブロックＢ１２）。つまり、ＯＳインストール部１７２は、仮想マシン１４に基本ＶＨＤファイルをマウントし、マウントした基本ＶＨＤファイルにＯＳをインストールする。そして、ＯＳインストール部１７２は、基本ＶＨＤファイルにエージェントソフトウェア２７をインストールする（ブロックＢ１３）。
【００７８】
次いで、第１差分ＶＨＤ生成部１７３は、マスターイメージ（基本ＶＨＤファイル）を用いて、第１差分ＶＨＤファイルを生成する（ブロックＢ１４）。そして、アプリケーションインストール部１７４は、第１差分ＶＨＤファイルに所定のアプリケーションプログラムをインストールする（ブロックＢ１５）。つまり、アプリケーションインストール部１７４は、仮想マシン１４に第１差分ＶＨＤファイルをマウントし、マウントした第１差分ＶＨＤファイルにアプリケーションプログラムをインストールする。そして、マスターイメージ登録部１７５は、上述のようにして作成された基本ＶＨＤファイルと第１差分ＶＨＤファイルとを示すマスターイメージ情報を、マスターイメージ管理データベース１２Ｄに登録する（ブロックＢ１６）。マスターイメージ登録部１７５は、作成されたＶＨＤファイルに対応する「マスターイメージ名」と「状態」とを含むエントリをマスターイメージ管理データベース１２Ｄに登録する。このエントリに含まれる「状態」には、“配信不可”が設定される。
【００７９】
次いで、セットアップＶＨＤ生成部１７６は、セットアップモジュールが組み込まれたセットアップ用差分ＶＨＤファイルを生成する。（ブロックＢ１７）。セットアップモジュールは、ＯＳが起動された際に、ＯＳのセットアップ処理を実行するためのモジュールである。マスターイメージ登録部１７５は、セットアップ用差分ＶＨＤファイルが生成されたことに応答して、マスターイメージ管理データベース１２Ｄを更新する（ブロックＢ１８）。すなわち、マスターイメージ登録部１７５は、生成されたセットアップ用差分ＶＨＤファイルの親である第１差分ＶＨＤファイル（マスターイメージ）に対応するエントリの「状態」に、“配信可能”を設定する。
【００８０】
図１６は、マスターイメージ作成処理によってマスターイメージ管理データベース１２Ｄにマスターイメージ情報が登録された例を示す。図１６に示す例は、例えば、図１１に示すＶＨＤファイル群を作成する際のマスターイメージ管理データベース１２Ｄを示す。図１１に示すＶＨＤファイル群を作成する際には、マスターイメージ“Ａ”である基本ＶＨＤファイル４０１、マスターイメージ“Ａ１”である差分ＶＨＤファイル４０９、及びマスターイメージ“Ａ２”である差分ＶＨＤファイル４１０が作成される。したがって、マスターイメージ管理データベース１２Ｄには、マスターイメージ“Ａ”、“Ａ１”及び“Ａ２”の各々に対応するエントリが登録される。また、各エントリの「状態」には、“配信不可”が設定される。
【００８１】
そして、マスターイメージ“Ａ１”である差分ＶＨＤファイル４０９、及びマスターイメージ“Ａ２”である差分ＶＨＤファイル４１０の各々に対して、セットアップモジュールが組み込まれたとき、マスターイメージ“Ａ１”及び“Ａ２”の各々に対応するエントリの「状態」には、“配信可能”が設定される（図８参照）。
【００８２】
次いで、図１７に示すフローチャートは、クライアント管理モジュール１５によって実行されるクライアント管理処理の手順の例を示す。以下では、図１８に示す５台のクライアントコンピュータが管理されることを想定する。これら５台のクライアントコンピュータには、それぞれ“ＰＣ１”、“ＰＣ２”、“ＰＣ３”、“ＰＣ４”、及び“ＰＣ５”というコンピュータ名が付与されている。また、クライアントコンピュータ“ＰＣ１”、“ＰＣ２”、及び“ＰＣ３”の機種名は“機種１”であり、クライアントコンピュータ“ＰＣ４”、及び“ＰＣ５”の機種名は“機種２”である。つまり、クライアントコンピュータ“ＰＣ１”、“ＰＣ２”、及び“ＰＣ３”と、クライアントコンピュータ“ＰＣ４”、及び“ＰＣ５”とは、異なるハードウェア構成を有するコンピュータである。
【００８３】
まず、クライアント管理モジュール１５は、クライアントコンピュータをクライアント管理データベース１２Ａに登録する（ブロックＢ２１）。つまり、クライアント管理モジュール１５は、クライアントコンピュータを示すクライアント情報のエントリをクライアント管理データベース１２Ａに追加する。
【００８４】
次に、クライアント管理モジュール１５は、マスターイメージ管理データベース１２Ｄに登録されているマスターイメージから、クライアントコンピュータに割り当てるマスターイメージを選択する（ブロックＢ２２）。クライアント管理モジュール１５は、例えば、クライアントコンピュータ毎に指定されたマスターイメージを選択する。また、クライアント管理モジュール１５は、管理者によって指定されたマスターイメージをクライアントコンピュータに割り当ててもよい。
【００８５】
そして、クライアント管理モジュール１５は、選択されたマスターイメージに対応するマスターイメージ名を、クライアント管理データベース１２Ａに登録する（ブロックＢ２３）。
【００８６】
図１９は、ブロックＢ２１によって、クライアント管理データベース１２Ａに、上述の５台のクライアントコンピュータの各々に対応するエントリが追加された際の例を示す。例えば、クライアントコンピュータ“ＰＣ１”では、コンピュータ名が“ＰＣ１”、機種名が“機種１”、ステータスが“未作成”であるエントリが、クライアント管理データベース１２Ａに追加される。なお、追加されるエントリのマスターイメージ名には、値は設定されていない。同様にして、クライアントコンピュータ“ＰＣ２”から“ＰＣ５”の各々に対応するエントリが追加される。
【００８７】
そして、図２０は、ブロックＢ２３によって、クライアント管理データベース１２Ａにマスターイメージ名が設定された例を示す。クライアントコンピュータ“ＰＣ１”では、例えば、マスターイメージ名に“Ａ１”が設定されている。クライアントコンピュータ“ＰＣ３”では、例えば、マスターイメージ名に“Ａ２”が設定されている。また、クライアントコンピュータ“ＰＣ５”では、マスターイメージが未だ選択されていないことを示す。
【００８８】
また、図２１のフローチャートは、ドライバセット管理モジュール１６によって実行されるドライバセット管理処理の手順の例を示す。  
まず、ドライバセット管理モジュール１６は、クライアント管理データベース１２Ａを参照して、クライアント情報を読み出す（ブロックＢ３１）。ドライバセット管理モジュール１６は、クライアント情報に含まれる機種名を検出する。例えば、図２０に示すクライアント管理データベース１２Ａの例では、“機種１”と“機種２”とが検出される。
【００８９】
次に、ドライバセット管理モジュール１６は、機種毎に、対応するドライバセットを収集する（ブロックＢ３２）。ドライバセットは、機種毎に必要な複数のドライバ（ドライバプログラム）を含む。ドライバセット管理モジュール１６は、収集した機種毎のドライバセットを管理サーバ１内にドライバファイル群１２Ｃとして配置する（ブロックＢ３３）。
【００９０】
次いで、ドライバセット管理モジュール１６は、配置したドライバセットを示すドライバセット情報をドライバセット管理データベース１２Ｂに登録する（ブロックＢ３４）。具体的には、ドライバセット管理モジュール１６は、例えば、機種名とドライバセット名とを含むエントリをドライバセット管理データベース１２Ｂに追加する。そして、ドライバセット管理モジュール１６は、ドライバセット情報がドライバセット管理データベース１２Ｂに登録されたことを、仮想イメージ管理モジュール１７に通知する（ブロックＢ３５）。
【００９１】
以上の処理により、機種毎に収集されたドライバセットを示すドライバセット情報がドライバセット管理データベース１２Ｂに登録される。例えば、図７に示す例では、“機種１”のコンピュータに対して、“ドライバ１”のドライバセットが用いられることがわかる。
【００９２】
次いで、図２２に示すフローチャートを参照して、仮想イメージ管理モジュール１７によって実行される配信イメージ作成処理の手順の例を説明する。  
まず、第２差分ＶＨＤ生成部１７７は、クライアント管理データベース１２Ａを参照して、ステータスが“未作成”であるクライアントコンピュータがあるか否かを判定する（ブロックＢ４０１）。ステータスが“未作成”であるクライアントコンピュータがない場合（ブロックＢ４０１のＮＯ）、すなわち、すべてのクライアントコンピュータのステータスが“作成済み”である場合、処理を終了する。
【００９３】
ステータスが“未作成”であるクライアントコンピュータがある場合（ブロックＢ４０１のＹＥＳ）、第２差分ＶＨＤ生成部１７７は、そのクライアントコンピュータに対応するマスターイメージのＶＨＤファイルを親とするセットアップ用差分ＶＨＤファイルをコピーすることによって、当該クライアントコンピュータ用の第２差分ＶＨＤファイル（クライアント用ＶＨＤファイルとも云う）を作成する（ブロックＢ４０２）。そして、ドライバ格納部１７８は、作成したクライアント用ＶＨＤファイルをマウントする（ブロックＢ４０３）。
【００９４】
次いで、ドライバ格納部１７８は、ドライバセット管理データベース１２Ｂを参照して、クライアントコンピュータの機種に対応するドライバセットを読み出す（ブロックＢ４０４）。具体的には、ドライバ格納部１７８は、ドライバセット管理データベース１２Ｂを参照して、クライアントコンピュータの機種に対応するドライバセット名を読み出す。そして、ドライバ格納部１７８は、読み出したドライバセット名に対応するドライバセットを、ドライバファイル群１２Ｃから読み出す。ドライバ格納部１７８は、読み出したドライバセットを、クライアント用ＶＨＤファイル内の所定の位置に配置する（ブロックＢ４０５）。
【００９５】
また、ドライバ格納部１７８は、クライアント管理データベース１２Ａを参照して、クライアントコンピュータに対応するコンピュータ名を読み出す（ブロックＢ４０６）。ドライバ格納部１７８は、読み出したコンピュータ名を、クライアント用ＶＨＤファイル内の所定の位置に配置する（ブロックＢ４０７）。そして、ドライバ格納部１７８は、クライアント用ＶＨＤファイルをアンマウントする（ブロックＢ４０８）。
【００９６】
次いで、セットアップ部１７９は、クライアント用ＶＨＤファイルを用いて、仮想マシン１４上でＯＳを起動する（ブロックＢ４０９）。つまり、セットアップ部１７９は、クライアント用ＶＨＤファイル、このクライアント用ＶＨＤファイルの親である第１差分ＶＨＤファイル、及び第１差分ＶＨＤファイルの親である基本ＶＨＤファイルを用いて、ＯＳを起動する。
【００９７】
仮想マシン１４上でＯＳが起動されたとき、クライアント用ＶＨＤファイルに組み込まれたセットアップモジュールによって、ＯＳのセットアップ処理（ミニセットアップ）が実行される。このＯＳのセットアップ処理では、クライアント用ＶＨＤファイル内に配置されたコンピュータ名が、ＯＳに設定される。なお、このセットアップ処理に、プロダクトキーを設定する処理、ＩＰアドレス等のネットワーク情報を設定する処理、ＯＳを使用するユーザの情報を設定する処理等を含めてもよい。
【００９８】
セットアップ処理が完了したとき、セットアップ部１７９は、クライアント管理データベース１２Ａ内の、当該クライアントコンピュータに対応するクライアント情報のステータスを“作成済み”に書き換える（ブロックＢ４１０）。そして、セットアップ部１７９は、実行中のＯＳ（仮想マシン１４）を終了し、ブロックＢ４０１に戻る。  
以上の処理により、管理サーバ１はクライアントコンピュータに配信される配信イメージを作成することができる。その際、管理サーバ１側でコンピュータ名の設定を含むセットアップ処理を実行しておくことによって、クライアントコンピュータ２ではセットアップ処理を行う必要がない。これにより、クライアントコンピュータ２で、配信されたディスクイメージを用いてオペレーティングシステムを使用できるまでに要する時間を短縮することができる。
【００９９】
また、基本ＶＨＤファイルと差分ＶＨＤファイルとを用いて、複数のクライアントコンピュータで用いるディスクイメージを管理することによって、データ量を削減することができる。例えば、クライアントコンピュータの機種によって異なるドライバセットや、クライアントコンピュータ毎に異なるコンピュータ名等のデータを含むディスクイメージ（差分ＶＨＤファイル）はクライアント毎に作成され、ＯＳがインストールされたディスクイメージ（ＯＳイメージ）はクライアントコンピュータ間で共用される基本ＶＨＤファイルとして作成される。これにより、クライアントコンピュータ毎にＯＳイメージを作成せずに済み、データ量を削減することができる。
【０１００】
図２３のフローチャートは、クライアントコンピュータ２に設けられた通信モジュール２４によって実行されるイメージ更新処理の手順の例を示す。  
まず、リスト送信要求部２４１は、管理サーバ１にＶＨＤファイルリストの送信を要求する（ブロックＢ５１）。そして、リスト受信部２４２は、管理サーバ１によって送信されたＶＨＤファイルリストを受信したか否かを判定する（ブロックＢ５２）。管理サーバ１からＶＨＤファイルリストを受信していない場合（ブロックＢ５２のＮＯ）、リスト受信部２４２は、例えば、所定期間だけ待って再度ブロックＢ５２を実行する。
【０１０１】
管理サーバ１からＶＨＤファイルリストを受信した場合（ブロックＢ５２のＹＥＳ）、リスト受信部２４２は、受信したＶＨＤファイルリストを配信要求送信部２４３に出力する。そして、配信要求送信部２４３は、今回受信したＶＨＤファイルリストが前回受信したＶＨＤファイルリストから変更されているか否かを判定する（ブロックＢ５３）。ＶＨＤファイルリストは、例えば図２４に示すように、クライアントコンピュータ２で用いられる複数のＶＨＤファイルにそれぞれ対応するＩＤを含む。このＶＨＤファイルリストは、例えば、基本ＶＨＤファイル４０１（マスターイメージＡ）のＩＤ“１”、差分ＶＨＤファイル４０９（マスターイメージＡ１）のＩＤ“９”、及び差分ＶＨＤファイル４１３（ＰＣ１用イメージ）のＩＤ“１３”を含む（図１１参照）。
【０１０２】
今回受信したＶＨＤファイルリストが前回受信したＶＨＤファイルリストから変更されていない場合（ブロックＢ５３のＮＯ）、配信要求送信部２４３は処理を終了する。
【０１０３】
今回受信したＶＨＤファイルリストが前回受信したＶＨＤファイルリストから変更されている場合（ブロックＢ５３のＹＥＳ）、配信要求送信部２４３は、今回受信したＶＨＤファイルリストに含まれるＶＨＤファイルのうち、前回受信したＶＨＤファイルリストに含まれていないＶＨＤファイルの配信を管理サーバ１に要求する（ブロックＢ５４）。
【０１０４】
次いで、ＶＨＤファイル受信部２４４は、要求したＶＨＤファイルを管理サーバ１から受信したか否かを判定する（ブロックＢ５５）。管理サーバ１から要求したＶＨＤファイルを受信していない場合（ブロックＢ５５のＮＯ）、ＶＨＤファイル受信部２４４は、例えば、所定期間だけ待って再度ブロックＢ５５を実行する。
【０１０５】
管理サーバ１から要求したＶＨＤファイルを受信した場合（ブロックＢ５５のＹＥＳ）、ＶＨＤファイル受信部２４４は、受信したＶＨＤファイルをＶＨＤファイル更新部２４５に出力する。ＶＨＤファイル更新部２４５は、受信したＶＨＤファイルを用いて、クライアントコンピュータ２内に格納されたディスクイメージを更新する（ブロックＢ５６）。そして、ＶＨＤファイル更新部２４５は、ディスクイメージが更新されたことをドライバインストール部２７１に通知する。ドライバインストール部２７１は、次回起動時にディスクイメージが更新されたことによって、更新されたドライバセットを用いて、ドライバをインストールする。なお、エージェントソフトウェア２７は、ドライバセットに限らず、ディスクイメージが更新されたことに応じて、必要な処理を実行する。
【０１０６】
また、図２５に示すフローチャートは、管理サーバ１に設けられた通信モジュール１８によって実行されるイメージ更新応答処理の手順の例を示す。  
まず、リスト要求受信部１８１は、クライアントコンピュータからＶＨＤファイルリストの送信要求を受信したか否かを判定する（ブロックＢ６０１）。クライアントコンピュータからＶＨＤファイルリストの送信要求を受信していない場合（ブロックＢ６０１のＮＯ）、リスト要求受信部１８１は、例えば、所定期間だけ待って再度ブロックＢ６０１を実行する。
【０１０７】
クライアントコンピュータからＶＨＤファイルリストの送信要求を受信している場合（ブロックＢ６０１のＹＥＳ）、リスト要求受信部１８１は、クライアントコンピュータからＶＨＤファイルリストの送信要求を受信したことをリスト送信部１８２に通知する。リスト送信部１８２は、クライアント管理データベース１２Ａを参照して、当該クライアントコンピュータに対応するクライアント情報のステータスを読み出す（ブロックＢ６０２）。そして、リスト送信部１８２は、読み出したステータスが“作成済み”であるか否かを判定する（ブロックＢ６０３）。
【０１０８】
読み出したステータスが“作成済み”である場合（ブロックＢ６０３のＹＥＳ）、リスト送信部１８２は、ＶＨＤファイル群１２Ｅから当該クライアントコンピュータ用のＶＨＤファイルを読み出す（ブロックＢ６０４）。そして、リスト送信部１８２は、読み出したＶＨＤファイルから、このＶＨＤファイルのＵＵＩＤを検出する（ブロックＢ６０５）。リスト送信部１８２は、検出したＶＨＤファイルのＵＵＩＤをＶＨＤファイルリストに追加する（ブロックＢ６０６）。
【０１０９】
次いで、リスト送信部１８２は、読み出したＶＨＤファイルに親のＶＨＤファイルが存在するか否かを判定する（ブロックＢ６０７）。リスト送信部１８２は、例えば、読み出したＶＨＤファイルが差分ＶＨＤファイルであるとき、当該ＶＨＤファイルに親のＶＨＤファイルが存在すると判定する。また、リスト送信部１８２は、例えば、読み出したＶＨＤファイル内に親のＵＵＩＤが設定されているとき、当該ＶＨＤファイルに親のＶＨＤファイルが存在すると判定する。
【０１１０】
読み出したＶＨＤファイルに親のＶＨＤファイルが存在する場合（ブロックＢ６０７のＹＥＳ）、リスト送信部１８２は親のＶＨＤファイルをＶＨＤファイル群１２Ｅから読み出す（ブロックＢ６０８）。そして、リスト送信部１８２は、ブロックＢ６０５の処理に戻る。
【０１１１】
読み出したＶＨＤファイルに親のＶＨＤファイルが存在しない場合（ブロックＢ６０７のＮＯ）、すなわち、読み出したＶＨＤファイルが基本ＶＨＤファイルである場合、リスト送信部１８２は、ＶＨＤファイルリストに追加されたＩＤを並び替える（ブロックＢ６０９）。具体的には、リスト送信部１８２は、基本ＶＨＤファイルに対応するＩＤを先頭に、親から子の順にＩＤを並び替える。
【０１１２】
ＶＨＤファイルリスト内のＩＤを並び替えた後、又は読み出したステータスが“作成済み”でない場合（ブロックＢ６０３のＮＯ）、リスト送信部１８２は、ＶＨＤファイルリストをクライアントコンピュータ２に送信する（ブロックＢ６１０）。読み出したステータスが“作成済み”でない場合には、例えば、ＶＨＤファイルに対応するＩＤが含まれないＶＨＤファイルリストが送信される。
【０１１３】
次いで、配信要求受信部１８３は、クライアントコンピュータ２からＶＨＤファイルの配信要求を受信したか否かを判定する（ブロックＢ６１１）。クライアントコンピュータ２からＶＨＤファイルの配信要求を受信している場合（ブロックＢ６１１のＹＥＳ）、配信要求受信部１８３は、ＶＨＤファイル配信部１８４にクライアントコンピュータ２からＶＨＤファイルの配信要求を受信したことを通知する。ＶＨＤファイル配信部１８４は、この配信要求に指定されたＶＨＤファイルのＩＤに基づいて、対応するＶＨＤファイルをＶＨＤファイル群１２Ｅから読み出す。そして、ＶＨＤファイル配信部１８４は、読み出したＶＨＤファイルをクライアントコンピュータ２に送信する（ブロックＢ６１２）。
【０１１４】
以上の処理により、クライアントコンピュータ２で使用されるディスクイメージ（ＶＨＤファイル）のうち、変更があったＶＨＤファイルのみを管理サーバ１からクライアントコンピュータ２に送信すればよいので、送信に要する時間を短縮することができる。
【０１１５】
以上説明したように、本実施形態によれば、クライアントコンピュータで動作する仮想マシン上でオペレーティングシステムが使用できるまでに要する時間を短縮できる。管理サーバ１は、クライアントコンピュータに配信される配信イメージを作成する。その際、管理サーバ１側でコンピュータ名の設定を含むセットアップ処理を実行しておくことによって、クライアントコンピュータ２で、配信されたディスクイメージを用いてオペレーティングシステムを使用できるまでに要する時間を短縮することができる。
【０１１６】
また、基本ＶＨＤファイルと差分ＶＨＤファイルとを用いて、複数のクライアントコンピュータで用いるディスクイメージを管理することによって、データ量を削減することができる。例えば、クライアントコンピュータの機種によって異なるドライバセットや、クライアントコンピュータ毎に異なるコンピュータ名等のデータを含むディスクイメージ（差分ＶＨＤファイル）はクライアント毎に作成され、ＯＳがインストールされたディスクイメージ（ＯＳイメージ）はクライアントコンピュータ間で共用される基本ＶＨＤファイルとして作成される。これにより、クライアントコンピュータ毎にＯＳイメージを作成せずに済み、データ量を削減することができる。
【０１１７】
なお、本実施形態の仮想イメージ作成処理、クライアント管理処理、ドライバセット管理処理、配信イメージ作成処理、イメージ更新処理、及びイメージ更新応答処理の手順は全てソフトウェアによって実行することができる。このため、仮想イメージ作成処理、クライアント管理処理、ドライバセット管理処理、配信イメージ作成処理、イメージ更新処理、及びイメージ更新応答処理の手順を実行するプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【０１１８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１９】
１２…ホストＯＳ、１２Ａ…クライアント管理データベース、１２Ｂ…ドライバセット管理データベース、１２Ｃ…ドライバファイル群、１２Ｄ…マスターイメージ管理データベース、１２Ｅ…ＶＨＤファイル群、１５…クライアント管理モジュール、１６…ドライバセット管理モジュール、１７…仮想イメージ管理モジュール、１７１…マスターＶＨＤ生成部、１７２…ＯＳインストール部、１７３…第１差分ＶＨＤ生成部、１７４…アプリケーションインストール部、１７５…マスターイメージ登録部、１７６…セットアップＶＨＤ生成部、１７７…第２差分ＶＨＤ生成部、１７８…ドライバ格納部、１７９…セットアップ部、１８…通信モジュール、１８１…リスト要求受信部、１８２…リスト送信部、１８３…配信要求受信部、１８４…ＶＨＤファイル配信部、２…クライアントコンピュータ、２４…通信モジュール２４、２４１…リスト要求送信部、２４２…リスト受信部、２４３…配信要求送信部、２４４…ＶＨＤファイル受信部、２４５…ＶＨＤファイル更新部、２６…ユーザ使用ＯＳ、２７…エージェントソフトウェア、２７１…ドライバインストール部。
【図１】
0005175957.tif 000002
【図２】
0005175957.tif 000003
【図３】
0005175957.tif 000004
【図４】
0005175957.tif 000005
【図５】
0005175957.tif 000006
【図６】
0005175957.tif 000007
【図７】
0005175957.tif 000008
【図８】
0005175957.tif 000009
【図９】
0005175957.tif 000010
【図１０】
0005175957.tif 000011
【図１１】
0005175957.tif 000012
【図１２】
0005175957.tif 000013
【図１３】
0005175957.tif 000014
【図１４】
0005175957.tif 000015
【図１５】
0005175957.tif 000016
【図１６】
0005175957.tif 000017
【図１７】
0005175957.tif 000018
【図１８】
0005175957.tif 000019
【図１９】
0005175957.tif 000020
【図２０】
0005175957.tif 000021
【図２１】
0005175957.tif 000022
【図２２】
0005175957.tif 000023
【図２３】
0005175957.tif 000024
【図２４】
0005175957.tif 000025
【図２５】
0005175957.tif 000026