(57)【特許請求の範囲】
【請求項１】
送信装置で新旧２つのファイルから差分抽出部により差分データを生成して送信し、受信装置で旧ファイル格納部に蓄積している旧ファイルから受信した差分データに基づいて差分展開部により新ファイルを展開する差分転送方法に於いて、
送信装置では、前記差分抽出部が旧ファイルと新ファイルの差分データを抽出する際に採取した旧ファイルの参照情報を差分データと共に受信装置に転送し、
受信装置では、前記差分展開部が旧ファイルと差分データから新ファイルを展開する際に、差分展開の進捗の状況で変化する前記旧ファイルの参照情報及び新ファイルの更新情報を、新ファイルのデータと共に蓄積し、
送信装置或いは受信装置のトラブルで差分転送が途中で途絶えた場合に、受信装置では、転送が途絶えるまで、旧ファイルと差分データから新ファイル展開する際に蓄積していた旧ファイルの参照情報及び新ファイルの更新情報を差分展開部が送信側に送って途中からの差分展開を依頼し、
送信装置では、受信側から送られた旧ファイルの参照情報及び新ファイルの更新情報を基に、差分展開部が再送するための旧ファイル及び新ファイルのスタートポイントを設定した後、差分転送を再開することを特徴とする差分転送方法。
【請求項２】
送信装置で旧ファイルと新ファイルが旧ファイル格納部および新ファイル格納部にそれぞれ一定サイズの分割データに分けて蓄積された新旧２つのファイルから差分抽出部により差分データを生成して送信し、受信装置で該受信装置の旧ファイル格納部に前記送信装置と同じ一定サイズの分割データに分けて蓄積されており前記受信装置の前記旧ファイル格納部に格納している旧ファイルから前記送信装置より受信した差分データに基づいて差分展開部により新ファイルを展開し前記受信装置の新ファイル格納部に前記一定サイズの分割データに分けて蓄積する差分転送方法に於いて、
送信装置は、
前記送信装置の旧ファイル格納部および新ファイル格納部から旧ファイルと新ファイルを読出し、前記差分抽出部が処理対象としている新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより差分データを抽出する差分抽出ステップと、
前記差分抽出部が前記差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を生成する参照情報生成ステップと、
前記差分抽出部が前記差分データ及び旧ファイル参照情報を外部に送信する送信ステップと、
を備え、
受信装置は、
該受信装置のワークメモリと参照情報処理部とが受信した前記差分データ及び旧ファイル参照情報を受信する受信ステップと、
差分展開部で処理対象としている新ファイル分割データの差分データに対し、同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより新ファイル分割データを展開する差分展開ステップと、
前記受信装置の参照情報処理部が前記新ファイル分割データの展開時に旧ファイル分割データを参照する毎に、受信した参照情報の中の対応する参照回数を減算して更新する参照情報更新ステップと、
新ファイル分割データの展開を終了する毎に、更新情報処理部が展開した新ファイル分割データと共に、現時点の旧ファイル参照情報、旧ファイル最終参照アドレス、新ファイル分割データの更新回数及び新ファイル最終更新アドレスを蓄積する新ファイル蓄積ステップと、
を備えたことを特徴とする差分転送方法。
【請求項３】
送信装置で新旧２つのファイルから差分抽出部により差分データを生成して受信装置に送信し、受信装置で内部メモリの旧ファイル格納部に蓄積している旧ファイルから受信した差分データに基づいて差分展開部により内部メモリに新ファイルを展開する差分転送方法に於いて、
送信装置は、新ファイルが前記旧ファイルと同一サイズの複数個の区画に分けられており、前記差分抽出部が各区画毎に旧ファイルと新ファイルの差分データを抽出する際に、前記区画中のデータ列と一致するデータ列を旧ファイルの探索で発見した場合、発見された位置が前記対象区画の先頭位置に相当する旧ファイルの位置より前方か後方かを判断し、前方と判断した場合は、発見位置と一致長を前方の対象区画の差分データに記述し、後方と判断した場合は、発見位置と一致長を前記対象区画の差分データに記述し、
受信装置は、データ復元部が旧ファィルと差分データから各区画毎に新ファイルを復元して前記旧ファイルの該当部分に上書きする際に、上書き対象となる旧ファイルの該当部分のデータの中に後続する区画の差分データによって参照されるデータ列が存在する場合は、参照される前記データ列をデータ退避部へ退避させた後に上書きを行い、退避データに対し後続する区画の差分データによる旧ファイルの該当部分を参照させることを特徴とする差分転送方法。
【請求項４】
請求項３記載の差分転送方法に於いて、
前記送信装置側は、差分抽出部で新ファイルの対象区画中のデータ列と一致するデータ列の探索を、旧ファイルの全範囲について行い、
前記受信装置側は、上書き対象となる旧ファイルの該当部分のデータの中に後続する区画の差分データによって参照されるデータ列が存在する場合は、データ復元部が旧ファイルの参照されるデータ列の部分のみをデータ退避部に退避させることを特徴とする差分転送方法。
【請求項５】
請求項３記載の差分転送方法に於いて、
前記送信装置は、差分抽出部が新ファイルの対象区画中のデータ列と一致するデータ列の探索を、前記対象区画の先頭位置に相当する旧ファイルの位置よりもｎバイト前方から旧ファイルの最後尾までの範囲について行い、
前記受信装置は、上書き対象となる旧ファイルの該当部分のデータの中に後続する区画の差分データによって参照されるデータ列が存在する場合は、データ復元部が次の区画との境界位置から前方ｎバイト分に相当する旧ファイルのデータ列をデータ退避部に退避させることを特徴とする差分転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、新旧２つのファイルから抽出した差分データを転送して転送先の旧ファイルから新ファイルを展開する差分転送方法、プログラム及びシステムに関し、特に転送先での差分展開中にトラブルにより処理が中断したときに再転送を行う差分転送方法、プログラム及びシステムに関する。
【０００２】
【従来の技術】
従来、プログラムやデータなどのファイルを新しいファイルへと更新する場合、新しいファイルを全部置き換える方法と、ファイルの更新情報として差分データのみを与えて更新する方法がある。差分データによる更新方法は、ファイルを全部置き換える方法よりも少ない情報量で更新を行うことが可能であるという利点があり、更新情報を旧ファイルの存在する場所へ転送する場合に情報量が小さいほどコスト面で有利となる。
【０００３】
従来の差分転送の基本システムとしては、図５６のものがある。例えば無線回線を介した差分転送システムの場合、送信装置２００は基地局に相当し、受信装置２１０は携帯電話となる。
【０００４】
送信装置２００には、旧ファイル蓄積部２０２、新ファイル蓄積部２０４、差分抽出部２０６、データ圧縮部２０８が設けられる。また受信装置２１０には、データ解凍部２１２、差分展開部２１４、旧ファイル蓄積部２１６及び新ファイル蓄積部２１８が設けられる。
【０００５】
送信装置２００は、差分抽出部２０６において、旧ファイルと新ファイルの差分データを抽出した後に、データ圧縮部２０８で圧縮して送信している。一般に新旧２つのファイルとの差分を抽出することで差分データを約１／１０〜１／１００程度に小さくすることができ、更に圧縮により１／２〜１／３程度に送信する差分データのデータ量を少なくすることができる。
【０００６】
受信装置２１０は、データ解凍部２１２で圧縮された情報を解凍して差分データを復元し、差分展開部２１４により差分データに基づき旧ファイルのデータから新ファイルのデータを展開する。
【０００７】
【発明が解決しようとする課題】
しかしながら、このような差分転送システムで差分転送中に受信装置としての携帯電話の電源パワーが落ちて処理が中断されると、次に再度転送する場合、受信側の旧ファイルと新ファイルを蓄積保存する不揮発メモリの形態により次の問題がある。
【０００８】
まず図４６のように、受信装置に設けた旧ファイル蓄積部２１６と新ファイル蓄積部２１８に新旧両ファイルを記憶できる十分な容量の不揮発メモリを設けた形態にあっては、電源パワーの低下で差分転送が中断しても旧ファイルが失われることないため、中断後の受信装置２１０からの再転送要求に対し送信装置２００は、新旧２つのファイルの参照により最初から差分データを抽出して再転送する。
【０００９】
しかし、差分転送を最初から行っているため、途中まで送っていたデータは無駄となり、時間がかかる問題がある。特に無線回線を使用した携帯電話システムのよう帯域の狭い通信路を使用している場合、最初からの再転送はユーザに対し通信コストの増加を強いることになる。
【００１０】
また図５７のように、受信装置２１０に設けることのできる不揮発メモリの容量が少なく、旧ファイルと新ファイルの蓄積を兼用する新旧ファイル兼用格納部２２０を不揮発メモリに設ける形態がある。
【００１１】
このように受信装置で新旧ファイル兼用の不揮発メモリとした場合には、受信解凍した差分データにより一定サイズの新ファイルデータを展開する毎に、参照済みの旧ファイルデータ部分に新ファイルデータを上書きして蓄積する。
【００１２】
このため受信側での電源パワーの低下で差分転送が中断すると、新ファイルデータにより上書きされた分の旧ファイルデータが失われ、差分転送を再度実行することはできない。このため再転送要求に対しては、最初から新ファイルのみを圧縮して再送することになり、差分転送に対し単なる圧縮転送となるため、データ量があまり削減できず、更なる通信コストの増加につながる。
【００１３】
また従来の差分データ抽出は、新旧２つのファイルを先頭から比較し、一致しない部分を更新された部分として図５８（Ａ）〜（Ｄ）の複写、置換、挿入及び削除のカテゴリに分類し、差分データとして
（１）更新のカテゴリ（種別）を示すコード
（２）置換または挿入のカテゴリによる更新後の値
を記述する方法がある（特開平４-１６３６２６号）。
【００１４】
しかしながら、このような従来の差分データ抽出方法では、図５９（Ａ）（Ｂ）のように、旧ファイルのデータＢが新ファイル上で移動している場合（移動）、図５９（Ｃ）のように旧ファイルのデータＢが新ファイル上に２回連続して複写されている場合（複数複写）、更に図５９（Ｄ）のように旧ファイルのデータＢに近似したデータＢ'が新ファイル上で２回連続して複写されている場合（複数置換）については、図５８の複写、置換、挿入又は削除のいずれのカテゴリにも該当しないため、新旧ファイルで位置のずれているデータＢ又はデータＢ'は全て不一致部分と判定され、置換のカテゴリのみで書き出してしまい、差分データ量が増加する問題がある。
【００１５】
本発明は、旧ファイルのデータが新ファイル上で移動しているような特殊パターンも効率良く差分抽出すると共に、転送中断に対し中断個所からの差分転送を再開して伝送負担を軽減する差分転送方法、プログラム及びシステムを提供することを目的とする。
【００１６】
【課題を解決するための手段】
図１は本発明の原理説明図である。
【００１７】
本発明は、送信側で新旧２つのファイルから差分データを生成して送信し、受信側で蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開する差分転送方法を対象とする。
【００１８】
このような差分転送方法において本発明は、送信側で、旧ファイルと新ファイルの差分データを抽出する際に採取した旧ファイルの参照情報を差分データと共に受信側に転送し、受信側では、旧ファイルと差分データから新ファイルを展開する際に、差分展開の進捗の状況で変化する前記旧ファイルの参照情報及び新ファイルの更新情報を、新ファイルのデータと共に蓄積することを特徴とする。
【００１９】
また本発明の差分転送方法は、送信側或いは受信側のトラブルで差分転送が途中で途絶えた場合に、受信側では、転送が途絶えるまで、旧ファイルと差分データから新ファイル展開する際に蓄積していた旧ファイルの参照情報及び新ファイルの更新情報を送信側に送って途中からの差分展開を依頼し、送信側では、受信側から送られた旧ファイルの参照情報及び新ファイルの更新情報を基に、再送するための旧ファイル及び新ファイルのスタートポイントを設定した後、差分転送を再開行することを特徴とする。
【００２０】
ここで旧ファイルの参照情報を、旧ファイルの分割データ毎に参照される参照回数及び最後に参照された旧ファイルの最終参照アドレスとし、新ファイルの更新情報を、新ファイル分割データの更新回数及び最終に更新された新ファイル最終更新アドレスとする。
【００２１】
このように本発明は、送信側で作られた差分データの旧ファイル参照情報をもとに、受信側での旧ファイルの参照状況及び新ファイルの更新状況を不揮発メモリに格納し、どこまで差分展開が実行されたのかを逐次把握しておくことで、トラブルにより転送が中断しても、前回の転送途中から差分転送を再開可能とする。
【００２２】
更に本発明による差分転送方法の具体的な形態として、図１（Ａ）のように、旧ファイルと新ファイルを一定サイズの分割データＤ１〜Ｄｎに分けて蓄積するファイル蓄積ステップと、
旧ファイルと新ファイルを読出し、図１（Ｂ）のように、処理対象としている新ファイル分割データD１',D２'，D３',D４'・・・に対し同一位置および前後に隣接する位置の少なくとも３つの旧ファイル分割データＤ１，Ｄ２，Ｄ３，Ｄ４，・・・・を参照することにより差分データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４，・・・・を抽出する差分抽出ステップと、
差分データを抽出する際に旧ファイルを参照した参照回数Ｎ１〜Ｎｎを旧ファイル分割データＤ１，Ｄ２，Ｄ３，Ｄ４，・・・・毎に計数して旧ファイル参照情報を生成する参照情報生成ステップと、
差分データ及び旧ファイル参照情報を外部に送信する送信ステップと、
を備える。
【００２３】
また受信側は、
旧ファイルを一定メモリサイズの分割データＤ１〜Ｄｎに分けて蓄積すると共に、展開した新ファイルを分割データ単位で蓄積可能な領域を確保する蓄積ステップと、
差分データ及び旧ファイル参照情報を受信する受信ステップと、
処理対象としている新ファイル分割データの差分データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより新ファイル分割データを展開する差分展開ステップと、
新ファイル分割データの展開時に旧ファイル分割データを参照する毎に、受信した参照情報の中の対応する旧ファイル参照回数Ｎ１〜Ｎｎを減算して更新する参照情報更新ステップと、
新ファイル分割データの展開を終了する毎に、展開した新ファイル分割データと共に、現時点の旧ファイル参照情報Ｎ１〜Ｎｎ、旧ファイル最終参照アドレスＡ１〜Ａｎ、新ファイル分割データの更新回数Ｎ１'〜Ｎｍ'及び新ファイル最終更新アドレスＡ１'〜Ａｍ'を蓄積する新ファイル蓄積ステップと、
を備えたことを特徴とする。
【００２４】
また本発明の差分転送方法は中断後の再転送実行のための具体的な形態として次の手順を備える。
【００２５】
まず受信側は、差分データに基づき旧ファイルから新ファイルの展開中に処理が中断した場合、処理再開時に、中断前の最後に蓄積された旧ファイル参照情報Ｎ１〜Ｎｎ、旧ファイル最終参照アドレスＡｉ及び新ファイル最終更新アドレスＡｉを読み出して送信側に再転送を要求する再転送要求ステップを備える。
【００２６】
また送信側は、受信側からの再転送要求で送られてきた減算が行われている旧ファイル参照情報Ｎ１〜Ｎｎにより中断前の旧ファイル参照情報（初期情報）を更新し、旧ファイル最終参照アドレスＡｉにより旧ファイル再開位置（制御ポインタのスタート位置）を設定し、新ファイル最終更新アドレスＡ１'〜Ａｍ'により新ファイル再開位置（制御ポインタのスタート位置）を設定した後に、差分転送を再開する再転送ステップとを備える。
【００２７】
本発明の差分転送方法において、再転送が行われた場合、受信側は、送信側から再転送された差分データに基づく旧ファイルの参照で再転送による最初の新ファイル分割データを展開した場合、中断前の最後に蓄積された新ファイル分割データ更新回数と新ファイル最終更新アドレスに基づく蓄積再開位置に再送により最初に展開された新ファイル分割データを蓄積する蓄積再開ステップを備える。
【００２８】
更に本発明の差分転送方法は、受信側に外部に送信する差分データを圧縮する圧縮ステップを備え、送信側は受信した圧縮差分データを解凍する解凍ステップを備える。
【００２９】
ここで差分転送方法における送信側の差分データ生成ステップは、新ファイルに旧ファイルデータの複数複写、異なる位置への移動等の特殊パターンに対応するため、次の手順を備える。
【００３０】
即ち、送信側の差分データ生成ステップは、
新旧２つのファイル分割データに対して分割データ先頭から所定データ単位に順次比較する比較ステップと、
順次比較でデータ一致を判定した場合、旧ファイルの位置とデータ長を表した転送情報を出力する転送情報生成ステップと、
順次比較でデータ不一致を判定した場合、旧ファイルの不一致と判定されたデータ位置から少なくとも前後の隣接した旧ファイル分割データの位置となる両方向に探索を行って新ファイルのデータに一致する部分を探索する探索ステップと、
探索ステップで一致部分を探索できた場合は、旧ファイル上での一致部分までの移動情報を出力する移動情報生成ステップと、
探索ステップで一致部分を探索できなかった場合は、一致部分を探索できるまでの旧ファイルの不一致部分のデータ長を表した転送置換情報に旧データと新データとの差分データを付加して出力する置換情報生成ステップと、
を備えたことを特徴とする。
【００３１】
このように本発明は、新旧ファイルの順次比較で不一致となった場合には、旧ファイルを前後両方向に探索して一度参照した旧ファイル中のデータを再度参照することができ、従来の置換、挿入及び削除というカテゴリを超えて、それ以外の特殊パターンにも対応でき、冗長な差分データの生成を低減し、差分データのサイズを小さくする。
【００３２】
本発明の差分転送方法の手順は、送信側と受信側のメモリの形態により決まる。このメモリ形態は、次表の条件１〜４に分類される。
【００３３】
【表１】
0004285679.tif 000002
【００３４】
（条件１での差分転送）
本発明は、送信側で新旧２つのファイルから差分データを生成して送信し、受信側で蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開する差分転送方法であり、
送信側に、条件１のメモリ形態として、
旧ファイルを格納する第１不揮発メモリ、
新ファイルを格納する第２不揮発メモリ、
旧ファイルのデータを一括して一時蓄積する第１揮発メモリ、
新ファイルのデータを分割データ単位で順次読み出し一時蓄積する第２揮発メモリ、
を少なくとも設けた場合、送信側は、
旧ファイルと新ファイルを一定サイズの分割データに分けて第１及び第２不揮発メモリに別々に蓄積するファイル蓄積ステップと、
旧ファイルを一括して読み出して第１揮発メモリに一時蓄積すると共に新ファイルを分割データ単位に順次読出して順次第２揮発メモリに一時蓄積し、第２揮発メモリに一時蓄積している処理対象の新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより差分データを抽出する差分抽出ステップと、
差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を生成する参照情報生成ステップと、
前記差分データ及び旧ファイル参照情報を外部に送信する送信ステップと、
を備える。
【００３５】
また受信側に、条件１のメモリ形態として、
旧ファイルを格納する第３不揮発メモリ、
新ファイルを格納する第４不揮発メモリ、
旧ファイルのデータを一括して一時蓄積する第３揮発メモリを、
少なくとも設けた場合、受信側は、
旧ファイルを一定メモリサイズの分割データに分けて第３不揮発に蓄積すると共に、展開した新ファイルを分割データ単位で蓄積可能な領域を第４不揮発メモリに確保する蓄積ステップと、
差分データ及び旧ファイル参照情報を受信する受信ステップと、
処理対象としている新ファイル分割データの差分データに対し、第３揮発メモリに一時蓄積している同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより新ファイル分割データを展開する差分展開ステップと、
新ファイル分割データの展開時に旧ファイル分割データを参照する毎に、受信した参照情報の中の対応する旧ファイル参照回数を減算して更新する参照情報更新ステップと、
新ファイル分割データの展開を終了する毎に、展開した新ファイル分割データと共に、現時点の旧ファイル参照情報、旧ファイル最終参照アドレス、新ファイル分割データの更新回数及び新ファイル最終更新アドレスを第４不揮発メモリに蓄積する新ファイル蓄積ステップと、
を備えたことを特徴とする。
【００３６】
また転送中断後の再転送を実行するため、受信側は、更に、差分データに基づき旧ファイルから新ファイルの展開中に処理が中断した場合、処理再開時に、中断前の最後に蓄積された旧ファイル参照情報、旧ファイル最終参照アドレス及び新ファイル最終更新アドレスを第４不揮発メモリから読み出して送信側に再転送を要求する再転送要求ステップを備える。
【００３７】
また送信側は、更に、受信側からの再転送要求で送られてきた旧ファイル参照情報により中断前の旧ファイル参照情報を更新し、旧ファイル最終参照アドレスにより第１揮発メモリにおける旧ファイル再開位置を設定し、新ファイル最終更新アドレスにより第２揮発メモリにおける新ファイル再開位置を設定した後に、差分転送を再開する再転送ステップとを備える。
【００３８】
（条件２での差分転送）
本発明は、送信側で新旧２つのファイルから差分データを生成して送信し、受信側で蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開する差分転送方法であり、
送信側に、条件２のメモリ形態として、
旧ファイルを格納する第１不揮発メモリ、
新ファイルを格納する第２不揮発メモリ、
旧ファイルのデータを分割データ単位で順次読み出して一時蓄積する第１揮発メモリ、
新ファイルのデータを分割データ単位で順次読み出し一時蓄積する第２揮発メモリを、
少なくとも設けた場合、送信側は、
旧ファイルと新ファイルを一定サイズの分割データに分けて第１及び第２不揮発メモリに別々に蓄積するファイル蓄積ステップと、
旧ファイルを分割データ単位に順次読み出して前記第１揮発メモリに一時蓄積すると共に新ファイルを分割データ単位に順次読み出して第２揮発メモリに一時蓄積し、第２揮発メモリに一時蓄積している処理対象の新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより差分データを抽出する差分抽出ステップと、
差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を生成する参照情報生成ステップと、
差分データ及び旧ファイル参照情報を外部に送信する送信ステップと、
を備える。
【００３９】
また受信側に、条件２のメモリ形態として、
旧ファイルを格納する第３不揮発メモリ、
新ファイルを格納する第４不揮発メモリ、
旧ファイルのデータを分割データ単位で順次読み出して一時蓄積する少なくとも４分割データ分の容量を備えた小容量の第３揮発メモリ、
を少なくとも設けた場合、受信側は、
旧ファイルを一定メモリサイズの分割データに分けて第３不揮発メモリに蓄積すると共に、展開した新ファイルを分割データ単位で蓄積可能な領域を第４不揮発メモリに確保する蓄積ステップと、
差分データ及び旧ファイル参照情報を受信する受信ステップと、
処理対象としている新ファイル分割データの差分データに対し、第３揮発メモリに一時蓄積している同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより新ファイル分割データを展開する差分展開ステップと、
新ファイル分割データの展開時に旧ファイル分割データを参照する毎に、受信した参照情報の中の対応する参照回数を減算して更新する参照情報更新ステップと、
新ファイル分割データの展開を終了する毎に、展開した新ファイル分割データと共に、現時点の旧ファイル参照情報、旧ファイル最終参照アドレス、新ファイル分割データの更新回数及び新ファイル最終更新アドレスを第４不揮発メモリに蓄積する新ファイル蓄積ステップと、
を備える。
【００４０】
ここで受信側の旧ファイル揮発メモリの書換え制御として、受信側の差分展開ステップは、展開中に旧ファイル参照回数がゼロとなった旧ファイル分割データを第３揮発メモリから消去し、新たな旧ファイル分割データを第３不揮発メモリから読出して一時蓄積する。
【００４１】
このため旧ファイルのデータが新ファイル上の左右の異なる位置に移動して存在するような特殊パターンの場合でも、参照に必要な分割データのみを残すように第３揮発メモリの書き換えを行うことで、メモリリソースの節約を図る。
【００４２】
また中断の再転送を実行するため、受信側は、差分データに基づき旧ファイルから新ファイルの展開中に処理が中断した場合、処理再開時に、中断前の最後に蓄積された旧ファイル参照情報、旧ファイル最終参照アドレス及び新ファイル最終更新アドレスを第４不揮発メモリから読み出して送信側に再転送を要求する再転送要求ステップを備える。
【００４３】
これに対応して送信側は、受信側からの再転送要求で送られてきた旧ファイル参照情報により中断前の旧ファイル参照情報を更新し、旧ファイル最終参照アドレスにより第１揮発メモリにおける旧ファイル再開位置を設定し、新ファイル最終更新アドレスにより第２揮発メモリにおける新ファイル再開位置を設定した後に、差分転送を再開する再転送ステップとを備える。
【００４４】
（条件３での差分転送）
本発明は、送信側で新旧２つのファイルから差分データを生成して送信し、受信側で蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開する差分転送方法であって、
送信側の条件３のメモリ形態として、
ファイルを格納する第１不揮発メモリ、
新ファイルを格納する第２不揮発メモリ、
旧ファイルのデータを一括して一時蓄積する第１揮発メモリ、
新ファイルのデータを分割データ単位で順次読み出し一時蓄積する第２揮発メモリを少なくとも設けた場合（条件１と同じ）、送信側は、
旧ファイルと新ファイルを一定サイズの分割データに分けて第１及び第２不揮発メモリに別々に蓄積するファイル蓄積ステップと、
旧ファイルを一括して読み出して第１揮発メモリに一時蓄積すると共に新ファイルを分割データ単位に順次読出して第２揮発メモリに一時蓄積し、第２揮発メモリに一時蓄積している処理対象の新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより差分データを抽出する差分抽出ステップと、
差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を生成する参照情報生成ステップと、
前記差分データ及び旧ファイル参照情報を外部に送信する送信ステップと、
を備える。これは条件１の手順と同じである。
【００４５】
また受信側に条件３のメモリ形態として、
旧ファイルを格納すると共に新ファイルを旧ファイルの上書きにより格納する新旧ファイル兼用の第３不揮発メモリ、
旧ファイルのデータを一括して一時蓄積する第３揮発メモリ、
を少なくとも設けた場合、受信側は、
旧ファイルを一定メモリサイズの分割データに分けて第３不揮発メモリに蓄積する蓄積ステップと、
差分データ及び旧ファイル参照情報を受信する受信ステップと、
処理対象としている新ファイル分割データの差分データに対し、第３揮発メモリに一時蓄積している同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより新ファイル分割データを展開する差分展開ステップと、
新ファイル分割データの展開時に旧ファイル分割データを参照する毎に、受信した参照情報の中の対応する旧ファイル参照回数を減算して更新する参照情報更新ステップと、
新ファイル分割データの展開を終了する毎に、展開した新ファイル分割データを第３不揮発メモリの参照済みの旧ファイル分割データに上書きして蓄積すると共に、現時点の旧ファイル参照情報、旧ファイル最終参照アドレス、新ファイル分割データの更新回数及び新ファイル最終更新アドレスを前記第３不揮発メモリに蓄積する新ファイル蓄積ステップと、
を備える。
【００４６】
また転送中断後の再転送を実行するため、受信側は、差分データに基づき旧ファイルから新ファイルの展開中に処理が中断した場合、処理再開時に、中断前の最後に蓄積された旧ファイル参照情報、旧ファイル最終参照アドレス及び新ファイル最終更新アドレスを第３不揮発メモリから読み出して送信側に再転送を要求する再転送要求ステップを備える。
【００４７】
これに対応して送信側は、受信側からの再転送要求で送られてきた旧ファイル参照情報により中断前の旧ファイル参照情報を更新し、旧ファイル最終参照アドレスにより第１揮発メモリにおける旧ファイル再開位置を設定し、新ファイル最終更新アドレスにより第２揮発メモリにおける新ファイル再開位置を設定した後に、差分転送を再開する再転送ステップとを備える。
【００４８】
（条件４での差分転送）
本発明は、送信側で新旧２つのファイルから差分データを生成して送信し、受信側で蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開する差分転送方法であって、
送信側に条件４のメモリ形態として、
旧ファイルを格納する第１不揮発メモリ、
新ファイルを格納する第２不揮発メモリ、
旧ファイルのデータを分割データ単位で順次読み出して一時蓄積する第１揮発メモリ、
新ファイルのデータを分割データ単位で順次読み出し一時蓄積する第２揮発メモリ、
を少なくとも設けた場合（条件２と同じ）、送信側は、
旧ファイルと新ファイルを一定サイズの分割データに分けて前記不揮発メモリに別々に蓄積するファイル蓄積ステップと、
旧ファイルを分割データ単位に順次読み出して第１揮発メモリに一時蓄積すると共に新ファイルを分割データ単位に順次読み出して第２揮発メモリに一時蓄積し、第２揮発メモリに一時蓄積している処理対象の新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより差分データを抽出する差分抽出ステップと、
差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を生成する参照情報生成ステップと、
差分データ及び旧ファイル参照情報を外部に送信する送信ステップと、
を備える。
【００４９】
また受信側に条件４のメモリ形態として、
旧ファイルを格納すると共に新ファイルを旧ファイルの上書きにより格納する新旧ファイル兼用の第３不揮発メモリ（条件３と同じ）、
旧ファイルのデータを一括して一時蓄積する少なくとも４分割データ分の容量を備えた第３揮発メモリ（条件２と同じ）
を少なくとも設けた場合、受信側は、
旧ファイルを一定メモリサイズの分割データに分けて第３不揮発に蓄積する蓄積ステップと、
差分データ及び旧ファイル参照情報を受信する受信ステップと、
処理対象としている新ファイル分割データの差分データに対し、第３揮発メモリに一時蓄積している同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより新ファイル分割データを展開する差分展開ステップと、
新ファイル分割データの展開時に旧ファイル分割データを参照する毎に、受信した参照情報の中の対応する旧ファイル参照回数を減算して更新する参照情報更新ステップと、
新ファイル分割データの展開を終了する毎に、展開した新ファイル分割データを第３不揮発メモリの参照済みの旧ファイル分割データに上書きして蓄積すると共に、現時点の旧ファイル参照情報、旧ファイル最終参照アドレス、新ファイル分割データの更新回数及び新ファイル最終更新アドレスを前記第３不揮発メモリに蓄積する新ファイル蓄積ステップと、
を備える。
【００５０】
ここで条件２の場合と同様に、受信側の旧ファイル揮発メモリの書換え制御のため、受信側の差分展開ステップは、展開中に旧ファイル参照回数がゼロとなった旧ファイル分割データを第３揮発メモリから消去し、新たな旧ファイル分割データを第３不揮発メモリから読出して一時蓄積する。
【００５１】
また転送中断後の再転送を実行するため、受信側は、差分データに基づき旧ファイルから新ファイルの展開中に処理が中断した場合、処理再開時に、中断前の最後に蓄積された旧ファイル参照情報、旧ファイル最終参照アドレス及び新ファイル最終更新アドレスを第３不揮発メモリから読み出して送信側に再転送を要求する再転送要求ステップを備える。
【００５２】
これに対応して送信側は、受信側からの再転送要求で送られてきた旧ファイル参照情報により中断前の旧ファイル参照情報を更新し、旧ファイル最終参照アドレスにより第１揮発メモリにおける旧ファイル再開位置を設定し、新ファイル最終更新アドレスにより前記第２揮発メモリにおける新ファイル再開位置を設定した後に、差分転送を再開する再転送ステップとを備える。
【００５３】
（差分送信方法）
本発明は、新旧２つのファイルから差分データを生成して送信する方法として、
旧ファイルと新ファイルを一定サイズの分割データに分けて蓄積するファイル蓄積ステップと、
旧ファイルと新ファイルを読出し、処理対象としている新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより差分データを抽出する差分抽出ステップと、
差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を生成する参照情報生成ステップと、
差分データ及び旧ファイル参照情報を外部に送信する送信ステップと、
転送先での処理中断後の再転送要求により送られてきた中断までの進捗状態を示す旧ファイル参照情報で旧ファイル参照情報を更新し、旧ファイル最終参照アドレスにより旧ファイル再開位置を設定し、新ファイル最終更新アドレスにより新ファイル再開位置を設定した後に、差分転送を再開する再転送ステップと、
を備えたことを特徴とする。
【００５４】
（差分受信方法）
また本発明は、送信側から、処理対象としている新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより生成された差分データと、差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を受信し、予め蓄積している旧ファイルから受信した差分データ及び旧ファイル参照情報に基づいて新ファイルを展開する方法であって、
旧ファイルを一定メモリサイズの分割データに分けて蓄積すると共に、展開した新ファイルを分割データ単位で蓄積可能な領域を確保する蓄積ステップと、
差分データ及び旧ファイル参照情報を受信する受信ステップと、
処理対象としている新ファイル分割データの差分データに対し、同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより新ファイル分割データを展開する差分展開ステップと、
新ファイル分割データの展開時に旧ファイル分割データを参照する毎に、受信した参照情報の中の対応する参照回数を減算して更新する参照情報更新ステップと、
新ファイル分割データの展開を終了する毎に、展開した新ファイル分割データと共に、現時点の旧ファイル参照情報、旧ファイル最終参照アドレス、新ファイル分割データの更新回数及び新ファイル最終更新アドレスを蓄積する新ファイル蓄積ステップと、
差分データに基づき旧ファイルから新ファイルの展開中に処理が中断した場合、処理再開時に、中断前の最後に蓄積された旧ファイル参照情報、旧ファイル最終参照アドレス及び新ファイル最終更新アドレスを読み出して送信側に再転送を要求して中断時点からの差分データ及び旧ファイル参照情報を再転送させる再転送要求ステップと、
を備えたことを特徴とする。
【００５５】
（送信側プログラム）
本発明は、差分転送のための送信側のプログラムを提供する。このプログラムは、新旧２つのファイルから差分データを生成して送信するコンピュータに、
旧ファイルと新ファイルを一定サイズの分割データに分けて蓄積するファイル蓄積ステップと、
旧ファイルと新ファイルを読出し、処理対象としている新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより差分データを抽出する差分抽出ステップと、
差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を生成する参照情報生成ステップと、
差分データ及び旧ファイル参照情報を外部に送信する送信ステップと、
転送先での処理中断後の再転送要求により送られてきた中断までの進捗状態を示す旧ファイル参照情報で前記旧ファイル参照情報を更新し、旧ファイル最終参照アドレスにより旧ファイル再開位置を設定し、新ファイル最終更新アドレスにより新ファイル再開位置を設定した後に、差分転送を再開する再転送ステップと、
を実行させることを特徴とする。
【００５６】
（受信側プログラム）
また本発明は、差分転送のための受信側のプログラムを提供する。このプログラムは、送信側から、処理対象としている新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより生成された差分データと、差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を受信し、予め蓄積している旧ファイルから受信した差分データ及び旧ファイル参照情報に基づいて新ファイルを展開するコンピュータに、
旧ファイルを一定メモリサイズの分割データに分けて蓄積すると共に、展開した新ファイルを分割データ単位で蓄積可能な領域を確保する蓄積ステップと、
差分データ及び旧ファイル参照情報を受信する受信ステップと、
処理対象としている新ファイル分割データの差分データに対し、同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより新ファイル分割データを展開する差分展開ステップと、
新ファイル分割データの展開時に旧ファイル分割データを参照する毎に、受信した参照情報の中の対応する参照回数を減算して更新する参照情報更新ステップと、
新ファイル分割データの展開を終了する毎に、展開した新ファイル分割データと共に、現時点の旧ファイル参照情報、旧ファイル最終参照アドレス、新ファイル分割データの更新回数及び新ファイル最終更新アドレスを蓄積する新ファイル蓄積ステップと、
差分データに基づき旧ファイルから新ファイルの展開中に処理が中断した場合、処理再開時に、中断前の最後に蓄積された旧ファイル参照情報、旧ファイル最終参照アドレス及び新ファイル最終更新アドレスを読み出して送信側に再転送を要求して中断時点からの差分データ及び旧ファイル参照情報を再転送させる再転送要求ステップと、
を実行させることを特徴とする。
【００５７】
（システム）
本発明は、送信装置で新旧２つのファイルから差分データを生成して送信し、受信装置で蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開する差分転送システムであって、
送信装置は、
旧ファイルと新ファイルを一定サイズの分割データに分けて蓄積するファイル蓄積部と、
旧ファイルと新ファイルを読出し、処理対象としている新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより差分データを抽出する差分抽出ステップと、
差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を生成する参照情報生成部と、
差分データ及び旧ファイル参照情報を外部に送信する送信部と、
を備え、
受信装置は、
旧ファイルを一定メモリサイズの分割データに分けて蓄積すると共に、展開した新ファイルを分割データ単位で蓄積可能な領域を確保する蓄積部と、
差分データ及び旧ファイル参照情報を受信する受信部と、
処理対象としている新ファイル分割データの差分データに対し、同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより新ファイル分割データを展開する差分展開部と、
新ファイル分割データの展開時に旧ファイル分割データを参照する毎に、受信した参照情報の中の対応する参照回数を減算して更新する参照情報更新部と、
新ファイル分割データの展開を終了する毎に、展開した新ファイル分割データと共に、現時点の旧ファイル参照情報、旧ファイル最終参照アドレス、新ファイル分割データの更新回数及び新ファイル最終更新アドレスを蓄積する新ファイル蓄積部と、
を備えたことを特徴とする。
【００５８】
差分転送システムの受信装置は、更に、差分データに基づき旧ファイルから新ファイルの展開中に処理が中断した場合、処理再開時に、中断前の最後に蓄積された旧ファイル参照情報、旧ファイル最終参照アドレス及び新ファイル最終更新アドレスを読み出して送信側に再転送を要求する再転送要求部を備える。
【００５９】
また送信装置は、受信側からの再転送要求で送られてきた旧ファイル参照情報により中断前の旧ファイル参照情報を更新し、旧ファイル最終参照アドレスにより旧ファイル再開位置を設定し、新ファイル最終更新アドレスにより新ファイル再開位置を設定した後に、差分転送を再開する再転送部とを備える。
【００６０】
（区画単位の差分データの抽出と復元）
本発明の別の形態にあっては、条件４のメモリ形態を対象とする。即ち、受信装置側のメモリ容量の制約に対応して新ファイルを同一サイズの複数個の区画に分け、各区画毎に旧ファイルと新ファイルの差分データを抽出し、受信装置側では、新ファイルを差分データと旧ファイルから各区画毎に復元して旧ファイルの該当部分に上書きする。
【００６１】
この場合、区画毎に復元された新ファイルは、旧ファイルの該当部分に上書きされるため、上書きが済んだ部分の旧ファイルは失われ、もし、上書きが済んだ旧ファイルの中に、後続する差分データにより参照したい旧ファイルの一致データ列が存在していても、この参照ができず、参照できる旧ファイルの範囲が制限されることで、差分データのサイズが増加してしまう。
【００６２】
そこで本発明にあっては、受信装置側で復元した新ファイルの区画で上書きする際に、もし後続する差分データで参照する場合には、その旧ファイルの該当部分を退避し、上書き後にも参照可能とする。
【００６３】
このため本発明にあっては、送信側で新旧２つのファイルから差分データを生成して送信し、受信側で蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開する差分転送方法に於いて、
送信側装置により、新ファイルを同一サイズの複数個の区画に分け、各区画毎に旧ファイルと新ファイルの差分データを抽出する際に、区画中のデータ列と一致するデータ列を旧ファイルの探索で発見した場合、発見された位置が対象区画の先頭位置に相当する旧ファイルの位置より前方か後方かを判断し、前方と判断した場合は、発見位置と一致長を前方の対象区画の差分データに記述し、後方と判断した場合は、発見位置と一致長を前記対象区画の差分データに記述する。
【００６４】
これに対応して受信側装置により、旧ファィルと差分データから各区画毎に新ファイルを復元して旧ファイルの該当部分に上書きする際に、上書き対象となる旧ファイルの該当部分のデータの中に後続する区画の差分データによって参照されるデータ列が存在する場合は、参照されるデータ列を退避させた後に上書きを行い、退避データに対し後続する区画の差分データによる旧ファイルの該当部分を参照させることを特徴とする。
【００６５】
これにより受信側装置が携帯電話のように利用できるワークメモリが少なく通信速度も低速な環境であっても、一定サイズの区画単位で差分データと旧ファイルから新データを復元できる。
【００６６】
また新ファイルの上書きで旧ファイルが失われても、後続する差分データで旧ファイルのデータ列を参照する場合には、上書きに先立って旧ファイルの参照部分を退避しておくことで、受信側装置で新ファイルと旧ファイルを個別に保存している場合と同等な新ファイルのデータ列に一致する旧ファイルのデータ列の参照による復元ができ、これによって送信側装置で抽出する差分データのサイズを小さくし、通信速度が低速であっても、効率良く新ファイルへの更新ができる。
【００６７】
ここで送信側装置により、新ファイルの対象区画中のデータ列と一致するデータ列の探索を、旧ファイルの全範囲について行い、受信側装置により、上書き対象となる旧ファイルの該当部分のデータの中に後続する区画の差分データによって参照されるデータ列が存在する場合は、旧ファイルの参照されるデータ列の部分のみを退避させる。
【００６８】
また送信側装置により、新ファイルの対象区画中のデータ列と一致するデータ列の探索を、対象区画の先頭位置に相当する旧ファイルの位置よりもｎバイト前方から旧ファイルの最後尾までの範囲について行い、受信側装置により、上書き対象となる旧ファイルの該当部分のデータの中に後続する区画の差分データによって参照されるデータ列が存在する場合は、次の区画との境界位置から前方ｎバイト分に相当する旧ファイルのデータ列を退避させる。
【００６９】
このように前方に対する一致検索範囲をｎバイトに固定することで、受信側装置で使用する退避用のメモリ容量が一義的に決まり、旧ファイルの退避データが多くなりすぎて参照不可となる事態を未然に防止し、受信側装置のメモリ容量に適合した新ファイルの復元を保証する。
【００７０】
受信側装置により、各区画毎に復元した新ファイルを旧ファイルの該当部分に上書きする直前に、旧ファイルの該当部分のデータ列を退避させる。これに対し受信側装置により、各区画毎に新ファイルの復元を開始する前に、旧ファイルの該当部分のデータ列を退避させても良い。
【００７１】
受信側装置により、新ファイルの区画中のデータ列と一致するデータ列を旧ファイルの探索で複数発見した場合、最も後方の一致データを選択して発見位置と一致長を差分データに記述する。これによって受信側装置での可能な限り旧ファイルのデータ列を退避して参照する必要性を最小限に抑え、ワークメモリ上の退避データ領域を低減する。
【００７２】
本発明は、区画単位に処理する差分抽出プログラムを提供するものであり、
新旧２つのファイルから差分データを生成して送信する送信側のコンピュータに、
新ファイルを同一サイズの複数個の区画に分けるステップと、
各区画毎に旧ファイルと新ファイルの差分データを抽出する際に、区画中のデータ列と一致するデータ列を旧ファイルの探索で発見するステップと、
一致データ列を発見した場合、発見された位置が対象区画の先頭位置に相当する旧ファイルの位置より前方か後方かを判断するステップと、
前方と判断した場合は、発見位置と一致長を前方の対象区画の差分データに記述し、後方と判断した場合は、発見位置と一致長を前記対象区画の差分データに記述するステップと、
を実行させることを特徴とする。
【００７３】
本発明は、区画単位に処理する復元プログラムを提供するものであり、蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開するコンピュータに、
旧ファィルと差分データから各区画毎に新ファイルを復元するステップと、
復元した各区画の新ファイルを復旧ファイルの該当部分に上書きする際に、上書き対象となる旧ファイルの該当部分のデータの中に後続する区画の差分データによって参照されるデータ列が存在する場合は、参照される前記データ列を退避させた後に上書きを行い、退避データに対し後続する区画の差分データによる旧ファイルの該当部分を参照させるステップと、
を実行させることを特徴とする。
【００７４】
本発明は、送信側で新旧２つのファイルから差分データを生成して送信し、受信側で蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開する差分転送システムであって、
新ファイルを同一サイズの複数個の区画に分け、各区画毎に旧ファイルと新ファイルの差分データをする際に、前記区画中のデータ列と一致するデータ列を旧ファイルの探索で発見した場合、発見された位置が対象区画の先頭位置に相当する旧ファイルの位置より前方か後方かを判断し、前方と判断した場合は、発見位置と一致長を前方の対象区画の差分データに記述し、後方と判断した場合は、発見位置と一致長を対象区画の差分データに記述する送信側装置と、
旧ファィルと差分データから各区画毎に新ファイルを復元して部分に上書きする際に、上書き対象となる旧ファイルの該当部分のデータの中に後続する区画の差分データによって参照されるデータ列が存在する場合は、参照されるデータ列を退避させた後に上書きを行い、退避データに対し後続する区画の差分データによる旧ファイルの該当部分を参照させる受信側装置と、
を備えたことを特徴とする。
【００７５】
【発明の実施の形態】
＜目次＞
１．条件１のメモリ形態による差分転送
２．移動を伴う差分データ抽出処理
３．条件１に対応した差分転送動作
４．条件２のメモリ形態による差分転送
５．条件３のメモリ形態による差分転送
６．条件４のメモリ形態による差分転送
７．区画単位の差分転送
本発明による差分転送の実施形態は、受信側におけるメモリ容量の制約から、前記表１に示している４つの条件１〜条件４に分けて説明する。
【００７６】
（１．条件１のメモリ形態による差分転送）
図２は条件１のメモリ形態に対応した本発明による差分転送の第１実施形態のシステムブロック図である。
【００７７】
ここで条件１のメモリ形態とは、差分転送システムにおける受信側のメモリ形態が次の条件の場合である。
（Ａ）格納用不揮発メモリは新旧別ファイルとする。
（Ｂ）ワーク用揮発メモリは旧ファイルが一括蓄積される。
【００７８】
そこで、図２のシステム構成のブロック図について条件１のメモリ形態に対応した構成を説明すると次のようになる。
【００７９】
図２の実施形態は伝送路として無線回線を使用した携帯電話システムを例にとっており、送信側は基地局１０であり、受信側は携帯電話１２である。送信側となる基地局１０には、ハードディスクドライブＨＤＤなどの不揮発メモリを使用した旧ファイル格納部１４−１、同じく不揮発メモリを使用した新ファイル格納部１６−１、揮発メモリを使用したワークメモリ１８、同じく揮発メモリを使用したワークメモリ２０、差分抽出部２２、データ圧縮部２６、送信部３０が設けられる。
【００８０】
一方、受信側の携帯電話１２には、受信部３４、データ解凍部３６、差分展開部４４、ＤＲＡＭ等の揮発メモリを用いたワークメモリ４２、ＳＲＡＭなどの不揮発メモリを使用した旧ファイル格納部４８−１、及び同じく不揮発メモリを用いた新ファイル格納部５０−１を設けている。
【００８１】
即ち、図２の条件１に対応した受信側となる携帯機器１２にあっては、不揮発メモリを用いて旧ファイル格納部４８−１と新ファイル格納部５０−１が別々に設けられており、且つ揮発メモリを用いたワークメモリ４２には旧ファイル格納部４８−１より読み出された旧ファイルが一括蓄積できるメモリ形態を持っている。
【００８２】
図３は、図２の条件１のメモリ形態に対応した実施形態の機能構成のブロック図である。
【００８３】
図３において、送信側の基地局１０には、不揮発メモリに格納された旧ファイル１４と新ファイル１６が存在する。旧ファイル１４は揮発性のワークメモリ１８に一括して読み出される。
【００８４】
ここで旧ファイル１４は所定のデータサイズごとにブロック分けされた分割データＤ１〜Ｄｎで構成されており、ワークメモリ１８に一括して分割データＤ１〜Ｄｎとして読み出されて、一時的に蓄積される。
【００８５】
この旧ファイル１４における分割データＤ１〜Ｄｎの分割サイズは、例えばワークメモリ１８として使用している揮発メモリ、例えばＤＲＡＭのメモリブロックサイズである例えば２５６キロバイト単位に分割される。
【００８６】
新ファイル１６も旧ファイル１４と同様、例えば２５６キロバイト単位に分割された分割データＤ１'〜Ｄｍで構成されており、揮発メモリを用いたワークメモリ２０に対し順次読み出されて、一時的に蓄積される。
【００８７】
差分抽出部２２は、ワークメモリ１８の旧ファイル分割データＤ１〜Ｄｎを参照しながら、ワークメモリ２０に順次蓄積する新ファイル分割データＤ１'〜Ｄｍのそれぞれとの差分を抽出して、差分データを揮発性のワークメモリ２４に出力する。なおワークメモリ２４は、オフラインで送信する場合は不揮発メモリを使用する。
【００８８】
データ圧縮部２６はワークメモリ２４に一時的に蓄積された差分データを圧縮し、無線回線となる伝送路３２を介して携帯電話１２側に送信する。
【００８９】
更に、基地局１０には参照情報処理部２８が設けられる。この参照情報処理部２８は、差分抽出部２２において旧ファイル１４の各分割データＤ１〜Ｄｎが何回参照されたかをカウントアップした参照回数Ｎ１，Ｎ２，・・・Ｎｎを蓄積する参照情報メモリと、参照情報メモリに格納した分割データごとの参照回数でなる参照情報を送る参照情報送信部から構成されている。
【００９０】
受信側となる携帯電話１２には、まず不揮発メモリを用いた旧ファイル格納部４８−１により旧ファイル４８が蓄積されており、旧ファイル４８は送信側の旧ファイル１４と同様、例えばワークメモリ４２のメモリブロックサイズに対応した２５６キロバイト単位に、分割データＤ１〜Ｄｎに分けられている。
【００９１】
新ファイル格納部５０−１により新ファイル５０を別ファイルとして格納することができ、新ファイル５０も同じく２５６キロバイトサイズの分割データＤ１'〜Ｄｍとして蓄積することができる。
【００９２】
また受信側となる携帯電話１２には、受信した圧縮データを解凍するデータ解凍部３６、旧ファイル４８のデータを一括して一時蓄積する揮発メモリを用いたワークメモリ４２、解凍した差分データを一時蓄積する揮発メモリを用いたワークメモリ３８、ワークメモリ４２の旧データを参照しながらワークメモリ３８の差分データを解読して新データを再生する差分展開部４４、展開した差分データを一時蓄積する揮発メモリを用いたワークメモリ４６を備える。
【００９３】
なお差分データをオフラインで受信する場合は、解凍された差分データを一時蓄積するワークメモリ３８は不揮発メモリを使用する。
【００９４】
これに加え、受信側の携帯電話１２には参照情報処理部４０と更新情報処理部４５が設けられる。参照情報処理部４０は、送信側となる基地局１０から分割データごとの旧ファイル参照回数Ｎ１〜Ｎｎを表わした旧ファイル参照情報を受け取る参照情報受信部と、受信した旧ファイル参照回数Ｎ１〜Ｎｎを蓄積し、差分展開部４４に送られてくる差分データと旧ファイルの分割データから新ファイルのデータを差分展開する際のワークメモリ４２の旧ファイルの分割データを参照するごとに受信した参照回数をカウントダウンして記憶し、且つ差分展開で参照している現在の旧ファイル上での最終参照アドレスＡ１〜Ａｎも随時蓄積する参照情報メモリと、新ファイルの分割データが差分展開を終了した時点で、そのときの旧ファイルの分割データごとの参照回数Ｎ１〜Ｎｎ及び最終参照アドレスＡ１〜Ａｎを新ファイルの分割データと共に新ファイル格納部５０−１に参照情報５２として格納する参照情報格納部で構成される。
【００９５】
また更新情報処理部４５は、新ファイルの分割データ分の差分展開が終了した時にカウントアップする分割更新回数Ｎｍ及び新ファイル最終更新アドレスＡｍを、新ファイル格納部５０−１に更新情報５４として格納する更新情報格納部から構成される。
【００９６】
また受信側の携帯電話１２にあっては、差分転送中に電源切れなどによって転送中断となった場合には、電源復旧後に転送中断前に正常に新ファイル格納部５０−１に格納されている旧ファイルの参照情報５２と新ファイルの更新情報５４を読み出して送信側の基地局１０に送ることで、中断したところから再度の差分転送を行うことができる。
【００９７】
（２．移動を伴う差分データ抽出処理）
ここで本発明の差分転送における差分データの抽出処理の詳細を説明すると次のようになる。この実施形態にあっては、旧ファイル１４及び新ファイル１６として、例えば３２ビットコード（４バイトコード）で記述されたプログラムファイルを扱うものとする。
【００９８】
図３の基地局１０に設けている差分抽出部２２は、旧ファイル１４及び新ファイル１６から新旧２つの分割データに対し、ファイル先頭から所定データ単位、この実施形態にあっては１バイト単位にデータを順次比較する。
【００９９】
このバイト単位のデータ比較で新旧ファイルデータの一致を判定した場合、一致している旧ファイルの位置とデータ長を表した転送コードを生成して出力する。差分抽出部２２で差分データとして生成される転送コードは図４（Ａ）のフォーマット構成を持つ。
【０１００】
図４（Ａ）の転送コード１００は２バイトのコードであり、１バイト目の先頭３ビットに転送コード１００であることを示すコード番号「０１０」を格納しており、残り５ビット及び２バイト目の８ビットを使用して転送データ長を格納している。
【０１０１】
差分抽出部２２は、バイト単位に比較している新旧２つのファイルのデータ不一致を判定した場合、旧ファイルの不一致と判定されたデータ位置から前後両方向の隣接する分割データの範囲に亘り、新ファイルのデータに一致する部分を探索する。
【０１０２】
この場合、旧ファイルの前後方向の探索は、１バイト単位とすると処理に時間がかかることから、例えば４バイトおきに旧ファイルのデータと比較する。また旧ファイルの４バイトおきの探索で一致するバイト部分が見つかった場合には、次のいずれかの条件を満足する２段階の一致判定により一致部分が探索できたと判定する。
（１）旧ファイルの新ファイル１バイトデータに一致する部分に続く所定バイト数ｎ以上、例えばｎ＝１６バイト以上、連続して一致する部分を探索した場合に、データが一致したと判定する。
（２）旧ファイルの新ファイルの１バイトデータに一致する部分に続く所定データ数ｘ、例えばｘ＝６４バイト中に分散している他の所定バイト数ｙ、例えばｙ＝３２バイト以上、一致部分を探索した場合に、データが一致したと判定する。
【０１０３】
このように旧ファイルを不一致位置から前後方向に探索して１バイト部分の一致が得られた後に、前記（１）または（２）のいずれかの条件で２段階に一致部分を判定する理由は、新旧ファイルの差分データ抽出処理において一致判断を確実にするためと同時に、差分データ抽出処理において可能な限り置換処理の機会を増加させることで差分データの冗長性を低減してデータ量を少なくするためである。
【０１０４】
差分抽出部２２は、旧ファイルの不一致部分からの前後方向の探索で一致部分を探索できた場合に、旧ファイル上での不一致部分から一致部分までの移動情報を示す移動コードを生成して出力する。この移動コードは、旧ファイル上の前方を負方向とし後方を正方向とする移動方向と、旧ファイル上での不一致部分から一致部分までのデータ長を表わす移動長を持つ。
【０１０５】
具体的には、図４（Ｄ）の負移動コード１０６または図４（Ｅ）の正移動コード１０８を生成して出力する。負移動コード１０６及び正移動コード１０８は、図４（Ａ）の転送コード１００と同様、２バイトのコード情報であり、１バイト目の先頭２ビットにつき、負移動コード１０６はコード番号「１０」を格納しており、その後ろに旧ファイル上の移動長を示す１バイト目の残りの６ビット及び２バイト目の８ビットを使用して格納する。
【０１０６】
図４（Ｅ）の正移動コード１０８も同様に、１バイト目の先頭２ビットに正制御コードであることを示すコード番号「１１」を格納し、これに続いて移動長を１バイト目の残りの６ビット及び２バイト目の８ビットを使用して格納している。
【０１０７】
再び図３を参照するに、差分抽出部２２は一致部分を探索できなかった場合には、一致部分を探索できるまでの旧ファイルの不一致部分のデータ長を表した図４（Ｂ）の転送置換コード１０２に、不一致部分における新データを付加して出力する。
【０１０８】
この転送置換コード１０２は、２バイトの制御コードであり、１バイト目の先頭２ビットに転送置換コードであることを示すコード番号「００」を格納し、これに続く１バイトの残りの６ビット及び２バイト目の８ビットを使用して置換データ長及び転送長データを格納している。
【０１０９】
本発明の差分抽出部２２にあっては、差分データを生成する際に、それまでの差分データ抽出処理で同じ差の値が生成されているか否かチェックし、もし同じ差の値が生成されている場合には、新たに転送置換コード１０２を生成せず、既存の差分パターンの存在を示す差分データとして図４（Ｃ）の転送増加コード１０４を生成して出力する。
【０１１０】
この転送増加コード１０４は２バイトの制御コードであり、１バイト目の先頭３ビットに転送増加コードであることを示すコード番号「０１１」を格納し、これに続く１バイト目の残り５ビット及び２バイト目の８ビットを使用して転送データ長を格納している。
【０１１１】
即ち本発明の差分抽出部２２にあっては、差の値が過去に存在していない最初の値であった場合には図４（Ｂ）の置換コード１０２を発生し、これに新データを付加して出力するが、差の値が過去に同じ値を持つ２回目以降の場合には、図４（Ｃ）の転送増加コード１０４を生成して出力し、この場合に新データを付加する必要がなく、このため同じ差分パターンが複数出る場合には１回目だけの新データの付加で済み、それ以降は必要ないことから、これによって差分データの冗長性を低減し、差分データ量を少なくできる。
【０１１２】
図５は、図３の差分抽出部２２の概略フローチャートである。図５において、ステップＳ１で新旧ファイルを読み込んで例えば１バイト単位に比較する。新旧ファイルの１バイトデータの一致がステップＳ２で判別されると、ステップＳ３で転送情報（転送コード）の生成処理を行う。
【０１１３】
ステップＳ２でデータ一致が得られなかった場合、即ち不一致の場合には、ステップＳ５で新ファイルの１バイトデータに対応する旧ファイルの不一致部分の前後を探索して一致部分を探索する。
【０１１４】
この一致部分は、旧ファイルにおける前後探索で１の一致が得られた後、一致した１バイトデータに続くｎ＝１６バイト以上の連続一致、あるいは１バイトに続くｘ＝６４バイト中の３２バイト以上の一致をもってデータ一致と判断している。
【０１１５】
ステップＳ６で一致部分探索結果につき一致部分が得られれば、ステップＳ７で移動情報（正移動コード又は負移動コード）を生成する。一致部分がなかった場合には、ステップＳ８で置換情報生成処理を行う。
【０１１６】
この置換情報生成処理は、差の値が最初に得られた値である場合には図４（Ｂ）の転送置換コード１０２を発生し、これに新データを付加して出力する。これに対し同じ差の値となる２回目以降の場合にあっては、図４（Ｃ）の転送増加コード１０４を生成して出力することで、新データの付加は不要となる。このような処理をステップＳ４でファイル終了位置まで繰り返す。
【０１１７】
図６は本発明の差分展開処理に固有な従来方法では処理できない新旧ファイルパターンの一例である。この新旧ファイルパターンは、旧ファイル１４のデータＡが新ファイル１６ではデータＡ，Ａ，に複数複写されている。
【０１１８】
図７は、図６の新旧ファイルパターンを対象とした本発明による差分抽出処理の具体的な処理手順を示している。本発明の差分抽出処理にあっては、新ファイル１６に対しデータ比較対象ポインタＰを設定し、旧ファイル１４に対してはデータ参照ポインタＱを設定し、これらのポインタＰ，Ｑの位置の制御により差分抽出処理を行う。
【０１１９】
なお以下の説明にあっては、データ比較対象ポインタＰとデータ参照ポインタＱを単にポインタと言い、またポインタの制御順にＰ１，Ｐ２，Ｐ３あるいはＱ１，Ｑ２，Ｑ３というように番号を付して示している。更に、データＡ，Ｂ，Ｃのデータ長をａバイト、ｂバイト、ｃバイトとする。
【０１２０】
図７において、まず新ファイル１６及び旧ファイル１４の先頭をスタートポイントとしてポインタＰ１，Ｑ１をセットし、点線で示す１バイトデータを比較する。この場合、同じデータＡであることから、最初の１バイト比較で１バイトデータは一致するので、一致したらポインタＰ１，Ｑ１を次の１バイトずらした位置に移動して１バイトデータを比較する。
【０１２１】
この結果、Ｐ２，Ｑ２まで新ファイル１６と旧ファイル１４の同じデータＡについてバイト一致の結果が得られる。続いて新ファイル１６及び旧ファイル１４につき、ポインタＰ３，Ｑ３に移動して次の１バイトを比較すると、この場合、データＡとデータＢの先頭バイトであり、１バイトデータは不一致となる。
【０１２２】
このように１バイトデータの比較で不一致になると、本発明にあっては、旧ファイル１４における不一致位置のポインタＱ３の前後にポインタを移動して、新ファイル１６におけるポインタＰ３の１バイトデータとの一致部分の探索を行う。
【０１２３】
旧ファイル１４における不一致部分のポインタＱ３の前後における一致部分の探索にあっては、例えば４バイトおきに旧ファイル１４の１バイトデータを抽出して比較する。この探索により旧ファイル１４の前方のデータＡにおける先頭１バイトが、新ファイル１６のポインタＰ３の1バイトに一致する。
【０１２４】
この不一致部分の前後の探索で旧ファイル１４から一致部分が判別されたならば、ポインタＱ３を一致部分のポインタＱ３'に移動する。そして新ファイル１６のポインタＰ３の1バイトデータと、探索により移動した旧ファイル１４のＱ３'の１バイトから、順番にバイト単位の比較を行う。
【０１２５】
この場合には同じデータＡであることから、ポインタＰ４，Ｑ４までバイト単位のデータ一致が得られる。続いてポインタをＰ５，Ｑ５に移動してデータＢの先頭バイトを比較すると、この場合にも同じデータＢであることからデータ一致となり、このデータ一致は最後のポインタＰ６，Ｑ６まで続くことになる。
【０１２６】
このような図７におけるポインタの制御による差分データの抽出処理により、図８の差分データファイル１１０に示すような制御コードが生成されて出力される。即ち、図７の新旧ファイルにおける先頭のデータＡにあっては、コード内容にデータＡのデータ長であるａバイトをもつ転送コード１１２が生成される。
【０１２７】
続いて、ポインタＰ３とポインタＱ３の１バイトデータの不一致部分による旧ファイル１４の前後探索でデータＡの先頭バイトとの一致が得られたときのポインタＱ３からＱ３'への移動を示す移動コードが生成される。この移動コードは、ポインタＱ３が前方のＱ３'に移動する負方向の移動であることから、負移動コード１１４を生成し、移動長はポインタのずれ量を示す−ａバイトを格納している。
【０１２８】
そして最後に、新ファイル１６における２番目のデータＡと最後のデータＢに対する旧ファイル１４のデータＡ，Ｂとの一致を示す転送コード１１６を生成して出力しており、この場合の転送データ長はデータａとデータｂのバイト長ａ，ｂを加算した（ａ＋ｂ）バイトとなっている。
【０１２９】
図９は、図７のポインタＰ３，Ｑ３で１バイトデータが不一致となり、旧ファイル１４について前後方向に探索して前方のデータＡの先頭の１バイトデータと一致したときに、続いて行われる２段の一致判断の具体例を示している。
【０１３０】
図９にあっては、新ファイル１６の１バイトデータ１１８と旧ファイル１４の１バイトデータ１２０の不一致で後方に探索して１バイトデータ１２２との一致を探索した場合である。この場合、探索した１バイトデータ１２２に続くデータ部分１２６としてｎ＝１６バイト以上、新ファイル１６のデータ部分１２４と一致する場合に、一致部分を探索できたものと判定する。
【０１３１】
図１０は一致探索における他の２段階の一致部分判定処理の説明図である。この場合には、新ファイル１６の１バイトデータ６２の後方の探索で１バイトデータ１２２との一致が判別されると、これに続くｘ＝６４バイト中のｙ＝３２バイト以上が一致した場合、即ち一致する１バイトデータ１１８，１２２に続く新旧ファイル１４，１６においてデータ部分１２８−１〜５と１３０−１〜１３０−５の一致部分の合計バイト数がｙ＝３２バイト以上であった場合に、一致部分を探索できたと判定する。
【０１３２】
このように図９または図１０のいずれかの一致条件が得られたときには、新ファイル１６と旧ファイル１４の間において一致箇所にずれが発生したものと判定し、図４（Ｄ）の負移動コード１０６または図４（Ｅ）の正移動コード１０８をずれの方向に応じて発生させる。
【０１３３】
このずれの発生を示す負移動コード１０６または正移動コード１０８の発生により、旧ファイル１４上でポインタをずれ量だけ移動した後の処理は、再びずらしたポインタ位置からのバイト単位の比較による差分抽出処理となる。
【０１３４】
図１１は新旧ファイルの置換パターンである。ここで旧ファイル１４はデータＡ，Ｂ，Ｃで構成されており、これに対し新ファイル１６はデータＡ，Ｂ'，Ｃで構成されており、データＡ，Ｃの一致部分に対しデータＢ，Ｂ'が置換部分となる。
【０１３５】
図１２は、図１１の置換パターンに対する本発明の差分抽出処理のポインタ制御による具体例である。図１２において、新旧ファイルの先頭のデータＡにあっては、ポインタＰ１〜Ｐ２及びＱ１〜Ｑ２の制御によりデータＡの一致判別が行われる。
【０１３６】
続いて新ファイル１６のポインタＰ３及び旧ファイル１４のポインタＱ３への移動によりデータＢ，Ｂ'の先頭１バイトを比較する。この比較によりデータが不一致であったとすると、旧ファイル１４について前後方向を探索しても一致部分は得られないことから、ポインタＰ３，Ｑ３を後方に１バイトずつ移動し、これをポインタＰ４，Ｑ４まで繰り返す。
【０１３７】
更にポインタＰ５，Ｑ５に移動すると、次のデータＣの先頭１バイトの比較となり、一致部分と判別され、同時に図９または図１０の２段階目の一致条件が満足されることで一致部分と判定される。したがって、この時点で置換部分となるデータＢとＢ'につき、図１３の置換データ長ｂバイトと転送データ長ａバイトの転送置換コード１３４を発生する。
【０１３８】
このときＢ’は過去の置換コードの差の値と一致しない初めて出た値であることから、転送置換コード１３４を生成し、これにＢ’の値を持つ新データ１３６を付加して出力する。
【０１３９】
そして図１２において、新ファイル１６のポインタＰ５〜Ｐ６の移動と、これに同期した旧ファイル１４におけるポインタＱ５〜Ｑ６の移動により、データＣの一致部分が判別され、図１３の転送データ長ｃバイトの転送コード１３８が生成される。
【０１４０】
図１４は、図１１のデータＢ,Ｂ'のような置換処理において、置換部分の差の値として同一の値が繰り返される場合の処理の説明図である。図１４の旧ファイル１４及び新ファイル１６は、４ビットのバイトコードを１６進法の数値で表わしている。この新旧ファイルを比較すると、一致部分１４０，１４２，１４４，１４６，１４８の間に不一致部分１５０，１５２，１５４，１５６がそれぞれ存在している。
【０１４１】
ここで、不一致部分１５０〜１５６における旧ファイル１４に対する新ファイル１６の２バイトデータの差が、共に同じ１６進値「１１」となっている。このような場合、本発明の差分データ生成処理にあっては、先頭の不一致部分１５０における置換処理として差が最初に得られた値であることから、図４（Ｂ）の転送置換コード１０２を発生し、これに新データ「１６」を付加する。
【０１４２】
これに対し２番目以降の一致部分１４２，１４４，１４６，１４８については、同じ差となる１６進値「１１」であることから、この場合には図４（Ｃ）の転送増加コード１０４を生成し、新データは付加しない。これによって置換処理で生成する差分データの冗長性を低減し、差分データ量を大きく低減することができる。
【０１４３】
この場合、差分データの復元側では、転送置換コード１０２に付加している新データ「１６」から旧データとの差「１１」を求め、その後に転送増加コード１０４を受けると、対応する旧データに差「１１」を加算することで、新データが復元できる。
【０１４４】
図１５は、データ削除のために移動処理を行う新旧ファイルの説明図である。この新旧ファイルにあっては、旧ファイル１４のデータＡ，Ｂ，ＣからデータＢを削除することで新ファイル１６のデータＡ，Ｃを得ている。
【０１４５】
図１６は、図１５の新旧ファイルを対象としたポインタ制御による本発明の差分抽出処理である。この場合、新ファイル１６のポインタＰ３の位置で旧ファイル１４のポインタＱ３の１バイトデータ、即ちデータＣの先頭バイトとの不一致が判別され、不一致部分に対し前後方向に探索すると、後方に＋ＣバイトずれたＢデータの先頭バイトでデータ一致が得られる。
【０１４６】
このため旧ファイル１４のポインタＱ３をポインタＱ３'に移動し、このポインタＱ３'の移動により、図１７の差分データファイル１１０における２番目の移動長＋ｃバイトの正移動コード１６０を発生している。その前の一致部分のデータＡ，Ｂにおける制御コードは転送コード１５８及び転送コード１６２である。
【０１４７】
図１８は、データ挿入のための移動処理を行う新旧ファイルの説明図である。この場合、旧ファイル１４のデータＡ，Ｂの間に新ファイル１６のようにデータＣを挿入している。
【０１４８】
図１９は、図１８の新旧ファイルに対する本発明のポインタ制御による差分抽出処理である。この場合、新ファイル１６のポインタＰ３及び旧ファイル１４のポインタＱ３の位置でデータＣとデータＢの先頭１バイトが不一致となり、旧ファイル１４において不一致部分の前後方向に探索しても一致部分は得られないことから、新ファイル１６及び旧ファイル１４について順次後方にポインタを移動し、ポインタＰ４，Ｑ４までの移動でそれぞれ不一致となる。
【０１４９】
次にポインタＰ５，Ｑ５に移動して、１バイトデータの不一致になり、これに伴って旧ファイル１４上で不一致部分の前後方向に探索を行うと、データＢの先頭１バイトとの一致部分が判別される。このような一致部分の判別により、新ファイル１６におけるポインタＰ３〜Ｐ４のデータＣは、新規データ即ち挿入部分となるデータであることが判別できる。
【０１５０】
このため図２０の差分データファイル１１０において、置換処理により転送置換コード１６６を発生し、これに「Ｃ」の値を持つ新データ１６８を付加して出力する。
【０１５１】
続いて図１９において、旧ファイル１４においてポインタＱ５を前方となる負方向に−ＣバイトずらしてポインタＱ５'としたことを示す図２０の負移動コード１７０を生成して出力する。最後に、ポインタＰ５〜Ｐ６とポインタＱ５'〜Ｑ６'の同期移動によりデータＢの一致部分を判別し、図２０の転送コード１７２を生成して出力する。
【０１５２】
（３．条件１に対応した差分転送動作）
図２１は、図３の送信側となる基地局１０における差分抽出の際の参照情報の生成の具体例を示している。
【０１５３】
図２１において、ワークメモリ１８には旧ファイル１４の分割データＤ１，Ｄ２，Ｄ３，Ｄ４，・・・が一括読出しにより一時蓄積されており、これに対しワークメモリ２０に対し新ファイル１６の分割データＤ１'，Ｄ２'，Ｄ３'，Ｄ４'，・・・が順次読み出されて、旧ファイル１４側との比較により差分ファイル５５に示すような差分データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４，・・・が抽出される。
【０１５４】
ここで新ファイル１６の分割データによる旧ファイル１４の参照は、例えばそれぞれに対するポインタＰ，Ｑの設定により１バイト単位で行われており、一例として、差分データＳＤ１の抽出に新ファイル１６の分割データＤ'１にあっては旧ファイル１４の分割データＤ１を９回参照していたとする。
【０１５５】
また新ファイル１６の分割データＤ２については旧ファイル１４の分割データＤ１を１回参照し、また分割データＤ２を９回参照して、差分データＳＤ２を抽出している。
【０１５６】
同様に新ファイル１６の分割データＤ３'については、旧ファイル１４の分割データＤ２を３回、分割データＤ３を３回参照して、差分データＳＤ３を抽出している。
【０１５７】
更に新ファイル１６の分割データＤ４'にあっては、旧ファイル１４の分割データＤ２を３回、分割データＤ３を４回、分割データＤ４を１６回参照して、差分データＳＤ４を抽出している。
【０１５８】
このような差分抽出処理によって、図２２の参照情報処理部２８の参照情報メモリに、分割ブロックＤ１〜Ｄ４に対応してそれぞれの参照回数Ｎｉがカウントアップされた値Ｎ１＝１０，Ｎ２＝１４，Ｎ３＝７，Ｎ４＝１５・・・として格納される。
【０１５９】
図２３は、図２１，図２２のようにして作成された送信側の旧ファイルの参照情報を受信した受信側における差分展開処理の具体例である。
【０１６０】
図２３において、旧ファイル４８は図３のワークメモリ４２に一括読出しにより分割データＤ１，Ｄ２，Ｄ３，Ｄ４，…として蓄積されており、ワークメモリ３８には解凍された差分ファイル５５の差分データＳＤ１，ＳＤ２，ＳＤ３，ＳＤ４・・・が格納されている。
【０１６１】
同時に、受信側には図２２に示した旧ファイルの参照情報が送られてきていることから、例えば先頭の差分データＳＤ１から新ファイル５０の分割データＤ１を差分展開する際の旧ファイル４８の分割データＤ１の参照ごとに、受信している参照回数のカウントダウンを行う。
【０１６２】
即ち初期状態においては、図２４（Ａ）の参照情報処理部４０−１に示す分割ブロックの参照回数の値が保持されており、この値が差分データを使用した旧ファイルの分割データの参照ごとにカウントダウンされる。
【０１６３】
例えば図２３における差分データＳＤ３による旧ファイル４８の分割データの参照で新ファイル５０の分割データＤ３'の差分展開が終了した時点にあって、分割データＤ１の参照回数初期値Ｎ１＝１０は、差分データＳＤ１における９回と差分データＳＤ２における１回の参照による合計１０回で図２４（Ｂ）のようにＮ１＝０となっている。
【０１６４】
また分割データＤ２の参照回数初期値Ｎ２＝１６は、差分データＳＤ２の差分展開における参照回数１０回、差分データＳＤ３における参照回数３回の合計１３回により、この時点でＮ２＝３となっている。
【０１６５】
同様に分割データＤ３の参照回数初期値Ｎ３＝７については、差分データＳＤ３の差分展開における参照回数３回により、現時点でＮ３＝４となっている。なお分割データＤ４の参照回数初期値Ｎ４＝１６は、差分データＳＤ３による展開終了時点では参照されていないことから、最初と同じＮ４＝１６のままである。
【０１６６】
このような受信側における旧ファイルにおける分割データごとの参照回数のカウントダウンにより、参照回数がゼロとなった分割データは、それ以降の差分展開では参照されないことが分かる。
【０１６７】
したがって、受信側における参照情報処理部４０における分割データごとにカウントダウンされている現時点での参照回数Ｎ１〜Ｎｎ及び旧ファイルの最終参照アドレスＡ１〜Ａｎは、受信側における差分展開の進捗状況を表わす情報となる。
【０１６８】
このため、差分展開中に受信側となる携帯電話１２の電源切れなどで転送中断が起きると、転送中断時の直前に差分展開終了している新ファイル５０の分割データまでが正常に差分展開を終了しており、このときの新ファイル格納部５０−１における参照情報５２と更新情報５４を読み出して送信側に送ることで、中断したところから差分転送を再開することができる。
【０１６９】
図２５は、図３の新ファイル格納部５０−１の格納状態であり、差分展開された分割データＤ１の格納領域５８−１に続いて、旧ファイル分割データ参照回数と最終参照アドレスを含む参照情報５２−１が格納され、続いて新ファイル分割データ更新回数と最終更新アドレスでなる更新情報５４−１が格納されている。以下同様にして、分割データごとに参照情報と更新情報が格納されている。もちろん新ファイル格納部５０−１における他の格納形態としては、差分展開された分割データの格納領域と参照情報及び更新情報の格納領域を別に分けるようにしてもよい。
【０１７０】
次に図３の条件１のメモリ形態を持つ実施形態における差分転送動作を、図２６，図２７のフローチャートを参照して説明する。
【０１７１】
まず最初の差分転送では、送信側において図２６のフローチャートに従って次の処理を実行する。
Ｓ１：旧ファイル１４から分割データを一括読出し、ワークメモリ１８に一時蓄積する。
Ｓ２：新ファイル１６から分割データを順次読出し、ワークメモリ２０に一時蓄積する。
Ｓ３：差分抽出部２２でワークメモリ１８の旧ファイル分割データを参照しながらワークメモリ２０の新ファイル分割データとの差分データを抽出し、ワークメモリ２４に一時蓄積する。
Ｓ４：差分抽出において、旧ファイル１４の分割データが参照されて使われた回数をカウントアップして参照情報を生成し、分割データ毎に或いは全ての差分データ作成が完了した時点で、参照情報を受信側に送る。
Ｓ５：データ圧縮部２６がワークメモリ２４からの差分データを圧縮して受信側に送る。差分データを全て作り終えた後に圧縮して受信側に送っても良い。
Ｓ６：新ファイル１６からの分割データ分の差分抽出処理が終了した場合、ステップＳ７に進み、終了してなければステップＳ３に戻る。
Ｓ７：新ファイル１６の差分抽出処理が全て終了した場合は、送信側の処理を終了する。全て終了していない場合はステップＳ２に戻る。
【０１７２】
受信側においては、図２７のフローチャートに従って次の処理を実行する。
Ｓ８：旧ファイル４８の分割データを一括読出し、ワークメモリ４２に一時蓄積する。
Ｓ９：データ解凍部３６で受信した圧縮データを解凍して差分データを復元し、ワークメモリ３８に一時蓄積する。
Ｓ１０：差分展開部４４でワークメモリ４２の旧ファィル分割データを参照しながら、ワークメモリ３８からの差分データを解読して新ファイルの分割データを展開し、ワークメモリ４６に一時蓄積する。
Ｓ１１：送信側から送られてきた旧ファイルの参照情報である分割データ毎の参照回数のカウントダウンを行う。
Ｓ１２：差分データを展開して新ファイルの分割データ分が再生された場合、ステップＳ１３に進み、そうでなければステップＳ１０に戻る。
Ｓ１３：新ファイルの分割データ分の展開終了した場合、ワークメモリ４６から新ファイル５０に分割データ及び旧ファイルの参照情報５２を書き込む。
Ｓ１４：新ファイル５０の分割データの更新回数をカウントすると共に、新ファイルの分割データ更新回数と最終更新アドレスからなる更新情報５４を新ファイル５０に格納する。
Ｓ１５：新ファイル分の差分展開処理が全て終了した場合は、受信処理を終了し、全て終了していない場合は、ステップＳ１０に戻る。
【０１７３】
次に、受信側において、図２７のステップＳ８〜Ｓ１２の間に電源断などで転送が中断になった場合、受信側から送信側に対し、差分転送の途中再送を依頼をする。この場合、まず受信側では図２７の再スタートのフローチャートに従って次の処理を実行する。
Ｓ１６：送信側に対して、差分転送の再開を依頼すると共に、新ファイル５０に格納した旧ファイルの参照情報５２および新ファイルの更新情報５４を送信側に送る。
【０１７４】
これに対し送信側では図２６の再スタートのフローチャートに従って次の処理を実行する。
Ｓ１７：受信側からの差分転送の再開依頼を受けて、受信側から送られてきた前回の転送で実行された旧ファイルの参照情報５２と新ファイルの更新情報５４から、旧ファイル１４および新ファイル１６の再スタートする分割データを決めると共に、旧ファイルのポインタを参照最終アドレスに設定する。また受信側から送られてきた旧ファイルの参照情報５２の中の参照回数Ｎ１〜Ｎｎを参照情報処理部２８の参照情報メモリに設定し、更にステップＳ１に戻る。
【０１７５】
このように新ファイルの差分展開の状況を知る旧ファイルの参照情報及び新ファイルの更新情報を受信側から受けて、送信側は中断した時点からの差分抽出を再開することができる。
【０１７６】
（４．条件２のメモリ形態による差分転送）
図２８は条件２のメモリ形態に対応した本発明による差分転送の第２実施形態のシステムブロック図である。
【０１７７】
ここで条件２のメモリ形態とは、差分転送システムにおける受信側のメモリ形態が次の条件の場合である。
（Ａ）格納用不揮発メモリは新旧別ファイルとする。
（Ｂ）ワーク用揮発メモリは容量が制限され、旧ファイルが順次蓄積される。
【０１７８】
そこで、図２８のシステム構成のブロック図について条件２のメモリ形態に対応した構成を説明すると次のようになる。
【０１７９】
図２８において、送信側となる基地局１０には、ハードディスクドライブＨＤＤなどの不揮発メモリを使用した旧ファイル格納部１４−１、同じく不揮発メモリを使用した新ファイル格納部１６−１、揮発メモリを使用したワークメモリ１８、同じく揮発メモリを使用したワークメモリ２０、差分抽出部２２、データ圧縮部２６、送信部３０が設けられる。
【０１８０】
一方、受信側の携帯電話１２には、受信部３４、データ解凍部３６、差分展開部４４、ＤＲＡＭ等の揮発メモリを使用した小容量のワークメモリ４２０、ＳＲＡＭなどの不揮発メモリを使用した旧ファイル格納部４８−１、及び同じく不揮発メモリを用いた新ファイル格納部５０−１を設けている。
【０１８１】
即ち、図２８の条件２に対応した受信側となる携帯電話１２にあっては、不揮発メモリを用いて旧ファイル格納部４８−１と新ファイル格納部５０−１が別々に設けられており、且つ揮発メモリを用いたワークメモリ４２０は容量に制限があり、例えば旧ファイル分割データを最大で４つ蓄積する容量しかなく、旧ファイル格納部４８−１より読み出された旧ファイルが順次蓄積される。
【０１８２】
図２９は、図２８の条件２のメモリ形態に対応した実施形態の機能構成のブロック図である。
【０１８３】
図２９において、送信側の基地局１０には、不揮発メモリに格納された旧ファイル１４と新ファイル１６が存在する。旧ファイル１４は揮発性のワークメモリ１８に一括して読み出される。
【０１８４】
ここで旧ファイル１４は所定のデータサイズごと例えば２５６キロバイト単位にブロック分けされた分割データＤ１〜Ｄｎで構成されており、ワークメモリ１８に一括して分割データＤ１〜Ｄｎとして読み出されて、一時的に蓄積される。
【０１８５】
新ファイル１６も旧ファイル１４と同様、例えば２５６キロバイト単位に分割された分割データＤ１'〜Ｄｍで構成されており、不揮発メモリを用いたワークメモリ２８に対し順次読み出されて、一時的に蓄積される。
【０１８６】
差分抽出部２２は、ワークメモリ１８の旧ファイル分割データＤ１〜Ｄｎを参照しながら、ワークメモリ２０に順次蓄積する新ファイル分割データＤ１'〜Ｄｍのそれぞれとの差分を抽出して、差分データを揮発性のワークメモリ２４に出力する。なおワークメモリ２４は、オフラインで送信する場合は不揮発メモリを使用する。
【０１８７】
データ圧縮部２６はワークメモリ２４に一時的に蓄積された差分データを圧縮し、無線回線となる伝送路３２を介して携帯電話１２側に送信する。
【０１８８】
更に、基地局１０には参照情報処理部２８が設けられる。この参照情報処理部２８は、差分抽出部２２において旧ファイル１４の各分割データＤ１〜Ｄｎが何回参照されたかをカウントアップした参照回数Ｎ１，Ｎ２，・・・Ｎｎを蓄積する参照情報メモリと、参照情報メモリに格納した分割データごとの参照回数でなる参照情報を送る参照情報送信部から構成されている。
【０１８９】
受信側となる携帯電話１２には不揮発メモリを用いて旧ファイル格納部４８−１と新ファイル格納部５０−１が個別に設けられ、旧ファイル４８を格納していると共に、差分展開された新ファイル５０を格納することができる。
【０１９０】
また携帯電話１２には、データ解凍部３６、解凍した差分データを一時蓄積する揮発性のワークメモリ３８、旧ファイル４８の分割データを最大４つ一時蓄積するワークメモリ４２０、差分展開部４４、差分展開により得られた新ファイルの分割データを一時蓄積するワークメモリ４６、差分展開によりワークメモリ４２０の旧ファイルのデータを参照するごとに受信した参照回数をダウンカウントして書き換え、更に新ファイルの分割データ分の差分展開が終了したときの参照最終アドレスＡ１〜Ａｎを書き込む参照情報処理部４０が設けられる。
【０１９１】
更に、新ファイルの分割データが更新される回数Ｎｍ及び新ファイルの最終更新アドレスＡｍでなる更新情報を作成する更新情報処理部４５が設けられる。
【０１９２】
このような条件２のメモリ形態に対応した送信側及び受信側の構成及び処理動作は、受信側にあってはワークメモリ１８に対する旧ファイルの分割データの順次読出しによる記憶、及び受信側にあってはワークメモリ４２０に対する旧ファイル４８の分割データの順次読出しによる一時蓄積以外の点は、図３の条件１のメモリ形態の場合と基本的に同じになる。
【０１９３】
そこで、送信側の基地局１０におけるワークメモリ１８における旧ファイルの順次読出しによる蓄積に対応した差分抽出と、受信側のメモリ４２０に対する旧ファイル４８の順次読出しによる蓄積に対応した差分展開を説明すると、次のようになる。
【０１９４】
送信側の基地局１０にあっては、ワークメモリ２０に対し新ファイル１６より分割データＤ１'〜Ｄｍを順次読み込んで一時蓄積する。同時に、ワークメモリ１８に旧ファイル１４にＤ１〜Ｄｎを順次読み込んで一時蓄積する。同時に、ワークメモリ２０に新ファイル１６の分割データＤ１'〜Ｄｍを順次読み込んで一時蓄積する。
【０１９５】
そして差分抽出部２２により、新ファイル１６の先頭の分割データＤ１'から順番にワークメモリ１８の旧ファイル１４の分割データＤ１〜Ｄｎを参照しながら差分データを抽出し、ワークメモリ２４に格納した後、データ圧縮部２６で圧縮して、伝送路３２により送信する。
【０１９６】
また、差分展開の際に旧ファイル１４における分割データＤ１〜Ｄｎに対する参照回数がカウントアップされて参照情報処理部２８の参照情報メモリに参照回数Ｎ１〜Ｎｎとして書き込まれており、データ圧縮部２６による差分データの送信に伴い、この旧ファイル１４の参照情報も送られる。
【０１９７】
受信側の携帯電話１２にあっては、圧縮データをデータ解凍部３６で解凍してワークメモリ３８に差分データとして蓄積し、また旧ファイル４８につきワークメモリ４２０に、最初は先頭から３つの分割データＤ１〜Ｄ３を読み込んで一時蓄積する。
【０１９８】
また受信された旧ファイルの参照回数Ｎ１〜Ｎｎが、参照情報処理部４０の参照情報メモリに書き込まれる。この状態で差分展開部４４は、ワークメモリ３８に蓄積している差分データによりワークメモリ４２０の旧ファイルの分割データを参照して新ファイルの分割データＤ１'を展開し、ワークメモリ４６に蓄積する。
【０１９９】
この差分展開の際のワークメモリ４２０の旧ファイルの分割データに対する参照が行われると、参照ごとに対応する分割データの参照回数Ｎ１〜Ｎｎのいずれかに対するダウンカウントが行われる。また、新ファイルの分割データ分の差分展開が終了した時点の旧ファイルの参照アドレスＡ１〜Ａｎの対応するアドレスが参照情報メモリに書き込まれる。
【０２００】
ワークメモリ４６の差分展開された新ファイル５０の分割データは新ファイル格納部５０−１に格納され、このとき更新情報処理部４５で作成されている更新情報５４が格納される。
【０２０１】
このような受信側の携帯電話１２における差分展開の際に、容量的に制約されているワークメモリ４２０に対する旧ファイル４８の分割データの書込制御は、参照情報処理部４０の参照情報メモリに格納されているダウンカウントされた旧ファイル参照回数Ｎ１〜Ｎｎを使用して行われる。
【０２０２】
即ち、ワークメモリ４２０における旧ファイル４８の分割データの蓄積は、旧ファイルの参照回数のダウンカウントでゼロになるまで蓄積が維持され、参照回数がゼロとなった時点で消去されて、旧ファイル４８から次の分割データを読み出して蓄積する。
【０２０３】
図３０は、図２９の受信側におけるワークメモリ４２０の蓄積制御を、参照回数のダウンカウントによる変化、即ち差分展開の進捗状況に合わせて示している。
【０２０４】
図３０（Ａ）は差分展開の開始時点であり、旧ファイル４８より３つの分割データＤ１〜Ｄ３を順次読み出して一時蓄積する。次にワークメモリ４２０の旧ファイルの分割データＤ１，Ｄ２を参照しながら、ワークメモリ３８の解凍した差分データＳＤ１との差分展開を行って新ファイルの分割データＤ１'を展開し、ワークメモリ４６に一時蓄積する。
【０２０５】
また、この差分展開と同時に、参照回数メモリ４０−１に書き込まれている受信された参照回数Ｎ１〜Ｎｎにつき、分割データＤ１，Ｄ２に対応した参照回数Ｎ１，Ｎ２のダウンカウントを行う。ここで、受信された参照回数は、図２１，図２２の差分展開により得られた参照情報を例にとっており、このため分割データＤ１，Ｄ２の参照回数の初期値は、Ｎ１＝１０、Ｎ２＝１５となっている。
【０２０６】
また受信側における差分展開は図２３の場合を例にとっており、このため新ファイルの分割データＤ１'の差分展開にあっては分割データＤ１を９回参照しており、したがって新ファイルの分割データＤ１'の展開が終了した時点での参照情報メモリ４０−２の参照回数はＮ１＝１にダウンカウントされる。
【０２０７】
新ファイルの分割データＤ１'の展開が済むと、展開した新ファイルの分割データＤ１'を新ファイル領域５０−１１に書き込み、同時に旧ファイルの参照情報を更新情報と共に新ファイル領域５０−２１に書き込む。
【０２０８】
次に図３０（Ｂ）のように、ワークメモリ４２０の旧ファイル４８の分割データＤ１〜Ｄ３を参照しながら、解凍したワークメモリ３８の差分データＳＤ２との差分展開を行って新ファイルの分割データＤ２'を再生し、ワークメモリ４６に一時蓄積する。
【０２０９】
また、このときの参照回数メモリ４０−２について、旧ファイルの分割データＤ１〜Ｄ３の参照に伴うダウンカウントを行い、新ファイルの分割データＤ２'の展開が完了した時点では、ダウンカウントによって参照回数メモリ４０−３のように変化する。
【０２１０】
新ファイルの分割データＤ２'の展開が済むと、新ファイル領域５０−１２に書き込むと共に、このときの旧ファイル参照情報を新ファイルの更新情報と共に新ファイル領域５０−２２に書き込む。この時点で旧ファイル４８の分割データＤ１の参照回数Ｎ１はＮ１＝０となっている。このため分割データＤ１がこれ以上参照されることはなく、メモリ４２０から分割データＤ１は削除可能となる。
【０２１１】
次に図３０（Ｃ）において、メモリ４２０から参照回数Ｎ１＝０となった分割データＤ１を削除し、新たに分割データＤ４を読み出して一時蓄積する。次に、ワークメモリ４２０の分割データＤ２〜Ｄ４を参照しながら、解凍した差分データＳＤ３との差分展開を行って新ファイルの分割データＤ３'を再生し、ワークメモリ４６に一時蓄積する。この差分展開に伴う分割データＤ２〜Ｄ４の参照で、参照回数メモリ４０−３は参照回数メモリ４０−４のように参照回数の値が変化する。
【０２１２】
このようにして差分展開されたワークメモリ４６の新ファイルの分割データＤ３'は新ファイル領域５０−１３に書き込まれ、同時にそのときの参照回数メモリ４０−４を含む旧ファイルの参照情報が新ファイルの更新情報と共に新ファイル領域５０−２３に書き込まれる。
【０２１３】
この時点で参照回数メモリ４０−４の参照回数Ｎ２〜Ｎ４の中でゼロとなっている参照回数はないことから、ワークメモリ４２０の分割データＤ２〜Ｄ４はそのまま蓄積を維持して図３０（Ｄ）の次の差分展開に進む。
【０２１４】
図３０（Ｄ）にあっては、旧ファイル４８から次の分割データＤ５を読み出し、ワークメモリ４２０に一時蓄積する。そして分割データＤ２〜Ｄ５を参照しながら、そのときの差分データＳＤ４との差分展開を行って、新ファイルの分割データＤ４'を再生してワークメモリ４６に一時蓄積する。
【０２１５】
また差分展開の際に、このときの参照回数メモリ４０−４について旧ファイルの分割データＤ２〜Ｄ５の参照によるダウンカウントを行い、分割データＤ４'の展開終了時点での参照回数は参照回数メモリ４０−５のようになる。
【０２１６】
差分展開された新ファイルの分割データＤ４'は新ファイル領域５０−１４に書き込まれ、同時にこの時点の参照回数メモリ４０−５の内容を含む参照情報と新ファイルの更新情報が新ファイル領域５０−２４に書き込まれる。
【０２１７】
このとき、ダウンカウントによって参照回数メモリ４０−５における分割データＤ２，Ｄ３の参照回数は共にＮ２＝０，Ｎ３＝０であり、分割データＤ２，Ｄ３はこれ以上参照されることがなく、ワークメモリ４２０から分割データＤ２，Ｄ３は削除可能となる。
【０２１８】
このような図３０における受信側でのワークメモリ４２０のメモリ容量が分割データ４つ分に制約されている場合にあっても、現在位置及び前後の３つの分割データに加え、更に１つの分割データを保持できることで、例えば図３１のような旧ファイルのデータが正方向に移動している場合の差分データからの差分展開についても、ワークメモリ４６の蓄積制御で差分展開することができる。
【０２１９】
図３１（Ａ）は、旧ファイルの分割データＢが新ファイルにおいて＋側に４つ分移動している。このため図３１（Ｂ）〜（Ｅ）の新ファイルの分割データＡ〜Ｂの差分展開において、旧ファイルの分割データＢは図３１（Ｅ）で参照されるまで参照回数Ｎがゼロとならないことから残っている。
【０２２０】
このため現在位置及びその両側の分割データを一時記憶して差分展開する場合にあっても、この３つの分割データの参照領域を超えて移動している旧ファイルの分割データについて、ワークメモリ４２０上に一時保持して差分展開することができる。
【０２２１】
図３２（Ａ）は旧ファイルの分割データＤ１が新ファイルにおいて負方向に移動した場合であり、このような場合にも図３２（Ｂ）（Ｃ）の差分展開における旧ファイル参照による新ファイルの差分生成を行うことができる。
【０２２２】
次に、図２９の条件２のメモリ形態に対応した本発明による差分転送の処理を、図３３及び図３４のフローチャートを参照して説明すると、次のようになる。
【０２２３】
まず最初の差分転送では、送信側において図３３のフローチャートに従って次の処理を実行する。
Ｓ１：旧ファイル１４から分割データを順次読出し、ワークメモリ１８に一時蓄積する。
Ｓ２：新ファイル１６から分割データを順次読出し、ワークメモリ２０に一時蓄積する。
Ｓ３：差分抽出部２２でワークメモリ１８の旧ファイル分割データを参照しながらワークメモリ２０の新ファイル分割データとの差分データを抽出し、ワークメモリ２４に一時蓄積する。
Ｓ４：差分抽出にあたり、旧ファイル１４の次の分割データが必要であれば、ステップＳ１に戻る。そうでない場合は、次のステップＳ５に進む。
Ｓ５：差分抽出において、旧ファイル１４の分割データが参照されて使われた回数をカウントアップして参照情報を生成し、分割データ毎に或いは全ての差分データ作成が完了した時点で、参照情報を受信側に送る。
Ｓ６：データ圧縮部２６がワークメモリ２４からの差分データを圧縮して受信側に送る。差分データを全て作り終えた後に圧縮して受信側に送っても良い。
Ｓ７：新ファイル１６からの分割データ分の差分抽出処理が終了した場合、ステップＳ８に進み、終了してなければステップＳ３に戻る。
Ｓ８：新ファイル１６の差分抽出処理が全て終了した場合は、送信側の処理を終了する。全て終了していない場合はステップＳ２に戻る。
【０２２４】
受信側においては、図３４のフローチャートに従って次の処理を実行する。
Ｓ９：旧ファイル４８の分割データを順次読出し、ワークメモリ４２０に一時蓄積する。
Ｓ１０：データ解凍部３６で受信した圧縮データを解凍して差分データを復元し、ワークメモリ３８に一時蓄積する。
Ｓ１１：差分展開部４４でワークメモリ４２０の旧ファイル分割データを参照しながら、ワークメモリ３８からの差分データを解読して新ファイル分割データを展開し、ワークメモリ４６に一時蓄積する。
Ｓ１２：差分抽出にあたり、旧ファイル１６の次の分割データが必要であれば、ステップＳ９に戻る。そうでない場合は、次のステップＳ１３に進む。
Ｓ１３：送信側から送られてきた旧ファイルの参照情報である分割データ毎の参照回数のカウントダウンを行う。
Ｓ１４：差分データを展開して新ファイルの分割データ分が再生された場合、ステップＳ１５に進み、そうでなければのステップＳ１１に戻る。
Ｓ１５：新ファイルの分割データ分の展開終了した場合、ワークメモリ４６から新ファイル５０に分割データ及び旧ファイルの参照情報５２を書き込む。
Ｓ１６：新ファイル５０の分割データの更新回数をカウントすると共に、新ファイルの分割データ更新回数と最終更新アドレスからなる更新情報５４を新ファイル５０に格納する。
Ｓ１７：新ファイル分の差分展開処理が全て終了した場合は、受信処理を終了し、全て終了していない場合は、ステップＳ１１に戻る。
【０２２５】
次に、受信側において、図３４のステップＳ９〜Ｓ１２の間に電源断などで転送が中断になった場合、受信側から送信側に対し、差分転送の途中再送を依頼をする。この場合、まず受信側では図３４の再スタートのフローチャートに従って次の処理を実行する。
Ｓ１８：送信側に対して、差分転送の再開を依頼すると共に、新ファイル５０に格納した旧ファイルの参照情報５２および新ファイルの更新情報５４を送信側に送る。
【０２２６】
これに対し送信側では図３３の再スタートのフローチャートに従って次の処理を実行する。
Ｓ１９：受信側からの差分転送の再開依頼を受けて、受信側から送られてきた前回の転送で実行された旧ファイルの参照情報５２と新ファイルの更新情報５４から、旧ファイル１４および新ファイル１６の再スタートする分割データを決めると共に、旧ファイルのポインタを参照最終アドレスに設定する。また受信側から送られてきた旧ファイルの参照情報５２の中の参照回数Ｎ１〜Ｎｎを参照情報処理部２８の参照情報メモリに設定し、更にステップＳ１に戻る。
【０２２７】
このように新ファイルの差分展開の状況を知る旧ファイルの参照情報及び新ファイルの更新情報を受信側から受けて、送信側は中断した時点からの差分抽出を再開することができる。
【０２２８】
（５．条件３のメモリ形態に対応した差分展開）
図３５は、前記表１の条件３に対応したメモリ形態を持った本発明による差分展開のシステム構成のブロック図である。この条件３のメモリ形態にあっては、受信側について次のメモリ構成を持っている。
（Ａ）旧ファイルと新ファイルは同じ不揮発メモリの新旧同ファイルとなる。
（Ｂ）ワーク用揮発メモリに旧ファイルが一括蓄積される。
【０２２９】
このような条件３のメモリ形態は、図２に示した条件１のメモリ形態における受信側の携帯電話１２の不揮発メモリに設けていた新旧２つのファイルを兼用ファイルとしたものである。
【０２３０】
図３５において、送信側となる基地局１０には、ハードディスクＨＤＤなどの不揮発メモリを用いた旧ファイル格納部１４−１、同じく不揮発メモリを用いた新ファイル格納部１６−１、揮発メモリを用いたワークメモリ１８，２０、差分抽出部２２、データ圧縮部２６及び送信部３０が設けられ、これは図２の条件１のメモリ形態の場合と同じである。
【０２３１】
受信側となる携帯電話１２には、受信部３４、データ解凍部３６、差分展開部４４が設けられる。また、不揮発メモリを使用した新旧同ファイルとした兼用ファイル格納部８０が設けられる。
【０２３２】
差分転送の開始時には兼用ファイル格納部８０には旧ファイルが格納されており、差分展開部４４で受信した差分データから旧ファイルを展開すると、兼用ファイル格納部８０に格納している旧ファイルに、展開した新ファイルを上書きすることになる。差分展開部４４で新ファイルの展開に使用する旧ファイルは、揮発性のワークメモリ４２に一括して読み出されて一時蓄積される。
【０２３３】
図３６は、図３５の条件３のメモリ形態に対応した差分転送の機能構成のブロック図である。
【０２３４】
図３６において、送信側となる基地局１０には、旧ファイル１４と新ファイル１６が個別に設けられており、それぞれ例えば２５６バイトのサイズを持つ旧ファイル分割データＤ１〜Ｄｎ及び新ファイル分割データＤ１'〜Ｄｍとして格納されている。
【０２３５】
また基地局１０には、旧ファイル１４を一括して読み出して一時蓄積する揮発メモリを用いたワークメモリ１８が設けられる。また、新ファイル１６の分割データＤ１'〜Ｄｍを順次読み出して一時蓄積する不揮発メモリを用いたワークメモリ２０が設けられる。
【０２３６】
差分抽出部２２は、ワークメモリ１８の旧ファイル分割データを参照しながら、ワークメモリ２０の新ファイル分割データとの差分をとって差分データを抽出し、ワークメモリ２４に一時蓄積する。
【０２３７】
ワークメモリ２４は揮発メモリであるが、オフラインで送信する場合には不揮発メモリとする。データ圧縮部２６は、ワークメモリ２４からの差分データを圧縮し、伝送路３２を介して携帯電話１２側に送信する。
【０２３８】
更に基地局１０には、差分抽出部２２による差分抽出処理中に旧ファイルの各分割データが何回参照されたかをカウントアップしてメモリに蓄積する参照情報処理部２８が設けられており、旧ファイル参照回数Ｎ１〜Ｎｎでなる参照情報を、圧縮部２６における差分データの圧縮による伝送と同時に携帯電話１２側に送信する。
【０２３９】
このような送信側となる基地局１０の構成及び機能は、図３に示した条件１のメモリ形態の実施形態と同じになる。
【０２４０】
受信側となる携帯電話１２側にあっては、受信した圧縮データを解凍するデータ解凍部３６が設けられ、解凍した差分データを揮発性のワークメモリ３８に一時記憶する。
【０２４１】
また、兼用ファイル格納部８０に格納されている旧ファイル４８の分割データＤ１〜Ｄｎを一括して読み出して一時蓄積するワークメモリ４２が設けられる。差分展開部４４は、ワークメモリ４２の旧ファイル分割データを参照しながらワークメモリ３８の差分データを解読して、新ファイル分割データを再生する。
【０２４２】
差分展開部４４で再生された新ファイル分割データは、揮発メモリを用いたワークメモリ４６に一時蓄積される。ワークメモリ４６に一時蓄積された新ファイル分割データは、新ファイルの分割データ分の再生が終了するごとに、兼用ファイル８０に格納している旧ファイル４８の差分展開の際に参照した旧ファイル分割データの部分に上書きされる。
【０２４３】
また受信側となる携帯電話１２には参照情報処理部４０と更新情報処理部４８が設けられている。参照情報処理部４０は、送信側となる基地局１０から受信した旧ファイル参照回数Ｎ１〜Ｎｎでなる参照情報を受信して参照情報メモリに記憶し、差分展開の際にワークメモリ４２の旧ファイル分割データを参照するごとに、対応する分割データの参照回数をダウンカウントする。また、差分展開の際に参照している旧ファイル上での最終参照アドレスも随時蓄積する。
【０２４４】
一方、更新情報処理部４５は、新ファイル分割データの差分展開が終了したときに分割更新回数をカウントアップして、更新情報メモリに更新回数Ｎｍのように記憶すると共に、新ファイルの最終更新アドレスＡｍを記憶する。
【０２４５】
ワークメモリ４６から差分展開された新ファイル分割データを兼用ファイル格納部８０の対応する旧ファイル分割データに上書きする際に、参照情報処理部４０で生成されたその時点の参照情報５２と、更新情報処理部４５で生成されたその時点の更新情報５４が、新ファイル５０の情報として格納される。
【０２４６】
また、差分転送中に受信可能となる携帯電話１２の電源などが切れて転送中断となった場合には、携帯電話１２の電源復旧などにより回復した後に、中断前に新ファイル５０に格納していた参照情報５２と更新情報５４を読み出して送信側の基地局１０に送って差分転送の途中再送依頼を行い、基地局１０から中断したところから再度、差分転送を行うことができる。
【０２４７】
次に図３７及び図３８のフローチャートを参照して、差分転送処理、及び差分転送の途中で転送中断となった場合の再度の差分転送の処理を説明する。
【０２４８】
まず最初の差分転送では、送信側において図３７のフローチャートに従って次の処理を実行する。
Ｓ１：旧ファイル１４の分割データを一括読出し、ワークメモリ１８に一時蓄積する。
Ｓ２：新ファイル１６から分割データを順次読出し、ワークメモリ２０に一時蓄積する。
Ｓ３：差分抽出部２２でワークメモリ１８の旧ファイル分割データを参照しながらワークメモリ２０の新ファィル分割データとの差分データを抽出し、ワークメモリ２４に一時蓄積する。
Ｓ４：差分抽出に当たり、新ファイル１６の次の分割データが必要であれば、ステップＳ２に戻る。そうでない場合は、次のステップＳ５に進む。
Ｓ５：差分抽出において、旧ファイル分割データが参照されて使われた回数をカウントアップして参照情報を生成し、分割データ毎に或いは全ての差分データ作成が完了した時点で、参照情報を受信側に送る。
Ｓ６：データ圧縮部２６がワークメモリ２４からの差分データを圧縮して受信側に送る。差分データを全て作り終えた後に受信側に送っても良い。
Ｓ７：新ファイル１６からの分割データ分の差分抽出処理が終了した場合、ステップＳ８に進み、終了してなければステップＳ３に戻る。
Ｓ８：新ファイル１６からのデータの差分抽出処理が全て終了した場合は、送信側の処理を終了する。新ファイル１６からのデータの差分抽出処理が全て終了していない場合は、ステップＳ２に戻る。
【０２４９】
受信側においては、図３８のフローチャートに従って次の処理を実行する。
Ｓ９：旧ファイル４８の分割データを一括読出し、ワークメモリ４２に一時蓄積する。
Ｓ１０：データ解凍部３６で受信した圧縮データを解凍して差分データを再生し、ワークメモリ３８に一時蓄積する。
Ｓ１１：差分展開部４４では、ワークメモリ４２０の旧ファイル分割データを参照しながら、ワークメモリ３８からの差分データを解読して新ファイル分割データを展開し、ワークメモリ４６に一時蓄積する。
Ｓ１２：差分抽出に当たり、旧ファイル１４の次の分割データが必要であれば、ステップＳ９に戻る。そうでない場合は、次のステップＳ１３に進む。
Ｓ１３：送信側から送られてきた旧ファイルの参照情報である分割データ毎の参照回数のカウントダウンを行う。
Ｓ１４：差分データを展開して新ファイルの分割データ分が再生された場合、ステップＳ１５に進み、そうでなければのステップＳ１１に戻る。
Ｓ１５：新ファイルの分割データ分の展開終了した場合、ワークメモリ４６から旧ファイル４８に新ファイル５０の分割データを上書きし、旧ファイルの参照情報５２を新ファイル５０に格納する。
Ｓ１６：新ファイル分割データの更新回数をカウントすると共に、新ファイル分割データの更新回数と最終更新アドレスからなる更新情報５４を新ファイル５０に格納する。
Ｓ１７：新ファイル分のデータの差分展開処理が全て終了した場合は、受信処理を終了し、全て終了していない場合は、ステップＳ１１に戻る。
【０２５０】
次に、受信側において、図３８のステップＳ８〜Ｓ１２の間に電源断などで転送が中断になった場合、受信側から送信側に対し、差分転送の途中再送を依頼をする。この場合、まず受信側では図３８の再スタートのフローチャートに従って次の処理を実行する。
Ｓ１８：送信側に対して、差分転送の再開を依頼すると共に、新ファイル５０に格納した旧ファイルの参照情報５２および新ファイルの更新情報５４を送信側に送る。
【０２５１】
これに対し送信側では図３７の再スタートのフローチャートに従って次の処理を実行する。
Ｓ１９：受信側からの差分転送の再開依頼を受けて、受信側から送られてきた前回の転送で実行された旧ファイルの参照情報５２と新ファイルの更新情報５４から、旧ファイル１４および新ファイル１６の再スタートする分割データを決めると共に、旧ファイルのポインタを参照最終アドレスに設定する。また受信側から送られてきた旧ファイルの参照情報５２の中の参照回数Ｎ１〜Ｎｎを参照情報処理部２８の参照情報メモリに設定し、更にステップＳ１に戻る。
【０２５２】
このように新ファイルの差分展開の状況を知る旧ファイルの参照情報及び新ファイルの更新情報を受信側から受けて、送信側は中断した時点からの差分抽出を再開することができる。
【０２５３】
（６．条件４のメモリ形態に対応した差分転送）
図３９は、前記表１の条件４のメモリ形態に対応した本発明による差分転送のシステム構成のブロック図である。この条件４に対応したメモリ形態の差分転送にあっては、次の受信側のメモリ形態を対象としている。
（Ａ）旧ファイルと新ファイルは同じ不揮発メモリの新旧同ファイルとなる。
（Ｂ）ワーク用揮発メモリは容量が制限され、旧ファイルが順次蓄積される。
【０２５４】
この条件４のメモリ形態は、受信側における不揮発メモリ及びワークメモリのメモリ容量が最も小さい厳しいメモリ条件に対応している。
【０２５５】
具体的には、図２８に示した条件２のメモリ形態における受信側の旧ファイルと新ファイルを同じファイルとした兼用ファイル格納部８０とし、兼用ファイル格納部８０には差分転送前には旧ファイルが格納されており、差分転送により新ファイルのデータが展開されるごとに、展開された新ファイルデータによって旧ファイルの対応するデータが上書きされることになる。
【０２５６】
図４０は、条件４のメモリ形態に対応した本発明による差分転送の機能構成のブロック図である。
【０２５７】
図４０において、送信側となる基地局１０には、旧ファイル格納部１４−１及び新ファイル格納部１６−１によって、旧ファイル１４及び新ファイル１６が別々に格納されており、旧ファイル１４及び新ファイル１６は例えば２５６バイトのメモリブロックサイズに対応して、分割データＤ１〜Ｄｎ、及び分割データＤ１'〜Ｄｍに分けて格納されている。
【０２５８】
また基地局１０には、ワークメモリ１８，２０、差分抽出部２２、ワークメモリ２４、データ圧縮部２６及び参照情報処理部２８が設けられる。ワークメモリ１８には、旧ファイル１４の分割データＤ１〜Ｄｎが順次読み込まれて一時蓄積される。ワークメモリ２０には、新ファイルの分割データＤ１'〜Ｄｍが順次読み出されて一時蓄積される。
【０２５９】
差分抽出部２２は、ワークメモリ１８の旧ファイル分割データを参照しながら、ワークメモリ２０の新ファイル分割データとの差分を抽出して差分データをワークメモリ２４に一時蓄積する。ワークメモリ２４は揮発メモリであるが、オフラインで送信する場合は不揮発メモリとする。
【０２６０】
データ圧縮部２６は、ワークメモリ２４の差分データを圧縮して、伝送路３２を介して携帯電話１２側に送信する。参照情報処理部２８は、差分抽出部２２でワークメモリ１８の旧ファイル分割データを参照するごとに、各分割データごとの参照回数をカウントアップして、その参照回数メモリに参照回数Ｎ１〜Ｎｎとして記憶し、データ圧縮部２６による差分データの圧縮送信と同時に携帯電話１２側に旧ファイル参照回数Ｎ１〜Ｎｎの参照情報を送信する。
【０２６１】
一方、受信側となる携帯電話１２には不揮発メモリを用いた兼用ファイル格納部８０が設けられ、兼用ファイル格納部８０には差分転送を行う前には旧ファイル４８のみが格納されている。この旧ファイル４８は、差分展開により新ファイルのデータが展開されると、上書きにより兼用ファイル格納部８０に同時に示す新ファイル５０に書き換えられることになる。
【０２６２】
また受信側となる携帯電話１２には、データ解凍部３６、揮発メモリを用いたワークメモリ３８，４２０，４６、差分展開部４４、参照情報処理部４０及び更新情報処理部４５が設けられる。
【０２６３】
データ解凍部３６は、受信した圧縮データを解凍して得た差分データをワークメモリ３８に一時蓄積する。ワークメモリ４２０は、例えば２５６バイトサイズの旧ファイル分割データを４つ格納可能なメモリ容量を持っており、差分展開部４４による差分データに基づく新ファイル分割データを展開するため、差分展開する新ファイル分割データに対し同位置及び隣接する３つの旧ファイル分割データの参照を可能とするため、例えば分割データＤｉ，Ｄｉ＋１，Ｄｉ＋２を順次読み出して一時蓄積している。
【０２６４】
更に、ワークメモリ４２０の４つ目の分割データ格納領域には、後の差分展開に参照する分割データを残すための一時蓄積に使用される。
【０２６５】
差分展開部４４は、ワークメモリ４２０の旧ファイル分割データを参照しながら、ワークメモリ３８の差分データを解読して新ファイル分割データを再生し、展開した新ファイル差分データをワークメモリ４６に一時蓄積する。
【０２６６】
参照情報処理部４０は、受信した送信側からの旧ファイル参照回数Ｎ１〜Ｎｎを受信して参照情報メモリに記憶した後、差分展開部４４によりワークメモリ４２０の旧ファイル分割データを参照するごとに、対応する参照回数のカウントダウンを行い、併せて差分展開で参照している現在の旧ファイル上での最終参照アドレスＡ１〜Ａｎも随時蓄積する。
【０２６７】
更新情報処理部４５は、ワークメモリ４６に展開された新ファイル分割データを旧ファイル４８の対応する分割データに上書きして新ファイル５０とする際に、新ファイル分割データの更新回数Ｎｍをカウントアップし、同時に更新最終アドレスＡｍを随時記憶する。
【０２６８】
参照情報処理部４０で作成されている旧ファイルの参照情報５２は、ワークメモリ４６から展開された新ファイルの分割データを旧ファイル４８に上書きして新ファイル５０として格納する際に、同時に格納され、このとき更に更新情報処理部４５で生成されている更新情報５４も新ファイル５０に格納される。
【０２６９】
一方、差分転送中に受信側となる携帯電話１２の電源などが切れて転送中断となった場合には、電源復旧後に受信側の携帯電話１２で旧ファイルの参照情報５２と新ファイルの更新情報５４を読み出して送信側の基地局１０に送り、差分転送の途中再送を依頼する。
【０２７０】
この差分転送の途中再送の依頼を受けた送信側の基地局１０にあっては、受信した旧ファイル参照情報と新ファイル更新情報から、途中転送を再開する旧ファイル１４の分割データと新ファイル１６の分割データを決定し、また旧ファイル分割データについては旧ファイル最終アドレスからポインタをスタート位置にセットし、更に受信側から受けた中断前の正常に差分転送が終了している時点での旧ファイルの参照情報を参照情報処理部２８の参照情報メモリに書き込んで、差分転送を途中から再開する。
【０２７１】
次に、図４１及び図４２のフローチャートを参照して、図４０の条件４に対応したメモリ形態での差分転送及び差分転送の途中で中断した後の再送処理を説明する。
【０２７２】
まず最初の差分転送では、送信側において図４１のフローチャートに従って次の処理を実行する。
Ｓ１：旧ファイル１４から分割データを順次読出し、ワークメモリ１８に一時蓄積する。
Ｓ２：新ファイル１６から分割データを順次読出し、ワークメモリ２０に一時蓄積する。
Ｓ３：差分抽出部２２でワークメモリ１８の旧ファイル分割データを参照しながらワークメモリ２０の新ファイル分割データとの差分データを抽出し、ワークメモリ２４に一時蓄積する。
Ｓ４：差分抽出にあたり、旧ファイル１４の次の分割データが必要であれば、ステップＳ１に戻る。そうでない場合は、次のステップＳ５に進む。
Ｓ５：差分抽出において、旧ファイル１４の分割データが参照されて使われた回数をカウントアップして参照情報を生成し、分割データ毎に或いは全ての差分データ作成が完了した時点で、参照情報を受信側に送る。
Ｓ６：データ圧縮部２６がワークメモリ２４からの差分データを圧縮して受信側に送る。差分データを全て作り終えた後に受信側に送っても良い。
Ｓ７：新ファイル１６からの分割データ分の差分抽出処理が終了した場合、ステップＳ８に進み、終了してなければステップＳ３に戻る。
Ｓ８：新ファイル１６のデータの差分抽出処理が全て終了した場合は、送信側の処理を終了する。全て終了していない場合は、ステップＳ２に戻る。
【０２７３】
受信側においては、図４２のフローチャートに従って次の処理を実行する。
Ｓ９：旧ファイル４８の分割データを順次読出し、ワークメモリ４２０に一時蓄積する。
Ｓ１０：データ解凍部３６で受信した圧縮データを解凍して差分データを復元し、ワークメモリ３８に一時蓄積する。
Ｓ１１：差分展開部４４では、ワークメモリ４２０の旧ファイル分割データを参照しながら、ワークメモリ３８からの差分データを解読して新ファイル分割データを展開し、ワークメモリ４６に一時蓄積する。
Ｓ１２：差分抽出にあたり、旧ファイル１６の次の分割データが必要であれば、ステップＳ９に戻る。そうでない場合は、次のステップＳ１３に進む。
Ｓ１３：送信側から送られてきた旧ファイルの参照情報である分割データ毎の参照回数のカウントダウンを行う。
Ｓ１４：差分データを展開して新ファイル分割データ分が再生された場合、ステップＳ１５に進み、そうでなければのステップＳ１１に戻る。
Ｓ１５：新ファイルの分割データ分の展開終了した場合、ワークメモリ４６から旧ファイル５０に新ファイル分割データを上書きし、旧ファイルの参照情報５２を新ファイル５０に格納する。
Ｓ１６：新ファイル分割データの更新回数をカウントすると共に、新ファイルの分割データ分の更新回数と最終更新アドレスからなる更新情報５４を格納する。
Ｓ１７：新ファイル分の差分展開処理が全て終了した場合は、受信処理を終了し、全て終了していない場合は、ステップＳ１１に戻る。
【０２７４】
次に、受信側において、図４２のステップＳ９〜Ｓ１２の間に電源断などで転送が中断になった場合、受信側から送信側に対し差分転送の途中再送を依頼をする。この場合、まず受信側では図４２の再スタートのフローチャートに従った次の処理を実行する。
Ｓ１８：送信側に対して、差分転送の再開を依頼すると共に、新ファイル５０に格納した旧ファイルの参照情報５２および新ファイルの更新情報５４を送信側に送る。
【０２７５】
これに対し送信側では図４１の再スタートのフローチャートに従って次の処理を実行する。
Ｓ１９：受信側からの差分転送の再開依頼を受けて、受信側から送られてきた前回の転送で実行された旧ファイルの参照情報５２と新ファイルの更新情報５４から、旧ファイル１４および新ファイル１６の再スタートする分割データを決めると共に、旧ファイルのポインタを参照最終アドレスに設定する。また受信側から送られてきた旧ファイルの参照情報５２の中の参照回数Ｎ１〜Ｎｎを参照情報処理部２８の参照情報メモリに設定し、更にステップＳ１に戻る。
【０２７６】
このように新ファイルの差分展開の状況を知る旧ファイルの参照情報及び新ファイルの更新情報を受信側から受けて、送信側は中断した時点からの差分抽出を再開することができる。
【０２７７】
ここで図４０の条件４の受信側となる携帯電話１２におけるワークメモリ４２０に対する旧ファイル４８の分割データの蓄積制御は、差分展開に伴う旧ファイル参照回数Ｎ１〜Ｎｎの対応するカウントダウンで参照回数がゼロとなった分割データを消去して、次の分割データを蓄積する。
【０２７８】
具体的には、条件２のメモリ形態について示した図３０における旧ファイル参照回数に伴うワークメモリ４２０に対する旧ファイル分割データの蓄積制御と同じになる。
【０２７９】
なお上記の実施形態にあっては、送信側となる基地局１０で抽出した差分データをデータ圧縮部２６で圧縮した後に伝送し、受信側の携帯電話１２でデータ解凍部３６が圧縮データを解凍しているが、このデータ圧縮部２６とデータ解凍部３６を設けずに差分データを直接伝送して、受信側で展開するようにしてもよい。
【０２８０】
また上記の実施形態は、無線回線を使用した携帯電話システムにおける差分転送を例に取るものであったが、本発明はこれに限定されず、インターネットなどのネットワークを利用した有線回線における差分転送及び適宜の機器間での差分転送に、そのまま適用できる。
【０２８１】
また上記の実施形態の送信側となる基地局１０に設けた旧ファイル分割データを格納するワークメモリ１８のメモリサイズとしては、旧ファイルのデータの新ファイルにおける移動位置が広範囲にわたる場合をカバーするためには、旧ファイル１４の全データを格納できるメモリ容量を確保することが望ましい。通常、送信側については、基地局１０のように比較的メモリ容量の確保が簡単にできることから、旧ファイル１４の全データを格納可能なワークメモリ１８が望ましい。
【０２８２】
また、上記の実施形態における条件２及び条件４に対応したメモリ形態における受信側の旧ファイルの分割データを格納するワークメモリ４２０につき、この実施形態にあっては、旧ファイル分割データを４つ分、格納可能なメモリ容量を例にとっているが、旧ファイルに対し新ファイル上で移動したデータが更に多い場合には、移動した新ファイルのデータを復元するための分割データの記憶領域の数を更に増やすようにしてもよい。
【０２８３】
（７．区画単位の差分転送）
図４３は、新ファイルを一定サイズの区画に分けて差分抽出処理及び復元を行う本発明による第５実施形態のシステムブロック図である。
【０２８４】
図４３において、この第５実施形態は、表１に対応した図３９の条件４のメモリ形態に対応した差分転送のシステム構成と基本的に同じであり、特に受信側装置となる携帯電話１２の組込システムにおける内蔵メモリの制限から、旧ファイルを一定のサイズ、例えば２５６ＫＢ単位に分割し、送信側の基地局１０における差分抽出処理と携帯電話１２側における差分データに基づく復元処理を行うようにしている。
【０２８５】
まず送信側装置となる基地局１０には、ハードディスクドライブなどにより旧ファイル１４と新ファイル１６が保存されている。基地局１０における差分データの生成は、旧ファイル１４と新ファイル１６から差分データを抽出して、伝送路３２より携帯電話１２に送ることを基本とする。このため基地局１０には、区画データ読出部１５、ワークメモリ２０、差分抽出部２２−１、ワークメモリ２０，２４及びデータ圧縮部２６が設けられている。なお、データ圧縮部２６は設けても良いし設けなくても良い。
【０２８６】
一方、受信側装置となる携帯電話１２には、データ解凍部３６、データ復元部８２、ワークメモリ８３、データ退避部８４、復元データ書込部８５、内部メモリ８６、内部メモリ参照部８８、ワークメモリ８９及び退避データ参照部９０が設けられている。尚、送信側にデータ圧縮部２６がない場合、データ解凍部３６は必要ない。
【０２８７】
基地局１０における差分データの抽出処理は、新ファイル１６を同一サイズ、例えば２５６ＫＢの複数個の区画に分け、各区画ごとに旧ファイル１４と新ファイル１６の差分データを生成する。この差分データを生成する際に、新ファイルの現在処理対象となっている区画中のデータ列と一致するデータ列を旧ファイル１４の探索で発見した場合、発見された旧ファイルの位置が新ファイルの対象区画の先頭位置に相当する旧ファイル１４の位置より前方か後方かを判断する。
【０２８８】
旧ファイル中の一致位置が前方と判断した場合には、旧ファイルにおける発見位置と一致長を前方の対象区画の差分データに記述する。一方、後方と判断した場合には、旧ファイルの発見位置と一致長を対象区画の差分データに記述する。
【０２８９】
図４４は、図４３の基地局１０における差分抽出処理の説明図である。新ファイル１６は、一定サイズ、例えば２５６ＫＢごとに複数の区画１６−１，１６−，２，…１６−５に分けられている。
【０２９０】
この新ファイル１６において、いま区画１６−２が処理中であったとすると、区画１６−２の先頭アドレスに対象ポインタＰ１をセットし、旧ファイル１４についても同じ位置に参照ポインタＱ１をセットし、各ポインタＰ１，Ｑ１の指し示すデータ値、例えば１バイトデータが一致するか否かチェックする。一致していれば、この位置から後方に何バイト一致データが続くかを計測する。
【０２９１】
一方、新ファイル１６の対象ポインタＰ１と同じ位置の旧ファイル１４の参照ポインタＱ１の指し示すデータ値が不一致であった場合には、図４４の旧ファイル１４の参照ポインタＱ２のように旧ファイル１４の最後尾にセットした後、前方へ移動させながら、新ファイル１６の対象ポインタＰ１のデータ値との一致探索を行う。
【０２９２】
このような参照ポインタＱ２の最後尾からの探索により、例えば旧ファイル１４における区画１６−２の先頭アドレスにセットした対象ポインタＰ１より前方の参照ポインタＱ３の位置で各データ値が一致したとすると、この位置から後方に何バイトデータが一致するか探索し、例えば旧ファイル１６のデータ列９２と旧ファイル１４のデータ列９４の一致が計測される。
【０２９３】
このように、現在処理対象となっている区画１６−２の先頭位置より前方の旧ファイル１４にデータ列９２に一致するデータ列９４が発見された場合には、このデータ列９４の参照ポインタＱ３の先頭位置（先頭アドレス）と一致長を、新ファイル１６の対応する区画１６−１について抽出している差分データに記述する。
【０２９４】
図４５は、図４３の基地局１０の差分抽出処理において、図４４と同じ区画１６−２の対象ポインタＰ１について旧ファイル１４の最後尾にセットした参照ポインタＱ２を前方に移動しながら一致探索を行った場合に、複数のデータ列９４−１，９４−２，９４−３が発見された場合である。
【０２９５】
このように旧ファイル１４の最後尾からの一致探索で複数のデータ列９４−１〜９４−３が発見された場合には、最後尾のデータ列９４−１の位置と一致長を区画１６−２の差分データの中に記述する。
【０２９６】
このように旧ファイルに対する最後尾からの一致探索で複数の一致データ列が発見された場合に、最後尾のデータ列について差分データを生成しておくことで、対象区画１６−２の前方に一致データ列９４−３が存在しても、これについて対応する前方の区画１６−１の差分データの中に一致データ列の位置と一致長を記述し、これを受信装置側の携帯電話１２で退避データとして扱う必要がなくなり、その分、後の説明で明らかにする受信装置側における退避データのメモリ領域を節減できる。
【０２９７】
一方、図４３の受信側装置となる携帯電話１２における復元処理は、基地局１０から転送された各区間の差分データごとに、必要に応じて旧ファイルを参照して新ファイルを復元し、内部メモリ８６に保存している旧ファイルの該当部分に上書きする。
【０２９８】
このため、内部メモリ８６の旧ファイルに新ファイルの区画単位の上書きが行われると、上書きの済んだ区画については旧ファイルの内容を参照することができない。
【０２９９】
そこで本発明にあっては、ある区画について新ファイルを復元した際に、上書き対象となる旧ファイルの該当部分のデータの中に後続する区画の差分データによって参照されるデータ列が存在するか否かチェックし、参照されるデータ列が存在する場合は、参照される旧ファイルのデータ列をワークメモリ上の退避データ領域に退避させた後に、復元した新ファイルの区画の上書きを行い、この退避データに対し後続する区画の差分データによる旧ファイルの該当部分の参照を行わせる。
【０３００】
図４６は、図４３の携帯電話１２側における旧ファイルのデータ列を退避して参照する復元処理を示している。図４６において、内部メモリ８５に格納している旧ファイルについては、差分データに基づいて区画８６−１，８６−２，８６−３，…ごとに、復元された新ファイルの上書きが順番に行われる。
【０３０１】
まず先頭の区画８６−１について、差分データ２２−１１から図４３のワークメモリ８３，８９で実現されるワークメモリ上に区画８６−１分の新データ８２−１が復元される。そして新データ８２−１を内部メモリ８６に上書きする前に、区画８６−１の旧ファイルのデータ列の中に存在する後続する区画８６−２，８６−３，…で参照されるデータ列を退避データ８４−１としてワークメモリに格納する。
【０３０２】
この退避データ８４−１としてのデータ列は、区画８６−１の差分データの中に図４４に示したように、後続する区画で旧ファイルを参照することを前提に、参照対象となる旧ファイルのデータ列の位置と一致長が差分情報として記述されていることから、これに基づき内部メモリ８６の上書き前の旧ファイルから該当するデータ列を読み出して、退避データ８４−１としてワークメモリに格納する。
【０３０３】
次の区画８６−２の復元処理にあっては、その差分データ２２−１２の中に前方の区画８６−１に対応する旧ファイルのデータ列の参照を必要とする復元コードが含まれていた場合には、区画８６−１の処理に際にワークメモリに格納された退避データ８４−１を参照することで、既に上書きされた区画８６−１の旧ファイルの中のデータ列をそのまま使った新データ８２−２の復元が実現できる。
【０３０４】
もちろん区画８６−２においても、それ以降の区画で参照するデータ列がある場合には、区画８６−２の旧ファイルのデータ列に対する新データ８２−２の上書きの前に、該当する斜線部のデータ列をワークメモリに退避データ８４−２として格納する。
【０３０５】
図４７は、図４３の基地局１０における差分抽出処理のフローチャートであり、この差分抽出処理を説明すると次のようになる。
Ｓ１：旧ファイル１４をディスク等から読み出す
Ｓ２：新ファイル１６から一定サイズのデータを読み出し、１つの区画ｘ（ｘ番目の区画）として定義する。
Ｓ３：データ比較対象ポインタＰを区画ｘの先頭に、データ参照ポインタＱを旧ファイルの先頭に設定する。
Ｓ４：データ比較対象ポインタＰの指すデータ値、例えば１バイトデータ値とデータ参照ポインタＱの指すデータ値を比較する。
Ｓ５：Ｓ４の比較でデータ値が同一であればＳ８へ進み、そうでなければＳ６へ進む。
Ｓ６：データ値が不一致であることから、旧ファイル１４の最後尾から先頭に向かってデータ比較対象ポインタＰの指すデータ値と一致する箇所を探索する。
Ｓ７：探索の結果、一致するデータが旧ファイル１４中に発見されたならばＳ８へ進み、発見されなければＳ１３へ進む。
Ｓ８：それぞれのポインタＰ，Ｑの位置からポインタを後方へ１バイトずつ移動させながらデータ値を比較し、データ値の一致が何バイト連続して起こるかを計測する。
Ｓ９：データ値が一致しなくなった時、最初にデータ値が一致したときのデータ参照ポインタＱの位置とＳ６で計測した一致長を「複写コード」として差分データに出力する。
Ｓ１０：データ参照ポインタが現在の対象区画ｘよりも前方にあるならばＳ１１へ進み、そうでなければＳ１２へ進む。
Ｓ１１：データ参照ポインタＱの位置とＳ６で計測した一致長を、データ参照ポインタＱが位置している区画の差分データに追加記述する。
Ｓ１２：データ比較対象ポインタＰとデータ参照ポインタＱを最後に一致したデータの位置へ移動させてＳ１５へ進む。
Ｓ１３：旧ファイルの最後尾からの検索で一致データが見つからなかった場合であり、データ比較対象ポインタＰの指すデータ値は更新されて新規に現れたデータであると判定する。
Ｓ１４：「更新コード」と更新後のデータを差分データに出力する。
Ｓ１５：データ比較対象ポインタＰを１バイト後方へ移動させる。
Ｓ１６：データ比較対象ポインタＰが区画ｘの最終位置に到達したならばＳ１７へ進み、そうでなければＳ４へ戻る。
Ｓ１７：区画ｘが新ファイルの最終区画でか否かチェックし、最終区画でなければＳ１８へ進み、最終区画であれば差分抽出処理を終了する。
Ｓ１８：次の区画を読み込み対象とするためｘを１増加させてＳ２へ戻る。
【０３０６】
このように新ファイルの各区画に対する旧ファイルの一致検索の探索範囲を旧ファイル全体とすることで、旧ファイルの複写で新ファイルを復元する複写コードを多くし、転送すべき差分データのサイズを小さくすることができる。
【０３０７】
またＳ６の旧ファイルの最後尾からの一致検索により、もし、旧ファイルの中に一致データ値が複数分散していた場合、最も後方のデータ列の一致個所が選択され、受信装置側の復元処理において退避を必要とする上書き済みの旧ファイルの部分を参照する確率を低くし、復元時の退避データ領域を低減できる。
【０３０８】
図４８は、図４３の受信側装置である携帯電話１２における差分抽出処理のフローチャートであり、この差分抽出処理を説明すると次のようになる。
Ｓ１：外部から転送された区画ｘ用の差分データを保存する。
Ｓ２：転送された差分データからコードを１つ読み出す。
Ｓ３：読み出したコードが「複写コード」であればＳ４へ進み、「更新コード」であればＳ８へ進む。
Ｓ４：「複写コード」が指し示す旧データの参照位置が、区画ｘの先頭位置よりも前方にある場合は、すでに新データにより上書きされていることからＳ５へ進み、そうでなければＳ７へ進む。
Ｓ５：退避データの参照ポインタから「複写コード」が指し示す一致長分のデータをワークメモリに出力する。
Ｓ６：退避データの参照ポインタを一致長分後方へ移動させてＳ９へ進む。
Ｓ７：Ｓ４で「複写コード」が指し示す旧データの参照位置が、区画ｘの位置又は後方の場合であり、「複写コード」が指し示す旧データの参照位置から複写コードが指し示す一致長分のデータをワークメモリに出力してＳ９へ進む。
Ｓ８：Ｓ３で「更新コード」が判別された場合であり、「更新コード」が指し示す更新後データ（新データ）をワークメモリに出力する。
Ｓ９：差分データのコード読み取り位置を一つ後方へ移動させる。
Ｓ１０：差分データのコード読み取り位置が差分データの最終であった場合はＳ１１へ進み、そうでなければＳ２へ戻る。
Ｓ１１：区画ｘのデータが上書きされる前に、区画ｘ以降の区画の更新で参照される旧ファイルのデータ列を参照される順に退避データ格納領域へ格納する。
Ｓ１２：ワークメモリに格納された復元データを内部メモリに格納された旧ファイルのｘ区画に上書きする。
Ｓ１３：次の区画を読み込み対象とするためｘを１増加させる。
Ｓ１４：最終区画の処理完了の有無をチェックし、完了していなければＳ１に戻り、完了していた場合は終了する。
【０３０９】
これらの処理により、復元に使用するワークメモリは１つの区画サイズと退避領域分のみとなり、区画サイズを調整することによって携帯電話１２の組み込みシステムが持つワークメモリの制限内で復元処理が可能となる。
【０３１０】
またＳ１１の処理において退避すべきデータ列が旧ファイルの中に分散して複数組存在する場合でも、退避させるべきデータ列はデータ列の数だけ別に指定することで、連続してワークメモリの退避領域に格納され、確実に使用されるデータのみを退避するため、ワークメモリの使用効率が良い。
【０３１１】
また、退避データ格納の際に使用順に連続して格納していても、ポインタを利用することで、旧ファイルの参照を示した複写コードによって上書き前の旧ファイルのデータ列を簡単に得ることが可能となる。
【０３１２】
図４９は、図４３の第５実施形態の受信側装置となる携帯電話１２について、差分データに基づく復元に先立って旧ファイルの区画を退避させるように変形した実施形態のシステムブロック図である。
【０３１３】
図４９において、基地局１０側は図４３の実施形態と同じであるが、携帯電話１２側について、データ復元部８２の前にデータ退避部８４を設け、データ解凍部３６から得られた１区画分の差分データに対し、まず内部メモリ８６の旧ファイルの区画部分をワークメモリ８９に退避データとして格納した後、データ復元処理を行うようにしている。
【０３１４】
図５０は、図４９の第５実施形態の変形例における携帯電話１２における復元処理のフローチャートであり、この復元処理は次のようになる。
Ｓ１：外部から転送された区画ｘ用の差分データを保存する。
Ｓ２：区画ｘ以降の区画の更新で参照される旧ファイルのデータ列を参照される順に退避データ格納領域へ格納する。
Ｓ３：転送された差分データからコードを１つ読み出す。
Ｓ４：読み出したコードが「複写コード」であればＳ５へ進み、「更新コード」であればＳ９へ進む。
Ｓ５：「複写コード」が指し示す旧データの参照位置が、区画ｘの先頭位置よりも前方にある場合は、すでに新データにより上書きされていることからＳ６へ進み、そうでなければＳ８へ進む。
Ｓ６：退避データの参照ポインタから「複写コード」が指し示す一致長分のデータをワークメモリに出力する。
Ｓ７：退避データの参照ポインタを一致長分後方へ移動させてＳ９へ進む。
Ｓ８：Ｓ５で「複写コード」が指し示す旧データの参照位置が、区画ｘの位置又は後方の場合であり、「複写コード」が指し示す旧データの参照位置から複写コードが指し示す一致長分のデータをワークメモリに出力してＳ１０へ進む。
Ｓ９：Ｓ４で「更新コード」が判別された場合であり、「更新コード」が指し示す更新後データ（新データ）をワークメモリに出力する。
Ｓ１０：差分データのコード読み取り位置を一つ後方へ移動させる。
Ｓ１１：差分データのコード読み取り位置が差分データの最終であった場合はＳ１２へ進み、そうでなければＳ３へ戻る。
Ｓ１２：ワークメモリに格納された復元データを内部メモリに格納された旧ファイルのｘ区画に上書きする。
Ｓ１３：次の区画を読み込み対象とするためｘを１増加させる。
Ｓ１４：最終区画の処理完了の有無をチェックし、完了していなければＳ１に戻り、完了していた場合は終了する。
【０３１５】
この図５０の復元処理のフローチャートと図４８の復元処理のフローチャートの相違は、図５０の復元処理にあってはステップＳ２で現在処理対象となっている区画ｘについて使用される旧ファイルのデータを退避領域に格納しているのに対し、図４８の実施形態にあっては区画ｘの新ファイルのデータをステップＳ１で上書きする前のステップＳ１０で、後続する復元処理で参照される旧ファイルのデータを退避領域へ格納するようにしている点である。
【０３１６】
図５１は、本発明による差分抽出処理の第６実施形態のフローチャートであり、この第６実施形態にあっては差分抽出の際の旧ファイルの一致探索を旧ファイルの最後尾から対象区画における先頭アドレスの前方ｎバイトまでとしたことを特徴とする。
【０３１７】
図５２は、図５１の第６実施形態における差分抽出処理の際の旧ファイルの一致探索範囲を示している。いま新ファイル１６の区画１６−２の処理を行っており、区画１６−２の先頭に対象ポインタＰ１をセットした状態で、旧ファイル１４の同一位置にセットした参照ポインタＱ１との間でデータ値が不一致であった場合には、旧ファイル１４の最後尾に参照ポインタＱふとしてセットした後に前方に一致探索を行うが、この一致探索は対象区画１６−２の対象ポインタＰ１による先頭アドレスの前方の予め定めたｎバイトまでとする。
【０３１８】
そして、この前方ｎバイトの探索範囲内に、もし新ファイル１６のデータ列９２に一致するデータ列９４が発見された場合には、発見したデータ列９４の参照ポインタＱあの位置と一致長を新ファイル１６の対応する区画１６−１の差分データに記述する。
【０３１９】
このように旧ファイルの探索範囲を最後尾から処理対象区画先頭アドレスの前方ｎバイトに定めた図５１の第６実施形態における差分抽出処理を、図５１のフローチャートを参照して説明すると、次のようになる。
Ｓ１：旧ファイル１４をディスク等から読み出す。
Ｓ２：新ファイル１６から一定サイズのデータを読み出し、１つの区画ｘ（ｘ番目の区画）として定義する。
Ｓ３：データ比較対象ポインタＰを区画ｘの先頭に、データ参照ポインタＱを旧ファイルの先頭に設定する。
Ｓ４：データ比較対象ポインタＰの指すデータ値、例えば１バイトデータ値とデータ参照ポインタＱの指すデータ値を比較する。
Ｓ５：Ｓ４の比較でデータ値が同一であればＳ８へ進み、そうでなければＳ６へ進む。
Ｓ６：データ値が不一致であることから、旧ファイル１４の最後尾から区画ｘの先頭アドレスよりｎバイト前方の位置に向かってデータ比較対象ポインタＰの指すデータ値と一致する箇所を探索する。
Ｓ７：探索の結果、一致するデータが旧ファイル１４中に発見されたならばＳ８へ進み、発見されなければＳ１１へ進む。
Ｓ８：それぞれのポインタＰ，Ｑの位置からポインタを後方へ１バイトずつ移動させながらデータ値を比較し、データ値の一致が何バイト連続して起こるかを計測する。
Ｓ９：データ値が一致しなくなった時、最初にデータ値が一致したときのデータ参照ポインタＱの位置とＳ６で計測した一致長を「複写コード」として差分データに出力する。
Ｓ１０：データ参照ポインタを最後に一致したデータの位置へ移動させ、Ｓ１３に進む。
Ｓ１１：旧ファイルの最後尾からの検索で一致データが見つからなかった場合であり、データ比較対象ポインタＰの指すデータ値は更新されて新規に現れたデータであると判定する。
Ｓ１２：「更新コード」と更新後のデータを差分データに出力する。
Ｓ１３：データ比較対象ポインタＰを１バイト後方へ移動させる。
Ｓ１４：データ比較対象ポインタＰが区画ｘの最終位置に到達したならばＳ１５へ進み、そうでなければＳ４へ戻る。
Ｓ１５：区画ｘが新ファイルの最終区画でか否かチェックし、最終区画でなければＳ１６へ進み、最終区画であれば差分抽出処理を終了する。
Ｓ１６：次の区画を読み込み対象とするためｘを１増加させてＳ２へ戻る。
【０３２０】
このように新ファイルの各区画に対する旧ファイルの一致検索の探索範囲を旧ファイルの最後尾から対象区画の先頭アドレスよりｎバイト前方の位置までとすることで、旧ファイルの複写で新ファイルを復元する複写コードを多くし、転送すべき差分データのサイズを小さくすることができる。
【０３２１】
またＳ６の旧ファイルの最後尾からの一致検索により、もし、旧ファイルの中に一致データ値が複数分散していた場合、最も後方のデータ列の一致個所が選択され、受信装置側の復元処理において退避を必要とする上書き済みの旧ファイルの部分を参照する確率を低くし、復元時の退避データ領域を低減できる。特に、旧ファイルと新ファイルのずれがｎバイト以内であれば、無駄のない差分データの生成が可能となる。
【０３２２】
図５３は、図５１の第６実施形態の差分抽出処理により生成された差分データの転送に対し、受信側装置としての携帯電話１２で行う復元処理のフローチャートである。この図５３のフローチャートの復元処理は、図５４に示すような旧ファイルのデータ列を退避して参照する復元処理となる。
【０３２３】
図５４において、内部メモリ８６については、一定サイズ例えば２５６ＫＢの区画８６−１，８６−２，８６−３，…ごとに復元処理を、各区画の差分データ２２−１１，２２−１２，２２−１３…を使用して行い、区画ごとに新データ８２−１，８２−２，８２−３，…を作成し、これを内部メモリ８６の旧ファイルの対応部分に上書きする。
【０３２４】
内部メモリ８６の各区画８６−１，８６−２，８６−３，…に対する新データ８２−１，８２−２，８２−３，…の上書きに先立ち、この第６実施形態にあっては、例えば先頭の区画８６−１を例にとると、次の区画８６−２の境界から前方にｎバイトの旧ファイルのデータを退避データ８４−１としてワークメモリ８３，８９の退避領域に格納する。
【０３２５】
ここで次の区画の境界から前方へｎバイトの旧ファイルのデータ領域について、後続する区画で参照するデータが必ず入っている。これは図５２の抽出処理において旧ファイルの一致探索範囲を対象区画の先頭アドレスから前方へｎバイトの範囲に限定していることによる。
【０３２６】
したがって、受信側のワークメモリ８３，８９における退避データの格納サイズは、区画数にｎバイトを掛けた固定サイズとして確保すればよい。具体的には、ワークメモリで使用可能な退避データ格納領域のサイズが決まっていることから、この退避領域のサイズを区画数で割ることで、ｎバイトの値が一義的に決まることになる。
【０３２７】
そこで図５３のフローチャートを参照して第６実施形態における復元処理を説明すると、次のようになる。
Ｓ１：外部から転送された区画ｘ用の差分データを保存する。
Ｓ２：転送された差分データからコードを１つ読み出す。
Ｓ３：読み出したコードが「複写コード」であればＳ４へ進み、「更新コード」であればＳ７へ進む。
Ｓ４：「複写コード」が指し示す旧データの参照位置が、区画ｘの先頭位置よりも前方にある場合は、すでに新データにより上書きされていることからＳ５へ進み、そうでなければＳ６へ進む。
Ｓ５：（退避データ格納先アドレス）＋｛（複写コードが指し示す複写参照元アドレス）−（区画ｘの先頭よりｎバイト前方のアドレス）｝の位置から複
【０３２８】
写コードが指し示す一致長分のデータをワークメモリに出力してＳ８へ進む。
Ｓ６：Ｓ４で「複写コード」が指し示す旧データの参照位置が、区画ｘの位置又は後方の場合であり、「複写コード」が指し示す旧データの参照位置から複写コードが指し示す一致長分のデータをワークメモリに出力してＳ８へ進む。
Ｓ７：Ｓ３で「更新コード」が判別された場合であり、「更新コード」が指し示す更新後データ（新データ）をワークメモリに出力する。
Ｓ８：差分データのコード読み取り位置を一つ後方へ移動させる。
Ｓ９：差分データのコード読み取り位置が差分データの最終であった場合はＳ１０へ進み、そうでなければＳ２へ戻る。
Ｓ１０：区画ｘのデータが上書きされる前に、区画ｘの最後尾からｎバイト分のデータを退避データ格納領域へ格納する。
Ｓ１１：ワークメモリに格納された復元データを内部メモリに格納された旧ファイルのｘ区画に上書きする。
Ｓ１２：次の区画を読み込み対象とするためｘを１増加させる。
Ｓ１３：最終区画の処理完了の有無をチェックし、完了していなければＳ１に戻り、完了していた場合は終了する。
【０３２９】
これらの処理により、復元に使用するワークメモリは１つの区画サイズとｎバイト固定の退避領域分のみとなり、区画サイズを調整することによって携帯電話１２の組み込みシステムが持つワークメモリの制限内で復元処理が可能となる。
【０３３０】
またＳ５の処理において、内部メモリのアドレスと退避データ領域との対応つけのみで、簡単に上書き前の旧ファイルのデータを参照できる。
【０３３１】
更にＳ１１の処理において、退避データ格納サイズはｎバイト固定であるため、どの部分のデータを退避させたかという管理情報が不要となり、情報量を低減して管理を容易にする。
【０３３２】
図５５は、図５３の第６実施形態の復元処理について、復元に先立って旧ファイルのｎバイトの区画を退避するように変形した実施形態のフローチャートである。この第６実施形態の復元処理の変形処理は次のようになる。
Ｓ１：外部から転送された区画ｘ用の差分データを保存する。
Ｓ２：区画ｘの最後尾からｎバイト分のデータを退避データ格納領域へ格納する。
Ｓ３：転送された差分データからコードを１つ読み出す。
Ｓ４：読み出したコードが「複写コード」であればＳ５へ進み、「更新コード」であればＳ９へ進む。
Ｓ５：「複写コード」が指し示す旧データの参照位置が、区画ｘの先頭位置よりも前方にある場合は、すでに新データにより上書きされていることからＳ６へ進み、そうでなければＳ７へ進む。
Ｓ６：（退避データ格納先アドレス）＋｛（複写コードが指し示す複写参照元アドレス）−（区画ｘの先頭よりｎバイト前方のアドレス）｝の位置から複
【０３３３】
写コードが指し示す一致長分のデータをワークメモリに出力してＳ９へ進む。
Ｓ７：Ｓ５で「複写コード」が指し示す旧データの参照位置が、区画ｘの位置又は後方の場合であり、「複写コード」が指し示す旧データの参照位置から複写コードが指し示す一致長分のデータをワークメモリに出力してＳ９へ進む。
Ｓ８：Ｓ４で「更新コード」が判別された場合であり、「更新コード」が指し示す更新後データ（新データ）をワークメモリに出力する。
Ｓ９：差分データのコード読み取り位置を一つ後方へ移動させる。
Ｓ１０：差分データのコード読み取り位置が差分データの最終であった場合はＳ１１へ進み、そうでなければＳ３へ戻る。
Ｓ１１：ワークメモリに格納された復元データを内部メモリに格納された旧ファイルのｘ区画に上書きする。
Ｓ１２：次の区画を読み込み対象とするためｘを１増加させる。
Ｓ１３：最終区画の処理完了の有無をチェックし、完了していなければＳ１に戻り、完了していた場合は終了する。
【０３３４】
この図５５の実施形態は、ステップＳ２で差分データからの復元に先立って対象区画ｘの最終位置から前方ｎバイト分のデータを退避領域に格納しており、これに対し図５３の実施形態では、ステップＳ１１で、復元したデータを旧ファイルに上書きする前のステップＳ１０で処理対象となる区画ｘの最終位置から前方ｎバイト分のデータを退避領域に格納している点が相違している。
【０３３５】
なお図４３〜図５５の実施形態にあっては、差分データとして「複写コード」と「更新コード」の２つを用いる場合を例にとるものであったが、その代わりに第１〜第４実施形態において使用している図４のような差分制御コードを用いるようにしてもよいことはもちろんである。
【０３３６】
また、図４７，図４８，図５０，図５１，図５３及び図５５のフローチャートに示した各処理は、差分抽出処理並びに復元処理の処理プログラムそのものを表わしており、これをコンピュータにより実行することで、本発明による差分転送が実現できる。
【０３３７】
また本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
【０３３８】
（付記）
（付記１）
送信側で新旧２つのファイルから差分データを生成して送信し、受信側で蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開する差分転送方法に於いて、
送信側で、旧ファイルと新ファイルの差分データを抽出する際に採取した旧ファイルの参照情報を差分データと共に受信側に転送し、
受信側では、旧ファイルと差分データから新ファイルを展開する際に、差分展開の進捗の状況で変化する前記旧ファイルの参照情報及び新ファイルの更新情報を、新ファイルのデータと共に蓄積することを特徴とする差分転送方法。（１）
【０３３９】
（付記２）
付記１記載の差分転送方法に於いて、送信側或いは受信側のトラブルで差分転送が途中で途絶えた場合に、
受信側では、転送が途絶えるまで、旧ファイルと差分データから新ファイル展開する際に蓄積していた旧ファイルの参照情報及び新ファイルの更新情報を送信側に送って途中からの差分展開を依頼し、
送信側では、受信側から送られた旧ファイルの参照情報及び新ファイルの更新情報を基に、再送するための旧ファイル及び新ファイルのスタートポイントを設定した後、差分転送を再開することを特徴とする差分転送方法。
【０３４０】
（付記３）
付記１記載の差分転送方法に於いて、
前記旧ファイルの参照情報を、旧ファイルの分割データ毎に参照される参照回数及び最終に参照された旧ファイルの最終参照アドレスとし、
前記新ファイルの更新情報を、新ファイルを分割したブロックデータ分で更新される更新回数及び最終に更新された新ファイルの最終更新アドレスとすることを特徴とする差分転送方法。
【０３４１】
（付記４）
送信側で新旧２つのファイルから差分データを生成して送信し、受信側で蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開する差分転送方法に於いて、
送信側は、
旧ファイルと新ファイルを一定サイズの分割データに分けて蓄積するファイル蓄積ステップと、
旧ファイルと新ファイルを読出し、処理対象としている新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより差分データを抽出する差分抽出ステップと、
前記差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を生成する参照情報生成ステップと、
前記差分データ及び旧ファイル参照情報を外部に送信する送信ステップと、
を備え、
受信側は、
旧ファイルとを一定メモリサイズの分割データに分けて蓄積すると共に、展開した新ファイルを分割データ単位で蓄積可能な領域を確保する蓄積ステップと、
前記差分データ及び旧ファイル参照情報を受信する受信ステップと、
処理対象としている新ファイル分割データの差分データに対し、同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより新ファイル分割データを展開する差分展開ステップと、
前記新ファイル分割データの展開時に旧ファイル分割データを参照する毎に、受信した参照情報の中の対応する参照回数を減算して更新する参照情報更新ステップと、
新ファイル分割データの展開を終了する毎に、展開した新ファイル分割データと共に、現時点の旧ファイル参照情報、旧ファイル最終参照アドレス、新ファイル分割データの更新回数及び新ファイル最終更新アドレスを蓄積する新ファイル蓄積ステップと、
を備えたことを特徴とする差分転送方法。（２）
【０３４２】
（付記５）
付記４記載の差分転送方法に於いて、
前記受信側は、更に、前記差分データに基づき旧ファイルから新ファイルの展開中に処理が中断した場合、処理再開時に、中断前の最後に蓄積された旧ファイル参照情報、旧ファイル最終参照アドレス及び新ファイル最終更新アドレスを読み出して送信側に再転送を要求する再転送要求ステップを備え、
前記送信側は、更に、前記受信側からの再転送要求で送られてきた旧ファイル参照情報により中断前の旧ファイル参照情報を更新し、旧ファイル最終参照アドレスにより旧ファイル再開位置を設定し、新ファイル最終更新アドレスにより新ファイル再開位置を設定した後に、差分転送を再開する再転送ステップとを備えたことを特徴とする差分転送方法。
【０３４３】
（付記６）
付記４記載の差分転送方法に於いて、前記受信側は、送信側から再転送された差分データに基づく旧ファイルの参照で再転送による最初の新ファイル分割データを展開した場合、中断前の最後に蓄積された新ファイル分割データ更新回数と新ファイル最終更新アドレスに基づく蓄積再開位置に再送により最初に展開された新ファイル分割データを蓄積する蓄積再開ステップを備えたことを特徴とする差分転送方法。
【０３４４】
（付記７）
付記４記載の差分転送方法に於いて、前記受信側は外部に送信する差分データを圧縮する圧縮ステップを備え、前記送信側は受信した圧縮差分データを解凍する解凍ステップを備えたことを特徴とする差分転送方法。
【０３４５】
（付記８）
送信側で新旧２つのファイルから差分データを生成して送信し、受信側で蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開する差分転送方法に於いて、
信側に、旧ファイルを格納する第１不揮発メモリ、新ファイルを格納する第２不揮発メモリ、旧ファイルのデータを一括して一時蓄積する第１揮発メモリ、新ファイルのデータを分割データ単位で順次読み出し一時蓄積する第２揮発メモリを少なくとも設けた場合、
前記送信側は、
旧ファイルと新ファイルを一定サイズの分割データに分けて前記第１及び第２不揮発メモリに別々に蓄積するファイル蓄積ステップと、
旧ファイルを一括して読み出して前記第１揮発メモリに一時蓄積すると共に新ファイルを分割データ単位に順次読出して前記順次第２揮発メモリに一時蓄積し、前記第２揮発メモリに一時蓄積している処理対象の新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより差分データを抽出する差分抽出ステップと、
前記差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を生成する参照情報生成ステップと、
前記差分データ及び旧ファイル参照情報を外部に送信する送信ステップと、
を備え、
受信側に、旧ファイルを格納する第３不揮発メモリ、新ファイルを格納する第４不揮発メモリ、旧ファイルのデータを一括して一時蓄積する第３揮発メモリを少なくとも設けた場合、
受信側は、
旧ファイルを一定メモリサイズの分割データに分けて前記第３不揮発メモリに蓄積すると共に、展開した新ファイルを分割データ単位で蓄積可能な領域を前記第４不揮発メモリに確保する蓄積ステップと、
前記差分データ及び旧ファイル参照情報を受信する受信ステップと、
処理対象としている新ファイル分割データの差分データに対し、前記第３揮発メモリに一時蓄積している同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより新ファイル分割データを展開する差分展開ステップと、
前記新ファイル分割データの展開時に旧ファイル分割データを参照する毎に、受信した参照情報の中の対応する旧ファイル参照回数を減算して更新する参照情報更新ステップと、
新ファイル分割データの展開を終了する毎に、展開した新ファイル分割データと共に、現時点の旧ファイル参照情報、旧ファイル最終参照アドレス、新ファイル分割データの更新回数及び新ファイル最終更新アドレスを前記第４不揮発メモリに蓄積する新ファイル蓄積ステップと、
を備えことを特徴とする差分転送方法。
【０３４６】
（付記９）
付記８記載の差分転送方法に於いて、
前記受信側は、更に、前記差分データに基づき旧ファイルから新ファイルの展開中に処理が中断した場合、処理再開時に、中断前の最後に蓄積された旧ファイル参照情報、旧ファイル最終参照アドレス及び新ファイル最終更新アドレスを前記第４不揮発メモリから読み出して送信側に再転送を要求する再転送要求ステップを備え、
前記送信側は、更に、前記受信側からの再転送要求で送られてきた旧ファイル参照情報により中断前の旧ファイル参照情報を更新し、旧ファイル最終参照アドレスにより前記第１揮発メモリにおける旧ファイル再開位置を設定し、新ファイル最終更新アドレスにより前記第２揮発メモリにおける新ファイル再開位置を設定した後に、差分転送を再開する再転送ステップとを備えたことを特徴とする差分転送方法。
【０３４７】
（付記１０）
送信側で新旧２つのファイルから差分データを生成して送信し、受信側で蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開する差分転送方法に於いて、
送信側に、旧ファイルを格納する第１不揮発メモリ、新ファイルを格納する第２不揮発メモリ、旧ファイルのデータを分割データ単位で順次読み出して一時蓄積する第１揮発メモリ、新ファイルのデータを分割データ単位で順次読み出し一時蓄積する第２揮発メモリを少なくとも設けた場合、
前記送信側は、
旧ファイルと新ファイルを一定サイズの分割データに分けて前記第１及び第２不揮発メモリに別々に蓄積するファイル蓄積ステップと、
旧ファイルを分割データ単位に順次読み出して前記第１揮発メモリに一時蓄積すると共に新ファイルを分割データ単位に順次読み出して前記第２揮発メモリに一時蓄積し、前記第２揮発メモリに一時蓄積している処理対象の新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより差分データを抽出する差分抽出ステップと、
前記差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を生成する参照情報生成ステップと、
前記差分データ及び旧ファイル参照情報を外部に送信する送信ステップと、
を備え、
受信側に、旧ファイルを格納する第３不揮発メモリ、新ファイルを格納する第４不揮発メモリ、旧ファイルのデータを分割データ単位で順次読み出して一時蓄積する少なくとも４分割データ分の容量を備えた第３揮発メモリを少なくとも設けた場合、
受信側は、
旧ファイルを一定メモリサイズの分割データに分けて前記第３不揮発メモリに蓄積すると共に、展開した新ファイルを分割データ単位で蓄積可能な領域を前記第４不揮発メモリに確保する蓄積ステップと、
前記差分データ及び旧ファイル参照情報を受信する受信ステップと、
処理対象としている新ファイル分割データの差分データに対し、前記第３揮発メモリに一時蓄積している同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより新ファイル分割データを展開する差分展開ステップと、
前記新ファイル分割データの展開時に旧ファイル分割データを参照する毎に、受信した参照情報の中の対応する旧ファイル参照回数を減算して更新する参照情報更新ステップと、
新ファイル分割データの展開を終了する毎に、展開した新ファイル分割データと共に、現時点の旧ファイル参照情報、旧ファイル最終参照アドレス、新ファイル分割データの更新回数及び新ファイル最終更新アドレスを前記第４不揮発メモリに蓄積する新ファイル蓄積ステップと、
を備えたことを特徴とする差分転送方法。
【０３４８】
（付記１１）
付記１０記載の差分転送方法に於いて、前記受信側の差分展開ステップは、展開中に前記旧ファイル参照回数がゼロとなった旧ファイル分割データを前記第３揮発メモリから消去し、新たな旧ファイル分割データを前記第３不揮発メモリから読出して一時蓄積することを特徴とする差分転送方法。
【０３４９】
（付記１２）
付記１０記載の差分転送方法に於いて、
前記受信側は、更に、前記差分データに基づき旧ファイルから新ファイルの展開中に処理が中断した場合、処理再開時に、中断前の最後に蓄積された旧ファイル参照情報、旧ファイル最終参照アドレス及び新ファイル最終更新アドレスを前記第４不揮発メモリから読み出して送信側に再転送を要求する再転送要求ステップを備え、
前記送信側は、更に、前記受信側からの再転送要求で送られてきた旧ファイル参照情報により中断前の旧ファイル参照情報を更新し、旧ファイル最終参照アドレスにより前記第１揮発メモリにおける旧ファイル再開位置を設定し、新ファイル最終更新アドレスにより前記第２揮発メモリにおける新ファイル再開位置を設定した後に、差分転送を再開する再転送ステップとを備えたことを特徴とする差分転送方法。
【０３５０】
（付記１３）
送信側で新旧２つのファイルから差分データを生成して送信し、受信側で蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開する差分転送方法に於いて、
送信側に、旧ファイルを格納する第１不揮発メモリ、新ファイルを格納する第２不揮発メモリ、旧ファイルのデータを一括して一時蓄積する第１揮発メモリ、新ファイルのデータを分割データ単位で順次読み出し一時蓄積する第２揮発メモリを少なくとも設けた場合、  前記送信側は、
旧ファイルと新ファイルを一定サイズの分割データに分けて前記第１及び第２不揮発メモリに別々に蓄積するファイル蓄積ステップと、
旧ファイルを一括して読み出して前記第１揮発メモリに一時蓄積すると共に新ファイルを分割データ単位に順次読出して前記順次第２揮発メモリに一時蓄積し、前記第２揮発メモリに一時蓄積している処理対象の新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより差分データを抽出する差分抽出ステップと、
前記差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を生成する参照情報生成ステップと、
前記差分データ及び旧ファイル参照情報を外部に送信する送信ステップと、
を備え、
受信側に、旧ファイルを格納すると共に新ファイルを旧ファイルの上書きにより格納する新旧ファイル兼用の第３不揮発メモリ、及び旧ファイルのデータを一括して一時蓄積する第３揮発メモリを少なくとも設けた場合、
受信側は、
旧ファイルを一定メモリサイズの分割データに分けて前記第３不揮発メモリに蓄積する蓄積ステップと、
前記差分データ及び旧ファイル参照情報を受信する受信ステップと、
処理対象としている新ファイル分割データの差分データに対し、前記第３揮発メモリに一時蓄積している同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより新ファイル分割データを展開する差分展開ステップと、
前記新ファイル分割データの展開時に旧ファイル分割データを参照する毎に、受信した参照情報の中の対応する旧ファイル照回数を減算して更新する参照情報更新ステップと、
新ファイル分割データの展開を終了する毎に、展開した新ファイル分割データを前記第３不揮発メモリの参照済みの旧ファイル分割データに上書きして蓄積すると共に、現時点の旧ファイル参照情報、旧ファイル最終参照アドレス、新ファイル分割データの更新回数及び新ファイル最終更新アドレスを前記第３不揮発メモリに蓄積する新ファイル蓄積ステップと、
を備えたことを特徴とする差分転送方法。
【０３５１】
（付記１４）
付記１３記載の差分転送方法に於いて、
前記受信側は、更に、前記差分データに基づき旧ファイルから新ファイルの展開中に処理が中断した場合、処理再開時に、中断前の最後に蓄積された旧ファイル参照情報、旧ファイル最終参照アドレス及び新ファイル最終更新アドレスを前記第３不揮発メモリから読み出して送信側に再転送を要求する再転送要求ステップを備え、
前記送信側は、更に、前記受信側からの再転送要求で送られてきた旧ファイル参照情報により中断前の旧ファイル参照情報を更新し、旧ファイル最終参照アドレスにより前記第１揮発メモリにおける旧ファイル再開位置を設定し、新ファイル最終更新アドレスにより前記第２揮発メモリにおける新ファイル再開位置を設定した後に、差分転送を再開する再転送ステップとを備えたことを特徴とする差分転送方法。
【０３５２】
（付記１５）
送信側で新旧２つのファイルから差分データを生成して送信し、受信側で蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開する差分転送方法に於いて、
送信側に、旧ファイルを格納する第１不揮発メモリ、新ファイルを格納する第２不揮発メモリ、旧ファイルのデータを分割データ単位で順次読み出して一時蓄積する第１揮発メモリ、新ファイルのデータを分割データ単位で順次読み出し一時蓄積する第２揮発メモリを少なくとも設けた場合、
前記送信側は、
旧ファイルと新ファイルを一定サイズの分割データに分けて前記第１及び第２不揮発メモリに別々に蓄積するファイル蓄積ステップと、
旧ファイルを分割データ単位に順次読み出して前記第１揮発メモリに一時蓄積すると共に新ファイルを分割データ単位に順次読み出して前記第２揮発メモリに一時蓄積し、前記第２揮発メモリに一時蓄積している処理対象の新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより差分データを抽出する差分抽出ステップと、
前記差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を生成する参照情報生成ステップと、
前記差分データ及び旧ファイル参照情報を外部に送信する送信ステップと、
を備え、
受信側に、旧ファイルを格納すると共に新ファイルを旧ファイルの上書きにより格納する新旧ファイル兼用の第３不揮発メモリ、及び旧ファイルのデータを一括して一時蓄積する少なくとも４分割データ分の容量を備えた第３揮発メモリを少なくとも設けた場合、
受信側は、
旧ファイルとを一定メモリサイズの分割データに分けて前記第３不揮発に蓄積する蓄積ステップと、
前記差分データ及び旧ファイル参照情報を受信する受信ステップと、
処理対象としている新ファイル分割データの差分データに対し、前記第３揮発メモリに一時蓄積している同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより新ファイル分割データを展開する差分展開ステップと、
前記新ファイル分割データの展開時に旧ファイル分割データを参照する毎に、受信した参照情報の中の対応する旧ファイル参照回数を減算して更新する参照情報更新ステップと、
新ファイル分割データの展開を終了する毎に、展開した新ファイル分割データを前記第３不揮発メモリの参照済みの旧ファイル分割データに上書きして蓄積すると共に、現時点の旧ファイル参照情報、旧ファイル最終参照アドレス、新ファイル分割データの更新回数及び新ファイル最終更新アドレスを前記第３不揮発メモリに蓄積する新ファイル蓄積ステップと、
を備えたことを特徴とする差分転送方法。
【０３５３】
（付記１６）
付記１５記載の差分転送方法に於いて、前記受信側の差分展開ステップは、展開中に旧ファイル参照回数がゼロとなった旧ファイル分割データを前記第３揮発メモリから消去し、新たな旧ファイル分割データを前記第３不揮発メモリから読出して一時蓄積することを特徴とする差分転送方法。
【０３５４】
（付記１７）
付記１５記載の差分転送方法に於いて、
前記受信側は、更に、前記差分データに基づき旧ファイルから新ファイルの展開中に処理が中断した場合、処理再開時に、中断前の最後に蓄積された旧ファイル参照情報、旧ファイル最終参照アドレス及び新ファイル最終更新アドレスを前記第３不揮発メモリから読み出して送信側に再転送を要求する再転送要求ステップを備え、
前記送信側は、更に、前記受信側からの再転送要求で送られてきた旧ファイル参照情報により中断前の旧ファイル参照情報を更新し、旧ファイル最終参照アドレスにより前記第１揮発メモリにおける旧ファイル再開位置を設定し、新ファイル最終更新アドレスにより前記第２揮発メモリにおける新ファイル再開位置を設定した後に、差分転送を再開する再転送ステップとを備えたことを特徴とする差分転送方法。
【０３５５】
（付記１８）
新旧２つのファイルから差分データを生成して送信する差分転送方法に於いて、
旧ファイルと新ファイルを一定サイズの分割データに分けて蓄積するファイル蓄積ステップと、
旧ファイルと新ファイルを読出し、処理対象としている新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより差分データを抽出する差分抽出ステップと、
前記差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を生成する参照情報生成ステップと、
前記差分データ及び旧ファイル参照情報を外部に送信する送信ステップと、
転送先から処理中断後の再転送要求を受けた際に、前記転送先から送られてきた中断までの進捗状態を示す旧ファイル参照情報で前記旧ファイル参照情報を更新し、旧ファイル最終参照アドレスにより旧ファイル再開位置を設定し、新ファイル最終更新アドレスにより新ファイル再開位置を設定した後に、差分転送を再開する再転送ステップと、
を備えたことを特徴とする差分転送方法。
【０３５６】
（付記１９）
送信側から、処理対象としている新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより生成された差分データと、前記差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を受信し、予め蓄積している旧ファイルから受信した差分データ及び旧ファイル参照情報に基づいて新ファイルを展開する差分転送方法に於いて、
旧ファイルを一定メモリサイズの分割データに分けて蓄積すると共に、展開した新ファイルを分割データ単位で蓄積可能な領域を確保する蓄積ステップと、
前記差分データ及び旧ファイル参照情報を受信する受信ステップと、
処理対象としている新ファイル分割データの差分データに対し、同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより新ファイル分割データを展開する差分展開ステップと、
前記新ファイル分割データの展開時に旧ファイル分割データを参照する毎に、受信した参照情報の中の対応する参照回数を減算して更新する参照情報更新ステップと、
新ファイル分割データの展開を終了する毎に、展開した新ファイル分割データと共に、現時点の旧ファイル参照情報、旧ファイル最終参照アドレス、新ファイル分割データの更新回数及び新ファイル最終更新アドレスを蓄積する新ファイル蓄積ステップと、
前記差分データに基づき旧ファイルから新ファイルの展開中に処理が中断した場合、処理再開時に、中断前の最後に蓄積された旧ファイル参照情報、旧ファイル最終参照アドレス及び新ファイル最終更新アドレスを読み出して送信側に再転送を要求して中断時点からの差分データ及び旧ファイル参照情報を再転送させる再転送要求ステップと、
を備えたことを特徴とする差分転送方法。
【０３５７】
（付記２０）
コンピュータに、
新旧２つのファイルから差分データを生成して送信するコンピュータに、
旧ファイルと新ファイルを一定サイズの分割データに分けて蓄積するファイル蓄積ステップと、
旧ファイルと新ファイルを読出し、処理対象としている新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより差分データを抽出する差分抽出ステップと、
前記差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を生成する参照情報生成ステップと、
前記差分データ及び旧ファイル参照情報を外部に送信する送信ステップと、
転送先から処理中断後の再転送要求を受けた際に、前記転送先から送られてきた中断までの進捗状態を示す旧ファイル参照情報で前記旧ファイル参照情報を更新し、旧ファイル最終参照アドレスにより旧ファイル再開位置を設定し、新ファイル最終更新アドレスにより新ファイル再開位置を設定した後に、差分転送を再開する再転送ステップと、
を実行させることを特徴とするプログラム。
【０３５８】
（付記２１）
コンピュータに、
送信側から、処理対象としている新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより生成された差分データと、前記差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を受信し、予め蓄積している旧ファイルから受信した差分データ及び旧ファイル参照情報に基づいて新ファイルを展開するコンピュータに、
旧ファイルとを一定メモリサイズの分割データに分けて蓄積すると共に、展開した新ファイルを分割データ単位で蓄積可能な領域を確保する蓄積ステップと、
前記差分データ及び旧ファイル参照情報を受信する受信ステップと、
処理対象としている新ファイル分割データの差分データに対し、同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより新ファイル分割データを展開する差分展開ステップと、
前記新ファイル分割データの展開時に旧ファイル分割データを参照する毎に、受信した参照情報の中の対応する参照回数を減算して更新する参照情報更新ステップと、
新ファイル分割データの展開を終了する毎に、展開した新ファイル分割データと共に、現時点の旧ファイル参照情報、旧ファイル最終参照アドレス、新ファイル分割データの更新回数及び新ファイル最終更新アドレスを蓄積する新ファイル蓄積ステップと、
前記差分データに基づき旧ファイルから新ファイルの展開中に処理が中断した場合、処理再開時に、中断前の最後に蓄積された旧ファイル参照情報、旧ファイル最終参照アドレス及び新ファイル最終更新アドレスを読み出して送信側に再転送を要求して中断時点からの差分データ及び旧ファイル参照情報を再転送させる再転送要求ステップと、
を実行させることを特徴とするプログラム。
【０３５９】
（付記２２）
送信装置で新旧２つのファイルから差分データを生成して送信し、受信装置で蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開する差分転送システムに於いて、
前記送信装置は、
旧ファイルと新ファイルを一定サイズの分割データに分けて蓄積するファイル蓄積部と、
旧ファイルと新ファイルを読出し、処理対象としている新ファイル分割データに対し同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより差分データを抽出する差分抽出ステップと、
前記差分データを抽出する際に旧ファイルを参照した参照回数を旧ファイル分割データ毎に計数して旧ファイル参照情報を生成する参照情報生成部と、
前記差分データ及び旧ファイル参照情報を外部に送信する送信部と、
を備え、
受信装置は、
旧ファイルとを一定メモリサイズの分割データに分けて蓄積すると共に、展開した新ファイルを分割データ単位で蓄積可能な領域を確保する蓄積部と、
前記差分データ及び旧ファイル参照情報を受信する受信部と、
処理対象としている新ファイル分割データの差分データに対し、同一位置および前後隣接する位置の少なくとも３つの旧ファイル分割データを参照することにより新ファイル分割データを展開する差分展開部と、
前記新ファイル分割データの展開時に旧ファイル分割データを参照する毎に、受信した参照情報の中の対応する参照回数を減算して更新する参照情報更新部と、新ファイル分割データの展開を終了する毎に、展開した新ファイル分割データと共に、現時点の旧ファイル参照情報、旧ファイル最終参照アドレス、新ファイル分割データの更新回数及び新ファイル最終更新アドレスを蓄積する新ファイル蓄積部と、
を備えたことを特徴とする差分転送システム。
【０３６０】
（付記２３）
付記２２記載の差分転送システムに於いて、
前記受信装置は、更に、前記差分データに基づき旧ファイルから新ファイルの展開中に処理が中断した場合、処理再開時に、中断前の最後に蓄積された旧ファイル参照情報、旧ファイル最終参照アドレス及び新ファイル最終更新アドレスを読み出して送信側に再転送を要求する再転送要求部を備え、
前記送信装置は、更に、前記受信側からの再転送要求で送られてきた旧ファイル参照情報により中断前の旧ファイル参照情報を更新し、旧ファイル最終参照アドレスにより旧ファイル再開位置を設定し、新ファイル最終更新アドレスにより新ファイル再開位置を設定した後に、差分転送を再開する再転送実行部とを備えたことを特徴とする差分転送システム。
【０３６１】
（付記２４）
送信側で新旧２つのファイルから差分データを生成して送信し、受信側で蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開する差分転送方法に於いて、
送信側装置により、新ファイルを同一サイズの複数個の区画に分け、各区画毎に旧ファイルと新ファイルの差分データをする際に、前記区画中のデータ列と一致するデータ列を旧ファイルの探索で発見した場合、発見された位置が前記対象区画の先頭位置に相当する旧ファイルの位置より前方か後方かを判断し、前方と判断した場合は、発見位置と一致長を前方の対象区画の差分データに記述し、後方と判断した場合は、発見位置と一致長を前記対象区画の差分データに記述し、
受信側装置により、旧ファィルと差分データから各区画毎に新ファイルを復元して前記旧ファイルの該当部分に上書きする際に、上書き対象となる旧ファイルの該当部分のデータの中に後続する区画の差分データによって参照されるデータ列が存在する場合は、参照される前記データ列を退避させた後に上書きを行い、退避データに対し後続する区画の差分データによる旧ファイルの該当部分を参照させることを特徴とする差分転送方法。（３）
【０３６２】
（付記２５）
付記２４記載の差分転送方法に於いて、
前記送信側装置により、新ファイルの対象区画中のデータ列と一致するデータ列の探索を、旧ファイルの全範囲について行い、
前記受信側装置により、上書き対象となる旧ファイルの該当部分のデータの中に後続する区画の差分データによって参照されるデータ列が存在する場合は、旧ファイルの参照されるデータ列の部分のみを退避させることを特徴とする差分転送方法。（４）
【０３６３】
（付記２６）
付記２４記載の差分転送方法に於いて、
前記送信側装置により、新ファイルの対象区画中のデータ列と一致するデータ列の探索を、前記対象区画の先頭位置に相当する旧ファイルの位置よりもｎバイト前方から旧ファイルの最後尾までの範囲について行い、
前記受信側装置により、上書き対象となる旧ファイルの該当部分のデータの中に後続する区画の差分データによって参照されるデータ列が存在する場合は、次の区画との境界位置から前方ｎバイト分に相当する旧ファイルのデータ列を退避させることを特徴とする差分転送方法。（５）
【０３６４】
（付記２７）
付記２５又は２６記載の差分転送方法に於いて、前記受信側装置により、各区画毎に復元した新ファイルを旧ファイルの該当部分に上書きする直前に、旧ファイルの該当部分のデータ列を退避させることを特徴とする差分転送方法。
【０３６５】
（付記２８）
付記２５又は２６記載の差分転送方法に於いて、前記受信側装置により、各区画毎に新ファイルの復元を開始する前に、旧ファイルの該当部分のデータ列を退避させることを特徴とする差分転送方法。
【０３６６】
（付記２９）
付記２４記載の差分転送方法に於いて、前記受信側装置により、
新ファイルの区画中のデータ列と一致するデータ列を旧ファイルの探索で複数発見した場合、最も後方の一致データを選択して発見位置と一致長を差分データに記述することを特徴とする差分転送方法。
【０３６７】
（付記３０）
新旧２つのファイルから差分データを生成して送信する送信側のコンピュータに、
新ファイルを同一サイズの複数個の区画に分けるステップと、
各区画毎に旧ファイルと新ファイルの差分データをする際に、前記区画中のデータ列と一致するデータ列を旧ファイルの探索で発見するステップと、
前記一致データ列を発見した場合、発見された位置が前記対象区画の先頭位置に相当する旧ファイルの位置より前方か後方かを判断するステップと、
前方と判断した場合は、発見位置と一致長を前方の対象区画の差分データに記述し、後方と判断した場合は、発見位置と一致長を前記対象区画の差分データに記述するステップと、
を実行させることを特徴とするプログラム。
【０３６８】
（付記３１）
蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開するコンピュータに、
旧ファィルと差分データから各区画毎に新ファイルを復元するステップと、
復元した各区画の新ファイルを前記旧ファイルの該当部分に上書きする際に、上書き対象となる旧ファイルの該当部分のデータの中に後続する区画の差分データによって参照されるデータ列が存在する場合は、参照される前記データ列を退避させた後に上書きを行い、退避データに対し後続する区画の差分データによる旧ファイルの該当部分を参照させるステップと、
を実行させることを特徴とするプログラム。
【０３６９】
（付記３２）
送信側で新旧２つのファイルから差分データを生成して送信し、受信側で蓄積している旧ファイルから受信した差分データに基づいて新ファイルを展開する差分転送システムに於いて、
新ファイルを同一サイズの複数個の区画に分け、各区画毎に旧ファイルと新ファイルの差分データをする際に、前記区画中のデータ列と一致するデータ列を旧ファイルの探索で発見した場合、発見された位置が前記対象区画の先頭位置に相当する旧ファイルの位置より前方か後方かを判断し、前方と判断した場合は、発見位置と一致長を前方の対象区画の差分データに記述し、後方と判断した場合は、発見位置と一致長を前記対象区画の差分データに記述する送信側装置と、
旧ファィルと差分データから各区画毎に新ファイルを復元して前記旧ファイルの該当部分に上書きする際に、上書き対象となる旧ファイルの該当部分のデータの中に後続する区画の差分データによって参照されるデータ列が存在する場合は、参照される前記データ列を退避させた後に上書きを行い、退避データに対し後続する区画の差分データによる旧ファイルの該当部分を参照させる受信側装置と、を備えたことを特徴とする差分転送システム。
【０３７０】
【発明の効果】
以上説明してきたように本発明によれば、送信側で作られた差分データの旧ファイル参照情報を基に、受信側で旧ファイルの参照状況及び新ファイルの更新状況を不揮発メモリに格納し、どこまで差分展開が実行されたかの進捗状態を逐次把握していくことで、受信側の電源トラブルなどにより転送が中断しても、トラブル回復後に前回の中断時点からの差分転送を再開することができ、差分転送の中断が起きても通信コストの増加を最小限に抑えることができる。
【０３７１】
また、差分転送に使用している揮発メモリ及び不揮発メモリに余裕のない条件、例えば受信側が携帯電話などでメモリに余裕がなく、新旧同ファイルとした兼用ファイルの不揮発メモリで旧ファイルを一時蓄積する揮発メモリの容量が少なくとも、旧ファイル参照回数のダウンカウントでゼロとなった旧ファイル分割データの書換え制御を行うことで、旧ファイルを一時蓄積するメモリ容量が少なくとも旧ファイルの参照領域を広範囲に取ることができ、旧ファイルの前後を参照して移動したデータの差分データを生成する際のデータ削減効率を十分に高く確保することができる。
【０３７２】
また本発明によれば、一定サイズの区画単位で差分データと旧ファイルから新データを復元できるため、受信側装置が携帯電話の組込システムのように、利用できるワークメモリや内部メモリが少なく通信速度も低速な環境であっても、メモリ容量の制約を受けることなく、適切に差分データから新ファイルを生成して旧ファイルを更新することができる。
【０３７３】
また、受信側装置にあっては、区画ごとに新ファイルのデータを復元して旧ファイルを上書きするが、この上書きに先立って旧ファイルの後続の差分データによる参照部分を退避しておくことで、新ファイルの上書きにより消えた旧ファイルの部分についても、後続する差分データの処理で旧ファイルのデータを参照することができ、これによって、送信側装置で抽出する差分データのサイズを小さくし、通信速度が低速であっても効率良く新ファイルへの更新ができる。
【図面の簡単な説明】
【図１】本発明の原理説明図
【図２】条件１に対応したメモリ形態をもつ本発明による第１実施形態のシステムブロック図
【図３】図２の条件１による差分転送の機能構成のブロック図
【図４】本発明で生成する差分制御コードの説明図
【図５】本発明の差分データ生成処理の概略フローチャート
【図６】本発明で処理可能な新旧ファイルパターンの説明図
【図７】図８の新旧ファイルを対象とした本発明のポインタ制御による差分生成処理の説明図
【図８】図７の処理で生成された差分データファイルの説明図
【図９】本発明における一致部分２段階判定の説明図
【図１０】本発明における他の一致部分２段階判定の説明図
【図１１】本発明で置換処理を行う新旧ファイルパターンの説明図
【図１２】図１１の新旧ファイルを対象とした本発明のポインタ制御による差分生成処理の説明図
【図１３】図１２の処理で生成された差分データファイルの説明図
【図１４】同じ値を持つ差分データに対する本発明の置換処理の説明図
【図１５】本発明でデータ削除の移動処理を行う新旧ファイルパターンの説明図
【図１６】図１５の新旧ファイルを対象とした本発明のポインタ制御による差分生成処理の説明図
【図１７】図１６の処理で生成された差分データファイルの説明図
【図１８】本発明でデータ挿入の移動処理を行う新旧ファイルパターンの説明図
【図１９】図１８の新旧ファイルを対象とした本発明のポインタ制御による差分生成処理の説明図
【図２０】図１９の処理で生成された差分データファイルの説明図
【図２１】図３の差分抽出処理における参照回数のカウントによる旧ファイル参照情報の生成の説明図
【図２２】図２１の差分抽出処理で生成された旧ファイル参照情報の
【図２３】図３の差分展開処理における参照回数のカウントダウンによる旧ファイル参照情報の生成の説明図
【図２４】図２３の差分展開処理における初期の旧ファイル参照情報と展開途中の旧ファイル参照情報の説明図
【図２５】図３の差分展開処理で新ファイルに格納される新ファイル分割データ、旧ファイル参照情報および新ファイル更新情報の説明図
【図２６】図３の第１実施形態における送信側の差分抽出と中断による再転送のフローチャート
【図２７】図３の第１実施形態における受信側の差分展開と中断による再転送要求のフローチャート
【図２８】条件２に対応したメモリ形態をとる本発明による第２実施形態のシステムブロック図
【図２９】図２の第２実施形態による差分転送の機能構成のブロック図
【図３０】図２９の受信側における旧ファイルの参照による参照回数のダウンカウントに基づく旧ファイル分割データを一時記憶するメモリ制御の説明図
【図３１】旧ファイルのデータを正方向に移動した場合の差分展開におけるメモリ制御の説明図
【図３２】旧ファイルのデータを負方向に移動した場合の差分展開におけるメモリ制御の説明図
【図３３】図２９の第２実施形態における送信側での差分抽出と中断による再転送のフローチャート
【図３４】図２９の第２実施形態における受信側での差分展開と中断による再転送のフローチャート
【図３５】条件３に対応したメモリ形態をとる本発明による第３実施形態のシステムブロック図
【図３６】図３５の第３実施形態による差分転送の機能構成のブロック図
【図３７】図３５の第３実施形態における送信側での差分抽出と中断による再転送のフローチャート
【図３８】図３５の第３実施形態における受信側での差分展開と中断による再転送のフローチャート
【図３９】条件４に対応したメモリ形態をとる本発明による第４実施形態のシステムブロック図
【図４０】図３９の第４実施形態による差分転送の機能構成のブロック図
【図４１】図３９の第４実施形態における送信側での差分抽出と中断による再転送のフローチャート
【図４２】図３９の第４実施形態における受信側での差分展開と中断による再転送のフローチャート
【図４３】新ファイルを一定サイズの区画に分けて差分抽出及び復元を行う第５実施形態のシステムブロック図
【図４４】図４３の実施形態における差分抽出の説明図
【図４５】旧ファイルに一致部分が複数存在した場合の差分抽出の説明図
【図４６】図４３の実施形態で旧ファイルのデータ列を退避して参照する復元処理の説明図
【図４７】図４３の実施形態における差分抽出処理のフローチャート
【図４８】図４３の実施形態における復元処理のフローチャート
【図４９】図４３の第５実施形態の携帯電話について復元に先だって旧ファイルの区画を退避させる変形実施形態のシステムブロック図
【図５０】図４９の実施形態における復元処理のフローチャート
【図５１】旧ファイルの一致検索範囲を最後尾から区画先頭アドレスから前方ｎバイトまでとした差分抽出処理を行う第６実施形態のフローチャート
【図５２】図５１の実施形態における旧ファイルの一致検索範囲の説明図
【図５３】図５１の差分抽出処理で生成した差分データに基づき各区画の退避データサイズをｎバイト固定とした復元処理を行う第６実施形態のフローチャート
【図５４】図５３の実施形態で旧ファイルのデータ列を退避して参照する復元処理の説明図
【図５５】図５３の第６実施形態の復元処理について復元に先だって旧ファイルの区画を退避するように変形した実施形態のフローチャート
【図５６】従来の差分転送における基本的なシステム構成の説明図
【図５７】受信側の不揮発メモリを新旧兼用ファイルとした従来システムの説明図
【図５８】従来の差分転送で処理する複写、置換、挿入及び削除のカテゴリに属する新旧ファイルパターンの説明図
【図５９】従来の差分転送で処理できない移動、複数複写、複数置換といった従来のカテゴリに属しない新旧ファイル特殊パターンの説明図
【符号の説明】
１０：基地局（送信装置）
１２：携帯電話（受信装置）
１４，４８：旧ファイル
１４−１，４８−１：旧ファイル格納部（不揮発）
１５：区画データ読出部
１６，５０：新ファイル
１６−１，５０−１：新ファイル格納部（不揮発）
１８，２０，２４，３８，４２，４６，８３，８９，１８０，４２０：ワークメモリ（揮発）
２２，２２−１：差分抽出部
２５：参照回数アップ
２６：データ圧縮部
２８，４０：参照情報処理部
３０：送信部
３２：伝送路
３４：受信部
３６：データ解凍部
４４：差分展開部
４５：更新情報処理部
８０：兼用ファイル格納部
８２：データ復元部
８４：データ退避部
８５：復元データ書込部
８６：内部メモリ
８８：内部メモリ参照部
９０：退避データ参照部
【図１】
0004285679.tif 000003
【図２】
0004285679.tif 000004
【図３】
0004285679.tif 000005
【図４】
0004285679.tif 000006
【図５】
0004285679.tif 000007
【図６】
0004285679.tif 000008
【図７】
0004285679.tif 000009
【図８】
0004285679.tif 000010
【図９】
0004285679.tif 000011
【図１０】
0004285679.tif 000012
【図１１】
0004285679.tif 000013
【図１２】
0004285679.tif 000014
【図１３】
0004285679.tif 000015
【図１４】
0004285679.tif 000016
【図１５】
0004285679.tif 000017
【図１６】
0004285679.tif 000018
【図１７】
0004285679.tif 000019
【図１８】
0004285679.tif 000020
【図１９】
0004285679.tif 000021
【図２０】
0004285679.tif 000022
【図２１】
0004285679.tif 000023
【図２２】
0004285679.tif 000024
【図２３】
0004285679.tif 000025
【図２４】
0004285679.tif 000026
【図２５】
0004285679.tif 000027
【図２６】
0004285679.tif 000028
【図２７】
0004285679.tif 000029
【図２８】
0004285679.tif 000030
【図２９】
0004285679.tif 000031
【図３０】
0004285679.tif 000032
【図３１】
0004285679.tif 000033
【図３２】
0004285679.tif 000034
【図３３】
0004285679.tif 000035
【図３４】
0004285679.tif 000036
【図３５】
0004285679.tif 000037
【図３６】
0004285679.tif 000038
【図３７】
0004285679.tif 000039
【図３８】
0004285679.tif 000040
【図３９】
0004285679.tif 000041
【図４０】
0004285679.tif 000042
【図４１】
0004285679.tif 000043
【図４２】
0004285679.tif 000044
【図４３】
0004285679.tif 000045
【図４４】
0004285679.tif 000046
【図４５】
0004285679.tif 000047
【図４６】
0004285679.tif 000048
【図４７】
0004285679.tif 000049
【図４８】
0004285679.tif 000050
【図４９】
0004285679.tif 000051
【図５０】
0004285679.tif 000052
【図５１】
0004285679.tif 000053
【図５２】
0004285679.tif 000054
【図５３】
0004285679.tif 000055
【図５４】
0004285679.tif 000056
【図５５】
0004285679.tif 000057
【図５６】
0004285679.tif 000058
【図５７】
0004285679.tif 000059
【図５８】
0004285679.tif 000060
【図５９】
0004285679.tif 000061