CN104272649A - 用于通过网络进行数据同步的系统和方法 - Google Patents
用于通过网络进行数据同步的系统和方法 Download PDFInfo
- Publication number
- CN104272649A CN104272649A CN201280065691.2A CN201280065691A CN104272649A CN 104272649 A CN104272649 A CN 104272649A CN 201280065691 A CN201280065691 A CN 201280065691A CN 104272649 A CN104272649 A CN 104272649A
- Authority
- CN
- China
- Prior art keywords
- file
- node
- difference
- data file
- version
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Abstract
本发明提供了一种用于通过网络来同步数据文件的系统和方法。所述方法包括第一节点与第二节点建立连接。在所述第一节点上存储有一个或多个数据文件,每个数据文件关联有版本标识符;以及待同步的数据文件的同步列表。在所述第二节点上存储有一个或多个对应的数据文件,每个关联有版本号。基于所述版本标识符,所述第一节点确定在第一同步列表上的一个或多个数据文件的每个的较新的版本是否存在于第二节点上。根据确定第二节点包括较新版本,所述第一节点从所述第二节点获取差别文件以更新在所述第一节点上的数据文件。
Description
相关申请的交叉引用
本申请要求在2011年11月4日提交的美国临时专利申请第61/555,999号的优先权,其中该临时专利申请的内容通过引用纳入本文。
技术领域
下列内容大体上涉及通过网络进行数据通信。
背景技术
在地理位置偏远地区中,可能不能够访问可靠的网络。例如,在发展中国家或矿区,提供稳定、持续和高带宽网络连接所需要的设施可能无法获得。通过便携式设施(例如,比如卫星接收器)访问可靠的网络可能受到天气或其他环境条件的阻碍。网络访问可能是间歇性可用的并且对于不可预测的时间段可能为不可用的。在建立连接时,网络的带宽限制和变动也可以影响网络的性能。
在某些应用中(例如诸如采矿、研究或勘探),可能需要在位于站点的设备和位于远离该站点的设备(比如办公室或服务器站点)之间共享信息。如果网络连接具有较低的带宽或仅仅间歇性地可用,则这些设备之间的交换或同步信息可能是困难的。
在需要传输相对较大的文件的情况下,这些问题会加剧。
在使用现有的同步协议时,某些缺点是显而易见的。一些此类协议在同步期间需要第一设备与第二设备多次通信。如果网络不可靠,则同步过程可能拖延或失败。此外,一些此类协议需要耗时的文件处理步骤以优化数据交换而完成同步。在网络不可靠时,通信和计算所需的总时间可能不合理地较长。
许多现有的同步协议也不支持压缩。压缩文件的文件大小通常小于未压缩的文件的文件大小。因此,一些现有的协议更严重地依赖于保持设备之间的网络连接。这些可能不适应于不可靠的网络。
本发明的目标是减少或避免至少一个以上的缺点。
发明内容
本文提供了一种通过网络同步数据文件的方法。所述方法包括第一节点与第二节点建立连接,所述第一节点在其上已存储有一个或多个数据文件,每个数据文件关联了版本标识符,以及待同步的数据文件的第一同步列表。所述第二节点在其上已存储有一个或多个对应的数据文件,每个关联到版本标识符。基于所述版本标识符,所述第一节点确定在第一同步列表上的一个或多个数据文件的每个的较新的版本是否存在于第二节点上。根据确定第二节点包括较新版本,所述第一节点从所述第二节点获取差别文件以更新在所述第一节点上的数据文件。
在实施方案中,所述差别文件表示在一个节点上的数据文件的版本和在另一个节点上的数据文件的版本之间的差别。在另一个实施方案中,一系列差别文件的至少两个用于更新在所述第一节点上的文件;至少两个差别文件的一个表示在所述第二节点上的数据文件的版本和中间版本之间的差别。
同步列表可以包括由用户选择的数据文件。与由所述用户选择的数据文件关联的数据文件也可以包括在所述同步列表中。
所述第二节点可以进一步包括待同步的数据文件的第二同步列表。基于与所述第一节点建立连接,所述第二节点可以确定所述一节点是否包括在所述第二同步列表上的每个文件的较新的版本。基于确定所述第一节点包括较新的版本,所述第二节点从所述第一节点获取差别文件以更新在所述第二节点上的数据文件。
优先级排序可以具有在同步列表上的每个文件,其中根据所述优先级排序来同步所述数据文件。可以基于与每个数据文件关联的元数据而生成所述优先级排序。可以基于在所述第一节点上的数据文件的版本标识符和在所述第二节点上的数据文件的较新版本之间的差别的大小而生成所述优先级排序。
在实施方案中,用于一个或多个数据文件的每个的参考文件也存储在第一节点上。在第一节点上的修改检测模块确定在第一同步列表上的每个数据文件相对于各自的参考文件的差别程度。基于数据文件和参考文件之间的差别的大小而生成所述优先级排序。
附图说明
现在将参考所附附图仅通过实例的方式对实施方案进行描述,其中:
图1为示出了根据本发明的系统的方框图;
图2为示出了节点的方框图;
图3为示出了在服务器上更新文件的节点的过程的流程图;
图4为示出了生成不同的文件的流程图;
图5为示出了示例文件的版本历史的流程图;
图6为示出了从服务器获取存储在节点上的最新版本的节点的示例过程的流程图;以及
图7为示出了关于采矿作业的在其间各种类型的数据和链接的示例图。
具体实施方式
本文提供了一种文件管理系统。该文件管理系统能够通过网络来传输和同步文件,使得数据通信能够在两个或多个设备之间进行。网络可以为不可靠的或可靠的网络并且可能出现包括低带宽和/或低服务质量(QoS)的特性。对于特定实现,与可能另外给定的网络特性相比,通过网络彼此通信的设备可以受益于相对更高的传输速率和/或可靠性水平(例如QoS)。
转到图1,显示了多个节点10。节点10可以为计算机设备,如台式电脑、笔记本电脑、移动设备比如智能手机、工业设备(例如自动化钻机)的网络功能块、传感设备(例如航空重力仪)的网络功能块、机架安装服务器、基于云计算的服务器,或任何其他网络功能的计算设备。节点10可以包括或链接到处理器9和内存8。内存8可以在其上已存储计算机指令,当通过处理器执行时,该计算机指令提供如本文中所述的文件管理系统的功能。
节点10可以进一步包括或链接到收发器15,收发器15用于与网络14(例如内联网或因特网)进行通信。另外,基本上类似于上述节点10的节点10也可以连接到网络。每个节点10可以操作以提供网络与一个或多个其他节点10进行通信。
节点10可以为用户可控的或通过计算机可执行指令自动控制的。
每个节点10可以进一步包括或链接到数据存储区16。数据存储区16可操作以在其上存储至少一个文件。该至少一个文件可以包括至少一个参考文件,以及与每个参考文件相关的至少一个差别文件。
参考文件为能够被认为是完整文件的文件,由于如果节点10将参考文件提供到另一个节点10,则另一个节点10可以接收并读取该参考文件以便基于该参考文件进行操作(也即,打开文件、修改文件等)。
差别文件提供了足够的信息以生成当与参考文件结合使用时能够基于其进行操作。例如,差别文件可以映射第一文件和第二文件之间的差别。例如,已接收到差别文件和参考文件的节点10可以从差别文件还原关于对于参考文件已作出的修改的信息。具有参考文件和差别文件的节点10可以生成对应于对参考文件作出的修改的修改文件,并且可以基于该修改文件进行操作。
差异文件呈现了两个或多个所生成的文件修订之间的差别,该差异文件也可以用于基于参考文件生成修改文件。差异文件为差别文件的子集,其可以通过结合在一系列差别文件中的两个或多个而生成。
正如会被理解的那样,如果对文件作出的修改的量相对少,则差别文件可以显著地小于参考文件的大小。在节点10之间通过网络14仅传输差别文件而不是整个参考文件可以显著地减少必须通过网络14传输的数据量,这可以使得能够更快和更有效的文件同步。
在一个方面中,一个节点10可以指代“服务器”,其用于存储一个或多个特定参考文件和相关的差别文件。在应用第一节点通过网络连接到第二节点的布置中,第一节点可以作为用于第一文件或第一组文件的服务器,而第二服务器可以作为用于第二文件或第二组文件的服务器。因此,术语“服务器”或“服务器节点”标识在特定交换中作为服务器的节点。应当理解,除了在不同交换中的服务器,服务器还可以作为节点。
在上述的分布式实施方案中,多个节点10的每一者都可以指代服务器,其中每个节点10可以为特定参考文件和相关的差别文件的服务器。例如,第一参考文件可以提供在作为第一参考文件的服务器的第一节点10上,而第二参考文件可以提供在作为第二参考文件的服务器的第二节点10上,以此类推,对于任何数目的参考文件均如此。第三节点可以作为用于第三文件的服务器,但作为除了用于第一和第二文件的服务器之外的节点。可以理解的是,任何特定节点10也可以为多个此类参考文件的服务器。
服务器可以跟踪和存储与文件相关的数据,例如,文件的版本号。文件的新版本可以包括来自文件的旧版本的渐进变化。通过服务器控制的版本信息可以通过节点10访问。通过对于特定文件的版本号的集中存储,服务器可操作以确定每个节点10是否基于该文件的最新版本进行操作。
在特定的实施方案中,至少一个节点10进一步包括或链接到数据库17。数据库17可以用来存储关于存储在数据存储区16上的文件的信息。例如,服务器可以在其数据库17上存储对于存储在参考文件的数据存储区16上的每个参考文件的版本号(其可以对应于与用于该参考文件的差别文件相关的编号),以及对于每个该参考文件和/或差别文件的一个或多个注释。这些注释可以通过与该文件相关的元标记实现。除了服务器以外的节点还可以包括或链接到用于存储关于存储在节点的各自的数据存储区16上的文件的数据(例如这些文件的版本号)的数据库。
现在参考图2,每个节点10包括差异模块20和同步模块22。节点10可以进一步包括修改检测模块28、压缩模块24、搜索模块26以及文件监测器30。
差异模块20可操作以从参考文件和关于参考文件作出的修改而生成差别文件,其可以呈现在永久或临时存储的修改后的文件中。虽然修改后的文件可以在节点10基于内存8进行操作时存储在内存8中,但修改后的文件在任何时候都不需要存储在数据存储区上。然而,应当清楚,在一些实施方案中,修改后的文件也可以存储在数据存储区上。当提供有差别文件(或如下所描述的差异文件)时,差异模块20也可操作以供应差别文件到对应的参考文件(或差异文件),从而生成基于其操作的修改后的文件。
同步模块22可以操作以便有助于在节点10和服务器之间的文件的同步。同步模块22可以与节点10的收发器15配合以使得节点10能够与其他节点10通信(接收和传输)参考文件、差别文件以及差异文件。
节点的修改检测模块24可操作以检测在节点10上是否已对文件作出修改,不管节点10是否通过网络14连接到服务器。
节点10可以包括压缩模块24以便压缩和解压参考文件和差别文件已减小此类文件的大小。可以提供文件的压缩以便减小必须通过网络14发送的数据量,从而减少发送文件所需要的时间。
节点的搜索模块26可操作以执行对于文件的搜索,而不管节点10到网络14的连接状态。例如,节点的搜索模块26可以使对在其他节点上的文件的搜索能够不考虑应用了元数据的不可靠的连接,如本文中所进一步描述的。通常,从节点执行对于在服务器上的信息的搜索需要服务器和节点10之间的连接。在不可靠的网络上,该连接可能并不总是可用,这能够会导致较长的搜索时间和超时搜索。
在操作中,在一个实例中,节点10(或节点10的用户),可以请求访问特定文件。节点的同步模块22确定所请求的文件的版本是否存储在节点的数据存储区16上。
参考图3,显示了从服务器获取文件、更新文件以及将文件的更新的版本提供到服务器的用于节点的示例处理。在110中,请求访问在节点的文件。在112中,在节点上的同步模块确定文件未存在于节点的数据存储区中。在114中,节点进一步确定用于所请求文件的服务器并且从该服务器请求文件。基于接收请求的所请求文件的服务器,服务器访问其数据库17以确定所请求文件的版本号,并且相应地访问服务器的数据存储区16以检索所请求文件。在116中,服务器的同步模块将节点所请求的文件以及相关的版本信息提供到节点。
在118中,节点在节点的数据存储区16中存储的文件作为参考文件,并且在节点的数据库17中存储相应的版本信息。在120中,节点通过对参考文件作出修改而生成修改后的文件,并且在数据库17中存储与文件相关的版本信息。例如,120可以包括用户对文件进行添加并且存储修改后的文件作为新版本。在122中,差异模块20基于存储在118中的修改后的文件和参考文件而生成差别文件。在124中,节点向服务器提供差别文件和相关的版本信息。在126中,根据获取差别文件,服务器基于差别文件更新参考文件并且保存更新后的文件作为新版本。
在116的实施方案中,服务器节点的同步模块22访问其数据库17以确定所请求文件的最新的版本号,并且相应地访问其数据存储区16以检索参考文件以及一个或多个相关的差别文件。差别文件的数量可以从版本号导出。例如,从与四个差别文件相关的参考文件生成的修改后的文件可以具有的版本号为五。然后,服务器将参考文件和相关的差别文件提供到节点,其中节点的差异模块20基于参考文件和相关的差别文件而生成第一修改文件并且在118中存储该第一修改文件。根据节点进一步修改文件以产生第二修改文件,然后节点的差异模块会产生额外的差别文件,其映射第一修改文件和第二修改文件之间差别。类似于上面的描述,然后该节点会在124中向服务器提供差别文件。然后,服务器可以将差别文件提供到参考文件或简单地存储差别文件以便与其他节点共享。
另外,如果第一节点的数据存储区16已经具有所请求文件的版本,则第一节点的同步模块22例如通过访问第一节点的数据库17而确定其相应的版本号,数据库17存储用于存储在第一节点的数据存储区16上的每个文件的版本号。第一节点的同步模块22将版本号传送到功能作为服务器的节点。服务器节点的同步模块22访问其数据库17以确定对应于在服务器的数据存储区16上的所请求文件的版本号。如果第一节点和服务器节点的版本号相同,服务器节点不需要将任何文件传送到第一节点10。如果版本号不同,则服务器节点的同步模块22指导其差别模块20以生成对应于用于中间版本号的差别文件组的差异文件。服务器的同步模块22可以将差异文件和版本号传输到节点的同步模块22。然后,节点的差异模块20通过应用差异文件到其文件版本而生成修改后的文件。第一节点10将修改后的文件存储在其数据存储区16中并且在第一节点10的数据库17中存储版本号。第一节点10可以用修改后的文件覆盖第一节点10所请求文件的先前版本。
在上面的任一个示例中,服务器节点可以在其数据库17中存储节点已访问文件的指示符。
节点10可以根据文件进行操作以创建进一步修改的文件。一旦节点10完成修改文件,产生进一步修改的文件,则差异模块20基于进一步修改的文件和(接收的)修改后的文件来构建差别文件。节点10将进一步修改的文件存储在节点10的数据存储区16上并且在节点10的数据库17上存储更新的版本号。节点10可以用在其数据存储区16上的进一步修改的文件覆盖(接收的)修改后的文件。节点的同步模块22将差别文件传送到服务器节点的同步模块22。服务器节点的差异模块20可以将差别文件保存到差异模块20数据存储区17,并且更新对应于在其数据库16上的该文件的版本号。
文件管理系统可以进一步使第一节点10和第二节点10能够通过中间服务器来同步文件。一旦在第一节点10上作出修改,则可以将更新的文件通过中间服务器提供到第二节点10。这可以(例如)通过节点10根据前述内容将差别文件提供到服务器,服务器从其数据库确定已访问文件的其他节点(在该情况下为第二节点),服务器16根据前述内容更新文件的版本号,服务器请求第二节点向服务器提供第二节点的文件版本号,并且服务器16相应地生成差异文件以使第二节点10能够根据前述内容生成修改后的文件而完成。因此,差别文件以推送模式被提供到第二节点,而不是作为对由第二节点的请求的响应。
从用作服务器的节点到任何一个或多个节点的该请求可以提供如下。服务器的同步模块22将通知传送到其他节点10,其他节点10先前访问了与(从节点10)接收的差别文件相关的参考文件。任何此类其他节点的同步模块22可以相应地确定其对应的文件副本的版本号并且将该版本号发送到服务器。服务器的同步模块22将差异文件传送到每个节点10以便更新节点的文件到当前版本。通过这种方式,任何两个或多个此类节点10可以接收不同的差异文件,由于例如在任何此类节点10在先前的更新时离线的情况下,节点10先前可能未更新到相同的版本号。在接收到差异文件时,此类节点的差异模块20可以在其数据存储区上更新这些文件连同在差异模块20的数据存储区上的对应的版本号。
文件管理系统还使得节点10或操作节点10的用户能够查看文件的实际内容,以及与本地修改的文件的状态和在服务器上的文件的状态相关的元标记。使用不可靠的网络连接,服务器可能脱离接触一段时间。
在文件最近同步过时,参考文件优选地对应于服务器上的文件。当在第一节点和服务器之间的网络连接不可用时,可以基于参考文件和在第一节点上修改的文件的版本在第一节点上生成差别文件。例如,如果第一节点从服务器获取参考文件,则第一节点可以修改参考文件以形成修改后的文件。然后可以基于修改后的文件和参考文件在第一节点上生成差别文件。修改检测模块24可以操作以确定参考文件是否与在节点10上的文件的最新版本不同。修改检测模块24可以提供相对于在暂时缺乏网络连接的参考文件的状态的关于本地文件的状态的更新信息。修改检测模块24还可以向用户提供参考文件不同于修改后的文件的指示,如下所述。虽然自从通过第二节点最后同步以来在服务器上的文件可能已进行修改,但第一节点或在第一节点的用户可以能够从所述指示确定自从最后同步时以来在节点的哪个文件已进行修改。
节点可以提供有显示,该显示可操作以提供在节点上的文件的显示列表。基于从修改检测模块24接收到的信息,文件的列表可以提供视觉指示,该视觉指示为用户提供在节点上的文件版本不同于参考文件的指示。在节点上的文件不同于参考文件的指示例如可以包括:在文件不同时指向相反方向的双箭头。指示还可以包括进一步的细节,例如,文件最后修改的日期和时间以及最后的同步发生的日期和时间,或显示了在文件中的块多少百分比相同的百分比。基于文件中的差别向用户提供感官体验的其他指示也能够是可能的。
文件管理系统可以进一步提供文件的压缩。在某些实现中,根据文件的大小和网络14的带宽和可靠性,通过网络14在节点10之间传输文件所需要的时间量可能不便利地且过分地长。为了减少通过网络14必须传输的数据量,节点的压缩模块24可以通过应用压缩算法来压缩正在传输的文件。压缩算法可以例如包括VCDIFF,用于进行编码压缩和/或差异数据的另一种格式,或用于正在传输的文件的类型的任何适当的压缩算法。通过压缩文件,可以减少文件的大小,并因此可以减少通过网络14传输文件所需的时间。
现在参考图4,现在提供了生成差别文件的方法。在步骤36中,差异模块20将参考文件分割为多个块。可以基于预配置的分割参数来确定所述块的大小,差异模块20能够适应性地调整该预配置的分割参数。块大小的示例可以为4092字节、8192字节等。在步骤38中,差异模块20可以计算每个块的散列,并且分配标识符(例如,编号)到每个块。差异模块20可以在步骤40中分割对应的修改后的文件,分配标识符(例如,编号)并且在步骤42中计算修改后的文件的每个块的散列。然后,在步骤44中,修改后的文件的块的散列可以与参考文件的块的散列进行比较。在步骤46中,差异模块20确定在修改后的文件和参考文件之间的哪些块已进行了修改。在步骤48中,差异模块20可以生成差别文件,其包括修改的块和修改的块的标识符。应当理解,差异模块20可以选择性地包括块而没有散列。还应当理解,某些上述步骤可以以不同的顺序执行而对功能没有影响。
差异模块20可以基于文件的内容而通过设定标记来对块进行分割,使修改后的文件能够与参考文件比较,即使修改后的文件包括大量的重排。例如,每个块可以为散列的。然后,一个文件的散列可以与另一个文件的散列进行比较以便确定哪些块相同并且哪些块必须通过网络14传输到差别文件中,以便同步文件。
优选地,通过节点的差异模块20而不是在服务器处来进行本地化的散列比较,然而可以通过节点的差异模块20将散列传输到服务器用于比较。因为仅那些已改变的块可以需要通过网络14传输,因此生成的差别文件可以包括位于这些块中的数据。
为了进一步克服基于同步方法的现有差别文件的缺点,并且为了提高通过不可靠网络14来操作的文件管理系统的速度和可靠性,差异模块20可以在发起同步过程之前生成并在本地缓存差别文件。例如,如果差异模块20在节点10上生成差别文件,则差别文件可以在发起同步过程之前缓存在节点的内存8上。
换言之,不是在重新建立与服务器的网络连接时生成差别文件,而是在重新建立网络连接之前通过节点生成差别文件。例如,节点可以在执行其他任务时在后台生成差别文件。一旦重新建立网络连接,则已全部或部分生成差别文件,加快了通过网络的传输。通过在包括网络连接不可用时的更长的一段时间上分配生成差别文件的计算任务,一旦网络连接重新建立所需要计算步骤可以明显低于在网络重新建立时已生成差别文件的情况。另外,通过在重新建立网络连接之前使差别文件准备好同步,可以更快地完成同步过程,对在同步过程中再次失去连接具有较低的风险,并且对在网络建立时需要使用节点的处理器并且必须进行的其他活动具有更少的干扰。
还可以在对文件进行修改的同时,差异模块20生成了差别文件。
如果网络14不可靠,例如节点10和服务器之间的网络连接在同步期间丢失,则同步模块22可以应用中断和恢复传输算法以在网络连接重新建立时继续同步。中断和恢复传输算法可以为使之前没有传输或仅部分地传输的文件能够进行传输的任何算法。
此外,一些文件可以与其他文件相关。例如,可执行程序可能需要来自电子表格的输入。如果同步可执行文件但未同步电子表格,则可执行文件不能够访问到所需的输入值。因此,能够有利的是限定文件组或文件之间的关联,以促进这些文件一起同步。例如,第一文件可以包括从逗号分隔值(.csv)文件检索数据以执行预先确定的计算的可执行文件。如果节点的同步模块22设定为同步可执行文件,则包括.csv文件的所有相关的数据也能够得以同步。由于可执行文件可能未使用而没有最新的.csv文件,因此为了同步过程的目的而使.csv文件关联到电子表格防止了错误、不完整或非功能性的文件组同步。应当清楚,可以存在文件之间的关联的其他实例。如果关联的文件组的一个不能够同步,则可以出现报警消息以警告在节点10的用户相关文件丢失。另外,文件管理系统可以阻止文件进行显示或甚至删除文件,由于该文件可能在另一个节点10包含或发起错误。新同步的文件可以另外或额外保持隐藏,直到所有相关文件能够同步。
优选地,仅一个节点10能够在任何给定时间修改特定文件,以减少两个节点10会同时基于特定版本的文件操作并且试图同步不同的修改文件的可能性。因此,节点10可以局限于仅更新在服务器上的最新版本的文件。如果节点10访问特定的文件,则服务器的同步模块22可以指示其数据库该文件提供节点10“签出(checked out)”。在同步模块22与服务器进行同步时,已签出文件的节点10可以有权指定文件作为主副本。主副本指定可以保存在数据库17上。然后,节点10可以签入文件以允许其他节点10指定文件作为主副本。节点10可以将文件保存为新版本并且在数据库中存储版本信息。
包括指示文件是否为主副本的信息的版本信息可以存储在数据库17上,然而参考文件自身以及任何相关的差别文件(或差异文件)可以存储在数据存储区16上。如果另一个节点10试图访问文件,则其他节点10可以提供文件,然而,由于第一节点10已经签出文件,因此由第二节点10作出的任何修改不会应用作为该文件的差别文件。然而,第二节点10可以将其修改保存为新文件。
在一个实施方案中,当同步模块22同步在节点10上的文件与在数据存储区16中的相应文件时,该文件可以保持在服务器上。同样的,当同步模块22利用数据存储区16上可用并且通过服务器递送的新版本来更新节点10上的文件时,文件的旧版本可以不删除。文件的旧版本可以被保留并且可以通过存储与该文件相关的一个或多个差别文件的方式被保持和更新。
在实例中,如果在节点10上的参考文件为文件的版本一,其已在连续两次迭代中修改以产生修改的版本二和三,则在节点10上的同步模块22以两个差别文件或单个差异文件的形式将两个版本都提供给服务器节点。第一差别文件可以将构建为对应于版本二的修改后的文件所必需的信息提供给在服务器上的差异模块。第二差别文件可以将基于版本二而构建文件的版本三所必需的信息提供给在服务器上的差异模块。在该实施方案中,使得差异模块20能够构建文件的第二和第三版本的文件的第一版本和差别文件两者需要能够访问文件的所有三个版本。可选择地,节点可以提供对应于版本一和版本三之间的差别的单个差异文件,以获得文件的版本三。在另一个实施方案中,到文件的版本二的访问可能不可用。
转向图5,在节点10上(而不是在服务器上)的同步模块22可以导致服务器更新其数据存储区16。例如,如果在已签出文件的节点10上作出对参考文件50的修改,则该节点的同步模块22可以向服务器提供已通过该节点的差异模块20计算的差别文件。服务器可以在其存储该差别文件数据存储区16。然后可以由服务器的差异模块使用差别文件以构建文件的第二版本52。另外,服务器可以在数据存储区16上存储参考文件以及存储每个差别文件的更新文件。可以指出的是,在该实例中,提供到数据存储区16的参考文件以及差别文件保存在服务器的数据存储区16上。
例如,参考文件50可以上传到在用作服务器的节点上的数据存储区16。然后,不用作服务器的节点10的同步模块22签出参考文件50。在文件签出时,也不用作服务器的第二节点10可以提供下载参考文件而访问在服务器的数据存储区16上的参考文件。一旦第二节点10已完成修改文件,则第二节点的同步模块22可以提供对在服务器上的数据存储区16的修改。为了提供对在服务器上的数据存储区16的修改,第二节点的差异模块20可以基于参考文件50和修改后的文件52而在第二节点上本地计算差别文件54。然后,第二节点的同步模块可以将差别文件54提供到服务器以存储在数据存储区上。由于提供第一节点10签出了参考文件50,因此通过第二节点10产生的文件不可以指定为主副本。因此,差别文件可以单独地保存为B1。关于文件的版本的信息可以存储在服务器的数据库上。
如果第二节点10随后执行对文件的进一步的修改,第二差别文件56可以保存在服务器的数据存储区16上。一旦第一节点10完成修改文件,第一节点的差异模块20可以计算差别文件,差别文件然后通过同步模块的22而提供到服务器的数据存储区16。由于文件由第一节点签出,因此上传到服务器的数据存储区16的差别文件对应于第二主版本。类似地,如果然后第一节点10对文件作出了进一步的修改,则同步模块22可以将另外的差别文件58提供到服务器的数据存储区16作为文件的主版本,并且在服务器的数据库17上保存相应的版本信息。然后,一旦第一节点10已完成任何修改,则第一节点10可以签入文件。
例如,如果第三节点10然后签出并且修改文件,则同步模块22可以如在上面说明的过程中所概述的,将产生的差别文件提供到服务器的数据存储区16。该差别文件62可以存储在具有主副本指定的服务器的数据存储区16上。关于主副本指定的信息可以保存在服务器的数据库17中。然而,如果在第三节点10签出文件时,首先对对应于差别文件58的文件做出进一步的修改,则修改可以通过同步模块22以差别文件60的形式上传到服务器的数据存储区16,而不可以保存作为主副本。如果第一节点10然后进一步修改文件,则同步模块22可以将通过差异模块20计算的最新的修改文件64提供到服务器的数据存储区16。因此,在该实例中,在参考文件的每次新的更新,新的差别文件提供到数据存储区16而没有文件被删除。
节点10可以记录在存储在其数据存储区上的文件上执行的操作,例如,以确定文件更新的历史(特别地,如果节点10为用于这些文件的服务器)。在数据存储区16上执行的操作可以用例如时间戳、节点10(和/或其用户)的标识、节点10(和/或其用户)的位置、MAC地址/电脑ID等进行标识。
节点10从服务器请求不是在服务器上的最新版本的文件的文件版本也可以是可行的。节点10还可以请求在最新版本之后不止一个版本的文件的副本。为了使节点10能够访问旧版本的文件以及使文件从旧版本更新到最新的版本,服务器的差异模块可以操作以生成检查点文件。检查点文件为完整的文件,其可以通过节点10进行访问而不需要服务器将差别文件应用到参考文件。检查点文件可以以预定的间隔保存以减少必须由服务器的差异模块20执行的计算量(如果存在文件的很多版本)。文件管理系统可以操作以跟踪特定文件的新版本已保存的次数。文件管理系统也可以操作以基于其他参数(例如,版本改变的次数、日期、自从保存最新的检查点之后的时间、在版本更新之间已改变的内容的量等)来保存检查点文件。
文件管理系统还可以操作以间隔来保存检查点文件,该间隔基于节点10多久更新一次文件和节点10多久请求一次文件的旧版本。在不用作服务器的节点10请求与检查点文件相同的文件版本的情况下,服务器可以将检查点文件传输到节点10。如果节点10已具有另一个版本的文件,则也可以传输直接映射当前在节点10的文件和节点10正在请求的文件之间的差别的差别文件。然而,如果节点10请求与检查点文件不同的文件版本,则服务器的差异模块20可以操作以通过将差别文件应用到最适当的检查点文件来计算所请求的文件的版本。
例如,如果节点10从服务器请求文件的第十版本(该文件当前处在其第二十版本),并且在每个第五版本保存检查点文件,则检查点文件的第十版本可以通过服务器提供到节点10。如果节点10请求相同文件的第十一版本,则服务器可以通过将差别文件应用到第十版本来计算第十一版本。根据存储的差别文件,服务器还可以应用一个或多个差别文件到第十五版本以获得第十版本。节点的同步模块22可以操作以将文件的所请求的版本通过网络14提供到节点10。另外,如果节点10当前已访问第二十版本,但想要访问第九版本,则服务器可以计算映射第二十版本和第九版本之间的差别的差别文件并且将该差别文件传输到节点10。
通过传输差别文件而不是文件的整个第九版本,可以更快地完成传输。一旦节点10接收到差别文件,则节点的差异模块20可以操作以计算文件的第九版本。通过仅保存一定数量的版本文件但保存足够的差别文件,以使文件的中间版本能够通过服务器的差异模块进行计算,也可以减少在服务器的数据存储区16上所需的内存量。
为了加快提供在最新版本之后不止一个版本的文件的过程,差异模块可以操作以与检查点文件协作来计算多个差别文件的相关结合。考虑这样一个实例,服务器每更新十个版本保存一次检查点文件,并且总共存在特定文件的五十五个版本,于是可以需要四十五个差别文件以提供到在检查点之间的每个版本的访问。为了节省数据存储区中的空间,可以假定大多数节点10会具有不超过十个版本旧的版本,并且都想要将文件的版本更新到最新的版本。这将所需的差别文件(或差异文件)的数量减少到十。在差别文件非常大或数据存储区16上的空间可能有限的情况下,使特定数量的过去版本能够更新到最新版本的差别文件可以存储以便更快地答复任何节点的更新请求。
在另外的方面,节点10可以操作以生成同步列表以便从服务器请求多个文件。当访问网络14时,在同步列表上的所有文件可以作为一组或优先进行更新。在一个实例中,由用户操作节点10,当用户离开节点10或不使用网络连接时,节点10可以更新在同步列表上的文件,从而使更多的带宽可用于同步过程。为了同步在同步列表中的每个文件而不传输整个文件,每个文件的某些版本可能需要存储在节点10上,例如参考文件。因此,节点的同步模块22请求服务器16为同步模块22提供对于每个此类参考文件的相应的差别文件。
参考图6,说明了不用作服务器的第一节点从服务器接收文件的更新版本的方法。在130中,节点10的操作者请求访问文件。在132,在节点上的同步模块从节点的数据库17确定在节点的数据存储区16中的文件的版本。节点确定文件是否在同步列表上。在134,节点确定文件在同步列表上。在136中,在确定了文件在同步列表上的情况下,节点从服务器请求更新的版本并且将存在于节点上的文件的版本标识符提供给服务器。在138中,服务器确定在服务器上的文件的版本标识符是否比在节点上的版本较新。在140中,在确定了服务器上的版本较新的时候,服务器将一个或多个差别文件提供给节点,需要所述差别文件从在节点上的参考文件生成文件的更新后的版本。如上所述,生成差别文件。如上所述,可以在从节点的更新请求之前或之后生成差别文件。
在142中,节点在内存中存储差别文件并且基于从服务器获得的差别文件和在节点上现有的差别文件而生成修改后的文件。
虽然在图6中概述了用于更新单个文件的请求,但节点10可以基于同步列表来请求待同步的文件的大范围列表。为了节省节点10的内存和通过网络14的带宽,在通过网络14传输之前,在同步列表上的文件可以通过节点的压缩模块24进行压缩并且以压缩的格式存储。同样地,通过服务器16传输到节点10的文件可以在传输之前进行压缩。
通过在任何同步过程之前执行差异计算和文件压缩计算,可以减少同步所需的时间。这对于网络访问仅在一天中是有限量的小时可用的情况下可以特别有利。通过在通过网络14数据传输之前和之后执行差异计算,可以在网络14可用时使网络14的利用度最大。此外,如上所述,由于仅传输一个文件,因此传输可以在间歇性可用的网络中中断和恢复而没有重大损失。因为仅将某些版本保存为检查点版本而其他版本可以通过差异模块20根据差别文件进行计算,因此可以明显降低数据存储区16所需的空间量。
通过保存差别计算,差别文件可以用于更新未来的文件而不需要额外的计算步骤。这提高了同步系统的效率并且减少了服务器和节点10两者上的负载。此外,由于服务器可以随着创建文件的最新版本而以差别文件的形式将更新分配到每个节点10,因此可以减少必须计算的差别文件的数量。此外,由于差别文件通常小于参考文件,在传输期间能够使文件破坏的可能性较低。
本发明的同步过程的另一个优点在于,压缩可以应用于特定的差别文件,进一步减少了必须通过网络14传输的数据量。
在另一方面中,文件管理系统使文件的元数据标签能够位于服务器的数据存储区16中或在本地位于节点上。元数据标签可以存储在节点的数据库17中以及服务器的数据库中。通过在节点的数据库17上存储元数据标签,元数据标签可以用于在网络连接暂时中断时执行搜索。节点的数据库17可以将元数据提供到节点的搜索模块26。节点的搜索模块26提供了向节点10的搜索功能。在相关数据库中,在服务器上的每个文件可以通过节点10、服务器,或搜索模块26基于文件的种类进行标记。同样地,可以通过在服务器上的搜索模块应用在服务器的数据库17中的元数据来执行元数据搜索。元数据可以包括类。
类可以是用户创建或可以通过搜索模块26自动地创建。例如,类可以存在于特定的工作站点、特定类型的项目、特定员工类型和/或特定的文件类型。也可以基于(例如)文件的创建者或编辑者、创建文件的日期、用于创建文件的程序、文件内容、文件被访问的次数以及在文件中的特定信息来标记文件。例如,在采矿作业中,可以将某些文件标记为属于包括钻孔数据的类。在该类中的每个文件可以具有独特的属性,并且节点的搜索模块26可以操作以基于文件的类来搜索文件。
根据上述内容的元数据标记可以通过不可靠的网络连接最佳地应用于连接数据传输。例如,当服务器的同步模块22提供更新的文件到节点10时,类和标记信息也可以提供到节点10。这可以确保类的信息以及与文件相关的其他元数据标签可用于节点的搜索模块26。节点10可以保存类和标记数据。与同步文件类似地,服务器也可以提供已进行标记的其他文件的标签数据。服务器还可以提供标记在数据存储区16可用的元数据的更大的子集,或可以提供与到节点10的标记相关的所有元数据。
根据从服务器下载的元数据的数量,在不用作服务器的节点10处的用户可以应用元数据来搜索在数据存储区16上的文件的整体,或搜索在数据存储区16上的文件的子集。例如,如果用户在已从服务器下载了在数据存储区16上的所有文件的元数据标签的节点10处工作,则用户可以搜索特定类的所有文件或标记有特定信息的所有文件。例如,用户可能希望从在特定区域中所有使用工具钢位而钻出的钻孔中搜索信息。可以对在特定区域中使用工具钢位钻出的钻孔的种类中的所有文件进行相应的搜索。然后,用户可以选择以具有并入同步列表中的特别相关的文件以使用户能够查看文件并且保持该文件为其最新版本。例如,如果具有相关的其他文件的文件添加到同步列表中,则所有相关文件可以同样地添加到同步列表中。
此外,由节点10创建的文件(该节点不用作这些文件的服务器)可以添加到必须与这些文件的服务器同步的文件的同步列表。由于在服务器的数据存储区16上可以不存在文件的副本,因此服务器的同步模块22可以在同步过程期间将文件上传到数据存储区16。如果在节点10或在某一他节点对文件作出修改,则在服务器上的差异模块20可以将更新并入数据存储区16。
为了有助于文件的标记,具有相关元数据的特定模板可以推荐用于每种类型的文件。用户可以结合模板以及添加或移除新标记和类以优化元数据,从而可以在未来的搜索中很容易地找到文件。元数据还可以包括文件夹信息,其可以与特定文件的内容相关。例如,如果现有的文件夹结构上传到数据存储区16,则服务器可以从文件夹名称或与上传的文件夹相关的其他信息来创建元数据。
在另外一方面中,文件管理系统能够离线同步。节点10可以确定在节点10上的每个文件或在节点10上的特定文件的同步状态。为了确定文件已被修改多少,系统可以实现文件监测器30。文件监测器可以操作以确定修改后的文件和从服务器下载到节点10的文件的最新版本之间的差别。如上所述,由于节点10存储从服务器下载的文件的最新副本作为参考文件,因此节点的修改检测模块24可以比较文件的修改后的版本与参考文件。如果文件在预定的时间段未与服务器同步,或如果参考文件与修改后的文件之间的差别大于某一阈值,则节点的修改检测模块24可以向用户提供报警,文件应该在到网络14的访问变得可用时进行同步。
文件管理系统可以进一步优化与先前和服务器同步的版本最不同的文件的同步。例如,如果节点的同步模块22设定为同步两个文件,则与从服务器最近访问的文件相比最严重地修改的文件会首先进行同步。用户还可以提供在节点10的同步列表上应该首先处理的文件的手动优先级排列。同步列表的优先级排列还可以基于施加到文件的元数据标签或种类进行确定。首先同步较高优先级的文件可以确保最高优先级的文件在网络访问中断之前进行同步。
可以在没有节点的知晓的情况下修改文件而,例如,如果文件包括在由传感器监测的钻孔过程期间收集的信息,则文件可以在节点10的背景中进行更新。为了告知节点10文件必须与服务器同步以将相关的差别文件提供到服务器,节点的修改检测模块24可以监测在最近的同步期间本地存储的文件的最新版本和在节点10上最新更新的文件之间差别。节点的修改检测模块24可以注册有节点的操作系统,以便从多个程序和处理中捕获文件改变,类似于病毒扫描程序。然后,应该与服务器同步的所有文件可以在网络14变得可用时进行同步。
通过联接具有基于本地存储的元数据搜索在服务器上的所有文件的能力,以及监测文件改变的能力的服务器文件的缓存,文件管理系统可以比过去的系统更适应于使用不可靠的网络。这允许最少的数据传输并且确保应该同步的文件尽快同步。此外,通过使用户能够在节点10不用作这些文件的服务器时搜索在节点10上的文件,可以在缺乏网络连接时进行搜索。
参考图7,在一个实现中显示了文件管理器的操作的实例,其中显示了关于采矿的准备、建设和运营的各种类型的数据。应当理解,这仅为一个实例,并且可以提供许多其他的实例实现以及关于该实现的过程。
在该实例中,三种类型的数据可以存储在用作这些文件的服务器的节点上的文件中。第一种类型的数据可以经常更新。例如,爆破孔数据76、铁矿石控制块模型82以及短期计划90可以每天更新。第二种类型的数据可以不经常地更新,例如采矿设计84可以每周或每月更新。第三种类型的数据可以很少更新,例如,化验数据70、钻孔数据72、固体数据74、块模型78、长期计划86可以每年更新。
例如,在工作组内可以有已保存的给定文件的很多版本。即使对于个人用户,也可以有已保存的每个版本的文件的多个迭代。在某种程度上,工作是“足够完整”以与更广泛的受众分享,此时当前版本“公开(published)”在文件的服务器上,使其他节点能够访问公开的文件。这是在采矿业中尤其重要的概念,这是因为数据公开时很多都存在风险,因此其通常仅能够通过具有特定认证的人员完成。
可以不替换文件的旧版本;然而,其可以进行访问,编辑,一样保存为新文件或新版本。这确保文件的历史顺序总是可以从数据存储区16中进行检索。当用户希望编辑文档时,用户必须签出该文档以在主副本中进行编辑。其他用户可以访问相同的文档;然而,这些其他用户所做的更改不会保存为文档的新版本。这些更改可以保存为文档的侧枝,如图5所示。仅已签出文档的用户可以保存文档的主版本。
尽管上述内容参照某些特定实施方案加以描述,但是对于本领域技术人员显而易见的是,对实施方案进行各种修改而不脱离所附权利要求的范围。
Claims (20)
1.一种通过网络来同步数据文件的方法,所述方法包括:
第一节点与第二节点建立连接,所述第一节点在其上已存储有:
一个或多个数据文件,每个数据文件都关联有版本标识符,以及
待同步的数据文件的第一同步列表;
所述第二节点在其上已存储有一个或多个对应的数据文件,每个对应的数据文件都关联有版本标识符;
所述第一节点基于所述版本标识符来确定在所述第一同步列表上的所述一个或多个数据文件的每一者的较新的版本是否存在于所述第二节点上;以及
在确定了所述第二节点包括较新版本的情况下,所述第一节点从所述第二节点获取差别文件以更新在所述第一节点上的数据文件。
2.根据权利要求1所述的方法,其中所述同步列表包括由用户选择的多个数据文件。
3.根据权利要求2所述的方法,其中与由所述用户选择的数据文件关联的数据文件也包括在所述同步列表中。
4.根据权利要求1所述的方法,其中:
所述第二节点进一步包括待同步的数据文件的第二同步列表;并且
其中所述第二节点在与所述第一节点建立连接的情况下确定所述第一节点是否包括在所述第二同步列表上的每个文件的较新版本;并且
在确定了所述第一节点包括较新版本的情况下,所述第二节点从所述第一节点获取差别文件以更新在所述第二节点上的数据文件。
5.根据权利要求1所述的方法,进一步包括:将同步列表上的每个文件进行优先级排序的关联,其中,根据所述优先级排序来同步所述数据文件。
6.根据权利要求5所述的方法,其中基于与每个所述数据文件关联的元数据而生成所述优先级排序。
7.根据权利要求5所述的方法,其中基于在所述第一节点上的数据文件的版本标识符和在所述第二节点上的数据文件的较新版本之间的差别的大小而生成所述优先级排序。
8.根据权利要求5所述的方法,其中:
在所述第一节点上还存储有用于所述一个或多个数据文件的每一者的参考文件;
在所述第一节点上的修改检测模块确定了在所述第一同步列表上的每个数据文件相对于各自的参考文件的差别程度;以及
基于所述数据文件和所述参考文件之间的差别的大小而生成所述优先级排序。
9.根据权利要求1所述的方法,其中所述差别文件表示在一个节点上的数据文件的版本和在另一个节点上的数据文件的版本之间的差别。
10.根据权利要求1所述的方法,其中,一系列差别文件中的至少两个用于更新在所述第一节点上的文件;该至少两个差别文件的其中一个表示在所述第二节点上的数据文件的版本和中间版本之间的差别。
11.一种用于通过网络来同步数据文件的系统,所述系统包括:
第一节点,其包括:
数据存储区,所述数据存储区能够被操作以存储多个数据文件;
数据库,所述数据库包括能被操作以存储与每个所述数据文件关联的版本标识符;以及
待同步的数据文件的同步列表;
第二节点,其包括一个或多个对应的数据文件,每个对应的数据文件与版本标识符关联;
其中,在所述第一节点与所述第二节点建立连接的情况下,所述第一节点能操作以基于所述版本标识符确定在第一同步列表上的一个或多个数据文件的每个的较新的版本是否存在于所述第二节点上;以及
在确定了所述第二节点包括较新版本的时候,所述第一节点能操作以从所述第二节点获取差别文件以更新在所述第一节点上的数据文件。
12.根据权利要求11所述的系统,其中所述同步列表包括由用户选择的多个数据文件。
13.根据权利要求12所述的系统,其中在所述同步列表中还包括与所述用户选择的数据文件相关联的任何数据文件。
14.根据权利要求11所述的系统,其中:
所述第二节点进一步包括待同步的数据文件的第二同步列表;并且
其中在第二节点与所述第一节点建立连接的情况下,所述第二节点能被操作以确定所述一节点是否包括在第二同步列表上的每个文件的较新的版本;并且
在确定所述第一节点包括较新的版本的情况下,所述第二节点能被操作以从所述第一节点获取差别文件以更新在所述第二节点上的数据文件。
15.根据权利要求11所述的系统,其中,对所述同步列表上的每个数据文件进行优先级排序的关联,并且根据所述优先级排序来同步所述数据文件。
16.根据权利要求15所述的系统,其中基于与每个所述数据文件关联的元数据来生成所述优先级排序。
17.根据权利要求15所述的系统,其中基于在所述第一节点上的数据文件的版本标识符和在所述第二节点上的数据文件的较新版本之间的差别的大小而生成所述优先级排序。
18.根据权利要求15所述的系统,其中:
所述数据存储区进一步包括参考文件,所述参考文件用于存储在所述数据存储区上的一个或多个数据文件的每一个;
所述第一节点进一步包括修改检测模块,所述修改检测模块能操作以确定在所述第一同步列表上的每个所述数据文件相对于各自的参考文件的差别程度;以及
基于所述数据文件和所述参考文件之间的差别的大小而生成所述优先级排序。
19.根据权利要求11所述的系统,其中所述差别文件表示在一个节点上的数据文件的版本和在另一个节点上的数据文件的版本之间的差别。
20.根据权利要求11所述的系统,其中,一系列差别文件中的至少两个用于更新在所述第一节点上的文件;该至少两个差别文件的其中一个表示在所述第二节点上的数据文件的版本和中间版本之间的差别。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161555999P | 2011-11-04 | 2011-11-04 | |
US61/555,999 | 2011-11-04 | ||
CA2769773 | 2012-02-28 | ||
CA2769773A CA2769773C (en) | 2011-11-04 | 2012-02-28 | System and method for data communication over a network |
PCT/CA2012/050784 WO2013071428A1 (en) | 2011-11-04 | 2012-11-05 | System and method for data synchronization over a network |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104272649A true CN104272649A (zh) | 2015-01-07 |
Family
ID=48222505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280065691.2A Pending CN104272649A (zh) | 2011-11-04 | 2012-11-05 | 用于通过网络进行数据同步的系统和方法 |
Country Status (4)
Country | Link |
---|---|
CN (1) | CN104272649A (zh) |
AU (1) | AU2012339532B2 (zh) |
CA (1) | CA2769773C (zh) |
WO (1) | WO2013071428A1 (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279100A (zh) * | 2015-11-04 | 2016-01-27 | 杭州华为数字技术有限公司 | 链接克隆母卷更新方法及装置 |
CN106372199A (zh) * | 2016-08-31 | 2017-02-01 | 镇江乐游网络科技有限公司 | 一种基于元数据支持的多版本文件管理系统 |
CN107172169A (zh) * | 2017-05-27 | 2017-09-15 | 广东欧珀移动通信有限公司 | 数据同步方法、装置、服务器及存储介质 |
CN108121804A (zh) * | 2017-12-22 | 2018-06-05 | 百度在线网络技术(北京)有限公司 | 跨地域分布式存储数据的方法、装置、终端及存储介质 |
CN109218447A (zh) * | 2018-10-29 | 2019-01-15 | 中国建设银行股份有限公司 | 媒体文件分发方法及文件分发平台 |
CN109308272A (zh) * | 2017-07-28 | 2019-02-05 | 同星科技股份有限公司 | 通过数据储存装置控制外围装置的方法与可控制外围装置的数据储存装置 |
CN110636090A (zh) * | 2018-06-22 | 2019-12-31 | 北京东土科技股份有限公司 | 窄带宽条件下的数据同步方法和装置 |
CN110809756A (zh) * | 2017-06-29 | 2020-02-18 | 微软技术许可有限责任公司 | 代码评审重新设定差异 |
CN111090835A (zh) * | 2019-12-06 | 2020-05-01 | 支付宝(杭州)信息技术有限公司 | 一种文件衍生图的构建方法及装置 |
CN111259072A (zh) * | 2020-01-08 | 2020-06-09 | 广州虎牙科技有限公司 | 数据同步方法、装置、电子设备和计算机可读存储介质 |
CN113094443A (zh) * | 2021-05-21 | 2021-07-09 | 珠海金山网络游戏科技有限公司 | 数据同步方法及装置 |
CN114124928A (zh) * | 2021-09-27 | 2022-03-01 | 苏州浪潮智能科技有限公司 | 设备间文件快速同步方法、装置及系统 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105991685B (zh) * | 2014-11-07 | 2019-06-25 | 天地融科技股份有限公司 | 数据更新方法及系统 |
US10425477B2 (en) | 2015-09-15 | 2019-09-24 | Microsoft Technology Licensing, Llc | Synchronizing file data between computer systems |
US10671590B2 (en) * | 2016-05-27 | 2020-06-02 | Cisco Technology, Inc. | Delta database synchronization |
CN112714149A (zh) * | 2020-11-27 | 2021-04-27 | 北京飞讯数码科技有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1480859A (zh) * | 2002-09-03 | 2004-03-10 | 鸿富锦精密工业(深圳)有限公司 | 分布式文件同步系统及方法 |
CN1489052A (zh) * | 2002-10-11 | 2004-04-14 | 鸿富锦精密工业(深圳)有限公司 | 多节点文件同步系统及方法 |
CN1756108A (zh) * | 2004-09-29 | 2006-04-05 | 华为技术有限公司 | 主备系统数据同步方法 |
EP1681652A2 (en) * | 2005-01-14 | 2006-07-19 | Microsoft Corporation | Method nad system for synchronizing multiple user revisions to a shared object |
CN101142573A (zh) * | 2004-10-25 | 2008-03-12 | 恩鲍尔技术公司 | 全局数据同步的系统和方法 |
US20090196179A1 (en) * | 2008-02-01 | 2009-08-06 | Microsoft Corporation | Representation of qualitative object changes in a knowledge based framework for a multi-master synchronization environment |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6381618B1 (en) * | 1999-06-17 | 2002-04-30 | International Business Machines Corporation | Method and apparatus for autosynchronizing distributed versions of documents |
US6738766B2 (en) * | 2000-02-02 | 2004-05-18 | Doongo Technologies, Inc. | Apparatus and methods for providing personalized application search results for wireless devices based on user profiles |
US7818513B2 (en) * | 2004-08-10 | 2010-10-19 | Oracle America, Inc. | Coordinating accesses to shared objects using transactional memory mechanisms and non-transactional software mechanisms |
CN102193841B (zh) * | 2010-03-04 | 2013-07-31 | 阿里巴巴集团控股有限公司 | 一种Subversion配置库的备份方法及装置 |
-
2012
- 2012-02-28 CA CA2769773A patent/CA2769773C/en active Active
- 2012-11-05 AU AU2012339532A patent/AU2012339532B2/en active Active
- 2012-11-05 CN CN201280065691.2A patent/CN104272649A/zh active Pending
- 2012-11-05 WO PCT/CA2012/050784 patent/WO2013071428A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1480859A (zh) * | 2002-09-03 | 2004-03-10 | 鸿富锦精密工业(深圳)有限公司 | 分布式文件同步系统及方法 |
CN1489052A (zh) * | 2002-10-11 | 2004-04-14 | 鸿富锦精密工业(深圳)有限公司 | 多节点文件同步系统及方法 |
CN1756108A (zh) * | 2004-09-29 | 2006-04-05 | 华为技术有限公司 | 主备系统数据同步方法 |
CN101142573A (zh) * | 2004-10-25 | 2008-03-12 | 恩鲍尔技术公司 | 全局数据同步的系统和方法 |
EP1681652A2 (en) * | 2005-01-14 | 2006-07-19 | Microsoft Corporation | Method nad system for synchronizing multiple user revisions to a shared object |
US20090196179A1 (en) * | 2008-02-01 | 2009-08-06 | Microsoft Corporation | Representation of qualitative object changes in a knowledge based framework for a multi-master synchronization environment |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279100A (zh) * | 2015-11-04 | 2016-01-27 | 杭州华为数字技术有限公司 | 链接克隆母卷更新方法及装置 |
CN106372199A (zh) * | 2016-08-31 | 2017-02-01 | 镇江乐游网络科技有限公司 | 一种基于元数据支持的多版本文件管理系统 |
CN106372199B (zh) * | 2016-08-31 | 2019-07-05 | 镇江乐游网络科技有限公司 | 一种基于元数据支持的多版本文件管理系统 |
CN107172169A (zh) * | 2017-05-27 | 2017-09-15 | 广东欧珀移动通信有限公司 | 数据同步方法、装置、服务器及存储介质 |
CN110809756A (zh) * | 2017-06-29 | 2020-02-18 | 微软技术许可有限责任公司 | 代码评审重新设定差异 |
CN110809756B (zh) * | 2017-06-29 | 2023-11-17 | 微软技术许可有限责任公司 | 代码评审重新设定差异 |
CN109308272A (zh) * | 2017-07-28 | 2019-02-05 | 同星科技股份有限公司 | 通过数据储存装置控制外围装置的方法与可控制外围装置的数据储存装置 |
CN108121804B (zh) * | 2017-12-22 | 2020-06-05 | 百度在线网络技术(北京)有限公司 | 跨地域分布式存储数据的方法、装置、终端及存储介质 |
CN108121804A (zh) * | 2017-12-22 | 2018-06-05 | 百度在线网络技术(北京)有限公司 | 跨地域分布式存储数据的方法、装置、终端及存储介质 |
CN110636090A (zh) * | 2018-06-22 | 2019-12-31 | 北京东土科技股份有限公司 | 窄带宽条件下的数据同步方法和装置 |
CN109218447A (zh) * | 2018-10-29 | 2019-01-15 | 中国建设银行股份有限公司 | 媒体文件分发方法及文件分发平台 |
CN109218447B (zh) * | 2018-10-29 | 2021-09-17 | 中国建设银行股份有限公司 | 媒体文件分发方法及文件分发平台 |
CN111090835A (zh) * | 2019-12-06 | 2020-05-01 | 支付宝(杭州)信息技术有限公司 | 一种文件衍生图的构建方法及装置 |
CN111259072A (zh) * | 2020-01-08 | 2020-06-09 | 广州虎牙科技有限公司 | 数据同步方法、装置、电子设备和计算机可读存储介质 |
CN111259072B (zh) * | 2020-01-08 | 2023-11-14 | 广州虎牙科技有限公司 | 数据同步方法、装置、电子设备和计算机可读存储介质 |
CN113094443A (zh) * | 2021-05-21 | 2021-07-09 | 珠海金山网络游戏科技有限公司 | 数据同步方法及装置 |
CN114124928A (zh) * | 2021-09-27 | 2022-03-01 | 苏州浪潮智能科技有限公司 | 设备间文件快速同步方法、装置及系统 |
CN114124928B (zh) * | 2021-09-27 | 2023-07-14 | 苏州浪潮智能科技有限公司 | 设备间文件快速同步方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
AU2012339532B2 (en) | 2016-12-01 |
WO2013071428A8 (en) | 2013-10-31 |
WO2013071428A1 (en) | 2013-05-23 |
AU2012339532A1 (en) | 2014-05-01 |
CA2769773C (en) | 2018-01-09 |
CA2769773A1 (en) | 2013-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104272649A (zh) | 用于通过网络进行数据同步的系统和方法 | |
CN103678319B (zh) | 资源文件更新方法、装置和系统及服务器 | |
CN104253866B (zh) | 虚拟网络功能网元的软件部署方法、系统及相关设备 | |
EA003156B1 (ru) | Система и способ обновления удаленной базы данных в сети | |
CN105516233A (zh) | 用于在一个或多个云系统上便携部署应用的方法和系统 | |
KR20040099392A (ko) | 데이터가 여러 데이터 저장부들에 저장되는 방식을동기화하기 위한 방법 및 장치 | |
CN102291416A (zh) | 一种客户端与服务器端双向同步的方法及系统 | |
CN104182294A (zh) | 一种文件备份、文件恢复方法及装置 | |
CN106790131B (zh) | 一种参数修改方法、装置及分布式平台 | |
CN104506367A (zh) | 一种升级管理系统 | |
CN104935634A (zh) | 基于分布共享存储的移动设备数据共享方法 | |
CN103067521A (zh) | 一种分布式爬虫集群中的节点和系统 | |
US8949419B2 (en) | Synchronizing sharing servers | |
CN103279696A (zh) | EDA软件的License监控方法和系统 | |
US10402373B1 (en) | Filesystem redirection | |
CN100571172C (zh) | 电信管理网中一种多厂商告警管理系统及其告警方法 | |
CN106302641A (zh) | 一种上传文件的方法、装置和系统 | |
JP2009277142A (ja) | 作業情報管理装置、作業情報管理方法及び作業情報管理プログラム | |
CN105389399A (zh) | 数据库集群的元信息的管理的方法及装置 | |
CN112163125A (zh) | 设备管理方法和装置、存储介质及电子设备 | |
JP2010146321A (ja) | 情報処理装置、情報処理方法、および、そのプログラム | |
KR100671789B1 (ko) | 유무선 분산 환경하의 공간 데이터간의 데이터 전송과데이터 동기화 방법 및 그러한 방법의 실행을 위한 분산공간 데이터 동기화 시스템 | |
CN104679782A (zh) | 文件版本控制系统及方法 | |
JP5932613B2 (ja) | シンクライアント端末を介したデータ送受信システム及び方法 | |
JP4274530B2 (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150107 |