CN102016835A - 通过无状态协议的文档同步 - Google Patents

通过无状态协议的文档同步 Download PDF

Info

Publication number
CN102016835A
CN102016835A CN2009801159031A CN200980115903A CN102016835A CN 102016835 A CN102016835 A CN 102016835A CN 2009801159031 A CN2009801159031 A CN 2009801159031A CN 200980115903 A CN200980115903 A CN 200980115903A CN 102016835 A CN102016835 A CN 102016835A
Authority
CN
China
Prior art keywords
cell
revision
identifier
objects
data
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
CN2009801159031A
Other languages
English (en)
Other versions
CN102016835B (zh
Inventor
S·P·克拉克
M·A·S·S·波斯
P·P·贝尔
H·萨利巴
X·孙
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 CN102016835A publication Critical patent/CN102016835A/zh
Application granted granted Critical
Publication of CN102016835B publication Critical patent/CN102016835B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

各种示例系统、方法、和数据结构针对同步文档。一种示例数据结构包括从第一客户机接收编辑文档的请求,并将短期合格元数据发送给第一客户机以开始编辑会话。该数据结构包括多个单元格以及定义文档的内容的多个数据对象。每一数据对象与单元格中的一个相关联且具有唯一地标识相关联的单元格中的数据对象的、且被配置成与其他单元格以及相关联的单元格内的对象进行通信的对象标识符。另外,单元格中的每一个被如此定义使得每一其他单元格保持不受对该单元格的数据对象的变更的影响。

Description

通过无状态协议的文档同步
背景
在典型的文档系统中,文档在整个文档等级上进行访问,从而使得客户机计算机从服务器接收整个文档来进行编辑。这要求将与底层文档格式相关联的低层数据从服务器传送到客户机计算机。同样,增量文档格式必须通过网络连接来进行无用信息收集和碎片整理。此外,必须跨网络来控制锁。控制锁可以是要求交换大量内容的复杂且脆弱的任务。传送低层数据,包括无用信息收集和碎片整理信息,以及控制锁,不必要地将应用程序绑定到其低层文件格式且可能是不灵活的并导致低效。
概述
此处描述了与通过无状态协议的文件(例如,文档)同步和/或加载有关的示例系统和方法。
根据一个方面,一种用于在第一计算设备上独立于文档的文档格式来存储文档的数据结构,该数据结构包括:多个单元格和定义文档的内容的多个数据对象。单元格中的每一个具有唯一地标识文档中的特定单元格且与至少一个修订相关联的单元格标识符。每一数据对象与单元格中的一个相关联且具有唯一地标识相关联的单元格中的数据对象的对象标识符,并且被配置成与其他单元格以及相关联的单元格内的对象进行通信。另外,单元格中的每一个被如此定义使得每一其他单元格保持不受对该单元格的数据对象的变更的影响。
根据另一方面,修订的修订清单存储在第一计算设备的计算机可读介质上。修订清单定义表示在一时间点处单元格的状态的修订。修订清单包括:多个对象组,每一对象组包括至少一个数据对象;以及包括至少一个数据对象的一致性单元,每一一致性单元被如此定义使得编辑一致性单元中的一个不会影响任何其他一致性单元。
根据另一方面,一种在第一计算设备上同步文档的方法,文档被断开成多个单元格,每一单元格由至少一个修订清单来定义,该方法包括:接收第一修订和与文档相关联的至少一个单元格;接收对第一计算设备的更新,该更新指示与关联于文档的每一单元格相关联的已更新的修订标识符;当每一单元格的第一修订标识符与该单元格的已更新的修订标识符匹配时,保留该单元格的第一修订;生成每一单元格的新修订,其中生成新修订包括当该单元格的第一修订标识符与该单元格的已更新的修订标识符不匹配时向新修订分配新修订标识符;删除根对象未引用的任何单元格;以及通过用每一单元格的新修订替换单元格来同步文档。单元格标识符包括全局唯一标识符(GUID)和整数(INT)对,GUID在定义单元格和修订的集合且包括根对象的范围内是全局唯一的,其中该范围内的单元格可经由根对象来访问。单元格标识符与具有至少一个第一修订标识符的第一修订相关联。至少一个修订标识符中的每一个表示一时间点处单元格的状态。单元格包括定义单元格和修订的集合的范围且该范围包括至少一个根对象。该范围内的单元格可经由根对象来访问。
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述并非旨在标识出所要求保护的主题的关键特征或必要特征。本概述亦非旨在用于限制所要求保护的主题的范围。
附图描述
参考附图描述了非限制性的和非穷尽的实施例,其中除非另外指定,否则在各个视图中相同的附图标记指示相同的部分。
图1是示出示例创作系统的示意性框图;
图2是示出图1的创作系统的示意性框图,其中存储在第一计算设备上的文档可包括一致性内容单元;
图3是一致性单元的示意性框图;
图4是范围的示意性框图;
图5是被配置成实现创作环境的示例客户机计算系统的示意性框图;以及
图6是示出创作应用程序所实现的示例同步过程的流程图。
详细描述
在以下详细描述中,参考了构成了详细描述的一部分并作为说明示出了各具体实施方式或示例的附图。虽然将在结合在计算机系统上的操作系统上运行的应用程序执行的程序模块的一般上下文中描述本发明,但本领域的技术人员将会认识到,本发明也可结合其他程序模块实现。可结合此处所描述的实施例并且可利用其他实施例而不背离本发明的精神或范围。由此,以下详细描述并不旨在限制,且本公开的范围由所附权利要求及其等效方案所定义。
本公开的各实施例提供了其中单个客户机可创作文档或多个客户机可协作创作文档同时消耗最少服务器和传输资源的环境。在示例实施例中,当有联合创作能力的应用程序正在编辑一文档时,应用程序只获得该文档的某些片段。在客户机接收文档片段之前,应用程序的数据模型已经被划分成显式一致性单元。
在此处描述的示例实施例中,文档被分成被称为一致性单元的一系烈部分。默认地,文档可被划分成涵盖整个文档的单个一致性单元。当已知文档的结构的具体知识时,文档可被划分成多于一个一致性单元。例如,在诸如使用
Figure BPA00001252189900031
演示图形程序来创建的演示等的包括多于一张幻灯片的演示中,可被划分成多个一致性单元,其中每一一致性单元包括一张幻灯片。例如,包括十张幻灯片的演示可被划分成十个一致性单元。
在上面的示例中,多于或少于十个一致性单元是可能的。例如,每一幻灯片可包括页脚且每一页脚可以是一个一致性单元。因此,包括十张幻灯片的演示可能具有20个一致性单元。同样,默认地,整个文档可以是一个一致性单元。
有两个实现增量的主要方法。第一,增量可通过“diff”算法显式地计算。例如,所使用的算法可以是在WINDOWS平台中找到的“远程差异压缩”(RDC)库。该算法方法具有数据可被认为是不透明的且可不需要结构或结构性知识的优点。这对于其中文档的格式是固定的、未知的或无法变更的场景是理想的。固定的、未知的或无法变更的文件格式的非限制性示例包括文本文件、位图图像和音频文件。
然而,对这种灵活性的折衷是算法无法很好地跟踪的变更所引起的高计算成本和传输低效。这在数据未被设计成高效同步时可能发生。即,数据不具有“显式的”增量或好的变更位置。
第二,增量可被细分成能与预期的变更相当精确地对齐的称为“颗粒”的更小的变更单元。增量因而是在两个状态之间可以不同的颗粒集。这种方案在计算上较便宜且当数据能有效地被细分成与预期的更新精确对齐的小变更单元时具有变得更高效的潜力。
两种方法可独立地或组合地使用。例如,当组合地使用两种方法时,文档访问模型可提供一致性单元内的任意粒度等级。通过显式增量方案,同步引擎可利用任意粒度等级来提高效率。
现在参考附图,图1示出了具有示出本发明的各示例方面的特征的示例创作系统100。创作系统100包括存储文档150的主副本的存储设备120。在一实施例中,存储设备120可包括但不限于,服务器、客户机计算机、或其他计算设备。在另一实施例中,存储设备120可包括一个或多个存储设备(例如,计算设备的网络)。
创作系统100还包括通信耦合到存储设备120的一个或多个客户机计算设备110A、110B、110C、110D。客户机计算设备中的每一个可通过接收对一个或多个一致性单元155的更新并编辑一致性单元155中的数据对象来编辑文档150。当客户机计算设备定期向存储设备120发送要与其他客户机计算设备共享的更新时,同步一致性单元155。
如此处所使用的术语,客户机计算设备包括获得从文档的主副本中创作的一致性单元的任何计算设备。客户机计算设备可与存储设备120不同,或者可包括在存储设备120上实现的不同客户机账户。在一实施例中,担当用于一个文档的存储设备120的计算设备可以担当用于不同文档的客户机计算设备,反之亦然。
在所示示例中,四个客户机计算设备110A、110B、110C和110D通信耦合到存储设备120。然而,在其他实施例中,任意数量的计算设备可以耦合到存储设备120。在所示示例中,每一客户机计算设备110A、110B、110C、110D都可向存储设备120发送客户机计算设备的客户所生成的更新,并且可从存储设备120请求供编辑/创作的其他一致性单元。在一实施例中,存储设备120可以是服务器计算设备而客户机计算设备110A、110B、110C、110D可以是客户机计算设备。其他系统配置是可能的。例如,在替换实施例中,可以使用多个服务器计算设备。
如图2中所示,存储在存储设备120上的文档150可包括被划分成一致性单元155A、155B的内容152A和152B。客户机计算设备110上的创作应用程序130处理并操纵文档150的一致性单元155A、155B的内容。一般地,客户机计算设备110A可与客户机计算设备110B所提供的更新分开地同步对内容152A的更新。因为对不同一致性单元做出更新,所以将不存在一致性单元之间的合并冲突。
参考图3,一致性单元155A(即数据结构)被示为包括一致性单元155A的多个修订305、310和315。单元格是具有类似属性的数据对象组。例如,单元格可包含一组文本、一组图片等。单元格305、310和315中的每一个包括唯一地标识文档150中的特定单元格的单元格标识符320(仅为单元格305示出)。单元格305、310和315中的每一个可使用单元格标识符与文档150中的至少一个其他单元格进行通信。同样,单元格305、310和315中的每一个与至少一个修订325(仅为单元格305示出)相关联。注意,单元格的状态由包含数据对象组的状态的修订来描述。
每一单元格可包括含有全局唯一标识符(GUID)和整数(INT)对的单元格标识符。每一单元格还可被包括在定义单元格和修订的集合的文件中。该范围还可包括至少一个根对象。该范围内的单元格可经由根对象来访问。单元格标识符可与包括至少一个第一修订标识符的第一修订相关联。至少一个修订标识符中的每一个可表示一时间点处单元格的状态。注意,术语文件用于表示命名的存储“实体”且不一定是诸如文本文件或jpeg图像等的物理文件。
一致性单元155A包括定义文档150的内容的多个数据对象330、335、340和345。一般地,数据对象可以是任意二进制数据。数据对象的非排他性示例包括文本、图片、表、超链接、电影文件、音频文件等。每一数据对象330、335、340和345与单元格305、310和315中的一个相关联,且具有唯一地标识相关联的单元格中的数据对象的对象标识符。例如,对象标识符350唯一地标识单元格305中的数据对象330。单元格标识符、对象标识符和修订标识符可包括GUID和INT对。此外,GUID可以是在单元格内全局唯一的。
每一数据对象330、335、340和345被配置成与其他单元格和相关联的单元格中的其他对象进行通信。例如,数据对象330可与引用单元格310和315进行通信但不与包含在单元格310和315中的对象进行通信。这帮助确保甚至一个单元格独立于另一单元格变更情况下的一致性。一般地,对象可引用相同单元格中的任何其他对象以及其他单元格,但不可引用其他单元格中的对象。另外,单元格305、310和315中的每一个被如此定义使得每一其他单元格保持不受对该单元格的数据对象的变更的影响。同样,每一单元格305、310和315能够引用范围内的至少一个单元格。范围可定义单元格和修订的集合。见图4的范围的示意。
在划分期间,数据对象330、335、340和345中的每一个可被分组在至少一个对象组中。对象组的使用最小化了单独地跟踪对象的开销。在所有对象相对较大的场景中,由于开销小,对象组将是不必要的。然而,在对象可以任意小的场景中,使用对象组来控制开销。对象组还允许取得对象(即,变更单元)并将其一起分组到更大的单元中。在划分期间,需要甚至在创建组时试图并维持“变更单元”特性。
存储设备120可基于各种因素将数据对象330、335、340和345分类到对象组中,如每一数据对象由客户机计算机110更新的概率(即,基于使用的试探)。例如,对象可被分组到若干类别中。类别的非限制性示例包括:1)已知要频繁地变更的对象类型(例如,文档元数据属性,诸如单词计数和最后修改时间);2)已知要非常频繁地变更的对象类型(例如,图片);3)变更的频率未知的对象;以及4)已经频繁地变更的对象(例如,用户已经疯狂似地修改的列表的列表结构)。
另外,存储设备120可基于每一数据对象的大小将数据对象330、335、340和345分类到对象组中。例如,大小可以是对于分类算法的输入。如果对象被认为是大的,则跟踪该对象的开销,因为单个对象变得不重要。在考虑益处的时候这尤其正确(即,这帮助阻止不必要地取得或同步对象)。如果对象相对于对象组的开销是非常小的,则对象可被分组,而不管对象多久变更一次。
如上所述,每一单元格305、310和315能够引用范围内的至少一个单元格且范围可定义单元格和修订的集合。图4示出范围400的示意性框图。范围400包括根单元格405、单元格410和无用信息单元格415。例如,根单元格405包括修订420、425和430。修订的一个示例可包括一致性单元155A的最后自动保存的实例,即,在最后变更之前的文件状态。例如,修订可包括在文本被添加(修订一)之前的文本域的状态。如果文本被添加到文本域,则可以创建新的修订(修订二)。因此,“撤销”操作将从修订二回退到修订一。同样,每一单元格可包括不同数量的修订。例如,单元格405包括两个修订(修订435和440),而无用信息单元格包括一个修订(修订445)。
单元格修订通过将文档划分成允许复制(或更新)单元比整个文档小得多的多个一致性单元来实现。使用单元格修订允许更快地看见变更。在部分同步(即,同步一致性单元对比同步整个文档)的情况中,划分允许看见以其他方式不能看见的更新。有效的划分还允许合并应用程序以使其运行较少次数。例如,根据定义,冲突只有在变更发生在同一一致性单元中时才可能发生,且不同一致性单元中的任何其他变更不能造成冲突,且同步应用程序可在不需要合并的情况下运行。另外,一致性单元可以形成增量加载/保存操作的有效基础。当与应用程序完全地集成时,加载和同步场景更易于响应且可以创建新的共享/协作特征。
为了维持一致性单元中的一致性,所有更新需要保证是一致的。这需要将潜在不一致的更新一起组成批来形成一致的更新,即事务。子文件访问应用程序接口(API)可通过事务来执行更新而没有非受控范围等级字节访问。
为了有效的同步和复制,可以在一致性单元等级(即,划分)处使用并执行子文件版本化。在其最简单的形式中,这可仅仅涉及向每一划分分配只要对该划分做出变更就改变的GUID。
可以通过过渡形式的新版本在一致性单元等级处做出更新。同步可涉及在客户机和服务器之间传送新版本(即状态)。然而,更新通常是小的且基于客户机和服务器可能都已经拥有的某些先前状态。传送差或增量可利用这点来使得同步更高效。
每一修订可包括任意数量的数据对象。例如,修订425具有三个数据对象(数据对象450、455和460)。可以为单元格的每一修订创建修订清单470。修订清单470可指示包含在修订中的对象的根集、到其他修订清单的依赖关系/引用、以及对象组(即,对象如何被安排到对象组中)。每一修订清单470可指向在先前修订清单中定义的其他对象组。
修订清单470可定义表示在一时间点处文档150的状态的修订。修订清单470包括至少一个对象组且每一对象组包括至少一个数据对象。修订清单470还描述了单个修订,其根据定义只可用于描述单个单元格(是一致性单元)中的对象的状态。
第二计算设备(例如,存储设备120)可部分地或完全地确定哪些数据对象被安排到哪个对象组中。第二计算设备还可基于每一对象被更新的频率来定义每一对象组。另外,第二计算设备可基于对象的大小来定义每一对象组。同样,第一计算设备(例如,客户机计算机110)可以影响哪些数据对象被安排到哪些对象组中。
现在参考图5,更详细地示出了客户机设备110A。客户机设备110A可以是个人计算机、服务器计算机、笔记本计算机、PDA、智能机、或任何其他这种计算设备。
在图5中,示例客户机计算设备110A通常包括用于执行存储在系统存储器520上的应用软件和程序的至少一个处理单元515。取决于计算设备110A的确切配置和类型,系统存储器520可包括但不限于,RAM、ROM、EEPROM、闪存、CD-ROM、数字多功能盘(DVD)或其他光存储设备、磁带盒、磁带、磁盘存储或其他磁性存储设备、或者其他存储器技术。
系统存储器520通常存储适于控制计算设备110A的操作的操作系统522,诸如来自华盛顿州雷蒙德市微软公司的操作系统。系统存储器520还可包括其中可以存储文档的一致性单元527的文档高速缓存526。文档的元数据529也可被存储在客户机高速缓存526中。
系统存储器520还可存储用于创建和编辑文档的一个或多个软件应用程序,如创作应用程序130。适于根据本发明的原理来创作文档的创作应用程序130的一个非限制性示例是来自微软公司的
Figure BPA00001252189900091
文字处理软件。创作应用程序的其他非限制性示例包括全来自微软公司的
Figure BPA00001252189900092
演示软件、
Figure BPA00001252189900093
绘图和作图软件、以及因特网浏览器。也可使用其他软件应用程序。
计算设备110A还可具有用于输入和操纵数据的输入设备530,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等。还可包括输出设备535,诸如显示屏、扬声器、打印机等。这些输出设备535在本领域中公知且无需在此处详细讨论。
计算设备110A还可包含通信连接540,其允许设备110A通过分布式计算环境中的网络(例如,内联网或因特网)与其他计算设备(例如,图1的存储设备120)进行通信。作为示例而非限制,通信设备介质540包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其它无线介质。
图6是阐明根据本发明一实施例的用于在对一致性单元做出变更之后同步文档的方法600中涉及的各概略阶段的流程图。方法600可使用以上参考图5描述的计算设备110A来实现。以下将更详细地描述实现方法600的各阶段的方式。
方法600在开始框605处开始并行进至阶段610,在那里计算设备110A可接收修订和该修订所应用到的任何单元格。例如,可以接收修订集以及关于哪些单元格应该将其状态设为哪些修订的相应指令。换言之,在同步时接收下列内容:1){修订}-修订集;2){(单元格,修订)}-描述了“已修改”的单元格以及就所接收的修订而言其新状态是什么的单元格id、修订id元组的集合。“已修改”意味着变更了该修订中的某条信息。例如,使用计算设备110A的客户机(例如,客户机计算机)可接收来自演示的幻灯片或来自文字处理文档的页眉/页脚信息。一旦已经应用了变更,则存储可以省去不能通过在根单元格处开始并遍历对象/单元格引用来“发现”的任何单元格和/修订。“发现”指的是存储可以做出以摆脱客户机因为无法访问数据而不再使用的无关数据的一种优化。例如,一旦应用了变更,则存储可省去不再从根单元格直接或间接引用的任何单元格和/或修订。
从阶段610,在那里计算设备110A接收修订以及该修订所应用到的任何单元格,方法600可前进至阶段620,在那里计算设备110A可接收对一致性单元527的更新。更新可指示与关联于一致性单元527或文档150的每一单元格相关联的已更新的修订标识符。例如,计算设备110A可正在运行
Figure BPA00001252189900101
演示图形程序,而一致性单元527可以是幻灯片。对幻灯片的更新可在用户编辑幻灯片时接收。
一旦在阶段620中计算设备110A接收对一致性单元527的更新,方法600可继续至阶段680,在那里计算设备110A判定是保留第一修订还是生成新的修订。当计算设备110A确定要保留第一修订时,方法600继续至阶段630,在那里计算设备110A可保留第一修订。当单元格的第一修订标识符与单元格的已更新的修订标识符匹配时,可以保留第一修订。当第一修订标识符可匹配已更新的修订标识符的一个示例是当做出修订然后撤销该修订时。例如,用户可以在幻灯片中键入单词然后删除新键入的单词。因为幻灯片没有变更所有没有生成新修订的需要。
当计算设备110A判定要创建新的修订时,方法600从阶段680继续至阶段640,在那里计算设备110A生成新的修订。生成新的修订可包括当单元格的第一修订标识符与单元格的已更新的修订标识符不匹配时向新的修订分配新的修订标识符。生成新的修订还可包括为每一单元格判定是否单元格中的每一对象的对象标识符与已更新的对象标识符匹配。已更新的对象标识符可定义修订清单。修订清单可定义一致性单元527或文档的修订,且可包括包含至少第一数据对象的至少第一对象组。修订清单还可指向先前的修订清单。例如,在用户编辑期间,应用程序跟踪作为用户编辑的一部分被修改的对象组。然后使用标准GUID生成算法来创建新的修订ID。然后将对象集打包到对象组中(如上所讨论的),然后从表示新修订的新修订清单引用对象组和先前的修订清单。
一旦计算设备110A在阶段640中生成新的修订,方法600可继续至阶段650,在那里计算设备110A可将根对象不再引用的任何单元格作为无用信息来收集。无用信息收集包括确定无法通过在根单元格处开始遍历对象/单元格引用来“发现”的对象。因为无法访问已经作为无用信息被收集的单元格,所以不会再需要它们且可通过删除它们来释放盘空间/资源。
一旦计算设备110A在阶段650中删除根对象不再引用的任何单元格,方法600可继续至阶段660,在那里计算设备110A可同步文档150或一致性单元527。例如,计算设备110A可通过用每一单元格的新修订替换现有单元格来同步文档。一旦计算设备110A在阶段660同步了文档150或一致性单元527,方法600随后可在阶段670处结束。
本说明书通篇引述的“一个实施例”、“一实施例”、“各实施例”、“一个方面”、或“各方面”意指特定的所描述的特征、结构或特性包括在本发明的至少一个实施例中。因此,对这样短语的使用可指的是一个以上的实施例或方面。另外,在一个或多个实施例或方面中,可以用任何合适的方式来组合所描述的特征、结构或特性。此外,对单个项的引用可意味着单个项或多个项,正如对多个项的引用可意味着单个项一样。此外,在合并到列表中时对术语“和”的使用旨在暗示列表的所有元素、列表的单个项、或已经构想的列表中的项的任意组合。
本发明的实施例可被实现为计算机进程(方法)、计算系统或制品,诸如计算机程序产品或计算机可读介质。这些过程(程序)可以用任何数量的方式,包括本文中所描述的结构来实现。一种此类方式是通过本文中描述的类型的设备的机器操作。另一可任选的方式是结合一个或多个人类操作者执行该方法的各个操作中的某一些来在计算设备上执行这些操作中的一个或多个。这些人类操作者无需彼此同在一处,而是其每一个可以仅与执行程序的一部分的机器同在一处。
计算机程序产品可以是计算机系统可读并编码了用于执行计算机过程的指令的计算机程序的计算机存储介质。计算机程序产品还可以是计算系统可读并编码了用于执行计算机过程的指令的计算机程序的载体上的传播信号。如此处所使用的术语“计算机可读介质”包括存储介质和通信介质两者。
本领域的技术人员可以理解,本发明方法可以使用其它计算机系统配置来实现,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、大型计算机等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。

Claims (20)

1.一种在第一计算设备(110A、110B、110C、110D)的计算机可读介质上编码的数据结构(155A、155B、155C、155D),所述数据结构包括:
多个单元格(305、310、315),所述单元格(305、310、315)中的每一个具有唯一地标识所述文档(150)中的特定单元格(305、310、315)的单元格标识符(320),且与至少一个修订(445)相关联;
定义所述文档(150)的内容的多个数据对象(330、335、340、450、455),每一数据对象(330、335、340、450、455)只与所述单元格(305、310、315)中的一个相关联且具有唯一地标识所述相关联的单元格(305、310、315)中的所述数据对象(330、335、340、450、455)的对象标识符(350),且被配置成与其他单元格(305、310、315)和所述相关联的单元格(305、310、315)中的对象进行通信;以及
其中所述单元格(305、310、315)中的每一个被如此定义使得每一其他单元格(305、310、315)保持不受对所述单元格(305、310、315)的数据对象(330、335、340、450、455)的变更的影响。
2.如权利要求1所述的数据结构,其特征在于,每一单元格引用范围内的至少一个单元格,所述范围定义单元格和修订的集合。
3.如权利要求2所述的数据结构,其特征在于,所述单元格和修订的集合中的每一个被分组到至少一个对象组中。
4.如权利要求3所述的数据结构,其特征在于,所述第一计算设备基于每一数据对象要被更新的概率将所述多个数据对象分类到所述至少一个对象组中。
5.如权利要求3所述的数据结构,其特征在于,所述第一计算设备基于每一数据对象的大小将所述多个数据对象分类到所述至少一个对象组中。
6.如权利要求1所述的数据结构,其特征在于,所述单元格标识符包括全局唯一标识符和整数对。
7.如权利要求6所述的数据结构,其特征在于,所述全局唯一标识符在所述单元格中是全局唯一的。
8.如权利要求1所述的数据结构,其特征在于,所述数据结构表示一致性单元,所述一致性单元在被修改时不会修改另一一致性单元。
9.一种存储在第一计算设备(110A、110B、110C、110D)的计算机可读介质上的修订(425)的修订清单(470),所述修订清单(470)定义表示一时间点处单元格(305、310、315)的状态的修订(425),所述修订清单(470)包括:
多个对象组,每一对象组包括至少一个数据对象(450、455、460);以及
包括所述至少一个数据对象(330、335、340、450、455)的一致性单元(155、155A、155B、155C、155D),每一一致性单元(470)被如此定义使得编辑所述一致性单元(155、155A、155B、155C、155D)中的一个不会影响任何其他一致性单元(155、155A、155B、155C、155D)。
10.如权利要求9所述的修订清单,其特征在于,第二计算设备至少部分地确定哪些数据对象被安排到哪个对象组中。
11.如权利要求9所述的修订清单,其特征在于,所述第一计算设备影响哪些数据对象被安排到哪个对象组中。
12.如权利要求9所述的修订清单,其特征在于,第二计算设备基于每一数据对象被更新的频率来定义每一对象组。
13.如权利要求9所述的修订清单,其特征在于,第二计算设备基于所述数据对象的大小来定义每一对象组。
14.如权利要求9所述的修订清单,其特征在于,所述至少一个数据组中的每一个中的所述至少一个数据对象基于每一数据对象要被更新的概率被分类到所述至少一个对象组中。
15.如权利要求9所述的修订清单,其特征在于,所述至少一个数据组中的每一个中的所述至少一个数据对象基于每一数据对象的大小被分类到所述至少一个对象组中。
16.如权利要求9所述的修订清单,其特征在于,所述修订清单指向先前修订清单中定义的至少一个对象组。
17.一种在第一计算设备(110A、110B、110C、110D)上同步文档(150)的方法,所述文档(150)被分成单元格(305、310、315),且每一单元格(305、310、315)由至少一个修订清单(470)来定义,所述方法包括:
接收与所述文档(150)相关联的第一修订(420、425、435、440)和至少一个单元格(305、310、315),所述至少一个单元格(305、310、315)包括包含全局唯一标识符和整数对的单元格标识符(320),所述全局唯一标识符是全局唯一的,所述单元格标识符与包括至少一个第一修订标识符(325)的所述第一修订(420、425、435、440)相关联,所述至少一个修订标识符(325)中的每一个表示一时间点处所述单元格(305、310、315)的状态,且范围定义单元格(305、310、315)和修订(420、425、435、440)的集合且所述范围包括至少一个根对象(405),其中所述范围内的单元格(305、310、315)可经由所述至少一个根对象(405)来访问;
接收对所述第一计算设备(110A、110B、110C、110D)的更新,所述更新指示与关联于所述文档(150)的每一单元格(305、310、315)相关联的已更新的修订标识符(325);
当每一单元格(305、310、315)的所述第一修订标识符(325)与该单元格(305、310、315)的所述已更新的修订标识符(325)匹配时,保留该单元格(305、310、315)的所述第一修订(420、425、435、440);
生成每一单元格(305、310、315)的新修订,其中生成所述新修订包括当该单元格(305、310、315)的所述第一修订标识符与该单元格(305、310、315)的所述已更新的修订标识符不匹配时向所述新修订分配新的修订标识符;
检测所述根对象(405)未引用的任何单元格(305、310、315);以及
通过用每一单元格(305、310、315)的新修订替换所述单元格(305、310、315)来同步所述文档(150)。
18.如权利要求17所述的方法,其特征在于,生成所述新修订包括对于每一单元格判定该单元格中的每一对象的对象标识符是否匹配已更新的对象标识符。
19.如权利要求18所述的方法,其特征在于,所述已更新的对象标识符定义了对所述文档的修订进行定义且包括包含至少第一数据对象的至少第一对象组的修订清单。
20.如权利要求19所述的方法,其特征在于,所述修订清单指向在先前修订清单中定义的对象组。
CN2009801159031A 2008-05-02 2009-04-07 通过无状态协议的文档同步 Active CN102016835B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/113,975 US8078957B2 (en) 2008-05-02 2008-05-02 Document synchronization over stateless protocols
US12/113,975 2008-05-02
PCT/US2009/039796 WO2009134596A2 (en) 2008-05-02 2009-04-07 Document synchronization over stateless protocols

Publications (2)

Publication Number Publication Date
CN102016835A true CN102016835A (zh) 2011-04-13
CN102016835B CN102016835B (zh) 2013-04-03

Family

ID=41255667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801159031A Active CN102016835B (zh) 2008-05-02 2009-04-07 通过无状态协议的文档同步

Country Status (12)

Country Link
US (2) US8078957B2 (zh)
EP (1) EP2283439B1 (zh)
JP (2) JP4977801B2 (zh)
KR (1) KR20110010598A (zh)
CN (1) CN102016835B (zh)
AU (1) AU2009241494B2 (zh)
BR (1) BRPI0910917A2 (zh)
CA (1) CA2720235C (zh)
HK (1) HK1154670A1 (zh)
MX (1) MX2010011958A (zh)
RU (1) RU2500023C2 (zh)
WO (1) WO2009134596A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999482A (zh) * 2011-12-12 2013-03-27 微软公司 用于管理协作文档的技术
CN106133766A (zh) * 2014-03-18 2016-11-16 谷歌公司 用于计算、应用和显示文档增量的系统和方法
US10733151B2 (en) 2011-10-27 2020-08-04 Microsoft Technology Licensing, Llc Techniques to share media files

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078957B2 (en) 2008-05-02 2011-12-13 Microsoft Corporation Document synchronization over stateless protocols
US9396279B1 (en) 2009-02-17 2016-07-19 Jpmorgan Chase Bank, Na Collaborative virtual markup
US20100268784A1 (en) * 2009-04-17 2010-10-21 Marc Henness Data synchronization system and method
US8219526B2 (en) * 2009-06-05 2012-07-10 Microsoft Corporation Synchronizing file partitions utilizing a server storage model
US10140588B2 (en) * 2009-12-28 2018-11-27 International Business Machines Corporation Bill of material synchronization
US8224874B2 (en) * 2010-01-05 2012-07-17 Symantec Corporation Systems and methods for removing unreferenced data segments from deduplicated data systems
US11611595B2 (en) 2011-05-06 2023-03-21 David H. Sitrick Systems and methodologies providing collaboration among a plurality of computing appliances, utilizing a plurality of areas of memory to store user input as associated with an associated computing appliance providing the input
US10402485B2 (en) 2011-05-06 2019-09-03 David H. Sitrick Systems and methodologies providing controlled collaboration among a plurality of users
US8744999B2 (en) 2012-01-30 2014-06-03 Microsoft Corporation Identifier compression for file synchronization via soap over HTTP
US20140082473A1 (en) * 2012-09-14 2014-03-20 David H. Sitrick Systems And Methodologies Of Event Content Based Document Editing, Generating Of Respective Events Comprising Event Content, Then Defining A Selected Set Of Events, And Generating Of A Display Presentation Responsive To Processing Said Selected Set Of Events, For One To Multiple Users
US9372833B2 (en) 2012-09-14 2016-06-21 David H. Sitrick Systems and methodologies for document processing and interacting with a user, providing storing of events representative of document edits relative to a document; selection of a selected set of document edits; generating presentation data responsive to said selected set of documents edits and the stored events; and providing a display presentation responsive to the presentation data
US20140082472A1 (en) * 2012-09-14 2014-03-20 David H. Sitrick Systems And Methodologies For Event Processing Of Events For Edits Made Relative To A Presentation, Selecting A Selected Set Of Events; And Generating A Modified Presentation Of The Events In The Selected Set
US20140201140A1 (en) 2013-01-11 2014-07-17 Commvault Systems, Inc. Data synchronization management
US10025464B1 (en) 2013-10-07 2018-07-17 Google Llc System and method for highlighting dependent slides while editing master slides of a presentation
US10423713B1 (en) 2013-10-15 2019-09-24 Google Llc System and method for updating a master slide of a presentation
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
US9798596B2 (en) 2014-02-27 2017-10-24 Commvault Systems, Inc. Automatic alert escalation for an information management system
US9898520B2 (en) 2014-03-25 2018-02-20 Open Text Sa Ulc Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents
US9645891B2 (en) 2014-12-04 2017-05-09 Commvault Systems, Inc. Opportunistic execution of secondary copy operations
US9753816B2 (en) 2014-12-05 2017-09-05 Commvault Systems, Inc. Synchronization based on filtered browsing
US9952934B2 (en) 2015-01-20 2018-04-24 Commvault Systems, Inc. Synchronizing selected portions of data in a storage management system
US9588849B2 (en) 2015-01-20 2017-03-07 Commvault Systems, Inc. Synchronizing selected portions of data in a storage management system
US20160321226A1 (en) * 2015-05-01 2016-11-03 Microsoft Technology Licensing, Llc Insertion of unsaved content via content channel
US11003632B2 (en) 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
US11301431B2 (en) 2017-06-02 2022-04-12 Open Text Sa Ulc System and method for selective synchronization
WO2019070687A1 (en) * 2017-10-03 2019-04-11 Lyconos, Inc. SYSTEMS AND METHODS FOR AUTOMATION OF DOCUMENTS
US11570099B2 (en) 2020-02-04 2023-01-31 Bank Of America Corporation System and method for autopartitioning and processing electronic resources

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867399A (en) * 1990-04-06 1999-02-02 Lsi Logic Corporation System and method for creating and validating structural description of electronic system from higher-level and behavior-oriented description
US5774868A (en) * 1994-12-23 1998-06-30 International Business And Machines Corporation Automatic sales promotion selection system and method
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
US5924092A (en) * 1997-02-07 1999-07-13 International Business Machines Corporation Computer system and method which sort array elements to optimize array modifications
JPH10301828A (ja) 1997-04-23 1998-11-13 Fujitsu Ltd データベース管理方法
JPH11232159A (ja) 1998-02-13 1999-08-27 The Japan Reserch Institute Ltd ファイル管理方法およびファイル管理のためのプログラムを記憶した媒体
US6801938B1 (en) 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
US6694336B1 (en) 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
US6671757B1 (en) * 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
AU2001288495A1 (en) * 2000-08-29 2002-03-13 Eloquent Tool for collaborative edit/search of dyanamic objects
EP1532543A4 (en) 2000-09-11 2008-04-16 Agami Systems Inc STORAGE SYSTEM COMPRISING PARTITIONED METADATA THAT MIGRATE LIKELY
JP2002251350A (ja) * 2001-02-22 2002-09-06 Sony Corp 送信装置、受信装置、送受信装置、送信方法および受信方法
JP4270771B2 (ja) * 2001-05-29 2009-06-03 富士通株式会社 表示プログラム、表示方法、および記録媒体
US7389201B2 (en) * 2001-05-30 2008-06-17 Microsoft Corporation System and process for automatically providing fast recommendations using local probability distributions
US7702563B2 (en) * 2001-06-11 2010-04-20 Otc Online Partners Integrated electronic exchange of structured contracts with dynamic risk-based transaction permissioning
US6928458B2 (en) * 2001-06-27 2005-08-09 Microsoft Corporation System and method for translating synchronization information between two networks based on different synchronization protocols
TW579463B (en) 2001-06-30 2004-03-11 Ibm System and method for a caching mechanism for a central synchronization server
EP1433086A4 (en) 2001-09-26 2006-07-26 Emc Corp EFFICIENT MANAGEMENT OF LARGE SIZE FILES
US20030117398A1 (en) * 2001-12-21 2003-06-26 Hubrecht Alain Yves Nestor Systems and methods for rendering frames of complex virtual environments
US7127512B2 (en) * 2002-02-19 2006-10-24 Qualcomm Inc. Method and apparatus for two-phase commit in data distribution to a web farm
US7200668B2 (en) * 2002-03-05 2007-04-03 Sun Microsystems, Inc. Document conversion with merging
US7058664B1 (en) 2002-04-29 2006-06-06 Sprint Communications Company L.P. Method and system for data recovery
US6925467B2 (en) * 2002-05-13 2005-08-02 Innopath Software, Inc. Byte-level file differencing and updating algorithms
US7096311B2 (en) * 2002-09-30 2006-08-22 Innopath Software, Inc. Updating electronic files using byte-level file differencing and updating algorithms
US7138998B2 (en) * 2002-11-14 2006-11-21 Intel Corporation Multi-resolution spatial partitioning
US7325202B2 (en) * 2003-03-31 2008-01-29 Sun Microsystems, Inc. Method and system for selectively retrieving updated information from one or more websites
US7750908B2 (en) * 2003-04-04 2010-07-06 Agilent Technologies, Inc. Focus plus context viewing and manipulation of large collections of graphs
US7299404B2 (en) 2003-05-06 2007-11-20 International Business Machines Corporation Dynamic maintenance of web indices using landmarks
US7406499B2 (en) * 2003-05-09 2008-07-29 Microsoft Corporation Architecture for partition computation and propagation of changes in data replication
US20040230893A1 (en) 2003-05-16 2004-11-18 Dethe Elza Method and system for enabling collaborative authoring of hierarchical documents with node privileges
US20050010576A1 (en) * 2003-07-09 2005-01-13 Liwei Ren File differencing and updating engines
US20050033811A1 (en) 2003-08-07 2005-02-10 International Business Machines Corporation Collaborative email
US7401104B2 (en) 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
JP2005092583A (ja) 2003-09-18 2005-04-07 Nippon Telegr & Teleph Corp <Ntt> メタデータ保存方法及び装置並びにプログラム、メタデータ保存プログラムを記録した記録媒体
US20050289152A1 (en) 2004-06-10 2005-12-29 Earl William J Method and apparatus for implementing a file system
US7313575B2 (en) * 2004-06-14 2007-12-25 Hewlett-Packard Development Company, L.P. Data services handler
US7873669B2 (en) * 2004-07-09 2011-01-18 Microsoft Corporation Direct write back systems and methodologies
US7853615B2 (en) * 2004-09-03 2010-12-14 International Business Machines Corporation Hierarchical space partitioning for scalable data dissemination in large-scale distributed interactive applications
US7613787B2 (en) 2004-09-24 2009-11-03 Microsoft Corporation Efficient algorithm for finding candidate objects for remote differential compression
US7401192B2 (en) * 2004-10-04 2008-07-15 International Business Machines Corporation Method of replicating a file using a base, delta, and reference file
US7933868B2 (en) 2004-11-04 2011-04-26 Microsoft Corporation Method and system for partition level cleanup of replication conflict metadata
JP5173427B2 (ja) * 2004-11-08 2013-04-03 イノパス・ソフトウェアー・インコーポレーテッド 圧縮リード・オンリ・メモリ・ファイル・システム(crmfs)イメージの更新
US7519579B2 (en) 2004-12-20 2009-04-14 Microsoft Corporation Method and system for updating a summary page of a document
US7480654B2 (en) 2004-12-20 2009-01-20 International Business Machines Corporation Achieving cache consistency while allowing concurrent changes to metadata
US7953794B2 (en) 2005-01-14 2011-05-31 Microsoft Corporation Method and system for transitioning between synchronous and asynchronous communication modes
US7720890B2 (en) 2005-02-22 2010-05-18 Microsoft Corporation Ghosted synchronization
US7680835B2 (en) 2005-02-28 2010-03-16 Microsoft Corporation Online storage with metadata-based retrieval
US20080195601A1 (en) * 2005-04-14 2008-08-14 The Regents Of The University Of California Method For Information Retrieval
KR100733054B1 (ko) * 2005-07-27 2007-06-27 주식회사 유텍 구조화 문서의 동기화를 이용한 문서변환 시스템 및문서변환 방법
US7606812B2 (en) * 2005-11-04 2009-10-20 Sun Microsystems, Inc. Dynamic intent log
US7725671B2 (en) * 2005-11-28 2010-05-25 Comm Vault Systems, Inc. System and method for providing redundant access to metadata over a network
CN101005428A (zh) 2006-01-19 2007-07-25 华为技术有限公司 一种检测与解决数据同步冲突的实现方法
US20070198659A1 (en) 2006-01-25 2007-08-23 Lam Wai T Method and system for storing data
US8307119B2 (en) 2006-03-31 2012-11-06 Google Inc. Collaborative online spreadsheet application
BRPI0710236A2 (pt) * 2006-05-03 2011-08-09 Ericsson Telefon Ab L M método e aparelho para a reconstrução de mìdia, produto de programa de computador, aparelho para criar uma representação de mìdia, objeto de dados de ponto de acesso randÈmico, e, representação e documento ou recipiente de mìdia
US20080059539A1 (en) * 2006-08-08 2008-03-06 Richard Chin Document Collaboration System and Method
JP2008077485A (ja) 2006-09-22 2008-04-03 Sharp Corp 通信端末装置および制御プログラム
JP2008165299A (ja) 2006-12-27 2008-07-17 Update It Inc ドキュメント作成システム
US20080163056A1 (en) * 2006-12-28 2008-07-03 Thibaut Lamadon Method and apparatus for providing a graphical representation of content
US7933952B2 (en) 2007-06-29 2011-04-26 Microsoft Corporation Collaborative document authoring
CN100501744C (zh) * 2007-09-29 2009-06-17 腾讯科技(深圳)有限公司 一种文档同步方法及系统
US20090144654A1 (en) * 2007-10-03 2009-06-04 Robert Brouwer Methods and apparatus for facilitating content consumption
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US9436927B2 (en) * 2008-03-14 2016-09-06 Microsoft Technology Licensing, Llc Web-based multiuser collaboration
US9262764B2 (en) * 2008-04-30 2016-02-16 Yahoo! Inc. Modification of content representation by a brand engine in a social network
US8078957B2 (en) 2008-05-02 2011-12-13 Microsoft Corporation Document synchronization over stateless protocols
US8219526B2 (en) 2009-06-05 2012-07-10 Microsoft Corporation Synchronizing file partitions utilizing a server storage model

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10733151B2 (en) 2011-10-27 2020-08-04 Microsoft Technology Licensing, Llc Techniques to share media files
CN102999482A (zh) * 2011-12-12 2013-03-27 微软公司 用于管理协作文档的技术
CN106133766A (zh) * 2014-03-18 2016-11-16 谷歌公司 用于计算、应用和显示文档增量的系统和方法
CN106133766B (zh) * 2014-03-18 2020-03-24 谷歌有限责任公司 用于计算、应用和显示文档增量的系统和方法

Also Published As

Publication number Publication date
CA2720235C (en) 2017-03-21
BRPI0910917A2 (pt) 2015-09-29
WO2009134596A3 (en) 2010-01-21
JP2012168968A (ja) 2012-09-06
US8984392B2 (en) 2015-03-17
AU2009241494B2 (en) 2014-06-26
US20090276698A1 (en) 2009-11-05
MX2010011958A (es) 2010-11-30
JP4977801B2 (ja) 2012-07-18
JP2011520189A (ja) 2011-07-14
CA2720235A1 (en) 2009-11-05
EP2283439A2 (en) 2011-02-16
RU2500023C2 (ru) 2013-11-27
KR20110010598A (ko) 2011-02-01
AU2009241494A1 (en) 2009-11-05
EP2283439B1 (en) 2017-02-15
US20120204090A1 (en) 2012-08-09
HK1154670A1 (en) 2012-04-27
RU2010144794A (ru) 2012-05-10
EP2283439A4 (en) 2013-05-29
JP5376696B2 (ja) 2013-12-25
CN102016835B (zh) 2013-04-03
WO2009134596A2 (en) 2009-11-05
US8078957B2 (en) 2011-12-13

Similar Documents

Publication Publication Date Title
CN102016835B (zh) 通过无状态协议的文档同步
US8756489B2 (en) Method and system for dynamic assembly of form fragments
US7590939B2 (en) Storage and utilization of slide presentation slides
US7546533B2 (en) Storage and utilization of slide presentation slides
CN101253495B (zh) 电子数据快照生成器
CN1790324B (zh) 复杂数据访问
US10417256B2 (en) Synchronization adapter for synchronizing application data
US20060212543A1 (en) Modular applications for mobile data system
US20070168325A1 (en) System and method for workflow processing using a portable knowledge format
CN102142014B (zh) 导入和导出位于元数据注册系统中的元数据的系统和方法
CN101263477B (zh) 用于管理与计算机生成文档相关联的数据的系统和方法
US20070088704A1 (en) System and method for creation, distribution, and utilization of portable knowledge format
CN107203574A (zh) 数据管理和数据分析的聚合
US9904719B2 (en) Propagating computable dependencies within synchronized content items between first and third-party applications
CN114004587B (zh) 一种整机型号自动管控的设计系统及方法
CN102902706A (zh) 扩大报表查看
US8429118B2 (en) Embedding and retrieving data in an application file format
US20070180353A1 (en) Systems and methods for generating documents using multimedia data gathering tools
CN114119795A (zh) 无纸化审核方法、plm系统、平板电脑设备以及存储介质
US20110125710A1 (en) Efficient change tracking of transcoded copies
JP2010061200A (ja) 文書管理システム及び操作履歴表示方法
EP1816572A1 (en) Time sharing managing device, document creating device, document reading device, time sharing managing method, document creating method, and document reading method
US11783120B2 (en) System and process for generating an internet application
US20090094509A1 (en) Document processing device, and document processing method
CN116841961A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1154670

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1154670

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

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

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.