[发明专利]安全网盘系统中一种基于目录树的数据同步方法有效

专利信息
申请号: 201210179530.8 申请日: 2012-05-31
公开(公告)号: CN102790760A 公开(公告)日: 2012-11-21
发明(设计)人: 舒继武;傅颖勋 申请(专利权)人: 清华大学
主分类号: H04L29/06 分类号: H04L29/06;G06F17/30
代理公司: 北京思海天达知识产权代理有限公司 11203 代理人: 楼艮基
地址: 100084*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 安全网 系统 一种 基于 目录 数据 同步 方法
【权利要求书】:

1.安全网盘系统中一种基于目录树的同步方法,其特征在于,它是在由客户端计算机、服务器以及云存储服务器三者共同构成的基于个人用户共享的安全网络存储系统CorsBox中实现的,所述客户端计算机和服务器之间通过Internet网连接,所述服务器和云存储服务器之间通过以太网交换机连接,所述安全网盘系统中一种基于同步目录树的数据同步方法依次含有以下步骤:

步骤(1),客户端计算机初始化所有目录树:

步骤(1.1),客户端计算机向服务器发起同步请求,服务器计算机对客户端的用户身份进行验证,然后将该用户的服务器端目录树返回给客户端;

步骤(1.2),客户端计算机读取保存在本地的客户端目录树生成文件,在内存中创造了该用户的客户端目录树和组成所述用户的客户端目录树的客户端目录树结点:

客户端目录树是一个二叉树结构,它的格式包括:root、nodes、nodesCount和maxnodesCount,其中,

nodes,以数组方式记录了所述客户端目录树的所有结点;

nodesCount,记录了所述客户端目录树中的总结点数;

maxNodesCount,表示所述客户端目录树最多允许包含的结点数;

客户端目录树结点的格式包括:nodeType、name、appendAttribute、lastModifyTime、lchild和rchild,其中:

nodeType,记录所述客户端目录树中的结点所对应的是目录还是文件;

name,记录所述客户端目录树中所述目录或文件的名称;

appendAttribute,对所述客户端目录树中的目录而言,记录的是是否被共享,对所述客户端目录树中的文件而言,记录的是最新版本的版本号;

lchild,记录了在所述客户端目录树中该结点的左孩子的索引号;

rchild,记录了在所述客户端目录树中该结点的右孩子的索引号;

lastModifytime,记录所述基于个人用户共享安全网络存储系统CorsBox所维护的该结点的最新修改时间;

步骤(1.3),客户端计算机根据步骤(1.1)的返回的服务器端目录树在内存中创建该用户的服务器端目录树,用于记录所述云存储服务器中的实时数据状态;用户的服务器端目录树的结构与客户端目录树完全相同,只是nodes数组中的结点类型是用户服务器端目录树结点,用户服务器端目录树结点包括:nodeType、name、appendAttribute、lchild和rchild,其中:

nodeType,记录所述用户服务器端目录树中的结点所对应的是目录或文件;

name,记录所述的目录或文件的名称;

appendAttribute,对所述用户服务器端目录树中的目录而言,记录的是是否被共享,对所述用户服务器端目录树中的文件而言,记录的是最新版本的版本号;

lchild,记录了在所述用户服务器端目录树中该结点的左孩子的索引号;

rchild,记录了在所述用户服务器端目录树中该结点的右孩子的索引号;

步骤(1.4),所述客户端计算机在每次同步时扫描磁盘中的所述客户端目录树的目录及其子目录,在内存中创造用户磁盘目录树记录用户的实时数据,用户磁盘目录树的结构与客户端目录树完全相同,只是nodes数组中的结点类型是磁盘目录树结点,用户磁盘目录树结点包括:nodeType、name、lastModifyTime、lchild和rchild,其中:

nodeType,记录所述用户磁盘目录树中的结点所对应的是目录还是文件;

name,记录所述磁盘目录树中所述目录或文件的名称;

lastModifytime,记录了在所述客户端计算机中该结点的最后修改时间;

lchild,记录了在所述磁盘目录树中该结点的左孩子的索引号;

rchild,记录了在所述磁盘目录树中该结点的右孩子的索引号;

步骤(2),客户端计算机依次按照如下步骤比对客户端目录树与磁盘目录树;

步骤(2.1),客户端计算机将客户端目录树排序,排序方法如下:

步骤(2.1.1),创建一个当前结点指针指向客户端目录树的根节点,若当前结点为空,则排序完成,否则使用步骤(2.1.2)中的方法进行排序;

步骤(2.1.2),对待当前结点的左孩子对应的右结点链,某个结点的右节点链定义为一个集合,该集合包含该节点及其右孩子、右孩子的右孩子……,直到右孩子为空,按照字典序的方式顺序排序,对字符串来说,字典序是指:若A字符串的首字母在字典中顺序排在字符串B的首字母之前,则称在字典序中A>B,若想相等则比较第二个字母,以此类推;

步骤(2.1.3),将当前结点指针依次指向其左孩子的右结点链中的每一个结点,若该结点的类型为目录,则递归执行步骤(2.1.1),若为文件则直接跳过;

步骤(2.2),客户端计算机将磁盘目录树排序,排序方法与步骤(2.1)一样;

步骤(2.3),客户端计算机依次按照如下步骤比对客户端目录树与磁盘目录树,生成比对结果:

步骤(2.3.1),分别设置客户端目录树的当前结点指针CDT和磁盘目录树的当前结点指针DDT,然后将CDT指向客户端目录树的根节点,DDT当前指针指向磁盘目录树的根节点;

步骤(2.3.2),对客户端目录树与服务器端目录树中当前结点指针各自所指向的结点使用(2.3.2.1)中的方法进行结点比对;

步骤(2.3.2.1),若CDT当前所指向的结点和DDT当前所指向的结点中,有且仅有一个为空,则在比对结果数组CDTvsDDT中增加一个元素记录该路径下为空的那颗目录树缺失结点,并返回;

若CDT当前所指向的结点和DDT当前所指向的结点均为空,则直接返回;

若CDT当前所指向的结点和DDT当前所指向的结点均不为空,则按字典序比对两个当前结点中name域的值:若CDT指向的结点中name域的值较大,则将DDT指向其右孩子,转步骤(2.3.2);反之则将CDT指向其右孩子,转步骤(2.3.2);

若CDT当前所指向的结点和DDT当前所指向的结点的name域值相同,即:依照字典序比较,结果为等于,则比对两个结点中的lastModifyTime域的值:

若lastModifyTime域的值不相同,则在比对结果数组CDTvsDDT中增加一个元素记录当前结点所代表的文件的最后修改时间不同,并转步骤(2.3.3);

若lastModifyTime域的值相同,则直接转步骤(2.3.3);

步骤(2.3.3),将CDT和DDT分别指向各自的左孩子结点,然后再次从步骤(2.3.2)开始执行;

步骤(2.3.4),将CDT和DDT分别指向各自的右孩子结点,然后再次从步骤(2.3.2)开始执行;

步骤(2.3.5),当执行到这一步的时候,客户端目录树与磁盘目录树已将整棵树比对完毕,并将所有缺失的结点与最后修改时间不相同的结点信息都已记录在比对结果数组CDTvsDDT中;

步骤(3),客户端比对客户端目录树与服务器端目录树:

步骤(3.1),客户端将服务器端目录树排序,排序方法与步骤(2.1)一样;

步骤(3.2),客户端计算机依次按照如下步骤比对客户端目录树与服务器端目录树,生成比对结果:

步骤(3.2.1),分别设置客户端目录树的当前结点指针CDT,和服务器目录树的当前结点指针SDT,然后将CDT指向客户端目录树的根节点,SDT指向服务器端目录树的根节点;

步骤(3.2.2),对客户端目录树与服务器端目录树各自的当前结点指针所指向的结点使用步骤(3.2.2.1)中的方法进行结点比对;

步骤(3.2.2.1),若CDT当前所指向的结点和SDT当前所指向的结点中,有且仅有一个为空,则在比对结果数组CDTvsSDT中增加一个元素记录该路径下为空的那颗目录树缺失结点,并返回;

若CDT当前所指向的结点和SDT当前所指向的结点均为空,则直接返回;

若CDT当前所指向的结点和SDT当前所指向的结点均不为空,则按字典序比对两个当前结点中name域的值:若CDT指向的结点中name域的值较大,则将SDT指向其右孩子,转步骤(3.2.2);反之则将CDT指向其右孩子,转步骤(3.2.2);

若CDT当前所指向的结点和SDT当前所指向的结点的name域值相同,即:依照字典序比较,结果为等于,则比对两个结点中的appendAttribute域的值;

若appendAttribute域的值不相同,则在比对结果数组CDTvsSDT中增加一个元素记录当前结点所代表的文件的版本号不同,并转步骤(3.2.3);

若appendAttribute域的值相同,则直接转步骤(3.2.3);

步骤(3.2.3),将CDT和SDT分别指向各自的左孩子结点,然后再次从步骤(3.2.2)开始执行,

步骤(3.2.4),将CDT和SDT分别指向各自的右孩子结点,然后再次从步骤(3.2.2)开始执行,

步骤(3.2.5),当执行到这一步的时候,客户端目录树与服务器端目录树已将整棵树比对完毕,并将所有存在结点缺失的路径或文件版本号不同的结点信息都记录在比对结果CDTvsSDT数组当中;

步骤(4),客户端比对步骤(2)和步骤(3)的比对结果,并根据此结果执行相应的同步操作,完成同步过程:

步骤(4.1),将步骤(2)中的比对结果CDTvsDDT数组中的元素按照路径的字典序进行排序;

步骤(4.2),将步骤(3)中的比对结果CDTvsSDT数组中的元素按照路径的字典序进行排序;

步骤(4.3),按照如下步骤依次比对数组CDTvsDDT、CDTvsSDT中的元素,生成需要执行的同步操作;

步骤(4.3.1),数组CDTvsDDT、CDTvsSDT各自的第一个元素作为两个比对结果传入的结点,称为传入结点,进入步骤(4.3.2);

步骤(4.3.2),比对两个传入结点的路径,将比对结果分为以下几种情况考虑:

若步骤(2)中的比对结果传入的结点记录的路径的字典序较小,则根据该结点记录的信息分以下情况考虑,并将步骤(2)中传入结点的下一结点与步骤(3)中的传入结点作为新的传入结点再次从步骤(4.3.2)开始执行;

1.若该结点记录的信息为客户端目录树中存在此结点,而磁盘目录树中不存在此结点,则表示该结点对应文件或目录已被客户端离线删除,因此需要对此路径执行下载操作;

2.若该结点记录的信息为磁盘目录树中存在此结点,而客户端目录树中不存在此结点,则表示该文件或目录是用户在未开启云存储服务客户端的时候增加的,因此需要对此路径执行上传操作;

3.若结点记录的信息为客户端目录树与磁盘目录树中都存在此结点,但它们的最后修改时间不同,则表示用户在未开启云存储服务客户端的时候修改了此文件,而在这段时间内其他客户端并没有提交此文件的新版本至服务器,因此需要对此路径执行上传操作;

若步骤(3)中的比对结果传入的结点记录的路径的字典序较小,则根据该结点记录的信息分以下情况考虑,并将步骤(3)中传入结点的下一结点与步骤(2)中的传入结点作为新的传入结点再次从步骤(4.3.2)开始执行;

1.若该结点记录的信息为客户端目录树中存在此结点,而服务器端目录树中不存在此结点,则表示此文件或目录已被其他客户端删除,应在本地将它删除;

2.若该结点记录的信息为服务器端目录树中存在此结点,而客户端目录树中不存在此结点,则表示此文件或目录是其他客户端上传的,应对此路径执行下载操作;

3.若结点记录的信息为客户端目录树与服务器端目录树中都存在此结点,但它们的版本号不同,则说明其他用户提交了新版本至服务器,而此用户并没有对此文件进行修改,因此需要对此路径执行下载操作;

若步骤(2)中的路径与步骤(3)中的路径一致,则根据两个结点分别记录的信息分以下情况处理,并将两个传入结点的下一结点作为新结点再次从步骤(4.3.2)开始执行;

1.若步骤(2)中结点记录的信息为磁盘目录树缺失结点,而步骤(3)中结点记录的信息为服务器端端目录树缺失结点,则表示此文件或目录已被其他用户删除,同时该用户在为开启云存储服务客户端的情况下也删除了此文件或目录,因此只需将该路径对于的结点从客户端目录树中删除即可;

2.若步骤(2)中结点记录的信息为磁盘目录树缺失结点,而步骤(3)中结点记录的信息为文件版本号不同,则表示其他用户已上传此文件的新版本,而此用户在未开启云存储服务客户端的情况下删除了此文件,因此需要对此路径执行下载操作;

3.若步骤(2)中结点记录的信息为最后修改时间不同,而步骤(3)中结点记录的信息为服务器端端目录树缺失结点,则表示其他用户已将此文件删除,而本地用户在这段时间却对此文件进行了修改,因此需要对此路径执行上传操作;

4.若步骤(2)中结点记录的信息为最后修改时间不同,而步骤(3)中结点记录的信息为版本号不同,则表示其他用户上传了此文件,而本地用户也修改了此文件,因此需要进行冲突处理,具体的方法是将本地文件重命名后上传,并从服务器端下载该文件的最新版本;

步骤(5),依次执行步骤(4)中生成的同步操作,完成同步过程。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210179530.8/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top