JP2002507016A - System and method for backing up computer files in a wide area computer network - Google Patents

System and method for backing up computer files in a wide area computer network

Info

Publication number
JP2002507016A
JP2002507016A JP2000535980A JP2000535980A JP2002507016A JP 2002507016 A JP2002507016 A JP 2002507016A JP 2000535980 A JP2000535980 A JP 2000535980A JP 2000535980 A JP2000535980 A JP 2000535980A JP 2002507016 A JP2002507016 A JP 2002507016A
Authority
JP
Japan
Prior art keywords
block
computer
network
digital signature
data
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.)
Pending
Application number
JP2000535980A
Other languages
Japanese (ja)
Other versions
JP2002507016A5 (en
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
Priority claimed from US09/041,149 external-priority patent/US6049874A/en
Priority claimed from US09/100,914 external-priority patent/US6038665A/en
Application filed by スカイデスク インコーポレイテッド filed Critical スカイデスク インコーポレイテッド
Publication of JP2002507016A publication Critical patent/JP2002507016A/en
Publication of JP2002507016A5 publication Critical patent/JP2002507016A5/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

(57)【要約】 ラップトップコンピュータのバックアップロジックシステム(300)は、ラップトップコンピュータの使用中にバックアップを取るために、ユーザが選択したファイルまたは自動的に選択されたファイルをコピーする。変更されたファイルは、バックアップされ、ラップトップコンピュータ(24)のホールド領域内に記憶される。ラップトップコンピュータ(24)がネットワークに接続され、非動作状態にあることを検知すると、変更されたファイルのブロックがホールド領域からネットワーク(14)を介して離れた装置に送信される。ラップトップコンピュータ(24)のスクリーンセーバが呼び出されたとき、ラップトップコンピュータ(24)において、バックアッププロセスを起動させることができる。 (57) Summary The laptop computer backup logic system (300) copies files selected by the user or automatically selected files for backup during use of the laptop computer. The changed files are backed up and stored in the hold area of the laptop computer (24). When the laptop computer (24) is connected to the network and detects that it is inactive, a block of the changed file is transmitted from the hold area to a device remote via the network (14). When the screen saver of the laptop computer (24) is invoked, a backup process can be activated on the laptop computer (24).

Description

【発明の詳細な説明】 【0001】 (関連出願) 本出願は、1998年6月19日付けで出願された米国特許出願第09/10
0,914号の一部継続米国特許出願である。さらに、この米国特許出願第09
/100,914号は、1998年3月12日付けで出願された米国特許出願第
09/041,149号の一部継続米国特許出願である。この米国特許出願第0
9/041,149号は、1996年12月3日付けで出願された米国特許出願
第08/757,134号の一部継続米国特許出願であって、現在、米国特許第
5,794,254号となっており、優先権がこのときから主張される。 【0002】 (発明の分野) 本発明は、一般に、コンピュータファイルのバックアップシステムに関し、と
りわけ自動化されたコンピュータファイルのバックアップシステムに関する。 【0003】 (発明の背景) 膨大な量の情報が、パーソナルコンピュータのハードディスク駆動機構やその
他の広く知られたデータ記憶媒体などの電子媒体上に記憶されている。このよう
な情報は、近年ますます、もっぱら、こうした媒体に記憶され、大量の情報のた
めに、「ハード的な」(つまり、紙の)コピーは存在しなくなった。情報を紙面
上に記憶する必要のあるシステムとは対称的に、いわゆる「ペーパーレス」情報
記憶システムによれば、必要なスペースを小さくでき、さらに自然資源を消費す
ることはない。ただし残念ながら、電子データ記憶媒体が「破壊」する、つまり
、情報を損傷したり、消失してしまうことは珍しくない。こうした情報の消失は
、情報所有者にとって壊滅的であり、費用が高くつく。 【0004】 したがって、多くのコンピュータシステム管理者は、コンピュータファイルの
コピーを定期的にバックアップする。通常、1日1度(あるいは、その他の特定
の周期で)、システム管理者は、コンピュータシステムを操作して、システムの
ハードディスク駆動機構に存在するファイルを、その他のハードディスク駆動機
構や磁気テープなどの記憶媒体上にコピーする。たとえ、システム内の1つのフ
ァイルまたはハードディスク駆動機構全体が損傷を受けて、アクセスできなくな
った場合でも、例えば、記憶テープ上に記憶されたファイルをシステム内に再度
コピーし直すことができる。 【0005】 こうしたバックアップシステムは、いくつかの問題を有する。まず、こうした
バックアップシステムによれば、バックアップ処理を開始し、単調で退屈な作業
に従事する担当者の時間を割くといった、ユーザの相互操作を必要とする。さら
に、コンピュータファイルをバックアップし、バックアップする際、同じ場所で
ファイルを記憶するシステムは、火事や洪水などの大災害が起こったとき、あま
り価値がない。なぜなら、バックアップされたファイルコピーは、システム内に
存在するファイルとともに消滅して、バックアップシステムが破壊すると考えら
れるためである。 【0006】 択一的なバックアップシステムの一例が、米国特許第5,479,654号で
開示され、離れた電子記憶装置にモデムを介して、コンピュータファイルの変更
された部分を送信することが教示されている。’654特許で開示されているよ
うに、前回のバックアップ以降になされた変更に対して、コンピュータファイル
のセグメント(segment)がチェックされる。このチェックは、第1に、ファイ ルのいわゆる「排他的論理和(XOR)」の結果と、ファイルの記憶されたバッ
クアップバージョンのために過去に求められていたXOR値を比較することを含
む。2つのXOR値が合致しなければ、ファイルが変更されたことを意味し、フ
ァイルの変更された部分が、モデム、LAN、WAN、またはその他のネットワ
ークデバイスを介して離れた場所に送信される。 【0007】 他方、2つのXOR値が合致すれば、第2に、より領域的なチェックを行って
、セグメントが最近過去のバックアップ時から変更されたかどうかを検知する。
第2のチェックでは、セグメントの巡回冗長検査(CRC)と前回の記憶された
CRC値に対して比較する。2つのCRC値が合致しなければ、ファイルが変更
されたことを意味し、ファイルの変更された部分が、モデム、LAN、WAN、
またはその他のネットワークデバイスを介して離れた場所に送信される。そうで
なければ、セグメントは、最近過去のバックアップ時から変更されなかったもの
と仮定される。 【0008】 残念ながら、’654特許で開示されたシステムは、1回のチェックに2回の
計算を必要とする。各計算には計算時間を要し、本発明により認識されるように
、結果的には、コンピュータファイルに変更があったかどうかを決定するために
要する計算回数を最低限に抑えることが好ましい。さらに、ここで認識されるよ
うに、最初の「迅速かつ不正」なチェックを行って、計算上必要な領域チェック
の回数を低減することができる。 【0009】 さらに、本発明で認識されたように、離れた記憶装置へのデータ通信を管理し
て、あるユーザが別のユーザの操作を干渉しないようにする必要がある。さらに
、本発明によれば、いくつかのファイルは、最初の段階では、まったくバックア
ップする必要がないことが認識されている。本発明によれば、1つ以上の方法で
復元ファイルを形成して、消失したファイルをコンピュータシステムに復元する
ために必要な時間を低減することができる。 【0010】 上述の考察に加えて、本発明は、所定の間隔でデータをバックアップすると、
バックアップデータをこの間隔において形成し、消失する恐れがあることを認識
している。幸いにも、本発明によれば、ユーザが能動的にコンピュータを使用し
ているときに、広域ネットワークを介したデータバックアップを行うことができ
るので、リアルタイムで、かつ、ほとんど最新のデータバックアップを提供する
ことができる。 【0011】 さらに、データが広域ネットワークを介して通信される場合、安全性の理由か
らデータをまず暗号化することが好ましい。本発明によれば、ユーザが用いる暗
号化データの単一キーが長いほど、キーが破られる危険が増大することが認識さ
れている。この理由のため、データを暗号化するために、2つ以上のキーを用い
ることが好ましい。長期間に亙ってバックアップするという文脈において、所定
の時間間隔において2つ以上のキーを用いることは、多少困難であることを本発
明は認識している。というのも、続いて行われる暗号解読中に、正確な暗号化キ
ーを、本来の暗号化されたブロックに関連付けることが困難であるからである。
ただし、ここで認識されるように、2個以上の暗号化キーを利用しやすくして、
暗号化システムのリスクを低減することができる。本発明は、加えて、各通信セ
ッションに対するセッション固有キーを用いることが好適で、しかも可能であり
、この固有キーは、通信されるデータの各ビットが論理的に知られていない場合
には、破られることはない。 【0012】 本発明は、多くの人々が、職場に、職場から、または旅行中に携帯するラップ
トップコンピュータまたはその他の携帯可能なコンピュータの利用が増大する点
を視野に入れている。ラップトップコンピュータのユーザは、しばしば、ラップ
トップコンピュータをコンピュータネットワークに接続しようとする。ネットワ
ークシステムは、例えば、単一のプリンタを有する、単純な家庭用のネットワー
クであったり、職場におけるローカルエリアネットワーク(LAN)であったり
、プリンタ、サーバネットワークなどの数多くのデバイスが接続された広域ネッ
トワーク(WAN)であったりする。いずれの場合においても、ラップトップコ
ンピュータのユーザは、ネットワークに接続する毎に、コンピュータを再構成す
る必要があることが、本発明により認識されている。例えば、特定のプリンタ、
またはラップトップコンピュータがたまたま接続される、ネットワーク上の特定
のサーバと通信するように、コンピュータを再構成する。携帯可能コンピュータ
のユーザに対して、ネットワークに接続する毎にコンピュータを再構成すること
を要請するのは、じれったくも時間の要することであり、こうした再構成は、実
行するためにユーザの介在を必要としないものであることを、本発明は認識して
いる。 【0013】 ラップトップコンピュータに関して、さらに、ラップトップコンピュータは、
通常、継続的に、あるいは実際に任意の規則的間隔でネットワークと接続されて
いるわけではなく、ユーザのスケジュールが許す特定の条件のもとで、ネットワ
ーク接続される。したがって、インターネットに対して、ラップトップコンピュ
ータを事前に予定してバックアップを取ることは、最適な解決方法ではないこと
を、本発明は認識している。むしろ、ここで理解されるように、ラップトップコ
ンピュータが、時折、インターネットに接続されることを想定した十分に頑健な
手法で、ラップトップコンピュータ上でバックアップされたコンピュータファイ
ルを送信する必要がある。本発明の目的は、上記問題の1つまたはそれ以上に対
処することにある。 【0014】 (発明の要約) コンピュータプログラム製造物は、例えば、携帯可能なラップトップコンピュ
ータなどのデジタル処理システムにより読み出し可能なコンピュータプログラム
記憶デバイスを有する。コンピュータプログラム記憶デバイス上には、ロジック
手段があって、このロジック手段は、コンピュータネットワークに接続可能な携
帯可能コンピュータから、少なくとも1つのローカルコンピュータファイル内に
ある少なくともいくつかのブロックを、バックアップする方法ステップを実行す
るためのデジタル処理システムにより実行可能な指令を有する。このコンピュー
タプログラム製造物により実行される方法ステップは、少なくとも1つのスクリ
ーンセーバ信号を受信するステップと、スクリーンセーバ信号に呼応して、バッ
クアップすべきブロックを準備するステップ、およびネットワークを介してブロ
ックを送信するステップのうち、少なくとも一方のステップを実行するステップ
を有する。好適な実施形態においては、この方法ステップは、同様に、所定のデ
ータ量がバックアップされた場合、および未保護データ量が所定の閾値を超える
場合の一方または両方の条件が存在するとき、ユーザに警告を与えるステップを
有する。 【0015】 別の態様においては、コンピュータプログラム製造物は、携帯可能コンピュー
タ内にあるコンピュータファイルの少なくともブロックを決定するロジックを有
する。また、このプログラム製造物は、携帯可能コンピュータ内にあるファイル
システムにアクセスして、バックアップすべきブロックにアクセスするロジック
手段を有する。さらに、ロジック手段は、バックアップすべきブロックを決定す
る手段に呼応して、携帯可能コンピュータのホールド領域にブロックをコピーす
る。さらに、携帯可能コンピュータがコンピュータネットワークに接続された時
点を判断するためのロジックが設けられている。以下詳述するように、このロジ
ックは、ネットワークのデータ経路が非動作状態にある時点を判断する。データ
経路が非動作状態にある時、ホールド領域にあるブロックを、ネットワークを介
して、離れたデータ記憶デバイスに送信する。 【0016】 好適なロジックは、携帯可能コンピュータ内にあるコンピュータファイルのブ
ロックをバックアップすべきと判断した場合、ネットワークインターフェイスを
呼び出す。ファイル変更信号を受信すると、ブロックをホールド領域にバックア
ップすることができる。また、データ準備完了信号を受信すると、ブロックをホ
ールド領域からネットワークへ送信する。このコンピュータプログラム製造物は
、携帯可能コンピュータおよびネットワークと協働して開示される。 【0017】 別の態様において、コンピュータプログラム製造物は、デジタル処理システム
により読み出し可能なコンピュータプログラム記憶デバイスと、プログラム手段
をプログラム記憶デバイス上に有する。本発明が意図するように、このプログラ
ムデバイスは、極めて重要な機械部品の内部に実現され、これにより、デジタル
処理システムは、コンピュータネットワークに接続可能な少なくとも1つの携帯
可能コンピュータから、少なくとも1つのローカルコンピュータファイル内にあ
る1つまたはそれ以上のブロックを、バックアップするための方法ステップを実
行する。このコンピュータプログラム製造物により実行される方法ステップは、
バックアップすべきブロックを準備するステップと、携帯可能コンピュータがネ
ットワークに接続されたかどうかを判断するステップを有する。携帯可能コンピ
ュータがネットワークに接続されている場合、1つまたはそれ以上のブロックの
送信を可能にする。本発明によれば、このブロックは、送信すべき他のデータに
インターリーブされる。 【0018】 上述のこれまでの用途において、バックアップすべきローカルファイル内にあ
る少なくともいくつかのブロックに対して、各々、第1の比較値を定義する2文
字がコピーされ、第2の比較値を定義するデジタル署名コードが形成される。少
なくともいくつかのブロックに対して、テストデジタル署名コードが周期的に決
定され、これと第2の比較値のそれぞれとを比較される。ブロックのテストデジ
タル署名コードが、すべての第2の比較値と等しくならない場合、ブロックの最
初の2文字が第1の比較値のうちの1つと等しいかどうかが判断される。反対に
、最初の2文字が第1の比較値のうちの1つと等しい場合、テストブロックの第
1バイトとしてi番目のテストバイトを用いて、ブロックのデジタル署名コード
が決定される。その後、ブロックのデジタル署名コードが、第2の比較値のうち
の1つと等しいかどうかが判断され、ブロックのデジタル署名コードが、第2の
比較値のうちの1つと等しい場合、「再同期」を応答する。さもなければ、i番
目のテストバイトの最初の2文字が、第1の比較値のうちの1つと等しくない場
合、またはブロックのデジタル署名コードが第2の比較値のうちの1つと等しく
ない場合、iを単位元(1)だけ繰り上げる。このコンピュータプログラム製造
物は、携帯可能コンピュータと協働して開示される。 【0019】 必要ならば、このコンピュータプログラム製造物は、好適には、ネットワーク
に接続される1つまたはそれ以上のデバイスの存在と種類に基づいてネットワー
ク構成を決定し、その後、少なくとも1つの携帯可能コンピュータの設定と相関
か関係を有することができる。相関ステップに呼応して、コンピュータ上の設定
を確立することができる。 【0020】 さらに別の形態において、携帯可能コンピュータ内にある1つまたはそれ以上
のファイルのつまたはそれ以上のブロックをバックアップし、ブロックをネット
ワークを介して離れたコンピュータ記憶位置に送信するための携帯可能コンピュ
ータのバックアップシステムは、携帯可能コンピュータがネットワークに接続さ
れている時点を決定するロジック手段を有する。さらに、このシステムは、ネッ
トワークの可用性が少なくとも所定の可用性と等しいかどうかを判断するロジッ
ク手段を有する。さらに、ロジック手段は、1つまたはそれ以上の送信基準を満
足する場合に、バックアップすべきブロックをネットワークに対して送信する。
この送信基準は、携帯可能コンピュータがネットワークに接続されていることで
あってもよい。 【0021】 さらに別の実施形態において、コンピュータファイルブロックをバックアップ
するためのコンピュータにより実行される方法は、ユーザ用コンピュータにおい
て、1つまたはそれ以上の暗号化キーを用いて少なくとも1つのブロックを暗号
化する。この方法は、さらに、1つまたはそれ以上のキーをキーファイル内に記
憶するステップと、このブロックを離れたデータセンタへ送信するステップを有
する。次に、この方法は、復元時間において、このブロックをデータセンタから
ユーザ用コンピュータへ送信し、キーファイルから1つのキーを選択する。この
ブロックがこのキーにより暗号解読されると、この方法は、暗号解読が成功した
かどうかを判断する。暗号解読が成功しなかった場合、キーリストから別のキー
を選択して、このデータを暗号解読し、暗号解読が成功するまで、上記ステップ
を反復する。 【0022】 別の実施形態では、送信コンピュータと受信コンピュータの間でデータを送信
する送信セッションのためのセッションキーを提供する方法は、データに固有の
データデジタル署名を集めるステップと、データを暗号化するために、このデー
タデジタル署名を利用するステップを有する。 【0023】 別の実施形態では、ユーザ用コンピュータと少なくとも1つのデータ記憶装置
を有する、システム内のテ゛ータをバックアップする方法は、ユーザ用コンピュータ において、ユーザ用コンピュータに付随するデータが共通ソフトウェアライブラ
リ内に存在するかどうかを判断するステップを有する。このデータが共通ソフト
ウェアライブラリ内に存在する場合、このデータはバックアップされない。そう
でなければ、このデータが少なくとも所定数のシステム内のユーザ用コンピュー
タ内に存在している場合、このデータは自動的に共通ソフトウェアライブラリに
追加される。 【0024】 本発明の詳細は、その構造および動作において、添付図面を参照すると最もよ
く理解され、同様の参照符号は同様の構成部品を示す。 【0025】 (好適な実施形態の詳細な説明) まず、図1を参照すると、一般に、符号10で示すシステムが図示されており
、このシステムは、ここではデータセンタ12と称するサーバコンピュータを有
する。サーバコンピュータは、コンピュータネットワークの一部である。好適な
実施形態において、データセンタ12は、インターネットと称するコンピュータ
ネットワーク14の一部であって、モデム、LAN、WANまたはその他のネッ
トワークデバイス16を介して、ネットワーク14上の他のコンピュータと接続
することができる。 【0026】 図1に図示するように、データセンタ12は、付随する共通ライブラリ20を
含む電子データ記憶貯蔵体18を有する。好適には、大多数のユーザをサポート
するために、このシステム10をスケーリングできるように、データ貯蔵体18
は、数テラバイトまたは、実際には1ペタバイトの容量を有する。データ貯蔵体
18の容量は、100テラバイト以上であることが好ましく、500テラバイト
以上であることが、さらに好ましい。制御モジュール22は、以下に詳述する新
規なロジックと協働して、データ貯蔵体18に入出力されるデータの流れを制御
する。 【0027】 本発明によれば、共通ライブラリ20は、広範に分配され、数多くのユーザに
が用いるコンピュータファイルブロックを記憶するため、数多くのユーザに対し
て汎用性がある。例えば、共通ライブラリ20は、広く知られた既成のパーソナ
ルコンピュータオペレーティングシステム、ネットワークブラウザなどのコピー
を記憶することができる。共通ライブラリ20は、後に図5を参照しながら、さ
らに説明するように、自動的に更新することができる。本発明が意図するように
、共通ライブラリ20を備えたデータ記憶貯蔵体18は、例えば、磁気テープ、
ハードディスクアレイ、コンパクトディスク読み出し専用メモリ(CD−ROM
)、DASDアレイ、またはフロッピーディスクなどの適当な媒体内に物理的に
構成することができる。 【0028】 複数のユーザ用コンピュータ24、例えば、パーソナルコンピュータ、携帯可
能コンピュータ、またはパームトップコンピュータが、それぞれのユーザ用モデ
ム26またはその他の適当なネットワーク通信を介して、ネットワーク14と通
信する。好適な実施形態では、ユーザ用コンピュータ24の各々は、ソフトウェ
アにより実現されるバックアップモジュール28を有し、このバックアップモジ
ュール28が、本発明の進歩性を保証するものとなる。別の実施形態において、
このバックアップモジュール28は、ユーザ用コンピュータ24から取り外し、
またはこれにアクセスできるものと理解されたい。さらに、容易に理解しやすく
するために、ユーザ用コンピュータ24は、各々、CD−ROM駆動機構30を
有する。当業者ならば理解されるように、ユーザ用コンピュータ24は、同様に
、ビデオモニタ、プリンタ、およびその他の出力デバイスと、キーボード、マウ
ス、およびその他の入力デバイスを備えることができる。 【0029】 図2ないし図8は、コンピュータプログラムソフトウェアとして実現された、
本発明のバックアップモジュール30の構成を示す。当業者ならば理解されるよ
うに、これらの図面は、本発明の機能を果たす、コンピュータプログラムコード
要素または電子ロジック回路などのロジック要素の構成を示している。明らかに
、本発明は、必須の実施形態において、機械部品を用いて実現され、この機械部
品により、デジタル処理装置(つまりコンピュータ)に指令を与えるような形態
を有するロジック要素が、図面に図示した一連の機能ステップに対応するステッ
プを実行する。 【0030】 これらの指令は、プログラムされたコンピュータディスケットなどのようなコ
ンピュータプログラム製造物(product)を確立するためのデータ記憶媒体を含 むプログラム記憶装置上に存在することもある。択一的には、こうした媒体を、
磁気テープ、光ディスク、従来式のハードディスク駆動機構、電子式読み出し専
用メモリ、または電子式ランダム・アクセス・メモリ、またはその他の適当なデ
ータ記憶デバイスなどの半導体デバイス上に見出すこともできる。本発明の説明
的な実施形態において、ロジック手段は、C++言語コードで記述されたコンピュ
ータにより実行可能な指令である。 【0031】 ここで、図2を参照すると、初期化プロセスを理解することができる。このプ
ロセスは、各ユーザ用コンピュータに関する開始状態32で始まり、ブロック3
4に移動する。このとき、ファイル・インデックス・カウンタ「j」は、単位元
(1)に等しくなるように設定される。判断菱形36に進み、後に説明する、い
わゆる「メッセージ・ダイジェスト・ファイブ(MD5:message digest five )」コードを用いて、j番目のファイルのコピーが共通ライブラリ20内に既に
記憶されているかどうかを判断する。これは、j番目のファイルのMD5と共通
ライブラリ20内にあるファイルのMD5とを比較することにより、ファイル毎
に行うことができる。共通ライブラリ20内に記憶された各ファイルに対して、
共通ライブラリ20内のファイルのMD5の1つと、ファイルのMD5が合致す
ると判断された場合、このプロセスは、ブロック38に進んで、このファイルが
共通ライブラリ20内にあるものとして、ファイルにフラグを立てる。したがっ
て、大多数の候補すべてがデータセンタ12へ送信されることはない。 【0032】 択一的には、各j番目ファイルの各ブロックのMD5と共通ブロックMD5の
リストを比較して、共通ライブラリ20内の共通ライブラリのMD5リストにあ
るMD5と合致するMD5を有するブロックに関してのみ、ファイルにフラグを
立てることにより、より大きな細分化(granularity)を実現することができる 。したがって、大多数の候補をすべてデータセンタ12に送信することはない。
j番目ファイルがユーザ用コンピュータ24内に存在するときに、j番目ファイ
ルが、共通ライブラリ20内の共通の既成バージョンから変更された場合、変更
された部分が検知され、後に図3を参照して説明するサブファイル・インクリメ
ント式手続の間にデータセンタ12に送信されると、理解されたい。 【0033】 いずれにせよ、共通ライブラリ20を用いると、多くのパーソナルコンピュー
タシステム上に存在するが、大部分のパーソナルコンピュータシステム上には存
在しないならばバックアップを必要とする、極めて大量の既成のコンピュータフ
ァイルを、データセンタ12に送信する必要性を回避できることが理解されよう
。換言すると、共通ライブラリ20を用いて、ユーザ用コンピュータ24にある
ファイルの最初のコピーを作成する時間と労力を削減することができる。 【0034】 加えて、ブロック38において、ブロック毎の比較値の作成リストが記憶され
て、このリストには、共通ライブラリ20内あるものとしてフラグを立てられた
各j番目ファイルの各i番目ブロック(ここで、「i」はブロック・インデック
ス・カウンタである。)に対する2つのエントリがある。第1のエントリは、各
i番目ブロックの第1バイトの最初の2文字(「XXi」)である。対称的に、 第2のエントリは、i番目ブロックのコンテンツを固有に定義する値としてのデ
ジタル署名(「MD5」)である。第1エントリが第1比較値を、第2エントリ
が第2比較値を形成する。 【0035】 上述のように、この好適な実施形態において、用いられるデジタル署名は、暗
号化技術で知られた128ビット長の「メッセージ・ダイジェスト・ファイブ(
MD5:message digest five)」コードである。本発明により認識されるよう に、ブロックのMD5コードは、ブロックに非常に少ない変更があっても大きく
変化する。本発明によるデジタル署名は、好適にも、検査合計、巡回冗長コード
、およびいわゆる「排他的論理和」コードよりも、ブロック内の変化に対して、
より敏感である。 【0036】 ブロック38から、ロジックは判断菱形40に進み、ユーザ用コンピュータ2
4内の最後のファイルが検査されたかどうかを判断する。最後のファイルが検査
された場合、初期化プロセスは、状態42で終了する。そうでなければ、このプ
ロセスは、ブロック44に進み、ファイル・インデックス・カウンタ「j」を1
つ繰り上げて、判断菱形36に戻る。 【0037】 これとは対称的に、判断菱形36において、j番目ファイルのi番目ブロック
のコピーが、共通ライブラリ20に存在しない場合、このロジックは、ブロック
46に進み、j番目ファイルの存在しないi番目ブロックの各コピーを、データ
センタ12のデータ記憶貯蔵体18へ、少しづつ送信する(trickle)。コピー を少しづつ送信する(trickle copy)ことは、ファイルの存在しないブロックが
所定の送信期間において、データセンタ12へ送信されることを意味する。ファ
イルの存在しない部分がすべて送信されるまで、または送信期間が過ぎるまで、
この送信期間を、ここでは「ウィンドウ」と称する。択一的には、図8を参照し
ながら後に説明するように、ユーザ用コンピュータ24がネットワーク14とオ
ンライン接続されている場合、バックアップすべきデータは、ユーザがユーザ用
コンピュータ24に入力する時に、リアルタイムで送信することができる。 【0038】 ファイルの存在しない部分がすべて送信される前に、送信期間が経過した場合
、各バックアップモジュール28は、チャンク(chunk)の送信を完了した後、 終了する。送信期間において、送信が妨害された場合、モジュール28は、ブロ
ック・インデックス・カウンタ「i」の値を記憶するので、次回の送信期間にお
いて、送信をそこから再開できる。次回の送信期間の開始時点において、バック
アップモジュール28は、ブロック・インデックス・カウンタ「i」を単位元(
1)だけ繰り上げて、前回中断したi番目のファイルの送信を開始する。図2で
示すように、ブロック46において、i番目のXXiおよびMD5iに関するブロ
ック毎のリストが、ブロック38を参照して上述したように、作成される。この
ロジックは、ブロック46から判断菱形40へ進み、上述のように機能する。 【0039】 ここで図3を参照すると、サブファイル・インクリメント式バックアップロジ
ックが図示されている。本発明が意図するように、周期的に(例えば、1日に1
度の頻度で)、各ユーザ用コンピュータ24のバックアップモジュール28は、
以下詳述するプロセスを実行する。 【0040】 判断菱形48で開始して、ユーザが選択する所定のバックアップ期間が開始さ
れたかどうかを判断する。そうであれば、このプロセスは、ブロック50に進ん
で、バックアップするかどうかをユーザにより指定された各j番目ファイルに対
して、DOループに入る。この後、このプロセスは、ブロック52に進み、ブロ
ック50で選択されたj番目ファイルの各i番目ブロックに対して、DOループ
に入る。 【0041】 ブロック54に進んで、バックアップモジュール28は、i番目ブロックのテ
ストされるデジタル署名MD5i newを計算する。次に、判断菱形56において、
i番目ブロックのテストされるデジタル署名MD5i newを、上述のように図2で
形成されたリストに記憶されたデジタル署名MD5i oldと比較する。 【0042】 デジタル署名MD5i oldのリストが、i=0からi=nまでの順序を有するリ
ストで、ここでnは、リスト中のデジタル署名の数であると理解されたい。i番
目ブロックのテストされるデジタル署名MD5i newは、最初に、リスト中のi番
目ブロックのデジタル署名MD5i oldと比較され、合致しなければ、次に、順序
を有するリストの次のデジタル署名MD5i old(すなわち、i番目+1MD5ol d )などと、合致するまで、または順序を有するリストの最後に至るまで比較さ れる。リスト中のどこかで合致することが検知されると、判断菱形56における
テストは肯定判定され、このプロセスは、判断菱形58に移動する。また、リス
ト中のl(エル)番目位置で合致したことが検知されると、l>iのとき、テス
トすべき(i+l)番目のブロックのMD5i+l newが、最初に、MD5i+l old
つまり、古いデジタル署名の順序を有するリスト中の(i+l)番目の要素と比
較される。合致しないことが検知された場合、(i+l)番目のブロックのMD
i+l newは、その後、古いデジタル署名の順序を有するリスト中の(i+l)番
目の要素の後にあるリスト中のデジタル署名に対して連続的にテストされる。 【0043】 i番目のブロックの説明に戻ると、デジタル署名が合致したことが検知された
場合、これは、最近過去にバックアップしてから、テストされるi番目ブロック
には変更がなかったことを意味し、このプロセスは、判断菱形58へ移動する。
判断菱形58において、このロジックは、j番目ファイルの最後のブロックがテ
ストされたかどうかを判断し、まだテストされていない場合には、このプロセス
は、ループバックして、次のi番目ブロックを呼び出し、図示して詳述したよう
に、デジタル署名を計算する。換言すると、テストされるj番目ファイルに関し
て、ブロックが残っている限り、インデックス・カウンタ「i」を1つずつ繰り
上げる。このプロセス54は、ブロック54にループバックする。 【0044】 他方、j番目ファイルの最後のブロックがテストされた場合、このロジックは
、判断菱形60において、ユーザ用コンピュータ24内の最後のファイルがテス
トされたかどうかを判断する。まだテストされていない場合には、このプロセス
は、ループバックして、次のファイルを呼び出して、上述のように、ファイル内
のブロックをテストする。最後のファイルがテストされた場合は、このプロセス
は、判断菱形62に移動する。 【0045】 判断菱形62において、バックアップ期間が経過したかどうか、つまり、配分
されたバックアップ・ウィンドウが依然として開放状態にあるかどうかを判断す
る。バックアップ期間が経過した場合、このロジックは、判断菱形48にループ
バックして、次に配分されるバックアップ期間の開始を待つ。逆に、バックアッ
プ・ウィンドウが依然として開放状態にある場合、このロジックは、モデム26
、16(または、LANやWANなどのその他のネットワークデバイス)を介し
て、データセンタ12との送信を確立しようとする。 【0046】 判断菱形64において、送信接続が実現されたかどうかを判断する。送信が接
続されなかった場合、このロジックは、ブロック66に進み、所定のタイムアウ
ト時間(好適には、5分間)だけ待って、判断菱形62にループバックして、ウ
ィンドウが依然として開放状態にある場合、再接続を試みる。いずれにせよ、ユ
ーザ用コンピュータ12内のすべてのファイルをテストした後に、ユーザ用コン
ピュータ12とデータセンタ12の間において、送信が確立されたと判断された
場合に、このロジックは、ブロック68において、すべての残存する更新された
ブロックを暗号化し、(以下詳述するように)圧縮して、これらをデータセンタ
12に送信する。このプロセスは、ブロック68から判断菱形48にループバッ
クする。 【0047】 判断菱形56から派生する否定ループについて説明すると、i番目ブロックの
デジタル署名が、ブロックのリストに記憶されたデジタル署名のいずれとも合致
しない場合、i番目ブロックが変更されたことを意味し、そのため、i番目ブロ
ックは、バックアップすべき候補となる。加えて、このプロセスは、上述のブロ
ック毎の比較値リストと再同期する。 【0048】 したがって、判断菱形56において否定判定された後(すなわち、このロジッ
クが本質的に「変更ブロック」信号を応答するとき)、このロジックは、ブロッ
ク70に移動する。このとき、i番目ブロックのk番目のバイトに対して、DO
ループに入る。「k」は、最初は単位元(1)に等しいインデックス・カウンタ
である。判断菱形72に進んで、このロジックは、テストされるk番目のバイト
で始まるブロックの最初の2文字(「XXk new」)が、比較値リストにあるi番
目ブロックに対応する第1の比較値(「XXold」)と等しいかどうか判断する 。この比較値リストは、順序を有するデジタル署名MD5oldと並行しているこ とを理解されたい。その結果、第1の比較で合致することはなく、判断菱形56
におけるテストと同様に、合致が検知されるか、リストの最後に達するまで、順
序を有するリスト中の次の2文字XXoldに対して、XXk newが比較される。 【0049】 合致することなく、比較値リストの最後まで及んだ場合、このロジックは、判
断菱形73まで進み、現在のk番目のバイトがテストされる候補ブロックの最後
のバイトであるかどうかを判断する。換言すると、判断菱形73において、この
ロジックは、バイト・インデックス・カウンタ「k」が約2048に等しいかど
うかを判断する。その場合、このロジックは、ブロック74に進み、ブロック・
インデックス・カウンタ「i」を単位元(1)だけ繰り上げた後、このロジック
ループは、判断菱形58に進む。この場合、検査されるすべてのブロックについ
て、コピーするようフラグが立てられる。判断菱形73において、バイト・イン
デックス・カウンタ「k」が1000に等しくなければ、このロジックは、ルー
プバックして、「k」を単位元(1)だけ繰り上げて、判断菱形72において、
i番目ブロック中の次のバイトをテストする。 【0050】 しかしながら、判断菱形72において、「XXk new」が「XXold」と等しい と判断した場合、このロジックは、判断菱形75に進む。判断菱形75において
、テストされるk番目のバイトを第1バイトとして有するブロックのデジタル署
名MD5が決定され、第2比較値、すなわち、比較値リスト中にある合致する文
字XXoldに対応するデジタル署名MD5oldと比較される。判断菱形56におけ
るテストと同様に、合致を見出すために必要ならば、テストされるデジタル署名
MD5は、順序を有するリスト中の後続のデジタル署名MD5oldに対してテス トされる。合致することが検知されなかった場合、このロジックは、判断菱形7
3に移動する。 【0051】 しかしながら、テストされるk番目のバイトを第1バイトとして有するブロッ
クのデジタル署名MD5が、判断菱形75において、順序を有するリスト中のデ
ジタル署名MD5oldの1つに等しいと判断された場合、このロジックは、「再 同期された」ことを応答し、ブロック76に移動する。換言すると、判断菱形7
5における肯定的なテスト結果は、このロジックが、過去にバックアップされた
古い未変更のブロックを見出し、このロジックが比較値リストに対して再同期し
たことを意味するものである。 【0052】 ブロック76において、変更されたブロック(ここでは、「送信ブロック」と
もいう。)は、「次回チャンク(next chunk)」ファイルに移動する。ブロック
76において、比較値リストは、次回バックアップ周期においてブロックをテス
トする間、第1および第2比較値として各々用いられる、変更されたブロックに
関する最初の2文字およびデジタル署名を含むように更新される。判断菱形78
に移動すると、チャンクファイルが満杯になっているかどうかを判断する。現在
の好適な実施形態において、チャンクファイルの容量が5メガバイト(5MB)
のとき、満杯となる。 【0053】 チャンクファイルが満杯でなければ、このロジックは、判断菱形58に戻る。
逆に、チャンクファイルが満杯であれば、このプロセスは、判断菱形80に進ん
で、バックアップ期間が経過したかどうか、すなわち、配分されたバックアップ
・ウィンドウが依然として開放状態にあるかどうかを判断する。この期間が経過
している場合、このロジックは、判断菱形48にループバックして、次回の配分
されたバックアップ期間が始まるのを待つ。反対に、バックアップ・ウィンドウ
が依然として開放状態にある場合、このロジックは、上述のステップ64および
66を処理して、送信がうまく接続されたとき、このチャンク(chunk)をデー タセンタ12へ送信する。このロジックは、ブロック82から判断菱形58に戻
る。 【0054】 図4は、消失したファイルをユーザ用コンピュータ24に復元できるロジック
を示す。ここで明らかなように、データセンタ12におけるバックアップされた
ファイルブロックは、周期的に(例えば、毎週、毎月、毎四半期など)、記憶貯
蔵体18からCD−ROMディスクにコピーされ、これらのディスクは、関連す
るユーザ用コンピュータ24と同じ物理的場所に搬送される。以下、これらのC
D−ROMディスクを「ローカル・バックアップ・システム」という。 【0055】 ブロック84において、データセンタ12内にある、ユーザ用コンピュータ2
4に対応するブロックのディレクトリが、データセンタ12からダウンロードさ
れる。次に、ブロック86において、消失したファイルのi番目の各ブロックに
対して、以下のようにDOループに入る。判断菱形88において、ファイルブロ
ックの要求されたバージョン(version)がローカル・バックアップ・システム 上にあるかどうか判断される。もしあれば、ブロック90において、そのブロッ
クは、ローカル・バックアップ・ディスクから優先的に復元される。もしなけれ
ば、ブロック92において、そのブロックは、データセンタ12からモデム26
、16を介して復元される。このロジックは、ブロック90またはブロック92
からループバックして、次のi番目のブロックを呼び出し、すべての要求された
ファイルが復元されるまで、このプロセスを続ける。 【0056】 図5ないし図8を参照すると、本発明のさらなる発明的特徴が理解される。特
に、図5に関して、図1で示す共通ソフトライブラリ20は、図5のブロック1
00において開始することにより、自動的に更新することができる。ブロック1
00において、サーバ(すなわち、図1で示すデータセンタ12)は、記憶のた
めに受信される付随するブロックとともに、各デジタル署名MD5コードに関し
て、判断菱形102に移動することによりループを実行し、このとき、テストさ
れるデジタル署名MD5コードが、候補としてライブラリ20に記憶されたかど
うかを判断する。特定のデジタル署名MD5コードが、最初に、任意のユーザ用
コンピュータから受信される。判断菱形102におけるテストの結果が否定的で
ある場合、このプロセスは、当然に、ブロック104に進んで、候補リスト上に
デジタル署名MD5コードを記憶する。また、ブロック104において、テスト
される特定のデジタル署名MD5コードのためのカウンタJMD5が単位元(1) と等しくなるように設定される。ブロック104からブロック106に進んで、
次に受信されるデジタル署名MD5コードが呼び出され、上述のプロセスが、図
5に示す破線ループバック線で図示されたように反復される。 【0057】 一方、デジタル署名MD5コードがユーザ用コンピュータから事前に受信され
ていた場合、つまり、判断菱形102におけるテストの結果が肯定的である場合
、このプロセスは、ブロック108に進んで、テストされるデジタル署名MD5
コードに付随するJMD5を1つだけ繰り上げる。テストされるデジタル署名MD 5コードに付随するカウンタJMD5が、任意のユーザ用コンピュータから受信さ れた場合、またはテストされるデジタル署名MD5コードを事前に送信しなかっ
たユーザ用コンピュータから受信された場合はいつでも、テストされるデジタル
署名MD5コードに付随するカウンタJMD5を1つ繰り上げることができる。 【0058】 次に、判断菱形110において、テストされるデジタル署名MD5コードに付
随するカウンタJMD5の値が所定値「k」に等しいかどうかが判断される。この プロセスは、カウンタJMD5の値が所定値「k」に等しくなければ、ブロック1 06にループバックし、等しければ、ブロック112に進んで、関連するブロッ
クとともに、テストされるデジタル署名MD5コードを共通ソフトウェアライブ
ラリ20に加える。その後、このプロセスは、ブロック106にループバックし
て、次のデジタル署名MD5コードを呼び出す。 【0059】 図6Aおよび図6Bは、ユーザが複数の暗号化キーを用いて、バックアップす
るためのデータを送信することにより、安全性を高められるようにした本発明の
特徴を示す。ブロック114で開始して、ユーザ用コンピュータにおいて、図2
ないし図4で上述したステップにより選択されたバックアップを要するブロック
のそれぞれのデジタル署名MD5コードが決定され、各データブロックに添付さ
れ、その後、このデジタル署名MD5コードは、当業者により広く知られた圧縮
原理を用いて圧縮される。ブロック116に進んで、MD5コードではなく、デ
ータブロックがユーザ・キー・リスト上のユーザ選択キーを用いて暗号化される
。このプロセスは、ブロック116から、状態120で終了するが、上述の送信
ステップが実行可能であることを理解されたい。続いて、ユーザ用コンピュータ
が、例えば、図6Aで示すステップにより処理されたデータパケットを消失して
、データセンタ12からデータパケットのコピーを受信できるように要請した場
合、ユーザ用コンピュータは、図6Bに示すステップを呼び出す。ブロック12
4で開始して、ユーザ用コンピュータは、データセンタ12から記憶すべきブロ
ックを受信し、各ブロックに対して次のステップを実行する。ブロック126に
おいて、コンピュータは、リスト中から第1暗号化キーを選択した後、ブロック
128において、ブロックを暗号解読し、圧縮解除する。判断菱形130に進ん
で、ユーザ用コンピュータは、例えば、データオーバフローで示されるように、
圧縮解除が失敗したかどうかを判断する。圧縮が失敗した場合は、このプロセス
は、ブロック132に進んで、リスト中から次の暗号化キーを選択し、その後、
ブロック128にループバックして再び圧縮を試みる。 【0060】 一方、判断菱形130において、満足できるように圧縮解除できたと判断され
た場合、このプロセスは、ブロック136に進んで、このパケットデータからデ
ジタル署名MD5コードを抜き取り、暗号解読されるブロックに付随するデータ
のデジタル署名MD5コードを新たに計算することにより、テストされるキーを
認証する。ブロック136において、このプロセスを実行するとき、デジタル署
名MD5コードは、既知の位置に付随するデータに添付される128ビット長の
ストリングであって、結果として、このデジタル署名MD5コードを容易に抜き
取ることができると、本発明は理解している。 【0061】 判断菱形138において、暗号解読データの計算されたデジタル署名MD5コ
ードが、ブロック136において、データから抜き取られた暗号解読されたデジ
タル署名MD5コードと比較される。判断菱形138において、2つのデジタル
署名MD5コードが互いに合致する場合、テストされるキーは認証され、このプ
ロセスは、ブロック140において、「正確なキー」を応答する。その後、ブロ
ック124において、次のデータ部分を呼び出す。2つのデジタル署名MD5コ
ードが互いに合致しない場合、このプロセスは、ブロック132にループバック
して、ユーザ用コンピュータのキー・リストにある次のキーを呼び出す。 【0062】 図7Aは、暗号化のための独特のセッション固有のセッション・キーを提供す
る方法を示す。ブロック142で開始して、送信すべき一連のデータ全体に対す
るデジタル署名MD5コードが、データを送信するコンピュータにより計算され
る。ブロック144に進んで、このデジタル署名MD5コードが、データ送信セ
ッションのための暗号化キーとして用いられる。キーのために56ビットしか必
要とされない場合、排他的論理和(XOR)処理を用いて、128ビット長のデ
ジタル署名MD5コードの半分の64ビットが組み合わされる。結果として得ら
れる64ビットストリングの8ビット、つまり最後の8ビットは、切り捨てられ
る。 【0063】 ブロック144から、このロジックは、「A」および「B」で示されるように
、2通りの選択肢を取る。とりわけ、ブロック146Aにおいて、デジタル署名
MD5コード(またはその一部)を乱数として用いて暗号化された後、ブロック
148Aにおいて、データは受信コンピュータに送信される。他方、セッション
・キーとして機能するデジタル署名MD5コードの一部が、(すなわち、ブロッ
ク146Aにおいて、データを暗号化するために用いられるデジタル署名MD5
コードの一部)が、従来式の私的キー/公的キーによる暗号化原理を用いて、あ
るいは、より好適には、ディフィ−へルマン(Diffie-Helman)暗号化原理を用 いて、送信コンピュータから受信コンピュータへ送信される。すなわち、146
Bにおいて、受信コンピュータの公的キーを用いて、送信コンピュータがデジタ
ル署名MD5コードを暗号化することができる。その後、ブロック148Bにお
いて、受信コンピュータは、私的キーを用いて、このデジタル署名MD5コード
を暗号解読することができる。図7Aで示すように、ブロック150は、ブロッ
ク148Aおよびブロック148Bで得られた結果を受信して、デジタル署名M
D5コードのセッション・キーを用いて、暗号解読することができる。 【0064】 図7Bは、ブロック152ないし158で図示された認証ステップを実行する
ことにより、ブロック152で受信されるデータを認証することができる。とり
わけ、ブロック152において、受信コンピュータは、ブロック150からの暗
号解読データに関連するデータのデジタル署名MD5コードを計算する。次に、
判断菱形154において、暗号解読データの計算されたデジタル署名MD5コー
ドが、ブロック148Bで受信され暗号解読されたデジタル署名MD5コードと
比較される。XOR処理されたデジタル署名MD5コードの56ビットだけがセ
ッション・キーとして用いられる場合、判断菱形154における比較は、セッシ
ョン・キーと、ブロック152で計算されたデジタル署名MD5コードのXOR
処理されたバージョンとの間で行うことができる。 【0065】 いずれにせよ、判断菱形154において、2つのデジタル署名MD5コードが
合致する場合、テストされるセッション・キーが認証され、このプロセスは、ブ
ロック156において、「送信が認証された」ことを応答する。2つのデジタル
署名MD5コードが合致しない場合、このプロセスは、ブロック158において
、「送信エラー」を応答する。 【0066】 ここで、図8を参照しながら、広域コンピュータネットワークを介して連続的
にデータバックアップするための方法を示す。このとき、ユーザ用コンピュータ
はネットワークとオンライン接続しており、ユーザはこのユーザ用コンピュータ
を利用している。ブロック160で開始して、これまで説明したような原理に基
づいて変更されたデータブロックをバックアップすべきことが、ユーザ用コンピ
ュータにより決定されると(バックアップ開始時間を待つことなく、このプロセ
スは、むしろ間断なく、リアルタイムで、バックアップすべきデータブロックを
決定する。)、このプロセスは、判断菱形162移動する。判断菱形162にお
いて、このプロセスは、このユーザ用コンピュータが、例えば、図1に示すよう
なネットワークとオンライン接続されているかどうかを判断する。オンライン接
続されていない場合、このプロセスは、ブロック164に進み、オンライン接続
された時に送信すべきデータを記憶する。 【0067】 一方、判断菱形162において、このプロセスは、ユーザ用コンピュータがネ
ットワークとオンライン接続されていると判断した場合、このロジックは、判断
菱形166に進み、ユーザ用コンピュータの中央演算装置(CPU)がビジー状
態にあるかどうかを判断する。特に、図8で示すバックアップタスクよりも優先
順位の高い優先順位を有するタスクが処理されて、CPUがビジー状態にあるか
どうかを判断する。CPUが、このデータバックアップタスクよりも高い優先準
位を有するタスクを実行している場合、このプロセスは、ブロック168に進み
すべてのブロックが送信されるまで、またはバックアップタスクよりも優先順位
の高いタスクを行うために、コンピュータが再び占有されるまで、ブロックを送
信する。ブロックの送信が、より優先順位の高いタスクにより妨害される場合、
ユーザ用コンピュータは、より優先順位の高いそのタスクを実行して、完了した
時点で、このバックアップタスクに戻って、データブロックの送信を完了させる
ものと理解されたい。このロジックは、その後、ブロック169に進み、送信す
べき別のブロックを決定し、ユーザがユーザ用コンピュータを他のタスクで利用
している時に、実質的にリアルタイムでブロックを送信する。 【0068】 ブロック170と判断菱形166の間のループ、およびブロック168におけ
る「ビジー状態にある」ループは、上述の記述の原理を説明するものである。判
断菱形166において、キー操作などの入力タスクを実行するように要請されて
いる場合など、CPUがビジー状態にある場合、このロジックは、ブロック17
0に進み、所定期間Δtだけ待って、判断菱形166における判断を再び試みる
。Δtの長さは、極めて短く、ミリ秒またはマイクロ秒のオーダである。択一的
には、このロジックは、本質的に「CPUが非動作状態」であるΔtを定義する
ことができ、CPUが非動作状態のとき、ブロック168に進み、データ送信す
る。 【0069】 例えば、判断菱形166においてテストを行う間、CPUは、コンピュータの
ユーザによるキー入力を介してデータ入力を受信することができる。その場合、
このプロセスは、ブロック170において、キー入力が完了するまで待機した後
、ブロック168において、データ送信する。こうして、1つの実施形態におい
て、このプロセスは、ユーザの要請をサポートするCPUタスク間に、例えば、
キー入力と次のキー入力の間に、バックアップデータを送信する。さらに、この
プロセスは、キー入力により変更され、バックアップデータとして決定され、デ
ータがコンピュータユーザにより創作された時点で、実質的にリアルタイムで記
憶するように、インターネットを介して遠くデータ送信する。 【0070】 図9および図10は、例えば、ユーザ用コンピュータ24が、このロジックを
採用するラップトップコンピュータまたはパームトップコンピュータである場合
の好適な実施形態において、上述した原理を図示する。以下詳述するように、携
帯可能コンピュータの環境において、本発明によれば、ホスト携帯可能コンピュ
ータがネットワークに接続されていないとき、ファイルブロックがコピーされ、
ネットワークに接続されたときに、コピーされたブロックがネットワークを介し
て記憶装置に送信される。 【0071】 ブロック180において開始して、ホスト携帯可能コンピュータが稼動してい
る場合、このロジックは、ユーザ用コンピュータ上のすべてのファイルについて
、またはユーザが設定した一連のファイルついてのみ、バックアップを要するか
どうかを検討する。ユーザが、例えば、ワイルドカードを備えた含有/排他リス
ト(inclusion/exclusion lists)を用いて、バックアップのための一連のファ イルを(ディレクトリなどにより)設定した場合、ブロック182において、こ
の一連のファイルが受信される。ブロック182から、または判断菱形180か
ら、ユーザ設定の一連のファイルがなく、すべてのファイル(または一連のデフ
ォルトファイル)は、バックアップする候補となり、このロジックは、ブロック
184に進み、先に図3を用いて説明したようなロジックに従って、上述のよう
なチャンクの中にブロックを準備する。既に説明したように、ユーザが、文章作
成処理やプレゼンテーション用スライド作成処理などの、その他のタスクに対し
てホストコンピュータを採用した場合、バックアップ処理は、ユーザから見えな
い「背景(background)」で実施される。 【0072】 判断菱形186は、本発明に係るロジックを表しており、このロジックは、ホ
ストコンピュータ上において、所定の記憶スペースの限界値に達したかどうかを
モニタする。本発明により認識されるように、稼動しているがネットワークとは
接続されていないラップトップコンピュータなどの携帯可能コンピュータは、バ
ックアップすべきブロックを複製して形成するので、記憶スペースに限界が生じ
る場合がある。このとき、判断菱形186におけるステップは、「背景」処理と
して意図された上述のバックアップ処理により、ユーザの記憶容量が一杯になら
ないようにするためのものである。この好適なネットワークの実施形態において
、ホストコンピュータの5%以下の記憶容量が、バックアップ用に記憶するため
に用いられる。択一的には、ユーザが所定の記憶スペースの限界値を設定する。
記憶スペースの限界値に達した場合、このロジックは、ブロック188に移り、
例えば、バックアップすべきブロックを送信した後、ホストコンピュータの上の
バックアップコピーを削除して、追加的な記憶スペースを空けるまで、バックア
ップ処理を一時中断する。 【0073】 ブロック188から、またはテスト結果が否定的であるときの判断菱形186
から、このロジックは、判断菱形190に移る。判断菱形190で表したように
、このロジックは、ホスト携帯可能コンピュータがネットワークに接続している
かどうかをモニタする。ネットワークの接続が検知されない場合、このロジック
は、ブロック192に移り、上述のようにバックアップ処理を継続して実行し、
判断菱形186に論理的にループバックする。 【0074】 逆に、このロジックは、ネットワークの接続を検知した場合、判断菱形194
で示すように、このホスト携帯可能コンピュータが能動的にデータを送信してい
るかどうかを判断する。ホスト携帯可能コンピュータが能動的にデータを送信し
ている場合、このロジックは、この送信処理を妨害しないように、バックアップ
処理を一時中断して、その後、判断菱形194に論理的にループバックして、デ
ータ送信の完了を待つ。ホスト携帯可能コンピュータがデータ送信していない場
合、このロジックは、ブロック192に戻る。 【0075】 図9で示すロジックフローは、説明するための本発明の原理を表すもので、実
際のロジックコードは、イベント待ち方式であってもよく、つまり、判断菱形1
86、190、および194において表される状態をモニタするものであっても
よいと理解されたい。同様に、図10および図11のフローフォーマットで示す
ロジックは、イベント待ち方式コードとして実行される。 【0076】 ここで、図10を参照すると、図9で示したロジックにより形成されたバック
アップすべきブロックを送信するためのロジックが図示されている。ブロック1
98で開始して、この送信ロジックは、ネットワーク接続が検知された場合に開
始される。好適な実施形態においては、ブロックが利用でき、ネットワーク帯域
が許容する場合、送信バックアップブロックに優先順位が与えられ、このとき、
ホストコンピュータがネットワークに接続されていて、送信準備が整ったブロッ
クが全くない場合、またはネットワークを使用することが送信を妨害する場合に
、図9に示すバックアップ処理が実行される。 【0077】 判断菱形200に移って、このロジックは、データのブロックを送信する準備
が整っているかどうかを判断する。整っていれば、このロジックは、ブロック2
02に移り、例えば、関連するメタデータまたはその他の送信すべきデータに、
このブロックをインターリーブする。この目的は、処理すべき最後のファイル全
体に至るまでのバックアップセッション中になされたすべてのフォワード・プロ
グレス(forward progress)を利用できるようにするためで、その結果、送信が
中止された時点までに完了した作業の利点を享受することができる。この点に関
して、このプロセスは、「シャクトリムシ」データ送信と考えられ、この中で、
送信の流れを任意の点で機能させ、依然として実行可能なエンティティを維持す
ることができる。 【0078】 ブロック200から、このプロセスは、ブロック202に移り、最後の実際に
インターリーブされるブロックを特定するために、「最後のブロック」を定義す
る。その後、このプロセスは、判断菱形206に移る。 【0079】 判断菱形206は、バックアップデータを送信するために、十分にネットワー
クの可用性(availability)があるかどうかを判断する。1つの実施形態では、
このロジックがバックアップデータを送信するためには、ネットワークの可用性
が全体の可用性に対して所定の設定値、例えば70%未満である必要がある。そ
の場合、このロジックは、ブロック208に移り、データを送信する。そうでな
い場合、このロジックは、ブロック210に移り、ネットワークの可用性が所定
の設定値以下となるまで待って、図3で上述した再同期ロジックを用いてこのプ
ロセスを再開する。 【0080】 1つの好適な実施形態においては、ネットワークがローカル・ネット・ワーク
(LAN)である場合、オペレーティングシステムのパーフォーマンス・カウン
タを用いて、ステップ206における判断が実行される。例えば、オペレーティ
ングシステムがマイクロソフト社のオペレーティングシステムである場合、パー
フォーマンス・レジストリにある動的キーの数を用いて、単位時間あたりの送信
パケット数を決定することができる。この比は、ネットワークがどの程度ビジー
状態にあるか(つまり、ネットワークの可用性)を示す。あるいは、ネットワー
クが(インターネットのような)広域ネットワークである場合、ホストコンピュ
ータがパケットを送信した時点から、受信コンピュータから受信の返答(acknow
ledgement)を受信する時点までの往復時間を用いて、ネットワークの可用性を 表す。このとき、この往復時間が短ければ、可用性は高い。ホストコンピュータ
が、WANに接続されたLANに接続されている場合、判断菱形206において
、一方または両方のネットワークの可用性を判断することができる。 【0081】 図11は、上述のバックアップロジックに加えて、携帯可能コンピュータを接
続するネットワークのために、好適にも、携帯可能コンピュータを自動的に構成
(configuring)する本発明を示す。とりわけ、本発明は、特定のプリンタ、サ ーバ、インタネット接続、およびコストコンピュータがたまたま接続されたネッ
トワークの記憶リソースに対して、携帯可能コンピュータを自動的に再構成(re
configures)することにより、ユーザは、ホストコンピュータがネットワークに
接続される毎に、こうした時間のかかる再構成処理を手動で実行しなくても済む
。 【0082】 ブロック212で開始して、本発明は、各ネットワークのデバイスのリストと
ともに、ネットワークの認証リストを、(自動的に、またはユーザの手動による
1回の入力により)編集する。例えば、特定の指定を有する職場プリンタ、特定
の指定を有する職場サーバ、特定の指定を有するインターネット接続、および特
定の指定を有する職場記憶リソースを備えたユーザの職場のLANによって、第
1のネットワークを確立してもよい。同様に、特定の指定を有する家庭プリンタ
、特定の指定を有する家庭サーバ、特定の指定を有する家庭インターネット接続
、および特定の指定を有する家庭記憶リソースを備えたユーザの家庭のLANに
よって、第2のネットワークを確立してもよい。 【0083】 本発明が意図するように、「ネットワーク構成」とは、ネットワーク上にある
どのような種類のどのようなデバイス、つまり、どのようなプリンタなどがネッ
トワークに接続されるかということを意味する。各ネットワーク構成に対して、
一連のホストコンピュータ設定が記憶され、包含される。換言すると、各ネット
ワーク構成に対して、一連のホストコンピュータ設定は、相関関係があって、ホ
ストコンピュータが、例えば、ネットワークのプリンタで印刷させることができ
る。ブロック212において、ネットワーク構成は記憶される。 【0084】 ブロック214に移って、本発明は、ホストコンピュータがネットワークに接
続された時点を検知する。ブロック216において、本発明は、どのようなデバ
イスがネットワークに接続されたかを検知する。判断菱形218に移って、この
ロジックは、ネットワークに実際に接続されたデバイスと、記憶されたネットワ
ーク構成とを比較する。例えば、90%以内で合致していることが検知されると
(つまり、ネットワーク上の10個のデバイスのうち9個が、ネットワーク構成
テーブル内の単一のエントリにあることが検知されると)、このロジックは、ブ
ロック220に移り、合致したネットワーク構成と相関するネットワーク設定に
従って、ホスト携帯可能コンピュータを再構成する。検知されたネットワーク構
成が、記憶されたネットワーク構成のいずれとも合致しない場合、このプロセス
は、ホスト携帯可能コンピュータ内にデフォルト設定を確立して、判断菱形21
8から終了する。 【0085】 ここで、図12および図13を検討すると、コンピュータ24(図1)が、一
般に、システム300と称するように図示されたとき、コンピュータ24上のコ
ンピュータファイルのブロックをバックアップするためのロジックに関する別の
実施形態が示されている。システム300は、コンピュータ24により実行可能
なロジック指令のシーケンスを有する。このとき、このシーケンスは、ブロック
302から開始し、コンピュータのオペレーティングシステムが起動する。 【0086】 判断菱形304に移り、コンピュータがバックアップのために、適正に構成さ
れているかどうかを判断する。つまり、ソフトウェア内に存在する現在のロジッ
クがコンピュータ24内に適正にインストールされているかどうかを判断する。
そうである場合、このプロセスは、判断菱形306を続けて、ユーザまたは自動
的に、バックアップ候補として、任意のファイルが選択つまり指定されたかどう
かを判断する。「バックアップ候補」とは、携帯可能なコンピュータ内にあるい
くつかのまたはすべてのファイルを意味し、上述のバックアップアルゴリズムに
より検討のために、バックアップ候補を選択することができる。このとき、いく
つかの(あまり重要でない)ファイルを、バックアップのための検討から除外し
て、処理速度を上げることができる。 【0087】 ファイルがまったく選択されなかった場合、このプロセスは、判断菱形306
からブロック306に移って、ユーザにより、バックアップの候補として、この
コンピュータ内のファイルのいくつかまたはすべてを選択できるように、ユーザ
インターフェイスを実行することができる。あるいは、ブロック308において
、コンピュータ内のいくつかまたはすべてのファイルを、バックアップのための
候補として自動的に選択することができる。例えば、ブロック308において、
バックアップのための候補として、テンポラリ・インターネットファイルは別と
して、すべてのファイルが自動的に選択されることもある。 【0088】 判断菱形306において、少なくともいくつかのファイルがバックアップのた
めの候補として選択された場合、このプロセスは、ブロック310に移り、図1
3を参照しながら以下詳述するネットワーク・インターフェイスをスタートさせ
る。プロッく312に移って、ネットワーク・インターフェイスがスタートする
と、コンピュータのファイルシステムが「フック(hook)」される。「フック(
hook)」とは、このロジックがコンピュータ24の元来あったファイルシステム
コード内に挿入されることを意味する。このように、任意のユーザがこのファイ
ルシステムにアクセスしたときはいつでも、このロジックが起動されるので、図
2および図3を参照して説明した利用のために、ファイルシステム内のブロック
に変更があったことを検知することができる。 【0089】 判断菱形314において、ファイルシステムが、システム300により成功裡
にフックされたかどうか、すなわち、ファイルシステムのフックが、正確かつ安
全に所定位置に存在するかどうかを判断する。その場合、このロジックは、状態
316に移り、2つのコンピュータシステム信号の一方のために待機状態に入る
。第1に、ブロック318において、ファイル変更信号が受信された場合、この
ロジックは、ブロック320に移行し、上述のバックアップアルゴリズム(例え
ば、図2および図3で示すアルゴリズム)に従って、新しいファイルデータを処
理する。このように、上述の原理に基づいて、バックアップ用ブロックとして処
理されたブロックは、携帯可能コンピュータの中にある「ホールド」領域と称す
る内部データ記憶領域内にコピーされる。ブロック320から、このロジックは
、ループバックして、状態316を持つ。 【0090】 一方、ブロック322において、コンピュータ・シャットダウン信号を受信し
た場合、またはブロック314において、ファイルシステムのフックがうまく処
理されなかったと判断された場合、あるいは、ブロック304において、コンピ
ュータが適正に構成されていないと判断された場合、このロジックは、ブロック
324に移る。ブロック324において、ファイルシステムのフックが終了する
。ブロック326に移って、出口信号が、図13で示すネットワーク・インター
フェイス・ロジックに送信された後、ブロック328において、「出口(exit)
」メッセージがコンピュータのモニタ上に表示される。このプロセスは、ブロッ
ク330において、コンピュータのオペレーティング・システムへ出る。 【0091】 ここで図13を参照すると、ネットワーク・インターフェイス・ロジックが図
示されている。このロジックは、状態332で開始して、判断菱形334に移り
、コンピュータ24において、ネットワーク・ソフトウェアが存在するかどうか
を判断する。存在する場合、このロジックは、第1の待機状態336に移り、2
つのシステム信号の一方を待つ。ブロック338において、図12で示すロジッ
クから出口信号を受信した場合、このプロセスは、ブロック340に移り、すべ
ての既存のネットワークを終了して、図12のロジックに帰還する。反対に、ブ
ロック342において、ネットワーク送信がスタートしたことを示す信号を受信
した場合、このロジックは、第2の待機状態344に移る。 【0092】 このロジックは、第2の待機状態334において、3つのシステム信号の1つ
を待つ。ブロック346において出口信号を受信できた場合、このロジックはブ
ロック340に移り、上述のように機能する。また、ブロック348において、
ネットワークが停止したことを示す信号を受信できた場合、第1の待機状態33
6までループバックする。さらに、ブロック350において、ネットワークが非
動作状態であることを示す信号を受信できた場合、このロジックは、第3の待機
状態352に進む。「非動作状態のネットワーク」とは、図10に関して上述し
た原理に従って計測されたように、ネットワーク上のデータ経路が非動作状態に
あることを意味し、好適には、コンピュータ24からネットワークまでのデータ
経路を意味し、または、あまり好適でないが、ネットワーク内の他のデータ経路
を意味する。 【0093】 このロジックは、第3の待機状態352において、4つのシステム信号の1つ
を待つ。ブロック354において、出口信号を受信できた場合、このロジックは
ブロック340に移り、上述のように機能する。また、ブロック356において
、ネットワークが停止したことを示す信号を受信できた場合、第1の待機状態3
36までループバックする。さらに、ブロック358において、ネットワークが
動作状態であることを示す信号を受信できた場合、このロジックは、第2の待機
状態344に進み、ネットワーク非動作信号を待つ。 【0094】 図13に示すように、ブロック360において、ホールド領域においてデータ
の準備が整っていることを示す信号を受信することがある。第3の待機状態35
2において、その他の3つの信号を受信する前に、このような信号を受信する場
合(つまり、「ネットワーク非動作状態」信号が存在したままか、実行中である
場合)、データは、ネットワークを介して、離れた場所にあるデータ記憶装置に
送信される。データ準備完了信号が存在して、かつ、第3の待機状態352にお
いて他の3つの信号が存在しない限り、このロジックは、ブロック360に留ま
る。 【0095】 図14を参照すると、ラップトップコンピュータのファイルのバックアップを
呼び出すための「スパルタ式」バージョンが図示されている。ブロック362で
開始して、例えば、バックアップすべきファイルを有する携帯可能コンピュータ
のオペレーティング・システムから非動作信号を受信する。例えば、ブロック3
62で非動作信号を受信すると、スクリーン・セーバ・プログラムが開始される
。 【0096】 上述の具体例において、スクリーン・セーバが現れると、このロジックは、そ
の後、ブロック364に移り、図2および図3で示すアルゴリズムに従って、バ
ックアップするためにファイルブロックをコピーする。加えて、図14に示すロ
ジックは、2つのテストを実行する。第1に、判断菱形366において、ラップ
トップコンピュータ内にある未保護のデータの量が所定のデータ量よりも多いか
どうかを判断する。「未保護」とは、バックアップすべき候補として、ユーザに
よりまたは自動的に選択されず、最近過去にバックアップされて以来、変更され
た(または、まったくバックアップされたことのない)データのブロックを意味
する。同様に、判断菱形368において、ホールド領域におけるデータ量(すな
わち、バックアップされるが、送信されていないデータ量)が、所定量を超える
かどうかを判断する。この所定量は、例えば、ネットワークの容量に依存するこ
ともある。判断菱形366、368において、どちらかのテストが肯定的であれ
ば、このロジックは、ブロック370において、携帯可能コンピュータのモニタ
上に、例えば、ホールド領域にあるブロックを送信するために、速やかにネット
ワークを接続すべきである旨を示唆して、警告表示する。 【0097】 ここに図示、説明された、広域コンピュータネットワークにおけるコンピュー
タファイルをバックアップするための特定のシステムおよび方法によれば、本発
明の上述の目的を実現することができる。これは、本発明に係る現在の好適な実
施形態であって、本発明を用いて広く実施される目的物を意味し、当業者には明
白となる他の実施形態が本発明の範囲に含まれるものと理解されたい。したがっ
て、本発明の範囲は、添付したクレーム以外によって、限定されるものではなく
、単数扱いで用いた構成要素は、「1つまたはそれ以上」と明確に記述されない
限り、「1つ、およびただ1つ」を意味するものとして意図される。 【図面の簡単な説明】 【図1】 図1は、本発明に係るコンピュータファイルのバックアップシス
テムの概略図を示す。 【図2】 図2は、初期化プロセスのフローチャートを示す。 【図3】 図3は、サブファイルのインクリメント式バックアッププロセス
に関するフローチャートを示す。 【図4】 図4は、復元プロセスのフローチャートである。 【図5】 図5は、共通ソフトウェアライブラリを自動的に更新するプロセ
スに関するフローチャートである。 【図6A】 図6Aは、バックアップされるデータを暗号化するためのプロ
セスに関するフローチャートである。 【図6B】 図6Bは、データセンタから受けたバックアップされたデータ
を暗号解読するためのプロセスに関するフローチャートである。 【図7A】 図7Aは、暗号化乱数として送信されるデータのメッセージ要
約(MD:message Digest)−5の比較値を用いて、ユーザ用コンピュータから
データセンタへ送信されるプロセスに関するフローチャートである。 【図7B】 図7Bは、図7Aで示すデータ送信を認証するプロセスに関す
るフローチャートである。 【図8】 図8は、ユーザがコンピュータを用い、コンピュータが広域ネッ
トワークを介して離れたデータセンタにオンライン接続されている場合に、ユー
ザ用コンピュータを継続的にバックアップするプロセスに関するフローチャート
である。 【図9】 図9は、コンピュータネットワークに時々接続される携帯可能コ
ンピュータ上のコンピュータファイルをバックアップするプロセスに関するフロ
ーチャートである。 【図10】 図10は、図9のロジック回路で形成されたデータを送信する
プロセスに関するフローチャートである。 【図11】 図11は、携帯可能コンピュータがコンピュータネットワーク
に接続されたときに、携帯可能コンピュータを自動的に再構成するプロセスに関
するフローチャートである。 【図12】 図12は、ラップトップコンピュータ上のファイルをバックア
ップする別のロジックプロセスに関するフローチャートである。 【図13】 図13は、図12のロジック回路の続きを示す。 【図14】 図14は、簡略化されたラップトップコンピュータのバックア
ップシステムのステップに関するフローチャートを示す。
DETAILED DESCRIPTION OF THE INVENTION       [0001] (Related application)   This application is related to U.S. patent application Ser. No. 09/10, filed on Jun. 19, 1998.
No. 0,914 is a continuation-in-part U.S. patent application. In addition, US patent application Ser.
No./100,914 is filed on Mar. 12, 1998, US patent application Ser.
No. 09 / 041,149 is a continuation-in-part U.S. patent application. This US Patent Application No. 0
No. 9 / 041,149 is a US patent application filed on Dec. 3, 1996
No. 08 / 757,134, which is a continuation-in-part of U.S. Pat.
No. 5,794,254, and priority is claimed from this time.       [0002] (Field of the Invention)   The present invention generally relates to computer file backup systems, and
The invention relates to an automated computer file backup system.       [0003] (Background of the Invention)   An enormous amount of information is stored in the hard disk drive of personal computers and its
It is stored on electronic media such as other well-known data storage media. like this
Information is increasingly and exclusively stored in these media in recent years,
For this reason, "hard" (ie, paper) copies no longer exist. Information on paper
So-called "paperless" information, in contrast to systems that need to be stored on top
The storage system requires less space and consumes more natural resources.
Never. Unfortunately, electronic data storage media "destroys,"
It is not uncommon for information to be damaged or lost. The loss of this information
Devastating and costly to information owners.       [0004]   Therefore, many computer system administrators have
Back up your copies regularly. Usually once a day (or other specific
System administrator) operates the computer system to
Copy files from the hard disk drive to other hard disk drives
Copies on a storage medium such as a frame or magnetic tape. Even if one file in the system
File or the entire hard drive is damaged and inaccessible.
File, for example, a file stored on a storage tape
Can be copied again.       [0005]   Such a backup system has several problems. First, these
According to the backup system, start the backup process, tedious and tedious work
User interaction, such as taking the time of a person in charge of the work. Further
Back up your computer files and back them up at the same location
The system that stores files can be used when a disaster such as a fire or flood occurs.
Not worth it. Because the backed up file copy is stored in the system
It is thought that the backup system will be destroyed together with existing files
This is because       [0006]   One example of an alternative backup system is US Pat. No. 5,479,654.
Disclose and modify computer files via modem to remote electronic storage
It is taught to transmit the done part. It's disclosed in the '654 patent
Changes made since the last backup
Are checked. This check is, first, The result of the so-called "exclusive OR" (XOR) of the file and the stored
Includes comparing previously required XOR values for backup versions
No. If the two XOR values do not match, it means that the file has been changed,
The changed part of the file may be a modem, LAN, WAN, or other network
Transmitted to a remote location via a network device.       [0007]   On the other hand, if the two XOR values match, a second, more area check is performed
, To detect if the segment has changed since the last backup.
In the second check, the cyclic redundancy check (CRC) of the segment and the last stored
Compare against CRC value. If the two CRC values do not match, the file has changed
Changed part of the file is a modem, LAN, WAN,
Or sent to a remote location via another network device. So
Otherwise, the segment has not changed since the last backup
Is assumed.       [0008]   Unfortunately, the system disclosed in the '654 patent requires two checks per check.
Requires calculations. Each calculation takes computation time, as recognized by the present invention.
And, consequently, to determine if there were any changes to the computer files
It is preferable to minimize the required number of calculations. In addition, it will be recognized here
Perform the first "quick and fraudulent" check, and check the area required for calculation
Can be reduced.       [0009]   Further, as recognized by the present invention, it manages data communication to remote storage devices.
Therefore, it is necessary to prevent one user from interfering with another user's operation. further
According to the present invention, some files are completely backed up in the first place.
It has been recognized that there is no need to step up. According to the invention, in one or more ways
Form restore file and restore lost files to computer system
The time required for this can be reduced.       [0010]   In addition to the above considerations, the present invention provides that when data is backed up at predetermined intervals,
Recognizes that backup data is formed at this interval and may be lost
are doing. Fortunately, according to the present invention, a user actively uses a computer.
Backup data over a wide area network when
Provides real-time and almost up-to-date data backup
be able to.       [0011]   In addition, if the data is communicated over a wide area network, is it for security reasons?
Preferably, the data is first encrypted. According to the present invention, the security
It has been recognized that the longer a single key in encrypted data is, the greater the risk of the key being broken.
Have been. For this reason, two or more keys are used to encrypt data.
Preferably. In the context of long-term backup,
Using two or more keys in a time interval is somewhat difficult
Akira is aware. This is because during the subsequent decryption, the correct encryption key
This is because it is difficult to associate the key with the original encrypted block.
However, as we recognize here, we make it easier to use more than one encryption key,
The risk of the encryption system can be reduced. The present invention additionally provides for each communication session.
It is preferable and possible to use a session-specific key for the session
, This unique key is used if each bit of the data being communicated is not logically known
Will not be broken.       [0012]   The present invention relates to a wrap that many people carry at work, from work, or while traveling.
Increased use of top computers or other portable computers
With a view. Laptop computer users often
Try to connect the top computer to the computer network. Network
Network system, for example, a simple home network with a single printer.
Or a local area network (LAN) at work
, Printers, server networks, and many other devices connected to a wide area network.
Network (WAN). In each case, the laptop
Computer users must reconfigure their computers each time they connect to the network.
It is recognized by the present invention that there is a need to For example, a specific printer,
Or a specific on the network where the laptop computer happens to be connected
Reconfigure the computer to communicate with another server. Portable computer
Reconfigure computers for every user connected to the network
It is tedious and time-consuming, and such restructuring is
The present invention recognizes that no user intervention is required to perform
I have.       [0013]   Regarding laptop computers, furthermore, laptop computers
Usually connected to the network continuously or at any regular interval in practice
Network, under certain conditions that the user's schedule allows.
Connected. Therefore, for the Internet, laptop computers
Planning and backing up data in advance is not the best solution
The present invention recognizes this. Rather, as understood here, the laptop
The computer is robust enough to occasionally connect to the Internet
Computer files backed up on a laptop computer
Needs to be sent. The purpose of the present invention is to address one or more of the above problems.
To be treated.       [0014] (Summary of the Invention)   The computer program product may be, for example, a portable laptop computer.
Computer programs that can be read by digital processing systems such as
It has a storage device. Logic on the computer program storage device
There is a means, and this logic means can be connected to a computer network.
From a band-enabled computer, in at least one local computer file
Perform method steps to back up at least some blocks
Having instructions executable by a digital processing system. This computer
The method steps performed by the program product include at least one script.
Receiving a screen saver signal; and responsive to the screen saver signal.
Preparing blocks to be backed up, and
Performing at least one of the steps of transmitting the
Having. In a preferred embodiment, the method steps are likewise defined
Data volume is backed up and the amount of unprotected data exceeds a certain threshold
Alert the user when one or both of the conditions exist
Have.       [0015]   In another aspect, the computer program product comprises a portable computer.
Has logic to determine at least blocks of computer files in the
I do. The program product may also be stored in a file on the portable computer.
Logic to access the system and access blocks to be backed up
Having means. Further, the logic means determines a block to be backed up.
Copy the block to the hold area of the portable computer in response to the
You. In addition, when a portable computer is connected to a computer network
Logic for judging points is provided. As described in detail below,
The packet determines when the data path of the network is inactive. data
When the path is inactive, blocks in the hold area are transferred through the network.
To a remote data storage device.       [0016]   The preferred logic is to block computer files in a portable computer.
If you decide that the lock should be backed up,
call. When a file change signal is received, the block is backed up to the hold area.
Can be When a data ready signal is received, the block is
Field to the network. This computer program product
, In cooperation with portable computers and networks.       [0017]   In another aspect, a computer program product comprises a digital processing system
Program storage device readable by computer and program means
On a program storage device. As the present invention intends, this program
System devices are realized inside critical mechanical components,
The processing system comprises at least one mobile phone connectable to a computer network.
From a possible computer in at least one local computer file
Perform method steps to back up one or more blocks.
Run. The method steps performed by the computer program product include:
Preparing the blocks to be backed up and the portable computer
Determining whether or not it has been connected to the network. Portable compilation
If the computer is connected to a network, one or more blocks
Enable transmission. According to the invention, this block contains other data to be transmitted.
Interleaved.       [0018]   In the above-mentioned applications, the local files to be backed up
Two statements each defining a first comparison value for at least some blocks
The letters are copied to form a digital signature code defining a second comparison value. Small
The test digital signature code is determined periodically for at least some blocks.
And compares it with each of the second comparison values. Block test digi
If the digital signature code does not equal all the second comparison values,
It is determined whether the first two characters are equal to one of the first comparison values. Conversely
, If the first two characters are equal to one of the first comparison values,
The digital signature code of the block, using the ith test byte as one byte
Is determined. Then, the digital signature code of the block is used to determine the value of the second comparison value.
Is determined, and the block's digital signature code is
If it is equal to one of the comparison values, reply "Resync". Otherwise, number i
If the first two characters of the first test byte are not equal to one of the first comparison values
Or the digital signature code of the block is equal to one of the second comparison values
If not, i is moved up by the unit element (1). This computer program manufacture
An object is disclosed in cooperation with a portable computer.       [0019]   If necessary, the computer program product is preferably connected to a network.
Network based on the presence and type of one or more devices connected to the
Determine the configuration and then correlate with the settings of at least one portable computer
Or you can have a relationship. Settings on the computer in response to the correlation step
Can be established.       [0020]   In yet another form, one or more of the portable computer's one or more computers
Back up one or more blocks of a file and net the blocks
A portable computer for transmitting to a remote computer storage location via a workpiece
Data backup system is a portable computer connected to a network.
Logic means for determining when is being performed. In addition, this system
Logic to determine whether the network availability is at least equal to a given availability
It has a locking means. Further, the logic means may satisfy one or more transmission criteria.
When adding, a block to be backed up is transmitted to the network.
This transmission criterion is based on the fact that the portable computer is connected to the network.
There may be.       [0021]   In yet another embodiment, backing up computer file blocks
The computer-implemented method for performing
To encrypt at least one block using one or more encryption keys
Become The method further includes storing one or more keys in a key file.
And transmitting this block to a remote data center.
I do. Next, the method removes this block from the data center during the recovery time.
Send to user computer and select one key from key file. this
If the block is decrypted with this key, the method succeeds
Determine whether or not. If the decryption was not successful, another key from the key list
To decrypt this data and repeat the steps above until decryption is successful.
Is repeated.       [0022]   In another embodiment, transmitting data between a sending computer and a receiving computer
How to provide a session key for the sending session to
Collecting the data digital signature and encrypting the data to encrypt the data
Utilizing digital signatures.       [0023]   In another embodiment, a user computer and at least one data storage device
A method for backing up data in a system, comprising: The data accompanying the user's computer
Determining whether it is present in the directory. This data is shared software
This data is not backed up if it exists in the wear library. so
Otherwise, this data must be at least
This data is automatically stored in the common software library if it exists in the
Will be added.       [0024]   The details of the invention, in structure and operation, are best understood with reference to the accompanying drawings.
It will be appreciated that like reference numerals indicate like components.       [0025] (Detailed description of preferred embodiments)   Referring first to FIG. 1, a system, generally indicated at 10, is illustrated.
The system includes a server computer, referred to herein as a data center 12.
I do. The server computer is part of a computer network. Suitable
In the embodiment, the data center 12 is a computer called the Internet.
A part of the network 14 that is a modem, LAN, WAN or other network.
Connection with another computer on the network 14 via the network device 16
can do.       [0026]   As shown in FIG. 1, the data center 12 stores the accompanying common library 20.
Including an electronic data storage reservoir 18. Preferably, support the majority of users
In order to be able to scale this system 10, the data store 18
Has a capacity of several terabytes or, in fact, one petabyte. Data storage
The capacity of 18 is preferably 100 terabytes or more, and 500 terabytes.
More preferably, it is the above. The control module 22 includes a new
Controls the flow of data to and from data store 18 in cooperation with regular logic
I do.       [0027]   In accordance with the present invention, the common library 20 is widely distributed and serves a large number of users.
To store computer file blocks used by
And versatile. For example, the common library 20 is a well-known off-the-shelf personal
Copy of computer operating system, network browser, etc.
Can be stored. The common library 20 will be described later with reference to FIG.
As will be explained, they can be updated automatically. As the present invention intends
, The data storage reservoir 18 with the common library 20 is, for example, a magnetic tape,
Hard disk array, compact disk read-only memory (CD-ROM
), DASD array, or physical media in a suitable medium such as a floppy disk.
Can be configured.       [0028]   A plurality of user computers 24, for example, personal computers, portable
Computer or palmtop computer is the model for each user.
Through network 26 or other suitable network communication.
I believe. In the preferred embodiment, each of the user computers 24 includes software
And a backup module 28 realized by the backup module.
The module 28 guarantees the inventive step of the present invention. In another embodiment,
This backup module 28 is detached from the user computer 24,
Or should be understood to have access to it. More easily understandable
In order to do so, each of the user computers 24 has a CD-ROM drive mechanism 30.
Have. As will be appreciated by those skilled in the art, the user computer 24 may also be
, Video monitors, printers, and other output devices, as well as keyboards and
And other input devices.       [0029]   2 to 8 are implemented as computer program software,
2 shows a configuration of a backup module 30 of the present invention. It will be understood by those skilled in the art
As such, these drawings illustrate the computer program code that performs the functions of the present invention.
2 shows a configuration of a logic element such as an element or an electronic logic circuit. clearly
The present invention, in an essential embodiment, is realized by using a mechanical part.
A form that gives instructions to a digital processing device (that is, a computer) depending on the product
Logic elements having the following steps correspond to the series of functional steps illustrated in the drawings.
Run       [0030]   These directives may be stored in a core such as a programmed computer diskette.
Computer program including data storage media for establishing product May reside on a program storage device. Alternatively, these media
Magnetic tape, optical disk, conventional hard disk drive, electronic readout
Memory, or electronic random access memory, or other suitable data.
Can also be found on semiconductor devices such as data storage devices. Description of the invention
In a typical embodiment, the logic means comprises C++The computer described by the language code
This is a command that can be executed by the data.       [0031]   Referring now to FIG. 2, the initialization process can be understood. This
The process begins at a start state 32 for each user computer and proceeds to block 3
Move to 4. At this time, the file index counter “j” is a unit element.
It is set to be equal to (1). Proceed to decision diamond 36, which will be explained later.
The so-called “Message Digest Five (MD5) ) "Code, a copy of the jth file is already in the common library 20
Determine whether it is memorized. This is the same as MD5 of the j-th file
By comparing the MD5 of the file in the library 20 with each file,
Can be done. For each file stored in the common library 20,
One of the MD5 of the file in the common library 20 matches the MD5 of the file.
If so, the process proceeds to block 38 where the file is
Flag the file as being in the common library 20. Accordingly
Thus, not all of the majority of candidates are transmitted to the data center 12.       [0032]   Alternatively, the MD5 of each block of each j-th file and the MD5 of the common block MD5
By comparing the lists, the MD5 list of the common library in the common library 20 is added.
Flag the file only for blocks that have an MD5 that matches the MD5
By standing up, greater granularity can be achieved . Therefore, the majority of the candidates are not transmitted to the data center 12.
When the j-th file exists in the user computer 24, the j-th file
If the file is changed from the common existing version in the common library 20, the change
The detected part is detected, and the subfile increment described later with reference to FIG.
It should be understood that the data is sent to the data center 12 during the client-based procedure.       [0033]   In any case, if the common library 20 is used, many personal computers can be used.
On most personal computer systems.
Very large numbers of off-the-shelf computer hardware that require backup if not
It will be appreciated that the need to send files to the data center 12 can be avoided.
. In other words, using the common library 20, the user computer 24
The time and effort to make the first copy of the file can be reduced.       [0034]   In addition, at block 38, a list of comparison values for each block is stored.
This list was flagged as being in the common library 20
Each i-th block of each j-th file (where "i" is the block index
Counter. ). The first entry is
The first two characters of the first byte of the i-th block ("XXi"). Symmetrically, The second entry is a data as a value that uniquely defines the content of the i-th block.
Digital signature ("MD5"). The first entry is the first comparison value, the second entry
Form a second comparison value.       [0035]   As described above, in this preferred embodiment, the digital signature used
"Message Digest Five (128-bit)
MD5: message digest five) code. As recognized by the present invention In addition, the MD5 code of a block is large even if there are very few changes in the block.
Change. The digital signature according to the invention is preferably a checksum, a cyclic redundancy code.
, And so-called "exclusive OR" codes,
Be more sensitive.       [0036]   From block 38, the logic proceeds to decision diamond 40, where the user computer 2
Determine if the last file in 4 has been inspected. Last file inspected
If so, the initialization process ends at state 42. Otherwise, this
The process proceeds to block 44 and increments the file index counter "j" by one.
The process returns to decision diamond 36.       [0037]   In contrast, in decision diamond 36, the ith block of the jth file
Is not in the common library 20, the logic
Go to 46 and copy each copy of the i-th block where the j-th file does not exist
The data is transmitted little by little to the data storage 18 of the center 12 (trickle). copy To send a little bit (trickle copy)
This means that the data is transmitted to the data center 12 during a predetermined transmission period. Fa
Until all non-existent parts of the file have been sent or the send period has expired.
This transmission period is referred to herein as a “window”. Alternatively, see FIG.
As will be described later, the user computer 24 is connected to the network
If the connection is online, the data to be backed up
When input to the computer 24, it can be transmitted in real time.       [0038]   The transmission period elapses before all nonexistent parts of the file have been transmitted
After each backup module 28 completes the transmission of a chunk, finish. If the transmission is interrupted during the transmission period, the module 28
Since the value of the lock index counter “i” is stored,
Transmission can be resumed from there. At the beginning of the next transmission period,
The up module 28 converts the block index counter “i” into an identity (
The transmission of the i-th file that was interrupted last time is started by moving up only by 1). In FIG.
As shown, at block 46, the ith XXiAnd MD5iBro about
A per-lock list is created as described above with reference to block 38. this
Logic proceeds from block 46 to decision diamond 40 and functions as described above.       [0039]   Referring now to FIG. 3, a subfile incremental backup log
A lock is shown. As intended by the present invention, periodically (eg, one day
Backup module 28 of each user computer 24
The process detailed below is performed.       [0040]   Starting at decision diamond 48, a predetermined backup period selected by the user is started.
To determine if they have been If so, the process proceeds to block 50.
In each j-th file specified by the user,
Then, a DO loop is entered. Thereafter, the process proceeds to block 52 where the block
DO loop for each i-th block of the j-th file selected in
to go into.       [0041]   Proceeding to a block 54, the backup module 28 determines that the i-th block
Digital Signature MD5 to be Strucki newIs calculated. Next, in decision diamond 56,
Digital signature MD5 to be tested for i-th blocki newIn FIG. 2 as described above.
Digital signature MD5 stored in the formed listi oldCompare with       [0042]   Digital signature MD5i oldIs a list having an order from i = 0 to i = n.
Where n is the number of digital signatures in the list. i-th
Eye block tested digital signature MD5i newIs the first i in the list
Eye block digital signature MD5i oldIs compared with, if not, then the order
Next digital signature MD5 in the list withi old(That is, i-th + 1MD5ol d ) And so on until a match is found, or until the end of the ordered list. It is. If a match is detected anywhere in the list,
The test is affirmative and the process moves to decision diamond 58. Also squirrel
When it is detected that a match has occurred at the l (el) -th position in the
MD5 of (i + 1) th block to be reseti + l newBut first, MD5i + l old,
That is, it is compared with the (i + 1) th element in the list having the order of the old digital signature.
Are compared. If no match is detected, the MD of the (i + 1) th block
5i + l newIs then numbered (i + 1) in the list with the old digital signature order.
It is continuously tested against the digital signatures in the list after the eye element.       [0043]   Returning to the description of the i-th block, it is detected that the digital signature matches.
If this is the i-th block to be tested since recently backed up
Has not changed, and the process moves to decision diamond 58.
In decision diamond 58, the logic determines that the last block of the jth file is a text.
To determine if it has been tested and, if not already tested,
Loops back and calls the next ith block, as shown and detailed
, Calculate the digital signature. In other words, for the jth file to be tested
Repeat the index counter “i” one by one as long as the block remains.
increase. The process 54 loops back to block 54.       [0044]   On the other hand, if the last block of the jth file was tested,
In the decision diamond 60, the last file in the user computer 24 is tested.
To determine if the If not already tested, this process
Loops back and calls the next file, as described above,
Test the block. If the last file was tested, this process
Moves to the decision diamond 62.       [0045]   In decision diamond 62, whether the backup period has elapsed,
To determine if the restored backup window is still open
You. If the backup period has elapsed, the logic loops to decision diamond 48.
Back up and wait for the start of the next allocated backup period. Conversely, backup
If the loop window is still open, this logic
, 16 (or other network device such as LAN or WAN)
Thus, an attempt is made to establish transmission with the data center 12.       [0046]   At decision diamond 64, it is determined whether a transmission connection has been achieved. Send is connected
If not, the logic proceeds to block 66 where a predetermined timeout has been reached.
After waiting for a period of time (preferably 5 minutes), loop back to decision diamond 62, and
If the window is still open, try to reconnect. Either way, Yu
After all files in the user computer 12 have been tested, the user computer
It is determined that transmission has been established between the computer 12 and the data center 12.
If so, the logic proceeds to block 68 with all remaining updated
Blocks are encrypted, compressed (as described in more detail below), and
12 is transmitted. This process loops back from decision block 68 to decision diamond 48.
Click.       [0047]   Explaining the negation loop derived from the decision diamond 56, the i-th block
Digital signature matches any of the digital signatures stored in the list of blocks
If not, it means that the i-th block has been changed and therefore the i-th block
The backup is a candidate for backup. In addition, this process is
Resynchronize with the comparison value list for each check.       [0048]   Therefore, after a negative decision is made in decision diamond 56 (ie, this logic
When the block essentially responds with a "change block" signal), this logic
Move to step 70. At this time, for the k-th byte of the i-th block, DO
Enter the loop. "K" is an index counter initially equal to unity (1)
It is. Proceeding to decision diamond 72, the logic determines the kth byte to be tested.
The first two characters of the block starting with ("XXk new)) Is the i number in the comparison value list
The first comparison value corresponding to the eye block (“XXold)) . This list of comparison values contains the ordered digital signature MD5.oldParallel to Please understand. As a result, there is no match in the first comparison, and the decision diamond 56
As in the test in, until a match is found or the end of the list is reached,
The next two characters XX in the list with the ordinaloldFor XXk newAre compared.       [0049]   If no match is found and the end of the comparison value list is reached, this logic
Proceed to diamond 73 and the end of the candidate block where the current kth byte is tested
Judge whether it is a byte. In other words, in decision diamond 73,
The logic determines whether the byte index counter "k" is equal to about 2048.
To determine If so, the logic proceeds to block 74 where the block
After incrementing the index counter "i" by the unit (1), this logic
The loop proceeds to decision diamond 58. In this case, all blocks to be inspected
And a flag is set to copy. In decision diamond 73, byte in
If the dex counter "k" is not equal to 1000, this logic
Then, “k” is moved up by the unit element (1), and in decision diamond 72,
Test the next byte in the ith block.       [0050]   However, in decision diamond 72, "XXk newIs "XXoldIs equal to If so, the logic proceeds to decision diamond 75. In judgment diamond 75
, The digital signature of the block having the kth byte to be tested as the first byte
The name MD5 is determined, and the second comparison value, that is, the matching statement in the comparison value list
Character XXoldDigital signature MD5 corresponding tooldIs compared to In decision diamond 56
Digital signature to be tested, if necessary to find a match, as well as a test
MD5 is the subsequent digital signature MD5 in the ordered listoldAgainst tes Is If no match is detected, the logic proceeds to decision diamond 7
Go to 3.       [0051]   However, blocks that have the kth byte to be tested as the first byte
The digital signature MD5 of the task is, in decision diamond 75, the data in the ordered list.
Digital Signature MD5oldIf it is determined to be equal to one of the Respond "synchronized" and move to block 76. In other words, judgment diamond 7
A positive test result at 5 indicates that this logic was backed up in the past
Find the old unchanged block and this logic will resync against the list of comparison values.
It means that.       [0052]   In block 76, the changed block (here, the "transmit block"
Also say. ) Moves to the "next chunk" file. block
At 76, the comparison value list tests the block in the next backup cycle.
The modified block used as the first and second comparison values during
Is updated to include the first two characters and the digital signature. Judgment diamond 78
To determine if the chunk file is full. Current
In a preferred embodiment, the size of the chunk file is 5 megabytes (5 MB).
When it is full.       [0053]   If the chunk file is not full, the logic returns to decision diamond 58.
Conversely, if the chunk file is full, the process proceeds to decision diamond 80.
Whether the backup period has expired, ie the allocated backup
Determine if the window is still open. This period has passed
If so, the logic loops back to decision diamond 48 to make the next allocation
Wait for the scheduled backup period to begin. Conversely, the backup window
Is still open, the logic proceeds to step 64 and
66, and when the transmission is successfully connected, this chunk is To the data center 12. This logic returns from block 82 to decision diamond 58.
You.       [0054]   FIG. 4 shows the logic that can restore a lost file to the user computer 24.
Is shown. As is evident here, the data center 12
File blocks are stored periodically (eg, weekly, monthly, quarterly, etc.).
From the storage 18 to CD-ROM discs, these discs are
To the same physical location as the user computer 24. Hereinafter, these C
The D-ROM disk is called "local backup system".       [0055]   At block 84, the user computer 2 in the data center 12
4 is downloaded from the data center 12.
It is. Next, at block 86, the ith block of the lost file
On the other hand, a DO loop is entered as follows. In decision diamond 88, file block
The requested version of the lock is on the local backup system It is determined whether it is above. If so, at block 90, the block
The disk is restored preferentially from the local backup disk. If not
For example, at block 92, the block is transmitted from data center 12 to modem 26.
, 16 are restored. This logic is performed at block 90 or block 92.
Loops back from and calls the next i-th block,
Continue this process until the files are restored.       [0056]   Referring to FIGS. 5-8, further inventive features of the present invention will be understood. Special
Referring to FIG. 5, the common software library 20 shown in FIG.
Starting at 00, it can be updated automatically. Block 1
At 00, the server (ie, data center 12 shown in FIG. 1)
For each digital signature MD5 code, with accompanying blocks received for
And execute a loop by moving to decision diamond 102, where the test
Whether the digital signature MD5 code to be stored is stored in the library 20 as a candidate.
To determine A specific digitally signed MD5 code is first used for any user
Received from computer. The result of the test at decision diamond 102 is negative
In some cases, the process naturally proceeds to block 104 where the candidate list is
The digital signature MD5 code is stored. In block 104, the test
Counter J for the particular digital signature MD5 code to beMD5Is the unit (1) Is set to be equal to Proceeding from block 104 to block 106,
The next received digital signature MD5 code is called, and the process described above
5 is repeated as shown by the dashed loop-back line.       [0057]   Meanwhile, the digital signature MD5 code is received in advance from the user computer.
, That is, when the result of the test at the decision diamond 102 is positive.
, The process proceeds to block 108 where the digital signature MD5 to be tested is
J attached to the codeMD5Up by one. Digital signature MD to be tested Counter J attached to 5 codesMD5Received from any user computer Not sent beforehand, or the digital signature MD5 code to be tested
Digitally tested whenever received from a user's computer
Counter J attached to signature MD5 codeMD5Can be moved up by one.       [0058]   Next, in decision diamond 110, the digital signature MD5 code to be tested is attached.
Accompanying counter JMD5Is determined to be equal to a predetermined value “k”. this The process is a counter JMD5Is not equal to the predetermined value "k", block 1 Loop back to 06 and, if equal, proceed to block 112 for the associated block.
Along with the digital signature MD5 code to be tested
Add to Lari 20. Thereafter, the process loops back to block 106.
Then, the next digital signature MD5 code is called.       [0059]   FIGS. 6A and 6B show a case where a user performs backup using a plurality of encryption keys.
Of the present invention, which can enhance security by transmitting data for
Show the features. Starting at block 114, at the user's computer, FIG.
Or blocks requiring backup selected by the steps described above in FIG.
Of each digital signature MD5 code is determined and attached to each data block.
This digitally signed MD5 code is then converted to a compression scheme widely known by those skilled in the art.
Compressed using principles. Proceeding to block 116, the MD5 code,
Data block is encrypted using a user-selected key on the user key list
. The process ends at block 120 at block 116, but with the transmission
It should be understood that the steps can be performed. Next, the user computer
Loses the data packet processed by the steps shown in FIG. 6A, for example.
Request to receive a copy of the data packet from data center 12
In this case, the user computer calls the steps shown in FIG. 6B. Block 12
Starting at 4, the user's computer sends a block from the data center 12 to store.
Block and perform the following steps for each block. At block 126
In addition, after selecting the first encryption key from the list, the computer blocks
At 128, the block is decrypted and decompressed. Proceed to decision diamond 130
In, the computer for the user, for example, as indicated by the data overflow,
Determine if decompression failed. If compression fails, this process
Proceeds to block 132, selects the next encryption key from the list, and then
Loop back to block 128 and attempt compression again.       [0060]   On the other hand, in decision diamond 130, it is determined that the decompression was satisfactorily performed.
If so, the process proceeds to block 136 where the packet data is decoded.
Extract digital signature MD5 code and data attached to block to be decrypted
By calculating the digital signature MD5 code of
Authenticate. At block 136, when performing this process, the digital signature
The name MD5 code is a 128-bit long code attached to data associated with a known position.
String, and as a result, easily remove this digitally signed MD5 code
The present invention is understood to be possible.       [0061]   In decision diamond 138, the calculated digital signature MD5
In block 136, the decrypted digital data extracted from the data is read.
Tal signature MD5 code is compared. In decision diamond 138, two digital
If the signature MD5 codes match each other, the key being tested is authenticated and this
The process responds at block 140 with the "exact key." Then bro
In the block 124, the next data portion is called. Two digital signature MD5
If the codes do not match each other, the process loops back to block 132
To call the next key in the key list of the user's computer.       [0062]   FIG. 7A provides a unique session-specific session key for encryption.
Here's how to do it. Beginning at block 142, for the entire series of data to be transmitted,
Digital signature MD5 code is calculated by the computer transmitting the data.
You. Proceeding to a block 144, the digital signature MD5 code is
Used as an encryption key for the session. Only 56 bits needed for key
If not required, a 128-bit data length is calculated using exclusive-OR (XOR) processing.
The half 64 bits of the digital signature MD5 code are combined. Resulting
The last 8 bits of the 64-bit string
You.       [0063]   From block 144, this logic is performed as indicated by "A" and "B".
Take two options. In particular, at block 146A, the digital signature
Block after being encrypted using MD5 code (or a part of it) as a random number
At 148A, the data is transmitted to a receiving computer. On the other hand, the session
The part of the digital signature MD5 code that functions as a key is
In step 146A, the digital signature MD5 used to encrypt the data
Part of the code) using traditional private / public key encryption principles.
Or more preferably, using the Diffie-Helman encryption principle. And transmitted from the transmitting computer to the receiving computer. That is, 146
In B, the transmitting computer uses the public key of the receiving computer to
The signature MD5 code can be encrypted. Then, at block 148B
And the receiving computer uses the private key to create this digitally signed MD5 code
Can be decrypted. As shown in FIG. 7A, block 150
Receiving the result obtained in step 148A and block 148B,
It can be decrypted using the D5 code session key.       [0064]   FIG. 7B performs the authentication steps illustrated in blocks 152-158.
This allows the data received at block 152 to be authenticated. Bird
In other words, at block 152, the receiving computer
The digital signature MD5 code of the data related to the decrypted data is calculated. next,
In decision diamond 154, the digital signature MD5 code
Is the digital signature MD5 code received and decrypted at block 148B.
Be compared. Only 56 bits of the XORed digital signature MD5 code are secure.
When used as a session key, the comparison at decision diamond 154 is
Key and the XOR of the digital signature MD5 code calculated in block 152
You can do this with the processed version.       [0065]   In any case, in decision diamond 154, the two digital signature MD5 codes are
If so, the session key being tested is authenticated and the process proceeds
At lock 156, respond that "transmission is authorized". Two digital
If the signature MD5 codes do not match, the process proceeds to block 158
, "Transmission error".       [0066]   Here, with reference to FIG.
Shows a method for backing up data. At this time, the user computer
Is online with the network and the user
I use. Beginning at block 160, the principles described above are used.
It is necessary to back up changed data blocks based on
As determined by the computer (without waiting for the backup start time, this process
Rather than constantly, in real time,
decide. ), The process moves to decision diamond 162. In judgment diamond 162
In this process, the user computer is, for example, as shown in FIG.
To determine if you are online with a good network. Online connection
If not, the process proceeds to block 164 and connects online.
The data to be transmitted when the data is transmitted is stored.       [0067]   On the other hand, in decision diamond 162, this process involves the user computer
If it determines that it is online with the network,
Proceed to diamond 166 and the central processing unit (CPU) of the user computer is busy
To determine if you are in a state. In particular, priority over the backup task shown in FIG.
Whether the task with the higher priority is processed and the CPU is busy
Judge whether or not. CPU has higher priority than this data backup task
If so, the process proceeds to block 168.
Until all blocks are sent or prioritize over backup task
Send blocks until the computer is occupied again to perform high tasks
I believe. If the block transmission is interrupted by a higher priority task,
The computer for the user performed the higher priority task and completed
At this point, return to this backup task to complete the data block transmission
I want to be understood. The logic then proceeds to block 169 to send.
Determine another block to be used, and use the user's computer for other tasks
When you are sending blocks in virtually real time.       [0068]   The loop between block 170 and decision diamond 166, and at block 168
The "busy" loop illustrates the principle of the above description. Size
At diamond 166, a request is made to perform an input task such as a key operation.
If the CPU is busy, such as when
Go to 0, wait for a predetermined period Δt, and try again at the decision diamond 166
. The length of At is very short, on the order of milliseconds or microseconds. Alternative
, This logic defines Δt which is essentially “CPU inactive”
If the CPU is not operating, the process proceeds to block 168 to transmit data.
You.       [0069]   For example, while performing a test at decision diamond 166, the CPU
Data input can be received via key input by a user. In that case,
The process continues at block 170 after waiting for the keystroke to be completed.
, Block 168 to transmit data. Thus, in one embodiment
Thus, this process is performed between CPU tasks supporting the user's request, for example,
Send backup data between one keystroke and the next. Furthermore, this
The process is changed by key input, determined as backup data, and
Data is written in substantially real-time as it is created by the computer user.
Remember, data transmission over the Internet.       [0070]   9 and 10 show that, for example, the user computer 24
If you are using a laptop or palmtop computer
2 illustrates the principle described above in a preferred embodiment of the invention. As detailed below,
According to the present invention, in the environment of a portable computer,
When the data is not connected to the network, the file blocks are copied,
When connected to the network, the copied blocks
Sent to the storage device.       [0071]   Beginning at block 180, the host portable computer is running.
This logic is used for all files on the user's computer.
Or only a set of files set by the user need to be backed up?
Consider whether. The user can, for example, include / exclude squirrels with wildcards.
A series of files for backup using inclusion / exclusion lists. If the file is set (eg, by directory),
A series of files is received. From block 182 or from decision diamond 180
There is no user-configured set of files, all files (or a set of
Default file) is a candidate for backup, and this logic
Proceeding to 184, according to the logic as previously described with reference to FIG.
Prepare a block in a unique chunk. As already explained, the user can
For other tasks, such as processing and creating slides for presentations
If a host computer is used, the backup process is invisible to the user.
It is implemented in a "background".       [0072]   Decision diamond 186 represents the logic according to the present invention, which logic is
On the computer to determine whether the specified storage space limit has been reached.
Monitor. As recognized by the present invention, what is up but network
Portable computers such as laptop computers that are not connected
Blocks to be backed up are duplicated and formed, which limits storage space.
In some cases. At this time, the steps in the decision diamond 186 are “background” processing and
If the user's storage capacity becomes full due to the intended backup process
It is not to be. In this preferred network embodiment
, Less than 5% storage capacity of host computer for backup
Used for Alternatively, the user sets a predetermined storage space limit.
If the storage space limit has been reached, the logic moves to block 188 and
For example, after sending a block to be backed up,
Until you delete the backup copy and free up additional storage space,
Suspend the backup process.       [0073]   Decision diamond 186 from block 188 or when the test result is negative
From this, the logic moves to decision diamond 190. As indicated by the decision diamond 190
The logic is that the host portable computer is connected to the network
Monitor if If no network connection is detected, this logic
Moves to block 192 and continues the backup process as described above,
Logically loop back to decision diamond 186.       [0074]   Conversely, when the logic detects a network connection, it determines if a decision diamond 194 is present.
This host portable computer is actively transmitting data as shown in
Judge whether or not. The host portable computer actively sends data
If so, this logic backs up the
The processing is temporarily suspended, and thereafter, the processing loops back logically to the decision diamond 194, and
Wait for data transmission to complete. If the host portable computer is not transmitting data
If so, the logic returns to block 192.       [0075]   The logic flow shown in FIG. 9 illustrates the principle of the present invention for explanation, and
In this case, the logic code may be an event waiting method, that is, the judgment diamond 1
To monitor the conditions represented at 86, 190 and 194
Please understand that it is good. Similarly, shown in the flow format of FIGS. 10 and 11
The logic is executed as event waiting mode code.       [0076]   Here, referring to FIG. 10, the back formed by the logic shown in FIG.
Logic for transmitting a block to be up is shown. Block 1
Starting at 98, the transmission logic opens when a network connection is detected.
Begun. In the preferred embodiment, blocks are available and network bandwidth
If allowed, the outgoing backup blocks are given priority,
When the host computer is connected to the network and the
If there is no traffic at all, or if using the network interferes with transmission
Then, the backup processing shown in FIG. 9 is executed.       [0077]   Moving to decision diamond 200, the logic prepares to send a block of data.
Judge whether or not is in place. If so, this logic will go to block 2
02, for example, to relevant metadata or other data to be transmitted,
Interleave this block. The purpose of this is
All forward pros made during the backup session to the body
Gless (forward progress) so that the transmission is
The benefits of the work completed up to the point at which it was stopped can be enjoyed. In this regard
In the process, this process is considered to be "striking" data, in which
Make the sending flow work at any point and still maintain a viable entity
Can be       [0078]   From block 200, the process moves to block 202 where the last actual
Define a “last block” to identify the blocks to be interleaved
You. Thereafter, the process moves to decision diamond 206.       [0079]   Decision diamond 206 is sufficient to send the backup data to the network.
It is determined whether there is availability of the network. In one embodiment,
In order for this logic to send backup data, network availability
Must be less than a predetermined set value for the overall availability, for example, less than 70%. So
If so, the logic moves to block 208 and sends the data. That's right
If not, the logic moves to block 210 where the network availability is determined.
Wait until the value becomes equal to or less than the set value, and use the resynchronization logic described above in FIG.
Resume process.       [0080]   In one preferred embodiment, the network is a local network
(LAN), operating system performance count
The determination in step 206 is performed using the data. For example, the operating
If the operating system is a Microsoft operating system,
Transmissions per unit time using the number of dynamic keys in the performance registry
The number of packets can be determined. This ratio depends on how busy the network is
Indicates whether it is in a state (ie, network availability). Or network
If the network is a wide area network (such as the Internet), the host computer
From the point when the data has been sent, the receiving computer
ledgement) using the round trip time to receive the network availability Represent. At this time, if the round trip time is short, the availability is high. Host computer
Is connected to the LAN connected to the WAN,
, The availability of one or both networks can be determined.       [0081]   FIG. 11 shows a portable computer connected in addition to the backup logic described above.
Automatically configure portable computers, preferably for connected networks
1 shows the invention to be configured. In particular, the present invention relates to specific printers, Network, Internet connection, and cost computer
Automatically reconfigure the portable computer to the storage resources of the
configures) allows the user to connect the host computer to the network
Eliminates the need to manually perform these time-consuming reconfiguration operations each time a connection is made
.       [0082]   Beginning at block 212, the present invention provides a list of devices for each network and
In both cases, the authentication list of the network (automatically or manually by the user)
Edit (with one input). For example, a workplace printer with a specific designation, a specific
A work server with a designated designation, an Internet connection with a designated designation, and
The user's workplace LAN with workplace storage resources having a specified designation
One network may be established. Home printers with specific designations as well
, Home server with specific designation, home internet connection with specific designation
To a user's home LAN with home storage resources having specific designations
Thus, a second network may be established.       [0083]   As intended by the present invention, a "network configuration"
What kind of device, what kind of printer, what kind of printer, etc.
Network. For each network configuration,
A series of host computer settings are stored and included. In other words, each net
For a work configuration, a series of host computer settings are correlated and
Can be printed on a network printer, for example
You. At block 212, the network configuration is stored.       [0084]   Moving to block 214, the present invention provides that the host computer connects to the network.
Detect the point at which it was continued. In block 216, the present invention determines what device
Detects whether the chair is connected to the network. Moving to decision diamond 218, this
Logic consists of the devices actually connected to the network and the stored network.
Compare with the network configuration. For example, if a match is detected within 90%
(That is, 9 out of 10 devices on the network have network configuration
When it is detected that it is in a single entry in the table), this logic
Move to lock 220 to set network settings that correlate with the matched network configuration
Therefore, the host portable computer is reconfigured. Network configuration detected
If the configuration does not match any of the stored network configurations, this process
Establishes the default settings in the host portable computer and determines
It ends from 8.       [0085]   Considering now FIGS. 12 and 13, computer 24 (FIG. 1)
Generally, when illustrated to be referred to as system 300,
Another about the logic for backing up blocks of computer files
An embodiment is shown. System 300 can be executed by computer 24
Logic command sequence. Then, this sequence is
Starting at 302, the computer's operating system starts.       [0086]   Moving to decision diamond 304, the computer is properly configured for backup.
To determine if it is. In other words, the current logistics existing in the software
It is determined whether the network is properly installed in the computer 24.
If so, the process continues at decision diamond 306 with the user or automatic
Whether any file is selected or specified as a backup candidate
Judge. "Backup candidate" means that it is located on a portable computer
Means some or all files and is subject to the backup algorithm
Backup candidates can be selected for further consideration. At this time
Exclude some (less important) files from consideration for backup
Thus, the processing speed can be increased.       [0087]   If no files were selected, the process proceeds to decision diamond 306
From block 306, the user enters this
The user must be able to select some or all of the files on the computer
The interface can run. Alternatively, at block 308
For backing up some or all files in your computer,
Can be automatically selected as a candidate. For example, at block 308,
Temporary Internet files are a good candidate for backup
And all files may be automatically selected.       [0088]   At decision diamond 306, at least some files were backed up.
If so, the process moves to block 310 and FIG.
Start the network interface detailed below with reference to 3.
You. Move to Plot 312 to start the network interface
The computer's file system is "hooked". "hook(
hook) means that this logic is the file system from which the computer 24 originally resided.
Means inserted into the code. In this way, any user can
This logic is invoked whenever you access the
Blocks in the file system for the use described with reference to FIG. 2 and FIG.
Can be detected.       [0089]   At decision diamond 314, the file system was successfully completed by system 300.
That the file system hook is accurate and cheap.
It is determined whether or not it is completely at the predetermined position. In that case, the logic
Moving to 316, enter a wait state for one of the two computer system signals
. First, at block 318, if a file change signal is received,
The logic moves to block 320 where the backup algorithm described above (eg,
The new file data is processed according to the algorithm shown in FIGS. 2 and 3).
Manage. In this way, based on the above-mentioned principle, it is processed as a backup block.
Blocks are referred to as “hold” areas in the portable computer.
Is copied into the internal data storage area. From block 320, the logic is
Loop back and have state 316.       [0090]   Meanwhile, at block 322, a computer shutdown signal is received.
, Or at block 314, the file system hook was successfully processed.
If not, or at block 304,
If it is determined that the computer is not properly configured,
Move to 324. At block 324, the file system hook ends.
. Moving to block 326, the egress signal is sent to the network interface shown in FIG.
After being sent to the face logic, at block 328 the "exit"
Is displayed on the computer monitor. This process is
At block 330, exit to the computer's operating system.       [0091]   Referring now to FIG. 13, the network interface logic is illustrated.
It is shown. The logic begins at state 332 and moves to decision diamond 334.
Whether network software is present on computer 24
Judge. If so, the logic moves to a first wait state 336, where 2
Wait for one of the two system signals. In block 338, the logic shown in FIG.
If an exit signal is received from the block, the process moves to block 340 where all steps are taken.
All existing networks are terminated, and the process returns to the logic of FIG. Conversely,
Lock 342 receives a signal indicating that network transmission has started
If so, the logic moves to the second wait state 344.       [0092]   This logic, in the second wait state 334, outputs one of three system signals.
Wait for. If an exit signal could be received at block 346, the logic
Moving to lock 340, it functions as described above. Also, at block 348,
If a signal indicating that the network has stopped can be received, the first standby state 33
Loop back to 6. Further, at block 350, the network
If a signal indicating the operation state can be received, the logic performs the third standby.
Proceed to state 352. “Inactive network” is described above with respect to FIG.
The data path on the network is inactive as measured according to
Means, preferably, data from the computer 24 to the network
Means a route, or, less preferably, another data route in the network
Means       [0093]   In a third wait state 352, one of four system signals
Wait for. If an exit signal could be received at block 354, the logic
Moving to block 340, it functions as described above. Also, at block 356
, When a signal indicating that the network has been stopped can be received, the first standby state 3
Loop back to 36. Further, at block 358, the network
If a signal indicating the operation state can be received, the logic waits for the second standby state.
Proceed to state 344 and wait for a network inactivity signal.       [0094]   As shown in FIG. 13, in block 360, the data in the hold area
May be received. Third standby state 35
In step 2, before receiving the other three signals,
(That is, the “network inactive” signal is still present or running
Data is transferred to a remote data storage device via a network
Sent. When a data ready signal is present and the third standby state 352
This logic remains in block 360 unless the other three signals are present.
You.       [0095]   Referring to FIG. 14, back up files from a laptop computer.
A "spartan" version for invocation is shown. At block 362
Starting, for example, a portable computer with files to be backed up
Receive an inactivity signal from the operating system. For example, block 3
Receiving the inactivity signal at 62 initiates the screen saver program
.       [0096]   In the example above, when a screen saver appears, this logic is
After that, the process moves to block 364 where the buffer is transferred according to the algorithm shown in FIGS.
Copy a file block for backup. In addition, FIG.
Gick performs two tests. First, in decision diamond 366, wrap
Is the amount of unprotected data in the top computer greater than the specified amount
Judge whether or not. "Unprotected" means that the user is
Is not automatically selected or changed since it was recently backed up in the past
Means blocks of data that have been (or have never been backed up)
I do. Similarly, in decision diamond 368, the data amount (hold
That is, the amount of data that is backed up but not transmitted) exceeds the predetermined amount
Determine whether or not. This predetermined amount depends, for example, on the capacity of the network.
There is also. In decision diamonds 366, 368, if either test is positive
If so, at block 370 the portable computer monitor
Above, for example, to send a block in the hold area,
A warning is displayed, indicating that the work should be connected.       [0097]   A computer in a wide area computer network illustrated and described herein
According to certain systems and methods for backing up data files,
The above mentioned objectives can be achieved. This is the current preferred practice according to the invention.
It is an embodiment and means an object widely implemented using the present invention, and is obvious to those skilled in the art.
It should be understood that other embodiments that are white are within the scope of the present invention. Accordingly
Accordingly, the scope of the present invention is not limited except by the appended claims.
, Components used in the singular are not explicitly described as "one or more"
Insofar, it is intended to mean "one and only one." [Brief description of the drawings]     FIG. 1 shows a computer file backup system according to the present invention.
1 shows a schematic diagram of a system.     FIG. 2 shows a flowchart of an initialization process.     FIG. 3 shows an incremental backup process for a subfile.
3 shows a flowchart for the above.     FIG. 4 is a flowchart of a restoration process.     FIG. 5 shows a process for automatically updating a common software library.
6 is a flowchart regarding the process.     FIG. 6A is a program for encrypting data to be backed up.
It is a flowchart regarding a process.     FIG. 6B shows backup data received from a data center;
5 is a flow chart for a process for decrypting.     FIG. 7A is a diagram showing a message required for data transmitted as an encrypted random number;
Using the comparison value of about (MD: message Digest) -5, from the user computer
It is a flowchart regarding the process transmitted to a data center.     FIG. 7B relates to a process for authenticating the data transmission shown in FIG. 7A.
FIG.     FIG. 8 shows a case where a user uses a computer and the computer is a wide area network;
Network connection to a remote data center
Flowchart on the process of continuously backing up the computer
It is.     FIG. 9 is a portable computer that is sometimes connected to a computer network.
Flow of the process of backing up computer files on your computer
It is a chart.     FIG. 10 transmits data formed by the logic circuit of FIG. 9;
It is a flowchart regarding a process.     FIG. 11 shows a portable computer connected to a computer network.
The process of automatically reconfiguring the portable computer when connected to
FIG.     FIG. 12 shows a backup of files on a laptop computer.
9 is a flowchart illustrating another logic process to be performed.     FIG. 13 shows a continuation of the logic circuit of FIG. 12;     FIG. 14 is a simplified laptop computer backup system.
2 shows a flowchart relating to the steps of the backup system.

───────────────────────────────────────────────────── フロントページの続き (31)優先権主張番号 09/239,475 (32)優先日 平成11年1月28日(1999.1.28) (33)優先権主張国 米国(US) (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,UG,ZW),E A(AM,AZ,BY,KG,KZ,MD,RU,TJ ,TM),AL,AM,AT,AU,AZ,BA,BB ,BG,BR,BY,CA,CH,CN,CU,CZ, DE,DK,EE,ES,FI,GB,GE,GH,G M,HR,HU,ID,IL,IS,JP,KE,KG ,KP,KR,KZ,LC,LK,LR,LS,LT, LU,LV,MD,MG,MK,MN,MW,MX,N O,NZ,PL,PT,RO,RU,SD,SE,SG ,SI,SK,SL,TJ,TM,TR,TT,UA, UG,US,UZ,VN,YU,ZW (72)発明者 フレッド・ダブリュー・マックレイン アメリカ合衆国92014カリフォルニア州デ ル・マー、シルコ・ディエグエノ6886番 Fターム(参考) 5B018 HA02 KA03 MA12 QA01 5B082 DA02 DE06 5J104 AA09 AA16 EA06 EA19 EA33 LA06 NA02 NA03 PA07 ────────────────────────────────────────────────── ─── Continuation of front page    (31) Priority claim number 09 / 239,475 (32) Priority date January 28, 1999 (Jan. 28, 1999) (33) Priority country United States (US) (81) Designated country EP (AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, I T, LU, MC, NL, PT, SE), OA (BF, BJ , CF, CG, CI, CM, GA, GN, GW, ML, MR, NE, SN, TD, TG), AP (GH, GM, K E, LS, MW, SD, SL, SZ, UG, ZW), E A (AM, AZ, BY, KG, KZ, MD, RU, TJ , TM), AL, AM, AT, AU, AZ, BA, BB , BG, BR, BY, CA, CH, CN, CU, CZ, DE, DK, EE, ES, FI, GB, GE, GH, G M, HR, HU, ID, IL, IS, JP, KE, KG , KP, KR, KZ, LC, LK, LR, LS, LT, LU, LV, MD, MG, MK, MN, MW, MX, N O, NZ, PL, PT, RO, RU, SD, SE, SG , SI, SK, SL, TJ, TM, TR, TT, UA, UG, US, UZ, VN, YU, ZW (72) Inventor Fred W. McClain             United States 92014 California De             Le Mar, Silco Digueno No. 6886 F term (reference) 5B018 HA02 KA03 MA12 QA01                 5B082 DA02 DE06                 5J104 AA09 AA16 EA06 EA19 EA33                       LA06 NA02 NA03 PA07

Claims (1)

【特許請求の範囲】 【請求項1】 コンピュータプログラム製造物であって、 デジタル処理システムにより読み出し可能なコンピュータプログラム記憶デバ
イスと、 コンピュータネットワークに接続可能な少なくとも1つの携帯可能コンピュー
タから、少なくとも1つのローカルコンピュータファイル内にある少なくともい
くつかのブロックを、バックアップする方法ステップを実行するための、デジタ
ル処理システムにより実行可能な指令を、コンピュータプログラム記憶デバイス
上に有するロジック手段とを備え、 このコンピュータプログラム製造物により実行される方法ステップは、 少なくとも1つのスクリーンセーバ信号を受信するステップと、 スクリーンセーバ信号に呼応して、バックアップすべきブロックを準備するス
テップ、およびネットワークを介してブロックを送信するステップのうち、少な
くとも一方のステップを実行するステップを有することを特徴とするコンピュー
タプログラム製造物。 【請求項2】 請求項1のコンピュータプログラム製造物であって、 この方法ステップは、 所定のデータ量がバックアップされた場合、および未保護データ量が所定の閾
値を超える場合の一方または両方の条件が存在するとき、ユーザに警告を与える
ステップをさらに有することを特徴とするコンピュータプログラム製造物。 【請求項3】 請求項1のコンピュータプログラム製造物であって、 この方法ステップは、 バックアップすべきローカルファイル内にある少なくともいくつかのブロック
に対して、各々、第1の比較値を定義する2文字をコピーし、第2の比較値を定
義するデジタル署名コードを形成するステップと、 少なくともいくつかのブロックに対して、テストデジタル署名コードを周期的
に決定し、これと第2の比較値のそれぞれとを比較するステップと、 ブロックのテストデジタル署名コードが、すべての第2の比較値と等しくなら
ない場合、ブロックの最初の2文字が第1の比較値のうちの1つと等しいかどう
かを判断するステップをさらに有することを特徴とするコンピュータプログラム
製造物。 【請求項4】 請求項3のコンピュータプログラム製造物であって、 この方法ステップは、 最初の2文字が第1の比較値のうちの1つと等しい場合、テストブロックの第
1バイトとしてi番目のテストバイトを用いて、ブロックのデジタル署名コード
を決定するステップと、 ブロックのデジタル署名コードが、第2の比較値のうちの1つと等しいかどう
かを判断するステップと、 ブロックのデジタル署名コードが、第2の比較値のうちの1つと等しい場合、
「再同期」を応答し、さもなければ、 i番目のテストバイトの最初の2文字が、第1の比較値のうちの1つと等しく
ない場合、またはブロックのデジタル署名コードが第2の比較値のうちの1つと
等しくない場合、i=i+1と設定して、選択ステップを反復するステップをさ
らに有することを特徴とするコンピュータプログラム製造物。 【請求項5】 携帯可能コンピュータと協働する請求項1のコンピュータプ
ログラム製造物。 【請求項6】 コンピュータプログラム製造物であって、 携帯可能コンピュータ内にあるファイルシステムにアクセスして、バックアッ
プすべきブロックにアクセスするロジック手段と、 携帯可能コンピュータのホールド領域にブロックをコピーするロジック手段と
、 携帯可能コンピュータがコンピュータネットワークに接続された時点を判断す
るロジック手段と、 ネットワークのデータ経路が非動作状態にある時点を判断するロジック手段と
、 データ経路が非動作状態にある時、ホールド領域にあるブロックを、ネットワ
ークを介して、離れたデータ記憶デバイスに送信するロジック手段とを備えたこ
とを特徴とするコンピュータプログラム製造物。 【請求項7】 請求項6のコンピュータプログラム製造物であって、 携帯可能コンピュータ内にある、少なくともバックアップすべきコンピュータ
ファイルのブロックを決定するロジック手段と、 バックアップすべきコンピュータファイルのブロックを決定するロジック手段
に呼応して、ネットワークインターフェイスを呼び出すロジック手段とをさらに
有することを特徴とするコンピュータプログラム製造物。 【請求項8】 請求項6のコンピュータプログラム製造物であって、 アクセスするロジック手段が成功裡にファイルシステムにアクセスした時点を
判断するロジック手段をさらに有することを特徴とするコンピュータプログラム
製造物。 【請求項9】 請求項6のコンピュータプログラム製造物であって、 ファイル変更信号を受信して、ブロックをバックアップするロジック手段によ
り、ブロックをホールド領域にバックアップするロジック手段をさらに有するこ
とを特徴とするコンピュータプログラム製造物。 【請求項10】 請求項6のコンピュータプログラム製造物であって、 ネットワーク送信開始信号を受信するロジック手段をさらに有することを特徴
とするコンピュータプログラム製造物。 【請求項11】 請求項6のコンピュータプログラム製造物であって、 データ準備完了信号を受信して、ブロックを送信するロジック手段により、ブ
ロックをホールド領域からネットワークへ送信するロジック手段をさらに有する
ことを特徴とするコンピュータプログラム製造物。 【請求項12】 携帯可能コンピュータと協働する請求項6のコンピュータ
プログラム製造物。 【請求項13】 ネットワークと協働する請求項6のコンピュータプログラ
ム製造物。 【請求項14】 携帯可能コンピュータ内にあるコンピュータファイルのブ
ロックをバックアップするための方法であって、 携帯可能コンピュータからコンピュータ非動作信号を受信するステップと、 コンピュータ非動作信号に呼応して、バックアッププログラムに従って、コン
ピュータのファイルシステム内にあるブロックをバックアップするステップとを
有することを特徴とする方法。 【請求項15】 請求項14の方法であって、 コンピュータ非動作信号は、スクリーンセーバ開始信号により確立されること
を特徴とする方法。 【請求項16】 請求項15の方法であって、 所定のデータ量がバックアップされた場合、および未保護データ量が所定の閾
値を超える場合の一方または両方の条件が存在するとき、ユーザに警告を与える
ステップをさらに有することを特徴とする方法。 【請求項17】 請求項14の方法であって、 バックアッププログラムは、方法ステップを実行し、 この方法ステップは、 バックアップすべきローカルファイル内にある少なくともいくつかのブロック
に対して、各々、第1の比較値を定義する2文字をコピーし、第2の比較値を定
義するデジタル署名コードを形成するステップと、 少なくともいくつかのブロックに対して、テストデジタル署名コードを周期的
に決定し、これと第2の比較値のそれぞれとを比較するステップと、 ブロックのテストデジタル署名コードが、すべての第2の比較値と等しくなら
ない場合、ブロックの最初の2文字が第1の比較値のうちの1つと等しいかどう
かを判断するステップとを有することを特徴とする方法。 【請求項18】 請求項17の方法であって、 バックアッププログラムは、さらなる方法ステップを実行し、 この方法ステップは、 最初の2文字が第1の比較値のうちの1つと等しい場合、テストブロックの第
1バイトとしてi番目のテストバイトを用いて、ブロックのデジタル署名コード
を決定するステップと、 ブロックのデジタル署名コードが、第2の比較値のうちの1つと等しいかどう
かを判断するステップと、 ブロックのデジタル署名コードが、第2の比較値のうちの1つと等しい場合、
「再同期」を応答し、さもなければ、 i番目のテストバイトの最初の2文字が、第1の比較値のうちの1つと等しく
ない場合、またはブロックのデジタル署名コードが第2の比較値のうちの1つと
等しくない場合、i=i+1と設定して、選択ステップを反復するステップをさ
らに有することを特徴とするコンピュータプログラム製造物。 【請求項19】 ラップトップコンピュータ内にあるファイルのブロックを
バックアップするための方法であって、 バックアップすべきブロックを判断するステップと、 ラップトップコンピュータがコンピュータネットワークに接続される時点を判
断するステップと、 ネットワークのデータ経路が非動作状態にある時点を判断するステップと、 データ経路が非動作状態にある時、バックアップすべきと判断されたブロック
を、ネットワークを介して、離れたデータ記憶デバイスに送信するステップとを
有することを特徴とする方法。 【請求項20】 請求項19の方法であって、 ネットワークインターフェイスを呼び出すステップをさらに有することを特徴
とする方法。 【請求項21】 請求項19の方法であって、 ファイル変更信号を受信して、ラップトップコンピュータ内にあるホールド領
域にブロックをコピーするステップをさらに有することを特徴とする方法。 【請求項22】 請求項21の方法であって、 データ準備完了ファイル信号を受信して、ホールド領域内のブロックを、ホー
ルド領域からネットワークに送信するステップをさらに有することを特徴とする
方法。 【請求項23】 携帯可能コンピュータが接続されるネットワークのために
携帯可能コンピュータを構成するためのシステムであって、 ネットワーク上の少なくとも1つの他のデバイスを決定するロジック手段と、 ネットワーク構成と、1つまたはそれ以上の所定の構成とを比較するロジック
手段と、 ネットワーク構成が少なくとも1つの所定の構成と合致する場合、ネットワー
クのために携帯可能コンピュータを構成するロジック手段とを有することを特徴
とする方法。 【請求項24】 請求項23のシステムであって、 所定の携帯可能コンピュータの設定が、所定の各構成と相関関係を有し、 ネットワーク構成が所定の各構成と合致する場合、構成する手段が少なくとも
1つの携帯可能コンピュータにおける設定を確立することを特徴とする方法。 【請求項25】 携帯可能コンピュータ内の1つまたはそれ以上のファイル
内にある1つまたはそれ以上のブロックをバックアップし、このブロックを離れ
たコンピュータ記憶位置にネットワークを介して送信するための携帯可能コンピ
ュータのバックアップシステムであって、 携帯可能コンピュータがネットワークに接続された時点を判断するロジック手
段と、 ネットワークの可用性が少なくとも所定の可用性と等しくなる時点を判断する
ロジック手段と、 1つまたはそれ以上の送信基準を満足する場合に、バックアップすべきブロッ
クをネットワークに対して送信するロジック手段とを有し、 この送信基準は、携帯可能コンピュータがネットワークに接続されていると、
判断手段が判断する点にあることを特徴とするシステム。 【請求項26】 請求項25のシステムであって、 この送信基準は、ネットワークの可用性が所定の可用性未満であると、判断手
段が判断する点にあることを特徴とするシステム。 【請求項27】 請求項26のシステムであって、 メタデータを用いて、ブロックをインターリーブすることにより、ブロックが
送信されることを特徴とするシステム。 【請求項28】 コンピュータプログラム製造物であって、 デジタル処理システムにより読み出し可能なコンピュータプログラム記憶デバ
イスと、 コンピュータネットワークに接続可能な少なくとも1つの携帯可能コンピュー
タから、少なくとも1つのローカルコンピュータファイル内にある1つまたはそ
れ以上のブロックを、バックアップする方法ステップを実行するための、デジタ
ル処理システムにより実行可能な指令を、コンピュータプログラム記憶デバイス
上に有するロジック手段とを備え、 このコンピュータプログラム製造物により実行される方法ステップは、 バックアップすべきブロックを形成するステップと、 携帯可能コンピュータがネットワークに接続されている時点を判断するステッ
プと、 携帯可能コンピュータがネットワークに接続されている場合、1つまたはそれ
以上のブロックを送信することを許可するステップと、 送信するための他のデータをブロックにインターリーブするステップとを有す
ることを特徴とするコンピュータプログラム製造物。 【請求項29】 請求項28のコンピュータプログラム製造物であって、 携帯可能コンピュータの所定の記憶容量限界値に達した場合、ブロックのバッ
クアップを一時中断するステップをさらに有することを特徴とするコンピュータ
プログラム製造物。 【請求項30】 請求項28のコンピュータプログラム製造物であって、 この方法ステップは、 携帯可能コンピュータがネットワークに接続されて、かつ、ネットワークへデ
ータを送信している場合、ブロック形成ステップを一時中断し、そうでない場合
、バックアップすべきと判断されたブロックすべてが形成されるまで、ブロック
形成ステップを実行するステップをさらに有することを特徴とするコンピュータ
プログラム製造物。 【請求項32】 請求項28のコンピュータプログラム製造物であって、 この方法ステップは、 携帯可能コンピュータがネットワークに接続されて、かつ、ネットワークの可
用性が閾値以下である場合にのみ、ブロックを送信するステップをさらに有する
ことを特徴とするコンピュータプログラム製造物。 【請求項33】 請求項28のコンピュータプログラム製造物であって、 この方法ステップは、 バックアップすべきローカルファイル内にある少なくともいくつかのブロック
に対して、各々、第1の比較値を定義する2文字をコピーし、第2の比較値を定
義するデジタル署名コードを形成するステップと、 少なくともいくつかのブロックに対して、テストデジタル署名コードを周期的
に決定し、これと第2の比較値のそれぞれとを比較するステップと、 ブロックのテストデジタル署名コードが、すべての第2の比較値と等しくなら
ない場合、ブロックの最初の2文字が第1の比較値のうちの1つと等しいかどう
かを判断するステップをさらに有することを特徴とするコンピュータプログラム
製造物。 【請求項34】 請求項33のコンピュータプログラム製造物であって、 この方法ステップは、 最初の2文字が第1の比較値のうちの1つと等しい場合、テストブロックの第
1バイトとしてi番目のテストバイトを用いて、ブロックのデジタル署名コード
を決定するステップと、 ブロックのデジタル署名コードが、第2の比較値のうちの1つと等しいかどう
かを判断するステップと、 ブロックのデジタル署名コードが、第2の比較値のうちの1つと等しい場合、
「再同期」を応答し、さもなければ、 i番目のテストバイトの最初の2文字が、第1の比較値のうちの1つと等しく
ない場合、またはブロックのデジタル署名コードが第2の比較値のうちの1つと
等しくない場合、i=i+1と設定して、選択ステップを反復するステップをさ
らに有することを特徴とするコンピュータプログラム製造物。 【請求項35】 コンピュータプログラム製造物であって、 デジタル処理システムにより読み出し可能なコンピュータプログラム記憶デバ
イスと、 少なくとも1つのローカルコンピュータファイル内にある少なくともいくつか
のブロックを、コンピュータネットワーク内にある少なくとも1つのユーザ用コ
ンピュータからバックアップする方法ステップを実行するための、デジタル処理
システムにより実行可能な指令を、コンピュータプログラム記憶デバイス上に有
するロジック手段とを備え、 このコンピュータプログラム製造物により実行される方法ステップは、 (a) ローカルファイルを、ユーザ用コンピュータから離れたデータセンタへ
送信して、遠隔バージョンを形成するステップを有し、 データセンタは、コンピュータネットワークを介してアクセス可能で、少なく
とも100テラバイトの電子記憶容量を有し、ローカルファイルと同一のコピー
を記憶しない場合に限って、ローカルファイルがデータセンタへ送信されること
を特徴とするコンピュータプログラム製造物。 【請求項36】 請求項35のコンピュータプログラム製造物であって、 この方法ステップは、 (b) ローカルファイル内にあるブロックに対して、各々、第1の比較値を定
義する2文字をコピーし、第2の比較値を定義するデジタル署名コードを形成す
るステップと、 (c) 各ブロックに対して、テストデジタル署名コードを周期的に決定し、こ
れと第2の比較値のそれぞれとを比較するステップと、 (d) ブロックのテストデジタル署名コードがブロックの第2の比較値と等し
くならない場合、ローカルファイルのブロックを、データセンタへ送信すべき送
信ブロックとして特定することにより、遠隔バージョンを更新するステップと、
(e) ブロックのテストデジタル署名コードがすべての第2の比較値と等しく
ならない場合、ブロックのi番目(iは自然数)のテストバイトで始まる最初の
2文字が、第1の比較値のうちの1つと等しいかどうかを判断するステップと、
(f) 最初の2文字が第1の比較値のうちの1つと等しい場合、テストブロッ
クの第1バイトとしてi番目のテストバイトを用いて、ブロックのデジタル署名
コードを決定するステップと、 (g) ブロックのデジタル署名コードが、第2の比較値のうちの1つと等しい
かどうかを判断するステップと、 (h) ブロックのデジタル署名コードが、第2の比較値のうちの1つと等しい
場合、「再同期」を応答し、さもなければ、 (i) 最初の2文字が、第1の比較値のうちの1つと等しくない場合、または
ブロックのデジタル署名コードが第2の比較値のうちの1つと等しくない場合、
i=i+1と設定して、上記ステップ(e)−(i)を反復するステップをさら
に有することを特徴とするコンピュータプログラム製造物。 【請求項37】 請求項35のコンピュータプログラム製造物であって、 この方法ステップは、 送信チャンク内に送信ブロックを集めるステップと、 送信チャンクのサイズが所定のサイズと等しいとき、送信チャンクをデータセ
ンタへ送信するステップをさらに有し、 送信チャンクは、所定期間中においてのみデータセンタへ送信されることを特
徴とするコンピュータプログラム製造物。 【請求項38】 請求項35のコンピュータプログラム製造物であって、 この方法ステップは、 ローカルファイルブロックの各々に対して、ローカルファイルブロックの複製
が共通ファイルブロックライブラリに記憶されているかどうかを判断するステッ
プと、 ローカルファイルブロックの複製が共通ファイルブロックライブラリに記憶さ
れていない場合に限り、上記ステップ(a)を実行するステップをさらに有する
ことを特徴とするコンピュータプログラム製造物。 【請求項39】 請求項35のコンピュータプログラム製造物であって、 この方法ステップは、 データセンタにおいて、携帯可能データ記憶媒体上に遠隔バージョンを周期的
にコピーするステップと、 携帯可能データ記憶媒体上に記憶された遠隔バージョンが、少なくとも、デー
タセンタに記憶されている遠隔バージョンと同じ程度に最新のものである場合は
、携帯可能データ記憶媒体から遠隔バージョンをコピーし、そうでない場合は、
データセンタから遠隔バージョンをコピーすることにより、ローカルファイルを
復元するステップをさらに有することを特徴とするコンピュータプログラム製造
物。 【請求項40】 ユーザ用コンピュータ内にあるファイルをバックアップす
るためのシステムであって、 コンピュータデータの共通ライブラリを有するデータセンタと、 データセンタから離れ、これと通信する複数のユーザ用コンピュータと、 ユーザ用コンピュータのいずれのデータブロックが、共通ライブラリに含まれ
るために、共通コンピュータファイルブロックであると判断する共通ライブラリ
ロジック手段を有し、 共通コンピュータファイルブロックでないコンピュータファイルブロックは、
非共通コンピュータファイルブロックと判断され、 さらに、非共通コンピュータファイルブロックが、ユーザ用コンピュータにお
いて、少なくとも所定回数、出現する場合、共通ライブラリに非共通コンピュー
タファイルブロックを追加する共通ライブラリ追加手段を有することを特徴とす
るシステム。 【請求項41】 請求項40のシステムであって、 各ユーザ用コンピュータに関連し、共通ファイルブロック以外のファイルブロ
ックをデータセンタへ送信する初期化ロジック手段と、 各ユーザ用コンピュータに関連し、所定のバックアップ時以降に変更されたブ
ロックを判断し、これに呼応して変更されたブロック信号を形成するサブファイ
ルインクリメント式バックアップロジック手段と、 サブファイルインクリメント式バックアップロジック手段に呼応して、変更さ
れたブロックだけを、所定のサイズを有するチャンクとして、データセンタへ送
信するチャンク送信ロジック手段と、 変更されたブロック信号に呼応して、サブファイルインクリメント式バックア
ップロジック手段を同期させる同期ロジック手段と、 各ブロック、ブロックの最初の2文字、およびブロックのデジタル署名に関連
して、データセンタで記憶されたファイルのブロックのリストを作成するロジッ
ク手段を有し、サブファイルインクリメント式バックアップロジック手段は、こ
のリストを用いて、判断機能を実行することを特徴とするシステム。 【請求項42】 請求項40のシステムであって、 非共通コンピュータファイルブロックが、少なくとも所定数のユーザ用コンピ
ュータに出現する場合、この非共通コンピュータファイルブロックを共通ライブ
ラリに追加されることを特徴とするシステム。 【請求項43】 コンピュータファイルブロックをバックアップするための
コンピュータの実行方法であって、 (a) ユーザ用コンピュータにおいて、1つまたはそれ以上の暗号化キーを用
いて少なくとも1つのブロックを暗号化するステップと、 (b) 少なくともこのブロックを離れたデータセンタへ送信するステップと、 (c) 復元時間において、少なくともこのブロックをデータセンタからユーザ
用コンピュータへ送信するステップと、 (d) キーファイルから1つのキーを選択するステップと、 (e) このキーを用いて少なくともこのブロックを暗号解読するステップと、 (f) 暗号解読が成功したかどうかを判断するステップと、 (g) 暗号解読が成功しなかった場合、キーリストから別のキーを選択して、 このブロックを暗号解読し、暗号解読が成功するまで、上記ステップ(f)およ
び(g)を反復することを特徴とする方法。 【請求項44】 請求項43の方法であって、 ブロックがブロックデジタル署名を定義し、このブロックが暗号化され暗号解
読されて、暗号解読データを形成し、判断ステップは、 暗号解読されたブロックに対するデジタル署名を決定するステップと、 暗号解読されたブロックに対するデジタル署名とブロックデジタル署名を比較
するステップと、 暗号解読されたブロックに対するデジタル署名とブロックデジタル署名が等し
い場合に、暗号解読が成功したと判断するステップを有する方法。 【請求項45】 請求項44の方法であって、 ブロックは暗号化する前に圧縮され、 この方法は、 ブロックを圧縮解除するステップと、 圧縮解除するステップが成功しない場合に、キーが適正な暗号解読キーでない
と判断するステップをさらに有する方法。 【請求項46】 送信コンピュータと受信コンピュータの間でデータを送信
する送信セッションのためのセッションキーを提供する方法であって、 データに基づくデータデジタル署名を集めるステップと、 データを暗号化するために、このデータデジタル署名を利用するステップを有
することを特徴とする方法。 【請求項47】 請求項46の方法であって、 データデジタル署名は、送信コンピュータにより集められ、 この方法は、 受信コンピュータの公的キーを用いて、データデジタル署名を暗号化するステ
ップと、 データデジタル署名を受信コンピュータへ送信するステップをさらに有するこ
とを特徴とする方法。 【請求項48】 請求項47の方法であって、 暗号解読データを形成するためにデータを暗号解読するステップと、 暗号解読データのデジタル署名を決定するステップと、 暗号解読データのデジタル署名と、データデジタル署名を比較して、データが
うまく送信されたかどうかを判断するステップをさらに有することを特徴とする
方法。
Claims 1. A computer program product comprising: a computer program storage device readable by a digital processing system; and at least one local computer from at least one portable computer connectable to a computer network. Logic means having, on a computer program storage device, instructions executable by a digital processing system for performing method steps for backing up at least some blocks in a computer file, the computer program product comprising: The steps of receiving at least one screen saver signal and preparing blocks to be backed up in response to the screen saver signal , And transmitting at least one of the steps of transmitting the block via the network. 2. The computer program product of claim 1, wherein the method steps include: one or both of a condition where a predetermined amount of data is backed up and a case where the amount of unprotected data exceeds a predetermined threshold. Providing a warning to the user when is present. 3. The computer program product of claim 1, wherein the method steps each define a first comparison value for at least some blocks in a local file to be backed up. Copying a character to form a digital signature code defining a second comparison value; periodically determining a test digital signature code for at least some blocks; Comparing with each other, determining whether the first two characters of the block are equal to one of the first comparison values if the test digital signature code of the block is not equal to all second comparison values. Computer program product further comprising the step of: 4. The computer program product of claim 3, wherein the method steps include: if the first two characters are equal to one of the first comparison values, the ith byte as the first byte of the test block. Determining a digital signature code of the block using the test byte; determining whether the digital signature code of the block is equal to one of the second comparison values; If equal to one of the second comparison values,
Respond "Resync", otherwise if the first two characters of the i-th test byte are not equal to one of the first comparison values, or if the digital signature code of the block is the second comparison value Computer program product, further comprising the step of setting i = i + 1 if not equal to one of the following, and repeating the selecting step. 5. The computer program product of claim 1, which cooperates with a portable computer. 6. A computer program product, comprising: logic means for accessing a file system in a portable computer to access blocks to be backed up; and logic means for copying blocks to a hold area of the portable computer. Logic means for determining when the portable computer is connected to the computer network; logic means for determining when the data path of the network is inactive; and a hold area when the data path is inactive. Logic means for transmitting the blocks of the above to a remote data storage device via a network. 7. The computer program product of claim 6, wherein logic means for determining at least blocks of computer files to be backed up in the portable computer, and logic for determining blocks of computer files to be backed up. Logic means for calling a network interface in response to the means. 8. The computer program product of claim 6, further comprising logic means for determining when the accessing logic means has successfully accessed the file system. 9. The computer program product of claim 6, further comprising: logic means for receiving a file change signal and backing up the block to a hold area by logic means for backing up the block. Computer program product. 10. The computer program product of claim 6, further comprising logic means for receiving a network transmission start signal. 11. The computer program product of claim 6, further comprising logic means for receiving the data ready signal and transmitting the block from the hold area to the network by the logic means for transmitting the block. A computer program product characterized by: 12. The computer program product of claim 6, cooperating with a portable computer. 13. The computer program product of claim 6, cooperating with a network. 14. A method for backing up a block of computer files residing in a portable computer, the method comprising the steps of: receiving a computer inactivity signal from the portable computer; Backing up blocks in a file system of the computer according to the above. 15. The method of claim 14, wherein the computer inactivity signal is established by a screen saver start signal. 16. The method of claim 15, wherein the user is alerted when one or both of a condition that a predetermined amount of data is backed up and an amount of unprotected data exceeds a predetermined threshold value. The method further comprising the step of: 17. The method of claim 14, wherein the backup program performs the method steps, wherein each of the first step is performed for at least some blocks in the local file to be backed up. Copying two characters defining a comparison value of and forming a digital signature code defining a second comparison value; periodically determining a test digital signature code for at least some blocks; And comparing each of the second comparison values with each of the second comparison values; if the test digital signature code of the block is not equal to all of the second comparison values, the first two characters of the block are Determining whether it is equal to one. 18. The method of claim 17, wherein the backup program performs further method steps, the method comprising: if the first two characters are equal to one of the first comparison values, Determining the digital signature code of the block using the i-th test byte as the first byte of, and determining whether the digital signature code of the block is equal to one of the second comparison values. , If the block's digital signature code is equal to one of the second comparison values,
Respond "Resync", otherwise if the first two characters of the i-th test byte are not equal to one of the first comparison values, or if the digital signature code of the block is the second comparison value Computer program product, further comprising the step of setting i = i + 1 if not equal to one of the following, and repeating the selecting step. 19. A method for backing up blocks of files residing in a laptop computer, comprising: determining which blocks to back up; and determining when the laptop computer is connected to a computer network. Determining when the data path of the network is inactive; and transmitting the blocks determined to be backed up to the remote data storage device via the network when the data path is inactive. Performing the steps of: 20. The method of claim 19, further comprising calling a network interface. 21. The method of claim 19, further comprising the step of receiving a file change signal and copying the block to a hold area in a laptop computer. 22. The method of claim 21, further comprising receiving a data ready file signal and transmitting blocks in the hold area from the hold area to the network. 23. A system for configuring a portable computer for a network to which the portable computer is connected, comprising: logic means for determining at least one other device on the network; Logic means for comparing to one or more predetermined configurations; and logic means for configuring a portable computer for a network if the network configuration matches at least one predetermined configuration. Method. 24. The system according to claim 23, wherein the setting of the predetermined portable computer has a correlation with each of the predetermined configurations, and when the network configuration matches the predetermined configuration, the means for configuring is configured. Establishing a setting on at least one portable computer. 25. A portable device for backing up one or more blocks in one or more files in a portable computer and transmitting the blocks to a remote computer storage location over a network. A computer backup system, comprising: logic means for determining when a portable computer is connected to a network; logic means for determining when network availability is at least equal to a predetermined availability; Logic means for transmitting a block to be backed up to the network when the transmission criteria are satisfied, the transmission criteria being that when the portable computer is connected to the network,
A system characterized in that the judging means makes a judgment. 26. The system according to claim 25, wherein the transmission criterion is that the determination unit determines that the availability of the network is less than a predetermined availability. 27. The system of claim 26, wherein the blocks are transmitted by interleaving the blocks using the metadata. 28. A computer program product, comprising: a computer program storage device readable by a digital processing system; and at least one local computer file from at least one portable computer connectable to a computer network. Logic means having, on a computer program storage device, instructions executable by a digital processing system for performing the method steps of backing up one or more blocks, wherein the computer program product executes the instructions. The method steps include forming blocks to be backed up, determining when the portable computer is connected to a network, and determining whether the portable computer is connected to a network. A computer program product comprising the steps of: allowing one or more blocks to be transmitted when connected to a network; and interleaving other data into the blocks for transmission. . 29. The computer program product of claim 28, further comprising temporarily suspending block backup if a predetermined storage capacity limit of the portable computer is reached. Product. 30. The computer program product of claim 28, wherein the method steps include suspending a block forming step when the portable computer is connected to a network and transmitting data to the network. And if not, further comprising performing a block forming step until all blocks determined to be backed up are formed. 32. The computer program product of claim 28, wherein the method steps transmit the block only if the portable computer is connected to a network and the availability of the network is below a threshold. A computer program product further comprising steps. 33. The computer program product of claim 28, wherein the method steps each define a first comparison value for at least some blocks in a local file to be backed up. Copying a character to form a digital signature code defining a second comparison value; periodically determining a test digital signature code for at least some blocks; Comparing with each other, determining whether the first two characters of the block are equal to one of the first comparison values if the test digital signature code of the block is not equal to all second comparison values. Computer program product further comprising the step of: 34. The computer program product of claim 33, wherein the method steps comprise: if the first two characters are equal to one of the first comparison values, the ith byte of the test block. Determining a digital signature code of the block using the test byte; determining whether the digital signature code of the block is equal to one of the second comparison values; If equal to one of the second comparison values,
Respond "Resync", otherwise if the first two characters of the i-th test byte are not equal to one of the first comparison values, or if the digital signature code of the block is the second comparison value Computer program product, further comprising the step of setting i = i + 1 if not equal to one of the following, and repeating the selecting step. 35. A computer program product, comprising: a computer program storage device readable by a digital processing system; and at least some blocks in at least one local computer file, and at least one block in a computer network. Logic means having, on a computer program storage device, instructions executable by a digital processing system for performing the method steps of backing up from a user computer, the method steps performed by the computer program product comprising: (A) transmitting the local file to a data center remote from the user's computer to form a remote version, the data center comprising: Computer program which is accessible via a network, has at least 100 terabytes of electronic storage capacity, and is transmitted to a data center only if the local file is not stored in the same copy as the local file Product. 36. The computer program product of claim 35, wherein the method steps include: (b) copying, for each of the blocks in the local file, two characters defining a first comparison value. Forming a digital signature code defining a second comparison value; and (c) periodically determining a test digital signature code for each block and comparing this to each of the second comparison values. (D) if the test digital signature code of the block is not equal to the second comparison value of the block, updating the remote version by identifying the block of the local file as a transmission block to be transmitted to the data center Steps to
(E) If the test digital signature code of the block is not equal to all the second comparison values, the first two characters starting with the i-th (i is a natural number) test byte of the block are the first of the first comparison values. Determining whether it is equal to one;
(F) determining the digital signature code of the block using the ith test byte as the first byte of the test block if the first two characters are equal to one of the first comparison values; Determining whether the block's digital signature code is equal to one of the second comparison values; and (h) if the block's digital signature code is equal to one of the second comparison values. Respond "Resync", otherwise (i) if the first two characters are not equal to one of the first comparison values, or if the digital signature code of the block is one of the second comparison values If not equal to one,
A computer program product, further comprising the step of setting i = i + 1 and repeating steps (e)-(i) above. 37. The computer program product of claim 35, wherein the method steps comprise: collecting transmission blocks in a transmission chunk; and transmitting the transmission chunk to a data center when the size of the transmission chunk is equal to a predetermined size. Transmitting the transmission chunk to the data center only during a predetermined period of time. 38. The computer program product of claim 35, wherein the method steps determine, for each local file block, whether a copy of the local file block is stored in a common file block library. A computer program product, further comprising the step of: performing the above step (a) only when a copy of the local file block is not stored in the common file block library. 39. The computer program product of claim 35, wherein the method steps include: at a data center, periodically copying a remote version onto a portable data storage medium; and on the portable data storage medium. Copy the remote version from the portable data storage medium if it is at least as up-to-date as the remote version stored in the data center; otherwise,
A computer program product, further comprising the step of restoring a local file by copying a remote version from a data center. 40. A system for backing up files in a user computer, comprising: a data center having a common library of computer data; a plurality of user computers remote from the data center and communicating therewith; Since any data block of the computer is included in the common library, it has common library logic means for determining that it is a common computer file block.
When the non-common computer file block is determined to be a non-common computer file block, and the non-common computer file block appears at least a predetermined number of times in the user computer, the non-common computer file block has a common library adding unit that adds the non-common computer file block to the common library Features system. 41. The system according to claim 40, wherein initialization logic means associated with each user computer and transmitting a file block other than the common file block to the data center; The block which has been changed since the time of backup is judged, and the sub-file increment type backup logic means and the sub-file increment type backup logic means which form a changed block signal in response to this are changed. A chunk transmission logic unit for transmitting only the block as a chunk having a predetermined size to the data center; a synchronization logic unit for synchronizing the sub-file incremental backup logic unit in response to the changed block signal; , Bro Logic means for creating a list of blocks of files stored at the data center in relation to the first two characters of the block and the digital signature of the blocks, the sub-file incremental backup logic means using this list. And performing a judgment function. 42. The system of claim 40, wherein when the non-common computer file block appears on at least a predetermined number of user computers, the non-common computer file block is added to a common library. System to do. 43. A computer-implemented method for backing up computer file blocks, comprising: (a) encrypting at least one block with one or more encryption keys on a user computer. (B) transmitting at least this block to a remote data center; (c) transmitting at least this block from the data center to a user computer during a restoration time; Selecting a key; (e) decrypting at least the block using the key; (f) determining whether the decryption was successful; and (g) not decrypting successfully. If you select another key from the key list, And decrypting steps (f) and (g) until decryption is successful. 44. The method of claim 43, wherein the block defines a block digital signature, the block is encrypted and decrypted to form decrypted data, and the determining step comprises: Determining the digital signature for the decrypted block; comparing the digital signature to the decrypted block with the block digital signature; and determining that the decryption was successful if the digital signature for the decrypted block is equal to the block digital signature. A method comprising the step of determining. 45. The method of claim 44, wherein the block is compressed before encrypting, the method comprising: decompressing the block; A method further comprising determining that the key is not a decryption key. 46. A method for providing a session key for a transmission session for transmitting data between a transmitting computer and a receiving computer, comprising the steps of: collecting a data digital signature based on the data; and encrypting the data. Utilizing the data digital signature. 47. The method of claim 46, wherein the data digital signature is collected by a transmitting computer, the method comprising: encrypting the data digital signature using a public key of the receiving computer; Transmitting the digital signature to a receiving computer. 48. The method of claim 47, decrypting the data to form decrypted data, determining a digital signature of the decrypted data, digitally signing the decrypted data, The method further comprising comparing the data digital signature to determine whether the data was successfully transmitted.
JP2000535980A 1998-03-12 1999-03-11 System and method for backing up computer files in a wide area computer network Pending JP2002507016A (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US09/041,149 US6049874A (en) 1996-12-03 1998-03-12 System and method for backing up computer files over a wide area computer network
US09/100,914 US6038665A (en) 1996-12-03 1998-06-19 System and method for backing up computer files over a wide area computer network
US23947599A 1999-01-28 1999-01-28
US09/100,914 1999-01-28
US09/239,475 1999-01-28
US09/041,149 1999-01-28
PCT/US1999/005248 WO1999046660A2 (en) 1998-03-12 1999-03-11 System and method for backing up computer files over a wide area computer network

Publications (2)

Publication Number Publication Date
JP2002507016A true JP2002507016A (en) 2002-03-05
JP2002507016A5 JP2002507016A5 (en) 2006-05-11

Family

ID=27365855

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000535980A Pending JP2002507016A (en) 1998-03-12 1999-03-11 System and method for backing up computer files in a wide area computer network

Country Status (5)

Country Link
EP (1) EP1062558A2 (en)
JP (1) JP2002507016A (en)
AU (1) AU3076499A (en)
CA (1) CA2323522A1 (en)
WO (1) WO1999046660A2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346218A (en) * 2004-06-01 2005-12-15 Dainippon Printing Co Ltd Data backup apparatus
JP2009512077A (en) * 2005-10-12 2009-03-19 データキャッスル・コーポレーション Method and system for data backup
KR101936955B1 (en) * 2018-06-28 2019-04-09 펜타시큐리티시스템주식회사 The method of backing up and restoring secret information utilizing asymmetric application of Diffie-Hellman and elliptic curve Diffie-Hellman algorithm
US20190266127A1 (en) * 2010-05-26 2019-08-29 Red Hat, Inc. Managing and archiving system and application log files

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7080260B2 (en) * 1996-11-19 2006-07-18 Johnson R Brent System and computer based method to automatically archive and retrieve encrypted remote client data files
AU4066300A (en) 1999-03-29 2000-10-16 Gotuit Media, Inc. Electronic music and program storage, recognition, management and playback system
GB2407419B (en) * 2001-04-06 2005-09-21 Hewlett Packard Co Storage system
KR20030038140A (en) * 2001-11-08 2003-05-16 주식회사 스파이어테크놀로지 Method of data-backup using screen saver
KR100431945B1 (en) * 2001-12-05 2004-05-17 주식회사 스파이어테크놀로지 Method of data-backup using screen saver
US7814490B2 (en) 2004-10-14 2010-10-12 International Business Machines Corporation Apparatus and methods for performing computer system maintenance and notification activities in an opportunistic manner
US10802928B2 (en) 2015-09-10 2020-10-13 International Business Machines Corporation Backup and restoration of file system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5438671A (en) * 1991-07-19 1995-08-01 Dell U.S.A., L.P. Method and system for transferring compressed bytes of information between separate hard disk drive units
EP0541281B1 (en) * 1991-11-04 1998-04-29 Commvault Systems, Inc. Incremental-computer-file backup using signatures
US5864853A (en) * 1994-09-14 1999-01-26 Kabushiki Kaisha Toshiba Portable file system operable under various computer environments
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
US5854754A (en) * 1996-02-12 1998-12-29 International Business Machines Corporation Scheduling computerized backup services

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346218A (en) * 2004-06-01 2005-12-15 Dainippon Printing Co Ltd Data backup apparatus
JP2009512077A (en) * 2005-10-12 2009-03-19 データキャッスル・コーポレーション Method and system for data backup
US20190266127A1 (en) * 2010-05-26 2019-08-29 Red Hat, Inc. Managing and archiving system and application log files
US11868308B2 (en) * 2010-05-26 2024-01-09 Red Hat, Inc. Managing and archiving system and application log files
KR101936955B1 (en) * 2018-06-28 2019-04-09 펜타시큐리티시스템주식회사 The method of backing up and restoring secret information utilizing asymmetric application of Diffie-Hellman and elliptic curve Diffie-Hellman algorithm

Also Published As

Publication number Publication date
AU3076499A (en) 1999-09-27
WO1999046660A2 (en) 1999-09-16
CA2323522A1 (en) 1999-09-16
EP1062558A2 (en) 2000-12-27
WO1999046660A3 (en) 1999-10-21

Similar Documents

Publication Publication Date Title
US6038665A (en) System and method for backing up computer files over a wide area computer network
US6049874A (en) System and method for backing up computer files over a wide area computer network
JP5204099B2 (en) Group-based full and incremental computer file backup systems, processing and equipment
US7562100B2 (en) Maintaining coherency in a symbiotic computing system and method of operation thereof
CN102369509B (en) The control service of relation data management
EP2234049B1 (en) Background service process for local collection of data in an electronic discovery system
US7275176B2 (en) Automatic reconnect and reacquisition in a computer investigation system
JP5438911B2 (en) Password protection for backed up files
US20060047716A1 (en) Transaction based virtual file system optimized for high-latency network connections
KR20100121535A (en) Secure software updates
CN109309730A (en) A kind of believable document transmission method and system
JP2002507016A (en) System and method for backing up computer files in a wide area computer network
JP2003524255A (en) Internet based remote data and file recovery system and method
JP2003296176A (en) Distributed storage method and device therefor
JP2000200208A (en) Method and device for file backup, and program recording medium
JP2002182768A (en) Install server device, install service method and information recording medium
CN112131041A (en) Method, apparatus and computer program product for managing data placement
JP2004164226A (en) Information processor and program
JP2005063363A (en) Data backup device, data backup method and data backup program
JP2005063399A (en) File/key/data management system
JP2003526153A (en) How to service network-based storage sites
US7574458B2 (en) Computer backups using un-used disk space
JPH07200479A (en) Password management system
KR20210049296A (en) Method for Data Recovery Using the System ComprisingServer and Client
JP2002132560A (en) Backup system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060310

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090120

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090417

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090424

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090520

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090527

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090619

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090626

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091006