JP2014519655A - 多段階多ソースバックアップの方法と装置 - Google Patents

多段階多ソースバックアップの方法と装置 Download PDF

Info

Publication number
JP2014519655A
JP2014519655A JP2014513561A JP2014513561A JP2014519655A JP 2014519655 A JP2014519655 A JP 2014519655A JP 2014513561 A JP2014513561 A JP 2014513561A JP 2014513561 A JP2014513561 A JP 2014513561A JP 2014519655 A JP2014519655 A JP 2014519655A
Authority
JP
Japan
Prior art keywords
backup
resource
backup source
file
machine
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.)
Granted
Application number
JP2014513561A
Other languages
English (en)
Other versions
JP5728130B2 (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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of JP2014519655A publication Critical patent/JP2014519655A/ja
Application granted granted Critical
Publication of JP5728130B2 publication Critical patent/JP5728130B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/1469Backup restoration techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5683Storage of data provided by user terminals, i.e. reverse caching
    • 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

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)

Abstract

デバイス内のリソースの第1のバックアップソースへの変更を識別する方法および装置について記述する。第1のバックアップソースから、第2のバックアップソースに対する許可のためのトークンを受信するのに応じて、リソースの変更が、トークンを使って第2のバックアップソースへバックアップされてもよい。第2のバックアップソースへの変更のバックアップが成功すると、リソースの変更が、第1のバックアップソースへコミットされてもよい。

Description

[関連出願の相互参照]
本願は、2011年6月3日に出願され、「Methods and Apparatus for Multi−Phase Multi−Source Backup and Restore」と題された、Gordon J.Freedman他の、米国仮特許出願第61/493,360号の利益を請求するものであり、それを全体として参照により本願に援用する。
[技術分野]
本発明は、一般に、デバイスのバックアップに関する。より詳細には、本発明は、デバイスのためにファイルを複数の段階で複数のソースを用いてバックアップすることに関する。
移動デバイス、特に、セルラー電話、携帯情報端末(PDA)、タブレットデバイス等の移動通信デバイスの急増に伴って、バックアップおよび復元操作は、これらの移動デバイスの日常的な使用においてますます不可欠なものとなってきている。しかし、作業環境、モバイルアプリケーションおよび/またはネットワークストレージ・インフラが進化を続けるにつれて、移動デバイスについての絶えず変化する要件に伴う、そのような能力をサポートするという新たな課題も浮かび上がっている。
例えば、従来のバックアップ/復元操作は、高帯域幅ネットワーク接続を用いたバックアップ/復元ソフトウェアおよびハードウェアとの複雑な対話に基づいて行われることがある。しかし、移動デバイスは、ある場所から別の場所への移動中に、信頼性が低く、帯域幅が限られ、および/または、予測不可能でありうるワイヤレスネットワーク接続を使って使用されることが多い。従って、移動デバイスのバックアック/復元操作を完了するのに、長い時間および/または複数の試行が必要となる可能性がある。また、ほとんどのワイヤレスネットワークはこれらの操作についてはオープンであるため、さらなるセキュリティリスクが存在する可能性もある。
従って、既存のメカニズムでは、信頼性があってセキュアでユーザにやさしい形で移動デバイスをバックアップおよび/または復元できない可能性がある。
一実施形態では、デバイス内のリソースが、クラウドストレージとも呼ばれるネットワークベースのストレージに、複数のレベルの抽象化を介して、増分バックアップおよび再開可能なバックアップ操作が可能になるように、バックアップされてもよい。バックアップソースは、バックアップ/復元性能を向上させると共にデバイスの通常操作への影響を最小化するように、動的に構成されてもよい。一実施形態では、デバイスは、モバイルバックアップサービス(MBS)と通信して、リソース(またはファイル)のどの部分をバックアップするのかを、MBSの中に維持される階層的データに基づいて判定してもよい。階層的データは、デバイスのオーナアカウントと、オーナアカウントに関連する各デバイスに固有のバックアップ階層(または表現)と、および/または、バックアップされている各ファイルを説明するメタデータとを含んでいてもよい。
一実施形態では、MBSが、(Mobile Me Chunk ServiceすなわちMMCSのような)コンテンツサービスと通信して、例えばクラウドストレージにおける、データチャンクの重複を回避する目的で、ファイルのうちのどの実際のデータチャンク(すなわちチャンク化データ)がバックアップ用にアップロードされるべきなのかを識別してもよい。MMCSは、ファイルとファイルのデータチャンクを識別する一組のチャンク識別子との間のマッピングを把握してもよい。一実施形態では、MMCSは、ベンダクラウドストレージを動的に構成または配置して、バックアップ用に識別されたファイルのコンテンツをチャンク化データのコンテナの中に記憶することができる。
別の実施形態では、リソース(またはファイル)がユーザデータ(例えばユーザが作成したデータ)を表すのか、あるいは購入された資産もしくはコンテンツを表すのかを把握するために、デバイス内にメタデータが維持されてもよい。購入資産の実データは、バックアップされることを必要とせず、利用可能な資産ストア(すなわちサイト)からダウンロードまたは復元されうる。例えばPodcastのような、特定の自由に入手可能な資産は、それらの実際のコンテンツが直接バックアップされて復元される代わりに、それらの識別子をバックアップすることによって、再ダウンロードされてもよい。バックアップされるべきリソースを記述するメタデータによって、バックアップ用の多様なソースの自動識別が、これを好機としてユーザに透過的に可能になりうる。例えば、購入資産としてリソースをバックアップすることは、購入資産のコンテンツをプッシュアップする代わりに、メモを取ることを含んでいてもよい。メモされた購入資産を復元するには、購入資産のコンテンツが、資産ストアからプルダウンされるとよい。例えば、資産ストアとは、ネットワークアクセス可能なサイトであって、購入可能な資産をホストし、購入された資産を記憶し、および/または、自由に利用可能な資産(すなわちコンテンツ)をホストしていてもよい。
任意で、リソースが、クラウドストレージ、ローカルコンピュータ、資産ストアおよび/またはその他の適用可能なソースのような複数のソースから、好機をねらってまたデバイスに分割復元されてもよい。メディア資産のタイプを示すメタデータがデバイス内のリソースについて把握されて、リソースを復元(またはバックアップ)するのにどのソースが利用可能なのか、および/またはコスト効率が良いのかが、例えば性能や帯域幅や消費電力および/または適用可能な考慮事項に基づいて、動的に識別されてもよい。
例えば、デバイスが、復元されるべきリソースのコンテンツデータの一部分を記憶している(例えば有線または無線で接続されている)ローカルコンピュータへの接続に気付くことがありうる。そのコンテンツデータの一部分は、すでに接続されているコンピュータから引き出されてもよい。その後、ローカルコンピュータから入手できない残りのリソースが、クラウドストレージおよび/またはストアから分割復元されるように識別されてもよい。結果として、音楽やアプリケーションやその他のメディアファイルのようなコンテンツデータは、クラウド(またはクラウドストレージ)の中にバックアップされてもよいが、そのデバイスにとってのローカルコンピュータから復旧することもやはりできる。
一実施形態では、ファイルまたはリソースが、例えば、関連のアプリケーションやメディアタイプやその他の拡張可能な情報に基づいて、バックアップ用に選択されることがありうる。リソースが、リソースの実際のコンテンツをバックアップすることを必要とせずストアから入手可能な、ストア資産(例えば、資産ストアから入手可能な購入資産)として把握されてもよい。任意で、別のリソースが、ストアから入手可能でなく、例えばクラウドストレージを介して、バックアップおよび復元を必要とするユーザデータとして把握されることがありうる。アプリケーションが、ストア資産としてのアプリケーション自体とユーザデータとしてのアプリケーションデータとを含めて、リソースに関連付けられてもよい。従って、アプリケーションと関連のアプリケーションデータとが、別のソースから復元されてもよい。
例えば、クラウドバックアップ用にデバイス内で選択されたリソースは、対応するアプリケーション自体を含むことなくアプリケーションデータを含んでいてもよい。アプリケーションは、資産ストアからデバイスへ再ダウンロードされてもよく、アプリケーションデータは、クラウドストレージおよび/またはローカルコンピュータから復元されてもよい。あるいは、アプリケーションが、ローカルコンピュータから同期されて、アプリケーションデータをクラウドストレージから復元してもよい。他にも、アプリケーションとアプリケーションデータとを別個に復元するためのバックアップソースの組み合わせは可能でありうる。一部の実施形態では、アプリケーションデータは、その対応するアプリケーションを(例えばユーザが)使用できるようになる前に復元されてもよい。アプリケーションは、適切な順序付けを行うために、(例えばクラウドストレージまたはその他のソースからの)アプリケーションデータの復元を開始する前にダウンロードされるかまたは同期されてもよい。
一実施形態では、バックアップからデバイスへのリソースの復元が複数の段階で行われて、リソースが復元されている間、デバイスを使用可能でユーザに応答できる作業状態に維持してもよい。例えば、デバイスが、デバイスのデュアルフェーズすなわち二段階の復元のために、最初のモーダルな復元セッション(例えば第1のモード)に入り、その後、バックグラウンドの復元セッション(例えば第2のモード)に入ってもよい。一実施形態では、最初のモーダルな復元セッションではデバイスがユーザ入力に応答しないかたちで、デバイスがユーザによって使用されてもよい。一実施形態では、最初のモーダルなセッションは、デバイスをリブートするための中核的なユーザファイルを復元するために、短くて速くてもよい。その後、バックグラウンドセッションでは、個別のアプリケーションがバックグラウンドでまたデバイスへ復元されている間に、ユーザがデバイスを使用できてもよい。バックグラウンドの復元セッションでは、少なくとも一組のユーザ入力に応答するようにデバイスを操作できてもよい。
一実施形態では、2段階復元のうちのモーダルなセッションの間、デバイスをユーザに固有の作業状態にさせるためにデバイスがシステムリソースをダウンロードする間、デバイスが一時的に使用不可能であってもよい。例えば、システムリソースには、すべてのメタデータおよびシステムデータ、アカウントのリスト、壁紙、SMS(ショートメッセージサービス)履歴、および/またはその他の適用可能なユーザ固有の、アプリケーション以外のデータが含まれていてもよい。システムデータとメタデータとが、例えば、ユーザの電話として動作するために、デバイスを構成してもよい。デバイスは、モーダルなセッションの後、リブートして復旧してもよい。
一実施形態では、2段階復元のうちのバックグラウンドセッションの間、デバイスが、(例えばApple Inc.製のiTunes(登録商標)を実行中の)ローカルコンピュータおよび/またはクラウドストレージからのデータまたはメディア資産を復元してもよい。デバイスは、バックグラウンドセッションの間、メールを同期させ、および/またはテキストメッセージを受信してもよい。一実施形態では、リソースは、利用パタンによって決められた復元順に従って復元されてもよい。例えば、アプリケーションの利用が把握されて、視聴されたショー/映画や、読まれた書籍やその他の適用可能な利用統計を含めて利用パタンが収集されてもよい。他の実施形態では、復元順は、リソース(またはコンテンツ)のサイズに依存してもよく、その場合、リソースに対応するアイコンが、デバイスのディスプレイ上に位置する(例えばユーザは、使用頻度の高いアイコンを最初のページに置くことがあるだろう)。あるいは、その他の適用可能な因子に依存してもよい。復元順は、ユーザ要求に適合して動的に更新されてもよく、例えば、ユーザがディスプレイ上をタップしてアプリケーションの優先度を示してもよい。
別の実施形態では、デバイスは使用可能であるがすべてのデータがまだ復元されてはいない場合に、デュアルフェーズの(すなわち2つに分けられた)復元におけるある時間帯の間、UI(ユーザインタフェース)要素が表示され、それによってユーザ体験を向上させて、アプリケーションが不正確に動作したり予期せぬかたちで動作したりするのを防いでよい。例えば、オブジェクトファイルまたはユーザデータがまだ復元されていない(例えば音楽、動画、その他のメディアコンテンツ/資産を再生するための)アプリケーションおよび/またはライブラリを示すアイコンが、灰色で薄く表示されたりプログレスバーを含んでいたりして、アプリケーションはまだ利用可能でないがまもなく利用可能になるであろうということを示してもよい。ユーザが復元を優先させたいアプリケーションや写真や音楽や動画のアイコンをユーザがタップできるようにすることによって、双方向性が付加されてもよい。
別の実施形態では、デバイス内のリソースの第1のバックアップソースへの変更を識別する方法および装置が、本明細書内で記述される。第1のバックアップソースから、第2のバックアップソースに対する許可のためのトークンを受信するのに応じて、リソースの変更が、トークンを使って第2のバックアップソースへバックアップされてもよい。第2のバックアップソースへの変更のバックアップが成功すると、リソースの変更が、第1のバックアップソースへコミットされてもよい。
別の実施形態では、メタデータが、デバイス内に記憶されたファイルの実際のコンテンツを記述するように維持される。メタデータは、ファイルを表現するための第1の抽象化層を表現してもよい。実際のコンテンツの一部分が、第1の抽象化層から識別されてもよい。一実施形態では、実際のコンテンツの一部分が、デバイスからバックアップされてもよい。コンテンツ識別子が、第1の抽象化層とは別の第2の抽象化層を表すため、実際のコンテンツの一部分について動的に生成されてもよい。実際のコンテンツの一部分が、コンテンツ識別子を介して、ネットワークアクセス可能なストレージにアップロードされてもよい。
本発明のその他の特徴は、添付の図面および以下の詳細記述から明らかになるであろう。
本発明を、添付の図面中の各図において、例として、かつ、限定することなく示しており、添付の図面中、類似の参照文字は、類似の要素を示す。
多段階多ソースのバックアップおよび復元のためのネットワークシステムの一実施形態を示すブロック図である。
多段階多ソースのバックアップおよび復元のための例示的なシステムを示すブロック図である。
複数のソースを用いる複数の段階におけるバックアップおよび復元を管理するための例示的なシステムを示すブロック図である。
デバイスのための増分バックアップ操作を行うプロセスの一実施形態を示すフロー図である。
デバイスにおける増分復元操作を行うプロセスの一実施形態を示すフロー図である。
デバイスを復元するためにリソースに動的に優先順序を付けるプロセスの一実施形態を示すフロー図である。
バックアップおよび/または復元操作のためにデバイスの電源を監視する例示的なシステムを示すブロック図である。
電力を節約するためにデバイスのバックアップおよび/または復元操作を中断するプロセスの一実施形態を示すフロー図である。
本明細書で記述する実施形態と共に用いられうるデータ処理システムの一例を示す図である。
本明細書で記述する実施形態と共に用いられうる典型的なコンピュータシステムの一例を示す図である。
デバイス用のファイルを1つ以上のソースを用いて複数の段階でバックアップして復元するための方法および装置を、本明細書に記述する。以下の記述では、本発明の実施形態の十分な説明を提供するために、多数の個別の詳細が述べられている。しかし、当業者には明らかであろうが、本発明の実施形態は、これらの個別の詳細がなくても実施されうる。その他の例では、本記述の理解をあいまいにしないようにするため、周知のコンポーネント、構造、技法は、詳細に示されていない。
明細書の中で「一実施形態」または「実施形態」と呼ぶのは、その実施形態に関連して記述された或る個別の特性、構造、または特徴が、本発明の少なくとも1つの実施形態に含まれうることを意味する。「一実施形態において」という句が本明細書の各所に現れるが、必ずしも、それらがすべて同一の実施形態のことを言っているのではない。
以下の各図に描かれたプロセスは、(例えば、回路機構、専用論理などの)ハードウェア、(例えば汎用コンピュータシステムまたは専用マシン上で実行されるもののような)ソフトウェア、またはそれら両方の組み合わせを含む処理論理によって行われる。各プロセスは、以下では、いくつかの順次的な操作という形で記述されているが、記述された一部の操作は、異なる順序で行われてもよいことは理解されるべきである。また、一部の操作は、順次的ではなく並行して行われてもよい。
一実施形態では、デバイスからのデータまたはリソースをバックアップするために、複数のソースが利用可能でありうる。例えば、一般的なデータバックアップサービスが、クラウド(すなわちクラウドストレージ、クラウドサービス)内で、例えばAmazon、S3、Microsoftなどのようなサードパーティーベンダを介して提供されてもよい。例えば、歌、映画、および/またはアプリケーション等のような購入資産が、クラウド内のiTunes(登録商標)ストアからダウンロードされてもよい。例えばiTunes(登録商標)のようなバックアップサービスソフトウェアを実行するユーザのコンピュータを用いて、例えば、Apple Inc.からのiOS(登録商標)デバイス、iPhone(登録商標)デバイス、iPad(登録商標)デバイスのようなデバイスがバックアップされてもよい。
デバイスからのバックアップされるべきリソースは、例えば、設定、アカウントデータ、アプリケーションデータ、写真、メディアファイル、購入資産、および/またはその他のデータファイルを含むバックアップデータでありうる。一実施形態では、バックアップデータは、デバイス内の既存のリソースから動的に識別されてもよい。ユーザコンピュータ(例えば、デスクトップコンピュータまたはノートブックコンピュータ)は、デバイス用のバックアップデータを記憶することができる。任意で、またはその代わりに、デバイス用のバックアップデータの部分集合が、バックアップデータ内の購入資産については、クラウドバックアップを介して、および/または、例えばiTunes(登録商標)ストアのようなストアを介して、クラウド内に記憶されてもよい。
一実施形態では、例えばクラウド内でMBSサーバによって維持されるアカウントを、そのアカウントについての多様なデバイスに個別的に対応する複数のバックアップ(またはバックアップ構造)を含む階層データによって表すことができる。階層データは、複数の異なるデバイスについての一組のバックアップを含むアカウントを含んでいてもよい。バックアップは、デバイス上のファイルの一組のスナップショットを含んでいてもよい。デバイス毎に1つというバックアップがサポートされてもよい。
スナップショットは、単一の時点でのデバイスの状態を表していてもよい。復元は、バックアップ内のいずれのスナップショットからも行うことができ、その時点でのデバイスの状態が再構築される。スナップショットは、或る番号(例えば1)から順次的に番号をつけられてもよく、これらの番号は、サーバによって割り当てられてもよい。第1のスナップショットは、デバイスの完全なバックアップであってもよく、その後のスナップショットは、前のスナップショットからの差分であってもよい。増分スナップショットは、前のスナップショット以来、デバイス上で追加され、修正され、削除されたファイルをすべて含んでいてもよい。
スナップショットは、そのコンテンツがアップロードされた後、明示的にコミットされてもよい。未コミットのスナップショットが一時に1つあってもよく、その未コミットのスナップショットは、最大の数を持つ最後のスナップショットでありうる。スナップショットがコミットされた後、そのコンテンツは、それを完全に削除することによる以外は、修正されないことがある。
スナップショットが削除された場合、そのコンテンツは、それが未コミットでない限り、前のスナップショットにマージされてもよい。結果として、復元は、依然として、いずれかのその後のスナップショットから行うことができる。目標スナップショットの中の追加/修正/削除されたファイルは、保持されうる(例えば、失われないであろう)。未コミットのスナップショットを削除してもマージは行われず、その代わり、コンテンツが単に廃棄されてもよい。一連の記憶されたスナップショットから第2のスナップショットを削除して、その一連のスナップショットのうちの第1のスナップショットにファイルをマージする場合、第1のスナップショットが完全であるため、削除されたファイルは保持されないことがある。第1のスナップショットは、それが一連のスナップショットの中の唯一のスナップショットでない限り、削除されないことがある。
個々のバックアップは、例えば、構成されたスケジュール(例えば、毎時、毎日、毎週など)に従って、対応するデバイスから取られたスナップショットを含んでいてもよい。個々のスナップショットは、ファイルまたはリソースのリストの記述を含んでいてもよい。個々のファイルは、クラウドサービスが記憶するための(例えば所定のビット数の)実データのチャンクに分割(すなわち、ファイルチャンキング)されてもよい。あるいは、ファイルチャンキングは、例えば、全体として参照により本願に援用する、2011年1月14日に出願されたDominic Giampaoloによる「Content Based File Chunking」と題された仮特許出願第61/433,152号に記述された、データ項目をチャンクに分割する技術に基づいていてもよい。
典型的には、複数のチャンクが、例えばサードパーティーベンダによって提供されるクラウドサービス用のストレージユニットとして、1つのコンテナとして統合されることがある。バックアップは、要求に応じて作成され、更新され、削除され、無効化され、操作されてもよい。例えば、所与の領域のファイルが、バックアップから削除されることがある。クラウドストレージは、クラウドストレージ内に記憶されたデータのチャンクに対応するオリジナルのファイルを再生するのに十分な情報を記憶していない。従って、ファイルは、本質的に、データチャンキングを介して保護される。データのチャンクの暗号化によって、クラウドストレージ内に記憶されたデータについて、さらなるレベルの保護が提供されてもよい。
一実施形態では、例えばiOSデバイスのようなデバイスが、デバイスのリソースからバックアップデータを識別するために、クラウド内の(例えばMBSサーバ内でホストされる)バックアップサービスを使ってバックアップ操作を開始してもよい。デバイスのバックアップステータスを記述するメタデータが、バックアップサービスの中に、例えば、デバイスに対応するバックアップ構造を介して、維持されてもよい。バックアップステータスは、デバイスについてすでにバックアップされているリソースの最新のスナップショットまたは最近の一連のスナップショットを含んでいてもよい。一実施形態では、メタデータは、デバイスのバックアップデータについてサードパーティーベンダを介してクラウドサービス内に記憶されたデータチャンクを参照してもよい。
バックアップ操作のためにデバイス内で識別されたバックアップデータまたはファイルが、クラウドストレージのために準備ができた実際のデータビットのチャンクへと分割されてもよい。一実施形態では、識別されたファイルについてバックアップするためにデータのチャンクを準備するために、デバイスのサービスフレームワークの中のMMCSコードが、クラウドの中のMMCSサーバと通信してもよい。例えば、バックアップデータが、一定のチャンク構成(例えば各チャンクについて固有のデータビットサイズ)に従って、複数のデータチャンクに分割されてもよい。
バックアップ用に識別されたファイルから準備された複数のデータチャンクのうちのどれがクラウド内で現在利用可能でなく、アップロードされる必要があるのかを、サービスフレームワークが判定してもよい。一部の実施形態では、サービスフレームワークが(例えばMMCSコードを介して)、例えばSHAハッシングアルゴリズムまたはその他の適用可能なアルゴリズムを介して、MMCSサーバ(またはサービス)用の識別子として各チャンクをハッシングして署名を入れて、識別されたチャンクがすでにクラウド内にバックアップされているのかどうかを判定してもよい。
一実施形態では、ファイルが、MMCSへと参照されてもよい。デバイスが、任意の識別子をファイルに割り当ててもよい。デバイスは、識別子を用いて、ファイルに戻って参照してもよい。参照は、ファイルの参照されなかったデータチャンク(すなわちファイルチャンク)のゴミを収集するために、(例えばサーバによって)周期的にMMCSへとクロールされてもよい。
デバイス用のバックアップ操作は、クラウド内の複数のサービスと協調するために、例えば、セットアップ段階、スキャン段階、バックアップ段階、および/または、その他の適用可能な段階というように、複数の段階で行われてもよい。各段階は、バックアップ操作の効果を高め、および/または、性能を向上させるために、クラウドストレージの動的な構成を好機をねらって可能にするよう、操作の個別の抽象化層に対応していてもよい。
例えば、セットアップ段階の間、MBSサービスの中にデバイス用のバックアップ(すなわちバックアップ構造)が存在するかどうかが、判定されてもよい。MBSサービスの中にデバイス用のバックアップが存在しない場合、MBSサービスは、デバイス用の最初のメタデータを使ってバックアップを作成することを求められてもよい。一実施形態では、デバイスは、MBSサービスの中のデバイスに対応するバックアップのコピーを反映する、バックアップキャッシュを含んでいてもよい。バックアップキャッシュは、デバイス用に以前取られた1つ以上のスナップショットを含んでいてもよい。
一実施形態では、バックアップキャッシュは、必要に応じて(例えば、MBSサービスと交わされたメッセージによればバックアップキャッシュの中にキャッシュされているスナップショットが期限切れになった場合)MBSサービスと同期するように(例えば、MBSサービスに相談することによって)再構築されてもよい。任意で、またはそれに加えて、未コミットのスナップショットがデバイスの中に存在するかどうかが、セットアップ段階の間に判定されてもよい。未コミットのスナップショットは、MBSサービスの中に記憶された既存のスナップショットに対応していなくてもよいし、まだバックアップされていないリソースの記述を含んでいてもよい。未コミットのスナップショットが、セットアップ段階の間に作成されてもよい。
一実施形態では、例えばバックアップキャッシュが最新のものであることを確認することの一環として、未コミットのスナップショットが存在するかどうかを判定するために、デバイスが、MBSサービスにクエリを行ってもよい。デバイスは、バックアップ操作の間にそのファイルシステムをスキャンした後で、未コミットのスナップショットを作成してもよい。バックアップキャッシュは、例えば、MBSサービスおよびMMCSサービスへのバックアップが成功したものを反映するために、増分的に更新されてもよい。
スキャン段階の間、デバイスのファイルシステムがスキャンされて、例えば新規ファイル、削除されたファイル、修正されたファイルなどのようなファイルまたはリソース内の変更が見つけられてもよい。一実施形態では、スキャンされたファイルとバックアップキャッシュに記憶されたスナップショットとの間の比較を介して、変更が識別されてもよい。どのファイルがすでにバックアップされており、どのファイルがバックアップされる必要があるのかが、スキャン段階の間に把握されてもよい。
バックアップ段階では、実際のファイルバックアップ操作が行われてもよい。例えば、必要に応じて(例えば、利用可能な未コミットのスナップショットが存在しない場合)スナップショットが作成されてもよい。MBSサービスにおいて新規ファイル、修正ファイルおよび/または削除ファイルのエントリを作成するための要求が、MBSサービスへ送信されてもよい。クオータ認証またはクラウドストレージへのアクセス権がMBSサービスから受信されて、MMCSサービスにバックアップ要求を送信することが可能になってもよい。バックアップ要求は、バックアップすべきファイルまたはファイルの変更を記述するメタデータを含んでいてもよい。
要求されたバックアップは、デバイスのためにMMCSによって課されたバックアップストレージサイズの限度内にあることを示すために、認証トークンがMBSサービスから受信されてもよい。認証トークンは、デバイスからストレージベンダへの一組の許可されたHTTP(Hypertext Transfer Protocol)要求について、MMCSサービスへ送信されてもよい。MMCSサービスは、ストレージベンダ(すなわちクラウドサービス)と対話して、デバイス用の許可キーを検索することができる。ファイルの変更(例えば、追加/削除/除去)は、許可キーを用いてクラウドサービスへアップロードされてもよい。アップロード成功の確認がクラウドサービスから受信されると、アップロードに対応するスナップショットが、デバイスとMBSサービスとの間でコミットされてもよい。スナップショットは、それが作成され、そのコンテンツが定義され、次いでMMCSへアップロードされた後、コミットされてもよい。
一実施形態では、MBSサービスは、ファイルレベルでファイルを記述するメタデータに基づいていてもよい。MMCSサービスは、ファイルの実際のコンテンツまたはデータ(例えばデータのチャンク)に依存してもよい。ファイルの実際のコンテンツから生成されたハッシュ署名が、コンテンツの識別子としてMMCSサービスで用いられてもよい。MMCSサービスは、識別子によって識別されたコンテンツの部分が、例えばクラウドストレージ内で、新規なのか(あるいはまだバックアップされていないのか)どうかを判定してもよい。MBSサービスは、ファイルが新規であるのかまたは更新されたのかを、そのファイルに関連するメタデータに従って決定してもよい。
実施形態によっては、MBSサービスのようなバックアップサービスは、デバイス用の1つ以上のバックアップを維持することができる。バックアップは、バックアップされたデータまたはファイルは何なのか、バックアップされたデータをどのように把握するのか、対応するデバイスのID、(例えば、バックアップの日付、増分バックアップ関係性などに基づいて)異なるバックアップ同士がどのように関係しているのか、および/またはその他の情報を記述しているセマンティクスを含んでいてもよい。一実施形態では、バックアップが、1つのアカウントの下で1つのデバイスに関連付けられてもよい。個々のアカウントは、複数のデバイスを含むことができる。バックアップは、デバイスの複数のスナップショットを含むことができる。例えば、スナップショットは、デバイスのリソースについて毎日取られてもよい。個々のスナップショットは、バックアップの中の前のスナップショットからデバイス内で変更されたファイルを、記述してもよい。
一実施形態では、デバイスのリソースが、複数の方式によるハンドシェイクに基づいてバックアップされて、MBSサービス、MMCSサービス、クラウドベンダ(すなわちストレージ)および/またはその他の適用可能なサービスのようなサービスとデバイスとの間で、ファイルおよび/またはファイルのメタデータが送信されてもよい。MBSサービスは、MMCSサービスの参照を把握してもよい。MMCSサービスは、例えば、デバイスがファイルをベンダによって指定された構造化されたデータに動的にマッピングできるようにするため、クラウドベンダの参照を把握してもよい。
例示する一実施形態では、特定のクラウドベンダに従って、MMCSサービスは、デバイス内のファイルを項目として識別し、項目をデータのチャンクに分割するようにデバイスに命令し、データの個々のチャンクについて一意の識別子を生成し、識別されたデータのチャンクをバックアップ用にデバイスがクラウドベンダへ転送する必要があるかどうかをデバイスに通知してもよい。デバイスは、MBSに命令するかまたはMBSと通信して、デバイスのために取られたスナップショットの中に情報を入れ、および/または、スナップショットをデバイスに整合させてもよい。
従って、複数のサービスが、デバイスのリソースをバックアップするための間接化の層を提供して、1つの層の範囲内の操作を他の層に影響しないように分離してもよい。MBSサービスは、バックアップすべきリソースのメタデータを把握して、どのファイル(すなわち項目)が、バックアップすることを必要とせず、すでに存在していたかを判定してもよい。MMCSサービスは、実際のバックアップデータをクラウドストレージのどのベンダに記憶するかを把握し、デバイスがバックアップデータをクラウドストレージへアップロードできるようにするためのチケット(または証明書)を作成するためにクラウドストレージの利用権を管理し、および/または、ゴミ収集(ガベージコレクション)を行ってバックアップ用にもう参照されなくなったデータのチャンクを表す構造を削除することに責任を持ってもよい。MBSサービスは、MMCSサービスによって管理されるクラウドストレージからは孤立して(またはそれに気づかなくて)もよい。
一実施形態では、バックアップ操作用に生成されたスナップショットは、バックアップ操作が成功して完了された後にスナップショットがコミットされるまでは、整合しているとマークされなくてもよい。(例えば、3日間の日常的なスナップショットに相当する)決まった(すなわち構成された)数の最近のスナップショットが、デバイス内にキャッシュされるかまたはMBSサービス内に記憶されてもよい。スナップショットの数は、ストレージスペースを節約するために、制限されてもよい。典型的には、記憶されるスナップショットのうち最初の(すなわち最も古い)ものは、対応するバックアップ操作についてデバイスの各リソースを記述する完全スナップショットであってもよい。残りのスナップショットは、前のスナップショットに対するリソースの追加変更を記述する増分スナップショットであってもよい。
バックアップ操作の最終段階の間、一実施形態では、スナップショットがマージされてもよく、例えば、最も古い2つ以上の既存のスナップショットを1つの完全スナップショットへと折りたたんでもよい。結果として、新規のスナップショットがコミットされる時、記憶されるスナップショットの総数が固定数として維持されてもよい。一部の実施形態では、MBSサービスは、1つのアトミックなデータベース操作として既存のスナップショットを削除および/またはマージするように通知(または命令)されてもよい。それに応じて、アトミックな操作が成功したか否かを示すために、MBSサービスから確認応答が受信されてもよい。
実施形態によっては、再ダウンロードできない可能性があるリソース(例えば、アプリケーション、購入資産、またはその他の資産)のリストを識別するために、iTunes(登録商標)ストアのようなバックアップソースに、クエリが行われてもよい。例えば、(例えばデバイスからの要求に基づいて)デバイスに関連付けられたどの購入資産が再ダウンロードできないのかを、デバイスがコンテンツバックアップ操作を行う前に、バックアップソースが判定してもよい。バックアップソースから再ダウンロードできないリソースのリストにある実際のコンテンツは、MBS、MMCS等のバックアップサービスを介してアーカイブまたはバックアップされてもよい。
一実施形態では、デバイスとMBSサービスとの間の通信は、バックアップ(例えば作成/削除)およびスナップショット(例えば作成/削除/マージ/更新)を管理するためのクライアントサーバプロトコルを規定する。スナップショットの更新は、アトミックに行われてもよく、すなわち、スナップショットへのすべての変更が組み込まれる(すなわちコミットされる)かまたはスナップショットがまったく更新されないかのいずれかである。
一部の実施形態では、MBSサービスを介してスナップショットを管理するプロトコルは、効率的で軽量なネットワーク通信のため、ファイルまたはリソースのメタデータに基づいていてもよい。メタデータは、ファイルの実際のコンテンツを記述することなく、デバイス内のファイルについての情報、例えばファイル名、ファイルへの参照、サイズ、タイムスタンプ、所有権、保護設定、その他のファイルに関連する適用可能なデータ等を記述してもよい。どのファイルまたは資産をバックアップ操作に含める必要があるのかが、メタデータの記述に基づいて判定されてもよい。個別のスナップショット間の差分すなわち相違が、メタデータ記述に関して把握されてもよい。
例えば、デバイスが、最後に修正された時刻値を用いてキャッシュを維持することがありうる。リソースに対してアクセス、削除、更新、修正またはその他の操作を実行するため、要求および応答には最後に修正された時刻値が含まれていてもよい。一実施形態では、リソースに関する要求は、リソースの親リソースの最後に修正された時刻値を更新することをもたらすことがある。例えば、アカウントのバックアップを削除することは、アカウントの最後に修正された時刻値を更新することになりうる。スナップショットにファイルを追加することは、スナップショットの最後に修正された時刻値だけでなくスナップショットの親のバックアップおよびアカウントも更新することになりうる。
スナップショットを管理するための要求によって、新規の空の未コミットのスナップショットを作成することと、前に作成されたスナップショットを更新することと、スナップショットを削除することと、および/または、スナップショットをコミットすることとが可能になりうる。要求されたスナップショットのためにスペースを予約することが、関連のアカウントのクオータを超過することにつながりそうな場合、応答が、ストレージ不足を示してもよい。要求は、デバイス名やバージョン番号のようなスナップショットの属性を含んでいてもよい。
別の実施形態では、属性を持つファイルのリストが、要求を介してスナップショットから検索されてもよい。MMCSからファイルのストリームをダウンロードするために、MMCS許可トークンが要求されてもよい。スナップショット用のファイルを管理することへの要求には、例えば、作成すること、削除すること、更新すること、マークすること、またはその他の適用可能な操作が含まれていてもよい。スナップショット内のファイルのサイズが予約されているスペースを超過しそうな場合、応答がコンフリクトを示してもよい。一部の実施形態では、ファイルをスナップショットから削除すると、サーバによって記憶されている元のデータベースレコードが削除されることがあり、削除されたファイルは、スナップショット用のファイルのリストにその後現れないことがある。あるいは、ファイルが削除されたという印を付けることによって、ファイルは以前のスナップショットには存在していたが、もうデバイス内には存在しないことを示してもよい。
デバイス内のファイルのメタデータは、例えばMBSサービスを介してどのファイルをバックアップすべきかを判定するための、および/または、バックアップ操作用のスナップショットを作成するための、抽象化の1つのレベルに対応していてもよい。実際のファイルコンテンツのハッシュ(例えば、ハッシュチャンクが少しずつ)が、別のレベルの抽象化を提供し、バックアップファイルのうちのどのコンテンツがアップロードされる必要があるのかが、例えばMMCSサービスを介して、識別されてもよい。一実施形態では、同一コンテンツの別個のファイルが、異なるメタデータ記述に関連付けられてもよい。従って、コンテンツのハッシュまたはチャンク署名に基づく比較によって、同一コンテンツであるが異なるメタデータを持つファイルのための、(例えばクラウドからの)バックアップストレージの共有ができてもよい。
バックアップ操作は、再開されるか、および/または、切り換えられてもよい。例えば、ネットワーク接続が失われた場合、バックアップ操作が停止されることがある。バックアップ操作は、ネットワーク接続が再度確立された場合、再開されてもよい。一実施形態では、再開されたバックアップ操作についてどのファイルをバックアップするのかが、ファイルコンテンツから(例えばMMCSサービスを介して)生成された署名に基づいて判定されてもよい。バックアップ操作が停止される前にファイルシステム内のファイルが変更された場合、ファイルシステムは、バックアップ操作を再開(または開始)する前に再度スキャンされてもよい。一部の実施形態では、最適化のために、ファイルが変更されたかどうかを判定するためにMMCSサービスに相談する前に、ファイルシステムをスキャンしている間、ファイルの修正タイムスタンプ(または時刻値)が、バックアップキャッシュの中の対応するタイムスタンプと比較されてもよい。
デバイスとソースすなわちホストとの間のバックアップ/復元操作は、デバイス上のデバイスアンカーおよびホスト上のホストアンカーのような同期アンカー技術に基づいて、停止(または終了)されて再開されてもよい。同期アンカー技術の例は、Gordon J.Freedmanによる「Synchronization Methods and Systems」と題された発行済の米国特許第7,807,403号に記述されており、それを全体として参照により本願に援用する。
一実施形態では、リソースが、動的に構成される複数のソースからデバイスへ分割復元されてもよい。例えば、アプリケーション、音楽、動画、TVショー、その他のメディアデータのような購入資産が、要求に応じてクラウド内の1つ以上のストアからデバイスへダウンロードされてもよい。購入資産は、(例えば、デバイスのユーザが所有する)ローカルコンピュータに記憶され、デバイスにも同様に復元される準備が整ってもよい。
一実施形態では、ローカルコンピュータに近い範囲内で移動している時にデバイスが購入資産をクラウド(例えばストア)から復元している間に、デバイスとローカルコンピュータとの間で接続(例えば有線接続または無線接続)が確立されてもよい。接続とローカルコンピュータ内での購入資産の利用可能性とを検出した時点で、デバイスは、購入資産の復元ソースをクラウドからローカルコンピュータへと動的に切り換えて、(例えば、ローカルコンピュータにおいてホストされているiTunes(登録商標)ソフトウェアを介して)購入資産の残りの部分の復元を完了させてもよい。結果として、ネットワーク接続コストを削減して、復元性能を高めることができる。
一部の実施形態では、ストア、ローカルコンピュータ、クラウドストレージといった複数のソースからのデバイスのリソースの利用可能性が、リソースのメタデータに基づいて把握されてもよい。或る個別のリソースがストアまたはローカルコンピュータの中にすでに存在する場合、その個別のリソースは、既存のソースからデバイスへ復元されうるため、その個別のリソースの実際のコンテンツをバックアップする必要はない。例えば、リソースのメタデータが、デバイスに関連するアカウントについて購入資産の所有権を示してもよい。購入資産は、クラウドからのストアおよび/またはローカルコンピュータのような利用可能なソースからすぐに利用可能となりうる。結果として、購入されたリソースは、利用可能なソースから再ロードされうるため、バックアップする必要はない。
一実施形態では、設定、アカウントデータ、アプリケーションデータ、および/または購入資産のようなデバイス内のリソースが、ローカルコンピュータへバックアップされてもよい。また、設定、および/または、アプリケーションデータのようなリソースの部分が、クラウドストレージへバックアップされてもよい。購入資産のような一部のリソースが、クラウド内のストアの中に維持されて利用可能であってもよい。リソースは、利用可能な場合にはローカルコンピュータから復元されてもよいし、ローカルコンピュータがデバイスに接続されていない場合あるいはリソースをローカルコンピュータ内に位置させることができない場合には、クラウドストレージおよび/またはストアから復元されてもよい。電子メール、カレンダ、またはその他の適用可能なリソースのような、中央サービスとの同期操作を介して同期されうる一定の資産は、バックアップ操作によってバックアップされなくてもよい。
実施形態によっては、MBSサービスのようなメタデータサービスが、バックアップ操作用に許可トークンをデバイスに提供する場合、デバイス内のどのリソースをバックアップすることが可能かを選択してもよい。例えば、サードパーティーアプリケーションおよび/またはデータによっては、フィルタで除去されて、バックアップされることが許可されないことがある。一実施形態では、バックアップからフィルタで除去されるデータには、キャッシュされたデータまたは再生成されうるインデックスのような、サードパーティーアプリケーションによってバックアップされる必要なしと宣言されたディレクトリや文書が含まれることがある。あるいは、デバイスの関連のアカウントについて課される、バックアップデータのトータルなサイズに関するクオータ制限に従って、バックアップすべきリソースが識別されてもよい。
一実施形態では、デバイスについてのすべてのリソースが復元されたかどうか(すなわち、復元操作が完了したのかどうか)が、異なるリソースまたは或る特定のリソースのうちの異なる部分がそれらから復元されうる複数のソース(例えばクラウドストア、ローカルコンピュータ、ストアなど)に対して、把握されてもよい。例えば、デバイスと通信しているローカルコンピュータ内で実行中のiTunes(登録商標)が、クラウド内には記憶されているがローカルコンピュータ内には記憶されていない或る個別のリソースがまだデバイスへ復元されていないと判定してもよい。その個別のリソースは、デバイスが復元操作を完了させるために、ローカルコンピュータを介して検索されてもよい。
例として、ユーザに関連するアカウントについてアクティベートされている新しいデバイス、例えば新しい電話が、アカウントのクラウドバックアップから復元されてもよい。デバイスは、アカウントとデバイスとを識別する識別子を持つMBSサービスのようなバックアップサービスを使って復元操作を開始してもよい。従って、復元すべきリソースの記述が、例えばMBSサービスを使って、判定されてもよい。クラウドストレージは、判定されたリソースを復元するように、(例えば、動的に発見されるかまたは接続されたサービスから得られるなどした構成を介して)位置を突き止められてもよい。あるいは、iTunes(登録商標)のような対応するバックアップ・サービス・アプリケーションを実行中のローカルコンピュータが利用可能である(例えばデバイスの接続範囲内にある)と分かった場合、リソースは、リモートのクラウドストレージにアクセスすることを必要とせず、ローカルコンピュータから検索されてもよい。
デバイスにおける復元操作は、例えば、モーダルな復元段階に続くバックグラウンドの復元段階を含めて、複数の段階で行われてもよい。設定やメタデータのような不可欠なファイルや情報は、最初にモーダルな復元段階の間にアトミックに(例えば、すべての不可欠なファイルが復元されるか、あるいは何も復元されないかのいずれか)復元されて、デバイスが作業状態へとブートでき、復元操作の残りの完了を待つことを必要とせず、ユーザが迅速に利用できるようにされてもよい。モーダルな復元段階の間、デバイスは、システムファイルを記録中であって、ユーザ入力を受け付けるように操作できないことがある。アトミックな復元によって、リソースが完全に復元される前であっても、整合性のある一組のデータを使ってデバイスが実行されることが保証されてもよい。
続いて、バックグラウンドの復元段階の間、デバイスを復元するのに必要な残りのリソースが、クラウドストレージおよび/またはローカルコンピュータのような利用可能なバックアップソースからバックグラウンドの中にプルされてもよい。例えば、メディア資産の実際のコンテンツ(例えば写真、動画、音声ファイルなど)、サードパーティーアプリケーションデータ、またはその他の適用可能なリソースのようなかなり大きなリソースが、デバイスの操作または少なくとも一部の機能を用いるユーザの能力あるいはデバイスの機能性に影響を及ぼすことなく、バックグラウンドの復元段階の間にプルされてもよい。例えば、バックグラウンドの復元段階においてユーザが、テキストメッセージを送信するかまたはインターネットを閲覧するかまたは音声電話をすることができてもよい。
一実施形態では、デバイスが、ローカルコンピュータ(例えば、iTunes(登録商標)アプリケーションを実行するiTunes(登録商標)コンピュータ)を使って(例えば同期操作を介して)同期されて、デバイス上の所定のコンテンツまたはリソース(例えば音楽、アプリケーション、podcast、動画、着信音、写真、メモ、電子メールアカウント設定、連絡先、カレンダ、ブックマーク)が、ローカルコンピュータ内の対応するリソースのうちのユーザの選択した部分集合に一致することが保証されてもよい。アプリケーションデータは、同期された場合、デバイスからローカルコンピュータ(例えば、iTunes(登録商標)バックアップ内)へバックアップされてもよい。アプリケーションやメディアコンテンツのような購入資産は、ローカルコンピュータからデバイスへダウンロードされて(例えばiTunes(登録商標)ライブラリを介して)同期されてもよい。
一実施形態では、デバイスとローカルコンピュータとの間の同期操作が、デバイスのバックグラウンドの復元(段階)の間に(またはその後に)行われてもよい。デバイスとiTunes(登録商標)コンピュータとの間の通信または接続は、デバイスがまだ作業状態へとブートされていないため、バックグラウンドの復元の前には利用可能でないことがある。同期操作は、(例えば、iTunes(登録商標)ライブラリとして)ローカルコンピュータからデバイスへ資産(例えば購入されたメディアおよび/またはアプリケーション)を復元することができることがある。
任意で、またはそれに加えて、同期操作は、アプリケーションデータまたはユーザデータを(例えばiTunes(登録商標)バックアップとして)ローカルコンピュータからデバイスへ復元してもよい。一実施形態では、同期操作は、デバイスがそれと同期するためのリソースのリストを識別するため、iTunes(登録商標)コンピュータとデバイスとの間の比較を含んでいてもよい。復元操作および同期操作は、デバイス内で実行中のATC(Air Traffic Controller)コードのような共通モジュールに依存して、適用可能なソースから実際のコンテンツまたはビットデータをプルしてもよい。同期操作および/または復元操作のためにiTunes(登録商標)デバイスからリソースを転送する目的でデバイスがiTunes(登録商標)デバイスと結合すなわち接続された時、ATCは、iTunes(登録商標)同期(またはペアリング)イベントのようなシステムイベントに自動的に気付いてもよい。
一実施形態では、デバイス内の復元操作は、接続されたバックアップサービス(例えばiTunes(登録商標)コンピュータまたはMBSサービス)に問い合わせて、リソースを復元するための最も良いソースを判定してもよい。別個のリソースまたは資産について、クラウド内のバックアップストレージ(すなわちクラウドバックアップ)、ローカルコンピュータ内のバックアップ(例えばiTunes(登録商標)バックアップ)、クラウド内のストア(例えばiTunes(登録商標)ストア)、ローカルコンピュータ内のローカルライブラリ(例えばiTunes(登録商標)ライブラリ)といった多様なソースが識別されることがある。1つのカテゴリのデータが1つのソースから復元されている間に、別のカテゴリのデータが別のソースから復元されてもよい。例えば、写真はクラウドストレージから、音楽コンテンツはストアから、アプリケーションはローカルライブラリから、アプリケーションデータはクラウドストレージからというように復元されてもよい。典型的には、例えば、接続コストがより安価であること、および/または、利用可能なネットワーク帯域幅がより高いことなどの理由で、ローカルコンピュータ内のソースの方が、クラウドからのソースより好適でありうる。
一部の実施形態では、同期操作は、トランザクション段階とその後のベストエフォート段階というように、複数の段階で行われてもよい。トランザクション段階の間に、メタデータが識別されて、デバイスとローカルコンピュータとの間で同期すべきリソースのリストが記述されてもよい。メタデータは、(例えば全か無かの)トランザクションの形でローカルコンピュータから受信されてもよい。ベストエフォート段階の間に、メタデータによって記述された資産が、例えば、利用可能性、性能、コスト、および/またはその他の適用可能な因子を考慮して動的に判定された多様なソースから、デバイスに同期されてもよい。
実施形態によっては、リソースを復元するための多様なソースが、例えば、リソースに関連付けられたメタデータに基づいて、動的に識別されてもよい。同期操作は、デバイスとの同期が必要なリソースのリストの記述を、ローカルに結合または接続されたコンピュータ(例えばiTunes(登録商標)コンピュータ)からプッシュしてもよい。歌、動画、映画、アプリケーションなどのような購入資産は、クラウド内のストアまたはローカルコンピュータから(例えば、iTunes(登録商標)ライブラリを介して)転送されてもよい。ユーザが撮影した写真または他のデバイスからダウンロードされた動画のような、ストアから購入または取得されていないメディアは、クラウドストレージまたはローカルコンピュータから(例えばiTunes(登録商標)バックアップを介して)復元されてもよい。
復元順序の動的構成が多段階復元の後半で(例えば、第1の段階すなわちモーダルな段階の後で)適用されることは、デバイスの効率および/または有用性を向上させるために有利でありうる。例えば、復元用のリソースまたは資産のリストは、復元の開始(すなわち第1)段階で識別されてもよい。実際のデータ転送のためのバックグラウンド段階のような復元の後半では、動的にすぐさま行われる順序または優先度の判定に続いて、識別されたリソースのうちのどれを次に復元するのかの選択が行われることがある。例えば複数のスレッドまたはプロセスを介して、複数のリソースが、その復元のために同時に転送されることがある。
デバイスの作業ステータス、および/または、まだ復元されていないかまたは復元中のリソースについて構成される各種のヒューリスティックな基準に依存して、次に転送すべきリソースを選択する順序が、ランタイムの間に変更されてもよい。例えば、より小さいサイズのリソース、および/または、転送に必要な時間がより少ない(例えば、関連のソースについてより高い帯域幅が利用可能な)リソースが、(例えば、復元すべき次のリソースとして選択される確率が高い)より高いランクを与えられてもよい。
一実施形態では、デバイスの有用性を高める目的でリソースが復元についてどのように順序付けられるべきかまたは優先されるべきかを判定するために、デバイスの利用が把握されてもよい。例えば、リソースは、関連のアプリケーションに従って順序付けられてもよい。実施形態によっては、直近に用いられたアプリケーションのリソースに、より以前に用いられたアプリケーションのリソースより高い優先度が割り当てられてもよい。アプリケーションに関連するアプリケーションデータがまもなくユーザによってアクセスされうることを予想する際に、現在用いられているアプリケーション(例えば、再生中の映画または動画)が、直近に用いられたアプリケーションとして識別されてもよい。
一部の実施形態では、復元すべきリソースは、リソースに関連するアイコンの表示順に従って優先されてもよい。例えば、リソースに関連するアプリケーションアイコンおよび/またはメディアアイコンが、表示順に従ってデバイスのディスプレイ上に提示されてもよい。表示順は、デバイスのユーザによって暗示的に指定される優先度を反映していてもよい。任意で、またはそれに加えて、リソースがどのように転送されるべきかを動的に制御する(例えば、一時停止、再起動、起動など)ために、ユーザ入力(例えば表示画面をタップすること)が、受信されてもよい。
一実施形態では、復元すべきリソースのリストが、ヒューリスティックに構成された特性、および/または、動的に識別された因子に基づいて割り当てられた順序を使って構築されてもよい。特性は、サイズ、タイプ、位置、および/またはその他のリソースに関連する適用可能なメタデータのような、リソースに関する基準的情報を含んでいてもよい。例えば、購入資産タイプのリソースは、ユーザが作成したコンテンツのタイプである別のリソースより、復元の優先度が高くてもよい。リソースの位置は、リソースがデバイス用にどこで生成または購入されたかを示していてもよい。デバイスの現在位置により近い位置に関連するリソースが、デバイスから離れた別の位置を持つ別のリソースより高い優先度であってもよい。
動的因子は、デバイス内の絶えず変化する作業環境または利用パタンに基づいて、すぐさま判定されてよい。例えば、動的因子には、利用可能な(復元)ソース(例えば、クラウドストレージ、ストア、ローカルコンピュータなど)、アプリケーションの利用履歴、アプリケーションアイコンに関連する表示順序、ユーザ入力、その他の適用可能な因子が含まれうる。典型的には、利用可能なソースから転送されうるリソースは、現在利用可能なソースからは見つからない別のリソースより優先度が高いことがある。リソースの利用履歴には、例えば、頻度、最後にリソースが(例えば、アプリケーションを介して)アクセスされた時刻、利用回数、および/または、その他の利用統計値が含まれてもよい。使用頻度が高いリソースには、より高いランクが付けられてもよい。
一実施形態では、復元すべきリソースの初期リストが、多段階復元の第1の段階(例えばモーダルな段階)の間に構築されてもよい。ヒューリスティックに判定された特性および/または動的因子は、例えば、各リソースについて別個に合成されたヒューリスティックな重みに従って、リソースのリスト間の復元順序を判定するように割り当てられて合成されたヒューリスティックな重みとして表されてもよい。復元の後半の段階の間、最高の重みを持つリソースが、次にダウンロードするために選択されてもよい。
例えば、復元すべきリソースの順序付けられたリストが、少なくとも1つの復元ソース(例えば、クラウドストレージ、ストア、およびiTunes(登録商標)コンピュータ)からリソースを復元することのできる復元プロセスへ転送されてもよい。復元プロセスは、復元のステータスを把握し、環境(例えばネットワーク接続、電源ステータス)の変化を監視し、ユーザ入力を検出するなどして、復元用のリソースの順序を変更してもよい。復元は、(例えば、ユーザ入力および/または環境の変化を介して)中断され、新たな順序を持つリソースの新規リストが再構築されて、新規に構築されたリストを使って再開されてもよい。
一実施形態では、(例えば、iTunes(登録商標)コンピュータ、またはクラウドストレージなどの)或る個別のソースからの復元すべきリソースの待ち行列が、復元用に識別されたリソースの現在の順序付けられたリストに従って維持されてもよい。異なるソースには、別個の待ち行列が維持されてもよい。一部の実施形態では、リソースのリストは、ランタイムの間に(例えば、ユーザの中断、選択、および/またはその他のシステムイベントなどに起因して)動的に構築されるため、個々の待ち行列が、リソースの新たに構築されたリストに従って(例えば、或る個別のリソースを待ち行列のトップに移動させることによって)更新され、復元が継続されてもよい。
一部の実施形態では、リソースがデバイスを介してどのように用いられているかに従って、リソースの実際のコンテンツが協調的な形で復元されてもよい。例えば、リソースは、デバイスを復元する時にアプリケーションにすぐにアクセスできるようにするため、アプリケーションの周りにサンドボックスされてもよい。アプリケーションプログラムおよび関連のアプリケーションデータ(または設定)は、一緒に復元されるようにサンドボックスされてもよい。
実行可能なプログラム、ライブラリ、アプリケーションの設定、アプリケーションデータ(すなわち、アプリケーションを介してユーザが作成した文書のようなユーザデータ)などのような、アプリケーション用のリソースの依存関係は、これらのリソースをデバイスへ復元する順序を識別するために、サンドボックス内に維持されてもよい。アプリケーションは、たとえすべてのサンドボックスされたリソースが復元される前であっても、デバイスのユーザが利用できるようにされてもよい。例えば、音楽再生アプリケーションを実行するには、音楽コンテンツファイルがデバイスへ転送される前に、プレーヤの設定が復元されることが必要でありうる。
一実施形態では、多段階復元は、ユーザインタフェースと協調して、復元の間に(例えば、デバイスが完全に復元される前に)ユーザがデバイスと対話できるようにしてもよい。復元の個々の段階についてのライブアップデートのステータスまたは進行状況について、プレースホルダが表示されてもよい。リソースの実際の転送は、ユーザインタフェースを介して受信された入力に従って動的に順序付けられてもよい。
例えば、アプリケーション(例えば、写真ビューワ、動画プレーヤ、音楽プレーヤなど)および関連のアプリケーション設定は、対応するアプリケーションアイコンをユーザインタフェース上に表示して、アプリケーションが利用可能であることを示すように復元されてもよい。アプリケーションとユーザとの対話(例えば、写真を見ること)を検出した場合、関連のアプリケーションデータ(例えば写真)に関係するリソースにより高い優先度が割り当てられて、復元順序が動的に変更されてもよい。
一実施形態では、デバイスが復元されている時、アプリケーションの復元状態が、アプリケーションによって把握されてもよい。アプリケーションの復元状態は、例えば、「スピナ」タイプのユーザインタフェース要素か、例えば温度計スタイルの進捗インジケータのような表現か、あるいはその他の適用可能なユーザインタフェース要素を介して、提示されてもよい。アプリケーション用の資産は利用可能か否かが、ユーザインタフェースを介して示されてもよい。
実施形態によっては、復元状態を提示するユーザインタフェース要素は、復元の全体的速度に影響する因子の組み合わせに基づく複合進捗インジケータを含んでいてもよい。各因子は、例えば、アプリケーションのサイズ、アプリケーションのソースからのアプリケーションのダウンロード速度、ユーザデータのサイズ、ユーザデータのソースからのユーザデータのダウンロード速度、インストール時間、メディアコンテンツ(例えば、音楽、暗号化されたデータなど)の解読時間、および/またはその他の適用可能な因子に従って演算されてもよい。複合進捗インジケータは、例えば、メディアタイプおよび/または文脈(例えば、スプリングボードの文脈、iPod(登録商標)アプリケーションなど)に依存して、直感的な一意の温度計スタイルのインジケータか、円グラフスタイルのインジケータか、またはその他の適用可能なユーザインタフェーススタイルのインジケータとして提示または表示されてもよい。
一部の実施形態では、多様なユーザインタフェースコンポーネント/機能が、復元の状態に依存して提示(またはイネーブル)されてもよい。例えば、(例えば復元の第1の段階で)復元するように識別されたがまだ復元されていない資産は、灰色で表示されて、例えば、その資産のアプリケーションをユーザが起動できないようにされてもよい。しかし、順序付け、名前の変更、および/または削除のような所定のユーザインタフェース操作は、まだ復元されていない資産についても可能であってもよい。一部の実施形態では、復元の状態には、資産の利用可能性や利用不可能性が含まれていてもよい。ソース(例えば、iTunes(登録商標)ストア、資産ストア、またはその他の適用可能なストレージ)から復元すべき資産が、現時点で利用可能でない、例えばソース内に存在していない、および/または、不正なアクセス認証情報(例えば、資産のメタデータの中に含まれているパスワード)に関連しているのかどうかを、ソースインタフェースモジュールが判定してもよい。
一実施形態では、復元するように識別されたリソースまたは資産のリストが、例えば、同期操作と復元操作との両方のためにATCモジュールまたは共通モジュールの中に維持されて、復元順序および/または復元の進捗報告を動的に変更してもよい。アプリケーションは、プラグインモジュール(例えばライブラリ)および/またはAPI(アプリケーションプログラミングインタフェース)を介して復元の進捗にアクセスしてもよい。従って、アプリケーションは、ユーザインタフェース操作を介して、例えばアイコンを灰色で表示し、アイコンを回転させ、進捗バーを動かし、あるいはその他の適用可能なユーザインタフェースを変化させるなどして、復元の進捗のライブアップデートを提供することができる。例えば、ユーザインタフェースが、アプリケーションの復元の進捗を提示して、このアプリケーションについては資産の20%またはその他のパーセンテージがすでに復元されたことを示してもよい。
アプリケーションが、バックグラウンド段階において作業中の復元操作を中断または変更してもよい。例えば、ユーザが、ストアから購入したメディア資産(例えば歌または動画)用のアプリケーションをタップしてもよい。それに応じて、アプリケーションが、例えばATCモジュールを介しての資産転送の優先順序の付け直しを、例えばプラグインモジュールまたはAPIを介して要求してもよい。クラウド内の資産ストアのソースインタフェースモジュール(例えばitunestored)は、ユーザにタップされたメディア資産を、復元または転送を再開するための関連の待ち行列のトップに置くように命令されてもよい。
一実施形態では、バックアップ操作の間、デバイスが電源の状態を監視して、ロバストなユーザ体験を維持してもよい。電源の変化に関係するシステムイベントを検出した時点で、デバイスは、(例えば、バックグラウンド内の)プロセスを終了させるかキャンセルし、ユーザに気付かれずに透過的な形でリソースをバックアップ(または復元)してもよい。システムイベントは、例えば、デバイスへの電源コード、非接触充電パッド、またはその他の給電メカニズムのプラグが抜かれたり、切断されたりすることによって生じることがある。
一部の実施形態では、デバイスが十分な電力を持つ電源にプラグを差し込まれているかどうかを監視することに基づいて(例えば、電源が十分な電力を持たない場合にはバックアップを中止するため)イベントが生成されてもよい。あるいは、または任意で、イベントは、デバイス内の画面がオンかオフか、および/または、デバイスのネットワーク接続のステータスに基づいていてもよい。例えば、画面が(例えばどのような理由であれ)オンにされると、デバイスの自動バックアップがキャンセルされて、ユーザインタフェースの性能に影響を与えることが回避されてもよい。デバイスがもうWiFiネットワークに接続されていないことをイベントが示す場合、例えば、自動バックアップが中止されて、セルラー電話ネットワークを介してセルラーデータを使用することが回避されてもよい。
一部の実施形態では、バックアップ/復元を続けるか否かをユーザが選択するための選択肢を提供するために、警告が発せられてもよい。デバイスは、作業状態で電源投入されたまま維持され、例えば、ユーザに知られないままバックグラウンドでのバックアップ/復元操作に起因する電力の浪費をすることなく、バッテリ電力を節約してもよい。
一実施形態では、例えば、外部電力線にまたプラグを差し込まれた時にバックアップ/復元操作を再開できるようにするため、バックアップ/復元状態がデバイス内で維持されてもよい。バックアップ操作は再開され、デバイスが再スキャンされて、どのリソースがバックアップされたのかが識別され、例えば外部電力線のプラグが抜かれた時より前にすでにバックアップされていたリソースに関して不要なバックアップ操作が行われないようにされてもよい。
図1は、本明細書で記述される一実施形態による多段階多ソースのバックアップおよび復元のためのネットワークシステムの一実施形態を示すブロック図である。ネットワークシステム100は、サービス101、103、105、107、117およびデバイス111、113を接続する、動的に構成されたネットワーク109を含んでいてもよい。例えば、電話デバイスのようなクライアントデバイス113が、デバイス113がどこに位置しているかに依存して資産ストアサービス107に時々接続してもよい。デバイス113は、ローカルなバックアップデバイス111にローカルに結合されるかまたは(例えば有線で)直接接続されてもよく、バックアップデバイス111は、ハードディスク、固体デバイス、フラッシュメモリ、またはその他のストレージサービスのような大容量記憶装置にアクセスすることが可能なデスクトップコンピュータである可能性がある。一実施形態では、クライアントデバイス113は、すぐさま識別される複数のソース(例えばサーバ、サービス、またはローカルデバイス)101、103、105、107、111、117を介してバックアップおよび/または復元されてもよい。サービス101、103、105、107、111、117またはその他の適用可能なコンテンツサービスのようなバックアップサービスおよびバックアップソースが、デバイス113のようなデバイスへ、デバイスが資産をバックアップすることを必要とせず、要求に応じて資産またはコンテンツを復元することができてもよい。
図2は、本明細書で記述される一実施形態による、多段階多ソースのバックアップおよび復元のための例示的なシステムを示すブロック図である。一実施形態では、システム200は、図1のクライアントデバイス113に基づいていて、操作環境201を実行中であってもよく、操作環境201は、Apple Inc.製のiOS(登録商標)オペレーティングシステムまたはその他の適用可能なオペレーティングシステムに基づいていてもよい。
システム201は、バックアップ/復元管理モジュール207を含んでいて、選択されたソースを使ってネットワークインタフェースモジュール203を介してデバイスのリソースをバックアップおよび復元してもよい。リソースは、例えば、ファイルシステム217の中のファイルを含んでいてもよい。モジュール207は、ユーザが構成可能なスケジュールで、例えば、毎日、毎週、および/または、リモートのデバイスを介して受信された要求および/またはユーザ入力からのオンデマンドで、バックアップ/復元操作を開始してもよい。一部の実施形態では、モジュール207は、システムイベントハンドラモジュール205を介して監視された、(例えば、外部電源コードのプラグが抜けた場合の)外部電力の喪失のようなシステムイベントに応じて、バックアップ/復元操作を中断または再開してもよい。
ローカルデータベース209が、デバイス用にバックアップされた1つ以上のスナップショットをキャッシュに格納するかまたは記憶してもよい。スナップショットは、或る時刻点でバックアップされたデバイスのリソースの状態を表してもよい。バックアップ/復元操作は、システム201が、スナップショットに対応する、前の状態に戻ることを可能にしてもよい。
一実施形態では、アプリケーション213のような1つ以上のアプリケーションが、例えばステータスインタフェースモジュール215を介して、バックアップ/復元管理モジュール207と通信してもよい。アプリケーション213は、プラグインとしてかまたはAPIインタフェースを介して、ステータスインタフェースモジュール215とリンクしていてもよい。一実施形態では、アプリケーション213は、関連のリソースのバックアップ/復元ステータスにアクセスして、ユーザインタフェースモジュール219を介して進捗を提示してもよい。
あるいは、アプリケーション213は、ユーザインタフェースモジュール219を介して受信された、例えばユーザのタップ動作のようなユーザ要求をモジュール207へ中継して、バックアップ/復元操作をすぐさま順序付けし直すかまたは変更してもよい。ユーザ要求は、タッチスクリーンに基づく、マウスに基づく、ポインタに基づく、音声に基づく、あるいはその他の適用可能なユーザインタフェースの技術を介して受信されてもよい。一実施形態では、利用回数、利用頻度、利用時刻、またはその他の適用可能な利用統計値などのようなアプリケーション213の利用履歴が、利用履歴211の中に記録されてもよい。モジュール207は、利用履歴211を介して収集された情報に基づいてバックアップ/復元操作を動的に構成してもよい。
図3は、本明細書で記述される一実施形態による、複数のソースを用いる複数の段階におけるバックアップおよび復元を管理するための例示的なシステムを示すブロック図である。システム300は、バックアップ/復元管理モジュール207を含めて、図2のシステム200に基づいていてもよい。一実施形態では、システム300は、バックアップ/復元操作を行うための複数のバックアップ/復元ソースを発見し、および/または、それらとインタフェースを取ることができる、サービスフレームワーク309を含んでいてもよい。
例えば、(例えばitunestoredプロセスとして実行中の)ストアインタフェースモジュール301が、購入されたリソースを転送するために、図1のストア107のような利用可能なストアと通信してもよい。クラウド・インタフェース・モジュール307が、図1のクラウドバックアップサービス101のようなクラウドストレージと通信して、デバイス内のバックアップ/復元リソース用の実際のコンテンツを転送してもよい。(例えばitunestoredプロセスとして実行中の)ローカルデバイス・インタフェース・モジュール305が、図1のローカルバックアップデバイス111の中にホストされるiTunes(登録商標)のような、ローカルコンピュータの中で実行中の対応するサービスとメッセージを交換することによって、リソースをバックアップ、復元、および/または同期させてもよい。一実施形態では、インタフェースモジュール301、305、307が、ATCエンジンまたはモジュールのような共通インタフェースエンジン303を共有してもよく、インタフェースエンジン303は、インタフェースモジュール301、305、307よりも低レベルの抽象化でデータ転送を行うことができてもよい。
(例えば、backupdプロセスとして実行中の)多段階ハンドラモジュール311が、多様な段階のバックアップ/復元操作を管理することができる。例えば、多段階ハンドラモジュール311は、(例えば、構成されたスケジュールに従って)バックアップサービス105を使ってバックアップ操作を開始して、バックアップすべきリソースのスナップショットの記述を識別してもよい。一実施形態では、多段階ハンドラモジュール311は、モーダルな段階(すなわち第1段階)および/または、モーダルでないことがある(例えば、ユーザとの対話が可能な)その後の段階(例えばバックグラウンド段階)においてどのリソースを復元すべきかを識別してもよい。
一部の実施形態では、リソース待ち行列ハンドラモジュール313が、復元および/またはバックアップ用のリソースの順序付け直しを、例えば、構成されたヒューリスティックスおよび/またはユーザ要求に従って、動的に行ってもよい。リソースまたは資産は、サービスフレームワーク309の別個の待ち行列に従って順序付けされた多様なソースとの間で転送されてもよい。一実施形態では、デバイスの(例えばバックグランドにおける)復元の間にアプリケーションから受信された、ユーザのタップ動作またはその他のユーザインタフェース動作(例えばマウスのクリック、音声コマンド、キーボード選択、手のジェスチャなど)に応じて、リソース待ち行列ハンドラモジュール313が、まだ復元されていないリソースの優先順序の付け直しを、アプリケーションに有利になるように行ってもよい。リソース待ち行列ハンドラモジュール313は、サービスフレームワーク309に命令して、例えば、アプリケーションに関連するリソースをダウンロードする目的で、優先度を上げられるように待ち行列を更新させてもよい。
図4は、本明細書で記述される一実施形態による、デバイスのための増分バックアップ操作を行うプロセスの一実施形態を示すフロー図である。例示的なプロセス400は、(回路機構、専用論理などの)ハードウェア、(専用マシン上で実行されるような)ソフトウェア、あるいはそれら両方の組み合わせを含みうる処理論理によって行われてもよい。例えば、プロセス400は、図2のシステム200の一部のコンポーネントによって行われてもよい。
一実施形態では、プロセス400の処理論理は、少なくとも2つのステップを含むバックアップ操作を行ってもよい。プロセス400の処理論理は、メタデータをバックアップサービス(例えばMBS)へ送信し、コンテンツサービス(例えばMMCS)との間で認証するためのトークンをバックアップサービスから受信してもよい。その後、プロセス400の処理論理は、トークンを用いて実際のコンテンツをコンテンツサービスへアップロードしてもよい。バックアップサービス内のファイルのメタデータは、認証トークンを使って更新されてもよい。
ブロック401で、プロセス400の処理論理は、バックアップ管理サーバ(例えばMBS)内でデバイスに対応するバックアップを探し出してもよい。デバイスに対応する既存のバックアップが見つからない場合、バックアップが新たに作成されてもよい。ブロック403で、プロセス400の処理論理は、バックアップ管理サーバと同期するために、スナップショットのキャッシュ(またはマニフェストキャッシュ(manifest cache))を再構築してもよい。ブロック405で、プロセス400の処理論理は、前のバックアップ操作のスナップショットを識別してもよい。識別されたスナップショットは、未コミットのスナップショットまたは新規作成されたスナップショットであってもよい。識別されたスナップショットは、ファイルシステム内のファイルを記述するメタデータを含んでいてもよい。
ブロック407で、プロセス400の処理論理は、例えば、識別されたスナップショットとの比較を介して、ファイルシステムの変更(例えば新規ファイル、削除されたファイル、修正されたファイルなど)についてファイルシステムをスキャンしてもよい。ブロック409で、プロセス400の処理論理は、バックアップ管理サーバ、バックアップサービス管理サーバ(例えばMMCS)およびストレージベンダサーバ(例えば、Amazon、S3、またはクラウドストレージなど)との協調トランザクションを介してバックアップ操作を行ってもよい。ブロック411で、プロセス400の処理論理は、前に作成されたスナップショットをマージしてもよい(例えば、古いスナップショットを削除し、および/または、各々が前のスナップショットからの一組のファイルへの増分変更に対応する、複数の増分スナップショットにより、ファイル一式に対応する1つの全体的スナップショットを維持してもよい)。
図5は、本明細書で記述される一実施形態による、デバイス内で増分復元操作を行うプロセスの一実施形態を示すフロー図である。例示的なプロセス500は、(回路機構、専用論理などの)ハードウェア、(専用マシン上で実行されるような)ソフトウェア、あるいはそれら両方の組み合わせを含みうる処理論理によって行われてもよい。例えば、プロセス500は、図2のシステム200の一部のコンポーネントによって行われてもよい。
ブロック501で、プロセス500の処理論理は、ユーザからの入力に応じることなく、システムファイルをクラウドバックアップからデバイス(例えばiOS(登録商標)デバイス)へモーダル復元することができる。モーダルな復元の間、デバイスのオペレーティングシステムが利用可能であって実行されてもよい。ブロック503で、プロセス500の処理論理は、復元されたシステムファイルを使ってデバイスをユーザのための作業状態へリブートすることができる。
ブロック505で、プロセス500の処理論理は、バックグラウンドにおいてファイルをデバイスへ復元することができる。(例えば、購入または転送された)資産は、クラウドストア(例えばiTunes(登録商標)ストア)からダウンロードされてもよく、データをクラウドバックアップから復元することもできる。ブロック507で、プロセス500の処理論理は、(例えば、iTunes(登録商標)バックアップソフトウェアを実行中の)ユーザコンピュータからのファイルを同期/分割復元することができる。ファイルは、購入された資産、および/または、クラウドバックアップから復元されたのではないデータを含んでいてもよい。
図6は、本明細書で記述される一実施形態による、デバイスを復元するためのリソースに動的に優先順位を付けるプロセスの一実施形態を示すフロー図である。例示的なプロセス600は、(回路機構、専用論理などの)ハードウェア、(専用マシン上で実行されるような)ソフトウェア、あるいはそれら両方の組み合わせを含みうる処理論理によって行われてもよい。例えば、プロセス600は、図2のシステム200の一部のコンポーネントによって行われてもよい。
ブロック601で、プロセス600の処理論理は、デバイス(例えば、iOS(登録商標)ベースの移動デバイス)内でホストされているアプリケーションおよび/またはコンテンツの利用パタン(例えば、回数、利用時刻、利用位置、利用継続時間など)を把握することができる。ブロック603で、プロセス600の処理論理は、デバイスへ復元すべきアプリケーションおよび/またはコンテンツのリストを作成することができる。ブロック605で、プロセス600の処理論理は、デバイスの現在位置を判定してもよい。ブロック607で、プロセス600の処理論理は、復元すべきアプリケーションおよび/またはコンテンツのリストに、利用パタン、アプリケーションおよび/またはコンテンツに関連する適用可能なメタデータ(例えば、サイズ、タイプなど)、および/または現在位置での利用可能性に基づく順序を使って優先順位を付けてもよい。
ブロック609で、プロセス600の処理論理は、優先順位を付けられたリストを用いて現在位置においてアプリケーションおよび/またはコンテンツをデバイスへ復元することができる。ブロック611で、プロセス600の処理論理は、1つ以上のアプリケーション/コンテンツに関する所望の復元優先度を示す、例えばタップ入力を介したユーザ要求を検出してもよい。ブロック613で、プロセス600の処理論理は、復元すべきアプリケーションおよび/またはコンテンツの優先順位を付けられたリストの順序を、要求された所望の復元優先度に従って動的に変更してもよい。
図7は、本明細書で記述される一実施形態による、バックアップおよび/または復元操作のためにデバイスの電源を監視する例示的なシステムを示すブロック図である。システム700は、図1のデバイス113のようなクライアントデバイスに基づいていてもよい。
システム700は、外部電源(例えばAC/DCアダプタ、ソーラーパネル、誘導充電パッドなど)719からの再充電が停止したのを検出することに応じて、開始されて進行中である、電波による(ワイヤレス)バックアップ操作を終了させるように構成することができる。システム700は、AC/DCアダプタまたはその他の外部電源の出力に結合されるプラグのジャックまたはソケットのような外部電源ポート713と、再充電制御器の制御の下で再充電されるバッテリ717とを含んでいる。
電源検出器709が、外部電源ポートに結合され、そして、処理システム711に結合されている。処理システム711は、チップ上のマイクロプロセッサをベースにしたシステムかまたはその他の処理システムであってよい。電源検出器は、外部電源の利用可能性および再充電プロセスの状態を監視し、その監視に基づいて、再充電プロセスが、外部電源からの切断の結果として終了したかどうかを判定する。電源検出器は、再充電プロセスが切断の結果として終了したことを検出するのに応じて、終了信号(例えば、処理システムに接続されているバス上の中断信号)を生成することができ、それが、処理システムにワイヤレスバックアップ操作を終了させる。
一実施形態では、終了の前にはバックアップ操作が開始されて進行中であり、システム700のメモリ715の中に記憶されうるソフトウェアまたはユーザデータ(例えば、連絡先、カレンダのエントリ、ユーザのテキストファイル、歌や写真などのユーザのメディアファイルなど)またはそれら両方をバックアップしているところである。システム700内の処理システムは、本明細書内で記述されたバックアップ方法のいずれか1つを行って、ソフトウェアおよび/またはユーザデータを、バックアップ操作を通じて、ネットワーク703に接続されたサーバ701のようなリモートデバイス上に記憶させることができる。バックアッププロセスは、システム700内の1つ以上の無線(例えばWiFi無線またはセルラー電話無線)707を通じてワイヤレスで行われ、これらの無線は、システム700内の処理システムに接続され、1つ以上のネットワークに接続される。ネットワークは、単一のネットワーク(例えばワイヤレスLAN)であってもよいし、複数のネットワークまたはインターネットに接続されたセルラー電話ネットワークであってもよい。
終了信号に応じて、処理システムは、進行中の(この時点では不完全である)バックアッププロセスを、すぐに、またはバックアップ操作内で現在処理されているファイルのバックアップ操作を完了した後に、終了させることができる。本明細書で記述される処理システムおよび/または1つ以上のサーバは、署名または同期アンカーまたはその他のメカニズムを用いて、時期尚早に終了されたバックアップ操作において何が完了されたか、および、時期尚早に終了されたバックアップ操作において何が完了されなかったかを把握するために、アトミックなバックアップ操作を把握することができる。バックアップ操作の終了は、システム700によって、ユーザ要求または対話なしで自動的に行われてもよい。
システム700が再び外部電源から再充電されている場合、バックアッププロセスは、終了された状態から再開されてもよい。一実施形態では、システム700は、外部電源を通じて再充電されている場合は本明細書で記述された1つ以上の方法によってバックアップされ、そして、その電源から切断された場合はバックアップを終了させ、再充電が再開された場合は、終了されたバックアップ状態から再開される。従って、バックアッププロセスは、一実施形態では、図8に示すように、外部電源が接続されてシステム700内のバッテリを充電中であることを検出するのに応じて、開始または再開される。
図8は、本明細書で記述された一実施形態による、電力を節約するためにデバイスのバックアップおよび/または復元操作を中断するプロセスの一実施形態を示すフロー図である。例示的なプロセス800は、(回路機構、専用論理などの)ハードウェア、(専用マシン上で実行されるような)ソフトウェア、あるいはそれら両方の組み合わせを含みうる処理論理によって行われてもよい。例えば、プロセス800は、図2のシステム200または図7のシステム700の一部のコンポーネントによって行われてもよい。
ブロック801で、プロセス800の処理論理は、内部バッテリが再充電中であることを判定してもよい。ブロック803で、プロセス800の処理論理は、バックグラウンドプロセスとしてリモートのバックアップサーバを使ってバックアップ操作を開始し、そして、内部バッテリの再充電ステータスを監視してもよい。ブロック805で、プロセス800の処理論理は、内部バッテリの再充電が(例えば、AC/DCアダプタなどから切断されて)終了したと、再充電ステータスに従って判定してもよい。ブロック807で、プロセス800の処理論理は、バッテリの再充電が終了したことを検出するのに応じてバックアップ操作を終了させてもよい。ブロック809で、プロセス800の処理論理は、バッテリが再充電を開始することを検出するのに応じてバックアップ操作を再開してもよい。
図9は、本明細書で記述された実施形態と共に用いられうるデータ処理システムの一例を示す図である。図9に示すデータ処理システム900は、処理システム911を含んでおり、処理システム911は、1つ以上のマイクロプロセッサであってもよいし、チップの集積回路上のシステムであってもよい。また、システムは、処理システムによって実行されるデータおよびプログラムを記憶するメモリ901も含んでいる。また、システム900は、音声入力/出力サブシステム905を含んでおり、音声入力/出力サブシステム905には、例えば、スピーカとマイクとを通して音楽を再生するかまたは電話機能性を提供するためのマイクとスピーカとが含まれていてもよい。システム900は、少なくとも一部の実施形態では、ネットワークまたはローカルな接続を通して自動的におよび/または手動で、記述された多段階多ソース復元およびバックアップを行うことができる。一実施形態では、システム900は、図2に示すシステムを含んでいてもよい。
ディスプレイ制御器兼ディスプレイデバイス907が、ユーザのための視覚的なユーザインタフェースを提供し、このデジタルインタフェースには、OS X(登録商標)オペレーティングシステムソフトウェアを実行中のマッキントッシュコンピュータ上に示されるものに類似したグラフィカルユーザインタフェースが含まれてもよい。また、システム900は、別のデータ処理システムと通信するための1つ以上のワイヤレストランシーバ903を含んでいる。ワイヤレストランシーバは、WiFiトランシーバ、赤外線トランシーバ、Bluetoothトランシーバ、および/またはワイヤレスセルラー電話トランシーバであってもよい。理解されるであろうが、実施形態によっては、図示しない追加のコンポーネントがシステム900の一部であってもよいし、実施形態によっては、データ処理システム内で用いられるコンポーネントは、図9に示すものより少なくてもよい。
また、データ処理システム900は、ユーザがシステムに入力を行えるように設けられている1つ以上の入力デバイス913を含んでいる。これらの入力デバイスは、キーパッドまたはキーボードまたはタッチパネルまたはマルチタッチパネルであってもよい。また、データ処理システム900は、ドック用のコネクタであってもよい任意の入力/出力デバイス915を含んでいる。理解されるであろうが、当分野では周知であるように、図示しない1つ以上のバスが用いられて、各種のコンポーネントが相互接続されてもよい。図9に示すデータ処理システムは、手持ち式のコンピュータもしくは携帯情報端末(PDA)、または、PDAに似た機能性を持つセルラー電話、または、セルラー電話を含んでいる手持ち式コンピュータ、または、iPodのようなメディアプレーヤ、あるいは、1つのデバイスの中にPDAとセルラー電話とを組み合わせたメディアプレーヤのような、これらのデバイスの態様または機能を組み合わせたデバイスであってもよい。別の実施形態では、データ処理システム900は、ネットワークコンピュータ、または別のデバイス内に内蔵された処理デバイス、あるいは図9に示すものよりコンポーネントがより少ないかまたは場合によってはより多い、別のタイプのデータ処理システムであってもよい。
図10は、本発明における一実施形態と共に用いられうる、コンピュータシステムのようなデータ処理システムの一例を示す図である。例えば、システム1000は、図1に示すシステムの一部として実装されてもよい。図10はコンピュータシステムの各種のコンポーネントを示しているが、コンポーネントを相互接続するいずれかの個別のアーキテクチャまたは方式を表すことは意図されておらず、そのような詳細は本発明に密接に結びついてはいないことに留意されたい。また、ネットワークコンピュータ、および、コンポーネントがより少ないかまたは場合によってはより多いその他のデータ処理システムが本発明と共に用いられうることも、理解されるであろう。
図10に示すように、データ処理システムの一形態であるコンピュータシステム1000がバス1003を含んでおり、バス1003は、マイクロプロセッサ1005とROM(Read Only Memory)1007と揮発性RAM1009と不揮発性メモリ1011とに接続されている。マイクロプロセッサ1005は、メモリ1007、1009、1011から命令を検索して、上記の操作を行うために命令を実行してもよい。バス1003は、これらの各種のコンポーネントを一緒に相互接続し、また、これらのコンポーネント1005、1007、1009、1011をディスプレイ制御器兼ディスプレイデバイス1013と、例えばマウス、キーボード、モデム、ネットワークインタフェース、プリンタ、および当分野では周知のその他のデバイスであってもよい入力/出力(I/O)デバイスのような周辺デバイスとに相互接続する。典型的には、入力/出力デバイス1015は、入力/出力制御器1017を通じてシステムに接続される。揮発性RAM(Random Access Memory)1009は、典型的には、メモリ内のデータをリフレッシュまたは維持するために持続的に電力を必要とするダイナミックRAM(DRAM)として実装される。
マスストレージ1011は、典型的には、磁気ハードドライブまたは磁気光学ドライブまたは光学ドライブまたはDVD RAMまたはフラッシュメモリまたは、電力がシステムから取り外された後であってもデータ(例えば、大量のデータ)を維持する、その他のタイプのメモリシステムである。また、典型的には、マスストレージ1011も、ランダムアクセスメモリであろうが、これは必要とされていない。図10は、マスストレージ1011が、データ処理システム内の残りのコンポーネントに直接接続されるローカルデバイスであることを示しているが、本発明は、モデムやイーサネットインタフェースやワイヤレス・ネットワーキング・インタフェースのようなネットワークインタフェースを通じてデータ処理システムに接続されるネットワークストレージデバイスのような、システムからリモートである不揮発性メモリを利用しうることは、理解されるであろう。バス1003には、当分野では周知の各種のブリッジ、制御器および/またはアダプタを通じて相互に接続された1つ以上のバスが含まれていてもよい。
上記で説明したものの各部分が、専用の論理回路のような論理回路機構を使って、あるいは、マイクロコントローラまたはその他の形のプログラムコード命令を実行する処理コアを使って、実装されてもよい。従って、上記の議論によって教示されたプロセスが、命令を実行するマシンに所定の機能を行わせるマシン実行可能命令のようなプログラムコードを使って行われてもよい。この文脈では、「マシン」とは、中間形態の(または「抽象的な」)命令をプロセッサ固有の命令へ変換するマシン(例えば、「バーチャルマシン」(例えばJava Virtual Machine)、インタプリタ、Common Language Runtime、高レベル言語バーチャルマシンなどのような抽象実行環境)、および/または、汎用プロセッサおよび/または特定用途プロセッサのような、命令を実行するようになっている半導体チップ上に配置された電子回路機構(例えば、トランジスタを実装した「論理回路機構」)であってもよい。また、上記の議論によって教示されたプロセスは、プログラムコードを実行することなくプロセス(またはその一部分)を行うようになっている電子回路機構によって(マシンに代わるものとして、またはマシンと組み合わせて)行われてもよい。
プログラムコードを記憶するため、製品が用いられてもよい。プログラムコードを記憶する製品は、1つ以上のメモリ(例えば、1つ以上のフラッシュメモリ、ランダムアクセスメモリ(スタティック、ダイナミック、またはその他)、光ディスク、CD−ROM、DVD ROM、EPROM、EEPROM、磁気カードまたは光カード、あるいはその他のタイプの、電子的命令を記憶するのに適したマシン可読メディア)として実施されてもよいが、それらに限定されない。また、プログラムコードは、リモートのコンピュータ(例えばサーバ)から要求側コンピュータ(例えばクライアント)へ、伝搬メディアの中に具現化されたデータ信号によって(例えば、通信リンク(例えばネットワーク接続)を介して)ダウンロードされてもよい。
本明細書では「メモリ」という用語は、ダイナミック・ランダム・アクセス・メモリ(DRAM)やスタティックRAM(SRAM)のような、すべての揮発性の記憶媒体を包含することが意図されている。コンピュータ実行可能命令は、磁気ハードディスクや光ディスクのような不揮発性記憶デバイス上に記憶されてもよく、典型的には、プロセッサによってソフトウェアの実行中にメモリ内へ、ダイレクトメモリアクセスプロセスによって、書き込まれる。当業者であれば、「マシン可読記憶媒体」という用語は、プロセッサによってアクセス可能ないかなるタイプの揮発性または不揮発性の記憶デバイスをも含むということをすぐに理解するであろう。
上記の詳細記述は、コンピュータメモリの中のデータビットに関する操作のアルゴリズムおよび象徴的な表現に関して提示されている。これらのアルゴリズムに関する記述および表現は、データ処理分野において当業者によって用いられ、自分達の作業の中身を他の当業者に最も効果的に伝達するツールである。本明細書では、また、一般には、アルゴリズムとは、所望の結果をもたらす一連の一貫した操作であると考えられている。これらの操作は、物理量の物理的マニピュレーションを必要とする操作である。必ずというわけではないが、通常は、これらの量は、記憶され、転送され、合成され、比較され、その他の方式でマニピュレートされることができる電気信号または磁気信号という形を取る。主に共通使用という理由から、時には、これらの信号をビット、値、要素、シンボル、文字、用語、数などとして言及することが便利であることが分かっている。
しかし、留意すべきことだが、これらの用語および同様の用語はすべて、適切な物理量に関連付けられることになり、これらの量に適用される単に便利なラベルなのである。理解されることだが、特に別段の指定がない限り、また上記から明らかなとおり、本記述全体を通して、例えば「処理」または「演算」または「計算」または「判定」または「表示」のような用語を用いた議論は、コンピュータシステムまたは同様の電子的演算デバイスの動作およびプロセスのことを言う。コンピュータシステムまたは同様の電子的演算デバイスは、コンピュータシステムのレジスタおよびメモリの中の物理(電子)量として表されるデータをマニピュレートして、コンピュータシステムのメモリまたはレジスタまたはその他のそのような情報のストレージ、送信、または表示デバイスの中の物理量として同様に表される他のデータへと変換する。
また、本発明は、本明細書に記述された操作を行うための装置に関する。この装置は、必要とされる目的に合わせて特別に構築されてもよいし、コンピュータ内に記憶されるコンピュータプログラムによって選択的に起動されるか再構成される汎用コンピュータを備えていてもよい。そのようなコンピュータプログラムは、フロッピーディスク、光ディスク、CD−ROMおよび磁気光ディスクを含むいずれかのタイプのディスクと、読取専用メモリ(ROM)と、RAMと、EPROMと、EEPROMと、磁気カードおよび光カードと、あるいは、電子的命令を記憶するのに適していて、それぞれがコンピュータシステムバスに接続されているいずれかのタイプの媒体とのような、コンピュータ可読記憶媒体の中に記憶されていてもよいが、それらに限定されない。
本明細書で提示されたプロセスおよびディスプレイは、いかなる個別のコンピュータまたはその他の装置にも本質的に関係してはいない。各種の汎用システムが、本明細書の教示内容によるプログラムと共に用いられてもよいし、記述された操作を行うためのより特殊な装置を構築することが便利であると分かることもありうる。各種のこれらのシステムに必要な構造は、以下の記述から明らかであろう。加えて、本発明は、いずれかの特定のプログラム言語に関して記述しているのではない。理解されるであろうが、各種のプログラム言語を用いて、本明細書に記述された本発明の教示内容を実装することができる。
前述の明細書において、本発明をその特定の例示的な実施形態に関して記述してきた。下記の請求項の中に記述した本発明の広範な趣旨と範囲とから逸脱することなく、それに対して各種の修正形態が作られうることは明らかであろう。従って、本明細書および図面は、限定的な意味でなく例示的な意味で考えられるべきである。

Claims (23)

  1. 命令を有する非一時的なマシン可読記録媒体であって、前記命令は、マシンによって実行されると、前記マシンに方法を実行させ、前記方法は、
    デバイス内のリソースの第1のバックアップソースへの変更を識別するステップと、
    前記第1のバックアップソースから、第2のバックアップソースに対する許可のためのトークンを受信するのに応じて、前記トークンを用いて、前記リソースの変更を前記第2のバックアップソースにバックアップするステップと、
    前記第2のバックアップソースに対する前記変更の前記バックアップが成功した場合、前記リソースの変更を前記第1のバックアップソースに対してコミットするステップと、
    を備えることを特徴とするマシン可読記録媒体。
  2. 前記識別するステップは、
    前記デバイスの以前のスナップショットを前記第1のバックアップソースと同期させるステップであって、前記以前のスナップショットは以前の時点に前記デバイスのために既にバックアップされているリソースを示す、ステップと、
    前記変更に関して、前記デバイスのリソースを前記以前のスナップショットと比較するステップと、
    を含む
    ことを特徴とする請求項1に記載のマシン可読記録媒体。
  3. 前記デバイスはキャッシュスナップショットを含み、
    前記同期させるステップは、前記第1のバックアップソースを介して、前記キャッシュスナップショットが前記以前のスナップショットに関して期限切れであるか否かを判定するステップを含む
    ことを特徴とする請求項2に記載のマシン可読記録媒体。
  4. 前記同期させるステップは、前記デバイスの識別子に基づいており、
    前記以前のスナップショットは、前記第1のバックアップソースの中で前記識別子に対応して維持される
    ことを特徴とする請求項2に記載のマシン可読記録媒体。
  5. 前記デバイスはファイルシステムを含み、
    前記リソースは前記ファイルシステム中のファイルを含み、
    前記比較するステップは、どのファイルをバックアップする必要があり、どのファイルが既にバックアップされているかを前記以前のスナップショットに基づいて追跡するために、前記ファイルシステムをスキャンする
    ことを特徴とする請求項2に記載のマシン可読記録媒体。
  6. ファイルがネットワークアクセス可能なサイトから入手可能な場合、当該ファイルはバックアップする必要が無い
    ことを特徴とする請求項5に記載のマシン可読記録媒体。
  7. 前記リソースの実際のコンテンツを記述することなく前記リソースに関する情報を記述する、前記リソースのメタデータを維持するステップを更に備え、
    前記第1のバックアップソースと前記デバイスとの間の通信は、前記通信に関して軽量のネットワークを可能にするために、前記リソースの1つの抽象化層として前記メタデータに基づいており、
    前記第2のバックアップソースと前記デバイスとの間の通信は、前記第2のバックアップソース内のバックアップストレージを共有することを可能にするために、前記リソースの別個の抽象化層として前記リソースの前記実際のコンテンツに基づいている
    ことを特徴とする請求項1に記載のマシン可読記録媒体。
  8. 前記デバイスは、バックアップクオータを有するアカウントに関連付けられており、
    前記許可は、前記バックアップクオータを超過することなく、前記リソースの変更のためのバックアップスペースが前記バックアップストレージの中に予約されたということを示す
    ことを特徴とする請求項7に記載のマシン可読記録媒体。
  9. 前記実際のコンテンツの一部分が前記リソースの変更に対応し、
    前記バックアップするステップは、
    前記第1のバックアップソースから参照される第3のバックアップソースを、前記トークンを介して認証するステップと、
    前記第3のバックアップソースから受信した指示に応えて、前記リソースの前記別個の抽象化層に従い、前記実際のコンテンツの前記一部分をデータチャンクに分割するステップと、
    を含む
    ことを特徴とする請求項7に記載のマシン可読記録媒体。
  10. 前記第3のバックアップソースを介して、どのデータチャンクが存在しなくてバックアップする必要があるかを識別するステップと、
    前記識別したデータチャンクを前記第2のバックアップソースへアップロードするステップと、
    を更に備えることを特徴とする請求項9に記載のマシン可読記録媒体。
  11. どのデータチャンクがということを識別する前記ステップは、各データチャンクを一意に識別するチャンク識別子を生成するステップを含み、前記第3のバックアップソースは、データチャンクのチャンク識別子に従って、当該データチャンクが既にバックアップされているか否かを判定する
    ことを特徴とする請求項10に記載のマシン可読記録媒体。
  12. 前記チャンク識別子は、対応するチャンクデータからハッシュされた署名である
    ことを特徴とする請求項11に記載のマシン可読記録媒体。
  13. 前記リソースは、ファイルから分割されたデータチャンクのうちの少なくとも1つに関連付けられたファイルを含み、
    前記方法は、前記第3のバックアップソースにおける前記関連付けられたデータチャンクに関する参照として、前記ファイルに対して任意の識別子を割り当てることで、前記任意の識別子がもはや参照されていない場合に前記第3のバックアップソースを介したガベージコレクションを可能にするステップを更に備える
    ことを特徴とする請求項11に記載のマシン可読記録媒体。
  14. 前記データチャンクのうちの第1のデータチャンクは、第2のデータチャンクがバックアップソースの中に存在すると共に当該第2のデータチャンクが前記第2のデータチャンクを識別する特定の識別子によって識別される場合には、バックアップする必要が無く、
    前記第1及び第2のデータチャンクは、別個の任意の識別子を割り当てられた別個のファイルに関連づけられている
    ことを特徴とする請求項13に記載のマシン可読記録媒体。
  15. 前記アップロードするステップは、前記デバイスにおいて前記第3のバックアップソースから受信した認証キーによって可能にされる
    ことを特徴とする請求項10に記載のマシン可読記録媒体。
  16. 命令を有する非一時的なマシン可読記録媒体であって、前記命令は、マシンによって実行されると、前記マシンに方法を実行させ、前記方法は、
    デバイス内に格納されたファイルの実際のコンテンツを記述するメタデータであって、前記ファイルを表す第1の抽象化層を表すメタデータを維持するステップと、
    前記第1の抽象化層から、前記デバイスからバックアップすべき前記実際のコンテンツの一部分を識別するステップと、
    バックアップすべき前記実際のコンテンツの前記一部分に関するコンテンツ識別子を動的に生成するステップであって、前記コンテンツ識別子は、前記第1の抽象化層とは別個の、前記ファイルを表す第2の抽象化層を表す、ステップと、
    前記コンテンツ識別子を介して、前記実際のコンテンツの前記一部分をネットワークアクセス可能なストレージへアップロードするステップと、
    を備えることを特徴とするマシン可読記録媒体。
  17. 前記実際のコンテンツの前記一部分は、前記ファイルの一部分に属し、
    前記ネットワークアクセス可能なストレージは、前記ファイルの前記一部分を復元するには不十分なデータを格納する
    ことを特徴とする請求項16に記載のマシン可読記録媒体。
  18. 前記識別するステップは、前記第1の抽象化層を用いて前記第1のバックアップソースと通信するネットワークプロトコルに基づく
    ことを特徴とする請求項17に記載のマシン可読記録媒体。
  19. 前記第2の抽象化層を用いるネットワークプロトコルを介して、前記第2のバックアップソースを用いて、前記ファイルの前記一部分について、前記ネットワークアクセス可能なストレージへアップロードすべき前記実際のコンテンツの前記一部分を識別するステップを更に備える
    ことを特徴とする請求項17に記載のマシン可読記録媒体。
  20. 前記ネットワークアクセス可能なストレージは、前記アップロードの効率性を向上させるために、前記第2のバックアップソースを介して動的に構成される
    ことを特徴とする請求項17に記載のマシン可読記録媒体。
  21. コンピュータによって実行される方法であって、
    デバイス内のリソースの第1のバックアップソースへの変更を識別するステップと、
    前記第1のバックアップソースから、第2のバックアップソースに対する許可のためのトークンを受信するのに応じて、前記トークンを用いて、前記リソースの変更を前記第2のバックアップソースにバックアップするステップと、
    前記第2のバックアップソースに対する前記変更の前記バックアップが成功した場合、前記リソースの変更を前記第1のバックアップソースに対してコミットするステップと、
    を備えることを特徴とする方法。
  22. コンピュータによって実行される方法であって、
    デバイス内に格納されたファイルの実際のコンテンツを記述するメタデータであって、前記ファイルを表す第1の抽象化層を表すメタデータを維持するステップと、
    前記第1の抽象化層から、前記デバイスからバックアップすべき前記実際のコンテンツの一部分を識別するステップと、
    バックアップすべき前記実際のコンテンツの前記一部分に関するコンテンツ識別子を動的に生成するステップであって、前記コンテンツ識別子は、前記第1の抽象化層とは別個の、前記ファイルを表す第2の抽象化層を表す、ステップと、
    前記コンテンツ識別子を介して、前記実際のコンテンツの前記一部分をネットワークアクセス可能なストレージへアップロードするステップと、
    を備えることを特徴とする方法。
  23. コンピュータシステムであって、
    実行可能な命令を格納するメモリと、
    少なくとも第1及び第2のバックアップソースと結合するネットワークインタフェースと、
    前記メモリ及び前記ネットワークインタフェースと結合して前記メモリからの前記命令を実行するプロセッサと、
    を備え、前記プロセッサは、
    前記コンピュータシステム内のリソースの前記第1のバックアップソースへの変更を識別し、
    前記第1のバックアップソースから、前記第2のバックアップソースに対する許可のためのトークンを受信するのに応じて、前記トークンを用いて、前記リソースの変更を前記第2のバックアップソースにバックアップし、
    前記第2のバックアップソースに対する前記変更の前記バックアップが成功した場合、前記リソースの変更を前記第1のバックアップソースに対してコミットする
    ように構成される
    ことを特徴とするコンピュータシステム。
JP2014513561A 2011-06-03 2012-05-22 多段階多ソースバックアップの方法と装置 Active JP5728130B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161493360P 2011-06-03 2011-06-03
US61/493,360 2011-06-03
US13/226,409 2011-09-06
US13/226,409 US9465696B2 (en) 2011-06-03 2011-09-06 Methods and apparatus for multi-phase multi-source backup
PCT/US2012/039007 WO2012166441A1 (en) 2011-06-03 2012-05-22 Methods and apparatus for multi-phase multi-source backup

Publications (2)

Publication Number Publication Date
JP2014519655A true JP2014519655A (ja) 2014-08-14
JP5728130B2 JP5728130B2 (ja) 2015-06-03

Family

ID=46201829

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014513561A Active JP5728130B2 (ja) 2011-06-03 2012-05-22 多段階多ソースバックアップの方法と装置

Country Status (7)

Country Link
US (1) US9465696B2 (ja)
EP (1) EP2716007B1 (ja)
JP (1) JP5728130B2 (ja)
KR (1) KR101598724B1 (ja)
CN (1) CN103597801B (ja)
AU (1) AU2012262731B2 (ja)
WO (1) WO2012166441A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022046450A (ja) * 2020-09-10 2022-03-23 バイオセンス・ウエブスター・(イスラエル)・リミテッド 医療データを安全に記憶し取得する方法

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003028183A1 (en) * 2001-09-28 2003-04-03 Commvault Systems, Inc. System and method for generating and managing quick recovery volumes
US8676759B1 (en) 2009-09-30 2014-03-18 Sonicwall, Inc. Continuous data backup using real time delta storage
US9411687B2 (en) 2011-06-03 2016-08-09 Apple Inc. Methods and apparatus for interface in multi-phase restore
US8849819B2 (en) 2011-08-05 2014-09-30 Deacon Johnson System and method for controlling and organizing metadata associated with on-line content
JP5895523B2 (ja) * 2011-12-28 2016-03-30 富士通株式会社 情報処理装置及びデータ管理方法
US9424433B2 (en) * 2012-02-13 2016-08-23 Synchronoss Technologies, Inc. Data storage management
US9489271B1 (en) * 2012-03-29 2016-11-08 Veritas Technologies Llc User interface for restoring databases
EP2680487B1 (en) * 2012-06-29 2019-04-10 Orange Secured cloud data storage, distribution and restoration among multiple devices of a user
US20140075583A1 (en) * 2012-09-10 2014-03-13 Apple Inc. Management of media items
US9542423B2 (en) 2012-12-31 2017-01-10 Apple Inc. Backup user interface
US9613047B2 (en) * 2013-02-13 2017-04-04 Dropbox, Inc. Automatic content item upload
US9715516B1 (en) 2013-11-19 2017-07-25 Synchronoss Technologies, Inc. Edition-based redefinition for tables
US10776321B1 (en) * 2013-12-07 2020-09-15 Trilio Data, Inc. Scalable de-duplication (dedupe) file system
US10374904B2 (en) 2015-05-15 2019-08-06 Cisco Technology, Inc. Diagnostic network visualization
US9967158B2 (en) 2015-06-05 2018-05-08 Cisco Technology, Inc. Interactive hierarchical network chord diagram for application dependency mapping
US10536357B2 (en) 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US10140187B1 (en) * 2015-06-30 2018-11-27 Symantec Corporation Techniques for system backup
US10788872B2 (en) 2015-09-21 2020-09-29 Hewlett Packard Enterprise Development Lp Server node shutdown
US10007457B2 (en) * 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10430293B1 (en) 2015-12-30 2019-10-01 EMC IP Holding Company LLC Backup client agent
US10289438B2 (en) 2016-06-16 2019-05-14 Cisco Technology, Inc. Techniques for coordination of application components deployed on distributed virtual machines
US10708183B2 (en) 2016-07-21 2020-07-07 Cisco Technology, Inc. System and method of providing segment routing as a service
US10972388B2 (en) 2016-11-22 2021-04-06 Cisco Technology, Inc. Federated microburst detection
US10884875B2 (en) * 2016-12-15 2021-01-05 Palantir Technologies Inc. Incremental backup of computer data files
US10708152B2 (en) 2017-03-23 2020-07-07 Cisco Technology, Inc. Predicting application and network performance
US10523512B2 (en) 2017-03-24 2019-12-31 Cisco Technology, Inc. Network agent for generating platform specific network policies
US10250446B2 (en) 2017-03-27 2019-04-02 Cisco Technology, Inc. Distributed policy store
US10764141B2 (en) 2017-03-27 2020-09-01 Cisco Technology, Inc. Network agent for reporting to a network policy system
US10594560B2 (en) 2017-03-27 2020-03-17 Cisco Technology, Inc. Intent driven network policy platform
US10873794B2 (en) 2017-03-28 2020-12-22 Cisco Technology, Inc. Flowlet resolution for application performance monitoring and management
US10680887B2 (en) 2017-07-21 2020-06-09 Cisco Technology, Inc. Remote device status audit and recovery
US10554501B2 (en) 2017-10-23 2020-02-04 Cisco Technology, Inc. Network migration assistant
US10523541B2 (en) 2017-10-25 2019-12-31 Cisco Technology, Inc. Federated network and application data analytics platform
US10594542B2 (en) 2017-10-27 2020-03-17 Cisco Technology, Inc. System and method for network root cause analysis
US11233821B2 (en) 2018-01-04 2022-01-25 Cisco Technology, Inc. Network intrusion counter-intelligence
KR102005727B1 (ko) * 2018-01-22 2019-07-31 한국교통대학교산학협력단 파일 시스템의 변경 연산 가로채기 기법을 기반으로 한 다중 스냅샷 방법
US10999149B2 (en) 2018-01-25 2021-05-04 Cisco Technology, Inc. Automatic configuration discovery based on traffic flow data
US10826803B2 (en) 2018-01-25 2020-11-03 Cisco Technology, Inc. Mechanism for facilitating efficient policy updates
US10798015B2 (en) 2018-01-25 2020-10-06 Cisco Technology, Inc. Discovery of middleboxes using traffic flow stitching
US10873593B2 (en) 2018-01-25 2020-12-22 Cisco Technology, Inc. Mechanism for identifying differences between network snapshots
US10574575B2 (en) 2018-01-25 2020-02-25 Cisco Technology, Inc. Network flow stitching using middle box flow stitching
US11128700B2 (en) 2018-01-26 2021-09-21 Cisco Technology, Inc. Load balancing configuration based on traffic flow telemetry
US10783043B2 (en) * 2018-03-16 2020-09-22 EMC IP Holding Company LLC Automation and optimization of data recovery after a ransomware attack
CN108710547B (zh) * 2018-05-10 2020-10-27 腾讯科技(深圳)有限公司 一种数据备份方法、装置、终端及存储介质
US11455275B2 (en) * 2018-07-18 2022-09-27 Weka.IO Ltd. Storing a point in time coherently for a distributed storage system
CN109408429B (zh) * 2018-11-01 2020-10-16 苏州浪潮智能科技有限公司 一种低速接口的缓存方法与装置
KR102605560B1 (ko) * 2018-11-30 2023-11-24 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
US10936240B2 (en) * 2018-12-04 2021-03-02 International Business Machines Corporation Using merged snapshots to increase operational efficiency for network caching based disaster recovery
US11573863B2 (en) 2019-04-08 2023-02-07 Kyndryl, Inc. Virtual machine backup and restore coordinator
US11921592B2 (en) * 2020-07-20 2024-03-05 Google Llc Restoration of a computing session
US11588847B2 (en) * 2020-12-15 2023-02-21 International Business Machines Corporation Automated seamless recovery
US11606230B2 (en) 2021-03-03 2023-03-14 Apple Inc. Channel equalization
US11784731B2 (en) * 2021-03-09 2023-10-10 Apple Inc. Multi-phase-level signaling to improve data bandwidth over lossy channels
CN117827534A (zh) * 2022-06-16 2024-04-05 荣耀终端有限公司 一种数据克隆过程的管控方法、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04199209A (ja) * 1990-11-26 1992-07-20 Hitachi Ltd 携帯用バッテリパック
JPH11168837A (ja) * 1997-10-01 1999-06-22 Casio Comput Co Ltd 携帯通信機器用充電装置
JP2001147784A (ja) * 1999-11-19 2001-05-29 Victor Co Of Japan Ltd 自動デフラグ装置
JP2003347988A (ja) * 2002-05-22 2003-12-05 Ntt Docomo Inc 移動通信端末、情報記憶モジュール、プログラムおよび記録媒体
JP2009519522A (ja) * 2005-12-13 2009-05-14 インターナショナル・ビジネス・マシーンズ・コーポレーション データ処理システム内でバックアップ・セットを生成するためのコンピュータ・プログラム、システム、および方法(特定の時点へのバックアップ・セットの生成)

Family Cites Families (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69231873T2 (de) 1992-01-08 2002-04-04 Emc Corp Verfahren zur Synchronisierung von reservierten Bereichen in einer redundanten Speicheranordnung
US5241668A (en) 1992-04-20 1993-08-31 International Business Machines Corporation Method and system for automated termination and resumption in a time zero backup copy process
US5737557A (en) 1995-05-26 1998-04-07 Ast Research, Inc. Intelligent window user interface for computers
US6061409A (en) 1996-06-27 2000-05-09 Matsushita Electric Industrial Co., Ltd. Synchronization recovery for a mobile telephone
JPH11134234A (ja) 1997-08-26 1999-05-21 Reliatec Ltd バックアップ・リストア方法およびその制御装置,並びにバックアップ・リストアプログラムを記録したコンピュータ読み取り可能な記録媒体
US6141771A (en) 1998-02-06 2000-10-31 International Business Machines Corporation Method and system for providing a trusted machine state
US6247126B1 (en) 1999-01-25 2001-06-12 Dell Usa, L.P. Recoverable software installation process and apparatus for a computer system
US7395282B1 (en) 1999-07-15 2008-07-01 Commvault Systems, Inc. Hierarchical backup and retrieval system
US6851073B1 (en) 1999-07-26 2005-02-01 Microsoft Corporation Extensible system recovery architecture
US20070033252A1 (en) * 2000-03-30 2007-02-08 Combest Ricky F Dynamic virtual network and method
JP4568963B2 (ja) 2000-06-08 2010-10-27 ソニー株式会社 情報処理装置、情報通信システム
WO2002059731A2 (en) 2000-11-17 2002-08-01 Links Point, Inc. Methods and systems for reducing power consumption in computer data communications
US7216136B2 (en) * 2000-12-11 2007-05-08 International Business Machines Corporation Concurrent collection of cyclic garbage in reference counting systems
US6920447B2 (en) 2001-02-15 2005-07-19 Microsoft Corporation Concurrent data recall in a hierarchical storage environment using plural queues
US7146524B2 (en) 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US7287249B2 (en) * 2001-09-28 2007-10-23 Siebel Systems, Inc. Method and system for tracking and exchanging incremental changes to hierarchical objects
US7237075B2 (en) * 2002-01-22 2007-06-26 Columbia Data Products, Inc. Persistent snapshot methods
US7291480B2 (en) 2002-03-13 2007-11-06 Black Jennifer A Device and method for detecting antibiotic-inactivating enzymes
US8150937B2 (en) 2004-10-25 2012-04-03 Apple Inc. Wireless synchronization between media player and host device
US20030220913A1 (en) 2002-05-24 2003-11-27 International Business Machines Corporation Techniques for personalized and adaptive search services
EP1674998A3 (en) 2002-06-21 2013-05-22 Sharp Kabushiki Kaisha Information processing apparatus, information equipment, information processing system, automatic backup method, data transmission and reception method, automatic backup program, data transmission and reception program, and record medium having the programs recorded thereon
US7340486B1 (en) 2002-10-10 2008-03-04 Network Appliance, Inc. System and method for file system snapshot of a virtual logical disk
DE10393771T5 (de) * 2002-11-20 2006-03-30 Filesx Ltd. Schnelle Datensicherungsspeicherung und schnelle Datenwiederherstellung (FBSRD)
WO2004059486A1 (en) 2002-12-18 2004-07-15 Emc Corporation Resource allocation aware queuing of requests for media resources
US7720818B1 (en) 2002-12-30 2010-05-18 Sprint Communications Company L.P. On-line account management system having a tiered account information storage system
JP3974538B2 (ja) 2003-02-20 2007-09-12 株式会社日立製作所 情報処理システム
US7240219B2 (en) 2003-05-25 2007-07-03 Sandisk Il Ltd. Method and system for maintaining backup of portable storage devices
US7328366B2 (en) * 2003-06-06 2008-02-05 Cascade Basic Research Corp. Method and system for reciprocal data backup
US7124323B2 (en) 2003-06-18 2006-10-17 International Business Machines Corporation Method, system, and program for recovery of a reverse restore operation
US20050210304A1 (en) 2003-06-26 2005-09-22 Copan Systems Method and apparatus for power-efficient high-capacity scalable storage system
US7143117B2 (en) 2003-09-25 2006-11-28 International Business Machines Corporation Method, system, and program for data synchronization by determining whether a first identifier for a portion of data at a first source and a second identifier for a portion of corresponding data at a second source match
US7225208B2 (en) 2003-09-30 2007-05-29 Iron Mountain Incorporated Systems and methods for backing up data files
GB2423850B (en) 2003-11-13 2009-05-20 Commvault Systems Inc System and method for performing integrated storage operations
ATE511677T1 (de) 2003-12-18 2011-06-15 Research In Motion Ltd System und verfahren zur verwaltung digitaler berechtigungen
JP4551096B2 (ja) 2004-02-03 2010-09-22 株式会社日立製作所 ストレージサブシステム
JP2005222171A (ja) 2004-02-03 2005-08-18 Nec Access Technica Ltd 携帯電話機
US7526768B2 (en) 2004-02-04 2009-04-28 Microsoft Corporation Cross-pollination of multiple sync sources
US7206911B2 (en) 2004-02-25 2007-04-17 International Business Machines Corporation Method, system, and program for a system architecture for an arbitrary number of backup components
TWI278199B (en) 2004-03-26 2007-04-01 Quanta Comp Inc Deployment method and system for multiple remote computers
US7330997B1 (en) 2004-06-03 2008-02-12 Gary Odom Selective reciprocal backup
US7343518B2 (en) 2004-06-23 2008-03-11 Intel Corporation Method for data backup of computing platforms that are occasionally connected
US7437388B1 (en) 2004-12-21 2008-10-14 Symantec Corporation Protecting data for distributed applications using cooperative backup agents
US7721138B1 (en) 2004-12-28 2010-05-18 Acronis Inc. System and method for on-the-fly migration of server from backup
US7506010B2 (en) * 2005-02-08 2009-03-17 Pro Softnet Corporation Storing and retrieving computer data files using an encrypted network drive file system
US20080065637A1 (en) 2005-04-14 2008-03-13 Emc Corporation Locating last processed data
US7590668B2 (en) 2005-04-15 2009-09-15 Microsoft Corporation Pausable backups of file system items
US8103632B2 (en) 2005-04-22 2012-01-24 Microsoft Corporation Self-contained partial database backups
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
US20070005669A1 (en) 2005-06-09 2007-01-04 Mueller Christoph K Method and system for automated disk i/o optimization of restored databases
US7747577B2 (en) 2005-08-17 2010-06-29 International Business Machines Corporation Management of redundant objects in storage systems
US7779069B2 (en) 2005-09-09 2010-08-17 Soonr Corporation Network adapted for mobile devices
KR100678921B1 (ko) 2005-10-18 2007-02-05 삼성전자주식회사 다중 서버 환경에 적합한 디바이스를 클라이언트로 하여동기화를 수행하는 방법 및 장치
US7765187B2 (en) 2005-11-29 2010-07-27 Emc Corporation Replication of a consistency group of data storage objects from servers in a data network
US8042172B1 (en) 2006-02-02 2011-10-18 Emc Corporation Remote access architecture enabling a client to perform an operation
US8341127B1 (en) 2006-02-02 2012-12-25 Emc Corporation Client initiated restore
US7899418B2 (en) 2006-02-22 2011-03-01 Fujifilm Corporation Mobile device and wireless communication apparatus
US20070204003A1 (en) 2006-02-28 2007-08-30 Maven Networks, Inc. Downloading a file over HTTP from multiple servers
JP2007280323A (ja) * 2006-04-12 2007-10-25 Hitachi Ltd 記憶システム及びデータ管理方法
US20070260759A1 (en) 2006-04-14 2007-11-08 Scott Willie L Ii Apparatus, system, and method for complete data migration from a wireless communication device
US20070294546A1 (en) 2006-06-19 2007-12-20 Apple Computer, Inc. Host device shutdown system
US20080104145A1 (en) 2006-06-23 2008-05-01 Derrell Lipman Method and appartus for backup of networked computers
AU2007295949B2 (en) 2006-09-12 2009-08-06 Adams Consulting Group Pty. Ltd. Method system and apparatus for handling information
US7725704B1 (en) 2006-09-22 2010-05-25 Emc Corporation Techniques for performing a prioritized data restoration operation
US8117163B2 (en) 2006-10-31 2012-02-14 Carbonite, Inc. Backup and restore system for a computer
US20080140963A1 (en) * 2006-12-11 2008-06-12 Thomason Ronald G Methods and systems for storage system generation and use of differential block lists using copy-on-write snapshots
US9189265B2 (en) * 2006-12-21 2015-11-17 Vmware, Inc. Storage architecture for virtual machines
WO2008082441A1 (en) 2006-12-29 2008-07-10 Prodea Systems, Inc. Display inserts, overlays, and graphical user interfaces for multimedia systems
US8468244B2 (en) 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
WO2008086250A1 (en) 2007-01-07 2008-07-17 Apple Inc. Prioritized data synchronization with host device
JP5008991B2 (ja) 2007-01-24 2012-08-22 株式会社日立製作所 データのリカバリを制御する装置及び方法
US8487583B2 (en) 2007-03-29 2013-07-16 Nokia Corporation Connection to a USB device dependent on detected battery criterion
US8307004B2 (en) 2007-06-08 2012-11-06 Apple Inc. Manipulating electronic backups
US20080307348A1 (en) 2007-06-11 2008-12-11 Angela Richards Jones Method to Review, Preview and Modify Change Plans From a Progress Bar
US8554784B2 (en) * 2007-08-31 2013-10-08 Nokia Corporation Discovering peer-to-peer content using metadata streams
US20090089537A1 (en) * 2007-09-28 2009-04-02 Sun Microsystems, Inc. Apparatus and method for memory address translation across multiple nodes
US8339105B2 (en) 2007-10-17 2012-12-25 Freescale Semiconductor, Inc. Power management arrangement for a mobile device
US20090144341A1 (en) * 2007-12-03 2009-06-04 Apple Inc. Ad Hoc Data Storage Network
FR2924839B1 (fr) 2007-12-06 2010-03-19 Agematis Procede de sauvegarde automatique de donnees numeriques conservees en memoire dans une installation informatique, support de donnees lisible par un ordinateur, installation informatique et systeme pour la mise en oeuvre de ce procede
EP2073461A1 (en) 2007-12-18 2009-06-24 Alcatel Lucent Process for delivering at least one data stream from a data source system to a data receiver system through a network
US8112664B2 (en) 2008-03-26 2012-02-07 Symantec Operating Corporation Using volume snapshots to prevent file corruption in failed restore operations
US20080189298A1 (en) * 2008-04-02 2008-08-07 Steve Cha Method and apparatus for wireless access to personalized multimedia at any location
US8583602B2 (en) 2008-06-05 2013-11-12 Palm, Inc. Restoring of data to mobile computing device
US20100031248A1 (en) 2008-07-31 2010-02-04 Microsoft Corporation Installation Sequence Manager
US8250031B2 (en) 2008-08-26 2012-08-21 Hitachi, Ltd. Low traffic failback remote copy
US20100052620A1 (en) 2008-09-03 2010-03-04 Intersil Americas Inc. Battery charger ic including built-in usb detection
CN101741601B (zh) 2008-11-06 2012-02-15 上海市医疗保险信息中心 结构化灾难备份系统和备份方法
US8161233B2 (en) 2009-05-13 2012-04-17 Computer Associates Think, Inc. Multi-stream restore system and method
JP4903244B2 (ja) 2009-06-05 2012-03-28 株式会社日立製作所 計算機システム及び障害復旧方法
US8612439B2 (en) 2009-06-30 2013-12-17 Commvault Systems, Inc. Performing data storage operations in a cloud storage environment, including searching, encryption and indexing
US8228753B2 (en) 2009-07-29 2012-07-24 Stec, Inc. System and method of maintaining data integrity in a flash storage device
US8856080B2 (en) 2009-10-30 2014-10-07 Microsoft Corporation Backup using metadata virtual hard drive and differential virtual hard drive
US8380678B2 (en) 2009-11-24 2013-02-19 Symantec Corporation Tracking files which have been processed by a backup or a restore operation
US8694469B2 (en) * 2009-12-28 2014-04-08 Riverbed Technology, Inc. Cloud synthetic backups
US8903773B2 (en) 2010-03-31 2014-12-02 Novastor Corporation Computer file storage, backup, restore and retrieval
US9386098B2 (en) * 2010-06-11 2016-07-05 Fidelithon Systems, Llc Smartphone management system and method
US9244698B2 (en) 2010-09-14 2016-01-26 Microsoft Technology Licensing, Llc Download bar user interface control
US8909876B2 (en) * 2010-10-28 2014-12-09 International Business Machines Corporation Snapshots in a hybrid storage device comprising a magnetic disk and a solid state disk
US8819471B2 (en) 2011-06-03 2014-08-26 Apple Inc. Methods and apparatus for power state based backup

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04199209A (ja) * 1990-11-26 1992-07-20 Hitachi Ltd 携帯用バッテリパック
JPH11168837A (ja) * 1997-10-01 1999-06-22 Casio Comput Co Ltd 携帯通信機器用充電装置
JP2001147784A (ja) * 1999-11-19 2001-05-29 Victor Co Of Japan Ltd 自動デフラグ装置
JP2003347988A (ja) * 2002-05-22 2003-12-05 Ntt Docomo Inc 移動通信端末、情報記憶モジュール、プログラムおよび記録媒体
JP2009519522A (ja) * 2005-12-13 2009-05-14 インターナショナル・ビジネス・マシーンズ・コーポレーション データ処理システム内でバックアップ・セットを生成するためのコンピュータ・プログラム、システム、および方法(特定の時点へのバックアップ・セットの生成)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022046450A (ja) * 2020-09-10 2022-03-23 バイオセンス・ウエブスター・(イスラエル)・リミテッド 医療データを安全に記憶し取得する方法

Also Published As

Publication number Publication date
AU2012262731B2 (en) 2016-04-28
AU2012262731A1 (en) 2014-01-16
KR101598724B1 (ko) 2016-02-29
WO2012166441A1 (en) 2012-12-06
US9465696B2 (en) 2016-10-11
EP2716007B1 (en) 2016-05-18
US20120310889A1 (en) 2012-12-06
EP2716007A1 (en) 2014-04-09
CN103597801B (zh) 2016-11-09
JP5728130B2 (ja) 2015-06-03
KR20140032475A (ko) 2014-03-14
CN103597801A (zh) 2014-02-19

Similar Documents

Publication Publication Date Title
JP5728130B2 (ja) 多段階多ソースバックアップの方法と装置
JP5851023B2 (ja) 電力状態ベースのバックアップの方法と装置
JP5819518B2 (ja) 多ソース復元の方法と装置
US9904597B2 (en) Methods and apparatus for multi-phase restore

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150217

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: 20150323

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150403

R150 Certificate of patent or registration of utility model

Ref document number: 5728130

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

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