用于移动设备上的自动基于云的全数据备份和恢复的系统和方法与流程

文档序号:29690595发布日期:2022-04-16 11:26阅读:151来源:国知局
用于移动设备上的自动基于云的全数据备份和恢复的系统和方法与流程
用于移动设备上的自动基于云的全数据备份和恢复的系统和方法
1.分案说明
2.本技术属于申请日为2016年5月17日的中国发明专利申请201680019563.2的分案申请。
3.相关申请的交叉引用
4.本技术要求2015年5月27日提交的美国临时申请号62/167,148的权益并且与2016年5月17日提交的第15/156,539号美国实用新型申请相关,所述申请中的每个申请全文并入本文中。
技术领域
5.一般来说,本公开涉及用于将数据备份到云存储装置以及将数据从云存储装置恢复到移动设备的系统和方法。


背景技术:

6.随着全球使用模式转向移动设备上的内容消费、创建和管理,移动设备的使用正在增加。然而,移动设备不是用于数据保存的良好平台。移动设备易于损坏或不可操作,从而导致本地存储的内容或数据丢失。可能由于技术原因而导致移动设备发生故障之后无法访问数据和内容,所述技术原因可以包括不充分或技术上无效的数据备份功能。
7.另外,移动设备的用户频繁地升级设备。在设定新设备时,由于应用数据和相关联设定丢失,用户体验通常受阻。这可能要求用户从头开始设定新设备,这样可能需要大量的用户输入并且增加新设备的用户界面组件上的负载。另外,要求用户从头开始设定新设备可能会导致与第三方应用相关联的重要数据丢失,所述重要数据例如,文本消息、照片、应用偏好、安全性设定或任何其它合适的第三方应用数据。现有的备份技术通常依赖于使用键值对,所述键值对仅备份第三方应用数据的某些方面。使用键值对来将第三方应用恢复到客户端设备可以恢复应用设定,但是不可以恢复第三方应用的附加内容。因此,具有备份和保存为键值对的设定的第三方应用可以导致根据用户设定恢复第三方应用环境,但是由用户在第三方应用中生成或存储的第三方应用内容丢失。此外,现有系统可以要求第三方应用的开发者具体地将第三方应用配置成允许备份,或要求用户选择加入备份或手动地触发备份。


技术实现要素:

8.本文公开用于在每个应用基础上将应用数据全数据备份到云存储装置,从而使与第三方应用相关联的数据的备份和恢复更有效且更可靠的系统和方法。全数据备份包括与第三方应用相关联的所有数据,所述所有数据包括与诸如安全性设定的设定、环境、应用历史、用户偏好和应用内容相关联的所有二进制数据和元数据;以及与第三方应用相关联的任何其它数据,所述其它数据可以用于运行第三方应用或创建第三方应用环境。因此,有效
地改进全数据备份的示例是减少需要用于备份和恢复所有所需数据的所需用户输入数量,这样会减少设备的用户界面组件上的负载。移动设备显示器所使用的功率可以占移动设备的总能量使用的很大一部分,因此减少显示器活动的时间可能导致功耗降低,这在最小化电池电力的使用非常重要的移动设备的情况下可能尤其有益。当确定应发生备份时,可以由客户端设备备份框架周期性地发起数据备份。将每个应用的第三方应用数据上传到云存储位置。具体来说,第三方应用数据可以包括两种形式的数据:二进制数据和元数据。在这种情况下,二进制数据可以与元数据分开存储。包括二进制数据的存储位置的标识符可以附加到元数据,使得所附加的元数据包括二进制数据的云存储地址的参考。二进制数据和元数据具有不同特性并且可以具有不同的最佳存储方案。例如,二进制数据存储装置可能需要用于存储大量数据并快速地按顺序读取访问字节的装置。二进制存储装置可以是可搜索的或不可搜索的,或以其它方式索引化。元数据存储装置可以具有与非二进制数据的快速存储以及创建层级关系和跨越相关文件夹和文件传播诸如所有权数据的元数据有关的能力。元数据存储装置还包括用于搜索所存储元数据的装置,并且被配备为快速地处理此类搜索以支持预期的用户界面响应时间。
9.当用户希望将第三方应用数据恢复到客户端设备时,用户可以发起设备恢复过程,所述设备恢复过程将第三方应用数据从云存储装置恢复到客户端设备。因为从包括设定和内容两者的全数据备份中恢复第三方应用数据,所以减少了数据丢失。从备份中恢复第三方应用、应用环境和第三方应用数据内容,从而实现到新设备的无缝过渡。从存储在云存储装置中的全数据备份恢复可允许用户将设备恢复到先前设备的准确状态,包含已安装的应用、设定、和任选的附加内容,例如,照片、文本和音频或视频文件。
10.在一个方面,用于将第三方应用数据存储到云存储装置的方法包括:确定将存储在客户端设备上的与第三方应用相关联的数据上传到云存储服务器。与第三方应用相关联的数据包括二进制数据和元数据两者。所述方法进一步包括将第三方应用的二进制数据存储在第一云存储位置处。第一云存储位置具有存储地址,并且更新元数据以包括所述存储地址。所述方法随后包括将更新的元数据存储到不同于第一云存储位置的第二云存储位置。
11.在一些实施方式中,第三方应用的二进制数据包括第三方应用的全数据。在一些实施方式中,客户端设备通过识别存储在客户端设备上的与第三方应用相关联的存储的二进制数据确定是否上传所述数据。在一些实施方式中,客户端设备还识别与第三方应用相关联的先前上传的二进制数据,并且计算存储的二进制数据与先前上传的二进制数据之间的差异。客户端设备将所述差异与阈值相比较。如果所述差异等于或超过阈值,则客户端设备确定上传与第三方应用相关联的数据。
12.在一些实施方式中,客户端设备存储与多个第三方应用相关联的数据,并且所述多个第三方应用中的每个第三方应用与对应二进制数据和对应元数据相关联。在单次上传中从客户端设备上传每个第三方应用的对应二进制数据和对应元数据。在一些实施方式中,在下载数据之前,不会在客户端设备上完全复制与第三方应用相关联的数据。在一些实施方式中,基于预定上传调度,客户端设备确定上传与第三方应用相关联的数据。在一些实施方式中,基于检测到由第三方应用报告的第三方应用的改变,客户端设备确定上传与第三方应用相关联的数据。在一些实施方式中,当客户端设备从客户端设备的用户接收备份
请求时,客户端设备确定上传与第三方应用相关联的数据。
13.在一些实施方式中,客户端设备被配置成将第三方应用的二进制数据和元数据聚集到单个文件中并且将所述文件传输到云存储装置中的上传服务器。上传服务器被配置成:将二进制数据与元数据分开;传输二进制数据以存储在第一云存储位置中;将第一云存储位置的存储地址附加到元数据以获得更新的元数据;以及传输更新的元数据以存储在第二云存储位置中。
14.在另一方面,用于将第三方应用数据恢复到客户端设备的方法包括:确定是否将与第三方应用相关联的数据提供到客户端设备。与第三方应用相关联的数据包括存储在具有存储地址的第一云存储位置中的二进制数据以及存储在第二云存储位置中的元数据。所述方法进一步包括使用元数据来确定第一云存储位置的存储地址,以及将二进制数据从第一云存储位置提供到客户端设备。
15.在一些实施方式中,第三方应用的二进制数据包括第三方应用的全数据。在一些实施方式中,客户端设备存储与多个第三方应用相关联的数据。多个第三方应用中的每个第三方应用与对应二进制数据和对应元数据相关联,并且在单次下载中将每个第三方应用的对应二进制数据下载到客户端设备。在一些实施方式中,当客户端设备从客户端设备的用户接收恢复请求时,客户端设备确定下载与第三方应用相关联的数据。在一些实施方式中,与第三方应用相关联的数据包括应用数据、用户偏好和应用内容。在一些实施方式中,客户端设备是第一客户端设备,并且将二进制数据和更新的元数据下载到第二客户端设备,使得第一客户端设备上的第三方应用数据与第二设备上的第三方应用数据同步。
16.在一些实施方式中,将二进制数据和元数据传输到云存储装置中的下载服务器,其中,下载服务器先前将二进制数据写入第一云存储位置并且先前传输元数据以写入第二云存储位置。在一些实施方式中,下载服务器先前将元数据传输到云存储服务,所述云存储服务被配置成从第二云存储位置读取更新的元数据并且将更新的元数据写入第二云存储位置。在一些实施方式中,与另一第三方应用相关联的数据包括存储在第三云存储位置中的元数据,并且不包括二进制数据。在一些实施方式中,用于将第三方应用数据恢复到客户端设备的方法还包括:确定是否将与另一第三方应用相关联的数据提供到客户端设备;将与另一第三方应用相关联的元数据识别为存储在第三云存储位置中的键值对集合;以及将所述键值对集合提供到客户端设备
附图说明
17.在结合附图研读以下详细描述之后,本发明的以上和其它特征,包括本发明的本质和各个优点将变得更加显而易见。
18.图1是根据说明性实施例的用于将数据上传到云存储服务的系统的框图;
19.图2是根据说明性实施例的被配置成合作执行数据上传过程的客户端设备和服务器的框图;
20.图3是根据说明性实施例的示出用于上传第三方应用数据的说明性方法的框图;以及
21.图4是根据说明性实施例的示出用于将第三方应用数据从云存储系统恢复到设备的说明性方法的框图;
22.图5示出根据说明性实施例的用于将第三方应用数据存储到云存储装置的方法的流程图;以及
23.图6示出根据说明性实施例的用于提供第三方应用数据到客户端设备的恢复的方法的流程图。
具体实施方式
24.为了对本文所描述的系统和方法进行全面理解,现将描述某些实施例,包括用于备份和恢复客户端设备上的第三方应用数据的系统。然而,本领域技术人员将理解,本文所描述的系统和方法可以适当地适用于和修改用于正解决的应用,并且本文所描述的系统和方法可以用于其它合适的应用中且此类其它添加和修改不会偏离其范围。通常,本文所描述的计算机化的系统可以包括一个或多个引擎,所述引擎包括一个或多个处理设备,例如,计算机、微处理器、逻辑设备,或配置有硬件、固件和软件以执行本文所描述的计算机化的方法中的一个或多个的其它设备或处理器。
25.如本文所描述,本发明提供一种执行与第三方应用相关联的全数据的备份的系统和方法。代替与第三方应用设定相关联的键值对,将包括设定、历史和内容的与第三方应用相关联的全数据上传到云存储装置。通过上传到云存储装置来备份与第三方应用相关联的二进制数据和元数据两者。用于第三方应用的元数据可以包括文件名、大小、密码或识别号、文件历史、描述、第三方应用所设计用于的操作系统的当前版本,以及其它静态元数据。还可以使用类似方法来备份除了第三方应用特定数据之外的其它文件和数据。此类数据可以包括存储卡、sd卡、下载文件夹,或不与个别app的数据相关联的其它数据存储库。另外,备份到云存储装置中的这些和其它文件和数据可以作为完全可操作和可见的文件暴露给基于云的文件存储系统用户界面中的用户。
26.可以根据预定调度或在改变第三方应用数据时发生第三方应用数据的备份。例如,预定调度可能需要每隔固定间隔备份第三方应用数据,例如,每天一次、每周一次、每月一次或任何其它合适的频率。作为另一示例,在确定已经对第三方应用数据进行至少阈值量的改变时,可以自动地发起备份。具体来说,第三方应用数据的改变可以包括内部第三方应用数据库或设定的改变。在一些实施例中,将第三方应用的改变记录在与应用相关联的文件夹中。这些改变可以由客户端设备备份框架获取以确定是否需要上传。
27.在一些实施例中,客户端设备可以被配置成允许用户自定义与备份有关的设定。例如,当客户端设备是移动电话时,在移动电话连接到蜂窝网络时,移动电话可能不希望将第三方应用数据上传到云存储装置,因为这样会消耗用户数据计划中的数据。在这种情况下,客户端设备可以被配置成仅在移动设备连接到快速、可靠和/或廉价网络(例如,无线互联网网络)时执行备份。或者,用户可以选择一个或多个选项来启用通过蜂窝网络的备份。可以配置备份,使得为多个第三方应用确定的所需备份被分组在一起,并且在上传会话期间一个接一个地执行那些多个第三方应用的所有上传。用于一个以上第三方应用的多个所需备份也可能会随着第三方应用数据的改变而持续发生。备份还可以被配置成仅在符合特定设备要求时发生,例如,当移动设备插入电源时,或在空闲或非高峰使用时间(例如夜间)时发生。
28.图1示出用于将数据上传到云存储服务的系统100的框图。系统包括客户端设备
101、应用102a和102b(通常,应用102)、云存储装置103、第一云存储位置104以及第二云存储位置106。客户端设备101包括第三方应用102,所述第三方应用包括关联的数据。数据可以包括二进制数据和元数据两者。客户端设备确定应发生上传。应发生上传的确定可以由用户动作、定时上传或基于可以由用户发起的或以其它方式发起的第三方应用和应用数据或的改变的上传。客户端设备101将第三方应用的二进制数据和元数据传输到云存储装置103。第三方应用的二进制数据存储在第一云存储位置104处,并且第三方应用的元数据存储在云存储装置103内的第二云存储位置106处。
29.数据上传
30.图2是被配置成合作执行数据上传过程的系统200的框图。系统200包括客户端设备201上(例如,在“客户端侧”)的备份框架208、备份传输210和第三方应用202a、202b、202c,以及服务器216上(例如,在“服务器侧”)的备份服务器218、上传服务器224、云存储服务203和元数据存储装置226。客户端设备201可以包括移动设备,例如,手机或平板电脑。尽管客户端设备201在本文通常描述为移动设备,但是本领域技术人员将理解,本发明的系统和方法还可适用于在任何数量的计算设备上执行应用数据的备份和恢复,所述计算设备包括桌面型计算机、膝上型计算机或任何其它合适的计算设备。客户端设备201存储与第三方应用202a、202b、202c相关联的数据,所述第三方应用与包含二进制备份模块209的备份框架208通信。备份框架208与备份传输210通信。备份框架208存在于设备存储器中,并且被配置成通过参考预定调度或响应于检测到应用数据的改变来确定第三方应用202a、202b、202c是否需要备份。备份框架208被配置成允许将二进制应用数据与第三方应用数据的先前备份进行比较,以确定数据是否改变。这可以通过校验和计算或通过确定应用改变文件夹中是否记录任何应用改变来实现。
31.在客户端设备201确定需要备份之后,二进制备份模块209将待上传的应用数据存档到单个文件中并且将所述文件发送到备份传输210。图2中的备份传输210包括各种备份方法可以使用的两个不同数据类型。具体来说,如图2中所示,备份传输包括键值对部分213以及包括二进制数据的全数据备份部分212。一般来说,在不脱离本发明的范围的情况下,可以使用其它合适的数据类型。在已将应用数据从备份框架208发送到备份传输210之后,客户端设备201要求服务器216开始上传过程。
32.如图2所描绘,服务器216包括上传服务器224、包含键值对存储装置220和业务逻辑代理222的备份服务器218、云存储服务203,以及元数据存储单元226。上传服务器224处理上传的二进制数据,并且被配置成要求备份服务器218中的业务逻辑代理222发起关联元数据的存储以及位置参考的创建,所述位置参考的创建可以用于在未来恢复请求期间检索数据。备份服务器218从上传服务器224接收请求并且将这些请求传递到云存储服务203,所述云存储服务准备用于存储在元数据存储装置226中的元数据。另外,与客户端设备的备份有关的结构化数据可以存储在键值对存储装置220中。结构化数据可以包括作为上传方法的部分而接收的设备id、第三方应用id以及对存储在云存储装置中的第三方应用数据的存储位置的参考。所述结构化数据可以包括附加信息,包括客户端设备类型和制造日期、与最近备份有关的时间戳,以及与客户端设备201上的备份框架208的版本有关的信息。
33.在一些实施例中,通过一系列步骤实现第三方应用数据的上传。这些步骤通过关于图2描述的一些组件在图3中说明和举例:
34.在图3的步骤1中,当客户端设备备份框架208确定需要数据上传时,使用与需要备份的第三方应用202a、202b、202c有关的基本元数据生成备份请求信息。将备份请求消息从客户端设备201发送到上传服务器224。客户端设备备份框架208为需要新备份的每个第三方应用202a、202b、202c创建tar文件(.tar存档文件)。客户端设备备份传输210通过将备份请求消息传递到上传服务器224来发起将第三方应用数据打包工具上传到上传服务器224。客户端设备备份传输210还提供与上传到上传服务器224的第三方应用数据有关的元数据。上传服务器224通过标准上传、二进制差分法、或分块或可恢复上传接收文件。在包括二进制差分上传的实施例中,待上传的二进制数据和元数据可以暂存在位于客户端设备201上的二进制差分库214中。可以通过校验和方法确定待上传的第三方应用数据,使得仅上传客户端设备201上的第三方应用数据与现有所存储数据相比的差,以及描述两个数据文件之间的差的结构。
35.在步骤2处,上传服务器224将接收到的第三方应用二进制数据写入二进制数据存储装置223。二进制数据存储装置228是设计用于存储大量二进制数据的云存储位置。二进制数据存储装置228可以按顺序读取对字节的访问,并且响应于调用位置服务所述字节。移除第三方应用元数据以存储在第二云存储位置中(例如,图2中的元数据存储装置226处)。
36.在步骤3处,上传服务器224接收第三方应用二进制数据的二进制数据存储位置参考,所述二进制数据存储位置参考包括上传的第三方应用数据的文件位置。二进制数据存储位置参考是可以用于查找二进制数据存储装置228中已存储第三方应用数据的位置的数字串。
37.在步骤4处,上传服务器224将第三方应用数据的二进制数据存储位置参考提供到备份服务器218内的业务逻辑代理222,所述业务逻辑代理复制二进制数据位置参考。上传服务器224还将第三方应用元数据提供到备份服务器218。
38.在步骤5处,备份服务器218将二进制数据存储位置参考以及与存储的二进制数据相关联的第三方应用元数据传递到云存储服务203。备份服务器218根据需要创建用于正确地存储元数据的文件和文件夹。云存储服务203能够读取文件以及将文件写入元数据存储装置226。
39.在步骤6处,云存储服务203使用接收到的第三方应用元数据和二进制数据存储位置参考,并且将二进制数据存储位置参考附加到元数据条目。附加的描述符也可以附加到第三方应用元数据,例如,不根据用户的存储配额计算第三方应用数据的存储空间的指令。云存储服务203在元数据存储装置226中创建用于存储第三方应用元数据的合适条目和文件夹。云存储服务203将第三方应用数据写入元数据存储装置226。元数据存储装置226是能够存储元数据的云存储装置。
40.在步骤7处,元数据存储装置226传回表示第三方应用元数据的成功存储的成功信号。成功信号包括元数据位置的参考,使得成功信号可以用于查找元数据的位置。
41.在步骤8处,云存储服务203将成功信号传递到记录所述成功信号的备份服务器218。
42.在步骤9处,备份服务器218将成功信号传递到上传服务器224。
43.在步骤10处,上传服务器224将成功信号传回到客户端设备201。
44.二进制数据上传到上传服务器224并且存储在二进制数据存储装置228中。可能在
上传服务器224中发生第三方应用数据的批处理。对应元数据与二进制数据存储位置的参考附加在一起并且存储在元数据存储装置226中。通过云存储服务203辅助将元数据存储在元数据存储装置226位置中。在成功地存储元数据之后,成功信号由元数据存储服务226生成并且传递回备份服务器218,到达上传服务器224且最终到达客户端设备201。成功信号指示第三方应用数据已成功地进行上传并且存储在云存储装置中。
45.在一些实施例中,将第三方应用数据每应用作为单个文件从移动设备上传到云存储装置。用于例如图2中的202a、202b或202c的单个第三方应用的第三方应用数据可以作为.tar类型存档文件上传。此类型的文件在本文中可以被称为tar文件(tarball)。在每应用基础上执行备份可能至少是有利的,因为这样可能会增加成功上传的可能性。具体来说,优选的是每个第三方应用一次上传一个文件,而不是一起批处理多个第三方应用的改变。涉及大文件的上传比那些涉及较小文件的上传更容易出错。如果上传出现问题,则仅需要重新上传用于单个第三方应用的应用数据。以此方式,仅包含与单个第三方应用有关的应用数据的上传因此将花费更少时间,并且上传将更有效。
46.在备份期间,每个第三方应用202a、202b、202c使用单个文件上传仅在上传过程之前需要少量的临时存储。可以执行第三方应用数据的上传过程,使得在上传之前数据不会在本地高速缓冲存储器中进行复制,而是直接进行流式传输。因此,从不在磁盘上生成整个备份有效载荷。可以作为单次通过处理和上传每个第三方应用数据上传,以便确保上传的第三方应用数据是一致的。如果两次通过之间的第三方应用数据改变,则多于一次通过地上传第三方应用数据可能导致生成不一致的上传过程。
47.在一些实施例中,可能难以在单次通过中上传第三方应用数据。如果上传服务器224需要在上传开始时提供发送到服务器的字节范围的清单,则可能发生这种情况。在这些情况下,单次通过上传可能无法发生,因为必须首先通过第三方应用数据文件进行完整传递来计算清单。在这种情况下,磁盘空间可能不足以暂存供处理的文件。无法保证通过第三方应用数据文件用于准备上传的第二通过与快照为第一通过的第三方应用数据文件相同。通过交错差异清单信息,可以支持此情况。可以使用一下格式指定单次通过上传脚本:
48.{使用服务器复制字节0 100、上传这20个字节、使用服务器字节120-150}。
49.备份到云存储装置的第三方应用数据存储为每应用备份数据。仅第三方应用数据的最新版本存储在云存储装置中的位置中。任选地,可以通过其中仅将改变的数据上传到云存储装置的二进制差分法完成数据的上传。使用二进制差分法,将第三方应用数据的当前状态与先前上传的备份进行比较,并确定在第三方应用数据中发生了哪些改变。当前第三方应用数据与先前第三方应用数据备份的比较可以通过校验和方法完成。在此方法中,在客户端设备上在本地计算最后上传第三方应用数据的自定义块大小的校验和。可以仅将指示差异的数据上传到云存储装置,而不是上传原始第三方应用数据的整个集合,由此节省带宽并减少备份上传所需的时间。因此,使用二进制差分协议来确定待上传的第三方应用数据的改变可提高每第三方应用方法单次上传的效率。
50.在一些实施例中,二进制差分法用于确定是否应执行第三方应用数据的上传,并确定第三方应用数据发生了哪些改变以及应将哪些内容上传到云存储装置。客户端设备备份传输从第三方应用数据读取数据,并逐步地处理所述数据。客户端备份框架存储至少一个校验和块。对于客户端备份传输读取的每个字节,计算最后n个字节的滚动校验和,并且
将所述滚动校验和与同最后一次上传相关联的块的校验和进行比较。从最后一次上传第三方应用数据生成的块的校验和存储在服务器上,并下载所述校验和以进行比较。如果新计算出的校验和与所存储的校验和不匹配,则将最早的字节发送到服务器。如果匹配,则不将块上传到云存储装置。
51.在一些实施例中,第三方应用数据的备份被配置成自动的并且根据设定调度发生。第三方应用数据备份和上传可以是自动的并且对于所有第三方应用202a、202b、202c通用,使得第三方应用的开发者不需要以任何方式改变其第三方应用配置以将第三方应用数据备份在此系统中。第三方应用202a、202b、202c的开发者可以通过改变其第三方应用202a、202b、202c的配置细节或清单来选择退出备份。可能不建议全数据备份的第三方应用202a、202b、202c的示例是财务应用、密码存储应用或认证器。具有选择退出自动备份的开发者的这些第三方应用202a、202b、202c可以仍由用户或第三方应用202a、202b、202c通过替代手动机制备份。
52.在第三方应用数据已上传到云存储装置并存储在云存储装置中之后,第三方应用数据的备份可能从用户的视图中隐藏,但仍与用户的云存储账户相关联。或者,用户可以通过云存储文件系统中的用户界面来访问第三方应用数据的备份。通过用户界面访问第三方应用数据的备份允许当在云存储系统中时用户改变或操纵第三方应用数据或其它数据。例如,与照片编辑第三方应用有关的数据的备份可以包括编辑或未编辑照片,用户可以通过与其相关联的云存储文件系统的用户界面而在备份文件中访问和编辑或操纵所述编辑或未编辑照片。用户还可以访问第三方应用数据的备份以删除数据的备份。
53.在一些实施例中,第三方应用数据的备份存储在云存储系统中的分层文件夹中。第三方应用二进制数据和元数据可以存储在与用户相关联的文件夹内。包含备份数据的文件夹以某种方式组织,使得客户端设备和第三方应用是可识别的。这可以包括与以下项相关联的对象族根文件夹:客户端设备的第三方应用数据备份、客户端设备id、所存储的第三方应用数据备份、例如名字的应用标记,以及在一些情况下,第三方应用数据文件的打包工具。尽管与用户的账户相关联,但是对象族根文件夹可能对用户不可用。此文件夹也可能在同步事件期间不同步。
54.数据恢复
55.根据本发明的系统和方法,可以将存储在云存储装置中的第三方应用数据恢复到客户端设备201。为了实施恢复路径,可以在客户端设备201的命令之后检索第三方应用数据。在第三方应用202a、202b、202c的恢复期间,上传服务器224可以被配置成下载数据。在此情况下,上传服务器224可以被称为下载服务器230。可以使用以下步骤在每个应用基础上完成将第三方应用数据从云存储系统恢复到设备,如在图4中通过图2中所描述的一些组件说明:
56.在图4的步骤1处,在设备的恢复之后,客户端设备201备份传输210通过将设备id和第三方应用id发送到备份服务器218来发起第三方应用下载。这识别客户端设备201和用户以及请求与用户相关联的数据的第三方应用202a、202b、202c。
57.在步骤2处,在从客户端设备201接收识别信息和第三方应用数据恢复请求之后,备份服务器218将成功信号从第三方应用数据的最后一次成功备份发送回客户端设备201。成功信号包含元数据存储位置的参考。
58.在步骤3处,客户端设备备份传输210与下载服务器230连接,从而将具有元数据存储位置参考的成功信号发送到下载服务器230。
59.在步骤4处,下载服务器230使用元数据存储位置参考来从元数据存储装置226请求第三方应用元数据。
60.在步骤5处,下载服务器230接收第三方应用元数据以及二进制存储位置参考,所述二进制存储位置参考在第三方应用数据的备份期间附加到元数据。
61.在步骤6处,下载服务器230使用二进制存储位置参考来从二进制数据存储装置228请求第三方应用二进制数据。
62.在步骤7处,从二进制数据存储装置228提取第三方应用二进制数据并且将其发送到下载服务器230。
63.在步骤8处,下载服务器230将所请求的第三方应用二进制数据和元数据直接提供到客户端设备备份传输210。客户端设备备份传输210将递送的数据提取到与第三方应用数据的存储相关联的客户端设备存储装置中的特定位置。数据恢复到设备的每个第三方应用202a、202b、202c可以在指定用于存储数据的客户端设备存储装置内具有不同位置。因此,客户端设备备份传输210将第三方应用202a、202b、202c实施到客户端设备201上,从而恢复所有第三方应用设定和文件。
64.上述恢复方法可以在用于设定新设备的设定过程期间执行。当账户添加到客户端设备201时,客户端设备的备份框架208可以检查备份是否已存储在云存储装置中。如果是,则恢复每个第三方应用202a、202b、202c的第三方应用数据。例如,客户端设备201查询备份服务器218关于第三方应用202a、202b或202c。如果备份服务器218将成功信号提供到客户端设备201,则这可以指示在云存储装置中存在应用的备份。
65.如果在恢复请求期间确定存在用于具体所请求的第三方应用202a、202b、202c的第三方应用数据的备份,则下载第三方应用数据的过程开始。从所存储的元数据中检索二进制数据存储位置参考。通过使用二进制数据存储位置参考来将合适的第三方应用二进制数据定位在二进制数据存储装置228中,通过下载服务器230从二进制数据存储装置228下载打包工具文件(.tar存档文件)。下载服务器230将第三方应用数据服务到客户端设备201。如果未识别所请求的第三方应用的备份,则将尝试恢复第三方应用设定的替选手段,包括键值对。
66.将第三方应用数据从云存储装置恢复到新设备允许用户在恢复之后在所述设备上体验第三方应用202a、202b、202c中的相同的环境和设定,以及体验与先前设备相同的第三方应用202a、202b、202c内的环境。这可以包括用户偏好,例如,应用的外观和功能。还恢复应用特定的数据,包括存储在应用中的数据。例如,作为文本消息收发应用的第三方应用的所存储数据可以包括文本、照片、音频文件、文本消息历史、和通讯录。这些将通过所描述的上传方法存储在云存储装置中,并通过恢复请求恢复到设备。在恢复第三方应用数据之后,第三方应用数据的备份保存在云存储装置中,以用于附加的恢复或下载请求。
67.在一些实施例中,用户可以发起恢复请求以将第二设备与第一设备同步,所述第一设备已将第三方应用数据上传到云存储装置。用户可以发起恢复过程,所述恢复过程用作用于在两个设备之间同步第三方应用202a、202b、202c的手段,使得第三方应用202a、202b、202c包含相同的应用设定、环境和内容。
68.在一些实施例中,本发明的系统和方法可以通过保持与现有备份方法向后兼容性的方式实施。恢复过程可以向用户提供以下选项:从使用旧版本的备份协议创建的备份中恢复第三方应用数据,所述备份协议例如依赖于使用键值对的备份协议。以此方式,根据本文所描述的方法使用备份和恢复所需的软件操作的客户端设备201可以请求从使用先前备份方法进行的备份中恢复。用户还可以在使用旧的备份和恢复软件时从使用所描述的方法进行的备份中恢复第三方应用数据。使用旧的备份和恢复软件进行的恢复将成功,因为旧的备份软件将忽略包含元数据存储位置参考以及新数据的成功信号,并且替代地将依赖于存储有元数据的键值对以进行恢复。
69.备份和恢复方法是向后兼容的,并且不需要由键值对方法执行的待迁移的先前备份的迁移。本文所描述的备份方法与包括键值对的备份兼容。另外,使用所描述的备份方法需要发起所有应用数据的完整备份,以便建立第三方应用文件的完整记录。这些文件用于与客户端设备上存在的第三方应用数据进行比较,以确定是否需要备份。在接收对备份方法的访问之后,第三方应用202a、202b、202c的完全初始备份消除了对任何先前的键值对备份文件的需求。在一些实施例中,包含先前备份的第三方应用数据的键值对也作为全数据备份的部分进行备份。
70.当设备被停止使用时,可以将先前存储在设备上的第三方应用数据恢复到新设备。然而,停止使用的设备可能导致存在“孤立数据集”,其中第三方应用数据已存储在云中,但不再连接到用户或正运行的客户端设备201。可以采取方法来移除这些孤立数据集。孤立数据集可以设定成在某一时间段之后过期。或者,用户可以通过设备上的用户界面或在与客户端设备201相关联的用户账户中发信号通知设备已停止使用或将变成非活动的。
71.在逐步采用新的备份和恢复方法期间,由于客户端设备201的第三方应用数据全部进行备份,所以存在到达云存储装置的大量数据流。在初始地推出此备份功能期间,上传流程可以由客户端侧和服务器侧的机制控制。例如,用户对上传和恢复功能的访问可能会基于设备而受限。可以配置客户端设备,以便设定或禁用具体客户端设备或客户端设备模型上的功能。或者,可以将功能推向仅某一百分比的客户端设备的用户,从而在将所述功能推向附加百分比的用户之前,允许为这些用户初始地上传第三方应用数据。另外,对上传和恢复功能的访问可能基于第三方应用而受限,随着时间的推移,上传和恢复功能覆盖更多的第三方应用。还可以改变备份时间段的配置,以便通过在两种模式之间切换控制数据流。根据第一模式,当存在足够量的第三方应用数据的改变时,可以发起上传过程。根据第二模式,可以基于预定调度,例如,每n天一次发起上传过程。
72.在服务器侧,可以通过在服务器上实施节流阀杆(例如,标志或特征开关)来控制数据流。标志或特征开关由上传服务器和备份服务器可读。在设定的服务器限值之上,标志返回指示由于节流而产生故障的自定义错误代码。此自定义错误代码还包括指示在进行另一尝试之前建议等待的时间段的字段。还可以并入附加的标志,以便在停止使用全部上传调用的紧急情况下保护下游服务。
73.图5示出说明用于将第三方应用数据存储到云存储装置的方法500的流程图。方法500包括以下步骤:确定将与第三方应用相关联的数据下载到云存储服务器(步骤502);将第三方应用的二进制数据存储在第一云存储位置处(步骤504);更新元数据以包括第一云存储位置的存储地址(步骤506);以及将更新的元数据存储到不同于第一云存储位置的第
二云存储位置(步骤508)。
74.在步骤502处,客户端设备备份框架(例如,图2中的208)确定应将与客户端设备上的第三方应用相关联的数据下载到云存储服务器。可以基于排程的下载、上传数据的用户请求或第三方应用数据的改变来确定将第三方应用数据下载到云存储服务器的要求。在一些实施方式中,可以通过使用校验和方法将当前存储在云存储服务器中的第三方应用数据与存储在客户端设备上的第三方应用数据进行比较来确定下载第三方应用数据的要求。要下载到云存储装置的第三方应用数据包括二进制数据和元数据两者。
75.在步骤504中,二进制数据存储在第一云存储位置中。云存储位置具有相关联的存储地址。与第三方应用相关联的二进制数据作为数据打包工具(例如,.tar存档文件)从客户端设备备份传输(例如,图2中的210)发送到上传服务器。二进制数据存储在指定用于存储大量二进制数据的第一云存储位置中。
76.在步骤506处,更新与第三方应用相关联的元数据以包括第一云存储位置的存储地址。云存储服务(例如,图2中的203)将二进制存储地址附加到元数据。二进制数据因此可以与第三方元数据相关联,并且可以使用更新的元数据中的云存储地址进行检索。存储位置可以是指向第三方应用二进制数据的文件位置的数字串。在一些实施方式中,云存储服务还可以在存储之前将附加的描述符和指令附加到元数据。
77.在步骤508中,更新的元数据被存储在第二云存储位置处。第二云存储位置不同于第一云存储位置,并且优化用于存储元数据。可以在成功地存储二进制数据和元数据之后将成功信号返回到上传服务器。成功信号可以另外包括将用于访问元数据的元数据位置的参考。
78.图6示出说明用于将第三方应用数据恢复到客户端设备的方法600的流程图。方法600包括以下步骤:确定是否将与第三方应用相关联的数据从云存储装置提供到客户端设备(步骤602);使用元数据来确定第一云存储位置的存储地址(步骤604);以及将二进制数据从第一存储位置提供到客户端设备(步骤606)。
79.在步骤602处,确定是否需要恢复来向客户端设备提供与第三方应用相关联的数据。所述恢复可以响应于来自用户的请求或选择,或第三方应用的请求。所述恢复还可以实施为设备之间的同步。与第三方应用相关联的数据包括存储在具有存储地址的第一云存储位置中的二进制数据以及存储在第二云存储位置中的元数据两者。客户端设备备份传输(例如,图2中的210)通过将与客户端设备相关联的设备id以及与第三方应用相关联的第三方应用id发送到备份服务器(例如,图2中的218)来发起数据下载。
80.步骤604包括使用与第三方应用相关联的先前存储的元数据来确定二进制数据的存储地址。在接收包括设备id和第三方应用id的识别信息之后,备份服务器将成功信号从第三方应用数据的最后一次成功备份发送到客户端设备。成功信号包括元数据存储位置的参考。随后可以从元数据存储装置中检索元数据,以获得二进制存储位置参考,所述二进制存储位置参考在第三方应用数据的先前备份期间附加到元数据。
81.在步骤606中,所检索的二进制数据存储位置地址用于定位和请求与第三方应用相关联的二进制数据。经由备份传输由下载服务器将二进制数据和元数据传输到客户端设备。将二进制数据和元数据传递到客户端设备上的存储装置。
82.尽管本文中已示出和描述本发明的各个实施例,但是对本领域技术人员来说显而
易见的是,此类实施例仅通过示例方式提供。在不脱离本发明的情况下,本领域技术人员能想到许多变化、改变和替换。应理解,本文所描述的本发明的实施例的各种替代方案可以用于实践本发明。
83.a1.一种用于将第三方应用数据上传到云存储装置的方法,所述方法包括:
84.确定是否从客户端设备上传与第三方应用相关联的数据,其中,与所述第三方应用相关联的所述数据包括二进制数据和元数据;
85.将所述第三方应用的所述二进制数据和所述第三方应用的所述元数据传输到云存储装置,其中:
86.所述二进制数据存储在具有存储地址的第一云存储位置处;
87.所述元数据被附加有所述存储地址以获得更新的元数据;以及
88.更新的元数据被存储在不同于所述第一云存储位置的第二云存储位置处。
89.a2根据实施例a1所述的方法,其中,所述第三方应用的所述二进制数据包括所述第三方应用的全数据。
90.a3根据实施例a1至a2中任一项所述的方法,其中,确定是否上传与所述第三方应用相关联的所述数据包括:
91.识别存储在所述客户端设备上的与所述第三方应用相关联的存储的二进制数据;
92.识别与所述第三方应用相关联的先前上传的二进制数据;
93.计算所述存储的二进制数据与所述先前上传的二进制数据之间的差异;以及
94.将所述差异与阈值相比较。
95.a4根据实施例a3所述的方法,其中,如果所述差异等于或超过所述阈值,则所述客户端设备确定上传与所述第三方应用相关联的所述数据。
96.a5根据实施例a1至a4中任一项所述的方法,其中,所述客户端设备存储与多个第三方应用相关联的数据,所述多个第三方应用中的每个第三方应用与对应二进制数据和对应元数据相关联,并且在单次上传中上传从所述客户端设备上传每个第三方应用的所述对应二进制数据和所述对应元数据。
97.a6根据实施例a1至a5中任一项所述的方法,其中,在所述传输之前,不会在所述客户端设备上完全复制与所述第三方应用相关联的所述数据。
98.a7.根据实施例a1至a6中任一项所述的方法,其中,所述客户端设备确定基于预定上传调度来上传与所述第三方应用相关联的所述数据。
99.a8.根据实施例a1至a7中任一项所述的方法,其中,基于检测到由所述第三方应用报告的所述第三方应用的改变,所述客户端设备确定上传与所述第三方应用相关联的所述数据。
100.a9.根据实施例a1至a8中任一项所述的方法,其中,当所述客户端设备从所述客户端设备的用户接收备份请求时,所述客户端设备确定上传与所述第三方应用相关联的所述数据。
101.a10.根据实施例a1至a9中任一项所述的方法,其中,所述传输所述二进制数据和所述元数据包括:
102.将所述第三方应用的所述二进制数据和所述元数据聚集到单个文件中;以及
103.将所述文件传输到所述云存储装置中的上传服务器,其中,所述上传服务器被配
置成:
104.将所述二进制数据与所述元数据分开;
105.传输所述二进制数据以存储在所述第一云存储位置中;
106.将所述第一云存储位置的所述存储地址附加到所述元数据,以获得所述更新的元数据;以及
107.传输所述更新的元数据以存储在所述第二云存储位置中。
108.a11.根据实施例a10所述的方法,其中,所述单个文件具有文件类型.tar。
109.a12.根据实施例a1至a11中任一项所述的方法,其中,与所述第三方应用相关联的所述数据包括应用数据、用户偏好和应用内容。
110.a13根据实施例a11至a12中任一项所述的方法,进一步包括在所述客户端设备处接收所述第二云存储位置的参考。
111.a14根据实施例a1至a13中任一项所述的方法,其中,当所述二进制数据被存储在所述第一云存储位置中时,重写所述第三方应用的先前上传的二进制数据,以及当所述更新的元数据被存储在所述第二云存储位置中时,重写所述第三方应用的先前上传的元数据。
112.a15.根据实施例a1至a14中任一项所述的方法,其中,用户可通过能够访问所述云存储装置的用户界面来访问所传输的二进制数据和所述元数据。
113.a16.根据实施例a1至a15中任一项所述的方法,其中,所述客户端设备是第一客户端设备,并且将所述二进制数据和所述更新的元数据下载到第二客户端设备,使得所述第一客户端设备上的所述第三方应用数据与所述第二设备上的第三方应用数据同步。
114.a17.根据实施例a1至a16中任一项所述的方法,其中,将所述二进制数据和所述元数据传输到所述云存储装置中的上传服务器,并且其中,所述上传服务器将所述二进制数据写入所述第一云存储位置,并且传输所述更新的元数据以写入所述第二云存储位置。
115.a18.根据实施例a17所述的方法,其中,所述上传服务器将所述更新的元数据传输到云存储服务,所述云存储服务被配置成从所述第二云存储位置读取所述更新的元数据并且将所述更新的元数据写入所述第二云存储位置。
116.a19根据实施例a1至a18中任一项所述的方法,其中,所述传输所述二进制数据不使用键值对。
117.a20根据实施例a1至a19中任一项所述的方法,进一步包括:
118.确定与所述第三方应用相关联的清单是否指示与所述第三方应用相关联的所述数据将使用全数据备份过程或使用部分数据备份过程传输;以及
119.如果确定使用部分数据备份过程,则将所述元数据的部分传输到所述云存储装置,而不将所述二进制数据中的任何数据传输到所述云存储装置。
120.a21.根据实施例a20所述的方法,其中,所述将所述元数据的所述部分传输到所述云存储装置包括使用键值对。
121.a22.一种用于执行根据实施例a1至a21所述的方法中的任一项的系统。
122.b1.一种用于将第三方应用数据存储到云存储装置的方法,所述方法包括:
123.确定将存储在客户端设备上的与第三方应用相关联的数据下载到云存储服务器,其中,与所述第三方应用相关联的所述数据包括二进制数据和元数据;
124.将所述第三方应用的所述二进制数据存储在具有存储地址的第一云存储位置处,其中,更新所述元数据以包括所述存储地址;以及
125.将所述更新的元数据存储到不同于所述第一云存储位置的第二云存储位置。
126.b2.根据实施例b1所述的方法,其中,所述第三方应用的所述二进制数据包括所述第三方应用的全数据。
127.b3.根据实施例b1至b2中任一项所述的方法,其中,所述客户端设备通过以下方式确定是否上传所述数据:
128.识别存储在所述客户端设备上的与所述第三方应用相关联的存储的二进制数据;
129.识别与所述第三方应用相关联的先前上传的二进制数据;
130.计算所述存储的二进制数据与所述先前上传的二进制数据之间的差异;以及
131.将所述差异与阈值相比较。
132.b4.根据实施例b3所述的方法,其中,如果所述差异等于或超过所述阈值,则所述客户端设备确定上传与所述第三方应用相关联的所述数据。
133.b5.根据实施例b1至b4中任一项所述的方法,其中,所述客户端设备存储与多个第三方应用相关联的数据,所述多个第三方应用中的每个第三方应用与对应二进制数据和对应元数据相关联,并且在单次上传中上传从所述客户端设备上传每个第三方应用的所述对应二进制数据和所述对应元数据。
134.b6.根据实施例b1至b5中任一项所述的方法,其中,在下载所述数据之前,不会在所述客户端设备上完全复制与所述第三方应用相关联的所述数据。
135.b7.根据实施例b1至b6中任一项所述的方法,其中,基于预定上传调度,所述客户端设备确定上传与所述第三方应用相关联的所述数据。
136.b8.根据实施例b1至b7中任一项所述的方法,其中,基于检测到由所述第三方应用报告的所述第三方应用的改变,所述客户端设备确定上传与所述第三方应用相关联的所述数据。
137.b9.根据实施例b1至b8中任一项所述的方法,其中,当所述客户端设备从所述客户端设备的用户接收备份请求时,所述客户端设备确定上传与所述第三方应用相关联的所述数据。
138.b10.根据实施例b1至b9中任一项所述的方法,其中:
139.所述客户端设备被配置成:
140.将所述第三方应用的所述二进制数据和所述元数据聚集到单个文件中;以及
141.将所述文件传输到所述云存储装置中的上传服务器;以及
142.所述上传服务器被配置成:
143.将所述二进制数据与所述元数据分开;
144.传输所述二进制数据以存储在所述第一云存储位置中;
145.将所述第一云存储位置的所述存储地址附加到所述元数据,以获得所述更新的元数据;以及
146.传输所述更新的元数据以存储在所述第二云存储位置中。
147.b11.根据实施例b10所述的方法,其中,所述单个文件具有文件类型.tar。
148.b12.根据实施例b1至b11中任一项所述的方法,其中,与所述第三方应用相关联的
所述数据包括应用数据、用户偏好和应用内容。
149.b13.根据实施例b1至b12中任一项所述的方法,进一步包括将所述第二云存储位置的参考传输到所述客户端设备。
150.b14.根据实施例b1至b13中任一项所述的方法,其中,当所述二进制数据被存储在所述第一云存储位置中时,重写所述第三方应用的先前上传的二进制数据,以及当所述更新的元数据被存储在所述第二云存储位置中时,重写所述第三方应用的先前上传的元数据。
151.b15.根据实施例b1至b14中任一项所述的方法,其中,用户可通过能够访问所述云存储装置的用户界面来访问所传输的二进制数据和所述元数据。
152.b16.根据实施例b1至b15中任一项所述的方法,其中,所述客户端设备是第一客户端设备,所述方法进一步包括将所述二进制数据和所述更新的元数据传输到第二客户端设备,使得所述第一客户端设备上的所述第三方应用数据与所述第二设备上的第三方应用数据同步。
153.b17.根据实施例b1至b16中任一项所述的方法,其中,将所述二进制数据和所述元数据传输到所述云存储装置中的上传服务器,并且其中,所述上传服务器将所述二进制数据写入所述第一云存储位置并且传输所述更新的元数据以写入所述第二云存储位置。
154.b18.根据实施例b17所述的方法,其中,所述上传服务器将所述更新的元数据传输到云存储服务,所述云存储服务被配置成从所述第二云存储位置读取所述更新的元数据,并且将所述更新的元数据写入所述第二云存储位置。
155.b19.根据实施例b1至b18中任一项所述的方法,其中,所述存储所述二进制数据不使用键值对。
156.b20.根据实施例b1至b19中任一项所述的方法,其中,所述客户端设备被配置成:
157.确定与所述第三方应用相关联的清单是否指示与所述第三方应用相关联的所述数据将使用全数据备份过程或使用部分数据备份过程传输;以及
158.如果确定使用部分数据备份过程,则将所述元数据的部分传输到所述云存储装置,而不将所述二进制数据中的任何数据传输到所述云存储装置。
159.b21.根据实施例b20所述的方法,其中,所述元数据的所述部分使用键值对传输到所述云存储装置。
160.b22.一种用于执行根据实施例b1至b21所述的方法中的任一项的系统。
161.c1.一种用于将第三方应用数据恢复到客户端设备的方法,所述方法包括:
162.确定是否将与第三方应用相关联的数据下载到所述客户端设备,其中,与所述第三方应用相关联的所述数据包括存储在具有存储地址的第一云存储位置中的二进制数据,以及存储在第二云存储位置中的元数据;
163.使用所述元数据来确定所述第一云存储位置的所述存储地址;以及
164.将所述二进制数据从所述第一云存储位置下载到所述客户端设备。
165.c2.根据实施例c1所述的方法,其中,所述第三方应用的所述二进制数据包括所述第三方应用的全数据。
166.c3.根据实施例c1至c2中任一项所述的方法,其中,所述客户端设备存储与多个第三方应用相关联的数据,所述多个第三方应用中的每个第三方应用与对应二进制数据和对
应元数据相关联,并且在单次下载中将每个第三方应用的所述对应二进制数据下载到所述客户端设备。
167.c4.根据实施例c1至c3中任一项所述的方法,其中,当所述客户端设备从所述客户端设备的用户接收恢复请求时,所述客户端设备确定下载与所述第三方应用相关联的所述数据。
168.c5.根据实施例c1至c4中任一项所述的方法,其中,与所述第三方应用相关联的所述数据包括应用数据、用户偏好和应用内容。
169.c6.根据实施例c1至c5中任一项所述的方法,其中,所述客户端设备是第一客户端设备,并且将所述二进制数据和所述更新的元数据下载到第二客户端设备,使得所述第一客户端设备上的所述第三方应用数据与所述第二设备上的第三方应用数据同步。
170.c7.根据实施例c1至c6中任一项所述的方法,其中,将所述二进制数据和所述元数据传输到所述云存储装置中的下载服务器,并且其中,所述下载服务器先前将所述二进制数据写入所述第一云存储位置并且先前传输所述元数据以写入所述第二云存储位置。
171.c8.根据实施例c7所述的方法,其中,所述下载服务器先前将所述元数据传输到云存储服务,所述云存储服务被配置成从所述第二云存储位置读取所述更新的元数据并且将所述更新的元数据写入所述第二云存储位置。
172.c9.根据实施例c1至c8中任一项所述的方法,其中,与另一第三方应用相关联的数据包括存储在第三云存储位置中的元数据并且不包括二进制数据。
173.c10.根据实施例c9所述的方法,进一步包括:
174.确定是否将与所述另一第三方应用相关联的所述数据下载到所述客户端设备;
175.将与所述另一第三方应用相关联的所述元数据识别为存储在所述第三云存储位置中的键值对集合;以及
176.将所述键值对集合下载到所述客户端设备。
177.c11.一种用于执行根据实施例c1至c10所述的方法中的任一项的系统。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1