[go: up one dir, main page]

CN1624661A - 使用二进制比较优化文件复制 - Google Patents

使用二进制比较优化文件复制 Download PDF

Info

Publication number
CN1624661A
CN1624661A CNA2004100858945A CN200410085894A CN1624661A CN 1624661 A CN1624661 A CN 1624661A CN A2004100858945 A CNA2004100858945 A CN A2004100858945A CN 200410085894 A CN200410085894 A CN 200410085894A CN 1624661 A CN1624661 A CN 1624661A
Authority
CN
China
Prior art keywords
difference
copy
server
computer
file
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
CNA2004100858945A
Other languages
English (en)
Other versions
CN100557574C (zh
Inventor
刘海
L·N·安托诺夫
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 CN1624661A publication Critical patent/CN1624661A/zh
Application granted granted Critical
Publication of CN100557574C publication Critical patent/CN100557574C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

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

Abstract

当对文件作出改变时,将文件的基于客户机和基于服务器的版本保持同步。将数据与对客户机和服务器都已知的前一版本相比较,并生成两者之间的差异的高度压缩的表示。差异,或“差”然后被发送,并可使用HTTP(超文本传输协议)协议的扩充。

Description

使用二进制比较优化文件复制
技术领域
本发明一般涉及计算机文件复制领域,尤其涉及使用二进制比较的文件复制。
背景技术
复制通过令文件或文档的客户机和服务器版本保持同步而使本地和远程访问数据得以进行。尽管这一功能性对应用程序是重要且关键的,然而鉴于必须在客户机和服务器之间传输的数据量,它也是高成本的。整个文件和文档连同其各种版本一起储存在服务器上,并在服务器及其客户机之间传输。由此,许多复制系统试图通过在发送之前压缩数据来节省带宽。然而,这一传统的压缩形式为整个文件编码数据,即使该数据的大部分是作为前一版本的一部分曾传输过的。由此,文件或文档中的细小变化仍需要压缩并传输整个文件或文档,尽管大多数数据已以较早接收到的版本的形式驻留在目标地上。
鉴于上述原因,需要一种克服现有技术的局限和缺点的系统和方法。
发明内容
本发明提供一种用于当对文件作出改变时保持文件的基于客户机和基于服务器的副本同步的机制。将数据与对客户机和服务器都已知的前一版本相比较,并生成两者之间的差异的高度压缩表示。
依照一个实施例,在客户机处接收并储存一基础文件的第一副本和第二副本。这两个副本是相同的—客户机接收一个副本并储存该副本的两个实例。客户机然后对第一副本作出改变,然后确定改变的第一副本和第二副本之间的差异(如,二进制差异)。差异被发送到维护该基础文件的服务器。如果服务器上的基础文件与储存在第一装置上的基础文件相同,则服务器接受该差异;否则,服务器拒绝该差异。
依照本发明的各方面,如果服务器拒绝差异,则服务器向客户机发送第二差异。客户机然后向储存在第一装置处的基础文件的第二副本应用该第二差异。这令客户机的基础文件变得对于驻留在服务器上的基础文件为最新。客户机然后可对该更新的基础文件作出改变,生成一新差异,然后向服务器发送该新差异。
结合附图阅读以下说明性实施例的详细描述,可以清楚本发明的另外的特征和优点。
附图说明
当结合附图阅读时,可以更好地理解以上概述以及以下较佳实施例的详细描述。为说明本发明的目的,附图中示出了本发明的示例性构造;然而,本发明不限于所揭示的具体方法和手段。附图中:
图1所示是可实现本发明的各方面的示例性计算环境的框图;
图2是依照本发明维护更新的文件的示例性方法的流程图;
图3是依照本发明维护更新的文件的另一示例性方法的流程图;
图4示出了有助于描述本发明的各方面的示例性系统的框图;以及
图5和6是依照本发明维护更新的文件的另一示例性方法的流程图。
具体实施方式
综述
本发明针对当对文件作出改变时保持文件的本地(也称为“客户机”)副本和基于服务器的副本同步。本发明描述的示例性系统和方法比现有技术更有效,并将带宽需求和执行同步的时间元素都最小化。
将数据与对客户机和服务器都已知的前一版本相比较,并生成两者之间的差异的高度压缩表示。这些差异,或“差”然后可被发送,并可使用对HTTP(超文本传输协议)协议的扩充。
示例性计算环境
图1示出了可在其中实现本发明的合适的计算系统环境100的一个示例。计算系统环境100仅为合适的计算环境的一个示例,并非建议对本发明的使用或功能的范围的局限。也不应将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合具有依赖或需求。
本发明可以使用众多其它通用或专用计算系统环境或配置来操作。适合使用本发明的众所周知的计算系统、环境和/或配置包括但不限于:个人计算机、服务器计算机、手持式或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型机、大型机、包括任一上述系统或设备的分布式计算环境等等。
本发明可在诸如由网络环境中的计算机执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程计算机存储媒质中,包括存储器存储设备。
参考图1,用于实现本发明的示例性系统包括以计算机110形式的通用计算装置。计算机110的组件包括但不限于,处理单元120、系统存储器130以及将包括系统存储器的各类系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线体系结构的局部总线。作为示例而非局限,这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线以及外围部件互连(PCI)总线(也称为Mezzanine总线)。
计算机110通常包括各种计算机可读媒质。计算机可读媒质可以是可由计算机110访问的任一可用媒质,包括易失和非易失媒质、可移动和不可移动媒质。作为示例而非局限,计算机可读媒质包括计算机存储媒质和通信媒质。计算机存储媒质包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失和非易失,可移动和不可移动媒质。计算机存储媒质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它媒质。通信媒质通常在诸如载波或其它传输机制的已调制数据信号中包含计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送媒质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信媒质包括有线媒质,如有线网络或直接连线连接,以及无线媒质,如声学、RF、红外和其它无线媒质。上述任一的组合也应当包括在计算机可读媒质的范围之内。
系统存储器130包括以易失和/或非易失存储器形式的计算机存储媒质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包括如在启动时帮助在计算机110内的元件之间传输信息的基本例程,通常储存在ROM 131中。RAM 132通常包含处理单元120立即可访问或者当前正在操作的数据和/或程序模块。作为示例而非局限,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包括其它可移动/不可移动、易失/非易失计算机存储媒质。仅作示例,图1示出了对不可移动、非易失磁媒质进行读写的硬盘驱动器141、对可移动、非易失磁盘152进行读写的磁盘驱动器151以及对可移动、非易失光盘156,如CD ROM或其它光媒质进行读写的光盘驱动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失/非易失计算机存储媒质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器141通常通过不可移动存储器接口,如接口140连接到系统总线121,磁盘驱动器151和光盘驱动器155通常通过可移动存储器接口,如接口150连接到系统总线121。
图1讨论并示出的驱动器及其关联的计算机存储媒质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,示出硬盘驱动器141储存操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同,也可以与它们不同。这里对操作系统144、应用程序145、其它程序模块146和程序数据147给予不同的标号来说明至少它们是不同的副本。用户可以通过输入设备,如键盘162和定位设备161(通常指鼠标、跟踪球或触摸板)向计算机110输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至系统总线的用户输入接口160连接至处理单元120,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器191或其它类型的显示设备也通过接口,如视频接口190连接至系统总线121。除监视器之外,计算机也包括其它外围输出设备,如扬声器197和打印机196,通过输出外围接口195连接。
计算机110可以在使用到一个或多个远程计算机,如远程计算机180的逻辑连接的网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括许多或所有上述与计算机110相关的元件,尽管在图1中仅示出了存储器存储设备181。图1描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或其它装置,用于通过WAN 173,如因特网建立通信。调制解调器172可以是内置或外置的,通过用户输入接口160或其它合适的机制连接至系统总线121。在网络化环境中,描述的与计算机110相关的程序模块或其部分可储存在远程存储器存储设备中。作为示例而非局限,图1示出了远程应用程序185驻留在存储器设备181中。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它装置。
示例性分布式计算框架或体系结构
鉴于个人计算活动与因特网的交汇,已经发展并且正在发展各种分布式计算框架。个人和商业用户同样地拥有用于应用程序和计算设备的无缝的互操作和web激活的接口,使得计算活动越来越面向web浏览器和网络。
例如,MICROSOFT的.NET平台包括服务器、构件服务如基于web的数据存储、以及可下载设备软件。通常来说,.NET平台提供(1)令整个范围的计算设备共同工作并在所有设备上自动更新并同步化用户信息的能力,(2)提高的web站点交互能力,通过大量使用XML而不是HTML来实现,(3)从用于各种应用,如电子邮件,或软件,如Office.NET的管理的中央起点到用户的具有产品和服务的定制访问和传送的特点的在线服务,(4)中央化数据存储,将增加对信息访问以及用产和设备间的信息同步的效率和简易性,(5)整合各种通信媒质,如电子邮件、传真和电话的能力,(6)对开发员来说,创建可重复使用模块的能力,借此提高生产力并降低编程错误数,以及(7)还有其它跨平台整合特征。
尽管这里的示例性实施例是结合驻留在计算设备上的软件描述的,也可以通过操作系统、API或协处理器和请求对象之间的“中间人”对象来实现本发明的一个或多个部分,使服务可以由所有.NET的语言和服务、以及在其它分布式计算框架中来完成、支持或访问。
示例性实施例
图2是依照本发明维护更新的文件的示例性方法的流程图。在本示例性实施例中,客户机修改文件并将变化上传到服务器。在步骤200,客户机接收储存在服务器上的基础文件的最近版本(“版本A”)的副本。在步骤210,客户机对版本A作出其改变以创建版本A′。在步骤220,客户机保存原始版本A的副本和新版本A′。由此,即使用户更新该文件,客户机也维护最后一个已知的服务器状态的副本。预期版本A的副本可以在步骤210之前或之后储存在客户机上。
然后,在步骤230,通过比较版本A和A′生成差异,或“差”。差是一种将文件的两个版本进行比较以生成可应用到较旧的文件来生成较新文件的压缩差的机制。可通过对本领域的技术人员已知的用于确定基础形式和修改形式之间的差异的任一方法、技术或系统来执行差异生成。生成的一种较佳的差异是二进制差异。文件被认为是一系列字节。常规的压缩算法被用于通过计算阴影或基础副本与修正的副本之间的差异来生成二进制差异。该差异然后被发送到服务器,服务器拒绝差异或接受差异。如果服务器上的基础已改变,则出现拒绝,在此情况下,该差异对服务器无用。预期依照本发明可使用任一差异引擎或技术。在本发明中,为示例性目的提供了二进制差异技术的使用。
具体地,在步骤240,客户机向服务器发送该差。在检查以确保其基础文件的最近版本并未从客户机用以作出修改的版本A有所改变之后,在步骤250,服务器向版本A应用该差,以生成该文件的新的、最近的版本一版本B。服务器执行的版本检查在后文参考图3-6进一步描述。
在步骤260,服务器储存新版本B以及客户机提供的差(可任选)。新版本B被认为是基础文件的最近更新,并保留该差以由可对原始版本A作出改变的其它客户机使用,这在后文参考图3-6进一步描述。服务器可任选地储存该差,以向其它客户机提供优化的更新。如果作出了多个修订,则需要获取从较旧版本到最新版本的多个差。注意,该差也可对不打算作出改变,但是希望读取最近的版本B并已具有版本A的客户机有用。
在步骤270,服务器向客户机通知新版本标识符(如,“版本B”)。客户机然后丢弃它在步骤230所确定的差以及它所储存的版本A,并且在步骤280用新版本标识符标记其版本A′。由此,客户机将版本A′更名为版本B。
图3是维护更新的文件的另一示例性方法的流程图。在本示例中,服务器向客户机提供差文件形式的最近变化。在步骤300,具有文件的版本A的客户机请求文件更新。例如,客户机因为期望对该文件的最近版本作出改变而可能作出这一请求。客户机向服务器通知它具有版本A,并且作为响应,在步骤310,服务器返回该差。服务器可能在维护的是来自前一客户机更新(如,图2的步骤260)的A的差异。在步骤320,客户机向其储存的版本A应用A的差以生成该文件的最近版本(如,“版本B”)。
图4示出了有助于描述本发明的各方面的示例性系统的框图,图5和6示出了当两个用户对同一基础文件作出改变时维护更新的文件的示例性方法的流程图。在本示例中,假定服务器400维护基础文件(版本A),两个客户机410、420(此处分别称为客户机1和客户机2)都期望对同一基础文件作出改变。
在步骤500,客户机1和客户机2都从服务器400请求并接收最近版本(“版本A”)(即,客户机1和2下载基础文件)。预期客户机1和2可并发地或在时间上顺序地对基础文件作出改变。然而,仅一个客户机将首先把其对原始基础文件的改变送到服务器。这些改变被应用到原始基础文件。由此,向服务器发送差异的第一客户机令服务器接受该差异。基于基础文件的随后的客户机差异将被服务器拒绝。因此,稍后发送其对原始基础文件的改变的客户机必须首先接收更新的基础文件,然后对该更新的基础文件作出改变,如后文更详细描述的。
假定客户机1首先作出改变,方法按似于图2中所描述的步骤200到260前进。即,在步骤505,客户机1对版本A作出其改变以创建版本A′。在步骤510,客户机1保存原始版本A的副本和新版本A′。预期可在步骤505之前或之后在客户机1上储存版本A的副本。然后在步骤515,通过比较版本A和A′生成差(较佳地为二进制差)。
在步骤520,客户机1向服务器400发送该差。当向服务器同步回改变时,客户机核实服务器支持差机制,然后将“差”连同指定原始文件的版本的版本信息一起上传。在检查以确保其基础文件的最近版本未在客户机用于作出修改的版本A上进行改变之后,在步骤525,服务器400应用客户机1提供的版本A的差以生成该文件的新的、最近的版本—版本B。
在步骤530,服务器储存该新版本B以及客户机1提供的差。新版本B被认为是基础文件的最近更新,并保留差以由可对原始版本A作出改变的其它客户机(如,客户机2)使用。
类似于步骤270和280,尽管在图5中未示出,服务器400向客户机1通知新版本标识符(如,“版本B”)。客户机1然后丢弃它所确定的差以及它所储存的版本A,并用新版本标识符标记其版本A′。由此,客户机将版本A′更名为版本B。
同时,在步骤535,客户机2修改它所接收到的原始基础文件版本A以创建新版本一版本A″。在步骤540,客户机2保存原始版本A的副本和新版本A″。预期可在步骤540之前或之后在客户机2上储存版本A的副本。然后在步骤545,通过比较版本A和A″生成差。
在550,客户机2向服务器400发送其版本A的差。服务器400检查它所储存的基础文件是否在客户机2用作客户机2的修改的基础的基础文件上做了改变。
如果基础文件的服务器状态被高速缓存到与请求方客户机关联的本地存储中,则在本地存储中的文件和服务器上对应的文件状态之间作出比较。可进行该比较以确定储存在本地存储中的文件的副本是否为最近版本,或者在服务器上是否存在更近的版本。换言之,该比较着眼于自从请求方客户机获取该文件的副本以来,另一客户机修改并更新了所请求的文件的可能性。应当注意,期望该比较包括表示文件状态的标识符的传输,而无需在客户机和服务器之间传输整个文件。以这一方式,该比较减少了否则将需要的网络通信量,并避免将文件的同一版本发送一次以上。
由此,在步骤555,服务器检查以确保基础文件的最近版本未在客户机2用于作出修改的版本A上做过改变。如果基础文件未改变,则在步骤590,服务器400向服务器储存的基础文件应用客户机2提供的差以生成该文件的新的、最近版本,在步骤595,服务器储存该版本以及客户机2提供的差。服务器400向客户机2通知新版本标识符,客户机2然后可丢弃它所确定的差以及它所储存的版本A,并用新版本标识符来标记其修改的版本A″。
然而,在本示例中,客户机1已向服务器400提供了改变,因此储存在服务器上的基础文件变为了版本B。客户机2没有版本B的副本,并对文件的版本A作出修改。因此,由于基础文件已改变,在步骤560,服务器400拒绝客户机2提供的差,并向客户机2发送客户机1提供的、服务器400较早接收并储存(步骤530)的版本A的差。
在步骤565,客户机2向它所储存的版本A应用客户机1提供的差,以获取该文件的最近的服务器储存版本(这里为版本B)。客户机2然后分别在步骤570和575确定最近版本与其修改的版本A″之间的差,并向服务器400发送该新的差。在步骤580,服务器400向其储存的最近版本(版本B)应用该新的差,以生成新的最近版本(这里为版本C)。在步骤585,服务器400储存该新的、最近版本以及新接收的差。类似于步骤270和280,尽管未在图5中示出,服务器400向客户机2通知新版本标识符(如,“版本C”)。客户机2然后丢弃它所确定的差以及它所储存的版本,并用新版本标识符来标记其版本A″。由此,客户将版本A″更名为版本C。
与在服务器上自动保存修改的版本相反,预期诸如管理员等用户可确定应当如何把改变集成。这可避免与前一用户改变的内容冲突。
注意,可在服务器表明批准接受差之前或之后确定该差。由此,为提高效率,客户机可等到服务器已指示客户机已对服务器当前作为最近版本维护的基础文件的同一版本作出改变。仅在那时客户机才能确定差并向服务器提供该差。理想地,服务器不计算差异,而仅应用差异。
预期到一种情况,一个客户机在另一客户机连接到服务器以提供其改变之前作出了多次上传。例如,假定原始基础文件是版本A。客户机1然后作出改变并且这些改变被接受为版本B。如果客户机1作出进一步的改变,并将它们提供给服务器,则这一新的最近版本被保存为版本C。理想地,服务器保存版本A和B之间的差异,以及版本B和C之间的差异。由此,当另一客户机作出其改变时,服务器较佳地将在同一消息中向该客户机发送版本A和B之间的差异,以及版本B和C之间的差异。客户机然后重新创建版本B和版本C,并确定版本C和其改变之间的差异,并向服务器提供该差异。
如果过时的客户机连接到服务器以获取最近版本,它告诉服务器它具有哪一版本,并且如果储存的差追溯到该版本,则返回适当的一个或多个差以及当前版本ID。较佳地,服务器保留它在处理过程中接收的各种版本之间的所有差,以容纳哪些仍希望对旧版本作出改变的客户机(即,对基础文件的旧版本“向后兼容”)。然而,在某一点上,服务器可删除或移除先前储存的它所保留的差。例如,这些行动可由日期或存储容量提示。
理想地,使用超文本传输协议(HTTP)来传输差。具体地,可使用协议扩充来警告服务器正在传输“差”,或在消息内实现或结合进该差。
HTTP已形成为一种信息可借以在诸如因特网、内联网和外联网等兼容TCP/IP(传输控制协议/因特网协议)的网络上传输的标准机制。HTTP更特别地是一种用于分布式、协作、超媒体信息系统的应用程序级协议。它是一种一般性、无国界协议,可通过其请求方法、错误代码和头部的扩充,除其对超文本的使用之外还可用于许多任务,如名字服务器和分布式对象管理系统。由于信息依照其规范来传输,因此它被称为一种传输协议,而由于信息由作出对生成响应的服务器的请求的客户机来交换,因此它也被称为一种请求—响应协议。本发明所引用的HTTP一般涉及HTTP的任一标准,并可在网站http://www.w3.org上找到。
HTTP的一种常见使用是依照标记语言格式化的信息的传输。例如,因特网的一种普遍应用是浏览其万维网页。在这些实例中,通常所检索到的信息是依照HTTP传输的超文本标记语言(HTML)格式。然而,也出现了其它标准标记语言。一个这样的标记语言是可扩展标记语言(XML)。XML描述了一类被称为是XML文档的数据对象,并部分地描述了处理它们的计算机程序的行为。HTML和XML之间的主要差异是,在前者内,信息内容与内容的布局相互缠结,例如,很难分离它们。相反,在XML内,与内容本身分离地维护内容的存储布局和逻辑结构的描述。然而,XML和HTML都是被称为标准通用标记语言(SGML)的标记语言的派生。本发明所引用的XML一般涉及XML的任一标准,并可在网站http://www.w3.org上找到。
例如,为维护向后兼容性和互操作性,可使用OPTIONS(选项)响应中的已扩充HTTP头部来允许客户机发现服务器支持二进制差。GET(获取)请求中的已扩充头部向服务器通知客户机接受该差。
客户机和服务器皆可选择不使用二进制差。在某些情况下,发送差的消息(如,HTTP二进制差头部)可能大于文件本身。在这一情况下,更理想的是发送文档而非服务器和客户机之间的差。客户机可确定差的尺寸大于新文件。例如,如果新文件具有0字节,则会发生这一情况。服务器可决定丢弃差来节省存储空间。如果未使用差,则发送整个文件。为发信号通知何时发送差,客户机可用其PUT(放置)请求发送已扩充头部,以指示正文中二进制差的存在以及从其生成差的基础文件的版本号。服务器用其GET响应发送已扩充头部,以指示二进制差链的存在、基础文件的版本号以及链中差的数量。
当需要多个差来将客户机文件变为最新时,服务器可选择在单个回复中将差链接在一起,或如果差的总和大于新版本时,发送新版本本身。
计算并应用差的引擎较佳地在客户机和/或服务器内提供。较佳地也实现用于发现和差/版本管理的协议。已扩充HTTP头部允许客户机和服务器解释其生成差异的能力。例如,客户机用其PUT请求发送已扩充头部,以指示正文中二进制差的存在以及从其生成差的基础文件的版本号。服务器用其GET响应发送已扩充头部,以指示二进制差链的存在、基础文件的版本号以及链中差的数量。
服务器代码理想地能够管理差以应用(使用引擎)、储存并返回差,每一客户机较佳地具有维护服务器状态、生成差、向服务器发送差以及应用返回的差的能力。
复制在各种各样的应用程序广泛使用,但是这些系统的成本和性能永远都是一种挑战。本发明调节了复制的特性(已知的客户机/服务器状态)以在系统的效率中产生一个重要飞跃。本发明可应用到需复制例行更新的大文件的系统,诸如允许离线访问基于服务器的文档或文件的产品。
如上所述,尽管是结合各种计算装置描述了本发明的示例性实施例,然而其基础概念可应用到任何计算装置或系统。
本发明所描述的各种技术可结合硬件或软件实现,或者在适当时用两者的组合来实现。由此,本发明的方法和装置,或其某些方面或部分,可采用包含在诸如软盘、CD-ROM、硬盘或任一其它及其可读存储媒质等有形媒质中的程序代码(即,指令)的形式,其中,当程序代码被加载到诸如计算机等机器中并由其执行时,该机器变成用于实践本发明的装置。在可变成计算机上执行程序代码的情况下,计算装置一般包括处理器、可由处理器读的存储媒质(包括易失和非易失存储器和/或存储元件)、至少一个输入设备和至少一个输出设备。如需要,程序可以汇编语言或机器语言实现。在任一情况下,语言可以是编译或解释语言,并可与硬件实现相组合。
本发明的方法和装置也可通过以程序代码的形式实施的通信来实践,这些程序代码通过诸如电线或电缆、光纤或任一其它形式的传输等某些传输媒质来传输,其中,当由诸如EPROM、门阵列、可变成逻辑器件(PLD)、客户机计算机等机器接收程序代码,并加载到其中由其执行时,该机器变成用于实践本发明的装置。当在通用处理器上实现时,程序代码与处理器组合以提供一种操作来调用本发明的功能的唯一装置。另外,结合本发明使用的任何存储技术可不变地为硬件和软件的组合。
尽管结合各个附图的较佳实施例描述了本发明,然而可以理解,可在不脱离本发明的情况下下使用其它类似的实施例,或对所描述的实施例作出修改和添加,以执行本发明的同一功能。因此,本发明不应当限于任一单个的实施例,而是相反,应当在依照所附权利要求书的宽度和范围内解释。

Claims (40)

1.一种维护更新的文件的方法,其特征在于,它包括:
在第一装置上储存一基础文件的第一副本和第二副本;
在所述第一装置上接收对所述第一副本的改变;
确定所述经改变的第一副本和所述第二副本之间的第一差异;
向服务器发送所述第一差异;以及
如果所述服务器上的基础文件与储存在所述第一装置上的基础文件相同,则在所述服务器上接受所述第一差异,否则,在服务器上拒绝所述第一差异。
2.如权利要求1所述的方法,其特征在于,它还包括在所述第一装置上从所述服务器接收所述文件的第一副本,并在所述第一装置上储存所述文件的第一副本和第二副本之前,在所述第一装置上制作所述文件的第二副本。
3.如权利要求1所述的方法,其特征在于,确定所述第一差异包括使用所述经改变的第一副本和所述第二副本之间的二进制比较。
4.如权利要求1所述的方法,其特征在于,所述第一差异是二进制差。
5.如权利要求1所述的方法,其特征在于,如果在所述服务器上拒绝所述差异,则从所述服务器向所述第一装置发送第二差异,并向储存在所述第一装置上的基础文件的第二副本应用所述第二差异。
6.如权利要求1所述的方法,其特征在于,它还包括确定所述服务器上的基础文件是否与储存在所述第一装置上的基础文件相同。
7.如权利要求1所述的方法,其特征在于,发送所述第一差异包括使用HTTP协议的扩充。
8.如权利要求1所述的方法,其特征在于,它还包括:
在第二装置上储存所述基础文件的第一副本和第二副本;
在所述第二装置上接收对所述第一副本的改变;
确定所述经改变的第一副本和所述第二副本之间的第二差异;
向所述服务器发送所述第二差异;以及
如果所述服务器上的基础文件与储存在所述第二装置上的基础文件相同,则在服务器上接受所述第二差异,否则,在服务器上拒绝所述第二差异。
9.如权利要求8所述的方法,其特征在于,它还包括,如果在所述服务器上拒绝所述第二差异,则向所述第二装置发送第三差异,并向所述第二装置上的基础文件的第二副本应用所述第三差异。
10.如权利要求8所述的方法,其特征在于,它还包括在所述第二装置上从所述服务器接收所述文件的第一副本,并在所述第二装置上储存所述文件的第一副本和第二副本之前,在所述第二装置上制作所述文件的第二副本。
11.如权利要求8所述的方法,其特征在于,确定所述第二差异包括使用所述第二装置上所述经改变的第一副本和所述第二副本之间的二进制比较。
12.如权利要求8所述的方法,其特征在于,所述第二差异是二进制差。
13.如权利要求8所述的方法,其特征在于,它还包括确定所述服务器上的基础文件是否与储存在所述第二装置上的基础文件相同。
14.如权利要求8所述的方法,其特征在于,发送所述第二差异包括使用HTTP协议的扩充。
15.一种在其上储存了用于执行维护更新的文件的方法的计算机可执行指令的计算机可读媒质,其特征在于,所述方法包括:
在第一装置上储存一基础文件的第一副本和第二副本;
在所述第一装置上接收对所述第一副本的改变;
确定所述经改变的第一副本和所述第二副本之间的第一差异;
向服务器发送所述第一差异;以及
如果所述服务器上的基础文件与储存在所述第一装置上的基础文件相同,则在所述服务器上接受所述第一差异,否则,在所述服务器上拒绝所述第一差异。
16.如权利要求15所述的计算机可读媒质,其特征在于,它还包括计算机可执行指令,用于在所述第一装置上从所述服务器接收所述文件的第一副本,并在所述第一装置上储存所述文件的第一副本和第二副本之前,在所述第一装置上制作所述文件的第二副本。
17.如权利要求15所述的计算机可读媒质,其特征在于,确定所述第一差异包括使用所述经改变的第一副本和所述第二副本之间的二进制比较。
18.如权利要求15所述的计算机可读媒质,其特征在于,所述第一差异是二进制差。
19.如权利要求15所述的计算机可读媒质,其特征在于,它还包括计算机可执行指令,用于如果在所述服务器上拒绝所述差异,则从所述服务器向所述第一装置发送第二差异,并向储存在所述第一装置上的基础文件的第二副本应用所述第二差异。
20.如权利要求15所述的计算机可读媒质,其特征在于,它还包括计算机可执行指令,用于确定所述服务器上的基础文件是否与储存在所述第一装置上的基础文件相同。
21.如权利要求15所述的计算机可读媒质,其特征在于,发送所述第一差异包括使用HTTP协议的扩充。
22.如权利要求15所述的计算机可读媒质,其特征在于,它还包括计算机可执行指令,用于:
在第二装置上储存所述基础文件的第一和第二副本;
在所述第二装置上接收对所述第一副本的改变;
确定所述经改变的第一副本和所述第二副本之间的第二差异;
向所述服务器发送所述第二差异;以及
如果所述服务器上的基础文件与储存在所述第二装置上的基础文件相同,则在所述服务器上接受所述第二差异,否则,在所述服务器上拒绝所述第二差异。
23.如权利要求22所述的计算机可读媒质,其特征在于,它还包括计算机可执行指令,用于如果在所述服务器上拒绝所述第二差异,则向所述第二装置发送第三差异,并向储存在所述第二装置上的基础文件的第二副本应用所述第三差异。
24.如权利要求22所述的计算机可读媒质,其特征在于,它还包括计算机可执行指令,用于在所述第二装置上从所述服务器接收所述文件的第一副本,并在所述第二装置上储存所述文件的第一副本和第二副本之前,在所述第二装置上制作所述文件的第二副本。
25.如权利要求22所述的计算机可读媒质,其特征在于,确定所述第二差异包括使用所述第二装置上的所述改变的第一副本和所述第二副本之间的二进制比较。
26.如权利要求22所述的计算机可读媒质,其特征在于,所述第二差异是二进制差。
27.如权利要求22所述的计算机可读媒质,其特征在于,它还包括计算机可执行指令,用于确定所述服务器上的基础文件是否与储存在所述第二装置上的基础文件相同。
28.如权利要求22所述的计算机可读媒质,其特征在于,发送所述第二差异包括使用HTTP协议的扩充。
29.一种在文件同步系统中使用的系统,其特征在于,它包括:
一存储装置,用于储存一基础文件的第一副本和第二副本;
一输入装置,用于接收对所述基础文件的第一副本的改变;以及
一处理器,用于基于所接收的改变来改变所述第一副本,并确定所述经改变的第一副本和所述第二副本之间的差异。
30.如权利要求29所述的系统,其特征在于,所述差异是二进制差异。
31.如权利要求29所述的系统,其特征在于,所述基础文件驻留在服务器上,它还包括一输出装置,用于向所述服务器发送所述差异。
32.如权利要求29所述的系统,其特征在于,所述差异使用HTTP协议的扩充来发送到所述服务器。
33.如权利要求29所述的系统,其特征在于,它还包括一用于接收第二差异的装置,其中,所述处理器向所述基础文件的第二副本应用所述第二差异以生成一修改的第二副本,并向所述修改的第二副本应用所接收的改变以生成第三副本,并确定所述第三副本和所述经修改的第二副本之间的第三差异。
34.如权利要求33所述的系统,其特征在于,它还包括一用于向服务器发送所述第三差异的输出装置。
35.一种在文件同步系统中使用的系统,其特征在于,它包括:
一存储装置,用于储存一基础文件;
一输入装置,用于从客户机装置接收差异;以及
一处理器,用于确定所述差异是否能应用到所储存的基础文件,并且如果能,则向所述基础文件应用所述差异,否则,向所述客户机装置指示所述差异被拒绝。
36.如权利要求35所述的系统,其特征在于,所述差异是二进制差异。
37.如权利要求35所述的系统,其特征在于,所述差异以HTTP协议的扩充的形式接收。
38.如权利要求35所述的系统,其特征在于,如果所述差异被所述处理器拒绝,则从所述存储装置检索第二差异,并通过一输出装置向所述客户机装置发送所述第二差异。
39.如权利要求38所述的系统,其特征在于,所述第二差异从第二客户机装置接收。
40.如权利要求35所述的系统,其特征在于,如果所述基础文件与所述客户机装置用于生成所述差异的客户机基础文件相同,则所述差异可应用到所储存的基础文件。
CNB2004100858945A 2003-11-06 2004-11-05 使用二进制比较优化文件复制 Expired - Lifetime CN100557574C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/702,863 2003-11-06
US10/702,863 US7203708B2 (en) 2003-11-06 2003-11-06 Optimizing file replication using binary comparisons

Publications (2)

Publication Number Publication Date
CN1624661A true CN1624661A (zh) 2005-06-08
CN100557574C CN100557574C (zh) 2009-11-04

Family

ID=34435555

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100858945A Expired - Lifetime CN100557574C (zh) 2003-11-06 2004-11-05 使用二进制比较优化文件复制

Country Status (10)

Country Link
US (2) US7203708B2 (zh)
EP (1) EP1533716A1 (zh)
JP (1) JP4676745B2 (zh)
KR (1) KR20050043689A (zh)
CN (1) CN100557574C (zh)
AU (1) AU2004218700A1 (zh)
BR (1) BRPI0404816A (zh)
CA (1) CA2484565A1 (zh)
MX (1) MXPA04010819A (zh)
RU (1) RU2357280C2 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1949761B (zh) * 2005-10-13 2010-09-15 腾讯科技(深圳)有限公司 一种数据同步方法及其差分编码方法
CN101854395A (zh) * 2010-06-02 2010-10-06 四川华廷威思信息技术有限公司 一种基于Web程序的附件自动修改方法
CN102063313A (zh) * 2009-11-16 2011-05-18 英业达股份有限公司 电子装置、可携式电子装置、电子系统及应用于其的方法
CN102831022A (zh) * 2012-07-27 2012-12-19 曙光信息产业(北京)有限公司 修改系统配置的方法和装置
CN101604245B (zh) * 2008-06-10 2013-01-09 英华达股份有限公司 更新档案的方法与系统
CN104462591A (zh) * 2014-12-31 2015-03-25 上海斐讯数据通信技术有限公司 一种避免重复下载的方法及移动终端
CN105474209A (zh) * 2013-06-14 2016-04-06 微软技术许可有限责任公司 管理对共享文档的改动

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203708B2 (en) 2003-11-06 2007-04-10 Microsoft Corporation Optimizing file replication using binary comparisons
US7792930B1 (en) * 2004-11-10 2010-09-07 Juniper Networks, Inc. Network device configuration using separate logic and version-based configuration files
US20060106889A1 (en) * 2004-11-12 2006-05-18 Mannby Claes-Fredrik U Method, system, and program for managing revisions to a file
US20060277224A1 (en) * 2005-06-07 2006-12-07 Microsoft Corporation Synchronizing arbitrary data using a flexible schema
US20060288055A1 (en) * 2005-06-08 2006-12-21 Johnson Michael K Methods, systems, and computer program products for provisioning software via a networked file repository in which a parent branch has a shadow associated therewith
US20060288054A1 (en) * 2005-06-08 2006-12-21 Johnson Michael K Methods, systems, and computer program products for provisioning software via a file repository in which a version string is used to identify branches of a tree structure
US8255363B2 (en) * 2005-06-08 2012-08-28 rPath Methods, systems, and computer program products for provisioning software using dynamic tags to identify and process files
US8255362B2 (en) * 2005-06-08 2012-08-28 rPath Methods, systems, and computer program products for provisioning software using local changesets that represent differences between software on a repository and a local system
US20070005657A1 (en) * 2005-06-30 2007-01-04 Bohannon Philip L Methods and apparatus for processing XML updates as queries
JP4747733B2 (ja) * 2005-08-22 2011-08-17 ブラザー工業株式会社 ノード装置、共用情報更新処理プログラム、共用情報更新方法、及び情報共有システム
US20070130232A1 (en) * 2005-11-22 2007-06-07 Therrien David G Method and apparatus for efficiently storing and managing historical versions and replicas of computer data files
US7529780B1 (en) * 2005-12-30 2009-05-05 Google Inc. Conflict management during data object synchronization between client and server
US7661064B2 (en) * 2006-03-06 2010-02-09 Microsoft Corporation Displaying text intraline diffing output
US7461223B2 (en) * 2006-05-29 2008-12-02 Microsoft Corporation Retaining shadow copy data during replication
US20080155504A1 (en) * 2006-12-21 2008-06-26 International Business Machines Corporation Method and system for automated merging of multiple versions of a software component for an application
US20080270436A1 (en) * 2007-04-27 2008-10-30 Fineberg Samuel A Storing chunks within a file system
US20090106322A1 (en) * 2007-10-18 2009-04-23 Chen Jen-Yeu T Two-set method for avoiding data loss when multiple users simultaneously edit the same data
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US8239345B2 (en) * 2007-12-27 2012-08-07 Microsoft Corporation Asynchronous replication
US8756700B2 (en) 2008-01-16 2014-06-17 Verizon Patent And Licensing Inc. Custom data image building
US8291406B2 (en) * 2008-01-16 2012-10-16 Verizon Patent And Licensing Inc. Data imaging system and methods
US8121989B1 (en) * 2008-03-07 2012-02-21 Google Inc. Determining differences between documents
US8301588B2 (en) 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
US8352870B2 (en) 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US8825594B2 (en) * 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US8429753B2 (en) * 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
US8417666B2 (en) * 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
JP5012716B2 (ja) * 2008-07-29 2012-08-29 富士通株式会社 リモートファイル操作方法
US8620861B1 (en) 2008-09-30 2013-12-31 Google Inc. Preserving file metadata during atomic save operations
US9934240B2 (en) 2008-09-30 2018-04-03 Google Llc On demand access to client cached files
US8438558B1 (en) 2009-03-27 2013-05-07 Google Inc. System and method of updating programs and data
US8346768B2 (en) * 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
US8219526B2 (en) * 2009-06-05 2012-07-10 Microsoft Corporation Synchronizing file partitions utilizing a server storage model
EP2545472B1 (en) * 2010-03-12 2020-05-06 BlackBerry Limited Distributed catalog, data store, and indexing
CN101807207B (zh) * 2010-03-22 2011-10-26 北京大用科技有限责任公司 一种基于内容差异比较的文档共享方法
US8352522B1 (en) * 2010-09-01 2013-01-08 Trend Micro Incorporated Detection of file modifications performed by malicious codes
WO2012042617A1 (ja) * 2010-09-29 2012-04-05 富士通株式会社 中継システム、中継装置、中継装置の制御方法及び制御プログラム
US8713098B1 (en) * 2010-10-01 2014-04-29 Google Inc. Method and system for migrating object update messages through synchronous data propagation
US9911142B2 (en) * 2010-12-10 2018-03-06 Viacom International Inc. Centralized deployment of advertising code
US8429124B2 (en) * 2010-12-21 2013-04-23 Neustar Information Services, Inc. On demand multi-location large database synchronization system
EP2501106B1 (en) * 2011-03-10 2020-04-29 Amadeus S.A.S. System and method for session synchronization with independent external systems
US9588652B2 (en) 2011-12-12 2017-03-07 International Business Machines Corporation Providing feedback for screen sharing
US20130151624A1 (en) 2011-12-12 2013-06-13 International Business Machines Corporation Context-Sensitive Collaboration Channels
US9852432B2 (en) 2011-12-12 2017-12-26 International Business Machines Corporation Customizing a presentation based on preferences of an audience
US9141264B2 (en) 2011-12-14 2015-09-22 International Business Machines Corporation Variable refresh rates for portions of shared screens
US9124657B2 (en) 2011-12-14 2015-09-01 International Business Machines Corporation Dynamic screen sharing for optimal performance
US8862558B2 (en) 2012-01-25 2014-10-14 Hitachi, Ltd. Single instantiation method using file clone and file storage system utilizing the same
WO2013115942A1 (en) * 2012-02-01 2013-08-08 Vidyo, Inc. Techniques for multiview video coding
US9529818B2 (en) 2012-04-23 2016-12-27 Google Inc. Sharing and synchronizing electronically stored files
US8949179B2 (en) 2012-04-23 2015-02-03 Google, Inc. Sharing and synchronizing electronically stored files
US9239846B2 (en) 2012-04-23 2016-01-19 Google Inc. Sharing and synchronizing electronically stored files
US9244934B2 (en) 2012-04-23 2016-01-26 Google Inc. Sharing and synchronizing electronically stored files
JP5795554B2 (ja) * 2012-05-31 2015-10-14 株式会社エヌ・ティ・ティ・データ 差分暗号化によるファイル同期システム、その方法およびプログラム
US9177009B2 (en) * 2012-06-28 2015-11-03 Microsoft Technology Licensing, Llc Generation based update system
US9965744B1 (en) * 2012-06-29 2018-05-08 Google Llc Automatic dynamic vetting of browser extensions and web applications
US9495377B2 (en) 2012-09-12 2016-11-15 International Business Machines Corporation Secure deletion operations in a wide area network
US8903768B2 (en) 2012-11-04 2014-12-02 International Business Machines Corporation Method and system for synchronization and management of system activities with locally installed applications
US8918483B2 (en) 2012-11-05 2014-12-23 International Business Machines Corporation Method and system for synchronization and management of system activities with locally installed applications
US9225769B2 (en) 2012-11-05 2015-12-29 International Business Machines Corporation System for synchronization and management of system activities with locally installed applications
US10331775B2 (en) 2014-10-15 2019-06-25 Microsoft Technology Licensing, Llc Collaborative document editing using state-based revision
US10042690B2 (en) * 2016-01-04 2018-08-07 Bank Of America Corporation System for determination and notification of issues in data file transmissions
US10866963B2 (en) * 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
CN112486561B (zh) * 2020-11-25 2024-03-22 北京电力交易中心有限公司 基于区块链的版本回溯方法、装置及相关设备

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3380281D1 (en) * 1982-12-03 1989-08-31 Ibm Updating data processing files
US4641274A (en) * 1982-12-03 1987-02-03 International Business Machines Corporation Method for communicating changes made to text form a text processor to a remote host
GB9505939D0 (en) * 1995-03-23 1995-05-10 Intelligence Quotient Int A method of operating a computer system
US5446888A (en) * 1994-01-14 1995-08-29 Pyne; Charles F. Remote file transfer method and apparatus
US5701463A (en) * 1994-09-09 1997-12-23 Cheyenne Advanced Technology Limited Method of replacing the identity of a file with another as part of a file open request in a computer system
US5634052A (en) * 1994-10-24 1997-05-27 International Business Machines Corporation System for reducing storage requirements and transmission loads in a backup subsystem in client-server environment by transmitting only delta files from client to server
US5574906A (en) 1994-10-24 1996-11-12 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
US5859971A (en) * 1996-02-15 1999-01-12 International Business Machines Corp. Differencing client/server communication system for use with CGI forms
US6374250B2 (en) * 1997-02-03 2002-04-16 International Business Machines Corporation System and method for differential compression of data from a plurality of binary sources
US6088694A (en) 1998-03-31 2000-07-11 International Business Machines Corporation Continuous availability and efficient backup for externally referenced objects
US6341291B1 (en) * 1998-09-28 2002-01-22 Bentley Systems, Inc. System for collaborative engineering using component and file-oriented tools
US6499031B1 (en) * 1999-07-26 2002-12-24 Microsoft Corporation Systems and methods for using locks with computer resources
US6578054B1 (en) * 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US6578069B1 (en) * 1999-10-04 2003-06-10 Microsoft Corporation Method, data structure, and computer program product for identifying a network resource
US6671757B1 (en) * 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
JP2001249839A (ja) * 2000-03-07 2001-09-14 Toshiba Corp データ処理装置
AU2001272970A1 (en) * 2000-06-22 2002-01-02 Synchrologic, Inc. A system and method for file transmission using file differentiation
US6434683B1 (en) * 2000-11-07 2002-08-13 Storage Technology Corporation Method and system for transferring delta difference data to a storage device
US6847983B2 (en) * 2001-02-28 2005-01-25 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of open files
US6985915B2 (en) * 2001-02-28 2006-01-10 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of files
US20020161860A1 (en) * 2001-02-28 2002-10-31 Benjamin Godlin Method and system for differential distributed data file storage, management and access
US7203708B2 (en) 2003-11-06 2007-04-10 Microsoft Corporation Optimizing file replication using binary comparisons

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1949761B (zh) * 2005-10-13 2010-09-15 腾讯科技(深圳)有限公司 一种数据同步方法及其差分编码方法
CN101604245B (zh) * 2008-06-10 2013-01-09 英华达股份有限公司 更新档案的方法与系统
CN102063313A (zh) * 2009-11-16 2011-05-18 英业达股份有限公司 电子装置、可携式电子装置、电子系统及应用于其的方法
CN102063313B (zh) * 2009-11-16 2014-04-23 英业达股份有限公司 电子装置、可携式电子装置、电子系统及应用于其的方法
CN101854395A (zh) * 2010-06-02 2010-10-06 四川华廷威思信息技术有限公司 一种基于Web程序的附件自动修改方法
CN102831022A (zh) * 2012-07-27 2012-12-19 曙光信息产业(北京)有限公司 修改系统配置的方法和装置
CN102831022B (zh) * 2012-07-27 2015-08-26 曙光信息产业(北京)有限公司 修改系统配置的方法和装置
CN105474209A (zh) * 2013-06-14 2016-04-06 微软技术许可有限责任公司 管理对共享文档的改动
CN104462591A (zh) * 2014-12-31 2015-03-25 上海斐讯数据通信技术有限公司 一种避免重复下载的方法及移动终端

Also Published As

Publication number Publication date
MXPA04010819A (es) 2005-07-05
CA2484565A1 (en) 2005-05-06
US20070174351A1 (en) 2007-07-26
JP4676745B2 (ja) 2011-04-27
AU2004218700A1 (en) 2005-05-26
US8200623B2 (en) 2012-06-12
BRPI0404816A (pt) 2005-06-21
CN100557574C (zh) 2009-11-04
US7203708B2 (en) 2007-04-10
KR20050043689A (ko) 2005-05-11
EP1533716A1 (en) 2005-05-25
JP2005141756A (ja) 2005-06-02
RU2004132538A (ru) 2006-04-10
RU2357280C2 (ru) 2009-05-27
US20050102288A1 (en) 2005-05-12

Similar Documents

Publication Publication Date Title
CN1624661A (zh) 使用二进制比较优化文件复制
US12328374B2 (en) Systems and methods for caching of managed content in a distributed environment using a multi-tiered architecture including off-line access to cached content
JP4698182B2 (ja) 電子装置、ネットワーク機器、管理方法、ソフトウェア更新方法、管理プログラム、ソフトウェア更新プログラム及び記録媒体
CN101420325B (zh) 一种软件包的自动部署方法、装置和系统
JP2011503703A5 (zh)
CN1744603A (zh) 通过远程协议的远程文件更新
JP2003288191A (ja) プリンタドライバを動的にアップデートするシステムおよび方法
CN101438261A (zh) 执行逐步升级的技术
CN102098330A (zh) 基于json数据格式的异步传输方法、装置及系统
US10516791B2 (en) Information processing system, information processing apparatus, and information processing method for executing an iteration of one or more processes
WO2016155635A1 (zh) 一种数据处理方法和设备
US20150067037A1 (en) Communication apparatus and communication method
JP2005346723A (ja) 複数の印刷装置にまたがって複数のリソースを管理するためのシステムおよび方法
US7456991B2 (en) Printer based file revision databasing
EP1933527A2 (en) Information processing method and system
US20120110029A1 (en) Data model for service architecture
CN101415029B (zh) 文件分发方法及装置
US11138149B2 (en) Information processing system, control method therefor, and storage medium for handling an error in converting data in a process for generating business form data
CN111782157A (zh) 快递面单打印管理方法、装置及系统
CN115840587A (zh) 一种静态资源发布方法、装置、计算设备及存储介质
JP2004078730A (ja) 開発環境構築システム
CN108093008B (zh) 分布式数据存储方法及装置
CN103119575A (zh) 存储客户侧数据
CN1527217A (zh) 可产生网络自动复制功能的信息处理装置及方法

Legal Events

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

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

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

Effective date of registration: 20150429

Address after: Washington State

Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Washington State

Patentee before: Microsoft Corp.

CX01 Expiry of patent term

Granted publication date: 20091104

CX01 Expiry of patent term