Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5563220B2 - データ・バックアップのための方法およびシステム - Google Patents
[go: Go Back, main page]

JP5563220B2 - データ・バックアップのための方法およびシステム - Google Patents

データ・バックアップのための方法およびシステム Download PDF

Info

Publication number
JP5563220B2
JP5563220B2 JP2008535775A JP2008535775A JP5563220B2 JP 5563220 B2 JP5563220 B2 JP 5563220B2 JP 2008535775 A JP2008535775 A JP 2008535775A JP 2008535775 A JP2008535775 A JP 2008535775A JP 5563220 B2 JP5563220 B2 JP 5563220B2
Authority
JP
Japan
Prior art keywords
file
data
client
backup
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008535775A
Other languages
English (en)
Other versions
JP2009512077A (ja
Inventor
サムナー、ゲアリー・スティーブン
アモンズ、ジェイブ・マーク
リデル、マイク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Datacastle Corp
Original Assignee
Datacastle Corp
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
Application filed by Datacastle Corp filed Critical Datacastle Corp
Publication of JP2009512077A publication Critical patent/JP2009512077A/ja
Application granted granted Critical
Publication of JP5563220B2 publication Critical patent/JP5563220B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 operations
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 operations
    • 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, e.g. Merkle-Damgard construction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、データ・バックアップおよびデータ・アーカイビングに関し、詳細には、私的なコンピュータ・ユーザおよび業務上のコンピュータ・ユーザが、ウェブサービスベースのアプリケーションを介してリモート・データストレージ設備上に、データ・ファイルを含むデータをバックアップおよびアーカイブできるようにするウェブサービスベースのデータ・バックアップおよびデータ・アーカイビングに関する。
(関連出願の相互参照)
本出願は、2005年10月12日に出願された米国特許仮出願第60/725,812号の利点を主張するものである。
ほんの30年前には、大多数の私的な個人、小規模企業、および中規模企業でさえ、文書処理作業を電子タイプライタ上で実行し、個人的なデータおよび業務関連のデータを、手書きおよびタイプされた紙および用紙上に保存し、それらの紙および用紙をファイリング・キャビネット内の見出し付きのフォルダに手作業でファイルしていた。1970年代後半および1980年代の間に、ミニコンピュータベースのワープロ・システムが、そしてその後はパーソナル・コンピュータが、幅広く利用できるようになり、電子データの保存が、ファイリング・キャビネット内に保存される手書きおよびタイプされたページに比較的すばやく取って代わった。しかし、初期のマスストレージ・デバイスは、容量が小さく、堅牢性に欠けていたため、そしてコンピュータ・システムは、データ・バックアップおよびアーカイブされたデータを保存する上での有用性が限られていたため、多くの場合、電子データは、フロッピー・ディスク上に保存され、そしてそれらのフロッピー・ディスクは、見出しを付けられて、ファイリング・キャビネットのような入れ物に物理的に保存されていた。データ・バックアップおよびアーカイブされたデータは、比較的長期間にわたって確実に保存する必要がある。多くの場合、バックアップされたデータおよびアーカイブされたデータが再び必要とされることはない可能性があるが、バックアップされたデータまたはアーカイブされたデータをその後の使用のために検索する必要がある場合には、バックアップされたデータまたはアーカイブされたデータを検索する能力が、企業組織にとって、重大な、そして場合によっては致命的な結果にさえつながることがありうる。
パーソナル・コンピュータおよび企業のコンピューティング・システムが改良を続け、コンピュータのコスト・パフォーマンスが高まるに伴って、データ・バックアップおよびデータ・アーカイブは、現在では、ネットワーク化されたコンピュータ・システムによってアクセスできるマスストレージ・デバイス内に保存されるのが最も一般的である。図1は、小規模企業環境におけるデータ・バックアップおよびデータ・アーカイビングのためのオプションを示している。一般には、従業員や小規模事業主は、ほとんどのデータ関連作業をその従業員や事業主のパーソナル・コンピュータ102上で実行する。パーソナル・コンピュータは一般に、複数のディスク・ドライブを伴って購入され、それらのディスク・ドライブによって、単一のコンピュータ・システム内における予備のデータ・バックアップ(完全なディスク・ミラーリングを含む)および予備のデータ・アーカイビングが可能となる。しかし、小規模企業は一般に、パーソナル・コンピュータと、より高い性能を有する1つまたは複数のサーバ104とからなるネットワーク化されたシステムと、可用性がより高いフォルト・トレラントなデータストレージ・サブシステムとを採用している。このような環境においては、PC 102を主に使用する従業員や事業主は、その従業員や事業主自身のPC 102内におけるあらゆるローカルなバックアップおよびアーカイビングに加えて、バックアップ・データを保存するために、およびデータをアーカイブするために、ネットワークを介して、その他のPC 106および108や集中化されたサーバ104にアクセスすることができる。同様に、ホーム・ユーザも、自分のPC上に複数のディスク・ドライブを有することができ、複数のネットワーク化されたコンピュータにわたってバックアップ・データを保存することおよびデータをアーカイブすることを可能にするネットワーク化された複数のPCのシステムを有する場合が多い。さらに、図1に示されている小型のシステムにおいて、書き込み可能なCDまたはDVD、磁気テープ、あるいはその他のタイプの物理的なストレージ・メディア上にデータをバックアップおよびアーカイブすることができ、それらのCD、DVD、あるいはテープを離れた場所に保存することができる。しかし、やはりこのような慣行は、定期的に行われるバックアップおよびアーカイビング、離れた場所に保存された情報の管理、および忘れられたり先延ばしにされたりすることが多いその他の手作業に依存している。
残念なことに、個人および企業のコンピューティングにおける現在のトレンドおよび開発は、図1に示されている小型のコンピュータ・システムなどの効率の悪い危険な小型のコンピュータ・システムにおいてデータ・バックアップおよびデータ・アーカイビングを行うことを意図している。アプリケーションと、アプリケーションを実行するコンピュータ・システムとが、より大きく、より高性能になり続けるにつれて、日常的に作成されて個人および小規模企業のユーザによってバックアップおよびアーカイブする必要がある電子データの量が、急速に増大している。さらに、コンピュータ・システムのコスト・パフォーマンスが高まり、さまざまなアプリケーション・プログラムがますます利用可能になった結果として、より多くのアクティビティーおよびタスクが自動化されるようになるにつれて、より多くのタイプの電子データが、家庭および小規模企業のコンピュータ・ユーザによって作成されており、そうした電子データのうちの多くが、バックアップおよびアーカイブを必要とする可能性がある。新たな規制および法律によって、小規模企業は、確実にバックアップされたデータを比較的長期間にわたって保持することを求められている。たとえば、ある新たな法律は、医療記録を電子的に確実に保存することを求めており、その他の新たな法律は、有価証券取引を行う企業内のEメールおよびその他の有価証券関連の情報を確実に電子的に保存することを求めている。これらの法律および規制は、データ・バックアップおよびデータ・アーカイビングの経費が膨大に追加される一因となっている。データ・バックアップおよびデータ・アーカイビングは、ホーム・ユーザおよび小規模企業の側に継続的な勤勉および技術的な理解を必要とする。ホーム・ユーザおよび小規模企業は、バックアップされたデータおよびアーカイブされたデータがさまざまな異なる理由で失われたり修復不能になってしまったりしないように保証する方法でデータを効果的にバックアップおよびアーカイブする上で必要とされる技術的な専門知識、時間、および慎重さに欠けている場合が多い。コンピュータ・ベンダー、オペレーティングシステム・ベンダー、ならびにその他のハードウェア、ソフトウェア、およびサービスの提供業者によって進歩がもたらされてきたが、効率のよいユーザフレンドリーなデータ・バックアップおよびデータ・アーカイビングは、多くの異なるコンポーネントをインターフェースで相互に接続することを必要とする可能性があり、多くのインターフェースは、時と共に安定もせず、またセットアップおよび管理が容易でもない可能性がある。信頼できるデータ・バックアップおよびデータ・アーカイビングは、単一の場所でのデータの壊滅的な損失を防止するために、地理的に離れた複数の場所にデータが保存されることを必要とする。たとえば、データが小規模企業内で三重や四重に重複した様式でバックアップおよびアーカイブされている場合でさえ、火災、洪水、あるいは地震は、重複して保存されているデータがすべて失われたり修復不能な損傷を受けたりする結果にたやすく結び付くおそれがある。データを地理的に離れたデータストレージ設備にバックアップおよびアーカイビングすることは、ホーム・ユーザおよび小規模企業の技術的な能力および経済的な能力を超えている場合が多い。最後に、ホーム・ユーザや小規模企業が、信頼できる効果的なデータ・バックアップおよびデータ・アーカイビングのシステムを作成して管理することができる場合でさえ、ホーム・ユーザおよび小規模企業にとって、バックアップされたデータおよびアーカイブされたデータを、不注意なまたは悪意のある無許可のアクセスから保護することは、きわめて困難である。そのようなデータは一般に、ハッカー、競合他社、ならびに詐欺的な集団および組織によってアクセスされる。これらの理由すべてから、ホーム・ユーザ、小規模企業、ならびに中規模企業およびさらに大規模な組織でさえ、ユーザーフレンドリーな、信頼できる、そしてコスト効率のよいデータ・バックアップおよびデータ・ストレージ・サービスに対する必要性を誰もが認識している。
本発明の実施形態は、信頼できる、安全な、地理的に離れた、そしてコスト効率のよいデータ・バックアップ、データ・アーカイビング、ならびにバックアップおよびアーカイブされたデータの検索を必要とする私的な個人、小規模企業、およびその他の組織に対して、離れた場所でのデータ・バックアップおよびデータ・アーカイビングを提供するウェブサービスベースのデータ・バックアップ・アプリケーションおよびデータアーカイビング・アプリケーションを対象としている。本発明の一実施形態においては、個人や小規模企業の顧客が、サービス提供業者とデータバックアップ・サービスおよびデータアーカイビング・サービスを契約する。次いでサービス提供業者は、安全な信頼できるデータ・バックアップおよびデータ・アーカイビングを個人や小規模企業の顧客に提供するためにリモート・データストレージ設備と契約する。クライアント側のアプリケーションが、クライアント・コンピュータへダウンロードされ、そしてこのアプリケーションは、クライアントが、ローカルに暗号化されたデータを、離れた場所にあるデータストレージ設備に保存することを可能にするように構成される。サービス提供業者も、データストレージ設備も、クライアントによって保存された情報を復号したり、あるいはそうした情報にその他の形でアクセスしたりすることはできない。さらに、離れた場所に保存する目的でデータを暗号化するためにクライアントによって使用された1つまたは複数の暗号化キーは、もしもクライアントがローカル・コンピュータ・システムへのダメージや損害を被った場合にクライアントによって後で取り戻せるように、離れた場所にあるデータストレージ設備に安全に保存される。しかしクライアント暗号化キーは、二重に暗号化された様式で保存され、サービス提供業者またはデータ・ストレージ設備がクライアントの暗号化キーにアクセスすることを防止する。本発明の特定の実施形態はまた、離れた場所に保存された暗号化されたデータに関してローカルなインデックス付けを行うこと、および離れた場所に既に保存されているデータに対する更新を効率よく保存することを提供する。
本発明の実施形態は、ウェブサービスベースのデータ・バックアップおよびデータ・アーカイビングのアプリケーションを対象としている。上述のように、現在では電子的なデータ・バックアップおよびデータ・アーカイビングが、ホーム・ユーザおよび小規模企業によって一般に採用されているが、データ作成の増大、ならびに信頼できるデータ・バックアップおよびデータ・アーカイビングに対する必要性に伴って、信頼できる、安全な、そして地理的に離れたデータ・バックアップおよびデータ・アーカイビングに対するニーズが増大し続けている。
上述のように、図1を参照すると、家庭環境や小規模企業環境内のPCユーザは、ローカルPC上の、ならびに家庭環境や小規模企業環境内のリモートPC上の、および企業環境内のサーバの双方のハードウェアおよびソフトウェアのリソースにアクセスすることができる。しかしやはり、図1を参照して上述したように、ネットワーク化されたホームコンピュータ・システムおよび小規模企業システムは、データ・バックアップおよびデータ・アーカイビングのニーズには適していない。
図2に示されているように、PCユーザは、ローカルなハードウェアおよびソフトウェアのリソース、ならびにローカル・エリア・ネットワークを介して利用可能なハードウェアおよびソフトウェアのリソースにアクセスすることに加えて、ローカルPC上で実行されるウェブ・ブラウザ204、およびインターネット・サービス・プロバイダによって提供されるインターネット・アクセスを介して、世界中からの膨大な量のHTMLでコード化された情報およびインターネットベースのサービス202にアクセスすることができる。PCユーザは、インターネットを通じて数千万ページの情報にアクセスすることができ、さまざまな商品を購入するために、そしてさまざまなサービスを受けるために、インターネット上で小売取引および企業間取引を行うことができるが、残念なことに、現時点で本出願人が知っている限り、ユーザが、データ・ファイルおよびその他のファイルを、バックアップおよびアーカイビングの目的から、インターネットを通じてリモート・データストレージ設備へ継続的に、安全に、そして透過的にアップロードできるようにする方法で、ファイル名およびその他のファイル属性を含む潜在的に機密の情報を、そのリモート・データストレージ設備に対して、ハッカーに対して、そしてインターネットを通じて情報の伝送を傍受できる人物に対してさらさずにすむ方法はない。
インターネットを通じたアプリケーションどうしの対話のための新たな標準が、現在開発中である。この新興の標準の集まりを「ウェブ・サービス」と呼ぶ。ウェブ・サービスは、特定のポート(現在は、ポート80および443を含む)に関連付けられている特定のタイプのオペレーションまたはトランザクションを定義するHTTPベースのプロトコルやHTTPSベースのプロトコルおよびXMLベースのプロトコルの集まりと考えることができる。たとえばウェブサービス・プロトコルは、クライアント・コンピュータ上で実行される特定のアプリケーション・プログラムが、特定の定義されたタスクを実行するためにそのアプリケーション・プログラムにとってのサーバベースの相手側アプリケーション・プログラムと対話することができるように定義することができる。ウェブサービスベースのアプリケーションは、医療情報をコード化および転送するためのクライアント側およびサーバ側の2つ一組になったアプリケーション・プログラムを含むことができる。別のウェブサービスベースのアプリケーションは、インターネットを通じて相互接続された2つのPCによって結び付いているユーザどうしやユーザのグループどうしの間においてビデオ会議を可能にするために、音声情報および視覚情報を同時に2つのピアPCの間で伝送して、放送および表示用として提供することができる。コンピュータ・システムのホーム・ユーザおよび小規模企業ユーザの双方がウェブ・ブラウザおよびインターネット・アクセスを現在利用できる度合いと、ウェブサービスベースのアプリケーションの台頭と、リモート・データストレージ設備への信頼できる、安全な、そしてコスト効率のよいデータ・バックアップ・サービスおよびデータ・アーカイビング・サービスに対するニーズが現在認識されているという点とが相まって、本発明がさまざまに異なる形で具体化される刺激となっている。これらの実施形態は、私的な個人、小規模企業の従業員、あるいはPCまたは小型のコンピュータシステムのその他のユーザが、ウェブサービスベースのアプリケーションを介してインターネットを経由してリモート・データストレージ設備へのバックアップやアーカイブを行う目的からデータを容易にコスト効率よく伝送すること、そしてバックアップされたデータおよびアーカイブされたデータをリモート・データストレージ設備から必要に応じて検索することを可能にするウェブサービスベースのデータバックアップ・サービスおよびデータアーカイビング・サービスを対象としている。
図4は、ホーム・ユーザ、小規模企業ユーザ、あるいはPCまたはその他の小型のコンピュータ・システムのその他のユーザにとって利用可能なバックアップ・リソースおよびアーカイビング・リソースを、図1の図解仕様を使用して示している。図1を参照して論じたように、家庭環境、小規模企業環境、研究環境、あるいはデータを作成して確実にバックアップおよびアーカイブすることが必要となるその他の環境内におけるPC 102またはその他の小型のコンピュータ・システムのユーザは、ローカル・マスストレージ・デバイス、その他のハードウェア、およびローカルPC 102内にデータを重複してバックアップおよびアーカイブするためのソフトウェアを採用することができ、離れた場所にあるネットワーク化されたPC106および108上にデータをバックアップおよびアーカイブすることができ、集中化されたサーバやその他のより大規模なコンピュータ・リソース104上にデータをバックアップおよびアーカイブすることができ、また本発明によれば、データバックアップ/データアーカイビング・ウェブサービスベースのサービス402を採用して、データバックアップ/データアーカイビング・ウェブ・サービスをサポートするリモート・データストレージ設備上にデータをバックアップおよびアーカイブすることができる。ウェブ・サービスは、ローカルPC 102上で実行されるクライアント側のデータバックアップ/データアーカイビング・アプリケーション・プログラムを介してローカルPC 102から直接アクセスすることもでき、あるいは、集中化されたコンピューティング・リソース104を介して、またはリモートPC106および108を通じて、データ・バックアップ/データアーカイビング・ウェブ・サービスに間接的にアクセスすることもできる。
データバックアップ/データアーカイビング・ウェブ・サービスは、あらゆるウェブ・サービスと同様に、オペレーション、リモート・プロシージャー・コール、あるいはその他のそのような機能インターフェースの集まりとみなすことができ、それらが集まって、定義されたウェブ・サービスを構成している。本発明のさまざまな実施形態においては、リモート・データストレージ設備は、クライアント側のデータ・ボールト・アプリケーションを実行するクライアント・コンピュータへの第1のウェブサービス・インターフェースと、クライアントが、リモート・データストレージ設備によって提供されるデータバックアップ/データアーカイビング・サービスに契約する際に経由する提携サービス提供業者への第2のウェブサービス・インターフェースとを提供するデータ・ボールトを実装する。図4は、リモート・データストレージ設備上で実行されるデータ・ボールト・ウェブサービスベースのアプリケーションの一実施形態によって提供される2つのウェブサービス・インターフェースを示している。データ・ボールト・アプリケーションは、クライアント・コンピュータへの第1のウェブサービス・インターフェースを提供し、この第1のウェブサービス・インターフェースには、クライアントによってリモート・データストレージ設備上に保存されたファイルのリストを検索すること(402)、リモート・データストレージ設備上に保存されているファイルを検索するための準備を要求すること(404)、データストレージ設備から検索するよう要求されているファイルを実際に検索すること(406)、リモート・データストレージ設備上への保存用としてファイルをアップロードするための準備を要求すること(408)、および保存用としてファイルをリモート・データストレージ設備へ実際にアップロードすること(410)をクライアントが行えるようにする別々のプロトコルが含まれている。一実施形態においては、データ・ボールト・ウェブベースのアプリケーションは、サードパーティーすなわち提携サービス提供業者への提携先インターフェースを提供し、この提携先インターフェースは、データ・ボールト・アプリケーションからデバイス利用情報を得ること(412)、提携サービス提供業者を通じてクライアント用としてデータ・ボールト・アプリケーションによって構成されているデバイスをリストアップすること(414)、提携サービス提供業者を介してクライアント・コンピュータ用として構成されているデバイスを無効にすること(416)、提携サービス提供業者のクライアント用として構成されたデバイスを有効にすること(418)、提携サービス提供業者を通じてクライアント用として構成されているデバイスを除去すること(420)、および提携サービス提供業者のクライアント用として新たなデバイスを作成すること(422)を提携サービス提供業者が行えるようにする。代替実施形態においては、第1および第2のデータ・ボールト・ウェブベースのインターフェースによって、さらなる機能を提供することができ、またさらなる実施形態においては、プロトコルおよび関連付けられているオペレーション、リモート・プロシージャー・コール、あるいはその他の機能インターフェースのさまざまな集まりを提供することができる。いくつかの実施形態においては、提携サービス提供業者を必要とせずに、リモート・データストレージ設備によって直接クライアントへウェブサービスベースのデータバックアップ/データアーカイビング・サービスを提供することができる。
図5は、本発明のさまざまな実施形態をサポートする1つの可能なハイレベルのハードウェア構成を示している。図5において、クライアント・コンピュータ502は、インターネットベースの通信508に対するサポートを含むオペレーティング・システム506の上でクライアント側のデータバックアップ/データアーカイビング・アプリケーション504を実行する。オペレーティング・システム506は、HTTPS 510プロトコルをTCP/IPプロトコル512の上でサポートし、そしてTCP/IPプロトコル512は、1つまたは複数のデバイスドライバ固有のプロトコル514の上に層を形成し、デバイスドライバ固有のプロトコル514は、内部バスを介してデバイス・ドライバ516へデータを転送し、そしてデバイス・ドライバ516は、HTTPSプロトコルおよびTCP/IPプロトコルをサポートするリモート・コンピュータとの間で電子メッセージを送信および受信する。提携先のデータバックアップ/データアーカイビング・アプリケーション520は、提携サービス提供業者のコンピュータ522上で実行される。上述のように、本発明の特定の実施形態においては、クライアントは、データバックアップ・サービスおよびデータアーカイビング・サービスを提携サービス提供業者と契約する。サービスが確立されると、クライアントは、直接リモート・データストレージ設備524と通信して、データを保存および検索する。リモート・データストレージ設備524は、特定の実施形態においては、地理的に離れた複数のコンピュータ・システム526および528から構成することができ、それらの複数のコンピュータ・システムのそれぞれは、データ・ボールト・アプリケーション520を実行し、データ・ボールト・アプリケーション520は、図4を参照して上述したように、クライアント・コンピュータへの第1のウェブサービス・インターフェースと、提携サービス提供業者への第2のウェブサービス・インターフェースとを提供する。リモート・データストレージ設備は、予備のファイル・ストレージ/データベース・システム532および534を含み、この予備のファイル・ストレージ/データベース・システム532および534はそれぞれ、地理的に分散した複数のリモート・データストレージ設備コンピュータ526および528に地理的に関連付けることができ、あるいはリモートデータストレージ設備コンピュータ526および528、ならびに提携サービス提供業者522およびクライアント502の双方から地理的に離すこともできる。
図6A〜図6Fは、本発明の一実施形態に相当するウェブサービスベースのデータバックアップ/データアーカイビング・サービスの一態様を示している。図6A〜図6Fは、ウェブサービスベースのデータバックアップ/データアーカイビング・サービスの機能の象徴的な表示を採用している。図6Aは、クライアント602およびデータ・ボールト604を示している。上述のように、クライアント602は、クライアント・コンピュータ上で実行されるクライアント側のウェブサービスベースのデータバックアップ/データアーカイビングサービス・アプリケーションであり、データ・ボールト604は、1つまたは複数のリモート・データストレージ設備コンピュータ上で実行されるウェブサービスベースのデータ・ボールト・アプリケーションである。ファイル保存オペレーションは、ウェブサービス・アプリケーションによってクライアントに提供され、一般にファイルの形態での、クライアントからデータ・ボールトへの、保存用としてのデータの伝送を提供する。はじめにクライアントは、データ・ボールト上にバックアップする、またはアーカイブする平文ファイル606を有する。クライアントはまた、そのクライアントだけがアクセスできる暗号化キー608を保持する。クライアントは、提携サービス提供業者を通じてデータバックアップ・サービスおよびデータアーカイバル・サービスを契約しており、データ保存オペレーション用に構成されている。構成の一環として、クライアントは、データ・ボールトによってデバイスを割り当てられている。すなわち、データ・ボールトの視点から見れば、クライアントは、デバイス識別子を有するリモート・デバイスである。データ・ボールトは、リモート・デバイスによって暗号化されてそのリモート・デバイスによって自分に伝送されたファイル610を保存する。これらのファイルは、ファイルID 612などのファイルIDに関連付けられ、それによってデータ・ボールトは、その後のクライアントによる要求に応じて、保存されている暗号化されたファイルを検索して返すことができる。
したがってデータ・ボールトは、劇場、バス停、あるいはその他のそのようなサービス提供業者によって提供される衣服預け入れサービスに類似した論理的なサービスを提供する。顧客は、1つまたは複数のアイテムを預け入れることができ、それらのアイテムを表す識別タグを受け取る。サービス提供業者は、合致する識別番号を有するタグを、保管されたアイテムに取り付ける。その後、顧客は、タグを提示することによって、衣服の1つまたは複数のアイテムを取り出すことができ、サービス提供業者は、そのタグを、保管されている衣服と照合する。図6A〜図6Fにおいては、上述の類似を強調するために、保存されている暗号化されたファイルは、衣類ラックから吊るされている衣料品として、取り付けられている識別タグと共に象徴的に表示されているが、実際には、それらのファイルは、ファイル・サーバ上に、あるいはその他の何らかのファイルストレージ設備内に電子的に保存されている。
データ・ボールトはまた、安全なデータベース614を含み、この安全なデータベース614は、銀行や小売店における金庫の目的を果たすものと考えることができる。このデータベースの1つの機能は、クライアントの暗号化キー616のアクセス不能なコピーを安全に保存することである。クライアントは、何らかの理由で暗号化キー608を紛失した場合には、データ・ボールトから暗号化キーを得ることができる。しかしデータ・ボールトは、自分自身では暗号化キーにアクセスすることができず、したがって、暗号化されたファイル610内に保存されている情報のいずれにもアクセスすることはできない。クライアントは通常、そのクライアントがデータ・ボールト内にバックアップまたはアーカイブしたすべてのファイルのローカルなリストを保持する。しかしクライアントは、もしも何らかの理由で自分のファイルのリストを紛失した場合には、暗号化されたファイル属性を安全なデータベース614内に保存しているデータ・ボールトからファイルの暗号化されたリストを取り出すことができる。しかしデータ・ボールトは、そのデータ・ボールト内に保存されているファイル属性情報に自分自身ではアクセスすることができない。したがって、データ・ボールト内にバックアップされた、またはアーカイブされたファイルの内容やファイルの属性に関する情報が、クライアント・コンピュータから出て行く必要は決してない。データ・ボールト上にバックアップされた、またはアーカイブされたすべてのデータは、クライアントのデータを暗号化するためにそのクライアントによって採用されている暗号化技術と同じ程度に安全であり、またそのクライアント・コンピュータしかアクセスすることができない。
クライアントは、平文ファイル606をデータ・ボールト内に保存するために、2つの異なるオペレーションを実行する。はじめに、図6Bに示されているように、クライアントは、そのクライアントのデバイス番号ならびに暗号化されたファイル属性をデータ・ボールトへ送信して、関連付けられているファイルを後で保存するように要求する。次いで、図6Cに示されているように、データ・ボールトは、クライアントが保存しようと意図しているファイルに自分が関連付けるファイルIDをそのクライアントに返す。やはり上述のように、属性は、データ・ボールトへ伝送される前にクライアントによって暗号化される。したがってデータ・ボールトは、暗号化された属性616を安全なデータベース内に保存し、そして自分自身では、それらの暗号化された属性にアクセスすることまたは、それらの暗号化された属性を読み取ることはできない。図6Dに示されているように、クライアントは、保存されるファイルに関するファイルIDを受信すると、平文ファイルを暗号化して、その平文ファイルの暗号化されたバージョン618を作成する。そしてクライアントは、暗号化されたファイルを、その前にデータ・ボールトによってそのクライアントに返されていたそのクライアントのデバイス番号およびファイルIDと共に、図6Eに示されているように保存用としてデータ・ボールトへ送信する。最後に、図6Fに示されているように、データ・ボールトは、ファイルID 620に関連付けられている暗号化されたファイル618を、クライアントのコンピュータに関連付けられているデバイスに割り当てられているファイル・ストレージ設備内に保存し、これによってクライアントは、その後にそのファイルIDをデータ・ボールトに提供することによって、暗号化されたファイルを検索することができる。ファイルIDは、安全なデータベース614内の暗号化されたファイル属性およびそのデバイスに関するデバイス識別子に関連付けられており、それによって、クライアントは、もしもデータ・ボールト上にバックアップされたまたはアーカイブされたファイルを識別するローカルに保存されている情報を紛失した場合には、後でデータ・ボールトからファイルを検索する際に使用するために、そのクライアントのデバイスに関連付けられている暗号化されたファイル属性/ファイルIDのペアをデータ・ボールトに要求することができる。
図7A〜図7Bは、ウェブサービスベースのデータバックアップ/データアーカイビング・サービスを契約するための、ならびにクライアントを初期構成するためのクライアントと提携サービス提供業者との間における対話を示している。図7A〜図7Bは、クライアントと、提携サービス提供業者と、データ・ボールトとの間におけるウェブサービス・プロトコルに従ったデータの伝送を示している。図7A〜図7Bにおいては、3つの列が示されており、左から右へ順にクライアント、提携サービス提供業者、およびデータ・ボールトを表している。図7Aに示されているように、クライアントは、サービスを求める要求702を提携サービス提供業者へ送信し、その提携サービス提供業者は、クライアント側のウェブサービスベースのデータバックアップ/データアーカイビングサービス・アプリケーション・ソフトウェア704をそのクライアントへ返す。このトランザクションは、図7Aの2つのメッセージを介して行われているように示されているが、比較的長いプロトコルを含むことができ、この比較的長いプロトコルにおいては、クライアントは、はじめに、提携サービス提供業者によって提供されるウェブ・ページに応答し、さまざまな用紙および支払情報を受信し、記入し、返信し、そしてウェブサービスベースのデータバックアップ/データアーカイビング・サービスを首尾よく契約するために、およびクライアント側のソフトウェアを受け取るために、さらなる任意のトランザクション関連のオペレーションを実行する。
クライアント側のソフトウェアがインストールされると、クライアント・コンピュータ上に公開/秘密暗号化キーのペアが作成され、その公開/秘密暗号化キーのペアのうちの公開暗号化キー706が、新たな構成を求める要求の一部としてクライアントによって提携サービス提供業者へ伝送される。次いで提携サービス提供業者は、新たなデバイスの要求を伴ったクライアントの公開暗号化キー708をデータ・ボールトへ伝送する。データ・ボールトは、提携サービス提供業者およびクライアントの双方のために新たなデバイスを作成し、クライアントの公開キーを使用してデバイス構成情報を応答メッセージ710内に暗号化し、その応答メッセージを提携サービス提供業者へ返す。提携サービス提供業者は、暗号化されたデバイス構成情報を応答メッセージ712内に含めて(さらに、その提携サービス提供業者によってクライアントのために作成されたパスフレーズをその応答メッセージ内に含めて)、その応答メッセージをクライアントに返す。クライアントは、応答メッセージ712を受信すると、提携サービス提供業者によって提供されたパスフレーズならびに暗号化されたデバイス構成情報を抽出することができ、そのクライアントの秘密暗号化キーを使用してデバイス構成情報を復号することができる。本発明の特定の実施形態においては、クライアントは、提携サービス提供業者によるパスフレーズの作成に依存せずに、1つまたは複数のパスフレーズを選択したり、あるいは提案したりすることができる。そしてデバイス構成情報は、次のデータバックアップ・オペレーションおよびデータアーカイブ・オペレーション用としてクライアント側のアプリケーションを完全に構成するためにクライアント側のソフトウェアによって使用される。提携サービス提供業者は、クライアントの秘密暗号化キーを所有していないため、データ・ボールトによってクライアントへ返されたデバイス構成情報を傍受したり、アクセスしたり、あるいは使用したりすることができないという点に留意されたい。データ・ボールトは、提携サービス提供業者によってクライアントへ返されたパスフレーズを利用することができないという点にも留意されたい。しかし、本発明の多くの実施形態においては、提携サービス提供業者は、エスクロー・サービスを用いて、クライアントのために作成されたパスフレーズ、ならびに提携サービス提供業者の秘密暗号化キーを保存することに同意し、それによって、提携サービス提供業者が、オペレーションを中断したり、あるいはデータ・ボールトから提携サービス提供業者を通じたデータバックアップ・サービスおよびデータアーカイブ・サービスを契約しているクライアント・コンピュータにとってその他の形で利用できなくなったりした場合に、クライアントに提供された1つまたは複数のパスフレーズをそれらのクライアントによって取り戻すことができ、提携サービス提供業者の秘密暗号化キーをデータ・ボールトによって取り戻すことができる。
次いで、図7Bに示されているように、クライアントは、そのクライアントのコンピュータだけに知られている新たな暗号化キーを作成し、提携サービス提供業者によって提供されるパスフレーズを用いて、その新たな暗号化キーを暗号化して、パスフレーズによって暗号化された新たな暗号化キー714を作成し、次いで提携サービス提供業者の公開暗号化キーを用いて、そのパスフレーズによって暗号化された新たな暗号化キーを暗号化して、二重に暗号化された新たな暗号化キー716を作成し、この二重に暗号化された新たな暗号化キー716は、クライアントによってデータ・ボールトへ送信される。データ・ボールトは、二重に暗号化された新たなクライアント暗号化キーを、そのクライアントに対して割り当てられているデバイスを表すデバイス識別子に関連付けて安全なデータベース内に保存する。この保存される二重に暗号化されたクライアント暗号化キーは、図7Bにおいては、保護された暗号化キー716として表示されている。そしてデータ・ボールトは、確認応答メッセージ718をクライアント・コンピュータに返信する。本発明の特定の実施形態においては、提携サービス提供業者を経由して確認応答を送信することもできる。
これでクライアント・コンピュータは、その後のデータバックアップ・オペレーションおよびデータアーカイブ・オペレーション用に完全に構成されている。クライアント・コンピュータは、そのクライアント・コンピュータの暗号化キーのローカルに保存されたコピーを有し、このコピーをその後に使用して、バックアップやアーカイビングのためにデータ・ボールトへ伝送されるすべてのデータを暗号化する。クライアントの暗号化キーはそのクライアントしか知らないため、またクライアントの暗号化キーはデータ・ボールト内で二重に暗号化されているため、データ・ボールトや提携サービス提供業者のいずれも、クライアントによってデータ・ボールト内に保存されている情報を復号するためにそのクライアントの暗号化キーにアクセスすることはできない。このことの重要な結果として、データ・ボールト内でクライアント・データが安全であるだけでなく、保存されているファイルに関連付けられているファイル属性も安全であり、それによって、提携サービス提供業者やデータ・ボールトのいずれも、保存されているデータ属性を読み取ったり、あるいはそれらのデータ属性にその他の形でアクセスしたりすることはできない。弁護士事務所は、たとえば、その弁護士事務所の依頼人を連想させたり、あるいはその弁護士事務所の依頼人のためにその弁護士事務所によって行われるさまざまな法的な事項や処理を連想させたりするファイル名を有する多くのファイルを保存する可能性がある。たとえこれらのファイルの内容がデータ・ボールトまたは提携サービス提供業者にとってアクセス不能であっても、ファイル名がアクセス可能であるならば、データ・ボールト、提携サービス提供業者、あるいはデータ・ボールトまたは提携サービス提供業者へのアクセスを得る悪意ある第三者によって、多くの機密情報が探り出される可能性がある。しかし、本発明の実施形態に相当するウェブサービス・プロトコルのもとでは、ファイル名、ファイルの所有者、およびその他のファイル属性は、クライアント・コンピュータを離れる前に暗号化によって完全に保護される。
図8は、図6A〜図6Fに関して前述した、データをデータ・ボールト内に安全に保存するために呼び出されるクライアント側のオペレーションを示すシンプルなフローコントロール・プログラムである。ステップ802において、クライアントは、ファイルに関連付けられているファイル属性を暗号化し、保存要求を直接データ・ボールトへ送信する。この保存要求は、クライアント側のソフトウェアの初期構成の一環として受け取られたクライアント・コンピュータに関連付けられているデバイスを表すデバイスIDを含む。ステップ804においては、クライアントは、引き換えにデータ・ボールトからファイルIDを受信する。ステップ806においては、クライアントは、保存されるファイルを暗号化し、その暗号化したファイルをファイルIDと共にデータ・ボールトへ送信する。ステップ808においては、クライアントは、そのファイルが1つまたは複数のリモート・データストレージ設備上に首尾よく保存された旨の確認応答をデータ・ボールトから受信する。
図9は、クライアントのためにファイルを保存することに関連したデータ・ボールト・アプリケーションによって実行されるオペレーションを示している。ステップ902において、データ・ボールトは、クライアントから保存要求を受信する。データ・ボールトは、承認ステップおよび確認ステップを実行した後に、クライアントのために新たなファイルIDを作成する。ステップ906においては、データ・ボールトは、ステップ902において受信された保存要求からファイル属性を抽出し、それらの暗号化されたファイル属性を、新たに作成されたファイルIDに関連付けて安全なデータベース内に保存する。ステップ908においては、データ・ボールトは、ファイルIDをクライアントへ返す。ステップ910においては、データ・ボールトは、暗号化されたファイルをファイルIDと共にデータ・ボールト内への保存用として受信し、そしてステップ912においては、データ・ボールトは、暗号化されたファイルを受信した旨を、ファイルIDに関連付けられているデータベース項目内に記録し、暗号化されたファイルをファイル・サーバまたはその他のデータストレージ・デバイス上に保存し、そして確認応答をクライアントへ送信する。
クライアントによるファイルの検索は、比較的シンプルであり、ファイルを求める要求をファイルIDおよびデバイス識別子と共にデータ・ボールトへ送信することを含み、その要求がデータ・ボールトによって正しく確認され承認されると、データ・ボールトは、指定されたファイルをファイル・サーバ上で見つけ出し、その指定されたファイルをクライアントに返す。上述のように、クライアントは、もしも暗号化されたファイル属性/ファイルIDのペアのローカルなコピーを何らかの形で紛失した場合には、その情報をデータ・ボールトに要求して、データ・ボールトから受信することもできる。さらにクライアントは、もしもクライアント暗号化キーを紛失した場合には、二重に暗号化されたクライアント暗号化キーをデータ・ボールトに要求して、データ・ボールトから受信することができる。この要求は、提携サービス提供業者を通じてクライアントによって行うことができ、その場合には、提携サービス提供業者は、パスフレーズによって暗号化された暗号化キーをそのクライアントへ転送する前に、そのクライアントのために二重の暗号化の第1のレベルを復号することができる。
本発明の代替実施形態においては、ウェブサービスベースのデータバックアップ/データアーカイビング・サービスは、さらなるサービスを提供することができる。たとえば、本発明の一実施形態においては、ファイルの暗号化に先立って、クライアント側のアプリケーションは、ローカルなインデックス内に保存されるファイルに関するインデックス情報を作成して、そのクライアント側のアプリケーションが、テキスト文字列またはその他の検索情報に対して、離れた場所に保存されているファイルを検索できるようにする。すなわち、ローカルに保存されるインデックスは、言葉のインデックスまたはその他のデータオブジェクト・インデックスを含み、そこでは、言葉がファイルIDに関連付けられている。そして、ファイルが暗号化される際に、そのファイルのために作成されたインデックス情報も暗号化して、保存用として別途データ・ボールトへ送信することができる。ローカルなインデックス情報がクライアントによって何らかの形で失われた場合には、そのインデックス情報を、暗号化された形態でデータ・ボールトから取り出すことができる。
本発明のさまざまな実施形態によって提供されるさらなるサービスは、効率のよいファイル更新である。さまざまな実施形態においては、クライアントは、データ・ボールト上に保存するための更新されたファイルを、クライアント上にローカルに保存されている更新されたファイルの古いバージョンと比較し、それらの2つのファイルの間における差分を計算する。次いでクライアントは、それらの差分のみを、それらの差分を記述するメタデータと共に暗号化し、そして、更新されたファイルの全体を伝送するのではなく、これらの暗号化された差分およびメタデータが、保存用としてデータ・ボールトへ伝送される。データ・ボールトは、ファイルの最初のバージョンを一連の更新と共に保存することができ、そして最初の完全なバージョンおよび以降の更新の双方を返すことができ、あるいは保存されている更新されたファイルがその後にクライアントによって要求された場合には、最新の更新および要求された古い更新をすべてクライアントに返すこともできる。更新されたファイルの全体ではなく、更新された差分を暗号化して伝送することは、計算上の効率がさらによいだけでなく、伝送および保存上の効率もさらによい。
(本発明のさまざまな実施形態のさらに詳細な説明)
このサブセクションにおいては、本発明の実装される実施形態に関するさらに詳細な説明が提供される。図10は、本発明の一実施形態に相当するバックアップ/復元(以下、修復という。)/アーカイビング・システムのクライアント側部分およびサーバ側部分を概観レベルで示している。バックアップ/修復/アーカイビング・システムのクライアント側部分1002は、複数のユーザ・デバイス、一般には「PC」(personal computer)を含む。記載されている実施形態においては、バックアップ・サービス、修復サービス、およびアーカイビング・サービスは、バックアップ/修復/アーカイビング・システムのサーバ側部分によってクライアント・デバイスの単位で提供される。すなわち、バックアップ・サービス、修復サービス、およびアーカイビング・サービスは、パーソナル・コンピュータなどの物理的なハードウェア・デバイスへ提供される。代替実施形態においては、バックアップ・サービス、修復サービス、およびアーカイビング・サービスは、ハードウェア・デバイスの特定のユーザ・パーティションへなど、より細かいレベルの単位で提供することができる。
クライアント・デバイスは、インターネット・プロトコル1006の上に実装される「SSL」(secure socket layer)接続を使用した特定の実施形態においては、安全な接続を介してバックアップ/修復/アーカイビング・システムのサーバ側部分1004と通信する。バックアップ/修復/アーカイビング・システムのサーバ側部分1004は、1つまたは複数のウェブ・サーバ1008と、1つまたは複数の共有ディスク・サーバ1010と、1つまたは複数のジョブ・サーバ1012と、1つまたは複数のデータベース・サーバ1014と、1つまたは複数のアクティブディレクトリ・サーバ1016と、1つまたは複数の永久データストレージ・デバイス1018と、オペレーション・モニタ1020とを含む。1つまたは複数のウェブ・サーバ1008は、直接クライアント・デバイス1002と対話し、したがってこれらのウェブ・サーバは、ファイアウォール1022〜1024によって、それらのクライアント・デバイス、およびバックアップ/修復/アーカイビング・システムのサーバ側部分1004内のその他のデバイスから隔離されている。
図10に示されているバックアップ/修復/アーカイビング・システムの概観は、本発明によるバックアップ/修復/アーカイビング・システムの無数の可能な構成のうちの1つを示しているにすぎない。極端な一例としては、バックアップ/修復/アーカイビング・システムのサーバ側部分の全体を単一のサーバ・コンピュータ内に実装することができ、他方の極端な一例としては、複数のコンポーネントからなる複雑なサーバ側部分をローカルに、かつ地理的に分散した形で複製して、障害および災害に対するきわめて高いレベルの耐性と、高い可用性とを提供することができる。図11は、本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システムのサーバ側部分の単一サーバの実装形態を概観レベルで示している。単一サーバの実装形態は、インターネット情報サーバ・アプリケーション1102、アクティブ・ディレクトリ1104、およびSQLサーバ1106を含み、これらが一体となって、バックアップ/修復/アーカイビング・システムのサーバ側部分の機能を単一のサーバ・コンピュータ1108内に提供する。図12は、本発明の代替実施形態に相当する複雑な複製されたバックアップ/修復/アーカイビング・システムを示している。図12に示されている複数のコンポーネントからなる複製されたバックアップ/修復/アーカイビング・システムにおいては、第1のデータ・センタ1202は、ひとそろいのウェブ・サーバ1204、データベース・サーバ1206、アクティブディレクトリ・サーバ1208、および分散型ファイルシステムの方法を用いて実装されている永久データ・ストレージ設備1210を含み、この第1のデータ・センタ1202には、グローバル・ロード・バランサ1212およびローカル・ロード・バランサ1214を介してクライアント・コンピュータからインターネットを介してアクセスすることができる。SQLの複製1216、アクティブディレクトリの複製1217、および分散型ファイルサービスの複製1218を使用して、第1のデータ・センタ1202が第2のデータ・センタ1220において複製され、この第2のデータ・センタ1220は、第1のデータ・センタから地理的に分散させることができる。したがって、図12に示されている実施形態においては、バックアップ/修復/アーカイビング・システムの、2つの別々の、複数のコンポーネントからなるサーバ側部分が共存して、障害および災害に対する耐性ならびに高い可用性を提供する。さらなる代替実施形態においては、複数のコンポーネントからなるサーバ側部分を、三重に、四重に、あるいはさらにいっそう高いレベルで重複して複製することができる。さらに、より高性能の実装形態においては、それぞれのサーバ側部分における永久データ・ストアそのものを丸ごと複製することもでき、あるいはRAID−5およびRAID−6のストレージ・システムにおいて見られるエラー・コードのコード化に基づく冗長性など、冗長性を導入する別のタイプの技術によって重複して保存することもできる。
図13A〜図13Cは、図10において概観レベルで示されているバックアップ/修復/アーカイビング・システム内の基本的な機能を示している。図13Aは、クライアント・デバイス(図10の1002)内の基本的な機能を示している。バックアップ/修復/アーカイビング・システムのクライアントデバイス部分は、3つの異なるプロセスを含む。第1のプロセスは、クライアント・デバイスの端末1306上に表示されるアイコン1304を通じたインタラクティブな呼び出しなど、さまざまなルーチン呼び出し方法のうちのいずれかを介してユーザによって呼び出されるユーザインターフェース・ルーチン1302として実施される。このユーザインターフェース・ルーチンは、基本的なユーザ管理サービスおよびユーザ構成サービスを提供し、これらのサービスによって、ユーザは、とりわけ、バックアップ/修復/アーカイビング・システムによって継続的におよび自動的にバックアップすべきクライアント・デバイス内に常駐しているファイルおよびその他のファイルに類するオブジェクトのリスト1312を含むローカルに保存されているカタログ1310を修正すること(1308)ができる。カタログ1310はさらに、それぞれのファイルごとにファイルの変更を検知する期間、改訂数の表示、あるいは保持すべき所与のファイルまたはファイルに類するオブジェクトのインスタンス、ファイルまたはファイルに類するオブジェクトに関してユーザが望む保護のレベルの表示、およびその他のそのようなパラメータなどの構成情報を含むことができる。
ユーザは、クライアントデバイスのディスプレイ・モニタ1306上に表示されるグラフィカルユーザ・インターフェースを通じてユーザインターフェース・ルーチン1302へさまざまなタイプのコマンドを発することができる。コマンドは、ファイルおよびファイルに類するオブジェクトをバックアップ・リストに追加すること、またはバックアップ・リストから削除すること、1つまたは複数の特定のファイルを特定の以前にバックアップされたインスタンスへ修復するためのコマンド、バックアップ/修復/アーカイビング・システム内に保存されている改訂履歴を切り捨てるためのコマンド、およびさまざまな代替実施形態におけるさまざまなさらなるコマンドを含む。
2つのさらなるプロセス1314および1316が、ウィンドウズ・サービスとしてクライアント・デバイス内で継続的に実行される。第1のウィンドウズサービス・プロセス1314は、バックアップ・オペレーションおよび修復オペレーションを実行する役割を果たす主要なクライアント側のサービス・プロセスである。第2の継続的に実行されるウィンドウズサービス・プロセス1316は、バックアップ/修復/アーカイビング・システムのサーバ側部分、ならびにバックアップ/修復/アーカイビング・システムの提携先とデータをやり取りするために「BITS」(background intelligent transfer service)および「SSL」(secure socket layer)を採用する移送サービスである。BITSは、リモート・エンティティーとデータをやり取りするためにバックグラウンド・プロセスとして予備のネットワーク帯域幅および処理サイクルを使用する。
主要なクライアント側のプロセス1314は、カタログ1310内に保存されているデータによって指定されているようにバックアップ/修復/アーカイビング・システムによって継続的にバックアップされるファイル1320などのそれぞれのファイルまたはファイルに類するオブジェクトを定期的にチェックするモニタリング機能1318を含む。モニタリング・プロセス1318は、現時点のファイル・タイムスタンプと、以前に記録されたタイムスタンプとの比較または、その他のそのような情報に基づいて、最後の定期的なモニタリング・サイクル以降にファイルが変更されているかどうかを判定する。ファイルが変更されている場合には、バックアップ・ルーチン1322は、そのファイルそのもの1324と、ローカルに保存されている情報、またはバックアップ/修復/アーカイビング・システムのサーバ側部分から得られる情報のいずれかとを使用して、変更されたファイルと、そのファイルの前のインスタンスとの間におけるブロック差分を計算する。ブロック差分とは、ファイルのうちの変更されている部分、したがって永久に保存するためにバックアップ/修復/アーカイビング・システムのサーバ側部分へ伝送する必要がある部分を含んでいると判断されたΔブロックのセットである。バックアップ/修復/アーカイビング・システムのサーバ側部分によって現時点で保存されていないと分かっているΔブロック、またはΔブロックのサブセットは、アップロード・ファイル1326に、ならびにローカル・キャッシュ1328に追加される。アップロード・ファイル1326は、アップロード・ファイルの待ち行列1328に入れられ、これらのアップロード・ファイルは、移送サービス・プロセス1316によってバックアップ/修復/アーカイビング・システムのサーバ側部分へ1つずつ移送される。ユーザが、ユーザインターフェース・ルーチン1302を通じて修復オペレーションを要求すると、主要なクライアント側のプロセス1314内の修復プロセス1330が呼び出されて、ファイルのうちで、ローカル・キャッシュ1328およびファイル1332の任意の既存の部分からローカルに得ることができるブロックを割り出し、移送サービス・プロセス1316を介してバックアップ/修復/アーカイビング・システムのサーバ側部分からその他の必要とされるすべてのブロックを検索し、そしてそれらの検索されたブロックと、ローカルに利用可能なブロックとを使用して、ファイル1332の修復されたバージョンを組み立てる。
図13Aに示されているバックアップ/修復/アーカイビング・システムのクライアント側部分は、多くの異なる可能な実装形態のうちの1つにすぎない。バックアップ機能、修復機能、カタログ機能、キャッシュ機能、移送機能、およびユーザインターフェース機能を、より少ないモジュールおよびプロセスへと統合することもでき、あるいは別の方法としては、さらにいっそう多い数の異なる機能モジュール、機能プロセス、および機能サービスへと分割することもできる。
図13B〜図13Cは、本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システムのサーバ側部分(図10の1004)の機能的なオペレーションを示している。図13Bに示されているように、1つまたは複数のウェブ・サーバ1008は、それぞれルーティングマネージャー機能1340を含み、このルーティングマネージャー機能1340は、SSL層1342およびインターネットなどの通信メディアを介して、バックアップ/修復/アーカイビング・システムがバックアップ・サービス、修復サービス、およびアーカイビング・サービスを提供するクライアント・デバイスのそれぞれの移送サービス・プロセス(図13Aの1316)と通信する。ルーティング・マネージャー1340は、1つまたは複数のデータベース・サーバ1014のうちの1つにアクセスして、クライアント・デバイスがウェブ・サーバ1008へのSSL接続を開設した後にそのクライアント・デバイスによって提供された信用証明書を、サーバ側部分のアクティブディレクトリ・サーバ104によって保存されている信用証明書と照合する。1つまたは複数のデータベース・サーバ1014は、メタデータ・マネージャー1344を実行し、このメタデータ・マネージャー1344は、グローバル・カタログ1346、提携先および提携先の暗号化キー1348に関して保存されている情報、クライアント・デバイスに関して保存されている情報、クライアント・デバイスに関連付けられている信用証明書、およびクライアント・デバイスに関するエスクローされたファイル暗号化キー1350、ならびにその他の情報に相当するさまざまなデータベース・テーブルまたはファイルを管理し、そうしたデータベース・テーブルまたはファイルから情報を検索し、そうしたデータベース・テーブルまたはファイル内に情報を保存する。ルーティング・マネージャーは、接続しているクライアント・デバイスを確認すると、クライアント・デバイスからアップロード・ファイルを受け入れて、それらのアップロード・ファイルを、1つまたは複数の共有不揮発性ストレージ・サーバ1010によって提供される共有不揮発性ストレージ1352内の待ち行列に入れることができる。さらにルーティング・マネージャーは、受け取ったアップロード・ファイルに関する情報を、1つまたは複数のデータベース・サーバ1014のうちの1つの上で実行されているメタデータ・マネージャー1344へ伝送し、それによってメタデータ・マネージャーは、データベース内に保存されて1つまたは複数のデータベース・サーバのメタデータ・マネージャーによって管理されているジョブ待ち行列1354内へジョブ要求を入力することができる。同様に、ダウンロード・ファイル1356などのダウンロード・ファイルは、ルーティング・マネージャー1340によってクライアント・デバイスへ移送するために共有不揮発性ストレージ1352内のダウンロードファイル待ち行列内に保存することができる。
クライアント・デバイスとルーティング・マネージャーとの間において転送されるデータの大部分は、バックアップ・データに相当するアップロード・ファイルと、クライアント・デバイスによって特定のファイルまたはファイルに類するオブジェクトを修復するために必要とされる暗号化されたデータ・ブロックに相当するダウンロード・ファイルとから構成されるが、ルーティング・マネージャー1340は、クライアント・デバイスのためのカタログ・データに対する更新を含むコマンド、およびその他のそのような構成コマンドおよび管理コマンドなど、さらなるコマンドを受け取ることもできる。多くの場合、これらのコマンドは、ルーティング・マネージャーによって、データベース・サーバ上で実行されているメタデータ・マネージャー1344へ直接転送され、メタデータ・マネージャーは、これらのコマンドをすぐに実行してルーティング・マネージャーに応答を返すか、またはこれらのコマンドを後で処理するためにジョブ待ち行列内に入れる。1つまたは複数のアクティブディレクトリ・サーバ1016は、分散型ネットワーク・ドメイン内でネットワーク・オブジェクトを管理する役割を果たす。コンポーネント・システム、データ・リソース、およびその他のそのようなオブジェクトによって実行されるサービスおよびアプリケーションを含む、バックアップ/修復/アーカイビング・システムのサーバ側部分のさまざまなコンポーネント・システムは、1つまたは複数のアクティブディレクトリ・サーバによって作成されて管理されるグローバル・ネーム・スペースを通じてアドレス可能である。
図13Cに示されているように、1つまたは複数のジョブ・サーバ1012のそれぞれの上で実行されるワークホース・ルーチン1360は、バックアップ・オペレーションおよび修復オペレーションを実行する役割を果たす。ワークホース・ルーチン1360は、データベース・サーバ1014の集まりの上に保存されてそれらの集まりによって管理されているジョブ待ち行列1354から連続したジョブを外し、ジョブ待ち行列から外されたそれらの項目によって表されているタスクを実行する。バックアップ・タスクのために、ワークホース・ルーチン1360は、特定のジョブ待ち行列項目1364に対応するアップロード・ファイル1362を検索し、メタデータ・マネージャー1344によって提供されるメタ・データを使用して、そのアップロード・ファイルを一連のファイル署名および暗号化されたデータ・ブロックへと分解し、ファイル署名を、メタデータ・マネージャー1344を介してデータベース1014内に保存し、そのファイル署名に関連付けられている暗号化されたデータ・ブロックを、1つまたは複数の永久データ・サーバ1018によって提供される永久データベース内に保存する。同様に、ワークホース・ルーチン1360は、ジョブ待ち行列1354から修復ジョブを外すと、必要とされる暗号化されたデータ・ブロック、保存されているファイル署名、およびその他の情報を、永久データ・ストア1018およびデータベース1014から検索し、それらの情報をダウンロード・ファイル1366へと組み立て、そのダウンロード・ファイルを、ルーティング・マネージャー1340によってクライアント・デバイスへ最終的に転送するために共有不揮発性ストレージ1352内のダウンロード・ファイルの待ち行列内へ入れる。
したがって、図10へ戻ると、本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システムは、バックアップ/修復/アーカイビング・システムのサーバ側部分1004によってバックアップ・サービス、修復サービス、およびアーカイビング・サービスを提供される潜在的に非常に多数のクライアント・デバイス1002を含む。バックアップ/修復/アーカイビング・システムのサーバ側部分は、図10に示されているように、複数の専用のサーバとコンピュータ・システムとを含む単一のデータ・センタにおける単一のサーバ・コンピュータ内に実装することもでき、あるいは複数のコンポーネントからなる複数の複製されたデータ・センタとして実装することもできる。バックアップ/修復/アーカイビング・システムのサーバ側部分は、クライアント・デバイスへのウェブ・インターフェースを含み、このウェブ・インターフェースは、クライアント・デバイスからの要求を受信する役割と、それらの要求を実行するためにバックアップ/修復/アーカイビング・システムのサーバ側の適切なコンポーネントへ回送する役割とを果たし、バックアップ/修復/アーカイビング・システムのサーバ側部分からクライアント・デバイスへ応答およびデータを返送する。バックアップ/修復/アーカイビング・システムのサーバ側部分は、アップロード・ファイルを一時的に保存してジョブ・サーバ1012へ通信するために、およびダウンロード・ファイルをジョブ・サーバ1012から一時的に保存してウェブ・インターフェース1008へ通信するために使用される共有不揮発性ストレージ・スペース1010を含む。バックアップ/修復/アーカイビング・システムのサーバ側のデータベース部分1014は、クライアント・デバイスや提携先の状態を追跡把握するために必要とされるメタデータと、バックアップ/修復/アーカイビング・システムによって実行する必要がある現在のタスクとを保存し、その一方で、バックアップ/修復/アーカイビング・システムのサーバ側の永久データ・ストア部分1018は、クライアント・デバイスによってファイルおよびファイルに類するオブジェクトを修復するために必要とされる可能性がある暗号化されたデータ・ブロックを保存する。
図14A〜図14Dは、対応するファイル署名および暗号化されたデータ・ブロックを作成するための、主要なサービス・プロセス(図13Aの1314)によるファイルおよびファイルに類するオブジェクトの処理を示している。図14Aに示されているように、ファイルまたはファイルに類するオブジェクト1402は、バイト、ワード、ロング・ワード、あるいはその他の基本的なデータ単位の順序付けられたシーケンスとみなすことができる。クライアント・デバイス上の主要なサービス・プロセスによって実行される第1のステップにおいては、クライアント・デバイス1402内に常駐しているファイルまたはファイルに類するオブジェクトが、ナチュラル・ブロックへと論理的に分割される。ナチュラル・ブロックの境界は、図14Aにおいては、縦の破線1404などの縦の破線によって示されている。ナチュラル・ブロックは、可変長を有しており、ナチュラル・ブロックの境界は、時と共にファイルに対して行われる段階的な変更に関してお互いから比較的独立することができるファイルの部分どうしを隔てるファイル内の境界に対応する。すなわち、あるファイルが、時と共に編集オペレーションおよびその他のファイル・オペレーションによって変更されるにつれて、ブロック内における複数の変更が、ブロック間にわたる複数の変更よりも高い頻度で発生するはずであり、それによって、比較的同時に発生する変更のセットが、ナチュラル・ブロック内に限定される。しかし、可変長のブロックに分割するこの方法は、ファイルまたはファイルに類するオブジェクト内におけるナチュラル・ブロックを最もよく推定するということに他ならず、ファイルの変更に関して独立したブロックへとファイルを正確に分割することを保証するものではない。
次のステップにおいては、一般に比較的小さなナチュラル・ブロックが順次集まって、固定長のブロック1408などの連続したほぼ固定長のブロックが形成される。ほぼ固定長のブロック1408は、たとえば、第1のステップにおいて識別された最初の4つのナチュラル・ブロック1406および1410〜1412を含む。次なる一式のナチュラル・ブロック1414〜1417がまとまって、次なる固定長のブロック1410となる。したがって、ファイルを処理する方法の最初の2つのステップの結果として、1つのファイルまたはファイルに類するオブジェクトは、段階的な変更に関してお互いから適度に独立していると推定される一式の順次並べられたほぼ固定長のブロックへと分割される。これらのほぼ固定長のブロックは、それぞれのほぼ固定長のブロックにまとめられるナチュラル・ブロックの長さの合計における不均衡に起因して、わずかに異なる長さとすることもできる。本発明の一実施形態においては、ほぼ固定長のブロックは、64Kバイトに近い長さを有する。
図14Bに示されているように、それぞれのほぼ固定長のブロックに関して、ブロック・ハッシュが計算される。本発明の一実施形態においては、クライアントデバイス・ファイル暗号化キー1420、圧縮アルゴリズム識別子1422、および暗号化アルゴリズム識別子1424が、ほぼ固定長のブロック1426内のデータと結合され、MD5ハッシュ関数1428などの暗号化ハッシュ関数によって処理されて、ブロック・ハッシュ1430が作成される。ファイル暗号化キー、圧縮アルゴリズムID、および暗号化アルゴリズムIDを含めることによって確実に、もしもファイル暗号化キー、圧縮アルゴリズム、あるいは暗号化アルゴリズムがクライアントによって変更された場合に、新たな暗号化キーおよび/または圧縮アルゴリズムによって暗号化および圧縮されたブロックを、以前に使用されていた暗号化キー、暗号化アルゴリズム、および/または圧縮アルゴリズムによって暗号化および/または圧縮されたブロックから容易に見分けることができるようになる。さらに、ファイル暗号化キーを含めることによって、バックアップ/修復/アーカイビング・システムのサーバ側部分を対象とした特定のタイプのセキュリティー攻撃を鈍らせることができる。ブロック・ハッシュ1430は、元のほぼ固定長のブロック1426の数値的な要約、すなわちダイジェストと考えることができる。一般には、ブロック・ハッシュは、たとえば256バイト、512バイト、1024バイト、あるいは2の別の累乗のバイトの固定長を有する。暗号化ハッシュ関数を使用することによって確実に、任意のクライアント・デバイス上に存在する任意のファイルまたはファイルに類するオブジェクトからそのクライアント・デバイスによって作成された2つの異なるほぼ固定長のブロックが同じブロック・ハッシュを有する可能性は、非常に小さくなる。すなわちブロック・ハッシュは、バックアップ/修復/アーカイビング・システムの全体を通じてほぼ固定長のブロックの一意の識別子であるということが、きわめて高い確率で保証される。
図14Cに示されているように、それぞれのほぼ固定長のブロックは、そのブロックに対応するブロック・ハッシュの計算に続いて、圧縮アルゴリズム1432によって圧縮され、次いでクライアントのファイル暗号化キーを使用して暗号化アルゴリズム1434によって暗号化される。これらのステップは、以前に計算されたブロック・ハッシュ1430によって識別された元のほぼ固定長のデータ・ブロック1426に対応する一般により小さな暗号化されたデータ・ブロック1436を作成する。
図14Dは、クライアント・デバイスの主要なサービス・プロセスによるファイル署名の計算を示している。図14A〜図14Cを参照して上述したように、ファイルまたはファイルに類するオブジェクトはまず、ほぼ固定長のブロック1440〜1446のシーケンスへと分割される。図14Bに示されているステップが、図14Dにおける矢印1448などの矢印によって表されているように、それぞれのほぼ固定長のブロックごとに実行され、それぞれのほぼ固定長のブロックごとにブロック・ハッシュが作成される。このブロック・ハッシュは、ほぼ固定長のブロックの長さと共に、最初のほぼ固定長のブロック1440に対応するブロック記述子1450などのブロック記述子を構成する。ブロック記述子の順序付けられたシーケンスが、ファイルまたはファイル・オブジェクトの対応するほぼ固定長のブロックに対して構築され、そのブロック記述子の順序付けられたシーケンスにヘッダが添付されて、ファイル署名1452が形成される。ヘッダ1454は、署名バージョン番号を含むことができ、それによって、ファイル署名の内容および/またはフォーマットを時と共に変更することができ、それぞれのファイル署名は、ヘッダ1454内に含まれているバージョン識別子の結果として、自らのバージョンを表す。さらにヘッダは、署名内のブロック記述子の数、およびさらなる情報を含むことができる。ファイル署名は、ヘッダとブロック記述子とをコード化しているバイトのシーケンスやストリームによって表すことができ、あるいは、さらに複雑なデータ構造内にコード化することもできる。
したがって、バックアップ/修復/アーカイビング・システムの観点から見れば、バックアップ/修復/アーカイビング・システムによって継続的にモニタされバックアップされるクライアント・デバイス内に保存されているファイルまたはファイルに類するオブジェクトの特定のインスタンスは、ファイル署名/データブロックシーケンスのペアであると考えられる。ファイルまたはファイルに類するオブジェクトは、完全に再構築することができ、ファイル署名と、ファイル・データを含むほぼ固定長のブロックとによって完全に指定される。クライアントからバックアップ/修復/アーカイビング・システムのサーバ側部分へ伝送される平文の形式だがほぼ固定長のあらゆるブロックが暗号化されている場合、したがって外部のいかなるエンティティーも、それらのブロック内に含まれているデータにアクセスすることができない場合、クライアント内においては、ほぼ固定長のブロックの順序付けられたシーケンスを利用することができる。
図15A〜図15Eは、本発明の実施形態によるファイル・インスタンシングを示している。図15Aは、ファイルの最初の基礎レベルのインスタンスを示している。上述のように、ファイルまたはファイルに類するオブジェクトは、クライアント・デバイス上の主要なサービス・プロセスによって処理されて、署名1502と、ほぼ固定長のブロック1504のシーケンスとが作成され、ほぼ固定長のブロック1504は、バックアップ/修復/アーカイビング・システムのサーバ側部分へ伝送されてそのサーバ側部分の中に保存されるために、圧縮され暗号化される。したがって、ファイル署名/ほぼ固定長のブロックシーケンスのペアは、そのファイル署名およびほぼ固定長のブロックが作成される元となったファイルまたはファイルに類するオブジェクトの内容を完全に指定する。はじめに、ファイルに対する変更を時と共に継続的にモニタしてバックアップするために、クライアントデバイスのユーザによってファイルが特定される。ファイルに対する変更が検知されて、ファイルがバックアップされるたびに、そのファイルの新たなインスタンス、すなわちバージョンが、バックアップ/修復/アーカイビング・システムの観点から作成される。ファイルが継続的なバックアップ用として最初に指定されると、図15Aに示されているように、ファイル署名/暗号化されたほぼ固定長のブロックシーケンスのペアが作成され、バックアップ/修復/アーカイビング・システムのサーバ側部分へ伝送されて、そのファイルの基礎レベルのインスタンスを表す。
図15Bは、図15Aに示されているファイル署名/暗号化されたほぼ固定長のブロックシーケンスのペアによって記述されているファイルの最初のバックアップを示している。ファイルが変更されたり編集されたりしたことが検知されると、新たなファイル署名1506が、そのファイルの現在の内容から作成される。この新たなファイル署名は、前のファイル署名1502とブロックで位置合わせされ、図15Bにおける矢印1508などの水平な両方向の矢印によって示されているように、対応するブロックどうしが比較される。対応するほぼ固定長のブロックに関して計算されたブロック・ハッシュが異なる場合には、その対応するほぼ固定長のブロックは、元のファイルに対して変更されている。図15Bにおいては、最初のファイル署名1502と、新たなファイル署名1506との対応するブロック記述子どうしを比較することによって、ブロック記述子1510〜1512によって表されているほぼ固定長のブロックが変更されていると判断されている。これらのファイル記述子に関連付けられているほぼ固定長のブロック1514〜1516が集まって、修正されたブロック、すなわちΔブロックのリストを構成する。図15Bを参照して論じたファイル署名の比較は、インテリジェントな比較であり、この比較によって、ファイルの最初のインスタンス内のブロックと、修正されたファイル内の対応するブロックとの間における対応を崩さずに、新たなブロックを元のブロック・シーケンス内に挿入することができ、元のブロックを削除することができ、ファイルに対するその他のそのような大規模な修正を行うことができる。すなわち、2つのファイル署名を対応付けて配置することができ、また挿入および削除の双方を検知することができ、これによって、一方のファイル署名内の削除および/または追加に続くブロック記述子は、他方の署名内のブロック記述子との対応を維持する。これは、遺伝子座に対応するDNAのシーケンスが、サブシーケンスの挿入および削除にもかかわらず、お互いに対して位置合わせできることによく似ている。
したがって、図15Bに示されているように、ファイルの修正や変更を検知したことに続いて、新たなファイル署名と、Δブロックのセットとを作成することができ、それによって、元のファイル署名1502と、ほぼ固定長のブロック1504の順序付けられたシーケンスとの組合せが、新たに作成されたファイル署名1506およびΔブロック1514〜1516と共に、元のファイル、および元のファイルの変更や修正を施された次なるバージョンの双方を完全に指定する。図15Cに示されているように、元のファイル、および元のファイルの修正されたバージョンの双方のデータ内容はそれぞれ、そのファイルのインスタンス0およびインスタンス1とみなされ、ほぼ固定長のデータ・ブロック1504の元の順序付けられたシーケンス、ならびにΔブロック1518の一般により小さなセットを含む。元のブロックおよびΔブロックが、バックアップ/修復/アーカイビング・システムのサーバ側部分の永久ストア内に保存されるならば、そして元のファイル署名1502、およびより新しく作成された第2のファイル署名1506の双方が、バックアップ/修復/アーカイビング・システムのサーバ側部分のデータベース部分の中に保存されるならば、元のファイル、またはその後に修正されたファイルのいずれかを、保存されているデータ・ブロック、Δブロック、およびファイル署名から完全に修復することができる。
図15Dに示されているように、ファイルのそれぞれの検知された修正、Δブロックの判定、および永久データ・ストア内へのΔブロックの保存を利用して、ファイルの新たなインスタンスが作成される。図15Dにおいては、元のファイルがバックアップされた後に、そのファイルの6つのインスタンスが作成されている。既に述べたように、元のファイルは、ほぼ固定長のブロック1504の列によって表されており、それぞれの後続のインスタンスは、Δブロック1518および1523の列によって表されている。元のファイル・ブロック、およびそれぞれのインスタンスごとにΔブロックのみを保存することによって、ファイルのインスタンスのすべてを表すために保存する必要があるデータ・ブロックの数は、それぞれのインスタンスの全体を保存する場合よりも、はるかに少なくなる。その上、以降でさらに詳しく論じるように、データ・ブロックは、バックアップ/修復/アーカイビング・システムのサーバ側部分の永久ストア内に保存されて、それらのそれぞれのブロック・ハッシュによってのみインデックス付けされるため、1つのクライアント・デバイスの複数のファイル内において、あるいは複数のクライアント・デバイスにわたって分散されている複数のファイル内において現れるデータ・ブロックは、永久ストア内に1回保存するだけでよい。すなわち、特定のブロックハッシュ値によって識別されるいかなる特定のデータ・ブロックについても、その特定のデータ・ブロックが、バックアップ/修復/アーカイビング・システムによって継続的にモニタされバックアップされているさまざまなクライアント・デバイスにわたって分散しているさまざまなファイル内において何回現れるかにかかわらず、その特定のデータ・ブロックの単一のインスタンスのみを永久ストア内に保存すればよい。図15Dに示されているように、1つのファイルのさまざまなインスタンスのすべてを表すために永久ストア内に保存される元のファイル・ブロックおよびΔブロックと共に、そのファイルのそれぞれの連続したインスタンスごとに作成されるファイル署名の完全なセットが、バックアップ/修復/アーカイビング・システムのサーバ側部分のデータベース部分の中に保持される。本発明の特定の実施形態においては、差分保存を使用してデータ・ブロックが保存されるのと同様に、差分保存技術を使用してファイル署名を保存することができる。すなわち、最初のファイル署名については、その全体を保存することができ、そして、次なるインスタンスと、前に保存されたインスタンスとに関して計算されたファイル署名どうしの間における差分のみが保存される。
図16は、本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システムによってモニタされて継続的にバックアップされるクライアント・デバイス上のそれぞれのファイルごとにバックアップ/修復/アーカイビング・システムのサーバ側部分およびクライアント側部分に保存される情報をまとめている。図16に示されているように、バックアップ/修復/アーカイビング・システムのサーバ側部分においては、ファイルに関するファイル署名履歴1602が、バックアップ/修復/アーカイビング・システムのサーバ側部分のデータベース部分の中に、図15Eに論理的に示されているように保存される。さらに、図15Dに示されているようなファイルのデータブロック履歴の圧縮され暗号化されたバージョン1604が、バックアップ/修復/アーカイビング・システムのサーバ側部分の永久ストア部分の中に保存される。クライアント側においては、モニタされバックアップされるそれぞれのファイルごとに、そのファイルに関して最も新しく作成されたファイル署名1606が保存されることが好ましい。最も新しく作成された直近のファイル署名のローカルなコピーを保持することによって、そのファイルの次なるインスタンスと、そのファイルの最も新しく保存されたインスタンスとの間における差分を、保存されているファイル署名1606、およびそのファイルの新たなインスタンスに関して作成された新たなファイル署名のみから計算することができ、バックアップ/修復/アーカイビング・システムのサーバ側部分に保存されている情報にアクセスする必要はない。さらに、クライアント側のデータストレージ・リソースに余裕があるため、署名キャッシュ1608およびデータブロック・キャッシュ1610をクライアント・デバイス上に保持して、修復オペレーションを容易にすることができる。最良の場合、ローカルに保存されているファイル署名およびデータ・ブロックのみを使用して、ファイルを前のバージョンすなわちインスタンスへ修復することができ、バックアップ/修復/アーカイビング・システムのサーバ側部分からファイル署名およびデータ・ブロックを検索する必要はない。しかし、もしも署名キャッシュ1608、データ・ブロック・キャッシュ1610、および最も新しく作成されたファイル署名1606までもが、クライアント・デバイスから削除された場合には、まずバックアップ/修復/アーカイビング・システムのサーバ側部分からの必要とされるファイル署名およびデータ・ブロックにアクセスすることによって、ファイルのそれまでに作成されてバックアップされたいかなるインスタンスも、クライアント・デバイス上で修復することができる。
図17A〜図17Bは、本発明の実施形態に従ってファイルに関して保存されているファイル署名履歴およびデータブロック履歴からファイルの特定のインスタンスを構築するための論理演算を示している。図17Aは、図15Eを参照して前述したようなファイルに関するファイル署名履歴を示している。ファイルの完全な最新のインスタンスを構築するためには、ファイル署名履歴内のそれぞれのブロックごとの対応するブロック記述子を、隣接しているファイル署名内のブロック・ハッシュどうしの間における差分が検知されるまで横断する必要がある。たとえば、ファイルの第6のインスタンス内の第1のデータ・ブロック(ブロック記述子1702によって表されている)に関しては、そのブロックに関するブロック・ハッシュが異なる2つの隣接するファイル署名を検知するために、ファイル署名履歴内のそのブロックに対応するブロック記述子が、最も新しいものから最も古いものまで横断される。図17Aに示されているように、ファイルの第5のインスタンス1708および第4のインスタンス1710に対応するファイル署名の対応するブロック記述子1704および1706内に保存されているブロック・ハッシュどうしの比較が、異なるものとして検知され、ファイルの第5のインスタンスに関して計算された差分ブロックが、ファイルの第6のインスタンス内に含まれるべきデータ・ブロックのバージョンであることが示される。図17Bは、図15Dを参照して上述したようなファイルに関するデータブロック履歴を示している。図17Bにおいて見て取れるように、ファイル1712の第1のデータ・ブロックに対応する最も新しく保存されたデータ・ブロックは、ファイルの第5のインスタンスのバックアップ中に検知されて保存された差分ブロックである。別の例としては、ファイルの最後のブロックに関するブロック・ハッシュのすべてと、ファイル署名のすべてとがまったく同じであり、元のファイルが保存されてからそのファイルの最後のブロックが変更されておらず、したがって元のデータ・ブロックは、インスタンス6内に含まれるべきデータ・ブロックであるということが示される。
図17A〜図17Bは、ファイルに関するファイル署名履歴およびデータブロック履歴から所与のインスタンスを論理的に再構築することを示すように意図されている。しかし、実際的な観点から見れば、ファイルの特定のインスタンスは、そのインスタンスに対応するファイル署名、およびデータ・ブロック・ストアのみを使用して完全に修復することができる。これは、ファイル署名内のそれぞれのブロック記述子が、ファイル内の対応するデータブロック位置において現れるデータ・ブロックを一意に指定するブロック・ハッシュを含むためである。
図18A〜図18Bは、本発明の実施形態によるバージョン履歴の切り捨てを示している。図18Aは、図15Dを参照して上述したブロック履歴を示している。ストレージ・スペースを節約するために、バックアップ/修復/アーカイビング・システムは、ファイルの最新のインスタンスのうちの数個のみを保存することを選択することができる場合がありうる。たとえば、図18Aに示されているように、バックアップ/修復/アーカイビング・システムは、ファイルに関するインスタンス6、5、4および3のみを保存して、インスタンス2、1、および0に関するファイル署名および不要なブロックを削除することを選択することができる。概念的には、インスタンス履歴を切り捨てること、すなわち複数の最も古く作成されたインスタンスを除去することは、図18Aにおける破線1802によって表されているように、最も古く作成されたインスタンスを選択し直して、それ以前のインスタンスに関する保存されているファイル署名、ならびにそれ以前のインスタンスに関する不要なデータ・ブロックを除去することと考えることができる。図18Aにおいては、不要なデータ・ブロックは、「×」記号1804などの「×」記号を用いて示されている。ファイルの第3のインスタンスのデータを表すデータ・ブロックは、白丸1806などの白丸を用いて示されている。したがって、ファイル履歴を切り捨てるために、インスタンス2、1、および0に対応するファイル署名が除去され、「×」記号を用いて図18Aに示されているデータ・ブロックを永久ストアから削除することができる。図18Bは、図18Aを参照して論じたバージョンの切り捨てに続くデータブロック履歴を示している。図15Bに示されているように、それまで「インスタンス3」と呼ばれていたインスタンスが、今度は「インスタンス0」1810と呼ばれ、インスタンス3の以前に事後変更されたそれまでのインスタンスからのデータ・ブロックが除去されている。したがってインスタンス履歴は、バックアップ/修復/アーカイビング・システムのサーバ側部分だけで切り捨てることができ、元のファイルを再構築して、除去されることになる最も新しく作成されたインスタンスまでの連続したインスタンス(最も新しく作成されたインスタンスを含む)を作成する必要はない。
図19A〜図19Bは、本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システム内のセキュリティー関連のエンティティーおよびオペレーションを示している。これらのエンティティーおよびオペレーションについては、バックアップ/修復/アーカイビング・システムのクライアント側、サーバ側、および提携先側の部分に関連して論じる。これらのエンティティーおよびオペレーションについて説明する際には、単一のクライアント・デバイス1902、サーバ側部分1904、および提携先1906について考える。クライアント、提携先、およびサーバは、安全な接続1908〜1910を介して相互に通信する。本発明の一実施形態においては、提携先/サーバの通信は、二重に認証されたSSL接続を通じて行われる。クライアント/提携先の通信は、片側のSSLの安全な接続1908を通じて行われ、提携先は、クライアントのために第三者の認証サービスによって認証されたSSL証明書を提供する。クライアント/サーバの最初の通信中には、一重に認証されたSSL接続1910が採用される。その後に、そのSSL接続は、それぞれのクライアントによるサーバへの要求に応じた信用証明書の伝送によって補強される。
提携先1906は、クライアントがサービスを契約する際に経由するサーバ1904から独立したエンティティーである。提携先はまた、以降で論じるように、全体的なセキュリティー戦略の非常に重要なコンポーネントである。提携先は、提携先秘密キー/提携先公開キーの暗号化キー・ペアを作成し、提携先秘密キー1912を提携先のシステム上に安全に保持し、提携先公開キー1914をバックアップ/修復/アーカイビング・システムのサーバ側部分へ提供し、次いで提携先公開キー1914は、サーバによってクライアントへ提供される。提携先はまた、クライアントを識別する保存されたデバイスID 1916を含む。クライアントも、このデバイスIDを保存する。このデバイスIDは、はじめにサーバ1904上で作成され、そしてサーバ1904内に保存される。サーバは、クライアントのために信用証明書1918を作成し、その後のクライアント/サーバの通信を保護するためにそれらの信用証明書をクライアントへ提供する。クライアントは、自分だけが知っているファイル暗号化キー1920を作成して使用する。このファイル暗号化キーを使用して、データ・ブロックが暗号化され、それらのデータ・ブロックは、サーバ1904へ伝送され、そしてサーバ1904によって保存される。クライアントはまた、クライアント暗号化キー1922を作成して保存し、このクライアント暗号化キー1922は、二重に暗号化された形式1924でサーバ内に保存する目的でクライアントのファイル暗号化キー1920を二重に暗号化するために提携先公開キー1912と共に使用される。
図19Bは、ファイル暗号化キーの使用を示している。ファイル暗号化キー1920をクライアントによって使用して、それぞれのデータ・ブロック1930が暗号化され、このデータ・ブロック1930は、サーバ1904へ伝送され、そしてサーバ1904によって保存される。同様にクライアントは、サーバによってクライアントへ返されてクライアントのファイル・インスタンスを修復する目的で使用されるデータ・ブロックを復号するためにファイル暗号化キー1920を採用する。ファイル暗号化キーは、クライアントによって作成され、そのクライアントしかアクセスすることができないため、バックアップ・オペレーションおよび修復オペレーションの一環としてクライアント・デバイスからリモート・エンティティーへ伝送されるファイル・データはリモート・デバイスによってアクセスすることはできない。ファイル暗号化キーは、サーバ1904内でエスクローされている(1924)が、サーバは、このファイル暗号化キーにアクセスすることはできない。というのも、このファイル暗号化キーそのものは、クライアントだけが知っているクライアント暗号化キー1922、および提携先公開暗号化キー1912の双方によって暗号化されているためである。クライアントは、提携先が、サーバ上でエスクローされている二重に暗号化されたファイル暗号化キーを検索し、暗号化の第1の層を復号して、クライアント暗号化キーによって暗号化されているファイル暗号化キーをそのクライアント・デバイスへ返すよう要求することによって、ファイル暗号化キーを取り戻すことができる。このことによって、サーバは、クライアント・データまたはクライアントのファイル暗号化キーにアクセスすることは絶対にできず、提携先は、ファイル暗号化キーにもクライアント・データにもアクセスすることは絶対にできない。クライアントがファイル暗号化キーを紛失しても、そのことは、そのクライアントにとって致命傷にはならない。というのも、そのファイル暗号化キーは、サーバ1904内にエスクローされているためである。
図19Cは、クライアント・デバイスがファイル暗号化キーを不注意に削除したり紛失したりした場合のクライアントによるファイル暗号化キーの検索を示している。ファイル暗号化キーがなければ、クライアントは、サーバによってクライアントへ返された暗号化されているデータ・ブロックを復号することができない。しかし、クライアントのファイル暗号化キーは、サーバ1904上で二重に暗号化された形式1924でエスクローされている。したがって、ファイル暗号化キーを検索するために、クライアントは、ファイル暗号化キーを検索するための要求1936を提携先1906へ送信し、次いで提携先は、その要求をサーバ1904へ転送する。サーバは、二重に暗号化されたファイル暗号化キー1924を提携先へ返し、提携先は、第1のレベルの暗号化を復号して、クライアントのクライアント暗号化キーによって一重に暗号化されているファイル暗号化キー1938を作成する。この一重に暗号化されているファイル暗号化キー1938は、クライアント1902へ返され、クライアント1902は、クライアント暗号化キーを用いてそのファイル暗号化キーを復号して、平文形式のファイル暗号化キー1940を再作成する。
図19Dは、クライアントの信用証明書によって容易になるクライアント・デバイスとサーバとの間における安全な通信を示している。サーバが、現時点で変更されているクライアント・ファイルをバックアップするためにアップロード・ファイルを処理することなど、サーバからのサービスを要求する際に、クライアントは、サーバによって作成されてクライアントの初期設定中にクライアント・コンピュータへ提供されるユーザ名およびパスワードなど、信用証明書1918と共にそのクライアントを表すデバイスID 1916をその要求内に含める。サーバは、その要求を受信すると、その要求と共に含まれているデバイスIDおよび信用証明書を、バックアップ/修復/アーカイビング・システムのサーバ側部分のアクティブディレクトリ部分の中に保存されているデバイスID 1916および信用証明書と照合することによって、その要求が有効なクライアントから受信されたものであることを確認することができる。したがって、デバイスIDおよび信用証明書によって、サーバは、要求を、特定のクライアントから受信されたものとして識別し、その要求を確認し、バックアップ/修復/アーカイビング・システムのサーバ側部分を通じてその要求を回送し、それによって、その要求から作成された応答を、要求を行ったクライアントへ返すことができる。
図20A〜図20Cは、クライアントの初期設定を示す一種の制御流れ図を提供し、この初期設定によって、クライアントは、本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システムのサーバ側部分との間で要求およびデータの完全に安全なやり取りを行うことができる。はじめにステップ2002において、クライアントは、バックアップ・サービスおよび修復サービスを受けることを求める要求を準備して、提携先へ送信する。クライアントは、提携先によって提供されるウェブ・ページとの対話を介して、提携先によって提供される初期設定ルーチンを介して、あるいは別の方法によって、要求を準備して送信することができる。ステップ2004において、提携先は、バックアップ/修復サービスの要求をクライアントから受信し、そしてステップ2006において、その要求が正当なクライアント・デバイスから来たものであることを確認し、そのクライアント・デバイスと、望ましくないデバイスのリストとの照合を試みることなど、その他のさらなる任意の確認を実行し、そのクライアントに関して保存されているデータ項目を確立し(このデータ項目によって、提携先は、そのクライアントを最終的に追跡把握することができ、次いでそのクライアントを識別して、そのクライアントと対話することができる)、そしてデバイス提供要求をサーバへ送信することによってサーバからの新たなデバイスの提供を要求する。受け手は、ステップ2008においてデバイス提供要求を受信し、そしてステップ2010において、1回だけ使用できるデバイス・チケットを準備し、次いでサーバは、 この1回だけ使用できるデバイス・チケットを提携先へ返す。1回だけ使用できるデバイス・チケットは、クライアントが後でサーバに連絡を取る際に使用することができるURL 2012と、1回だけ使用できるチケットをバックアップ/修復/アーカイビング・システム内で一意に識別するチケットID 2014と、クライアントを表すために作成されたデバイスID 2016とを含む。提携先は、ステップ2018において、1回だけ使用できるデバイス・チケットを受信し、ステップ2020において、自分が保存しているクライアント情報を、チケット内に含まれているデバイスIDを含むように更新してから、そのチケットをクライアント・デバイスへ転送する。提携先はさらに、チケットをクライアント・デバイスへ転送する前に、そのチケットに任意選択の情報を送信することができる。たとえば、クライアント・デバイスのグループは、提携先によってそれらのクライアントのために作成された共通のクライアント暗号化キーおよびその他のそのような情報を使用することを選択することができる。チケットに付加される任意選択の情報は、このキーを含むことができる。ステップ2022において、クライアント・デバイスは、1回だけ使用できるチケットを受信する。ステップ2024において、クライアントは、図13Aを参照して論じたクライアント側のユーザインターフェース・ルーチンおよびサービス・プロセスを実施するクライアント側のアプリケーションをインストールする。クライアント側の実行ファイルがインストールされて実行されると、クライアントは、ステップ2026において、サーバとの安全な接続を確立し、自分が受信した1回だけ使用できるデバイス・チケット内に含まれているチケットID 2014をサーバへ送信する。ステップ2028において、サーバは、チケットIDを受信し、そして図20Bへと続いて、ステップ2030において、チケットIDを確認し、クライアントに関する以前に作成されたデバイスIDおよび提携先情報を受け取る。次いでサーバは、ステップ2032において、デバイスIDによって識別されたクライアント・デバイスへサービスを提供するようにバックアップ/修復/アーカイビング・システムのサーバ側部分を構成し、そしてステップ2034において、パスワードおよびユーザ名など、そのクライアント・デバイスのための信用証明書を作成する。次いでサーバは、ステップ2036において、作成されたユーザ名2040と、パスワード2042と、提携先の公開キー2044とを含むクライアント用の応答2038を準備し、その応答2038をクライアントへ返す。ステップ2050において、クライアントは、その応答を受信し、次いでステップ2052において、その応答内に含まれている情報を使用して、その後にサーバとの間で要求およびデータをやり取りするようにクライアント側のプロセスを構成する。ステップ2054において、クライアントは、パスワードに基づく方法を介して、自分のファイル暗号化キーを作成し、自分のクライアント暗号化キーを作成する。そのパスワードを覚えておくことによって、クライアントは、その後にクライアント暗号化キーを再作成することができる。そしてステップ2056において、クライアントは、クライアント暗号化キーを用いてファイル暗号化キーを暗号化し、次いで、その暗号化したファイル暗号化キーを、提携先の公開キーを用いて暗号化して、二重に暗号化されたファイル暗号化キーを作成する。ステップ2058において、クライアントは、二重に暗号化されたファイル暗号化キーをサーバへ送信し、サーバは、その二重に暗号化されたファイル暗号化キーをステップ2060において受信し、その二重に暗号化されたファイル暗号化キーを保存する、すなわちエスクローする。ステップ2062において、サーバーは、クライアントへ確認応答を返し、クライアントは、ステップ2064においてその確認応答を受信すると、その後にサーバへ要求を出してサーバとの間でデータをやり取りするための準備が整う。クライアントとサーバとの間における安全な接続は、短時間しか機能することができず、次なる要求およびデータのやり取りのためにクライアントによって再び確立することができる。クライアントは、デバイスIDおよび信用証明書をいったん所有すれば、サーバへの完全に安全な接続を任意の時点で再び確立することができる。
図21は、本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システムのサーバ側部分の永久ストア部分によって実装されるブロック・ストアを概観レベルで示している。図21においては、ブロック・ストア2102が、ブロックハッシュ・インデックス2104を含むものとして示されており、ブロックハッシュ・インデックス2104のそれぞれの項目は、ブロック・ストア内に保存されているデータ・ブロック2106など、特定の暗号化されたデータ・ブロックを参照する。特定のデータ・ブロックに関する参照を含むことに加えて、ブロックハッシュ・インデックス内の項目はまた、現時点でそのブロックを参照するファイル署名の数を示す参照数を含むことができる。この方法においては、いかなる特定のデータ・ブロックも、複数のクライアントにわたって分散されている複数のファイルがそのデータ・ブロックを含む可能性があるという事実にもかかわらず、その単一のインスタンスをデータ・ストア内に保存するだけでよい。ブロック・ストアによって提供されるオペレーションには、(1)クエリー、(2)検索、(3)保存、および(4)削除が含まれる。クエリー・オペレーション2108においては、ブロック・ストアは、ブロック・ハッシュ2110を受信し、ブロックハッシュ・インデックスに問い合わせて、そのブロック・ハッシュに対応する暗号化されたデータ・ブロックが現時点でブロック・ストア内に保存されているかどうかを判定する。そのブロック・ハッシュに対応するデータ・ブロックが現時点でブロック・ストア内に保存されているか否かの表示2112が返される。検索オペレーション2114においては、ブロック・ストアは、ブロック・ハッシュ2116を受信し、現時点で保存されている暗号化されたデータ・ブロックが、その提供されたブロック・ハッシュ2116に対応する場合には、ブロック・ストアからそのブロック・ハッシュに対応する暗号化されたデータ・ブロック2118を返す。保存オペレーション2120においては、ブロック・ストアは、ブロック・ハッシュおよび暗号化されたデータ・ブロックを受信し、その暗号化されたデータ・ブロックが、そのブロック・ストア内に既に保存されているものでない場合には、そのデータ・ブロックを保存し、提供されたブロック・ハッシュへのブロックハッシュ・インデックスを、そのデータ・ブロックを参照するように更新する。その暗号化されたデータ・ブロックが、そのブロック・ストア内に既に保存されている場合には、そのデータ・ブロックに関する参照数がインクリメントされる。削除オペレーション2126においては、ブロック・ストアは、ブロック・ハッシュを受信し、そのブロック・ハッシュが現時点でブロックハッシュ・インデックス内に存在する場合には、そのブロック・ハッシュに関する参照数をデクリメントする。参照数が0までデクリメントされた場合には、ブロックハッシュ・インデックスによって参照されるデータ・ブロックも削除され、その後に、そのブロック・ハッシュに対応するブロックハッシュインデックス項目が除去される。
図21を参照して説明したブロック・ハッシュの方法およびブロック・ストアは、差分バックアップおよび差分修復の双方を可能にする。図22は、差分バックアップを示している。図22に示されているように、新たに更新されたファイルに関して作成された最後の署名2202が、クライアント上で、そのファイルに関するそれまでに作成された直近のファイル署名2204と比較されて、そのファイルのうちのどのブロックが変更されているか(2206)が判定される。これらの変更されたブロックに関するブロック・ハッシュをすべてメッセージ2208内にまとめることができ、そのメッセージ2208をサーバへ送信することができる。そしてサーバは、図21を参照して上述したように、ブロック・ストアに対してクエリーを行って、それらのブロック・ハッシュのうちのどれが現時点でそのブロック・ストアのブロックハッシュ・インデックス内に保存されていないかを割り出す。それらのブロック・ハッシュに対応するデータ・ブロックのみを、バックアップ・プロセス中にクライアントによってサーバへ送信すればよい。したがってサーバは、現時点でブロック・ストア内に保存されていないΔブロック2206のブロック・ハッシュの表示2212を返し、そしてクライアントは、アップロード・ファイルを準備する際に、新たに作成されたファイル署名2202と、サーバによって返されたブロック・ハッシュ2212に対応するデータ・ブロックとを伝送するだけでよい。差分バックアップによって、クライアントとサーバとの間における不要なデータのやり取りがなくなる。クエリーと、データブロックの伝送との合間にデータ・ブロックがデータブロック・ストアから削除されてしまうことが絶対にないようにするために、二相コミット・プロトコルを使用することができる。
図23は、差分修復を示している。差分修復においては、所望のインスタンスに関するファイル署名2302が、現時点でクライアント上に存在するそのファイルに関するファイル署名2304と比較される。この比較によって、ファイルを所望のバージョンすなわちインスタンスへと修復するために取り戻す必要があるデータを表すΔブロックのセット2306が作成される。しかし、これらのΔブロックのうちの一部は、クライアントによって保持されているローカル・ブロック・キャッシュ2308内に存在する可能性があり、したがって、ファイルを所望のインスタンスへと修復するためには、ローカルに保存されていないΔブロック2310のみをサーバから取り戻せばよい。ローカル・データブロック・ハッシュが広範囲に及び、所望のインスタンスが比較的最近バックアップされたものである場合には、修復オペレーションを完全にクライアント・デバイス上でローカルに実行することができる可能性もあり、暗号化されたデータ・ブロックをサーバから入手する必要はない。
図24A〜図24Bは、本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システムのクライアント側で主要なサービス・プロセスによって実行されるバックアップ・プロセスに関する流れ図を提供する。ステップ2402において、新たなマニフェストおよびアップロードならびに新たなアップロード・ファイルが作成される。次いで、ステップ2404〜2411を含むforループ内で、差分バックアップ用としてフラグを立てられている一式のファイルのうちのそれぞれのファイルが処理される。それぞれのファイルごとに、現時点のファイル署名が、ステップ2405において計算される。ステップ2406において判定した際に、以前に計算されたファイル署名がローカルに保存されていない場合には、以前に計算されたファイル署名が、ステップ2407においてサーバから検索される。次いでステップ2408において、それらのファイル署名どうしが比較されて、バックアップ・プロセスの一環として暗号化してサーバへ転送することが必要となる可能性のあるΔブロックのリストが作成される。ステップ2409において、このブロックのリストが、アップロード・ファイルへとまとめられ、差分比較の結果が、ステップ2410においてマニフェスト内に記録される。ステップ2411において判定した際に、より多くのファイルを処理する必要がある場合には、制御は、ステップ2405へ戻る。すべてのファイルが処理されると、ステップ2412において、アップロード・ファイルがサーバへ送信される。ステップ2414において、バックアップ・ルーチンは、実際にサーバへ転送する必要があるデータ・ブロックのリストをサーバから受信する。すなわちサーバは、図22を参照して上述したように、ブロック・ストアに対してクエリーを行って、Δブロックのうちのどれがブロック・ストア内に既に保存されているかを割り出している。図24Bへと続いて、バックアップ・ルーチンは、ステップ2416において最後のアップロード・ファイルを開き、そしてステップ2418〜2420を含むforループ内で、サーバへ移送してサーバ上に保存する必要があるファイル署名および暗号化されたデータ・ブロックが、最後のアップロード・ファイルに追加される。ステップ2422において、最後のアップロード・ファイルがサーバへ伝送され、サーバは、ファイル署名をデータ・ベース内に、データ・ブロックをデータ・ストア内に保存し、そしてカタログ同期応答をクライアントに返し、これによってクライアントは、首尾よくバックアップされているすべてのファイルのファイル署名履歴を更新することを含めて、ローカル・カタログをリモート・カタログと同期化することができる。クライアントは、ステップ2426においてカタログ同期応答を受信し、そしてステップ2428において、そのカタログ同期応答に応じてローカル・カタログを同期化する。ステップ2430において、バックアップ・ルーチンは、カタログの同期をマニフェストと比較する。ステップ2432において判定した際に、サーバが問題に直面していることや、特定のバックアップ・オペレーションが首尾よく実行されていないことが判明した場合には、それらの問題が、ステップ2434においてさまざまな方法で処理される。たとえば、直面したあらゆる問題を是正したり改善したりするために、バックアップ要求を再び出すこともでき、一時的に不良なものとしてファイルにフラグを立てて、より総合的な修復技術を通じて修復することもでき、あるいはその他の方法を採用することもできる。最後にステップ2436において、マニフェストが終了し、一時的なファイルおよびデータ構造が除去されて、バックアップ・オペレーションが完了する。
図25は、本発明の一実施形態に従ってクライアント・デバイス上で実行される主要なサービス・プロセスによって実行される修復オペレーションを示す制御流れ図である。ステップ2502において、ファイルを特定のバージョンへ修復するために修復オペレーションが呼び出される。ステップ2504において判定した際に、所望のバージョンに関するファイル署名がローカルで利用可能でない場合には、そのファイル署名が、ステップ2506においてサーバに要求される。次いでステップ2508において、修復ルーチンは、図23を参照して上述したように、そのインスタンスを修復するためにはどのブロックをサーバから取り戻す必要があるかを割り出す。必要とされるブロックのリストが、ステップ2510においてアップロード・ファイルへとまとめられ、そしてステップ2512においてサーバへ伝送される。ステップ2514において、修復ルーチンは、必要とされるブロックおよびカタログ同期情報をサーバから受信する。ステップ2516において、必要に応じてローカル・カタログを更新することによってローカル・カタログが同期化されて、ファイルが首尾よく修復されたことが反映される。ステップ2518において、ファイルに関するデータ・ブロックが組み立てられて、ファイルの所望のインスタンスが形成され、そしてそのインスタンスが、ステップ2520において使用されて、既存のファイルが、修復されたファイルに置き換えられる。すなわち、図25に示されている修復オペレーションは、既存のファイルに所望のバージョンを上書きする。あるいは修復オペレーションは、ファイルの特定のバージョンを、そのファイルの新たなインスタンスとして、または別のファイル名を有する別のファイルとして修復することを対象とすることもできる。
本発明のバックアップ/修復/アーカイビング・システムは、クライアント・デバイスによって使用される特定の暗号化アルゴリズム、圧縮アルゴリズム、および特定のファイル暗号化キーに関して柔軟である。上述のように、圧縮アルゴリズム、暗号化アルゴリズム、およびファイル暗号化キーに関する識別子が、ブロック・ハッシュの計算に含まれ、それによって、クライアントが、前のファイル暗号化キーを使用してファイルをバックアップした後のどこかの時点で、ファイル暗号化キーを変更しようと決めた場合には、クライアントは、新たに作成されたファイル暗号化キーの使用を開始することができ、そしてサーバは、新たなファイル暗号化キーによって暗号化されたデータ・ブロックの受信を開始することができ、その一方で、やがてサーバは、古い暗号化キーによって暗号化されたデータ・ブロックを、新たなファイル暗号化キーを用いて暗号化し直してサーバへ再び伝送するために、クライアントへ返す。すなわち、新たなファイル暗号化キーへの移行が実行されている間は、一定の期間にわたって、古いファイル暗号化キーを用いて暗号化されたデータ・ブロック、および新たなファイル暗号化キーを用いて暗号化されたデータ・ブロックの双方を、バックアップ/修復/アーカイビング・システムによって、あいまいにならないように保持することができる。
本発明について、特定の実施形態の点から説明したが、本発明は、この実施形態に限定されることを意図するものではない。当業者にとっては、本発明の趣旨内に収まる修正が明らかであろう。たとえば、コントロール構造、プログラミング言語、データ構造、モジュール化、およびその他の多くのそのようなプログラミング・パラメータの点で異なる実装形態を含む、ほとんど無限の数のさまざまなウェブサービスベースのデータバックアップ・アプリケーションおよびデータアーカイビング・アプリケーションが可能である。説明した実施形態は、ウェブサービス・プラットフォームとインターネット通信とを使用するリモート・データバックアップ/データアーカイビング・サービスを実装しているが、別のプロトコル標準および仕様ならびに別の通信メディアを採用する本発明の実施形態に相当するその他のリモート・データバックアップ/データアーカイビング・サービスも可能である。説明した実施形態は、クライアント側のアプリケーションおよび提携サービス提供業者のアプリケーションに対する比較的簡潔なアプリケーション・インターフェースを提供しているが、代替実施形態では、さらにいっそう複雑で機能豊富なインターフェースを提供することができる。本発明のさまざまな実施形態においてクライアントの初期設定およびデータの転送のために使用されるデータおよびメッセージを暗号化するために、さまざまな異なる公開/秘密暗号化スキーム、ハッシュベースの暗号化、対称的な暗号化、あるいはその他の暗号化技術のうちのいずれを採用することもできる。説明した実施形態は、主にデータ・ファイルのバックアップおよびアーカイビングを含むが、クライアント・コンピュータによってバックアップされる、またはアーカイブされることが必要とされるいかなるタイプのデータ・オブジェクトも、データ・ボールトに伝送して保存するために1つのファイル内にまとめることができる。それぞれのクライアント・コンピュータは、1つまたは複数のデータ・ボールトによって構成されている複数のデータバックアップ・デバイスおよびデータアーカイビング・デバイスに関連付けることができる。
ここまでの記述では、説明の目的から、本発明の徹底的な理解を提供するために具体的な用語を使用した。しかし、本発明を実施する上でこれらの具体的な詳細は必要とされないということが、当業者にとっては明らかであろう。本発明の具体的な実施形態に関する前述の説明は、例示および説明の目的から提示されている。それらの説明は、すべてを網羅することや、開示されている厳密な形態に本発明を限定することを意図するものではない。上述の教示を考慮すれば、多くの修正形態および変形形態が可能であることは明らかである。これらの実施形態は、本発明の原理およびその実際の応用を最もよく説明するために、それによって当業者が、考えられる特定の使用に適しているさまざまな修正形態と共に本発明およびさまざまな実施形態を最もよく利用できるようにするために示され、説明されている。
小規模企業におけるデータ・バックアップおよびデータ・アーカイビングのためのオプションを示す図である。 家庭環境または小規模企業環境においてPCユーザにとって利用可能なさらなるリソースを示す図である。 PCまたはその他の小型のコンピュータ・システムのホーム・ユーザ、小規模企業ユーザ、あるいはその他のユーザにとって利用可能なバックアップおよびアーカイビングのリソースを、図1の図解仕様を使用して示す図である。 リモート・データストレージ設備上で実行されるデータ・ボールト・ウェブサービスベースのアプリケーションの一実施形態によって提供される2つのウェブサービス・インターフェースを示す図である。 本発明のさまざまな実施形態をサポートする1つの可能なハイレベルのハードウェア構成を示す図である。 本発明の一実施形態に相当するウェブサービスベースのデータバックアップ/データアーカイビング・サービスの一態様を示す図である。 本発明の一実施形態に相当するウェブサービスベースのデータバックアップ/データアーカイビング・サービスの一態様を示す図である。 本発明の一実施形態に相当するウェブサービスベースのデータバックアップ/データアーカイビング・サービスの一態様を示す図である。 本発明の一実施形態に相当するウェブサービスベースのデータバックアップ/データアーカイビング・サービスの一態様を示す図である。 本発明の一実施形態に相当するウェブサービスベースのデータバックアップ/データアーカイビング・サービスの一態様を示す図である。 本発明の一実施形態に相当するウェブサービスベースのデータバックアップ/データアーカイビング・サービスの一態様を示す図である。 ウェブサービスベースのデータバックアップ/データアーカイビング・サービスを契約するための、ならびにクライアントを初期構成するためのクライアントと提携サービス提供業者との間における対話を示す図である。 ウェブサービスベースのデータバックアップ/データアーカイビング・サービスを契約するための、ならびにクライアントを初期構成するためのクライアントと提携サービス提供業者との間における対話を示す図である。 図6A〜図6Fに関して前述した、データをデータ・ボールト内に安全に保存するために呼び出されるクライアント側のオペレーションを示すシンプルなフローコントロール・プログラムである。 クライアントのためにファイルを保存することに関連したデータ・ボールト・アプリケーションによって実行されるオペレーションを示す図である。 本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システムのクライアント側部分およびサーバ側部分を概観レベルで示す図である。 本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システムのサーバ側部分の単一サーバの実装形態を概観レベルで示す図である。 本発明の代替実施形態に相当する複雑な複製されたバックアップ/修復/アーカイビング・システムを示す図である。 図10において概観レベルで示されているバックアップ/修復/アーカイビング・システム内の基本的な機能を示す図である。 図10において概観レベルで示されているバックアップ/修復/アーカイビング・システム内の基本的な機能を示す図である。 図10において概観レベルで示されているバックアップ/修復/アーカイビング・システム内の基本的な機能を示す図である。 対応するファイル署名および暗号化されたデータ・ブロックを作成するための、主要なサービス・プロセス(図13Aの1314)によるファイルおよびファイルに類するオブジェクトの処理を示す図である。 対応するファイル署名および暗号化されたデータ・ブロックを作成するための、主要なサービス・プロセス(図13Aの1314)によるファイルおよびファイルに類するオブジェクトの処理を示す図である。 対応するファイル署名および暗号化されたデータ・ブロックを作成するための、主要なサービス・プロセス(図13Aの1314)によるファイルおよびファイルに類するオブジェクトの処理を示す図である。 対応するファイル署名および暗号化されたデータ・ブロックを作成するための、主要なサービス・プロセス(図13Aの1314)によるファイルおよびファイルに類するオブジェクトの処理を示す図である。 本発明の実施形態によるファイル・インスタンシングを示す図である。 本発明の実施形態によるファイル・インスタンシングを示す図である。 本発明の実施形態によるファイル・インスタンシングを示す図である。 本発明の実施形態によるファイル・インスタンシングを示す図である。 本発明の実施形態によるファイル・インスタンシングを示す図である。 本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システムによってモニタされて継続的にバックアップされるクライアント・デバイス上のそれぞれのファイルごとにバックアップ/修復/アーカイビング・システムのサーバ側部分およびクライアント側部分に保存される情報をまとめた図である。 本発明の実施形態に従ってファイルに関して保存されているファイル署名履歴およびデータブロック履歴からファイルの特定のインスタンスを構築するための論理演算を示す図である。 本発明の実施形態に従ってファイルに関して保存されているファイル署名履歴およびデータブロック履歴からファイルの特定のインスタンスを構築するための論理演算を示す図である。 本発明の実施形態によるバージョン履歴の切り捨てを示す図である。 本発明の実施形態によるバージョン履歴の切り捨てを示す図である。 本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システム内のセキュリティー関連のエンティティーおよびオペレーションを示す図である。 本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システム内のセキュリティー関連のエンティティーおよびオペレーションを示す図である。 クライアント・デバイスがファイル暗号化キーを不注意に削除したり紛失したりした場合のそのクライアント・デバイスによるファイル暗号化キーの検索を示す図である。 クライアントの信用証明書によって容易になるクライアント・デバイスとサーバとの間における安全な通信を示す図である。 クライアントの初期設定を示す一種の制御流れ図であり、この初期設定によって、クライアントは、本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システムのサーバ側部分との間で要求およびデータの完全に安全なやり取りを行うことができる。 クライアントの初期設定を示す一種の制御流れ図であり、この初期設定によって、クライアントは、本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システムのサーバ側部分との間で要求およびデータの完全に安全なやり取りを行うことができる。 クライアントの初期設定を示す一種の制御流れ図であり、この初期設定によって、クライアントは、本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システムのサーバ側部分との間で要求およびデータの完全に安全なやり取りを行うことができる。 本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システムのサーバ側部分の永久ストア部分によって実装されるブロック・ストアを概観レベルで示す図である。 差分バックアップを示す図である。 差分修復を示す図である。 本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システムのクライアント側で主要なサービス・プロセスによって実行されるバックアップ・プロセスを示す流れ図である。 本発明の一実施形態に相当するバックアップ/修復/アーカイビング・システムのクライアント側で主要なサービス・プロセスによって実行されるバックアップ・プロセスを示す流れ図である。 本発明の一実施形態に従ってクライアント・デバイス上で実行される主要なサービス・プロセスによって実行される修復オペレーションを示す制御流れ図である。

Claims (8)

  1. サーバ側部分およびクライアント側部分を有するバックアップ復元システムであって、
    前記サーバ側部分は、バックアップ要求および復元要求を受信し、バックアップ要求に応答して、暗号化されたデータ・ブロックおよびファイル署名を保存し、復元要求に応答して、暗号化されたデータ・ブロックを返すよう構成されており、
    前記クライアント側部分は、
    ファイルを継続的なバックアップ用として指定できるようにするユーザインターフェースを提供し、
    継続的なバックアップ対象として指定されているファイルに対する変更を検知し、ファイル署名を計算し、ファイル署名の比較によって、バックアップオペレーションのために保存する必要があるブロックを求め、バックアップオペレーションの要求を出す作業プロセスと、
    前記サーバ側部分との間で要求およびデータをやり取りするための移送プロセスを含み、
    前記ファイル署名は、
    ファイルに対して行われる変更に関してお互いから比較的独立であるファイルの部分を隔てるファイル内の境界をブロック境界とする、可変長のナチュラル・ブロックにファイルを分割し、前記ナチュラル・ブロックをまとめられるナチュラル・ブロックの長さの合計における不均衡に起因してわずかに異なる長さとすることができる固定長のブロックにまとめ、該固定長のブロックごとに、該固定長のブロックの長さの表示および該固定長のブロックの暗号化ハッシュを含むブロック記述子を生成し、生成された複数のブロック記述子のシーケンスに、前記ファイル署名のバージョンを示すヘッダを付けて生成される、
    前記バックアップ復元システム。
  2. それぞれの暗号化ハッシュが、ファイル暗号化キー、暗号化アルゴリズム識別子、および圧縮アルゴリズム識別子を前記固定長のブロックに付加して、固定長のフルブロックを作成し、該フルブロックに前記暗号化ハッシュ関数を適用することによって作成される、請求項に記載のバックアップおよび復元システム。
  3. 前記作業プロセスが、ファイルの現時点のタイムスタンプを、以前に記録されたタイムスタンプと定期的に比較して、前回の繰り返し以降に変更されたファイルを検知する、請求項1に記載のバックアップおよび復元システム。
  4. 前記作業プロセスが、ファイルをバックアップするために前記サーバ部分へ送信する必要があるブロックを、
    前記ファイルに関する現時点のファイル署名を作成し、
    前記現時点のファイル署名を、以前に作成されたファイル署名と比較して、前記ファイルが最後にバックアップされた後に変更された前記ファイル内のデータ・ブロックを割り出し、
    前記ファイルが最後にバックアップされた後に変更された前記ファイル内のデータ・ブロックのうちで、保存する必要があるデータ・ブロックとして前記サーバ側部分によって現時点で保存されていないデータ・ブロックを割り出し、
    前記現時点のファイル署名および保存する必要がある割り出されたデータ・ブロックを前記サーバ部分へ伝送すること、
    によって割り出す請求項1に記載のバックアップおよび復元システム。
  5. 前記作業プロセスが、
    復元すべきファイルのインスタンスのファイル署名を取得し、
    前記ファイル署名内のブロック・ハッシュによって識別されるブロックのうちで、前記クライアント上で現在利用できないブロックを割り出すこと、によって、ファイルを復元するために前記サーバ部分に要求する必要があるブロックを割り出す請求項1に記載のバックアップおよび復元システム。
  6. 求められたブロック・ハッシュによって識別されたそれぞれのデータ・ブロックが、継続的なバックアップ用として指定されたファイル内に前記データ・ブロックが現れる回数を問わずに、前記サーバ側部分によって1回だけ保存される、請求項1に記載のバックアップおよび復元システム。
  7. 前記サーバ側部分へ伝送されたそれぞれのデータ・ブロックが、前記データ・ブロックを前記サーバ側部分へ伝送した前記クライアントしか知らないファイル暗号化キーを使用して暗号化されており、それによって前記サーバ側部分は、前記サーバ側部分によって保存されているクライアント・データにアクセスすることができない、請求項1に記載のバックアップおよび復元システム。
  8. 前記サーバ側部分が、二重に暗号化されたファイル暗号化キーをクライアントのために保存しており、それによってクライアントは、紛失したファイル暗号化キーへのアクセスを前記サーバ側部分やその他のクライアントに提供することなく、前記ファイル暗号化キーを復元することができる、請求項1に記載のバックアップおよび復元システム。
JP2008535775A 2005-10-12 2006-10-12 データ・バックアップのための方法およびシステム Expired - Fee Related JP5563220B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US72581205P 2005-10-12 2005-10-12
US60/725,812 2005-10-12
PCT/US2006/040389 WO2007044964A2 (en) 2005-10-12 2006-10-12 Method and system for data backup

Publications (2)

Publication Number Publication Date
JP2009512077A JP2009512077A (ja) 2009-03-19
JP5563220B2 true JP5563220B2 (ja) 2014-07-30

Family

ID=37943585

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008535775A Expired - Fee Related JP5563220B2 (ja) 2005-10-12 2006-10-12 データ・バックアップのための方法およびシステム

Country Status (10)

Country Link
US (1) US8041677B2 (ja)
EP (1) EP1949270B1 (ja)
JP (1) JP5563220B2 (ja)
KR (1) KR20080066790A (ja)
CN (1) CN101647006A (ja)
AT (1) ATE504878T1 (ja)
AU (1) AU2006299819B2 (ja)
CA (1) CA2625893C (ja)
DE (1) DE602006021217D1 (ja)
WO (1) WO2007044964A2 (ja)

Families Citing this family (285)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US8775823B2 (en) 2006-12-29 2014-07-08 Commvault Systems, Inc. System and method for encrypting secondary copies of data
US7477908B2 (en) 2004-12-13 2009-01-13 Research In Motion Limited Messaging protocol/service switching methods and devices
CA2631197C (en) 2005-11-28 2013-01-29 Commvault Systems, Inc. Systems and methods for data management
US7702947B2 (en) * 2005-11-29 2010-04-20 Bea Systems, Inc. System and method for enabling site failover in an application server environment
US8930496B2 (en) 2005-12-19 2015-01-06 Commvault Systems, Inc. Systems and methods of unified reconstruction in storage systems
US20200257596A1 (en) 2005-12-19 2020-08-13 Commvault Systems, Inc. Systems and methods of unified reconstruction in storage systems
US20070168721A1 (en) * 2005-12-22 2007-07-19 Nokia Corporation Method, network entity, system, electronic device and computer program product for backup and restore provisioning
US7676509B2 (en) * 2006-02-01 2010-03-09 I365 Inc. Methods and apparatus for modifying a backup data stream including a set of validation bytes for each data block to be provided to a fixed position delta reduction backup application
US8014530B2 (en) * 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US8478755B2 (en) * 2006-04-20 2013-07-02 Microsoft Corporation Sorting large data sets
US7441092B2 (en) * 2006-04-20 2008-10-21 Microsoft Corporation Multi-client cluster-based backup and restore
US8190742B2 (en) * 2006-04-25 2012-05-29 Hewlett-Packard Development Company, L.P. Distributed differential store with non-distributed objects and compression-enhancing data-object routing
WO2007146198A2 (en) * 2006-06-09 2007-12-21 Rick Rahim System and method for providing secure third party website histories
US8533818B1 (en) * 2006-06-30 2013-09-10 Symantec Corporation Profiling backup activity
US20080016127A1 (en) * 2006-06-30 2008-01-17 Microsoft Corporation Utilizing software for backing up and recovering data
JP5250955B2 (ja) * 2006-10-05 2013-07-31 富士通株式会社 データ処理システムのバックアップ制御装置及びシステム
US7882077B2 (en) * 2006-10-17 2011-02-01 Commvault Systems, Inc. Method and system for offline indexing of content and classifying stored data
US8117163B2 (en) 2006-10-31 2012-02-14 Carbonite, Inc. Backup and restore system for a computer
US7676503B2 (en) * 2006-11-27 2010-03-09 Microsoft Corporation Hybrid computer restore using network service
US8370442B2 (en) 2008-08-29 2013-02-05 Commvault Systems, Inc. Method and system for leveraging identified changes to a mail server
US8041641B1 (en) * 2006-12-19 2011-10-18 Symantec Operating Corporation Backup service and appliance with single-instance storage of encrypted data
US20080228771A1 (en) 2006-12-22 2008-09-18 Commvault Systems, Inc. Method and system for searching stored data
JP4903071B2 (ja) * 2007-03-15 2012-03-21 株式会社リコー 情報処理装置、ソフトウェア更新方法及び画像処理装置
US8484464B2 (en) * 2007-06-15 2013-07-09 Research In Motion Limited Method and devices for providing secure data backup from a mobile communication device to an external computing device
US7861111B2 (en) * 2007-06-15 2010-12-28 Savvis, Inc. Shared data center disaster recovery systems and methods
US8209540B2 (en) * 2007-06-28 2012-06-26 Apple Inc. Incremental secure backup and restore of user settings and data
US10133820B2 (en) * 2007-06-29 2018-11-20 Veritas Technologies Llc Techniques for performing intelligent content indexing
SE532199C2 (sv) * 2007-09-21 2009-11-10 Sreg Internat Ab Förfarande och system för säkerhetskopiering och återställning av dator- och användarinformation
US8346731B1 (en) * 2007-09-28 2013-01-01 Symantec Corporation Techniques for global single instance indexing for backup data
USD730391S1 (en) 2007-10-29 2015-05-26 Carbonite, Inc. Icon for a backup and restore system for a computer
US9143561B2 (en) 2007-11-09 2015-09-22 Topia Technology, Inc. Architecture for management of digital files across distributed network
KR100957566B1 (ko) 2007-11-09 2010-05-11 (주)네오와인 데이터 이중 암호화 장치 및 그 방법
CN101436192B (zh) * 2007-11-16 2011-03-16 国际商业机器公司 用于优化针对垂直存储式数据库的查询的方法和设备
US9137018B2 (en) * 2007-12-19 2015-09-15 The Directv Group, Inc. Method and system for providing a generic program guide data from a primary content provider to a user network device through a partner service provider
US8533852B2 (en) * 2007-12-19 2013-09-10 The Directv Group, Inc. Method and system for securely communicating between a primary service provider and a partner service provider
US8453251B2 (en) * 2007-12-19 2013-05-28 The Directv Group, Inc. Method and system for securely communicating between a user network device, a primary service provider and a partner service provider
US8621646B2 (en) * 2007-12-19 2013-12-31 The Directv Group, Inc. Method and system for authenticating a user receiving device into a primary service provider system to communicate with a partner service provider
US8336089B1 (en) * 2007-12-21 2012-12-18 Emc Corporation Method and apparatus for providing authentication and encryption services by a software as a service platform
US20090164528A1 (en) * 2007-12-21 2009-06-25 Dell Products L.P. Information Handling System Personalization
US8631217B2 (en) * 2008-02-26 2014-01-14 International Business Machines Corporation Apparatus, system, and method for virtual machine backup
EP2105836A1 (en) * 2008-03-25 2009-09-30 FilterWorks B.V. Archive system storing archive data from a computer-based information system and method of operating such a system
GB0805924D0 (en) * 2008-04-02 2008-05-07 Hibbert Ralph Animation Storyboard creation system
WO2009137927A1 (en) * 2008-05-12 2009-11-19 Research In Motion Limited Security measures for countering unauthorized decryption
US8635670B2 (en) * 2008-05-16 2014-01-21 Microsoft Corporation Secure centralized backup using locally derived authentication model
US8086688B1 (en) 2008-05-16 2011-12-27 Quick Vault, Inc. Method and system for mobile data security
US7865573B2 (en) * 2008-05-29 2011-01-04 Research In Motion Limited Method, system and devices for communicating between an internet browser and an electronic device
US8418168B2 (en) * 2008-05-29 2013-04-09 Research In Motion Limited Method and system for performing a software upgrade on an electronic device connected to a computer
US8041346B2 (en) 2008-05-29 2011-10-18 Research In Motion Limited Method and system for establishing a service relationship between a mobile communication device and a mobile data server for connecting to a wireless network
US8862547B2 (en) * 2008-06-05 2014-10-14 Elm Technologies, Inc. Centralizing data backup records from multiple servers onto a central server
US8302162B1 (en) * 2008-06-11 2012-10-30 Symantec Operating Corporation Backup and archival of hosted online content
US8108446B1 (en) * 2008-06-27 2012-01-31 Symantec Corporation Methods and systems for managing deduplicated data using unilateral referencing
US8015343B2 (en) * 2008-08-08 2011-09-06 Amazon Technologies, Inc. Providing executing programs with reliable access to non-local block data storage
JP5455340B2 (ja) * 2008-09-11 2014-03-26 株式会社アール・アイ バックアッププログラム
EP2347336A4 (en) * 2008-09-15 2014-01-08 Vaultive Ltd METHOD AND SYSTEM FOR SECURE USE OF SERVICES BY UNSECURED STORAGE SUPPLIERS
US9002976B2 (en) * 2008-09-15 2015-04-07 Vaultive Ltd System, apparatus and method for encryption and decryption of data transmitted over a network
JP5414223B2 (ja) * 2008-09-16 2014-02-12 株式会社日立ソリューションズ インターネットバックアップにおける転送データ管理システム
CN101414946B (zh) * 2008-11-21 2011-11-16 上海爱数软件有限公司 一种远程数据备份方法及介质服务器
US9639427B1 (en) * 2008-11-25 2017-05-02 Teradata Us, Inc. Backing up data stored in a distributed database system
US9720782B2 (en) * 2008-12-08 2017-08-01 Microsoft Technology Licensing, Llc Authenticating a backup image with bifurcated storage
US8380663B2 (en) * 2008-12-17 2013-02-19 Sybase, Inc. Data integrity in a database environment through background synchronization
US8055614B1 (en) * 2008-12-23 2011-11-08 Symantec Corporation Method and apparatus for providing single instance restoration of data files
US8527465B1 (en) * 2008-12-24 2013-09-03 Emc Corporation System and method for modeling data change over time
US20100179984A1 (en) 2009-01-13 2010-07-15 Viasat, Inc. Return-link optimization for file-sharing traffic
US8762642B2 (en) * 2009-01-30 2014-06-24 Twinstrata Inc System and method for secure and reliable multi-cloud data replication
WO2010104927A2 (en) 2009-03-10 2010-09-16 Viasat, Inc. Internet protocol broadcasting
US8806062B1 (en) * 2009-03-27 2014-08-12 Symantec Corporation Adaptive compression using a sampling based heuristic
US8261126B2 (en) 2009-04-03 2012-09-04 Microsoft Corporation Bare metal machine recovery from the cloud
US20100257403A1 (en) * 2009-04-03 2010-10-07 Microsoft Corporation Restoration of a system from a set of full and partial delta system snapshots across a distributed system
US8805953B2 (en) 2009-04-03 2014-08-12 Microsoft Corporation Differential file and system restores from peers and the cloud
US9141621B2 (en) 2009-04-30 2015-09-22 Hewlett-Packard Development Company, L.P. Copying a differential data store into temporary storage media in response to a request
FR2945644A1 (fr) * 2009-05-18 2010-11-19 Alcatel Lucent Systeme de sauvegarde de donnees
US20100306171A1 (en) * 2009-06-02 2010-12-02 Microsoft Corporation Timeline Experience for Restore User Interface
US20100315589A1 (en) * 2009-06-16 2010-12-16 Valdemar Portney Toric ophthalmic lens
US9594759B2 (en) * 2009-06-16 2017-03-14 Microsoft Technology Licensing, Llc Backup and archival of selected items as a composite object
US8458287B2 (en) * 2009-07-31 2013-06-04 Microsoft Corporation Erasure coded storage aggregation in data centers
GB2473065A (en) * 2009-09-01 2011-03-02 Clearswift Ltd E-mail notification of upload or download
US8676759B1 (en) 2009-09-30 2014-03-18 Sonicwall, Inc. Continuous data backup using real time delta storage
CN101697133A (zh) * 2009-10-26 2010-04-21 中兴通讯股份有限公司 软件升级方法、软件升级系统以及客户端
US8386430B1 (en) * 2009-11-06 2013-02-26 Carbonite, Inc. File storage method to support data recovery in the event of a memory failure
US8296410B1 (en) 2009-11-06 2012-10-23 Carbonite, Inc. Bandwidth management in a client/server environment
US8805925B2 (en) 2009-11-20 2014-08-12 Nbrella, Inc. Method and apparatus for maintaining high data integrity and for providing a secure audit for fraud prevention and detection
US9401893B2 (en) 2009-12-29 2016-07-26 International Business Machines Corporation System and method for providing data security in a hosted service system
US8442983B2 (en) 2009-12-31 2013-05-14 Commvault Systems, Inc. Asynchronous methods of data classification using change journals and other data structures
US8645377B2 (en) 2010-01-15 2014-02-04 Microsoft Corporation Aggregating data from a work queue
US8516253B1 (en) 2010-01-18 2013-08-20 Viasat, Inc. Self-keyed protection of anticipatory content
US11301592B2 (en) 2010-01-28 2022-04-12 Pure Storage, Inc. Distributed storage with data obfuscation and method for use therewith
US8959366B2 (en) * 2010-01-28 2015-02-17 Cleversafe, Inc. De-sequencing encoded data slices
US20110258461A1 (en) * 2010-04-16 2011-10-20 Twinstrata, Inc System and method for resource sharing across multi-cloud arrays
US20190108366A1 (en) * 2010-01-28 2019-04-11 International Business Machines Corporation Secure data transmission utilizing distributed storage
US8370297B2 (en) 2010-03-08 2013-02-05 International Business Machines Corporation Approach for optimizing restores of deduplicated data
WO2011109865A1 (en) * 2010-03-09 2011-09-15 Lock Box Pty Ltd Method and system for sharing encrypted content
US9082127B2 (en) * 2010-03-31 2015-07-14 Cloudera, Inc. Collecting and aggregating datasets for analysis
US9317572B2 (en) * 2010-03-31 2016-04-19 Cloudera, Inc. Configuring a system to collect and aggregate datasets
US8874526B2 (en) 2010-03-31 2014-10-28 Cloudera, Inc. Dynamically processing an event using an extensible data model
US9081888B2 (en) 2010-03-31 2015-07-14 Cloudera, Inc. Collecting and aggregating log data with fault tolerance
US8510552B2 (en) * 2010-04-07 2013-08-13 Apple Inc. System and method for file-level data protection
US8788842B2 (en) 2010-04-07 2014-07-22 Apple Inc. System and method for content protection based on a combination of a user PIN and a device specific identifier
US8412934B2 (en) * 2010-04-07 2013-04-02 Apple Inc. System and method for backing up and restoring files encrypted with file-level content protection
US8589680B2 (en) * 2010-04-07 2013-11-19 Apple Inc. System and method for synchronizing encrypted data on a device having file-level content protection
US8433901B2 (en) * 2010-04-07 2013-04-30 Apple Inc. System and method for wiping encrypted data on a device having file-level content protection
US8984048B1 (en) 2010-04-18 2015-03-17 Viasat, Inc. Selective prefetch scanning
US20110270748A1 (en) * 2010-04-30 2011-11-03 Tobsc Inc. Methods and apparatus for a financial document clearinghouse and secure delivery network
US9270663B2 (en) 2010-04-30 2016-02-23 T-Central, Inc. System and method to enable PKI- and PMI-based distributed locking of content and distributed unlocking of protected content and/or scoring of users and/or scoring of end-entity access means—added
WO2011145096A1 (en) 2010-05-21 2011-11-24 Vaultive Ltd. System and method for controlling and monitoring access to data processing applications
CN101854395A (zh) * 2010-06-02 2010-10-06 四川华廷威思信息技术有限公司 一种基于Web程序的附件自动修改方法
WO2012015920A2 (en) * 2010-07-28 2012-02-02 Admiemobile Llc Systems and methods for establishing and maintaining virtual computing clouds
CN102387122A (zh) * 2010-09-02 2012-03-21 南京壹进制信息技术有限公司 一种多用户数据备份加密的方法
JP5743475B2 (ja) * 2010-09-28 2015-07-01 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
US8504870B2 (en) * 2010-09-30 2013-08-06 Emc Corporation Optimized recovery
US8949661B1 (en) * 2010-09-30 2015-02-03 Emc Corporation Federation of indices
US9195549B1 (en) 2010-09-30 2015-11-24 Emc Corporation Unified recovery
US8549350B1 (en) 2010-09-30 2013-10-01 Emc Corporation Multi-tier recovery
US8484505B1 (en) * 2010-09-30 2013-07-09 Emc Corporation Self recovery
US8713364B1 (en) 2010-09-30 2014-04-29 Emc Corporation Unified recovery
US8943356B1 (en) * 2010-09-30 2015-01-27 Emc Corporation Post backup catalogs
US8103906B1 (en) 2010-10-01 2012-01-24 Massoud Alibakhsh System and method for providing total real-time redundancy for a plurality of client-server systems
CA2813758C (en) * 2010-10-08 2023-01-03 Brian Lee Moffat Private data sharing system
US8266110B1 (en) * 2010-10-22 2012-09-11 Symantec Corporation Integrated archival and backup
US8650165B2 (en) 2010-11-03 2014-02-11 Netapp, Inc. System and method for managing data policies on application objects
EP2455922B1 (fr) 2010-11-17 2018-12-05 Inside Secure Procédé et système de transaction NFC
US8954401B2 (en) 2011-01-14 2015-02-10 Symantec Corporation Systems and methods for providing increased scalability in deduplication storage systems
US8924354B2 (en) * 2011-02-01 2014-12-30 Ca, Inc. Block level data replication
US8719264B2 (en) 2011-03-31 2014-05-06 Commvault Systems, Inc. Creating secondary copies of data based on searches for content
US8880592B2 (en) 2011-03-31 2014-11-04 Cloudera, Inc. User interface implementation for partial display update
US11983233B2 (en) 2011-04-11 2024-05-14 Viasat, Inc. Browser based feedback for optimized web browsing
US9037638B1 (en) 2011-04-11 2015-05-19 Viasat, Inc. Assisted browsing using hinting functionality
US9106607B1 (en) 2011-04-11 2015-08-11 Viasat, Inc. Browser based feedback for optimized web browsing
US9456050B1 (en) 2011-04-11 2016-09-27 Viasat, Inc. Browser optimization through user history analysis
US9912718B1 (en) 2011-04-11 2018-03-06 Viasat, Inc. Progressive prefetching
WO2012144909A1 (en) * 2011-04-19 2012-10-26 Invenia As Method for secure storing of a data file via a computer communication network
KR20140034222A (ko) * 2011-05-14 2014-03-19 비트카사, 인코포레이티드 사용자-독립적인 암호화된 파일들의 서버측 중복제거를 하는 클라우드 파일 시스템
US9146881B2 (en) * 2011-06-03 2015-09-29 Commandhub, Inc. Mobile data vault
US8943315B1 (en) 2011-06-08 2015-01-27 Google Inc. System and method for controlling the upload of data already accessible to a server
US8769705B2 (en) 2011-06-10 2014-07-01 Futurewei Technologies, Inc. Method for flexible data protection with dynamically authorized data receivers in a content network or in cloud storage and content delivery services
PT3633918T (pt) 2011-06-14 2022-03-18 Viasat Inc Protocolo de transporte para conteúdo de antecipação
CN102833294B (zh) * 2011-06-17 2015-05-20 阿里巴巴集团控股有限公司 基于云存储的文件处理方法、系统及服务器集群系统
US20130034229A1 (en) * 2011-08-05 2013-02-07 Apple Inc. System and method for wireless data protection
US9208343B2 (en) 2011-08-18 2015-12-08 Hewlett-Packard Development Company, L.P. Transitive closure security
GB2507935B (en) * 2011-10-12 2014-07-30 Ibm Method, system, mediation server, client, and computer program for deleting information in order to maintain security level
CN102436478B (zh) * 2011-10-12 2013-06-19 浪潮(北京)电子信息产业有限公司 一种实现海量数据存取的系统及方法
US9407355B1 (en) 2011-10-25 2016-08-02 Viasat Inc. Opportunistic content delivery using delta coding
CN103095769B (zh) * 2011-11-04 2015-12-09 阿里巴巴集团控股有限公司 跨机房的数据同步方法以及系统
CN102404322A (zh) * 2011-11-18 2012-04-04 深圳市中兴移动通信有限公司 一种实现数据加密同步的方法及系统
US8600947B1 (en) * 2011-12-08 2013-12-03 Symantec Corporation Systems and methods for providing backup interfaces
US9294452B1 (en) 2011-12-09 2016-03-22 Rightquestion, Llc Authentication translation
US11475105B2 (en) 2011-12-09 2022-10-18 Rightquestion, Llc Authentication translation
CN102546614A (zh) * 2011-12-28 2012-07-04 畅捷通信息技术股份有限公司 数据互导系统和数据互导方法
US20130185260A1 (en) * 2012-01-17 2013-07-18 Nathan Daniel Weinstein Data backup and restoral apparatus, system, and methods
US9128949B2 (en) 2012-01-18 2015-09-08 Cloudera, Inc. Memory allocation buffer for reduction of heap fragmentation
US9172608B2 (en) 2012-02-07 2015-10-27 Cloudera, Inc. Centralized configuration and monitoring of a distributed computing cluster
US9405692B2 (en) 2012-03-21 2016-08-02 Cloudera, Inc. Data processing performance enhancement in a distributed file system
US8458494B1 (en) * 2012-03-26 2013-06-04 Symantec Corporation Systems and methods for secure third-party data storage
US9338008B1 (en) 2012-04-02 2016-05-10 Cloudera, Inc. System and method for secure release of secret information over a network
CN103368926A (zh) * 2012-04-10 2013-10-23 北京四维图新科技股份有限公司 一种防止文件篡改的方法和防止文件篡改的装置
US9842126B2 (en) 2012-04-20 2017-12-12 Cloudera, Inc. Automatic repair of corrupt HBases
JP5985884B2 (ja) * 2012-05-17 2016-09-06 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理方法、および情報処理システム
US8892523B2 (en) 2012-06-08 2014-11-18 Commvault Systems, Inc. Auto summarization of content
US9306914B2 (en) 2012-06-15 2016-04-05 Kt Corporation Method and system for backing up profiles of authentication module
US8432808B1 (en) 2012-06-15 2013-04-30 Viasat Inc. Opportunistically delayed delivery in a satellite network
US9575978B2 (en) 2012-06-26 2017-02-21 International Business Machines Corporation Restoring objects in a client-server environment
CN103514064B (zh) 2012-06-28 2016-03-16 国际商业机器公司 记录备份信息的方法和装置
KR101401794B1 (ko) * 2012-06-29 2014-06-27 인텔렉추얼디스커버리 주식회사 데이터 공유 제공 방법 및 장치
US9904788B2 (en) 2012-08-08 2018-02-27 Amazon Technologies, Inc. Redundant key management
US9225675B2 (en) 2012-08-08 2015-12-29 Amazon Technologies, Inc. Data storage application programming interface
US9317715B2 (en) * 2012-08-24 2016-04-19 Sap Se Data protection compliant deletion of personally identifiable information
US9753954B2 (en) 2012-09-14 2017-09-05 Cloudera, Inc. Data node fencing in a distributed file system
US9779378B1 (en) * 2012-11-16 2017-10-03 Isaac S. Daniel Automatic transmission mobile post office system
KR101480293B1 (ko) * 2012-11-30 2015-01-12 주식회사 엘지씨엔에스 분산 파일시스템 처리 장치와 방법 및 이를 저장한 기록 매체
US9015122B2 (en) * 2012-12-21 2015-04-21 Zetta, Inc. Systems and methods for minimizing network bandwidth for replication/back up
US20140181040A1 (en) * 2012-12-21 2014-06-26 Zetta, Inc. Client application software for on-line backup and disaster recovery
US9268797B2 (en) * 2012-12-21 2016-02-23 Zetta Inc. Systems and methods for on-line backup and disaster recovery
US8954398B1 (en) 2013-01-04 2015-02-10 Symantec Corporation Systems and methods for managing deduplication reference data
US9063966B2 (en) 2013-02-01 2015-06-23 International Business Machines Corporation Selective monitoring of archive and backup storage
US10558581B1 (en) * 2013-02-19 2020-02-11 Amazon Technologies, Inc. Systems and techniques for data recovery in a keymapless data storage system
US8682870B1 (en) 2013-03-01 2014-03-25 Storagecraft Technology Corporation Defragmentation during multiphase deduplication
US8874527B2 (en) 2013-03-01 2014-10-28 Storagecraft Technology Corporation Local seeding of a restore storage for restoring a backup from a remote deduplication vault storage
US8732135B1 (en) * 2013-03-01 2014-05-20 Storagecraft Technology Corporation Restoring a backup from a deduplication vault storage
US8738577B1 (en) 2013-03-01 2014-05-27 Storagecraft Technology Corporation Change tracking for multiphase deduplication
US20140250077A1 (en) * 2013-03-01 2014-09-04 Storagecraft Technology Corporation Deduplication vault storage seeding
US20140250078A1 (en) * 2013-03-01 2014-09-04 Storagecraft Technology Corporation Multiphase deduplication
US20140281519A1 (en) 2013-03-12 2014-09-18 Commvault Systems, Inc. Encrypted file backup
US9342557B2 (en) 2013-03-13 2016-05-17 Cloudera, Inc. Low latency query engine for Apache Hadoop
US9223789B1 (en) 2013-03-14 2015-12-29 Amazon Technologies, Inc. Range retrievals from archived data objects according to a predefined hash tree schema
US9600365B2 (en) 2013-04-16 2017-03-21 Microsoft Technology Licensing, Llc Local erasure codes for data storage
JP6820741B2 (ja) * 2013-05-31 2021-01-27 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 睡眠検査データのようなデータを自動的にダウンロードするためのシステム及び方法
EP3005123A4 (en) * 2013-06-03 2017-01-18 Hewlett-Packard Enterprise Development LP Restoring a file system object
US9477731B2 (en) 2013-10-01 2016-10-25 Cloudera, Inc. Background format optimization for enhanced SQL-like queries in Hadoop
KR102197505B1 (ko) * 2013-10-25 2020-12-31 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩 및 디코딩에서의 해시 값을 갖는 블록의 표현
CN105684441B (zh) * 2013-10-25 2018-09-21 微软技术许可有限责任公司 视频和图像编码中的基于散列的块匹配
US9934382B2 (en) 2013-10-28 2018-04-03 Cloudera, Inc. Virtual machine image encryption
US9690671B2 (en) 2013-11-01 2017-06-27 Cloudera, Inc. Manifest-based snapshots in distributed computing environments
CN103778381B (zh) * 2014-01-13 2017-07-21 中标软件有限公司 一种基于安卓系统的应用锁屏方法及装置
US8751454B1 (en) 2014-01-28 2014-06-10 Storagecraft Technology Corporation Virtual defragmentation in a deduplication vault
US10567754B2 (en) * 2014-03-04 2020-02-18 Microsoft Technology Licensing, Llc Hash table construction and availability checking for hash-based block matching
US10368092B2 (en) * 2014-03-04 2019-07-30 Microsoft Technology Licensing, Llc Encoder-side decisions for block flipping and skip mode in intra block copy prediction
CN103927357B (zh) * 2014-04-15 2017-05-17 上海新炬网络技术有限公司 一种用于数据库的数据加密及检索方法
US20150332280A1 (en) * 2014-05-16 2015-11-19 Microsoft Technology Licensing, Llc Compliant auditing architecture
US10855797B2 (en) 2014-06-03 2020-12-01 Viasat, Inc. Server-machine-driven hint generation for improved web page loading using client-machine-driven feedback
CN105706450B (zh) * 2014-06-23 2019-07-16 微软技术许可有限责任公司 根据基于散列的块匹配的结果的编码器决定
US9565200B2 (en) 2014-09-12 2017-02-07 Quick Vault, Inc. Method and system for forensic data tracking
US9405928B2 (en) 2014-09-17 2016-08-02 Commvault Systems, Inc. Deriving encryption rules based on file content
US9003200B1 (en) * 2014-09-22 2015-04-07 Storagecraft Technology Corporation Avoiding encryption of certain blocks in a deduplication vault
US9832260B2 (en) * 2014-09-23 2017-11-28 Netapp, Inc. Data migration preserving storage efficiency
CN105981382B (zh) 2014-09-30 2019-05-28 微软技术许可有限责任公司 用于视频编码的基于散列的编码器判定
US9747333B2 (en) 2014-10-08 2017-08-29 Cloudera, Inc. Querying operating system state on multiple machines declaratively
US10503909B2 (en) 2014-10-31 2019-12-10 Hewlett Packard Enterprise Development Lp System and method for vulnerability remediation verification
US10275604B2 (en) 2014-10-31 2019-04-30 Hewlett Packard Enterprise Development Lp Security record transfer in a computing system
GB2532039B (en) 2014-11-06 2016-09-21 Ibm Secure database backup and recovery
US20160142387A1 (en) * 2014-11-14 2016-05-19 Microsoft Technology Licensing, Llc. Storage for encrypted data with enhanced security
US9942208B2 (en) 2014-11-14 2018-04-10 Microsoft Technology Licensing, Llc Updating stored encrypted data with enhanced security
US10043015B2 (en) * 2014-11-20 2018-08-07 At&T Intellectual Property I, L.P. Method and apparatus for applying a customer owned encryption
CA2876468C (en) * 2014-12-29 2023-02-28 Ibm Canada Limited - Ibm Canada Limitee System and method for selective compression in a database backup operation
US9800579B2 (en) * 2015-02-12 2017-10-24 Verizon Patent And Licensing Inc. Network-based client side encryption
US9946609B2 (en) * 2015-02-13 2018-04-17 Netapp, Inc. Managing multi-level backups into the cloud
US10747622B2 (en) * 2015-03-31 2020-08-18 SkyKick, Inc. Efficient backup, search and restore
US9922201B2 (en) 2015-04-01 2018-03-20 Dropbox, Inc. Nested namespaces for selective content sharing
CN104796411A (zh) * 2015-04-01 2015-07-22 朱威 一种数据在云端和移动端安全传输存储及使用的方法
US10963430B2 (en) 2015-04-01 2021-03-30 Dropbox, Inc. Shared workspaces with selective content item synchronization
US11184335B1 (en) * 2015-05-29 2021-11-23 Acronis International Gmbh Remote private key security
US9842062B2 (en) * 2015-05-31 2017-12-12 Apple Inc. Backup accessible by subset of related devices
EP3318037B1 (en) 2015-07-02 2023-06-21 Convida Wireless, LLC Content security at service layer
US10540237B2 (en) 2015-09-16 2020-01-21 Sesame Software, Inc. System and method for procedure for point-in-time recovery of cloud or database data and records in whole or in part
US10838827B2 (en) * 2015-09-16 2020-11-17 Richard Banister System and method for time parameter based database restoration
US10657123B2 (en) 2015-09-16 2020-05-19 Sesame Software Method and system for reducing time-out incidence by scoping date time stamp value ranges of succeeding record update requests in view of previous responses
US10990586B2 (en) 2015-09-16 2021-04-27 Richard Banister System and method for revising record keys to coordinate record key changes within at least two databases
US10069817B2 (en) 2015-09-28 2018-09-04 Mastercard International Incorporated Secure file transfer with secure SSH key authentication
EP3365802A1 (en) 2015-10-20 2018-08-29 Viasat, Inc. Hint model updating using automated browsing clusters
US9479567B1 (en) 2015-10-29 2016-10-25 Dropbox, Inc. Synchronization protocol for multi-premises hosting of digital content items
WO2017075594A1 (en) * 2015-10-29 2017-05-04 Datto, Inc. Apparatuses, methods, and systems for storage and analysis of saas data and non-saas data for businesses and other organizations
US10691718B2 (en) 2015-10-29 2020-06-23 Dropbox, Inc. Synchronization protocol for multi-premises hosting of digital content items
US10936225B1 (en) * 2015-11-06 2021-03-02 Amazon Technologies, Inc. Version history of files inside a backup
US9992175B2 (en) * 2016-01-08 2018-06-05 Moneygram International, Inc. Systems and method for providing a data security service
US9537952B1 (en) * 2016-01-29 2017-01-03 Dropbox, Inc. Apparent cloud access for hosted content items
US10894318B2 (en) * 2016-02-23 2021-01-19 Abb Schweiz Ag Robot controller system and method therefor
US10387248B2 (en) * 2016-03-29 2019-08-20 International Business Machines Corporation Allocating data for storage by utilizing a location-based hierarchy in a dispersed storage network
KR20170137534A (ko) * 2016-06-03 2017-12-13 주식회사 케이티 파일 백업을 통제하는 장치 및 방법
US10453068B2 (en) * 2016-06-29 2019-10-22 Paypal, Inc. Tokenization corresponding to payment profile migration
US10116653B2 (en) * 2016-08-03 2018-10-30 American Megatrends, Inc. System and method for securing IPMI remote authenticated key-exchange protocol (RAKP) over hash cracks
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios
CN107918612B (zh) * 2016-10-08 2019-03-05 腾讯科技(深圳)有限公司 键值存储系统数据结构的实现方法和装置
US10540516B2 (en) 2016-10-13 2020-01-21 Commvault Systems, Inc. Data protection within an unsecured storage environment
US11095877B2 (en) 2016-11-30 2021-08-17 Microsoft Technology Licensing, Llc Local hash-based motion estimation for screen remoting scenarios
US10284535B2 (en) * 2016-12-13 2019-05-07 Chronicle Llc Secure database
US10558639B2 (en) 2016-12-14 2020-02-11 Sap Se Objects comparison manager
US10536275B2 (en) * 2017-05-10 2020-01-14 Microsoft Technology Licensing, Llc Verification of downloaded subsets of content
US10984041B2 (en) 2017-05-11 2021-04-20 Commvault Systems, Inc. Natural language processing integrated with database and data storage management
CN107295069B (zh) * 2017-05-27 2020-06-02 Oppo广东移动通信有限公司 数据备份方法、装置、存储介质及服务器
US11113152B1 (en) * 2017-06-19 2021-09-07 NortonLifeLock Inc. Systems and methods for managing file backup
US10740190B2 (en) * 2017-09-15 2020-08-11 Iron Mountain Incorporated Secure data protection and recovery
US10951406B2 (en) * 2018-01-24 2021-03-16 Salesforce.Com, Inc. Preventing encryption key recovery by a cloud provider
US20190251204A1 (en) 2018-02-14 2019-08-15 Commvault Systems, Inc. Targeted search of backup data using calendar event data
US10642886B2 (en) 2018-02-14 2020-05-05 Commvault Systems, Inc. Targeted search of backup data using facial recognition
US10545834B1 (en) 2018-03-02 2020-01-28 June B. Smith Server-assisted network data archiving
CN108595291B (zh) * 2018-04-01 2021-08-31 山东协和学院 一种医疗数据备份系统
US20200034244A1 (en) * 2018-07-26 2020-01-30 EMC IP Holding Company LLC Detecting server pages within backups
US11159469B2 (en) 2018-09-12 2021-10-26 Commvault Systems, Inc. Using machine learning to modify presentation of mailbox objects
US12086450B1 (en) 2018-09-26 2024-09-10 Amazon Technologies, Inc. Synchronous get copy for asynchronous storage
US11194758B1 (en) * 2019-01-02 2021-12-07 Amazon Technologies, Inc. Data archiving using a compute efficient format in a service provider environment
US11086731B2 (en) 2019-01-11 2021-08-10 California Eastern Laboratories, Inc. Gateway backup system and method
US11036400B2 (en) * 2019-04-26 2021-06-15 EMC IP Holding Company LLC System and method for limiting restoration access
CN110351363B (zh) * 2019-07-12 2021-09-10 全链通有限公司 数据备份方法、设备及计算机可读存储介质
US11290531B2 (en) 2019-12-04 2022-03-29 Dropbox, Inc. Immediate cloud content item creation from local file system interface
US11210183B2 (en) * 2020-01-14 2021-12-28 Western Digital Technologies, Inc. Memory health tracking for differentiated data recovery configurations
US11303618B2 (en) * 2020-02-17 2022-04-12 International Business Machines Corporation Encryption management
US11429736B2 (en) 2020-02-17 2022-08-30 International Business Machines Corporation Encryption management
US11194769B2 (en) 2020-04-27 2021-12-07 Richard Banister System and method for re-synchronizing a portion of or an entire source database and a target database
FR3111252A1 (fr) * 2020-06-04 2021-12-10 Orange Procédé de capture d’un paquet d’une session chiffrée
US11202085B1 (en) 2020-06-12 2021-12-14 Microsoft Technology Licensing, Llc Low-cost hash table construction and hash-based block matching for variable-size blocks
CN113935045A (zh) * 2020-06-29 2022-01-14 中兴通讯股份有限公司 用户数据恢复方法、装置、终端以及计算机存储介质
US11494417B2 (en) 2020-08-07 2022-11-08 Commvault Systems, Inc. Automated email classification in an information management system
EP3987425B1 (en) * 2020-08-27 2023-10-18 Huawei Technologies Co., Ltd. Method and system for data deduplication and compression in untrusted storage system
CN112182616B (zh) * 2020-09-29 2024-05-17 江苏大周基业智能科技有限公司 核心表数据的密码技术安全控制方法及系统
US11727111B1 (en) * 2020-10-05 2023-08-15 Gen Digital Inc. Detecting malware by linking background intelligent transfer service (BITS) and scheduled task service (STS) activities to a source program
CN112217901A (zh) * 2020-10-21 2021-01-12 中国电子科技集团公司第十五研究所 一种基于分布式企业服务总线的远程文件同步方法及系统
CN113064761B (zh) * 2021-04-08 2022-03-04 北京深思数盾科技股份有限公司 数据恢复方法、服务器、加密机、终端及介质
US12135612B2 (en) * 2021-05-27 2024-11-05 Oracle International Corporation Snapshotting hardware security modules and disk metadata stores
CN113641694B (zh) * 2021-07-16 2023-12-22 南京国电南自维美德自动化有限公司 数据库的海量历史数据备份方法和恢复方法
US12254099B2 (en) * 2021-08-09 2025-03-18 International Business Machines Corporation Autoencryption system for data in a container
CN113742725A (zh) * 2021-08-10 2021-12-03 海尔施生物医药股份有限公司 一种增强计算机系统数据安全的方法
CN114040019B (zh) * 2021-11-09 2023-10-27 合肥城市云数据中心股份有限公司 一种基于客户端代理的备份灾备装置数据采集传输方法
CN114020538A (zh) * 2021-11-22 2022-02-08 猪八戒股份有限公司 mysql数据库多实例的备份方法、服务器及系统
CN114860502A (zh) * 2022-04-04 2022-08-05 广州优谷信息技术有限公司 一种基于朗读亭系统项目备份恢复技术
JP7741764B2 (ja) * 2022-04-21 2025-09-18 株式会社日立製作所 作業支援装置、作業支援システム
CN116192847A (zh) * 2023-02-01 2023-05-30 南京艾若博特信息技术有限公司 一种采用gps定位的区块链网络划分系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659614A (en) * 1994-11-28 1997-08-19 Bailey, Iii; John E. Method and system for creating and storing a backup copy of file data stored on a computer
US6021201A (en) * 1997-01-07 2000-02-01 Intel Corporation Method and apparatus for integrated ciphering and hashing
WO1998035306A1 (en) * 1997-02-11 1998-08-13 Connected Corporation File comparison for data backup and file synchronization
JP3657396B2 (ja) * 1997-07-07 2005-06-08 株式会社日立製作所 鍵管理システム、鍵管理装置、情報暗号化装置、情報復号化装置、およびプログラムを記憶した記憶媒体
US7277941B2 (en) * 1998-03-11 2007-10-02 Commvault Systems, Inc. System and method for providing encryption in a storage network by storing a secured encryption key with encrypted archive data in an archive storage device
EP1062558A2 (en) * 1998-03-12 2000-12-27 Fairbanks Systems Group System and method for backing up computer files over a wide area computer network
JP2000200208A (ja) * 1999-01-06 2000-07-18 Fujitsu Ltd ファイルバックアップ方法,装置およびそのプログラム記録媒体
US6505216B1 (en) * 1999-10-01 2003-01-07 Emc Corporation Methods and apparatus for backing-up and restoring files using multiple trails
US6810398B2 (en) * 2000-11-06 2004-10-26 Avamar Technologies, Inc. System and method for unorchestrated determination of data sequences using sticky byte factoring to determine breakpoints in digital sequences
JP2002318716A (ja) * 2001-04-20 2002-10-31 Sony Corp 配信システム、配信方法、サーバコンピュータ、クライアントコンピュータ
JP2003067232A (ja) * 2001-08-28 2003-03-07 Nec Infrontia Corp コンピュータのデータのバックアップ方式及びそのリストア方式
JP4254178B2 (ja) * 2002-09-11 2009-04-15 富士ゼロックス株式会社 分散格納制御装置及び方法
JP2004355083A (ja) * 2003-05-27 2004-12-16 Nec Corp バックアップシステムおよびバックアッププログラム
US7328366B2 (en) * 2003-06-06 2008-02-05 Cascade Basic Research Corp. Method and system for reciprocal data backup
CA2452251C (en) * 2003-12-04 2010-02-09 Timothy R. Jewell Data backup system and method
US7440965B1 (en) * 2004-02-11 2008-10-21 Network Appliance, Inc. Method and system for generating and restoring a backup image
US7100008B2 (en) * 2004-03-15 2006-08-29 Hitachi, Ltd. Long term data protection system and method
JP2005327235A (ja) * 2004-04-13 2005-11-24 Hitachi Ltd 暗号化バックアップ方法および復号化リストア方法
US7383462B2 (en) * 2004-07-02 2008-06-03 Hitachi, Ltd. Method and apparatus for encrypted remote copy for secure data backup and restoration
US7584226B2 (en) * 2005-05-24 2009-09-01 International Business Machines Corporation System and method for peer-to-peer grid based autonomic and probabilistic on-demand backup and restore

Also Published As

Publication number Publication date
KR20080066790A (ko) 2008-07-16
CN101647006A (zh) 2010-02-10
ATE504878T1 (de) 2011-04-15
WO2007044964A2 (en) 2007-04-19
DE602006021217D1 (de) 2011-05-19
AU2006299819A1 (en) 2007-04-19
EP1949270A4 (en) 2009-12-30
EP1949270A2 (en) 2008-07-30
AU2006299819B2 (en) 2011-02-10
US8041677B2 (en) 2011-10-18
EP1949270B1 (en) 2011-04-06
US20070100913A1 (en) 2007-05-03
CA2625893C (en) 2016-08-09
CA2625893A1 (en) 2007-04-19
JP2009512077A (ja) 2009-03-19
WO2007044964A3 (en) 2009-05-28

Similar Documents

Publication Publication Date Title
JP5563220B2 (ja) データ・バックアップのための方法およびシステム
US9578097B2 (en) Block based access to a dispersed data storage network
US7165154B2 (en) System and method for data backup
AU2018236850B2 (en) Storage and retrieval of crytographically-split data blocks to/from multiple storage devices
JP6483746B2 (ja) データ記憶アプリケーションプログラミングインターフェース
JP4446738B2 (ja) コンピュータファイルを効率的にバックアップするシステムと方法
JP6224102B2 (ja) アーカイブデータ識別
US8099605B1 (en) Intelligent storage device for backup system
US8667273B1 (en) Intelligent file encryption and secure backup system
US8185614B2 (en) Systems, methods, and apparatus for identifying accessible dispersed digital storage vaults utilizing a centralized registry
US6662198B2 (en) Method and system for asynchronous transmission, backup, distribution of data and file sharing
US8386798B2 (en) Block-level data storage using an outstanding write list
JP5210376B2 (ja) 固定コンテンツ分散型データ記憶システムにおけるデータ機密保持方法
US8751453B1 (en) System and method for conveying backup and restore data via email
US20100162003A1 (en) Retrieval of cryptographically-split data blocks from fastest-responding storage devices
JP2019523955A (ja) データストレージシステムおよびデータストレージを実行するための方法
US20100153740A1 (en) Data recovery using error strip identifiers
Barr et al. pStore: A Secure Distributed Backup System
Mager et al. DistBack: A low-overhead distributed back-up architecture with snapshot support

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111028

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120117

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120412

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130214

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130307

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20130329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140514

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140612

R150 Certificate of patent or registration of utility model

Ref document number: 5563220

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D03

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees