(57)【要約】    【課題】      ある記憶場所に配置した複写元データを複製して他の記憶場所へ移す場合に、データファイル中で複写先に存在しないブロックデータだけを伝送して保存することがでるようにすること。    【解決手段】  複写元の置１００は、複写元データファイルを所定サイズに分割した各ブロックについて照合用の検算値が複写元検算値ファイル４１０に記憶され、複写元データファイル４００と複写先データファイル５００との間で対応するブロック毎に検算値を比較して不一致のブロックだけを送信する。複写先の装置３００は、複写先データファイル５００を所定サイズに分割した各ブロックについて計算した検算値が複写先検算値ファイル５１０に記憶され、複写元の装置１００に対して複写先データファイル５００に関する検算値を送信する。そして、複写元の装置１００から受信したブロックを複写先データファイル５００の該当ブロックに上書きする。  【選択図】      図２
2005100007.tif 000002
【特許請求の範囲】
【請求項１】
複写元データファイルと同一サイズの複写先データファイルを生成し当該ファイル格納領域を特定値で初期化する複写先ファイル生成手段と、複写先データファイルを所定サイズに分割した各ブロックについて照合用の検算値を計算する検算値計算手段と、複写元装置に対して複写先データファイルに関する検算値を送信する検算値送信手段と、複写元装置から受信したブロックを複写先データファイルの該当ブロックに上書きする上書き手段とを備えた複写先装置。
【請求項２】
複写元装置から複写元データファイルのサイズを受信した結果、複写元データファイルのサイズが複写先データファイルよりも小さくなっていることが判明した場合、複写先データファイルのサイズを複写元データファイルに合わせるようにブロックを削除することを特徴とする請求項１記載の複写先装置。
【請求項３】
複写元データファイルが記憶された記憶手段と、複写元データファイルを所定サイズに分割した各ブロックについて照合用の検算値を計算する検算値計算手段と、複写先装置から複写先データファイルに関する検算値を取得する取得手段と、複写元データファイルと複写先データファイルとの間で対応するブロック毎に検算値を比較して不一致のブロックだけを送信するブロック送信手段とを備えた複写元装置。
【請求項４】
前記検算値計算手段は複写元データファイルの全体データに対しても検算値を計算し、前記ブロック送信手段は複写先データファイルの全体データに対する検算値と複写元データファイルの全体データに対する検算値との比較をブロック単位の検算値の比較に先立って行うことを特徴とする請求項３記載の複写元装置。
【請求項５】
前記ブロック送信手段は、複写元データファイルに複写先データファイルのブロックに対応していないブロックが追加された場合、当該追加ブロックを複写先装置へ送信することを特徴とする請求項３又は請求項４に記載の複写元装置。
【請求項６】
複写元データファイルを保持する複写元装置と、前記複写元データファイルのデータが書き込まれる複写先データファイルを保持する複写先装置とを備えたシステムであって、
前記複写元装置は、複写元データファイルを所定サイズに分割した各ブロックについて照合用の検算値が記憶された複写元検算値記憶手段と、前記複写先装置から複写先データファイルに関する検算値を取得する取得手段と、複写元データファイルと複写先データファイルとの間で対応するブロック毎に検算値を比較して不一致のブロックだけを送信するブロック送信手段とを備え、
前記複写先装置は、複写先データファイルを所定サイズに分割した各ブロックについて計算した検算値が記憶された複写先検算値記憶手段と、前記複写元装置に対して複写先データファイルに関する検算値を送信する検算値送信手段と、前記複写元装置から受信したブロックを複写先データファイルの該当ブロックに上書きする上書き手段とを備えたデータファイル保存システム。
【請求項７】
複写元データファイルと同一サイズの複写先データファイルを生成し、当該ファイル格納領域を特定値で初期化し、複写先データファイルを所定サイズに分割した各ブロックについて照合用の検算値を計算し、複写元装置に対して複写先データファイルに関する検算値を送信し、複写元装置から受信したブロックを複写先データファイルの該当ブロックに上書きするデータ保存方法。
【請求項８】
複写元データファイルを所定サイズに分割した各ブロックについて照合用の検算値を計算し、複写先装置から複写先データファイルに関する検算値を取得し、複写元データファイルと複写先データファイルとの間で対応するブロック毎に検算値を比較して不一致のブロックだけを送信するデータ保存方法。
【請求項９】
複写元データファイルと同一サイズの複写先データファイルを配置するファイル格納領域を確保し、当該ファイル格納領域を特定値で初期化し、複写先データファイルを所定サイズに分割した各ブロックについて照合用の検算値を計算し、複写元装置に対して複写先データファイルに関する検算値を送信するアロケーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ある記憶場所に配置した複写元データを複製して他の記憶場所へ移すためのデータファイル保存システムおよびアロケーション方法に関する。
【背景技術】
【０００２】
現在、サーバから端末へマルチメディアデータを伝送して表示するシステムが考えられている。かかるシステムでは、サーバと端末との間でファイル転送プロトコル（ＦＴＰ）によりマルチメディアデータを転送する。転送途中で回線が切断された場合、マルチメディアデータを最初から送り直していた。マルチメディアデータの容量が大きくなると、途中で回線が切れたときに大量のデータを初めから送り直さなければならず、時間ロスも大きくなるといった問題がある。一方、オンライントランザクションシステムではデータ伝送の途中で処理が中断しても最初からデータを送りなおさないで済む構成が採用されている（例えば、特許文献１参照）。データ全体を複数のブロックに分割し、データ保存装置に対してブロック単位でデータを書き込む。ブロック単位でデータ更新する際に更新履歴を残しておき、更新履歴を参照することで途中からデータ更新できるようにしている。
【特許文献１】特開平９−６２５５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、更新履歴を利用する方法は、ブロック単位でどこまでデータ更新したかしかわからないので、複写元データを全て複写先に転送した後、当該複写元データの一部を変更したような場合には、重複データを伝送することとなるので問題である。
【０００４】
本発明は、以上のような実情に鑑みてなされたものであって、ある記憶場所に配置した複写元データを複製して他の記憶場所へ移す場合に、データファイル中で複写先に存在しないブロックデータだけを伝送して保存することのできるデータファイル保存システムおよびアロケーション方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、複写元データファイルと同一サイズの複写先データファイルを生成し当該ファイル格納領域を特定値で初期化する複写先ファイル生成手段と、複写先データファイルを所定サイズに分割した各ブロックについて照合用の検算値を計算する検算値計算手段と、複写元装置に対して複写先データファイルに関する検算値を送信する検算値送信手段と、複写元装置から受信したブロックを複写先データファイルの該当ブロックに上書きする上書き手段とを備えた複写先装置である。
【０００６】
このように構成された複写先装置によれば、複写先データファイルを所定サイズに分割した各ブロックについて照合用の検算値を計算し、複写元装置に対して複写先データファイルに関する検算値を送信するので、複写元データファイルの各ブロックについて検算値を計算しておけば、複写元装置では履歴情報を管理することなく、検算値の比較のみで未送信ブロックを特定することができる。
【０００７】
本発明は、複写元データファイルが記憶された記憶手段と、複写元データファイルを所定サイズに分割した各ブロックについて照合用の検算値を計算する検算値計算手段と、複写先装置から複写先データファイルに関する検算値を取得する取得手段と、複写元データファイルと複写先データファイルとの間で対応するブロック毎に検算値を比較して不一致のブロックだけを送信するブロック送信手段とを備えた複写元装置である。
【０００８】
このように構成された複写元装置によれば、複写元データファイルと複写先データファイルとの間で対応するブロック毎に検算値を比較して不一致のブロックだけを送信するので、複写元装置では履歴情報を管理することなく、検算値の比較のみで未送信ブロックを特定し送信することができる。
【０００９】
本発明は、複写元データファイルと同一サイズの複写先データファイルを配置するファイル格納領域を確保し、当該ファイル格納領域を特定値で初期化し、複写先データファイルを所定サイズに分割した各ブロックについて照合用の検算値を計算し、複写元装置に対して複写先データファイルに関する検算値を送信するアロケーション方法である。
【００１０】
このようなアロケーション方法によれば、ファイル格納領域を特定値で初期化するのでファイル転送中に領域不足による伝送エラーを防止できる。また、複写先データファイルに関する検算値を送信するので、複写元装置で履歴情報を管理することなく、検算値の比較のみで未送信ブロックを特定して送信させることができる。
【発明の効果】
【００１１】
本発明によれば、ある記憶場所に配置した複写元データを複製して他の記憶場所へ移す場合に、データファイル中で複写先に存在しないブロックデータだけを伝送して保存することのできるデータファイル保存システムおよびアロケーション方法を提供できる。
【発明を実施するための最良の形態】
【００１２】
本発明の第１の態様は、複写元データファイルと同一サイズの複写先データファイルを生成し当該ファイル格納領域を特定値で初期化する複写先ファイル生成手段と、複写先データファイルを所定サイズに分割した各ブロックについて照合用の検算値を計算する検算値計算手段と、複写元装置に対して複写先データファイルに関する検算値を送信する検算値送信手段と、複写元装置から受信したブロックを複写先データファイルの該当ブロックに上書きする上書き手段とを備えた複写先装置である。
【００１３】
このように構成された複写先装置によれば、複写先データファイルを所定サイズに分割した各ブロックについて照合用の検算値を計算し、複写元装置に対して複写先データファイルに関する検算値を送信するので、複写元データファイルの各ブロックについて検算値を計算しておけば、複写元装置では履歴情報を管理することなく、検算値の比較のみで未送信ブロックを特定することができる。
【００１４】
本発明の第２の態様は、第１の態様の複写先装置において、複写元装置から複写元データファイルのサイズを受信した結果、複写元データファイルのサイズが複写先データファイルよりも小さくなっていることが判明した場合、複写先データファイルのサイズを複写元データファイルに合わせるようにブロックを削除するものとした。
【００１５】
これにより、複写先データファイルのサイズを複写元データファイルに合わせるようにブロックを削除するので、複写元データファイルのサイズが複写先データファイルよりも小さくなっている場合であっても適切なファイル保存を実行できる。
【００１６】
本発明の第３の態様は、複写元データファイルが記憶された記憶手段と、複写元データファイルを所定サイズに分割した各ブロックについて照合用の検算値を計算する検算値計算手段と、複写先装置から複写先データファイルに関する検算値を取得する取得手段と、複写元データファイルと複写先データファイルとの間で対応するブロック毎に検算値を比較して不一致のブロックだけを送信するブロック送信手段とを備えた複写元装置である。
【００１７】
このように構成された複写元装置によれば、複写元データファイルと複写先データファイルとの間で対応するブロック毎に検算値を比較して不一致のブロックだけを送信するので、複写元装置では履歴情報を管理することなく、検算値の比較のみで未送信ブロックを特定し送信することができる。
【００１８】
本発明の第４の態様は、第３の態様の複写元装置において、前記検算値計算手段は複写元データファイルの全体データに対しても検算値を計算し、前記ブロック送信手段は複写先データファイルの全体データに対する検算値と複写元データファイルの全体データに対する検算値との比較をブロック単位の検算値の比較に先立って行うものとした。
【００１９】
これにより、複写先データファイルの全体データに対する検算値と複写元データファイルの全体データに対する検算値との比較をブロック単位の検算値の比較に先立って行うので、ファイル全体の検算値が一致している場合にはブロックの比較を行う必要がなく、処理の省力化を図ることができる。
【００２０】
本発明の第５の態様は、第３又は第４の態様の複写元装置において、前記ブロック送信手段は、複写元データファイルに複写先データファイルのブロックに対応していないブロックが追加された場合、当該追加ブロックを複写先装置へ送信するものとした。
【００２１】
これにより、複写元データファイルに複写先データファイルのブロックに対応していないブロックが追加された場合、当該追加ブロックを複写先装置へ送信するので、複写元データファイルが大きくなった場合であっても適切にファイル保存を行うことができる。
【００２２】
本発明の第６の態様は、複写元データファイルを保持する複写元装置と、前記複写元データファイルのデータが書き込まれる複写先データファイルを保持する複写先装置とを備えたシステムであって、前記複写元装置は、複写元データファイルを所定サイズに分割した各ブロックについて照合用の検算値が記憶された複写元検算値記憶手段と、前記複写先装置から複写先データファイルに関する検算値を取得する取得手段と、複写元データファイルと複写先データファイルとの間で対応するブロック毎に検算値を比較して不一致のブロックだけを送信するブロック送信手段とを備え、前記複写先装置は、複写先データファイルを所定サイズに分割した各ブロックについて計算した検算値が記憶された複写先検算値記憶手段と、前記複写元装置に対して複写先データファイルに関する検算値を送信する検算値送信手段と、前記複写元装置から受信したブロックを複写先データファイルの該当ブロックに上書きする上書き手段とを備えたデータファイル保存システムである。
【００２３】
本発明の第７の態様は、複写元データファイルと同一サイズの複写先データファイルを生成し、当該ファイル格納領域を特定値で初期化し、複写先データファイルを所定サイズに分割した各ブロックについて照合用の検算値を計算し、複写元装置に対して複写先データファイルに関する検算値を送信し、複写元装置から受信したブロックを複写先データファイルの該当ブロックに上書きするデータ保存方法である。
【００２４】
本発明の第８の態様は、複写元データファイルを所定サイズに分割した各ブロックについて照合用の検算値を計算し、複写先装置から複写先データファイルに関する検算値を取得し、複写元データファイルと複写先データファイルとの間で対応するブロック毎に検算値を比較して不一致のブロックだけを送信するデータ保存方法である。
【００２５】
本発明の第９の態様は、複写元データファイルと同一サイズの複写先データファイルを配置するファイル格納領域を確保し、当該ファイル格納領域を特定値で初期化し、複写先データファイルを所定サイズに分割した各ブロックについて照合用の検算値を計算し、複写元装置に対して複写先データファイルに関する検算値を送信するアロケーション方法である。
【００２６】
このようなアロケーション方法によれば、ファイル格納領域を特定値で初期化するのでファイル転送中に領域不足による伝送エラーを防止できる。また、複写先データファイルに関する検算値を送信するので、複写元装置で履歴情報を管理することなく、検算値の比較のみで未送信ブロックを特定して送信させることができる。
【００２７】
以下、本発明の一実施の形態に係るデータファイル保存システムについて図面を参照して具体的に説明する。
【００２８】
図１は本実施の形態に係るデータファイル保存システムの概略的なシステム構成図である。複写元装置となる装置１００で複写元データを複写し、当該データを通信経路２００経由で複写先装置となる装置３００へ伝送するシステムである。
【００２９】
装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３で構成されたコンピュータシステムである。装置１００に複写元データを保存する複写元データファイル４００と複写元検算値を保存する複写元検算値ファイル４１０とを配置している。ＣＰＵ１０１が複写元データから求めた複写元検算値を複写元検算値ファイル４１０に記憶する。ＣＰＵ１０１は、ＲＯＭ１０３に格納されたプログラムを読み込んで実行することにより、後述する複写元検算値計算、検算値照合、ファイル保存処理を実現する。
【００３０】
装置３００は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３で構成されたコンピュータシステムである。装置３００に複写先データを保存する複写先データファイル５００と複写先検算値を保存する複写先検算値ファイル５１０とを配置している。ＣＰＵ２０１はＲＯＭ２０３に格納されたプログラムを読み込んで実行することにより、後述する複写先検算値計算、複写先検算値送信、ファイル保存処理を実現する。
【００３１】
通信経路２００は複数装置間又は単一装置内でデータ伝送するためのバスであったり、ＬＡＮ又はＷＡＮ等のネットワークであったりする。又はメモリなどでデータ交換可能な通信経路である。本例では通信経路２００をＬＡＮ又はＷＡＮ等のネットワークとして説明する。
【００３２】
図２を参照して、複写元データファイル４００のデータを複写先データファイル５００に格納する動作原理について説明する。
【００３３】
装置１００に保存した複写元データは複数のブロック（０からｎ）に分割する。一例を示す。ファイルサイズをＸとした場合、以下の演算式により分割数Ｎを求めることができる。
【００３４】
Ｎ＝ｆ１（Ｘ）…式（１）
分割された個々のブロックサイズＸｎは、式（１）により得られた分割数Ｎにもとづいて以下の演算式により求める。
【００３５】
Ｘｎ＝ｆ２（ｎ、Ｘ）（ｎ＝１〜Ｎ）…式（２）
これにより、１ファイルをＮ個のブロックに分けることができる。さらに、分割個数を決定するための関数ｆ１、および個々のブロックサイズを決定するための関数ｆ２を用いることで、分割したブロックの個々のサイズを可変に設定することができる。
【００３６】
固定サイズ（１００バイト）に１ファイルを分割する場合、
式（１）は、ｆ１（Ｘ）＝（Ｘ＋９９）  ｍｏｄ  １００
式（２）は、ｆ２（ｎ，Ｘ）＝１００
となる。
【００３７】
次に、個々のデータブロックについて任意の方式にしたがって検算値を求め、さらに分割前のデータ全体についても検算値を求める。検算値の計算にはハッシュ関数（例えば、ＭＤ５（ＲＦＣ１３２１）、ＳＨＡ１）を用いることができる。ＭＤ５を用いたときの一例を示す。上述のファイルサイズＸ、および個々のブロックサイズＸｎをＭＤ５に入力することにより、検算値が算出される。なお、ハッシュ関数以外の手法であってもデータ内容の一致不一致を確実かつ容易に確認できるものであれば採用することができる。
【００３８】
本実施の形態では、装置１００から装置３００に対してデータ伝送を開始する前に、装置３００に複写元データと同サイズの複写先データファイル５００を作成する。すなわち、ファイルのアロケーションを実行する。ここで、複写先データファイル５００として複写元データファイル４００と同じサイズのファイル格納領域を確保しているが、確保したファイル格納領域には特定値（例えば”０”）を書き込んで初期化する。これにより、複写元データを転送している途中で複写先データファイル５００の領域が使われてしまい、伝送エラーが生じるのを防止できる。
【００３９】
さらに、装置３００では、複写先データファイル５００を装置１００側と同じサイズでブロック化し、個々のデータブロックについて装置１００側と同じ方式で検算値を求め、さらに分割前のデータ全体についても検算値を求める。
【００４０】
そして、装置１００がデータ伝送に先立ち、装置３００から検算値を取得し、検算値の一致しないブロックだけを伝送するものとする。これにより、既にデータ伝送して装置３００に保存されているブロックについて再送する無駄を防止する。
【００４１】
次に、以上のように構成された本実施の形態の動作についてフローチャートを参照しながら詳細に説明する。
【００４２】
図３に示すように、装置１００では、ＣＰＵ１０１がＲＯＭ１０３に記録されているプログラムを読み込んで起動する（Ｓ０１）。複写元検算値が計算されているか否か判定する（Ｓ０２）。装置１００から装置３００へ複写する複写元データファイル４００のデータ伝送を開始する前に複写元検算値を計算する。したがって、データ伝送の途中でエラーが発生した後に、初めて当該ステップに到達した場合は、既に複写元検算値は計算されているが、それ以外は計算されていないことになる。
【００４３】
いま、複写元データファイル４００のデータ伝送は行われていないものとして説明する。この場合、ステップＳ０３へ分岐して複写元データから複写元検算値を計算する。具体的には、複写元データファイル４００に格納されている複写元データを前述した一定規則にしたがって区切り、複数ブロックに分割する。区切ったブロック単位で検算値を計算し、さらにファイル全体についても検算値を計算する。ファイル全体および個々のブロックに対して索引（Ｄ０１）を定め、各索引に対応させて検算値（Ｄ０２）を格納する。この索引（Ｄ０１）と検算値（Ｄ０２）とを対応させたデータを複写元検算値ファイル４１０として保存する。
【００４４】
このように装置１００にて複写元検算値ファイル４１０を準備できたならば、図４に示すように、通信経路２００を介して装置３００との間に通信回線を確立する（Ｓ１０）。装置３００は装置１００に存在する複写元データファイル４００のファイル転送先となる装置である。装置１００は、装置３００との間に通信回線を確立した後、これからファイル転送する複写元データファイル４００の「サイズ」「識別名（ファイル名）」を、装置３００へ通知する（Ｓ１１）。
【００４５】
後述するように、装置３００は装置１００からの要求を受けて、複写元データを保存するための複写先データファイル５００を生成し、当該複写先データファイル５００に基づいた検算値を計算して返す。
【００４６】
要求元となる装置１００は、通信経路２００を介して装置３００から複写先検算値ファイル５１０を受信し、アクセス可能な場所に保存する（Ｓ１２）。
【００４７】
ステップＳ１１で装置１００から通知を受ける装置３００の動作について説明する。図５に示すように、装置３００はＲＯＭ２０３からプログラムを読み込んで起動する（Ｓ５１）。そして、装置１００からの通信要求を待ち（Ｓ５２）、装置１００から複写先データの内部保存を行うための識別名（ファイル名）およびサイズを取得する（Ｓ５３）。具体的には、装置１００が図４のステップＳ１１で通知した複写元データファイル４００の「サイズ」「識別名（ファイル名）」を受信したら、当該「サイズ」「識別名（ファイル名）」を複写先データの内部保存を行うための識別名（ファイル名）およびサイズとして使用する。
【００４８】
装置３００は、同じ識別名（ファイル名）の複写元データファイルを既に作成したか否か判定する（Ｓ５４）。ステップＳ５３で取得した識別名が複写元データファイルのファイル名に存在しなければ、今回はじめてファイル転送の要求があったファイルであると認識する。この場合、ステップＳ５５へ分岐して装置３００に複写先データファイル５００を準備する。具体的には、ステップＳ５３で取得したサイズのデータを記録する領域を確保する。確保した領域は特定のデータ（例えば２進数の”０”又は”１”）で初期化する。この初期化した領域を複写先データファイル５００として管理する。すなわち、装置１００から転送ファイルのサイズが通知された時点で、装置３００に転送ファイルと同じサイズの領域を確保し、且つ当該領域を特定の値で初期化して複写先データファイル５００として管理する。
【００４９】
次に、図６に示すように、複写先検算値が計算済みか否か判定する（Ｓ６１）。ステップＳ５５で新規に複写先データファイル５００を作成した場合、複写先検算値は計算されていないことになる。複写先データファイル５００の複写先検算値が計算されていない場合は、ステップＳ６２に分岐して複写先データから複写先検算値を計算する。具体的には、複写元データの検算値計算と同様の計算を行う。複写先データファイル５００から複写先データ（特定の値で初期化されている）を読み込み、当該複写先データを複写元データの検算値計算と同じサイズで分割し、個々のブロックについて検算値を計算し、さらにファイル全体についても検算値を計算する。すなわち、複写先データファイル５００のファイルサイズをＸとした場合、以下の演算式により分割数Ｎを求める。
【００５０】
Ｎ＝ｆ１（Ｘ）…式（１）
分割された個々のブロックサイズＸｎは、式（１）により得られた分割数Ｎにもとづいて以下の演算式により求める。
【００５１】
Ｘｎ＝ｆ２（ｎ、Ｘ）（ｎ＝１〜Ｎ）…式（２）
次に、個々のデータブロックについて装置１００と同じ方式にしたがって検算値を求め、さらに分割前のデータ全体についても検算値を求める。これは一例であり、他の方式を採用しても良い。
【００５２】
図６に示すように、全体ファイルおよびブロックに対して索引（Ｄ０３）を付け、各索引に対するブロック検算値及び全体検算値（Ｄ０４）を索引（Ｄ０３）に対応させ複写先検算値ファイル５１０として保存する。
【００５３】
このように複写先検算値ファイル５１０が準備されたら、装置３００は当該複写先検算値ファイル５１０を通信経路２００経由で装置１００へ送信する（Ｓ６３）。又は、複写先検算値ファイル５１０が既に計算されて存在している場合は当該複写先検算値ファイル５１０を装置１００へ送信する（Ｓ６３）。
【００５４】
以上のように、装置３００は装置１００から複写先データの内部保存を行うための識別名およびサイズを受信した場合、装置３００に準備した複写先データファイル５００の検算値を計算し又は読み出して（過去に計算している場合）装置１００へ送信する。
【００５５】
装置３００がステップＳ６３で送信した複写先検算値ファイル５１０は、装置１００がステップＳ１２で受信する。装置１００は、複写先検算値ファイル５１０を受信すると、図７に示すように複写元検算値と複写先検算値のファイル全体に対する検算値（Ｄ０２，Ｄ０４）を対比し、一致しているか否か判断する（Ｓ２１）。図８に示すように、初めにファイル全体（データ全体）に対する検算値（Ｄ０２，Ｄ０４）を対比することにより、当該検算値が一致していればその後のブロック単位の照合処理を省略できる利点がある。複写先検算値のファイル全体の検算値と複写元検算値のファイル全体の検算値とが一致すれば、複写先データファイルと複写元データファイルとが完全に一致していることになるからである。
【００５６】
一方、ファイル全体の検算値が一致しなければ、すでに送信しているブロックが存在するか否か判定する。すなわち、ブロック番号の変数Ｗを１に設定し（Ｓ２２）、ブロック番号の最大値Ｎを超えていないことを確認した上で（Ｓ２３）、図９に示すように複写先検算値並びに複写元検算値の双方から第１ブロックの検算値を取り出して比較する（Ｓ２５）。両ブロックの検算値が一致していれば、装置３００には当該ブロックは保存されていることになるので当該ブロックの送信は行わない。逆に、両ブロックの検算値が一致しなければ、当該ブロックの内容は同じデータではないことになるので、当該ブロックのデータを、通信経路２００を介して装置３００へ送信する（Ｓ２６）。このとき、装置３００でどのブロックのデータであるか識別するための情報、例えばブロック番号を一緒に送信する。
【００５７】
次に、ブロック番号Ｗを１つインクリメントし（Ｓ２７）、ブロック番号の最大値Ｎを超えていないことを確認した上で（Ｓ２３）、複写先検算値並びに複写元検算値の双方から第１ブロックの検算値を取り出して比較する（Ｓ２５）。以下同様にブロック単位で検算値を比較し、一致すれば当該ブロックは送信しないが、不一致ならばそのブロックを送信する。そして、ブロック番号Ｗが最大値Ｎを超えたところで、装置３００との回線を切断する（Ｓ２４）。
【００５８】
以上のように、検算値が一致しないブロックのみを装置３００で送信するので、既に送信済みのブロックが装置３００の複写先データファイル５００に存在する場合には当該ブロックの送信は省略することができる。
【００５９】
装置３００では、ステップＳ６３で複写先検算値を送信した後、図１０に示すように装置１００からの処理要求を待つ（Ｓ７１）。前述したように、装置１００がステップＳ２６でブロックデータを送信した場合、Ｍ番目のブロックデータを受信することになる。ステップＳ７２で処理終了でないと判定した場合、通信経路２００を介してブロックデータを受信し、複写先データファイル５００の対応するブロックに当該受信ブロックデータを上書きする（Ｓ７５）。複写先データファイル５００に新しくデータ書き込まれると、今回書き込まれたブロックの検算値を再計算する（Ｓ７６）。この計算した検算値は複写先検算値ファイル５１０に対応ブロックの検算値として記録する。
【００６０】
一方、ステップＳ７２の判定で処理終了となった場合は、装置１００との間に確立した回線を切断する（Ｓ７３）。次に、複写先データファイル５００のファイル全体の検算値を再計算する（Ｓ７４）。この計算した検算値は複写先検算値ファイル５１０のファイル全体（データ全体）の位置に記録する（オーバーライト）。
【００６１】
このように、装置３００は最初に複写先検算値ファイル５１０を装置１００へ送信するだけで、装置３００の複写先データファイル５００に存在しないブロックデータだけが装置１００から送信されてくるので、これを複写先データファイル５００の該当ブロック位置に格納するだけで必要なファイルデータをすべて保存することができる。
【００６２】
また、複写元データファイル４００が更新されてサイズが大きくなった場合は、複写元データファイル４００と複写先データファイル５００とサイズが一致しなくなる。装置１００は複写元データファイル４００が更新されるとブロック化をやり直して検算値を計算し直す。その後、装置３００から複写先検算値が送られてくるが両者のブロック数自体が一致しなくなる可能性がある。このような場合は複写先データファイル５００に無く検算値の比較もできないブロックについては当該ブロックを装置３００へ送信する事とする。装置３００は、そのようなブロックを受信したときには複写先データファイル５００に追加する処理を実行する。
【００６３】
また、複写元データファイル４００が更新されてサイズが小さくなった場合も複写元データファイル４００と複写先データファイル５００とサイズが一致しなくなる。装置１００は複写元データファイル４００が更新されるとブロック化をやり直して検算値を計算し直す。その後、装置１００から装置３００へサイズを通知したときに、装置３００では複写元データファイル４００に存在しなくなったブロックを削除する処理を実行する。
【００６４】
なお、以上の実施の形態ではネットワーク経由で接続された装置１００から装置３００へデータ伝送する場合を説明したが、同一装置内でデータバックアップをとるシステムにおいても同様に適用可能である。
【産業上の利用可能性】
【００６５】
本発明は、ある記憶場所に配置した複写元データを複製して他の記憶場所へ移す場合に、データファイル中で複写先に存在しないブロックデータだけを伝送して保存することができ、複写元データを複製して他の記憶場所へ移すデータファイル保存システム並びにアロケーション方法に適用可能である。
【図面の簡単な説明】
【００６６】
【図１】本実施の形態に係るデータ保存システムのシステム構成図
【図２】データ複写のための動作原理を示す図
【図３】本実施の形態において送信側装置での複写元検算値を求める部分のフロー図
【図４】本実施の形態において送信側装置での複写先検算値を取得する部分のフロー図
【図５】本実施の形態において受信側装置での複写先データファイルを確認／作成する部分のフロー図
【図６】本実施の形態において受信側装置での複写先検算値を求めて送信する部分のフロー図
【図７】本実施の形態において送信側装置でのブロック送信の部分のフロー図
【図８】送信側装置でブロック送信前にファイル全体の検算値を比較する概念図
【図９】送信側装置でブロック送信前にブロックの検算値を比較する概念図
【図１０】本実施の形態において受信側装置での受信ブロックを格納して検算値を更新する部分のフロー図
【符号の説明】
【００６７】
１００、３００  装置
１０１、２０１  ＣＰＵ
１０２、２０２  ＲＡＭ
１０３、２０３  ＲＯＭ
２００  通信経路
４００  複写元データファイル
４１０  複写元検算値
５００  複写先データファイル
５１０  複写先検算値ファイル
【図１】
2005100007.tif 000003
【図２】
2005100007.tif 000004
【図３】
2005100007.tif 000005
【図４】
2005100007.tif 000006
【図５】
2005100007.tif 000007
【図６】
2005100007.tif 000008
【図７】
2005100007.tif 000009
【図８】
2005100007.tif 000010
【図９】
2005100007.tif 000011
【図１０】
2005100007.tif 000012