一种数据同步方法及装置与流程

文档序号:11254083阅读:576来源:国知局
一种数据同步方法及装置与流程

本发明涉及互联网通信技术领域,具体而言,涉及一种数据同步方法及装置。



背景技术:

目前,很多用户都拥有多台不同操作系统的终端,如同时拥有操作系统为android(安卓)及操作系统为ios(苹果公司的移动操作系统)的终端。用户对不同操作系统的终端之间的数据同步需求越来越大。

当前,若用户想要将ios终端上的数据同步到android终端上,则需要将icloud(苹果云服务)服务器上的数据还原到ios终端上,然后利用ios终端上的管理软件对需同步的数据进行备份或者导出到pc(personalcomputer,个人计算机)上,最后再利用android终端上的管理软件导入到android终端上。

上述将数据从icloud服务器同步到android终端,必须借助pc或管理软件,同步过程复杂,同步效率低。且icloud服务器提供的数据类型非常有限,基本没有第三方应用数据。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种数据同步方法及装置,以解决现有技术存在的以下问题:现有技术将数据从icloud服务器同步到android终端,必须借助pc或管理软件,同步过程复杂,同步效率低。且icloud服务器提供的数据类型非常有限,基本没有第三方应用数据。

第一方面,本发明实施例提供了一种数据同步方法,所述方法包括:

当检测到同步指令时,根据所述同步指令携带的ios终端标识,通过预先模拟的icloud通讯协议获取所述ios终端标识对应的文件下载信息和记录管理逻辑数据;

根据所述文件下载信息和所述记录管理逻辑数据,将所述ios终端标识对应的ios终端的数据同步到安卓终端本地。

结合第一方面,本发明实施例提供了上述第一方面的第一种可能的实现方式,其中,所述根据所述同步指令携带的ios终端标识,通过预先模拟的icloud通讯协议获取所述ios终端标识对应的文件下载信息和记录管理逻辑数据,包括:

通过预先模拟的icloud通讯协议,发送所述同步指令携带的ios终端标识给icloud服务器;

接收所述icloud服务器返回的所述ios终端标识对应的文件下载信息和记录管理逻辑数据。

结合第一方面的第一种可能的实现方式,本发明实施例提供了上述第一方面的第二种可能的实现方式,其中,所述发送所述同步指令携带的ios终端标识给icloud服务器之前,还包括:

获取用户的icloud账号和密码;

通过预先模拟的icloud通讯协议,发送所述icloud账号和所述密码给icloud服务器;

接收所述icloud服务器返回的授权令牌。

结合第一方面,本发明实施例提供了上述第一方面的第三种可能的实现方式,其中,所述通过预先模拟的icloud通讯协议获取所述ios终端标识对应的文件下载信息和记录管理逻辑数据之前,还包括:

获取icloud数据包,根据所述icloud数据包,模拟icloud通讯协议。

结合第一方面的第三种可能的实现方式,本发明实施例提供了上述第一方面的第四种可能的实现方式,其中,所述根据所述icloud数据包,模拟icloud通讯协议,包括:

分析所述icloud数据包,获得所述icloud数据包的格式信息;

根据所述格式信息,逆推确定所述icloud数据包对应的通讯指令;

发送所述通讯指令给icloud服务器,若接收到所述icloud服务器返回的所述icloud数据包,则将所述通讯指令确定为icloud通讯指令;若未接收到所述icloud服务器返回的所述icloud数据包,则返回执行所述根据所述格式信息,逆推确定所述icloud数据包对应的通讯指令;

根据确定出的所有所述icloud通讯指令,生成icloud通讯协议。

结合第一方面,本发明实施例提供了上述第一方面的第五种可能的实现方式,其中,所述根据所述文件下载信息和所述记录管理逻辑数据,将所述ios终端标识对应的ios终端的数据同步到安卓终端本地,包括:

根据所述文件下载信息,从第三方云存储服务器下载所述ios终端标识对应的多个数据块;

根据所述记录管理逻辑数据包括的数据映射信息,将所述多个数据块还原为一个加密文件;

从所述文件下载信息包括的文件元信息中解析出密钥包和文件秘钥;

根据所述密钥包和所述文件秘钥对所述加密文件进行解密,得到同步数据。

第二方面,本发明实施例提供了一种数据同步装置,所述装置包括:

获取模块,用于当检测到同步指令时,根据所述同步指令携带的ios终端标识,通过预先模拟的icloud通讯协议获取所述ios终端标识对应的文件下载信息和记录管理逻辑数据;

同步模块,用于根据所述文件下载信息和所述记录管理逻辑数据,将所述ios终端标识对应的ios终端的数据同步到安卓终端本地。

结合第二方面,本发明实施例提供了上述第二方面的第一种可能的实现方式,其中,所述获取模块包括:

发送单元,用于通过预先模拟的icloud通讯协议,发送所述同步指令携带的ios终端标识给icloud服务器;

接收单元,用于接收所述icloud服务器返回的所述ios终端标识对应的文件下载信息和记录管理逻辑数据。

结合第二方面或第二方面的第一种可能的实现方式,本发明实施例提供了上述第二方面的第二种可能的实现方式,其中,所述装置还包括:

模拟模块,用于获取icloud数据包,根据所述icloud数据包,模拟icloud通讯协议。

结合第二方面的第二种可能的实现方式,本发明实施例提供了上述第二方面的第三种可能的实现方式,其中,所述模拟模块包括:

获取单元,用于分析所述icloud数据包,获得所述icloud数据包的格式信息;

指令逆推单元,用于根据所述格式信息,逆推确定所述icloud数据包对应的通讯指令;

指令确定单元,用于发送所述通讯指令给icloud服务器,若接收到所述icloud服务器返回的所述icloud数据包,则将所述通讯指令确定为icloud通讯指令;若未接收到所述icloud服务器返回的所述icloud数据包,则返回执行所述根据所述格式信息,逆推确定所述icloud数据包对应的通讯指令;

生成单元,用于根据确定出的所有所述icloud通讯指令,生成icloud通讯协议。

在本发明实施例提供的方法及装置中,当检测到同步指令时,根据同步指令携带的ios终端标识,通过预先模拟的icloud通讯协议获取ios终端标识对应的文件下载信息和记录管理逻辑数据;根据文件下载信息和记录管理逻辑数据,将ios终端标识对应的ios终端的数据同步到安卓终端。本发明在安卓终端上预先模拟icloud通讯协议,通过icloud通讯协议实现安卓终端与icloud服务器间的通信,使安卓终端直接从icloud服务器获取文件下载信息和记录管理逻辑数据,根据文件下载信息和记录管理逻辑数据最终获得ios终端的数据,实现将ios终端的数据直接同步到安卓终端,简化数据同步的过程,提高同步效率。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明实施例1所提供的一种数据同步方法的流程图;

图2示出了本发明实施例1所提供的一种数据同步方法的功能模块示意图;

图3示出了本发明实施例2所提供的一种数据同步装置的结构示意图;

图4示出了本发明实施例2所提供的另一种数据同步装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

考虑到现有技术中将数据从icloud服务器同步到android终端时,必须借助pc或管理软件,同步过程复杂,同步效率低。且icloud服务器提供的数据类型非常有限,基本没有第三方应用数据。基于此,本发明实施例提供了一种数据同步方法及装置,下面通过实施例进行描述。

实施例1

本发明实施例提供了一种数据同步方法。

本发明实施例的执行主体为安卓终端,当用户需要将ios终端上的数据同步到安卓终端上时,可以通过安卓终端应用本发明实施例提供的方法,在安卓终端上模拟icloud通讯协议,通过模拟的icloud通讯协议实现安卓终端与icloud服务器之间的数据通信,实现安卓终端直接从icloud服务器获取数据,简化安卓终端与ios终端之间数据同步的过程,提高了数据同步效率。

在通过本发明实施例提供的方法进行数据同步之前,安卓终端首先获取icloud数据包,根据获取的icloud数据包,模拟icloud通讯协议。上述icloud数据包可以由技术人员从ios终端上获取,然后将获取的icloud数据包提交给安卓终端。安卓终端接收到技术人员提交的icloud数据包后通过如下方式模拟icloud通讯协议,包括:

分析icloud数据包,获得icloud数据包的格式信息;根据icloud数据包的格式信息,逆推确定icloud数据包对应的通讯指令;发送该通讯指令给icloud服务器,若接收到icloud服务器返回的icloud数据包,则将通讯指令确定为icloud通讯指令;若未接收到icloud服务器返回的icloud数据包,则返回执行根据格式信息,逆推确定icloud数据包对应的通讯指令;根据确定出的所有icloud通讯指令,生成icloud通讯协议。

上述逆推出icloud数据包对应的通讯指令后发送该通讯指令给icloud服务器。若该通讯指令正确,则icloud服务器接收到该通讯指令后,根据该通讯指令发送该icloud数据包给安卓终端。若该通讯指令不正确,则icloud服务器接收到该通讯指令后,不对该通讯指令做出响应,或者返回指令错误指示信息给安卓终端。在本发明实施例中,安卓终端将逆推出的通讯指令发送给icloud服务器之后,若接收到icloud服务器返回的icloud数据包,则确定该通讯指令正确,将该通讯指令添加到模拟的icloud通讯协议中。若预设时长内未接收到icloud服务器返回的icloud数据包,或者接收到icloud服务器返回的指令错误指示信息,则确定该通讯指令不正确,丢弃该通讯指令,然后返回执行根据icloud数据包的格式信息逆推确定icloud数据包对应的通讯指令的步骤,重新逆推一个新的通讯指令,然后按照上述方式发送新的通讯指令给icloud服务器。若对于同一个icloud数据包连续逆推预设数目个通讯指令,最终确定这预设数目个通讯指令都不正确,则放弃该icloud数据包。

本发明实施例中从ios终端获取大量的icloud数据包,通过上述方式逆推这些数据包对应的通讯指令,并将这些通讯指令发送到icloud服务器进行试误,将确定正确的通讯指令组成模拟的icloud通讯协议。预先模拟的该icloud通讯协议能够实现以下核心功能:(1)通过icloud账号和密码获取授权令牌,使后续请求得到授权;(2)获取文件记录的列表;(3)获取记录管理逻辑数据;(4)获取文件记录的属性,文件记录的属性包含文件解密信息;(5)获取文件记录对应的文件下载信息;(6)获取密钥包数据。

如图1所示,通过上述方式在安卓终端上模拟icloud通讯协议后,通过如下步骤101和102的操作将ios终端上的数据同步到安卓终端本地。

步骤101:当检测到同步指令时,根据同步指令携带的ios终端标识,通过预先模拟的icloud通讯协议获取ios终端标识对应的文件下载信息和记录管理逻辑数据。

当用户需要将某个ios终端上的数据同步到安卓终端上时,用户向安卓终端提交同步指令,该同步指令携带该ios终端对应的ios终端标识。安卓终端检测到该同步指令后,首先显示登录页面给用户。用户在该登录页面中输入用户的icloud账号和密码。安卓终端从该登录页面中获取用户的icloud账号和密码。然后通过预先模拟的icloud通讯协议,发送该icloud账号和密码给icloud服务器。icloud服务器接收到该icloud账号和密码后,根据该icloud账号获取对应的注册密码,判断该注册秘密与接收到的密码是否一致,若一致,则返回授权令牌给安卓终端,安卓终端接收icloud服务器返回的授权令牌。若不一致,则返回用于提示密码错误的提示信息给安卓终端。安卓终端接收到该提示信息后接收用户重新输入的icloud账号和密码,按照上述方式从icloud服务器获取授权令牌。

通过上述方式获取到授权令牌之后,安卓终端即可通过预先模拟的icloud通讯协议与icloud服务器进行数据通信。安卓终端通过预先模拟的icloud通讯协议,发送同步指令携带的ios终端标识给icloud服务器。

当前ios终端的备份文件通常分割为多个数据块进行存储。icloud服务器的存储策略为:icloud服务器只保存ios终端的备份文件的文件下载信息和记录管理逻辑数据,该文件下载信息包含文件的基本信息、文件元信息及文件下载token(标记)等。其中,文件元信息中包括密钥包及文件密钥等。记录管理逻辑数据包括数据映射信息,该数据映射信息包括文件与数据块之间的映射关系及排列序号与数据块之间的映射关系。文件与数据块之间的映射关系用于表示一个文件包括哪几个数据块,排列序号表示在组成文件时数据块所处的排列位置,根据排列序号可以将一个文件包括的多个数据块重组成文件。而ios终端的备份文件划分成的数据块则分布式存储于第三方云存储服务器上。

由于用户可能同时拥有多个ios终端,所以对于每个ios终端,icloud服务器都存储ios终端的备份文件的文件下载信息、记录管理逻辑数据与ios终端标识的对应关系。第三方云存储服务器存储ios终端对应的多个数据块与ios终端标识的对应关系。

icloud服务器接收到安卓终端发送的ios终端标识,根据该ios终端标识获取对应的文件下载信息和记录管理逻辑数据,然后将获取的文件下载信息和记录管理逻辑数据返回给安卓终端。安卓终端接收icloud服务器返回的ios终端标识对应的文件下载信息和记录管理逻辑数据。

步骤102:根据文件下载信息和记录管理逻辑数据,将ios终端标识对应的ios终端的数据同步到安卓终端本地。

安卓终端接收到icloud服务器返回的文件下载信息和记录管理逻辑数据后,根据文件下载信息,从第三方云存储服务器下载ios终端标识对应的多个数据块。根据记录管理逻辑数据包括的数据映射信息,将下载的多个数据块还原为一个加密文件;从文件下载信息包括的文件元信息中解析出密钥包和文件秘钥;根据密钥包和文件秘钥对加密文件进行解密,得到同步数据。

安卓终端从记录管理逻辑数据中解析出数据映射信息,数据映射信息中包括排列序号与数据块的映射关系,根据该映射关系确定下载的每个数据块对应的排列序号,根据每个数据块对应的排列序号,按照排列序号的先后顺序对这多个数据块排序,组合为加密文件。然后从文件下载信息包括的文件元信息中获取密钥包和文件秘钥,通过该密钥包和文件秘钥对上述加密文件进行解密,得到的明文即为ios终端上的数据,至此实现了将ios终端上的数据同步至安卓终端本地。

为了进一步理解本发明实施例提供的方法,下面结合附图进行简要说明。如图2所示,本发明实施例提供的数据同步方式包括应用层和功能实现层。其中,应用层包括登录模块和数据处理模块,功能实现层包括icloud通讯协议模块、下载模块和数据解密模块。登录模块用于接收用户输入的icloud账号和密码。数据处理模块用于结合应用的业务需求,对功能实现层获取到的同步数据进行处理,比如对通讯录进行去重或合并等操作。icloud通讯协议模块涵盖了与icloud服务器进行通讯所需的所有协议,包括认证、获取备份信息、获取文件记录信息、获取文件下载信息、获取记录属性及获取记录管理逻辑数据等通讯过程所需的所有协议。下载模块用于通过icloud通讯协议获取文件下载信息和记录管理逻辑数据,以及从第三方云存储服务器上下载数据块,下载模块下载下来的数据块是加密后被分割成的多个数据块。数据解密模块用于根据记录管理逻辑数据包括的数据映射信息,对下载模块下载的多个数据块,按照映射关系进行组合,还原成一个加密文件,再利用文件下载信息包括的密钥包和文件秘钥,对组合后的加密文件进行解密,得到明文文件,该明文文件即为同步数据。数据解密模块通过对icloud数据包的分析,得出解密策略,完全不依赖于苹果公司的itunes或icloudpanel等组件。

在本发明实施例中,当检测到同步指令时,根据同步指令携带的ios终端标识,通过预先模拟的icloud通讯协议获取ios终端标识对应的文件下载信息和记录管理逻辑数据;根据文件下载信息和记录管理逻辑数据,将ios终端标识对应的ios终端的数据同步到安卓终端。本发明在安卓终端上预先模拟icloud通讯协议,通过icloud通讯协议实现安卓终端与icloud服务器间的通信,使安卓终端直接从icloud服务器获取文件下载信息和记录管理逻辑数据,根据文件下载信息和记录管理逻辑数据最终获得ios终端的数据,实现将ios终端的数据直接同步到安卓终端,简化数据同步的过程,提高同步效率。

实施例2

参见图3,本发明实施例提供了一种数据同步装置,该装置用于执行上述实施例1所提供的数据同步方法,该装置包括:

获取模块20,用于当检测到同步指令时,根据同步指令携带的ios终端标识,通过预先模拟的icloud通讯协议获取ios终端标识对应的文件下载信息和记录管理逻辑数据;

同步模块21,用于根据文件下载信息和记录管理逻辑数据,将ios终端标识对应的ios终端的数据同步到安卓终端本地。

如图4所示,上述获取模块20包括:

发送单元201,用于通过预先模拟的icloud通讯协议,发送同步指令携带的ios终端标识给icloud服务器;

接收单元202,用于接收icloud服务器返回的ios终端标识对应的文件下载信息和记录管理逻辑数据。

如图4所示,该装置还包括:

模拟模块22,用于获取icloud数据包,根据icloud数据包,模拟icloud通讯协议。

上述模拟模块22包括:

获取单元,用于分析icloud数据包,获得icloud数据包的格式信息;

指令逆推单元,用于根据格式信息,逆推确定icloud数据包对应的通讯指令;

指令确定单元,用于发送通讯指令给icloud服务器,若接收到icloud服务器返回的icloud数据包,则将通讯指令确定为icloud通讯指令;若未接收到icloud服务器返回的icloud数据包,则返回执行根据格式信息,逆推确定icloud数据包对应的通讯指令;

生成单元,用于根据确定出的所有icloud通讯指令,生成icloud通讯协议。

在本发明实施例中,在获取模块20发送同步指令携带的ios终端标识给icloud服务器之前,还包括:

令牌获取模块,用于获取用户的icloud账号和密码;通过预先模拟的icloud通讯协议,发送icloud账号和密码给icloud服务器;接收icloud服务器返回的授权令牌。

在本发明实施例中,同步模块21,用于根据文件下载信息,从第三方云存储服务器下载ios终端标识对应的多个数据块;根据记录管理逻辑数据包括的数据映射信息,将下载的多个数据块还原为一个加密文件;从文件下载信息包括的文件元信息中解析出密钥包和文件秘钥;根据密钥包和文件秘钥对加密文件进行解密,得到同步数据。

在本发明实施例中,当检测到同步指令时,根据同步指令携带的ios终端标识,通过预先模拟的icloud通讯协议获取ios终端标识对应的文件下载信息和记录管理逻辑数据;根据文件下载信息和记录管理逻辑数据,将ios终端标识对应的ios终端的数据同步到安卓终端。本发明在安卓终端上预先模拟icloud通讯协议,通过icloud通讯协议实现安卓终端与icloud服务器间的通信,使安卓终端直接从icloud服务器获取文件下载信息和记录管理逻辑数据,根据文件下载信息和记录管理逻辑数据最终获得ios终端的数据,实现将ios终端的数据直接同步到安卓终端,简化数据同步的过程,提高同步效率。

本发明实施例所提供的数据同步装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1