一种本地存储与网络存储的数据同步方法和设备与流程

文档序号:13383049阅读:242来源:国知局
一种本地存储与网络存储的数据同步方法和设备与流程
本发明涉及数据同步技术领域,尤其涉及一种本地存储与网络存储的数据同步方法和设备。

背景技术:
随着互联网和云计算等技术的不断发展,移动设备的使用越来越普及,而移动设备更多时候被当做云计算的前端系统来使用,在这样的情况下,移动设备上的应用是云服务在移动终端上的延伸,这些应用依赖网络来连接云服务,并提供给用户,当网络不可用、或者网络状态不佳的情况下,这些应用便不能很好地提供给用户使用,甚至不能启动运行。HTML5appcache/localstorage能够使得用户在离线的情况下,依然使用曾经在本地缓存下来的Web页面,浏览器cache能够缓存访问过的资源文件,比如图片、Web页面等。HTML5appcache把访问过的Web页面缓存,连带着将网站作者指定的网络资源也缓存下来,但是不能缓存应用运行过程中访问的动态网络内容,例如网页游戏中游戏状态等数据,而HTML5localstorage是本地存储,只是将缓存数据保存在运行的设备上,其内容不会同步到服务器端,因此也无法在其他设备上进行访问。可见,虽然可以使用本地缓存下来的数据,但只是将数据保存在终端设备上,而不能将数据的修改同步到网络,使得数据不能在多个终端同步,从而出现信息不能共享的现象。

技术实现要素:
有鉴于此,本发明解决的技术问题在于提供一种本地存储与网络存储的数据同步方法和系统,实现本地存储与网络存储之间的数据同步更新,使得数据在多个终端同步以达到数据共享的目的。为实现上述目的,本发明提供了一种本地存储与网络存储的数据同步方法,包括:读取上一次同步时本地存储的第一数据;如果所述第一数据在网络不可用时已被更新,则在网络可用时将所述第一数据的最新版本同步到网络侧,以更新网络侧存储的与所述第一数据对应的第二数据;接收网络侧发送的同步响应消息,在所述同步响应消息中携带所述第二数据的版本信息;如果所述第二数据的版本信息与所述第一数据的版本信息不同,则从网络侧将所述第二数据同步到本地存储。优选地,在上述数据同步方法中,还包括:如果所述第一数据在网络不可用时未被更新,则在网络可用时获取网络侧存储的与所述第一数据对应的第二数据的版本信息;如果所述第二数据的版本信息与所述第一数据的版本信息不同,则从网络侧将所述第二数据同步到本地存储。优选地,在上述数据同步方法中,所述将所述第一数据的最新版本同步到网络侧包括:如果所述第一数据的长度大于设定的最小长度,则对所述第一数据进行差分处理,并将处理后的差分数据同步到网络侧。优选地,在上述数据同步方法中,所述对所述第一数据进行差分处理包括:将所述第一数据的最新版本切分成多个所述最小长度的数据块,如果最后一个数据块长度小于所述最小长度,则将最后一块填充至所述最小长度;计算所述第一数据最新版本中各个数据块的签名,将所述签名与上一次同步时第一数据对应的各个数据块签名进行比较,将签名不同的数据块作为所述第一数据的差分数据。优选地,在上述数据同步方法中,所述从网络侧将所述第二数据同步到本地存储包括:如果所述第二数据的长度大于设定的最小长度,则从网络侧下载所述第二数据的差分数据;利用所述第二数据的差分数据更新本地存储的第一数据,并更新所述第一数据的版本信息。优选地,在上述数据同步方法中,所述数据块的签名包括:将所述数据块的内容做散列计算后的数据;或将所述数据块的内容做散列计算后的数据和数据名;或将所述数据块的内容做散列计算后的数据和序号前缀;或将所述数据块的内容做散列计算后的数据、数据名和序号前缀。优选地,在上述数据同步方法中,所述第一数据和所述第二数据采用统一的URL形式表示。优选地,在上述数据同步方法中,所述方法还包括:如果所述第一数据不存在或无效,则从网络侧下载所述第一数据;在本地保存所述第一数据及其版本信息。一种本地存储与网络存储的数据同步设备,包括:读取单元,用于读取上一次同步时本地存储的第一数据;检查单元,用于检查所述第一数据在网络不可用时是否已被更新;第一同步单元,用于在所述检查单元检查得到所述第一数据在网络不可用时已被更新时,在网络可用时将所述第一数据的最新版本同步到网络侧,以更新网络侧存储的与所述第一数据对应的第二数据;接收单元,用于接收网络侧发送的同步响应消息,所述同步响应消息中携带所述第二数据的版本信息;比较单元,用于比较所述同步响应消息中第二数据的版本信息与所述第一数据的版本信息;第二同步单元,用于在所述比较单元比较得到第二数据的版本信息与所述第一数据的版本信息不同时,从网络侧获取所述第二数据,并同步到本地存储。优选地,在上述数据同步设备中,还包括:版本信息获取单元,用于在所述检查单元检查得到所述第一数据在网络不可用时未被更新时,在网络可用时获取网络侧存储的与所述第一数据对应的第二数据的版本信息;所述比较单元,还用于比较所述版本信息获取单元获取的第二数据的版本信息与所述第一数据的版本信息。优选地,在上述数据同步设备中,所述第一同步单元包括:差分单元,用于当所述第一数据的长度大于设定的最小长度时,对所述第一数据进行差分处理;同步单元,用于将所述差分单元处理后的差分数据同步到网络侧。优选地,在上述数据同步设备中,所述差分单元包括:切分单元,用于将所述第一数据的最新版本切分成多个所述最小长度的数据块,如果最后一个数据块长度小于所述最小长度,则将最后一块填充至所述最小长度;计算单元,用于计算所述第一数据最新版本中各个数据块的签名;比较单元,用于将所述签名与上一次同步时第一数据对应的各个数据块签名进行比较,将签名不同的数据块作为所述第一数据的差分数据。优选地,在上述数据同步设备中,所述第二同步单元包括:下载单元,用于当所述第二数据的长度大于设定的最小长度时,从网络侧下载所述第二数据的差分数据;更新单元,用于利用所述第二数据的差分数据更新本地存储的第一数据,并更新所述第一数据的版本信息。相对于现有技术,本发明的有益效果是:本发明不仅能够在本地缓存从网络侧同步的数据,而且能够将本地数据的最新版本同步到网络侧,同样也可将网络侧数据同步到本地以更新本地存储,从而实现了本地存储与网络存储的数据相一致,使得数据可以在多个终端同步。附图说明图1为本发明本地存储与网络存储的数据同步方法的实施例一的流程示意图;图2为本发明本地存储与网络存储的数据同步设备的实施例一的结构示意图。图3为本发明本地存储与网络存储的数据同步方法的实施例二的流程示意图;图4为本发明本地存储与网络存储的数据同步设备的实施例二的结构示意图。图5为本发明本地存储与网络存储的数据同步设备中第一同步单元的结构示意图;图6为本发明本地存储与网络存储的数据同步设备中第二同步单元的结构示意图。图7为实现本发明的系统组图。具体实施方式本发明提供了一种本地存储与网络存储的数据同步方法和设备,为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。参见图1所示,实现一种本地存储与网络存储的数据同步方法的具体实施例一的步骤如下:101:读取上一次同步时本地存储的第一数据。本实施例中,上述本地存储的第一数据在网络不可用时已经满足本地应用程序读取数据的需要,所以本地应用程序可读取本地存储的第一数据。102:如果第一数据在网络不可用时已被更新,则在网络可用时将第一数据的最新版本同步到网络侧,以更新网络侧存储的与第一数据对应的第二数据。103:利用第一数据更新了网络侧的第二数据后,接收网络侧发送的同步响应消息,在同步响应消息中携带了第二数据的版本信息,用以确认更新后的第二数据是否与第一数据的最新版本相同。104:如果更新后的第二数据的版本信息与第一数据的版本信息不同,则从网络侧将第二数据同步到本地存储,利用网络存储的第二数据更新本地存储的第一数据,同时更新了第一数据的版本信息,此时本地存储数据与网络侧存储数据保持一致。上述实施例一中,实现了本地存储与网络存储之间的双向数据同步更新过程,也就是说可以将本地存储的最新数据同步到网络侧,也可以将网络侧不同于本地存储的数据同步到本地存储,实现本地存储数据与网络存储数据相一致。图2为本发明本地存储与网络存储的数据同步设备的实施例一的结构示意图,该设备包括:读取单元1,用于读取上一次同步时本地存储的第一数据;检查单元2,用于检查在网络不可用时是否更新了所述第一数据;第一同步单元3,用于在所述检查单元检查得到在网络不可用时更新了所述第一数据时,在网络可用时将所述第一数据的最新版本同步到网络侧,以更新网络侧存储的与所述第一数据对应的第二数据;接收单元4,用于接收网络侧发送的同步响应消息,在同步响应消息中携带了第二数据的版本信息;比较单元5,用于比较同步响应消息中第二数据的版本信息与第一数据的版本信息;第二同步单元6,用于在比较单元比较得到第二数据的版本信息与第一数据的版本信息不同时,从网络侧获取第二数据,并同步到本地存储。参见图3所示,实现一种本地存储与网络存储的数据同步方法的具体实施例二的步骤如下:201:读取上一次同步时本地存储的第一数据。202:判断第一数据是否存在且有效,如果是,则执行步骤203,若果否,否则执行步骤215。判定本地存储数据是否失效的方法,可以有但不限于以下三种情况:(1)数据有效期,如果存储数据在有效期内,则数据有效,否则数据无效;(2)数据版本,如果在数据请求中显示指定了要请求的版本,且大于本地数据版本,则数据无效,若本地数据与指定请求版本相同,则数据有效;(3)数据签名,请求数据与本地数据签名一致,则有效,否则数据无效。203:判断网络是否可用,如果可用,则执行步骤205到步骤216,如果不可用,则执行步骤204。204:接收失败消息,表明网络不可用时不能利用本地存储的第一数据更新网络存储,但是在网络不可用时也可能满足应用程序读取数据的需要,本地应用程序可读取本地存储的第一数据。205:当网络可用时,判断第一数据在网络不可用时是否已被更新,如果是,则执行步骤206,如果否,则执行步骤210。206:判断第一数据最新版本的数据长度是否大于设定的最小长度,如果是,则执行步骤207,如果否,则执行步骤208。207:将第一数据的最新版本切分成多个最小长度的数据块,如果最后一个数据块长度小于最小长度,则将最后一块填充至最小长度;计算第一数据最新版本中各个数据块的签名,将所有签名与上一次同步时第一数据对应的各个数据块签名进行比较,将签名不同的数据块作为第一数据的差分数据,将差分数据同步到网络侧,用以更新网络侧存储的与第一数据对应的第二数据,执行步骤209。208:不对第一数据的最新版本做差分处理,而是直接同步整个第一数据到网络侧,用以更新网络侧存储的与第一数据对应的第二数据,并保持此数据的签名。其中,签名是将数据块的内容做散列计算后的数据;或是由将数据块的内容做散列计算后的数据和数据名组成;或是由将数据块的内容做散列计算后的数据和序号前缀组成;或是由将数据块的内容做散列计算后的数据、数据名和序号前缀组成。散列算法指的是用来产生一些数据片段(例如消息或会话项)的散列值的算法,典型的散列算法包括MD2、MD4、MD5和SHA-1。209:利用第一数据更新了网络侧的第二数据后,接收网络侧发送的同步响应消息,在同步响应消息中携带了第二数据的版本信息,以确认更新后的第二数据是否与第一数据的最新版本相同,执行步骤211。210:获取网络侧存储的与第一数据对应的第二数据的版本信息,同样用于确认更新后的第二数据是否与第一数据的最新版本相同。211:判断第二数据的版本信息与第一数据的版本信息是否相同,如果是,则执行步骤216;如果否,则执行步骤212。212:判断第二数据的长度是否大于设定的最小长度,如果是,则执行步骤213,如果否,则执行步骤214。213:从网络侧下载第二数据的差分数据,利用第二数据的差分数据更新本地存储的第一数据,并更新所述第一数据的版本信息,执行步骤216。214:从网络侧下载整个第二数据,利用第二数据更新本地存储的第一数据,并更新所述第一数据的版本信息,执行步骤216。215:当网络可用时,从网络侧下载第一数据到本地存储,并在本地保存第一数据及其版本信息。216:接收成功消息,表示此时本地存储数据与网络侧存储数据保持一致。上述实施例二中,每次同步数据时,同步任务仅传输数据的差分,而只有当数据的长度小于或等于设定的最小长度时才会同步整个数据,由此减少了数据同步量,从而减轻了对网络的负载,提高了同步效率。图4为本发明本地存储与网络存储的数据同步设备的实施例二的结构示意图,该设备包括:读取单元1,用于读取上一次同步时本地存储的第一数据;检查单元2,用于检查在网络不可用时是否更新了第一数据;第一同步单元3,用于在检查单元检查得到在网络不可用时更新了第一数据时,在网络可用时将第一数据的最新版本同步到网络侧,以更新网络侧存储的与所述第一数据对应的第二数据;版本信息获取单元7,用于在检查单元检查得到在网络不可用时未更新第一数据时,在网络可用时获取网络侧存储的与所述第一数据对应的第二数据的版本信息;比较单元5,用于比较同步响应消息中第二数据的版本信息与第一数据的版本信息,还用于比较版本信息获取单元获取的第二数据的版本信息与第一数据的版本信息;第二同步单元6,用于在比较单元比较得到第二数据的版本信息与第一数据的版本信息不同时,从网络侧获取第二数据,并同步到本地存储。如图5所示,第一同步单元包括:差分单元31,用于当第一数据的长度大于设定的最小长度时,对第一数据进行差分处理;同步单元32,用于将差分单元处理后的差分数据同步到网络侧。上述第一同步单元中的差分单元包括:切分单元311,用于将第一数据的最新版本切分成多个设定最小长度的数据块,如果最后一个数据块长度小于设定最小长度,则将最后一块填充至设定最小长度;计算单元312,用于计算第一数据最新版本中各个数据块的签名;比较单元313,用于将所有签名与上一次同步时第一数据对应的各个数据块签名进行比较,将签名不同的数据块作为第一数据的差分数据。如图6所示,第二同步单元包括:下载单元61,用于当第二数据的长度大于设定的最小长度时,从网络侧下载第二数据的差分数据,还用于当第二数据的长度小于或等于设定的最小长度时,直接从网络侧下载第二数据;更新单元62,用于利用第二数据或第二数据的差分数据更新本地存储的第一数据,并更新所述第一数据的版本信息。当应用程序更新存储数据时,包括更新本地存储和网络存储的数据,系统由网络存储来记录数据更改信息,并通过同步过程把更改推送给其他客户端。读取和更新存储数据的流程中,如果访问网络存储失败(网络不可用时),便不能进行数据的更新,会导致本地存储与云存储数据不一致,因此,本发明设计的同步任务是在网络可用时,自动进行本地存储与云存储数据的数据同步。当数据长度大于设定的最小长度时,每次同步任务仅传输数据的差分,以此来减轻对网络的负载。由于现有的云存储大多不支持数据不同版本间的差分计算,我们在云存储前端放置前端服务器,用来计算云存储上数据不同版本间的差分计算,系统组图如图7所示。获取数据时可以采用统一的形式来访问网络存储和本地存储,这样使用户和应用程序开发者不必关心访问的是一个本地存储还是网络存储,所以可以采用统一的URL(统一资源定位符)的形式来表示一个存储数据,包括本地存储数据和网络存储数据。URL是web页的地址,它由两个主要的部分构成:协议(Protocol)和目的地(Destination);“协议”部分指的是何种类型的Internet资源,Web中最常见的协议是http,它表示从Web中取回的是HTML文档,其他协议还有gopher、ftp和telnet等;目的地可以是某个文件名、目录名或者某台计算机的名称。对本地数据与网络侧数据的一致性要求,影响上述同步行为的配置可以包括(但不限于)以下方面:(1)对于某些数据需要获得网络侧数据的最新版本,或者确认本地数据的版本符合数据请求中指定的版本要求;对于数据上传过程,必需将本地存储的数据更新上传至网络,否则失败。(2)其他一些数据,在网络不可用的情况下,允许直接使用以前缓存的数据,例如在本地添加通信录中某些联系人的相关信息,若网络可用,则使用网络侧最新版本的数据;对于数据上传过程,本地数据的同步动作要延迟到网络可用的时候才进行。同步任务会根据当前的网络状态和使用策略来决定是否启动数据同步过程。网络状态可能有:有线网络是否可用、WIFI网络是否可用、3G网络是否可用、2G网络是否可用、高速移动网络是否可用。其中,高速移动网络是指4G及更高版本的移动网络。网络状态可用是指,网络可连接,并且有未用流量可以使用;流量总量,用户可以按时间周期设定,也可以通过查询网络运营商得到。使用策略包括:当多个网络可用时,网络选择的优先级,或是禁止使用某些网络等。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1