基于分布共享存储的移动设备数据共享方法

文档序号:9219821阅读:439来源:国知局
基于分布共享存储的移动设备数据共享方法
【专利说明】基于分布共享存储的移动设备数据共享方法
[0001]
技术领域
[0002]本发明涉及一种基于分布共享存储的移动设备数据共享方法,属于计算机应用技术领域,具体涉及在局域网络中的移动设备上构建一个数据共享平台。
【背景技术】
[0003]随着移动智能设备的性能越来越高,存储量越来越大,日常生活已离不开移动设备的参与。在这种情况下,在不同移动设备间进行数据的共享就成为了人们的迫切需求。目前,移动设备间的数据共享主要有两种方式:Hub-and_Spoke以及Cloud Storage。
[0004]在hub-and-spoke系统中,用户需要指定一台特定的机器作为整个系统的“主节点”,即hub device,它保存了所有共享的数据的副本。其他设备如果要进行通信,必须首先同“主节点”进行连接,将需要发送的数据首先拷贝到“主节点”上,然后“主节点”再将数据推送到其他的设备上。在进行连接时,可以利用快速的本地连接,比如直接连接或者局域网。由其特点可知,在hub-and-spoke模型中,只需要查看hub device,就可以很容易的得到所有共享的数据。此外,由于所有操作都需要通过唯一的hub device来进行,因此,对于同步问题,该模型也可以很容易处理。但是,该系统也有其缺陷:在一个hub-and-spoke系统中,hub device必须存在;一旦hub device崩溃或者断连,则整个系统无法正常工作;它仅在星型的拓扑结构中高效运行,对于其他拓扑结构,它的效率就不高了 ;如果两台设备有直接的连接,它们直接的通信仍需要通过hub device来进行;Hub device保存了所有共享的数据副本,它的存储容量成为整个系统的瓶颈。
[0005]另一种共享数据的方式Cloud Storage,也就是常说的云存储方式,它是利用存在于互联网中的多台服务器来替代hub-and-spoke中的hub device。这些服务器基于分布式系统进行构建,但对于用户而言,它们的拓扑结构并不重要。用户只需要登录一个网站,就可以查看存储在各个服务器上的文件,而不需要知道文件具体存储在哪个服务器上。相较于hub-and-spoke模型,云存储更可靠。由于存在多台服务器,且数据往往都会有冗余,因此,即使其中一些服务器无法运行,其他服务器仍能提供服务。此外,由于有整个互联网中服务器的支持,在hub-and-spoke中存储容量的限制,在云存储中几乎不存在。但是云存储也带来了一些新的限制:服务提供商可能会限制支持的数据类型;设备仍然无法直接进行通信,即使它们共处于一个快速的局域网中;文件操作需要通过网络服务提供商来进行,受到了网络带宽等的限制;数据存储在服务器中,可能出现安全与隐私问题。

【发明内容】

[0006]发明目的:本发明要解决的技术问题是在局域网中提供一种基于分布共享存储的移动设备数据共享平台的构建方法,该平台不需要一台集中的服务器来支持,能够供开发者设计自己的数据同步与冲突消解策略,并提供其它应用基于该平台进行快速开发的接□ O
[0007]技术方案:一种基于分布共享存储的移动设备数据共享方法,其主要包括以下步骤:
1)在各个移动设备上设置需要共享的数据,利用数据监控进程对共享的数据进行监控,记录数据变化信息;
2)数据管理进程为了能够管理共享的文件,会生成一个同文件系统对应的树形数据结构来管理对应的文件数据,这个树形数据结构称为文件树。操作系统的文件系统是用来管理本地文件,并且提供接口来让其他应用对文件执行读写等操作的。而数据管理进程利用文件树,也能够实现对共享文件的管理。当得到来自监控进程的变化信息时,对其进行分析,依靠文件树找到对应的文件节点,并利用版本控制模块更新该节点的数据版本信息,将发生的变化信息发送给数据同步进程;
3)数据同步进程依照设定的同步策略,将树形数据结构的变化以及需要同步的数据,通过数据传输模块与其它移动设备进行同步;
4)接收到同步信息时,利用数据管理进程中的冲突检测与消解模块,对接收到的数据进行处理;
5)在网络连接出现问题时利用断连处理模块进行处理,并在设备重新建立连接后进行重连处理。
[0008]上述步骤I)的具体过程为:
11)在局域网络中部署需要使用的移动设备;
12)设定需要同步的数据;
13)利用Android系统的系统API,对需要同步的数据进行监控,记录下数据变化的信息,并将信息发送到全局消息队列中。
[0009]在Android系统中,利用系统API进行数据的监控时,一旦数据发生变化,都会抛出一系列的响应事件。对于哪些事件感兴趣,就可以在系统API中进行注册。
[0010]上述步骤2)的具体过程为:
21)依据共享的文件数据,构建一个树形数据结构来表示共享的数据,该结构称为文件树。文件树的每个节点同共享的数据文件是一一对应的,它不仅包含了共享数据的路径,以便依据路径找到真实数据,还包括了数据的基本信息,包括大小,作者,修改时间等,也包括了数据的版本信息,除了拥有版本号之外,还拥有一个向量时钟VC,VC是一组向量[tl,t2,一,tn],每个元素ti对应于该数据在i设备上的版本号,其初始值为[0,0…O];
每个文件同文件树中的节点都是一一对应的关系。每个文件节点都包含了基本信息,版本信息等,同时还提供了读写等操作供其他模块使用。
[0011]22)分析每种数据操作所对应的数据变化信息;
23)由保存的数据变化信息反推出在共享数据上的数据操作,包括了修改,复制,删除,重命名等;这些文件数据操作,每一个都对应于一个或多个系统事件。其中文件移动和文件夹移动都对应了多个事件序列,这是由它们的起始目录和目标目录是否被监听所决定的。
[0012]24)每当本地修改数据,使得数据发生变化时,都会依靠文件树找到对应的文件节点,更新数据的基本信息。在更新版本信息时,除了更新版本号外,还会增加本地向量时钟VC中对应于本地的部分,即VC中相应维数的值加1,同时将变化信息以消息的形式发送给数据同步进程;在接收到远端的数据更新时,同样需要将本地的VC进行更新。
[0013]25)当出现新建,删除,移动文件使得文件结构发生变化时,文件树的结构也要得到对应的变化,并将变化信息发送给数据同步进程。
[0014]上述步骤3)的具体过程为:
31)设计数据同步策略,包括何时同步以及如何同步;
32)利用TCP协议在需要通信的移动设备间建立连接;
33)利用Socket在不同设备间传输需要发送的信息以及需要同步的数据。
[0015]在进行同步时,先发送数据的基本信息与版本信息,当对方确实需要数据时,再传输文件数据。由于基本信息与版本信息很小,避免了每次都发送数据,从而有效地提高了数据同步效率。
[0016]上述步骤4)的具体过程为:
41)对于接收到的数据同步信息,将其中的数据版本信息交付给冲突检测模块,同本地的版本信息进行比较;
42)设本地的版本信息时钟向量为[tl,t2,…,tn],其中本地及远端的对应维度向量值为ti,tj ;收到的版本信息时钟向量为[yl,y2,…,yn],其中本地及远端的对应维度向量值为yi, yj°
[0017]a)若ti>yi, t j=yj,远端版本低于本地版本;
b)若tj>yj,ti=yi,本地版本低于远端版本;
c)若ti>yi,tj〈yj,发生冲突;
d)若ti〈yi或者tj>yj,理论上不应该存在这种情况。
[0018]冲突检测模块利用上述规则进行判断处理;
对于大于两台设备的环境下,由于设备间的通信也是两两进行的,因此在两两之间利用上述规则进行判断。
[0019]43)如果出现上述的a),b)情况,由数据同步进程进行处理;如果出现c),则由冲突消解模块进行处理;
44)冲突消解模块依照开发者设定的冲突消解方法,对发生冲突的数据进行处理。冲突消解的方法可以是对于冲突的数据,进行重命名操作;或者向用户抛出冲突信息,并停止对于冲突数
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1