CN101911037A - 异步复制 - Google Patents

异步复制 Download PDF

Info

Publication number
CN101911037A
CN101911037A CN2008801232352A CN200880123235A CN101911037A CN 101911037 A CN101911037 A CN 101911037A CN 2008801232352 A CN2008801232352 A CN 2008801232352A CN 200880123235 A CN200880123235 A CN 200880123235A CN 101911037 A CN101911037 A CN 101911037A
Authority
CN
China
Prior art keywords
file
server computer
server
application program
computer
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.)
Granted
Application number
CN2008801232352A
Other languages
English (en)
Other versions
CN101911037B (zh
Inventor
S·P·克拉克
M·A·S·S·波斯
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 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 CN101911037A publication Critical patent/CN101911037A/zh
Application granted granted Critical
Publication of CN101911037B publication Critical patent/CN101911037B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/172Caching, prefetching or hoarding of files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

可将服务器文件的副本的内容保存到下载文件、基础文件、以及工作文件。可以从应用程序接收该应用程序已经编辑工作文件的指示并且可将所编辑的工作文件的副本保存到上传文件。可以查询服务器计算机以确定该服务器计算机上的服务器文件是否已变更。如果服务器计算机上的服务器文件尚未变更,则可以用上传文件的内容来更新该服务器计算机上的服务器文件。如果服务器计算机上的服务器文件已变更,则可执行对上传文件、基础文件、以及服务器计算机上的已变更的服务器文件的三向归并。然后可以用三向归并结果来更新该服务器计算机上的服务器文件。

Description

异步复制
背景
客户机-服务器是通过计算机网络来将客户机与服务器分开的计算体系结构。连接到计算机网络的每一个客户机和服务器都可被称为节点。最基本的客户机-服务器体系结构类型只采用两种节点类型:客户机和服务器。该体系结构类型有时被称为“双层”。该双层体系结构允许客户机和服务器通过计算机网络共享文件和资源。
客户机可运行许多软件实例。每一个客户机软件实例都可以向一个或多个连接的服务器发送数据文件请求。进而,服务器可接受这些请求,处理这些请求,并将所请求的数据文件返回给作出请求的客户机。可以在服务器上的所请求的数据文件上放置“锁”,以使得没有其他客户机可编辑该数据文件。然而,当客户机和服务器之间通过计算机网络的连接丢失时,该锁也可能丢失。这可能是有问题的,因为当重新获得不具有适当的锁的连接时,客户机无法知晓在丢失连接(且随后丢失锁)后数据文件是否被另一客户机编辑。
概述
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并非旨在标识出所要求保护的主题的关键特征或必要特征。本概述亦非旨在用于限制所要求保护的主题的范围。
可将服务器文件的副本的内容保存到下载文件、基础文件、以及工作文件。这些文件(例如,下载、基础、和工作)可以按抽象的方式(例如,在数据库中)存储在客户机器上以允许更高效的存储和更新。这些文件不一定是实际文件。可以从应用程序接收该应用程序已经编辑了工作文件的指示并且可将所编辑的工作文件的副本保存到上传文件。可以查询服务器计算机以确定该服务器计算机上的服务器文件是否已变更。如果服务器计算机上的服务器文件尚未变更,则可以用上传文件的内容来更新该服务器计算机上的服务器文件。因为可能不存在保证原子性的锁,所以服务器计算机可以在一个原子事务中执行该检查和替换。如果服务器计算机上的服务器文件已变更,则可执行对上传文件、基础文件、以及服务器计算机上的已变更的服务器文件的三向归并。然后可以用三向归并结果来更新该服务器计算机上的服务器文件。
前述概括描述和以下详细描述两者都提供示例且都只是说明性的。因此,前述概括描述和以下详细描述不应被认为是限制性的。此外,除了此处所阐明的那些之外还可提供其他特征或变型。例如,各实施方式可涉及在详细描述中描述的各种特征组合和子组合。
附图简述
合并在本发明中并构成其一部分的附图示出本发明的各种实施方式。在附图中:
图1是一操作环境的框图;
图2是用于提供异步复制的方法的流程图;以及
图3是包括客户机计算机的系统的框图。
详细描述
以下详细描述参考各个附图。只要可能,就在附图和以下描述中使用相同的附图标记来指示相同或类似的要素。尽管可能描述了本发明的各实施方式,但修改、改编和其他实现也是可能的。例如,可以对附图中所示出的要素进行置换、添加、或修改,且可以通过对所公开的方法置换、重新排序、或添加阶段来修改此处所描述的方法。因此,以下详细描述并不限制本发明。相反,本发明的正确范围由所附权利要求书确定。
可以提供异步复制(例如,对于用户界面)。本发明的各实施例可以为用户的基于服务器的文件提供可靠的可用性。例如,本发明的各实施例可以自动将远程内容(例如,来自服务器)高速缓存在本地存储中(例如,客户机上)。该高速缓存可由客户机上的本地应用程序拥有和管理。为了提供该远程高速缓存特征,本发明的各实施例可以:i)无缝地将服务器文件复制到由用户操作的客户机上的本地存储;ii)对本地存储处的文件进行操作;以及iii)按需从本地存储将文件归并回到服务器。该特征可使得打开和保存基于服务器的文件对失败更具回复力,因为在服务器文件上维护锁可能并非必需,如下文中更详细地描述的。
图1是一操作环境100的框图。如图1所示,操作环境100可包括经由网络(未示出)连接的客户计算机105和服务器计算机110。服务器计算机110可以是被配置成提供例如服务器文件120的远程文件服务器。客户机105可包括应用程序115和本地存储117。应用程序115可包括但不限于电子邮件和联系人应用程序、文字处理应用程序、电子表格应用程序、数据库应用程序、幻灯片演示应用程序、或者画图或计算机辅助应用程序。本地存储117可包括同步管理器125、下载文件130、基础文件135、工作文件140、以及上传文件145。同步管理器125可包括可以如以下参考图2更详细地描述的那样操作本地存储117的软件模块。
图2是阐明根据本发明的一实施例的用于提供异步复制的方法200中所涉及的各概略阶段的流程图。方法200可以使用以下参考图3更详细地描述的客户机计算机105来实现。以下将更详细地描述实现方法200的各阶段的方式。方法200可开始于起始框205并继续至阶段210,在那里同步管理器125可从应用程序115接收对服务器文件120的副本的请求。例如,应用程序115可包括但不限于文字处理应用程序。例如,操作应用程序115的用户可能希望打开驻留在服务器计算机110上的文档。因此,应用程序115可以向同步管理器125指示应用程序115需要打开服务器计算机110上的服务器文件120。
从其中同步管理器125接收对服务器文件120的副本的请求的阶段210,方法200可前进至阶段215,在那里同步管理器125可向服务器计算机110请求服务器文件120的副本。例如,同步管理器125可通过将客户机计算机105连接到服务器计算机110的网络与服务器计算机110通信以便向服务器计算机110请求服务器文件120的副本。
一旦同步管理器125在阶段215中向服务器计算机110请求服务器文件120的副本,方法200就可继续至阶段220,在那里同步管理器125可从服务器计算机110接收服务器文件120的副本。例如,同步管理器125可通过网络从服务器计算机110接收服务器文件120的副本(状态150)。根据本发明的各实施例,服务器文件120可以在服务器计算机110上保持原样并且同步管理器只可接收到服务器文件120的副本。当同步管理器125接收到服务器文件120的副本时,可以在或不在驻留在服务器计算机110上的服务器文件120上放置锁。根据本发明的各实施例,驻留在服务器计算机110上的服务器文件120上的锁可以是可任选的。是否上锁可取决于用户情形和特征(例如,是否需要多用户编辑)。
在同步管理器125在阶段220中从服务器计算机110接收服务器文件120的副本之后,方法200可继续至阶段225,在那里同步管理器125可将服务器文件120的副本的内容保存到下载文件130、基础文件135、以及工作文件140。例如,同步管理器125可将服务器文件120的副本复制到客户机计算机105上的本地存储117。换言之,服务器文件120的副本可被复制到下载文件130(状态155),可被复制到基础文件135(状态160),并且还可被复制到工作文件140(状态165)。
从其中同步管理器125将服务器文件120的副本的内容保存到下载文件130、基础文件135、以及工作文件140的阶段225,方法200可前进至阶段230,在那里同步管理器125可从应用程序115接收应用程序115已编辑工作文件140的指示。例如,如上所述,应用程序115可以是文字处理应用程序。操作应用程序115的用户可能希望打开来自服务器计算机110的文档(例如,服务器文件120)。如上所述,可将服务器文件120的副本复制到工作文件140。工作文件140可以是用户编辑或以其他方式指示应用程序115对其进行操作的副本。例如,用户可对该文档作出变更。这些变更可由应用程序115保存到工作文件140(状态170)。在将编辑保存到工作文件140之后,应用程序115可向同步管理器125发送该应用程序115已编辑工作文件140的指示。此外,在关闭应用程序115时,应用程序115可向同步管理器125发送指示。
一旦同步管理器125在阶段230中从应用程序115接收到指示,方法200就可继续至阶段235,在那里同步管理器125可响应于该指示将所编辑的工作文件140的副本保存到上传文件145。例如,在接收到应用程序115已对工作文件140作出变更的指示后,或者在应用程序115关闭后,同步管理器125可将所编辑的工作文件140的副本保存到上传文件145(状态175)。
在同步管理器125在阶段235中将所编辑的工作文件140的副本保存到上传文件145后,方法200可继续至阶段240,在那里同步管理器125可查询服务器计算机110以确定服务器计算机110上的服务器文件120是否已变更。换言之,在判定框245,同步管理器125可确定服务器计算机110上的服务器文件120是否已变更。例如,如果服务器计算机110未在同步管理器125接收到服务器文件120的副本时在服务器文件120上放置锁,则另一客户机可能已经在服务器文件的副本被复制到本地存储117后对服务器文件120作出变更。
此外,如果服务器计算机110在同步管理器125接收到服务器文件120的副本时在服务器文件120上放置锁,但该锁在稍后丢失,则另一客户机可能已经在服务器文件120的副本被复制到本地存储117后对服务器文件120作出变更。例如,如果服务器计算机110和客户机计算机105之间的连接丢失,则锁可能已经丢失。在这种由于丢失连接而丢失锁的情况下,在重新获得服务器计算机110和客户机计算机105之间的连接后,另一客户机可能已经在服务器文件120的副本被复制到本地存储117后并且在锁丢失后对服务器文件120作出变更。
此外,用户可以在服务器文件120的副本被复制到本地存储117后对服务器计算机110离线操作应用程序115。当在离线工作后重新连接到服务器计算机110时,同步管理器125可查询服务器计算机110以确定服务器计算机110上的服务器文件120自从服务器文件120的副本在离线工作之前被复制到本地存储117以来是否已变更。换言之,在客户机计算机105重新连接到服务器计算机110的任何时刻,同步管理器125可查询服务器计算机110以确定服务器计算机110上的服务器文件120自从服务器文件120的副本被复制到本地存储117以来是否已变更。
另外,同步管理器125可按照以下方式来查询服务器计算机110以确定服务器计算机110上的服务器文件120自从服务器文件120的副本被复制到本地存储117以来是否已变更:i)响应于用户命令来这样做;ii)周期性地基于预定时间表;或者iii)基于客户机计算机和服务器计算机之间的连接的带宽达到特定预定水平或落入预定范围内。虽然上述内容可以是关于基于‘轮询’的方法,但是如果服务器计算机110支持变更通知,则这些通知可用于使该过程更高效。
在作出关于服务器计算机110上的服务器文件120自从服务器文件120的副本被复制到本地存储117以来是否已变更的判定时,同步管理器125可以在以下情况下假设服务器计算机110上的服务器文件120已变更:i)如果未对服务器文件120上锁;ii)锁在服务器文件120上丢失的任何时刻;iii)客户机计算机115和服务器计算机110之间的连接丢失;或者iv)客户机计算机115连接或重新连接到服务器计算机110的任何时刻。此外,在确定服务器计算机110上的服务器文件120自从服务器文件120的副本被复制到本地存储117以来是否已变更时,基础文件135可具有关于该副本何时被保存到本地存储117的时间戳。此外,服务器计算机110上的服务器文件120可具有关于它上一次变更的时间戳。如果同步管理器125确定基础文件135的时间戳在服务器计算机110上的服务器文件120的关于它上一次变更的时间戳之后,则同步管理器125可确定服务器计算机110上的服务器文件120自从服务器文件120的副本被复制到本地存储117以来尚未变更。在某些情况下,时间戳可能不是非常稳健(例如,时间可以在服务器上调整)。除了时间戳之外,可以使用诸如ETAG等文件版本/修订ID。
如果同步管理器125确定服务器计算机110上的服务器文件120已变更,则方法200可从判定框245继续至阶段250,在那里同步管理器125可以执行对上传文件145、基础文件135、以及服务器计算机110上的已变更的服务器文件120的三向归并。例如,基础文件135可表示所编辑的工作文件140和服务器110上的已变更的服务器文件120可能已经从中偏离的公共参考点。如以上参考阶段235所描述的,上传文件145可包括工作文件140的副本。因此,执行三向归并可以示出在服务器文件120的副本被复制到本地存储117后由应用程序115的用户作出的对工作文件140的编辑以及由另一用户作出的对服务器文件120的任何变更。因此,三向归并输出可考虑由应用程序115的用户和变更服务器计算机110上的服务器文件120的另一用户作出的变更。根据本发明的各实施例,该三向归并可由应用程序115执行。应用程序115可执行三向归并,因为应用程序115可包括以应用程序115专用文件格式执行三向归并的功能。然而,同步管理器125可执行三向归并。
在同步管理器125在阶段250中执行三向归并后,方法200可继续至阶段255,在那里同步管理器125可以用三向归并的结果来更新服务器计算机110上的服务器文件120。例如,因为三向归并输出可考虑由应用程序115的用户和变更服务器计算机110上的服务器文件120的另一用户作出的变更,所以用三向归并的结果来更新服务器计算机110上的服务器文件120可以在不破坏任何用户的编辑或变更的情况下使服务器文件120成为最新。此外,在同步管理器125执行三向归并后,同步管理器125还可以用三向归并的结果来替换下载文件130的内容和基础文件135的内容。
然而,如果同步管理器125确定服务器计算机110上的服务器文件120尚未变更,则方法200可以从判定框245继续至阶段260,在那里同步管理器125可以用上传文件145的内容来更新服务器计算机110上的服务器文件120。例如,因为服务器计算机110上的服务器文件120尚未变更,所以基础文件135和服务器计算机110上的服务器文件120可以是相同的。因此,同步管理器125可执行基础文件135和上传文件145之间的区分并通过网络连接将该区分的结果发送到服务器计算机110。因为上传文件145可能很大,所以通过连接发送所有上传文件145可使用连接上的相当多的带宽。而且,因为在基础文件135和上传文件145之间可能存在相当多的冗余,所以区分的结果可能非常小。因为区分结果可能非常小,所以通过连接发送区分结果与发送所有上传文件145相比可使用连接上的极少的带宽。
此外,根据本发明的各实施例,同步管理器125可接收由其他用户作出的对服务器计算机110上的服务器文件120的更新。一旦接收到这些更新,同步管理器可以在用户正在操作工作文件140时用这些更新来更新工作文件140。例如,同步管理器125可向应用程序115发送更新可用的消息。响应于来自应用程序115的用户的用户输入,同步管理器125可以用更新来更新工作文件140。一旦同步管理器125在阶段260中用上传文件145的内容来更新服务器计算机110上的服务器文件120或者在阶段255中用三向归并的结果来更新服务器计算机110上的服务器文件120,方法200然后就可以在阶段265处结束。
根据本发明的各实施例可包括一种用于提供异步复制的系统。该系统可包括存储器存储和耦合到该存储器存储的处理单元。该处理单元可用于从应用程序接收对服务器文件的副本的请求并向服务器计算机请求服务器文件的副本。另外,该处理单元可用于从服务器计算机接收服务器文件的副本并将该服务器文件的副本的内容保存到下载文件、基础文件、以及工作文件。此外,该处理单元可用于从应用程序接收该应用程序已编辑工作文件的指示并响应于该指示来将所编辑的工作文件的副本保存到上传文件。此外,该处理单元可用于查询服务器计算机以确定该服务器计算机上的服务器文件是否已变更。当确定该服务器计算机上的服务器文件尚未变更时,该处理单元可用于用上传文件的内容来更新该服务器计算机上的服务器文件。然而,当确定该服务器计算机上的服务器文件已经变更时,该处理单元可用于:i)执行对上传文件、基础文件、以及该服务器计算机上的已变更的服务器文件的三向归并;ii)用三向归并的结果来更新服务器计算机上的服务器文件;以及iii)用三向归并的结果来替换下载文件和基础文件的内容。
图3是包括客户机计算机105的系统的框图。根据本发明的一实施例,上述存储器存储和处理单元可以在诸如图3的客户机计算机105等计算设备中实现。可以使用硬件、软件或固件的任何合适的组合来实现该存储器存储和处理单元。例如,存储器存储和处理单元可以用客户机计算机105或用其他计算设备318(例如,服务器计算机110)中的任意一个结合客户机计算机105来实现。根据本发明的各实施方式,上述系统、设备和处理器是示例,而其他系统、设备和处理器可以包括上述存储器存储和处理单元。
参考图3,根据本发明的一实施例的系统可包括计算设备,诸如客户机计算机105。在一基本配置中,客户机计算机105可以包括至少一个处理单元302和系统存储器304。取决于计算设备的配置和类型,系统存储器304可以包括,但不限于,易失性存储器(例如,随机存取存储器(RAM))、非易失性存储器(例如,只读存储器(ROM))、闪存或任何组合。系统存储器304可以包括操作系统305、一个或多个编程模块306,且可以包括程序数据307。程序数据307可包括下载文件130、基础文件135、工作文件140、以及上传文件145。例如,操作系统305可适用于控制客户机计算机105的操作。在一个实施例中,编程模块306可包括例如,应用程序115和同步管理器125。此外,本发明的各实施方式可以结合图形库、其他操作系统、或任何其他应用程序来实践,且不限于任何特定应用程序或系统。该基本配置在图3中由虚线308内的组件示出。
客户机计算机105还可具有附加特征或功能。例如,客户机计算机105还可包括附加数据存储设备(可移动和/或不可移动),诸如,例如磁盘、光盘或磁带。这些附加存储在图3中由可移动存储309和不可移动存储310示出。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器304、可移动存储309和不可移动存储310都是计算机存储介质的示例(即,存储器存储)。计算机存储介质可以包括,但不限于,RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或可用于存储信息且可以由客户机计算机105访问的任何其它介质。任何这样的计算机存储介质都可以是设备300的一部分。客户机计算机105还可以具有输入设备312,如键盘、鼠标、笔、声音输入设备、触摸输入设备等。还可包括诸如显示器、扬声器、打印机等输出设备314。上述设备是示例且可以使用其他设备。
客户机计算机105还可包含可允许设备300诸如通过例如内联网或因特网等分布式计算环境中的网络来与其他计算设备318(例如,服务器计算机110)进行通信的通信连接316。通信连接316是通信介质的一个示例。通信介质通常由诸如载波或其他传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据来体现,并包括任何信息传递介质。术语“已调制数据信号”可以描述以对该信号中的信息进行编码的方式设定或者改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接等有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质等无线介质。如此处所使用的术语“计算机可读介质“可以包括存储介质和通信介质两者。
如上所述,可以在系统存储器304中存储包括操作系统305在内的多个程序模块和数据文件。当在处理单元302上执行时,编程模块306(例如,同步管理器125或应用程序115)可以执行各过程,包括例如,如上所述的一个或多个方法200的各阶段。前述进程是示例,且处理单元302可执行其他进程。根据本发明的各实施方式可以使用的其他编程模块可以包括电子邮件和联系人应用程序、文字处理应用程序、电子表格应用程序、数据库应用程序、幻灯片演示应用程序、绘图或计算机辅助应用程序等。
一般而言,根据本发明的各实施方式,程序模块可以包括可以执行特定任务或可以实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本发明的各实施方式可用其他计算机系统配置来实践,包括手持式设备、多处理器系统、基于微处理器的系统或可编程消费电子产品、小型机、大型计算机等。本发明的各实施方式也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
此外,本发明的各实施方式可在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或在包含电子元件或微处理器的单个芯片上实现。本发明的各实施方式还可以使用能够执行诸如,例如,AND(与)、OR(或)和NOT(非)等逻辑运算的其他技术来实践,包括但不限于,机械、光学、流体和量子技术。另外,本发明的各实施方式可以在通用计算机或任何其他电路或系统中实现。
例如,本发明的各实施方式可被实现为计算机进程(方法)、计算系统或诸如计算机程序产品或计算机可读介质等制品。计算机程序产品可以是计算机系统可读并编码了用于执行计算机过程的指令的计算机程序的计算机存储介质。计算机程序产品还可以是计算系统可读并编码了用于执行计算机过程的指令的计算机程序的载体上的传播信号。因此,本发明能以硬件和/或软件(包括固件、常驻软件、微码等)来具体化。换言之,本发明的各实施方式可以采用其上包含有供指令执行系统使用或结合其使用的计算机可使用或计算机可读程序代码的计算机可使用或计算机可读存储介质上的计算机程序产品的形式。计算机可使用或计算机可读介质可以是可包含、存储、通信、传播、或传输程序以供指令执行系统、装置或设备使用或结合其使用的任何介质。
计算机可使用或计算机可读介质可以是,例如,但不限于,电、磁、光、电磁、红外、或半导体系统、装置、设备或传播介质。更具体的计算机可读介质示例(非穷尽列表),计算机可读介质可以包括以下:具有一条或多条导线的电连接、便携式计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、和便携式压缩盘只读存储器(CD-ROM)。注意,计算机可使用或计算机可读介质甚至可以是其上打印有程序的纸张或另一合适的介质,因为程序可以经由例如对纸张或其他介质的光学扫描而电子地捕获,随后如有必要被编译、解释,或以其他合适的方式处理,并随后存储在计算机存储器中。
以上参考例如根据本发明的各实施方式的方法、系统和计算机程序产品的框图和/或操作图示描述了本发明的各实施方式。框中所注明的各功能/动作可以按不同于任何流程图所示的次序出现。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以按相反的次序来执行。
尽管已经描述了本发明的某些实施方式,但也可能存在其他实施方式。此外,虽然本发明的各实施方式被描述为与存储在存储器和其他存储介质中的数据相关联,但数据还可以被存储在或读取自其他类型的计算机可读介质,如辅助存储设备,像硬盘、软盘、或CD-ROM;来自因特网的载波;或其他形式的RAM或ROM。此外,所公开的各方法的各阶段可以按任何方式来修改,包括通过对各阶段重新排序和/或插入或删除阶段,而不背离本发明。
包括此处所包括的代码中的版权在内的所有权利都归属于申请人并且是本申请人的财产。申请人保持并保留此处所包括的代码中的所有权利,并授予仅关于所授权的专利的再现且未出于其他目的再现该材料的许可。
虽然本说明书包括各示例,但本发明的范围由所附权利要求书来指示。此外,尽管用对结构特征和/或方法动作专用的语言描述了本说明书,但权利要求书并不限于上述特征或动作。相反,上述具体特征和动作是作为本发明的各实施方式的示例来公开的。

Claims (20)

1.一种用于提供异步复制的方法,所述方法包括:
将服务器文件(120)的副本的内容保存(225)到下载文件(130)、基础文件(135)、以及工作文件(140);
从应用程序(115)接收(230)该应用程序(115)已编辑所述工作文件(140)的指示;
响应于所述指示将所编辑的工作文件(140)的副本保存(235)到上传文件(145);
查询(240)服务器计算机以确定所述服务器计算机(110)上的服务器文件(120)是否已变更;
当确定所述服务器计算机(110)上的服务器文件(120)尚未变更时,用所述上传文件(145)的内容来更新(260)所述服务器计算机(110)上的服务器文件(120);以及
当确定所述服务器计算机(110)上的服务器文件(120)已变更时,
执行(250)对所述上传文件(145)、所述基础文件(135)、以及所述服务器计算机(110)上的已变更的服务器文件(120)的三向归并,并且
用所述三向归并的结果来更新(255)所述服务器计算机(110)上的服务器文件(120)。
2.如权利要求1所述的方法,其特征在于,还包括从所述应用程序(115)接收(210)对所述服务器文件(120)的副本的请求。
3.如权利要求1所述的方法,其特征在于,还包括向所述服务器计算机(110)请求(215)所述服务器文件(120)的副本。
4.如权利要求1所述的方法,其特征在于,还包括从所述服务器计算机(110)接收(220)所述服务器文件(120)的副本。
5.如权利要求1所述的方法,其特征在于,还包括当确定所述服务器计算机(110)上的服务器文件(120)已变更时,用所述三向归并的结果来替换所述下载文件(130)的内容以及所述基础文件(135)的内容。
6.如权利要求1所述的方法,其特征在于,从所述应用程序(115)接收(230)所述指示包括从所述应用程序(115)接收所述指示,其中所述应用程序(115)、所述下载文件(130)、所述基础文件(135)、所述工作文件(140)、以及所述上传文件(145)在客户机计算机(105)上。
7.如权利要求1所述的方法,其特征在于,将所编辑的工作文件(140)的副本保存(235)到所述上传文件(145)包括响应于用户向所述应用程序(115)发起的保存所述工作文件(140)的命令来将所编辑的工作文件(140)的副本保存到所述上传文件(145)。
8.如权利要求1所述的方法,其特征在于,将所编辑的工作文件(140)的副本保存(235)到所述上传文件(145)包括响应于用户向所述应用程序(115)发起的关闭所述应用程序(115)的命令来将所编辑的工作文件(140)的副本保存到所述上传文件(145)。
9.如权利要求1所述的方法,其特征在于,执行(250)所述三向归并包括所述应用程序(115)执行所述三向归并。
10.如权利要求1所述的方法,其特征在于,查询(240)所述服务器计算机(110)以确定所述服务器计算机(110)上的服务器文件(120)是否已变更包括响应于所述应用程序(115)丢失所述服务器计算机(110)上的服务器文件(120)上的锁来查询所述服务器计算机(110)。
11.如权利要求1所述的方法,其特征在于,查询(240)所述服务器计算机(110)以确定所述服务器计算机(110)上的服务器文件(120)是否已变更包括响应于其上运行所述应用程序(115)的客户机计算机(105)丢失和重新获得与所述服务器计算机(110)的连接来查询所述服务器计算机(110)。
12.如权利要求1所述的方法,其特征在于,查询(240)所述服务器计算机(110)以确定所述服务器计算机(110)上的服务器文件(120)是否已变更包括响应于其上运行所述应用程序(115)的客户机计算机(105)连接到所述服务器计算机(110)来查询所述服务器计算机(110)。
13.如权利要求1所述的方法,其特征在于,查询(240)所述服务器计算机(110)以确定所述服务器计算机(110)上的服务器文件(120)是否已变更包括响应于其上运行所述应用程序(115)的客户机计算机(105)响应于用户命令而连接到所述服务器计算机(110)来查询所述服务器计算机(110)。
14.如权利要求1所述的方法,其特征在于,查询(240)所述服务器计算机(110)以确定所述服务器计算机(110)上的服务器文件(120)是否已变更包括响应于预定时间表来查询所述服务器计算机(110)。
15.如权利要求1所述的方法,其特征在于,查询(240)所述服务器计算机(110)以确定所述服务器计算机(110)上的服务器文件(120)是否已变更包括响应于其上运行所述应用程序(115)的客户机计算机(105)和所述服务器计算机(110)之间的连接(316)的可用带宽大于预定值来查询所述服务器计算机(110)。
16.如权利要求1所述的方法,其特征在于,还包括:
从所述服务器(110)接收对所述服务器文件(120)的更新;以及
将所接收到的更新保存到所述下载文件(130)和所述工作文件(140)。
17.如权利要求1所述的方法,其特征在于,用所述上传文件(145)的内容来更新(260)所述服务器计算机(110)上的服务器文件(120)包括:
执行所述基础文件(135)和所述上传文件(145)之间的区分以确定所述基础文件(135)和所述上传文件(145)之间的区别;以及
将所述基础文件(135)和所述上传文件(145)之间的区别从其上运行所述应用程序(115)并且所述基础文件(135)和所述上传文件(145)驻留在其上的客户机计算机(105)传送到所述服务器计算机(110)。
18.如权利要求1所述的方法,其特征在于,用所述三向归并的结果来更新(255)所述服务器计算机(110)上的服务器文件(120)包括:
执行所述三向归并的结果和所述服务器文件(120)之间的区分以确定所述三向归并的结果和所述服务器文件(120)之间的区别;以及
将所述三向归并的结果和所述服务器文件(120)从其上运行所述应用程序(115)并且其上执行所述三向归并的客户机计算机(105)传送(185)到所述服务器计算机(110)。
19.一种存储一组指令的计算机可读介质,所述一组指令在被执行时执行一种用于提供异步复制的方法,由所述一组指令执行的方法包括:
从应用程序(115)接收(210)对服务器文件(120)的副本的请求;
向服务器计算机(110)请求(215)所述服务器文件(120)的副本;
从所述服务器计算机(110)接收(220)所述服务器文件(120)的副本;
将所述服务器文件(120)的副本的内容保存(225)到下载文件(130)、基础文件(135)、以及工作文件(140);
从所述应用程序(115)接收(230)该应用程序(115)已编辑所述工作文件(140)的指示;
响应于所述指示将所编辑的工作文件(140)的副本保存(235)到上传文件(145);
查询(240)所述服务器计算机(110)以确定所述服务器计算机(110)上的服务器文件(120)是否已变更;
当确定所述服务器计算机(110)上的服务器文件(120)尚未变更时,用所述上传文件(145)的内容来更新(260)所述服务器计算机(110)上的服务器文件(120);以及
当确定所述服务器计算机(110)上的服务器文件(120)已变更时,
执行(250)对所述上传文件(145)、所述基础文件(135)、以及所述服务器计算机(110)上的已变更的服务器文件(120)的三向归并,
用所述三向归并的结果来更新(255)所述服务器计算机(110)上的服务器文件(120),并且
用所述三向归并的结果来替换所述下载文件(130)和所述基础文件(135)的内容。
20.一种用于提供异步复制的系统,所述系统包括:
存储器存储;以及
耦合到所述存储器存储的处理单元,其中所述处理单元可用于:
将所编辑的工作文件(140)的副本保存到上传文件;
当确定服务器计算机上的服务器文件尚未变更时,用所述上传文件的内容来更新所述服务器计算机上的服务器文件;以及
当确定所述服务器计算机上的服务器文件已变更时,
执行对所述上传文件、基础文件(135)、以及所述服务器计算机上的已变更的服务器文件的三向归并,并且
用所述三向归并的结果来更新所述服务器计算机上的服务器文件。
CN2008801232352A 2007-12-27 2008-11-26 异步复制 Active CN101911037B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/965,144 US8239345B2 (en) 2007-12-27 2007-12-27 Asynchronous replication
US11/965,144 2007-12-27
PCT/US2008/084914 WO2009085519A1 (en) 2007-12-27 2008-11-26 Asynchronous replication

Publications (2)

Publication Number Publication Date
CN101911037A true CN101911037A (zh) 2010-12-08
CN101911037B CN101911037B (zh) 2013-04-24

Family

ID=40799845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008801232352A Active CN101911037B (zh) 2007-12-27 2008-11-26 异步复制

Country Status (7)

Country Link
US (1) US8239345B2 (zh)
EP (1) EP2245546A4 (zh)
JP (1) JP2011508342A (zh)
KR (1) KR101574816B1 (zh)
CN (1) CN101911037B (zh)
TW (1) TWI447592B (zh)
WO (1) WO2009085519A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622284A (zh) * 2012-02-21 2012-08-01 上海交通大学 面向海量存储系统的数据异步复制方法
CN104049968A (zh) * 2013-03-15 2014-09-17 国际商业机器公司 普及环境中的元数据驱动版本管理服务的方法和系统
CN109804361A (zh) * 2016-10-12 2019-05-24 微软技术许可有限责任公司 计算系统中的文件同步

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8005991B2 (en) * 2008-08-15 2011-08-23 Dell Products, Lp Virtual machine image management system and methods thereof
US20100281073A1 (en) * 2009-04-29 2010-11-04 Cloutier Robert P Sequence preserving method for transferring and sharing images
US10540427B2 (en) * 2009-12-31 2020-01-21 International Business Machines Corporation Automated file merging through content classification
US20130124956A1 (en) * 2011-11-11 2013-05-16 Microsoft Corporation Coauthoring in a Drawing Tool
US10482638B2 (en) 2011-11-11 2019-11-19 Microsoft Technology Licensing, Llc Collaborative commenting in a drawing tool
US8830206B2 (en) 2012-10-05 2014-09-09 Dell Products, Lp Systems and methods for locking image orientation
US8935322B1 (en) * 2014-07-16 2015-01-13 Interactive Memories, Inc. Methods and systems for improved uploading of media files for use in media-rich projects
US11036712B2 (en) 2016-01-12 2021-06-15 Microsoft Technology Licensing, Llc. Latency-reduced document change discovery
US10769356B2 (en) * 2017-03-03 2020-09-08 Adobe Inc. Synchronizing review comments between source and shared documents
CN109240607B (zh) * 2018-08-21 2022-02-18 郑州云海信息技术有限公司 一种文件读取方法和装置
CN112363872A (zh) * 2020-11-25 2021-02-12 深圳潮数软件科技有限公司 一种小文件切片传输高效备份方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393437B1 (en) * 1998-01-27 2002-05-21 Microsoft Corporation Web developer isolation techniques

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3173040B2 (ja) * 1991-05-10 2001-06-04 ミノルタ株式会社 画像データ処理装置
CA2172517C (en) * 1993-09-24 2000-02-15 Sandeep Jain Method and apparatus for data replication
US5684984A (en) * 1994-09-29 1997-11-04 Apple Computer, Inc. Synchronization and replication of object databases
CN1068688C (zh) * 1994-10-05 2001-07-18 吴胜远 一种文字信息处理方法和装置
US6182121B1 (en) 1995-02-03 2001-01-30 Enfish, Inc. Method and apparatus for a physical storage architecture having an improved information storage and retrieval system for a shared file environment
GB9604987D0 (en) * 1996-03-08 1996-05-08 Ibm Data management system and method for replicated data
US6167438A (en) 1997-05-22 2000-12-26 Trustees Of Boston University Method and system for distributed caching, prefetching and replication
US7103794B2 (en) 1998-06-08 2006-09-05 Cacheflow, Inc. Network object cache engine
US6678882B1 (en) * 1999-06-30 2004-01-13 Qwest Communications International Inc. Collaborative model for software systems with synchronization submodel with merge feature, automatic conflict resolution and isolation of potential changes for reuse
US6526417B1 (en) * 2000-01-25 2003-02-25 International Business Machines Corporation System and method for change accumulation unmerged update reduction
US6701316B1 (en) * 2000-04-07 2004-03-02 Nec Corporation Method and apparatus for intelligent network bandwidth and system resource utilization for web content fetch and refresh
US6721851B2 (en) * 2001-08-07 2004-04-13 Veritas Operating Corporation System and method for preventing sector slipping in a storage area network
US7024451B2 (en) 2001-11-05 2006-04-04 Hewlett-Packard Development Company, L.P. System and method for maintaining consistent independent server-side state among collaborating servers
US7032033B1 (en) * 2001-11-30 2006-04-18 Microsoft Corporation Handling collisions during synchronization of data between client and server computers
US6986015B2 (en) 2001-12-10 2006-01-10 Incipient, Inc. Fast path caching
US7171469B2 (en) 2002-09-16 2007-01-30 Network Appliance, Inc. Apparatus and method for storing data in a proxy cache in a network
US20040083489A1 (en) 2002-10-25 2004-04-29 Atul Bansal Program guide system
US8010491B2 (en) * 2003-02-28 2011-08-30 Microsoft Corporation Method for managing multiple file states for replicated files
US7203708B2 (en) * 2003-11-06 2007-04-10 Microsoft Corporation Optimizing file replication using binary comparisons
US7650385B2 (en) * 2003-11-20 2010-01-19 International Business Machines Corporation Assigning priorities
US7624109B2 (en) 2004-02-27 2009-11-24 Texas Memory Systems, Inc. Distributed asynchronous ordered replication
US7395258B2 (en) 2004-07-30 2008-07-01 International Business Machines Corporation System and method for adaptive database caching
US7702947B2 (en) 2005-11-29 2010-04-20 Bea Systems, Inc. System and method for enabling site failover in an application server environment
US7743039B2 (en) * 2006-12-11 2010-06-22 Simdesk Technologies, Inc. File operations with multiple level file locking techniques

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393437B1 (en) * 1998-01-27 2002-05-21 Microsoft Corporation Web developer isolation techniques

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622284A (zh) * 2012-02-21 2012-08-01 上海交通大学 面向海量存储系统的数据异步复制方法
CN102622284B (zh) * 2012-02-21 2014-04-16 上海交通大学 面向海量存储系统的数据异步复制方法
CN104049968A (zh) * 2013-03-15 2014-09-17 国际商业机器公司 普及环境中的元数据驱动版本管理服务的方法和系统
CN104049968B (zh) * 2013-03-15 2017-12-12 国际商业机器公司 普及环境中的元数据驱动版本管理服务的方法和系统
CN109804361A (zh) * 2016-10-12 2019-05-24 微软技术许可有限责任公司 计算系统中的文件同步
CN109804361B (zh) * 2016-10-12 2023-06-20 微软技术许可有限责任公司 计算系统中的文件同步

Also Published As

Publication number Publication date
EP2245546A1 (en) 2010-11-03
US20090172041A1 (en) 2009-07-02
US8239345B2 (en) 2012-08-07
CN101911037B (zh) 2013-04-24
TW200928773A (en) 2009-07-01
KR20100106400A (ko) 2010-10-01
JP2011508342A (ja) 2011-03-10
KR101574816B1 (ko) 2015-12-04
TWI447592B (zh) 2014-08-01
EP2245546A4 (en) 2015-02-18
WO2009085519A1 (en) 2009-07-09

Similar Documents

Publication Publication Date Title
CN101911037B (zh) 异步复制
US6430625B1 (en) System and corresponding method for providing redundant storage of a data file over a computer network
US9135279B2 (en) Mesh-managing data across a distributed set of devices
CN1467632B (zh) 基于映像的软件安装的系统和方法
EP2234049B1 (en) Background service process for local collection of data in an electronic discovery system
CN100377099C (zh) 为复制文件管理多个文件状态的方法
US6467088B1 (en) Reconfiguration manager for controlling upgrades of electronic devices
CN102414675B (zh) 交叉信道共同写作一致性
US20140222758A1 (en) Coherent File State Maintained Among Confederated Repositories By Distributed Workspace Apparatuses Backed Up By a File State Ledgerdemain Store
US20130318207A1 (en) Systems and methods for managing mobile app data
CN105723363A (zh) 跨多个承租者共享的具有动态更新的主模式
CN101855629A (zh) 协作创作
CN102203761A (zh) 数字媒体的动态分段
US20110016088A1 (en) System and method for performance and capacity monitoring of a reduced redundancy data storage system
CN102750626B (zh) 在托管环境中基于电子邮件的自动恢复动作
CN102323930B (zh) 对数据库系统中的数据变更进行镜像
US20120324436A1 (en) Method of updating versioned software using a shared cache
US6920507B1 (en) System and corresponding method for providing redundant storage of a data file over a computer network
US8805927B2 (en) Methods and systems for a distributed group activity network
US8700750B2 (en) Web deployment functions and interfaces
US20080098390A1 (en) Guaranteeing authentic firmware for purposes of cloning
CN101326515A (zh) 元数据驱动的应用程序部署
US20200311033A1 (en) Distributed system control for on-demand data access in complex, heterogenous data storage
JP5090809B2 (ja) 管理サーバおよび管理方法およびプログラムおよび記録媒体
JP7106078B2 (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: 20150421

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

Effective date of registration: 20150421

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.