JP6571202B2 - モバイルデバイス上の自動的なクラウドベースの全データバックアップおよびリストアのためのシステムおよび方法 - Google Patents

モバイルデバイス上の自動的なクラウドベースの全データバックアップおよびリストアのためのシステムおよび方法 Download PDF

Info

Publication number
JP6571202B2
JP6571202B2 JP2017551132A JP2017551132A JP6571202B2 JP 6571202 B2 JP6571202 B2 JP 6571202B2 JP 2017551132 A JP2017551132 A JP 2017551132A JP 2017551132 A JP2017551132 A JP 2017551132A JP 6571202 B2 JP6571202 B2 JP 6571202B2
Authority
JP
Japan
Prior art keywords
data
party application
cloud storage
metadata
party
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.)
Active
Application number
JP2017551132A
Other languages
English (en)
Other versions
JP2018511884A (ja
JP2018511884A5 (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2018511884A publication Critical patent/JP2018511884A/ja
Publication of JP2018511884A5 publication Critical patent/JP2018511884A5/ja
Application granted granted Critical
Publication of JP6571202B2 publication Critical patent/JP6571202B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)
  • Information Transfer Between Computers (AREA)

Description

一般に、本開示は、データをクラウドストレージにバックアップし、データをクラウドストレージからモバイルデバイスにリストアするためのシステムおよび方法に関する。
グローバルな使用パターンがモバイルデバイスのコンテンツ消費、作成および管理に移行するにつれて、モバイルデバイスの使用が増加している。しかしながら、モバイルデバイスはデータ格納に関して貧弱なプラットフォームである。モバイルデバイスは、容易に損傷するか、または動作不能になり、結果的にローカルに格納されたコンテンツやデータが失われることがしばしばある。モバイルデバイスに欠陥が生じた後のアクセス不能なデータおよびコンテンツは、不十分または技術的に非効率的なデータバックアップ機能を含む技術的な理由による可能性がある。
さらに、モバイルデバイスのユーザーは、デバイスを頻繁にアップグレードする。新たなデバイスの設定では、アプリケーションのデータや関連する設定が失われるため、ユーザーエクスペリエンスの妨げとなることがよくある。これにより、ユーザーは新たなデバイスを最初からセットアップする必要があり、多数のユーザー入力が必要になり、新たなデバイスのユーザーインタフェースコンポーネントの負荷が増加する可能性がある。さらに、ユーザーが新たなデバイスを最初から作成するように要求すると、テキストメッセージ、写真、アプリケーションの設定、セキュリティ設定または他の適切なサードパーティアプリケーションデータなど、サードパーティアプリケーションに関連する重要なデータが失われる可能性がある。既存のバックアップ技術は、サードパーティアプリケーションデータの特定のアスペクトのみをバックアップするキーと値のペアの使用に依存することがしばしばある。サードパーティアプリケーションをクライアントデバイスにリストアするためにキーと値のペアを使用すると、アプリケーションの設定がリストアされるが、サードパーティアプリケーションの追加のコンテンツはリストアされない可能性がある。このように、設定をバックアップしてキーと値のペアとして格納したサードパーティアプリケーションは、ユーザーの設定に従ってサードパーティアプリケーション環境をリストアすることになるが、サードパーティアプリケーションは、ユーザーによるサードパーティアプリケーションにおいて作成あるいは格納されたサードパーティアプリケーションコンテンツを失うこととなる。さらに、既存のシステムでは、サードパーティアプリケーションの開発者にサードパーティアプリケーションをバックアップを許可するように特別に設定するように要求するか、ユーザーにバックアップを選択するか、または手動でバックアップを開始するように要求する可能性がある。
サードパーティアプリケーションに関連するデータのバックアップおよびリストアをより効率的かつ信頼性の高いものにするために、アプリケーション毎をベースにアプリケーションデータのクラウドストレージへの全データバックアップのためのシステムおよび方法が開示されている。全データバックアップは、サードパーティアプリケーションに関連する全てのデータを含み、そのデータは、セキュリティ設定、環境、アプリケーション履歴、ユーザープリファレンス、アプリケーションコンテンツなどの設定に関連する全てのバイナリデータおよびメタデータ、およびサードパーティアプリケーションを実行するか、またはサードパーティアプリケーション環境を作成したりするために使用されるサードパーティアプリケーションに関連する他のデータを含む。結果として、全データバックアップの効率改善の一例は、必要なすべてのデータをバックアップおよびリストアするのに必要なユーザー入力の数を減らすことであり、このことは、デバイスのユーザーインタフェースコンポーネントに対する負荷を軽減する。モバイルデバイスのディスプレイによって利用される電力は、モバイルデバイスの総エネルギー使用量のかなりの部分を占めることがあり、したがって、ディスプレイがアクティブである時間を短縮することは、電力消費を低減させる結果となり得、バッテリ電力の使用を最小限に抑えることが重要であるモバイルデバイスの場合、特に有利である。データバックアップは、バックアップが行われるべきであると決定されたときに、クライアントデバイスのバックアップフレームワークによって定期的に開始されてもよい。各アプリケーションに関するサードパーティアプリケーションデータは、クラウドストレージのロケーションにアップロードされる。特に、サードパーティアプリケーションデータは、バイナリデータおよびメタデータの2つの形式のデータを含み得る。この場合、バイナリデータは、メタデータとは別個に格納されてもよい。バイナリデータのストレージロケーションを含む識別子は、メタデータに付加されて、付加されたメタデータがバイナリデータのクラウドストレージアドレスへの参照を含むようにしてもよい。バイナリデータとメタデータは、プロパティが異なり、かつ最適なストレージソリューションが異なり得る。例えば、バイナリデータストレージは、大量のデータを格納するための手段と、バイトの迅速な連続読み取りアクセスとを必要とする。バイナリストレージは、検索可能であっても検索可能でなくてもよく、またそうでなければインデックス付けされていてもされていなくてもよい。メタデータストレージは、階層関係を形成し、かつ関連するフォルダおよびファイルにわたる所有権データなどのメタデータの伝播を形成するとともに、非バイナリデータの迅速な格納に関連する機能を有する。メタデータストレージはまた、格納されたメタデータを検索するための手段を含み、かつ予想されるユーザーインタフェース応答時間をサポートするために、そのような検索を迅速に処理するように設けられている。
ユーザーがサードパーティアプリケーションデータをクライアントデバイスにリストアすることを望む場合、ユーザーは、サードパーティアプリケーションデータをクラウドストレージからクライアントデバイスにリストアするデバイスリストアプロセスを開始することができる。サードパーティアプリケーションデータは、設定とコンテンツの両方を含む全データバックアップからリストアされるため、データの損失が低減する。サードパーティアプリケーション、アプリケーション環境、およびサードパーティアプリケーションコンテンツはバックアップからリストアされ、新たなデバイスへのシームレスな移行が実現される。クラウドストレージに格納された全データバックアップからリストアすることで、インストールされたアプリケーション、設定、オプションで写真、テキスト、オーディオファイルまたはビデオファイルなどの追加のコンテンツを含め、デバイスを以前のデバイスと同じ状態に戻すことができる。
一態様において、サードパーティアプリケーションデータをクラウドストレージに格納するための方法は、クライアントデバイスに格納されたサードパーティアプリケーションに関連するデータをクラウドストレージサーバーにアップロードすることを決定することを含む。サードパーティアプリケーションに関連するデータは、バイナリデータとメタデータの両方を含む。この方法はさらに、サードパーティアプリケーションのバイナリデータを第1のクラウドストレージロケーションに格納することを含む。第1のクラウドストレージロケーションはストレージアドレスを有し、メタデータは、そのストレージアドレスを含むように更新される。そしてこの方法は、更新されたメタデータを第1のクラウドストレージロケーションとは異なる第2のクラウドストレージロケーションに格納することを含む。
いくつかの実施形態において、サードパーティアプリケーションのバイナリデータは、サードパーティアプリケーションについての全データを含む。いくつかの実施形態において、クライアントデバイスは、クライアントデバイスに格納されているサードパーティアプリケーションに関連する格納されたバイナリデータを識別することによって、データをアップロードするかどうかを決定する。いくつかの実施形態において、クライアントデバイスは、サードパーティアプリケーションに関連する以前にアップロードされたバイナリデータもまた識別し、格納されたバイナリデータと以前にアップロードされたバイナリデータとの間の差を計算する。クライアントデバイスは、その差を閾値と比較する。差が閾値以上である場合、クライアントデバイスは、サードパーティアプリケーションに関連するデータをアップロードすることを決定する。
いくつかの実施形態において、クライアントデバイスは、複数のサードパーティアプリケーションに関連するデータを格納し、複数のサードパーティアプリケーションにおける各サードパーティアプリケーションは、対応するバイナリデータおよび対応するメタデータに関連付けられる。各サードパーティアプリケーションについての対応するバイナリデータおよび対応するメタデータは、1回のアップロードでクライアントデバイスからアップロードされる。いくつかの実施形態において、サードパーティアプリケーションに関連するデータは、データのダウンロード前にクライアントデバイス上で完全には複製されない。いくつかの実施形態において、クライアントデバイスは、所定のアップロードスケジュールに基づいてサードパーティアプリケーションに関連するデータをアップロードすることを決定する。いくつかの実施形態において、クライアントデバイスは、サードパーティアプリケーションによって報告されるサードパーティアプリケーションへの変更の検出に基づいてサードパーティアプリケーションに関連するデータをアップロードすることを決定する。いくつかの実施形態において、クライアントデバイスは、クライアントデバイスのユーザーからバックアップ要求を受信したときに、サードパーティアプリケーションに関連するデータをアップロードすることを決定する。
いくつかの実施形態において、クライアントデバイスは、サードパーティアプリケーションのバイナリデータおよびメタデータを単一のファイルに集約し、そのファイルをクラウドストレージ内のアップロードサーバーに送信するように構成される。アップロードサーバーは、バイナリデータをメタデータから分離し、第1のクラウドストレージロケーションに格納するためにバイナリデータを送信し、更新されたメタデータを取得するために第1のクラウドストレージロケーションのストレージアドレスをメタデータに付加し、更新されたメタデータを第2のクラウドストレージロケーションに格納するために送信するように構成される。
別の態様において、クライアントデバイスへのサードパーティアプリケーションデータのリストアを提供するための方法は、サードパーティアプリケーションに関連するデータをクライアントデバイスに提供するかどうかを決定することを含む。サードパーティアプリケーションに関連するデータは、ストレージアドレスを有する第1のクラウドストレージロケーションに格納されたバイナリデータと、第2のクラウドストレージロケーションに格納されたメタデータとを含む。この方法はさらに、メタデータを使用して第1のクラウドストレージロケーションのストレージアドレスを決定することと、第1のクラウドストレージロケーションからクライアントデバイスにバイナリデータを提供することとを含む。
いくつかの実施形態において、サードパーティアプリケーションのバイナリデータは、サードパーティアプリケーションについての全データを含む。いくつかの実施形態において、クライアントデバイスは、複数のサードパーティアプリケーションに関連するデータを格納する。複数のサードパーティアプリケーションにおける各サードパーティアプリケーションは、対応するバイナリデータおよび対応するメタデータに関連付けられ、各サードパーティアプリケーションについての対応するバイナリデータは、1回のダウンロードでクライアントデバイスにダウンロードされる。いくつかの実施形態において、クライアントデバイスは、クライアントデバイスのユーザーからリストア要求を受信したときに、サードパーティアプリケーションに関連するデータをダウンロードすることを決定する。いくつかの実施形態において、サードパーティアプリケーションに関連するデータは、アプリケーションデータ、ユーザープリファレンス、およびアプリケーションコンテンツを含む。いくつかの実施形態において、クライアントデバイスは第1のクライアントデバイスであり、バイナリデータおよび更新されたメタデータは第2のクライアントデバイスにダウンロードされて、第1のクライアントデバイス上のサードパーティアプリケーションデータが第2のデバイス上のサードパーティアプリケーションデータと同期化される。
いくつかの実施形態において、バイナリデータおよびメタデータは、クラウドストレージ内のダウンロードサーバーに送信され、ダウンロードサーバーは、第1のクラウドストレージロケーションにバイナリデータを以前に書き込んでおり、かつ第2のクラウドストレージロケーションに書き込むためにメタデータを以前に送信している。いくつかの実施形態において、ダウンロードサーバーは、第2のクラウドストレージロケーションから更新されたメタデータを読み出して第2のクラウドストレージロケーションに書き込むように構成されているクラウドストレージサービスにメタデータを以前に送信している。いくつかの実施形態において、別のサードパーティアプリケーションに関連するデータは、第3のクラウドストレージロケーションに格納されたメタデータを含み、かつバイナリデータを含んでいない。いくつかの実施形態において、サードパーティアプリケーションデータのリストアをクライアントデバイスに提供するための方法は、別のサードパーティアプリケーションに関連するデータをクライアントデバイスに提供するかどうかを決定することと、別のサードパーティアプリケーションに関連するメタデータを、第3のクラウドストレージロケーションに格納された一組のキーと値のペアとして識別することと、一組のキーと値のペアをクライアントデバイスに提供することも含む。
例示的な一実施形態による、クラウドストレージサービスにデータをアップロードするためのシステムのブロック図である。 例示的な一実施形態による、データアップロードプロセスを実行するために協働するように構成されたクライアントデバイスおよびサーバーのブロック図である。 例示的な実施形態による、サードパーティアプリケーションデータをアップロードする例示的な方法を示すブロック図である。 例示的な実施形態による、クラウドストレージシステムからサードパーティアプリケーションデータをデバイスにリストアするための例示的な方法を示すブロック図である。 例示的な一実施形態による、クラウドストレージにサードパーティアプリケーションデータを格納するための方法のフローチャートである。 例示的な一実施形態による、サードパーティアプリケーションデータのクライアントデバイスへのリストアを提供するための方法のフローチャートを示す。
本開示の上記および他の特徴は、その本質およびその様々な利点を含めて、以下の詳細な説明を添付の図面と併せて考察することで、より明らかとなるであろう。
本明細書で説明するシステムおよび方法の全体的な理解を提供するために、クライアントデバイス上のサードパーティアプリケーションデータのバックアップおよびリストアのためのシステムを含む特定の実施形態をここで説明する。しかしながら、当業者であれば、本明細書に記載されたシステムおよび方法は、対象となるアプリケーションに適切となるように適合および変更されてもよく、本明細書に記載されたシステムおよび方法は、他の適切なアプリケーションにおいて採用されてもよく、そのような他の追加および変更はその範囲から逸脱するものではないことを理解されたい。一般に、本明細書で説明されるコンピュータ化されたシステムは、ハードウェア、ファームウェア、およびソフトウェアで構成されたコンピュータ、マイクロプロセッサ、論理デバイスまたはプロセッサなどの、1つまたは複数のコンピュータ化された方法を実行する処理デバイスを含む1つまたは複数のエンジンを含むことができる。
本明細書で説明するように、本開示は、サードパーティアプリケーションに関連する全データのバックアップを実行するシステムおよび方法を提供する。サードパーティアプリケーション設定に関連するキーと値のペアの代わりに、設定、履歴、およびコンテンツを含むサードパーティアプリケーションに関連する全データがクラウドストレージにアップロードされる。サードパーティアプリケーションに関連するバイナリデータとメタデータは、クラウドストレージにアップロードすることでバックアップされる。サードパーティアプリケーションに関するメタデータには、ファイル名、サイズ、パスコードまたは識別番号、ファイルの履歴、ディスクリプション、サードパーティアプリケーションが設計されたオペレーティングシステムの現在のバージョン、およびその他の静的メタデータが含まれる。サードパーティアプリケーション固有のデータに加えて、他のファイルおよびデータも同様の方法でバックアップされ得る。そのようなデータは、メモリカード、SDカード、ダウンロードフォルダ、または個々のアプリケーションデータに関連付けられていない他のデータレポジトリを含むことができる。さらに、クラウドストレージにバックアップされるこれらのファイルおよびその他のファイルおよびデータは、クラウドベースのファイルストレージシステムのユーザーインタフェースにおいて完全に操作可能かつ可視のファイルとしてユーザーに公開される可能性がある。
サードパーティアプリケーションデータのバックアップは、所定のスケジュールに従って、またはサードパーティアプリケーションデータに変更がある場合に発生し得る。例えば、所定のスケジュールは、1日に1回、1週間に1回、1ヶ月に1回、または任意の他の適切な頻度等、一定間隔ごとにサードパーティアプリケーションデータのバックアップを要求する。別の例として、サードパーティアプリケーションデータに対して少なくとも閾値量の変更が加えられたと判定されたときに、自動的にバックアップが開始されてもよい。特に、サードパーティアプリケーションデータに対する変更は、内部サードパーティアプリケーションのデータベース又は設定に対する変更を含み得る。いくつかの実施形態において、サードパーティアプリケーションに対する変更は、アプリケーションに関連するフォルダに記録される。これらの変更にクライアントデバイスのバックアップフレームワークがアクセスして、アップロードが必要かどうかを決定し得る。
いくつかの実施形態において、クライアントデバイスは、ユーザーがバックアップに関連する設定をカスタマイズすることを可能にするように構成することができる。例えば、クライアントデバイスが携帯電話である場合、携帯電話がセルラーネットワークに接続されているときに、そうすることでユーザーのデータプランにおいてデータを消費するために、携帯電話がサードパーティアプリケーションデータをクラウドストレージにアップロードすることは望ましくないことがある。この場合、クライアントデバイスは、モバイルデバイスが無線インターネットのネットワークのような高速で信頼性の高い、および/または安価なネットワークに接続されているときにのみバックアップを実行するように構成することができる。あるいは、ユーザーは、セルラーネットワークを介してバックアップを可能にするための1つまたは複数のオプションを選択してもよい。バックアップは、複数のサードパーティアプリケーションに関して必要なバックアップがグループ化され、複数のサードパーティアプリケーションに対するすべてのアップロードがアップロードセッション中に順番に実行されるように構成することができる。サードパーティアプリケーションデータが変更されると、複数のサードパーティアプリケーションに対して複数の必要なバックアップが継続的に発生することもある。バックアップは、モバイルデバイスが電源に接続されているとき、または夜間などのアイドル時またはピーク時以外の使用時など、特定のデバイス要件が満たされたときにのみに発生するように構成することもできる。
図1は、データをクラウドストレージサービスにアップロードするためのシステム100のブロック図を示す。このシステムは、クライアントデバイス101、アプリケーション102a、102b(一般に、アプリケーション102)、クラウドストレージ103、第1のクラウドストレージロケーション104、および第2のクラウドストレージロケーション106を含む。クライアントデバイス101は、関連するデータを含む複数のサードパーティアプリケーションを含む。データは、バイナリデータおよびメタデータの両方を含み得る。クライアントデバイスは、アップロードが行われるべきであるということを決定する。アップロードが行われるべきであるという決定は、ユーザーアクション、時限アップロード、またはユーザーが開始したか、または開始していないサードパーティアプリケーションおよびアプリケーションデータへの変更に基づくアップロードによってトリガされてもよい。クライアントデバイス101は、サードパーティアプリケーションのバイナリデータおよびメタデータをクラウドストレージ103に送信する。サードパーティアプリケーションのバイナリデータは、第1のクラウドストレージロケーション104に格納され、サードパーティアプリケーションのメタデータは、クラウドストレージ103内の第2のクラウドストレージロケーション106に格納される。
データアップロード
図2は、協働してデータアップロードプロセスを実行するように構成されたシステム200のブロック図である。システム200は、クライアントデバイス201上の(例えば、「クライアント側」上の)バックアップフレームワーク208、バックアップトランスポート210、およびサードパーティアプリケーション202a、202b、202cと、サーバー216上(例えば、「サーバー側」上の)バックアップサーバー218、アップロードサーバー224、クラウドストレージサービス203、およびメタデータストレージ226を含む。クライアントデバイス201は、電話またはタブレットのようなモバイルデバイスを含むことができる。クライアントデバイス201は、本明細書ではしばしばモバイルデバイスであると説明されているが、当業者であれば、本開示のシステムおよび方法は、デスクトップコンピュータ、ラップトップ、または任意の他の適切なコンピューティングデバイスを含む任意の数のコンピューティングデバイス上のアプリケーションデータをバックアップおよびリストアを実行するのに適用可能であることは理解されるであろう。クライアントデバイス201は、バイナリバックアップモジュール209を含むバックアップフレームワーク208と通信するサードパーティアプリケーション202a、202b、202cに関連するデータを格納する。バックアップフレームワーク208は、バックアップトランスポート210と通信する。バックアップフレームワーク208は、デバイスメモリ内に存在し、かつ所定のスケジュールを参照することによって、またはアプリケーションデータの変化の検出に応答して、サードパーティアプリケーション202a、202b、202cがバックアップを必要とするかどうかを決定するように構成される。バックアップフレームワーク208は、バイナリアプリケーションデータとサードパーティアプリケーションデータの以前のバックアップとを比較して、データに変更があるかどうかを判定できるように構成されている。これは、チェックサム計算によって、またはアプリケーション変更フォルダに記録されているアプリケーションの変更があるかどうかを判定することによって達成することができる。
クライアントデバイス201がバックアップの必要性があると判定した後、バイナリバックアップモジュール209は、アップロードされるアプリケーションデータを単一のファイルにアーカイブし、そのファイルをバックアップトランスポート210に送信する。図2におけるバックアップトランスポート210は、様々なバックアップ方法が使用できる2つの異なるデータタイプを含む。特に、図2に示すように、バックアップトランスポートは、キーと値のペア部213と、バイナリデータを含む全データバックアップ部212とを含む。一般に、本開示の範囲から逸脱することなく、他の適切なデータタイプを使用することができる。アプリケーションデータがバックアップフレームワーク208からバックアップトランスポート210に送信された後、クライアントデバイス201は、アップロードプロセスを開始するためにサーバー216を呼び出す。
図2に示すように、サーバー216は、アップロードサーバー224と、キーと値のペアのストレージ220およびビジネスロジックエージェント222を含むバックアップサーバー218と、クラウドストレージサービス203と、メタデータストレージユニット226とを含む。アップロードサーバー224は、アップロードされたバイナリデータを取り扱い、かつバックアップサーバー218内のビジネスロジックエージェント222を呼び出して、関連するメタデータの格納、および将来のリストア要求の間にデータを取得するために使用することができるロケーション参照の作成を開始するように構成される。バックアップサーバー218は、アップロードサーバー224から要求を受信し、これらの要求をクラウドストレージサービス203に渡し、クラウドストレージサービス203は、メタデータストレージ226に格納するためのメタデータを準備する。さらに、クライアントデバイスのバックアップに関連する構造化データは、キーと値のペアストレージ220に格納される。構造化データは、デバイスID、サードパーティアプリケーションID、およびアップロード方法の一部として受信されたクラウドストレージに格納されたサードパーティアプリケーションデータのストレージロケーションへの参照を含むことができる。構造化データは、クライアントデバイスタイプおよび製造年月日、最近のバックアップに関連するタイムスタンプ、およびクライアントデバイス201上のバックアップフレームワーク208のバージョンに関連する情報を含む追加の情報を含むことができる。
いくつかの実施形態において、サードパーティアプリケーションデータのアップロードは、一連のステップを経て達成される。これらのステップは、図2において記載された構成要素を用いて図3に図示および列挙される。
図3のステップ1において、クライアントデバイスのバックアップフレームワーク208によってデータアップロードの必要性が決定されると、バックアップを要求するサードパーティアプリケーション202a、202b、202cに関連する基本メタデータを有するバックアップ要求メッセージが生成される。バックアップ要求メッセージは、クライアントデバイス201からアップロードサーバー224に送信される。クライアントデバイスのバックアップフレームワーク208は、新たなバックアップを必要とする各サードパーティアプリケーション202a、202b、202cのためのタールボール(tarball)(「.tar」アーカイブファイル)を作成する。クライアントデバイスのバックアップトランスポート210は、バックアップ要求メッセージをアップロードサーバー224に渡すことによって、アップロードサーバー224へのサードパーティアプリケーションデータタールボールのアップロードを開始する。クライアントデバイスのバックアップトランスポート210はまた、アップロードサーバー224へのサードパーティアプリケーションデータアップロードに関連するメタデータを提供する。アップロードサーバー224は、標準のアップロード、バイナリ差分法、またはチャンク化アップロードまたは再開可能なアップロードを介してファイルを受信する。バイナリ差分アップロードを含む実施形態において、アップロードされるバイナリおよびメタデータは、クライアントデバイス201上に配置されたバイナリ差分ライブラリ214に準備されて(staged)もよい。アップロードされるサードパーティアプリケーションデータは、チェックサム方法によって決定されて、クライアントデバイス201上のサードパーティアプリケーションデータと既存の格納されたデータとの間の差のみが、2つのデータファイル間の差を記述する構造と共にアップロードされる。
ステップ2において、アップロードサーバー224は、受信したサードパーティアプリケーションのバイナリデータをバイナリデータストレージ223に書き込む。バイナリデータストレージ228は、大量のバイナリデータを格納するように設計されたクラウドストレージロケーションである。バイナリデータストレージ228は、バイトへのアクセスを順次読み取り、呼び出されたロケーションに応答してバイトを提供することができる。サードパーティアプリケーションのメタデータは、第2のクラウドストレージロケーション(例えば、図2のメタデータストレージ226)に格納するために除去される。
ステップ3において、アップロードサーバー224は、アップロードされたサードパーティアプリケーションデータのファイルロケーションを含むサードパーティアプリケーションのバイナリデータ用のバイナリデータストレージロケーション参照を受信する。バイナリデータストレージロケーション参照は、サードパーティアプリケーションデータが格納されているバイナリデータストレージ228内のロケーションをルックアップするのに使用できる数値ストリングである。
ステップ4において、アップロードサーバー224は、サードパーティアプリケーションデータ用のバイナリデータストレージロケーション参照を、バイナリデータロケーション参照を複製するバックアップサーバー218内のビジネスロジックエージェント222に提供する。アップロードサーバー224はまた、サードパーティアプリケーションのメタデータをバックアップサーバー218に提供する。
ステップ5において、バックアップサーバー218は、格納されるバイナリデータに関連するサードパーティアプリケーションのメタデータと共に、バイナリデータストレージロケーション参照をクラウドストレージサービス203に渡す。バックアップサーバー218は、メタデータの正確な格納に必要なファイルおよびフォルダを作成する。クラウドストレージサービス203は、メタデータストレージ226にファイルを読み書きすることができる。
ステップ6で、クラウドストレージサービス203は、受信したサードパーティアプリケーションのメタデータおよびバイナリデータストレージロケーション参照を使用し、バイナリデータストレージロケーション参照をメタデータエントリに付加する。サードパーティアプリケーションのメタデータに追加のディスクリプタを付加して、サードパーティアプリケーションデータ用のストレージスペースをユーザーのストレージクォータに対してカウントしないような指示を追加することもできる。クラウドストレージサービス203は、サードパーティアプリケーションのメタデータをメタデータストレージ226に格納するための適切なエントリおよびフォルダを作成する。クラウドストレージサービス203は、サードパーティアプリケーションデータをメタデータストレージ226に書き込む。メタデータストレージ226は、メタデータを格納するために備えられたクラウドストレージである。
ステップ7において、メタデータストレージ226は、サードパーティアプリケーションのメタデータの格納に成功したことを示す成功信号を返す。成功信号は、成功信号がメタデータのロケーションを調べるために使用されるように、メタデータのロケーションへの参照を含む。
ステップ8において、クラウドストレージサービス203は、成功信号をバックアップサーバー218に渡し、バックアップサーバー218は成功信号を記録する。
ステップ9において、バックアップサーバー218は、成功信号をアップロードサーバー224に渡す。
ステップ10において、アップロードサーバー224は、成功信号をクライアントデバイス201に返す。
バイナリデータは、アップロードサーバー224にアップロードされ、バイナリデータストレージ228に格納される。サードパーティアプリケーションデータのバッチ処理は、アップロードサーバー224で行われる。対応するメタデータには、バイナリデータストレージロケーションへの参照が付加され、かつメタデータストレージ226に格納される。メタデータストレージ226のロケーションにメタデータを格納することは、クラウドストレージサービス203によって支援される。メタデータが成功裏に格納された後、成功信号がメタデータストレージサービス226によって生成され、バックアップサーバー218に、アップロードサーバー224に、最終的にクライアントデバイス201に返送される。成功信号は、サードパーティアプリケーションデータがクラウドストレージに成功裏にアップロードされ、かつ格納されたことを示す。
いくつかの実施形態において、サードパーティアプリケーションデータは、アプリケーション毎にモバイルデバイスからクラウドストレージに単一のファイルとしてアップロードされる。単一のサードパーティアプリケーション(例えば、図2の202a、202b、または202c)のサードパーティアプリケーションデータは、「.tar」形式のアーカイブファイルとしてアップロードされ得る。この形式のファイルは、本明細書ではタールボールと呼称される。少なくともアプリケーションベース毎にバックアップを実行すると、アップロードを成功させる可能性が高くなる可能性があるため効果的である。特に、変更を複数のサードパーティアプリケーションに対してまとめてバッチするのではなく、サードパーティアプリケーション毎に1つのファイルを一度にアップロードする方が好ましい場合がある。大きなファイルを含むアップロードは、小さなファイルを含むアップロードよりも失敗する傾向がある。アップロードに問題がある場合は、単一のサードパーティアプリケーションについてのアプリケーションデータのみを再アップロードする必要がある。このようにして、単一のサードパーティアプリケーションに関連するアプリケーションデータのみを含むアップロードは、より少ない時間で済み、かつアップロードがより効率的となる。
バックアップ中にサードパーティアプリケーション202a、202b、202c毎に1回のファイルアップロードを使用することは、アップロードプロセスの前に一時的な格納領域をわずかしか必要としない。サードパーティアプリケーションデータのアップロードプロセスは、データがアップロード前にローカルキャッシュに複製されず、直接ストリームされるように実行されてもよい。したがって、バックアップペイロード全体がディスク上に決して作成されることはない。アップロードされたサードパーティアプリケーションデータが一貫していることを保証するために、各サードパーティアプリケーションのデータアップロードを処理してシングルパスとしてアップロードすることができる。2回以上のパスでサードパーティアプリケーションデータをアップロードすると、2回のパスの間にサードパーティアプリケーションデータに変更があると、一貫しないアップロードプロセスが作成される可能性がある。
いくつかの実施形態において、サードパーティアプリケーションデータを1回のパスでアップロードすることは困難であり得る。これは、アップロードサーバー224が、アップロードの開始時に提供される、サーバーに送信されるバイト範囲のマニフェストを必要とする場合に発生し得る。このような場合、マニフェストを計算するためにサードパーティアプリケーションデータファイルからフルパスを作成する必要があるため、シングルパスアップロードは実行できない。この場合、処理のためにファイルをステージングするのに十分なディスク容量がない可能性がある。アップロード準備のためにサードパーティアプリケーションデータファイルの2回目にパスは、最初のパスと同じサードパーティアプリケーションのデータスナップショットであることが保証されないことがある。差分マニフェスト情報(diff manifest information)をインターリービングすることによって、そのような場合がサポートされ得る。例えば、シングルパスアップロードスクリプトは、{サーバーのコピーバイト0 100の使用、これらの20バイトのアップロード、サーバーバイト120〜150の使用}の形式で指定することができる。
クラウドストレージにバックアップされたサードパーティアプリケーションデータは、アプリ毎のバックアップデータとして格納される。サードパーティアプリケーションデータの最新の改訂版のみがクラウドストレージ内のロケーションに格納される。任意選択で、データのアップロードは、変更されたデータのみがクラウドストレージにアップロードされるバイナリ差分法によって達成されてもよい。バイナリ差分法を使用して、サードパーティアプリケーションデータの現在の状態が以前にアップロードされたバックアップと比較され、サードパーティアプリケーションデータにどのような変更が生じたのかが判定される。現在のサードパーティアプリケーションデータと以前のサードパーティアプリケーションデータバックアップとの比較は、チェックサム方法によって達成されてもよい。このアプローチでは、サードパーティアプリケーションデータの最終アップロードのカスタムチャンクサイズに関するチェックサムは、クライアントデバイス上でローカルに計算される。生のサードパーティアプリケーションデータ全体をアップロードするのではなく、差分を示すデータのみをクラウドストレージにアップロードすることで、帯域幅を節約し、バックアップのアップロードに必要な時間を短縮することができる。したがって、バイナリ差分プロトコルを使用してアップロードするサードパーティアプリケーションデータへの変更を判定することで、サードパーティアプリケーション方式毎の1回のアップロードの効率が向上する。
いくつかの実施形態では、バイナリ差分法を使用して、サードパーティアプリケーションデータのアップロードを実行すべきかどうかを決定し、サードパーティアプリケーションデータにどのような変更が生じたか、およびクラウドストレージにアップロードすべきものを決定する。クライアントデバイスのバックアップトランスポートは、サードパーティアプリケーションデータからデータを読み取り、そのデータを段階的に処理する。クライアントデバイスのバックアップフレームワークは、少なくとも1つのチェックサムチャンクを格納する。クライアントデバイスのバックアップトランスポートが読み取る各バイト毎に、最後のNバイトのローリングチェックサムが計算され、かつ最後のアップロードに関連するチャンクのチェックサムと比較される。サードパーティアプリケーションデータを最後にアップロードしたときのチャンクのチェックサムがサーバーに格納され、比較のためにダウンロードされる。新しく計算されたチェックサムと格納されたチェックサムとが一致しない場合、最も古いバイトがサーバーに送信される。一致した場合、チャンクはクラウドストレージにアップロードされない。
いくつかの実施形態において、サードパーティアプリケーションデータのバックアップは、自動的に設定され、かつ設定されたスケジュールに従って実行されるように構成される。サードパーティアプリケーションデータのバックアップおよびアップロードは、全てのサードパーティアプリケーション202a、202b、202cに自動的かつ共通であり、サードパーティアプリケーションの開発者は、このシステムでサードパーティアプリケーションデータをバックアップするためにサードパーティアプリケーション構成を何らかの方法で変更する必要がない。サードパーティアプリケーション202a、202b、202cの開発者は、サードパーティアプリケーション202a、202b、202cの構成の詳細またはマニフェストを変更することによって、バックアップからオプトアウトすることができる。全データバックアップが望ましくないサードパーティアプリケーション202a、202b、202cの例は、金融アプリケーション、パスワードストレージアプリケーションまたはパスワードストレージ認証者である。自動バックアップからオプトアウトした開発者のサードパーティアプリケーション202a、202b、202cは、ユーザーまたはサードパーティアプリケーション202a、202b、202cによって別の手動メカニズムによってバックアップされてもよい。
サードパーティアプリケーションデータがクラウドストレージにアップロードされて格納されると、サードパーティアプリケーションデータのバックアップは、ユーザーのビューから隠されても、ユーザーのクラウドストレージアカウントに関連付けられたままになっていてもよい。あるいは、サードパーティアプリケーションデータのバックアップは、クラウドストレージファイルシステム内のユーザーインタフェースを介してユーザーがアクセス可能であってもよい。ユーザーインタフェースを介してサードパーティアプリケーションデータのバックアップにアクセスすることにより、ユーザーは、クラウドストレージシステム内であってサードパーティアプリケーションデータまたは他のデータを変更または操作することができる。例えば、写真編集サードパーティアプリケーションに関連するデータのバックアップは、ユーザーのアカウントに関連するクラウドストレージファイルシステムのユーザーインタフェースを介してバックァアップファイルにおいてユーザーがアクセスおよび編集または操作し得る編集された写真または編集されていない写真を含み得る。ユーザーは、データのバックアップを削除するために、サードパーティアプリケーションデータのバックアップにアクセスすることもできる。
いくつかの実施形態において、サードパーティアプリケーションデータのバックアップは、クラウドストレージシステム内の階層的なフォルダに格納される。サードパーティアプリケーションのバイナリデータおよびメタデータは、ユーザーに関連付けられたフォルダ内に格納されてもよい。バックアップデータを含むフォルダは、クライアントデバイスおよびサードパーティアプリケーションが識別可能なように構成されている。これには、クライアントデバイス用のサードパーティアプリケーションデータバックアップに関連付けられたオブジェクトファミリールートフォルダ、クライアントデバイスID、格納されているサードパーティアプリケーションデータバックアップ、名前などのアプリケーションシグネチャ、場合によってはサードパーティのアプリケーションデータファイル用のタールボールが含まれ得る。オブジェクトファミリールートフォルダは、ユーザーのアカウントに関連付けられているにもかかわらず、ユーザーが使用できない場合がある。このフォルダは、イベントの同期中にも同期化されないことがある。
データのリストア
本開示のシステムおよび方法によれば、クラウドストレージに格納されているサードパーティアプリケーションデータをクライアントデバイス201にリストアすることができる。リストアパスを実施するために、サードパーティアプリケーションデータは、クライアントデバイス201によるコマンドに続いて取り出され得る。サードパーティアプリケーション202a、202b、202cのリストア中、アップロードサーバー224は、データをダウンロードするように構成される。この場合、アップロードサーバー224は、ダウンロードサーバー230と呼称される。クラウドストレージシステムからデバイスにサードパーティアプリケーションデータをリストアすることは、図2に記載のいくつかの構成要素を有する図4に示す以下のステップを使用してアプリケーションベース毎に行うことができる。
図4のステップ1において、デバイスのリストア時に、クライアントデバイス201のバックアップトランスポート210は、デバイスIDおよびサードパーティアプリケーションIDをバックアップサーバー218に送信することによって、サードパーティアプリケーションデータのダウンロードを開始する。これにより、クライアントデバイス201およびユーザーに関連するデータが要求されるサードパーティアプリケーション202a、202b、202cが特定される。
ステップ2において、バックアップサーバー218は、クライアントデバイス201からの識別情報及びサードパーティアプリケーションのデータリストア要求を受信すると、サードパーティアプリケーションデータの最後の成功したバックアップからの成功信号をクライアントデバイス201に返信する。成功信号は、メタデータストレージロケーションへの参照を含む。
ステップ3において、クライアントデバイスのバックアップトランスポート210は、ダウンロードサーバー230に接続し、ダウンロードサーバー230にメタデータストレージロケーション参照を有する成功信号を送信する。
ステップ4において、ダウンロードサーバー230は、メタデータストレージロケーション参照を使用して、メタデータストレージ226にサードパーティアプリケーションのメタデータを要求する。
ステップ5において、ダウンロードサーバー230は、サードパーティアプリケーションのメタデータと、サードパーティアプリケーションデータのバックアップ中にメタデータに付加されたバイナリストレージロケーション参照とを受信する。
ステップ6において、ダウンロードサーバー230は、バイナリストレージロケーション参照を使用してバイナリデータストレージ228にサードパーティアプリケーションのバイナリデータを要求する。
ステップ7において、サードパーティアプリケーションのバイナリデータがバイナリデータストレージ228から抽出され、ダウンロードサーバー230に送信される。
ステップ8で、ダウンロードサーバー230は、要求されたサードパーティアプリケーションのバイナリデータおよびメタデータをクライアントデバイスのバックアップトランスポート210に直接提供する。クライアントデバイスのバックアップトランスポート210は、配信されたデータをサードパーティアプリケーションデータのストレージに関連するクライアントデバイスのストレージ内の特定のロケーションに抽出する。データがデバイスにリストアされる各サードパーティアプリケーション202a、202b、202cは、データの格納のために指定されたクライアントデバイスのストレージ内の別個のロケーションを有することができる。したがって、クライアントデバイスのバックアップトランスポート210は、クライアントデバイス201上のサードパーティアプリケーション202a、202b、202cを実行し、すべてのサードパーティアプリケーション設定およびファイルをリストアする。
上述したリストア方法は、新たなデバイスを設定するためのセットアップ処理中に実行されてもよい。アカウントがクライアントデバイス201に追加されると、クライアントデバイスのバックアップフレームワーク208は、バックアップがクラウドストレージに既に格納されているかどうかをチェックすることができる。格納されていれば、サードパーティアプリケーション202a、202b、202c毎にサードパーティアプリケーションデータがリストアされる。例えば、クライアントデバイス201は、サードパーティアプリケーション202a、202bまたは202cについてバックアップサーバー218に問い合わせる。バックアップサーバー218がクライアントデバイス201に成功信号を供給する場合、これは、アプリケーションのバックアップがクラウドストレージ内に存在することを示す。
特定の要求されたサードパーティアプリケーション202a、202b、202cに対するサードパーティアプリケーションデータのバックアップが存在することがリストア要求中に判定された場合、サードパーティアプリケーションデータをダウンロードするプロセスが開始される。バイナリデータストレージロケーション参照は、格納されたメタデータから取得される。バイナリデータストレージロケーション参照を使用してバイナリデータストレージ228内の適切なサードパーティアプリケーションのバイナリデータを発見すると、ダウンロードサーバー230によってタールボールファイル(「.tar」アーカイブファイル)がバイナリデータストレージ228からダウンロードされる。ダウンロードサーバー230は、サードパーティアプリケーションデータをクライアントデバイス201に提供する。要求されたサードパーティアプリケーションに対するバックアップが識別されない場合、サードパーティアプリケーション設定をリストアする別の手段(キーと値のペアを含む)が試行される。
クラウドストレージからサードパーティアプリケーションデータを新たなデバイスにリストアすることにより、ユーザーは、デバイス上でサードパーティアプリケーション202a、202b、202cにおける同じ環境および設定を経験し、かつリストア時に以前のデバイス上のサードパーティアプリケーション202a、202b、202c内と同じ環境を経験することができる。これには、アプリケーションの外観やその機能などのユーザープリファレンスが含まれる。アプリケーションに格納されたデータを含む、アプリケーション固有のデータもリストアされる。例えば、テキストメッセージングアプリケーションであるサードパーティアプリケーション用の格納されたデータは、テキスト、写真、オーディオファイル、テキストメッセージの履歴および連絡先を含むことができる。これらは、記載されたアップロード方法によってクラウドストレージに格納され、リストア要求によってデバイスにリストアされる。サードパーティアプリケーションデータのリストア後、サードパーティアプリケーションデータのバックアップは、追加のリストアまたはダウンロード要求で使用するためにクラウドストレージに保持される。
いくつかの実施形態において、ユーザーは、サードパーティアプリケーションデータをクラウドストレージにアップロードした第1のデバイスと第2のデバイスとを同期化するためにリストア要求を開始することができる。ユーザーは、サードパーティアプリケーション202a、202b、202cが同じアプリケーション設定、環境およびコンテンツを含むように、2つのデバイス間でサードパーティアプリケーション202a、202b、202cを同期化する手段として機能するリストアプロセスを開始することができる。
いくつかの実施形態において、本開示のシステムおよび方法は、既存のバックアップ方法との後方互換性(backwards compatibility)を維持する態様で実施されてもよい。リストアプロセスは、古いバージョンのバックアッププロトコルで作成されたバックアップ(たとえば、キーと値のペアの使用に依存するバックアッププロトコル)からサードパーティアプリケーションデータをリストアするオプションをユーザーに提供する。このようにして、本明細書に記載の方法に従ってバックアップおよびリストアに必要なソフトウェアで動作するクライアントデバイス201は、以前のバックアップ方法を使用して行われたバックアップからリストアを要求することができる。ユーザーは、以前のバックアップおよびリストアソフトウェアを使用しながら、記載された方法で作成されたバックアップからサードパーティアプリケーションデータをリストアすることもできる。以前のバックアップソフトウェアは、メタデータストレージロケーションの参照を含む成功信号および新たなデータを無視し、代わりにリストアのためにメタデータとともに格納されているキーと値のペアに依存するため、古いバックアップとリストアソフトウェアで行われたリストアは成功する。
バックアップおよびリストアの方法は後方互換性があり、かつ移行すべきキーと値のペアの方法によって実行された以前のバックアップの移行(migration)を必要としない。本明細書で説明するバックアップ方法は、キーと値のペアを含むバックアップと互換性がある。さらに、記載されたバックアップ方法を使用するには、サードパーティアプリケーションファイルの完全な記録を確立するために、すべてのアプリケーションデータの最初の全バックアップが必要である。これらのファイルは、バックアップの必要性を判定するために、クライアントデバイス上に存在するサードパーティアプリケーションデータとの比較に使用される。バックアップ方法へのアクセスを受信すると、サードパーティアプリケーション202a、202b、202cの完全な初期バックアップによって、以前のキーと値のペアのバックアップファイルの必要性が除去される。いくつかの実施形態では、以前にバックアップされたサードパーティアプリケーションデータを含むキーと値のペアも、全データバックアップの一部としてバックアップされる。
デバイスが廃止される(decommissioned)と、以前にデバイスに格納されたサードパーティアプリケーションデータが新たなデバイスにリストアされる。しかしながら、廃止されたデバイスは、サードパーティアプリケーションデータがクラウドに格納されているが、もはやユーザーまたは機能するクライアントデバイス201に接続されていない「孤立したデータセット」の存在につながる可能性がある。これらの孤立したデータセットを除去する方法が行われてもよい。孤立したデータセットは、一定期間後に期限切れになるように設定されてもよい。あるいは、ユーザーが、デバイス上のユーザーインタフェースまたはクライアントデバイス201に関連付けられたユーザーアカウントを介して、デバイスが廃止されたか、または非アクティブになることを通知してもよい。
新たなバックアップおよびリストア方法のフェーズイン時には、クライアントデバイス201用のサードパーティアプリケーションデータが完全にバックアップされるため、クラウドストレージへの圧倒的な量のデータフローが生じる可能性がある。このバックアップ機能の最初の展開(roll−out)中に、クライアントとサーバー側の両方のメカニズムによりアップロードフローを制御することができる。たとえば、アップロード機能およびリストア機能へのユーザーアクセスは、デバイスに基づいて制限されてもよい。クライアントデバイスは、特定のクライアントデバイスまたはクライアントデバイスモデル上の機能を設定または無効にするように構成することができる。代替的に、機能をクライアントデバイスのある割合のユーザーにのみ展開して、追加の割合のユーザーにその機能を展開する前に、これらのユーザーに対してサードパーティアプリケーションデータの初期アップロード時間を与えるようにすることもできる。さらに、アップロード機能とリストア機能の対象となるサードパーティのアプリケーションが経時的に増加しつつ、アップロードおよびリストア機能へのアクセスがサードパーティアプリケーションに基づいて制限されるようにしてもよい。2つのモードを切り替えることによってデータフローを制御するためにバックアップ期間の構成を変更することもできる。第1のモードによれば、アップロードプロセスは、サードパーティアプリケーションデータに十分な量の変更がある場合に開始されてもよい。第2のモードによれば、アップロードプロセスは、例えばN日毎に1回など所定のスケジュールに基づいて開始されてもよい。
サーバー側では、フラグや機能スイッチなどのサーバー上の調整レバー(throttling levers)の実装によってデータフローを制御することができる。フラグまたは機能スイッチは、アップロードサーバーおよびバックアップサーバーによって読み取り可能である。設定されたサーバーの上限を超えると、フラグは調整による失敗を示すカスタムエラーコードを返す。このカスタムエラーコードには、別の試行が行われる前に待機することを推奨する期間を示すフィールドも含まれている。アップロードコール全体を無効にする緊急時のダウンストリームサービスを保護するために、追加のフラグを組み込むこともできる。
図5は、サードパーティアプリケーションデータをクラウドストレージに格納するための方法500を示すフローチャートを示す。方法500は、サードパーティアプリケーションに関連するデータをクラウドストレージサーバーにダウンロードすることを決定するステップ(ステップ502)と、サードパーティアプリケーションのバイナリデータを第1のクラウドストレージロケーションに格納するステップ(ステップ504)と、第1のクラウドストレージロケーションのストレージアドレスを含むようにメタデータを更新するステップ(ステップ506)と、更新されたメタデータを第1のクラウドストレージロケーションとは異なる第2のクラウドストレージロケーションに格納するステップ(ステップ508)とを含む。
ステップ502において、クライアントデバイスのバックアップフレームワーク(例えば、図2の208)は、クライアントデバイス上のサードパーティアプリケーションに関連するデータがクラウドストレージサーバーにダウンロードされるべきであることを決定する。サードパーティアプリケーションデータをクラウドストレージサーバーにダウンロードする要件は、スケジューリングされたダウンロード、データをアップロードするためのユーザー要求、またはサードパーティアプリケーションデータの変更に基づいて決定されてもよい。いくつかの実施形態において、サードパーティアプリケーションデータをダウンロードする要件は、チェックサム方法を使用してクラウドストレージサーバーに現在格納されているサードパーティアプリケーションデータと、クライアントデバイスに格納されたサードパーティアプリケーションデータとの比較によって決定されてもよい。クラウドストレージにダウンロードされるサードパーティアプリケーションデータには、バイナリデータとメタデータの両方が含まれる。
ステップ504において、バイナリデータは、第1のクラウドストレージロケーションに格納される。クラウドストレージロケーションは、関連するストレージアドレスを有する。サードパーティアプリケーションに関連するバイナリデータは、クライアントデバイスのバックアップトランスポート(例えば、図2の210)からデータタールボール(例えば、「.tar」アーカイブファイル)としてアップロードサーバーに送信される。バイナリデータは、大量のバイナリデータを格納するように設計された第1のクラウドストレージロケーションに格納される。
ステップ506において、サードパーティアプリケーションに関連するメタデータは、第1のクラウドストレージロケーションのストレージアドレスを含むように更新される。クラウドストレージサービス(例えば、図2の203)は、バイナリストレージアドレスをメタデータに付加する。したがって、バイナリデータは、サードパーティメタデータと関連付けることができ、かつ更新されたメタデータ内のクラウドストレージアドレスを使用して取得することができる。ストレージロケーションは、サードパーティアプリケーションのバイナリデータのファイルロケーションを指し示す数値ストリングであってもよい。いくつかの実施形態において、クラウドストレージサービスは、格納の前に、追加のディスクリプタおよび命令をメタデータに付加してもよい。
ステップ508において、更新されたメタデータは、第2のクラウドストレージロケーションに格納される。第2のクラウドストレージロケーションは、第1のクラウドストレージロケーションとは異なり、かつメタデータのストレージ用に最適化されている。成功信号は、バイナリデータおよびメタデータの格納に成功した後にアップロードサーバーに戻されてもよい。成功信号は、さらに、メタデータにアクセスするために使用されるメタデータのロケーションへの参照を含み得る。
図6は、サードパーティアプリケーションデータをクライアントデバイスにリストアするための方法600を示すフローチャートを示す。方法600は、クラウドストレージからクライアントデバイスにサードパーティアプリケーションに関連するデータを提供するかどうかを決定するステップ(ステップ602)と、メタデータを使用して第1のクラウドストレージロケーションのストレージアドレスを決定するステップ(ステップ604)と、バイナリデータを第1のストレージロケーションからクライアントデバイスに提供するステップ(ステップ606)とを含む。
ステップ602において、サードパーティアプリケーションに関連するデータをクライアントデバイスに提供するためにリストアが必要であるかどうかが決定される。リストアは、ユーザーからの要求または選択、またはサードパーティアプリケーションによる要求に応答的であってもよい。リストアは、またデバイス間の同期として実行されてもよい。サードパーティアプリケーションに関連するデータは、第1のクラウドロケーションに格納されたバイナリデータと、第2のクラウドストレージロケーションに格納されたストレージアドレスおよびメタデータの両方を含む。クライアントデバイスのバックアップトランスポート(例えば、図2の210)は、クライアントデバイスに関連するデバイスIDと、サードパーティアプリケーションに関連するサードパーティアプリケーションIDとをバックアップサーバー(例えば、図2の218)に送信することによって、データダウンロードを開始する。
ステップ604は、サードパーティアプリケーションに関連する以前に格納されたメタデータを使用して、バイナリデータのストレージアドレスを決定することを含む。バックアップサーバーは、デバイスIDおよびサードパーティアプリケーションIDを含む識別情報を受信した後、サードパーティアプリケーションデータの最後の成功したバックアップの成功信号をクライアントデバイスに送信する。成功信号は、メタデータストレージロケーションへの参照を含む。次に、サードパーティアプリケーションデータの以前のバックアップ中にメタデータに付加されたバイナリストレージロケーション参照を得るために、メタデータをメタデータストレージから取得することができる。
ステップ606で、取得されたバイナリデータストレージロケーションアドレスを使用して、サードパーティアプリケーションに関連するバイナリデータを見つけだして要求する。バイナリデータおよびメタデータは、ダウンロードサーバーによってバックアップトランスポートを介してクライアントデバイスに送信される。バイナリデータおよびメタデータは、クライアントデバイス上のストレージに配信される。
本開示の様々な実施形態が本明細書に示され説明されたが、そのような実施形態は単なる例示として提供されることは当業者には明らかであろう。本開示から逸脱することなく、当業者には数多くの変形、変更、および置換が可能である。本明細書に記載された開示の実施形態に対する様々な代替が、本開示を実施する際に採用され得ることを理解されたい。
A1. サードパーティアプリケーションデータをクラウドストレージにアップロードするための方法であって、その方法は、
クライアントデバイスからサードパーティアプリケーションに関連するデータをアップロードするかどうかを決定するステップであって、前記サードパーティアプリケーションに関連するデータがバイナリデータおよびメタデータを含む、ステップと、
前記サードパーティアプリケーションのバイナリデータと前記サードパーティアプリケーションのメタデータとをクラウドストレージに送信するステップと
を含み、
前記バイナリデータは、ストレージアドレスを有する第1のクラウドストレージロケーションに格納され、
更新されたメタデータを取得するために前記メタデータには前記ストレージアドレスが付加され、
更新されたメタデータは、前記第1のクラウドストレージロケーションとは異なる第2のクラウドストレージロケーションに格納される、方法。
A2. 前記サードパーティアプリケーションのバイナリデータは、前記サードパーティアプリケーションについての全データを含む、実施形態A1に記載の方法。
A3. 前記サードパーティアプリケーションに関連するデータをアップロードするかどうかを決定するステップは、
前記クライアントデバイスに格納された前記サードパーティアプリケーションに関連する格納されたバイナリデータを識別するステップと、
前記サードパーティアプリケーションに関連する以前にアップロードされたバイナリデータを識別するステップと、
前記格納されたバイナリデータと前記以前にアップロードされたバイナリデータとの間の差を計算するステップと、
前記差を閾値と比較するステップとを含む、実施形態A1またはA2に記載の方法。
A4. 前記差が前記閾値以上である場合、前記クライアントデバイスは、前記サードパーティアプリケーションに関連するデータをアップロードすることを決定する、実施形態A3に記載の方法。
A5. 前記クライアントデバイスは、複数のサードパーティアプリケーションに関連するデータを格納し、前記複数のサードパーティアプリケーションにおける各サードパーティアプリケーションは、対応するバイナリデータおよび対応するメタデータに関連付けられ、各サードパーティアプリケーションについての前記対応するバイナリデータおよび前記対応するメタデータは、1回のアップロードで前記クライアントデバイスからアップロードされる、実施形態A1乃至A4のいずれか1つに記載の方法。
A6. 前記サードパーティアプリケーションに関連するデータは、送信前に前記クライアントデバイス上で完全には複製されない、実施形態A1乃至A5のいずれか1つに記載の方法。
A7. 前記クライアントデバイスは、所定のアップロードスケジュールに基づいて前記サードパーティアプリケーションに関連するデータをアップロードすることを決定する、実施形態A1乃至6のいずれか1つに記載の方法。
A8. 前記クライアントデバイスは、前記サードパーティアプリケーションによって報告される前記サードパーティアプリケーションへの変更の検出に基づいて前記サードパーティアプリケーションに関連するデータをアップロードすることを決定する、実施形態A1乃至7のいずれか1つに記載の方法。
A9. 前記クライアントデバイスは、前記クライアントデバイスのユーザーからバックアップ要求を受信したときに、前記サードパーティアプリケーションに関連するデータをアップロードすることを決定する、請求項1乃至8のいずれか1つに記載の方法。
A10. 前記バイナリデータおよび前記メタデータを送信するステップは、
前記サードパーティアプリケーションのバイナリデータおよびメタデータを単一のファイルに集約するステップと、
前記ファイルを前記クラウドストレージ内のアップロードサーバーに送信するステップと
を含み、前記アップロードサーバーは、
前記バイナリデータを前記メタデータから分離し、
前記第1のクラウドストレージロケーションに格納するために前記バイナリデータを送信し、
更新されたメタデータを取得するために前記第1のクラウドストレージロケーションの前記ストレージアドレスを前記メタデータに付加し、
前記第2のクラウドストレージロケーションに格納するために前記更新されたメタデータを送信する
ように構成されている、実施形態A1乃至A9のいずれか1つに記載の方法。
A11. 前記単一のファイルは、「.tar」ファイルタイプを有する、実施形態A10に記載の方法。
A12. 前記サードパーティアプリケーションに関連するデータは、アプリケーションデータ、ユーザープリファレンス、およびアプリケーションコンテンツを含む、実施形態A1乃至A11のいずれか1つに記載の方法。
A13. 前記第2のクラウドストレージロケーションへの参照を前記クライアントデバイスにおいて受信するステップをさらに含む、実施形態A1乃至A12のいずれか1つに記載の方法。
A14. 前記バイナリデータが前記第1のクラウドストレージロケーションに格納されると、以前にアップロードされた前記サードパーティアプリケーションのバイナリデータが上書きされ、前記更新されたメタデータが前記第2のクラウドストレージロケーションに格納されると、以前にアップロードされた前記サードパーティアプリケーションのメタデータが上書きされる、実施形態A1乃至A13のいずれか1つに記載の方法。
A15. 送信された前記バイナリデータおよび前記メタデータは、前記クラウドストレージへのアクセスを有するユーザーインタフェースを介してユーザーがアクセス可能である、実施形態A1乃至A14のいずれか1つに記載の方法。
A16. 前記クライアントデバイスは第1のクライアントデバイスであり、前記バイナリデータおよび前記更新されたメタデータは第2のクライアントデバイスにダウンロードされて、前記第1のクライアントデバイス上の前記サードパーティアプリケーションデータが第2のデバイス上のサードパーティアプリケーションデータと同期化される、実施形態A1乃至A15のいずれか1つに記載の方法。
A17. 前記バイナリデータおよび前記メタデータは、前記クラウドストレージ内のアップロードサーバーに送信され、前記アップロードサーバーは、前記バイナリデータを前記第1のクラウドストレージロケーションに書き込み、前記更新されたメタデータを書き込みのために前記第2のクラウドストレージロケーションに送信する、実施形態A1乃至A16のいずれか1つに記載の方法。
A18. 前記アップロードサーバーは、前記第2のクラウドストレージロケーションから前記更新されたメタデータを読み出して前記第2のクラウドストレージロケーションに書き込むように構成されているクラウドストレージサービスに前記更新されたメタデータを送信する、実施形態A17に記載の方法。
A19. 前記バイナリデータの送信はキーと値のペアを使用しない、実施形態A1乃至A18のいずれか1つに記載の方法。
A20. 前記サードパーティアプリケーションに関連するデータを全データバックアッププロセスまたは部分データバックアッププロセスを使用して送信することが前記サードパーティアプリケーションに関連付けられたマニフェストに示されているかどうかを判定するステップと、
部分データバックアッププロセスが使用されると決定した場合には、前記バイナリデータのいずれも前記クラウドストレージに送信することなく前記クラウドストレージに前記メタデータの一部を送信するステップと
をさらに含む、実施形態A1乃至A19のいずれか1つに記載の方法。
A21. 前記クラウドストレージへの前記メタデータの一部の送信は、キーと値のペアを使用することを含む、実施形態A20に記載の方法。
A22. 実施形態A1乃至A21のいずれか1つに記載の方法を実行するためのシステム。
B1. サードパーティアプリケーションデータをクラウドストレージに格納するための方法であって、
クライアントデバイスに格納されたサードパーティアプリケーションに関連するデータをクラウドストレージサーバーにダウンロードすることを決定するステップであって、前記サードパーティアプリケーションに関連するデータがバイナリデータおよびメタデータを含む、ステップと、
ストレージアドレスを有する第1のクラウドストレージロケーションに前記サードパーティアプリケーションのバイナリデータを格納するステップであって、前記メタデータは、前記ストレージアドレスを含むように更新される、ステップと、
更新された前記メタデータを前記第1のクラウドストレージロケーションとは異なる第2のクラウドストレージロケーションに格納するステップと
を含む方法。
B2. 前記サードパーティアプリケーションのバイナリデータは、前記サードパーティアプリケーションについての全データを含む、実施形態B1に記載の方法。
B3. 前記クライアントデバイスは、前記データをアップロードするかどうかを
前記クライアントデバイスに格納された前記サードパーティアプリケーションに関連する格納されたバイナリデータを識別することと、
前記サードパーティアプリケーションに関連する以前にアップロードされたバイナリデータを識別することと、
前記格納されたバイナリデータと前記以前にアップロードされたバイナリデータとの間の差を計算することと、
前記差を閾値と比較することと
によって決定する、実施形態B1またはB2に記載の方法。
B4. 前記差が前記閾値以上である場合、前記クライアントデバイスは、前記サードパーティアプリケーションに関連するデータをアップロードすることを決定する、実施形態B3に記載の方法。
B5. 前記クライアントデバイスは、複数のサードパーティアプリケーションに関連するデータを格納し、前記複数のサードパーティアプリケーションにおける各サードパーティアプリケーションは、対応するバイナリデータおよび対応するメタデータに関連付けられ、各サードパーティアプリケーションについての前記対応するバイナリデータおよび前記対応するメタデータは、1回のアップロードで前記クライアントデバイスからアップロードされる、実施形態B1乃至B4のいずれか1つに記載の方法。
B6. 前記サードパーティアプリケーションに関連するデータは、前記データのダウンロード前に前記クライアントデバイス上で完全には複製されない、実施形態B1乃至B5のいずれか1つに記載の方法。
B7. 前記クライアントデバイスは、所定のアップロードスケジュールに基づいて前記サードパーティアプリケーションに関連するデータをアップロードすることを決定する、実施形態B1乃至B6のいずれか1つに記載の方法。
B8. 前記クライアントデバイスは、前記サードパーティアプリケーションによって報告される前記サードパーティアプリケーションへの変更の検出に基づいて前記サードパーティアプリケーションに関連するデータをアップロードすることを決定する、実施形態B1乃至B7のいずれか1つに記載の方法。
B9. 前記クライアントデバイスは、前記クライアントデバイスのユーザーからバックアップ要求を受信したときに、前記サードパーティアプリケーションに関連するデータをアップロードすることを決定する、実施形態B1乃至B8のいずれか1つに記載の方法。
B10. 前記クライアントデバイスは、
前記サードパーティアプリケーションのバイナリデータおよびメタデータを単一のファイルに集約し、
前記ファイルを前記クラウドストレージ内のアップロードサーバーに送信する
ように構成され、前記アップロードサーバーは、
前記バイナリデータを前記メタデータから分離し、
前記第1のクラウドストレージロケーションに格納するために前記バイナリデータを送信し、
更新されたメタデータを取得するために前記第1のクラウドストレージロケーションの前記ストレージアドレスを前記メタデータに付加し、
前記第2のクラウドストレージロケーションに格納するために前記更新されたメタデータを送信する
ように構成されている、実施形態B1乃至B9のいずれか1つに記載の方法。
B11. 前記単一のファイルは、「.tar」ファイルタイプを有する、実施形態B10に記載の方法。
B12. 前記サードパーティアプリケーションに関連するデータは、アプリケーションデータ、ユーザープリファレンス、およびアプリケーションコンテンツを含む、実施形態B1乃至B11のいずれか1つに記載の方法。
B13. 前記第2のクラウドストレージロケーションへの参照を前記クライアントデバイスに送信するステップをさらに含む、実施形態B1乃至B12のいずれか1つに記載の方法。
B14. 前記バイナリデータが前記第1のクラウドストレージロケーションに格納されると、以前にアップロードされた前記サードパーティアプリケーションのバイナリデータが上書きされ、前記更新されたメタデータが前記第2のクラウドストレージロケーションに格納されると、以前にアップロードされた前記サードパーティアプリケーションのメタデータが上書きされる、実施形態B1乃至B13のいずれか1つに記載の方法。
B15. 送信された前記バイナリデータおよび前記メタデータは、前記クラウドストレージへのアクセスを有するユーザーインタフェースを介してユーザーがアクセス可能である、実施形態B1乃至B14のいずれか1つに記載の方法。
B16. 前記クライアントデバイスは第1のクライアントデバイスであり、前記方法は、前記バイナリデータおよび前記更新されたメタデータを第2のクライアントデバイスに送信するステップをさらに含み、前記第1のクライアントデバイス上の前記サードパーティアプリケーションデータが第2のデバイス上のサードパーティアプリケーションデータと同期化される、実施形態B1乃至B15のいずれか1つに記載の方法。
B17. 前記バイナリデータおよび前記メタデータは、前記クラウドストレージ内のアップロードサーバーに送信され、前記アップロードサーバーは、前記バイナリデータを前記第1のクラウドストレージロケーションに書き込み、前記更新されたメタデータを書き込みのために前記第2のクラウドストレージロケーションに送信する、実施形態B1乃至B16のいずれか1つに記載の方法。
B18. 前記アップロードサーバーは、前記第2のクラウドストレージロケーションから前記更新されたメタデータを読み出して前記第2のクラウドストレージロケーションに書き込むように構成されているクラウドストレージサービスに前記更新されたメタデータを送信する、実施形態B17に記載の方法。
B19. 前記バイナリデータの格納はキーと値のペアを使用しない、実施形態B1乃至B18のいずれか1つに記載の方法。
B20. 前記クライアントデバイスは、
前記サードパーティアプリケーションに関連するデータを全データバックアッププロセスまたは部分データバックアッププロセスを使用して送信することが前記サードパーティアプリケーションに関連付けられたマニフェストに示されているかどうかを判定し、
部分データバックアッププロセスが使用されると決定した場合には、前記バイナリデータのいずれも前記クラウドストレージに送信することなく前記クラウドストレージに前記メタデータの一部を送信する
ように構成されている、実施形態B1乃至B19のいずれか1つに記載の方法。
B21. 前記メタデータの一部は、キーと値のペアを使用して前記クラウドストレージに送信される、実施形態B20に記載の方法。
B22. 実施形態B1乃至B21のいずれか1つに記載の方法を実行するためのシステム。
C1. サードパーティアプリケーションデータをクライアントデバイスにリストアするための方法であって、
サードパーティアプリケーションに関連するデータを前記クライアントデバイスにダウンロードするかどうかを決定するステップであって、前記サードパーティアプリケーションに関連するデータは、ストレージアドレスを有する第1のクラウドストレージロケーションに格納されたバイナリデータと、第2のクラウドストレージロケーションに格納されたメタデータとを含む、ステップと、
前記メタデータを使用して前記第1のクラウドストレージロケーションの前記ストレージアドレスを決定するステップと、
前記第1のクラウドストレージロケーションから前記クライアントデバイスに前記バイナリデータをダウンロードするステップとを含む方法。
C2. 前記サードパーティアプリケーションのバイナリデータは、前記サードパーティアプリケーションについての全データを含む、実施形態C1に記載の方法。
C3. 前記クライアントデバイスは、複数のサードパーティアプリケーションに関連するデータを格納し、前記複数のサードパーティアプリケーションにおける各サードパーティアプリケーションは、対応するバイナリデータおよび対応するメタデータに関連付けられ、各サードパーティアプリケーションについての前記対応するバイナリデータは、1回のダウンロードで前記クライアントデバイスにダウンロードされる、実施形態C1またはC2に記載の方法。
C4. 前記クライアントデバイスは、前記クライアントデバイスのユーザーからリストア要求を受信したときに、前記サードパーティアプリケーションに関連するデータをダウンロードすることを決定する、実施形態C1乃至C3のいずれか1つに記載の方法。
C5. 前記サードパーティアプリケーションに関連するデータは、アプリケーションデータ、ユーザープリファレンス、およびアプリケーションコンテンツを含む、実施形態C1乃至C4のいずれか1つに記載の方法。
C6. 前記クライアントデバイスは第1のクライアントデバイスであり、前記バイナリデータおよび更新されたメタデータは第2のクライアントデバイスにダウンロードされて、前記第1のクライアントデバイス上の前記サードパーティアプリケーションデータが第2のデバイス上のサードパーティアプリケーションデータと同期化される、実施形態C1乃至C5のいずれか1つに記載の方法。
C7. 前記バイナリデータおよび前記メタデータは、クラウドストレージ内のダウンロードサーバーに送信され、前記ダウンロードサーバーは、前記第1のクラウドストレージロケーションに前記バイナリデータを以前に書き込んでおり、かつ前記第2のクラウドストレージロケーションに書き込むために前記メタデータを以前に送信している、実施形態C1乃至C6のいずれか1つに記載の方法。
C8. 前記ダウンロードサーバーは、前記第2のクラウドストレージロケーションから更新されたメタデータを読み出して前記第2のクラウドストレージロケーションに書き込むように構成されているクラウドストレージサービスに前記メタデータを以前に送信している、実施形態C7に記載の方法。
C9. 別のサードパーティアプリケーションに関連するデータは、第3のクラウドストレージロケーションに格納されたメタデータを含み、かつバイナリデータを含まない、実施形態C1乃至C8のいずれか1つに記載の方法。
C10. 前記別のサードパーティアプリケーションに関連するデータを前記クライアントデバイスにダウンロードするかどうかを決定するステップと、
前記別のサードパーティアプリケーションに関連する前記メタデータを、前記第3のクラウドストレージロケーションに格納された一組のキーと値のペアとして識別するステップと、
前記一組のキーと値のペアを前記クライアントデバイスにダウンロードするステップとをさらに含む実施形態C9に記載の方法。
C11. 実施形態C1乃至C10のいずれか1つに記載の方法を実行するためのシステム。

Claims (17)

  1. モバイルデバイスデータをクラウドストレージに格納するための方法であって、その方法は、
    ユーザーの第1のモバイルデバイスが、前記第1のモバイルデバイスに関連するデータを前記クラウドストレージにバックアップするための所定のコンディションを検出すること、
    前記所定のコンディションを検出することに応答して、前記第1のモバイルデバイスによりホストされた複数のサードパーティアプリケーションについて複数の単一のファイルを生成するための動作を自動的に実施すること
    を含み、前記第1のモバイルデバイスによりホストされた前記複数のサードパーティアプリケーションの各サードパーティアプリケーションについて実施される動作のセットは、
    前記第1のモバイルデバイス上に格納されたそれぞれのサードパーティアプリケーションに関連するデータを前記第1のモバイルデバイスが識別することであって、前記それぞれのサードパーティアプリケーションに関連するデータがバイナリデータおよびメタデータを含み、前記バイナリデータは、前記それぞれのサードパーティアプリケーションの設定、前記それぞれのサードパーティアプリケーションの履歴、および前記それぞれのサードパーティアプリケーションのコンテンツを含み、前記バイナリデータは、前記それぞれのサードパーティアプリケーションのメタデータと分離されており、かつ異なる形式を有している、前記識別すること
    前記第1のモバイルデバイスが、前記それぞれのサードパーティアプリケーションのバイナリデータおよびメタデータを、前記それぞれのサードパーティアプリケーションの単一のファイルに集約すること、
    前記それぞれのサードパーティアプリケーションの単一のファイルを前記クラウドストレージ内のアップロードサーバーにバックアップすることであって、前記それぞれのサードパーティアプリケーションの前記バイナリデータは、前記それぞれのサードパーティアプリケーションのメタデータから分離され、前記クラウドストレージの第1のクラウドストレージロケーションに格納されることになっており、前記それぞれのサードパーティアプリケーションの前記メタデータは、前記第1のクラウドストレージロケーションの付加された別個のストレージアドレスで更新され、前記クラウドストレージの第2のクラウドストレージロケーションに格納されることになっている、前記バックアップすること
    を含み、
    前記複数のサードパーティアプリケーションの複数の単一のファイルは、前記複数のサードパーティアプリケーションの各サードパーティアプリケーションのバイナリデータおよびメタデータを前記ユーザーの第2のモバイルデバイスに後でリストアするために、前記クラウドストレージに格納されている、方法。
  2. 前記それぞれのサードパーティアプリケーションのバイナリデータは、前記それぞれのサードパーティアプリケーションについての全データを含む、請求項1に記載の方法。
  3. 前記第1のモバイルデバイスは、前記それぞれのサードパーティアプリケーションに関連するデータをバックアップするかどうかを、
    前記第1のモバイルデバイスに格納された前記それぞれのサードパーティアプリケーションに関連する格納されたバイナリデータを識別すること
    前記それぞれのサードパーティアプリケーションに関連する以前にバックアップされたバイナリデータを識別すること
    前記格納されたバイナリデータと前記以前にバックアップされたバイナリデータとの間の差を計算すること
    前記差を閾値と比較すること
    により判定する、請求項1または2に記載の方法。
  4. 前記差が前記閾値以上である場合、前記第1のモバイルデバイスは、前記それぞれのサードパーティアプリケーションに関連するデータをバックアップすることを決定する、請求項3に記載の方法。
  5. 前記第1のモバイルデバイスは、複数のサードパーティアプリケーションに関連するデータを格納し、前記複数のサードパーティアプリケーションにおける各サードパーティアプリケーションは、対応するバイナリデータおよび対応するメタデータに関連付けられ、各サードパーティアプリケーションについての前記対応するバイナリデータおよび前記対応するメタデータは、1回のアップロードで前記第1のモバイルデバイスからバックアップされる、請求項1乃至4のいずれか1項に記載の方法。
  6. 前記それぞれのサードパーティアプリケーションに関連するデータは、送信前に前記第1のモバイルデバイス上で完全には複製されずに、直接ストリームされる、請求項1乃至5のいずれか1項に記載の方法。
  7. 前記所定のコンディションは、所定のアップロードスケジュールを含む、請求項1乃至6のいずれか1項に記載の方法。
  8. 前記所定のコンディションは、前記それぞれのサードパーティアプリケーションによって報告される前記それぞれのサードパーティアプリケーションのデータへの変更の検出を含む、請求項1乃至7のいずれか1項に記載の方法。
  9. 前記所定のコンディションは、前記第1のモバイルデバイスが前記第1のモバイルデバイスのユーザーからバックアップ要求を受信することを含む、請求項1乃至8のいずれか1項に記載の方法。
  10. 前記単一のファイルは、「.tar」ファイルタイプを有する、請求項に記載の方法。
  11. 前記サードパーティアプリケーションに関連するデータは、アプリケーションデータ、ユーザープリファレンス、およびアプリケーションコンテンツを含む、請求項1乃至10のいずれか1項に記載の方法。
  12. 前記第2のクラウドストレージロケーションへの参照を前記第1のモバイルデバイスにおいて受信することをさらに含む、請求項1乃至11のいずれか1項に記載の方法。
  13. バックアップされた前記バイナリデータおよび前記メタデータは、前記クラウドストレージへのアクセスを有するユーザーインタフェースを介してユーザーがアクセス可能である、請求項1乃至12のいずれか1項に記載の方法。
  14. 前記バイナリデータおよび前記更新されたメタデータが前記第2のモバイルデバイスにダウンロードされることにより、前記第1のモバイルデバイス上の前記サードパーティアプリケーションデータが第2のモバイルデバイス上のサードパーティアプリケーションデータと同期化される、請求項1乃至13のいずれか1項に記載の方法。
  15. 前記バイナリデータおよび前記メタデータは、前記クラウドストレージ内のアップロードサーバーに送信され、前記アップロードサーバーは、前記バイナリデータを前記第1のクラウドストレージロケーションに書き込み、前記更新されたメタデータを書き込みのために前記第2のクラウドストレージロケーションに送信する、請求項1乃至14のいずれか1項に記載の方法。
  16. 前記アップロードサーバーは、前記第2のクラウドストレージロケーションから前記更新されたメタデータを読み出して前記第2のクラウドストレージロケーションに書き込むように構成されているクラウドストレージサービスに前記更新されたメタデータを送信する、請求項15に記載の方法。
  17. 請求項1乃至16のいずれか1項に記載の方法を実行するためのシステム。
JP2017551132A 2015-05-27 2016-05-17 モバイルデバイス上の自動的なクラウドベースの全データバックアップおよびリストアのためのシステムおよび方法 Active JP6571202B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562167148P 2015-05-27 2015-05-27
US62/167,148 2015-05-27
PCT/US2016/032878 WO2016191152A1 (en) 2015-05-27 2016-05-17 System and method for automatic cloud-based full-data backup and restore on mobile devices

Publications (3)

Publication Number Publication Date
JP2018511884A JP2018511884A (ja) 2018-04-26
JP2018511884A5 JP2018511884A5 (ja) 2018-06-21
JP6571202B2 true JP6571202B2 (ja) 2019-09-04

Family

ID=56097301

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017551132A Active JP6571202B2 (ja) 2015-05-27 2016-05-17 モバイルデバイス上の自動的なクラウドベースの全データバックアップおよびリストアのためのシステムおよび方法

Country Status (8)

Country Link
US (3) US10455015B2 (ja)
EP (2) EP4040297A1 (ja)
JP (1) JP6571202B2 (ja)
KR (1) KR102057527B1 (ja)
CN (2) CN114356651A (ja)
DE (2) DE202016107158U1 (ja)
GB (1) GB2554555A (ja)
WO (1) WO2016191152A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2377706A1 (en) * 1999-06-18 2000-12-28 Echarge Corporation Method and apparatus for ordering goods, services and content over an internetwork using a virtual payment account
WO2013166518A1 (en) * 2012-05-04 2013-11-07 Institutional Cash Distributors Technology, Llc Secure transaction object creation, propagation and invocation
US11334884B2 (en) * 2012-05-04 2022-05-17 Institutional Cash Distributors Technology, Llc Encapsulated security tokens for electronic transactions
US10423952B2 (en) * 2013-05-06 2019-09-24 Institutional Cash Distributors Technology, Llc Encapsulated security tokens for electronic transactions
US9722852B2 (en) * 2013-05-24 2017-08-01 Cisco Technology, Inc. On-demand encapsulating of timed metadata in a network environment
US11030176B2 (en) * 2016-07-01 2021-06-08 Ebay Inc. Distributed storage of metadata for large binary data
US10432737B2 (en) 2017-10-12 2019-10-01 Engine Media, Llc Geopartitioned data caching
US10063632B1 (en) * 2017-12-22 2018-08-28 Engine Media, Llc Low-latency high-throughput scalable data caching
CN110674084A (zh) * 2018-06-15 2020-01-10 伊姆西Ip控股有限责任公司 用于数据保护的方法、设备和计算机可读存储介质
CN109815207A (zh) * 2018-12-28 2019-05-28 深圳市安云信息科技有限公司 数据存储方法和客户端代理
US11245761B2 (en) 2018-12-28 2022-02-08 Alibaba Group Holding Limited Method, apparatus, and computer-readable storage medium for network optimization of cloud storage service
AU2020264946B2 (en) * 2019-04-30 2022-11-17 Clumio, Inc. Deduplication in a cloud-based data protection service
CN113315800A (zh) * 2020-02-27 2021-08-27 华为技术有限公司 镜像存储、下载方法、设备以及系统
US11899544B2 (en) * 2020-05-19 2024-02-13 EMC IP Holding Company LLC Efficient synchronization of cloud enabled file system database during snapshot restore operation
KR102375511B1 (ko) * 2020-07-24 2022-03-17 주식회사 한글과컴퓨터 복수의 문서 저장소들과 연동하여 클라이언트 단말로부터 수신된 문서 파일의 저장 처리를 수행하는 문서 저장 관리 서버 및 그 동작 방법
US20230146076A1 (en) * 2021-11-08 2023-05-11 Rubrik, Inc. Backing file system with cloud object store
WO2024101939A1 (ko) * 2022-11-10 2024-05-16 주식회사 플라잉닥터 병원 고객 관계 관리 제공 시스템 및 방법
CN116501552B (zh) * 2023-06-21 2023-09-08 苏州浪潮智能科技有限公司 数据备份的方法、装置、系统及存储介质

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020156921A1 (en) 2001-04-19 2002-10-24 International Business Machines Corporation Automatic backup of wireless mobile device data onto gateway server while device is idle
JP2003280825A (ja) * 2002-03-22 2003-10-02 Fujitsu Ltd ストレージシステム
JP2004021424A (ja) * 2002-06-13 2004-01-22 Toshiba Corp 車載器データのバックアップシステムおよびその方法
US7584225B2 (en) 2003-11-10 2009-09-01 Yahoo! Inc. Backup and restore mirror database memory items in the historical record backup associated with the client application in a mobile device connected to a communion network
US8229897B2 (en) * 2006-02-03 2012-07-24 International Business Machines Corporation Restoring a file to its proper storage tier in an information lifecycle management environment
US8311988B2 (en) 2006-08-04 2012-11-13 Apple Inc. Consistent back up of electronic information
US7860839B2 (en) 2006-08-04 2010-12-28 Apple Inc. Application-based backup-restore of electronic information
US20080243878A1 (en) * 2007-03-29 2008-10-02 Symantec Corporation Removal
US8489830B2 (en) * 2007-03-30 2013-07-16 Symantec Corporation Implementing read/write, multi-versioned file system on top of backup data
US8099392B2 (en) 2007-06-08 2012-01-17 Apple Inc. Electronic backup of applications
US8781528B2 (en) 2007-12-31 2014-07-15 The Invention Science Fund I, Llc Automatic mobile device backup
US8250102B2 (en) 2008-03-14 2012-08-21 Microsoft Corporation Remote storage and management of binary object data
US8583602B2 (en) 2008-06-05 2013-11-12 Palm, Inc. Restoring of data to mobile computing device
US20110016089A1 (en) 2009-07-16 2011-01-20 Apple Inc. Restoring data to a mobile device
US8694469B2 (en) 2009-12-28 2014-04-08 Riverbed Technology, Inc. Cloud synthetic backups
US8694744B1 (en) 2010-03-31 2014-04-08 Emc Corporation Mobile device snapshot backup
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
US9386098B2 (en) 2010-06-11 2016-07-05 Fidelithon Systems, Llc Smartphone management system and method
US8291170B1 (en) 2010-08-19 2012-10-16 Symantec Corporation System and method for event driven backup data storage
US8682873B2 (en) * 2010-12-01 2014-03-25 International Business Machines Corporation Efficient construction of synthetic backups within deduplication storage system
KR20120069400A (ko) 2010-12-20 2012-06-28 주식회사 케이티 모바일 플랫폼에서의 어플리케이션 보관 방법
WO2012166102A1 (en) * 2011-05-27 2012-12-06 Empire Technology Development Llc Seamless application backup and recovery using metadata
US20120310984A1 (en) * 2011-06-01 2012-12-06 International Business Machines Corporation Data security for a database in a multi-nodal environment
US8868859B2 (en) * 2011-06-03 2014-10-21 Apple Inc. Methods and apparatus for multi-source restore
US9411687B2 (en) 2011-06-03 2016-08-09 Apple Inc. Methods and apparatus for interface in multi-phase restore
US8868882B2 (en) 2011-06-08 2014-10-21 Microsoft Corporation Storage architecture for backup application
JP5686712B2 (ja) * 2011-06-30 2015-03-18 株式会社Nttドコモ バックアップデータ生成装置、オンライン記憶装置、メタデータ管理装置、バックアップシステム及びバックアップ方法
US8751457B2 (en) 2012-01-01 2014-06-10 Bank Of America Corporation Mobile device data archiving
US8782441B1 (en) 2012-03-16 2014-07-15 Google Inc. Methods and systems for storage of large data objects
US9542466B2 (en) * 2012-05-10 2017-01-10 Aetherstore Inc. Systems and methods for distributed storage
US20130311597A1 (en) 2012-05-16 2013-11-21 Apple Inc. Locally backed cloud-based storage
US20140006551A1 (en) 2012-07-02 2014-01-02 Nti Corporation System and method for backing up data
US9106721B2 (en) 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US9776078B2 (en) 2012-10-02 2017-10-03 Razer (Asia-Pacific) Pte. Ltd. Application state backup and restoration across multiple devices
US20160088077A1 (en) * 2014-09-18 2016-03-24 Microsoft Corporation Seamless binary object and metadata sync
US9678687B2 (en) 2015-09-25 2017-06-13 Mcafee, Inc. User mode heap swapping
US10205651B2 (en) 2016-05-13 2019-02-12 128 Technology, Inc. Apparatus and method of selecting next hops for a session

Also Published As

Publication number Publication date
US20160352827A1 (en) 2016-12-01
CN107667351B (zh) 2021-12-21
US20200053151A1 (en) 2020-02-13
US11245758B2 (en) 2022-02-08
JP2018511884A (ja) 2018-04-26
EP3304310B1 (en) 2022-02-23
DE112016002365T5 (de) 2018-02-15
EP4040297A1 (en) 2022-08-10
US11178224B2 (en) 2021-11-16
DE202016107158U1 (de) 2017-01-24
KR20170130448A (ko) 2017-11-28
GB201715233D0 (en) 2017-11-08
CN107667351A (zh) 2018-02-06
GB2554555A (en) 2018-04-04
US10455015B2 (en) 2019-10-22
EP3304310A1 (en) 2018-04-11
US20200053152A1 (en) 2020-02-13
CN114356651A (zh) 2022-04-15
WO2016191152A1 (en) 2016-12-01
KR102057527B1 (ko) 2020-01-22

Similar Documents

Publication Publication Date Title
JP6571202B2 (ja) モバイルデバイス上の自動的なクラウドベースの全データバックアップおよびリストアのためのシステムおよび方法
US10911518B2 (en) Network folder synchronization
US9436556B2 (en) Customizable storage system for virtual databases
US10067952B2 (en) Retrieving point-in-time copies of a source database for creating virtual databases
US9852150B2 (en) Avoiding client timeouts in a distributed filesystem
US11354065B2 (en) Cloud edition and retrieve
US11449391B2 (en) Network folder resynchronization
US20200272492A1 (en) Deploying a cloud instance of a user virtual machine
JP5868986B2 (ja) アイテム単位でのリカバリー
US11853581B2 (en) Restoring a storage system using file relocation metadata
US20240187248A1 (en) Techniques for data retrieval using cryptographic signatures
US10558450B2 (en) Mechanism for customizing multiple computing devices
US9921918B1 (en) Cloud-based data backup and management
US20200341856A1 (en) System and method for data retention in a decentralized system
CN113194121A (zh) 电子设备间的文件备份方法
WO2016098152A1 (ja) 情報システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181106

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190507

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190709

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190807

R150 Certificate of patent or registration of utility model

Ref document number: 6571202

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250