用于操作排序的基于属性的依赖性识别制造技术

技术编号:19396940 阅读:21 留言:0更新日期:2018-11-10 05:05
提供了用于使本地对象模型与远程对象模型同步的系统、组件、设备和方法。非限制性示例是用于使本地对象模型与远程对象模型同步的系统或方法。该方法包括接收与本地对象模型相关联的多个更改。这些更改修改本地对象模型中对象的至少一个属性状态。该方法还包括识别由多个更改修改的对象的结果属性状态。该方法包括识别多个更改的对象的所需属性状态。该方法还包括基于所识别的所需属性状态构建针对多个更改的依赖图,并基于依赖图来生成多个更改的有序列表。

【技术实现步骤摘要】
【国外来华专利技术】用于操作排序的基于属性的依赖性识别
技术介绍
基于网络的存储服务将文件存储在经由网络可用的计算设备上。基于网络的存储服务的非限制性示例包括来自华盛顿州雷蒙德市的微软公司的OneDrive、来自加利福尼亚州山景城的谷歌公司的GoogleDrive、来自加利福尼亚州洛斯阿尔托斯的Box公司的Box、来自加利福尼亚州旧金山的DropBox公司的Dropbox、来自加利福尼亚州圣克拉拉市的SyncplicityLLC的Syncplicity以及加利福尼亚州雷德伍德市的OxygenCloud公司的ODrive。根据用途,使用基于网络的存储服务存储的文件只能由单个用户或多个用户访问。基于网络的存储服务还经常将本地存储在客户端计算设备上的文件与由基于网络的存储服务存储的文件同步。例如,基于网络的存储服务可以同步位于客户端计算设备上的文件系统中的一个或多个目录中的文件。用户编辑目录中的文件后,对文件的更改被中继到基于网络的存储服务。相反,如果在基于网络的存储服务中(例如,由访问该文件的另一用户)更改正在同步的文件,则将这些更改中继到客户端计算设备上的文件。可以对多个更改进行分组以同时进行同步。当更改彼此依赖时,可能需要以特定顺序应用它们以符合管理文件系统的各种策略(例如,不能在不存在的文件夹中创建文件)。如果未按正确顺序应用更改,则同步操作可能会失败。关于这些和其他一般性考虑,已经实现了各方面。而且,尽管已经讨论了相对具体的问题,但应该理解,这些方面不应限于解决
技术介绍
中标识的具体问题。
技术实现思路
提供本
技术实现思路
是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式部分中进一步描述。本
技术实现思路
不旨在确定所要求保护的主题的所有关键或必要特征,也不旨在帮助确定所要求保护的主题的范围。提供了用于使本地对象模型与远程对象模型同步的系统、组件、设备和方法。非限制性示例是用于使本地对象模型与远程对象模型同步的系统或方法。该方法包括接收与本地对象模型相关联的多个更改。这些更改会修改本地对象模型中对象的至少一个属性状态。该方法还包括识别由多个更改修改的对象的结果属性状态。该方法包括识别多个更改的对象的所需属性状态。该方法还包括基于所识别的所需属性状态对于多个更改构建依赖图,并基于依赖图生成多个更改的有序列表。示例被实现为计算机过程、计算系统或者诸如设备、计算机程序产品或计算机可读介质之类的制品。根据一个方面,该计算机程序产品是计算机系统可读的计算机存储介质,并且编码包括用于执行计算机过程的指令的计算机程序。在下面的附图和说明书中阐述了一个或多个方面的细节。通过阅读以下具体实施方式和对相关附图的回顾,其他特征和优点将是显而易见的。应理解,以下详细描述仅是解释性的,而不是对权利要求的限制。附图说明参考以下附图描述非限制性和非穷举性示例。图1是用于同步本地数据模型和远程数据模型的系统的示例的简化框图。图2示出了用于将更改从本地数据模型同步到远程数据模型的方法。图3示出了用于对数据模型的一组更改进行排序的方法。图4示出了用户和同步引擎二者都与数据模型交互的示例场景的时间线。图5示出了由同步引擎执行以生成图4中的示例的更改的序列表的一些步骤。图6是示出计算设备的示例物理组件的框图。图7A和7B是移动计算设备的框图。图8是分布式计算系统的框图。具体实施方式以下详细描述参考附图。在附图中尽可能使用相同的附图标记,并且以下描述涉及相同或相似的元件。虽然可以描述示例,但是修改、改编和其他实现方式是可能的。例如,可以对附图中示出的元件进行替换、添加或修改,并且可以通过将阶段替换、重新排序或添加到所公开的方法来修改本文描述的方法。因此,以下详细描述不是限制性的,而是由所附权利要求限定适当的范围。示例可以采用硬件实现方式或完全软件实现方式的形式,或者结合软件和硬件方面的实现方式。因此,以下详细描述不应被视为具有限制意义。文件同步对于许多常见活动是有用的。例如,共同创作涉及多个用户从多个计算设备访问共享文件以同时编辑文件。当用户编辑文件时,这些编辑需要与其他用户同步。也可以移动或重命名文件,并且还需要同步这些更改。在本地或远程进行多次更改之后,可以执行同步操作。在某些情况下,需要以特定顺序执行更改,以符合管理文件系统的数据模型的约束。可以如本文所述分析更改以确定用于应用任何检测到的更改的适当顺序,以便符合文件系统的约束。图1是用于同步本地数据模型和远程数据模型的系统100的示例的简化框图。如图1中所示,系统100包括可由用户U操作的用户计算设备102和基于网络的存储服务器104。用户计算设备102和基于网络的存储服务器104通过网络进行通信。用户计算设备102包括数据存储库106和同步引擎108。数据存储库106存储本地数据模型110和对象元数据数据库114以及其他数据。数据存储库106可以包括一个或多个文件系统和数据库,例如关系数据库。本地数据模型110可以例如包括诸如文件系统的目录结构。本地数据模型110包括对象112。本地数据模型110可以对对象及其彼此的关系施加各种约束。一些示例约束包括:·名称冲突。任何给定父级(例如,目录/文件夹)在任何给定时间都不能包括具有相同名称的多于一个子对象(例如,文件或目录/文件夹)。在一些方面,名称冲突以区分大小写或不区分大小写的方式确定。·无父级的添加。无法创建文件或文件夹直到其具有现有父文件夹为止。·无父级的移动。无法将文件或文件夹移动到不存在的文件夹中。·非空文件夹删除。无法删除文件夹直到文件夹为空为止。·从一个用户到另一个用户的无源文件副本(有时称为CrossUserCopy)。如果已删除副本源,则文件上的CrossUserCopy操作无法成功。·无源目录/文件夹CrossUserCopies。如果已删除副本源,则目录/文件夹上的CrossUserCopy操作将无法成功。在一些方面,本地数据模型也应用更少的、附加的或不同的约束。对象112存在于本地数据模型110内,并且可以被组织成分层目录结构。在一些方面,对象112包括文件和目录/文件夹。对象可以与各种属性相关联,例如资源标识符(ID)、父资源ID和名称。资源ID是唯一值,用于标识对象并将对象与基于网络的存储服务器104存储的对象相关联。类似地,父资源ID是用于标识父对象的另一个唯一值。继续文件系统示例,文件的父级将是目录,因此文件的父资源ID将是与目录关联的资源ID。通常,父目录也将拥有其自己的父级。以这种方式,目录结构可以具有任意深度。名称可以是对象的文本描述符。在某些方面,要求名称在共享父级的对象中是唯一的。例如,在文件系统中,文件必须具有相对于同一目录中的任何其他文件唯一的名称。对象元数据数据库114存储关于对象112中的至少一些的数据。例如,对象元数据数据库114可以存储对象112中的至少一些的属性(诸如先前讨论的资源ID、父资源ID和名称)。在至少一些方面,对象元数据数据库114存储当属性值在最后一次同步对象时属性值的一个或多个快照。例如,对象元数据数据库114可以存储最后一次与基于网络的存储服务器104同步对象时捕获的对象的资源ID、父资源ID和名称的快照。对象元数据数据库114也可以存储这些或其他属性在其他时间(例如,在比最后一本文档来自技高网
...

【技术保护点】
1.一种用于使本地对象模型与远程对象模型同步的系统,包括:至少一个处理器;以及存储器,可操作地连接到所述至少一个处理器并存储指令,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:接收与所述本地对象模型相关联的多个更改,其中,所述更改中的每个修改所述本地对象模型中的至少一个对象的至少一个属性状态;识别由所述多个更改修改的对象的结果属性状态;识别所述多个更改的所述对象的所需属性状态;基于所识别的所需属性状态构建针对所述多个更改的依赖图;以及基于所述依赖图来生成所述多个更改的有序列表。

【技术特征摘要】
【国外来华专利技术】2016.03.25 US 62/313,633;2016.06.30 US 15/198,9081.一种用于使本地对象模型与远程对象模型同步的系统,包括:至少一个处理器;以及存储器,可操作地连接到所述至少一个处理器并存储指令,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:接收与所述本地对象模型相关联的多个更改,其中,所述更改中的每个修改所述本地对象模型中的至少一个对象的至少一个属性状态;识别由所述多个更改修改的对象的结果属性状态;识别所述多个更改的所述对象的所需属性状态;基于所识别的所需属性状态构建针对所述多个更改的依赖图;以及基于所述依赖图来生成所述多个更改的有序列表。2.如权利要求1所述的系统,其中,所述多个更改是通过将所述本地对象模型中的所述对象与在所述本地对象模型与所述远程对象模型之间的先前同步操作期间生成的快照进行比较来接收的。3.如权利要求2所述的系统,其中,所述存储器还存储指令,所述指令在由所述至少一个处理器执行时使所述至少一个处理器将所述有序列表发送到基于网络的存储服务器以应用于所述远程对象模型。4.如权利要求1所述的系统,其中,所述多个更改是从存储所述远程对象模型的基于网络的存储服务器接收的。5.如权利要求4所述的系统,其中,所述存储器还存储指令,所述指令在由所述至少一个处理器执行时使所述至少一个处理器根据所述有序列表将所述更改应用于所述本地对象模型。6.如权利要求1所述的系统,其中,所述依赖图包括至少一个从所述多个更改中的第一更改到所述多个更改中的第二更改的引用,所述引用指示所述第二更改的结果属性状态是所述第一更改的所需属性状态。7.如权利要求1所述的系统,其中,所述存储器还存储指令,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:确定所述依赖图是否包含环;以及当确定所述依赖图包含环时:识别导致所述环的对象的属性状态;以及生成与所述属性状态相关的附加更改以移除所述环。8...

【专利技术属性】
技术研发人员:B·D·琼斯
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1