用于多阶段多源备份的方法和装置制造方法

文档序号:6495468阅读:169来源:国知局
用于多阶段多源备份的方法和装置制造方法
【专利摘要】本发明描述了一种向第一备份源识别设备中的资源的变化的方法和装置。响应于从第一备份源接收到用于向第二备份源授权的令牌,能够利用所述令牌将所述资源的变化备份到第二备份源。如果将所述资源的变化备份到第二备份源是成功的,则能够将所述变化提交到第一备份源。
【专利说明】用于多阶段多源备份的方法和装置
[0001]相关申请的交差引用
[0002]本申请要求于2011年6月3日提交的Gordon J.Freedman等人的标题为“Methods and Apparatus for Mult1-Phase Mult1-Source Backup and Restore” 的美国临时申请 N0.61/493,360的权益,该申请被通过引用而全部结合于此。
【技术领域】
[0003]本发明一般地涉及设备的备份。更具体地,本发明涉及使用多个源在多个阶段中 为设备备份文件。
【背景技术】
[0004]随着移动设备特别是移动通信设备诸如蜂窝电话、个人数字助理(PDA)、平板设备 等的激增,备份和恢复操作已经越来越成为这些移动设备的日常使用的组成部分。然而,随 着工作环境、移动应用和/或网络存储基础设施继续演进,还出现了伴随着不断改变对移 动设备的要求的新挑战以支持这样的能力。
[0005]例如,传统的备份/恢复操作可以基于使用高带宽网络连接的与备份/恢复软件 和硬件的复杂交互。然而,移动设备常常中途与无线网络连接使用,无线网络连接在从一个 位置到一个位置可能是不可靠的、带宽受限的和/或不可预测的。因此,可能需要冗长的时 间和/或多次尝试来完成移动设备的备份/恢复操作。此外,对于这些操作在大多数无线 网络的开放中可以发现另外的安全风险。
[0006]因此,现有机制不可以以可靠、安全和用户友好的方式备份和/或恢复移动设备。
【发明内容】

[0007]在一种实施例中,设备中的资源可以经由允许增量和可继续(resumable)备份操 作的多个抽象层而被备份到基于网络的存储装置(也称为云存储装置)。备份源可以被动态 配置以用于提高备份/恢复性能两者和/或最小化对设备的正常操作的影响。在一个实施 例中,设备可以与移动设备服务(MBS)通信来基于MBS中维护的启发式数据来确定资源中 的哪些部分要备份。启发式数据可以包括设备的所有人账户,特定于与所有人账户相关联 的每个设备的备份层(或表示)和/或描述被备份的每个文件的元数据。
[0008]在一个实施例中,MBS可以与内容服务(诸如Mobile Me组块服务或MMCS)通信来 识别文件的哪些实际数据组块(或组块的数据)应当被上载用于备份以避免例如云存储装 置中的数据组块的重复拷贝。MMCS可以跟踪文件与识别文件的数据组块的一组组块标识符 之间的映射。在一个实施例中,MMCS可以动态地配置或安排提供商云存储装置来将针对备 份识别的文件的内容存储在经组块分割的数据的容器中。
[0009]在另一实施例中,设备中的元数据可以被维护以跟踪资源(或文件)是否表示用户 数据(例如用户创建的数据)或已购买的资产或内容。已购买资产的实际数据可以从可用资 产商店(或站点)下载或恢复,而不需要被备份。某些可自由获得的资产诸如播客可以通过备份它们的标识符被重新下载而不是直接地利用它们的实际内容被备份和恢复。描述要备 份的资源的元数据可以允许有可能对用户透明的对用于备份的不同源的自动识别。例如备 份作为已购买资产的资源可以包括做标记而不是向上推送已购买资产的内容。为了恢复所 标记的已购买资产,可以从资产商店向下拉取已购买资产的内容。例如,资产商店可以是托 管可购买资产、存储已购买资产和/或托管可自由获得的资产(或内容)的网络可访问站点。
[0010]可选地,资产可以从多个源被分割地恢复回到设备,所述源诸如是云存储装置、本 地计算机、资产商店和/或其它可能可适用的源。可以针对设备中的资源来跟踪指示媒体 资产的类型的元数据以动态地识别对于例如基于性能、带宽、电力消耗和/或其它适用的 考虑而恢复(或备份)资源而言可用和/或成本最优的源。
[0011]例如,设备可能注意到与存储要恢复的资源的内容数据的一部分的(例如有线或 无线耦接的)本地计算机的连接。内容数据的这部分可以从已经连接的计算机拉取。随后, 不可从本地计算机获得的资源的其余部分可以被识别以从云存储装置和/或商店分割地 恢复。因此,诸如音乐、应用或其它媒体文件之类的内容数据可以被备份在云(或云存储装 置)中但是仍然能够从用于设备的本地计算机恢复。
[0012]在一个实施例中,例如,基于相关联的应用、媒体类型或其它可扩展的信息,可以 选择文件或资源用于备份。一种资源可以作为商店资产(例如可从资产商店获得的已购买 资产)被跟踪,商店资产可以从商店获得而不需要备份资源的实际内容。可选地,另一种资 源可以作为用户数据被跟踪,用户数据不可从商店获得并且需要例如经由云存储装置备份 和恢复。一种应用可以与包括作为商店资产的应用本身和作为用户数据的应用数据的资源 相关联。因此,应用和相关联的应用数据可以从不同的源恢复。
[0013]例如,设备中为云备份选择的资源可以包括应用数据而不包括对应的应用本身。 应用可以被从资产商店重新下载到设备而应用数据可以从云存储装置和/或本地计算机 恢复。可替代地,应用可以从本地计算机被同步以从云存储装置恢复应用数据。用于分离 地恢复应用和应用数据的备份源的其它组合可以是可能的。在一些实施例中,应用数据可 以在对应的应用可以被(例如用户)使用之前被恢复。应用可以在启动应用数据的恢复(例 如从云存储装置或其它源)之前被下载或同步以创建适当的排序。
[0014]在一个实施例中,将资源从备份恢复到设备可以在多个阶段中被执行以在资源正 被恢复的同时使设备保持在可使用的和响应于用户的工作情况中。例如设备可以进入初始 模态恢复会话(例如第一模式),然后进入后台恢复会话(例如第二模式)以进行设备的双阶 段或两阶段恢复。在一个实施例中,设备可以由用户使用,以使得在初始模态恢复会话中, 设备不会对用户输入进行响应。在一个实施例中,初始模态会话对于恢复核心用户文件以 重新引导设备可以是短暂快速的。随后,后台会话可以允许用户在各个应用正在后台被恢 复回到设备的同时使用设备。在后台恢复会话中,设备可以操作用于对至少一组用户输入 进行响应。
[0015]在一个实施例中,在两阶段恢复的模态会话期间,在设备下载系统资源以将设备 带入特定于用户的工作情况的同时,设备可以是短暂地不可用的。例如系统资源可以包括 所有元数据和系统数据、账户列表、壁纸、SMS (短消息服务)历史和/或其它适用的用户特 定的非应用数据。系统数据加上元数据可以配置设备例如以用作用户的电话。设备可以在 模态会话之后重新引导并苏醒。[0016]在一个实施例中,在两阶段恢复的后台会话期间,设备可以从本地计算机(例如其 运行来自苹果公司的iTunes?应用)和/或云存储装置恢复数据或媒体资产。设备可以 在后台会话期间同步邮件和/或接收文本消息。在一个实施例中,资源可以根据由使用模 式确定的恢复次序被恢复。例如,应用使用可以被跟踪以收集包括观看的电视剧/电影、读 过的书或其它适用的使用统计值的使用模式。在其它实施例中,恢复次序可以依赖于资源 (或内容)的大小、与资源对应的图标位于设备的显示器上的哪儿(例如,用户可能将频繁使 用的图标放在第一页中),或其它适用的因素。恢复次序可以被动态地更新以适配于诸如经 由显示器上的指示应用的优先级的用户轻触的用户请求。
[0017]在另一实施例中,在双阶段(或分为两部分的)恢复中设备可用但是不是所有数据 都已经被恢复时的时段期间,UI (用户界面)元素可以被显示以改善用户体验和防止应用被 不正确地或以不期望的方式操作。例如,表示其(一个或多个)对象文件或用户数据还未被 恢复的那些应用和/或媒体库(例如用于播放音乐、视频或其它媒体的内容/资产)的图标 可以被灰显,或包括用于指示应用还不可用但是将变得可用的进度条。可以通过允许用于 轻触用户想要优先恢复的应用、或照片或音乐或视频的图标来添加启发性。
[0018]在另一实施例中,本文中描述了一种方法和装置,用于向第一备份源识别设备中 的资源的变化。响应于从第一备份源接收到用于向第二备份源授权的令牌,能够利用所述 令牌将所述资源的变化备份到第二备份源。如果将所述资源的变化备份到第二备份源是成 功的,则能够将所述变化提交到第一备份源。
[0019]在另一实施例中,维护描述被存储在设备中的文件的实际内容的元数据。所述元 数据能够表示用于表示所述文件的第一抽象层。从第一抽象层可以识别所述实际内容的一 部分。在一个实施例中,所述实际内容的所述部分可以从所述设备被备份。可以动态生成 所述实际内容的所述部分的内容标识符,所述内容标识符表示与第一抽象层分离的第二抽 象层。可以将所述实际内容的所述部分经由所述内容标识符上载到网络可访问存储装置。
[0020]本发明的其它特征将从附图或从以下详细描述中显见。
【专利附图】

【附图说明】
[0021]在附图的示图中示例而非限制性地图示出本发明,其中,相似的标号指示相似的 元素,并且其中:
[0022]图1是图示出用于多阶段多源备份和恢复的网络系统的一个实施例的框图;
[0023]图2是用于多阶段多源备份和恢复的示例系统的框图;
[0024]图3是图示出用于使用多个源在多个阶段中管理备份和恢复的示例系统的框图;
[0025]图4是图示出用于为设备执行增量备份操作的过程的一个实施例的流程图;
[0026]图5是图示出用于在设备中执行增量恢复操作的过程的一个实施例的流程图;
[0027]图6是图示出用于动态地为资源进行优先级排序来恢复设备的过程的一个实施 例的流程图;
[0028]图7是图示出为备份和/或恢复操作监视设备的电源的示例系统的框图;
[0029]图8是图示出用于中断用于设备的备份和/或恢复操作以保存电力的过程的一个 实施例的流程图;
[0030]图9示出可以与本文中描述的实施例一起使用的数据处理系统的一个示例;[0031] 图10图示出可以与本文中描述的实施例结合使用的典型计算机系统的示例。 具体实施例
[0032]在本文中描述了利用一个或多个源在多个阶段中为设备备份和恢复文件的方法和装置。在以下描述中,阐述了大量具体细节来提供对本发明的实施例的透彻理解。然而, 对于本领域技术人员显而易见的是,可以在没有这些具体细节的情况下实践本发明的实施例。在其它实例中,没有详细示出公知的组件、结构和技术以免模糊对本描述的理解。
[0033]在说明书中对“一个实施例”或“实施例”的提及意味着结合该实施例描述的具体的特征、结构或特点可以包含在本发明的至少一个实施例中。说明书的不同地方中出现的短语“在一个实施例中”并不一定都指同一实施例。
[0034]在以下的示图中描述的过程是由处理逻辑执行的,处理逻辑包括硬件(例如,电路系统、专用逻辑等等),软件(诸如在通用计算机系统或专用机器上运行的软件),或两者的组合。尽管以下鉴于某些顺序操作描述这些过程,但是应当理解,所描述的操作中的一些可以以不同的次序执行。并且,有些操作可以并行地而不是顺序地执行。
[0035]在一个实施例中,多个源可以用于从设备备份数据或资源。例如,通用数据备份服务可以经由诸如Amazon、S3、Microsoft等的第三方供应商在云(或云存储装置、云服务)中
提供。购买的资产,诸如歌曲、电影和/或应用等,可以从云中的iTunes?商店下载。运行诸如iTunes?之类的备份服务软件的用户的(一个或多个)计算机可以为诸如来自苹果公司的iOS?设备、iPhone?或iPad--设备之类的设备进行备份。
[0036]要从设备备份的资源可以是备份数据,包括例如设置、账户数据、应用数据、照片、 媒体文件、购买的资产和/或其它数据文件。在一个实施例中,备份数据可以从设备中的现有资源中动态地识别。用户计算机(例如台式计算机或笔记本计算机)可以存储设备的备份数据。可选地或可替代地,设备的备份数据的子集可以经由云备份和/或经由用于备份数
据中的已购买资产的诸如iTunes?商店之类的商店而被存储在云中。
[0037]在一个实施例中,例如由云中MBS服务器维护的账户可以用分层数据表示,分层数据包括分别对应于账户的不同设备的多个备份(或备份结构)。分层数据可以包括一账户,该账户包含用于若干不同设备的一组备份。一备份可以包括在一设备上的文件的一组快照。可以支持每个设备一个备份。
[0038]快照可以表示设备在单个时间点的状态。可以从备份中的任何快照完成恢复以重新构建设备在那个时间点的状态。快照可以从一个数字(例如,I)被顺次编号,并且这些编号可以由服务器指派。第一快照可以是设备的完整备份并且后续的快照可以是基于前一快照的增量。增量快照可以包含从前一快照开始设备上的所有增加的、修改的和删除的文件。
[0039]快照可以在其内容已经被上载时被明确提交。一次可以存在一个未提交的快照并且未提交的快照可以是具有最大编号的最后的快照。一旦快照被提交,其内容就不可以被修改,除非被整个删除。
[0040]当快照被删除时,其内容可以被融合到前一快照中,除非其未被提交。因此,仍然可以从任意后续的快照完成恢复。目标快照中的添加的/修改的/删除的文件可以被保持 (例如将不会丢失)。删除未提交的快照不会引起融合,而是内容可以被简单地丢弃。当从所存储的快照的序列中删除第二快照并且将文件融合到该快照的序列的第一快照中时,删 除的文件不会被保持,因为第一快照是完整的。第一快照不会被删除,除非其是该快照的序 列中仅有的快照。
[0041]每个备份可以包括例如根据配置的时间表(例如每小时,每天,每周等等)从对应 设备获取的快照。每个快照可以包括对文件或资源的列表的描述。每个文件可以分割成 (例如具有确定比特大小的)实际数据的组块(或文件组块分割)以供(一个或多个)服务存 储。可替代地,文件组块分割可以基于将数据项分割成组块的技术,例如在2011年I月14 日提交的Dominic Giampaolo的标题为“Content Based File Chunking”的临时专利申请 N0.61/433,152中描述的技术,该申请被通过引用而全部结合于此。
[0042]通常,多个组块可以被聚合为一个容器,作为用于例如由第三方提供商提供的云 服务的存储单元。备份可以按照请求而被创建、更新、删除、禁用或操作。例如,可以从备份 移除给定域的文件。该云存储装置不存储对于重新生成与云存储装置中存储的数据的组块 对应的原始文件足够的信息。因此,文件固有地经由数据的组块分割而受到保护。对数据 的组块的加密可以为存储在云存储装置中的数据提供额外级别的保护。
[0043]在一个实施例中,诸如iOS设备之类的设备可以利用云中的备份服务(例如,其被 托管在MBS服务器中)来发起备份操作以从设备的资源识别备份数据。可以在备份服务中 例如经由与设备对应的备份结构来维持描述设备的备份状况的元数据。备份状况可以包括 已经为设备备份的资源的最新的快照或最近的快照序列。在一个实施例中,元数据可以参 考经由(一个或多个)第三方提供商针对设备的备份数据而存储在云服务中的数据组块。
[0044]为备份操作在设备中识别的备份数据或文件可以被分割成已经可以用于云存储 设备的实际数据比特的组块。在一个实施例中,设备的服务框架中的MMCS码可以与云中的 MMCS服务器通信来准备用于为所识别的文件进行备份的数据的组块。例如备份数据可以根 据某些组块配置(例如用于每个组块的具体的数据比特大小)而被分割成多个数据组块。
[0045]服务框架可以确定根据为备份而识别的文件准备的多个数据组块中的哪些数据 组块当前在云中不可获得并且需要被上载。在一些实施例中,服务框架(例如经由MMCS码) 可以例如经由SHA散列算法或其它适用的算法将每个组块散列成签名,来作为供MMCS服务 器(或服务)用于确定所识别的组块是否已经在云中被备份的标识符。
[0046]在一个实施例中,文件可以被引用到MMCS中。设备可以向文件指派任意标识符。 设备可以使用标识符来回溯至文件。弓丨用可以(例如由服务器)周期性地扒取到MMCS中来 对文件的未被引用的数据组块(或文件组块)进行垃圾回收。
[0047]可以在多个阶段诸如设置阶段、扫描阶段、备份阶段和/或其它适用的阶段中执 行针对设备的备份操作,以与云中的多个服务协调。每个阶段可以对应于操作的单独的抽 象层以允许云存储装置的动态配置可能地增大备份操作的效果和/或改善备份操作的性 倉泛。
[0048]例如,在设置阶段期间,可以确定在MBS服务中是否存在设备的备份(或备份结 构)。如果在MBS服务中针对该设备不存在备份的话,可以要求MBS服务利用该设备的初始 元数据来创建备份。在一个实施例中,设备可以包括备份高速缓存,其反映MBS服务中与设 备对应的备份的拷贝。该备份高速缓存可以包括之前为设备获取的一个或多个快照。
[0049]在一个实施例中,备份高速缓存可以按照需要被重建(例如通过咨询MBS服务)来与MBS服务同步(例如当备份高速缓存中高速缓存的快照根据与MBS服务通信的消息是过 期的时)。可选地或另外地,可以在设置阶段期间确定在设备中是否存在未提交的快照。未 提交的快照可以不对应于MBS服务中存储的现有快照并且可以包括待备份的资源的描述。 未提交的快照可以在设置阶段期间被创建。
[0050]在一个实施例中,设备可以查询MBS服务来确定是否存在未提交的快照,例如作 为确认备份高速缓存是最新的的一部分。设备可以在在备份操作期间扫描其文件系统之后 创建未提交的快照。备份高速缓存可以被增量更新以反映什么已经被成功备份至例如MBS 和MMCS服务。
[0051]在扫描阶段期间,设备的文件系统可以被扫描以找到文件或资源中的变化,诸如 新的文件、删除的文件、修改的文件等。在一个实施例中,所述变化可以经由被扫描的文件 与备份高速缓存中存储的快照之间的比较来识别。可以在扫描阶段期间跟踪哪些文件已经 被备份以及哪些文件需要备份。
[0052]在备份阶段期间,可以执行实际的文件备份操作。例如,如果需要可以创建快照 (例如当不存在可用的未提交的快照时)。请求可以被发送给MBS服务以用于在MBS服务中 创建新的文件、修改的文件和/或删除的文件的条目。可以从MBS服务接收访问云存储装 置的配额认证或权限以允许发送备份请求给MMCS服务。备份请求可以包括描述要备份的 文件或文件的变化的元数据。
[0053]可以从MBS服务接收认证令牌,其指示所请求的备份在由MMCS为设备施加的备份 存储大小的限制以内。认证令牌可以被发送给MMCS服务,以用于从设备到存储提供商的一 组经授权的HTTP (超文本传输协议)请求。MMCS服务可以与存储提供商(或云服务)交互 来检索用于该设备的授权密钥。文件的变化(例如,添加/删除/移除)可以利用授权密钥 被上载到云服务。如果从云服务接收到成功上载的确认,则与上载对应的快照可以在设备 和MBS服务之间被提交。快照可以在其已经被创建并且其内容已经被定义并随后被上载到 丽SC时就被提交。
[0054]在一个实施例中,MBS服务可以基于在文件级描述文件的元数据。MMCS服务可以 依赖于文件的实际内容或数据(例如,数据的组块)。从文件的实际内容生产的散列签名可 以在MMCS服务中用作该内容的标识符。MMCS服务可以确定由标识符识别的内容的部分在 例如云存储装置中是否是新的(或者还没有被备份)。MBS服务可以根据与一个或多个文件 关联的元数据来决定这一个或多个文件是否是新的或已经被更新。
[0055]在某些实施例中,诸如MBS服务之类的备份服务可以为一设备维护一个或多个备 份。这些备份可以包括描述备份的数据和文件是什么、如果保持对备份数据的跟踪、对应设 备的身份、有多少不同备份相关联(例如基于备份日期、增量备份关系等)和/或其它信息的 语义。在一个实施例中,一个备份可以与一个账户下的一个设备相关联。每个账户可以包 括多个设备。备份可以包括设备的多个快照。例如,这些快照可以是针对设备的资源每天 获取的。每个快照可以描述从备份中的前一快照开始在设备中改变的文件。
[0056]在一个实施例中,设备的资源可以基于多次握手而被备份,以在设备与诸如MBS 服务、MMCS服务、云提供商(或存储装置)和/或其它适用的服务之类的服务之间传送文件 和/或文件的元数据。MBS服务可以跟踪MMCS服务的引用。MMCS服务可以跟踪云提供商 的引用,例如以允许设备将文件动态映射到由提供商指定的结构化数据。[0057]在实施例的一个实例中,根据具体云提供商,MMCS服务可以将设备中的文件识别 为项目,指示设备将项目分割成数据的组块,为每个数据组块生成唯一标识符,并且通知设 备该设备是否需要将所识别的数据组块转发至云提供商以供备份。设备可以指示MSB或与 其通信以将信息放在针对该设备获取的快照中和/或使得快照与设备一致。
[0058]因此,多个服务可以提供用于备份设备的资源的间接的各层以使各层中一层内的 操作不影响其它层。MBS服务可以跟踪待备份的资源的元数据,确定哪些文件(或项目)已 经存在而不需要备份。MMCS服务可以负责:跟踪云存储装置的哪些提供商存储实际的备份 数据,管理云存储装置的使用权限来创建票据(或证书)以使得设备能够将备份数据上载到 云存储装置,和/或执行垃圾回收来删除表示不再被引用用于备份的数据组块的结构。MBS 服务可以与由MMCS服务管理的云存储装置隔离或不知道该云存储装置。
[0059]在一个实施例中,为备份操作生成的快照在该备份操作已经成功完成之后该快照 被提交之前,可以不被标记为一致的。固定的(配置的)数目的最新快照(例如对应于三天的 每日快照)可以被高速缓存在设备中或存储在MBS设备中。快照的数目可以被限制以保留 存储空间。通常,所存储的快照中的第一(最早的)快照可以是为对应备份操作描述设备的 每个资源的完全快照。快照中的其余快照可以是描述资源相对于快照中的前一快照的随后 的变化的增量快照。
[0060]在备份操作的最后阶段期间,在一个实施例中,快照可以被融合以例如将最早的 两个或更多个现有的快照合并成一个完全快照。因此,当新的快照被提交时,所存储的快照 的总数目可以保持为固定的数目。在一些实施例中,MBS服务可以被通知(或被指示)删除 和/或融合现有的快照作为一个原子数据库操作。作为响应,可以从MBS服务接收指示原 子操作是否成功的确认。
[0061]在某些实施例中,可以查询诸如iTunes?商店的备份源来识别不能用于重新下 载的资源的列表(例如,应用、购买的资产或其它资产)。例如,在设备执行内容备份操作之 前,备份源可以确定与设备相关联的已购资产中的哪些(例如基于来自设备的请求)不可用 于重新下载。不可用于从备份源重新下载的资源的列表的实际内容可以经由诸如MBS、MMCS 等的备份服务被归档或备份。
[0062]在一个实施例中,设备与MBS服务之间的通信提供用于管理备份(例如创建/删 除)和快照(例如创建/删除/融合/更新)的客户端服务器协议。更新快照可以以原子方 式执行,其中,或者对快照的所有变化被合并(或被提交)或该快照完全不被更新。
[0063]在一些实施例中,用于经由MBS服务管理快照的协议可以基于文件或资源的元数 据以进行高效和轻量级的网络通信。元数据可以描述有关设备中的文件的信息,诸如文件 名、对文件的引用、大小、时间戳、所有权、保护设置或与文件相关联的其它适用的数据,而 不描述文件的实际内容。哪些文件或资产需要被包括在备份操作中可以基于元数据描述来 确定。分别的快照之间的增量或差异可以鉴于元数据描述来跟踪。
[0064]例如,设备可以使用最后修改的时间值来维护高速缓存。请求和响应可以包含最 后修改的时间值以用于对资源进行访问、删除、更新、修改或执行其它操作。在一个实施例 中,对资源的请求可以导致对资源的父级资源的最后修改的时间值的更新。例如,删除账户 的备份可以更新该账户的最后修改的时间值。向快照添加文件可以更新快照的最新修改的 时间值以及快照的父级备份和账户。[0065]用于管理快照的请求可以允许创建新的空的未提交的快照,更新之前创建的快 照,删除快照和/或提交快照。如果用于所请求的快照的保存空间会超过相关联的账户的 配额,则响应可以指示不足够的存储。请求可以包括快照的属性,诸如设备名称和版本号。
[0066]在另一实施例中,可以经由请求从快照检索具有文件属性的文件的列表。可以请 求MMCS授权令牌以用于从MMCS下载文件的流。管理用于快照的文件的请求可以包括例如 创建、删除、更新、标记或其它适用的操作。如果快照中的文件的大小超过保存的空间,则响 应可以指示冲突。在一些实施例中,从快照删除文件可以删除由服务器存储的底层数据库 记录并且删除的文件可以不再在快照的文件的列表中出现。可替代地,将文件标记为已删 除可以指示该文件存在于之前的快照中但是不再存在于设备中。
[0067]设备中的文件的元数据可以对应于用于确定要例如经由MBS服务备份文件中的 哪些文件和/或创建用于备份操作的快照的一个抽象层。实际的文件内容的散列(例如逐 比特散列组块)可以提供另一抽象层,用于例如经由MMCS服务来识别备份文件中的哪些内 容需要上载。在一个实施例中,相同内容的分别的文件可以与不同的元数据描述相关联。因 此,基于内容散列或组块签名的比较可以允许为具有相同内容但是具有不同元数据的文件 共享备份存储(例如来自云)。
[0068]备份操作可以被继续和/或被切换。例如,备份操作可以在网络连接丢失时被暂 停。备份操作可以在网络连接被重新建立时继续。在一个实施例,(例如经由MMCS服务)基 于从文件内容生成的签名可以确定要备份哪些文件以用于被继续的备份操作。如果文件系 统中的文件在备份操作被暂停之前改变了,则可以在继续(或打开)备份操作之前再次扫描 文件系统。在一些实施例中,为了优化,在向MMCS服务进行咨询以确定文件是否改变之前, 文件的修改时间戳(或值)可以与在扫描文件系统时备份高速缓存中的对应时间戳比较。
[0069]设备与源或主机之间的备份/恢复操作可以基于同步锚技术被暂停(或终 止)和继续,诸如设备上的设备锚和主机上的主机锚。在Gordon J.Freedman的标题为 “Synchronization Methods and Systems”的公开的美国专利N0.7,807,403 中记载了同步 锚技术的示例,该申请通过引用被全部结合于此。
[0070]在一个实施例中,资源可以从被动态配置的多个源分割地恢复到设备。例如,已购 买资产,诸如应用、音乐、图形、视频、电视剧或其它媒体数据,可以在被请求时被从云中的 一个或多个商店下载到设备。已购买资产可以存储在本地计算机(例如,其由设备用户拥 有)并且也已经准备好恢复到设备。
[0071]在一个实施例中,在设备在本地计算机的附近范围内移动时从云(例如商店)恢复 已购买的资产时,可以在设备与本地计算机之间建立连接(例如有线或无线连接)。在检测 本地计算机中的已购买资产的连接和可用性时,设备可以将已购买资产的恢复源动态地从 云切换到本地计算机来完成对已购买资产的剩余部分的恢复(例如经由本地计算机中托管 的iTunes?软件)。因此,网络连接成本可以降低并且恢复性能可以提高。
[0072]在一些实施例中,设备的资源从多个源(诸如商店、本地计算机或云存储装置)的 可获得性可以基于资源的元数据来跟踪。如果特定资源已经存在于商店或本地计算机中, 则特定资源可以从现有资源恢复到设备,而不需要备份特定资源的实际内容。例如,资源的 元数据可以指示与设备相关联的账户的已购买资源的所有权。已购买资源可以是可容易地 从来自云和/或本地计算机的诸如商店之类的可用源获得的。因此,已购买资源可以从可用资源重新下载而不需要备份。
[0073]在一个实施例中,设备中的资源诸如设置、账户数据、应用数据和/或已购买资产 可以被备份到本地计算机。资源的一些部分诸如设置和/或应用数据也可以被备份到云存 储装置。资源的某些部分诸如已购买资产可以被维护在云中的商店中并且可在商店中获 得。资源可以在可用时被从本地计算机恢复,以及当本地计算机没有连接到设备时或当不 能在本地计算机中定位资源时从云存储装置和/或商店恢复。可以经由同步操作与中央服 务同步的某些资产,诸如电子邮件、日历表或其它适用的资源不可以通过备份操作被备份。
[0074]在某些实施例中,元数据服务诸如MBS服务可以在向设备提供授权令牌以用于备 份操作时选择设备中的哪些资源被允许备份。例如,某些第三方应用和/或数据可以被过 滤并且不被允许备份。在一个实施例中,从备份过滤的数据可以包括被第三方应用声明为 不需要备份的目录或文档,诸如高速缓存的数据或能够被重新生成的索引。可替代地,要备 份的资源可以根据对设备的相关联的账户施加的备份数据的总大小的配额限制而识别。
[0075]在一个实施例中,可以相对于多个源(例如,云商店、本地计算机、商店等等)跟踪 是否已经为设备恢复所有资源(或是否完成恢复操作),其中不同资源或某些资源的不同部 分可以从这多个源恢复。例如,在与设备通信的本地计算机中运行的iTunes?可以确定 存储在云中但不是本地计算机中的特定资源还没有被恢复回到设备。特定资源可以经由用 于设备的本地计算机被检索来完成恢复操作。
[0076]作为示例,针对与用户相关联的账户激活的诸如新电话之类的新设备可以从账户 的云备份恢复。设备可以利用具有识别账户和设备的标识符的诸如MBS服务的备份服务来 启动恢复操作。相应地,例如,可以利用MBS服务来确定要恢复的资源的描述。云存储装置 可以(例如经由配置、被动态发现或从连接的服务获取等)而被定位以恢复所确定的资源。 可替代地,如果发现运行对应的备份服务应用诸如iTunes?的本地计算机是可用的(例 如在设备的连接范围内),则可以从本地计算机检索资源而不需要访问远程云存储装置。
[0077]设备中的恢复操作可以在多个阶段中执行,例如,模态恢复阶段,然后是后台恢复 阶段。诸如设置或元数据之类的必要文件或信息可以首先在模态恢复阶段原子地恢复(例 如,或者所有必要文件被恢复或者无必要文件被恢复)以允许设备引导到工作情况并迅速 变为可供用户使用,而不需要等待其余恢复操作的完成。在模态恢复阶段期间,设备可以是 铺设(laying down)系统文件并且可能不可操作用于接收用户输入。原子恢复可以确保即 使在资源被完整恢复之前设备也以一致的数据集运行。
[0078]随后,在后台恢复阶段期间,恢复设备所需的其余资源可以被从可用备份资源诸 如云存储装置和/或本地计算机拉取到后台中。例如,大小可调的资源,诸如媒体资产(例 如照片、视频、语音文件等)的实际内容、第三方应用数据或其它适用的资源可以在后台恢 复阶段期间被拉取而不影响设备的操作或用户使用设备的至少一些功能或能力的能力;例 如,用户可以能够在后台恢复阶段期间发送文本消息或浏览因特网或进行语音电话呼叫。
[0079]在一个实施例中,设备可以被与本地计算机(例如运行iTunes?应用的 iTunes⑧计算机)同步(例如经由同步操作)以确保设备上的某些内容或资源(例如音乐、 应用、播客、视频、铃声、照片、笔记、电子邮件账户设置、联系人、日历表和书签)与本地计算 机中对应资源的用户选定子集匹配。应用数据可以在同步时被从设备备份到本地计算机(例如,iTunes?备份中)。已购买资产诸如应用或媒体内容可以被从本地计算机下载到设备以用于同步(例如经由11 unes?库)。
[0080]在一个实施例中,设备与本地计算机之间的同步操作可以在设备的后台恢复(阶段)期间(或之后)执行。设备和iTunes? I算机之间的通信或连接在后台恢复之前可能不可用,因为设备还没有被引导进入工作情况。同步操作可以能够将资产(例如已购买媒体和/或应用)从本地计算机(例如作为iTunes?库)恢复到设备。
[0081]可选地或附加地,同步操作可以将应用数据或用户数据从本地计算机(例如作为 iTunes?备份)恢复到设备。在一个实施例中,同步操作可以包括iTunes?'计算机 与设备之间的比较来识别供设备同步的资源的列表。恢复操作和同步操作可以依赖于公共的模块,诸如在设备中运行的用于从适用的源拉取实际的内容或比特数据的ATC (空中流量控制器)码。当设备被与iTunes?设备耦合或连接以将资源从iTunes?设备迁移(transfer)以供同步操作和/或恢复操作时,ATC可以自动地通知系统事件诸如 iTunes?同步(或配对)事件。
[0082]在一个实施例中,设备中的恢复操作可以利用连接的备份服务(例如iT unes? 计算机或MBS服务)进行检查来确定恢复资源的最佳源。可以针对单独的资源或资产识别不同的源,诸如云中的备份存储装置(或云备份)、本地计算机中的备份(例如iTunes?备份)、云中的商店(例如iTunes?商店)、本地计算机中的本地库(例如iTunes?库)。一种类型的数据可以从一个源恢复而另一类型的数据可以从单独的源恢复。例如,照片可以从云存储装置恢复,音乐内容可以从商店恢复,应用可以从本地库恢复,应用数据可以从云存储装置恢复,等等。通常,本地计算机中的源可以优先于来自云的源,因为例如不那么昂贵的连接成本和/或更高的可用网络带宽。
[0083]在一些实施例中,可以在多个阶段中执行同步操作,诸如事务性阶段,然后是尽力而为阶段。在事务性阶段期间,可以识别描述用于在设备和本地计算机之间进行同步的资源的列表的元数据。元数据可以是以事务性方式(例如所有或无)从本地计算机接收的。在尽力而为阶段期间,用元数据描述的资产可以从考虑例如可获得性、性能、成本和/或其它适用的因素而动态确定的不同源被同步到设备。
[0084]在某些实施例中,用于恢复资源的不同源可以基于例如与资源相关联的元数据而被动态识别。同步操作可以从本地耦合或连接的计算机(例如iTunes--计算机)推送与设备同步所需的资源的列表的描述。已购买的资产诸如歌曲、视频、电影、应用等可以或者从云中的商店或者从本地计算机(例如经由iTunes?库)迁移。不是从商店购买或获取的媒体诸如用户拍摄的照片或从其它设备下载的视频可以从云存储装置或从本地计算机(例如经由iTunes?备份)恢复。
[0085]恢复次序的动态配置可以被有利地应用在多阶段恢复的稍后阶段(例如在第一阶段或模态阶段之后)中以用于提高设备的效率和/或可用性。例如,可以在恢复的起始(或第一)阶段中为恢复识别资源或资产的列表。在恢复的稍后阶段期间,诸如用于实际数据迁移的后台阶段期间,选择接下来恢复哪些所识别的资源会遵循立即动态确定的次序或优先级。多个资源可以被同时迁移以用于例如经由多个线程或处理恢复。
[0086]依赖于为还有待于恢复或正在恢复的资源而配置的各种启发式标准和/或设备 的工作状态,选择接下来要迁移的(一个或多个)资源的次序可以在运行时期间更改。例如, 较小大小和/或要求较少迁移时间的资源(例如较高的带宽可用于相关联的资源)可以被排 得较高(例如具有被选作下一个要恢复的资源的较高可能性)。
[0087]在一个实施例中,可以跟踪设备的使用来确定资源应当如何为恢复而排序或排列 优先级以增大设备的可使用性。例如,可以按照相关联的应用来对资源排序。在某些实施 例中,最近使用的应用的资源可以比较早使用的应用的资源被指派更高的优先级。当前使 用的应用(例如电影或视频播放)可以被识别为最近使用的应用,预期与该应用相关联的的 应用数据会很快被用户访问。
[0088]在一些实施例中,要恢复的资源可以按照与资源相关联的图标的显示次序被排列 优先级。例如,与资源相关联的的应用图标和/或媒体图标可以根据显示次序在设备的显 示器上呈现。显示次序可以反映由设备的用户隐含地指定的优先级。可选地或另外地,可 以接收用户输入(例如在显示器屏幕上的轻触)来动态地控制资源应当如何迁移(例如,暂 停、重新开始、开始等等)。
[0089]在一个实施例中,可以利用基于启发式地配置的特征和/或动态识别的因素而指 派的次序来建立用于恢复的资源的列表。特征可以包括有关资源的规范信息诸如大小、类 型、位置和/或与资源相关联的的其它适用的元数据。例如,已购买资产的类型的资源可以 比用户创建的内容的类型的另一资源具有用于恢复的更高的优先级。资源的位置可以指示 是在哪儿为设备生成或购买资源的。和与设备的当前位置更靠近的位置相关联的资源可以 比更远离设备的另一位置的另一资源具有更高优先级。
[0090]动态因素可以基于不断改变的工作环境或设备中的使用模式即时确定。例如,动 态因素可以包括可用(恢复)源(例如云存储装置、商店、本地计算机等等)、应用的使用历 史、与应用图标相关联的显示次序、用户输入或其它适用的因素。通常,可以从可用源迁移 的资源可以比不是从当前可用的源找到的另一资源具有更高的优先级。资源的使用历史可 以包括例如频率、资源(例如经由应用)被访问的最后时间、使用账户和/或其它使用统计 值。具有较高使用频率的资源可以被排列得较高。
[0091 ] 在一个实施例中,用于恢复的资源的初始列表可以在多阶段恢复的第一阶段(例 如模态阶段)期间建立。启发式地确定的特征和/或动态因子可以表示为例如按照每个资 源的单独的组合启发式权重被指派并被组合来确定资源列表中的恢复次序的启发式权重。 在资源的稍候阶段期间,可以将具有(一个或多个)最高权重的(一个或多个)资源选择为接 下来进行下载。
[0092]例如,用于恢复的经排序的资源列表可以被转发给能够从至少一个恢复源(例如 云存储装置、商店和/或iTunes?计算机)恢复资源的恢复进程。恢复进程可以跟踪恢复 的状况、监视环境的改变(例如网络连接、电力状况)、检测用户输入等以改变用于恢复的资 源的次序。恢复可以被中断(例如经由用户输入和/或环境的改变)来重新建立具有新的次 序的新的资源列表来以新建立的列表继续。
[0093]在一个实施例中,用于从特定源(例如iTunes?计算机或云存储装置等)恢复的 资源的队列可以按照为恢复而识别的当前已排序的资源列表来维护。可以为不同的源维护单独的队列。在一些实施例中,当在运行时期间(例如由于用户中断、选择和/或其它系统 事件等)动态建立资源列表时,可以根据新建立的资源列表来更新每个队列(例如通过将特 定资源移动到队列的顶部)以继续恢复。
[0094]在一些实施例中,可以按照经由设备如何使用资源来以协作方式恢复资源的实际 内容。例如,资源可以围绕应用被沙盒封装(sandboxed)以允许应用在恢复设备时迅速变 得可访问。应用程序和相关联的应用数据(或设置)可以被沙盒封装以一起被恢复。
[0095]依赖于用于应用的资源,诸如可执行程序、库、应用设置、应用数据(或用户输入, 诸如由用户经由应用创建的文档)等,可以维护在沙盒内以识别将这些资源恢复到设备的 次序。即使在所有被沙盒封装的资源被恢复之前,也可以使应用可用于设备的用户。例如, 运行音乐播放器应用可以在音乐内容文件被迁移到设备之前要求播放器设置被恢复。
[0096]在一个实施例中,多阶段恢复可以与用户接口协调来允许用户在恢复期间与设备 交互(例如,在设备被完全恢复之前)。可以针对每个恢复阶段的实况更新状况或进度而呈 现占位符。可以根据经由用户接口接收的输入动态地重新排列资源的实际迁移的次序。
[0097]例如,应用(例如,照片浏览器、视频播放器、音乐播放器等)和相关联的应用设置 可以被恢复来在用户接口上呈现对应的应用图标以指示该应用是可用的。当检测到与应用 的用户交互(例如看着照片)时,较高的优先级可以被指派给与相关联的应用数据(例如照 片)有关的资源以用于动态地改变恢复次序。
[0098]在一个实施例中,当设备正被恢复时,应用可以跟踪应用的恢复的状态。应用的恢 复的状态可以例如经由“下拉列表”型用户接口元素、温度计式进度指示符的表示或其它适 用的用户接口元素来呈现。用于应用的资产是否可用可以经由用户接口指示。
[0099]在某些实施例中,用于呈现恢复的状态的用户接口元素可以包括基于影响恢复的 总体速度的因素的组合的合成进度指示符。因素可以是根据例如应用的大小、应用从应用 源下载的速度、用户数据大小、从用户数据的源下载用户数据的速度、安装时间、媒体内容 (例如音乐、加密数据等)的解密时间和/或其它适用的因素。依赖于例如媒体类型和/或 上下文(例如对于跳板(springboard)上下文、iPod?应用等),合成进度指示符可以表示 或显示为直观的唯一的温度计式指示符、饼图式指示符或其它适用的用户接口式指示符。
[0100]在一些实施例中,可以依赖于恢复的状态来呈现(或使能)不同用户接口组件/功 能。例如,(例如在恢复的第一阶段期间)已经被识别为要恢复但是还没有被恢复的资产可 以被灰显以例如禁用对针对这些资产的应用的用户激活。然而,可以针对还未被恢复的资 产允许某些用户接口操作,诸如记录、重命名和/或删除。在一些实施例中,恢复的状态可
以包括资产的可获得性或不可获得性。源接口模块可以确定要从源(例如iTunes?商店、
资产商店或其它适用的存储装置)恢复的资产当前是否可获得,例如,是否存在于源中和/ 或是否与不正确的访问凭证(例如资产的元数据中所包括的口令)相关联。
[0101]在一个实施例中,为恢复识别的资源或资产的列表可以被维护在例如ATC模块或 公共模块中以用于同步和恢复操作两者,以动态地改变恢复次序和/或报告恢复进度。应 用可以经由插件模块(例如库)和/或API (应用编程接口)来访问恢复进度。相应地,应用 可以经由用户接口操作例如灰显图标、旋转图标、移动进度条或其它适用的用户接口变化 等来提供恢复进度的实况更新。例如,用户接口可以呈现应用的恢复进度以指示已经为该应用恢复了 20%或其它百分比的资产。
[0102]应用可以中断或改变在后台阶段中工作的恢复操作。例如,用户可以轻触针对从 商店购买的媒体资产(例如歌曲或视频)的应用。作为响应,该应用可以例如经由插件模块 或API来例如经由ATC模块请求对资产迁移重新排列优先级。用于云中的资产商店的源接 口模块(例如itune商店化的)可以被指示将用户轻触的媒体资产放在相关联的队列顶部来 继续恢复或迁移。
[0103]在一个实施例中,设备可以在备份操作期间监视电源的状态以保持鲁棒的用户体 验。在检测到与电源的改变有关的系统事件时,设备可以以透明的不会被用户注意到的方 式终止或取消(例如在后台中的)备份(或恢复)资源的进程。系统事件可以例如通过拔出 或断开设备的电源线、感应垫或其它电力传输机构而引起。
[0104]在一些实施例中,事件可以基于监视设备是否被插入到具有充足电力的电源而产 生(例如,如果电源不具有足够的电力则停止备份)。可替换地或可选地,事件可以基于设备 中的屏幕是打开还是关闭和/或设备的网络连接的状况。例如,如果屏幕打开(例如因为无 论什么原因),则可以取消设备的自动备份以避免影响用户接口性能。例如,如果事件指示 设备不再连接到WiFi网络,则可以暂停自动备份以避免经由蜂窝电话网络使用蜂窝数据。
[0105]在一些实施例中,可以发布警告来为用户提供选择是否继续备份/恢复的选项。 设备可以在工作状态保持被供电以例如保存电池电力,而不会由于用户不知道的后台中的 备份/恢复操作引起电力泄漏。
[0106]在一个实施例中,备份/恢复状态可以保持在设备中以允许例如当外部电力线被 插回时继续备份/恢复操作。备份操作可以被继续以重新扫描设备来识别哪些资源已经被 备份而不必对在例如当外部电力线被拔出之前已经被备份的资源执行不必要的备份操作。
[0107]图1是图示出根据本文所描述的一个实施例的用于多阶段多源备份和恢复的网 络系统的一个实施例的框图。联网系统100可以包括动态配置的网络109,其连接服务101、 103、105、107、117和设备111、113。例如,客户端设备113诸如电话设备可以根据设备113 所处的位置而被偶发地与资产商店服务107连接。设备113可以(例如经由电线)本地地 耦接或直接地连接到本地备份设备111,本地备份设备111可以是能够访问大容量存储设 备诸如硬盘、固态设备、闪存或其它存储设备的台式计算机。在一个实施例中,客户端设备 113可以经由即时识别的多个源(例如服务器、服务或本地设备)101、103、105、107、111、117 被备份和/或恢复。备份服务或源诸如服务101、103、105、107、111、117或其它适用的内容 服务可以能够在被请求时将资产或内容重新存储到设备诸如设备113,而不需要设备备份 资产。
[0108]图2是图示出根据本文中所描述的一个实施例的用于多阶段多源备份和恢复的 示例性系统的框图。在一个实施例中,系统200可以基于图1的客户端设备113,其运行操 作环境201,其可以基于来自苹果公司的iOS?操作系统或其它适用的操作系统。
[0109]系统201可以包括备份/恢复管理模块207,其用于经由网络接口模块203利用 选定源来备份和恢复设备的资源。资源可以包括例如文件系统217中的文件。模块207可 以在用户配置的时间表上例如每天、每周或按需从经由远程设备和/或用户输入接收的请 求启动备份/恢复操作。在一些实施例中,模块207可以响应于经由系统事件处理器模块 205监视的系统事件诸如外部电源丢失(例如当外部电源线被拔出时)来中断或继续备份/恢复操作。
[0110]本地数据库209可以高速缓存或存储为设备备份的一个或多个快照。快照可以表 示在某个时间点备份的设备的资源的状态。备份/恢复操作可以允许系统201返回到与快 照对应的之前状态。
[0111]在一个实施例中,一个或多个应用诸如应用213可以经由例如状况接口模块221 来与备份/恢复管理模块207通信。应用213可以作为插件或经由API接口与状况接口模 块221链接。在一个实施例中,应用213可以访问相关联的资源的备份/恢复状况以经由 用户接口模块225来呈现进度。
[0112]可替换地,应用213可以将经由用户接口模块225接收的用户请求例如用户轻触 动作中继到模块207以用于即时对备份/恢复操作进行重新排序或更改。用户请求可以 经由基于触摸屏的、基于鼠标的、基于指针的、基于语音的或其它适用的用户接口技术来接 收。在一个实施例中,应用213的使用历史诸如使用内容、使用频率、使用时间或其它适用 的使用统计值可以被记录在使用历史211中。模块207可以基于经由使用历史211收集的 信息来动态地配置备份/恢复操作。
[0113]图3是图示出根据本文中所描述的一个实施例的用于管理使用多个源在多个阶 段中的备份和恢复的示例性系统的框图。系统300可以基于图2的系统200,系统200包括 备份/恢复管理模块207。在一个实施例中,系统300可以包括服务框架309,其能够发现 用于执行备份/恢复操作的多个备份/恢复源和/或与之接口。
[0114]例如,(例如作为itune商店化进程运行的)商店接口模块301可以与可用商店诸 如图1的商店107通信以用于迁移已购买资源。云接口模块307可以与云存储装置诸如 图1的云备份服务101通信以迁移用于备份/恢复设备中的资源的实际内容。(例如作为 itune化的进程运行的)本地设备接口模块305可以通过与在本地计算机中运行的对应服
务诸如托管在图1的本地备份设备ill中的iTunes?交换消息来备份、恢复和/或同步 资源。在一个实施例中,接口模块301,305, 307可以共享公共接口引擎303,诸如ATC引擎 或模块,其可以能够在比接口模块301,305,307更低抽象层执行数据迁移。
[0115]多阶段处理器模块311 (例如作为备份进程运行)可以管理备份/恢复操作的不 同阶段。例如,多阶段处理器模块311可以利用备份服务105 (例如根据配置的时间表)启 动备份操作来识别对要备份的资源的快照的描述。在一个实施例中,多阶段处理器模块311 可以识别在模态阶段(或第一阶段)和/或后续阶段(例如,后台阶段)中要恢复哪些资源, 后续阶段可以是非模态的(例如,允许与用户的交互)。
[0116]在一些实施例中,资源队列处理器模块313可以根据例如配置的启发式和/或用 户请求来动态地对用于恢复和/或备份的资源重新排序。资源或资产可以向根据服务框架 309的单独的队列排序的不同源迁移或从其迁移。在一个实施例中,响应于在设备的(例如, 在后台中的)恢复期间从应用接收的用户轻触动作或其它UI动作(例如,鼠标点击、语音命 令、键盘选择、手势等),资源队列处理器模块313以有利于应用的方式来对还有待恢复的资 源进行重新排列优先级。资源队列处理器模块313可以指示服务框架309更新队列以对例 如与应用相关联的资源下载允许较高的优先级。
[0117]图4是图示出根据本文中所描述的一个实施例的用于为设备执行增量备份操作 的处理的一个实施例的流程图。示例性处理400可以由处理逻辑执行,处理逻辑可以包括硬件(电路系统、专用逻辑等)、(诸如在专用机器上运行的)软件或两者的组合。例如,处理 400可以由图2的系统200的一些组件执行。
[0118]在一个实施例中,处理400的处理逻辑可以执行包括至少两个步骤的备份操作。 处理400的处理逻辑可以将元数据发送给备份服务(例如,MBS)来从备份服务接收令牌以 用于对内容服务(例如MMCS)进行认证。随后,处理400的处理逻辑可以使用令牌将实际内 容上载到内容服务。备份服务中的文件的元数据可以利用认证令牌更新。
[0119]在框401,处理400的处理逻辑可以在设备管理服务器(例如MBS)中定位与设备对 应的备份。如果发现没有与设备对应的现有备份,则该备份可以被新创建。在框403,处理 400的处理逻辑可以重新建立快照高速缓存(或高速缓存清单)来与备份管理服务器同步。 在框405,处理400的处理逻辑可以识别前一备份操作的快照。所识别的快照可以是未提交 的快照或新创建的快照。所识别的快照可以包括描述文件系统中的文件的元数据。
[0120]在框407,处理400的处理逻辑可以扫描文件系统以例如经由与所识别的快照的 比较来找到文件系统的变化(例如新文件、删除的文件、修改的文件等)。在框409处,处理 400的处理逻辑可以经由与备份管理服务器、备份服务管理服务器(例如,MMCS)和存储提供 商服务器(例如,Amazon、S3或云存储装置等)的协调事务来执行备份操作。在框411,处理 400的处理逻辑可以融合之前创建的快照(例如,删除旧的快照和/或维护具有多个增量快 照的、与一个完全文件集合对应的一个完全快照,其中每个增量快照对应于该文件集合的 相对于前一快照的增量变化)。
[0121]图5是图示出根据本文中描述的一个实施例的在设备中执行增量恢复操作的处 理的一个实施例的流程图。示例性处理500可以由处理逻辑执行,处理逻辑可以包括硬件 (电路系统、专用逻辑等)、(诸如在专用机器上运行的)软件或两者的组合。例如,处理500 可以由图2的系统200的一些组件执行。
[0122]在框510,处理500的处理逻辑可以将系统文件从云备份模态恢复至设备(例如, iOS?设备),而不必对来自用户的输入进行响应。在模态恢复期间,设备的操作系统可以 是可用的并且在运行。在框503,处理500的处理逻辑可以利用恢复的系统文件来将设备重 新引导到用户的工作情况。
[0123]在框505,处理500的处理逻辑可以在后台将文件恢复到设备。资产(例如已购买 的或已迁移的)可以从云商店(例如,iTunes?商店)下载并且数据可以从云备份恢复。在 框507,处理500的处理逻辑可以从(例如,运行iTunes?备份软件的)用户计算机同步/
分割恢复文件。文件可以包括已购买的资产和/或不是从云备份恢复的数据。
[0124]图6是图示出根据本文中所描述的一个实施例的动态地对资源排列优先级以恢 复设备的处理的一个实施例的流程图。示例性处理600可以由处理逻辑执行,处理逻辑可 以包括硬件(电路系统、专用逻辑等)、(诸如在专用机器上运行的)软件或两者的组合。例 如,处理600可以由图2的系统200的一些组件执行。
[0125]在框601,处理600的处理逻辑可以跟踪设备(例如,基于iOS?的移动设备)中所 托管的应用和/或内容的使用模式(例如,次数、使用时间、使用位置、使用持续时间等)。在 框603,处理600的处理逻辑可以创建要恢复到设备的应用和/或内容的列表。在框605, 处理600的处理逻辑可以确定设备的当前位置。在框607,处理600的处理逻辑可以基于使用模式、与应用程序和/或内容相关联的适用的元数据(例如大小、类型等)和/或在当前 位置的可获得性以一次序来对要恢复的应用和/或内容的列表排列优先级。
[0126]在框609,处理600的处理逻辑使用经优先级排序的列表来在当前位置将应用程 序和/或内容恢复到设备。在框611,处理600的处理逻辑可以例如经由轻触输入来检测 用户请求,指示一个或多个应用程序/内容上的期望的恢复优先级。在框613,处理600的 处理逻辑可以根据所请求的期望的恢复优先级来动态地改变经优先级排序的列表的要恢 复的应用程序和/或内容的次序。
[0127]图7是图示出根据本文中所描述的一个实施例的监视用于备份和/或恢复操作的 设备的电源的示例性系统的框图。系统700可以基于客户端设备,诸如图1的设备113。
[0128]系统700可以配置为响应于检测到从外部电源(例如AC/DC适配器、太阳能电池 板、感应充电板等)719已经停止而终止已经开始并正在进行中的空中(无线)备份操作。系 统700包括外部电源端口 713诸如耦接到AC/DC适配器或其它外部电源的输出端的插头或 插头的插座,以及在再充电控制器的控制下被再充电的电池717。
[0129]电力检测器709被耦接到外部电源端口并被耦接到处理系统711,处理系统711可 以是芯片或其它处理系统上的基于微处理器的系统;电力检测器监视外部电源的可用性和 再充电处理的状态并且基于该监视来确定再充电的处理是否已经由于从外部电源断开连 接而终止。电力检测器可以响应于检测到再充电处理已经由于断开连接而终止,生成使得 处理系统终止无线备份操作的终止信号(例如,耦接到处理系统的总线上的中断信号)。
[0130]在一个实施例中,备份操作在终止之前已经开始并且在进行中并且正在备份可以 存储在系统700的存储器715中的软件或用户数据(例如联系人、日历表条目、用户文本文 件、用户媒体文件诸如歌曲或照片等)或者两者。系统700中的处理系统可以执行本文中所 描述的任何一个备份方法来使得软件和/或用户数据通过备份操作被存储在远程设备诸 如耦接到网络703的服务器701上。备份处理是通过系统700中的一个或多个无线电装置 (例如,WiFi无线电装置或蜂窝电话无线电装置)707而无线地执行的,并且这些无线电装置 耦接到系统700中的处理系统并被耦接到一个或多个网络。网络可以是单个网络(例如无 线LAN)或多个网络或耦接到因特网的蜂窝电话网络等等。
[0131]响应于终止信号,处理系统可以立即或在为备份操作中的当前处理的文件完成备 份操作之后终止正在进行的备份处理(其在此时是未完成的)。本文中所描述的处理系统和 /或一个或多个服务器可以使用签名或同步锚或其它机制来保持对原子备份操作的跟踪以 便跟踪提前终止的备份操作中已经完成了什么以及提前终止的备份操作中没完成什么。可 以由系统700自动执行备份操作的终止,而没有用户请求或交互。
[0132]当系统700再次被从外部电源充电时,备份处理可以从终止的状态继续。在一个 实施例中,系统700在其正通过外部电源再充电时根据本文中所描述的一种或多种方法被 备份,并且其在与外部电源断开连接时终止备份并在再充电继续时从终止的备份状态继 续。因此,在一个实施例中,备份处理响应于检测到外部电源已经被连接并且现在正在对系 统700中的电池充电而或者开始或者继续,如图8所示。
[0133]图8是图示出根据本文中所描述的一个实施例的中断设备的备份和/或恢复操作 以保存电力的处理的一个实施例的流程图。示例性处理800可以由处理逻辑执行,处理逻 辑可以包括硬件(电路系统、专用逻辑等)、(诸如在专用机器上运行的)软件或两者的组合。例如,处理800可以由图2的系统200或图1的系统700的一些组件执行。
[0134]在框801,处理800的处理逻辑可以确定内部电池正在再充电。在框803,处理800 的处理逻辑可以作为后台进程利用(一个或多个)远程备份服务器来开始备份操作并且监 视内部电池的再充电状况。在框805,处理800的处理逻辑可以根据再充电状况确定内部 电池中的再充电已经终止(例如,与AC/DC适配器断开连接,等等)。在框807,处理800的 处理逻辑可以响应于检测到电池的再充电已经终止而终止备份操作。在框809,处理800 的处理逻辑可以响应于检测到电池开始再充电而继续备份操作。
[0135]图9示出可以与本文中所描述的实施例一起使用的数据处理系统的一个示例。图 9中示出的数据处理系统900包括处理系统911,处理系统911可以是一个或多个微处理 器,或者可以是芯片集成电路上的系统,并且该系统还包括用于存储数据的存储器901和 用于由处理系统执行的程序。系统900还包括音频输入/输出子系统905,音频输入/输出 子系统905可以包括麦克风和扬声器用于例如播放音乐或通过扬声器和麦克风提供电话 功能性。在至少某些实施例中,系统900可以通过网络或本地连接来自动地和/或手动地 执行多阶段多源恢复和备份。在一个实施例中,系统900可以包括图2中所示的系统。
[0136]显示控制器和显示设备907为用户提供视觉用户接口 ;该数字接口可以包括与 Macintosh计算机上在运行OS X?操作系统软件时示出的图形用户界面类似的图形用户 界面。系统900还包括用于与另一数据处理系统通信的一个或多个无线收发器903。无线 收发器可以是WiFi收发器、红外收发器、蓝牙收发器和/或无线蜂窝电话收发器。将明白: 在某些实施例中,没有示出的额外的组件也可以是系统900的一部分,而在某些实施例中, 比图9中所示更少的组件也可以用在数据处理系统中。
[0137]数据处理系统还包括被提供以允许用户向系统提供输入的一个或多个输入设备 913。这些输入设备可以是小键盘或键盘或触摸面板或迷你触摸面板。数据处理系统900 还包括可选的输入/输出设备915,其可以是用于扩展坞的连接器。将明白,未示出的一条 或多条总线可以用于互连本领域已知的各种组件。图9中示出的数据处理系统可以是手持 计算机或个人数字助理(PDA)或具有PDA类似功能性的蜂窝电话,或包括蜂窝电话的手持 计算机,或诸如iPod之类的媒体播放器,或组合这些设备的各个方面或功能的设备,诸如 在一个设备中结合PDA和蜂窝电话的媒体播放器。在其它实施例中,数据处理系统900可 以是网络计算机或在另一设备内的嵌入式处理设备,或者具有比图9中所示更少组件或可 能更多组件的其它类型的数据处理系统。
[0138]图10示出可以与本发明中的一个实施例一起使用的诸如计算机系统之类的数据 处理系统的一个示例。例如,系统1000可以实现为图1中所示的系统的一部分。注意,尽 管图10图示出计算机系统的各种组件,但是不意图表示互连组件的任何具体的体系架构 或方式,因为这样的细节与本发明关系不大。还应当明白,网络计算机和具有更少组件或可 能更多组件的其它数据处理系统也可以与本发明一起使用。
[0139]如图10中所示,数据处理系统的形式的计算机系统1000包括总线1003,总线 1003耦接到(一个或多个)微处理器1005和ROM (只读存储器)1007以及易失性RAM1009和 非易失性存储器1011。微处理器1005可以从存储器1007、1009、1011检索指令并执行这些 指令来执行上述操作。总线1003将这各种组件互连到一起并且还将这些组件1005、1007、 1009和1011互连到显示控制器和显示设备1013以及到外围设备,外围设备诸如是输入/输出(I/O)设备,其可以是鼠标、键盘、调制解调器、网络接口、打印机和本领域公知的其它 设备。通常,输入/输出设备1015通过输入/输出控制器1017耦接到系统。易失性RAM (随机存取存储器)1009通常实现为动态RAM (DRAM),其持续地要求电力以便刷新或保持存 储器中的数据。
[0140]大容量存储装置1011通常是磁硬驱或磁光驱或光驱或DVDRAM或闪存或其它类型 的存储系统,其即便在从系统移除电力之后也保持数据(例如,大量数据)。通常,大容量存 储装置1011还可以是随机存取存储器,但是这不是必需的。尽管图10示出大容量存储装 置1011是直接地耦接到数据处理系统中的组件的其余部分的本地设备,但是将明白,本发 明可以利用远离系统的非易失性存储器,诸如通过诸如调制解调器或以太网接口或无线联 网接口之类的网络接口与数据处理系统耦接的网络存储设备。总线1003可以包括通过本 领域公知的各种桥接器、控制器和/或适配器彼此连接的一条或多条总线。
[0141]以上描述的内容中的一些部分可以利用诸如是专用逻辑电路之类的逻辑电路实 现,或者利用执行程序代码指令的微控制器或其它形式的处理核心实现。通过以上论述教 导的这样的处理可以利用诸如机器可执行指令之类的程序代码执行,其中机器可执行指令 使得执行这些指令的机器执行确定的功能。在该上下文中,“机器”可以是将中间形式(或 “抽象”)指令转换为处理器特定的指令(例如,抽象执行环境,诸如“虚拟机”(例如Java虚 拟机)、翻译器、公共语言运行时、高级语言虚拟机等)的机器,和/或,布置在半导体芯片上 的被设计用于执行指令的电子电路系统(例如,利用晶体管实现的“逻辑电路”),诸如通用 处理器和/或专用处理器。还可以由被设计用于执行处理(或部分处理)而不必执行程序代 码的电子电路(作为机器的替代或与机器组合)来执行通过以上论述教导的处理。
[0142]一种制造件可以用于存储程序代码。存储程序代码的制造件可以实现为但不限 于一个或多个存储器(例如一个或多个闪存、随机存取存储器(静态、动态或其它))、光盘、 CD-ROM、DVD ROM、EPROM、EEPR0M、磁卡或光卡或适合用于存储电子指令的其它类型的机器 可读介质。程序代码也可以从远程计算机(例如服务器)通过传播介质中包含的数据信号 (例如经由通信链路(例如网络连接))下载到进行请求的计算机(例如,客户端)。
[0143]这里使用的术语“存储器”意图包含所有易失性存储介质,诸如动态随机存取存储 器(DRAM)和静态RAM (SRAM)0计算机可执行指令可以存储在非易失性存储设备诸如磁硬 盘和光盘上并且通常在处理器执行软件期间通过直接存储器存取处理被写入存储器中。本 领域技术人员将立即认识到,术语“机器可读存储介质”包括处理器可访问的任何类型的易 失性或非易失性存储设备。
[0144]前述详细描述是鉴于对计算机存储器内的数据比特的操作的算法和符号表示来 介绍的。这些算法描述和表示是数据处理领域技术人员为了将他们的工作的实质最有效地 传达给本领域其它技术人员所使用的工具。算法在这里通常是构想为是导致期望结果的自 一致的操作序列。这些操作是要求对物理量的物理操作的那些操作。通常,尽管不是必需 的,这些量采用能够被存储、迁移、组合、比较和以其他方式操纵的电信号或磁信号的形式。 已经证实,有时主要因为公共使用的原因,将这些信号称为比特、值、元素、符号、字符、项、 数字等是方便的。
[0145]然而,应当谨记的是,所有这些和类似的术语将与适当的物理量相关联并且仅仅 是应用于这些量的便利标签。除非另外具体指明,否则,从以上论述显见,将明白,通过该描述,利用诸如“处理”或“计算”或“确定”或“显示”等的术语进行的论述是指计算机系统或 类似的电子计算设备将被表示为计算机系统的寄存器和存储器内的物理(电子)量的数据 操纵和变换成被类似地表示为计算机系统存储器或寄存器或其它这样的信息存储装置、传 输或显示设备内的物理量的其它数据的动作和处理。
[0146]本发明还涉及用于执行本文中所描述的操作的装置。该装置可以被具体地构造 用于所需的目的,或者其可以包括用存储在计算机中的计算机程序选择性地激活或重新配 置的通用计算机。这样的计算机程序可以存储在计算机可读存储介质中,计算机可读存储 介质诸如但不限于是任何类型的盘包括软盘、光盘、CD-ROM和磁光盘、只读存储器(ROM)、 RAM、EPROM、EEPR0M、磁卡或光卡或适合用于存储电子指令的任何类型的介质,并且每一个 都耦接到计算机系统总线。
[0147]本文中介绍的处理和显示并不固有地涉及任何特定的计算机或其它装置。各种通 用系统可以于根据本文中的教导的程序一起使用,或可以证实,构建更专门的装置用于执 行所述操作是便利的。用于各种这些系统的所需结构将从以下描述显见。另外,本发明不 是参考任何具体编程语言来描述的。将明白,各种编程语言都可以用于实现本文中所描述 的本发明的教导。
[0148]在以上说明中,已经参考本发明的具体示例性实施例描述了本发明。将显见的是, 可以在不偏离对以下权利要求书中所阐述的本发明的更宽的精神和范围的情况下对其进 行各种修改。相应地,说明书和附图应当从说明性的含义而不是限制性含义上去理解。
【权利要求】
1.一种机器可读的非暂时性存储介质,其具有指令,所述指令当被机器执行时使得机器执行一种方法,所述方法包括:向第一备份源识别设备中的资源的变化;响应于从第一备份源接收到用于向第二备份源授权的令牌,利用所述令牌将所述资源的变化备份到第二备份源;以及如果将所述资源的变化备份到第二备份源是成功的,则将所述资源的变化提交到第一备份源。
2.如权利要求1所述的介质,其中,所述识别包括:将所述设备的前一快照与第一备份源同步,所述前一快照指示在前一时间点已经为所述设备备份的资源;将所述设备的所述资源与所述前一快照比较来得出所述变化。
3.如权利要求2所述的介质,其中,所述设备存储高速缓存快照并且其中所述同步包括: 经由第一备份源确定高速缓存快照是否相对于所述前一快照过期。
4.如权利要求2所述的介质,其中,所述同步基于所述设备的标识符并且其中在第一备份源中所述前一快照是对应于所述标识符而维护的。
5.如权利要求2所述的介质,其中,所述设备包括文件系统,其中,所述资源包括所述文件系统中的文件并且其中所述比较包括:扫描所述文件系统来基于所述前一快照跟踪需要备份哪些文件以及已经备份了哪些文件。
6.如权利要求5所述的介质,其中,如果文件可从网络可访问站点获得,则所述文件不需要被备份。
7.如权利要求1所述的介质,还包括维护所述资源的元数据,其中,所述元数据描述有关所述资源的信息而不描述所述资源的实际内容,其中,第一备份源与所述设备之间的通信是基于作为所述资源的一个抽象层的所述元数据的,以允许用于所述通信的轻量网络;其中,第二备份源与所述设备之间的通信是基于作为所述资源的分离的抽象层的、所述资源的实际内容的,以允许第二备份源中的备份存储装置的共享。
8.如权利要求7所述的介质,其中,所述设备与具有备份配额的账户相关联并且其中所述授权指示用于所述资源的所述变化的备份空间被保存在所述备份存储装置中而不超过所述备份配额。
9.如权利要求7所述的介质,其中,所述实际内容的一部分对应于所述资源的所述变化,并且其中,所述备份包括:经由所述令牌对第三备份源进行认证,第三备份源由第一备份源引用;并且响应于从第三备份源接收到的指令,根据所述资源的所述分离的抽象层将所述实际内容的所述部分分割成数据组块。
10.如权利要求9所述的介质,还包括:经由第三备份源识别哪些数据组块不存在并且需要被备份;以及将所识别的数据组块更新到第二备份源。
11.如权利要求10所述的介质,其中,识别哪些数据组块包括:生成唯一地识别每个数据组块的组块标识符,其中,第三备份源根据数据组块的组块标识符来确定该数据组块是否已经被备份。
12.如权利要求11所述的介质,其中,所述组块标识符是从对应的组块数据散列的签名。
13.如权利要求11所述的介质,其中,所述资源包括文件,所述文件与从所述文件分割的数据组块中的至少一个数据组块相关联,所述方法还包括:向所述文件指派任意标识符来作为第三备份源中针对相关联的数据组块的引用,以允许如果所述任意标识符不再被引用则经由第三备份源进行垃圾回收。
14.如权利要求13所述的介质,其中,如果所述备份存储装置中存在所述数据组块中的第二数据组块并且第二数据组块由识别第一数据组块的特定标识符识别,则第一数据组块不需要被备份,并且其中第一数据组块和第二数据组块与被指派了分别的任意标识符的分别的文件相关联。
15.如权利要求10所述的介质,其中,所述上载通过在所述设备中从第三备份源接收的认证密钥来使能。
16.—种机器可读的非暂时性存储介质,其具有指令,所述指令当被机器执行时使得机器执行一种方法,所述方法包括:维护描述被存储在设备中的文件的实际内容的元数据,所述元数据表示用于表示所述文件的第一抽象层;从第一抽象层识别所述实际内容的一部分,所述实际内容的所述部分要从所述设备被备份;动态生成要备份的所述实·际内容的所述部分的内容标识符,所述内容标识符表示用于表示所述文件的第二抽象层,第二抽象层与第一抽象层是分离的;以及将所述实际内容的所述部分经由所述内容标识符上载到网络可访问存储装置。
17.如权利要求16所述的介质,所述实际内容的所述部分属于所述文件的一部分并且其中所述网络可访问存储装置存储不足以恢复所述文件的所述部分的数据。
18.如权利要求17所述的介质,其中,所述识别基于使用与第一备份源通信的第一抽象层的网络协议。
19.如权利要求17所述的介质,还包括:经由使用第二抽象层的网络协议利用第二备份源识别用于所述文件的所述部分的所述实际内容的所述部分,所述实际内容的所述部分将被上载到所述网络可访问存储装置。
20.如权利要求17所述的介质,其中,所述网络可访问存储装置经由第二备份源被动态配置来增大所述上载的效率。
21.—种计算机实现的方法,包括:向第一备份源识别设备中的资源的变化;响应于从第一备份源接收到用于向第二备份源授权的令牌,利用所述令牌将所述资源的变化备份到第二备份源;以及如果将所述资源的变化备份到第二备份源是成功的,则将所述变化提交到第一备份源。
22.—种计算机实现的方法,包括:维护描述被存储在设备中的文件的实际内容的元数据,所述元数据表示用于表示所述文件的第一抽象层;从第一抽象层识别所述实际内容的一部分,所述实际内容的所述部分要从所述设备被备份;动态生成要备份的所述实际内容的所述部分的内容标识符,所述内容标识符表示用于表示所述文件的第二抽象层,第二抽象层与第一抽象层是分离的;以及将所述实际内容的所述部分经由所述内容标识符上载到网络可访问存储装置。
23.一种计算机系统,包括:存储可执行指令的存储器;耦接到至少第一和第二备份源的网络接口;耦接到所述存储器和所述网络接口以执行来自所述存储器的指令的处理器,所述处理器被配置为:向第一备份源识别计算机系统中的资源的变化;响应于从第一备份源接收到用于向第二备份源授权的令牌,利用所述令牌将所述资源的变化备份到第二备份源;以及如果将所述资源的变化备份到第二备份源是成功的,则将所述变化提交到第一备份源。`
【文档编号】G06F11/14GK103597801SQ201280027326
【公开日】2014年2月19日 申请日期:2012年5月22日 优先权日:2011年6月3日
【发明者】K·B·米内尔, G·J·弗里德曼, E·克里杰勒 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1