CN102770854B - 自动同步冲突解决 - Google Patents

自动同步冲突解决 Download PDF

Info

Publication number
CN102770854B
CN102770854B CN201180011793.1A CN201180011793A CN102770854B CN 102770854 B CN102770854 B CN 102770854B CN 201180011793 A CN201180011793 A CN 201180011793A CN 102770854 B CN102770854 B CN 102770854B
Authority
CN
China
Prior art keywords
computing equipment
sync item
conflict
item
resolver
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.)
Expired - Fee Related
Application number
CN201180011793.1A
Other languages
English (en)
Other versions
CN102770854A (zh
Inventor
C.M.哈根
B.D.雷米克
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN102770854A publication Critical patent/CN102770854A/zh
Application granted granted Critical
Publication of CN102770854B publication Critical patent/CN102770854B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • 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
    • 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
    • G06F16/273Asynchronous replication or reconciliation
    • 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
    • G06F16/275Synchronous replication

Abstract

在第一计算设备上做出在第一计算设备上对第一同步项进行的改变与在第二计算设备上对第二同步项进行的改变之间是否具有同步冲突的确定。如果同步冲突存在,则执行基于规则的冲突解决来自动解决同步冲突。基于规则的冲突解决至少部分基于对第一同步项做出的改变的类型、对第二同步项做出的改变的类型和多个规则的集合。解决的通知随后被发送到第二计算设备。

Description

自动同步冲突解决
背景技术
当前,许多人使用多台计算机,诸如其家用计算机、工作用计算机、膝上型计算机等等。在使用多台计算机时,可能出现用户期望在两台计算机上同步对文档进行的改变的情况。这种同步允许在计算机之一上对文档做出的改变也自动地在另一台计算机上做出。然而,这种同步不是没有问题的。一个这样的问题是在其能够相互同步之前可能在两台计算机上对这些文档做出不同的改变,这使之难以准确地确定如何同步这些文档。
发明内容
提供这个发明内容部分来以简化的形式介绍下面在具体描述部分中进一步描述的概念的选择。这个发明内容部分并不打算识别所请求保护的主题的关键特征或基本特征,也不打算用于限制所请求保护的主题的范围。
根据一个或多个方面,在第一计算设备上做出在第一计算设备上对第一同步项进行的改变与在第二计算设备上对第二同步项进行的改变之间是否具有同步冲突的确定。执行基于规则的冲突解决(方案)(resolution)来自动解决同步冲突。基于规则的冲突解决至少部分基于对第一同步项做出的改变的类型、对第二同步项做出的改变的类型和多个规则的集合。该解决的通知随后被发送到第二计算设备。
附图说明
在整个附图中使用相同的数字来引用相似的特征。
图1说明根据一个或多个实施例的实现自动同步冲突解决的示例系统。
图2是说明根据一个或多个实施例的用于识别哪个计算设备是同步冲突的解决器(resolver)的示例状态图表的框图。
图3说明根据一个或多个实施例的识别解决同步冲突的结果的示例图表。
图4是说明根据一个或多个实施例的用于自动同步冲突解决的示例过程的流程图。
图5是说明根据一个或多个实施例的用于使用规则集合来自动解决同步冲突的示例过程的流程图。
图6说明根据一个或多个实施例的能够被配置来实现自动同步冲突解决的示例计算设备。
具体实施方式
在本文讨论自动同步冲突解决。诸如文件和文件夹之类的不同项能够在多个计算设备上被同步。多个计算设备之中的每一个计算设备保持它自己的对于这些项的本地拷贝并且将对那些项进行的改变与其他计算设备同步。当出现在不同的计算设备上具有对项进行的相冲突的改变的情况时,这些计算设备之中的一个成为该冲突的解决器。该解决器识别对这些项做出的改变的类型,并应用规则的集合来自动确定如何解决这些相冲突的改变。该解决器随后按照利用该规则集合之中的合适规则所确定的方式来解决这些相冲突的改变,并将该解决通知其他的计算设备。
图1说明根据一个或多个实施例的实现自动同步冲突解决的示例系统100。系统100包括能够经由网络106与同步服务104通信的多(x)个计算设备102。网络106可以是各种不同的网络,这包括因特网、局域网(LAN)、共用电话网络、蜂窝或其他无线电话网络、内联网、其他公用和/或专用网络、其组合等等。
每个计算设备102可以是各种不同类型的设备。例如,计算设备102可以是桌上型计算机、移动站、娱乐设施、通信耦合到显示设备的机顶盒、电视、蜂窝或其他无线电话、个人数字助理(PDA)、游戏控制台、车用计算机等。因而,每个计算设备102的范围可以从具有大量内存和处理器资源的全资源设备(例如个人计算机、游戏控制台)到具有有限内存和/或处理资源的低资源设备(例如传统的机顶盒、手持式游戏机)。不同的计算设备102可以是相同类型或二者择一地不同类型的设备。
同步服务104能够使用各种不同类型的计算设备之中的一个或多个来实现。类似于计算设备102的讨论,服务104能够在从具有大量内存和处理器资源的全资源设备到具有有限内存和/或处理资源的低资源设备的范围中进行实现。
每个计算设备102包括具有同步馈送模块114、解决器识别模块116、冲突解决模块118和规则集合120的同步模块112。同步馈送模块114识别对计算设备102上的项的本地拷贝做出的改变并将那些改变的通知发送到具有那些项的本地拷贝的其他计算设备102。解决器识别模块116识别其中在对同步项的两个或多个拷贝进行的改变之间或在对两个或多个不同的同步项进行的改变之间的同步冲突存在的情况。当同步项的两个或多个拷贝在不同的计算设备102上以不同的方式被改变时,同步冲突(也被简称为冲突)可能存在。当是文件夹的同步项被改变并且是那个文件夹内的文件或其他文件夹的同步项也被改变时,同步冲突也可能存在。各种不同类型的改变能够导致同步冲突,诸如文件的编辑、文件或文件夹的重命名、文件或文件夹的删除等等,如在下面更详细讨论的。当同步冲突存在时,每个解决器识别模块116也确定包括那个解决器识别模块116的计算设备102是否负责解决该同步冲突。
每个冲突解决模块118在包括该冲突解决模块118的计算设备102负责解决同步冲突时为该计算设备102解决同步冲突。同步冲突由冲突解决模块118基于如在下面更详细讨论的规则集合120来自动解决。同步冲突的解决被称为自动的,这是因为它典型地被执行而无需任何的如何解决同步冲突的用户输入或用户指示。
每个计算设备102也具有相应的存储设备122。存储设备122可以是固定的或可移动的存储设备。在一个或多个实施例中,存储设备122被包括作为计算设备102的一部分(例如,计算设备102的内部磁盘驱动器)。作为选择,这个存储设备能够诸如经由总线(例如IEEE1394总线、通用串行总线(USB)、无线通用串行总线(无线USB)等)、经由本地网(例如,LAN)等耦合到计算设备102。虽然在图1的计算设备102中示出单个存储设备122,但是将意识到:计算设备102能够包括多个存储设备122。
在一个或多个实施例中,同步服务104有助于在计算设备102上项的同步。同步服务104包括同步馈送控制模块124,其从同步馈送模块114接收同步馈送并将同步馈送转发至在其上面同步项的其他计算设备102的其他同步馈送模块114。同步馈送包括识别对同步项做出的改变的信息,并且也能够包括这些同步项本身。在一个或多个实施例中,同步馈送控制模块124将这些同步馈送存储某一时间量,从而允许这些同步馈送从一个计算设备102传送到另一个,即使这两个计算设备可能没有同时与同步服务104通信。
应注意:虽然在图1中示出同步服务104,但是在其他的实施例中没有这样的服务需要被使用。例如,能够在计算设备102上直接地经由网络106同步项而无需同步服务104的辅助。通过另一个示例,通过计算设备102经由有线或无线连接并且独立于网络106直接地相互通信而能够在计算设备102上同步项。
在其上面同步项的计算设备102能够以各种不同的方式来识别。在一个或多个实施例中,特定计算设备102的用户识别与之同步项的一个或多个其他计算设备102。这一个或多个其他计算设备102能够例如经由在特定计算设备102上显示或以其它方式呈现的用户接口来识别。在其上面同步项的这些计算设备102包括例如用户拥有和/或使用的其他计算设备102。
作为选择,计算设备102能够与诸如同步服务104之类的远程服务通信来识别可能的在其上面同步项的其他计算设备102。这些可能的其他计算设备能够以不同的方式来识别,诸如通过包括用户选择来向同步服务104注册用于同步的计算设备、用户从其登录到同步服务104的计算设备、用户使用相同的用户证书(诸如id和口令)从其登录到同步服务104的计算设备等等来识别。同步服务104保持这些可能的其他计算设备的记录。这个记录能够由计算设备102来访问,并且由计算设备102显示或以其它方式呈现的用户接口允许用户从这些可能的计算设备中选择一个或多个计算设备。这些选择的计算设备是在其上面同步项的设备。
在其他可供选择的实施例中,在其上面同步项的计算设备以不同的方式来识别。例如,项能够在用户从其登录到远程服务(诸如同步服务104)或使用相同的用户证书(诸如id和口令)登录到远程服务的所有计算设备102上进行同步。通过另一个示例,用户能够经由利用同步服务104所呈现的用户接口来指定何时利用特定计算设备将用户登录到同步服务104、是否应用设置将利用那个特定计算设备来漫游。
应注意:虽然本文中的讨论包括对计算设备上同步项的引用,但是也能够在同一计算设备的不同部分上同步项。例如,计算设备102的第一用户的文件夹(例如,文件夹users\user1\photos(多个用户\用户1\相片))和同一计算设备102的第二用户的文件夹(例如,文件夹users\user2\pictures(多个用户\用户2\照片))二者能够存储在同一计算设备102的同一存储设备122上。本文中涉及在计算设备上同步项的讨论类似地适用于在同一计算设备的不同部分上同步项。
还应注意:能够在计算设备上同步项而与登录到计算设备的用户无关。同步项能够由使用不同的用户证书登录到远程服务的不同用户来改变。被识别为要进行同步的项被同步而与对项做出改变的用户无关。
各种不同的项能够在计算设备102上进行同步。能够被存储或以其他方式被保持在存储设备122上的信息或数据能够是在计算设备102上同步的项。在一个或多个实施例中,跨计算设备102同步的项包括文件和文件夹(也被称为目录)二者。一个或多个其他文件夹和/或文件能够存储在文件夹中。其他类型的信息或数据也能够是在计算设备102上同步的项,诸如配置值或设置。这些其他类型的信息或数据不必是文件或文件夹,而能够是在计算设备102的操作期间例如作为数据结构被保持在存储器中的信息或数据。在计算设备102上同步的项也被称为同步项。
同步的特定项能够以不同的方式来识别。在一个或多个实施例中,存储设备122上的一个或多个特定文件夹被选择用于同步。这一个或多个特定文件夹能够包括默认文件夹和/或用户选择的文件夹(或计算设备102的其他组件或模块)。存储在这一个或多个文件夹内的文件和/或其他文件夹是同步项。作为选择,同步的特定项能够以其他的方式来识别,诸如由用户或管理员选择的特定文件、在存储设备122上的所有文件和/或文件夹、在存储设备122的特定分区或卷中的所有文件和/或文件夹等。
同步馈送模块114监视特定计算设备102上的同步项,其中同步馈送模块114被包括在特定计算设备102中以识别何时同步项被改变。同步馈送模块114能够以各种不同的方式来监视同步项。例如,模块114能够保持同步项的记录,该记录针对每一个同步项包括该同步项的识别符、可选地该同步项的版本号以及通过对该同步项应用各种不同的常规哈希(hash)函数而生成的该同步项的哈希值。模块114能够以规则或不规则间隔检查这些同步项,检查自最后一次检查这些同步项以来是否已改变这些同步项之中的一个或多个。这个检查能够例如通过为同步项生成新的哈希值并将新的哈希值与记录中用于该同步项的哈希值进行比较来执行。如果新的哈希值与记录中用于该同步项的哈希值是不同的,则对该同步项进行的改变被识别。
作为选择,不是保持对于每个同步项具有哈希值的记录,而是该记录能够针对每个同步项包括时间戳。同步项的时间戳是该同步项最后被改变的时间。时间戳能够例如通过改变同步项的应用或计算设备的操作系统来记录。模块114能够以规则或不规则间隔来检查同步项,从而检查自这些同步项被检查的最后时间以来是否已改变这些同步项中的一个或多个。这个检查能够通过例如将同步项的当前时间戳与记录中该同步项的时间戳进行比较来执行。如果该同步项的当前时间戳与记录中该同步项的时间戳是不同的,则对该同步项进行的改变被识别。
作为选择,对同步项进行的改变能够以不同的方式来识别。例如,当同步项被改变时,能够利用另一个组件或模块(例如,利用做出改变的应用、利用运行在与模块114相同的计算设备上的操作系统等等)来通知模块114。
同步馈送模块114给在其上面同步项的其他计算设备102的同步馈送模块114之中的每一个传送指示已被识别的每一个改变的同步项的通知。这个指示包括由模块114在记录中保持的信息(例如同步项的标识符、同步项的版本号以及同步项的哈希值和/或时间戳)。被改变的同步项还被传送到其他计算设备102的同步馈送模块之中的每一个。相应地,每次对同步项进行的改变被一个计算设备102的同步模块112识别时,被改变的同步项被传送到在其上面同步该项的其他计算设备102的同步模块112。作为选择,同步模块112能够将对一个或多个同步项进行的一个或多个改变存储某一时间量,并且这个时间量能够变化。例如,这个时间量可以是特定分钟数、特定小时数、在至少阈值数量的改变已被存储之前流逝的时间量、在某一其它事件发生(例如包括同步模块112的计算设备登录到远程服务、包括同步模块112的计算设备的带宽量或计算设备耦合至的网络变得空闲等)之前流逝的时间量等等。
在其它实施例中,被改变的同步项的指示以及被改变的同步项本身二者不需要被传送到在其上面同步该项的其它计算设备102。例如,只有被改变的同步项能够被发送(该项本身充当被改变的同步项的指示)。通过另一个示例,被改变的同步项的指示能够被发送,但是被改变的同步项本身不被发送,直至被另一个计算设备请求(例如,被是冲突的解决器的计算设备请求,如在下文更详细讨论的)。
在一个或多个实施例中,同步馈送模块114保持对同步项做出的改变以及冲突的解决的历史或其它记录,而不管在哪个计算设备上做出该改变。这个历史允许例如用户或其它组件或模块查看和识别已对同步项做出的过去的改变以及过去的冲突如何被解决。这个历史或记录能够包括各种不同数量的改变和冲突解决。例如,只有最近的改变和冲突解决能够被保持在记录中,大量的改变(例如,100)和冲突解决能够被保持在记录中,占据特定空间量(例如,1兆字节)的改变和冲突解决能够被保持,等等。
每个计算设备102保持同步项的拷贝。相应地,本文中讨论的自动同步冲突解决所支持的同步也被称为多主复制系统(multimasterreplicationsystem)。同步项的拷贝也能够但不一定通过同步服务104来保持。如下更具体讨论的冲突解决期间丢失的同步项的拷贝也能够通过同步服务104来保持。例如,没有根据如下更具体讨论的规则保持的同步项的拷贝仍然能够通过同步服务104来保持(例如,以允许用户回滚或撤销(rollbackorundue)使用在本文讨论的技术自动做出的改变)。
在两个同步项之间可能出现同步冲突。当同步项的两个或多个拷贝被改变并且那些改变的指示在大约相同的时间经由同步馈送模块114被传送时,同步冲突发生。在是文件夹的同步项被改变、并且是那个文件夹内的文件或其它文件夹的同步项也被改变、而且那些改变的指示在大约相同的时间经由同步馈送模块114被传送时,同步冲突也发生。在没有冲突已被解决的指示的情况下,同步馈送模块114确定:当模块114基于它从其它模块114已接收到的被改变的同步项的指示以及它已识别的被改变的同步项的指示而确定对于同一同步项(或对于另一个同步项内的同步项)具有两个或多个改变时,冲突存在。
一旦接收到对其而言没有冲突的被改变的同步项的指示,同步馈送模块114就替换存储设备122中那个同步项的拷贝。同步馈送模块114也更新针对该同步项的其记录,以反映被改变的同步项的哈希值或时间戳。这个时间戳指的是在其上最初做出该改变的计算设备上改变该项时的时间戳。
在每一个同步馈送模块114在传送其改变的同步项的指示以及改变的同步项的拷贝的指示时,在其上面同步这些项的每一个计算设备102具有相冲突的被改变的同步项之中的每一个的拷贝。通常,在其上面同步这些项的计算设备102中的一个成为该冲突的解决器,并基于规则集合来解决该冲突。解决器随后将该冲突的解决传送到在其上面同步这些项的其他计算设备102。
当冲突发生时,每一个同步馈送模块114识别默认赢家,其是初始被识别为将要使用的同步项的拷贝的同步项的拷贝。默认赢家能够以各种不同的方式来识别。在一个或多个实施例中,默认赢家被识别为具有最近时间戳的同步项的拷贝(或被改变的同步项的指示)。作为选择,能够使用不同的标准,诸如具有至少最近时间戳的同步项的拷贝(或被改变的同步项的指示)、具有为最大值的哈希值的同步项、具有数值最小的哈希值的同步项、来自已被宣布为主要设备(或主设备或默认获胜设备)的计算设备102的同步项等等。虽然默认赢家能够以不同的方式来识别,但是不同的同步馈送模块114一般识别默认赢家,以致每一个模块114识别相同的赢家。不是默认赢家的同步项的拷贝均是默认输家。
默认赢家作为同步项的正确版本向用户显示或以其他方式呈现给用户,尽管这在应用如下所讨论的规则集合120之后可能改变。默认输家单独地诸如在单独的文件夹或存储设备122的一部分中被保持。然而,在其上面同步这些项的每个计算设备102具有包括默认赢家和默认输家的相冲突的被改变的同步项之中的每一个的拷贝。默认输家因而在计算设备102上是可用的,尽管一般不被显示为可用于计算设备102的用户。作为选择,这些默认输家的一个或多个指示能够显示或以其他方式呈现给计算设备102的用户。
作为选择,默认赢家对于计算设备102的用户而言不一定被识别。相反,这些同步项的多个拷贝能够作为正确版本(但是可选地,利用具有冲突的指示)显示给用户。
在其它实施例中,默认赢家能够由不同的模块以不同的方式来识别(这可能导致不同的模块识别不同的默认赢家)。然而,单个计算设备102成为冲突的解决器,如在下面更详细讨论的。因而,不同的同步模块112能够以不同的方式来表示冲突(包括以不同的方式识别默认赢家),而单个计算设备成为该冲突的解决器。相应地,是默认赢家的特定项能够基于成为该冲突的解决器的计算设备而变化。
在其上面同步项的计算设备102之中的一个成为冲突的解决器。虽然多个计算设备102确定为默认赢家的同步项的拷贝,但是只有一个计算设备102成为该冲突的解决器。对于该冲突而言具有单个解决器,这消除由于多个计算设备102同时解决冲突而导致的级联集合的冲突的可能性。冲突的解决器能够以各种不同的方式来确定,只要只有一个计算设备102成为该冲突的解决器。
虽然针对该冲突具有单个解决器,但是在其上面同步这些项的其它计算设备102以规则或不规则间隔尝试成为该冲突的解决器。这样的尝试继续,直至该冲突被解决。因而,如果初始为该冲突的解决器的计算设备102(例如,由于计算设备的故障、计算设备被断电或退出远程服务等)不再成为解决器,另一个计算设备102能够成为解决器并完成解决该冲突。
在每个计算设备102中,解决器识别模块116确定是否那个计算设备102是该冲突的解决器。在一个或多个实施例中,每个解决器识别模块116尝试写入特定值作为指示模块116正尝试解决该冲突的令牌(token)。解决器识别模块116使用开放式并发技术(optimisticconcurrencytechnique)来验证多个解决器识别模块116是否尝试在大约相同的时间写到那个令牌,这些模块116之中只有一个将成功写到那个令牌。包括成功写到令牌的解决器识别模块116的计算设备102是该冲突的解决器。
作为选择,其它的技术能够用来识别哪个计算设备102是该冲突的解决器。例如,能够遵循计算设备的预定义排序,诸如选择具有最低(或二者择一,最高)数值设备标识符的计算设备作为解决器。通过另一个示例,同步服务104能够有助于识别哪个计算设备102是该冲突的解决器,诸如通过保持被解决器标识模块116请求以便成为冲突的解决器的令牌。同步服务104一次仅向一个解决器标识模块116提供令牌,且不给另一模块116提供该令牌,直到该令牌被返回。包括具有令牌的解决器标识模块116的计算设备102是该冲突的解决器。通过再一个示例,能够接收将成为该冲突的解决器的计算设备102之中的一个的用户选择。
图2是说明根据一个或多个实施例的用于识别哪个计算设备是同步冲突的解决器的示例状态图表200的框图。状态图表200被每个解决器识别模块(例如,图1的模块116)使用。状态图表200包括初始状态202、待定状态204、解决状态206和空闲状态208。与状态图表200一起,解决器识别模块使用解决器值。解决器值是能够由不同计算设备的解决器标识模块读取和写入的值。这个解决器值例如是在使用开放式并发时的令牌值。
初始状态202是解决器标识模块的初始状态,并且是在解决器标识模块开始运行时解决器标识模块的状态。如果同步馈送模块(例如,图1的模块112)确定具有冲突,则解决器标识模块记录当前的解决器值并过渡到待定状态204。然而,如果同步馈送模块确定没有冲突,则解决器识别模块过渡到空闲状态208。当在空闲状态208中时,解决器识别模块保留在空闲状态208中,直到同步馈送模块确定具有冲突,此时解决器识别模块记录当前的解决器值并过渡到待定状态204。
在待定状态204中,解决器识别模块通过尝试写新的解决器值来尝试成为冲突的解决器。在处于待定状态204中的同时,以规则或不规则间隔,解决器识别模块还读取当前的解决器值并将读取的值与以前记录的解决器值进行比较。在一个或多个实施例中,这个间隔是时间2t,其中t的值能够变化(例如30秒、一分钟、一小时、五小时等)。如果这些值是相同的并且冲突仍然存在,则解决器识别模块保留在待定状态204中。然而,如果这些值不是相同的并且冲突仍然存在,则解决器识别模块尝试写入新的解决器值。解决器尝试写入的新的解决器值是例如包括解决器标识模块的计算设备的标识符和全球唯一标识符(GUID)的组合(例如,级联)。如果尝试写失败,则解决器标识模块保留在待定状态204中,并记录当前的解决器值以便在下一个间隔之后在比较时使用。然而,如果尝试写成功,则解决器标识模块过渡到解决状态206。在处于待定状态204中的同时,如果冲突不再存在,则解决器标识模块过渡到空闲状态208。
当解决器标识模块处于解决状态206中时,包括那个解决器标识模块的计算设备是冲突的解决器。计算设备的冲突解决模块(例如,图1的模块118)基于如下更详细讨论的规则集合来解决这些冲突。解决器标识模块保留在解决状态206中,解决冲突并在每个冲突被解决之后或以规则或不规则间隔写入新的解决器值。这个规则或不规则间隔小于在处于待定状态204中时比较解决器值的间隔,并且在一个或多个实施例中,这个间隔位于时间t。如果新的解决器值的写失败或另外遇到错误,则解决器标识模块记录当前的解决器值并过渡到待定状态204。在冲突被解决之后,解决器标识模块过渡到空闲状态208。
转到图1,由为冲突的解决器的计算设备102的冲突解决模块118来解决冲突。这个解决基于一个或多个规则的集合120来执行。不同类型的冲突可能出现,诸如牵涉对同一文件的不同改变的冲突、牵涉文件的改变和删除的冲突、牵涉文件的改变和其中存储该文件的文件夹的删除的冲突等等。此外,对文件进行的改变可能是对文件的内容(例如文件数据本身)进行的改变或可选地对与文件相关联的元数据(例如,与音乐文件相关联的播放计数或用户评级)进行的改变。
冲突解决模块118识别已出现的冲突的类型,并从规则集合120中识别适用于那种类型的冲突的规则。所识别的规则规定该冲突将如何被解决,并且冲突解决模块118根据所识别的规则来解决该冲突。
对同步项进行的各种不同的改变可能潜在地导致冲突。这些改变能够包括例如项的重命名、项的删除、改变项的内容、改变与项相关联的元数据等。表1列出可能潜在地导致冲突的对同步项进行的改变的类型的示例。将意识到:表1中的改变只是示例,并且其它类型的改变也可能潜在地导致冲突。
表1
改变 描述
文件内容编辑 对文件内容或文件的数据进行的编辑
文件重命名 对文件的名称进行的编辑
文件删除 文件的删除
父文件夹重命名 对包含其它文件夹和/或文件的文件夹的名称进行的编辑
父文件夹删除 包含其它文件夹和/或文件和删除文件夹中的所有项的文件夹的删除
文件添加(相同) 相同的(例如具有相同的哈希值)并具有相同名称的两个文件的添加
文件添加(不同) 不是相同的(例如具有不同的哈希值)但具有相同名称的两个文件的添加
子文件夹删除 位于另一个(父)文件夹内的文件夹的删除
子文件夹添加 向已有文件夹添加文件夹
文件元数据编辑(单实例值) 对于对其而言仅允许一个值(例如,音乐文件的评级)的文件元数据进行的编辑
文件元数据编辑(多实例值) 对于对其而言允许多个值(例如,在照片文件中标记的个人的名字)的文件元数据进行的编辑
文件元数据编辑(自动改变) 利用应用以自动的方式对文件元数据(例如,音乐文件的播放计数值)做出的编辑。
基于这些不同的改变,应用规则集合来解决冲突。能够应用各种不同的规则。表II列出能够应用来解决冲突的规则的示例。将意识到:表II中的规则只是示例,并且其它规则能够交替地被应用。在一个或多个实施例中,表II中的规则按照其顺序来检查(例如,规则1第一,规则2第二,等等),并且只要应用的规则被识别,就使用那个规则来解决冲突。
表II
规则编号 描述
1 在编辑-删除冲突中,编辑胜出。对于文件编辑-文件夹删除冲突,文件和文件夹被保持,但是文件夹中的唯一文件是与之存在冲突的文件。
2 在添加-删除冲突中,添加胜出。对于文件添加-文件夹删除冲突,文件和文件夹被保持,但是文件夹中的唯一文件是新添加的文件。
3 在编辑-编辑冲突中,如果可能的话,合并这些项。如果这些项不能被合并的话,则保持项的两个版本,除非由自动系统做出改变(在这种情况下改变被评估,并且要么两个文件被保持,要么赢家被挑选)。
4 包括多个删除的冲突导致两个项的删除。
5 对于项的多个重命名,保持最近的改变。
6 如果没有以前的规则适用的话,则项的两个版本被保持。
正如能够从表II的示例规则中看出的,各种不同的规则能够被应用来获得各种不同的结果。应用规则的结果能够是保持同步项(例如,在表II的规则中胜出的项)的版本之一。两个同步项的合并也可能是在一些情形中的结果。两个同步项的合并是指组合两个同步项中的改变,以致两个版本中的改变被保持。在一个或多个实施例中,冲突解决模块118被配置有指示哪些项能够被合并以及在什么场合下那些项能够被合并的信息。模块118能够由例如模块118的开发人员或管理员利用这个信息来配置。例如,模块118能够被配置有这样的指示:为多实例值的元数据(例如,在照片文件中标记的个人的名字)能够通过保持实例的多个值来一起合并,但是为单实例值的元数据(例如,音乐文件的评级)不能被合并,这是因为只有一个值能够被保持。通过另一个示例,模块118能够被配置有这样的指示:通过保持重命名的文件和对文件内容进行的编辑二者能够将文件重命名和文件内容的编辑合并。
在其中文件的两个版本(默认赢家和默认输家)被保持的情况下,两个版本的指示利用计算设备102来呈现。这个指示能够是例如指示具有同步项的两个版本的特定命名约定,诸如包括命名为“foo.docx”的文件和命名为“fooA.docx”的文件或每个文件具有包括何时该文件被改变的时间戳的名称。作为选择,两个版本的指示能够利用计算设备102以不同的方式、诸如通过指示冲突的对话框、冲突的标记或其它指示符等来显示或以其他方式来呈现。
作为选择,在一个或多个实施例中,附加的组件或模块能够被冲突解决模块118调用来辅助用户组合同步项的两个版本或从同步项的两个版本中选择。例如,如果冲突是对字处理文档进行的改变,字处理应用的合并功能能够被调用来创建能够显示给用户的合并的文档。这个合并的文档是包括并识别同步项的两个版本的改变的文档(根据字处理应用使用来提供合并功能的技术)。其它应用的类似的合并或组合功能也能够被调用。
图3说明根据一个或多个实施例的识别解决同步冲突的结果的示例图表300。在图表300中,默认赢家的改变的类型沿着(垂直)轴302来显示,而默认输家的改变的类型沿着(水平)轴304来显示。这两种类型的改变在图表300中的交集(intersection)是识别是否具有冲突的单元(cell),以及如果是这样的话,那个冲突的解决是什么。值“M”指示同步项的拷贝被一起合并。值“W”指示默认赢家被保持并且默认输家被丢弃或被忽略。值“S”指示默认赢家和默认输家被交换,这导致曾是默认输家被保持而曾是默认赢家被丢弃或被忽略。值“B”指示默认赢家和默认输家二者被保持。值“O”指示文件成为孤儿,因此文件夹被保持但包括单个文件(其是与之存在冲突的文件)。值“N”指示没有冲突。
数字被包括在图表300的某些单元中。这个数字指的是被应用来达到所指示的结果的特定规则(源自上述的表II)。
作为示例,考虑图表300,如果默认赢家是文件删除并且默认输家是文件元数据编辑(单实例值),则相交单元(带有1S的值)指示:根据表II的规则1,所编辑的文件被保持而不被删除。通过另一个示例,如果默认赢家是文件内容编辑并且默认输家是文件重命名,则相交单元(带有3M的值)指示:根据表II的规则3,这些项被一起合并,以致文件内容编辑和文件重命名二者被保持。
应当注意:三个或更多同步项可能彼此相冲突。例如,特定同步项的三个或多个拷贝可能大约同时被改变。这样的冲突被逐一解决,其中同步项中的一个是如上所讨论的默认赢家,而剩余的同步项是默认输家。解决器随后逐一解决这些冲突,将默认赢家与默认输家中的一个进行比较,并基于如上所述的规则集合来解决那两个同步项之间的冲突。应注意:在这个过程期间,为默认赢家的特定同步项能够作为应用一个或多个规则的结果而改变。同一计算设备能够是针对同步项的多个冲突的解决器,或作为选择,不同的计算设备能够是针对不同冲突的解决器。
也应注意:同步项能够由同一用户或交替地由不同的用户来改变。此外,经由其做出这些改变的计算设备可能利用不同的用户帐户(用于登录到计算设备和/或远程服务)来拥有或管理。如上所述来解决冲突,而不论是同一用户还是不同用户改变了同步项,且与拥有或管理不同计算设备的用户帐户无关。
在一个或多个实施例中,冲突能够以各种不同的粒度来解决。例如,冲突能够在每个文件的基础上、在每个文件夹的基础上、在特定文件夹内的多个文件夹上等等来解决。不同的冲突解决模块(例如,图1的模块118)能够被包括在计算设备102上来以这些不同的粒度解决冲突。相应地,计算设备102上多个不同的冲突解决模块能够同时在运行以解决针对不同同步项的冲突。此外,不同的计算设备102上不同的冲突解决模块能够同时在运行,以便同时解决针对不同同步项的冲突。
图4是说明根据一个或多个实施例的用于自动同步冲突解决的示例过程400的流程图。过程400由诸如图1的计算设备102之类的设备来完成,并且能够以软件、固件、硬件或其组合来实现。过程400被显示为动作的集合,并且不限于所显示的用于执行各种动作的操作的顺序。过程400是用于自动同步冲突解决的示例过程;自动同步冲突解决的附加讨论参考不同的附图被包括在本文中。
在过程400中,对同步项进行的每种改变的类型的通知被发送到其他计算设备(动作402)。这些其他计算设备是在其上面同步项的其他设备。能够做出各种不同类型的改变,如上所述。
由另一个设备对同步项进行的改变的通知也被接收(动作404)。被改变的同步项也从其他设备接收,如上所述。
进行有关是否与接收到的改变具有冲突的检查(动作406)。冲突例如能够作为其通知在动作404被接收的多个不同改变的结果或作为由实现过程400的设备做出的改变以及其通知在动作404被接收的改变的结果而出现。
如果与接收到的改变没有冲突,则接收到的改变被并入同步项的本地拷贝中(动作408)。因而,在另一设备上对同步项做出的任何改变在实现过程400的计算设备上被并入同步项。
然而,如果与接收到的改变具有冲突的话,则实现过程400的设备尝试成为该冲突的解决器(动作410)。该设备能够以各种不同的方式成为该冲突的解决器,如上所述。
过程400随后基于是否成为解决器的尝试是成功的检查而继续进行(动作412)。如果成为解决器的尝试不是成功的,则过程400返回到动作406。最后,该设备在其成为解决器的尝试中将是成功的,或者冲突将不再存在(例如,由于另一设备已成为解决器并解决该冲突)。
如果成为解决器的尝试是成功的话,则基于规则的冲突解决被自动执行来解决该冲突(动作414)。各种不同的规则能够被应用,如上所述。
该解决的通知被发送到其他计算设备(动作416)。这个通知能够采取不同的形式,诸如发送该冲突被解决以及其它计算设备对于同步项将采取的一个或多个动作(例如重命名项、删除项等)的指示、发送该冲突被解决以及其它计算设备之中的每一个将作为该同步项的其拷贝来存储的该同步项(例如,被合并的文件)的拷贝的指示,等等。这些其它计算设备是在其上面同步该项的其它设备。这个通知由其它设备接收并被并入该同步项的其本地拷贝中。过程400随后返回到动作404,其中对同步项进行的改变的附加通知能够被接收。
图5是说明根据一个或多个实施例的用于使用规则集合来自动解决同步冲突的示例过程500的流程图。过程500由诸如图1的计算设备102之类的设备来完成,并且能够以软件、固件、硬件或其组合来实现。过程500能够实现例如图4的动作414。过程500被显示为动作的集合且不限于所显示的用于执行各种动作的操作的顺序。过程500是用于使用规则集合来自动解决冲突的示例过程;使用规则集合来自动解决冲突的附加讨论参考不同的附图被包括在本文中。
在过程500中,进行有关同步冲突是否是编辑-删除冲突的检查(动作502)。编辑-删除冲突是其中一个同步项被编辑而另一个同步项被删除的冲突。编辑和删除可能是针对同一同步项的不同拷贝,或作为选择,编辑和删除中的一个可能是针对特定文件夹,而编辑和删除中的另一个可能是针对包括在那个特定文件夹中的文件或其它文件夹。
如果同步冲突是编辑-删除冲突,则是编辑的同步项被保持(动作504)。是删除的同步项被忽略并被丢弃。这个结果是上述的表II的规则1的应用。
如果同步冲突不是编辑-删除冲突,则进行有关同步冲突是否是添加-删除冲突的检查(动作506)。添加-删除冲突是其中一个同步项被添加而另一个同步项被删除的冲突。添加和删除可能是针对同一同步项的不同拷贝,或作为选择,添加和删除中的一个可能是针对特定文件夹,而添加和删除中的另一个可能是针对包括在那个特定文件夹中的文件或其它文件夹。
如果同步冲突是添加-删除冲突,则是添加的同步项被保持(动作508)。是删除的同步项被忽略并被丢弃。这个结果是上述的表II的规则2的应用。
如果同步冲突不是添加-删除冲突,则进行有关同步冲突是否是编辑-编辑冲突的检查(动作510)。编辑-编辑冲突是其中两个同步项被编辑的冲突。这些编辑可能是针对同一同步项的不同拷贝,或作为选择,这些编辑中的一个可能是针对特定文件夹,而这些编辑中的另一个可能是针对包括在那个特定文件夹中的文件或其它文件夹。
如果同步冲突是编辑-编辑冲突,则进行有关两个同步项是否能够被合并的检查(动作512)。如果这两个同步项能够被合并,则合并这两个同步项(动作514)。然而,如果这两个同步项不能被合并,则保持这两个同步项(动作516)。动作514和516是上述的表II的规则3的应用的结果。
如果同步冲突不是编辑-编辑冲突,则进行有关同步冲突是否是删除-删除冲突的检查(动作518)。删除-删除冲突是其中两个同步项被删除的冲突。这些删除可能是针对同一同步项的不同拷贝,或作为选择,这些删除中的一个可能是针对特定文件夹,而这些删除中的另一个可能是针对包括在那个特定文件夹中的文件或其它文件夹。
如果同步冲突是删除-删除冲突,则这两个同步项被合并(动作514)。这个结果是上述的表II的规则4的应用。
如果同步冲突不是删除-删除冲突,则进行有关同步冲突是否是重命名-重命名冲突的检查(动作520)。重命名-重命名冲突是其中两个同步项被重命名的冲突。这些重命名可能是针对同一同步项的不同拷贝,或作为选择,这些重命名中的一个可能是针对特定文件夹,而这些重命名的另一个可能是针对包括在那个特定文件夹中的文件或其它文件夹。
如果同步冲突是重命名-重命名冲突,则是最近改变(例如,具有最近的时间戳)的同步项被保持(动作522)。这个结果是上述的表II的规则5的应用。
如果同步冲突不是重命名-重命名冲突,则同步项的两个版本被保持(动作516)。这个结果是上述的表II的规则6的应用。
图6说明根据一个或多个实施例的能够被配置来实现自动同步冲突解决的示例计算设备600。计算设备600能够是例如图1的计算设备102中的任何一个、能够是实现图1的同步服务104的至少一部分的计算设备。
计算设备600包括一个或多个处理器或处理单元602、能够包括一个或多个存储器和/或存储组件606的一个或多个计算机可读媒体604、一个或多个输入/输出(I/O)设备608以及允许各种组件和设备相互通信的总线610。计算机可读媒体604和/或一个或多个I/O设备608能够被包括作为计算设备600的一部分或交替地可以耦合到计算设备600。总线610表示若干类型的总线结构之中的一个或多个,这包括使用各种不同总线结构的存储器总线或存储器控制器、外围总线、加速图形端口、处理器或本地总线等。总线610能够包括有线和/或无线总线。
存储器/存储组件606表示一个或多个计算机存储媒体。组件606能够包括易失性媒体(诸如随机访问存储器(RAM))和/或非易失性媒体(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。组件606能够包括固定媒体(例如RAM、ROM、固定硬盘驱动器等)以及可移动媒体(诸如闪存驱动器、可移动硬盘驱动器、光盘等)。
本文所述的技术能够以软件来实现,其中指令由一个或多个处理单元602来执行。将意识到:不同的指令能够存储在计算设备600的不同组件中,诸如存储在处理单元602中、存储在处理单元602的各种缓存存储器中、存储在设备600的其它缓存存储器(未示出)中、存储在其它计算机可读媒体上等。另外,将意识到:在计算设备600中存储指令的位置能够随时间而改变。
一个或多个输入/输出设备608允许用户向计算设备600输入命令和信息,并且也允许信息呈现给用户和/或其它组件或设备。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风、扫描仪等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡等。
各种技术可能在本文中以软件或程序模块的一般上下文来描述。通常,软件包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。这些模块和技术的实现方式可以存储在某种形式的计算机可读媒体上或通过某种形式的计算机可读媒体来传送。计算机可读媒体可能是能够由计算设备访问的任何可用的介质或媒体。通过示例而非限制,计算机可读媒体可以包括“计算机存储媒体”和“通信媒体”。
“计算机存储媒体”包括以任何方法或技术来实现的易失性和非易失性、可移动和不可移动的媒体,用于诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息的存储。计算机存储媒体包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字通用盘(DVD)或其它光存储设备、磁带盒、磁带、磁盘存储设备或其它磁存储设备或能够用于存储所需信息并能够被计算机访问的任何其它介质。
“通信媒体”通常包含计算机可读指令、数据结构、程序模块或调制的数据信号中的其它数据,诸如载波或其它传输机制。通信媒体还包括任何信息传送媒体。术语“调制的数据信号”意指其特性中的一个或多个以在信号中编码信息的方式被设置或被改变的信号。通过示例而非限制,通信媒体包括诸如有线网络或直接有线连接的有线媒体以及无线媒体,诸如声学、RF、红外和其它无线媒体。以上的任意的组合也被包括在计算机可读媒体的范围之内。
通常,本文所述的功能或技术之中的任何一个能够使用软件、固件、硬件(例如,固定的逻辑电路)、人工处理或者这些实现方式的组合来实现。本文所使用的术语“模块”和“组件”一般代表软件、固件、硬件或其组合。在软件实现的情况下,模块或组件代表当在处理器(例如,一个或多个CPU)上执行时执行指定任务的程序代码。程序代码能够存储在一个或多个计算机可读媒体中,其进一步的描述可以参考图6找到。本文所述的自动同步冲突解决的特征是独立于平台的,这意味着:这些技术能够在具有各种处理器的各种商用计算平台上实现。
虽然以特定于结构特征和/或方法动作的语言描述了主题,但是将明白:在所附的权利要求书中定义的主题不一定限于上述的具体特征或动作。相反,这些具体特征和动作被披露为实现这些权利要求的示例形式。

Claims (15)

1.一种用于解决同步冲突的方法,所述方法包括:
在第一计算设备上通过与远程同步服务的网络通信来识别第二计算设备;
确定在第一计算设备上对第一同步项进行的改变和在所识别出的第二计算设备上对第二同步项进行的改变之间具有同步冲突,所识别出的第二计算设备是第一计算设备的对等设备;
响应于所述同步冲突,确定:
第一计算设备是否已经写入令牌值以便成为所述冲突的解决器,以及响应于第一计算设备写入了令牌值,选择第一计算设备成为所述冲突的解决器;
以及响应于第一计算设备未写入令牌值,不选择第一计算设备,从而足以允许第二计算设备成为所述冲突的解决器;以及
响应于第一计算设备被选择为解决器,由第一计算设备作为解决器执行基于规则的冲突解决来自动解决所确定的同步冲突而不需要用户输入,所述基于规则的冲突解决基于多个规则的集合并且至少部分基于对第一同步项进行的改变的类型、对第二同步项进行的改变的类型;以及
由第一计算设备作为解决器发送所述基于规则的冲突解决的通知给第二计算设备。
2.如权利要求1所述的方法,进一步包括:
仅在成为所述同步冲突的解决器的尝试是成功的情况下,才发送所述通知。
3.如权利要求1所述的方法,其中在与第二计算设备尝试成为所述同步冲突的解决器相同的时间,第一计算设备尝试成为所述同步冲突的解决器,并且第一计算设备或第二计算设备之中只有一个成为所述同步冲突的解决器。
4.如权利要求1所述的方法,进一步包括保持对同步项进行的改变的记录,其包括在第一计算设备上或在第二计算设备上已做出的对第一同步项进行的改变和对第二同步项进行的改变。
5.如权利要求1所述的方法,其中所述确定在第一计算设备上对第一同步项进行的改变和在所识别出的第二计算设备上对第二同步项进行的改变之间具有同步冲突进一步包括,确定在对第一同步项进行的改变和在一个或多个附加计算设备上对一个或多个附加同步项进行的改变之间具有同步冲突,并且进一步包括一次或多个附加次数执行所述基于规则的冲突解决,每一次解决与对一个或多个附加同步项之中的一个进行的改变有关的同步冲突。
6.如权利要求1所述的方法,其中同步冲突起因于由第一计算设备的第一用户对第一同步项做出的改变和由第二计算设备的第二用户对第二同步项做出的改变,其中第一用户和第二用户是不同的用户。
7.如权利要求1所述的方法,其中第一同步项和第二同步项包括相同文件的不同拷贝。
8.如权利要求1所述的方法,其中第一同步项和第二同步项包括文件夹。
9.如权利要求1所述的方法,其中第一同步项和第二同步项之中的一个包括文件,以及第一同步项和第二同步项之中的另一个包括文件夹。
10.如权利要求1所述的方法,其中第一同步项和第二同步项包括在第一计算设备和第二计算设备的存储器的数据结构中保持的数据的不同拷贝。
11.如权利要求1所述的方法,其中执行基于规则的冲突解决包括通过应用指示第一同步项和第二同步项将一起被合并成一个同步项的规则来自动解决所述同步冲突。
12.如权利要求1所述的方法,其中执行基于规则的冲突解决包括通过应用指示第一同步项和第二同步项之中的一个将被保持而第一同步项和第二同步项之中的另一个将被丢弃的规则来自动解决所述同步冲突。
13.如权利要求1所述的方法,其中执行基于规则的冲突解决包括通过应用指示第一同步项和第二同步项二者将被保持的规则来自动解决所述同步冲突。
14.一种用于解决同步冲突的装置,所述装置包括:
用于在第一计算设备上通过与远程同步服务的网络通信来识别第二计算设备的模块;
用于确定在第一计算设备上对第一同步项进行的改变和在所识别出的第二计算设备上对第二同步项进行的改变之间具有同步冲突的模块,所识别出的第二计算设备是第一计算设备的对等设备;
用于响应于所述同步冲突,确定第一计算设备是否已经写入令牌值以便成为所述冲突的解决器的模块;
用于响应于第一计算设备写入了令牌值,选择第一计算设备成为所述冲突的解决器的模块;
用于响应于第一计算设备未写入令牌值,不选择第一计算设备,从而足以允许第二计算设备成为所述冲突的解决器的模块;
用于响应于第一计算设备被选择为解决器,由第一计算设备作为解决器执行基于规则的冲突解决来自动解决所确定的同步冲突而不需要用户输入的模块,所述基于规则的冲突解决基于多个规则的集合并且至少部分基于对第一同步项进行的改变的类型、对第二同步项进行的改变的类型;以及
用于由第一计算设备作为解决器发送所述基于规则的冲突解决的通知给第二计算设备的模块。
15.如权利要求14所述的装置,其中执行基于规则的冲突解决是:
如果所述同步冲突是编辑-删除冲突,则保持第一和第二同步项之中是编辑的一个同步项并丢弃第一和第二同步项之中是删除的一个同步项,
如果所述同步冲突是添加-删除冲突,则保持第一和第二同步项之中是添加的一个同步项并丢弃第一和第二同步项之中是删除的一个同步项,
如果所述同步冲突是文件编辑-编辑冲突,则在第一和第二同步项能够被合并的情况下合并第一和第二同步项,否则保持第一和第二同步项二者,
如果所述同步冲突是删除-删除冲突,则合并第一和第二同步项,
如果所述同步冲突是重命名-重命名冲突,则保持第一和第二同步项之中是最近改变的一个同步项,以及
否则,保持第一和第二同步项二者。
CN201180011793.1A 2010-03-02 2011-03-01 自动同步冲突解决 Expired - Fee Related CN102770854B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US12/715,726 2010-03-02
US12/715726 2010-03-02
US12/715,726 US8572022B2 (en) 2010-03-02 2010-03-02 Automatic synchronization conflict resolution
PCT/US2011/026711 WO2011109416A2 (en) 2010-03-02 2011-03-01 Automatic synchronization conflict resolution

Publications (2)

Publication Number Publication Date
CN102770854A CN102770854A (zh) 2012-11-07
CN102770854B true CN102770854B (zh) 2015-11-25

Family

ID=44532174

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180011793.1A Expired - Fee Related CN102770854B (zh) 2010-03-02 2011-03-01 自动同步冲突解决

Country Status (4)

Country Link
US (2) US8572022B2 (zh)
EP (1) EP2542980A4 (zh)
CN (1) CN102770854B (zh)
WO (1) WO2011109416A2 (zh)

Families Citing this family (152)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8326814B2 (en) 2007-12-05 2012-12-04 Box, Inc. Web-based file management system and service
US10043201B2 (en) 2008-01-31 2018-08-07 Bill.Com, Inc. Enhanced invitation process for electronic billing and payment system
US10769686B2 (en) 2008-01-31 2020-09-08 Bill.Com Llc Enhanced invitation process for electronic billing and payment system
US8572022B2 (en) 2010-03-02 2013-10-29 Microsoft Corporation Automatic synchronization conflict resolution
JP2011221583A (ja) * 2010-04-02 2011-11-04 Seiko Epson Corp コンテンツ提供システム、情報処理装置、コンテンツ提供方法、プログラムおよびコンピューター読み取り可能な記録媒体
US20110252312A1 (en) * 2010-04-12 2011-10-13 Google Inc. Real-Time Collaboration in a Hosted Word Processor
CN102934105B (zh) 2010-04-12 2016-10-05 谷歌公司 在驻留的文字处理器中的协作光标
US20120036450A1 (en) * 2010-08-03 2012-02-09 Research In Motion Limited Method for providing indication of communicatively coupled device
US9244779B2 (en) 2010-09-30 2016-01-26 Commvault Systems, Inc. Data recovery operations, such as recovery from modified network data management protocol data
US9633354B2 (en) * 2010-10-27 2017-04-25 Yahoo! Inc. User feed data delivery
US10554426B2 (en) 2011-01-20 2020-02-04 Box, Inc. Real time notification of activities that occur in a web-based collaboration environment
US8332357B1 (en) 2011-06-10 2012-12-11 Microsoft Corporation Identification of moved or renamed files in file synchronization
US9015601B2 (en) 2011-06-21 2015-04-21 Box, Inc. Batch uploading of content to a web-based collaboration environment
US8850516B1 (en) 2011-06-22 2014-09-30 Emc Corporation Virtual private cloud that provides enterprise grade functionality and compliance
US9213718B1 (en) * 2011-06-22 2015-12-15 Emc Corporation Synchronized file management across multiple disparate endpoints
US9063912B2 (en) 2011-06-22 2015-06-23 Box, Inc. Multimedia content preview rendering in a cloud content management system
US9978040B2 (en) 2011-07-08 2018-05-22 Box, Inc. Collaboration sessions in a workspace on a cloud-based content management system
WO2013009337A2 (en) 2011-07-08 2013-01-17 Arnold Goldberg Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof
WO2013006985A1 (en) * 2011-07-12 2013-01-17 General Electric Company Version control methodology for network model
US8818983B1 (en) * 2011-08-31 2014-08-26 Google Inc. Synchronization of search engines
US9197718B2 (en) 2011-09-23 2015-11-24 Box, Inc. Central management and control of user-contributed content in a web-based collaboration environment and management console thereof
US8515902B2 (en) 2011-10-14 2013-08-20 Box, Inc. Automatic and semi-automatic tagging features of work items in a shared workspace for metadata tracking in a cloud-based content management system with selective or optional user contribution
US11210610B2 (en) 2011-10-26 2021-12-28 Box, Inc. Enhanced multimedia content preview rendering in a cloud content management system
US9098474B2 (en) 2011-10-26 2015-08-04 Box, Inc. Preview pre-generation based on heuristics and algorithmic prediction/assessment of predicted user behavior for enhancement of user experience
US8990307B2 (en) 2011-11-16 2015-03-24 Box, Inc. Resource effective incremental updating of a remote client with events which occurred via a cloud-enabled platform
GB2500152A (en) 2011-11-29 2013-09-11 Box Inc Mobile platform file and folder selection functionalities for offline access and synchronization
US9019123B2 (en) 2011-12-22 2015-04-28 Box, Inc. Health check services for web-based collaboration environments
US9904435B2 (en) 2012-01-06 2018-02-27 Box, Inc. System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment
US11232481B2 (en) 2012-01-30 2022-01-25 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US8813032B2 (en) * 2012-02-17 2014-08-19 National Instruments Corporation Customizing synchronization of custom code among multiple programmable hardware elements within a system
US9965745B2 (en) 2012-02-24 2018-05-08 Box, Inc. System and method for promoting enterprise adoption of a web-based collaboration environment
US9195636B2 (en) 2012-03-07 2015-11-24 Box, Inc. Universal file type preview for mobile devices
US8819789B2 (en) 2012-03-07 2014-08-26 Bill.Com, Inc. Method and system for using social networks to verify entity affiliations and identities
US9529871B2 (en) * 2012-03-30 2016-12-27 Commvault Systems, Inc. Information management of mobile device data
US9519631B2 (en) 2012-03-30 2016-12-13 Microsoft Technology Licensing, Llc Semantic diff and automerge
US9575981B2 (en) 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
GB2514947B (en) 2012-05-04 2015-06-17 Box Inc Repository redundancy implementation of a system which incrementally updates clients with events that occured via a cloud-enabled platform
US9691051B2 (en) 2012-05-21 2017-06-27 Box, Inc. Security enhancement through application access control
US9027108B2 (en) 2012-05-23 2015-05-05 Box, Inc. Systems and methods for secure file portability between mobile applications on a mobile device
US8914900B2 (en) 2012-05-23 2014-12-16 Box, Inc. Methods, architectures and security mechanisms for a third-party application to access content in a cloud-based platform
US9021099B2 (en) 2012-07-03 2015-04-28 Box, Inc. Load balancing secure FTP connections among multiple FTP servers
GB2505072A (en) 2012-07-06 2014-02-19 Box Inc Identifying users and collaborators as search results in a cloud-based system
US9792320B2 (en) 2012-07-06 2017-10-17 Box, Inc. System and method for performing shard migration to support functions of a cloud-based service
US9712510B2 (en) 2012-07-06 2017-07-18 Box, Inc. Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform
KR101438102B1 (ko) * 2012-07-18 2014-09-11 안지윤 클립보드 동기화 서버 및 그를 포함한 클립보드 동기화 시스템
US9237170B2 (en) 2012-07-19 2016-01-12 Box, Inc. Data loss prevention (DLP) methods and architectures by a cloud service
US9794256B2 (en) 2012-07-30 2017-10-17 Box, Inc. System and method for advanced control tools for administrators in a cloud-based service
US8868574B2 (en) 2012-07-30 2014-10-21 Box, Inc. System and method for advanced search and filtering mechanisms for enterprise administrators in a cloud-based environment
US9881017B2 (en) * 2012-08-03 2018-01-30 Egnyte, Inc. System and method for event-based synchronization of remote and local file systems
US9369520B2 (en) 2012-08-19 2016-06-14 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
US8745267B2 (en) 2012-08-19 2014-06-03 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
GB2513671A (en) 2012-08-27 2014-11-05 Box Inc Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment
US9135462B2 (en) 2012-08-29 2015-09-15 Box, Inc. Upload and download streaming encryption to/from a cloud-based platform
US9311071B2 (en) 2012-09-06 2016-04-12 Box, Inc. Force upgrade of a mobile application via a server side configuration file
US9117087B2 (en) 2012-09-06 2015-08-25 Box, Inc. System and method for creating a secure channel for inter-application communication based on intents
US9195519B2 (en) 2012-09-06 2015-11-24 Box, Inc. Disabling the self-referential appearance of a mobile application in an intent via a background registration
US20140074783A1 (en) * 2012-09-09 2014-03-13 Apple Inc. Synchronizing metadata across devices
US9292833B2 (en) 2012-09-14 2016-03-22 Box, Inc. Batching notifications of activities that occur in a web-based collaboration environment
US10200256B2 (en) 2012-09-17 2019-02-05 Box, Inc. System and method of a manipulative handle in an interactive mobile user interface
US9553758B2 (en) 2012-09-18 2017-01-24 Box, Inc. Sandboxing individual applications to specific user folders in a cloud-based service
US20150220556A1 (en) * 2012-09-18 2015-08-06 Nokia Corporation Methods, apparatuses and computer program products for providing a protocol to resolve synchronization conflicts when synchronizing between multiple devices
US10915492B2 (en) 2012-09-19 2021-02-09 Box, Inc. Cloud-based platform enabled with media content indexed for text-based searches and/or metadata extraction
US9959420B2 (en) 2012-10-02 2018-05-01 Box, Inc. System and method for enhanced security and management mechanisms for enterprise administrators in a cloud-based environment
US9495364B2 (en) 2012-10-04 2016-11-15 Box, Inc. Enhanced quick search features, low-barrier commenting/interactive features in a collaboration platform
US9705967B2 (en) 2012-10-04 2017-07-11 Box, Inc. Corporate user discovery and identification of recommended collaborators in a cloud platform
US9665349B2 (en) 2012-10-05 2017-05-30 Box, Inc. System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform
GB2507191B (en) 2012-10-17 2015-03-04 Box Inc Remote key management in a cloud-based environment
US9756022B2 (en) 2014-08-29 2017-09-05 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US9330131B2 (en) * 2012-11-28 2016-05-03 The Mathworks, Inc. Conflict markup tolerant input stream
US10235383B2 (en) 2012-12-19 2019-03-19 Box, Inc. Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment
US10348821B2 (en) * 2012-12-21 2019-07-09 Dropbox, Inc. Prioritizing structural operations and distributing changes in a synced online content management system
US9069799B2 (en) 2012-12-27 2015-06-30 Commvault Systems, Inc. Restoration of centralized data storage manager, such as data storage manager in a hierarchical data storage system
US9396245B2 (en) 2013-01-02 2016-07-19 Box, Inc. Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9953036B2 (en) 2013-01-09 2018-04-24 Box, Inc. File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
EP2755151A3 (en) 2013-01-11 2014-09-24 Box, Inc. Functionalities, features and user interface of a synchronization client to a cloud-based environment
EP2757491A1 (en) * 2013-01-17 2014-07-23 Box, Inc. Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform
US9712508B2 (en) * 2013-03-13 2017-07-18 Intel Corporation One-touch device personalization
US10635638B2 (en) 2013-03-13 2020-04-28 Ivanti Us Llc Systems, methods and media for deferred synchronization of files in cloud storage client device
US10417674B2 (en) 2013-03-14 2019-09-17 Bill.Com, Llc System and method for sharing transaction information by object tracking of inter-entity transactions and news streams
US10115137B2 (en) 2013-03-14 2018-10-30 Bill.Com, Inc. System and method for enhanced access and control for connecting entities and effecting payments in a commercially oriented entity network
US20150012399A1 (en) * 2013-03-14 2015-01-08 Bill.Com, Inc. System and Method for Enhanced Access and Control for Modification of Auto-Learned Conflict Resolution and Related Rule and Value Replacements
US10410191B2 (en) 2013-03-14 2019-09-10 Bill.Com, Llc System and method for scanning and processing of payment documentation in an integrated partner platform
US9665593B2 (en) 2013-03-28 2017-05-30 International Business Machines Corporation Dynamically synching elements in file
US9767210B2 (en) 2013-03-28 2017-09-19 International Business Machines Corporation Dynamically enhancing user interface
US9342531B2 (en) * 2013-05-09 2016-05-17 Dropbox, Inc. Managing conflicted copies
US10846074B2 (en) 2013-05-10 2020-11-24 Box, Inc. Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client
US10725968B2 (en) 2013-05-10 2020-07-28 Box, Inc. Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform
GB2515192B (en) 2013-06-13 2016-12-14 Box Inc Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
US9805050B2 (en) 2013-06-21 2017-10-31 Box, Inc. Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform
US10565167B2 (en) * 2013-06-21 2020-02-18 Arroware Industries, Inc. Method and apparatus for peer-to-peer file authoring
US10110656B2 (en) 2013-06-25 2018-10-23 Box, Inc. Systems and methods for providing shell communication in a cloud-based platform
US10229134B2 (en) 2013-06-25 2019-03-12 Box, Inc. Systems and methods for managing upgrades, migration of user data and improving performance of a cloud-based platform
US10572921B2 (en) 2013-07-03 2020-02-25 Bill.Com, Llc System and method for enhanced access and control for connecting entities and effecting payments in a commercially oriented entity network
US9053165B2 (en) 2013-07-08 2015-06-09 Dropbox, Inc. Structured content item synchronization
US9535924B2 (en) 2013-07-30 2017-01-03 Box, Inc. Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
CN104427357A (zh) * 2013-09-04 2015-03-18 中兴通讯股份有限公司 语言种类设置方法和装置
US9535909B2 (en) 2013-09-13 2017-01-03 Box, Inc. Configurable event-based automation architecture for cloud-based collaboration platforms
US9213684B2 (en) 2013-09-13 2015-12-15 Box, Inc. System and method for rendering document in web browser or mobile device regardless of third-party plug-in software
US8892679B1 (en) 2013-09-13 2014-11-18 Box, Inc. Mobile device, methods and user interfaces thereof in a mobile device platform featuring multifunctional access and engagement in a collaborative environment provided by a cloud-based platform
US9704137B2 (en) 2013-09-13 2017-07-11 Box, Inc. Simultaneous editing/accessing of content by collaborator invitation through a web-based or mobile application to a cloud-based collaboration platform
GB2518298A (en) 2013-09-13 2015-03-18 Box Inc High-availability architecture for a cloud-based concurrent-access collaboration platform
US10509527B2 (en) 2013-09-13 2019-12-17 Box, Inc. Systems and methods for configuring event-based automation in cloud-based collaboration platforms
US10866931B2 (en) 2013-10-22 2020-12-15 Box, Inc. Desktop application for accessing a cloud collaboration platform
US9542467B2 (en) * 2013-11-18 2017-01-10 International Business Machines Corporation Efficiently firing mapping and transform rules during bidirectional synchronization
US10402744B2 (en) 2013-11-18 2019-09-03 International Busniess Machines Corporation Automatically self-learning bidirectional synchronization of a source system and a target system
US9367597B2 (en) * 2013-11-18 2016-06-14 International Business Machines Corporation Automatically managing mapping and transform rules when synchronizing systems
US9336228B2 (en) * 2013-12-18 2016-05-10 Verizon Patent And Licensing Inc. Synchronization of program code between revision management applications utilizing different version-control architectures
US20150178294A1 (en) * 2013-12-19 2015-06-25 International Business Machines Corporation Resolving content editing conflicts arising from concurrent drafts
US11314556B2 (en) 2014-03-01 2022-04-26 Microsoft Technology Licensing, Llc. Shadowing local on-premises information to a cloud-based computing system
US10171579B2 (en) 2014-04-08 2019-01-01 Dropbox, Inc. Managing presence among devices accessing shared and synchronized content
US9998555B2 (en) 2014-04-08 2018-06-12 Dropbox, Inc. Displaying presence in an application accessing shared and synchronized content
US10270871B2 (en) 2014-04-08 2019-04-23 Dropbox, Inc. Browser display of native application presence and interaction data
US10091287B2 (en) 2014-04-08 2018-10-02 Dropbox, Inc. Determining presence in an application accessing shared and synchronized content
US10530854B2 (en) 2014-05-30 2020-01-07 Box, Inc. Synchronization of permissioned content in cloud-based environments
US20150347966A1 (en) * 2014-05-31 2015-12-03 Hartford Fire Insurance Company Meeting management and project management element reconciliation
US9602514B2 (en) 2014-06-16 2017-03-21 Box, Inc. Enterprise mobility management and verification of a managed application by a content provider
US10380076B2 (en) 2014-07-21 2019-08-13 Egnyte, Inc. System and method for policy based synchronization of remote and local file systems
US9779073B2 (en) * 2014-07-29 2017-10-03 Microsoft Technology Licensing, Llc Digital document change conflict resolution
US9894119B2 (en) 2014-08-29 2018-02-13 Box, Inc. Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms
US10038731B2 (en) 2014-08-29 2018-07-31 Box, Inc. Managing flow-based interactions with cloud-based shared content
US9208167B1 (en) 2014-09-04 2015-12-08 Edifire LLC Distributed data synchronization and conflict resolution
US9846528B2 (en) 2015-03-02 2017-12-19 Dropbox, Inc. Native application collaboration
US10437789B2 (en) 2015-04-10 2019-10-08 Egnyte, Inc. System and method for delete fencing during synchronization of remote and local file systems
US11023492B2 (en) * 2015-05-20 2021-06-01 Guidewire Software, Inc. Deferred synchronization for work unit-related data
US11144510B2 (en) 2015-06-11 2021-10-12 Egnyte, Inc. System and method for synchronizing file systems with large namespaces
US10095764B2 (en) * 2015-06-19 2018-10-09 Sap Se Multi-replica asynchronous table replication
US10268743B2 (en) 2015-06-19 2019-04-23 Sap Se Distributed database transaction protocol
US10101913B2 (en) 2015-09-02 2018-10-16 Commvault Systems, Inc. Migrating data to disk without interrupting running backup operations
US10657117B2 (en) 2015-09-11 2020-05-19 International Business Machines Corporation Critical situation contribution and effectiveness tracker
US10521770B2 (en) 2015-09-11 2019-12-31 International Business Machines Corporation Dynamic problem statement with conflict resolution
US10824974B2 (en) 2015-09-11 2020-11-03 International Business Machines Corporation Automatic subject matter expert profile generator and scorer
US10002181B2 (en) 2015-09-11 2018-06-19 International Business Machines Corporation Real-time tagger
US10387053B1 (en) * 2015-09-16 2019-08-20 Amazon Technologies, Inc. Memory synchronization in a distributed computing system
US20170177613A1 (en) * 2015-12-22 2017-06-22 Egnyte, Inc. Event-Based User State Synchronization in a Cloud Storage System
US10187464B2 (en) 2015-12-27 2019-01-22 Dropbox, Inc. Systems and methods of re-associating content items
US10248933B2 (en) 2015-12-29 2019-04-02 Dropbox, Inc. Content item activity feed for presenting events associated with content items
US10620811B2 (en) 2015-12-30 2020-04-14 Dropbox, Inc. Native application collaboration
CN105787077B (zh) * 2016-03-02 2020-05-15 百度在线网络技术(北京)有限公司 数据同步方法和装置
US10936548B2 (en) 2016-03-15 2021-03-02 Microsoft Technology Licensing, Llc File synchronization pausing for individual files
US10382502B2 (en) 2016-04-04 2019-08-13 Dropbox, Inc. Change comments for synchronized content items
CN111314479B (zh) * 2016-06-20 2022-08-23 北京奥星贝斯科技有限公司 一种数据处理方法和设备
CN106597866B (zh) * 2016-12-23 2019-10-11 华东交通大学 智能家居系统及其应用的定时任务冲突解决方法
US10970302B2 (en) 2017-06-22 2021-04-06 Adobe Inc. Component-based synchronization of digital assets
US10866963B2 (en) 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
US10970269B2 (en) 2018-05-07 2021-04-06 Microsoft Technology Licensing, Llc Intermediate consistency levels for database configuration
US10970193B2 (en) 2018-05-23 2021-04-06 Dropbox, Inc. Debugging a client synchronization service
US11032604B2 (en) 2018-08-31 2021-06-08 Apple Inc. Management of devices in ad hoc rendering networks
US11321012B2 (en) * 2018-10-12 2022-05-03 Adobe Inc. Conflict resolution within synchronized composite-part-based digital assets
WO2020113435A1 (zh) * 2018-12-04 2020-06-11 比特大陆科技有限公司 传输记录的方法和装置
US11573930B2 (en) * 2019-06-03 2023-02-07 Zuora, Inc. Self-healing data synchronization
US11720347B1 (en) 2019-06-12 2023-08-08 Express Scripts Strategic Development, Inc. Systems and methods for providing stable deployments to mainframe environments
US11086757B1 (en) * 2019-06-12 2021-08-10 Express Scripts Strategic Development, Inc. Systems and methods for providing stable deployments to mainframe environments

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073161A (en) * 1997-12-16 2000-06-06 International Business Machines Corporation Method and apparatus for determining editing conflicts in a multi-authoring system
CN101167046A (zh) * 2005-04-22 2008-04-23 微软公司 同步化管理器冲突解决
CN101627581A (zh) * 2007-02-09 2010-01-13 微软公司 用于分布式设备数据的多主同步的冲突解决

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835601A (en) * 1994-03-15 1998-11-10 Kabushiki Kaisha Toshiba File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing
US6598059B1 (en) * 2000-04-22 2003-07-22 Oracle Corp. System and method of identifying and resolving conflicts among versions of a database table
US6631386B1 (en) * 2000-04-22 2003-10-07 Oracle Corp. Database version control subsystem and method for use with database management system
US6529917B1 (en) * 2000-08-14 2003-03-04 Divine Technology Ventures System and method of synchronizing replicated data
US6993522B2 (en) * 2001-06-27 2006-01-31 Microsoft Corporation System and method for resolving conflicts detected during a synchronization session
US7739240B2 (en) * 2002-12-09 2010-06-15 Hewlett-Packard Development Company, L.P. Replication and replica management in a wide area file system
US7512638B2 (en) * 2003-08-21 2009-03-31 Microsoft Corporation Systems and methods for providing conflict handling for peer-to-peer synchronization of units of information manageable by a hardware/software interface system
US7349913B2 (en) * 2003-08-21 2008-03-25 Microsoft Corporation Storage platform for organizing, searching, and sharing data
US7533134B2 (en) * 2004-04-01 2009-05-12 Microsoft Corporation Systems and methods for the propagation of conflict resolution to enforce item convergence (i.e., data convergence)
US20060106879A1 (en) * 2004-11-16 2006-05-18 International Business Machines Corporation Conflict resolution in a synchronization framework
US7529780B1 (en) * 2005-12-30 2009-05-05 Google Inc. Conflict management during data object synchronization between client and server
US7606838B2 (en) * 2006-02-22 2009-10-20 Microsoft Corporation Distributed conflict resolution for replicated databases
US7769727B2 (en) * 2006-05-31 2010-08-03 Microsoft Corporation Resolving update-delete conflicts
US7831558B2 (en) * 2007-06-22 2010-11-09 Microsoft Corporation Bi-directional data modification with synchronization
US7991740B2 (en) * 2008-03-04 2011-08-02 Apple Inc. Synchronization server process
US8090681B2 (en) * 2008-06-26 2012-01-03 Microsoft Corporation Resolving conflicts in content management systems
US8572022B2 (en) 2010-03-02 2013-10-29 Microsoft Corporation Automatic synchronization conflict resolution

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073161A (en) * 1997-12-16 2000-06-06 International Business Machines Corporation Method and apparatus for determining editing conflicts in a multi-authoring system
CN101167046A (zh) * 2005-04-22 2008-04-23 微软公司 同步化管理器冲突解决
CN101627581A (zh) * 2007-02-09 2010-01-13 微软公司 用于分布式设备数据的多主同步的冲突解决

Also Published As

Publication number Publication date
WO2011109416A2 (en) 2011-09-09
US8965840B2 (en) 2015-02-24
US20110218964A1 (en) 2011-09-08
EP2542980A2 (en) 2013-01-09
EP2542980A4 (en) 2013-11-06
WO2011109416A3 (en) 2011-12-15
CN102770854A (zh) 2012-11-07
US20140040202A1 (en) 2014-02-06
US8572022B2 (en) 2013-10-29

Similar Documents

Publication Publication Date Title
CN102770854B (zh) 自动同步冲突解决
CN108549623B (zh) 协作文档编辑控制方法、装置、电子设备及存储介质
KR101566566B1 (ko) 리치 클라이언트와 브라우저 클라이언트 간의 스프레드시트 협업
KR101076851B1 (ko) 복제된 파일들을 위한 복수의 파일 상태 관리 방법
RU2421799C2 (ru) Безопасность в приложениях синхронизации равноправных узлов
US20220236981A1 (en) Code Conflict Resolution System and Method, Apparatus, Device, and Medium
JP5349484B2 (ja) リアルタイムコラボレーションの間のデータ及びローカル計算のプライベートビュー
CN102227720B (zh) 在多个设备的范围内支持媒体内容回复功能
KR101616213B1 (ko) 다수의 소스로부터의 재생 목록의 병합
US10706013B2 (en) Workflow function of content management system enforced by client device
US20050125461A1 (en) Version control of metadata
CN102413168A (zh) 呈现同步对象的可用性状态
AU2020200220A1 (en) Control transfer of shared content
CN101855629A (zh) 协作创作
CN103907110A (zh) 文档协作
CN101772764A (zh) 多线程业务编程库
US20150227605A1 (en) Information processing terminal, synchronization control method, and computer-readable recording medium
US20220417251A1 (en) Team member transfer tool
US10146873B2 (en) Cloud-native documents integrated with legacy tools
US20090132534A1 (en) Remote replication synchronizing/accessing system and method thereof
US8281365B2 (en) Information management method, information management system, computer-readable medium and computer data signal
CN115827271A (zh) 用于信息管理系统的消息处理方法、装置及电子设备
CN116302696A (zh) 数据库系统的归档日志生成方法、存储介质及计算机设备
JP2005092380A (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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150612

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

Effective date of registration: 20150612

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20151125

Termination date: 20200301