CN102999482A - 用于管理协作文档的技术 - Google Patents

用于管理协作文档的技术 Download PDF

Info

Publication number
CN102999482A
CN102999482A CN2012105320914A CN201210532091A CN102999482A CN 102999482 A CN102999482 A CN 102999482A CN 2012105320914 A CN2012105320914 A CN 2012105320914A CN 201210532091 A CN201210532091 A CN 201210532091A CN 102999482 A CN102999482 A CN 102999482A
Authority
CN
China
Prior art keywords
document
record
cancelling
examples
change
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
CN2012105320914A
Other languages
English (en)
Other versions
CN102999482B (zh
Inventor
J·拜勒
M·伍德
B·马歇尔
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 CN102999482A publication Critical patent/CN102999482A/zh
Application granted granted Critical
Publication of CN102999482B publication Critical patent/CN102999482B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • 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/166Editing, e.g. inserting or deleting
    • G06F40/169Annotation, e.g. comment data or footnotes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Document Processing Apparatus (AREA)

Abstract

描述了用于管理协作文档的技术。应用程序可包括:用于渲染协作文档的第一文档实例的文档渲染器组件,用于接收包括协作文档的第二文档实例的改变记录集合的文档更新列表、并且基于这些改变记录修改该第一文档实例的一个或多个结构的属性以形成协作文档的经合并文档实例的文档共享组件,以及用于管理第一文档实例的局部撤消栈、并基于一个或多个改变记录确定在形成了经合并文档实例之后是否要保留该局部撤消栈的一个或多个撤消记录的撤消管理器组件,该局部撤消栈包括撤消记录集合。对其他实施例也予以描述并要求保护。

Description

用于管理协作文档的技术
技术领域
本发明涉及管理文档,尤其涉及用于管理协作文档的技术。
背景技术
在多用户环境中,多个用户能够同时编辑同一文档可能是合乎需要的。常常,当多个用户编辑文档时,可能存在关于如何将不同编辑添加到文档的混乱。例如,有时会编辑文档的多个版本,从而使得难以以平滑和不醒目的方式将这些编辑合并到单个、完整的文档中。此外,多个编辑向单个文档的合并可影响应用程序的其它功能部件,诸如撤消和/或重复功能部件。本发明的改进正是针对这些和其他考虑事项而需要的。
发明内容
下面提供了简化的发明内容,以便提供对此处所描述的一些新颖实施例的基本理解。本发明内容不是广泛的概览,并且它不旨在标识关键/重要元素或描绘本发明的范围。其唯一目的是以简化形式呈现一些概念,作为稍后呈现的更具体实施例的序言。
各个实施例一般涉及设计成管理协作文档的文档协作系统。文档协作系统是允许多个用户同时创建或编辑单个文档、或单个文档的不同版本的系统。由多个用户创建或编辑的单个文档有时称为合著文档或协作文档,从而反映该文档具有多个作者来对其内容或设计作出贡献的事实。
一些实施例具体涉及用于管理针对协作文档的合并和撤消/重复功能部件的技术。在一个实施例中,例如,一种装置可包括处理器电路和在该处理器电路上运行的用于管理具有带多个结构的表示面的协作文档的应用程序。该应用程序可包括可用于渲染协作文档的第一文档实例的文档渲染器组件。该应用程序进一步可包括文档共享组件,该文档共享组件可用于:接收包括针对协作文档的第二文档实例的改变记录集合的文档更新列表,每个改变记录包括关于对第二文档实例的结构作出的修改的信息;以及基于这些改变记录修改第一文档实例的一个或多个结构的属性以形成协作文档的合并文档实例。该应用程序还可包括撤消管理器组件,该撤消管理器组件可用于:管理针对第一文档实例的局部撤消栈,该局部撤消栈包括各自储存用于撤消对第一文档实例的结构作出的修改的信息的撤消记录集合;以及基于一个或多个改变记录确定在形成合并文档实例之后是否要保留局部撤消栈的一个或多个撤消记录。对其他实施例也予以描述并要求保护。
为了实现上述及相关目的,本文结合下面的描述和附图来描述某些说明性方面。这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。结合附图阅读下面的详细描述,其他优点和新颖特征将变得显而易见。
附图说明
图1示出文档协作系统的一实施例。
图2A示出文档协作系统的第一操作环境的一实施例。
图2B示出其中一示例性协作文档适合文档协作系统的第一操作环境的一实施例。
图3示出文档协作系统的第二操作环境的一实施例。
图4示出文档协作系统的第三操作环境的一实施例。
图5示出文档协作系统的第四操作环境的一实施例。
图6示出文档协作系统的第五操作环境的一实施例。
图7示出文档协作系统的第六操作环境的一实施例。
图8示出文档协作系统的第七操作环境的一实施例。
图9示出用于图1的文档协作系统的集中式系统的一实施例。
图10示出用于图1的文档协作系统的分布式系统的一实施例。
图11示出图1的文档协作系统的逻辑流程的一实施例。
图12示出计算体系结构的实施例。
图13示出通信体系结构的实施例。
具体实施方式
各个实施例一般涉及允许多个用户同时创建或编辑单个文档、或单个文档的不同版本的文档协作系统。一些实施例具体涉及增强文档协作系统,这些增强文档协作系统设计成无缝地刷新对协作文档的不同版本的更新,而不会过度地破坏合著者的编辑或查看体验,或者引起对系统资源(例如,计算周期、存储器、网络带宽等)的非必要消耗。在一个实施例中,增强文档协作系统可利用基于结构的冲突规则或逻辑的新颖集合来针对协作文档的多次编辑的合并操作自动地解决冲突,由此减少或消除作者用于解决冲突的人工干预。在一个实施例中,增强文档协作系统可利用合并规则或逻辑的新颖集合来确保合并操作不会使内容或格式变化在协作文档中非预期地出现。在一个实施例中,增强文档协作系统可执行合并器操作,而不会破坏增强文档协作系统所提供的撤消/重复功能部件。结果,各实施例可提高操作者、设备或网络的可承受性、可伸缩性、模块性、可扩展性或互操作性。
通过一般地引用本文中使用的标志和术语,以下的详细描述可在计算机或计算机网络上执行的程序过程方面呈现。本领域技术人员使用这些过程描述和表示来将其工作的实质最有效地传达给本领域的其他技术人员。
过程在此并且一般地构想为是导致期望结果的自相一致操作序列。这些操作是需要对物理量的物理操纵的那些操作。尽管并非必需,但这些物理量通常采用能够在计算机系统中被存储、传输、组合、比较、或以其它方式操纵的电、磁或光信号的形式。原则上出于常见用法的原因将这些信号称作位、值、元素、符号、字符、项、数字等被证明有时是方便的。然而,应当注意,所有这些和类似术语都应与适当的物理量相关联并且仅仅是应用于那些物理量的方便的标签。
此外,所执行的操纵常常被称作诸如添加或比较之类的术语,其通常与操作人员所执行的智力操作相关联。在本文中所述的构成一个或多个实施例的一部分的操作的任一个中,在大部分情况下,操作人员的这种能力并非是必需的、或期望的。相反,这些操作是机器操作。用于执行各个实施例的操作的有用机器包括通用数字计算机或类似设备。
各个实施例还涉及用于执行这些操作的装置或系统。该装置可针对期望用途来具体构建,或者它可包括如由储存在计算机中的计算机程序选择性激活或重新配置的通用计算机。本文中呈现的过程并不固有地与特定计算机或其它装置相关。各个通用机器可与根据本文中示教编写的程序一起使用,或者构建执行所需方法步骤的更专用装置可证明是方便的。从给出的描述中将呈现用于这些机器中的各个机器的所需结构。
现在将参考附图,全部附图中相同的附图标记用于指代相同的元素。在下面的描述中,为了进行说明,阐述了很多具体细节以便提供对本发明的全面理解。然而,显而易见,可以没有这些具体细节的情况下实施各新颖实施例。在其他情况下,以框图形式示出了各个公知的结构和设备以便于描述本发明。意图是涵盖与所要求保护的主题相一致的所有修改、等效方案和替换方案。
图1示出文档协作系统100的框图。在一个实施例中,文档协作系统100可包括具有包含一个或多个组件122-a的应用程序120的计算机实现的文档协作系统100。尽管图1中示出的文档协作系统100具有按照某种拓扑结构的有限数量的元素,但可以理解,文档协作系统100可以视给定实现的需要而包括按照替代拓扑结构的更多或更少元素。
值得指出的是,本文所使用的“a”、“b”、“c”以及类似的标志符是表示任何正整数的变量。由此,例如,如果一实现将值设为a=5,则组件122-a的完整集合可以包括组件122-1、122-2、122-3、122-4以及122-5。各实施例不限于该上下文。
在图1所示的说明性实施例中,文档协作系统100可包括应用程序120。应用程序120可包括能够以允许多个用户同时创建或编辑协作文档102的多用户模式操作的任何软件程序。在一些情形中,应用程序120可以是适合固定或移动计算设备(例如,台式计算机、笔记本计算机、智能电话、平板计算机等)的独立应用,但也可以结合服务器侧应用操作以向机构中的多个用户提供增强功能。在一个实施例中,应用程序120可包括为特定操作系统设计的互相关的客户端应用、服务器应用和web服务的生产力套件的应用程序,诸如用于由美国华盛顿州雷蒙德市的微软公司制作的MICROSOFT
Figure BDA00002566660500041
Figure BDA00002566660500042
OFFICE生产力套件。应用程序120的示例可包括但不限于:MICROSOFT WORD、MICROSOFTMICROSOFT
Figure BDA00002566660500052
MICROSOFT
Figure BDA00002566660500053
MICROSOFT
Figure BDA00002566660500054
MICROSOFT
Figure BDA00002566660500055
MICROSOFT
Figure BDA00002566660500056
MICROSOFT PROJECT、MICROSOFT PUBLISHER、MICROSOFT
Figure BDA00002566660500057
WORKSPACE、MICROSOFT
Figure BDA00002566660500058
MICROSOFT OFFICE INTERCONNECT、MICROSOFTOFFICE PICTURE MANAGER、MICROSOFT SHAREPOINT DESIGNER、以及MICROSOFT LYNC。尽管已提供了应用程序120的特定示例,但可以理解,可通过与所述实施例一致的任何其它适当软件程序来实现应用程序120。
在一个实施例中,例如,应用程序120可包括设计成生成数字剪辑画面(montage)的剪辑画面应用程序。数字剪辑画面可包括集聚分开的元素以形成单个合成元素。例如,数字剪辑画面可包括由若干单独图片构成的合成图片,或包括不同图像的快速序列的视频序列。电子剪辑画面系统已被设计成使用数字内容创建数字剪辑画面,诸如包括从不同web应用提供的不同构成网页的合成网页。有时,构成网页根据中心主题来组织,诸如与搜索引擎所使用的给定搜索项相关的网页、或如储存在浏览器历史中的用户一向访问的网页。由于合成网页的空间限制,构成网页常常是实际网页的低保真度表示。这样,用户可选择构成网页来检索所选网页的更高保真度版本,以进行更深度的查看。
在一个实施例中,剪辑画面应用可使用源自或传达自不同种类数据源的多媒体内容来生成数字剪辑画面。剪辑画面应用可允许用户使用由不同软件程序(诸如先前所述的各种其它类型的应用程序120)生成的内容文件来生成高度定制的数字剪辑画面。数字剪辑画面可包括具有一个或多个图块对象的表示面,这些图块对象包括底层内容文件的定制表示。图块对象可使用从内容文件选择性地提取并根据针对内容文件具体建立的类型定义格式化的信息来构建。该类型定义包括有关内容文件的详细信息,诸如文件扩展、数据模式、格式化控件、嵌入对象、嵌入代码、属性、脚本和其他文件特定信息。该类型定义还包括与要从内容文件提取的信息的类型、所提取信息的格式化、要建立的多个图块对象版本等等有关的规则集合。以此方式,更宽泛范围的内容文件可被用来制作数字剪辑画面,同时构建高度代表性的图块对象,从而向观看者提供有意义的信息。此方法使观看者能容易地细看剪辑画面中的图块对象,在许多图块对象中标识感兴趣的内容文件,以及选择图块对象来快速检索内容文件以供更接近的查看。
应用程序120可包括文档渲染器组件122-1。文档渲染器组件122-1一般可被安排成渲染协作文档102的一个或多个文档实例104-b。文档实例104-b可包括协作文档102的特定例示或版本。不同文档实例104-b可由在不同电子设备上执行的不同版本的应用程序120实现或管理。如图1所示,例如,协作文档102可包括两个不同的文档实例104-1、104-2。应用程序120的文档渲染器组件122-1可渲染协作文档的第一文档实例104-1,以供在实现应用120的本地计算平台的输出设备(诸如举例而言显示器)上呈现。文档实例104-2可通过由与本地计算平台分离开的远程计算平台实现的另一版本的应用程序120渲染。例如,本地和远程计算平台可由以客户端-服务器或点对点架构连接的两个单独的电子设备实现,这些电子设备的示例参照图12给出。
应用程序120可包括文档共享组件122-2。文档共享组件122-2一般可被安排成管理应用程序120的协同编著或协作操作。协同编著操作使两个或多个用户或作者能同时访问单个协作文档102,编辑或格式化不同文档实例104-1、104-2,以及在进行合并或同步操作之后查看对不同文档实例104-1、104-2作出的更新。为了发起协同编著操作,所有作者需要打开储存在支持协同编著的同一位置的同一协作文档102。例如,协作文档102可被储存在MICROSOFTSKYDRIVE服务器上的共享文件夹、MICROSOFT SHAREPOINT服务器上的同一文档库、或一些其它共享网络资源中。
文档共享组件122-2管理对文档实例104-1、104-2执行的许可、更新和同步/合并操作,从而以结构化和可预测的方式控制协同编著操作。如图1所示,文档共享组件122-2可周期性地接收(或检索)文档更新列表110。文档更新列表110可包括协作文档102的文档实例104-2的改变记录集合,其示例更详细地参照图3进行描述。每个改变记录可包括关于对文档实例104-2的结构作出的修改的信息。文档共享组件122-2然后可基于改变记录修改文档实例104-1的一个或多个结构的属性,以形成协作文档102的合并文档实例130。相反,对文档实例104-1作出的改变被捕捉,且作为文档更新列表110被发送至管理文档实例104-2的应用程序120的文档共享组件122-2(其可在单独的设备上)。文档共享组件122-2可基于文档更新列表110中的改变记录集合更新文档实例104-2,并从文档实例104-2形成协作文档102的合并文档实例130。
值得注意的是,合并文档实例130仅仅表示文档实例104-1、104-2之一在合并操作之后的较新状态,而并非必需是新的文档实例104-b(例如104-3)。作者可在合并操作之后继续修改文档实例104-1、104-2,其中文档实例104-1、104-2结合由经合并文档实例130所表示的经合并更新。
撤消/回复保存
应用程序120可包括撤消管理器组件122-3。撤消管理器组件122-3一般可被安排成管理应用程序120的撤消(和/或重复)操作。尽管参照撤消操作描述了一些实施例,但可以理解,这些实施例适用于使用相似原理的重复操作。各实施例不限于该上下文。
撤消是许多计算机程序中推翻对文档执行的最后一个命令或动作(诸如对协作文档102作出的编辑或格式改变)的命令。例如,如果用户将词键入一字处理文档,则该撤消命令将取决于针对撤消命令选择的粒度来擦除该词的一个字母或整个词。撤消命令向用户提供通过单个命令回复至较旧状态、而无需手动去除先前改变(可能会采用多个命令)的一种简单和自动的方式。
重复命令正好是撤消命令的反命令。重复是许多计算机程序中重复对诸如协作文档102的文档执行的最后一个命令或动作的命令。例如,如果用户将词键入一字处理文档,则该重复命令将取决于针对撤消命令选择的粒度来重复该词的一个字母或整个词。重复命令向用户提供通过单个命令前进至较新状态、而无需手动添加改变(可能会采用多个命令)的一种简单和自动的方式。
各种技术被用来根据应用或系统的设计目标管理撤消和重复操作。撤消/重复模型可包括线性撤消/重复模型和非线性撤消/重复模型。在线性模型中,例如,线性撤消被顺序地执行,而非线性撤消是从动作列表中选择的。撤消/重复模型还可包括单用户模型和多用户模型。在单用户模型中,例如,仅单个用户在任何给定时间编著文档,因此仅管理单个撤消/重复栈。然而,在多用户模型中,多个用户可对单个文档作出改变。这在诸如文档协作系统100的文档协作系统中是常见的,其中多个用户同时查看和修改单个协作文档102。在多用户情形中,常常需要多个撤消/重复栈,每个用户或设备一个撤消/重复栈。进一步地,全局和局部撤消/重复命令可在这种环境中实现。如所预期地,多用户模型相对于单用户模型增加了撤消/重复命令的复杂性,因此增加了关联成本。由此,对多用户模型的改进可降低复杂性和关联成本。
为了解决这些和其它问题,撤消管理器组件122-3可以在文档共享组件122-2执行协作文档102的文档实例104-1、104-2之间的合并操作以形成经合并的文档实例130期间或之后保留第一文档实例104-1的局部撤消栈的方式,来管理该局部撤消栈。作为对比,在常规的文档协作系统中,一旦形成经合并文档实例130,合并操作通常就将禁用或删除局部撤消栈,因为该局部撤消栈将不知道通过来自文档实例104-2的编辑而对文档实例104-1作出的任何更新,由此在擦除对文档实例104-1作出的动作时可能产生不可预测的结果。
撤消管理器组件122-3可利用文档共享组件122-2所使用的信息来产生经合并文档实例130,以保留局部撤消栈的完整性。在一个实施例中,例如,撤消管理器组件122-3可管理文档实例104-1的局部撤消栈。局部撤消栈可包括撤消记录集合,每个撤消记录储存用于撤消对文档实例104-1的结构作出的修改的信息集合,其示例参照图5进行描述。撤消管理器组件122-3可基于对一个或多个改变记录的分析,确定在形成经合并文档实例130之后是否要保留局部撤消栈的一个或多个撤消记录。
图2示出文档协作系统100的操作环境200的一个实施例。操作环境200示出渲染协作文档102的文档实例104-1的一示例的文档渲染器组件122-1的操作。在此情形中,假设协作文档102是数字剪辑画面,但是诸实施例不限于此示例。
如图2所示,文档实例104-1可包括具有多个结构204-c的表示面202。结构204-c是表示面202的分立区段、区域或数据单元,其具有可响应于编辑或格式化操作作修改的属性集合。在一个实施例中,每个结构204-c可包括具有可由用户修改、编辑或格式化的属性的一个或多个GUI元素。结构204-c的示例可包括但不限于:数据、内容、内容控件、词、数字、表格、标签、图表、文档、多媒体剪辑、字幕、图像、图形、图片、缩略图、元数据、剪辑画面文档的呈现图块、字处理文档的段落、电子表文档的单元格、记事本应用文档的记事本、联系管理器文档的联系记录、以及任何所需粒度的文档的任何其它分立区段。
用户可利用用户界面组件122-4来编辑各个结构204-c的多媒体内容。用户界面组件122-4可产生各种GUI视图,并且提供用于与GUI视图交互的GUI工具集合。用户可利用GUI工具来添加、删除、或修改由结构204-c呈现的多媒体内容。当应用程序120被实现为例如剪辑画面应用时,用户可使用用户界面组件122-4所提供的GUI工具来添加剪辑画面的呈现图块、从剪辑画面的呈现图块删除一视频剪辑、修改呈现图块中图像字幕的词等等。各实施例不限于该上下文。
用户还可利用用户界面组件122-4来修改结构204-c的各种多媒体内容的格式或样式。该用户界面组件122-4可提供GUI工具,这些GUI工具提供用于修改结构204-c所呈现的多媒体内容的各种属性的各种格式化或样式命令。针对结构204-c的多媒体内容可修改的属性的示例可包括但不限于:字体、字体样式、字体大小、字体颜色、下划线样式、下划线颜色、效果、文字效果、文字填充、文字轮廓、轮廓样式、文字阴影、文字倒影、文字发光、文字边缘、文字三维格式、位置、动画等。各实施例不限于该上下文。
图2B示出与参照图1和2A所述相似、且适合文档协作系统100的协作文档102的文档实例104-1的一特定示例。应用程序120的文档渲染器组件122-1连同用户界面组件122-4可产生用户界面视图220。该用户界面视图220可例如在剪辑画面查看器230上呈现。剪辑画面处理器230可将文档实例104-1呈现为用户界面视图220的一部分。
如图2B所示,文档实例104-1被具体实现为数字剪辑画面240。在此情形中,数字剪辑画面240可包括五个结构204-1、204-2、204-3、204-4和204-5。第一结构204-1是包括多媒体内容的数字剪辑画面240的标为“动物园之旅报告”的多个词形式的字幕。第二结构204-2包括字处理文档的缩略图形式的多媒体内容,该字处理文档包含故事和标为“故事1”的多个词形式的故事标题。第三结构204-3包括水獭图像的缩略图形式的多媒体内容。第四结构204-4包括电子表格文档缩略图形式的多媒体内容,该电子表格文档包含曲线图和标为“乐趣计量器”的多个词形式的曲线图标题。”第五结构204-5包括报纸文章缩略图形式的多媒体内容,该报纸文章包含标为“观察者”的多个词形式的报纸文章发行者。
数字剪辑画面240的结构204-1至204-5的每一个具有可修改的各个属性。例如,用户界面组件122-4可提供允许用户改变结构204-1至204-5之一的多媒体内容的GUI工具集合。例如,用户可利用GUI工具以通过将“故事1”的实际词变成“萨莉的故事、或者将实际词“故事1”的格式或样式修改成粗体或下划线版本“故事1”来编辑第一结构204-1的内容。
图3示出文档协作系统100的操作环境300的一实施例。操作环境300示出用于合并文档实例104-1、104-2以形成协作文档102的经合并文档实例130的文档共享组件122-2的操作。
如先前参照图1所述,文档共享组件122-2可周期性地接收(或检索)文档更新列表110。如图3所示,文档更新列表110可包括协作文档102的文档实例104-2的改变记录306-d的集合。每个改变记录306-d可包括关于对文档实例104-2的结构204-c作出的修改的信息集合。例如,假设文档实例104-2包括两个结构204-1、204-2。第一结构204-1可包括多个词“动物园之旅报告”形式的包含多媒体内容的字幕。第二结构204-2可包括表示实际动物园之旅报告的字处理文档的缩略图。进一步假设用户执行格式化命令以通过改变“动物园之旅报告”中的字母/词的下划线属性以形成“动物园之旅报告”来格式化多媒体内容“动物园之旅报告”。捕捉关于下划线格式化命令的信息的改变记录306-1作为文档更新列表110的一部分被发送至文档共享组件122-2。在一个实施例中,文档更新列表110可经由主存协作文档102的诸如MICROSOFTSHAREPOINT服务器的服务器传送。
应用程序120的文档共享组件122-2可接收文档更新列表110,并处理每一个改变记录306-d以修改改变记录306-d所标识出的文档实例的结构204-1、204-2的任何属性。在处理改变记录306-d的过程中,文档共享组件122-2可从改变记录306-1检索关于对文档实例104-2的结构204-1作出的下划线格式化命令的信息。文档共享组件122-2可使用该检索出的信息来将文档实例104-1的结构204-1的下划线属性从无下划线的“动物园之旅报告”修改成带下划线的“动物园之旅报告”。一旦处理了所有的改变记录306-d,文档共享组件122-2就将文档实例104-1变换成协作文档102的经合并文档实例130。
图4示出文档协作系统100的操作环境400的一实施例。操作环境400示出改变记录306-1的更详细视图。如图4所示,改变记录306-1可包含表示在文档实例104-2中执行的结构204-1的下划线格式化命令的各类信息。第一类信息是结构标识符402。结构标识符402可包括结构204-c(在该示例中为结构204-1)的全局唯一标识符(GUID)。第二类信息是时戳404。该时戳404可指示作者实际对协作文档102的文档实例104-2的结构204-1作出了修改时的日期和/或时间。第三类信息是改变信息406。改变信息406可标识对结构204-1的多媒体内容和/或多媒体内容的属性作出的实际改变、命令或动作,其在该情形中是用于修改结构204-1的下划线属性的格式化命令。
图5示出文档协作系统100的操作环境500的一实施例。操作环境500可示出应用程序120的撤消管理器组件122-3的操作。
如先前参照图1所述,撤消管理器组件122-3可以在文档共享组件122-2执行协作文档102的文档实例104-1、104-2之间的合并操作以形成经合并文档实例130期间和之后保留第一文档实例104-1的局部撤消栈504的方式,来管理该局部撤消栈504。
如图5所示,撤消管理器组件122-3可管理局部撤消栈504。该局部撤消栈可包括撤消记录506-e的集合。每个撤消记录506-e可储存用于撤消对文档实例104-1的结构204-c作出的修改的信息集合。例如,假设文档实例104-1包括两个结构204-1、204-2。第一结构204-1可包括多个词“动物园之旅报告”形式的包含多媒体内容的字幕。第二结构204-2可包括表示实际动物园之旅报告的字处理文档的缩略图。进一步假设用户执行格式化命令以通过改变在时刻t0所示的“动物园之旅报告”中的字母/词的下划线属性以去除下划线并形成在时刻t1所示的“动物园之旅报告”来格式化多媒体内容“动物园之旅报告”。捕捉关于下划线去除命令的信息的撤消记录506-1被储存为撤消管理器组件122-3所管理的局部撤消栈504的一部分。现在假设用户改变了主意,想要将“动物园之旅报告”回复至其在t0时的较旧状态,其中“动物园之旅报告”加以下划线为“动物园之旅报告”。用户可选择用于撤消命令的GUI工具,其对撤消管理器组件122-3产生控制指示以去除撤消记录506-1、检索将“动物园之旅报告”回复至下划线版本“动物园之旅报告”所需的信息。
图6示出文档协作系统100的操作环境600的一实施例。操作环境600示出撤消记录506-1的更详细视图。如图6所示,撤消记录506-1可包含表示在文档实例104-1中执行的结构204-1的下划线格式化命令的各类信息。第一类信息是结构标识符602。结构标识符602可包括结构204-c(在该示例中为结构204-1)的GUID。第二类信息是时戳604。该时戳604可指示作者实际对协作文档102的文档实例104-1的结构204-1作出了修改时的日期和/或时间,在该情形中为t0(例如,东部时间2011年12月1日晚上6:08)。第三类信息是改变信息606。改变信息606可标识对结构204-1的多媒体内容和/或多媒体内容的属性作出的实际改变、命令或动作,其在该情形中是用于修改结构204-1的下划线属性的格式化命令。
改变信息606可取决于给定的撤消实现而变化。撤消管理器组件122-3可实现各种类型的撤消技术,诸如命令模式、备忘录模式等等。各实施例不限于这些示例。
命令模式是可用来实现多级撤消操作的软件设计模式。在面向对象编程中,命令模式是其中对象被用来表示和封装后来调用一方法所需的所有信息的设计模式。此信息包括方法名、拥有该方法的对象、以及方法参数的值。通常与命令模式相关联的三个术语是客户端、调用者和接收者。客户端例示命令对象并提供后来调用该方法所需的信息。调用者判断何时可调用该方法。接收者是包含方法代码的类的一实例。
备忘录模式对捕捉用户动作前应用程序的状态是有用的。这可用于一些撤消实现中所需的状态反转。备忘录模式用两个对象实现:发起者和负责者。发起者是具有内部状态的某对象。负责者将要对发起者动作,但想要能够撤消改变。负责者首先向发起者请求备忘录对象。然后,其进行要做的任何操作(或操作序列)。为了回退至操作前的状态,负责者将备忘录对象返回给发起者。备忘录对象本身是不透明对象(负责者不能或不应该改变的对象)。在使用此模式时,需要注意发起者是否会改变其它对象或资源,因为备忘录模式对单个对象操作。
图7示出文档协作系统100的操作环境700的一实施例。操作环境700示出在基于对一个或多个改变记录506-e的分析、确定在形成经合并文档实例130之后是否要保留局部撤消栈504的一个或多个撤消记录506-e时撤消管理器组件122-3的操作。
撤消管理器组件122-3可利用文档共享组件122-2所使用的信息来产生经合并文档实例130,以保留局部撤消栈504的完整性。在一个实施例中,例如,撤消管理器组件122-3可管理文档实例104-1的局部撤消栈504。撤消管理器组件122-3可基于对一个或多个改变记录306-d的分析,确定在形成经合并文档实例130之后是否要保留局部撤消栈504的一个或多个撤消记录506-e。
如图7所示,撤消管理器组件122-3可确定撤消记录506-1的结构204-1、204-2是否与改变记录306-1的结构204-1、204-2相匹配。撤消管理器组件122-3可从改变记录306-1检索结构标识符402,并从撤消记录506-1检索结构标识符602。撤消管理器组件122-3可比较结构标识符402、602以确定匹配。当不存在匹配时,撤消管理器组件122-3检索下一个改变记录306-2,并重复匹配操作。匹配操作继续,直到已检查了给定文档更新列表110的所有改变记录306-d。假设在任一个改变记录306-d中都不存在匹配结构标识符402、602,则可保留撤消记录506-1作为局部撤消栈504的一部分。撤消管理器组件122-3然后继续与下一撤消记录506-2等等的以上匹配操作,直到已检查了某限定数量(或全部)的撤消记录506-e。
在结构标识符402、602的确匹配的情形中,撤消管理器组件122-3可接着确定:当撤消记录506-1和改变记录306-1具有匹配结构标识符402、602时撤消记录506-1的时戳604和改变记录306-1的时戳404是否都在一同步间隔内,其示例参照图8进行描述。在前一示例中,结构标识符402、602两者都用于结构204-1,由此确认结构标识符402、602之间的匹配。如果时戳404、604在同一同步间隔内,则撤消记录506-1被标记为储存在冲突列表702中的冲突记录706-f集合中的冲突记录706-1。标记操作对有匹配的结构标识符402、602和同一同步间隔内的时戳404、604的所有撤消记录506-e继续。
一旦撤消管理器组件122-3编译冲突列表702的一个或多个冲突记录706-f,撤消管理器组件122-3就可在撤消记录506-e被标记为冲突记录706-f时开始从局部撤消栈504中选择性地去除任何撤消记录506-e。替代地,当撤消记录506-e、或限定数量的撤消记录506-e被标记为冲突记录706-f时,撤消管理器组件122-3可删除整个局部撤消栈504。
对于不具有匹配结构标识符402、602或不具有同一同步间隔内的时戳404、604的那些撤消记录506-e,撤消管理器组件122-3在局部撤消栈504上保留那些撤消记录506-e以供应用程序120的用户使用。以此方式,文档协作系统100可对协作文档102的不同文档实例104-b执行合并操作,而无需使文档协作系统100的应用程序120所提供的撤消/重复功能部件陷入混乱。
图8示出文档协作系统100的操作环境800的一实施例。操作环境800示出在基于对一个或多个改变记录506-e的分析、确定在形成经合并文档实例130之后是否要保留局部撤消栈504的一个或多个撤消记录506-e时撤消管理器组件122-3的操作。
如先前参照图7所述,在结构标识符402、602的确匹配的那些情形中,撤消管理器组件122-3可接着确定:当撤消记录506-1和改变记录306-1具有匹配结构标识符402、602时撤消记录506-1的时戳604和改变记录306-1的时戳404是否都在一同步间隔内。
操作环境800示出同步间隔802。该同步间隔802表示第一用户对结构204-c(例如204-1)作出改变时与第二用户知晓对结构204-c(例如204-1)的改变时之间的时间间隔或时间段。例如,同步间隔802表示文档更新列表110的接收之间的时间间隔。
如图8所示,假设第一用户利用应用程序820在时刻t0将在改变记录306-1中标识出的结构204-1修改为结构标识符402。应用程序820可与应用程序120相同、或与之兼容。应用程序820可以某周期性间隔发送带改变记录306-1的文档更新列表110。进一步假设第二用户利用应用程序120在时刻t1将在撤消记录506-1中标识出的结构204-1修改为结构标识符602。撤消管理器组件122-3可比较结构标识符402、602,并且确定结构标识符402、602两者都表示结构204-1,并且因此相匹配。撤消管理器组件122-3接着可确定撤消记录506-1的时戳604与改变记录306-1的时戳404是否都在同步间隔802内。如图8所示,同步间隔802是边界为t0和t2的时间间隔,其可被表示为时间间隔Ts=t2-t0。在此情形中,结构标识符402、602的确匹配,且时戳404、604两者在同步间隔802内,且因此撤消管理器组件122-3将撤消记录506-1标注为冲突列表702中的冲突记录706-1。
基于结构的冲突规则
除了保留应用程序120、820的撤消/重复功能部件外,文档协作系统100的文档共享组件122-2可利用合并算法,该合并算法实现基于结构的冲突规则或逻辑的新颖集合以针对协作文档102的多次编辑的合并操作自动地解决冲突,由此减少或消除作者用于解决冲突的人工干预。这可由关于比较文档实例104-1、104-2的每一个的改变记录306-d集合执行与撤消管理器组件122-3相似的操作的文档共享组件122-2来完成。
对于一些应用程序120,结构204-c集合的数量和粒度对于显著降低实际合并冲突的可能性而言足够大。在剪辑画面应用中,例如,典型的数字剪辑画面240可具有相当多数量的结构204-c。此外,剪辑画面应用可用来以与纸质剪辑画面相似高度创新且对用户消费有吸引力、且因此更着重于格式化和样式操作而非内容生成和修改的方式,来从其它应用程序所创建的现有多媒体内容生成数字剪辑画面240。因此,相对于实际多媒体内容的编辑操作,剪辑画面应用通常可具有更高频率的格式化和样式操作。此外,与字母或词的单次改变即可显著地更改多媒体内容的含义的对多媒体内容的编辑不同,多媒体内容的格式化或样式的改变对经格式化多媒体内容的深层含义几乎没有影响。出于这些和其它原因,剪辑画面应用可利用基于结构的冲突规则的新颖集合,这些基于结构的冲突规则利用与诸如主要针对创建和编辑多媒体内容的传统文档协作系统(诸如举例而言字处理应用)不同的操作假设集合。
该基于结构的冲突规则的新颖集合的一个主要的深层假设是:在不使用许可或锁定系统的复杂集合的情况下可执行冲突解决。在诸如字处理程序的常规应用程序中,使用针对文档的每一区段进行分配和跟踪的复杂锁定系统来实现协同编著操作。锁定需要跨本地系统和网络系统进行跟踪,由此在几何学上增大了锁定系统的复杂性。锁定系统防止两个用户同时修改同一区段。然而,给定一基于结构的文档(诸如协作文档102),同时编辑的概率急剧降低。由此,可减少或可从应用程序120完全消除复杂锁定系统或许可系统的使用,由此释放先前专用于锁定系统的相当大部分的系统资源。在的确发生同时编辑的那些极少的极端情形中,基于结构的冲突规则可被用于解决这些不频繁的冲突。
文档共享组件122-2可实现基于结构的冲突规则或逻辑的新颖集合以针对协作文档102的多次编辑的合并操作自动地解决冲突。在一个实施例中,文档共享组件122-2可检索包括协作文档102的第一文档实例140-1的改变记录306-d集合的文档更新列表110-1。该文档更新列表110-1可在第一用户对文档实例104-1作出改变时编译,并且周期性地从应用程序120发送至应用程序820。文档共享组件122-2可确定协作文档102的第一文档实例104-1的改变记录306-d的结构204-c与协作文档102的第二文档实例104-2的改变记录306-d的结构204-c是否匹配。第二文档实例104-2的改变记录306-d可从应用程序120从应用程序820接收到的文档更新列表110-2检索。
在匹配结构204-c的情形中,文档共享组件122-2可确定协作文档102的第一文档实例104-1的改变记录306-e的时戳404与协作文档102的第二文档实例104-2的改变记录306-e的时戳404是否都在同步间隔802内。如果为是,则文档共享组件122-2将改变记录标注为冲突记录。
一旦生成了冲突记录,文档共享组件122-2就可尝试使用基于结构的冲突规则集合解析冲突记录,而无需修改对冲突记录中的匹配结构204-c的许可。基于结构的冲突规则被设计成使所有属性无缝地合并,除非完全相同的属性在同一同步间隔802期间被两个用户改变。在该情形中,主存协作文档102的服务器所接收到的最后一个文档更新列表110获胜。
在一个实施例中,基于结构的冲突规则可在表格1中归纳如下:
表格1
Figure BDA00002566660500161
出于表格1的目的,可使用以下定义。编辑可指除对结构204-c内的现有内容格式化外做任何事的一类操作。编辑的示例可包括向现有字幕添加词、向演示图块添加剪辑、向数字剪辑画面240添加演示图块等等。格式化可指涉及修改现有内容的格式或样式(诸如位置、大小、色彩、动画、字体或如前所述的其它格式或样式选项的属性)的一类操作。增进可指涉及向数字剪辑画面240添加新的结构204-c(诸如添加图块、添加剪辑等等)的一类操作。增进被视为编辑操作的超集。去除可指涉及从数字剪辑画面240删除整个结构204-c(诸如去除图块、去除剪辑等等)的一类操作。去除被视为编辑操作的子集。
存在剪辑画面应用的多个例外情形,这些例外情形不可由表格1中所列示的基于结构的冲突规则处理。为了处理例外情形,可利用附加的基于结构的冲突规则,如以下的表格2所示:
表格2
例外情形1-4可被归纳如下。首先,编辑或格式化比去除优先。进一步地,不能删除“进展中”内容。在第一删除示例中,如果第一用户正在编辑或格式化文档实例104-1的演示图块,则该演示图块直到完成了编辑或格式化操作时才能删除。第二用户可从文档实例104-2删除它。然而,在合并操作期间,在文档实例104-1的文档更新列表110中所反映的改变会将其送回。在第二删除示例中,如果第一用户正在编辑文档实例104-1的演示图块的标签,则该标签直到完成了标签操作时才能删除。第二,如果两个用户编辑和/或格式化同一结构204-c,则最后一个到服务器的获胜。第三,如果格式化操作彼此重叠,则最后一个到服务器的获胜。例如,如果第一用户“汤米”将剪辑“A B C”重新排序为“B A C”,而第二用户“珍妮”将这些剪辑重新排序为“A C B”,则最后到达服务器的不管谁的改变获胜。
同样,给定结构204-c的编辑、格式化、去除或增进不应当反转或取消不同结构204-c的编辑、格式化、去除或增进。例如,假设汤米向演示图块添加了一剪辑,而珍妮编辑了同一演示图块的标签。两次编辑都将被添加至该数字编辑画面240。在另一示例中,假设汤米将剪辑“A B C D E”重新排序为“B A CD E”,而珍妮将这些剪辑重新排序为“A B C E D”,一旦两者的改变都到达服务器,则剪辑应当被排序为“B A C E D”。
值得注意的是,在第一用户对剪辑A做任何事而第二用户对剪辑A的字幕做任何事的那些情形中,操作被组合。在此情形中,不存在最后到服务器规则。类似地,在第一用户对演示图块做任何事而第二用户对该演示图块的标签做任何事的那些情形中,操作被组合。在此情形中,不存在最后到服务器规则。
以上表格2给出的例外情形示例可取决于特定应用程序120而改变。剪辑画面应用的例外情形规则的一些更多示例可在以下表格3中示出:
表格3
Figure BDA00002566660500181
Figure BDA00002566660500191
可以理解,对于给定实现可按需使用其它例外情形规则。各实施例不限于该上下文。
值得注意的是,表格3提供“预告”的例外规则。在剪辑画面文档中,预告是提供内容全集的底层内容文件的视觉表示、代理或缩略图。换言之,预告是来自相关联内容文件的信息的简明集合,其以允许内容消费者快速并简单地确定是否对相关联内容文件感兴趣并值得对相关联内容文件的更细致检查的方式来渲染。
基于结构的冲突规则集合的一个优点是文档实例104-1、104-2之间的合并操作不会使内容或格式改变在协作文档102中非预期地显现。文档共享组件122-2允许对文档实例104-1、104-2的动态更新。例如,当一个用户改变文档实例104-1的结构204-c时,这些改变被传播并在文档实例104-2的相同结构204-c中具体化,反之亦然。文档实例104-1中的改变和对文档实例104-2的更新之间的时间间隔是一设计变量,并且在一些情形中可由用户配置。基于结构的冲突规则集合被设计成使所有属性无缝地合并,除非完全相同的属性在同一同步间隔802期间被两个用户改变。由于协作文档102的结构204-c的本质该情形很少发生,对于剪辑画面应用而言尤其如此,如前所述。然而,在此情形的确发生的那些稀有情形中,传播至主存协作文档102的服务器的最后一个改变被用来形成经合并的文档实例130。这偶尔会导致用户改变的丢失,但是提供了合并算法复杂性的实质性降低,并且因此在资源利用上有显著的改进。
图9示出了集中式系统900的框图。集中式系统900可在单个计算实体(诸如完全在客户端设备920内)中实现文档协作系统100的结构和/或操作的部分或全部。
客户端设备902可包括能够为文档协作系统100接收、处理和发送信息的任何电子设备。电子设备的示例可包括但不限于:超移动设备、移动设备、个人数字助理(PDA)、移动计算设备、智能电话、电话、数字电话、蜂窝电话、电子书阅读器、手机、单向寻呼机、双向寻呼机、消息收发设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、手持式计算机、平板计算机、服务器、服务器阵列或服务器场、web服务器、网络服务器、因特网服务器、工作站、小型计算机、大型计算机、超级计算机、网络设备、web设备、分布式计算系统、多处理器系统、基于处理器的系统、消费电子产品、可编程消费电子产品、游戏设备、电视机、数字电视机、机顶盒、无线接入点、基站、用户站、移动用户中心、无线电网络控制器、路由器、集线器、网关、网桥、交换机、机器、或其组合。各实施例不限于该上下文。
客户端设备920可使用处理组件930执行文档协作系统100的处理操作或逻辑。处理组件930可包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可以包括:设备、逻辑设备、组件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可以包括:软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任意组合。确定一实施例是否使用硬件元件和/或软件元件来实现可根据如给定实现所需的任何数量的因素而变化,这些因素诸如所需计算速率、功率级、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
客户端设备920可使用通信组件940来执行文档协作系统100的通信操作或逻辑。客户端设备920可经由通信组件940使用通信信号914通过通信介质912与服务器设备950通信。通信组件940可以实现任何公知的通信技术和协议,如适用于与分组交换网络(例如,诸如因特网等公共网络、诸如企业内联网等专有网络,等等)、电路交换网络(例如,公共交换电话网)、或分组交换网络和电路交换网络的组合(使用合适的网关和转换器)一起使用的技术。通信组件940可以包括各种类型的标准通信元件,如一个或多个通信接口、网络接口、网络接口卡(NIC)、无线电、无线发射机/接收机(收发机)、有线和/或无线通信介质、物理连接器等。作为示例而非限制,通信介质912包括有线通信介质和无线通信介质。有线通信介质的示例可以包括导线、电缆、金属线、印刷电路板(PCB)、背板、交换光纤、半导体材料、双绞线、同轴电缆、光纤、所传播的信号等。无线通信介质的示例可以包括声学、射频(RF)频谱、红外和其他无线介质。
客户端设备920可包括或采用一个或多个客户端程序,所述客户端程序操作以执行根据所描述的各实施例的各方法。在一个实施例中,例如客户端设备920可实现包括应用程序120的文档协作系统100。客户端设备920可从服务器设备950接收具有对文档实例104-2所作改变的文档更新列表110。服务器应用程序1022可从实现管理文档实例104-2的应用程序820的另一客户端设备接收文档更新列表110,如以下参照图10更详细地描述。客户端设备920还可将具有对文档实例104-1所作改变的文档更新列表110发送至服务器设备950以转发至其它客户端设备。应用程序120、820可在周期性基础、非周期性基础、或连续基础上使用推送模型来交换文档更新列表110。进一步地,应用程序120、820可在周期性基础、非周期性基础、或按需基础上使用拉取模型来交换文档更新列表110。当应用程序120、820被实现为MICROSOFT OFFICE产品时,MICROSOFT OFFICE的用户可经由保存在Office数据连接(ODC)文件中的连接规范来访问外部数据。各实施例不限于该上下文。
客户端设备920还可实现web浏览器922。web浏览器922可在处理组件930上执行。web浏览器922可以是诸如MICROSOFT INTERNET
Figure BDA00002566660500211
Figure BDA00002566660500213
Figure BDA00002566660500214
Figure BDA00002566660500216
Figure BDA00002566660500218
的常规超文本查看应用以及其它可购得的web浏览器。通过超文本传输协议安全(HTTPS)、安全套接字层(SSL)、传输安全层(TSL)以及其它安全技术,安全web浏览可供应有128位(或更多)加密。web浏览器922可通过诸如ActiveX、AJAX、(D)HTML、FLASH、Java、JavaScript、web浏览器插件API(例如FireFox、Safari Plug-in以及相似API)等的设施来允许程序组件的执行。web浏览器922可与组件集合中的其它组件(包括其本身)以及相似的设施通信。最频繁地,web浏览器922与信息服务器(例如服务器设备950)、操作系统、集成程序组件(例如插件)等通信。例如,web浏览器922可包含、传达、生成、获取并提供程序组件、系统、用户和数据通信、请求和响应。当然,替代web浏览器922和信息服务器,可开发组合应用来执行两者的相似功能。
用户可利用web浏览器922来访问服务设备950所提供的应用和服务,如参照图10更详细地描述的。例如,web浏览器922可被用来将协作文档102储存在两个应用程序120、820都可访问的网络存储位置中。web浏览器922也可被用来访问基于云的应用和服务,诸如在线文档协作应用、服务和工具。
图10示出了分布式系统1000的框图。分布式系统1000可使文档协作系统100的结构和/或操作的各部分跨多个计算实体分布。分布式系统1000的示例可包括但不限于,客户端-服务器架构、3层架构、N层架构、紧耦合或群集的架构、对等架构、主-从架构、共享数据库架构、以及其他类型的分布式系统。各实施例不限于该上下文。
分布式系统1000可包括如参照图9所述的客户端设备920。该分布式系统1000可进一步包括与客户端设备920相同或相似的客户端设备1020。客户端设备1020可包括或采用一个或多个客户端程序,所述客户端程序操作以执行根据所描述的各实施例的各方法。在一个实施例中,例如,客户端设备1020可实现具有应用程序820(或120)的单独版本的文档协作系统100,该应用程序820(或120)管理文档实例104-2并在由客户端设备1020实现的处理组件930上执行。客户端设备1020可经由客户端设备1020实现的通信组件940使用通信信号1014通过通信介质1012与服务器设备950通信。
分布式系统1000还可包括如参照图9所述的服务器设备950。服务器设备950可与如图9所述的客户端设备920类似。例如,服务器设备950可包括分别与参考图9描述的处理组件930和通信组件940相同或类似的处理组件1030和通信组件1040。此外,服务器设备1050可包括或采用一个或多个服务器程序,所述服务器程序操作以执行根据所描述的各实施例的各方法。
在一个实施例中,例如,服务器设备950可实现服务器应用程序1022和网络数据存储1024。服务器应用程序1022的示例可包括但不限于:MICROSOFT SHAREPOINT SERVER、MICROSOFT
Figure BDA00002566660500231
SERVER、MICROSOFT LYNC SERVER、MICROSOFT OFFICE FORMS SERVER、MICROSOFT OFFICESERVER、MICROSOFT OFFICE PROJECTSERVER、MICROSOFT OFFICE PROJECT PORTFOLIO SERVER、以及MICROSOFT OFFICE
Figure BDA00002566660500233
SERVER。附加地或替代地,服务器应用程序1022和网络数据存储1024可使用各种web技术实现为web服务。web服务的示例可包括但不限于:MICROSOFT WINDOWS MICROSOFT OFFICE WEB APPLICATIONS、MICROSOFT OFFICE LIVE,MICROSOFT LIVE MEETING、MICROSOFT OFFICE PRODUCT WEB SITE、MICROSOFT UPDATE SERVER、以及MICROSOFT OFFICE 365。各实施例不限于这些示例。
服务器应用程序1022可被用来管理在客户端设备920、1020上执行的文档协作系统100之间的网络操作。例如,服务器应用程序1022可主存或管理储存在网络数据存储1024中的一个或多个协作文档102,并将这些协作文档102提供给在各个客户端设备920、1020上执行的文档协作系统100。服务器应用程序1022还可便于文档更新列表110在各个客户端设备920、1020上执行的文档协作系统100之间的交换。例如,协作文档102可被储存在MICROSOFT SKYDRIVE服务器上的共享文件夹、MICROSOFTSHAREPOINT服务器上的同一文档库、或一些其它共享网络资源中。
服务器应用程序1022还可在各个客户端设备920、1020上执行的文档协作系统100准备好开始协同编著操作时协调启动操作。例如,当第一用户使用客户端设备920上的应用程序120打开协作文档102的文档实例104-1时,应用程序120将取一个或多个共享锁定并将其置于编辑者表格中。应用程序120将发起对服务器应用程序1022的查验(ping),以确定任何其它用户是否同时对协作文档102的文档实例104-2工作,诸如在客户机设备1020上执行的应用程序820的第二用户。如果存在第二用户,则应用程序120、820和服务器应用程序1022将开始执行协同编著操作。
对于诸如字处理程序的应用程序120、820的特定实现,文档内锁定的复杂集合由应用程序120、820和服务器应用程序1022发起和管理。在此情形中,不同的信令集合经由介质912、1012传达以在编辑和合并操作期间协调文档内锁定。然而,应用程序120、820的其它实现(诸如剪辑画面应用)不需要这种文档内锁定。在这种情形中,应用程序120可通过向服务器应用程序1022发送周期性更新查验以检查来自应用程序820的任何更新,来使用拉取模型管理协同编著操作。更新查验的频率可基于客户端负载或服务器负载等因素来确定。典型的频率是每15秒一个更新查验。
为了在协同编著操作期间控制或管理更新,应用程序120、820可实现可配置计时器。该可配置计时器可被用来将来自服务器的更新合并至应用程序120、820。该可配置计时器还可被用来仅保存应用程序120、820的“弄脏”或已改变部分,并将其发送至服务器应用程序1022。该可配置计时器可由用户手动地配置、或基于策略自动地配置。在后一情形中,该可配置计时器可基于系统资源配置。值得注意的是,保存/刷新应当是增量和频繁的,因为其有可能需要同步,但是它应当不至于频繁到使应用程序120、820锁定或挂起。
该可配置计时器易受有效地中止其或迫使合并/保存的各种例外。例外的示例可在以下列表中说明如下:
1.不管可配置计时器的状态如何,如果有任何的脏位或更新可用,则当用户有如下动作时执行保存/刷新:
a.移入或移出空间和空间内的“子空间”
i.进入深度视图
ii.退出深度视图
iii.导航至深度视图中的下一项
iv.进入一结构
v.退出一结构
b.添加/去除内容
i.插入新内容
ii.去除内容
iii.添加图块
iv.去除图块
v.提交预告改变
vi.放下要添加或重新安排的内容
vii.添加/去除评论
c.分立的格式化动作
i.改变图块样式
ii.改变主题和所有子主题组件
iii.改变背景
d.点击退出文本区
e.OS挂起和终止
f.应用程序失去焦点
g.解散上下文菜单
2.不管计时器的状态如何,如果有任何的脏位或更新可用,则当用户有如下动作时不执行保存/刷新:
a.处于深度视图中,用户导航至深度视图中的下一项时可执行保存/刷新除外
b.正在显示插入对话
c.点击进入/正在编辑文本区
d.显示上下文菜单
e.拖动内容时
在一些情形中,剪辑画面应用将使合著者超时暂停。在编辑者表格内,每个作者将写出比每小时1次更频繁地刷新的时戳。如果剪辑画面应用下载编辑者表格并找出其时戳大于某限定时间阈值(例如1小时前)的作者,则剪辑画面应用将从编辑者表格去除该作者并将该表格重新上传至服务器应用程序1022。
此处所包括的是一组表示用于执行所公开的体系结构的新颖方面的示例性方法的流程图。尽管出于解释简明的目的,此处例如以流程图或流程图表形式示出的一个或多个方法被示出并且描述为一系列动作,但是可以理解,各方法不受动作的次序的限制,因为根据本发明,某些动作可以按与此处所示并描述的不同的次序和/或与其他动作同时发生。例如,本领域的技术人员将明白并理解,方法可被替换地表示为一系列相互相关联的状态或事件,诸如以状态图的形式。此外,并非方法中所示出的所有动作都是新颖实现所必需的。
图11示出了逻辑流程1100的一个实施例。逻辑流程1100可表示由在此描述的一个或多个实施例所执行的操作中的部分或全部。
在图11所示的说明性实施例中,在框1102,逻辑流1100可检索局部撤消栈的撤消记录集合,每个撤消记录包括用于撤消对协作文档的第一文档实例的结构作出的修改的信息。例如,撤消管理器组件122-3可检索局部撤消栈504的撤消记录506-e的集合。每个撤消记录506-e可包括用于撤消对协作文档102的第一文档实例104-1的结构204-1作出的修改的信息。该信息可包括例如结构标识符602、时戳604、以及改变信息606。
在框1104,逻辑流1100可检索文档更新列表的改变记录集合,每个改变记录包括关于对协作文档的第二文档实例的结构作出的修改的信息。例如,撤消管理器组件122-3可检索文档更新列表110的改变记录306-d的集合,每个改变记录306-d包括关于对协作文档102的第二文档实例104-2的结构204-1作出的修改的信息。该信息可包括例如结构标识符402、时戳404、以及改变信息406。撤消管理器组件122-3可经由服务器设备950所实现的服务器应用程序1022从客户端设备1020所实现的文档协作系统100的应用程序820接收文档更新列表110。
在框1106,逻辑流1100可比较撤消记录集合和改变记录集合。例如,撤消管理器组件122-3可比较撤消记录506-e的集合和改变记录306-d的集合。更具体地,撤消管理器组件122-3可分别比较改变记录306-d和撤消记录506-e的结构标识符402、602。在匹配时,撤消管理器组件122-3可确定匹配记录的时戳404、604是否在同步间隔802内,并且如果为是,则创建冲突列表702的冲突记录706-f。
在框1108,逻辑流1100可基于比较结果确定是否要保留局部撤消栈的一个或多个撤消记录。例如,撤消管理器组件122-3可基于冲突列表702中的冲突记录706-f确定是否要保留局部撤消栈504的一个或多个撤消记录506-e。
图12示出适用于实现上述各实施例的示例性计算体系结构1200的实施例。在一个实施例中,计算架构1200可包括电子设备的一部分或作为电子设备的一部分实现。Examples of an electronic device may include those describedwith reference to FIG.9,among others.各实施例不限于该上下文。
如在本申请中所使用的,术语“系统”和“组件”旨在表示计算机相关的实体,其可以是硬件、硬件和软件的组合、软件、或者执行中的软件,其示例由示例性计算架构1200提供。例如,组件可以是但不限于,在处理器上运行的进程、处理器、硬盘驱动器、多个(光和/或磁存储介质的)存储驱动器、对象、可执行代码、执行的线程、程序、和/或计算机。作为说明,在服务器上运行的应用和服务器两者都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,且组件可以位于一个计算机上和/或分布在两个或更多的计算机之间。此外,组件可以通过各种类型的通信介质可通信地彼此耦合以协调操作。该协调可以涉及单向或双向信息交换。例如,组件可以传递通过通信介质传递的信号形式的信息。该信息可被实现成分配给各条信号线的信号。在这些分配中,每一消息都是信号。然而,其他实施例可另选地采用数据消息。这些数据消息可以跨各个连接发送。示例性连接包括并行接口、串行接口和总线接口。
计算体系结构1200包括各种常见计算元件,如一个或多个处理器、多核处理器、协同处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源,等等。然而,各实施例不限于由计算体系结构1200来实现。
如图12所示,计算体系结构1200包括处理单元1204、系统存储器1206以及系统总线1208。处理器单元可以是可购得的各种处理器中的任何一种,包括但不限于:
Figure BDA00002566660500271
Figure BDA00002566660500272
Figure BDA00002566660500273
Figure BDA00002566660500274
处理器;应用、嵌入和安全处理器;
Figure BDA00002566660500276
Figure BDA00002566660500277
Figure BDA00002566660500278
Figure BDA00002566660500279
处理器;IBM和
Figure BDA000025666605002710
Cell处理器;
Figure BDA000025666605002711
Figure BDA000025666605002712
Core(2)
Figure BDA000025666605002713
Figure BDA000025666605002715
Figure BDA00002566660500282
处理器;以及类似处理器。双微处理器、多核处理器和其它多处理器体系结构也可用作处理单元1204。
系统总线1208向包括但不限于系统存储器1206的各系统组件提供到处理单元1204的接口。系统总线1208可以是若干类型总线结构中的任一种,这些总线结构还可互连到存储器总线(带有或没有存储器控制器)、外围总线、以及使用各类市场上可购买到的总线体系结构中的任一种的局部总线。接口适配器可经由插槽体系结构连接到系统总线1208。示例性的插槽体系结构可包括但不限于:加速图形端口(AGP)、卡总线、(扩展)工业标准体系结构((E)ISA)、微通道体系结构(MCA)、NuBus、外围组件互连(扩展)(PCI(X))、PCI Express、个人计算机存储卡国际联合会(PCMCIA)、等等。
计算架构1200可包括或实现各种制品。制品可包括存储逻辑的计算机可读的存储介质。计算机可读存储介质的示例可包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等。逻辑的示例可包括使用任何合适类型的代码(诸如源代码、已编译代码、已解释代码、可执行代码、静态代码、动态代码、面向对象代码、可视代码等)实现的可执行计算机程序指令。
系统存储器1206可以包括一个或多个更高速的存储器单元的形式的各种类型的计算机可读存储介质,如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、诸如铁电聚合物存储器等聚合物存储器、奥氏存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、诸如独立磁盘冗余阵列(RAID)驱动器等设备阵列、固态存储器设备(例如,USB存储器、固态驱动器(SSD))、和适于存储信息的任何其他类型的介质。在图12示出的所示实施例中,系统存储器1206可包括非易失性存储器1210和/或易失性存储器1212。基本输入/输出系统(BIOS)可以存储在非易失性存储器1210中。
计算机1202可包括一个或多个较低速的存储器单元的形式的各种类型的计算机可读存储介质,包括内置(或外置)硬盘驱动器(HDD)1214、用于读写可移动磁盘1216的磁软盘驱动器(FDD)1218、以及用于读写可移动光盘1220(例如,CD-ROM或DVD)的光盘驱动器1222。HDD 1214、FDD 1216、以及光盘驱动器1220可分别由HDD接口1224、FDD接口1226和光盘驱动器接口1228连接到系统总线1208。用于外置驱动器实现的HDD接口1224可包括通用串行总线(USB)和IEEE 1394接口技术中的至少一种或两者。
驱动器及相关联的计算机可读介质提供了对数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储。例如,多个程序模块可被存储在驱动器和存储器单元1210、1212中,包括操作系统1230、一个或多个应用程序1232、其他程序模块1234和程序数据1236。在一个实施例中,这一个或多个应用程序1232、其他程序模块1234、以及程序数据1236可包括例如文档协作系统100的各应用和/或组件。
用户可以通过一个或多个有线/无线输入设备,例如键盘1238和诸如鼠标1240等定点设备将命令和信息输入到计算机1202中。其他输入设备可包括:红外(IR)遥控器、射频(RF)遥控器、游戏垫、指示笔、读卡器、道尔芯片、指纹读取器、手套、图形板、操纵杆、键盘、视网膜读取器、触摸屏(例如,电容式触摸屏、电阻式触摸屏等)、跟踪球、跟踪垫、传感器、指示设备等等。这些和其他输入设备通常通过耦合到系统总线1208的输入设备接口1242连接到处理单元1204,但也可通过诸如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等其他接口连接。
监视器1244或其他类型的显示设备也经由诸如视频适配器1246等接口连接到系统总线1208。监视器1244可以在计算机1202的内部或外部。除了监视器1244之外,计算机通常包括诸如扬声器、打印机等其他外围输出设备。
计算机1202可使用经由有线和/或无线通信至一个或多个远程计算机(诸如远程计算机1248)的逻辑连接在联网环境中操作。远程计算机1248可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他常见的网络节点,并且通常包括相对于计算机1202描述的许多或所有元件,但为简明起见仅示出了存储器/存储设备1250。所描绘的逻辑连接包括到局域网(LAN)1252和/或例如广域网(WAN)1254等更大网络的有线/无线连接。这种LAN和WAN联网环境常见于办公室和公司,并且方便了诸如内联网等企业范围计算机网络,所有这些都可连接到例如因特网等全球通信网络。
当在LAN联网环境中使用时,计算机1202通过有线和/或无线通信网络接口或适配器1252连接到LAN 1256。适配器1256可以便于到LAN 1252的有线和/或无线通信,并且还可包括其上设置的用于使用适配器1256的无线功能进行通信的无线接入点。
当在WAN联网环境中使用时,计算机1202可包括调制解调器1258,或连接到WAN 1254上的通信服务器,或具有用于诸如通过因特网等通过WAN1254建立通信的其他装置。或为内置或为外置以及有线和/或无线设备的调制解调器1258经由输入设备接口1242连接到系统总线1208。在联网环境中,相对于计算机1202所描绘的程序模块或其部分可以存储在远程存储器/存储设备1250中。将明白,所示网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他手段。
计算机1202可用于使用IEEE 802标准族与有线和无线设备或实体通信,诸如可操作地置于无线通信(例如,通过空中调制技术的IEEE 802.11)的无线设备。这至少包括Wi-Fi(即无线保真)、WiMax和蓝牙TM无线技术等。由此,通信可以如对于常规网络那样是预定义结构,或者仅仅是至少两个设备之间的自组织(ad hoc)通信。Wi-Fi网络使用称为IEEE 802.11x(a、b、n、g等等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可用于将计算机彼此连接、连接到因特网以及连接到有线网络(使用IEEE 802.3相关的介质和功能)。
图13示出适用于实现上述各实施例的示例性通信体系结构1300的框图。通信体系结构1300包括各种常见通信元件,如发射机、接收机、收发机、无线电装置、网络接口、基带处理器、天线、放大器、滤波器、电源,等等。然而,各实施例不限于由通信体系结构1300来实现。
如图13所示,通信体系结构1300包括一个或多个客户端1302和服务器1304。客户端1302可实现客户端设备920、1020。服务器1304可实现服务器设备950。客户端1302和服务器1304可操作地连接到可被用来存储相应客户端1302和服务器1304本地的信息(如cookie和/或相关联的上下文信息)的一个或多个相应客户端数据存储1308和服务器数据存储1310。
客户端1302和服务器1304可以使用通信框架1306在彼此之间传递信息。通信框架1306可实现任何公知的通信技术和协议。通信框架1306可以被实现为分组交换网络(例如,诸如因特网等公共网络、诸如企业内联网等专有网络,等等)、电路交换网络(例如,公共交换电话网)、或分组交换网络和电路交换网络的组合(使用合适的网关和转换器)。
通信框架1306可实现被安排成接受、通信、并连接到通信网络的各种通信接口。网络接口可被看作一种专门形式的输入输出接口。网络接口可采用连接协议,包括但不限于:直接连接、以太网(例如,厚、薄、双绞10/100/1000Base T等等)、令牌环、无线网络接口、蜂窝网络接口、IEEE 802.11a-x网络接口、IEEE 802.16网络接口、IEEE 802.20网络接口等。而且,可使用多个网络接口来与各种通信网络类型结合。例如,可采用多个网络接口来允许通过广播、多播和单播网络通信。如果处理要求规定了更大量的速度和容量,则可类似地使用分布式网络控制器体系结构来汇合(pool)、负载平衡、以及以其他方式增加客户端1302和服务器1304所需的通信带宽。通信网络可以是有线和/或无线通信网络中的任何一个或其组合,所述有线和/或无线通信网络包括但不限于:直接互连、安全定制连接、私有网络(例如,企业内网)、公共网络(例如,因特网)、个人区域网络(PAN)、局域网(LAN)、城域网(MAN)和操作任务即因特网上的节点(OMNI)、广域网(WAN)、无线网络、蜂窝网络、以及其他通信网络。
一些实施例可使用表述“一个实施例”和“一实施例”及其派生词来描述。这些术语意味着结合该实施例描述的特定特征、结构、或特性包括在至少一个实施例中。出现在说明书中各个地方的短语“在一个实施例中”并不必全都指的是同一实施例。此外,一些实施例可使用表述“耦合的”和“连接的”及其派生词来描述。这些术语不必旨在互为同义词。例如,一些实施例可使用术语“连接的”和/或“耦合的”来描述以指示两个或更多元件彼此有直接的物理或电接触。然而,术语“耦合的”还可以意味着两个或更多元件彼此不直接接触,而仍彼此合作或交互。
要强调,本公开的摘要是为了允许读者快速确定本技术公开的性质而提供的。提交摘要的同时要明白,将不用它来解释或限制权利要求的范围或含义。另外,在前面的详细描述中,可以看到,出于将本公开连成一个整体的目的而将各种特征组合在一起放在单个实施例中。此公开方法将不被解释为反映所要求保护的实施例要求比每个权利要求中明确陈述的更多特征的意图。相反,如所附权利要求书所反映,发明性的主题存在于比单个已公开实施例的所有特征少的特征中。从而,据此将所附权利要求结合进详细描述中,其中每个权利要求独立地代表一个单独的实施例。在所附权利要求书中,术语“包括”和“其中”分别用作术语“包含”和“其特征在于”的易懂的英文等价词。而且,术语“第一”、“第二”、“第三”等等只用作标记,而不旨在将数字要求强加于其对象上。
上面描述的包括所公开的体系结构的各示例。当然,描述每一个可以想到的组件和/或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,许多其他组合和排列都是可能的。因此,该新颖体系结构旨在涵盖所有这些落入所附权利要求书的精神和范围内的更改、修改和变化。

Claims (10)

1.一种装置,包括:
处理器电路(930);以及
在所述处理电路上操作以管理具有带多个结构(204)的表示面(202)的协作文档(102)的应用程序(120),所述应用程序包括:
文档渲染器组件(122-1),用于渲染所述协作文档的第一文档实例(104);
文档共享组件(122-2),用于:接收包括针对协作文档的第二文档实例的改变记录(306)的集合的文档更新列表(110),每个改变记录包括关于对所述第二文档实例的结构作出的修改的信息;以及基于所述改变记录修改所述第一文档实例的一个或多个结构的属性以形成所述协作文档的经合并文档实例(130);以及
撤消管理器组件(122-3),用于:管理针对所述第一文档实例的局部撤消栈(504),所述局部撤消栈包括各自储存用于撤消对所述第一文档实例的结构作出的修改的信息的撤消记录(506)的集合;以及基于一个或多个改变记录确定在形成经合并文档实例之后是否要保留所述局部撤消栈的一个或多个撤消记录。
2.如权利要求1所述的装置,其特征在于,还包括以下各项中的至少一个:
储存时戳(604)的撤消记录(506),所述时戳(604)指示当对所述文档的所述第一文档实例的结构作出修改时的日期和时间;以及
储存时戳(404)的改变记录(306),所述时戳(404)指示当对所述文档的所述第二文档实例的结构作出修改时的日期和时间。
3.如权利要求1所述的装置,其特征在于,所述撤消管理器组件用于确定当撤消记录和改变记录具有匹配的结构时所述撤消记录的时戳和所述改变记录的时戳两者是否在一同步间隔(802)内,并且将该撤消记录标记为冲突记录(706)。
4.如权利要求1所述的装置,其特征在于,所述撤消管理器组件用于在所述撤消记录被标记为冲突记录时从所述局部撤消栈去除所述撤消记录。
5.如权利要求1所述的装置,其特征在于,所述文档共享组件用于接收包括所述协作文档的所述第一文档实例的改变记录的集合的文档更新列表;并且用于确定所述协作文档的所述第一文档实例的改变记录的结构是否与所述协作文档的所述第二文档实例的改变记录的结构相匹配。
6.如权利要求1所述的装置,其特征在于,所述文档共享组件用于确定当所述协作文档的所述第一文档实例的改变记录和所述协作文档的所述第二文档实例的改变记录具有匹配结构时所述改变记录的时戳两者是否在一同步间隔内,并将所述改变记录标记为冲突记录;并且用于使用基于结构的冲突规则的集合解析冲突记录,而无需修改对冲突记录中的匹配结构的许可。
7.一种计算机实现的方法,包括:
由处理器电路检索局部撤消栈的撤消记录的集合(1102),每个撤消记录包括用于撤消对协作文档的第一文档实例的结构作出的修改的信息;
检索文档更新列表的改变记录的集合(1104),每个改变记录包括关于对所述协作文档的第二文档实例的结构作出的修改的信息;
比较所述撤消记录的集合和所述改变记录的集合(1106);以及
基于所述比较结果确定是否要保留所述局部撤消栈的一个或多个撤消记录(1108)。
8.如权利要求7所述的计算机实现的方法,其特征在于,包括确定撤消记录的结构是否与改变记录的结构相匹配。
9.如权利要求7所述的计算机实现的方法,其特征在于,包括当一撤消记录被标记为冲突记录时删除所述局部撤消栈。
10.一种包括包含指令的存储介质的制品,所述指令在被执行时使得系统执行如权利要求7、8或9中任一项所述的方法。
CN201210532091.4A 2011-12-12 2012-12-11 用于管理协作文档的技术 Active CN102999482B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/316,763 2011-12-12
US13/316,763 US9053079B2 (en) 2011-12-12 2011-12-12 Techniques to manage collaborative documents

Publications (2)

Publication Number Publication Date
CN102999482A true CN102999482A (zh) 2013-03-27
CN102999482B CN102999482B (zh) 2016-12-21

Family

ID=47928064

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210532091.4A Active CN102999482B (zh) 2011-12-12 2012-12-11 用于管理协作文档的技术

Country Status (2)

Country Link
US (2) US9053079B2 (zh)
CN (1) CN102999482B (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104375848A (zh) * 2013-08-14 2015-02-25 英华达(上海)科技有限公司 信息实时记录系统、方法及实现该功能的计算机程序产品
CN104598301A (zh) * 2014-12-29 2015-05-06 小米科技有限责任公司 协同工作方法及装置
CN104717239A (zh) * 2013-12-12 2015-06-17 鸿合科技有限公司 共享文件的协同编辑方法、服务器及用户端
CN104717241A (zh) * 2013-12-12 2015-06-17 鸿合科技有限公司 文件网络共享方法、终端及服务器
CN104717240A (zh) * 2013-12-12 2015-06-17 鸿合科技有限公司 文件网络共享方法及装置
WO2016034061A1 (zh) * 2014-09-01 2016-03-10 国家电网公司 一种基于数据包的移动数据同步冲突预处理与消解方法
CN106250221A (zh) * 2016-07-28 2016-12-21 福建天泉教育科技有限公司 基于PowerPoint应用对象的插入方法及其系统
CN106708521A (zh) * 2016-12-21 2017-05-24 金蝶软件(中国)有限公司 一种页面元数据的保存方法及装置
CN107430596A (zh) * 2015-02-12 2017-12-01 微软技术许可有限责任公司 输入法编辑器的外部化执行
CN107463395A (zh) * 2016-06-03 2017-12-12 腾讯科技(深圳)有限公司 组件调用方法及装置
CN107766302A (zh) * 2017-09-28 2018-03-06 苏州亿科赛卓电子科技有限公司 一种文档下划线动态调整方法、装置及终端
CN108604225A (zh) * 2015-11-09 2018-09-28 奈克斯莱特有限公司 由多个不同团队进行的协作文档创建
CN109492200A (zh) * 2018-10-26 2019-03-19 天津字节跳动科技有限公司 协同文档还原方法、装置、存储介质及电子设备
CN109597978A (zh) * 2018-11-02 2019-04-09 天津字节跳动科技有限公司 在线电子表格的编辑方法、装置、存储介质及电子设备
CN109670151A (zh) * 2018-12-06 2019-04-23 网易(杭州)网络有限公司 文件合并方法、装置及存储介质
CN110365559A (zh) * 2018-04-09 2019-10-22 摩拜力特有限责任公司 用于安全设备操作的系统和方法
CN112654995A (zh) * 2019-04-08 2021-04-13 谷歌有限责任公司 跟踪在线协作电子文档中的内容归因
WO2021223186A1 (en) * 2020-05-07 2021-11-11 Citrix Systems, Inc. Dynamic region based application operations
CN117709311A (zh) * 2024-02-05 2024-03-15 新励成教育科技股份有限公司 一种基于云端的演讲稿管理方法、装置、设备及存储介质

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904595B2 (en) 2001-01-18 2011-03-08 Sdl International America Incorporated Globalization management system and method therefor
US10657540B2 (en) 2011-01-29 2020-05-19 Sdl Netherlands B.V. Systems, methods, and media for web content management
US9547626B2 (en) 2011-01-29 2017-01-17 Sdl Plc Systems, methods, and media for managing ambient adaptability of web applications and web services
US10580015B2 (en) 2011-02-25 2020-03-03 Sdl Netherlands B.V. Systems, methods, and media for executing and optimizing online marketing initiatives
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
US10733151B2 (en) 2011-10-27 2020-08-04 Microsoft Technology Licensing, Llc Techniques to share media files
US20130185651A1 (en) * 2012-01-18 2013-07-18 Microsoft Corporation People presence detection in a multidocument knowledge base
US20130191451A1 (en) * 2012-01-19 2013-07-25 Microsoft Corporation Presence-based Synchronization
EP2812859A1 (en) * 2012-02-09 2014-12-17 Varonis Systems, Ltd. A method and apparatus for secure enterprise collaboration
US9983759B1 (en) * 2012-02-29 2018-05-29 Google Llc Method and system for sharing virtual collaboration objects
US9928226B2 (en) * 2012-03-20 2018-03-27 Adobe Systems Incorporated Local authoring and editing of cloud-based electronic content
US9430449B2 (en) * 2012-03-30 2016-08-30 Sdl Plc Systems, methods, and media for managing editable previews of webpages
US9773270B2 (en) 2012-05-11 2017-09-26 Fredhopper B.V. Method and system for recommending products based on a ranking cocktail
US20130318424A1 (en) * 2012-05-28 2013-11-28 Ian A. R. Boyd System and method for the creation of an e-enhanced multi-dimensional pictostory using pictooverlay technology
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
US10452740B2 (en) 2012-09-14 2019-10-22 Sdl Netherlands B.V. External content libraries
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
US11308528B2 (en) 2012-09-14 2022-04-19 Sdl Netherlands B.V. Blueprinting of multimedia assets
US11386186B2 (en) 2012-09-14 2022-07-12 Sdl Netherlands B.V. External content library connector systems and methods
US11689602B2 (en) * 2013-03-15 2023-06-27 Ajay JADHAV Object transformations and the persistence of all states during the transformation lifecycle
US9430229B1 (en) * 2013-03-15 2016-08-30 Atlassian Pty Ltd Merge previewing in a version control system
US10621277B2 (en) * 2013-03-16 2020-04-14 Transform Sr Brands Llc E-Pub creator
GB2512373A (en) * 2013-03-28 2014-10-01 Thunderhead Ltd Document tamper detection
US10565167B2 (en) 2013-06-21 2020-02-18 Arroware Industries, Inc. Method and apparatus for peer-to-peer file authoring
US10147054B2 (en) * 2013-07-26 2018-12-04 Salesforce.Com, Inc. Displaying content of an enterprise social network feed on a mobile device
US9817804B2 (en) 2013-09-12 2017-11-14 Wix.Com Ltd. System for comparison and merging of versions in edited websites and interactive applications
AU2014319964B2 (en) * 2013-09-12 2019-01-17 Wix.Com Ltd. System and method for automated conversion of interactive sites and applications to support mobile and other display environments
US8892679B1 (en) 2013-09-13 2014-11-18 Box, Inc. Mobile device, methods and user interfaces thereof in a mobile device platform featuring multifunctional access and engagement in a collaborative environment provided by a cloud-based platform
US9704137B2 (en) * 2013-09-13 2017-07-11 Box, Inc. Simultaneous editing/accessing of content by collaborator invitation through a web-based or mobile application to a cloud-based collaboration platform
GB2518298A (en) 2013-09-13 2015-03-18 Box Inc High-availability architecture for a cloud-based concurrent-access collaboration platform
US10866931B2 (en) 2013-10-22 2020-12-15 Box, Inc. Desktop application for accessing a cloud collaboration platform
US20150178294A1 (en) * 2013-12-19 2015-06-25 International Business Machines Corporation Resolving content editing conflicts arising from concurrent drafts
US10318572B2 (en) * 2014-02-10 2019-06-11 Microsoft Technology Licensing, Llc Structured labeling to facilitate concept evolution in machine learning
US9703801B2 (en) 2014-03-25 2017-07-11 Alfresco Software, Inc. Synchronization of client machines with a content management system repository
US9817805B1 (en) * 2014-06-24 2017-11-14 Google Inc. Systems and methods for providing a collaborative document environment
US10216714B2 (en) 2014-09-30 2019-02-26 Apple Inc. Text character and formatting changes in collaborative contexts
US11244105B2 (en) * 2014-12-04 2022-02-08 Google Llc Efficient copy paste in a collaborative spreadsheet
US10198411B2 (en) * 2015-05-01 2019-02-05 Microsoft Technology Licensing, Llc Storing additional document information through change tracking
US11010539B2 (en) 2015-06-30 2021-05-18 Microsoft Technology Licensing, Llc State-specific commands in collaboration services
CN104965816B (zh) * 2015-07-22 2018-01-16 网易(杭州)网络有限公司 一种数据表的编辑方法及装置
US10733363B1 (en) * 2015-10-20 2020-08-04 Imdb.Com, Inc. Edition difference visualization
US10614167B2 (en) 2015-10-30 2020-04-07 Sdl Plc Translation review workflow systems and methods
US10078627B2 (en) 2015-11-20 2018-09-18 Microsoft Technology Licensing, Llc Collaboration cards for communication related to a collaborated document
SE544816C2 (en) * 2015-11-25 2022-11-29 Teamifier Inc Apparatuses for graphically representing a reconfigured portion of a directed acyclic graph as a hierarchical tree structure
US10289282B2 (en) 2015-12-21 2019-05-14 Microsoft Technology Licensing, Llc While you were away experience
US10769365B2 (en) 2015-12-29 2020-09-08 Microsoft Technology Licensing, Llc Document history interface
US10755029B1 (en) 2016-01-05 2020-08-25 Quirklogic, Inc. Evaluating and formatting handwritten input in a cell of a virtual canvas
US10324618B1 (en) * 2016-01-05 2019-06-18 Quirklogic, Inc. System and method for formatting and manipulating digital ink
CN107453831B (zh) * 2016-05-31 2019-07-19 阿里巴巴集团控股有限公司 分布式交易系统的时间同步方法和装置
US20180074775A1 (en) * 2016-06-06 2018-03-15 Quirklogic, Inc. Method and system for restoring an action between multiple devices
FI20175570A1 (en) * 2017-06-19 2018-12-20 Trimble Solutions Corp Printing History Log Information
US10721084B2 (en) * 2017-09-25 2020-07-21 Microsoft Technology Licensing, Llc Providing a private mode in asynchronous collaboration for a synchronous collaboration environment
US11741300B2 (en) 2017-11-03 2023-08-29 Dropbox, Inc. Embedded spreadsheet data implementation and synchronization
US10572583B2 (en) 2017-11-22 2020-02-25 International Business Machines Corporation Merging documents based on document schemas
US10387153B2 (en) 2017-11-27 2019-08-20 Oracle International Corporation Synchronizing a set of code branches
RU2673019C1 (ru) * 2017-12-14 2018-11-21 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ обеспечения доступа к разделяемому ресурсу в распределенной вычислительной системе
US11270069B1 (en) * 2018-04-30 2022-03-08 InVisionApp Inc. Collaboration synchronization across devices
US11244284B2 (en) 2018-05-31 2022-02-08 Microsoft Technology Licensing, Llc Document status management system
US11240320B2 (en) 2018-11-16 2022-02-01 Microsoft Technology Licensing, Llc System and method for managing notifications of document modifications
CN109741165A (zh) * 2018-12-18 2019-05-10 中信百信银行股份有限公司 一种金融系统的数据处理方法及电子设备
CN109829143B (zh) * 2018-12-28 2023-06-20 陈德芹 一种在线表格汇总方法及装置
US10929814B2 (en) 2019-05-02 2021-02-23 Microsoft Technology Licensing, Llc In-context display of out-of-context contact activity
US11244100B2 (en) 2019-05-08 2022-02-08 Microsoft Technology Licensing, Llc Visualizing changes based on document scope
JP2021039624A (ja) * 2019-09-04 2021-03-11 富士ゼロックス株式会社 情報処理装置および情報処理システム
CN111159441B (zh) * 2019-12-25 2023-07-25 新方正控股发展有限责任公司 图片编辑方法、图片编辑装置和计算机可读存储介质
US11388209B2 (en) * 2020-03-19 2022-07-12 DTEN, Inc. Interactive broadcast
CN111913631B (zh) * 2020-06-30 2022-03-25 维沃移动通信有限公司 内容编辑方法、装置和电子设备
US11683354B2 (en) * 2021-08-25 2023-06-20 Adobe Inc. Systems for resolving conflicts in collaborative digital content editing
CN113905267B (zh) * 2021-08-27 2023-06-20 北京达佳互联信息技术有限公司 一种字幕编辑方法、装置、电子设备及存储介质
CN114237464B (zh) * 2021-11-11 2022-11-04 荣耀终端有限公司 一种数据共享方法及电子设备
US20230195689A1 (en) * 2021-12-22 2023-06-22 Atlassian Pty Ltd. Managing archiving and unarchiving operations at a content collaboration system
US12007843B2 (en) * 2022-09-06 2024-06-11 Oracle International Corporation Configurable entity-based undo and redo operations

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1489075A (zh) * 2002-10-12 2004-04-14 鸿富锦精密工业(深圳)有限公司 多点协同作业系统及方法
US20100281362A1 (en) * 2009-04-29 2010-11-04 Microsoft Corporation Maintaining Undo and Redo Capability across Metadata Merges
CN102016835A (zh) * 2008-05-02 2011-04-13 微软公司 通过无状态协议的文档同步
CN102016834A (zh) * 2008-04-28 2011-04-13 微软公司 冲突解决
CN102110083A (zh) * 2009-12-28 2011-06-29 北大方正集团有限公司 支持在线以及离线文档编辑的客户端装置及方法
CN102262620A (zh) * 2011-08-04 2011-11-30 无锡永中软件有限公司 一种文档协作方法

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5321750A (en) 1989-02-07 1994-06-14 Market Data Corporation Restricted information distribution system apparatus and methods
US5339392A (en) 1989-07-27 1994-08-16 Risberg Jeffrey S Apparatus and method for creation of a user definable video displayed document showing changes in real time data
US5297032A (en) 1991-02-01 1994-03-22 Merrill Lynch, Pierce, Fenner & Smith Incorporated Securities trading workstation
US5432932A (en) 1992-10-23 1995-07-11 International Business Machines Corporation System and method for dynamically controlling remote processes from a performance monitor
US5819284A (en) 1995-03-24 1998-10-06 At&T Corp. Personalized real time information display as a portion of a screen saver
US6807558B1 (en) 1995-06-12 2004-10-19 Pointcast, Inc. Utilization of information “push” technology
GB9604987D0 (en) * 1996-03-08 1996-05-08 Ibm Data management system and method for replicated data
US5890181A (en) * 1996-11-14 1999-03-30 Kurzwell Applied Intelligence, Inc. System and method for remotely grouping contents of an action history stack
US5959621A (en) 1996-12-06 1999-09-28 Microsoft Corporation System and method for displaying data items in a ticker display pane on a client computer
US6216141B1 (en) 1996-12-06 2001-04-10 Microsoft Corporation System and method for integrating a document into a desktop window on a client computer
US6067551A (en) * 1997-11-14 2000-05-23 Microsoft Corporation Computer implemented method for simultaneous multi-user editing of a document
WO1999026127A1 (en) 1997-11-14 1999-05-27 Avesta Technologies, Inc. System and method for displaying multiple sources of data in near real-time
US6311058B1 (en) 1998-06-30 2001-10-30 Microsoft Corporation System for delivering data content over a low bit rate transmission channel
US6449638B1 (en) 1998-01-07 2002-09-10 Microsoft Corporation Channel definition architecture extension
US6278448B1 (en) 1998-02-17 2001-08-21 Microsoft Corporation Composite Web page built from any web content
US6192378B1 (en) * 1998-05-13 2001-02-20 International Business Machines Corporation Method and apparatus for combining undo and redo contexts in a distributed access environment
US6832355B1 (en) 1998-07-28 2004-12-14 Microsoft Corporation Web page display system
US6188405B1 (en) 1998-09-14 2001-02-13 Microsoft Corporation Methods, apparatus and data structures for providing a user interface, which exploits spatial memory, to objects
US6523134B2 (en) * 1998-09-18 2003-02-18 International Business Machines Corporation Selective undo
US6510553B1 (en) 1998-10-26 2003-01-21 Intel Corporation Method of streaming video from multiple sources over a network
US6456334B1 (en) 1999-06-29 2002-09-24 Ati International Srl Method and apparatus for displaying video in a data processing system
US6976210B1 (en) 1999-08-31 2005-12-13 Lucent Technologies Inc. Method and apparatus for web-site-independent personalization from multiple sites having user-determined extraction functionality
US7028264B2 (en) 1999-10-29 2006-04-11 Surfcast, Inc. System and method for simultaneous display of multiple information sources
US7987431B2 (en) 1999-10-29 2011-07-26 Surfcast, Inc. System and method for simultaneous display of multiple information sources
US6724403B1 (en) 1999-10-29 2004-04-20 Surfcast, Inc. System and method for simultaneous display of multiple information sources
AU2001287421A1 (en) * 2000-08-21 2002-03-04 Thoughtslinger Corporation Simultaneous multi-user document editing system
EP1204048A1 (en) * 2000-11-03 2002-05-08 Sun Microsystems, Inc. Method and apparatus for handling scenarios in spreadsheet documents
US6772154B1 (en) 2000-11-16 2004-08-03 Sun Microsystems, Inc. Implementation of nested databases using flexible locking mechanisms
US7370269B1 (en) * 2001-08-31 2008-05-06 Oracle International Corporation System and method for real-time annotation of a co-browsed document
US7823060B2 (en) * 2002-06-07 2010-10-26 Microsoft Corporation Undo/redo architecture across multiple files
US20040177343A1 (en) * 2002-11-04 2004-09-09 Mcvoy Lawrence W. Method and apparatus for understanding and resolving conflicts in a merge
KR100462839B1 (ko) * 2002-12-24 2004-12-23 한국전자통신연구원 모바일 환경에서의 이동 클라이언트와 서버간의 데이터동기화 및 갱신 충돌 해결 방법
CA2422176C (en) * 2003-03-14 2009-07-21 Ibm Canada Limited - Ibm Canada Limitee Method and apparatus for interrupting updates to a database to provide read-only access
US7979804B1 (en) * 2003-04-28 2011-07-12 Adobe Systems Incorporated Cross-view undo/redo for multi-view editing environments
US7207034B2 (en) * 2003-06-23 2007-04-17 Microsoft Corporation Undo infrastructure
US7143117B2 (en) * 2003-09-25 2006-11-28 International Business Machines Corporation Method, system, and program for data synchronization by determining whether a first identifier for a portion of data at a first source and a second identifier for a portion of corresponding data at a second source match
US7707210B2 (en) 2003-12-18 2010-04-27 Xerox Corporation System and method for multi-dimensional foraging and retrieval of documents
US20050177617A1 (en) * 2003-12-23 2005-08-11 Intel Corporation Conflict resolution during data synchronization
US7818679B2 (en) * 2004-04-20 2010-10-19 Microsoft Corporation Method, system, and apparatus for enabling near real time collaboration on an electronic document through a plurality of computer systems
US8819569B2 (en) 2005-02-18 2014-08-26 Zumobi, Inc Single-handed approach for navigation of application tiles using panning and zooming
US7792788B2 (en) * 2005-03-04 2010-09-07 Microsoft Corporation Method and system for resolving conflicts operations in a collaborative editing environment
US7499955B2 (en) * 2005-03-30 2009-03-03 Microsoft Corporation System and method for undoing application actions using inverse actions with atomic rollback
US7933632B2 (en) 2005-09-16 2011-04-26 Microsoft Corporation Tile space user interface for mobile devices
US20070088729A1 (en) * 2005-10-14 2007-04-19 International Business Machines Corporation Flexible history manager for manipulating data and user actions
GB0610116D0 (en) * 2006-05-20 2006-06-28 Ibm A method, apparatus and computer program for collaborative editing of a document
US8407670B2 (en) * 2006-06-02 2013-03-26 Microsoft Corporation Collaborative code conflict detection, notification and resolution
US8127278B2 (en) * 2006-09-28 2012-02-28 Sap Ag System and method for extending legacy applications with undo/redo functionality
US9207933B2 (en) * 2006-10-10 2015-12-08 International Business Machines Corporation Identifying authors of changes between multiple versions of a file
US20080177782A1 (en) 2007-01-10 2008-07-24 Pado Metaware Ab Method and system for facilitating the production of documents
US7900142B2 (en) * 2007-01-15 2011-03-01 Microsoft Corporation Selective undo of editing operations performed on data objects
US7949938B2 (en) * 2007-03-20 2011-05-24 International Business Machines Corporation Comparing and merging multiple documents
US8239760B2 (en) * 2007-06-26 2012-08-07 Sap Ag Multi-user document editing system and method
US7937663B2 (en) * 2007-06-29 2011-05-03 Microsoft Corporation Integrated collaborative user interface for a document editor program
US7941399B2 (en) * 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US7797274B2 (en) 2007-12-12 2010-09-14 Google Inc. Online content collaboration model
US8825758B2 (en) * 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US20090249224A1 (en) * 2008-03-31 2009-10-01 Microsoft Corporation Simultaneous collaborative review of a document
US8417666B2 (en) 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
US8346768B2 (en) * 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
US8589815B2 (en) 2010-03-10 2013-11-19 Microsoft Corporation Control of timing for animations in dynamic icons

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1489075A (zh) * 2002-10-12 2004-04-14 鸿富锦精密工业(深圳)有限公司 多点协同作业系统及方法
CN102016834A (zh) * 2008-04-28 2011-04-13 微软公司 冲突解决
CN102016835A (zh) * 2008-05-02 2011-04-13 微软公司 通过无状态协议的文档同步
US20100281362A1 (en) * 2009-04-29 2010-11-04 Microsoft Corporation Maintaining Undo and Redo Capability across Metadata Merges
CN102110083A (zh) * 2009-12-28 2011-06-29 北大方正集团有限公司 支持在线以及离线文档编辑的客户端装置及方法
CN102262620A (zh) * 2011-08-04 2011-11-30 无锡永中软件有限公司 一种文档协作方法

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104375848B (zh) * 2013-08-14 2017-06-16 英华达(上海)科技有限公司 信息实时记录系统及方法
CN104375848A (zh) * 2013-08-14 2015-02-25 英华达(上海)科技有限公司 信息实时记录系统、方法及实现该功能的计算机程序产品
CN104717240A (zh) * 2013-12-12 2015-06-17 鸿合科技有限公司 文件网络共享方法及装置
CN104717239A (zh) * 2013-12-12 2015-06-17 鸿合科技有限公司 共享文件的协同编辑方法、服务器及用户端
CN104717241A (zh) * 2013-12-12 2015-06-17 鸿合科技有限公司 文件网络共享方法、终端及服务器
WO2016034061A1 (zh) * 2014-09-01 2016-03-10 国家电网公司 一种基于数据包的移动数据同步冲突预处理与消解方法
CN104598301A (zh) * 2014-12-29 2015-05-06 小米科技有限责任公司 协同工作方法及装置
CN107430596A (zh) * 2015-02-12 2017-12-01 微软技术许可有限责任公司 输入法编辑器的外部化执行
CN108604225A (zh) * 2015-11-09 2018-09-28 奈克斯莱特有限公司 由多个不同团队进行的协作文档创建
CN108604225B (zh) * 2015-11-09 2022-05-24 奈克斯莱特有限公司 由多个不同团队进行的协作文档创建
CN107463395A (zh) * 2016-06-03 2017-12-12 腾讯科技(深圳)有限公司 组件调用方法及装置
CN107463395B (zh) * 2016-06-03 2020-10-09 腾讯科技(深圳)有限公司 组件调用方法及装置
CN106250221A (zh) * 2016-07-28 2016-12-21 福建天泉教育科技有限公司 基于PowerPoint应用对象的插入方法及其系统
CN106250221B (zh) * 2016-07-28 2019-06-11 福建天泉教育科技有限公司 基于PowerPoint应用对象的插入方法及其系统
CN106708521A (zh) * 2016-12-21 2017-05-24 金蝶软件(中国)有限公司 一种页面元数据的保存方法及装置
CN106708521B (zh) * 2016-12-21 2020-07-17 金蝶软件(中国)有限公司 一种页面元数据的保存方法及装置
CN107766302A (zh) * 2017-09-28 2018-03-06 苏州亿科赛卓电子科技有限公司 一种文档下划线动态调整方法、装置及终端
CN110365559B (zh) * 2018-04-09 2021-10-01 摩拜力特有限责任公司 用于安全设备操作的系统和方法
CN110365559A (zh) * 2018-04-09 2019-10-22 摩拜力特有限责任公司 用于安全设备操作的系统和方法
CN109492200A (zh) * 2018-10-26 2019-03-19 天津字节跳动科技有限公司 协同文档还原方法、装置、存储介质及电子设备
CN109597978A (zh) * 2018-11-02 2019-04-09 天津字节跳动科技有限公司 在线电子表格的编辑方法、装置、存储介质及电子设备
CN109670151A (zh) * 2018-12-06 2019-04-23 网易(杭州)网络有限公司 文件合并方法、装置及存储介质
CN112654995A (zh) * 2019-04-08 2021-04-13 谷歌有限责任公司 跟踪在线协作电子文档中的内容归因
WO2021223186A1 (en) * 2020-05-07 2021-11-11 Citrix Systems, Inc. Dynamic region based application operations
US11216715B2 (en) 2020-05-07 2022-01-04 Citrix Systems, Inc. Dynamic region based application operations
CN113906430A (zh) * 2020-05-07 2022-01-07 思杰系统有限公司 基于动态区域的应用操作
US11704532B2 (en) 2020-05-07 2023-07-18 Citrix Systems, Inc. Dynamic region based application operations
CN117709311A (zh) * 2024-02-05 2024-03-15 新励成教育科技股份有限公司 一种基于云端的演讲稿管理方法、装置、设备及存储介质
CN117709311B (zh) * 2024-02-05 2024-05-03 新励成教育科技股份有限公司 一种基于云端的演讲稿管理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
US9977715B2 (en) 2018-05-22
US9053079B2 (en) 2015-06-09
CN102999482B (zh) 2016-12-21
US20130151940A1 (en) 2013-06-13
US20150269033A1 (en) 2015-09-24

Similar Documents

Publication Publication Date Title
CN102999482A (zh) 用于管理协作文档的技术
CN102722519B (zh) 使用增强的内容控件来创建结构化文档模板的技术
CN101983380B (zh) 文档的同步协作审阅
CN103238126B (zh) 用于演示创建的系统和方法
Kansa et al. Open Archaeology: We all know that a 14 is a sheep: data publication and professionalism in archaeological communication
CN102541998B (zh) 业务智能和报表故事板
CN102915319A (zh) 用于信息电子集聚的技术
US20070162953A1 (en) Media package and a system and method for managing a media package
CN102902786A (zh) 管理并查看所跟踪的内容的技术
CN103020025A (zh) 用于文档内容的自动动画化的技术
CN102077187A (zh) 呈现动态文件夹
Hinton et al. Exploring the digital commons: an approach to the visualisation of large heritage datasets
CN103246748A (zh) 自动管理文件描述符的技术
Huvila Archaeology and archaeological information in the digital society
CN101652775A (zh) 在用户界面中映射逻辑资产和物理资产的系统和方法
Hay Enterprise Model Patterns: Describing the World (UML Version)
Pitsillides et al. Museum of the self and digital death: An emerging curatorial dilemma for digital heritage
JP2008065374A (ja) 情報共有システムの情報連携プログラム
McConchie Mapping mashups: Participation, collaboration and critique on the World Wide Web
Koutamanis Building Information-Representation and Management: Principles and Foundations for the Digital Era
KR100856132B1 (ko) 웹 대상물의 관리 시스템
Dougherty Application of optimization methods to oilfield problems: proved, probable, possible
McKenzie et al. Integrating witsml, prodml, and resqml standards for cross-domain workflows
Heer Supporting asynchronous collaboration for interactive visualization
Reilly Digital image users and reuse: Enhancing practitioner discoverability of digital library reuse based on user file naming behavior

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150727

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

Effective date of registration: 20150727

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant