ネットワーク経由で接続された転送元システムと転送先システムで構成されるデータ転送システムにおいて、前記転送元システムは、転送する仮想マシンイメージを構成するデータを特定する第1の情報を取得する仮想マシンイメージ情報取得部と、前記転送先システムにキャッシュされているデータを特定する第2の情報を取得するキャッシュ情報取得部と、前記第1の情報と前記第2の情報を照合し、前記第2の情報以外の前記第1の情報に対応するデータを転送データとして抽出するデータ抽出部とを有し、前記転送先システムは、前記第2の情報をネットワーク経由で前記転送元システムに転送するデータ転送部と、ネットワーク経由で受信した前記転送データと自システム内にキャッシュされている前記データとを組み合わせて前記仮想マシンイメージを再構築する仮想マシン構成部とを有することを特徴とするデータ転送システム。請求項1に記載のデータ転送システムにおいて、前記第1及び第2の情報は、ファイル又はモジュールのハッシュ値であることを特徴とするデータ転送システム。請求項1に記載のデータ転送システムにおいて、前記第2の情報は、キャッシュされているモジュールを特定する情報であることを特徴とするデータ転送システム。請求項1に記載のデータ転送システムにおいて、前記第2の情報は、キャッシュされているファイルを特定する情報であることを特徴とするデータ転送システム。請求項1に記載のデータ転送システムにおいて、前記第2の情報は、複数の仮想マシンイメージに共通する情報であることを特徴とするデータ転送システム。ネットワーク経由で転送先システムと接続される転送元システムにおいて、転送する仮想マシンイメージを構成するデータを特定する第1の情報を取得する仮想マシンイメージ情報取得部と、前記転送先システムにキャッシュされているデータを特定する第2の情報を取得するキャッシュ情報取得部と、前記第1の情報と前記第2の情報を照合し、前記第2の情報以外の前記第1の情報に対応するデータを転送データとして抽出するデータ抽出部とを有することを特徴とする転送元システム。請求項6に記載の転送元システムにおいて、前記第1及び第2の情報は、ファイル又はモジュールのハッシュ値であることを特徴とする転送元システム。ネットワーク経由で転送元システムと接続される転送先システムにおいて、自システムにキャッシュされているデータを特定する第2の情報をネットワーク経由で前記転送元システムに転送するデータ転送部と、ネットワーク経由で前記転送元システムから受信した転送データと自システム内にキャッシュされている前記データとを組み合わせて仮想マシンイメージを再構築する仮想マシン構成部とを有することを特徴とする転送先システム。請求項8に記載の転送先システムにおいて、前記第2の情報は、ファイル又はモジュールのハッシュ値であることを特徴とする転送先システム。請求項8に記載の転送先システムにおいて、前記第2の情報は、キャッシュされているモジュールを特定する情報であることを特徴とする転送先システム。請求項8に記載の転送先システムにおいて、前記第2の情報は、キャッシュされているファイルを特定する情報であることを特徴とする転送先システム。請求項8に記載の転送先システムにおいて、前記第2の情報は、複数の仮想マシンイメージに共通する情報であることを特徴とする転送先システム。ネットワーク経由で転送先システムと接続される転送元システムを構成するコンピュータを、転送する仮想マシンイメージを構成するデータを特定する第1の情報を取得する仮想マシンイメージ情報取得部、前記転送先システムにキャッシュされているデータを特定する第2の情報を取得するキャッシュ情報取得部、前記第1の情報と前記第2の情報を照合し、前記第2の情報以外の前記第1の情報に対応するデータを転送データとして抽出するデータ抽出部として機能させるためのプログラム。ネットワーク経由で転送元システムと接続される転送先システムを構成するコンピュータを、自システムにキャッシュされているデータを特定する第2の情報をネットワーク経由で前記転送元システムに転送するデータ転送部、ネットワーク経由で前記転送元システムから受信した転送データと自システム内にキャッシュされている前記データとを組み合わせて仮想マシンイメージを再構築する仮想マシン構成部として機能させるプログラム。しかし、特許文献1に記載の技術は、複数の伝送チャネルを用い、大容量のデータ全体を並列転送することを前提とする。すなわち、この技術は、複数のコンピュータシステム間に複数の伝送チャネルが設定されていることを必要とする。また、特許文献1の方法は、大容量のデータ全体を転送することを前提とするため、個々の伝送チャネルの回線容量が小さい場合や複数の利用者が複数の伝送チャネルを同時に使用してファイルを転送する場合に、個々の伝送チャネルの利用頻度が高まり、伝送効率の低下が認められる。一方、特許文献2に記載の技術は、プライマリサイトコンピュータシステムとディザスタリカバリサイトコンピュータシステムの間において、共通のマスタディスクを管理する必要がある。しかし、マスタディスクの管理は、新たなコストを必要とし、更に管理対象が増えるほどその管理コストが増大する。かかる技術的課題を解決するため、本発明においては、以下に示す転送元システムと転送先システムとで構成されるデータ転送システムを提案する。本発明に係る転送元システムは、転送する仮想マシンイメージを構成するデータを特定する第1の情報を取得する仮想マシンイメージ情報取得部と、転送先システムにキャッシュされているデータを特定する第2の情報を取得するキャッシュ情報取得部と、第1の情報と第2の情報を照合し、第2の情報以外の第1の情報に対応するデータを転送データとして抽出するデータ抽出部とを有する。本発明に係る転送先システムは、前記の第2の情報をネットワーク経由で転送元システムに転送するデータ転送部と、ネットワーク経由で受信した前記の転送データと自システム内にキャッシュされているデータとを組み合わせて仮想マシンイメージを再構築する仮想マシン構成部とを有する。本発明によれば、転送元システムと転送先システムにおいて、両システムに共通する仮想マシンのマスタイメージを管理する必要性をなくすことができる。その分、キャッシュデータの消費容量を削減することができる。また、本発明は、仮想マシンイメージの再構築処理に必要なデータだけを転送し、仮想マシンイメージの全体を転送しない。このため、本発明は、使用可能な個々の伝送チャネルの回線容量が小さい場合や複数の利用者が伝送チャネルを同時に使用する場合でも、ネットワークの伝送効率を落とすことなく高速にデータ転送することができる。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。以下の実施の形態においては、便宜上その必要があるときは、複数のセクションまたは実施例に分割して説明する。特に明示した場合を除き、それらは互いに無関係ではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の各実施例において、要素の数等個数、数値、量、範囲等を含むに言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。さらに、以下の実施例において、その構成要素要素ステップ等も含むは、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須でない。以下、本発明の実施例を図面に基づいて詳細に説明する。なお、実施例を説明するための全図において、同一の機能を有する部材には同一または関連する符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態では、特に必要なとき以外は同一または同様な部分の説明を原則として繰り返さない。また、以下の実施例では、各機能部、処理部、処理手段等においては、それらの一部又は全部をプログラムを通じて実現する場合について説明するが、同機能は例えば集積回路その他のハードウェアとして実現しても良い。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSDSolidStateDrive等の記憶装置、ICカード、SDカード、DVD等の記憶媒体に格納することができる。また、制御線や情報線は、説明上必要と考えられるものを示すものであり、製品上必要な全ての制御線や情報線を表すものでない。実際にはほとんど全ての構成が相互に接続されていると考えて良い。[データ転送システムのネットワーク構成]図1に、実施例に係るデータ転送システムのネットワーク構成例を説明する。なお、以下の説明では、データの転送元となるコンピュータシステムを転送元システムと呼び、データの転送先となるコンピュータシステムを転送先システムと呼ぶ。図1は、国内サイトと海外サイトの間に構築されるデータ転送システムを表している。ただし、本実施例に係るデータ転送システムは、ネットワーク経由で接続された複数のコンピュータシステムより構築される全てのシステムに応用することができる。例えば転送元システムと転送先システムの両方が同一国内又は同一領域内に位置する場合、同一建物内又は同一室内に位置する場合にも適用することができる。また、データ転送に使用するネットワークは、有線ネットワークでも無線ネットワークでもよい。さらに、以下の説明では、実施例に係るファイル転送技術を応用したサービスの提供例として、送信元システムがグループ企業11とグループ企業22、送信先システムが海外事業所13、海外事業所24、海外事業所35、海外事業所46の場合について説明する。勿論、サービスの提供例は、この構成に限らず、送信元システムと送信先システムが同一事業体又はグループに属する場合、異なる事業体又はグループに属する場合等、様々なサービス形態が考えられる。グループ企業11には、拠点1A11、拠点1B13、本社16があり、各拠点にはデータ同期装置12、14、15が設置されている。グループ企業22には、拠点2A21、拠点2B23、本社26があり、各拠点にはデータ同期装置22、24、25が設置されている。海外事業所13には、拠点1C32、拠点2C34があり、各拠点にはデータ同期装置31、33が設置されている。海外事業所24には、拠点1D42があり、同拠点にはデータ同期装置41が設置されている。海外事業所35には、拠点1E52、拠点2D54があり、各拠点にはデータ同期装置51、53が設置されている。海外事業所46には、拠点2E62があり、同拠点にはデータ同期装置61が設置されている。一般に、各拠点同士は、VPNVirtualPrivateNetwork等を通じて仮想的なネットワークを構成しているものとする。[従来例における高速ファイル転送技術]実施例と従来例との違いを明らかにするために、まず、高速ファイル転送技術の従来例を説明する。図2に、従来例1を示す。図2は、本社16から海外事業所132に対し、仮想マシン201、204を高速に転送する場合に使用するファイル転送技術の概要を表している。従来例1の場合、本社16に設置したデータ同期装置15と海外事業所132に設置したデータ同期装置31が、仮想マシンイメージの転送を最適化する。本社16側のシステムが転送元システムであり、海外事業所132側のシステムが転送先システムに当たる。図2に示すシステムは、一般に、転送元システムにおけるデータ圧縮処理と転送先システムにおけるデータ解凍処理を組み合わせた転送データ量の削減処理、複数セッションの確立とそれらを同時に使用した多重転送処理とを採用する。図2のシステムは、専用のデータ同期装置15、31を使用し、圧縮後データ202、203の多重転送を実現する。なお、本社16や海外事業所132に設置された端末211、212に組み込まれたエージェントプログラムが、データ同期装置15、31の代替機能を担う場合もある。図3に、従来例2を示す。図3も、本社16から海外事業所132に対し、仮想マシンのイメージを高速転送する場合に使用するファイル転送技術の概要を表している。ただし、従来例2のシステムは、本社16と海外事業所132のそれぞれが、同一の仮想マシンのマスタイメージ301、302を共有する点において従来例1図2と異なる。このシステムの場合、本社16に設置したデータ同期装置15が、仮想マシンイメージ301に対するデータの変更をリアルタイムで監視し、データの変更が検知されたとき、変更部分である変更部分データ303を変更データ304として海外事業所132に転送する。このとき、海外事業所132のデータ同期装置31は、受信した変更データ304から変更部分データ305を復元し、仮想マシンイメージ302に適用する。反対に、海外事業所132の仮想マシンイメージ302にデータの変更があった場合も、同様の方法により、本社16の仮想マシンイメージ301との間でデータを同期する。なお、本社16や海外事業所132に設置された端末211、212に組み込まれたエージェントプログラムが、データ同期装置15、31の代替機能を担う場合もある。[実施例に係る高速ファイル転送技術]図4に、実施例に係る高速ファイル転送技術の具体例を示す。図4も、本社16から海外事業所132に対し、仮想マシンのイメージを高速転送する場合に使用するファイル転送技術の概要を表している。実施例に係る高速ファイル転送技術の場合、仮想マシンイメージの全体又はマスタイメージとの差分データを転送するのではなく、転送先システム内のキャッシュデータと仮想マシンイメージを構成するデータとの差分データを転送し、仮想マシンイメージは転送先システムの処理資源を利用して再構築する手法を採用する。図4の場合、海外事業所132の端末212には、任意の仮想マシンイメージに共通する基本データ例えばアプリケーションソフトウェア、ミドルソフトウェア、OSOperatingSystem等の構成ファイル402が予めキャッシュされているものとする。もっとも、キャッシュデータは任意であり、転送時点で転送先システム内の端末にキャッシュされているデータの意味で用いてもよい。キャッシュデータは、プログラムに限らず、データファイルも含んでよい。図4に示す高速ファイル転送技術をより詳細に説明する。前述したように、仮想マシンイメージの転送元である転送元システム本社16は、仮想マシンイメージ401の全体を転送せず、転送先システム端末212にキャッシュされていないデータ403だけを抽出し、転送先システム端末212に転送する。図4の場合、DBDataBaseデータ403が転送される。なお、DBデータは、データ圧縮した形態で転送してもよい。一方、転送先システム側の端末212は、キャッシュされている構成ファイル402とDBデータ403とを組み合せ、新たな仮想マシンイメージ404を再構築する様子を表している。仮想マシンイメージ404が再構築される様子を矢印で示している。前述したように、従来例1図2の場合には、仮想マシンイメージの全体をデータ圧縮した後、複数セッションを利用した多重転送により、仮想マシンイメージを転送する。しかし、本実施例では、仮想マシンイメージの再構築の際に不足するデータ、すなわちDBデータ403だけを転送する。しかも、転送するデータ量は、仮想マシンイメージの全体をデータ圧縮する場合よりも格段に小さく済み、転送データ量を最小化することができる。なお、本実施例に係る転送方式もある種の差分データ転送方式であるが、従来例2図3のように、仮想マシンのマスタイメージを送信元と送信先の両方で共通に保持する必要がない。その分、本実施例は、システム上必要とされるデータ容量を低減することができる。さらに、本実施例は、アプリケーションソフトウェア、ミドルソフトウェア、OS等の構成ファイル402をファイル単位で切り出してキャッシュできる点で従来例2図3と異なっている。このため、構成ファイル402の構成上の変更も、ファイル単位で自由に実現できる。なお、切り出し単位はモジュール単位でもよい。さらに、従来例2図3の場合には、転送元システムと転送先システムの間で仮想マシンのマスタイメージを1対1に対応付けて管理する必要がある。しかし、本実施例の場合には、アプリケーションソフトウェア、ミドルソフトウェア、OSの構成ファイル402を複数の仮想マシンイメージで共通化することができる。この場合、転送元システムと転送先システムの間において、1対NNは2以上の自然数の管理が可能となり、管理上必要なディスク容量の大幅な節約を実現できる。なお、本実施例の場合には、構成ファイル402がいわゆるプログラムファイルで構成されているが、データファイルが含まれていてもよい。[転送元システムのプログラム構成]図5に、本実施例に係る転送元システムに実装されるプログラムの構成例を示す。転送元である本社16の端末211には、オペレーティングシステム501、仮想マシンマウントプログラム502、データ抽出プログラム503がインストールされている。仮想マシンマウントプログラム502は、仮想マシンイメージをローカルファイルシステムのボリュームとしてマウントするためのプログラムである。データ抽出プログラム503は、仮想マシンイメージをリモート端末に転送する場合に、転送データを抽出するプログラムである。実際の転送データは、仮想マシンメタ情報504、空きクラスタビットマップ505、ファイルハッシュ表506、ファイルクラスタ表507、転送クラスタビットマップ508、転送データ509である。[転送先システムのプログラム構成]図6に、本実施例に係る転送先システムに実装されるプログラムの構成例を示す。転送先である海外事業所132の端末212には、オペレーティングシステム601、仮想マシンマウントプログラム602、仮想マシン構成プログラム603、モジュール抽出プログラム604がインストールされている。仮想マシンマウントプログラム602は、図5のプログラムと同一である。仮想マシン構成プログラム603は、リモート端末から転送された仮想マシンメタ情報504、空きクラスタビットマップ505、ファイルハッシュ表506、ファイルクラスタ表507、転送クラスタビットマップ508、転送データ509と、モジュールDB606のキャッシュデータに基づいて仮想マシンイメージを再構成するプログラムである。モジュール抽出プログラム604は、アプリケーションソフトウェア、ミドルソフトウェア、OSをインストールした記憶媒体やマスタとなる仮想マシンイメージから、キャッシュすべきモジュールファイルを抽出し、モジュールDB606に登録するプログラムである。さらに、本実施例に係る転送先システムは、モジュールDB606のキャッシュ情報どのモジュールがキャッシュされているかを転送元である本社16の端末211との間で共有するための仕組みとして、キャッシュ内のファイルのハッシュ値をリスト化したモジュールハッシュ表605を管理する。[仮想マシンメタ情報の構成例]図7に、仮想マシンメタ情報504の構成例を示す。仮想マシンメタ情報504は、仮想マシンイメージのヘッダ部に登録されている情報を抽出したファイルであり、仮想マシンの雛型を構築する場合に用いられる。[空きクラスタビットマップの構成例]図8に、空きクラスタビットマップ505の構成例を示す。空きクラスタビットマップ505は、仮想マシンイメージにおける仮想ディスクのビットマップ情報を抽出したファイルである。ビットマップ情報とは、ディスク上における各クラスタの利用状況を表すデータであり、ビット値の1はクラスタの使用中を示し、ビット値の0はクラスタが未使用であることを示している。図8の場合、仮想ディスクの先頭から192クラスタ=8×24までが使用中、その後24クラスタ83が未使用であることを示している。[ファイルハッシュ表の構成例]図9に、ファイルハッシュ表506の構成例を示す。ファイルハッシュ表506は、仮想マシンイメージにおける仮想ディスク内にあるファイルのハッシュ値の情報を抽出したファイルであり、転送の必要があるファイルの判別に用いられる。図9は、AUTOEXECBATというファイルのハッシュ値が0f3a597266321baであることを示している。[ファイルクラスタ表の構成例]図10に、ファイルクラスタ表507の構成例を示す。ファイルクラスタ表507は、仮想マシンイメージにおける仮想ディスク内にあるファイルのクラスタ情報ファイルがどのクラスタに格納されているかを抽出したファイルであり、転送の必要があるファイルの判別に用いられる。図10は、bootfontbinというファイルが、35164クラスタから、33クラスタ長分格納されていることを示している。[転送クラスタビットマップの構成例]図11に、転送クラスタビットマップ508の構成例を示す。転送クラスタビットマップ508は、仮想マシンイメージにおける仮想ディスクで、転送の必要なクラスタのビットマップ情報を抽出したファイルであり、ビット値の1は転送の必要なクラスタを示し、ビット値の0は転送不要なクラスタであることを示している。図11は、仮想ディスクの先頭から136クラスタ817までは転送が必要であるが、それ以外のクラスタは転送の必要がないことを示している。特に、図中の太字で示した斜体文字部分は、使用中のクラスタであり、転送の必要がないものを示している。[転送データの構成例]図12に、転送データ509の構成例を示す。転送データ509は、転送が必要なクラスタのデータを1ファイルにまとめたファイルである。[モジュールハッシュ表の構成例]図13に、モジュールハッシュ表605の構成例を示す。モジュールハッシュ表605は、モジュールDB606のキャッシュ情報どのモジュールがキャッシュされているかを転送元と共有するために、キャッシュDB内のファイルのハッシュ値をリスト化したファイルである。なお、本実施例ではハッシュ値を用いているが、モジュールの特定が可能であればその他の情報を用いてもよい。[モジュールDBの構成例]図14に、モジュールDB606の構成例を示す。モジュールDB606は、モジュールファイルのハッシュ値と実データをデータベース化したものである。本実施例では、AAAsysというファイルが、ハッシュ値da39a3ee5e6b4b0d3255bfef95601890afd80709を持ち、データが4d5a90000300000004000000ffff0000...0e1fba0e00b409cd21b8014ccd215468であることを示している。[データ処理の流れ]以下、本実施例を構成する各部において実行される処理の流れをフローチャートを用いて具体的に説明する。[仮想マシンマウントプログラムの処理]図15に、仮想マシンマウントプログラムの処理内容をフローチャートで示す。仮想マシンマウントプログラム502、602は、仮想マシンマウント要求を待ちステップ1501、仮想マシンマウント要求を受信するとステップ1502、仮想マシンイメージをローカルファイルシステムのボリュームとしてマウントするステップ1503。[データ抽出プログラムの処理]図16に、データ抽出プログラム503の処理内容をフローチャートで示す。本実施例における仮想マシンイメージの転送は、図17に示す仮想マシン基本情報抽出処理ステップ1601、図18に示す転送データ抽出処理ステップ1602の後、開始される。仮想マシンイメージの転送は、ステップ1601及び1602の生成データである、仮想マシンメタ情報504、空きクラスタビットマップ505、ファイルハッシュ表506、ファイルクラスタ表507、転送クラスタビットマップ508、転送データ509の転送により実行される。[仮想マシン基本情報抽出処理の詳細]図17に、ステップ1601として実行される仮想マシン基本情報抽出処理の詳細内容を示す。最初に、データ抽出プログラム503は、転送先システムに対し、モジュールハッシュ表605の転送を要求するステップ1701。なお、このステップ1701において、転送先システム仮想マシン構成プログラム603において実行される処理動作の詳細は図19に示す。ここで、モジュールハッシュ表605には、モジュールDB606のキャッシュ情報どのモジュールがキャッシュされているかを示す情報が記載されている。要求に対する応答として、データ抽出プログラム503は、モジュールハッシュ表605を、転送先システムから入手する。次に、データ抽出プログラム503は、仮想マシンイメージを入力し、仮想マシンメタ情報504を抽出するステップ1702。この後、データ抽出プログラム503は、抽出した情報をファイルに格納する。次に、データ抽出プログラム503は、仮想マシンマウントプログラム502に対し、仮想マシンをローカルファイルシステムのボリュームとしてマウントすることを要求するステップ1703。このステップ1703で実行される処理の詳細は図15に示している。ボリュームマウント後、データ抽出プログラム503は、空きクラスタビットマップ505を抽出するステップ1704。この後、データ抽出プログラム503は、抽出した情報をファイルに格納する。次に、データ抽出プログラム503は、マウントボリュームの全ファイルの探索が終了したか否かを判定するステップ1705。未探索ファイルが残っている間、データ抽出プログラム503は、ファイルが格納されているクラスタ情報を抽出し、抽出結果をファイルクラスタ表507に追記するステップ1706。さらに、データ抽出プログラム503は、抽出されたファイルのハッシュ値を計算し、抽出結果をファイルハッシュ表506に追記するステップ1707。ステップ1705において探索すべきファイルがなくなると、データ抽出プログラム503はループ処理を抜け、一連の処理を終了する。[転送データ抽出処理の詳細]図18に、ステップ1602として実行される転送データ抽出処理の詳細内容を示す。最初に、データ抽出プログラム503は、空きクラスタビットマップ505を転送クラスタビットマップ508にコピーするステップ1801。次に、データ抽出プログラム503は、ファイルハッシュ表506とファイルクラスタ表507を参照するステップ1802。ここで、データ抽出プログラム503は、ファイルハッシュ表506に登録されている全項目の探索が終了したか否かを判定するステップ1803。未探索項目が残っている間、データ抽出プログラム503は、ファイルハッシュ表506の各ファイルのハッシュ値が、仮想マシンイメージ転送先サイトから受信したモジュールハッシュ表605に登録済か否かをチェックするステップ1804。登録済は、該当モジュールの転送が不要であることを意味する。従って、データ抽出プログラム503は、空きクラスタビットマップ505を参照し、対応するファイルのクラスタ情報に基づいて、転送クラスタビットマップ508の対応するクラスタのビットを0に設定するステップ1805。未登録の場合、データ抽出プログラム503は、ステップ1803に戻る。データ抽出プログラム503は、未探索項目が無くなるまで、ステップ1803からステップ1805を繰り返す。これにより、転送クラスタビットマップ508には、転送の必要があるクラスタのみビット値1が設定される。未探索項目が無くなると、データ抽出プログラム503は、転送クラスタビットマップ508の全ビット探索が終了したか否かを判定するステップ1806。未探索ビットがある場合、データ抽出プログラム503は、ビット値が1か0かをチェックするステップ1807。ビット値が1の場合、データ抽出プログラム503は、転送データ509に対応するクラスタのデータを追記するステップ1808。一方、ビット値が0の場合、データ抽出プログラム503は、ステップ1806に戻る。データ抽出プログラム503は、未探索ビットが無くなるまで、ステップ1806からステップ1808を繰り返す。これにより、転送の必要があるクラスタを転送データ509に集約する。未探索ビットが無くなると、データ抽出プログラム503はループ処理を抜け、一連の処理を終了する。[モジュールハッシュ表転送処理の詳細]図19に、仮想マシン構成プログラム603によるモジュールハッシュ表転送処理のフローチャートを示す。仮想マシン構成プログラム603は、転送元システムからのモジュールハッシュ表605の転送要求の受信を待ち受けるステップ1901。仮想マシン構成プログラム603は、モジュールハッシュ表転送を受信するとステップ1902、モジュールハッシュ表605を仮想マシンイメージの転送元システムに送信するステップ1903。[仮想マシン作成処理の詳細]図20に、仮想マシン構成プログラム603により実行される仮想マシン作成処理の詳細内容を示す。最初に、仮想マシン構成プログラム603は、仮想マシンメタ情報504を入力し、仮想マシンの雛型を作成するステップ2001。次に、仮想マシン構成プログラム603は、転送クラスタビットマップ508の全ビットの探索が終了したか否かを判定するステップ2002。未探索ビットが残っている間、仮想マシン構成プログラム603は、ビット値が1か0かをチェックするステップ2003。ビット値が1の場合、仮想マシン構成プログラム603は、転送データ509を参照し、雛型仮想マシンの対応するクラスタにデータを格納するステップ2004。一方、ビット値が0の場合、仮想マシン構成プログラム603は、ステップ2002に戻る。仮想マシン構成プログラム603は、未探索ビットが無くなるまで、ステップ2002からステップ2004を繰り返す。これにより、仮想マシンイメージの転送元システムの側から送信された転送データ509の全てのデータが雛型仮想マシンに反映される。ステップ2002において未探索ビットが無くなると、仮想マシン構成プログラム603は、ファイルハッシュ表506の全項目の探索が終了したか否か判定するステップ2005。未探索項目がある場合、仮想マシン構成プログラム603は、ファイルハッシュ表506の各ファイルのハッシュ値が、モジュールDB606に登録済か否かチェックするステップ2006。登録済の場合、仮想マシン構成プログラム603は、モジュールDB606から対応するファイルのデータを抽出し、雛型仮想マシンに格納するステップ2007。一方、未登録の場合、仮想マシン構成プログラム603は、ステップ2005に戻る。仮想マシン構成プログラム603は、未探索項目が無くなるまで、ステップ2005からステップ2007を繰り返す。これにより、雛型仮想マシンには、予めキャッシュされているアプリケーションソフトウェア、ミドルソフトウェア、OSの構成ファイル402が反映される。未探索項目が無くなると、仮想マシン構成プログラム603はループ処理を抜け、一連の処理を終了する。以上のプロセス終了時点で、雛型仮想マシン仮想マシンイメージ404は、その転送元システムの仮想マシンイメージ401と同じファイルになる。[モジュール抽出プログラムの処理]図21に、モジュール抽出プログラム604の処理内容をフローチャートで示す。モジュール抽出プログラム604は、最初に、仮想マシンマウントプログラム602に、アプリケーションソフトウェア、ミドルソフトウェア、OSのインストール媒体やマスタとなる仮想マシンイメージを、ローカルファイルシステムのボリュームとしてマウントすることを要求する処理を実行するステップ2101。ボリュームのマウント後、モジュール抽出プログラム604は、ボリューム内の全ファイルの探索が終了したか否かを判定するステップ2102。未探索ファイルが在る場合、モジュール抽出プログラム604は、各ファイルのハッシュ値を計算し、モジュールDB606に登録する処理を実行しステップ2103、次に、ハッシュ値をモジュールハッシュ表605に追記する処理を実行するステップ2104。モジュール抽出プログラム604は、未探索ファイルが無くなるまで、ステップ2102からステップ2104を繰り返す。未探索ファイルが無くなると、モジュール抽出プログラム604はループ処理を抜け、一連の処理を終了する。[まとめ]以上説明したように、本実施例に係る転送先システムには、任意の仮想マシンにおいて共通に使用されるアプリケーションソフトウェア、ミドルソフトウェア、OSの構成ファイル402等のファイルが予めファイル単位でキャッシュされ、転送先システム内で管理されている。なお、キャッシュデータのファイルを共通に利用する仮想マシンの数が多いほど、仮想マシンの転送に利用するキャッシュデータの数が少なく済む。もっとも、転送先システムが転送時点でキャッシュしているファイルを、本実施例におけるキャッシュデータと考えてもよい。また、本実施例に係る転送元システムは、仮想マシンイメージの転送に先立って、転送先システムのキャッシュデータの情報を取得し、仮想マシンイメージの構成に必要でありながら、転送先システムに存在しないデータだけを抽出し、転送データを構成する。このように、本実施例の場合には、仮想マシンイメージの全体を転送する必要がなく、その分、転送データ量を低減することができる。なお、この転送データ量の低減は、仮想マシンイメージの再構築機能が、転送先システム側の機能として用意されていることにより実現される。換言すると、本実施例に係るデータ転送システムでは、ネットワーク経由によるデータ転送を、CPUを使った仮想マシンイメージの再構築処理にオフロードすることができる。また、本実施例に係るデータ転送システムは、転送元システムと転送先システムが、仮想マシンの共通のマスタイメージを管理する必要がない。このため、キャッシュデータの容量を削減することができ、ハードウェア資源が十分でない環境でも動作可能なシステムを提供することができる。勿論、キャッシュデータの容量が小さく済む分、コストの低減を実現できる。また、本実施例の場合には、転送データ量が少なく済むため、仮想マシンイメージの転送時にも、複数の伝送チャネルを利用した多重転送を必ずしも必要としない。このため、データ転送システムの構築に必要とされるネットワーク部分の自由度を高めることができる。このため、回線容量が小さい地域や高度な通信機能を利用できない地域との間でも、仮想マシンイメージの転送サービスを提供することができる。勿論、複数の伝送チャネルを用いた多重転送が可能な場合には、伝送に要する時間を短縮することができる。しかも、本実施例の場合には、転送データ量が少なく済むため、複数人が伝送チャネルを利用する場合でも、データ転送に要する占有時間が少なく済むため、ネットワーク全体における通信への影響を最小限に留めることができる。