用于对电子文档的协同编辑的自动保存操作的制作方法

文档序号:14958988发布日期:2018-07-18 00:08阅读:225来源:国知局

针对电子文档的共享存储系统的可用性增加了计算机端用户在创建各种电子文档时共享和协同的能力。端用户可以使文档存储在计算机网络(例如互联网)上的共享存储系统中。端用户可以指示该共享存储系统允许将电子文档与该共享存储系统的其他端用户共享。共享存储系统通常在文件系统中具有访问控制组件,该访问控制组件跟踪用户针对每个电子文档具有的访问权。

在两个或更多个端用户之间已经共享了电子文档之后,共享存储系统管理对共享电子文档的访问以确保电子文档的一致性,特别是在对电子文档的协同编辑(即,协同修改)的情况下。协同系统通过跟踪哪些端用户目前正在使用客户端计算机上的端用户应用访问相同的电子文档来管理协同修改。协同系统通常被实现为执行服务器计算机的一个或多个计算机程序,并且在一些实现方式中,可以具有在客户端计算机上执行的组件。

为了修改电子文档,在计算机上运行的端用户应用通常被配置为:在编辑电子文档时自动地保存该电子文档。当电子文档被共享时,在协同修改期间的这种自动保存增加了复杂性。



技术实现要素:

提供本发明内容以便以简化形式介绍一系列概念,这些概念在以下具体实施方式中进一步描述。本发明内容并非旨在标识所要求保护的主题内容的关键特征或必要特征,也并非旨在限定所要求保护的主题内容的范围。

为了管理与在协同编辑期间自动地保存电子文档相关的复杂性,在本地客户端计算机上运行的端用户应用在参与对电子文档的协同编辑时被配置为:基于从协同系统接收到的本地用户活动和外部用户活动二者来自动地保存电子文档。协同系统通过计算机网络实现保存协议,该保存协议保持电子文档在共享存储设备、远程客户端计算机和本地客户端计算机之间的一致性。该保存协议提供与在远程客户端计算机上使用端用户应用编辑电子文档的外部端用户的活动有关的信息。本地客户端计算机基于关于外部用户活动的该信息并基于在本地客户端计算机上使用端用户应用编辑电子文档的端用户的活动来确定保存间隔。本地客户端计算机在设置保存间隔时还可以使用针对本地客户端计算机、服务器计算机、共享存储设备和计算机网络中的一者或多者的性能规范。

通过使用本地用户活动和外部用户活动二者来确定保存间隔,设备上的应用可以适应使用该应用编辑文档的用户的活动以及在其它设备上协同地编辑文档的其他用户的活动二者。通过还考虑性能规范,该应用还可以适应该应用在其上运行的设备和/或正被访问的共享存储系统和/或设备通过其连接到共享存储系统的计算机网络。以此方式确定保存间隔的应用可以支持跨广泛的设备、共享存储系统和网络连接的协同编辑。

在以下具体实施方式中,参考构成该具体实施方式一部分的附图,并且其中通过说明的方式示出了特定的示例性实现方式。在不偏离本公开内容的范围的情况下可以做出其它实现方式。

附图说明

图1是被配置为支持通过多个客户端计算机上的端用户应用对电子文档的协同编辑的示例性计算机系统的框图。

图2是被配置为自动地保存协同编辑的文档的示例性客户端计算机的数据流程图。

图3是描述了用于将电子文档自动地保存到客户端计算机的本地存储设备的操作的示例性实现方式的流程图。

图4a是描述了共享存储系统的客户端应用将对电子文档的更新保存到共享存储系统的操作的示例性实现方式的流程图。

图4b是描述了用于共享存储系统的客户端应用从共享存储系统接收对电子文档的更新的操作的示例性实现方式的流程图。

图5是描述了用于计算保存间隔的操作的示例性实现方式的流程图。

图6是示例性计算机的框图。

具体实施方式

图1是被配置为支持由多个端用户通过多个客户端计算机上的端用户应用对电子文档协同编辑的示例计算机系统的框图。

被配置为支持通过多个端用户应用对电子文档分享和协同修改的计算机系统包括共享存储系统100。共享存储系统100通常包括存储设备102,在该存储设备中数据以通过作为共享存储系统的一部分的文件系统104可访问的数据文件的形式存储。文件系统将服务器计算机108配置为保持关于存储在存储设备102中的每个文件的信息。共享存储系统100可以使用一个或多个通用计算机(例如结合图6所描述的)来实现,并且可以被配置为实现一个或多个服务器计算机。共享存储系统100对计算机网络112上的针对通过文件系统104来访问存储设备102上的文件的请求做出响应。

多个端用户计算机110-1至110-n(本文中也被称为客户端计算机)连接到共享存储系统以便在一个或多个计算机网络112上(例如,互联网或专用计算机网络)通信。端用户计算机110可以是例如结合图6所描述的计算机并且被配置为运行一个或多个应用120的客户端计算机。此类计算机的示例包括但不限于平板计算机、平板触摸计算机、笔记本计算机、台式计算机、在服务器计算机上主存的虚拟台式计算机、手持计算机以及包括计算机和应用的移动电话。

计算机网络112可以是支持端用户计算机与共享存储系统之间的交互的任何计算机网络,例如局域网或广域网(无论是专用和/或公共可访问的),并且可以包括有线和/或无线连接。可以使用任何数量的可用网络通信协议(包括但不限于以太网和tcp/ip)来实现计算机网络。

端用户计算机110包括一个或多个应用120。应用是在端用户计算机上执行的计算机程序,该计算机程序将计算机配置为对用户输入154做出响应以允许端用户交互式地修改电子文档124。电子文档可以包括任何种类的数据,例如文本、静止图像、视频和音频。应用响应于用户经过输入设备的输入,通过以下操作来对电子文档进行处理:选择和合并数据部分以创建电子文档的内容、通过输出设备(未示出)向端用户显示或以其它方式呈现显示数据156(例如包括电子文档的内容的图形用户界面)、以及将电子文档存储在端用户计算机的本地存储设备中的存储器和/或数据文件中。

端用户计算机上可以使用各种各样的应用。应用的示例包括但不限于文字处理应用、演示应用、笔记记录应用、文本编辑应用、绘画应用、图像编辑应用、电子表格应用、桌面出版应用、绘图应用、视频编辑应用以及音频编辑应用。

应用生成存储在数据文件中的电子文档。这种数据文件可以存储在本地存储设备122和/或共享存储系统100中。当端用户在端用户计算机上修改电子文档时,该电子文档也临时存储在端用户计算机上的存储器中。应用还可以在将对电子文档的改变交付给数据文件之前将电子文档临时存储在本地存储设备上的高速缓存中。

对于存储在共享存储系统100中的数据文件中的电子文档,共享存储系统的文件系统104包括对该电子文档的共享状态进行指示的信息。该信息可以具有访问控制的形式,该访问控制指示哪些端用户被授权访问电子文档。文件系统还可以被配置为:对查询做出响应以将该信息提供给另一应用,例如端用户计算机上的应用120。共享存储系统可以向端用户计算机上的应用提供关于电子文档的共享状态的信息,并以多种方式允许对该共享状态的修改。

如果电子文档存储在共享存储系统100中的数据文件中,并且该数据文件在具有修改权限的情况下与至少另一个端用户共享,则两个或更多个客户端计算机上的两个或更多个端用户应用可以访问并尝试修改该电子文档。为了处理该状况,共享存储系统可以包括协同系统106。协同系统106是一种计算机程序,该计算机程序将服务器计算机配置为管理对共享存储系统100中的共享电子文档的同时访问。协同系统106被配置为:存储与目前正在访问电子文档的端用户应用以及相关联的端用户有关的信息。

使用与目前正在访问电子文档的端用户应用和端用户有关的信息,协同系统可以实现用于协调对电子文档的访问以确保电子文档的一致性的多种不同技术中的任何技术。例如,协同系统可以防止一个端用户应用使修改被写入到电子文档的数据文件而同时该数据文件正打开以由另一端用户应用写入。举另一个示例,当正在通过多个端用户应用协同地做出改变时,协同系统可以交互式地合并对电子文档的改变。在这种情况下,举例而言,协同系统可以将从端用户计算机接收到的改变合并到协同系统本地的存储器中,并且随后可以将电子文档的经修改版本发送给具有目前正在访问文档的应用的每个端用户计算机。

在后一示例的一种实现方式中,在服务器计算机与客户端计算机之中实现保存协议。现在参考图2,使用保存协议,客户端计算机250包括用于共享存储的客户端应用200,该客户端应用200定期地从本地存储设备204向服务器计算机发送电子文档的经更新文件202。服务器计算机随后将从一个客户端计算机接收到的电子文档的副本发送到正在使用该电子文档的其它客户端计算机。用于共享存储的客户端应用200从服务器计算机接收电子文档的经更新文件206,并且随后对其本地存储设备204中的副本进行更新。

还如图2中所示出的,客户端计算机250包括用于编辑电子文档的端用户应用252。在图2中所示出的示例中,端用户应用针对每个被编辑的电子文档运行至少两个组件,编辑组件254和保存组件258。组件可以是由运行应用的操作系统管理的任何异步进程。举例而言,这些组件可以被实现为两个异步线程。编辑组件254对用户输入做出响应以编辑存储器中的电子文档,被示出为经更新的文件(存储器中)260。将关于编辑活动(本地用户活动256)的信息提供给保存组件258。保存组件将来自存储器的经更新的电子文档定期地保存到本地存储设备204中,如由虚线箭头261和经更新的文件(来自存储器)262所指示的。在一些实现方式中,保存组件可以将经更新的文件首先保存到本地存储设备中的高速缓存文件以确保数据完整性,并且随后对其本地存储设备中的实际文件进行更新。

保存组件通常具有两个操作:第一操作是保存文档的当前状态;第二操作是设置针对文档将发生下一保存操作的定时间隔。在一种实现方式中,在确定定时间隔之后,保存组件设置与客户端计算机的中断;响应于该中断,保存组件将电子文档保存到本地存储设备,并且随后计算下一时间间隔并再次设置中断。

为了计算针对正由端用户应用254编辑的电子文档发生自动保存操作的时间间隔,保存组件258使用关于本地用户活动256的信息和关于外部用户活动264的信息。保存组件还可以使用关于本地客户端计算机、共享存储系统和/或至共享存储系统的网络连接的其它信息266。可以动态地计算保存间隔,以使得当用户行为在与端用户应用交互时变化时,自动保存操作之间的时间间隔也变化。用于共享存储的客户端应用200还与本地存储设备204交互,以定期地实现与共享存储系统的保存协议,该共享存储系统向服务器计算机发送经更新的文件并从服务器计算机接收对文件的更新,其中对文件的更新是服务器计算机从其它远程客户端计算机接收的。

关于本地用户活动、外部用户活动、本地客户端计算机、共享存储系统和网络连接的信息可以包括若干种参数,这些参数可以影响保存组件所确定的保存间隔。这些参数是计算保存间隔以确定下一自动保存操作何时应该发生的过程的输入。

例如,关于针对电子文档的本地用户活动的信息可以包括但不限于以下各项中的一项或多项:自上次保存之后针对电子文档的用户空闲时间、自上次保存之后针对电子文档的击键数量、自上次保存之后针对电子文档的导航输入、聚焦于或退出聚焦于(focusintoorout)应用的变化、在用户指导下执行的针对电子文档的显式保存操作、关闭电子文档、关闭应用、电子文档的内容的任何变化的大小(数据量)、或者电子文档的改变之间的空闲时间。

关于针对电子文档的外部用户活动的信息可以包括但不限于以下各项中的一项或多项:其他作者对电子文档做出改变的时间、或者对其他作者对电子文档的改变的频率的其他指示、其他作者对电子文档的改变的大小、或者正在编辑电子文档的其他作者的数量。

关于本地客户端计算机的信息可以包括但不限于以下各项中的一项或多项:可用存储器、可用处理器、处理器速度或者本地存储带宽。

关于共享存储系统的信息可以包括但不限于各种存储性能统计数据的一项或多项,例如存储容量、存储带宽或者平均保存时间。

关于网络连接的信息可以包括但不限于以下各项中的一项或多项:当前平均网络传输速率、任何数据传输极限(例如,针对具有有限数据传输的蜂窝数据连接)或者数据传输成本。

现在转到图3,现在将描述流程图,该流程图描述了针对保存组件258(图2)的操作的示例性实现方式。在由单个编辑组件编辑的单个文件以及应用的单个相关联保存组件的上下文中描述该操作。当多个文件打开以用于在一个或多个应用中编辑时,可以针对被编辑的每个文件实例化单独的保存组件。因此,每个文件可以基于与该文件有关的本地用户活动和外部用户活动而被自动保存。

用于保存组件中断的中断处理程序从处理器接收(300)保存组件中断。中断处理程序调用(302)保存组件。保存组件发起(304)对正由编辑组件编辑的文件的自动保存操作。保存组件访问(306)数据,从该数据计算下一保存间隔。该数据至少包括关于本地用户活动和外部用户活动的信息。该数据还可以包括关于本地客户端计算机、共享存储系统和网络连接的信息。保存组件(308)确定下一保存间隔。下面结合图5描述了用于确定下一保存间隔的计算的示例性实现方式。保存组件随后基于所计算的间隔来设置(310)与处理器的保存组件中断。当再次接收(300)保存组件中断时,该过程重复。

现在转到图4a,用于共享存储系统的客户端应用200(图2)响应于由保存组件通过自动保存过程执行的对文件的保存,以转而将文件保存在共享存储系统上。如果文件当前打开以用于在一个或多个远程客户端计算机上编辑,则本地客户端计算机上的该客户端应用也通过共享存储系统接收对文件的更新,并且转而确定应用对文件的更新的顺序,如图4b中所描述的。

在图4a中,客户端应用从本地文件系统接收(400)消息,该消息指示共享文件已进行更新。客户端应用还可以接收(402)或确定对已经改变的数据量进行指示的数据。客户端应用还可以接收(404)与网络连接相关的数据,例如在该连接上当前可用的带宽。客户端应用随后基于已经改变的数据量、并且可选地基于与网络连接相关的数据来确定(406)是否将对数据文件的改变发送给共享存储系统。如果客户端应用确定数据文件应该存储在共享存储系统上,则客户端应用通过计算机网络将数据文件发送(408)给共享存储系统。如果客户端应用确定数据文件的存储可以等待,则客户端应用在将数据文件发送给共享存储系统之前等待(410)一时间段。

在图4b中,用于共享存储系统的客户端应用(图2中的200)通过计算机网络从共享存储系统接收(420)经更新的文件。客户端应用确定(422)如何将对文件的更新与该文件的本地副本同步。客户端应用还生成(424)关于外部用户活动的信息,并将该信息提供(426)给与经更新的文件相关联的保存组件。由客户端应用提供给保存组件的信息可以包括例如,其他作者做出改变的时间、或者对其他作者改变的频率的其它指示、其他作者的改变的大小以及其他作者的数量。保存组件可以从客户端应用提供的信息或者通过检查关于文件系统中经更新的文件的信息来计算关于外部用户活动的一些信息。

现在转到图5,现在将描述保存间隔的计算的示例性实现方式。广泛多样的实现方式是可能的。在该示例性实现方式中,设置初始保存间隔,并且随后基于接收到的针对每个自动保存间隔的信息随时间逐渐调整该初始保存间隔。

因此,在图5中,保存组件初始化(500)保存间隔。可以用多种方式来计算该初始保存间隔。例如,关于本地客户端计算机的信息(例如可用存储器、可用处理器、处理器速度和本地存储带宽)以及关于共享存储系统的信息(例如存储性能统计数据)可以是设置初始保存间隔时的因素。在基于该保存间隔的中断抵达之后,如在502处指示的,保存组件基于可用于保存组件的数据来对初始保存间隔进行更新。类似地,响应于用户输入的显式保存操作可以覆写中断,并且使保存间隔进行更新。保存组件至少基于本地用户活动和外部用户活动来对保存间隔进行更新。例如,基于本地用户活动,可以增加或减小保存间隔(504)。例如,如果本地用户活动为高(例如由空闲时间、击键或改变的数据量所指示的),则减小保存间隔(使保存间隔更短)。如果本地用户活动为低,则可以增加保存间隔(使保存间隔更长)。然而,基于外部用户活动,根据从用于共享存储的客户端应用接收的信息,也可以增加或减小保存间隔(506)。例如,如果客户端应用指示由其他用户通过保存协议的大量活动,甚至如果本地用户活动很小,则可以减小保存间隔(使保存间隔更短)。通常,给定保存间隔、本地用户活动等级和外部用户活动等级,可以增加或减小间隔以便满足保存间隔中整体用户活动的目标速率。保存组件随后使用保存间隔来设置(508)下一中断。

通过在计算针对自动保存操作的保存间隔时利用关于外部用户活动的信息,应用向协同编辑的文档的所有用户提供及时的更新。该应用还适于使用该应用编辑文档的用户的活动和在其它设备上协同编辑文档的其他用户的活动二者。通过还考虑性能规范,该应用还可以适应该应用在其上运行的设备和/或正被访问的共享存储系统和/或设备通过其连接到共享存储系统的计算机网络。以此方式确定保存间隔的应用可以支持跨广泛设备、共享存储系统和网络连接的协同编辑。用于共享存储系统的客户端应用通过使用网络连接信息来确定何时将经更新的文件发送给共享存储系统,还允许网络上的带宽利用与对来自自动保存操作的更新的即时传递相平衡。

现在已描述了示例性实现方式,图6示出了可以实现这种技术以提供对等计算机或对等网络中的索引的计算机的示例。这仅是计算机的一个示例并且并非旨在表明关于这种计算机的使用或功能的范围的任何限制。

计算机可以是各种通用或专用计算硬件配置中的任何一种。可以使用的计算机类型的一些示例包括但不限于个人计算机、游戏控制台、机顶盒、手持或膝上型设备(例如,媒体播放器、笔记本计算机、平板计算机、蜂窝电话、个人数据助理、语音记录器)、服务器计算机、多处理器系统、基于微处理器的系统、可编程消费者电子设备、联网个人计算机、迷你计算机、大型计算机、以及包括计算机或设备的上述类型中的任何类型的分布式计算环境等等。

参考图6,计算机600包括至少一个处理单元602和存储器604。计算机可以具有多个处理单元602和实现存储器604的多个设备。处理单元602可以包括彼此独立操作的一个或多个处理内核(未示出)。计算机中还可以存在另外的协处理单元。存储器604可以包括易失性设备(例如动态随机存取存储器(dram)或其它随机存取存储器设备),以及非易失性设备(例如只读存储器、闪存等等)或者二者的某种组合。一个或多个处理器中还可以存在其它存储设备,例如专用存储器或寄存器。计算机600可以包括另外的存储设备,诸如包括但不限于磁记录的或光学记录的盘或带之类的存储设备(不管是可移除的还是不可移除的)。图6中用可移除存储设备608和不可移除存储设备610示出了这种另外的存储设备。图6中的各种组件通常通过互连机构(例如一个或多个总线630)来互连。

计算机存储介质是其中可以存储数据并且由计算机从可寻址的物理存储位置取回数据的任何介质。计算机存储介质包括易失性和非易失性存储器,以及可移除和不可移除存储设备。存储器604、可移除存储设备608和不可移除存储设备610都是计算机存储介质的示例。计算机存储介质的一些示例是ram、rom、eeprom、闪存或其它存储器技术、cd-rom、数字多功能光盘(dvd)或其它光学或光磁记录存储设备、盒式磁带、磁带、磁盘存储或其它磁存储设备。计算机存储介质和通信介质是互斥的介质类别。

计算机600还可以包括通信连接设备612,该通信连接设备612允许计算机在通信介质上与其它设备进行通信。通信介质通常通过在物质上传播经调制的数据信号(例如载波形或其它传输机构),在有线或无线物质上发送计算机程序指令、数据结构、程序模块或其它数据。术语“经调制的数据信号”表示如下信号,该信号的特征中的一个或多个特征以在该信号中编码信息的方式来设置或改变,从而改变信号的接收设备的配置或状态。举例而言而非限制,通信介质包括有线介质(例如金属或传播电信号的其它导电导线或传播光信号的光纤)和无线介质(例如允许传播信号(例如声学、电磁、电、光、红外线、射频和其它信号)的任何非有线通信介质)。通信连接设备612是与通信介质对接以在通信介质上发送数据并从通信介质接收数据的设备,例如有线网络接口、无线网络接口、射频收发机例如wi-fi、蜂窝、长期演进(lte)或蓝牙等收发机、导航收发机,例如全球定位系统(gps)或全球导航卫星系统(glonass)等收发机。

计算机600可以具有各种输入设备614,例如指向设备、键盘、基于触摸的输入设备、笔、相机、麦克风、传感器(例如加速计、温度计、光传感器等)等等。计算机600可以具有各种输出设备616,例如显示器、扬声器等等。这些设备在本领域公知并且在此不需要详细讨论。各种输入和输出设备可以实现自然用户接口(nui),nui是使得用户能够以“自然”的方式与设备交互而免于诸如鼠标、键盘、遥控装置等输入设备所施加的人为约束的任何接口技术。

nui方法的示例包括依赖于语音识别、触摸和手写识别、屏幕上和靠近屏幕的姿势识别、空中姿势、头部和眼睛跟踪、语音和话音、视觉、触摸、姿势和机器智能的那些方法,并且可以包括使用触摸敏感型显示器、语音和话音识别、目的和目标理解、使用深度相机(例如立体相机系统、红外相机系统和其它相机系统以及这些的任何组合)的运动姿势检测、使用加速计或陀螺仪的运动姿势检测、脸部识别、三维显示器、头部、眼睛和注视跟踪、沉浸式增强现实和虚拟现实系统,所有这些提供更加自然的接口,以及用于使用电场传感电极来感测脑活动的技术(eeg和相关方法)。

各种存储设备610、通信连接设备612、输出设备616和输入设备614可以与计算机的其余部分一起集成到外壳内,或者可以通过计算机上的各种输入/输出接口设备连接,在该情况下,附图标记610、612、614和616可以指示用于连接到设备的接口或者该设备本身,视情况而定。

计算机通常包括操作系统,该操作系统是管理由应用对计算机的各种资源的访问的计算机程序。可以存在多个应用。各种资源包括存储器、存储设备、输入设备和输出设备,例如图6中所示出的显示设备和输入设备。

图1和图2的各种模块和数据结构、图3-图5的流程图以及图6中的计算机上的任何操作系统、文件系统和应用可以使用一个或多个计算机的一个或多个处理单元来实现,该一个或多个计算机具有由该一个或多个处理单元处理的一个或多个计算机程序。计算机程序包括计算机可执行指令和/或计算机解释指令(例如,程序模块),这些指令由计算机中的一个或多个处理单元来处理。通常,这种指令定义例程、程序、对象、组件、数据结构等等,这些例程、程序、对象、组件、数据结构等等在由处理单元处理时指示或配置计算机执行对数据的操作或者配置计算机实现各种组件、模块或数据结构。

替代地或另外地,可以至少部分地由一个或多个硬件逻辑组件来执行本文所描述的各种组件中的一个或多个组件的功能。举例而言而非限制,可以使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑器件(cpld)等等。

相应地,在一个方面中,一种被配置为本地客户端计算机的计算机包括应用中的保存组件,所述保存组件在由所述本地客户端计算机执行时将所述本地客户端计算机配置为在通过所述应用对电子文档的协同编辑期间定期地进行以下操作:从所述本地客户端计算机接收指示本地用户活动的数据,所述本地用户活动指示针对所述电子文档与所述应用的用户交互。所述保存组件还接收至少基于与所述服务器计算机的所述保存协议的、指示关于针对所述电子文档的外部用户交互的外部用户活动的数据。所述保存组件至少基于所述指示所述本地用户活动的数据和所述指示所述外部用户活动的数据来确定间隔。至少基于所确定的间隔,所述保存组件自动地保存在所述应用中编辑的所述电子文档的任何内容。

在另一方面中,一种制品包括:用于并入该保存组件的应用的计算机存储介质和计算机程度指令。

在另一方面中,一种由本地客户端计算机执行的计算机实现过程,所述计算机实现过程用于在使用端用户应用对电子文档的协同编辑期间自动地保存所述电子文档,包括在通过所述应用对所述电子文档进行协同编辑期间定期地进行以下操作:从所述本地客户端计算机接收指示本地用户活动的数据,所述本地用户活动指示针对所述电子文档与所述应用的用户交互。还接收至少基于与服务器计算机的保存协议的、指示关于针对所述电子文档的外部用户交互的外部用户活动的数据。至少基于所述指示所述本地用户活动的数据和所述指示所述外部用户活动的数据来确定间隔。基于所确定的间隔,自动地保存所述电子文档。

在另一方面中,一种用于指示对文档的协同编辑的计算机系统包括服务器计算机,所述服务器计算机包括通过计算机网络的用于电子文档的共享存储设备。一个或多个远程客户端计算机在一个或多个计算机网络上连接到所述服务器计算机。具有用于支持对存储在所述共享存储设备中的电子文档的协同编辑的一个或多个应用的本地客户端计算机也通过计算机网络连接到所述服务器计算机。所述服务器计算机被配置为:通过实现经由所述服务器计算机的保存协议来管理由所述本地客户端计算机上的应用和所述远程客户端计算机上的应用对所述电子文档进行协同编辑。所述本地客户端计算机包括应用中的保存组件,所述保存组件在由所述本地客户端计算机执行时将所述本地客户端计算机配置为在通过所述应用对电子文档的协同编辑期间定期地进行以下操作:从所述本地客户端计算机接收指示本地用户活动的数据,所述本地用户活动指示针对所述电子文档与所述应用的用户交互。所述保存组件还接收至少基于与所述服务器计算机的所述保存协议的、指示关于针对所述电子文档的外部用户交互的外部用户活动的数据。所述保存组件基于所述指示所述本地用户活动的数据和所述指示所述外部用户活动的数据来确定间隔。至少基于所确定的间隔,所述保存组件自动地保存在所述应用中编辑的所述电子文档的任何内容。

在另一方面中,计算机上的应用包括保存组件,所述保存组件包括:用于接收指示针对电子文档的本地用户活动的数据的单元,以及用于接收指示针对所述电子文档的外部用户活动的数据的单元。所述保存组件包括:用于基于至少以所述本地用户活动和所述外部用户活动为基础的保存间隔来自动地保存所述电子文档的单元。

在另一方面中,对电子文档的自动保存包括:接收指示针对所述电子文档的本地用户活动的数据,以及接收指示针对所述电子文档的外部用户活动的数据。所述电子文档基于保存间隔定期地保存,所述保存间隔是至少基于所述本地用户活动和所述外部用户活动来定期确定的。

在前述方面中的任何方面中,所述指示所述本地用户活动的数据可以包括:指示针对所述应用中的所述电子文档的空闲时间的数据。

在前述方面中的任何方面中,所述指示所述本地用户活动的数据可以包括:指示在一时间段期间对所述电子文档的改变量的数据。

在前述方面中的任何方面中,所述指示所述外部用户活动的数据可以包括:基于来自远程客户端计算机的对所述电子文档的改变的数据。

在前述方面中的任何方面中,为了确定所述间隔,响应于在针对所述本地客户端计算机上的所述电子文档的一空闲时间段期间从远程客户端计算机对所述电子文档的频繁改变而计算减小的间隔。

在前述方面中的任何方面中,为了确定所述间隔,根据所述本地客户端计算机的性能规范来计算初始间隔。

在前述方面中的任何方面中,为了确定所述间隔,根据与从所述远程客户端计算机对所述电子文档的改变和针对所述电子文档的本地用户活动有关的信息来对所述初始间隔进行更新。

在前述方面中的任何方面中,所述保存间隔还可以基于与以下各项中的任何一项或多项有关的信息:本地客户端计算机、共享存储系统和/或所述本地客户端计算机与所述共享存储系统之间的网络连接。

在前述方面中的任何方面中,所述保存组件是所述应用的异步线程。所述应用可以具有用于正在所述应用中编辑的每个电子文档的保存组件。所述应用可以具有用于正在所述应用中编辑的每个电子文档的编辑组件。

在前述方面中的任何方面中,可以基于所述保存间隔在所述计算机中设置中断,并且响应于所述中断,可以重新计算所述保存间隔。

在前述方面中的任何方面中,用于所述共享存储系统的客户端应用可以基于与所述客户端计算机与所述共享存储系统之间的网络连接有关的信息,将经更新的文件从所述客户端计算机发送到所述共享存储系统。

前述方面中的任何方面可以被体现为计算机系统、体现为该计算机系统的任何单独组件、体现为由该计算机系统或者该计算机系统的任何单独组件执行的过程、或者体现为包括计算机存储设备的制品,该计算机存储设备中存储计算机程序指令,并且当计算机程序指令在由一个或多个计算机处理时将该一个或多个计算机配置为提供该计算机系统或者该计算机系统的任何单独组件。

应该理解,所附权利要求中限定的主题内容并不一定限制于上面所描述的特定实现方式。上面描述的特定实现方式仅仅是作为示例来公开的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1