(57)【要約】【課題】配布元装置に格納されているデータの更新された差分のみを配布先装置に配布することにより、高速にデータを配布することを可能とする。【解決手段】識別子生成部３３は、記憶部２２に格納されている第１のデータが分割された複数の第１の断片データの各々に対応する第１の識別子を生成する。記憶部２４には、第１のデータ及び第１の識別子が格納される。識別子生成部３３は、第１のデータが第２のデータに更新された場合に、当該第２のデータが分割された複数の第２の断片データの各々に対応する第２の識別子を生成する。配布制御部５１は、第１の識別子及び当該第１の識別子に対応する第２の識別子が一致するかを判定する。配布制御部５１は、第１の識別子及び当該第１の識別子に対応する第２の識別子が一致しないと判定された場合、第２の識別子に対応する第２の断片データ及び第２の識別子を記憶部２４に書き込む。【選択図】      図２
2008226167.tif 000002
【特許請求の範囲】
【請求項１】
第１のデータを格納する第１の格納手段を有する配布元装置と、
前記第１の格納手段に格納されている第１のデータが配布される配布先装置と
を具備し、
前記配布元装置は、
前記第１の格納手段に格納されている第１のデータが分割された複数の第１の断片データの各々に対応する第１の識別子を生成する第１の生成手段と、
前記第１のデータが第２のデータに更新された場合に、当該第２のデータが分割された複数の第２の断片データの各々に対応する第２の識別子を生成する第２の生成手段と
を含み、
前記配布先装置は、
前記第１の格納手段に格納されている第１のデータ及び前記第１の生成手段によって生成された第１の識別子を格納する第２の格納手段と、
前記第２の格納手段に格納されている第１の識別子及び当該第１の識別子に対応する前記第２の生成手段によって生成された第２の識別子が一致するかを判定する判定手段と、
前記判定手段によって前記第１の識別子及び当該第１の識別子に対応する前記第２の識別子が一致しないと判定された場合、当該第２の識別子に対応する前記第２の断片データ及び当該第２の識別子を前記第２の格納手段に書き込む書き込み手段と
を含む
ことを特徴とするデータ配布システム。
【請求項２】
前記第１の生成手段は、前記複数の第１の断片データの各々に対応する第１の識別子として、当該複数の第１の断片データの各々のハッシュ値を生成し、
前記第２の生成手段は、前記複数の第２の断片データの各々に対応する第２の識別子として、当該複数の第２の断片データの各々のハッシュ値を生成する
ことを特徴とする請求項１記載のデータ配布システム。
【請求項３】
前記配布元装置及び前記配布先装置とは別に設けられ、前記第１のデータ及び当該第１のデータが分割された複数の第１の断片データの各々に対応する第１の識別子と、前記第２のデータ及び当該第２のデータが分割された複数の第２の断片データの各々に対応する第２の識別子とを格納するための第３の格納手段を更に具備し、
前記配布先装置は、前記第１の識別子、前記第２の識別子、前記第１のデータ及び前記第２のデータが分割された第２の断片データを、前記第３の格納手段から取得する取得手段を更に含み、
前記第２の格納手段は、前記取得手段によって取得された第１のデータ及び第１の識別子を格納し、
前記判定手段は、前記第２の格納手段に格納されている第１の識別子及び前記取得手段によって取得された当該第１の識別子に対応する第２の識別子が一致するかを判定し、
前記書き込み手段は、前記取得手段によって取得された前記第２の識別子に対応する第２の断片データ及び当該第２の識別子を前記第２の格納手段に書き込む
ことを特徴とする請求項１記載のデータ配布システム。
【請求項４】
前記配布元装置は、
前記第１のデータ及び当該第１のデータが分割された複数の第１の断片データの各々に対応する第１の識別子を前記第３の格納手段に書き込むアップロード処理を実行するアップロード処理手段と、
前記アップロード処理手段によるアップロード処理中の前記第１のデータが格納されている領域に対する書き込みを抑止する抑止手段と
を更に含むことを特徴とする請求項３記載のデータ配布システム。
【請求項５】
前記配布先装置は、
前記取得手段によって取得された第１のデータ及び第１の識別子を前記第２の格納手段に書き込むダウンロード処理を実行するダウンロード処理手段と、
前記ダウンロード処理手段によるダウンロード処理中の前記第１のデータが格納されている領域に対する書き込みを抑止する抑止手段と
を更に含むことを特徴とする請求項３記載のデータ配布システム。
【請求項６】
前記第１のデータは第１のボリュームイメージであり、前記第２のデータは第２のボリュームイメージであり、
前記第１の断片データは、前記第１のボリュームイメージの予め設定された論理ブロックアドレス間隔で設定され、
前記第２の断片データは、前記第２のボリュームイメージの前記論理ブロックアドレス間隔で設定される
ことを特徴とする請求項１記載のデータ配布システム。
【請求項７】
前記配布先装置は、
前記第２の格納手段内の前記第１のデータが格納されている領域に対して新たな第１のデータの書き込みが発生した場合、当該第１のデータが分割された複数の第１の断片データの各々に対応する第１の識別子を無効化する無効化手段と、
前記無効化手段によって前記第１の識別子が無効化された場合に、前記新たな第１のデータが分割された複数の第１の断片データの各々に対応する第１の識別子を生成する第３の生成手段と
を更に含むことを特徴とする請求項１記載のデータ配布システム。
【請求項８】
前記配布先装置は、
前記第２の格納手段内の前記第１のデータが格納されている領域に対して新たな第１のデータの書き込みが発生した場合、当該新たな第１のデータに対応する第１の識別子を生成する第３の生成手段を更に含み、
前記書き込み手段は、前記第３の生成手段によって生成された前記第１の識別子を前記第２の格納手段に書き込む
ことを特徴とする請求項１記載のデータ配布システム。
【請求項９】
第１のデータを格納する第１の格納手段を有する配布元装置と、前記第１の格納手段に格納されている第１のデータが配布され、第２の格納手段を有する配布先装置とを備えるデータ配布システムのコンピュータにより実行されるデータ配布プログラムであって、
前記コンピュータに、
前記第１の格納手段に格納されている第１のデータが分割された複数の第１の断片データの各々に対応する第１の識別子を生成するステップと、
前記第１の格納手段に格納されている第１のデータ及び前記生成された第１の識別子を前記第２の格納手段に格納するステップと、
前記第１のデータが第２のデータに更新された場合に、当該第２のデータが分割された複数の第２の断片データの各々に対応する第２の識別子を生成するステップと、
前記第２の格納手段に格納されている第１の識別子及び当該第１の識別子に対応する前記生成された第２の識別子が一致するかを判定するステップと、
前記第１の識別子及び当該第１の識別子に対応する前記第２の識別子が一致しないと判定された場合に、当該第２の識別子に対応する前記第２の断片データ及び当該第２の識別子を前記第２の格納手段に書き込むステップと
を実行させることを特徴とするデータ配布プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを配布元から配布先に配布するデータ配布システム及びデータ配布プログラムに関する。
【背景技術】
【０００２】
近年、例えば社外に持ち出した情報機器の盗難、紛失による情報漏えい、またはセキュリティ事故への対策方法として、例えば社外に持ち出す情報機器のディスクに格納されるデータ、例えばＯＳ（Operating System）やアプリケーションを含むディスクボリュームイメージには、予め確認または承認された配布（コピー）イメージを使用する方法が提案されている。このような方法によれば、例えば社外で作成または保存されたデータは、電源が落とされると共に消去される。また、保存が必要なデータは、ネットワーク越しに会社に転送されて保存または例えば秘密分散法等の手法を用いて保存される。
【０００３】
このような１つのボリュームイメージを配布元から配布先に配布（コピー）する技術には、例えば学校の計算機演習室またはコールセンター等で多数のＰＣ（パーソナルコンピュータ）のシステムイメージを統一するための配布（デプロイ）方法が適用できる。
【０００４】
例えば配布元装置は、当該配布元装置が有する記憶部（例えばＨＤＤ等の記憶メディア）に格納されているボリュームイメージを読み込み、通信路を経由して配布先（装置）に転送する。配布先装置では、転送されたボリュームイメージが当該配布先装置の記憶部に書き込まれる。なお、配布元装置とは、例えば配布するディスクボリュームイメージ（マスタイメージ）を作成する情報機器である。一方、配布先装置は、例えば配布元装置で作成されたディスクボリュームイメージを当該配布元装置から配布される情報機器である。
【０００５】
ここで、配布元装置の記憶部に格納されているボリュームイメージが更新された場合を想定する。この場合であっても、例えばボリュームイメージを構成するブロック（ボリュームイメージが分割された断片）１つずつの更新の有無に関わらず、ボリュームイメージ全体が配布先装置に転送されることになる。これにより、例えばボリュームイメージを構成するブロックのうち、更新されていないブロックについても転送されるため配布処理が低速となる。
【０００６】
そこで、更新されたブロックについてのみ処理することで、より高速に配布処理を実行する技術として差分転送技術がある。この差分転送技術には、例えばボリュームイメージを構成するブロック毎に関する更新マップを利用して、更新されたブロックを検出する技術（以下、第１の技術と表記）がある。
【０００７】
また、例えばボリュームイメージを構成するブロック毎のデータのハッシュ値のような識別子を転送（配布）元または先で比較することで、更新されたブロックを検出する技術（以下、第２の技術と表記）がある。この第２の技術では、配布元装置及び配布先装置において、現在のボリュームイメージ（現在配布元装置の記憶部及び配布先装置の記憶部に格納されているボリュームイメージ）の各断片（ブロック）の識別子が生成される。例えば、ボリュームイメージが固定量のセクタ単位で読み込まれ、そのハッシュ値が生成される。そして、例えば配布元装置において、対応するハッシュ値（識別子）を比較し、互いのハッシュ値が異なっているセクタのデータが配布先装置に転送され、当該データが上書される。第２の技術によれば、このように識別子の違いにより、配布先装置及び配布元装置に格納されているボリュームイメージのうち、更新された部分（以下、差分と表記）を検出することができる。
【０００８】
上記したような差分転送技術により、配布元装置においてボリュームの更新があった場合に、ボリュームイメージ全体を転送することなく差分のみの転送を実現することが可能となる。
【０００９】
上記したような差分転送技術について、レプリケーションに要する時間の短縮に好適な技術が開示されている（例えば、特許文献１を参照）。この技術によれば、レプリケーション先へバックアップメディアを搬送しバックアップ装置からバックアップし、差分データのみをコピーする。
【特許文献１】特開２００６−２６８７４０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記したような第１の技術のような差分転送技術では、例えば転送先ＰＣ（配布先装置）が複数存在し、バージョンが異なる複数のボリュームイメージを有する場合、それぞれのバージョンに合わせて差分マップを管理する必要がある。また、任意のバージョンの差分マップが欠けてしまうと、そのバージョン以降のボリュームイメージを復元することは完全に不可能である。その場合、配布元装置において更新されたボリュームイメージの差分を転送することができないため、配布先装置では、配布されるボリュームイメージを全て読み込む必要がある。また、差分マップが欠けると差分を転送することができないため、例えば古いバージョンの差分マップであっても容易に捨てる（削除する）ことはできない。
【００１１】
一方、上記した第２の技術のような差分転送技術では、例えば配布を開始する時点での転送元（配布元）と転送先（配布先）それぞれのボリュームイメージの識別子が必要となる。このため、配布を開始する時点で、それぞれにボリュームイメージ全体を読み込み、当該ボリュームイメージの識別子の生成処理を行う必要がある。このとき、例えば通信路に対するアクセスが、配布元装置または配布先装置が有する記憶部へのアクセスと比較して十分高速な場合には、ボリュームイメージ全体の読み込み処理がボトルネックとなる。これにより、結果的に差分転送による配布処理の高速化の効果は小さくなる。
【００１２】
本発明の目的は、配布元装置に格納されているデータの更新された差分のみを配布先装置に配布することにより、高速にデータを配布することが可能なデータ配布システム及びデータ配布プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
本発明の１つの態様によれば、第１のデータ格納する第１の格納手段を有する配布元装置と、前記第１の格納手段に格納されている第１のデータが配布される配布先装置とを具備し、前記配布元装置は、前記第１の格納手段に格納されている第１のデータが分割された複数の第１の断片データの各々に対応する第１の識別子を生成する第１の生成手段と、前記第１の格納手段に格納されている第１のデータが第２のデータに更新された場合に、当該第２のデータが分割された複数の第２の断片データの各々に対応する第２の識別子を生成する第２の生成手段とを含み、前記配布先装置は、前記第１の格納手段に格納されている第１のデータ及び前記第１の生成手段によって生成された第１の識別子を格納する第２の格納手段と、前記第２の格納手段に格納されている第１の識別子及び当該第１の識別子に対応する前記第２の生成手段によって生成された第２の識別子が一致するかを判定する判定手段と、前記判定手段によって前記第１の識別子及び当該第１の識別子に対応する第２の識別子が一致しないと判定された場合、当該第２の識別子に対応する前記第２の断片データ及び当該第２の識別子を前記第２の格納手段に書き込む書き込み手段とを含むデータ配布システムが提供される。
【発明の効果】
【００１４】
本発明によれば、配布元装置に格納されているデータの更新された差分のみを配布先装置に配布することにより、高速にデータを配布することを可能とする。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して、本発明の実施形態について説明する。
【００１６】
図１は、本実施形態に係るデータ配布システムを構成する配布元装置、配布先装置または記憶装置のハードウェア構成を示すブロック図である。なお、図１では、配布元装置について説明するが、配布先装置及び記憶装置についても同様の構成である。以下、配布先装置及び記憶装置の構成についても、図１を用いて説明する。
【００１７】
図１に示すように、コンピュータ１０は、例えばハードディスクドライブ（ＨＤＤ）のような外部記憶装置２０と接続されている。この外部記憶装置２０は、コンピュータ１０によって実行されるプログラム２１を格納する。コンピュータ１０及び外部記憶装置２０は、配布元装置３０を構成する。
【００１８】
図２は、本実施形態に係るデータ配布システムの主として機能構成を示すブロック図である。データ配布システム１００は、配布元装置３０、記憶装置４０及び配布先装置５０から構成される。配布元装置３０及び記憶装置４０は、例えば通信路を通して通信可能に接続されている。同様に、記憶装置４０及び配布先装置５０は、例えば通信路を通して通信可能に接続されている。データ配布システム１００において、配布元装置３０は、例えばＯＳ（Operating System）やアプリケーションを含むディスクボリュームイメージ（ボリュームイメージ）を記憶装置４０にアップロードする。また、配布先装置５０は、配布元装置３０によってアップロードされたボリュームイメージを記憶装置４０からダウンロードする。これにより、配布元装置３０は、配布先装置５０に対してボリュームイメージを配布する。
【００１９】
配布元装置３０は、配布制御部３１、データアクセス部３２、識別子生成部３３及び転送部３４を含む。本実施形態において、各部３１乃至３４は、図１に示されるコンピュータ１０が外部記憶装置２０に格納されているプログラム２１を実行することにより実現されるものとする。このプログラム２１は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム４１が、例えばネットワークを介してコンピュータ１０にダウンロードされても構わない。
【００２０】
また、配布元装置３０は、記憶（格納）部２２を含む。本実施形態において、記憶部２２は、外部記憶装置２０に格納される。
【００２１】
記憶部２２は、例えばＨＤＤ等の記憶媒体であって、上記したボリュームイメージを格納する。この記憶部２２は、例えばボリュームイメージを格納するのに十分な記憶容量を有する。
【００２２】
配布制御部３１は、例えばデータ配布システム１００の管理者等から指定されたボリュームイメージのアップロードの指示を例えば上位アプリケーションより受け付ける。配布制御部３１は、データアクセス部３２を介して、例えば管理者から指定されたボリュームイメージが分割された（当該ボリュームイメージを構成する）複数の断片データを読み込む。この断片データは、ボリュームイメージが固定長のセクタ単位で読み込まれるデータであり、例えば任意の論理ブロックアドレス（ＬＢＡ：Logical Block Address）間隔毎に設定されている。また、配布制御部３１は、読み込まれた複数の断片データ（ボリュームイメージ）及び識別子生成部３３によって生成された識別子群（後述する）を、転送部３４を介して記憶装置４０に送信する。
【００２３】
データアクセス部３２は、配布制御部３１に対して、例えば記憶部２２に対する読み込み・書き込み等のアクセス機能を提供する。その一例として、例えばＳＣＳＩ（Small Computer System Interface）が挙げられる。
【００２４】
識別子生成部３３は、例えば配布制御部３１によって読み込まれたボリュームイメージが分割された複数の断片データ（第１の断片データ）の各々に対応する識別子（第１の識別子）を生成する。識別子生成部３３は、複数の断片データの各々に対応する識別子として、例えばＭＤ５またはＳＨＡ−１のようなハッシュ関数を用いて当該複数の断片データの各々のハッシュ値を生成する。識別子生成部３３は、生成された識別子（ハッシュ値）を配布制御部３１に出力する。なお、１つのボリュームイメージが分割された複数の断片データの各々に対応する識別子の群を識別子群と称する。
【００２５】
転送部３４は、配布制御部３１によって読み込まれたボリュームイメージ（を構成する断片データ）及び識別子生成部３３によって生成された識別子（識別子群）を記憶装置４０に対して転送（読み取り・書き込み）する。通信方法として、例えばｉＳＣＳＩ（Internet Small Computer System Interface）が利用可能である。
【００２６】
記憶装置４０は、転送部４１及びデータアクセス部４２を含む。本実施形態において、各部４１及び４２は、コンピュータ１０が外部記憶装置２０に格納されているプログラム２１を実行することにより実現されるものとする。
【００２７】
また、記憶装置４０は、記憶部２３を含む。本実施形態において、記憶部２３は、外部記憶装置２０に格納される。
【００２８】
記憶部２３には、例えば配布元装置３０から送信されたボリュームイメージ及び識別子群が格納される。この記憶部２３は、例えばボリュームイメージ及び識別子群を格納するのに十分な記憶容量を有する。また、ボリュームイメージ及び識別子群を格納する方法として、ボリュームイメージが格納されているパーティションは、ブートパーティションに設定し、例えば当該ブートパーティションに格納されているＯＳからは、識別子群が格納されているパーティションにはアクセスできないようにするという方法がある。
【００２９】
転送部４１は、配布元装置３０から送信されたボリュームイメージ及び識別子群を、データアクセス部４２を介して記憶部２３に書き込む。また、転送部４１は、例えば配布先装置５０からのボリュームイメージの配布を要求する配布要求に応じて、記憶部２３に格納されているボリュームイメージまたは識別子群を、データアクセス部４２を介して読み込む。転送部４１は、読み込まれたボリュームイメージまたは識別子群を配布先装置５０に対して送信する。
【００３０】
データアクセス部４２は、転送部４１に対して、例えば記憶部２３に対する読み込み・書き込み等のアクセス機能を提供する。その一例としては、上記したデータアクセス部３２と同様に、例えばＳＣＳＩが挙げられる。
【００３１】
配布先装置５０は、配布制御部５１、転送部５２及びデータアクセス部５３を含む。本実施形態において、各部５１乃至５３は、図１に示されるコンピュータ１０が外部記憶装置２０に格納されているプログラム２１を実行することにより実現されるものとする。
【００３２】
また、配布先装置５０は、記憶部２４を含む。本実施形態において、記憶部２４は、外部記憶装置２０に格納される。
【００３３】
記憶部２４には、例えば記憶装置４０から送信（転送）されたボリュームイメージ及び識別子群が格納される。この記憶部２４は、例えばボリュームイメージ及び識別子群を格納するのに十分な記憶容量を有する。また、ボリュームイメージ及び識別子群を格納する方法としては、上記した記憶部２３と同様に、ボリュームイメージが格納されているパーティションは、ブートパーティションに設定し、例えば当該ブートパーティションに格納されているＯＳからは、識別子群が格納されているパーティションにはアクセスできないようにするという方法がある。
【００３４】
配布制御部５１は、例えばデータ配布システム１００の管理者等から指定されたボリュームイメージのダウンロードの指示を例えば上位アプリケーションより受け付ける。配布制御部５１は、ダウンロードの指示を受け付けると、例えば管理者から指定されたボリュームイメージの配布要求を、転送部５２を介して記憶装置４０に対して送信する。
【００３５】
配布制御部５１は、記憶装置４０から送信されたボリュームイメージまたは識別子群を、データアクセス部５３を介して記憶部２４に書き込む。
【００３６】
また、配布制御部５１は、記憶部２４に格納されている識別子（第１の識別子）及び記憶装置４０から送信された識別子（第２の識別子）を比較する。これにより、配布制御部５１は、記憶部２４に格納されている識別子及び記憶装置４０から送信された識別子が一致するか否かを判定する。配布制御部５１は、一致しないと判定された場合、記憶装置４０から送信された識別子に対応する断片データ（以下、差分データと表記）を記憶装置３０から取得する。配布制御部５１は、取得された差分データを記憶部２４に格納する。
【００３７】
データアクセス部５３は、配布制御部５１に対して、例えば記憶部２４に対する読み込み・書き込み等のアクセス機能を提供する。その一例としては、上記したデータアクセス部３２及び４２と同様に、例えばＳＣＳＩが挙げられる。
【００３８】
次に、図３を参照して、配布元装置３０が記憶部２２に格納されているボリュームイメージを記憶装置４０にアップロードする動作について説明する。
【００３９】
アップロード処理は、大別すると、下記に示すステップＳ１〜Ｓ３の処理から構成される。まず、配布元装置３０の配布制御部３１は、例えば管理者によるアップロードの指定を受けたボリュームイメージが分割された複数の断片データ（例えば６４ＫＢ単位）を、データアクセス部３２を介して記憶部２２から読み込む（ステップＳ１）。配布制御部５１は、指定を受けたボリュームイメージが分割された複数の断片データを順次読み込む。
【００４０】
配布制御部３１は、読み込まれた断片データを、転送部３４を介して記憶装置４０に送信する。記憶装置４０では、配布元装置３０（配布制御部３１）によって送信された断片データが、記憶部２３に書き込まれる（ステップＳ２）。
【００４１】
配布元装置３０の識別子生成部３３は、配布制御部３１によって読み込まれた断片データの各々に対応する識別子を生成する。配布制御部３１は、識別子生成部３３によって生成された識別子を、転送部３４を介して記憶装置４０に送信する。記憶装置４０では、配布元装置３０によって送信された識別子が、記憶部２３に書き込まれる（ステップＳ３）。
【００４２】
なお、記憶装置４０に送信された識別子及び当該識別子の生成に用いられた断片データは、対応付けて記憶部２３に格納される。
【００４３】
上記したアップロードの指定を受けたボリュームイメージが分割された複数の断片データ及び当該複数の断片データの各々に対応する識別子が、全て記憶装置４０の記憶部２３に書き込まれると、アップロード処理は完了する。
【００４４】
なお、アップロード処理中において、当該アップロードの指定を受けたボリュームイメージ（が格納されている領域）に対する書き込みが発生することを抑止する必要がある。このため、アップロード処理は、例えば
１）指定を受けたボリュームイメージ自体からはブートしない（別のブートイメージからブートする）
２）ボリュームイメージ自体からブートする場合、書き込みをドライバレベル（フィルタドライバ）でブロック（抑止）する
のような環境で実行される。
【００４５】
上記したようなアップロード処理は、例えば配布元装置３０の記憶部２２に格納されているボリュームイメージが更新（例えばＯＳまたはアプリケーションのバージョンアップや、ウィルス対策ソフトウェアのパターンファイルの更新等）される度に実行される構成であってもよい。また、例えば管理者によって予め定められた期間毎（例えば毎日、毎月等）に実行されても構わない。これらは、例えば管理者によって変更可能である。
【００４６】
次に、図４のフローチャートを参照して、配布元装置３０が記憶部２２に格納されているボリュームイメージを記憶装置４０にアップロードする処理手順について説明する。なお、アップロード処理は、例えば管理者によってアップロードするボリュームイメージが指定（入力）されると実行される。ここでは、管理者によって指定されたボリュームイメージは、ボリュームイメージｘであるものとして説明する。
【００４７】
まず、配布元装置３０の配布制御部３１は、配布を開始するボリュームイメージｘの指定を受け付ける（ステップＳ１１）。
【００４８】
配布制御部３１は、ボリュームイメージｘを例えばｎ個の断片データｘ０、ｘ１、…ｘｎ−１に分割して処理するものとする。また、断片データｘi（ｉ＝０、１、…、ｎ−１）は、例えば一定のサイズであるものとし、例えばａバイトであるものとする。つまり、ボリュームイメージｘのサイズをｄとした場合、ｄ＝ａ×ｎ（バイト）となる。なお、以下に説明するステップＳ１２〜Ｓ１５の処理は、例えば断片データｘ０、ｘ１、…ｘiの順に実行されるものとする。
【００４９】
配布制御部３１は、ボリュームイメージｘが分割された複数の断片データの１つである断片データｘiを、データアクセス部３２を介して記憶部２２から読み込む（ステップＳ１２）。
【００５０】
次に、識別子生成部３３は、配布制御部３１によって読み込まれた断片データｘiに対応する識別子ｈi（ｉ＝０、１、…、ｎ−１）を生成する（ステップＳ１２）。識別子生成部３３は、上述したように断片データｘiに対応する識別子として、例えば当該断片データｘiのハッシュ値を生成する。この場合、識別子生成部３３は、例えばＭＤ５またはＳＨＡ−１のようなハッシュ関数を用いてハッシュ値を生成する。
【００５１】
配布制御部３１は、読み込まれた断片データｘiを、転送部３４を介して記憶装置４０に送信する。配布制御部３１（転送部３４）によって送信された断片データｘiは、記憶装置４０の転送部４１及びデータアクセス部４２を介して記憶部２３に書き込まれる（ステップＳ１４）。
【００５２】
配布制御部３１は、識別子生成部３３によって生成された識別子ｈiを、転送部３４を介して記憶装置４０に送信する。配布制御部３１（転送部３４）によって送信された識別子ｈiは、記憶装置４０の転送部４１及びデータアクセス部４２を介して記憶部２３に書き込まれる（ステップＳ１５）。
【００５３】
なお、上記した識別子ｈi及び当該識別子ｈiに対応する断片データｘiは、対応付けて記憶部２３に格納される。
【００５４】
次に、ｎ個の断片データの全てについて上記したステップＳ１２からＳ１５の処理が実行されたか否かが判定される（ステップＳ１６）。全てについて処理が実行されたと判定された場合（ステップＳ１６のＹＥＳ）、アップロード処理は完了される。
【００５５】
一方、全てについて処理が実行されていないと判定された場合（ステップＳ１６のＮＯ）、ステップＳ１２に戻って、まだ処理されていない断片データについて処理が実行される。
【００５６】
ここで、図５は、例えば上記したようなアップロード処理が完了した際の記憶装置４０の記憶部２３に格納されているボリュームイメージｘ及び当該ボリュームイメージｘに対応する識別子群ｈのデータ構造の一例を示す。
【００５７】
図５に示すように、記憶部２３には、例えばボリュームイメージｘが分割された複数の断片データｘ０、ｘ１、…ｘｎ−１が、先頭から順に格納されている。それに続いて、識別子ｈ０、ｈ１、…ｈｎ−１が順に格納されている。なお、例えば１つのボリュームイメージｘが分割された複数の断片データｘ０、ｘ１、…ｘｎ−１の各々に対応する複数の識別子ｈ０、ｈ１、…ｈｎ−１をまとめて識別子群ｈと称する。
【００５８】
図５に示す例では、領域２３１に格納されている断片データｘ０に対応する識別子は、領域２３２に格納されている識別子ｈ０であり、当該断片データｘ０及び識別子ｈ０は対応付けられている。また、断片データｘ０及び識別子ｈ０以外についても同様である。
【００５９】
次に、図６を参照して、配布先装置５０が記憶装置４０（の記憶部２３）に格納されているボリュームイメージを一括ダウンロードする動作について説明する。この一括ダウンロードは、例えば配布先装置５０において、まだ配布元装置３０からボリュームイメージの配布が行われていない場合に、ボリュームイメージをダウンロードする際に実行される。つまり、例えば配布先装置５０の記憶部２４にボリュームイメージが書き込まれていない場合に実行される。
【００６０】
なお、記憶装置４０の記憶部２３に格納されているボリュームイメージはボリュームイメージｘであるものとする。また、記憶部２３に格納されているボリュームイメージｘに対応する識別子群は、識別子群ｈであるものとする。また、例えば管理者によるダウンロードの指定を受けたボリュームイメージは、ボリュームイメージｘであるものとする。
【００６１】
一括ダウンロード処理は、大別すると、下記に示すステップＳ２１及びＳ２２の処理から構成される。まず、配信先装置５０は、記憶装置４０の転送部４１及びデータアクセス部４２を介して、記憶部２３に格納されているボリュームイメージｘ（が分割された複数の断片データｘ０、ｘ１、…ｘｎ−１）を読み込む。配布先装置５０では、読み込まれたボリュームイメージｘが記憶部２４に書き込まれる（ステップＳ２１）。
【００６２】
また、配信先装置５０は、記憶装置４０の転送部４１及びデータアクセス部４２を介して、記憶部２３に格納されている識別子群ｈ（識別子ｈ０、ｈ１、…ｈｎ−１）を読み込む。配布先装置５０では、読み込まれた識別子群ｈが記憶部２４に書き込まれる（ステップＳ２２）。
【００６３】
なお、記憶装置４０から読み出されたボリュームイメージｘが分割された断片データｘ０、ｘ１、…ｘｎ−１及び識別子ｈ０、ｈ１、…ｈｎ−１は、それぞれ対応付けて記憶部２４に格納される。
【００６４】
上記したダウンロードの指定を受けたボリュームイメージｘ及び識別子群ｈが配布先装置５０の記憶部２４に書き込まれると、一括ダウンロード処理は完了する。
【００６５】
なお、一括ダウンロード処理中において、当該ダウンロードの指定を受けたボリュームイメージ（ここではボリュームイメージｘ）がダウンロードされる先の、配信先装置５０の記憶部２３内の領域に対する書き込みが発生することを抑止する必要がある。このため、ダウンロード処理は、上記したアップロード処理と同様に例えば
１）指定を受けたボリュームイメージ（ボリュームイメージｘ）自体からはブートしない（別のブートイメージからブートする）
２）ボリュームイメージ（ボリュームイメージｘ）自体からブートする場合、書き込みをドライバレベル（フィルタドライバ）でブロックする
のような環境で実行される。
【００６６】
なお、上記した一括ダウンロード処理中に例えばアップロード処理が行われることにより、破壊された状態のボリュームイメージがダウンロードされるのを防止するために、アップロードまたはダウンロードのどちらかの作業に優先度を設けるなどして、ボリュームイメージを適切に保護する必要がある。
【００６７】
次に、図７のフローチャートを参照して、配布先装置５０が記憶装置４０の記憶部２３に格納されているボリュームイメージを一括ダウンロードする処理手順について説明する。
【００６８】
一括ダウンロード処理は、例えば管理者によってダウンロードするボリュームイメージが指定（入力）されると実行される。ここでは、管理者によって指定されたボリュームイメージは、記憶装置４０の記憶部２３に格納されているボリュームイメージｘであるものとして説明する。また、ボリュームイメージｘに対応付けて記憶部２３に格納されている識別子群は、識別子群ｈであるものとする。
【００６９】
まず、配布先装置５０の配布制御部５１は、配布を受けるボリュームイメージｘの指定を受け付ける（ステップＳ３１）。
【００７０】
配布制御部５１は、例えば指定されたボリュームイメージｘの配布を要求する配布要求を、転送部５２を介して記憶装置４０に対して送信する。配布先装置５０（配布制御部５１）によって送信された配布要求に応じて、記憶装置４０の転送部４１は、記憶部２３に格納されているボリュームイメージｘを読み込む。このとき、転送部４１は、データアクセス部４２を介してボリュームイメージｘを読み込む。転送部４１は、読み込まれたボリュームイメージｘを配布先装置５０に送信する。
【００７１】
配布先装置５０の配布制御部５１は、記憶装置４０の転送部４１によって送信されたボリュームイメージｘを読み込む（ステップＳ３２）。
【００７２】
配布制御部５１は、読み込まれたボリュームイメージｘを、データアクセス部５３を介して記憶部２４に書き込む（ステップＳ３３）。
【００７３】
また、記憶装置４０の転送部４１は、配布先装置５０からの配布要求に応じて、記憶部２３に格納されている識別子群ｈを読み込む。転送部４１は、データアクセス部４２を介して識別子群ｈを読み込む。転送部４１は、読み込まれた識別子群ｈを配布先装置５０に送信する。この識別子群ｈは、ボリュームイメージｘが分割された断片データｘ０、ｘ１、…ｘｎ−１の各々に対応する識別子ｈ０、ｈ１、…ｈｎ−１である。
【００７４】
配布先装置５０の配布制御部５１は、記憶装置４１の転送部４１によって送信された識別子群ｈを読み込む（ステップＳ３４）。
【００７５】
配布制御部５１は、読み込まれた識別子群ｈを、データアクセス部５３を介して記憶部２４に書き込む（ステップＳ３５）。なお、読み込まれた識別子群ｈは、ボリュームイメージｘ（が分割された断片データｘ０、ｘ１、…ｘｎ−１）に対応付けて記憶部２４に書き込まれる。
【００７６】
次に、図８を参照して、配布先装置５０が記憶装置４０（の記憶部２３）に格納されているボリュームイメージを差分ダウンロードする動作について説明する。この差分ダウンロードは、例えば配布先装置５０において、既にボリュームイメージが配布されており、当該ボリュームイメージが例えば配布元装置３０において更新された場合に、当該更新されたボリュームイメージをダウンロードする際に実行される。
【００７７】
ここでは、配布先装置５０の記憶部２４に格納されているボリュームイメージはボリュームイメージｘであるものとし、当該記憶部２３に格納されている当該ボリュームイメージｘに対応する識別子群は識別子群ｈであるものとする。また、記憶装置４０の記憶部２３に格納されているボリュームイメージはボリュームイメージｘ´であるものとし、当該記憶部２３に格納されている当該ボリュームイメージｘ´に対応する識別子群は識別子ｈ´であるものとする。また、例えば管理者によるダウンロードの指定を受けたボリュームイメージは、ボリュームイメージｘ´であるものとする。
【００７８】
ここで、図９は、例えば記憶装置４０の記憶部２３に格納されているボリュームイメージｘ´及び識別子群ｈ´のデータ構造の一例を示す。ボリュームイメージｘ´は、例えばボリュームイメージｘが更新されたものであり、ｎ個の断片データｘ０´、ｘ１´、…ｘｎ−１´から構成される。また、識別子群ｈ´は、当該ボリュームイメージｘ´に対応する識別子群であり、識別子ｈ０´、ｈ１´、…ｈｎ−１´である。
【００７９】
図９に示すように、記憶部２３には、例えばボリュームイメージｘ´が分割された断片データｘ０´、ｘ１´、…ｘｎ−１´が先頭から順に格納されている。それに続いて、識別子ｈ０´、ｈ１´、…ｈｎ−１´が順に格納されている。
【００８０】
図９に示す例では、領域２３３に格納されている断片データｘ０´を用いて生成された識別子は、領域２３４に格納されている識別子ｈ０´であり、当該断片データｘ０´及び識別子ｈ０´は対応する。また、断片データｘ０´及び識別子ｈ０´以外についても同様である。
【００８１】
一方、上述したようにボリュームイメージｘに対応する識別子群は識別子ｈであるものとし、ボリュームイメージｘ及び当該ボリュームイメージｘに対応する識別子ｈのデータ構造は、上述した図５に示すデータ構造であるものとする。
【００８２】
図５及び図９に示すように、ボリュームイメージｘが更新されたボリュームイメージｘ´及び識別子群ｈ´のデータ構造は、当該ボリュームイメージｘ及び識別子群ｈのデータ構造と対応する構造となっている。図５及び図９に示す例では、図５に示す領域２３１に格納されている断片データｘ０は、図９に示す領域２３３に格納さている断片データｘ０´と対応する。また、図６に示す領域２３２に格納されている識別子ｈ０と、図９に示す領域２３４に格納されている識別子ｈ０´は対応する。なお、他の断片データ及び識別子についても同様である。
【００８３】
このように、更新前及び更新後のボリュームイメージを同一のデータ構造とすることで、識別子の比較により更新された部分の断片データ（差分データ）を検出できる。
【００８４】
なお、このようなデータ構造は、予め配布元装置３０、記憶装置４０及び配布先装置５０において設定（定義）されている。また、配布元装置３０、記憶装置４０及び配布先装置５０において、ボリュームイメージが分割された断片データ及び当該断片データに対応する識別子を交互に配置するデータ構造であってもよい。また、データ構造が、予め配布元装置３０、記憶装置４０及び配布先装置５０において設定されていない場合には、当該設定のためのデータをボリュームイメージ及び識別子群に付加する構成であってもよい。
【００８５】
図８に戻ると、差分ダウンロード処理は、下記に示すステップＳ４１〜Ｓ４４の処理から構成される。まず、配信先装置５０の配布制御部５１は、記憶装置４０の転送部４１及びデータアクセス部４２を介して、指定されたボリュームイメージｘ´に対応する識別子群ｈ´（識別子ｈ０´、ｈ１´、…ｈｎ−１´）を読み込む（ステップＳ４１）。
【００８６】
次に、配布制御部５１は、記憶部２４に格納されているボリュームイメージｘ（配布先装置５０において現在使用しているボリュームイメージ）に対応する識別子群ｈを記憶部２４から読み込む（ステップＳ４２）。配布制御部５１は、読み込まれた識別子群ｈ及び識別子群ｈ´のそれぞれ対応する識別子同士を比較する。
【００８７】
配布制御部５１は、識別子群ｈ´の識別子のうち、一致しない識別子に対応する断片データを、記憶装置４０の転送部４１及びデータアクセス部４２を介して記憶部２３から読み込む。配布制御部５１は、読み込まれた断片データを、データアクセス部５３を介して記憶部２４に上書きする（ステップＳ４３）。
【００８８】
また、配布制御部５１は、識別子群ｈ´の識別子のうち、一致しない識別子を記憶部２４に上書きする（ステップＳ４４）。
【００８９】
次に、図１０のフローチャートを参照して、配布先装置５０が記憶装置４０の記憶部２３に格納されているボリュームイメージを差分ダウンロードする処理手順について説明する。
【００９０】
ここでは、図８で説明したように、配布先装置５０の記憶部２４にはボリュームイメージｘ及び識別子群ｈが格納されているものとし、記憶装置４０の記憶部２３にはボリュームイメージｘ´及び識別子群ｈ´が格納されているものとする。なお、ボリュームイメージｘ´は、ボリュームイメージｘが更新されたものとする。この記憶装置４０の記憶部２３に格納されているボリュームイメージｘ´及び識別子群ｈ´は、例えば配布元装置３０においてボリュームイメージｘがボリュームイメージｘ´に更新された際に、上述した図４に示す処理と同様に、当該配布元装置３０が記憶装置４０にアップロード処理したものである。
【００９１】
差分ダウンロード処理は、例えば管理者によってダウンロードするボリュームイメージが指定（入力）されると実行される。ここでは、例えば管理者によって指定されたボリュームイメージは、ボリュームイメージｘ´であるものとして説明する。
【００９２】
まず、配布先装置５０の配布制御部５１は、配布を受け付けるボリュームイメージｘ´の指定を受け付ける（ステップＳ５１）。
【００９３】
配布制御部５１は、記憶装置４０の転送部４１及びデータアクセス部４２を介して、ボリュームイメージｘ´のデータサイズｄ´を記憶装置４０から取得する（ステップＳ５２）。
【００９４】
配布制御部５１は、記憶部２４に格納されているボリュームイメージｘ（前回配布を受けたボリュームイメージ）のデータサイズｄを取得する（ステップＳ５３）。
【００９５】
配布制御部５１は、取得されたデータサイズｄ及びｄ´が同一であるか否かを判定する（ステップＳ５４）。この処理により、例えば配布されるボリュームイメージｘ´が、記憶部２４に格納されているボリュームイメージｘが更新されたものであるか否かを判定する。つまり、データサイズが異なる場合は、例えば配布の対象となるボリュームイメージの指定ミス等を検知できる。
【００９６】
取得されたデータサイズｄ及びｄ´が同一であると判定された場合（ステップＳ５４のＹＥＳ）、配布制御部５１は、記憶装置４０の転送部４１及びデータアクセス部４２を介して、記憶部２３に格納されている識別子ｈi´（ｉ＝０、１、…、ｎ−１）を取得する（ステップＳ５５）。
【００９７】
配布制御部５１は、記憶部２４に格納されている識別子ｈi（ｉ＝０、１、…、ｎ−１）を、データアクセス部５３を介して取得する（ステップＳ５６）。
【００９８】
配布制御部５１は、取得された識別子ｈi及び識別子ｈi´が一致する（異なっている）か否かを判定する（ステップＳ５７）。
【００９９】
識別子ｈi及び識別子ｈi´が一致しない（異なっている）と判定された場合（ステップＳ５７のＮＯ）、配布制御部５１は、記憶装置４０の記憶部２３に格納されている識別子ｈi´に対応する断片データｘi´を取得する（ステップＳ５８）。このとき、配布制御部５１は、記憶装置４０の転送部４１及びデータアクセス部４２を介して、断片データｘi´を取得する。ここで取得された断片データｘi´が、ボリュームイメージｘ´のうちの更新された部分を示す差分データである。
【０１００】
配布制御部５１は、取得された断片データｘi´（差分データ）を、データアクセス部５３を介して断片データｘiに上書きする（ステップＳ５９）。
【０１０１】
配布制御部５１は、取得された識別子ｈi´を、データアクセス部５３を介して識別子ｈiに上書きする（ステップＳ６０）。
【０１０２】
次に、識別子群ｈ（識別子ｈ０、ｈ１、…ｈｎ−１）及び識別子群ｈ´（識別子ｈ０´、ｈ１´、…ｈｎ−１´）の全てについて上記したステップＳ５５〜ステップＳ６０の処理が実行されたか否かが判定される（ステップＳ６１）。
【０１０３】
識別子群及び識別子群ｈ´の全てについて処理が実行されたと判定された場合（ステップＳ６１のＹＥＳ）、差分ダウンロード処理は完了される。
【０１０４】
一方、識別子群及び識別子群ｈ´の全てについて処理が実行されていないと判定された場合（ステップＳ６１のＮＯ）、ステップＳ５５に戻って、まだ処理が実行されていない識別子について処理が実行される。
【０１０５】
また、ステップＳ５４において取得されたデータサイズｄ及びｄ´が同一でないと判定された場合、例えば配布対象となるボリュームイメージの指定ミス等であるものとして、差分ダウンロード処理は実行されない。この場合、例えば差分ダウンロードが実行されない旨が、例えば管理者に対して通知（出力）される。
【０１０６】
また、ステップＳ５７において識別子ｈi及び識別子ｈi´が一致すると判定された場合、ステップＳ６１の処理が実行される。
【０１０７】
上記したようにステップＳ５７において識別子ｈi及び識別子ｈi´が一致しない場合には、識別子ｈiに対応する断片データｘiが識別子ｈi´に対応する断片データｘi´（差分データ）に更新されたものとみなされる。一方、識別子ｈi及び識別子ｈi´が一致する場合には、識別子ｈiに対応する断片データｘiは更新されていないものとみなされる。つまり、識別子ｈiに対応する断片データｘi及び識別子ｈi´に対応する断片データｘi´の内容は変更（更新）されていないものとみなされる。
【０１０８】
上記したように本実施形態においては、配布元装置３０において生成された識別子群ｈを配布先装置５０に格納し、当該配布元装置３０においてボリュームイメージが更新された場合、当該配布先装置５０に格納されている識別子群ｈ及び配布元装置３０において新たに生成された識別子群ｈ´を比較することにより、ボリュームイメージの更新された差分データのみを配布することが可能となる。よって、更新されたボリュームイメージを配布する際の送信（転送）するデータ量を少なくすることで配布処理の高速化を図ることが可能となる。
【０１０９】
また、本実施形態においては、例えば差分マップを管理する必要がなく、また、配布先装置５０において識別子を比較するために新たに識別子を生成する必要もない。
【０１１０】
また、本実施形態においては、識別子としてハッシュ値を用いる構成により、例えば固有の識別子を生成するために配布済みの全データパターンを記憶（格納）しておく必要がない。
【０１１１】
また、本実施形態においては、記憶装置４０を設ける構成により、配布元装置３０は例えばボリュームイメージの配布の際に識別子を生成することなく、予め記憶装置４０にアップロードすることが可能となる。これにより、配布元装置３０及び配布先装置５０において独立して配布処理を実行することができる。
【０１１２】
なお、本実施形態ではボリュームイメージの配布処理について説明したが、本実施形態は、例えばファイル等のデータの配布処理に対しても適用される。
【０１１３】
また、本実施形態においては記憶装置４０が設けられるものとして説明したが、この記憶装置４０が設けられない構成であっても構わない。この場合、配布元装置３０は、ボリュームイメージ及び識別子を記憶装置４０にアップロードせず、直接配布先装置５０に送信することになる。また、配布元装置３０において予め識別子を生成し、記憶部２２に格納しておく構成としてもよい。
【０１１４】
［第１の変形例］
次に、図１１を参照して、本実施形態の第１の変形例について説明する。図１１は、本変形例に係るデータ配布システム１０１の主として機能構成を示すブロック図である。なお、図２と同様の部分には同一参照符号を付してその詳しい説明を省略する。ここでは、図２と異なる部分について主に述べる。以下の変形例についても同様にして重複した説明を省略する。
【０１１５】
本変形例に係るデータ配布システム１０１は、配布先装置６０を備える。この配布先装置６０は、前述した本実施形態の配布先装置５０とは、識別子生成部６１を含む点で異なる。なお、配布先装置６０のハードウェア構成は、配布先装置５０と同様であり、識別子生成部６１は、前述した図１に示されるコンピュータ１０が外部記憶装置２０に格納されているプログラム２１を実行することにより実現されるものとする。
【０１１６】
本変形例においては、配布先装置６０の配布制御部５１は、例えば記憶部２４内のボリュームイメージが格納されている領域に対してデータ（新たなボリュームイメージ）の書き込みが発生した場合に、ボリュームイメージに対応する識別子群（識別子全体）を無効化する。
【０１１７】
識別子生成部６１は、例えば配布先装置６０の記憶部２４に格納されているボリュームイメージに対応する識別子群が無効化された場合、新たなボリュームイメージが分割された複数の断片データを読み込み、当該断片データの各々に対応する識別子（識別子群）を生成する。識別子生成部６１は、断片データに対応する識別子として、例えばＭＤ５またはＳＨＡ−１のようなハッシュ関数を用いて当該断片データのハッシュ値を生成する。
【０１１８】
なお、配布先装置６０の配布制御部５１は、例えば記憶部２４内のボリュームイメージが格納されている領域に対して例えば新たなボリュームイメージの書き込みが発生した場合に、ボリュームイメージ上の当該書き込みが発生した断片データ（書き込まれたデータを含む範囲の断片データ）に対応する識別子（識別子単体）のみを無効化する構成であっても構わない。
【０１１９】
次に、図１２にフローチャートを参照して、例えば記憶部２４に格納されているボリュームイメージに対応する識別子群が無効化された場合の差分ダウンロードの処理手順について説明する。
【０１２０】
ここでは、前述した図１０で説明したように、配布先装置６０の記憶部２４にはボリュームイメージｘ及び識別子群ｈが格納されているものとし、記憶装置４０の記憶部２３にはボリュームイメージｘ´及び識別子群ｈ´が格納されているものとする。また、例えば管理者によって指定されたボリュームイメージは、ボリュームイメージｘ´であるものとして説明する。
【０１２１】
まず、上記した図１０に示すステップＳ５１に相当するステップＳ７１の処理が実行される。
【０１２２】
次に、配布制御部５１は、記憶部２４に格納されている識別子群ｈが無効化されているか否かを判定する（ステップＳ７２）。
【０１２３】
識別子群ｈが無効化されていると判定された場合（ステップＳ７２のＹＥＳ）、配布制御部５１は、記憶部２４に格納されているボリュームイメージｘが分割された断片データｘ０、ｘ１、…ｘｎ−１を、データアクセス部５３を介して読み出す。
【０１２４】
識別子生成部６１は、配布制御部５１によって読み出された断片データｘ０、ｘ１、…ｘｎ−１の各々に対応する識別子（つまり、識別子群ｈ）を生成する（ステップＳ７３）。
【０１２５】
次に、図１０に示すステップＳ５２からＳ６１の処理に相当するステップＳ７４からＳ８３の処理が実行される。
【０１２６】
一方、ステップＳ７２において識別子群ｈが無効化されていないと判定された場合には、図１０に示すステップＳ５２からＳ６１に相当するステップＳ７４からＳ８３の処理が実行される。
【０１２７】
つまり、書き込み発生により識別子群ｈが無効化された場合には、識別子生成部６１によって書き込みが発生したボリュームイメージｘに対応する識別子群ｈが新たに生成され、当該識別子群ｈに基づいて差分ダウンロード処理が実行される。これにより、配布先装置５０においてデータの書き込みが発生した場合であっても、差分データのダウンロード処理が可能となる。
【０１２８】
次に、図１３のフローチャートを参照して、例えば上記したようにボリュームイメージ上の書き込みが発生した断片データに対応する識別子のみが無効化された後に実行される差分ダウンロードの処理手順について説明する。
【０１２９】
ここでは、前述した図１０で説明したように、配布先装置６０の記憶部２４にはボリュームイメージｘ及び識別子群ｈが格納されているものとし、記憶装置４０の記憶部２３にはボリュームイメージｘ´及び識別子群ｈ´が格納されているものとする。また、例えば管理者によって指定されたボリュームイメージは、ボリュームイメージｘ´であるものとして説明する。
【０１３０】
まず、前述した図１０に示すステップＳ５１からＳ５６の処理に相当するステップＳ９１からＳ９６の処理が実行される。
【０１３１】
次に、配布制御部５１は、ステップＳ９６の処理において取得された識別子ｈiが無効化されているか否かを判定する（ステップＳ９７）。
【０１３２】
配布制御部５１によって識別子ｈiが無効化されていると判定された場合には（ステップＳ９７のＹＥＳ）、図１０のステップＳ５８からＳ６１の処理に相当するステップＳ９９からＳ１０２の処理が実行される。
【０１３３】
一方、配布制御部５１によって識別子ｈiが無効化されていないと判定された場合には（ステップＳ９７のＹＥＳ）、図１０のステップＳ５７からＳ６１の処理に相当するステップＳ９８からＳ１０２の処理が実行される。
【０１３４】
つまり、書き込み発生により識別子ｈiが無効化された場合には、識別子ｈi´と比較することなく、識別子ｈi´に対応する断片データｘi´及び当該識別子ｈi´が無条件で記憶部２４に上書きされることになる。これにより、配布先装置５０においてデータの書き込みが発生した場合であっても、差分データのダウンロード処理が可能となる。
【０１３５】
上記したように本変形例においては、配布先装置６０でボリュームイメージに対してデータの書き込みが発生した場合に、当該ボリュームイメージに対応する識別子群を無効化する。これにより、配布先装置６０においてデータの書き込みが発生した場合であっても、差分データを配布することができる。
【０１３６】
なお、本変形例においては、配布先装置６０でボリュームイメージに対してデータの書き込みが発生した場合に、当該ボリュームイメージ上で書き込みが発生した断片データに対応する識別子のみを無効化する構成であっても、差分データを配布することが可能となる。
【０１３７】
［第２の変形例］
次に、本実施形態の第２の変形例について説明する。本変形例に係るデータ配布システムの機能構成は、前述した第１の変形例と同様であり、図１１を用いて説明する。
【０１３８】
本変形例においては、識別子生成部６１は、例えば配布先装置６０の記憶部２４内のボリュームイメージが格納されている領域に対して例えばデータ（新たなボリュームイメージ）の書き込みが発生した際に、ボリュームイメージ上の書き込みが発生した断片データの識別子を生成する。識別子生成部６１によって生成された識別子は、書き込みが発生した断片データに対応付けて記憶部２４に上書きされる。
【０１３９】
つまり、本変形例においては、配布先装置６０の記憶部２４に格納されているボリュームイメージに対して書き込みが発生する（当該ボリュームイメージが更新される）と同時に、当該書き込みが発生した断片データに対応する識別子を更新する。
【０１４０】
上記したように本変形例においては、配布先装置６０でボリュームイメージに対してデータの書き込みが発生した場合に、当該書き込みが発生した断片データに対応する識別子を更新する。これにより、配布先装置６０においてデータの書き込みが発生した場合であっても、差分データを配布することができる。
【０１４１】
なお、本願発明は、上記実施形態またはその各変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態またはその各変形例に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態またはその各変形例に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態またはその各変形例に亘る構成要素を適宜組合せてもよい。
【図面の簡単な説明】
【０１４２】
【図１】本発明の実施形態に係るデータ配布システムを構成する配布元装置、配布先装置または記憶装置のハードウェア構成を示すブロック図。
【図２】本実施形態に係るデータ配布システムの主として機能構成を示すブロック図。
【図３】配布元装置３０が記憶部２２に格納されているボリュームイメージを記憶装置４０にアップロードする動作について説明するための図。
【図４】配布元装置３０が記憶部２２に格納されているボリュームイメージを記憶装置４０にアップロードする処理手順を示すフローチャート。
【図５】記憶部２３に格納されているボリュームイメージｘ及び識別子群ｈのデータ構造の一例を示す図。
【図６】配布先装置５０が記憶装置４０からボリュームイメージを一括ダウンロードする動作について説明するための図。
【図７】配布先装置５０が記憶装置４０からボリュームイメージを一括ダウンロードする処理手順について説明するための図。
【図８】配布先装置５０が記憶装置４０からボリュームイメージを差分ダウンロードする動作について説明するための図。
【図９】記憶部２３に格納されているボリュームイメージｘ´及び識別子群ｈ´のデータ構造の一例を示す図。
【図１０】配布先装置５０が記憶装置４０からボリュームイメージを差分ダウンロードする処理手順を示すフローチャート。
【図１１】本実施形態の第１の変形例に係るデータ配布システム１０１の主として機能構成を示すブロック図。
【図１２】記憶部２４に格納されているボリュームイメージに対応する識別子群が無効化された場合の差分ダウンロードの処理手順を示すフローチャート。
【図１３】ボリュームイメージ上の書き込みが発生した断片データに対応する識別子が無効化された後に実行される差分ダウンロードの処理手順を示すフローチャート。
【符号の説明】
【０１４３】
１０…コンピュータ、２０…外部記憶装置、２２…記憶部（第１の格納手段）、２３…記憶部（第３の格納手段）、２４…記憶部（第２の格納手段）、３０…配布元装置、３１…配布制御部、３２…データアクセス部、３３…識別子生成部（第１及び第２の生成手段）、３４…転送部、４０…記憶装置、４１…転送部、４２…データアクセス部、５０…配布先装置、５１…配布制御部、５２…転送部、５３…データアクセス部、６０…配布先装置、６１…識別子生成部（第３の生成手段）。
【図１】
2008226167.tif 000003
【図２】
2008226167.tif 000004
【図３】
2008226167.tif 000005
【図４】
2008226167.tif 000006
【図５】
2008226167.tif 000007
【図６】
2008226167.tif 000008
【図７】
2008226167.tif 000009
【図８】
2008226167.tif 000010
【図９】
2008226167.tif 000011
【図１０】
2008226167.tif 000012
【図１１】
2008226167.tif 000013
【図１２】
2008226167.tif 000014
【図１３】
2008226167.tif 000015