当前位置: 首页 > 专利查询>微软公司专利>正文

用于同步数据平台的多个实例的方法和系统技术方案

技术编号:2842712 阅读:426 留言:0更新日期:2012-04-11 18:40
本发明专利技术的若干实施例包括一种提供同步服务的存储平台,该同步服务(i)允许存储平台的多个实例(其每一个具有其自己的数据存储)依照一组灵活的规则同步其内容的各部分,以及(ii)为第三方提供将本发明专利技术的存储平台的数据存储与实现专有协议的其他数据源同步的基础结构。然而,在多种同步情形中引发冲突也是可能的。例如,A1和B2可以是对同一改变单元作出的改变,或者A1可以是对B2所修改的同一改变单元的删除。尽管这些冲突中的某一些可使用此处先前讨论的冲突分解选项来分解,然而某些冲突提出了尤其困难的挑战,并且这些挑战及其解决方案在此讨论。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般涉及信息存储和检索领域,以及用于在计算机化系统中组织、搜索和共享不同类型的数据的活动存储平台。具体而言,本专利技术涉及数据平台的多个实例之间的数据的同步,尤其涉及分层结构化同步系统的使用。背景在最近十年中,单个盘的容量每年增长约百分之70(70%)。摩尔(Moore)法则精确地预测了在过去数年中中央处理单元(CPU)能力的惊人的增长。有线和无线技术已经提供了数量上巨大的连接和带宽。假设当前趋势持续,在数年内一般的膝上计算机将具有约万亿字节(TB)的存储并包含数百万个文件,而5千亿字节(500GB)的驱动器成为常见的。消费者使用他们的计算机主要用于通信和组织个人信息,不论它们是传统的个人信息管理器(PIM)风格的数据或如数字音乐或照片那样的媒体。数字内容的量和存储原始字节的能力已经大量地增长;然而消费者可用于组织和统一此数据的方法却跟不上步伐。知识工人花费大量时间来管理和共享信息,某些研究估计,知识工人花费15-25%的时间在与无效信息有关的活动上。另外研究估计,典型的知识工人每天约花费2.5小时搜索信息。开发者与信息技术(IT)部门投资大量的时间与金钱来构建他们自己的用于公用存储抽象的数据存储,以呈现如人、地方、时间和事件等事项目。这不仅导致重复的工作,还形成公用数据的孤岛,没有共同搜索或共享那些数据的机制。仅考虑当今在运行Microsoft Windows操作系统的计算机上有多少地址簿。如电子邮件客户端和个人财务程序那样的许多应用程序保留各自的地址簿,且在每个那样的程序分别维护的地址簿应用程序之间只有很少共享。因而,财务程序(如MicrosoftMoney)不与维护在电子邮件联系人文件夹(如Microsoft Outlook中的联系人文件夹)中的地址共享支付人的地址。确实,许多用户具有多个设备,在这些设备之间和包括到如MSN和AOL等商业服务的手机电话号码的各种附加来源之间应该在逻辑上同步它们的个人数据;然而共享文档的协作大部分是通过将文档附到电子邮件消息来达到的一这是手动的且低效的。缺乏协作的一个原因是组织计算机系统中的信息的传统方法集中在使用基于文件—文件夹—目录的系统(“文件系统”),来基于用于存储文件的存储介质的物理组织的抽象将多个文件组织到文件夹的目录分层结构中。在1960年代开发的Multics操作系统被认为是在操作系统级上使用文件、文件夹和目录来管理可存储数据单元的先驱。具体说来,Multics在文件的分层结构中使用符号地址(从而引入文件路径的概念),其中文件的物理地址对用户(应用程序和最终用户)是不透明的。此文件系统完全不考虑任何单个文件的文件格式,且在文件中及文件之间的关系在操作系统级上被认为是无关的(即,与分层结构中文件的位置不同)。由于Multics的出现,在操作系统级上可存储的数据被组织成文件、文件夹和目录。这些文件一般包括放在由文件系统维护的一特定文件中的文件分层结构本身(“目录”)。此目录进而维护对应于该目录中所有其它文件和那些文件在分层结构(这里指文件夹)中的节点位置的条目的列表。这是本领域中近40年的状态。然而,虽然提供了驻留在计算机的物理存储系统中的信息的合理表示,但是文件系统是物理存储系统的抽象,因而文件的利用需要在用户处理什么(具有上下文、特征以及与其它单元的关系的单元)和操作系统提供什么(文件、文件夹和目录)之间的间接(解释)层。结果,用户(应用程序和/或最终用户)只好强制把信息单元放入文件系统结构,即使这样做是低效的、不一致的、或不希望的。此外,现有的文件系统关于在各个文件中存储的数据的结构知之甚少,因此,大多数信息在文件中保持封闭,只能被写那些数据的应用程序访问(和可理解)。因此,缺乏信息的模式描述和管理信息的机制,导致形成数据的竖井(silo),只有很少数据能在各竖井之间共享。例如,许多个人计算机(PC)用户具有5个以上各异的存储,它们包含有关他们在某一层上交互的人的信息—如Outlook联系人、在线账户地址、Windows地址簿、Quicken受款人和即时消息(IM)伙伴列表—因为组织文件向这些PC用户提出重要的挑战。由于大多数现有的文件系统利用嵌套的文件夹隐喻来组织文件和文件夹,因此当文件数量增加时,为维持灵活且有效的组织模式所必需的努力变得十分惊人。在这些情况下,具有单个文件的多重分类是非常有用的;然而使用现有文件系统中的硬和软链接是麻烦且难以维护的。过去已作了若干不成功的尝试来克服文件系统的缺点。这些以前尝试中的某一些已经涉及使用内容可定址的存储器来提供可以通过内容而不是通过物理地址来访问数据的机制。然而,这些努力被证明是不成功的,因而虽然内容可定址的存储器对由如高速缓存和存储器管理单元等设备的小规模使用被证明是有用的,但对如物理存储介质等设备的大规模使用由于各种原因尚不可能,因此那样的解决方案简直不存在。已作出使用面向对象的数据库(OODB)系统的其它尝试,但是这些尝试虽然带有强烈的数据库的特征,且良好的非文件表示,但在处理文件表示方面并不有效,并不能重现在硬件/软件接口系统级上基于分层结构的文件及文件夹的速度、效率和简单性。诸如试图使用SmallTalk(和其它派生方法)的其它尝试在处理文件和非文件表示方面被证明相当有效,但缺乏有效地组织和利用在各种数据文件之间存在的关系所必需的数据库特征,因此那种系统的整体有效性是不可接受的。使用BeOS(和其它那样操作系统研究)的又一种尝试尽管能够胜任适当地表示文件的同时又提供某些必要的数据库特征,在处理非文件的表示上被证明是不够的,这是传统文件系统同样的核心缺点。数据库技术是存在类似挑战的另一专业领域。例如,虽然关系型数据库模型已取得很大的商业上的成功,实际上独立软件分销商(ISV)一般运用了关系型数据库软件产品(如Microsoft SQL Server)中可得到的功能一小部分。相反,应用程序与那样产品的大多数交互是以简单的“gets”和“puts”的形式。对此虽然有若干容易明白的原因(如作为平台或数据库的不可知),一个常被忽略的关键的原因是数据库没有必要提供主要商业应用程序分销商确实需要的精确抽象。例如,虽然真是世界具有如“客户”或“订单”等“项目”的概念(以及订单的嵌入的“行式项目”作为其中的项目和项目本身),而关系型数据库只在表和行的方面来谈论。结果,虽然应用程序可能希望具有在项目级上的一致性、锁定、安全和/或触发器的方面(只列出一些),通常数据库只在表/行级上提供这些特征。尽管若每个项目映射到数据库某个表的单个行也能工作得很好,但在带多个行式项目的订单的情况下,存在一个项目实际上要映射到多个表的原因,且在此情况下,单个关系型数据库系统不能确切地提供正确的抽象。因此,应用程序必须在数据库的顶层构建逻辑以提供这些基本抽象。换言之,基本关系模型不提供在其上容易开发高级应用程序的存储数据的足够平台,因为基本关系模型需要在应用程序和存储系统之间的间接层,其中只在某些情况的应用程序中可以看到数据的语义结构。尽管某些数据库分销商正将高级功能构建到他们的产品中(如提供对象关系能力,新的组织模型等),至今尚没有哪个提供需要的全面解决方案,其中真正的全面解决方案是为有用的域抽象(如“本文档来自技高网...

【技术保护点】
一种用于同步数据平台的多个示例的方法,所述数据平台包括但不限于有或者没有适配器的复制品或数据源,并且所述多个实例包含一同步共同体,所述方法包括:按实例基础(改变号码)按顺序(例如递增号码)唯一地枚举实例上的改变;为每一实例维 护一矢量,所述矢量包括所述实例的最新近的改变号码,以及对来自所述实例已知的所述多个实例(每一个是已知实例)中的每一其它实例的最新近已知的改变号码,其中,所述矢量(包括每一已知实例的改变号码)固有地代表了对所述实例作出的所有改变。

【技术特征摘要】
【国外来华专利技术】US 2003-8-21 10/646,646;US 2003-8-21 PCT/US03/27411.一种用于同步数据平台的多个示例的方法,所述数据平台包括但不限于有或者没有适配器的复制品或数据源,并且所述多个实例包含一同步共同体,所述方法包括按实例基础(改变号码)按顺序(例如递增号码)唯一地枚举实例上的改变;为每一实例维护一矢量,所述矢量包括所述实例的最新近的改变号码,以及对来自所述实例已知的所述多个实例(每一个是已知实例)中的每一其它实例的最新近已知的改变号码,其中,所述矢量(包括每一已知实例的改变号码)固有地代表了对所述实例作出的所有改变。2.如权利要求1所述的方法,其特征在于,所述改变号码包含所述实例的唯一标识号,以及对所述实例作出的改变的相对递增计数。3.如权利要求1所述的方法,其特征在于,为部分地与第二实例同步,第一实例通过向所述第二实例发送它自己的矢量向所述第二实例请求改变,并且其中,基于从所述第一实例接收的矢量,所述第二实例仅向所述第一实例发送所述第一实例尚未接收到的那些改变。4.如权利要求3所述的方法,其特征在于,基于从所述第一实例接收的矢量,所述第二实例进一步确定所述第一实例有所述第二实例尚未接收到的改变,并且发送它自己的矢量到所述第一实例以请求这些改变,并且其中,基于从所述第二实例接收的矢量,所述第一实例仅向所述第二实例发送所述第二实例尚未接收到的那些改变。5.如权利要求1所述的方法,其特征在于,当将第一项目改变成(通过关系)与先前未同步的第二项目(例如范围外的项目)相关,第一实例在与第二实例同步时将属于所述第二项目所有改变信息发送到所述第二实例,使得所述第二实例中的所述第二项目与所述第一实例中的所述第二项目同步。6.如权利要求1所述的方法,其特征在于,在默认的操作中,父项目在所述父项目的子项目之前发送,并且其中,多个改变通常以对应于同步过程中所述改变的多个改变号码的顺序次序发送,并且其中,在同步之间,在第一实例中,子项目被改变,然后父项目被改变,属于所述子项目的任何改变单元仅在属于父项目的所有改变单元被发送之后的同步过程中从所述第一实例发送到第二实例。7.如权利要求1所述的方法,其特征在于,对于由第一实例删除的项目,创建包括所删除的项目的标识的墓碑,并且所述墓碑作为同步的一部分发送,以通知第二实例在所述第二实例中标识要删除的项目。8.如权利要求7所述的方法,其特征在于,对于具有父项目和所述父项目的第一子项目的第一实例,当所述子项目被删除,然后所述父项目被删除时,所述第一实例在同步过程中仅向第二实例发送所述父项目的改变(即,所述父项目的墓碑),其中(a)父项目的删除自动导致所述父项目的所有子项目的删除,或(b)第二实例在接收了父项目的墓碑之后,着手删除父项目的删除,并自动删除子项目。9.如权利要求1所述的方法,其特征在于,第一实例的第一关系和第二关系使用临时名字元素交换名字,使得,按照顺序,(a)第一关系的名字被传输到所述临时名字元素,(b)第二关系的名字被传输到所述第一关系,以及(c)储存在临时名字元素中的所述名字被复制到所述第二关系,并且其中,所述第一实例与第二实例同步,并发送一对改变单元,它们按顺序表示(i)所述第一关系的新名字,以及(ii)所述第二关系的新名字,并且其中,实现所述改变对的第一个(第一改变)导致第二实例中的错误,因为所述第一改变的结果是用于具有相同名字(尝试的改变)的第一关系和第二关系,一种所述第二实例着手将所述第一关系的名字复制到本地临时名字元素的方法,以及如果在同步过程中,发生接收到用于将所述第二关系的名字复制到所述第一关系的随后的改变,则执行所述改变,并且也将所述本地临时名字元素中的所述名字复制到所述第一关系;以及如果在同步过程中,发生未接收到将所述第二关系的名字复制到所述第一关系的随后的改变,则引发关于所述尝试的改变的冲突。10.如权利要求1所述的方法,其特征在于,对于存储平台上允许摇摆相对引用的第一实例和存储平台上不允许摇摆相对引用的第二实例之间的同步,所述第二实例包括对相对引用的至少一个改变和至少一个其它改变(以该顺序),在所述一个其它改变之后发送对所述相对引用的所述改变。11.一种用于同步数据平台的多个实例的系统,所述数据平台包括但不限于具有或不具有适配器的复制品或数据源,并且所述多个实例包括一同步共同体,所述系统包括用于按实例基础(改变号码)按顺序(如,递增号码)唯一地枚举实例上改变的子系统;用于为每一实例维护一矢量的子系统,所述矢量包括所述实例的最新近的改变号码,以及来自所述实例已知的所述多个实例(每一个是已知实例)之中的每一其它实例的最新近的已知改变号码,其中,所述矢量(包括每一已知实例的改变号码)固有地代表了对所述实例作出的所有改变。12.如权利要求1所述的系统,其特征在于,所述改变号码包括所述实例的唯一标识号,以及对所述实例作出的改变的相对递增计数。13.如权利要求1所述的系统,其特征在于,还包括一子系统,其中,为与第二实例同步,第一实例通过向所述第二实例发送其矢量,向所述第二实例请求改变,并且其中,所述第二实例基于它从所述第一实例接收到的矢量,仅将所述第一矢量尚未接收的那些改变发送到所述第一实例。14.如权利要求13所述的系统,其特征在于,还包括一子系统,其中,所述第二实例基于它从所述第一实例接收的矢量,进一步确定所述第一实例具有它(所述第二实例)尚未接收到的改变,并且将其自己的矢量发送到所述第一实例以请求这些改变,并且其中,所述第一实例基于它从所述第二实例接收的矢量,仅将所述第二矢量尚未接收到的那些改变发送到所述第二实例。15.如权利要求11所述的系统,其特征在于,还包括一子系统,其中,当将第一项目改变成(通过关系)与先前未同步的第二项目(例如,范围外的项目)相关时,第一实例在与第二实例同步时向所述第二实例发送属于所述第二项目的所有改变信息,使得所述第二实例中的所述第二项目与所述第一实例中的所述第二项目同步。16.如权利要求11所述的系统,其特征在于,还包括一子系统,其中,在默认的操作中,父项目通常在所述父项目的子项目之前发送,并且其中,多个改变通常以对应于同步过程中所述改变的多个改变号码的顺序次序发送,并且其中,在同步之间,在第一实例中,子项目被改变,然后父项目被改变,属于所述子项目的任何改变单元仅在属于父项目的所有改变单元被发送后的同步过程中从所述第一实例发送到第二实例。17.如权利要求11所述的系统,其特征在于,还包括一...

【专利技术属性】
技术研发人员:QJ克拉科AK诺瑞P赛利斯PM斯皮罗DG坎贝尔L诺威科
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

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

1