CN100440206C - 与物理存储表示无关地同步逻辑视图的方法和系统 - Google Patents

与物理存储表示无关地同步逻辑视图的方法和系统 Download PDF

Info

Publication number
CN100440206C
CN100440206C CNB2004100590787A CN200410059078A CN100440206C CN 100440206 C CN100440206 C CN 100440206C CN B2004100590787 A CNB2004100590787 A CN B2004100590787A CN 200410059078 A CN200410059078 A CN 200410059078A CN 100440206 C CN100440206 C CN 100440206C
Authority
CN
China
Prior art keywords
duplicate
platform
logical view
data
computer system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CNB2004100590787A
Other languages
English (en)
Other versions
CN1577287A (zh
Inventor
Y·吴
S·周
L·诺维克
I·胡迪斯
A·B·沙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Si Wei Yun
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1577287A publication Critical patent/CN1577287A/zh
Application granted granted Critical
Publication of CN100440206C publication Critical patent/CN100440206C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/959Network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Abstract

揭示了同步拓扑内复制品上的项目的系统、方法和计算机程序产品。项目储存在复制品上的物理表中。每一复制品上的物理表布局可以不同,但是被映射到公用的逻辑视图。当复制品接收应当执行同步的指示时,该复制品确定是否在应当映射到逻辑视图的复制品上作出变化。复制品能够通过将在物理表中作出的变化的本地变化枚举与对逻辑视图中的变化的同步本地变化枚举相比较来方便这一过程。需要同步的任何变化通过逻辑视图发送到拓扑中的其它复制品。

Description

与物理存储表示无关地同步逻辑视图的方法和系统
技术领域
本发明一般涉及数据处理和操作,尤其涉及计算机系统之间数据同步的领域。
背景技术
在计算机系统内,数据同步是一个重要的功能。经常需要在许多不同的设置和位置中令同一数据可用。在许多同步数据有用的示例中,一个说明性示例涉及数字地址簿。计算机用户可以在其桌面工作计算机上储存数字地址簿。当工作时,这是储存地址、电话号码和一般联系人信息的方便且可访问的位置。当离开工作位置时,计算机用户可能需要其地址簿以移动的形式,如个人数字助理(PDA)或其它移动信息储存系统。PDA上的联系人信息应当匹配桌面工作计算机上的联系人信息。
此外,同一计算机用户可具有储存联系人信息的家庭计算机。理想地,家庭计算机、PDA和工作计算机上的联系人信息都应当同步。返回到计算机用户的工作位置,储存在数字地址簿中的一些数据可以是对计算机用户工作的组织内其它计算机用户可用的信息。由此,这一数据也可以被储存在可由许多不同的计算机用户访问的集中式数据库中,并且仍可以与计算机用户的PDA、工作计算机和家庭计算机同步。
因此,在上述说明性示例中,至少有四种不同类型的平台用于储存该数字地址簿。即,工作计算机、PDA、家庭计算机和集中式数据库。这些平台的每一个可在数据存储中具有储存该数字地址簿的一个副本的复制品。
每一数据存储中的数据可以在不同的物理排列中维护,例如,在物理表和/或物理表组中。物理表是在诸如数据库大容量存储阵列、计算机硬盘或闪存卡的计算机存储设备上的数据的实际排列。能够理解,每一不同的平台可以在复制品中储存其它复制品中完全相同的数据。然而,由于特定平台的特征的限制,数据可能在特定的平台上储存在不同的物理排列中(即,在不同的物理表排列或在文件中)。当彼此同步不同的复制品时,在同一拓扑内不同的复制品上不同地物理储存数据呈现了各种挑战。
复制品上的数据一般被划分成数据的离散组,通常被称为“项目”。例如,在数字地址簿中,项目可以是名字、地址、电话号码、完整的联系人或任一其它离散分组。在其它示例中,项目可以是文件、图像、文件夹等等。在复制品上的项目能够通过例如添加、删除和修改项目而变化。由于不同的物理排列,很难在复制品之间同步变化。
在不同的复制品上同步数据中出现的另一挑战涉及同步数据粒度的上下文。如上所述,复制品中的数据能够被划分成项目。这些项目表示同步的信息的离散片段。通常,定义项目的粒度,并且该粒度对于特定的复制品拓扑来说是不可改变的。在数字地址簿的示例中,当项目为联系人的单个字段时,如,姓、名、电话号码、街道地址、州或邮政分区号码,该项目具有细粒度。相反,当项目为诸如全名(姓和名)、联系电话或地址之一时,它具有中级粒度。具有粗粒度的项目可包括如复制品中的项目的完整联系人。
在复制品内同步项目经常需要元数据与每一项目相关联。元数据可包括诸如指示该项目何时最后一次改变的时间标记的信息。如果项目的粒度太细,元数据过多会不必要地消耗特定复制品的资源(如,存储和系统存储器),因为每一项目必须具有关联的元数据。例如,在上述数字地址簿中,如果项目的粒度包括街道地址、城市和邮政分区号码,则需要维护对这三个项目的每一个的元数据。然而,可能街道地址中的变化也导致城市和邮政分区号码中的变化,这意味着当更新街道时,通常改变对城市和邮政分区号码的元数据。
另一方面,如果粒度太粗,出现至少两个问题,即:在同步过程中可能需要传输太多的同步数据以及可能出现不必要的冲突。例如,在上述数字地址簿中,如果按照整个联系人来定义项目,则联系人的任一部分中的变化将导致在同步中发送整个联系人。在拓扑中的复制品之间可能已经同步了这一数据的大多数。因此,在同步过程中在两个复制品之间发送了冗余的数据。例如,联系人中对电话号码的改变不需要发送名字和地址信息来同步相应的联系人。然而,当项目被定义为整个联系人时,对电话号码的改变仍然引发在同步过程中发送名字和地址。由此,消耗了通信资源来传输已同步的数据。
此外,当项目的定义太粗时,复制品会不适当地检测到复制品中数据之间的冲突。例如,如果在第一复制品上改变了联系人的电话号码,并且在第二复制品上改变了该联系人的地址,则如果该项目粒度是整个联系人,第一和第二复制品可看似冲突。然而,不存在实际的冲突,因为电话号码的变化可以是完全有效的,且与地址的变化不相关。
在商业数字存储应用中,经常直到在出售特定的应用且由大量用户使用之后才发现优化,并且优化能导致对物理存储的改变。由此,包含数字存储应用的较早版本的数据的物理表可能不具有与储存该数字存储应用的较晚版本的相同数据的物理表相同的布局。为在数字存储应用的不同版本间同步数据,需要书写新的代码来使用较晚版本的优化,而仍然提供同步能力。
尽管上述示例被限在数字地址簿的上下文的框架内,但是有许多使用数据同步的其它环境。一些示例包括文档版本、共享文件和信息、软件更新等等。这些环境的每一个以及其它环境会遭受上述的挑战。因此,更有效地使用计算机系统和通信资源的同步机制是有利的。更适当地检测数据冲突的同步机制也是有利的。
发明内容
本发明的原理提供了同步复制品。计算机系统包括源复制品,为包括在拓扑中(如,在计算机网络拓扑中)的多个复制品之一。计算机系统接收源复制品要与目标复制品同步的同步指示(如,请求同步消息)。计算机系统在源复制品上确定项目是否在物理布局中(如,在数据库表中)变化。在一个示例中,计算机系统将本地变化枚举与同步本地变化枚举比较。
当比较指示,例如,当本地变化枚举与同步本地变化枚举不同时,确定该项目在物理布局中变化。计算机系统将源复制品上在物理布局中变化的任何项目映射到逻辑视图,这实质上与拓扑中一个或多个其它复制品上的逻辑视图相似。每一复制品上的目录控制从物理布局到逻辑视图的映射,使逻辑视图实质上相似。计算机系统向目标复制品发送映射到逻辑视图的至少一个项目。
本发明的原理也提供计算机系统与拓扑中的其它计算机系统同步数据。计算机系统包括数据存储层,包括大量项目和对项目的数量维护本地变化枚举的本地变化跟踪器。计算机系统还包括同步层,包括实质上与拓扑中一个或多个其它计算机系统上的逻辑视图相似的逻辑视图。该逻辑视图表示一个或多个从项目的数量的映射。同步层还包括对映射到逻辑视图的一个或多个项目维护版本和同步本地变化枚举的同步变化跟踪器。
本发明的原理也提供生成数据存储中项目的物理布局到逻辑视图的映射。计算机系统访问可用来方便逻辑模式的编译的核心代码。计算机系统访问包括变化单元和一致单元的定义的逻辑模式。变化单元是可配置的,使开发者能够基于可用的资源分配变化单元的大小。例如,在低带宽或高等待时间的网络连接上,能够使用导致网络上较小项目和较少数据的较低粒度。一致单元也是可配置的,使开发者能够将应当一起同步的项目组合在一起。例如,开发者可以组合共同构成地址的项目,因为对这些项目的任一个的变化能够导致对它们的所有的变化。
计算机系统使用核心代码来将逻辑模式编译为将项目从物理布局映射到逻辑视图的至少一个目录。编译也能够导致生成过程或功能。过程或功能指示项目在物理布局中如何储存。通过对过程或功能的访问,目录能够将数据的物理布局映射到实质上与一个或多个其它计算机系统上的逻辑视图相似的逻辑视图。使用众多计算机系统中的相似的逻辑视图能够方便复制品之间更有效的同步。
下文将描述本发明的另外的特征,通过阅读描述,能够部分清楚本发明的另外的特征,或通过本发明的实践学到。本发明的特征和优点可以通过所附权利要求书中特别指出的仪器和组合来实现并获取。阅读以下描述和所附权利要求书,可以完全明白本发明的这些和其它特征,或者可以通过后文所陈述的本发明的实践学到。
附图说明
为以能获取本发明的上述和其它特征的方式描述,参考附图中说明的其特定实施例呈现上文简要描述的本发明的更详细描述。应当理解,这些附图仅描述了本发明的典型实施例,因此不应考虑为对其范围的限制,通过使用附图描述并解释本发明的另外的特征和细节,附图中:
图1所示是包括能够依照本发明的原理同步的复制品的示例计算机体系结构;
图2A所示是用于依照本发明的原理定义一致单元和变化单元的示例结构;
图2B所示是用于依照本发明的原理定义一致单元和变化单元的示例结构;
图3A所示是用于依照本发明的原理储存项目、变化枚举和版本的示例表;
图3B所示是用于依照本发明的原理储存项目、变化枚举和版本的示例表;
图4所示是用于依照本发明的原理将逻辑视图映射到自定义视图的示例表;
图5所示是用于使用本发明的一些实施例的各方面同步复制品的示例方法;
图6所示是用于使用本发明的一些实施例的各方面生成数据存储中项目的物理布局到逻辑视图中的项目的映射的示例方法;
图7所示是适合本发明的原理的操作环境。
具体实施方式
本发明延及通过逻辑视图同步复制品上的项目的系统、方法和计算机程序产品。复制品使用目录以将项目从物理布局映射到逻辑视图。目录能够从逻辑模式编译,逻辑模式方便了数据从不同的物理布局(如,在多个不同的复制品上)到充分相似的逻辑视图(如,在多个不同的复制品间共享)的映射。本发明的实施例可包括专用或通用计算机,包括计算机硬件的各种零件,如后文所详细讨论的。
现在参考图1,示出了包括能依照本发明的原理同步的复制品的示例计算机体系结构。图1示出了拓扑100。拓扑100包括复制品102和复制品104,可以在连接到公用网络(如,LAN、WAN或者甚至是因特网)的计算机系统上。复制品102被划分成数据存储层126和同步层128。复制品104也被划分成数据存储层130和同步层132。复制品102包括物理表105和106,包括储存在数据存储层126的复制品102的数据。复制品104也包括物理表107、108和109,包括储存在数据存储层130的复制品104的数据。
物理表105和106;以及107、108和109可包含相同的信息;但这些表可以显著不同地物理排列。这些差别可以是这些表驻留的复制品类型的结果。例如,服务器复制品上的优化可以不同于客户机复制品上的优化,导致不同的物理表布局。可选地,物理表可以驻留在同一商业软件的不同版本中。商业软件应用的较晚版本经常会包含优化并具有与该物理表的前一版本的不同物理表布局。
项目可以通过用户接口134输入到复制品102的表105和106。用户接口134包含指示在表105和106中添加或改变的项目的表布局的代码。在本发明的一个实施例中,这一代码是过程或功能代码138。复制品104包含与复制品102中的用户接口134类似地起作用的用户接口136。用户接口136也可以使用过程或功能代码140。
复制品102也包括逻辑视图110。物理表105和106映射到逻辑视图110。复制品104也包括逻辑视图112。物理表107、108和109也映射到逻辑视图112。逻辑视图110和112可以是充分相似的逻辑视图,例如,逻辑视图110和112可以都表示联系人信息。项目能够在逻辑视图110和112中类似地表示。在本发明的一个实施例中,在复制品102中从表105和106到逻辑视图110的映射通过使用包含关于复制品102中项目的物理存储位置的信息的目录114(在同步层128中)实现。复制品104上的映射类似于复制品102上的映射。复制品102和104通过逻辑视图110和112映射。在本发明的一个实施例中,编译到物理模式映射文档的XML或其它逻辑模式(如后文更详细描述的)来创建目录和过程或功能。
在一个示例性实施例中,作为对复制品102接收的应当启动同步的指示符的响应,执行同步。指示符可包括:复制品102对其表105和106中有通过用户接口134改变或添加的项目的识别;从复制品104接收请求用于同步;或任一其它合适的指示符。复制品102然后通过目录114将物理表105和106中需要映射的项目映射到逻辑视图110。然后将项目从复制品102中的逻辑视图110发送到复制品104中的逻辑视图112。复制品104然后能够通过目录116将发送的项目从逻辑视图112映射到物理表107、108和109。
在本发明的一个实施例中,能够通过使用文件夹来控制同步的范围。文件夹是用于将项目组合在一起的逻辑构造。由此,通过同步文件夹,能够同步组合在公用文件夹中的那些项目。使用文件夹,通过仅同步组合在文件夹中的那些项目,能够在少于储存在复制品上的所有项目上完成同步。文件夹组合的一个示例在图1中示出。文件夹组合能够通过使用复制品上的数据存储层中的文件夹表来实现。图1通过示出数据存储层126中的表106说明了这一概念。表106包括标注为1、2和3的数据。文件夹表118包含对应于标识号2和3的条目A。这一表条目表示包含标注为2和3的数据项目的标注为A的文件夹120。复制品104具有相应的逻辑构造,包括储存标注为1、2和3的数据项目的表107、108和109。这些项目对应于复制品102上标注为1、2和3的项目,尽管它们物理上不同地储存。文件夹表122储存在复制品104的数据存储层130中。文件夹表122映射到标注为A的文件夹124。由此,复制品102能够在文件夹级上与复制品104同步。
逻辑视图可以按照XML模式或某些其它类似树的数据结构来定义。这一数据结构的一个示例在图2A中示出。为理解逻辑视图,必须先理解一些其它术语。例如,一致单元表示可以在同步过程中报告的项目变化的最小组。可以按照一致单元来定义的数据的一个示例是地址。地址包括若干个别的成分,包括街道、城市、州和邮政分区号码。当更新地址时,通常改变这些项目的若干个。因此,如果在同步过程中,仅这些项目的一部分改变并发送,并且在它们发送到的复制品上改变,可能在复制品上得到非一致且无意义的地址。由此,仅当在同一同步过程中发送该一致单元的每一改变的成分时,即街道、城市、州和邮政分区号码,在同步过程中在复制品上更新定义为一致单元的地址。
应当理解的另一概念是变化单元的概念。变化单元是定义项目的边界的构造。换言之,如果修改变化单元的任一部分,将在随后的同步中同步整个变化单元。在一个示例中,变化单元可定义为电话号码。区号的改变将导致在随后的同步过程中发送整个电话号码。
现在参考图2A,以逻辑模式200的一般化视图示出了一致单元和变化单元。逻辑模式200包括顶层一致单元202。顶层一致单元202具有向其添加的两个较低层一致单元。第一较低层一致单元204包括变化单元206和208。第二较低层一致单元210包括变化单元212、214、216和218。逻辑模式200的一个更具体的示例在图2B中示出,示出了联系人252(对应于顶层一致单元202)。在联系人252内示出名字254(对应于第一添加的一致单元204)。名字254包括姓256和名258。示出了地址260(对应于第二一致单元210)包括街道262、城市268、州266和邮政分区号码268。
本发明的实施例考虑可定义的一致单元和变化单元。一致单元和变化单元能够例如以对每一特定应用的XML模式定义。在本发明的一个实施例中,开发者创建XML模式。该XML模式储存在包括核心代码的计算机系统中。计算机系统中的核心代码编译XML模式。编译XML模式导致用于在逻辑视图和物理表(如图1所示的复制品102中的逻辑视图110和物理表105和106)之间映射项目的目录(如图1所示的复制品102中的目录114)的创建。编译也可以生成过程或功能代码。过程或功能代码能够储存在复制品的数据库层(如图1所示的复制品102的数据库层126)中。过程或功能代码提供了用于在物理存储(如图1所示的物理表105和106)中储存项目的功能,如指示项目如何储存在表或其它存储排列中。
在本发明的一个实施例中,在本地作出的变化,如通过用户接口作出的变化能够与从同步所得的变化相区别。现在参考图1和3A,解释了这一功能。复制品102,如上所述,包括储存在数据存储层126的物理表105和106。图3A说明了示出如何使用物理表105和106以及逻辑视图110来同步通过用户接口134作出的更新的时间方式的行进。图3A说明的物理表105具有两列:即项目列302和本地变化枚举(LOCAL_CN)列304。项目列302包含储存在复制品102中的项目。本地变化枚举列304包括数据存储126向项目分配为标签的本地变化枚举。与每一项目关联的本地变化枚举在每次向一个项目作出变化时被递增地更新。数据存储层126向所有变化分配本地变化枚举,而不考虑那些变化是通过用户接口作出还是通过同步接收。本地变化跟踪器可包括本地变化枚举列304。
逻辑视图110包括具有三个列的表:即储存从物理表105和106通过目录114映射的项目的项目列306、储存分配给项目的本地变化枚举的同步形式的同步本地变化枚举列308以及包括版本的版本列310,包括关于拓扑内作出变化或向项目分配版本的复制品的信息以及添加或改变项目的时间顺序。同步变化跟踪器可包括同步本地变化枚举列308和版本列310中的信息。
在时刻(1),复制品102处于稳定状态。在时刻(2),通过用户接口134对标注为I2的项目作出变化。对I2分配本地变化枚举,该本地变化枚举是下一可用的时间变化枚举,如在本情况中为12。
在时刻(3),复制品102接收应当执行同步的指示。在同步层128,复制品102通过将同步本地变化枚举308与列304中的本地变化枚举相比较来检查逻辑视图110。复制品102发现对物理表105和106作出了变化,因为列304中的本地变化枚举不与列308中的同步本地变化枚举匹配。即,本地变化枚举具有值12,而同步本地变化枚举具有值5。由此,复制品102将列310中的版本更新为A12,指示在复制品102上作出该变化(在本示例中,复制品102在拓扑中被标注为复制品A)以及复制品102分配一个本地变化枚举12。同一时刻,标注为I2的项目从本地表105和106映射到逻辑视图表110。然后在时刻(4),更新列308中的同步本地变化枚举来匹配列304中的本地变化枚举。然后可以将逻辑视图110中的项目,包括从物理表105和106映射的项目与拓扑100内的其它复制品同步。
现在参考图3B,示出了更新复制品,包括本地表,作为同步的结果的一个示例。在时刻(1),复制品102处于稳定状态,未从拓扑内的其它复制品接收到任何新项目或对项目的变化。在时刻(2),在逻辑视图表110接收到对项目I3的变化。对项目I3的变化具有版本C101。这一变化通过目录114从逻辑视图表110发送到物理表105。接收变化之后,数据存储层126分配一个本地变化枚举,为数据存储层126可用来分配的下一变化枚举。在本情况下,本地变化枚举是13,如在时刻(3)在列304中所示出的。在其之后立即或不久,在时刻(4)中示出,在同步层128作出检查来发现分配给该变化的列304中的本地变化枚举。将列304中的本地变化枚举更新为列308中的同步本地变化枚举。以这一方式,同步层将知道只要列304中的本地变化枚举与列308中的同步本地变化枚举相匹配,则未通过用户接口134向项目I3作出未经同步的本地变化。此外,列310中的版本包含关于哪一复制品作出变化以及作出变化的时间顺序(本情况中为时刻101的标注为C的复制品)的信息。
在本发明的一些实施例中,可能需要提供不同于以上所讨论的逻辑视图的自定义视图。即,以上所讨论的逻辑视图在所有复制品上都具有相似的布局,从而最大化了同步效率。然而,可能有复制品被添加到未采用逻辑视图设计复制品且不能被更新来包括它们的拓扑的情况。尽管如此,本发明的实施例考虑与这些自定义复制品兼容。现在参考图4,示出了容纳这些自定义复制品的一种方式。图4一般示出了一种将在同步层(如图1所示的层128)分配的列310中的版本和一般由自定义复制品分配的列410中的自定义变化枚举映射到自定义视图404的系统。然后可以如上所述地出现同步,具有通过自定义视图404发送和接收项目的额外的行动。例如,当项目从复制品发送到自定义复制品时,可以在发送之前向该项目分配适当的自定义变化枚举。
当接收项目时,通过咨询自定义视图404,能够分配适当的版本,并且将项目映射到逻辑视图(如图1所示的逻辑视图110)中适当的位置。
图5说明了使用本发明的一些实施例的各方面同步复制品的示例方法500。方法500可以在诸如图1所示的计算机体系结构中实践。因此,将参考图1中的元素描述图5的方法。方法500包括用于标识来自要映射到逻辑视图的物理布局的项目的面向功能结果的步骤(步骤502)。步骤502能够包括用于标识来自要映射到逻辑视图的物理布局的项目的任何相应的行动。
然而,在图5的示例方法中,步骤502包括接收源复制品应当与目标复制品同步的同步指示的相应行动(行动504)。行动504可包括计算机系统接收源复制品应当与目标复制品同步的指示。例如,包括复制品102的计算机系统能够接收复制品102应当与复制品104同步的指示。
行动504能够出现在复制品的同步层中,如图1所示的复制品102的同步层128。复制品102在包括可与其同步数据的其它复制品的拓扑100中。行动504中陈述的指示可起源于多个不同的源,包括来自拓扑100内另一复制品的同步请求或来自复制品102内定时器的超时,或通过将标记设置为对储存在数据库层126中的数据的某一变化的结果。尽管这里未具体陈述,各种其它指示也可以是可以接收来指示应当执行同步的合适的指示。
步骤502也包括确定源复制品上物理布局中的项目是否变化的相应行动(行动506)。行动506可包括计算机系统确定源复制品上物理布局中的项目是否变化。例如,包括复制品102的计算机系统可确定物理地储存在表105和表06中的项目是否变化。
行动506的一个实施例在图3A中在时刻(2)说明,其中,如上所述,将列308中的同步本地变化枚举与列304中的本地变化枚举相比较。
列304中的本地变化枚举在复制品102的数据存储层126中,并由数据存储层126关联到一个项目,如表105中。列308中的同步本地变化枚举与映射到复制品102的逻辑视图110的项目关联,在复制品102中,映射的项目在表105和106的物理布局中具有相应的项目。列304中的本地变化枚举可以与列308中的同步本地变化枚举无关地变化。由此,当作出本地变化时,列304中的本地变化枚举变为一个与列308中的同步本地变化枚举的值不同的值。
由此,当执行行动506时,可以使用本地变化枚举与同步本地变化枚举的比较来确定是否在源复制品上对物理布局中的项目作出变化。例如,本地变化枚举和同步本地枚举的不同值能指示物理布局中的变化。如果项目在不同于储存该项目的复制品的复制品上变化,或者该项目与拓扑中的另一复制品同步,则本地变化枚举和同步变化枚举可以是同一个数。以上图3A和3B的讨论描述了这如何在本发明的一个实施例中实现的示例。
复制品的同步层中的同步变化跟踪器维护与映射到逻辑视图的项目关联的版本和同步本地变化枚举。例如,表307能够位于同步层128中。同步变化跟踪器中的版本可以包括标识对与相应的版本关联的项目作出变化的复制品的复制品ID。版本也可包括标识在复制品上作出变化的时间顺序的复制品变化枚举。在图3A中,项目I1(列306中)与版本A4关联,其中A是复制品ID(如,标识复制品102),4是复制品变化枚举。因而,对项目I1的变化是在复制品102以时间顺序4进行的。在本发明的一些实施例中,复制品ID标识不同于作出变化的复制品的复制品。在这些实施例中,复制品将用来向由拓扑内的若干不同复制品作出的变化分配版本。这可以被称为系统标志符创作(surrogate authoring)。
方法500也可包括对物理布局中的每一项目定义变化单元,其中,变化单元定义了项目的粒度。变化单元可以以图2A和2B所示的逻辑模式或逻辑结构来定义。
方法500也可包括以逻辑模式定义一致单元。一致单元包括必须由复制品接收用于该复制品应用的任一变化单元的定义的粒度的多个项目。例如,图2B示出了地址一致单元260,包括街道262、城市264、州266和邮政分区268变化单元。如果在同步过程中,街道262、城市264、州266和邮政分区268变化单元的任一变化的项目未被复制品接收,则在复制品上不更新任何项目。当接收了一致单元中的所有项目时,在复制品中可以共同更新所有项目。
方法500也可包括编译逻辑模式来创建目录,例如,类似于目录114。目录包含关于项目在物理表105和106的何处布置的信息。更具体地,在本发明的一个实施例中,目录包括详细的元数据和用于生成过程和功能来将物理存储中的项目映射到逻辑视图的指令。由此,目录被用来将物理表105和106中的项目映射到逻辑视图110。当编译逻辑模式后,也可以生成过程或功能代码。过程或功能代码可以储存在复制品的数据库层中(如复制品102的数据库层126)。过程或功能代码提供了用于在物理表(如物理表105和106)的物理布局中储存项目的功能,如指示项目如何储存在表中。
方法500也可包括在行动504之前安装目录。目录可以由开发者或在不同于上述计算机系统的计算机系统中开发并编译目录的其它源提供。然后将目录提供为可安装代码,能够在主题计算机系统上运行。类似地,能够提供过程或功能代码并也在计算机系统上安装。
方法500也可包括在复制品上定义包括复制品上的一些项目的文件夹。拓扑中的另一复制品也可包括具有相应项目的相应文件夹。图1示出了复制品102上的文件夹120,对应于复制品104上的文件夹124。复制品可以通过仅发送需要同步且在文件夹中的项目来优化文件夹的同步。
方法500也包括将源复制品的物理布局中的任何变化的项目映射到逻辑视图的行动(行动508)。行动508可包括计算机系统将源复制品的物理布局中的任何变化的项目映射到逻辑视图。例如,包括复制品102的计算机系统能够通过目录114将储存在物理表105和106中的项目映射到逻辑视图110。在一个复制品上的逻辑视图能够实质上与在拓扑中一个或多个其它复制品上的逻辑视图相似。例如,逻辑视图110能够实质上与逻辑视图112相似。这可以提高同步拓扑100中的复制品的效率。
方法500也包括将至少一个映射的项目从源复制品发送到目标复制品的行动(行动510)。行动510可包括复制品102将项目从逻辑视图110发送到逻辑视图112。例如,复制品102可将一个或多个项目从类似于联系人252的联系人发送到复制品104。
方法500也可包括将逻辑视图映射到自定义视图。将逻辑视图映射到自定义视图可包括将版本(如在列310中)映射到自定义变化枚举(如在列410中)。自定义复制品可以向自定义复制品中的自定义项目分配自定义变化枚举。自定义变化枚举可以与版本(如图4所示的自定义视图404)相关。自定义变化枚举可以是与本地变化不同的格式(如,不同的数据格式)。
然后,可以如上所述地出现同步,具有通过自定义视图发送并接收项目的额外行动。例如,当项目从复制品发送到自定义复制品时,可以在发送之前对该项目分配适当的自定义变化枚举。当接收项目时,通过参考自定义视图404,可以分配适当的版本,并且该项目可以映射到逻辑视图(如图1所示的逻辑视图110)中的适当位置。
现在参考图6,示出了用于生成数据存储中的项目的物理布局到逻辑视图的映射的方法为方法600。方法600包括访问可以用来方便逻辑模式的编译的核心代码的行动(行动602)。行动602可包括复制品(如在计算机系统中)访问可用来方便逻辑模式的编译的核心代码。例如,复制品102能够访问方便逻辑模式编译为物理模式映射的核心代码。在本发明的一个实施例中,可以通过开发者使用适当的功能创建代码并在编译计算机系统上安装该代码来完成行动602。编译计算机系统然后访问该代码。
方法600还包括访问逻辑模式的行动(行动604)。行动604可包括复制品(如在计算机系统中)访问逻辑模式。例如,复制品102可访问逻辑模式。在本发明的一个实施例中,逻辑模式包括定义项目的粒度的变化单元。逻辑模式还可包括定义一个或多个定义的粒度的项目的一致单元,其变化必须在另一计算机系统上接收来用于要在其它计算机系统中更新的一个或多个项目的任一个。
在本发明的一个实施例中,该模式由开发者在设计时刻设计。设计特定类型的数据存储的开发者能够定义变化单元来对特定的应用优化粒度。例如,可以通过定义较大变化单元来定义变化单元以减少需要维护的元数据量,或者可以通过定义较小变化单元来设计变化单元以减少冲突的发生率,或者可以定义两者之间的某一平衡。由于变化单元粒度可以在逻辑模式中定义,开发者不需要书写新的计算机可执行代码来定义变化单元。
定义一致单元也可以由开发者在设计时刻执行。定义一致单元在上文结合图2A和2B的描述中详细描述。定义一致单元帮助确保了应当共同更新的项目被共同更新。由于一致单元可以在逻辑模式中定义,开发者不需要书写新的计算机可执行代码来定义一致单元。
方法600还包括使用核心代码来将逻辑模式编译为目录的行动(行动606)。行动606可包括复制品(如,在计算机系统中)使用核心代码来将逻辑模式编译为目录。例如,复制品102能够使用访问的核心代码来将访问的逻辑模式编译为目录114。将逻辑模式编译为物理模式映射能导致能储存在复制品(如图1的复制品102)的同步层(如图1的层128)上的目录(如图1所示的目录114)的创建。
目录包含用于将项目从物理表(如图1的物理表105和106)映射到逻辑视图(如图1的逻辑视图110)的信息。逻辑视图可以在拓扑中的一个或多个其它计算机系统上实质上相似。步骤606也可创建过程或功能代码。过程或功能代码位于复制品的数据存储层(如图1所示的复制品102的数据存储层126)中。过程或功能代码包含指示项目在物理表(如图1的表105和106)中的物理存储的计算机可执行指令。
方法600也可包括配置编译计算机系统通过逻辑视图向拓扑内的其它计算机系统发送项目。拓扑内的其它计算机系统具有与该计算机系统上的逻辑视图充分相似的逻辑视图。通过逻辑视图发送项目的示例在上文图1的描述中详细地描述。
方法600也可包括向计算机系统安装目录以由物理布局中配置的数据存储使用。数据存储可以在安装目录之前、安装目录之后或安装的同一操作中安装到计算机系统。安装可以以多种方法完成,包括通过网络或通过物理地将目录放置到便携式存储媒质,如计算机硬盘或CD-ROM中并传输到计算机系统。
方法600也可包括向计算机系统发送目录以由配置为依照逻辑视图同步数据的复制品使用。复制品可以在发送目录之前、发送目录之后或发送的同一操作中配置。
计算机系统可以划分成数据存储层和同步层。数据存储层可以类似于上述数据存储层126(图1)。同步层可以类似于上述同步层128。
方法600也可在计算机系统的数据存储层(如图1中的层126)中储存本地变化跟踪器。本地变化跟踪器维护对储存在源复制品上的项目的本地变化枚举。本地变化跟踪器的示例性实施例在图3A和3B中示出。方法600也可在同步层(如图1的层128)中储存同步变化跟踪器。同步变化跟踪器维护版本(如图3A和3B中列310中所示出的)和同步本地变化枚举(如图3A和3B中列308中所示出的)。版本可包括对应于拓扑中的计算机系统的复制品ID和对应于作出变化的时间顺序的变化枚举。在一些实施例中,复制品ID对应于作出与版本关联的变化的计算机系统。在其它实施例中,计算机系统可对若干计算机系统分配版本,使复制品ID对应于分配版本的计算机系统。
本地变化枚举和同步本地变化枚举可用来标识变化的项目是否应当发送并且因此是否应当从物理布局映射到逻辑视图。当通过用户接口(如图1所示的用户接口134)作出变化时,对该变化分配本地变化枚举。由此,数据存储层(如图1的层126)中的项目将具有不同于与同步层(如图1的层128)中的项目关联的同步本地变化枚举的本地变化枚举。计算机系统然后能够在同步过程中识别通过用户接口改变的项目需要被分配一个有效的版本号并与其它计算机系统同步。这一过程在上文结合图3A和3B的描述中更充分地讨论。
方法600也可包括在数据存储层中储存文件夹,其中,该文件夹能够将项目组合在一起。这一文件夹的一个示例在图1中示出为文件夹120。储存文件夹可包括使用表(如图1的表118)来将项目相关到文件夹。可以使用文件夹将项目发送到其它计算机系统。以这一方式,仅发送选择的项目而非在计算机系统上存在的所有的项目。
本发明的范围内的实施例也包括用于含有或在其上储存计算机指令或数据结构的计算机可读媒质。这类计算机可读媒质可以是任一可由通用或专用计算机访问的可用媒质。作为示例而非局限,这类计算机可读媒质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或其它可用来以计算机可执行指令或数据结构的形式携带或储存所期望的的程序代码方法并可由通用或专用计算机访问的任一媒质。当通过网络或另一通信连接(或者硬布线、或者无线、或硬布线和无线的组合)向计算机传输或提供信息时,计算机适当地将该连接视为计算机可读媒质。由此,任一这类连接适当地称为计算机可读媒质。上述的组合也应当包括在计算机可读媒质的范围内。计算机可执行指令包括,如,引发通用计算机、专用计算机或专用处理设备执行特定功能或功能组的指令和数据。
图7及以下讨论提供了对适于在其中实现本发明的计算环境的简要概括描述。尽管并非所需,但本发明将在计算机可执行指令的一般语境下描述,计算机可执行指令如程序模块,由网络环境中的计算机执行。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。计算机可执行指令、相关的数据结构以及程序模块表示了用于执行这里公开的方法的步骤的程序代码方法的示例。这一可执行指令或相关数据结构的特定顺序表示了用于实现在这类步骤中所描述的功能的相应行动的示例。
本领域的技术人员可以理解,本发明可以在具有多种类型计算机系统构造的网络计算环境中实践,包括个人计算机、手持式设备、多处理器系统、基于微处理器或可编程消费者电子设备、网络PC、小型机、大型机等等。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接(或者通过硬布线链路、或者通过无线链路、或通过硬布线或无线链路的组合)的本地和远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
参考图7,用于实现本发明的示例系统包括以常规计算机形式720的通用计算装置,包括处理单元721、系统存储器722以及将各类系统组件包括系统存储器722耦合至处理单元721的系统总线723。系统总线723可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线结构的本地总线。系统存储器包括只读存储器(ROM)724和随机存取存储器(RAM)725。基本输入/输出系统(BIOS)726,包含如在启动时协助在计算机720内的元件之间传输信息的基本例程,可储存在ROM 724中。
计算机720也可包括用于对磁硬盘739进行读写的磁硬盘驱动器727、用于对可移动磁盘729进行读写的磁盘驱动器728以及用于对可移动光盘731如CD-ROM或其它光媒质进行读写的光盘驱动器730。磁硬盘驱动器727、磁盘驱动器728以及光盘驱动器730分别通过硬盘驱动器接口732、磁盘驱动器接口733和光盘驱动器接口734连接至系统总线723。驱动器及其相关的计算机可读媒质为计算机720提供了计算机可执行指令、数据结构、程序模块和其它数据的非易失存储。尽管这里描述的示例环境采用了磁硬盘739、可移动磁盘729以及可移动光盘731,然而也可以使用用于储存数据的其它类型的计算机可读媒质,包括盒式磁带、闪存卡、数字多功能盘、Bernoulli盒式磁盘、RAM、ROM等等。
包括一个或多个程序模块的程序代码方法可储存在硬盘739、磁盘729、光盘731、ROM 724或RAM 725中,包括操作系统735、一个或多个应用程序736、其它程序模块737以及程序数据738。用户可以通过键盘740、指向设备742或其它输入设备(未示出),如麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等向计算机720输入命令和信息。这些和其它输入设备通常通过耦合至系统总线723的串行端口接口746连接到处理单元721。可选地,输入设备也可以通过其它接口连接,如并行端口、游戏端口或通用串行总线(USB)。监视器747或另一显示设备也通过接口,如视频适配器748连接到系统总线723。除监视器之外,个人计算机通常包括其它外围输出设备(未示出),如扬声器和打印机。
计算机720可以在使用到一个或多个远程计算机,如远程计算机783和793的逻辑连接的网络化环境中操作。远程计算机783和793的每一个可以是另一个人计算机、服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括许多或所有上述与计算机720相关的元件。图7描述的逻辑连接包括局域网(LAN)751和广域网(WAN)752,这里示出作为示例而非局限。这类网络环境常见于办公室范围或企业范围计算机网络、内联网以及因特网。
当在局域网网络环境中使用时,计算机720通过网络接口或适配器753连接至局域网751。当在广域网网络环境中使用时,计算机720可包括调制解调器754、无线链路或其它装置,用于通过广域网752,如因特网建立通信。调制解调器754可以是内置或外置的,通过串行端口接口746连接至系统总线723。在网络化环境中,描述的与计算机720相关的程序模块或其部分可储存在远程存储器存储设备中。可以理解,示出的网络连接是示例性的,也可以使用通过广域网752建立通信的其它装置。
本发明可以在不脱离其精神或本质特征的情况下以其它特定形式实施。描述的实施例在各方面仅为说明而非限制。因此,本发明的范围由所附权利要求书而非上述描述指示。所有处于权利要求的等效技术方案的含义和范围内的变化都包含在其范围之内。

Claims (12)

1.一种在一计算机网络中将在平台的数据存储层中的数据项目的物理布局映射到平台的同步层中的逻辑视图的方法,所述计算机网络由多个不同类型的平台组成,用于存储相同数据项目的复制品,其中特定平台的限制或特征会要求复制品的数据项目依照不同的物理排列被存储在该特定平台的数据存储层上,其中当同步所述复制品时,每个复制品的数据项目必须从各平台的不同物理排列被映射到特定平台的同步层的一个逻辑视图中,所述特定平台的同步层的逻辑视图具有和在其它各个不同类型的平台中的逻辑视图相类似的布局,该方法包括:
编译行动,在所述特定平台的计算机系统将逻辑模式编译成一个目录,所述目录被用于在同步层定义逻辑视图,所述逻辑视图具有和每个平台的逻辑视图类似的布局,并且所述逻辑模式包括;
变化单元,如果数据项目组的任何部分被改动,那么在同步其它复制品时整个数据项目组将被同步,这种情况下所述变化单元被用于定义数据项目组的粒度;以及
一致单元,用于定义最小数据项目组,在同步过程中,如果该最小数据项目组中任一个数据项目被改动,那么该最小数据项目组必须被报告;以及
使用所述目录将数据项目从物理层映射到逻辑视图的行动,所述逻辑视图具有和在一个或多个其它计算机系统的不同平台的逻辑视图类似的布局;以及
在每个平台的同步层处的逻辑视图中存储同步变化跟踪器的行动,所述同步变化跟踪器维护:
同步本地变化枚举,其对应于计算机系统的逻辑视图中的数据项目同步版本;以及
版本,其包含复制品ID,所述复制品ID用于识别对和相应的版本关联的数据项目做出变化的特定复制品。
2.如权利要求1所述的方法,其特征在于,它还包括:
计算机系统的同步层包括一个逻辑模式,其被编译成一个或多个目录,所述一个或多个目录采用可扩展标记语言XML的形式。
3.如权利要求1所述的方法,其特征在于,所述每个计算机系统的数据存储层的物理排列由一个或多个物理表来定义,并且其中被所述计算机系统的至少一个的物理表所定义的物理排列不同于被其它计算机系统的物理表的物理排列。
4.如权利要求3所述的方法,其特征在于,每个计算机系统的每个平台的存储有复制品的数据存储层包括一个用户界面,所述用户界面包括过程或功能代码,所述过程或功能代码用于在数据存储层的物理表中排列复制品的数据项目。
5.如权利要求3所述的方法,其特征在于,它还包括:
在每个平台的数据存储层的一个或多个物理表中储存本地变化跟踪器的行动,所述本地变化跟踪器为储存在平台的数据存储层的数据项目维护本地变化枚举;
以及
其中,通过将所述本地变化跟踪器与所述同步变化跟踪器相比较,每个平台的计算机系统能够确定是否应当发送储存在所述计算机系统的所述数据存储层中的数据项目并因此映射到计算机系统的同步层中的逻辑视图。
6.如权利要求5所述的方法,其特征在于,如果所述本地变化枚举和所述同步变化枚举包括不同的值,则储存在所述计算机系统的所述数据存储层的所述数据项目应当映射到所述逻辑视图。
7.如权利要求5所述的方法,其特征在于,如果所述本地变化枚举和所述同步变化枚举包括相同的值,则储存在所述计算机系统的所述数据存储层的所述数据项目不需要映射到所述逻辑视图。
8.如权利要求5所述的方法,其特征在于,
由另一平台的计算机系统所创建的复制品的不同版本所导致的在所述特定平台中存储的复制品的数据项目的变化被所述特定平台中的同步变化跟踪器维护的版本中的和所述另一平台的计算机系统相对应的复制品ID所识别;和
其中在所述特定平台的数据存储的一个或多个物理表中所创建的变化所导致的所述特定平台中存储的复制品的数据项目的变化被所述版本中的复制品变化枚举所识别,所述复制品变化枚举对应于一个已发生变化的排序顺序。
9.一种在一计算机网络中将在平台的数据存储层中的数据项目的物理布局映射到平台的同步层中的逻辑视图的系统,所述计算机网络由多个不同类型的平台组成,用于存储相同数据项目的复制品,其中特定平台的限制或特征会要求复制品的数据项目依照不同的物理排列被存储在该特定平台的数据存储层上,其中当同步所述复制品时,每个复制品的数据项目必须从各平台的不同物理排列被映射到特定平台的同步层的一个逻辑视图中,所述特定平台的同步层的逻辑视图具有和在其它各个不同类型的平台中的逻辑视图相类似的布局,该系统包括:
用于编译的装置,在所述特定平台的计算机系统将逻辑模式编译成一个目录,所述目录被用于在同步层定义逻辑视图,所述逻辑视图具有和每个平台的逻辑视图类似的布局,并且所述逻辑模式包括:
变化单元,如果数据项目组的任何部分被改动,那么在同步其它复制品时整个数据项目组将被同步,这种情况下所述变化单元被用于定义数据项目组的粒度;以及
一致单元,用于定义最小数据项目组,在同步过程中,如果该最小数据项目组中任一个数据项目被改动,那么该最小数据项目组必须被报告;以及
用于使用所述目录将数据项目从物理层映射到逻辑视图的装置,所述逻辑视图具有和在一个或多个其它计算机系统的不同平台的逻辑视图类似的布局;以及
用于在每个平台的同步层处的逻辑视图中存储同步变化跟踪器的装置,所述同步变化跟踪器维护:
同步本地变化枚举,其对应于计算机系统的逻辑视图中的数据项目同步版本;以及
版本,其包含复制品ID,所述复制品ID用于识别对和相应的版本关联的数据项目做出变化的特定复制品。
10.如权利要求9所述的系统,其特征在于,各计算机系统处的存储有复制品的平台在计算机系统的同步层中包括一个逻辑模式,所述逻辑模式被编译成一个目录,所述目录可以被用于定义逻辑视图,所述逻辑视图具有对于每个平台而言类似的布局。
11.如权利要求9所述的系统,其特征在于,复制品被存储于其中的每个计算机系统的平台的数据存储层处的物理排列由用于存储复制品数据的一个或多个物理表定义。
12.如权利要求9所述的系统,其特征在于,
复制品被存储于其中的每个计算机系统的平台的数据存储层包括一个或多个文件夹,在所述一个或多个文件夹中,分组在共同的文件夹中的数据项目可以被同步,因此定义了不同平台的同步层之间的同步的范围;和
其中分组在共同的文件夹中的可以被同步的数据项目少于为一个复制品所存储的所有数据项目。
CNB2004100590787A 2003-07-29 2004-07-26 与物理存储表示无关地同步逻辑视图的方法和系统 Active CN100440206C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/629,254 2003-07-29
US10/629,254 US7216133B2 (en) 2003-07-29 2003-07-29 Synchronizing logical views independent of physical storage representations

Publications (2)

Publication Number Publication Date
CN1577287A CN1577287A (zh) 2005-02-09
CN100440206C true CN100440206C (zh) 2008-12-03

Family

ID=33541477

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100590787A Active CN100440206C (zh) 2003-07-29 2004-07-26 与物理存储表示无关地同步逻辑视图的方法和系统

Country Status (5)

Country Link
US (1) US7216133B2 (zh)
EP (1) EP1503313B1 (zh)
JP (1) JP4928717B2 (zh)
KR (1) KR101099202B1 (zh)
CN (1) CN100440206C (zh)

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060288298A1 (en) * 1999-08-12 2006-12-21 Robert Haitani System, method and technique for enabling users to interact with address fields of messaging applications
US20060288297A1 (en) * 1999-08-12 2006-12-21 Robert Haitani System, method and technique for enabling users to interact and edit address fields of messaging applications
US6996558B2 (en) 2002-02-26 2006-02-07 International Business Machines Corporation Application portability and extensibility through database schema and query abstraction
US8086568B2 (en) * 2002-02-26 2011-12-27 International Business Machines Corporation Peer to peer (P2P) concept query notification of available query augmentation within query results
US8375046B2 (en) * 2002-02-26 2013-02-12 International Business Machines Corporation Peer to peer (P2P) federated concept queries
US20080250003A1 (en) * 2002-02-26 2008-10-09 Dettinger Richard D Peer to peer (p2p) concept query abstraction model augmentation with federated access only elements
US7295852B1 (en) 2003-05-01 2007-11-13 Palm, Inc. Automated telephone conferencing method and system
US7590643B2 (en) * 2003-08-21 2009-09-15 Microsoft Corporation Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
US7529811B2 (en) * 2003-08-21 2009-05-05 Microsoft Corporation Systems and methods for the implementation of a core schema for providing a top-level structure for organizing units of information manageable by a hardware/software interface system
US8238696B2 (en) * 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US8166101B2 (en) * 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US8131739B2 (en) 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US7401104B2 (en) * 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
US7900133B2 (en) 2003-12-09 2011-03-01 International Business Machines Corporation Annotation structure type determination
US7904678B1 (en) * 2004-02-27 2011-03-08 Symantec Operating Corporation Technique for recovering mirror consistency in cooperative virtual storage
US20060136473A1 (en) * 2004-12-20 2006-06-22 Lamb James A Service data organization
US20060248128A1 (en) * 2005-04-29 2006-11-02 Microsoft Corporation Efficient mechanism for tracking data changes in a database system
NO20052719D0 (no) * 2005-06-06 2005-06-06 Ericsson Telefon Ab L M Synkronisering av informasjonsenheter med tilhorende referanser
US7680513B2 (en) * 2005-08-08 2010-03-16 Palm, Inc. Contact-centric user-interface features for computing devices
US20070100843A1 (en) * 2005-10-20 2007-05-03 Chen Daniel Q System and method for mapping between different information management systems
US20070130153A1 (en) * 2005-12-02 2007-06-07 Palm, Inc. Techniques to communicate and process location information from communications networks on a mobile computing device
US7739234B1 (en) * 2005-12-15 2010-06-15 Teradata Us, Inc. Techniques for synchronizing data store tables
US8005194B2 (en) * 2005-12-21 2011-08-23 Hewlett-Packard Development Company, L.P. Technique for handling incoming reply messages
US7917607B2 (en) * 2005-12-30 2011-03-29 Sap Ag Software management systems and methods, including use of such systems and methods in a provider-tenant environment
US7689593B2 (en) * 2005-12-30 2010-03-30 Sap Ag Systems and methods for accessing a shared space in a provider-tenant environment
US7606811B1 (en) * 2006-01-03 2009-10-20 Emc Corporation Methods and apparatus for synchronizing information
US7627595B2 (en) * 2006-12-06 2009-12-01 Verizon Data Services Inc. Apparatus, method, and computer program product for synchronizing data sources
US8069184B2 (en) * 2006-12-29 2011-11-29 Sap Ag Systems and methods to implement extensibility of tenant content in a provider-tenant environment
US7933869B2 (en) * 2006-12-29 2011-04-26 Sap Ag Method and system for cloning a tenant database in a multi-tenant system
US20080162587A1 (en) * 2006-12-29 2008-07-03 Ulrich Auer Server synchronization for maintenance activities
US8090685B2 (en) * 2007-09-14 2012-01-03 Microsoft Corporation Knowledge based synchronization of subsets of data with no move condition
US8171054B1 (en) 2007-12-21 2012-05-01 Emc Corporation Optimized fetching for customization object attributes
US8171006B1 (en) 2007-12-21 2012-05-01 Emc Corporation Retrieval of searchable and non-searchable attributes
US8255426B1 (en) 2007-12-21 2012-08-28 Emc Corporation Efficient storage of non-searchable attributes
US9348499B2 (en) 2008-09-15 2016-05-24 Palantir Technologies, Inc. Sharing objects that rely on local resources with outside servers
US8301583B2 (en) 2008-10-09 2012-10-30 International Business Machines Corporation Automated data conversion and route tracking in distributed databases
US9183260B2 (en) 2008-10-09 2015-11-10 International Business Machines Corporation Node-level sub-queries in distributed databases
US8284803B2 (en) 2009-12-30 2012-10-09 Microsoft Corporation Cross-scope synchronization of data item knowledge and corresponding metadata
US8949293B2 (en) 2010-12-17 2015-02-03 Microsoft Corporation Automatically matching data sets with storage components
KR20120107022A (ko) * 2011-03-14 2012-09-28 삼성전자주식회사 개인 정보 동기화 방법 및 장치
US9092482B2 (en) 2013-03-14 2015-07-28 Palantir Technologies, Inc. Fair scheduling for mixed-query loads
US8818944B2 (en) * 2011-06-30 2014-08-26 Microsoft Corporation Data change tracking and event notification
US8732574B2 (en) 2011-08-25 2014-05-20 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US8504542B2 (en) 2011-09-02 2013-08-06 Palantir Technologies, Inc. Multi-row transactions
US8560494B1 (en) 2011-09-30 2013-10-15 Palantir Technologies, Inc. Visual data importer
US9378526B2 (en) 2012-03-02 2016-06-28 Palantir Technologies, Inc. System and method for accessing data objects via remote references
US9471370B2 (en) 2012-10-22 2016-10-18 Palantir Technologies, Inc. System and method for stack-based batch evaluation of program instructions
US9348677B2 (en) 2012-10-22 2016-05-24 Palantir Technologies Inc. System and method for batch evaluation programs
US9367463B2 (en) 2013-03-14 2016-06-14 Palantir Technologies, Inc. System and method utilizing a shared cache to provide zero copy memory mapped database
US9740369B2 (en) 2013-03-15 2017-08-22 Palantir Technologies Inc. Systems and methods for providing a tagging interface for external content
US8909656B2 (en) 2013-03-15 2014-12-09 Palantir Technologies Inc. Filter chains with associated multipath views for exploring large data sets
US9898167B2 (en) 2013-03-15 2018-02-20 Palantir Technologies Inc. Systems and methods for providing a tagging interface for external content
US8868486B2 (en) 2013-03-15 2014-10-21 Palantir Technologies Inc. Time-sensitive cube
US20150135110A1 (en) * 2013-11-09 2015-05-14 International Business Machines Corporation Utilizing object cloning to enable nested drag and drop
US9105000B1 (en) 2013-12-10 2015-08-11 Palantir Technologies Inc. Aggregating data from a plurality of data sources
US8924429B1 (en) * 2014-03-18 2014-12-30 Palantir Technologies Inc. Determining and extracting changed data from a data source
CN106471489B (zh) 2014-06-30 2019-10-11 微软技术许可有限责任公司 管理具有灵活模式的数据
US20160026923A1 (en) 2014-07-22 2016-01-28 Palantir Technologies Inc. System and method for determining a propensity of entity to take a specified action
US10261943B2 (en) * 2015-05-01 2019-04-16 Microsoft Technology Licensing, Llc Securely moving data across boundaries
US10678762B2 (en) 2015-05-01 2020-06-09 Microsoft Technology Licensing, Llc Isolating data to be moved across boundaries
US10229124B2 (en) 2015-05-01 2019-03-12 Microsoft Technology Licensing, Llc Re-directing tenants during a data move
US9514205B1 (en) 2015-09-04 2016-12-06 Palantir Technologies Inc. Systems and methods for importing data from electronic data files
US10558339B1 (en) 2015-09-11 2020-02-11 Palantir Technologies Inc. System and method for analyzing electronic communications and a collaborative electronic communications user interface
US9652510B1 (en) 2015-12-29 2017-05-16 Palantir Technologies Inc. Systems and user interfaces for data analysis including artificial intelligence algorithms for generating optimized packages of data items
US10554516B1 (en) 2016-06-09 2020-02-04 Palantir Technologies Inc. System to collect and visualize software usage metrics
US11256762B1 (en) 2016-08-04 2022-02-22 Palantir Technologies Inc. System and method for efficiently determining and displaying optimal packages of data items
US10552531B2 (en) 2016-08-11 2020-02-04 Palantir Technologies Inc. Collaborative spreadsheet data validation and integration
US10373078B1 (en) 2016-08-15 2019-08-06 Palantir Technologies Inc. Vector generation for distributed data sets
EP3282374A1 (en) 2016-08-17 2018-02-14 Palantir Technologies Inc. User interface data sample transformer
US10650086B1 (en) 2016-09-27 2020-05-12 Palantir Technologies Inc. Systems, methods, and framework for associating supporting data in word processing
US10216379B2 (en) 2016-10-25 2019-02-26 Microsoft Technology Licensing, Llc User interaction processing in an electronic mail system
US10152306B2 (en) 2016-11-07 2018-12-11 Palantir Technologies Inc. Framework for developing and deploying applications
US10261763B2 (en) 2016-12-13 2019-04-16 Palantir Technologies Inc. Extensible data transformation authoring and validation system
US11157951B1 (en) 2016-12-16 2021-10-26 Palantir Technologies Inc. System and method for determining and displaying an optimal assignment of data items
US10509844B1 (en) 2017-01-19 2019-12-17 Palantir Technologies Inc. Network graph parser
US10180934B2 (en) 2017-03-02 2019-01-15 Palantir Technologies Inc. Automatic translation of spreadsheets into scripts
US10572576B1 (en) 2017-04-06 2020-02-25 Palantir Technologies Inc. Systems and methods for facilitating data object extraction from unstructured documents
US10606802B2 (en) 2017-05-15 2020-03-31 International Business Machines Corporation Catalog backup and recovery using logical mirroring
US10824604B1 (en) 2017-05-17 2020-11-03 Palantir Technologies Inc. Systems and methods for data entry
US10534595B1 (en) 2017-06-30 2020-01-14 Palantir Technologies Inc. Techniques for configuring and validating a data pipeline deployment
US10204119B1 (en) 2017-07-20 2019-02-12 Palantir Technologies, Inc. Inferring a dataset schema from input files
US10754820B2 (en) 2017-08-14 2020-08-25 Palantir Technologies Inc. Customizable pipeline for integrating data
US11016936B1 (en) 2017-09-05 2021-05-25 Palantir Technologies Inc. Validating data for integration
US11379525B1 (en) 2017-11-22 2022-07-05 Palantir Technologies Inc. Continuous builds of derived datasets in response to other dataset updates
US10552524B1 (en) 2017-12-07 2020-02-04 Palantir Technolgies Inc. Systems and methods for in-line document tagging and object based data synchronization
US10360252B1 (en) 2017-12-08 2019-07-23 Palantir Technologies Inc. Detection and enrichment of missing data or metadata for large data sets
US11176116B2 (en) 2017-12-13 2021-11-16 Palantir Technologies Inc. Systems and methods for annotating datasets
US10853352B1 (en) 2017-12-21 2020-12-01 Palantir Technologies Inc. Structured data collection, presentation, validation and workflow management
GB201800595D0 (en) 2018-01-15 2018-02-28 Palantir Technologies Inc Management of software bugs in a data processing system
US10599762B1 (en) 2018-01-16 2020-03-24 Palantir Technologies Inc. Systems and methods for creating a dynamic electronic form
US10885021B1 (en) 2018-05-02 2021-01-05 Palantir Technologies Inc. Interactive interpreter and graphical user interface
US11263263B2 (en) 2018-05-30 2022-03-01 Palantir Technologies Inc. Data propagation and mapping system
US11061542B1 (en) 2018-06-01 2021-07-13 Palantir Technologies Inc. Systems and methods for determining and displaying optimal associations of data items
US10795909B1 (en) 2018-06-14 2020-10-06 Palantir Technologies Inc. Minimized and collapsed resource dependency path

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010014890A1 (en) * 1998-02-06 2001-08-16 Gwoho Liu Methods for mapping data fields from one data set to another in a data processing environment
EP1130511A2 (en) * 2000-01-25 2001-09-05 FusionOne, Inc. Data transfer and synchronization system
US6295541B1 (en) * 1997-12-16 2001-09-25 Starfish Software, Inc. System and methods for synchronizing two or more datasets
US20010044805A1 (en) * 2000-01-25 2001-11-22 Multer David L. Synchronization system application object interface
US6324544B1 (en) * 1998-10-21 2001-11-27 Microsoft Corporation File object synchronization between a desktop computer and a mobile device
CN1407465A (zh) * 2001-08-13 2003-04-02 深圳市丛文软件技术有限公司 异构、异种数据库间适用的数据交换方法及装置
US6553037B1 (en) * 1999-04-08 2003-04-22 Palm, Inc. System and method for synchronizing data among a plurality of users via an intermittently accessed network

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5392390A (en) * 1992-04-10 1995-02-21 Intellilink Corp. Method for mapping, translating, and dynamically reconciling data between disparate computer platforms
US5473759A (en) * 1993-02-22 1995-12-05 Apple Computer, Inc. Sound analysis and resynthesis using correlograms
US5943676A (en) * 1996-11-13 1999-08-24 Puma Technology, Inc. Synchronization of recurring records in incompatible databases
US6405218B1 (en) * 1996-11-13 2002-06-11 Pumatech, Inc. Synchronizing databases
US6151606A (en) * 1998-01-16 2000-11-21 Visto Corporation System and method for using a workspace data manager to access, manipulate and synchronize network data
JPH11249943A (ja) * 1998-03-03 1999-09-17 Nec Corp 分散型データベースの同期管理システムおよび同期管理方法
US6925477B1 (en) * 1998-03-31 2005-08-02 Intellisync Corporation Transferring records between two databases
JP2000047919A (ja) * 1998-07-30 2000-02-18 Hitachi Ltd 仮想データベースレプリケーションシステム
JP2000194717A (ja) * 1998-12-28 2000-07-14 Nec Corp 異なる論理構造を持つデ―タベ―ス間のデ―タ整合方法および装置
US6535892B1 (en) * 1999-03-08 2003-03-18 Starfish Software, Inc. System and methods for exchanging messages between a client and a server for synchronizing datasets
US6401104B1 (en) * 1999-07-03 2002-06-04 Starfish Software, Inc. System and methods for synchronizing datasets using cooperation among multiple synchronization engines
US6393434B1 (en) * 1999-09-14 2002-05-21 International Business Machines Corporation Method and system for synchronizing data using fine-grained synchronization plans
JP4552242B2 (ja) * 1999-10-06 2010-09-29 株式会社日立製作所 仮想表インタフェースと該インタフェースを用いた問合せ処理システム及び方法
US7039656B1 (en) * 1999-10-20 2006-05-02 Yodlee.Com, Inc. Method and apparatus for synchronizing data records between a remote device and a data server over a data-packet-network
JP2001337858A (ja) * 2000-05-25 2001-12-07 Mitsubishi Electric Corp 複製データ管理システム
US8027848B2 (en) 2001-04-06 2011-09-27 Patient Keeper, Inc Context managing mobile computing framework for enterprise application
US6839564B2 (en) * 2001-04-25 2005-01-04 Nokia Corporation Synchronization of database data
US7346616B2 (en) * 2002-03-20 2008-03-18 Extended System, Inc. Synchronizing data shared between two devices independent of any other devices that may also share the data
US6721871B2 (en) * 2002-04-02 2004-04-13 Nokia Corporation Method and apparatus for synchronizing data stores with respect to changes in folders
US6973299B2 (en) * 2003-08-01 2005-12-06 Microsoft Corporation Unified contact list

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6295541B1 (en) * 1997-12-16 2001-09-25 Starfish Software, Inc. System and methods for synchronizing two or more datasets
US20010014890A1 (en) * 1998-02-06 2001-08-16 Gwoho Liu Methods for mapping data fields from one data set to another in a data processing environment
US6324544B1 (en) * 1998-10-21 2001-11-27 Microsoft Corporation File object synchronization between a desktop computer and a mobile device
US6553037B1 (en) * 1999-04-08 2003-04-22 Palm, Inc. System and method for synchronizing data among a plurality of users via an intermittently accessed network
EP1130511A2 (en) * 2000-01-25 2001-09-05 FusionOne, Inc. Data transfer and synchronization system
US20010044805A1 (en) * 2000-01-25 2001-11-22 Multer David L. Synchronization system application object interface
CN1407465A (zh) * 2001-08-13 2003-04-02 深圳市丛文软件技术有限公司 异构、异种数据库间适用的数据交换方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JUNDE SONG DATA SYNCHRONIZATION IN THE MOBILE INTEMET. LIGANG REN.COMPUTER SUPPORTED COOPERATIVE WORK IN DESIGN,Vol.2002 . 2002
JUNDE SONG DATA SYNCHRONIZATION IN THE MOBILE INTEMET. LIGANG REN.COMPUTER SUPPORTED COOPERATIVE WORK IN DESIGN,Vol.2002 . 2002 *

Also Published As

Publication number Publication date
US7216133B2 (en) 2007-05-08
EP1503313B1 (en) 2017-08-23
JP4928717B2 (ja) 2012-05-09
JP2005050334A (ja) 2005-02-24
KR20050013932A (ko) 2005-02-05
KR101099202B1 (ko) 2011-12-27
CN1577287A (zh) 2005-02-09
EP1503313A1 (en) 2005-02-02
US20050027747A1 (en) 2005-02-03

Similar Documents

Publication Publication Date Title
CN100440206C (zh) 与物理存储表示无关地同步逻辑视图的方法和系统
CN110019215B (zh) 多重租赁数据库系统中的键模式管理
CN110147369B (zh) 多重租赁数据库系统中的数据分离和写入重新定向
CN102207957B (zh) 部分项改变跟踪和同步
JP5289063B2 (ja) 同期ピア参加モデル
CN101568919B (zh) 具有分布式存储的联网计算机系统中的单个数据视图
US7441049B2 (en) Simplified application object data synchronization for optimized data storage
US5999947A (en) Distributing database differences corresponding to database change events made to a database table located on a server computer
US7831558B2 (en) Bi-directional data modification with synchronization
US9165047B2 (en) Data synchronization system and method
US6393434B1 (en) Method and system for synchronizing data using fine-grained synchronization plans
CN100555279C (zh) 不用快照的项同步系统和方法
CN101802815B (zh) 数据-驱动同步
KR20090071569A (ko) 복수의 상이한 타입의 사용자 디바이스에 분산된 데이터 파일에 대한 사용자 액세스 제공
CN102804133B (zh) 一种用于管理系统可扩展性的方法和设备
CN101421726A (zh) 偶尔连接的应用服务器
CN101729442A (zh) 一种实现内容共享的方法和装置
CN102272751B (zh) 在数据库环境通过背景同步的数据完整性
US20020087556A1 (en) Method and system for synchonizing data
JP2001306372A (ja) 文書管理方法およびその方法を実施するためのプログラムを記憶した記憶媒体
US20080294701A1 (en) Item-set knowledge for partial replica synchronization
JP2005202851A (ja) 仮想私設組織に対するポリシの実施システム及びその方法
JP2004302662A (ja) ジャーナル取得・配付装置、ジャーナル取得・配付方法、その方法をコンピュータに行わせるプログラム
Veeraraghavan et al. Fidelity-aware replication for mobile devices
JP4100094B2 (ja) コンテンツ管理装置、コンテンツ提供システム及び管理装置制御プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

TR01 Transfer of patent right

Effective date of registration: 20191018

Address after: California, USA

Patentee after: Si Wei Yun

Address before: Washington State

Patentee before: Micro soft technique license Co., Ltd

TR01 Transfer of patent right