JP3848983B2 - データ送信方法、データ等化方法及び装置 - Google Patents

データ送信方法、データ等化方法及び装置 Download PDF

Info

Publication number
JP3848983B2
JP3848983B2 JP00387895A JP387895A JP3848983B2 JP 3848983 B2 JP3848983 B2 JP 3848983B2 JP 00387895 A JP00387895 A JP 00387895A JP 387895 A JP387895 A JP 387895A JP 3848983 B2 JP3848983 B2 JP 3848983B2
Authority
JP
Japan
Prior art keywords
data
source
key
block
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP00387895A
Other languages
English (en)
Other versions
JPH07295867A (ja
Inventor
エフ パイン チャールズ
Original Assignee
ラップリンク ソフトウェア インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22670854&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP3848983(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by ラップリンク ソフトウェア インコーポレイテッド filed Critical ラップリンク ソフトウェア インコーポレイテッド
Publication of JPH07295867A publication Critical patent/JPH07295867A/ja
Application granted granted Critical
Publication of JP3848983B2 publication Critical patent/JP3848983B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1787Details of non-transparently synchronising file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、一般的にはコンピュータ通信に関するものであり、特別にはリモートコンピュータに位置するファイルの更新に要する時間を短縮するための方法及び装置に関するものである。
【0002】
【従来の技術】
コンピュータ通信技術においては、コンピュータと他の周辺装置との間のデータ通信の速度が大変重要である。携帯用コンピュータの利用が増加している中で、2つのパーソナルコンピュータ間の早くそして正確なデータ転送が特に興味を持たれている。しばしば携帯用コンピュータに入力されたデータが、結局はユーザーの自宅或いはオフィスのパーソナルコンピュータに転送される。コンピュータの専門家は、送信するデータの信頼性を損なわずにデータを転送するために要する時間を短縮する通信プロトコルをいつでも捜し求めている。
【0003】
コンピュータ、特にパーソナルコンピュータ間でデータを運ぶ従来の方法は、送信側コンピュータのデータバスと受信側コンピュータのデータバスとの相互接続によるものである。これは、各コンピュータのシリアル、パラレル又は同様の通信ポートをケーブルのようなインターフェースリンクを通して、又はモデムを用いるデータパスを介して結合することによって行われる。シリアル通信においては、データは一時に1ビット転送される。シリアル通信は、長い距離を越えてデータを転送する場合、特にモデムを装着し電話線を用いて2つのコンピュータを結んでデータを転送する場合に適している。
【0004】
しかしながら、シリアル通信を用いてデータを転送するために必要な時間は、特に大きなファイルの場合にはかなりのものになる。比較的近くにある2つの装置間での通信にはパラレル通信がしばしば用いられる。パラレル通信は、データの多数のビット、例えば8ビットがマルチビットデータパスを用いて並列に同時に転送される。
【0005】
コンピュータソフトウェア会社は、データ転送時間を減らすために更に有効なデータ転送方法を絶えず研究している。中心となる2つの優勢な分野は、データ転送レートを上げること及びデータ圧縮を行って送るべきデータの総量を減らすことである。データ転送レートを上げることは、シリアル通信においてはモデムの速度を上げることによって進められ、パラレル通信においては同時に転送することができるビット数を増すことによって進められて来た。
【0006】
後者の技術に関する技術の例は本出願人の米国特許第5,261,060 号「8ビットパラレル通信方法及び装置」に記載された技術である。データ圧縮方法は、種々の方法により情報を密にして転送すべきファイルのサイズを小さくする。例えば、通常の圧縮技術の1つはキーワード符号化と呼ばれるもので、例えば「the 」のように頻繁に出て来る語をそれぞれ2バイトのトークン表示に置き換える方法である。圧縮されたデータはリモートコンピュータによって受信された後で圧縮解除され、ファイルの元の内容の表現に戻される。
【0007】
ファイル転送に要する時間を減らすための最近のアプローチでは、しばしば受信側コンピュータがファイル即ち転送されるべきソースファイルと類似の或いは時には同一のリファレンスファイルを持つようになっている。例えば、ソースファイルが、リファレンスファイルと単に数ワード又は数センテンスだけ変わっているに過ぎないテキストを含むこともある。このアプローチを用いたファイル転送方法は、元の全体のソースファイル又は全体の圧縮されたソースファイルを送ることはせず、2つのファイル間の差異を識別し、その差異のみを受信側コンピュータに送る。これを受信すると、受信側コンピュータにおけるリファレンスファイルがこの差異情報によって更新され、それにより、ソースファイルの正確なコピーが再生される。
【0008】
【発明が解決しようとする課題】
本発明は、リモートコンピュータにおいてソースファイルの正確なコピーを作るため、ソースファイルとリファレンスファイルとの間で変更内容を識別し転送する方法の改良を目指すものである。
【0009】
【課題を解決するための手段】
本発明は、送信側コンピュータに位置するソースファイルと、受信側コンピュータに位置し、このソースファイルを構成するデータと同様のデータを持つリファレンスファイルとの間の差異を識別してこれを分離するファイル転送方法である。両コンピュータはコンピュータデータインターフェースを通して接続される。この方法は、 (a)リファレンスファイルを複数のデータブロックに分割し、各データブロックがnバイトの長さを持ち、各データブロックをそのブロックにおけるデータによりキーを定めるキー決定方法に従って決定したリファレンスキー値に対応させるステップ、及び (b)ソースファイルからの長さnバイトのデータのブロックを識別し、該キー決定方法に従ってソースキー値を決定し、且つソースキー値及びリファレンスキー値を用いて、リファレンスファイルからのデータのブロックとソースファイルからのデータのブロックとを比較し、それぞれのファイルからのデータのブロックの間に一致が得られた場合は、受信側コンピュータに一致した旨の表示を送信し、これにより一致した旨を表示されたデータのブロックを受信側コンピュータに送信することを不要にするステップを含む。
【0010】
本発明の他の観点によれば、データの初期のブロックをソースファイルから識別し、初期のブロックからソースキーを決定し、初期のブロックについて一致が得られない場合は、更に(i) 初期のブロックからの部分集合を受信側コンピュータに送信するステップ、及び(ii)送信された部分集合を除き、ソースファイルからの付加データを加え、ソースファイルからのデータの初期のブロックを含む長さnバイトの引き続くデータのブロックを識別するステップを含む。
【0011】
本発明の更に他の観点によれば、リファレンスファイルにおけるデータブロックと対応したリファレンスキー値を送信側コンピュータに送信するステップを更に含む。更に、データのブロックについてのキー値の少なくとも一部分を、そのブロックのバイトと、その値が所定のバイトのそのブロック中における位置に依って決まる1又は複数の乗数とを乗算し、この乗算操作の結果を加算して計算する。
【0012】
本発明の前記の観点及びこれらに付随する本発明の多くの利点は、図面を用いた以下の詳細な説明によって、更に容易に認識され同時により良い理解が得られる筈である。
【0013】
【実施例】
実際にリモートファイルを転送する場合、しばしば、受信側コンピュータが既に転送されるべきファイルと類似の、或いは時には同一のファイルを持っている場合がある。例えば、転送されるべきファイルが、テキストファイルをただ数ワード又は数センテンス変更しただけの改訂版であることもある。本発明は2つのファイルの間の差異を識別してこれを分離し、これらの差異のみを受信側コンピュータに転送するファイル転送方法である。類似のファイルについては、このファイル転送方法は、従来のデータ圧縮方法によって得られる圧縮比を遥に上回る圧縮比を得ることができる。
【0014】
図1は、本発明が利用される典型的な動作環境を説明する図である。送信側コンピュータ20が通信リンク24を通して受信側コンピュータ22と接続される。これらのコンピュータは、パーソナルコンピュータ或いはラップトップコンピュータのような一般的によく知られた型のものである。通信リンクは、例えば本発明の出願人であるTraveling Software社で作られ販売されているファイル転送ツールLAPLINKシリーズのような2つのコンピュータ間でデータを転送するための既知の手段であってもよい。
【0015】
送信側コンピュータ20は一般的にプロセッシングユニット26、メモリー28及び多数の通信ポート30を具える。メモリーはランダムアクセスメモリー(RAM)、リードオンリーメモリー(ROM)及び外部メモリーを含み、データ/アドレスバス32によってプロセッシングユニット26に接続される。通信ポート30はデータバス34によってプロセッシングユニット26に接続される。通信ポート30はパラレルポート及びシリアルポートを含み、更に、送信側コンピュータがデータの送受信をできるようになるPCMCIAカード技術を含む他の入力/出力技術を含む。受信側コンピュータ22は送信側コンピュータと同様であり、プロセッシングユニット36、メモリー38、通信ポート40及びデータバス44を含む。記載を簡易化するために一方を送信側コンピュータと呼び他方を受信側コンピュータと呼ぶが、コンピュータは一般的に互換性を有する。
【0016】
データ転送を行うため、送信側及び受信側のコンピュータは、コンピュータプログラム制御を含む。コンピュータプログラムは例えばRAMに格納され、各コンピュータのプロセッシングユニットによって実行される。本発明の1つの実施例においては、送信側及び受信側のコンピュータ制御は、単独のファイル転送プログラム45に組み込まれている。このような方法では、各コンピュータが送信側コンピュータ及び受信側コンピュータとして動作する。ハンドシェイクの必要性から、各コンピュータに位置するファイル転送プログラム45のコピーは同時に実行されることが望ましい。これにより、全二重転送、即ち各方向の同時通信が可能になる。本発明は、効率的ではないにしても半二重通信にも利用できる。
【0017】
説明を明確にするため、本明細書を通して、送信側コンピュータに位置するソースファイル46が受信側コンピュータ22に送信されるものと仮定する。更に、受信側コンピュータが、ソースファイルと少なくとも若干の類似性を持つリファレンスファイル48を含むものと仮定する。ユーザーがソースファイルを転送することを指示すると、ソースファイルに類似のデータを持つリファレンスファイルが、例えばソースファイルと同一或いは類似のファイル名を持つことによって識別される。本発明は、ここでは一般的にリファレンスファイルは既に識別されたものと仮定する。
【0018】
ファイル転送プログラムによって実現される基本的なステップは次の通りである。
(1) 受信側コンピュータにおいて、ソースファイルを含むデータと類似のデータを有するリファレンスファイルを識別するステップ、
(2) リファレンスファイルを構成するデータを、1ブロック当たりnバイトを持つように複数のデータブロックに分割し、各データブロックを1つのキー値に対応させるステップ、
(3) キー値を受信側コンピュータから送信側コンピュータに送信するステップ、
(4) ソースファイルからのデータのnバイトのカレントブロックを識別し、データのカレントブロックに対応するソースキーの値を計算するステップ、
(5) ソースキーの値をそれぞれのリファレンスファイルからのキー値と比較し、一致が得られると、 (i)一致した旨の通知を受信側コンピュータに送信し、(ii)ステップ(4) を繰り返すステップ、及び
(6) 一致が得られないと、データのカレントブロックからデータの1バイトを受信側コンピュータに送信し、ソースファイルからのデータの付加バイトをデータのカレントブロックに付加し、ソースキー値を再計算し、ステップ (5)を繰り返すステップ。
【0019】
一般的に、ステップ(5) 及び(6) によって作られるループは、ソースファイルの全てのデータが処理されるまで繰り返される。受信側コンピュータにおいては、一致の通知及びバイトの送信からデスティネーションファイルが作られる。送信が完結すると、このデスティネーションファイルはソースファイルの写しになる。
【0020】
図2は、ステップ(2) を説明する図であり、リファレンスファイルを構成するデータを複数のデータブロック50a、50b、50c、...50y、50zに分割し、各データブロックをキー値52a、52b、52c、...52y、52zに対応させる。データの最後のブロックはnバイトより少ないこともあり得るので、図ではxバイトと表示している。
【0021】
リファレンスファイルがデータブロック50に分割されると、各ブロックのキー値52は種々の方法で計算される。第1の実施例では、各キーがそのブロックのデータの各バイトの値を加算し、そのブロックの全てのバイトの総計を出すことによって計算される。ちなみに、それぞれの所定のブロックにおける各8ビットのキャラクタは、0乃至255即ち28 −1の範囲にあるASCII値で表現されている。
【0022】
ASCIIは情報交換のための米国の標準コードの頭文字からできた語である。ASCIIのコード構成は、文字、数字、記号及び他のキャラクタに数値を割当てるものである。このようなキャラクタについて用いられる値の標準化を通して、ASCIIはコンピュータ及びコンピュータプログラムを用いて情報交換を行うことを可能にした。前記のようなキーの計算は、それぞれの所定のブロックに含まれるデータを表す0とn2 との間の全ての数を生成する。
【0023】
リファレンスファイル中のデータの各ブロックについてのキーが計算されると、そのキー値は1つのアレイとして、ソースファイルとの比較のために送信側コンピュータに送られる。
【0024】
図3は、ステップ(3) 乃至(5) を説明する図である。ステップ(3) においては、ソースファイルからのデータのnバイトのカレントブロックが識別され、データのカレントブロックに対応するソースキーについての値が計算される。このように、最初の比較においては、バイト0からバイトn−1までがデータのカレントブロックとして識別される。従って、データのカレントブロックのキー値は、リファレンスファイルのキーを計算するのに用いられた方法と同一の方法を用いて計算される。データのカレントブロックのキー値はKEY1とする。
【0025】
ステップ(4) においては、KEY1の値がリファレンスファイルのそれぞれのキーと比較され、一致するか否かが決定され、それによりデータのカレントブロックがリファレンスファイルのデータの1つのブロックと同一であるか否かが表示される。一致が得られたならば、この表示は受信側コンピュータに送られる。一致が得られないと、ステップ(5) によってカレントブロックの第1のバイト(バイト0)が受信側コンピュータに送られる。
【0026】
データのカレントブロックの続きは、次にカレントブロックからデータの第1のバイト(バイト0)を差引いて数値化され、データの次に続くバイト(バイトn)がカレントブロックに加えられ、次のカレントブロックのキー値が再計算される。データのこのブロックについてのキー値をKEY2とする。このように、KEY2はバイト1乃至nの値を含む。KEY2の値は次にリファレンスファイルについてのキーアレイのそれぞれのキーと比較される。
【0027】
一致が得られない場合は、カレントブロックの第1バイト(バイト1)が受信側コンピュータに送られる。次に、データのカレントブロックを表す第3のキーであるKEY3が、データのカレントブロックを右に1バイトずらすことによって計算され、KEY3はバイト2からバイト(n+1)までの値を含む。これは、ソースファイルにおけるデータブロックから計算されたキー値とリファレンスファイルについてのキーアレイにおけるキーとの間に一致が得られるか、又はソースファイル中の全てのデータが送信されてしまうまで続けられる。一致が得られると、その旨の通知が受信側コンピュータに送られ、次のデータのカレントブロックがソースファイルから計算される。
【0028】
一致が得られない場合においてファイルを転送するために必要な付加的な時間は、ウィンドウをずらせ、キーを計算するにも拘わらず、従来の方法に較べて無視できる。これは、部分的にはプロセッサがデータを送るよりもずっと早く計算することができるという事実による。更に、好適な実施例においては、受信側コンピュータは、受信されるバイトがデータバイトであり、2つのデータブロック間の一致の表示ではないことを期待するように構成される。後者の場合、一致が生じたことを示す付加的な「一致の表示」のバイトが複数のバイトの先頭に送られる。このように、一致が得られない場合に送られるバイトの数は、一般的には本発明による一致のチェックを行わずに単に送信するときとほぼ等しくなる。
【0029】
前記の説明はファイル転送プログラム45の実施例の概観である。ソフトウェアによるファイル転送プログラムを実行するためのルーチンの実施例が図4乃至6に示されている。図4は、リファレンスファイルの内容からキーアレイを計算するためのルーチンのフローチャートである。データの各ブロックのサイズが手順100 でセットされる。一例では、各ブロックが256バイトを含む。
【0030】
手順102 では、このルーチンで処理されるデータのカレントブロックを表示する変数nBLOCKが0にセットされる。データのカレントブロックについてのキー値が手順104 で計算される。キー値を計算するのに適したルーチンを図5に示す。手順106 では、アレイBLOCKKEY[nBLOCK]がカレントブロックについて計算されたキー値と等しくされる。変数「nBLOCK」は次に手順108 で増やされる。
【0031】
手順110 では、リファレンスファイルの終りに達したか否かを決定するためのテストが行われる。まだファイルの終りに達していない場合は、ルーチンは手順104 に戻る。ファイルの終りに達している場合は、手順112 でアレイBLOCKKEYが送信側コンピュータに送られ、このルーチンが終了する。
【0032】
図5は、図4(手順104 )でデータの所定のブロックに対応するキー値を計算するために用いるのに適した第1の実施例てあるサブルーチンのフローチャートを示す。このサブルーチンは、リファレンスファイルにおける各データブロックについて呼び出される。
【0033】
手順120 で、バイト計数値を表す変数「n」が0にセットされる。手順122 では、変数「KEY 」が0にセットされる。手順124 では、リファレンスファイルからデータの1バイトが読み取られる。手順126 では変数「n」が増やされる。手順128 では、変数「KEY 」が、前の値に手順124 で読み取られたデータのカレントバイトの値を加えた値に等しくされる。
【0034】
手順130 では、リファレンスファイルの終りに達したか否かを決定するためのテストが行われる。まだファイルの終りに達していない場合は、手順132 で、データの全てのブロックが処理されたか否か、即ちnがブロックサイズに等しいか否かを決定するためのテストが行われる。nがブロックサイズに等しくない場合は、サブルーチンは手順124 に戻る。nがブロックサイズに等しい場合又は手順130 でファイルの終りに達したと決定された場合は、このサブルーチンは終了し、図4のルーチンに復帰する。
【0035】
図6は、ソースファイルからのnバイトブロックに対応するキーと、リファレンスファイルから計算されたキー及びアレイBLOCKKEYに含まれたキーとの比較を行うためのルーチンのフローチャートである。手順150 では変数「CURRENTKEY」が0にセットされる。手順152 では、少なくともnバイトのまだ比較されていないソースファイルのデータがあるか否かを決定するテストが行われる。少なくともnバイトのまだ比較されていないソースファイルのデータがある場合は、手順154 でソースファイルからデータのnバイトブロックが読み取られる。
【0036】
手順156 では、データのカレントブロックを表示するカレントキー値が、図5で用いられた方法と同じ方法、即ちデータのカレントブロックの各バイトの重み付けされた値を加算する方法を用いて計算される。次に手順158 で、アレイBLOCKKEYにおけるキー値のいずれかがカレントキーに一致するか否かを決定するためにアレイBLOCKKEYがサーチされる。一致が得られたか否かのテストは手順160 で行われる。
【0037】
手順160 で一致が得られた場合は、手順162 で受信側コンピュータにメッセージが送られ、一致したブロックがデスティネーションファイルに送信される。このルーチンは手順154 に戻る。一致が得られない場合は、手順164 で、カレントブロックのデータの第1バイトが受信側コンピュータに送られる。手順166 では、受信側コンピュータに送られたデータのバイトがデータのカレントブロックから削除される。
【0038】
手順168 では、ソースファイルにまだ処理されていない残りのデータがあるか否かを決定するテストが行われる。ソースファイルに残りのデータがある場合は、手順170 でデータの新しいバイトがソースファイルから読み取られ、手順172 でデータのカレントブロックに加えられる。このルーチンは手順156 に戻り、データのカレントブロックについてのキーが計算される。
【0039】
手順172 から戻った後で手順156 においてカレントキーを計算する際、カレントブロックのそれぞれのキャラクタを加算することによってキー計算を行うよりは、(手順166 において)カレントブロックから削除されたバイトの値を前に計算されたカレントキーから減算し、次に(手順172 において)カレントブロックに加算されたバイトの値を加算することによってカレントブロックについてのキー値を得るのがより効率的であることは明らかである。
【0040】
ソースファイルに残っている全てのデータが処理されると、又は手順152 のテストの結果ソースファイルの残りのデータがnバイトより少なくなると、手順174 で、ソースファイルの残りのデータが受信側コンピュータに送られる。受信側コンピュータにおいては、送信されたデータがデスティネーションファイルに加えられ、ファイル転送が完了する。
【0041】
他の実施例においては、手順174 に示されるように、単に残りのデータを送るのではなく、残りのデータのキー値がリファレンスファイルのデータの最後のブロックのキー値と一致するか否かのテストが行われる。一致が存在すると、一致の表示が受信側コンピュータに送られ、データ自身の送信は不要とされる。そうでない場合は、実際のデータが送信される。これは、リファレンスファイルの終り部分がソースファイルの終り部分と同一のデータを含む場合に、転送を更に有利にする。
【0042】
ソースファイルの全てのデータがデスティネーションファイルに加えられると、即ち手順162 、164 及び174 によって殆どの場合にデスティネーションファイルがソースファイルの完全なコピーになる。しかしながら、デスティネーションファイルがソースファイルの正確な複製であることを確認するためのチェックが行われることが望ましい。手順176 では、デスティネーションファイルの完全性が、既知の手段を用いてチェックされる。
【0043】
このファイルの完全性をチェックする1つの方法は、M. Nelson 著「データ圧縮ブック」(The Data Compression Book )の446-448 頁(M&T Books 1991 )に記載されたようなサイクリック冗長検査(CRC)である。デスティネーションファイルの完全性が得られない場合は、通常の送信方法を用いて、ソースファイルからデスティネーションファイルへデータが再送信される。これは、手順178 に示されている。デスティネーションファイルについて又はソースファイルの送信について完全性が得られた場合はこのルーチンが完了する。
【0044】
デスティネーションファイルがソースファイルの正確なコピーではない場合の1つの例は、データの2以上の異なるブロックが同一のキー値を生ずる場合である。データの各ブロックが256バイトと仮定すると、図5に示したキー計算方法では、可能なキー値の範囲は0から65,280までである。この後者の値は、ブロックの各バイトが数値255をとった場合にのみに起きる。
【0045】
この場合、 (1)可能なキー値の範囲が比較的大きく、及び/又は (2)キー計算値がこの範囲の広い部分に分布する可能性が増すと、同じキー値を持つ確率が減少する。この点については、データを送信するための本発明によるデータファイル転送方法の正確性は、2つの異なるデータのブロックが同一のキー値を持つ確率が極めて小さい場合に最も効果的に動作する。
【0046】
有利なキー値計算方法の他の望ましい例は、ソースデータのブロックについてのカレントキー値がウィンドウをずらすことによって導出され、素早く確定される場合である。これを達成する1つの方法は、差し引かれるべきデータのバイトに対応するキー値をデータのカレントブロックから減算し(手順166 )、加えられるべきデータのバイトに対応するキー値をカレントブロックに加算する(手順172 )ことによって、カレントキー値が更新されるキー計算方法を持つことである。
【0047】
図5に示されたキー計算方法はここに説明した例であるが、この例は可能なキー値の範囲が限定されており、この範囲に値が分布するようになっているため、ずっと大きなファイルについては良好に動作しない。
【0048】
図7乃至9は、本発明によるキー計算のための第2の実施例を説明する図であり、可能なキー値の範囲が図5の場合より拡張され、これにより、どのキー値もデータの1つのブロック以外のブロックを表示する可能性を減らした例である。更に、この計算方法においては、図9で説明するようにカレントキーが極めて高速で更新される。図7乃至9の例は、32ビットキーを示しているが、他のキーサイズであってもよいことは勿論である。
【0049】
図7によれば、32ビットキーが下部24ビットのセグメントと上部8ビットのセグメントとに分割されている。24ビットのセグメントは、式
1(n)+C2(n-1)+C3(n-2)+……+Cn-1(2)+Cn (1)
によって計算される。ここでC1 はカレントブロックのi番目のキャラクタであり、nは各ブロックのバイト数である。32ビットキーの上部8ビットは、各キャラクタについてエクスクルーシブオア(XOR)操作を行うことによって計算される。これは、式
1 XOR C2 XOR C3 ……Cn-1 XOR Cn (2)
によって示される。
【0050】
下部及び上部のキー値が計算されると、このビットが結合され、それぞれ32ビットキーを形成する。
図8には、図7で説明されたキー計算を実行するために適したサブルーチンを示す。このサブルーチンは図4のルーチンで図5のサブルーチンを呼ぶ代わりに呼び出される。
【0051】
手順200 では、いずれのブロックについてもバイト計数を表示する変数「n」が0にセットされる。手順202 では、キーの下部分及び上部分、即ちKEY24 及びKEY8が0にセットされる。手順204 では変数「SUM 」が0にセットされる。手順206 ではデータの1バイトがリファレンスファイルから読み取られる。
【0052】
手順208 ではカレントバイトの値が変数SUM に加えられる。次に手順210 で変数KEY24 がSUM の値だけ増される。手順208 及び210 は、乗算操作を除いて計算式(1)の変形方法であることは明らかである。手順212 では、変数KEY8がKEY8の前の値とカレントバイトとでXOR操作を行った値に等しくされる。
【0053】
手順214 ではリファレンスファイルの終りに到達したか否かを決定するテストが行われる。まだリファレンスファイルの終りに到達していない場合は、手順216 でnがブロックサイズに等しいか否かを決定するテストが行われる。nがブロックサイズに等しくない場合は、このルーチンは手順206 に戻る。nがブロックサイズに等しい場合又はファイルの終りに到達した場合は、手順210 で計算された下部24ビット値(KEY24 )と手順212 で計算された上部8ビット値(KEY8 )とが結合されて変数「KEY 」がセットされる。このサブルーチンはここで完了し、プログラムは図4の手順106 に復帰する。
【0054】
図9には、データのカレントブロックについてのカレントキー値を計算するために図6の手順156 から呼び出されるのに適したサブルーチンが示されている。このサブルーチンは、ウィンドウをずらすことによって識別され、従って既に計算されたキーに類似のキー値を持つソースデータのブロックについてのキー計算の最適化を示すものである。
【0055】
手順220 では、カレントブロックがウィンドウをずらす方法によって識別されたか否か、即ち前のブロックとの一致が得られなかったためにこのサブルーチンが呼び出されたか否かを決定するテストが行われる。データのカレントブロックがこの方法によって識別されたのではない場合は、カレントキー値を計算するために図8のサブルーチンが呼び出される。これはソースファイルのデータの第1ブロックで又は一致が得られた後で起きる。
【0056】
データのカレントブロックが前の一致しないデータのブロックに基づいて識別された場合は、前のブロックからの第1バイト(手順166 の操作で削除されたバイト)が、手順224 でSUM から減算される。手順226 では、KEY24 が、削除されたバイトの値とブロックサイズとの積を前の値から減じた値に等しくセットされる。手順228 では、新しいバイト(手順172 でカレントブロックに加えられたもの)がSUM に加算される。次に手順230 で変数KEY24 がSUM の値だけ増やされる。
【0057】
手順232 では、変数KEY8がKEY8の前の値と削除されたバイトとのXORの値に等しくセットされる。次に手順234 でKEY8と新しいバイトとの間でエクスクルーシブオア操作が行われる。手順236 では、手順230 で計算された下部24ビット値(KEY24 )と手順234 で計算された上部8ビット値(KEY8 )とが結合されて変数「KEY 」がセットされる。次にこのサブルーチンが完了し、制御は図6の手順158 に復帰する。上記のように、図9のサブルーチンによればキー値を高速で計算でき、従って、ソースファイルからのブロックとリファレンスファイルからのブロックとの間の一致を捜す際に、ファイル転送プログラムがより高速で動作することができる。
【0058】
当業者にとって明らかなように、本発明においては、数多くの異なったキー計算方法を用いることができる。従って、本発明はここで説明されたキー計算の例に限定されるものではない。不必要に時間を浪費せず、比較的広い範囲の結果を提供する方法ならば、どのようなキー計算であっても有益であり得る。更に、それぞれの実施例で用いられたキー計算の型においては、最適の結果を得るためにはブロックサイズに依存することもある。
【0059】
利用することができる他のキー計算は、ブロック中の各キャラクタとそのブロック中における位置との積を計算してこれを総計した値を用いるである。実行できる他のキー計算は、前記のCRCファイル完全性チェックである。この方法は極めて正確であるが、多くの用途においてかなり遅いことがある。
【0060】
再度図6に言及すれば、アレイBLOCKKEYがサーチされるとき(手順158 )にバイナリーサーチを用いると更に高度の最適化が達成される。バイナリーサーチはサーチの1つの型であり、順序付けされたリストの中に存在する筈のアイテムをサーチする場合、その順序付けされたリストを繰り返し2つの等しい部分に分割し、そのアイテムが含まれるであろう半分をサーチする方法である。バイナリーサーチでは、例えば昇順のように既知の順序になっているサーチリストが必要であるため、アレイBLOCKKEYはサーチが実行できるような順序に従って配置されることが必要である。適切で標準的なバイナリーサーチは、H. Schildt著「完全性(リファレンス)」(The Complete(Reference) )の487-488 頁(Osborn McGraw-Hill,1987 )に記載されている。
【0061】
本発明の好ましい実施例が記載され説明されたが、本発明の精神及び範囲を逸脱せずに種々の変更が可能であることは明らかである。
【図面の簡単な説明】
【図1】本発明によりファイルを更新するために用いられるファイル転送プログラムが走る送信側コンピュータ及び受信側コンピュータを含む通信網のブロック図である。
【図2】リファレンスファイルのデータのブロックに対応する複数のキーを用いて送信されるべきソースファイルと類似性を有するリファレンスファイルを表すブロック図である。
【図3】ウィンドウをずらす方法によってソースファイルのデータのブロックを選択する方法を説明するブロック図である。
【図4】本発明によるファイル転送プログラムを実行するルーチンの例のフローチャートである。
【図5】リファレンスファイルのデータの各ブロックについてのキー値を定めるサブルーチンの第1の例のフローチャートである。
【図6】ソースファイルとリファレンスファイルとの差異を決定しこの差異を受信側コンピュータに送信しこれによりデスティネーションファイルを作成する本発明の方法に用いるルーチンの例のフローチャートである。
【図7】リファレンスファイルのデータの各ブロックについてのキー値を定める第2の例を説明する図である。
【図8】図7に示されたキー値を定める方法を実行するサブルーチンのフローチャートである。
【図9】ソースファイルのデータのカレントブロックに対応するキー値を決定するサブルーチンのフローチャートである。
【符号の説明】
20 送信側コンピュータ
22 受信側コンピュータ
24 通信リンク
26、36 プロセッシングユニット
28、38 メモリー
30、40 通信ポート
32、42 データ/アドレスバス
34、44 データバス
45 ファイル転送プログラム
46 ソースファイル
48 リファレンスファイル
50 データブロック
52 キー値
100〜236 フローチャートの手順

Claims (15)

  1. 送信側コンピュータに位置するソースファイルからデータを受信側コンピュータに送信する方法であって、前記コンピュータはコンピュータデータインタフェースを介して接続され、該方法は、
    (a)前記受信側コンピュータに位置するリファレンスファイルを各々がnバイト長を有する複数のデータブロックに分割し、各々のデータブロックに、そのブロックにおけるデータによるキー規定方法によって決定されるリファレンスキー値を関係付けるステップと、
    (b)前記リファレンスキー値を前記送信側コンピュータに送信するステップと、
    (c)前記ソースファイルからのnバイト長のデータのブロックを識別し、前記キー規定方法によってソースキー値を決定し、前記ソースキー値及び前記リファレンスキー値を使用して前記リファレンスファイルからのデータのブロックと前記ソースファイルからのデータのブロックとを比較し、各々のファイルからのデータのブロック間で一致が見つかった場合、この一致の表示を前記受信側コンピュータに送信し、前記一致によって示されたデータのブロックが前記受信側コンピュータに送信される必要がないようにするステップとを含んでおり、さらに、
    データの初期ブロックが前記ソースファイルから同定され、ソースキーが前記初期ブロックから決定され、前記初期ブロックに関する一致が見つけられなかった場合、
    (d)前記初期ブロックの部分集合を前記受信側コンピュータに送信するステップであって、前記部分集合は前記初期ブロックにおける情報のすべてより少ない情報を含む、ステップと、
    (e)前記ソースファイルからのnバイト長のデータのブロックを識別するステップは、前記送信された部分集合を除く前記データの初期ブロックを形成するnバイト長のデータのその後のブロックと、前記ソースファイルからの追加のデータとを識別するステップを含むことを特徴とする方法。
  2. 送信側コンピュータに位置するソースファイルからデータを受信側コンピュータに位置する宛先ファイルに送信する方法であって、前記コンピュータはコンピュータデータインタフェースを介して接続され、該方法は、
    (a)前記ソースファイルを形成するデータのいくつかと同じデータを有するかもしれない前記受信側コンピュータにおけるリファレンスファイルを識別するステップと、
    (b)前記リファレンスファイルを形成するデータをブロック当りnバイトを有する複数のデータブロックに分割し、各々のデータブロックに、キー規定方法によって決定されたリファレンスキー値を関係付けるステップと、
    (c)前記ソースファイルからのデータのnバイトブロックを識別し、前記キー規定方法を使用して、前記識別されたデータのブロックに関係するソースキーに関する現在値を計算するステップと、
    (d)前記ソースキーの現在値を、前記リファレンスキー値の各々と比較し、一致が見つかった場合、(i)このような一致の表示を前記受信側コンピュータに送信し、(ii)ステップ(c)を繰り返すステップと、
    (e)ステップ(d)において一致が見つからなかった場合、前記受信側コンピュータに、前記データのnバイトブロックにおけるすべてのデータより少ないデータを含む部分集合を送信し、前記部分集合を前記データのnバイトブロックから除去し、前記ソースファイルからの追加データを前記データのnバイトブロックに加え、前記キー規定方法を使用して前記ソースキーの現在値を再計算し、ステップ(d)を繰り返すステップとを含むことを特徴とする方法。
  3. 請求項2に記載の方法において、ステップ(c)及び(d)は、前記ソースファイルにおけるデータのすべてが考慮されるまでしか繰り返されないことを特徴とする方法。
  4. 請求項2に記載の方法において、ステップ(e)の前記ソースキーの現在値を再計算するステップは、以前の前記ソースキーの少なくとも一部から前記ソースキーの現在値の少なくとも一部を、前記送信されたサブセットから前記ソースキーの前記一部への寄与を除去し、前記ソースキーの前記一部中に前記追加データからの寄与を統合することによって得るステップを含むことを特徴とする方法。
  5. 請求項1に記載の方法において、前記ソースキー及び前記リファレンスキーは複数のビットを含み、前記ビットのいくつかは合計演算によって決定され、前記ビットのいくつかは論理演算によって決定されることを特徴とする方法。
  6. 請求項5に記載の方法において、前記合計演算は、一定係数を、前記ソースデータのブロックのバイトによって表される値に乗算するステップを含み、前記論理演算は排他的論理和演算を含むことを特徴とする方法。
  7. 請求項1に記載の方法において、前記データのブロックに関する前記キー規定方法は、以下の計算、
    C.sub.1(n)+C.sub.2(n-1)+C.sub.3(n-2)+...+C.sub.n-1(2)+C.sub.n
    を含み、C.sub.nは、前記データブロックのn番目におけるキャラクタであることを特徴とする方法。
  8. 請求項7に記載の方法において、前記キー規定方法は、以下の論理演算、
    C.sub.1 XOR C.sub2 XOR C.sub.3...C.sub.n-1 XOR C.sub.n
    を含むことを特徴とする方法。
  9. 受信側コンピュータにおいて、送信側コンピュータにおけるソースファイルと同じ複製ファイルを形成する方法において、前記複製ファイルは、前記受信側コンピュータに位置するリファレンスファイルにおけるデータから部分的にと、前記送信側コンピュータに位置するリファレンスファイルにおけるデータから部分的に形成され、前記コンピュータはコンピュータデータインタフェースを介して接続され、該方法は、
    (a)前記受信側コンピュータに位置する前記リファレンスファイルを一様な長さの複数のデータブロックに分割し、キー規定方法に従って該ブロックにおけるデータによって決定されるリファレンスキー値と関連付けるステップと、
    (b)前記ソースファイルからの一様な長さのデータのブロックを識別し、前記キー規定方法に従ってソースキー値を決定し、前記ソースキー値と前記リファレンスキー値とを比較し、前記リファレンスファイルからのデータブロックが前記ソースファイルからのデータのブロックと一致するか否かを決定し、各々のファイルからのデータのブロックの間に一致が見つかった場合、その表示を前記受信側コンピュータに送信して、前記リファレンスファイルからのデータのブロックを前記複製ファイル中に複製して、前記一致によって示されるデータのブロックが前記受信側コンピュータに送信される必要がないようにするステップであって、、前記データの以前のソースブロックがデータのリファレンスブロックと一致しない場合、前記ソースファイルからのデータのブロックは順次に識別され、データの各々のブロックは以前のデータのソースブロックからのデータのいくつかを含む、ステップとを含むことを特徴とする方法。
  10. 請求項9に記載の方法において、前記データブロックの一様な長さは少なくとも256バイトであることを特徴とする方法。
  11. 請求項9に記載の方法において、前記キー規定方法は、長さにおいて少なくとも32ビットにおけるキーを規定することを特徴とする方法。
  12. 受信側コンピュータにおいて、送信側コンピュータにおけるソースファイルと同じ複製ファイルを形成する方法において、前記複製ファイルは、前記受信側コンピュータに位置するリファレンスファイルにおけるデータから一部においてと、前記送信側コンピュータに位置するリファレンスファイルにおけるデータから一部において形成され、前記コンピュータは、コンピュータデータインタフェースを介して接続され、該方法は、
    (a)前記受信側コンピュータに位置する前記リファレンスファイルを各々のデータブロックがnバイトの長さを有する複数のデータブロックに分割し、各々のデータブロックに、キー規定方法にしたがって前記ブロックにおけるデータによって決定されるリファレンスキー値を関連付けるステップと、
    (b)前記ソースファイルからのnバイトの長さのデータのブロックを識別し、前記キー規定方法にしたがってソースキー値を決定し、前記ソースキー値及び前記リファレンスキー値を使用して、前記リファレンスファイルからのデータのブロックと前記ソースファイルからのデータのブロックとを比較するステップと、
    (c)各々のファイルからのデータのブロック間に一致が見つかった場合、この一致の表示を前記受信側コンピュータに送信し、前記リファレンスファイルからのデータのブロックを前記複製ファイルに複製し、前記一致によって示されたデータのブロックが前記受信側コンピュータに送信される必要がないようにするステップと、
    (d)一致が見つからない場合、
    (i)前記初期ブロックの部分集合を前記受信側コンピュータに送信し、前記部分集合を前記複製ファイルに加えるステップと、
    (ii)前記送信された部分集合を除く、前記データの初期ブロックを形成するnバイト長のデータの続きのブロックと、前記ソースファイルからの追加のデータとを識別するステップと、
    (iii)前記データの続きのブロックに関するソースキーを決定するステップであって、このソースキーは、前記データの初期ブロックから決定されたソースキーから、前記送信された部分集合からの寄与を除去し、前記追加データからの寄与を含めることによって得られる、ステップとを含むことを特徴とする方法。
  13. 受信ユニットにおけるデータを、前記受信ユニットにおけるデータがソースユニットにおけるデータと同じになるまで変更する方法において、
    (a)前記受信ユニットに格納されたデータのグループに対応する複数のリファレンスキーを決定するステップと、
    (b)前記複数のリファレンスキーを前記ソースユニットに送信するステップと、
    (c)前記ソースユニットにおけるソースデータのグループに対応するソースキーを決定するステップと、
    (d)前記ソースキーを前記複数のリファレンスキーと比較するステップと、
    (e)前記ソースキーが前記リファレンスキーのいずれとも一致しない場合、前記ソースユニットからのデータを前記受信ユニットに送信するステップと、
    (f)前記ソースキーがあるリファレンスキーと一致する場合、前記ソースユニットからの制御信号を前記受信ユニットに送信するステップであって、前記制御信号は、前記受信ユニットに、前記一致したリファレンスキーに対応する前記受信ユニットにおけるデータを使用させる、ステップと、
    (g)前記受信ユニットにおけるデータが前記ソースユニットにおけるデータと同じになるまで、前記ソースユニットにおけるソースデータの追加のグループに関してステップ(c)、(d)、(e)及び(f)を繰り返すステップとを含み、さらに、
    以前のソースキーがあるリファレンスキーと一致しない場合、前記続きのソースキーは、前記ソースデータの以前のグループにおけるデータのすべてではないいくつかを含み、前記ソースデータの以前のグループにおいて含まれないデータも含むソースデータのグループから決定され、前記ソースキーは、前記以前のソースキーを決定するのに使用されたデータの直後に続くソースデータのブロックに対応することを特徴とする方法。
  14. 受信ユニットにおけるデータを、前記受信ユニットにおけるデータがソースユニットにおけるデータと同じになるまで変更する方法において、
    (a)キー規定方法を使用し、前記受信ユニットに格納されたnバイト長のデータグループに対応する複数のリファレンスキーを決定するステップと、
    (b)前記複数のリファレンスキーを前記ソースユニットに送信するステップと、
    (c)前記キー規定方法を使用し、前記ソースユニットにおけるnバイト長のソースデータのグループに対応するソースキーを決定するステップと、
    (d)前記ソースキーを前記複数のリファレンスキーと比較するステップと、
    (e)前記ソースキーが前記リファレンスキーのいずれとも一致しない場合、前記ソースユニットからのデータを前記受信ユニットに送信するステップと、
    (f)前記ソースキーがあるリファレンスキーと一致する場合、制御信号を前記ソースユニットから前記受信ユニットに送信するステップであって、前記制御信号は、前記受信ユニットに、前記一致したリファレンスキーに対応する前記受信ユニットにおけるデータを使用させる、ステップと、
    (g)前記受信ユニットにおけるデータが前記ソースユニットにおけるデータと同じになるまで、前記ソースユニットにおけるソースデータの追加のグループに関してステップ(c)、(d)、(e)及び(f)を繰り返すステップとを含み、
    前記ソースデータのグループは、前記以前のソースキーがあるリファレンスキーと一致しない場合、前記データの第1グループからのn−1バイトとデータの追加のバイトとを具え、前記以前のソースキーがあるリファレンスキーと一致する場合、前記データの以前のソースグループのnバイトとは異なったデータのnバイトを具えることを特徴とする方法。
  15. 受信側コンピュータにおいて、送信側コンピュータにおけるソースファイルと同じ複製ファイルを形成する方法において、前記複製ファイルは、前記受信側コンピュータに位置するリファレンスファイルにおけるデータから部分的にと、前記送信側コンピュータから送信された前記ソースファイルにおけるデータから部分的に形成され、前記コンピュータはコンピュータデータインタフェースを介して接続され、該方法は、
    (a)前記ソースファイルを形成するデータと同じデータを有するかもしれない前記受信側コンピュータにおけるリファレンスファイルを識別するステップと、
    (b)前記リファレンスファイルを形成するデータを、ブロックあたりnバイトを有する複数のデータブロックに分割し、各々のデータブロックを、キー規定方法によって決定されるリファレンスキー値と関係付けるステップと、
    (c)前記リファレンスキー値を前記受信側コンピュータから前記送信側コンピュータに送信するステップと、
    (d)前記ソースファイルからのデータのnバイトブロックを識別し、前記キー規定方法を使用して、前記識別されたデータのブロックに関係付けられたソースキーに関する現在値を計算するステップと、
    (e)前記ソースキーの現在値を前記リファレンスキー値の各々と比較し、一致が見つかった場合、(i)このような一致の表示を前記受信側コンピュータに送信し、前記受信側コンピュータは、前記リファレンスファイルからの一致するデータを前記複製ファイルに加え、(ii)ステップ(d)を繰り返すステップと、
    (f)ステップ(e)において一致が見つからなかった場合、前記複製ファイルに加えるべきデータのnバイトブロックの部分集合を前記受信側コンピュータに送信し、ステップ(d)を繰り返すステップとを含み、さらに
    ステップ(d)において一致が見つからない場合、前記ソースファイルにおけるデータの新たなブロックは、前記送信された部分集合を以前のデータのnバイトブロックから除去し、前記ソースファイルからの追加データを新たなデータのnバイトブロックに加え、前記キー規定方法を使用して前記ソースキーの現在値を再計算し、ステップ(e)を繰り返すことによって規定されることを特徴とする方法。
JP00387895A 1994-01-14 1995-01-13 データ送信方法、データ等化方法及び装置 Expired - Lifetime JP3848983B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/182,969 US5446888A (en) 1994-01-14 1994-01-14 Remote file transfer method and apparatus
US08/182969 1994-01-14

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006016320A Division JP4435096B2 (ja) 1994-01-14 2006-01-25 データ送信方法、データ等化方法及び装置

Publications (2)

Publication Number Publication Date
JPH07295867A JPH07295867A (ja) 1995-11-10
JP3848983B2 true JP3848983B2 (ja) 2006-11-22

Family

ID=22670854

Family Applications (2)

Application Number Title Priority Date Filing Date
JP00387895A Expired - Lifetime JP3848983B2 (ja) 1994-01-14 1995-01-13 データ送信方法、データ等化方法及び装置
JP2006016320A Expired - Lifetime JP4435096B2 (ja) 1994-01-14 2006-01-25 データ送信方法、データ等化方法及び装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2006016320A Expired - Lifetime JP4435096B2 (ja) 1994-01-14 2006-01-25 データ送信方法、データ等化方法及び装置

Country Status (5)

Country Link
US (3) US5446888A (ja)
EP (1) EP0665670B8 (ja)
JP (2) JP3848983B2 (ja)
CA (1) CA2140124C (ja)
DE (1) DE69534292T2 (ja)

Families Citing this family (140)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764918A (en) * 1995-01-23 1998-06-09 Poulter; Vernon C. Communications node for transmitting data files over telephone networks
FI98024C (fi) * 1995-05-11 1997-03-25 Nokia Telecommunications Oy Menetelmä ja laitteisto tiedostopohjaisen multimedia- ja hypermedia-palvelun välittämiseksi liikkuvalle vastaanottajalle
JP3000895B2 (ja) * 1995-06-28 2000-01-17 日本電気株式会社 ダウンロード方法
US5752251A (en) * 1995-08-07 1998-05-12 Ncr Corporation Method and apparatus for recovering aborted file (or data) transmission
US5778395A (en) * 1995-10-23 1998-07-07 Stac, Inc. System for backing up files from disk volumes on multiple nodes of a computer network
US5754774A (en) * 1996-02-15 1998-05-19 International Business Machine Corp. Client/server communication system
US5859971A (en) * 1996-02-15 1999-01-12 International Business Machines Corp. Differencing client/server communication system for use with CGI forms
US6317803B1 (en) 1996-03-29 2001-11-13 Intel Corporation High-throughput interconnect having pipelined and non-pipelined bus transaction modes
US5911051A (en) * 1996-03-29 1999-06-08 Intel Corporation High-throughput interconnect allowing bus transactions based on partial access requests
US6516466B1 (en) 1996-05-02 2003-02-04 Vincent C. Jackson Method and apparatus for portable digital entertainment system
US5978805A (en) * 1996-05-15 1999-11-02 Microcom Systems, Inc. Method and apparatus for synchronizing files
US6308061B1 (en) 1996-08-07 2001-10-23 Telxon Corporation Wireless software upgrades with version control
US5848064A (en) * 1996-08-07 1998-12-08 Telxon Corporation Wireless software upgrades with version control
US6643506B1 (en) * 1996-08-07 2003-11-04 Telxon Corporation Wireless software upgrades with version control
US5819291A (en) * 1996-08-23 1998-10-06 General Electric Company Matching new customer records to existing customer records in a large business database using hash key
US5850565A (en) * 1996-08-26 1998-12-15 Novell, Inc. Data compression method and apparatus
US20060195595A1 (en) 2003-12-19 2006-08-31 Mendez Daniel J System and method for globally and securely accessing unified information in a computer network
US5983268A (en) * 1997-01-14 1999-11-09 Netmind Technologies, Inc. Spreadsheet user-interface for an internet-document change-detection tool
US6963923B1 (en) * 1997-02-10 2005-11-08 International Business Machines Corporation Method for file transfer restarts using standard internet protocol
US6137805A (en) * 1997-02-10 2000-10-24 International Business Machines Corporation Method and apparatus to remotely configure a data processing system
AU6151598A (en) * 1997-02-11 1998-08-26 Connected Corporation File comparison for data backup and file synchronization
US6021413A (en) * 1997-04-01 2000-02-01 The University Of Illinois Board Of Trustees Application-directed variable-granularity caching and consistency management
US6791979B1 (en) 1997-04-10 2004-09-14 Cisco Technology, Inc. Mechanism for conveying data prioritization information among heterogeneous nodes of a computer network
US5991302A (en) * 1997-04-10 1999-11-23 Cisco Technology, Inc. Technique for maintaining prioritization of data transferred among heterogeneous nodes of a computer network
US6115751A (en) * 1997-04-10 2000-09-05 Cisco Technology, Inc. Technique for capturing information needed to implement transmission priority routing among heterogeneous nodes of a computer network
AU8047998A (en) * 1997-06-06 1998-12-21 Telefonaktiebolaget Lm Ericsson (Publ) Delta file software loading in cellular telecommunications systems
US6070184A (en) * 1997-08-28 2000-05-30 International Business Machines Corporation Server-side asynchronous form management
US6035324A (en) * 1997-08-28 2000-03-07 International Business Machines Corporation Client-side asynchronous form management
US6442688B1 (en) * 1997-08-29 2002-08-27 Entrust Technologies Limited Method and apparatus for obtaining status of public key certificate updates
US6029170A (en) * 1997-11-25 2000-02-22 International Business Machines Corporation Hybrid tree array data structure and method
US6018747A (en) * 1997-11-26 2000-01-25 International Business Machines Corporation Method for generating and reconstructing in-place delta files
US6065062A (en) * 1997-12-10 2000-05-16 Cisco Systems, Inc. Backup peer pool for a routed computer network
US6233696B1 (en) * 1997-12-31 2001-05-15 Emc Corporation Data verification and repair in redundant storage systems
US6438585B2 (en) 1998-05-29 2002-08-20 Research In Motion Limited System and method for redirecting message attachments between a host system and a mobile data communication device
US7209949B2 (en) 1998-05-29 2007-04-24 Research In Motion Limited System and method for synchronizing information between a host system and a mobile data communication device
US6154743A (en) * 1998-06-16 2000-11-28 Cisco Technology, Inc. Technique for accessing heterogeneous directory services in an APPN environment
US6604236B1 (en) 1998-06-30 2003-08-05 Iora, Ltd. System and method for generating file updates for files stored on read-only media
US6192412B1 (en) * 1998-07-28 2001-02-20 Lucent Technologies, Inc. Computer file transmission system and method
GB2341249A (en) 1998-08-17 2000-03-08 Connected Place Limited A method of generating a difference file defining differences between an updated file and a base file
GB2341462B (en) * 1998-09-12 2003-06-11 Ibm Method for deployment of incremental versions of applications
US6411966B1 (en) * 1998-09-21 2002-06-25 Microsoft Corporation Method and computer readable medium for DNS dynamic update to minimize client-server and incremental zone transfer traffic
US6247024B1 (en) 1998-09-25 2001-06-12 International Business Machines Corporation Method and system for performing deferred file removal in a file system
US6145012A (en) * 1998-10-14 2000-11-07 Veritas Software Corporation Apparatus and method for efficiently updating files in computer networks
SE521456C2 (sv) * 1998-12-15 2003-11-04 Ericsson Telefon Ab L M Förfarande och anordning vid ett distribuerat system
US6263363B1 (en) 1999-01-28 2001-07-17 Skydesk, Inc. System and method for creating an internet-accessible working replica of a home computer on a host server controllable by a user operating a remote access client computer
AU763524B2 (en) * 1999-03-02 2003-07-24 Flexera Software Llc Data file synchronisation
US6331855B1 (en) 1999-04-28 2001-12-18 Expertcity.Com, Inc. Method and apparatus for providing remote access, control of remote systems and updating of display information
US6584499B1 (en) 1999-07-09 2003-06-24 Lsi Logic Corporation Methods and apparatus for performing mass operations on a plurality of managed devices on a network
US6480955B1 (en) 1999-07-09 2002-11-12 Lsi Logic Corporation Methods and apparatus for committing configuration changes to managed devices prior to completion of the configuration change
US7640325B1 (en) * 1999-07-09 2009-12-29 Lsi Corporation Methods and apparatus for issuing updates to multiple management entities
US6769022B1 (en) 1999-07-09 2004-07-27 Lsi Logic Corporation Methods and apparatus for managing heterogeneous storage devices
US6480901B1 (en) 1999-07-09 2002-11-12 Lsi Logic Corporation System for monitoring and managing devices on a network from a management station via a proxy server that provides protocol converter
US7028251B2 (en) * 2000-03-02 2006-04-11 Iora, Ltd. System and method for reducing the size of data difference representations
US6615225B1 (en) 2000-04-27 2003-09-02 International Business Machines Corporation System and method for relating files in a distributed data storage environment
US6671703B2 (en) 2000-06-22 2003-12-30 Synchrologic, Inc. System and method for file transmission using file differentiation
US6941353B1 (en) * 2000-06-29 2005-09-06 Auran Holdings Pty Ltd E-commerce system and method relating to program objects
CA2320665C (en) * 2000-09-26 2010-08-17 Spielo Manufacturing Incorporated System and method for downloading electronic information to a video lottery terminal
JP4586281B2 (ja) * 2001-03-13 2010-11-24 コニカミノルタビジネステクノロジーズ株式会社 データ送信管理装置、データ送信管理方法、データ送信管理プログラムおよびデータ送信管理プログラムを記録したコンピュータ読み取り可能な記録媒体
AU2002303126A1 (en) * 2001-03-16 2002-10-03 Novell, Inc. Client-server model for synchronization of files
US20030033303A1 (en) * 2001-08-07 2003-02-13 Brian Collins System and method for restricting access to secured data
US20040205587A1 (en) * 2001-08-07 2004-10-14 Draper Stephen P.W. System and method for enumerating arbitrary hyperlinked structures in which links may be dynamically calculable
US7213025B2 (en) * 2001-10-16 2007-05-01 Ncr Corporation Partitioned database system
US6845375B1 (en) 2001-10-20 2005-01-18 Ncr Corporation Multi-level partitioned database system
US7080072B1 (en) 2001-11-14 2006-07-18 Ncr Corp. Row hash match scan in a partitioned database system
EP1506509A4 (en) * 2002-05-17 2007-12-05 Synchrologic SYSTEM AND METHOD FOR ROUTE DATA ANALYSIS
US9813514B2 (en) 2002-06-12 2017-11-07 Good Technology Holdings Limited Information repository system including a wireless device and related method
US7281017B2 (en) * 2002-06-21 2007-10-09 Sumisho Computer Systems Corporation Views for software atomization
US8230026B2 (en) 2002-06-26 2012-07-24 Research In Motion Limited System and method for pushing information between a host system and a mobile data communication device
JP4302970B2 (ja) 2002-12-16 2009-07-29 富士通株式会社 差分更新方法、プログラム及び装置
US7149508B2 (en) * 2003-02-05 2006-12-12 Samsung Electronics Co., Ltd. System and method for delta-based over-the-air software upgrades for a wireless mobile station
DE60319965T2 (de) * 2003-06-12 2009-04-30 Research In Motion Ltd., Waterloo Mehrelement-Antenne mit parasitärem Antennenelement
US7676506B2 (en) * 2003-06-20 2010-03-09 Innopath Software, Inc. Differential file compression of software image versions
US7363378B2 (en) 2003-07-01 2008-04-22 Microsoft Corporation Transport system for instant messaging
US7539727B2 (en) 2003-07-01 2009-05-26 Microsoft Corporation Instant messaging object store
US7509635B2 (en) * 2003-09-26 2009-03-24 Red Hat, Inc. Software and data file updating process
US7472254B2 (en) * 2003-10-10 2008-12-30 Iora, Ltd. Systems and methods for modifying a set of data objects
US8527541B2 (en) * 2003-11-05 2013-09-03 Emc Corporation Method for mapping a flat namespace onto a hierarchical namespace using locality of reference cues
US7949682B2 (en) * 2003-11-05 2011-05-24 Novell, Inc. Method for providing a flat view of a hierarchical namespace without requiring unique leaf names
US7203708B2 (en) * 2003-11-06 2007-04-10 Microsoft Corporation Optimizing file replication using binary comparisons
US7133963B2 (en) * 2003-12-03 2006-11-07 International Business Machines Corporation Content addressable data storage and compression for semi-persistent computer memory
US7117203B2 (en) * 2003-12-03 2006-10-03 International Business Machines Corporation Content addressable data storage and compression for semi-persistent computer memory for a database management system
US7114027B2 (en) * 2003-12-03 2006-09-26 International Business Machines Corporation Content addressable data storage and compression for computer memory
US7117204B2 (en) * 2003-12-03 2006-10-03 International Business Machines Corporation Transparent content addressable data storage and compression for a file system
US8171084B2 (en) 2004-01-20 2012-05-01 Microsoft Corporation Custom emoticons
US20050171977A1 (en) * 2004-02-02 2005-08-04 Osborne James W. Methods, systems and products for data preservation
JP4539115B2 (ja) * 2004-02-25 2010-09-08 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
CN103067353B (zh) * 2004-03-02 2016-07-20 代维网络有限公司 将来自远程发送者的数据流传递到远程目的地的方法
US7555531B2 (en) * 2004-04-15 2009-06-30 Microsoft Corporation Efficient algorithm and protocol for remote differential compression
US20060047855A1 (en) * 2004-05-13 2006-03-02 Microsoft Corporation Efficient chunking algorithm
JP4568532B2 (ja) * 2004-05-13 2010-10-27 日本無線株式会社 無線装置制御システム、無線装置および制御装置
US20050256974A1 (en) * 2004-05-13 2005-11-17 Microsoft Corporation Efficient algorithm and protocol for remote differential compression on a remote device
US20050262167A1 (en) * 2004-05-13 2005-11-24 Microsoft Corporation Efficient algorithm and protocol for remote differential compression on a local device
US8495023B1 (en) * 2004-09-01 2013-07-23 Symantec Operating Corporation Delta catalogs in a backup system
US7523098B2 (en) 2004-09-15 2009-04-21 International Business Machines Corporation Systems and methods for efficient data searching, storage and reduction
US8725705B2 (en) * 2004-09-15 2014-05-13 International Business Machines Corporation Systems and methods for searching of storage data with reduced bandwidth requirements
US7613787B2 (en) * 2004-09-24 2009-11-03 Microsoft Corporation Efficient algorithm for finding candidate objects for remote differential compression
US7849462B2 (en) * 2005-01-07 2010-12-07 Microsoft Corporation Image server
US8073926B2 (en) * 2005-01-07 2011-12-06 Microsoft Corporation Virtual machine image server
US20070094348A1 (en) * 2005-01-07 2007-04-26 Microsoft Corporation BITS/RDC integration and BITS enhancements
US20060195532A1 (en) * 2005-02-28 2006-08-31 Microsoft Corporation Client-side presence documentation
US7529255B2 (en) 2005-04-21 2009-05-05 Microsoft Corporation Peer-to-peer multicasting using multiple transport protocols
US7447854B1 (en) 2005-12-30 2008-11-04 Vmware, Inc. Tracking and replicating changes to a virtual disk
US7734603B1 (en) * 2006-01-26 2010-06-08 Netapp, Inc. Content addressable storage array element
JP2007201861A (ja) * 2006-01-27 2007-08-09 Eastman Kodak Co ファイル管理方法
US7421542B2 (en) * 2006-01-31 2008-09-02 Cisco Technology, Inc. Technique for data cache synchronization
US7620392B1 (en) 2006-02-27 2009-11-17 Good Technology, Inc. Method and system for distributing and updating software in wireless devices
CN100501675C (zh) * 2006-04-14 2009-06-17 北京瑞星国际软件有限公司 一种用于软件升级的方法及装置
JP5061741B2 (ja) * 2007-06-13 2012-10-31 日本電気株式会社 情報処理装置及びそれに用いる順序付きデータ管理方法並びにそのプログラム
JP2009122947A (ja) * 2007-11-14 2009-06-04 Canon Inc 画面共有システム及びデータ転送方法
US8683458B2 (en) * 2007-11-30 2014-03-25 Red Hat, Inc. Automatic full install upgrade of a network appliance
US8589592B2 (en) * 2007-12-11 2013-11-19 Red Hat, Inc. Efficient object distribution
US8418164B2 (en) * 2008-05-29 2013-04-09 Red Hat, Inc. Image install of a network appliance
WO2010070727A1 (ja) * 2008-12-16 2010-06-24 富士通株式会社 仮想テープ装置、仮想テープデータ複写プログラム及び方法
CN101848188A (zh) * 2009-03-25 2010-09-29 上海聚力传媒技术有限公司 对数据块校验信息进行更新的方法和装置
JP4592115B1 (ja) * 2009-05-29 2010-12-01 誠 後藤 ファイル格納システム、サーバ装置及びプログラム
US8633838B2 (en) * 2010-01-15 2014-01-21 Neverfail Group Limited Method and apparatus for compression and network transport of data in support of continuous availability of applications
US8713646B2 (en) 2011-12-09 2014-04-29 Erich Stuntebeck Controlling access to resources on a network
US9680763B2 (en) 2012-02-14 2017-06-13 Airwatch, Llc Controlling distribution of resources in a network
US10404615B2 (en) 2012-02-14 2019-09-03 Airwatch, Llc Controlling distribution of resources on a network
WO2014081727A1 (en) 2012-11-20 2014-05-30 Denninghoff Karl L Search and navigation to specific document content
US8832785B2 (en) 2012-12-06 2014-09-09 Airwatch, Llc Systems and methods for controlling email access
US8862868B2 (en) 2012-12-06 2014-10-14 Airwatch, Llc Systems and methods for controlling email access
US8826432B2 (en) 2012-12-06 2014-09-02 Airwatch, Llc Systems and methods for controlling email access
US8978110B2 (en) 2012-12-06 2015-03-10 Airwatch Llc Systems and methods for controlling email access
US9021037B2 (en) 2012-12-06 2015-04-28 Airwatch Llc Systems and methods for controlling email access
US20140280955A1 (en) 2013-03-14 2014-09-18 Sky Socket, Llc Controlling Electronically Communicated Resources
US8997187B2 (en) 2013-03-15 2015-03-31 Airwatch Llc Delegating authorization to applications on a client device in a networked environment
US9787686B2 (en) 2013-04-12 2017-10-10 Airwatch Llc On-demand security policy activation
US9584437B2 (en) 2013-06-02 2017-02-28 Airwatch Llc Resource watermarking and management
US9900261B2 (en) 2013-06-02 2018-02-20 Airwatch Llc Shared resource watermarking and management
US8775815B2 (en) 2013-07-03 2014-07-08 Sky Socket, Llc Enterprise-specific functionality watermarking and management
US8756426B2 (en) 2013-07-03 2014-06-17 Sky Socket, Llc Functionality watermarking and management
US8806217B2 (en) 2013-07-03 2014-08-12 Sky Socket, Llc Functionality watermarking and management
US9665723B2 (en) 2013-08-15 2017-05-30 Airwatch, Llc Watermarking detection and management
US9516005B2 (en) 2013-08-20 2016-12-06 Airwatch Llc Individual-specific content management
US9405479B1 (en) 2013-08-26 2016-08-02 Western Digital Technologies, Inc. Faster file compression using sliding compression window and backward compound pointers
US9258301B2 (en) 2013-10-29 2016-02-09 Airwatch Llc Advanced authentication techniques
US9544306B2 (en) 2013-10-29 2017-01-10 Airwatch Llc Attempted security breach remediation
US10303666B2 (en) 2015-03-09 2019-05-28 International Business Machines Corporation File transfer system using file backup times
EP4239494A1 (en) 2022-03-04 2023-09-06 Karl Denninghoff Transitory salient attention capture to draw attention to digital document parts

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3311893A (en) * 1963-08-29 1967-03-28 Sperry Rand Corp Memory organization wherein only new data bits which are different from the old are recorded
US3612660A (en) * 1969-09-08 1971-10-12 Wendell S Miller Digital data compaction
US4232375A (en) * 1978-06-12 1980-11-04 Ncr Corporation Data compression system and apparatus
US4412306A (en) * 1981-05-14 1983-10-25 Moll Edward W System for minimizing space requirements for storage and transmission of digital signals
DE3265993D1 (en) 1981-06-30 1985-10-10 Ibm Electric circuit connecting devices
US4641274A (en) * 1982-12-03 1987-02-03 International Business Machines Corporation Method for communicating changes made to text form a text processor to a remote host
US5086434A (en) * 1985-09-30 1992-02-04 Canon Kabushiki Kaisha Data communication process and apparatus for data transmission in blocks which may include mixed data types
US4807182A (en) * 1986-03-12 1989-02-21 Advanced Software, Inc. Apparatus and method for comparing data groups
US4914583A (en) * 1988-04-13 1990-04-03 Motorola, Inc. Method of indicating processes resident within a cell of a data processing system
US5101348A (en) * 1988-06-23 1992-03-31 International Business Machines Corporation Method of reducing the amount of information included in topology database update messages in a data communications network
US4891785A (en) * 1988-07-08 1990-01-02 Donohoo Theodore J Method for transferring data files between computers in a network response to generalized application program instructions
US5155847A (en) * 1988-08-03 1992-10-13 Minicom Data Corporation Method and apparatus for updating software at remote locations
US5210865A (en) * 1989-06-30 1993-05-11 Digital Equipment Corporation Transferring data between storage media while maintaining host processor access for I/O operations
US5086402A (en) * 1989-07-10 1992-02-04 Simware, Inc. Method for high speed data transfer
JPH03504175A (ja) * 1989-08-03 1991-09-12 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン データ処理ネツトワーク
US5479654A (en) * 1990-04-26 1995-12-26 Squibb Data Systems, Inc. Apparatus and method for reconstructing a file from a difference signature and an original file
EP0541281B1 (en) * 1991-11-04 1998-04-29 Commvault Systems, Inc. Incremental-computer-file backup using signatures
WO1993019420A1 (en) * 1992-03-17 1993-09-30 Nomadic Systems, Inc. Remote file access system
US5283646A (en) * 1992-04-09 1994-02-01 Picturetel Corporation Quantizer control method and apparatus
US6076084A (en) 1994-01-03 2000-06-13 Norton-Lambert Corp. File transfer method and apparatus utilizing delimiters
DE19729657A1 (de) 1997-07-11 1999-01-14 Asea Brown Boveri Scherenangetriebener Roboterarm und Portalroboter

Also Published As

Publication number Publication date
CA2140124C (en) 2005-04-05
JPH07295867A (ja) 1995-11-10
US5721907A (en) 1998-02-24
JP2006127552A (ja) 2006-05-18
JP4435096B2 (ja) 2010-03-17
DE69534292D1 (de) 2005-08-04
EP0665670A3 (en) 1996-03-27
CA2140124A1 (en) 1995-07-15
US5446888A (en) 1995-08-29
EP0665670B1 (en) 2005-06-29
EP0665670B8 (en) 2005-08-24
DE69534292T2 (de) 2006-05-24
EP0665670A2 (en) 1995-08-02
USRE39458E1 (en) 2007-01-02

Similar Documents

Publication Publication Date Title
JP3848983B2 (ja) データ送信方法、データ等化方法及び装置
US4641274A (en) Method for communicating changes made to text form a text processor to a remote host
US5442350A (en) Method and means providing static dictionary structures for compressing character data and expanding compressed data
US5663721A (en) Method and apparatus using code values and length fields for compressing computer data
EP0117281B1 (en) Updating data processing files
JPH0720152B2 (ja) データ転送方法
KR950012220A (ko) 다중 페이지 크기를 지원하는 가상메모리 컴퓨터 시스템의 주소변환기구
US6247015B1 (en) Method and system for compressing files utilizing a dictionary array
JP3520709B2 (ja) ネットワークアドレス検索方式
US5996113A (en) Method and apparatus for generating digital checksum signatures for alteration detection and version confirmation
US20030016820A1 (en) System and method for data encryption
US8954400B2 (en) Method, system and program product for managing structured data
EP0739514A1 (en) File transfer method and apparatus using hash numbers
JP2017513252A (ja) 最適化されたデータ凝縮器及び方法
JP4056199B2 (ja) マルチバイト・キャラクタ・コード化体系内で使用される単一バイト・キャラクタ処理の最適化の方法、システム、およびコンピュータ・プログラム製品
US5406280A (en) Data retrieval system using compression scheme especially for serial data stream
US6118391A (en) Compression into arbitrary character sets
JP3097294B2 (ja) コード変換装置
JP3038233B2 (ja) データ圧縮及び復元装置
JP2952067B2 (ja) データ圧縮方式
JP3008635B2 (ja) データ通信装置
JPS582938A (ja) インデックスの作成方式
Ong Text compression for transmission and storage
JPH036924A (ja) 端末装置
JPH09114720A (ja) クライアント・サ−バシステムにおけるファイル名称変換方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041116

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050216

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050516

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051228

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060522

TRDD Decision of grant or rejection written
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20060609

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060609

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060628

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090908

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090908

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100908

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100908

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110908

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120908

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130908

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term