对等同步应用程序中的安全性的制作方法

文档序号:6568530阅读:166来源:国知局

专利名称::对等同步应用程序中的安全性的制作方法对等同步应用程序中的安全性背景计算机技术(例如,微处理器速度、存储器容量、数据传输带宽、软件功能等)的进步总体上对计算机在各种行业中的日益增加的应用做出了贡献。通常提供常被配置为服务器阵列的甚至更强大的服务器系统来服务源自诸如万维网等外部源的请求。当可用电子数据的数量增长时,以便于用户友好和快速数据搜索和检索的可管理方式来储存这些数据也变得愈发重要。当今,一种常见的方法是将电子数据存储在一个或多个数据库中。一般而言,典型的数据库可被称为其数据被结构化使得计算机程序可例如快速搜索和选择期望的数据的有组织的信息集合。通常,数据库内的数据是经由一张或多张表来组织的。这些表被排列为行和列的数组。同样,表可包括一组记录,其中记录包括一组字段。记录通常被索引为表内的行,而记录字段通常被索引为列,使得索引的行/列对可引用表内的特定数据。例如,行可储存与销售交易、个人或项目相关的完整数据记录。同样,表的列可定义具有相同的一般数据格式的行的离散部分,其中列可定义记录的字段。每一个别的数据本身一般并不具有非常丰富的信息。数据库应用程序使得数据更有用是因为它们帮助用户组织和处理数据。数据库应用程序允许用户比较、分类、排序、合并、分离和互连数据,使得可从数据生成有用的信息。数据库的容量和多功能性正难以置信地增长,以允许利用数据库的实际上无止境的存储容量。然而,典型的数据库系统提供了基于时间、文件扩展名、位置和大小的有限的査询能力。例如,为了搜索关联至一数据库的大量数据,典型的搜索限于文件名、文件大小、创建日期等,其中这些技术是不完善且不合适的。随着终端用户持续且日益增长的创建数据,围绕查找、相关、操纵和储存这些数据的问题和困难也逐步增加。终端用户编写文档、储存照片、从光盘中抓取音乐、接收电子邮件、保留己发送邮件的副本等等。例如,在创建音乐光盘的简单过程中,最终用户可创建兆字节的数据。从光盘中抓取音乐、将文件转换成合适的格式、创建首饰盒封面以及设计光盘标签都需要创建数据。不仅仅是围绕用户的复杂情况,而且开发者也具有对数据的类似问题。开发者创建并编写从个人应用程序到高度开发的企业应用程序的大量应用程序。在创建和/或开发时,开发者即使不是总是也经常要收集数据。当获得这些数据时,需要存储这些数据。换言之,围绕查找、相关、处理和存储数据的问题和困难同时影响了开发者和终端用户两者。此外,由于围绕开发者和/或用户的无限量的数据,因此保持各种不同机器和/或系统之间的数据一致性会是一个复杂且难以实现的任务。例如,用户能够利用膝上型机器和台式计算机,其中数据一致性和/或同步是必须考虑的问题。更具体地,由于每个机器和/或系统生成大量的数据,因此对这些数据进行同步是一个极其困难的目标。概述随后呈现了新颖性的简化描述以便提供对在此描述的某些方面的基本理解。这一概述并不是对要求保护的主题的全面描述。它既不旨在标识要求保护的主题的关键或重要的元素,也不描绘本发明的范围。这一概述的唯一目的是以一种简化的形式来介绍要求保护的主题的一些概念,作为稍后呈现的更为详细的描述的前序部分。本发明涉及用于使得与至少两个各不相同的数据存储系统相关联的数据更容易同步的系统和/或方法。数据存储系统可以是至少基于数据库结构的复杂模型,其中定义了项、子项、属性和关系来允许将数据存储系统内的信息表示为复杂类型的实例。同步组件创建一安全对等数据同步以允许多个用户在各种等级和/或级别处访问这些同步的数据。同步组件对与该数据存储系统和有所不同的数据存储系统相关联的数据进行同步,其中可以建立安全对等同步社区(community)。同步组件保护包括同步社区成员列表(例如,用户访问权限和/或特权列表)在内的元数据,以使得具适当访问权的用户能够对其进行修改(例如,向社区添加用户和/或从中移除用户)并将变更和/或处理发送给其他用户。数据也可被保护,以使得具有适当访问权的用户能够对其进行修改并将变更发送给其他用户。换句话说,同步组件可以实现对复杂的同步关系的管理。例如,同步关系可以但不限于建立、拆散(tear-down)和安全管理。此外,同步组件可以完全基于同步技术来实现对复杂的同步关系的管理。应该认识到并理解,可以实现任何合适的同步技术,例如与数据存储系统有关的同步技术。根据要求保护的主题的一个方面,同步组件能够利用与数据存储系统相关联的现有同步技术和/或机制。同步组件能够利用包括跟踪组件的数据存储系统,该跟踪组件跟踪针对存储在该数据存储系统内各实体的,尤其是针对该数据存储系统内一存储的数据变更。该跟踪组件能够捕捉针对各实体的数据变更以使维护数据集的两个各不相同系统之间的数据更容易同步。通过利用该数据存储系统内现有的同步技术和/或机制,同步组件能够在无需任何新的机制和/或技术的情况下提供安全对等同步的社区。根据要求保护的主题的另一方面,同步组件包括能使创建同步关系、创建同步容器、邀请用户、接受邀请、加入社区、移除用户、维护成员列表和/或该对等同步社区的总体管理更容易的用户同步管理器。此外,同步组件还包括手动同步和/或自动同步的至少一个。手动同步能够允许用户对用户的手动同步数据。此外,自动同步能够向推选给对等数据同步的数据提供自动同步。根据要求保护的主题的另一方面,同步组件能够包括作为本地系统运行以将至少一个操作暴露给应用程序的对等同步应用程序。该操作可以是如下的至少一种在指定容器处创建共享;创建对容器的许可;将许可添加至容器;确认容器的所有者;基于列表设置一组成员资格;以及删除在容器上创建的共享。此外,同步组件能够使同步组件(例如,尤其是对等同步应用程序)之间的集成更容易进入带其他应用程序的操作系统的集成组件。此外,同步组件可以包括能够在程序上执行同步的文件夹创建和/或管理的API组件。在要求保护的主题的其他方面,提供使与至少两个各不相同的数据存储系统相关联的数据更容易同步的方法。以下描述和附图详细阐明了要求保护的主题的某些说明性方面。然而,这些方面仅指示了可采用本发明的原理的各种方法中的几种,且要求保护的主题不旨在包括所有这些方面及其等效方面。当结合附图考虑以下本发明的详细描述时,要求保护的主题的其它优点和新颖特征将变得显而易见。图l示出了使与至少两个各不相同的数据存储系统相关联的数据更容易同步的示例性系统的框图。图2示出了使在数据存储系统内利用现有同步机制更为容易以确保数据存储系统之间的数据一致性的示例性系统的框图。图3示出了使数据存储系统内的数据更容易同步以允许多用户访问的示例性系统的框图。图4示出了使在至少两个各不相同的数据存储系统之间的数据同步更容易的示例性系统的框图。图5示出了使数据存储系统内的数据更容易同步以允许各种可访问级别的示例性系统的框图。图6示出了使与至少两个各不相同的数据存储系统相关联的数据更容易同步的示例性系统的框图。图7示出了有关要求保护的主题的屏幕快照。图8示出了有关要求保护的主题的两个屏幕快照。图9示出了有关向导应用程序实现的两个屏幕快照。图10示出了有关向导应用程序实现的两个屏幕快照。图11示出了有关向导应用程序实现的屏幕快照。图12示出了有关向导应用程序实现的屏幕快照。图13示出了有关要求保护的主题的屏幕快照。图14示出了有关要求保护的主题的两个屏幕快照。图15示出了有关要求保护的主题的屏幕快照。图16示出了有关要求保护的主题的屏幕快照。图17示出了用于对与至少两个各不相同的数据存储系统相关联的数据进行同步的示例性方法。图18示出了使利用数据存储系统内现有同步机制更容易以确保数据存储系统之间的数据一致性的示例性方法。图19示出了其中可采用要求保护的主题的新颖方面的示例性网络环境。图20示出了可根据要求保护的主题采用的示例性操作环境。附录A是与要求保护的主题相关联的伪代码的示例。详细说明如在此使用的,术语"组件"、"系统"、"接口"等指的是计算机相关的实体,它们可以是硬件、软件(例如,执行中的)和/或固件。例如,组件可以是运行在处理器上的进程、处理器、对象、可执行码、程序、和/或计算机。作为说明,运行在服务器上的应用程序和服务器都可以是组件。一个或多个组件可驻留在一个进程内,且组件可位于一台计算机上和/或分布在两台或更多计算机之间。要求保护的主题参考附图来描述,所有附图中使用相同的参考标号来指代相同的元素。在以下描述中,为解释起见,阐明了众多具体细节以提供对本发明的全面理解。然而,很明显,要求保护的主题可以在没有这些具体细节的情况下实施。在其它情况下,以框图形式示出了公知的结构和设备以便于描述本发明。现在转向附图,图l示出了使与至少两个各不相同数据存储系统相关联的数据更容易同步的系统100。数据存储系统102可以是至少基于数据库结构的复杂模型,其中定义了项、子项、属性和关系来允许将数据存储系统内的信息表示为复杂类型的实例。数据存储系统102可利用一组基本构件块来创建和管理丰富的、持久存储的对象以及对象之间的链接。项可被定义为数据存储系统102内的最小一致性单元,它可被独立地保护、串行化、同步、复制、备份/还原等。项是类型的实例,其中数据存储系统102中的所有项可被储存在单个全局的项范围中。数据存储系统102可以基于至少一个项和/或容器结构。此外,数据存储系统可以是展示出作为项埋藏在文件中的丰富元数据的存储平台。可以理解,数据存储系统102可以表示支持上述功能的基于数据库的文件存储系统,其中可实现任何适当的特性和/或属性。此外,数据存储系统102能够利用容器层次结构,其中容器是能够包含至少一个其他项的项。包含概念经由相关联类内的容器ID属性来实现。存储也可以是容器,使得存储可以是物理组织的且可管理的单元。另外,存储表示分层结构内的容器树的根容器。同步组件106能够创建一安全对等数据同步以允许多个用户在各种等级和/或级别处访问这些同步的数据。同步组件106对与该数据存储系统102和有所不同的数据存储系统104相关联的数据进行同步,其中可以建立安全对等同步社区。同步组件106能够保护包括同步社区成员列表(例如,用户访问权限和/或特权列表)在内的元数据,以使得具适当访问权的用户能够对其进行修改(例如,向社区添加用户和/或从中移除用户)并将变更和/或处理发送给其他用户。数据也可被保护,以使得具有适当访问权的用户能够对其进行修改并将变更发送给其他用户。安全机制能够调用下层认证和/或授权机制,诸如但不限于共享级安全、项级安全、操作系统认证和授权等。此外,同步组件106可以与数据能被同步基本类似的方式提供成员列表的同步。换句话说,同步组件106可以实现对复杂的同步关系的管理。例如,同步关系可以但不限于建立、拆散和安全管理。此外,同步组件106可以完全基于同步技术来实现对复杂的同步关系的管理。应该认识到并理解,可以实现任何合适的同步技术,例如与数据存储系统102和/或与其不同的数据存储系统104有关的同步技术。同步组件106能够利用副本(例如,属于社区内至少一个用户的同步的数据和/或文件夹)通过向该社区的管理员(例如,该社区中被授权对副本成员列表做出变更的成员)同步请求来宣告以下的至少一个l)在社区内的存在;以及2)离开该社区的意图。换句话说,管理员是该社区中被授权对副本成员列表做出变更的成员。此外,管理员能够处理这些请求并对成员资格元数据做出变更,并在随后将该元数据同步至社区内的其他用户。一旦接受这些成员资格变更,同步组件106就允许每个副本对其数据和元数据做出必要的访问变更。应该认识到,由同步组件106实现的对等同步社区的创建和管理能够允许多个副本和用户,其中分配给每个用户的角色能够在任何给定时刻及时地动态变更。换句话说,在同步组件106和/或对等同步社区的拓扑结构中不存在单个固定的正本。此外,同步组件106能够利用数据存储系统102的下层认证和授权技术和/或机制。此外,系统100还包括任何合适的和/或必要的接口组件108,它提供了将同步组件106集成到实际上任何操作和/或数据库系统中的各种适配器、连接器、通道、通信路径等。此外,接口组件108可以提供与同步组件106、数据存储系统102和与其不同的数据存储系统104相互交互的各种适配器、连接器、通道、通信路径等。图2示出了使利用数据存储系统内的现有同步机制更容易以确保数据存储系统之间的数据一致性的系统200。数据存储系统202可以是通过至少利用分层结构将数据实例表示为复杂类型的基于数据库的文件存储系统。可在数据存储系统202内定义项、子项、属性和关系,以允许将信息表示为复杂类型的实例。数据存储系统202可以是可描述数据的形状、声明隐含关于数据的某些语义一致性的约束、以及定义数据之间的语义关联的数据模型。数据存储系统202可利用一组基本构件块来创建和管理丰富的、持久存储的对象以及对象之间的链接。例如,构件块可包括"项(Item)"、"项扩展名(ItemExtension)"、"链接(Link)"和"项片段(ItemFragment)"。"项"可被定义为数据存储系统202内的最小一致性单元,它可被独立地保护、串行化、同步、复制、备份/还原等。项是类型的实例,其中数据存储系统202中的所有项可被储存在单个全局的项范围中。可以利用诸如但不限于"项扩展"的扩展实体来扩展项。实体扩展可以在具有相应属性(例如,名称、扩展的项类型、属性声明、...)的模式中定义。可以实现"项扩展"以将可被应用于扩展的项类型的一组属性分组在一起。"链接"是定义两个项实例之间的关联的实体类型,其中链接是定向的(例如,一个项是链接的源,而另一个是链接的目标)。"项片段"是允许在项类型和/或项扩展中声明大集合的实体类型,其中集合的元素可以是实体。可以明白和理解,数据存储系统202可表示提供了数据作为复杂类型实例的表示的任何适当的基于数据库的文件存储系统,且以上描述并不被看做是限制本发明。数据存储系统202可以基本类似于图1所描绘的数据存储系统102。数据存储系统能够包括跟踪组件204,该跟踪组件204提供针对存储在该数据存储系统202内各实体的,尤其是针对该数据存储系统202内一存储的数据变更的跟踪。该跟踪组件204能够捕捉针对各实体的数据变更以使得维护数据集合的两个各不相同系统之间的数据更容易同步。跟踪组件204能够利用提供基础构造的模式,该基础构造允许存储和/或容器提供与数据变更有关的粒度维护。例如,跟踪组件204能够跟踪数据变更,其中该数据变更可以包括在实体(例如,项、关系、扩展等)级的插入、更新和删除。跟踪组件204能够跟踪数据变更以使得在实体级,该变更跟踪可用于生成带优化并发性的通知和控制中的至少一个。应该认识到优化并发性假定另一进程在基本相似的时刻做出改变的可能性较低,因此它不采用锁,直到改变已准备好提交给数据存储系统(例如,存储)。通过采用这一技术,减少了锁定时间并提供了更好的数据库性能。跟踪组件204能够包括在数据存储系统202内实体级处跟踪数据变更的非同步组件(未示出)。应该认识到数据变更只是在实体级处部分基于不参与同步而被跟踪。在实体级处跟踪数据变更可被称为"变更信息"。非同步组件可以捕捉有关全部实体的基础变更信息。例如,基础变更信息可以是但不限于本地创建时间和本地修改时间。跟踪组件204还利用数据存储系统(DSS)同步组件(未示出),来提供对参与同步的实体的跟踪。该DSS同步组件具有更为专门的要求以在粒度更小的级别处跟踪数据变更,以及捕捉并维护与在多存储复制(例如,castle)场景中已变更的存储和/或容器有关的信息。同步组件208能够捕捉具有同步关系的实体的额外变更信息。例如,DSS同步组件能够在更细粒度上(例如,次级、次次级)的级别处捕捉变更信息以最小化要被同步的数据量并降低变更冲突情形的次数。在另一实例中,DSS同步组件能够捕捉有关哪个存储和/或容器创建和/或更新实体的信息。可10以认识到并理解,要求保护的主题能够应用于并不以(上述)跟踪组件204为基础的同步系统,并且能够实现包括利用至少一个变更的日志的系统(例如,基于日志的同步系统)在内的任何合适的同步系统。同步组件208能够提供关于数据存储系统202和与其不同的数据存储系统206的安全对等同步社区,其中能够提供各种访问级别和/或等级。同步组件208能够在数据存储系统202内利用现有的跟踪组件204以允许对存储在数据存储系统202、与其不同的存储系统206和/或任何合适机器内的数据进行同步。应该认识到,同步组件208通过利用与各个数据存储系统和/或机器相关联的下层和/或现有的同步机制来提供数据同步,其中这些数据存储系统和/或机器包括要被同步的未同步数据。应该认识到同步组件208能够与图1所示的同步组件106基本类似。图3示出了使数据存储系统内的数据更容易同步以允许多用户访问的系统300。数据存储系统302可以是基于数据库的文件存储系统,其中数据被表示为复杂类型实例。数据存储系统202可以包括未同步的数据308(在此被称为未同步数据308),其中这些数据可以与包括未同步数据310的完全不同的存储系统304相同步。同步组件306能够同步对等同步社区312内的这些数据。同步的社区312能够包括副本1至副本N,而N是大于或等于1的整数,其中副本是与有关该同步的社区312的至少一个用户相关联的同步的文件夹和/或数据。同步组件306能够创建对等同步的社区312,其中多个用户314(具有用户1至用户T,而T是大于或等于1的整数)能够基于与可访问性相关联的级别和/或等级来访问这些副本。应该认识到,多个用户314和可访问性的级别和/或等级能够至少部分基于成员资格列表。此外,应该认识到数据存储系统302和同步组件306可以与以上各附图中描述的组件和系统基本上类似。同步组件306还可以包括如下的至少一个1)对在与数据存储系统302相关的平台上建立的应用程序的开发经历的确认;2)返回至数据存储系统302和数据存储系统302同步内的进程反馈和改善的创建;3)用于该应用程序的自主机环境的创建;4)对处理诸如但不限于经因特网的传送和安全性(包括认证和加密)、以及同步的问题的端对端同步解决方案的实现;以及5)对有关数据存储系统302和数据存储系统302同步功能性之间集成的点以及操作系统其余部分的调查。例如,用户能够利用同步组件306保持多个个人计算机(PC)的同步,其中PC以基本上与数据存储系统302相类似的方式实现基于数据库的文件存储系统。各种容器能够和与其不同的计算机同步。更具体地,共享的照片容器能够和与其不同的用户经因特网同步。此外,共享文档的容器能够与家庭和工作中的多个机器同步。在另一实例中,照片应用程序能够被实现以提供共享照片的能力。利用与照片应用程序相关联的同步组件306,就能够确保照片应用程序和以基于数据库的文件存储系统同步为基础的照片共享间的无缝体验。在又一示例中,同步组件306能够在团体的场景和/或环境中实现。在团体的环境和/或场景中,例如可以经由LAN管理人或Kerbero来进行账户认证和模仿。这不同于经因特网的同步,因其引入了传送的要求。至少部分基于上述场景和/或实例,同步组件306能够提供下列的至少一个l)设置同步;2)管理同步数据;3)管理同步时间表;4)审査并解决同步冲突;5)审阅同步冲突;以及6)同步照片。图4示出了使在至少两个各不相同的数据存储系统之间更容易数据同步的系统400。同步组件406能够提供关于数据存储系统402和与其不同的数据存储系统404的安全对等同步社区,其中能够提供各种访问级别和/或等级。同步组件406能够在数据存储系统402和404内利用现有的跟踪组件(未示出)以允许对数据的同步。应该认识到,同步组件406通过利用与各个数据存储系统和/或机器相关联的下层和/或现有的同步机制来提供数据同步,其中这些数据存储系统和/或机器包括要被同步的未同步数据。此外,应该认识到数据存储系统402和404以及同步组件406可以与在前描述的各系统和/或组件基本上类似。同步组件406能够包括用户同步管理器组件408(在此被称为用户同步管理器408)。用户同步管理器408能够使创建同步关系、创建同步容器、邀请用户、接受邀请、加入社区、移除用户、维护成员资格列表、和/或对该对等同步社区的总体管理更为容易。用户同步管理器408能够提供用户在默认存储器中数据存储系统内容器上同步的能力。可以为此容器(例如,带有数据存储系统402的容器)创建同步关系。可以为由特定计算机上特定用户共享的特定同步的容器来创建该同步关系。应该认识到,创建该同步容器的用户知晓该容器被同步。如上所述,用户同步管理器408能够使同步关系的创建更为容易。邀请(例如,邀请用户加入一对等同步社区)可包含该邀请的管理员、计算机、IP地址和/或任何合适标识技术、以及该社区和范围的名称。角色、级别和/或等级可被映射至数据存储系统许可(例如,下文讨论)。这些许可可以在邀请发出之前设初始来回的情况下完全设置该副本。可以认识到该邀请还可以包括有关容器的初始数据。邀请可在带有例如.SyncInvitation(同步邀请)的扩展名的可扩展标示语言(XML)文件内创建。同步组件406可以为这些邀请而注册为处理程序,并且将接受邀请显示至同步对话框。这些邀请可以包括以下属性社区名、邀请用户、邀请计算机名、被邀请的用户、被邀请的用户角色等。该邀请例如可以是能够包括以下文本的电子邮件收件人行(例如,包括电子邮件地址)、主题行(例如,包括通知邀请的主题)、正文(例如,包含有关邀请、邀请用户、邀请计算机名、角色、社区名等详细人类可读消息)、附件(例如,能够双击以接受邀请)等。用户同步管理器408还能够创建同步的容器(未示出)。在操作系统文件资源管理应用程序中,用户能够在数据存储系统402内默认存储器中的容器上单击,并选择导向允许同步的可选项。通过选择该可选项,用户同步管理器408能够实现同步的容器向导创建,其中该向导能够指定以下的至少一个l)同步方式;以及2)冲突策略(所有这些将在以下讨论)。为了创建同步的容器,可由用户同步管理器408执行以下步骤。以下步骤作为示例示出并且要求保护的主题不限于此。l)如果该同步的容器是社区的第一成员,a.创建以该同步容器为根的数据社区。该社区同步所有同步容器上的数据。b.在同步容器的副本下创建以私人容器为根的安全社区。这一社区同步有关该数据社区的安全配置。这包括每个被接受用户的列表。还包括每个被接受用户的许可和地址。c.创建请求社区(例如,以下讨论)。2)在本地机器上为每个角色创建一安全组。各组被称为读取者、写入者和管理员(例如,以下讨论)。每组的名称都附有唯一的后缀,以便与另一同步容器的相应安全组区别开来。3)数据容器的许可是基于安全社区内的配置来设置的。具体地,授予读取者一般读取(GenericRead)许可,而授予写入者视窗"一般读取+—般写入"(Windows"GenericWrite+GenericRead")许可。因为同步由数据存储系统-数据存储系统同步直接完成,所以这就保护了数据而只允许合适的用户同步至该同步容器或从中同步。安全组的许可也可基于安全社区内的配置来设置。更具体地,可以分别授予管理员操作系统"一般读取+—般写入"许可,并授权读取者和写入者一般读取许可。以下的表格是可被创建的安全组以及提供给各文件夹和共享内每一个的访问的示例。可以理解,以下表格描述是一个示例,并且要求保护的主题不限于此。此外,以下表格中的散列是128字节的确定性散列,但是这一实现不限于此。注意列出的每个ACE具有container—inherit(容器继承)禾卩objectJnherit(对象继承)并且对等同步应用程序被称为PTPS。<table>tableseeoriginaldocumentpage14</column></row><table><table>tableseeoriginaldocumentpage15</column></row><table>同步的容器具有以下结构。注意该数据存储系统被称为DSS而对等同步应用程序则被称为PTPS。同步容器(与数据社区同步)+副本(未同步)+安全文件夹(与安全社区同步)+请求文件夹用户同步管理器408能够允许用户在容器一被创建时和/或在随后的任何时刻邀请同步该容器。用户同步管理器408能够指定联系人地址(例如,电子邮件地址、互联网协议(IP)地址等),其中邀请包含能被附加的邀请数据。应该认识到,用户同步管理器408不要求邀请的自动发送,因为它能够在用户指定的任何时刻被发送。邀请的收件人可由另一用户至少部分基于实现同步组件406的该用户来接受。在另一示例中,邀请能够作为文件被保存以供稍后使用。用户可以通过任何其他合适途径(例如,软盘、电子邮件、文本消息、短信服务(SMS)等)将邀请发送给其他用户。用户同步管理器408能够利用任何合适的邀请机制和/或技术。此外,用户同步管理器408能够提供各种邀请级别,其中用户能够以包括但不限于角色、级别和/或等级之一来被邀请加入对等同步社区l)管理员——读、写、添加、邀请、取消;2)写入者——读、写、修改、添加;3)读取者——读;以及4)提供者(contributor)-读、添力口。用户同步管理器408进一步提供邀请的接受。当邀请被接收并打开时,用户能够实现以下的至少一项1)指定和/或创建要进行同步的本地数据存储系统容器;2)指定该容器是被自动同步还是被手动同步;以及3)指定要实现的冲突策略。用户的显示名可以是安全系统在具体环境下采用的名称。例如,在团体环境中,显示名可以是登录用户的用户名。应该认识到在因特网的场景中,安全系统能够利用不同的名称(例如,电子邮件别名、IP地址、电子邮件地址等)。安全文件夹(以上讨论的)能够在安全社区中同步。用于该社区的策略和许可可以是在管理员间发生的双向同步,以及发生在从管理员到非管理员的单向同步。安全文件夹可以具有两个子文件夹,用于存储社区中的用户列表以及副本列表。安全文件夹(与安全社区同步)+(安全文件夹的)副本+用户文件夹+同步文j牛夹酉己置(SynchronizedFolderConfiguration)项安全文件夹还可以包含同步文件夹配置项,该项包含同步文件夹的名称和描述。用户文件夹可以包含社区中全部用户的列表,连同用于每个用户的对等体集合。以下是用户文件夹的一个示例并且要求保护的主题不限于此。+用户+用户1+对等体a+对等体b+用户2+对等体c+对等体d每个用户能够作为包含以下数据的串行化项(Serializedltem)而被保持:用户名(UserName)用户域(Domain)SID角色(读取者l写入者l管理员)每个用户的信息都可至少部分基于它是否被多个管理员修改而被作为单个项目存储,而最近写入者获胜(LastWriterWins)策略可用于解决该冲突。用户项的名字空间和显示名称被设置为用户的SID。每个用户都包含社区内所有对等体(例如,同步副本)的列表。每个对等体都被保存以包含以下数据用户的SID共享路径(无需共享名)同步类型(自动l手动)至少一个机器上的安全单元可以是用户。这样,将多个机器同步到同一同步容器的用户对该容器就能具有与所有这些机器相同的许可。在其用户下存储对等体的一个重要理由是存储在另一项之下(与文件夹相反)的项总是在与其父代相同的事务中被同步。这与实体归并冲突解决策略一并确保了用户和对等体不会彼此不一致。以下是请求文件夹结构的示例。每个非管理员对等体在请求容器下具有单个子文件夹,用来存储对用户和管理员的请求和来自其的请求,这如下所述。+请求文件夹+用于对等体所有者请求的请求子文件夹(与对等体所有者和管理员同步)+副本+至管理员(ToManager)+来自管理员(FromManager)此外,每个管理员对等体针对社区中每个对等体具有一个子文件夹(包括用于管理员本身的一个),如下所述。+请求文件夹+用于用户1请求的容器(与用户1和管理员同步)+副本+至管理员+来自管理员+用于用户2请求的容器(与用户2和管理员同步)+副本+至管理员+来自管理员+用于用户11请求的容器(与用户n和管理员同步)+副本+至管理员+来自管理员用于对等体的子文件夹容器的名称可以是由表示该对等体的唯一标识符所后缀的"请求"。请求容器可以在请求社区之中同步。用于该社区的许可允许在表示每个副本的本地容器和每个管理员副本上相应容器之间的双向同步。换句话说,对等体的用户和管理员可以对该对等体的容器具有完全访问权。用于该社区的策略能够引起以下的至少一个l)从每个管理员副本上对应请求子文件夹的相同文件夹到副本的来自管理员文件夹的单向同步;以及2)从副本到每个管理员副本上对应请求子文件夹的相同文件夹的至管理员文件夹的单向同步。至管理员文件夹存储通告副本(AdvertiseReplica)和请求移除(RequestRemoval)请求。至副本(ToReplica)文件夹存储完全移除(CompleteRemoval)请求。请求可以被创建、删除、并且可能未被修改。因此,请求社区内很少有冲突存在。请求可以在多个副本处被同时删除,而这能得到允许并且不是冲突。通告副本请求可以包含已加入该社区的副本的身份。这可被同步至该社区内的所有管理员。读取通告请求的管理员可以将该副本添加至存储在安全社区内的许可列表(例如,在需要时移除任何确定性的重复)并且删除该通告副本请求。这就完成了向社区添加副本。通告请求还可用于向该社区传递任何副本配置的变更。对其的一个示例是一副本的同步方式何时变更。请求移除请求可以包含正被移除的副本的身份。这一请求可以响应于用户初始的副本移除而由该副本创建。当管理员检测到请求移除请求己经同步入其同步副本之一的请求容器(例如,除了其自身副本的请求容器之外),它就删除该请求移除请求并将完全移除请求写入同一请求容器。完全移除请求不含数据,但是能够指示该副本应该删除其共享和基于角色的安全组,及其同步元数据(同步容器下的副本)。这一请求可由管理员创建。这可以是响应于请求移除请求,或者响应于管理员发起的对用户或副本的移除。当副本将完全移除请求同步入其请求容器时,它就删除其共享和管理的安全组。完全移除消息可以在固定期限(例如,7天)过后被删除。如果该消息在副本接收它之前就被删除,则该副本仍然具有该同步元数据并且能够仍然尝试与该社区的同步。这一同步会在该社区内的同一用户没有其他副本的情况下失败。否则,它会成功。有关该副本的元数据可经手动步骤移除。如果拥有该副本的用户在该社区内不拥有任何其他副本,则还从用户列表中移除该用户。这引起对所有同步副本上触发的适当安全变更。具有未决移除请求的用户和管理员能够在他们已从中发出移除请求的机器的UI中具有词"未决移除"——其他机器上的UI不会反映这个(例如,仅在最终移除出现时反映最终移除)。使用的社区名id例如可以是以下的至少一项用于数据社区的数据、用于安全社区的安全、以及有关用户的至管理员和来自管理员社区的用户名。用于所有同步的本地和远程终点可以是适当同步文件夹所在的位置。在该文件夹内,所有的社区名都是唯一的。在另一示例中,用户同步管理器408通过首先将用户添加至对等同步社区而能够将副本添加给社区。例如,用户能够主动参加对等同步社区,其中各个文件和/或容器可被同步。用户随后能够利用来自计算机的对等同步应用程序(以下讨论)并指定要参加的共享来将该计算机添加至社区。此外,用户同步管理器408可以允许移除用户、副本和/或管理员。应该认识到由管理员进行的用户和/或副本移除与用户和/或副本所有者进行移除有所不同。管理员可以移除其本身之外的用户或副本(例如,它也能够如下所示移除其自己的副本)。用户同步管理器408还可以提供由其本身所有者用户或管理员进行的副本的移除。用户能够每次从社区中移除一个副本。由这一副本,用户能够调用移除。如果社区内最后一个管理员副本试图移除其本身,但是社区内还存在有其他副本,则该操作失败。这就能够避免在社区内创建没有机会移除它们的副本的孤立用户。在一个示例中,最后一个管理员(例如,他同时也是该社区内最后一个用户)能够删除该同步文件夹、数据和/或元数据。以下的描述涉及由与用户或副本所有者不同的管理员所进行的对该用户或副本的移除。为了移除独立的副本,完全移除请求可被写入每个副本(例如,只要它变为可用)的请求容器。为了移除有关一指定用户的所有副本,完全移除请求可被写入每个副本(例如,只要它变为可用)的请求容器。如果没有关于该指定用户的副本剩余,则通过变更安全数据并触发同步事件就能够立刻取消该用户的所有特权。这仍然允许该副本接收和发送数据,直到能够处理该完全移除请求。然而,没有其他副本能够尝试向该移除的副本发送数据或从中接收数据。以下的描述涉及副本所有者进行的副本移除。用户每次仅能够从社区中移除一个副本。由该副本,用户能够调用移除。这使得请求移除请求被写入该副本的请求容器。如果社区内的最后管理员副本试图移除其本身,但是社区内还存在有其他副本,则该操作失败。这就避免在社区内创建没有机会移除它们的副本的孤立物。否则,最后一个管理员(例如,也是社区内最后一个用户)就删除所有同步的文件夹元数据。只有管理员能够对将被正确同步的安全容器做出变更。安全设置不允许由正被其他用户同步的非管理员做出的任何安全变更。一旦变更被做出或接收,在管理员机器上运行的应用程序就察觉到该变更并且适当地修改数据容器及其内容上的安全性。因为这些许可只能用系统管理员特权修改,所以该应用程序使用对等同步应用程序服务(以下讨论)来完成上述动作。需要操作系统共享访问以访问数据存储系统数据。在一个示例中,只有系统管理员才能创建共享。此外,在另一示例中,只有系统管理员才能创建安全组。因此,该应用程序使用对等同步应用程序服务(例如,对等同步应用程序)(以下讨论)来完成上述动作。同步组件406能够实现一拓扑结构,以使得每个副本和管理员之间存在直接连接,藉此管理员能够做出安全变更并且这些就不会被非管理员接收。此外,每个副本能够有规律地联系管理员以接收最新的安全变更。如果副本在一定的时间段内无法联系管理人(例如,至少部分基于心跳超时期间),它就能够进入一种不能接受任何进一步数据变更的状态,直到它能够接收来自管理员的安全配置。此外,用户界面(未示出)能够指示哪些用户已经成功地同步。如果副本无法被联系,则它用其带有覆盖图的图标能够指示这一事实。用户界面还可以允许用户视觉化他们拥有的任何同步容器。此外,在数据存储系统资源管理器应用程序中,覆盖标能够将容器标识为同步的容器。同步组件406能够包括手动同步组件410(在此被称为手动同步410),用以提供对数据、文件和/或容器的手动同步。手动同步针对除非被显式调用否则不希望他们的数据被同步(从中读取或向其写入中的任一)的用户。成员资格列表包括用于每个副本的同步方式。其他副本将不尝试与手动同步的副本进行同步。手动同步由用户初始。这触发一同步事件(如下讨论)。同步组件406能够包括自动同步组件412(在此被称为自动同步412),用以提供对推选至对等同步社区的文件和/或容器的自动同步。自动同步能够利用针对数据和安全社区的每一个的全网型(Ml-mesh)同步。每个副本能够与被许可同步的其他副本同步。对数据容器的本地变更可由本地机器上的应用程序通过数f存储系统监视程序(未示出)来检测。该监视程序可被编程以避免被数据存储系统同步变更触发。同步事件在监视程序激发时被触发。图5示出了使对数据存储系统内的数据更容易同步以允许各种可访问级别的系统500。同步组件506能够提供关于数据存储系统502和与其不同的数据存储系统504的安全对等同步社区,其中能够提供各种访问级别和/或等级。同步组件506能够在数据存储系统502和504内利用现有的跟踪组件(未示出)以允许对数据的同步。应该认识到,同步组件506通过利用与各个数据存储系统和/或机器相关联的下层和/或现有的同步机制来提供数据同步,其中这些数据存储系统和/或机器包括要被同步的未同步数据。此外,应该认识到数据存储系统502和504以及同步组件506可以与在前描述的各系统和/或组件基本上类似。同步组件506还能够利用作为本地系统运行的对等同步应用程序508来将至少一个操作暴露给在该系统上执行的应用程序。这些操作能够由同一机器上的各进程访问(例如,用以避免遭受其他计算机的攻击)。例如,对等同步应用程序508可以与其余的同步组件506—起由系统管理员安装。应该认识到对等同步应用程序508能够运行与每个数据存储系统和/或计算机相关联的实例。这样,对等同步应用程序508就是与数据存储系统502相关联的一个实例,而对等同步应用程序516就是与数据存储系统504相关联的一个实例。此外,应该认识到出于简明只描绘了对等同步应用程序508,而对等同步应用程序516也可以包括这些方面。对等同步应用程序508可以实现字符串创建共享(CreateShare)(容器)。这一操作在指定的容器处(可以在数据存储系统内部)创建一共享,还创建适当的许可并且将有关这些组的许可添加给该容器和该共享。该操作将完整的UNC路径返回给创建的共享。该操作检查该用户是否是该容器的所有者,并且在不是的情况下失败。这样,由该API提供的安全仅允许该容器的所有者共享该容器。这就削弱了由OS提供的安全性,因为OS不允许容器所有者创建一共享,除非该所有者恰好是系统管理员。然而这是可接受的,因为共享级安全不只是对不具有文件夹级安全性的操作系统的在前版本的继续。对等同步应用程序508可以实现设置许可(SetPermissions)(容器)。该操作确认该调用用户是否是该容器的所有者,并且在不是的情况下失败。该操作基于存储在安全容器内许可列表中的许可来设置适当的组成员资格。为了安全,调用者不显式地陈述各组或ACL;这些可以从容器和许可列表中推出。对等同步应用程序508可以实现移除共享(RemoveShare)(容器)。该操作确认该调用用户是否是该容器的所有者,并且在不是的情况下失败。该操作删除在容器上创建的共享并且还删除与该共享相关联的安全组。对等同步应用程序508可被设计为能在系统托盘内实况运行的应用程序。对等同步应用程序508可以是对调度同步负责并提供进展通知和诸如冲突的其他数据的应用程序。此外,对等同步应用程序508还可被注册为用于邀请请求的处理程序。上下文菜单包含以下菜单项l)可选项;以及2)退出。对等同步应用程序508可以创建对有关容器(例如,监视程序)内数据变更的通知的预定,其中该监视程序可以是以下的至少一项l)同步文件夹和用户的创建。单个存储范围的监视程序寻找NonSynchronizedltems(非同步项)的创建、修改和删除。处理程序寻找名为"同步文件夹创建标记(SynchronizedFolderCreationMarker),'的项。这指示同步文件夹已被创建;2)每个同步文件夹具有监控该同步文件夹的数据变更的监视程序;以及3)每个同步文件夹具有在数据副本上用以监控同步文件夹的应用程序元数据变更的监视程序。回想对等同步应用程序元数据被存储在数据副本下的情形。例如,如果在同一计算机上存在两个同步文件夹,监视程序的总数就是1+2+2=5个监视程序。对等同步应用程序508还进一步利用以下线程的至少一个l)UI线程。这服务系统托盘图标、上下文菜单等。该线程不存在异常处理程序;2)活动日志线程。这显示为活动日志UI。该线程不存在异常处理程序;3)线程池。这当前只是一个线程。所有的回叫最终在该线程上顺序执行。用于该线程的异常处理程序重新初始该同步控制器。这通常在诸如用户手动删除同步文件夹的情况下执行;以及4)监视程序线程——这些不是由该应用程序直接创建的。每个监视程序能够创建一个线程。对等同步应用程序508可以实现调度算法。当同步文件夹被创建时,创建监视程序激发。该处理程序可以实现如下的至少一项l)在启动延迟之后调度数据同步;2)在数据副本上创建监视程序以监视对请求和安全子文件夹的变更;以及3)在启动延迟之后调度对安全文件夹的同步。当安全或请求子文件夹出现变更时,数据副本上的监视程序激发。该处理程序可以实现如下的至少一项l)对于请求子文件夹内的每个引入请求a)处理各请求(以下讨论);b)对于本地变更,调度请求子文件夹的同步;2)更新各副本上的安全许可;以及3)对于本地变更,调度安全子文件夹的同步。当数据子文件夹出现变更时,容器上的监视程序激发。如果变更是本地变更,处理程序就调度数据社区的同步。在数据社区被同步之后,就为该数据社区调度基于时间的同步。在安全社区被同步之后,就为该安全社区调度基于时间的同步。在请求子文件夹被同步之后,就为该请求子文件夹调度基于时间的同步。此外,同步组件506能够包括使同步组件506(例如,尤其是对等同步应用程序508)之间的集成更容易进入带其他应用程序的操作系统的集成组件。该应用程序被设计通过诸如操作系统文件资源管理器的现有应用程序暴露其用户接口。在操作系统文件资源管理器内的本地数据存储系统容器能够具有各种菜单项。如果该容器不是同步文件夹,则可以添加两个菜单项,诸如但不限于以下1)"同步..."这调出了例如允许同步文件夹被创建的同步对话框;以及2)"加入同步文件夹..."这调出了加入同步文件夹对话框。如果该容器是同步文件夹,贝IJ"同步..."菜单项也可以代替"允许同步…"菜单项出现。如果容器上存在任何被记入日志的冲突,则可以出现"解决冲突..."菜单项,该项打开分开的资源管理器窗口以显示添加了名字空间扩展名的冲突虚拟容器。简单地转向图7,示出了用于提供创建新的同步文件夹(例如,同步文件夹对话框)的屏幕快照700。这一对话框用于创建新的同步文件夹或者用于管理现有的同步文件夹,并用于停止文件夹的同步。同步对话框包含属性页和常规选项卡,以及用于诸如数据存储系统附加项和操作系统共享和Web文件夹附加项的每个附加项的选项卡。邀请按钮位于页的底部,并且在为同步建立同步文件夹时活动。在一个示例中,可以在不是同步文件夹的文件夹上调用该对话框。在这一示例中,可以实现以下的至少一项1)"允许用户同步该文件夹"复选框被选中;2)"不允许用户同步该文件夹"复选框被禁用;3)同步文件夹名称编辑框是读/写;4)描述编辑框是读/写;5)设置、确定、取消和应用按钮可用;6)在同步类型和冲突解决组内的控件被禁用;以及7)在用户组框(在该选项卡内)内的所有控件可被禁用。用户可以键入名称和描述,并且能够指定对该文件夹的设置。此处必须点击应用以创建该同步文件夹。在另一示例中,可以实现对现有同步文件夹的管理。例如,如果在作为现有同步文件夹的文件夹上调用该对话框,则执行以下的至少一项l)"允许用户同步该文件夹"复选框被选中;2)"不允许用户同步该文件夹"复选框被禁用;3)同步文件夹名称编辑框为只读。这是因为该名称是社区范围内的标识符;4)描述编辑框是读/写;5)设置、确定、取消和应用按钮可用;6)在同步类型和冲突解决组内的控件被启用;以及7)在用户组框(在该选项卡内)内的所有控件可被启用。为了删除同步文件夹,用户可以选中"不允许用户同步该文件夹"复选框。这时,除了确定和"允许用户同步该文件夹"之外的所有其他控件被禁用。当点击确定时,确认对话框出现,并且该同步文件夹被移除。该数据存储系统容器以及所有数据仍然保持完整。只有同步副本和其他同步文件夹元数据可被移除。集成组件510可以进一步提供与加入同步文件有关的对话框。简单地转向图8,示出了根据要求保护的主题来提供加入同步文件夹的屏幕快照800。屏幕快照800以下输入同步文件夹名称,其中如果该对话框无差错地处理该加入请求,则会显示屏幕快照810。屏幕快照810通知该特定文件夹被同步以及与其相关联的任何角色。在一个示例中,如果用户选择"管理",则当前打开的对话框可被关闭并且会出现同步对话框。此外,集成组件510能够实现向导应用程序以使利用同步组件506来提供安全对等同步社区更为容易。简单地转向图9,显示了在其中向导应用程序能够允许对不同用户的邀请以及对特定数据、文件夹和/或容器的同步的屏幕快照900。屏幕快照910允许用户选择邀请技术来实现该特定同步。如果用户通过电子邮件邀请,则可以创建带有文本和带邀请附件的电子邮件的电子邮件邀请。简单地转向IO,屏幕快照1000示出了电子邮件邀请发送确认。此外,屏幕快照1010示出了由集成组件510实现的邀请同步用户向导应用程序的完成。简单地转向图ll,屏幕快照1100示出了在用户选择将该邀请保存为文件时可被显示的向导应用程序屏幕。应该认识到,可以从与操作系统相关联的任何合适类型中选择文件名、位置和/或扩展名。参见图12,屏幕快照1200示出了在邀请同步用户向导应用程序内将该邀请保存到某一位置的用户完成的验证。图13是允许用户接受该邀请的屏幕快照1300(例如,接受邀请对话框)。用户可以在邀请上点击(例如,来自电子邮件、来自附件等),其中用户能够选择要与该同步文件夹进行同步的文件夹。如屏幕快照1300中描绘的,用户可以选择任何合适的文件夹来与已被同步的特定文件夹进行同步。转向图14,示出了实现数据存储系统附加项的屏幕快照1400,其中可以把数据存储系统同步功能性分解为附加项。屏幕快照1400描绘了用户名、计算机名和各种许可级别(例如,等级、访问等)。行进至图14,屏幕快照1410示出了在未找出被请求用户时显示给用户的"无法找到用户"的屏幕。为了添加一用户,该用户可以在读作"点击此处以添加用户"的文本上单击。用户随后可以键入被邀请用户的名称。用户名能够以任何合适的方式输入。例如,用户名可以按以下的至少一项来输入1)域\别名(例如,Redmond\billg);2)别名(例如,billg,其中在该别名不是唯一解析的情况下会实现弹出的错误);以及3)名称(例如,BillGrable)。用户可以敲击Esc键来取消该操作。当按下回车键时,用户名可被解析。在屏幕快照1410中,如果点击找人,该"无法找出用户"对话框可被关闭并且会显示用户检出器。一旦用户名被解析就无法编辑用户名。用户可以被完全删除(例如,确认对话框出现)。可以为用户添加默认的"读取者"许可级。当管理员右击该用户行时,可以显示带选项(例如,读取者、写入者、管理人、移除等)的上下文菜单。可以选择用户的当前角色。当用户右击另一用户或副本行时,不显示菜单。当用户点击当前副本行时,显示仅包含移除菜单项的菜单。应该认识到可以存在与给定用户相对应的多个副本(例如,用户/计算机对)。也可以存在与给定用户/计算机对相对应的多个副本。这对应于多个征募。邀请可以是从一端点到一用户。对于通过中间同步,具有以下选项的至少一项是有意义的l)创建对与STI端点以及所有数据存储系统端点同步的邀请。这在收件人连接至所有端点的情况下是合理的。在此情况下,STI端点只有收件人数据变更就立即被更新;以及2)创建仅与该STI端点同步的邀请。在此情况下,其他收件人是未知的。当邀请被接受时,照例创建同步文件夹。也创建通告副本消息。连接握手进行。同步组件506还可以包括暴露与同步组件506相关联的至少一个操作的应用编程接口(API)组件512。API组件512可以在程序上执行同步文件夹创建和/或管理。例如,API组件512可以实现namespace.OS.storage.synchronization.selfhost(名字空间.OS.存储.同步.自主机)。API组件512可以利用各种伪代码,其中附录A是向要求保护的主题提供可编程性的这类伪代码的示例。图6示出了利用智能使与至少两个各不相同数据存储系统相关联的数据更容易同步的系统600。系统600可以包括数据存储系统602、与其不同的数据存储系统604、可与在前附图中描述的各组件和系统都类似的同步组件606。系统600还包括智能组件608。智能组件608可由同步组件606用来使与至少两个各不相同的数据存储系统相关联的数据更容易同步。可以理解,智能组件608能够从一组通过事件和/或数据捕捉的观察中推出或推断系统、环境和/或用户的状态。例如,推断可用于标识特定的上下文或动作,或可生成状态的概率分布。推断可以是概率性的——即,基于数据和事件的考虑计算感兴趣的状态的概率分布。推断也可以指用于从一组事件和/或数据组成更高级事件的技术。这类推断导致从一组观察的事件和/或储存的事件数据构造新的事件或动作,无论事件是否在相邻的时间上相关,也无论事件和数据是来自一个还是若干个事件和数据源。可采用各种分类(显式和/或隐式训练的)方案和/或系统(例如,支持矢量机、神经网络、专家系统、贝叶斯信任网络、模糊逻辑、数据融合引擎...)来执行关于要求保护的主题的自动化和/或推断的动作。分类器是将输入属性矢量x=(xl,x2,x3,x4,^)映射到该输入属于一个类的置信度的函数,gP/^=co"jWe"ce(c/a^)。这一分类可采用基于概率和/或基于统计的分析(例如,分解成分析效用和成本)来预测或推断用户期望自动执行的动作。支持矢量机(SVM)是可采用的分类器的一个示例。SVM通过找出可能输入空间中的超曲面来操作,其中,超曲面试图将触发准则从非触发事件中分离出来。直观上,这使得分类对于接近但不等同于训练数据的测试数据正确。可采用其它定向和非定向模型分类方法,包括,例如,单纯贝叶斯、贝叶斯网络、决策树、神经网络、模糊逻辑模型以及提供不同独立性模式的概率分类模型。此处所使用的分类也包括用于开发优先级模型的统计回归。图17-18示出了根据要求保护的主题的方法。为解释简明起见,方法被描绘和描述为一系列动作。可以理解和明白,本发明不受所示的动作和/或动作次序的限制,例如,动作可按各种次序和/或并发地发生,并且可以与此处未呈现和描述的其它动作一起发生。此外,并非所有示出的动作都是实现根据要求保护的主题的方法所必需的。另外,本领域的技术人员可以理解和明白,方法可经由状态图或事件替代地被表示为一系列相关状态。图17示出了用于对与至少两个各不相同的数据存储系统相关联的数据进行同步的方法1700。在编号1702,数据存储系统内的数据可被标识为待同步和/或参加同步关系。数据存储系统可以是至少基于数据库结构的复杂模型,其中定义了项、子项、属性和关系来允许将数据存储系统内的信息表示为复杂类型的实例。数据存储系统102可利用一组基本构件块来创建和管理丰富的、持久存储的对象以及对象之间的链接。项可被定义为数据存储系统内的最小一致性单元,它可被独立地保护、串行化、同步、复制、备份/还原等。项是类型的实例,其中数据存储系统中的所有项可被储存在单个全局的项范围中。数据存储系统可以基于至少一个项和/或容器结构。可以理解,数据存储系统可以表示支持上述功能的基于数据库的文件存储系统,其中可实现任何适当的特性和/或属性。应该认识到该数据例如可由期望同步数据的特定部分的用户所标识。在编号1704,至少一个用户被邀请参加与该标识数据相关联的同步关系。例如,用户可以标识数据的一部分,其中同步关系可通过邀请膝上型计算机参与来例示。这样,用户能够利用任何合适技术来邀请,诸如但不限于利用电子邮件、IP地址、用户名、别名、姓名等。在编号1706,可以向同步关系内的各用户分配可访问性的等级和/或级别。例如,管理员可以创建同步关系,其中可以将各个读取、写入和/或添加功能分配给用户。图18示出了使利用数据存储系统内现有同步机制更容易以确保数据存储系统之间的数据一致性的方法1800。在编号1802,数据存储系统内的数据可被标识以待同步和/或参加安全对等同步社区。在编号1804,可以从数据存储系统中利用现有的同步技术来向对等社区和/或同步关系提供数据同步。例如,数据存储系统内的跟踪能够捕捉针对各实体的数据变更以使得维护数据集的两个各不相同系统之间的数据同步更为容易。在编号1806,可以有参与其中的至少一个用户来创建对等同步社区。同步社区可以包括副本(例如,属于社区内用户的同步文件夹)和管理员(例如,被授权对副本成员资格列表做出变更的社区成员)。在一个实施例中,管理员能够处理请求并对成员资格元数据做出变更,并在随后将该元数据同步至社区内的其他用户。在编号1808,社区内的每个用户都能够用这一同步对等社区内访问该数据的特定级别和/或等级来进行参与。为了提供用于实现要求保护的主题的各方面的附加上下文,图19-20及以下讨论旨在提供对其中可实现本发明的各方面的合适的计算环境的简要概括描述。尽管前面已经在运行在本地计算机和/或远程计算机上的计算机程序的计算机可执行指令的一般上下文中描述了要求保护的主题,然而本领域内的技术人员将认识到,本发明也可以和与其他程序模块结合实现。一般而言,程序模块包括例程、程序、组件、数据结构等,它们执行特定任务和/或实现特定抽象数据类型。此外,本领域的技术人员可以理解,本发明的方法可用其它计算机系统配置来实施,包括单处理器或多处理器计算机系统、小型机、大型计算机、以及个人计算机、手持式计算设备、基于微处理器的和/或可编程消费电子产品等,其每一个都可操作上与一个或多个相关联的设备通信。所示的要求保护的主题的各方面也可在分布式计算环境中实施,其中某些任务由通过通信网络链接的远程处理设备来执行。然而,本发明的一些方面,如果不是全部方面,可以在独立计算机上实施。在分布式计算环境中,程序模块可以位于本地和/或远程存储器存储设备中。图19是要求保护的主题可以与之交互的示例性计算环境1900的示意性框图。系统1卯0包括一个或多个客户端1910。(诸)客户端1910可以是硬件和/或软件(例如,线程、进程、计算设备)。系统1900也包括一个或多个服务器1920。(诸)服务器1920可以是硬件和/或软件(例如,线程、进程、计算设备)。服务器1920可以容纳各线程以通过例如利用本发明执行转换。在客户端1910和服务器1920之间的一种可能的通信能够以适合在两个或多个计算机进程之间传输的数据分组的形式进行。系统1900包括可以用来使(诸)客户端1910和(诸)服务器1920之间通信更容易的通信框架1940。(诸)客户端1910工作时被连接到一个或多个可以用来存储(诸)客户端1910的本地信息的客户端数据存储1950。同样地,(诸)服务器1920工作时被连接到一个或多个可以用来存储(诸)服务器1930的本地信息的服务器数据存储1920。参考图20,用来实施要求保护的主题各个方面的示例性环境2000包括计算机2012。计算机2012包括处理器单元2014,系统存储器2016,以及系统总线2018。系统总线2018把包括但不限于系统存储器2016的系统部件连接到处理单元2014。处理单元2014可以是各种可用处理器中的任意一种。双微处理器和其它多处理器结构也可用作处理单元2014。系统总线2018可以是几种类型的总线结构中的任意一种,包括存储器总线或存储器控制器,外围总线或外部总线,和/或利用可用总线结构中的任意一种的本地总线,其包括但不限于,工业标准结构(ISA)、微通道结构(MSA)、扩展工业标准结构(EISA)、智能化驱动器电子接口(IDE)、VESA本地总线(VLB)、外围部件互连(PCI)、插件总线、通用串行总线(USB)、高级图形端口(AGP)、个人计算机内存卡国际联合会总线(PCMCIA)、火线(IEEE1394)、以及小型计算机系统接口(SCSI)。系统存储器2016包括易失性存储器2020以及非易失性存储器2022。基本输入/输出系统(BIOS)包含诸如在启动期间在计算机2012的元件之间传送信息的基本例程,其存储在非易失性存储器2022中。作为例子而不是限制,非易失性存储器2022可以包括只读存储器(ROM),可编程ROM(PROM),电可编程ROM(EPROM),电可擦除ROM(EEPROM),或者闪存。易失性存储器2020包括用作外部高速缓存的随机存取存储器(RAM)。作为例子而不是限制,RAM可以是很多形式,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍速率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链接DRAM(SLDRAM)、存储器总线直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)。计算机2012还包括可移动/不可移动,易失性/非易失性计算机存储介质。例如,图20示出了磁盘存储器2024。盘存储器2024包括但不限于诸如磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、LS-100驱动器、闪存卡、或者存储棒之类的设备。此外,盘存储器2024可以包括独立的或者与其它存储介质结合的存储介质,包括但不限于诸如加密盘ROM驱动器(CD-ROM)、可记录CD驱动器(CD-R驱动器)、可重写CD驱动器(CD-RW驱动器)或者数字视频盘ROM驱动器(DVD-ROM)这样的光盘驱动器。为了便于把盘存储装置2024连接到系统总线2018,通常把可移动或不可移动的接口用作诸如接口2026。应该明白,图20描述了在合适的操作环境2000中描述的基础计算机资源和用户之间起到中间人作用的软件。这些软件包括操作系统2028。存储在磁盘存储器2028上的操作系统2024,在运行时控制并分配计算机系统2012的资源。系统应用程序2030通过存储在系统内存2016或磁盘存储器2024中的程序模块2032和程序数据2034,利用操作系统2028对资源进行管理。应该明白,要求保护的主题可以用各种操作系统或操作系统的组合来实施。用户通过输入装置2036把命令或信息输入到计算机2012中。输入装置2036包括但不限于诸如光标、轨迹球、指示笔、触摸板、键盘、麦克风、操纵杆、游戏手柄、卫星反射器、扫描仪、TV调谐卡、数码相机、数字摄像机、网页照相机等等。这些以及其它输入装置通过系统总线2018经由接口端口2038连至处理单元2014。接口端口2038包括,例如串行端口、并行端口、游戏端口、以及通用串行总线(USB)。输出装置2040利用某种和输入装置2036相同类型的端口。因此,例如,USB端口可以用来向计算机2012提供输入,以及把来自计算机2012的信息输出到输出装置2040。输出适配器2042是用来举例说明除了输出装置2040之外还有些象监视器、扬声器、以及打印机这样的输出装置2040需要专用适配器。输出适配器2042包括,作为例子而不是限制,视频和声频卡,其在输出装置2040和系统总线2018之间提供了连接装置。应该注意到,其它装置和/或装置系统提供了诸如远程计算机2044这样的输入和输出能力。计算机2012可以利用到诸如远程计算机2044这样的一个或多个远程计算机的逻辑连接在联网的环境中操作。远程计算机2044可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的电器,对等装置或者其它普通网络节点等,通常包括所描述的有关于计算机2012中的很多或者全部元件。为了简明,只举例说明了远程计算机2046的存储器存储设备2044。远程计算机2044经由网络接口2048被逻辑地连接到计算机2012然后经由通信连接2050被物理连接。网络接口2048包括诸如局域网(LAN)和广域网(WAN)这样的有线和/或无线通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜线分布式数据接口(CDDI)、以太网、令牌环等。WAN技术包括但不限于,点对点链接,象综合业务数字网(ISDN)和其各种变形这样的线路交换网,分组交换网,以及数字用户专线(DSL)。通信连接2050指的是把网络接口2048连接到总线2018的硬件/软件。虽然为了清楚地举例说明,通信连接2050显示在计算机2012的内部,但其也可以在计算机2012的外部。连接到网络接口2048所需要的硬件/软件包括,仅为了举例说明,内部和外部技术,诸如调制解调器包括常规电话级别的调制解调器、电缆调制解调器以及DSL调制解调器、ISDN适配器、以太网卡。在上面所描述的包括本发明的例子。当然,出于描绘所要求保护的主题的目的而描述每一个可以想到的组件或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,本发明的许多进一步的组合和排列都是可能的。因此,所要求保护的主题被规定为包括所有这些属于所附权利要求书的精神和范围内的改变、修改和变动。特别地,对于由上述组件、设备、电路、系统等执行的各种功能,除非另外指明,否则用于描述这些组件的术语(包括对"装置"的引用)旨在对应于执行所描述的执行此处所示的本发明的示例性方面中的功能的组件的指定功能(例如,功能上等效)的任何组件,即使这些组件在结构上不等效于所公开的结构。在这一点上,也可认识到新颖性包括用于执行要求保护的主题的各种方法的动作和/或事件的系统以及具有用于执行这些动作和/或事件的计算机可执行指令的计算机可读介质。另外,尽管可相对于若干实现中的仅一个公开本发明的一个特定特征,但是这一特征可以如对任何给定或特定应用所需且有利地与其它实现的一个或多个其它特征相组合。此外,就在说明书或权利要求书中使用术语"包括"和"含有"及其变型而言,这些术语旨在以类似于术语"包含"相似的方式为包含性的。附录AnamespaceOS.Storage.Synchronization.SelfHost〃/<summary>〃/这表示对应于SynchronizedFolder(共享文件夹)的数据存储系统文件///共享〃/〈/summary〉publicclassSharepublicstringPath(get;}publicstringName{get;}〃/<summary>///对等体的同步方式。〃/</summary〉enumSynchronizationModeAutomatic,Manual〃/<summary>///该SyncController(同步控制器)被设计为监控用于同步文件夹的本地〃/默认存储器长期运行对象。它通过执行合适的同步操作来响应该同步文件夹内/〃的变更。要还同步诸如成员资格列表和针对社区内所有对等体的许可的元〃/数据。〃/〃/这是由调用会将一句柄返回给创建的SyncController实例的静态方法///Start(开始)初始的单元素。为了停止,在此实例上调用方法St叩()。/〃作为替代,该使用模式可用于自动停止该控制器〃/using(SyncController.Start())///{〃/…///}〃/</summary>publicclassSyncController:DisposableObjectpublicstaticvoidStart();publicvoidStop();〃/<summary>〃/这表示本地的SynchronizedFolder(同步文件夹)。〃/</summary>publicclassSynchronizedFolder〃/<summary>///数据存储系统文件共享〃/</summary>〃/<value〉</value>publicShareShare{get;}publicstringName{get;}publicstringDescription{get;}publicItemContainer(get;}〃/<summary>///返回与该同步文件夹同步的所有用户。〃/</summary〉〃/<value></value〉publicUsersUsers{get;}〃/<summary>///在指定容器处创建新的同步文件夹〃/</summary>〃/<paramname="container"></param>〃/々eturns〉所创建的同步文件夹。</returns>publicstaticSynchronizedFolderCreate(Itemcontainer,stringsynchronizedFolderName,outstringerrorMessage);〃/<summary〉///打开现有的同步文件夹。〃/</summary>〃/<paramname="container"></param>publicstaticSynchronizedFolderOpen(Itemcontainer);〃/<summary>〃/加入现有社区。〃/</summary>〃/〈paramnamey'container"〉要共享的容器〈/param〉〃/<paramname二"synchronizedFolderName"〉社区的名称〈/param〉〃/<paramname="peer"></param>〃/<retums></returns>publicstaticSynchronizedFolderJoin(Itemcontainer,stringsynchronizedFolderName,Peerpeer)〃/〈summary〉///这移除了有关一用户的所有文件夹。///如果这将移除最后一个管理员文件夹并且仅留下非管理员文件夹,///这会引起异常。〃/〈/summary〉〃/<paramname="user"></param〉publicvoidRemove(Useruser);〃/〈summary〉///这移除一对等体的文件夹。如果这不是当前对等体,则当前用户///必须是所有者或管理员。///如果这将移除最后一个管理员文件夹并且仅留下非管理员文件夹,///这会引起异常。〃/</summary>〃/〈paramname="peer"></param>publicvoidRemove(PeerPeer);〃/<summary>///开始与所有适当对等体的同步。〃/</summary〉publicvoidSynchronize();〃/<summary〉〃/保存对该文件夹、它的用户和对等体等的所有配置变更到存储器。〃/</summary>publicvoidSave();〃/<summary>///该系统内用户的类型。〃/</summary>enumUserTypeReader,Writer,Manager〃/<summary>///一组用户。用户能被添加至该组或从中移除。〃/</summary〉publicclassUsers:IEnumerable<User>IEnumeratorGetEnumerator();voidAdd(Useruser);voidRemove(Useruser);〃/<summary>///一组对等体。对等体能被添加至该组或从中移除。〃/</summary〉publicclassPeers:IEnumerable<Peers>IEnumeratorGetEnumerator();voidAdd(PeerPeer);voidRemove(PeerPeer);〃/<summary>///表示单个用户。用户拥有对等体。〃/〈/summary〉publicclassUserpublicGuidSid{get;}〃/<summary>〃/用户名,例如levn。〃/</summary>publicstringUserName{get;}〃/<summary>〃/用户域,例如redmond。〃/</summary>publicstringDomain{get;}〃/<summary>/〃用户类型,例如管理员。对此做出设置要求你是管理员,否则即产///生异常。〃/</summary>publicUserTypeUserType{get;set}〃/<summary>///由该用户拥有的一组对等体。〃/这在用户已被邀请但尚未加入(接受)时为空。〃/</summary>〃/<value></value>publicPeer[]Peers{get;}〃/〈summary〉///这表示与本地同步文件夹进行同步的远程文件夹。〃/</summary>publicclassPeer〃/<summary>///数据存储系统文件共享〃/</summary〉〃/<value〉</value〉publicShareShare{get;}〃/<summary〉///对等体的所有者〃/</summary〉〃/<value></value>publicUserUser{get;}〃/<summary>///对等体的同步方式〃/</summary>〃/<value></value>publicSynchronizationModeSynchronizationMode{get;}权利要求1.一种使数据存储系统内数据更容易同步的系统,包括利用所述数据存储系统内的同步技术的接口组件;以及至少部分基于所述同步技术提供安全对等数据同步以允许至少一个用户对所述同步数据的分等级访问的同步组件。2.如权利要求l所述的系统,其特征在于,所述同步技术利用跟踪组件,用于捕捉对所述数据存储系统内实体的数据变更以使在维护数据集的两个各不相同的系统之间的数据更容易同步。3.如权利要求l所述的系统,其特征在于,所述分等级的访问包括至少一个角色和相关联的访问许可。4.如权利要求3所述的系统,其特征在于,所述角色和相关联的访问许可是以下的一种1)能够读取数据、写入数据、修改数据、添加数据、邀请用户和取消许可的管理员;2)能够读取数据、写入数据、修改数据和添加数据的写入者;3)能够读取数据的读取者;以及4)能够读取数据和添加数据的提供者。5.如权利要求l所述的系统,其特征在于,所述安全对等数据同步是带有至少一个副本的同步社区,其中所述副本是属于所述社区内用户的同步文件夹。6.如权利要求l所述的系统,其特征在于,还包括允许用户手动同步数据的手动同步组件。7.如权利要求l所述的系统,其特征在于,还包括向推选给所述对等数据同步的数据提供自动同步的自动同步组件。8.如权利要求l所述的系统,其特征在于,还包括用户同步管理器组件,用以提供以下至少一种同步关系;同步容器;邀请用户参与同步;接受邀请;参与社区;移除用户;以及维护成员资格列表。9.如权利要求l所述的系统,其特征在于,所述同步组件基于同步技术实现对复杂同步关系的管理。10.如权利要求9所述的系统,其特征在于,所述复杂同步关系是建立;拆散;和安全管理的至少一种。11.如权利要求9所述的系统,其特征在于,所述同步技术涉及合适的数据同步技术以及有关所述数据存储系统的同步技术中的至少一种。12.如权利要求1所述的系统,其特征在于,还包括作为本地系统运行以将至少一个操作暴露给应用程序的对等同步应用程序。13.如权利要求12所述的系统,其特征在于,所述操作可以是以下的至少一种在指定容器处创建共享;创建对容器的许可;将许可添加至容器;确认容器的所有者;基于列表设置一组成员资格;以及删除在容器上创建的共享。14.如权利要求12所述的系统,其特征在于,所述对等同步应用程序作为用于调度同步并提供进展通知的应用程序而实况运行。15.如权利要求l所述的系统,其特征在于,所述数据存储系统是定义了项、子项、属性和关系的至少之一来将信息表示为复杂类型的基于数据库的系统。16.如权利要求15所述的系统,其特征在于,所述数据存储系统包括容器结构和作为一种类型实例的项中的至少一种,并且所述项可在单个全局项范围内被存储在所述数据存储系统中。17.—种使数据存储系统内的数据更容易同步的计算机实现方法,包括标识数据存储系统内要被同步的数据;邀请至少一个用户参与同步关系;以及向所述同步关系内的所述至少一个用户分配至少一个可访问性级别。18.如权利要求17所述的方法,其特征在于,还包括利用所述数据存储系统内现有的同步技术;以及在对等同步社区内创建至少一个副本。19.如权利要求18所述的方法,其特征在于,还包括通过同步请求,宣告所述同步社区内的存在以及离开所述同步社区的意图中的至少一种的所述副本。20.—种使数据存储系统内的数据更容易同步的计算机实现系统,包括利用所述数据存储系统内的同步技术的装置;以及至少部分基于所述同步技术提供安全对等数据同步以允许多个用户对所述同步数据的分等级访问的装置。全文摘要要求保护的主题提供了一种使数据存储系统内数据更容易同步的系统和/或方法。接口组件可以利用该数据存储系统内的同步技术。同步组件可以至少部分基于该同步技术提供安全对等数据同步,以允许对同步数据的分等级访问。文档编号G06F17/30GK101243443SQ200680029445公开日2008年8月13日申请日期2006年7月20日优先权日2005年8月24日发明者L·诺维克,V·J·加维里申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1