富客户端和浏览器客户端之间的电子表格协作的制作方法

文档序号:6478815阅读:150来源:国知局
专利名称:富客户端和浏览器客户端之间的电子表格协作的制作方法
富客户端和浏览器客户端之间的电子表格协作背景 电子表格应用程序是提供用于输入、组织、管理、查看、存储和搜索数据的便利的、 简单的和直观的方式的常用程序。常规的电子表格应用程序的一个缺点是它们通常不允许 多个用户同时在单个电子表格文件上协作。相反,在传统的电子表格中,当一个用户打开文 件时,该文件变为“锁定的”,这样使得试图打开该文件的任何其他的用户仅能以只读方式 这么做,意味着任何编辑都不会被保存到原始文件。存在用户可能需要同时编辑文件的许多原因。电子表格通常被用作数据输入应用 程序,并且某些人例如可以设置电子表格文件以从公司中的不同部门收集所有财务结果。 文件通常具有多个作者,并且这些作者会想要随意编辑电子表格,而无需等待其他作者释 放锁。除了允许多个用户在单个电子表格文件上协作的期望之外,也有允许多个不同类 型的客户端协作的期望。这种客户端可以包括“富”客户端和“浏览器”客户端两者。富客 户端(也被称为胖客户端或肥客户端)是通常提供更多特征选择并且自身通常能够执行更 多的数据处理操作且并非必须依赖于服务器的客户端。然而,存在其中富客户端可能选择 允许服务器执行各种操作的多种情况。瘦客户端是通常提供减少的特征选择并且通常依赖 于主机或服务器计算机的资源的客户端。特征的变化以及富客户端和瘦客户端之间的其他 差异通常使这种不同的客户端处的用户难以协作。概述此处公开了用于客户计算机实时地在电子表格文件上协作的技术。具体地,优选 地随着主机一起提供一修订管理器模块,该模块从客户计算机处接收更新、处理这种更新 并接着将它们应用于电子表格文件。之后,通过轮询修订管理器,电子表格的当前版本对所 有客户端可用。修订管理器将这些更新发送给先前未接收到的每个客户端,使得所有客户 端可以在协作期间具有以当前状态显示的电子表格文件。此外,描述了用于处理由客户端同时或近乎同时发送给修订管理器的更新的技 术。在这种情况下,修订管理器确定对于电子表格文件的更新是否可变换或能够被合并。如 果是,那么更新可以被结合到电子表格文件中并且应用到其中。如果更新是不可变换的,那 么修订管理器在将不可变换的更新应用于电子表格文件之前确认所有的客户端已经接收 到了所有先前的更新。这提供了在今后的发行中在协作环境中包括更多功能的能力,因为 使得所有功能可变换会是非常耗时的过程。提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概 念。该概述不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在用于帮助确定 所要求保护的主题的范围。附图简述在参考附图阅读以下详细描述之后,会更好地理解说明性实施例,附图中

图1是示例性计算设备的框图。图2是示出多个客户计算机在电子表格文件上协作的系统图示,其中主机包括用于管理对电子表格文件的同时更新的修订管理器模块。图3是来自图2中所示的两个客户计算机的电子表格文件的一对局部视图和修订管理器模块的图示;图4是在做出了同时更新的情况下图3中所示的客户计算机的电子表格文件的该 对局部视图和修订管理器模块的图示;图5是在修订管理器模块在电子表格文件中合并了图4的同时更新的情况下图3 和4中所示的客户计算机的电子表格文件的该对局部视图和修订管理器模块的图示;以及图6是在多个客户计算机实时协作期间合并对电子表格文件做出的同时更新的 过程的流程图。详细描述此处用细节来描述本发明的主题以满足法定要求。然而,描述本身并非旨在限制 本专利的范围。相反,设想所要求保护的主题还可结合其它当前或未来技术按照其它方式 来具体化,以包括不同的步骤或类似于本文中所描述的步骤的步骤组合。图1示出了可在其中实现上述主题的合适的计算系统环境100的示例。计算系统 环境100仅为合适的计算环境的一个示例,并非旨在对上述主题的使用范围或功能提出任 何局限。也不应该把计算环境100解释为对示例性操作环境100中示出的任一组件或其组 合有任何依赖性或要求。参考图1,计算系统环境100包括计算机110形式的通用计算设备。计算机110的 组件可以包括但不限于处理单元120、系统存储器130以及将包括系统存储器在内的各类 系统组件耦合至处理单元120的系统总线121。系统总线121可以是几种类型的总线结构 中的任何一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的 任一种的局部总线。作为示例而非限制,这样体系结构包括工业标准体系结构(ISA)总线、 微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)局部总线和 外围部件互连(PCI)总线(也称为夹层(Mezzanine)总线)。计算机110通常包括各种计算机可读介质。计算机可读介质可以是能由计算机 110访问的任何可用介质,而且包含易失性和非易失性介质以及可移动和不可移动介质。作 为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质 包括易失性和非易失性、可移动和不可移动介质,它们以用于存储诸如计算机可读指令、数 据结构、程序模块或其它数据这样的信息的任意方法或技术来实现。计算机存储介质包括, 但不限于,RAM、ROM、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它 光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由 计算机110访问的任何其它介质。通信介质通常以诸如载波或其它传输机制等已调制数据 信号来体现计算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。 术语“已调制数据信号”是指以在该信号中编码信息的方式来设置或改变其一个或多个特 性的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及 无线介质,诸如声学、RF、红外线和其它无线介质。上述中的任意组合也应包括在计算机可 读介质的范围之内。系统存储器130包括形式为易失性和/或非易失性存储器的计算机存储介质,诸 如只读存储器(ROM) 131和随机存取存储器(RAM) 132。基本输入/输出系统133 (BIOS)包含有助于诸如启动时在计算机110中的元件之间传递信息的基本例程,它通常存储在ROM 131中。RAM 132通常包含处理单元120可以立即访问和/或目前正在操作的数据和/或 程序模块。作为示例而非局限,图1示出了操作系统134、应用程序135、其它程序模块136 和程序数据137。计算机110也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介 质。仅作为示例,图1示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器 141,从可移动、非易失性磁盘152中读取或向其写入的磁盘驱动器151,以及从诸如⑶-RW、 DVD-RW或其它光学介质等可移动、非易失性光盘156中读取或向其写入的光盘驱动器155。 可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介 质包括,但不限于,盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬 盘驱动器141通常由不可移动存储器接口,诸如接口 140连接至系统总线121,磁盘驱动器 151和光盘驱动器155通常由可移动存储器接口,诸如接口 150连接至系统总线121。以上描述并在图1中说明的驱动器及其相关联的计算机存储介质为计算机110提 供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如在图1中,硬盘驱动 器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意, 这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同或不 同。操作系统144、应用程序145、其它程序模块146和程序数据147在这里被标注了不同 的标号是为了说明至少它们是不同的副本。用户可通过诸如键盘162和定点设备161 (诸 如鼠标、跟踪球或触摸垫)等输入设备向计算机110输入命令和信息。其它输入设备(未 示出)可以包括操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常由 耦 合至系统总线121的用户输入接口 160连接至处理单元120,但也可以由其它接口或总 线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。图形接口 182也可以连接到 系统总线121。一个或多个图形处理单元(GPU) 184可以与图形接口 182通信。监视器191 或其它类型的显示设备也经由接口,诸如视频接口 190连接至系统总线121,后者可以进而 与视频存储器186通信。此外,计算机也可以包括其它外围输出设备,诸如扬声器197和打 印机196,它们可以通过输出外围接口 195等连接。计算机110可使用至一个或多个远程计算机,诸如远程计算机180的逻辑连接在 网络化或分布式环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、 对等设备或其它常见网络节点,且通常包括上文相对于计算机110描述的许多或所有元 件,尽管在图1中只示出存储器存储设备181。图1中所示的逻辑连接包括局域网(LAN) 171 和广域网(WAN) 173,但也可以包括其它网络/总线。这样的网络环境常见于办公室、企业范 围计算机网络、内联网和因特网。当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至局域 网171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172,或用于通过WAN 173,如因特网建立通信的其它装置。调制解调器172可以是内置或外置的,它可以通过用 户输入接口 160或其它合适的机制连接至系统总线121。在网络化环境中,相对于计算机 110所描述的程序模块或其部分可以存储在远程存储器存储设备中。作为示例而非局限,图 1示出远程应用程序185驻留在存储器设备181上。可以理解所示的这些网络连接起示例 性的作用,也可以使用在计算机之间建立通信链路的其他手段。
从图2可以理解,如上所述也称为客户端、客户计算机或用户的多个计算系统 200,210和220可能期望在诸如电子表格文件230等公共文件上实时地协作。这种客户端 包括例如“胖”客户端电子表格应用程序或瘦客户端电子表格应用程序。计算系统200、210 和220上的电子表格应用程序可以采用“协作”编辑模式,其中每个用户或客户端可以看到 由在此时正在编辑文件230的任何其他用户或客户端做出的改变。如所示的,这可以经由 诸如服务器等包含要保存的电子表格文件230的版本的单独的主机240来完成。然而,可 以理解,任一客户计算机可以被用作用于协作的主机,只要它有该能力并且其他客户端计 算机被适当地连网到其上。该协作模式由此不同于普通的电子表格操作,其中客户端以排 他访问打开电子表格文件并且所有改变被直接推入到文件中,而当这发生时没有其他的客 户端正在编辑该文件。在典型的协作安排中,每个客户计算机会经由计算机可执行指令将消息或数据更 新传递(如箭头250所示)给主机240。可以理解,由客户端做出的每次编辑或改变被包 装成客户端的修订记录,其具有指示改变是什么、在何处发生、谁做出改变等的细节。主机 240优选地包括随其一起包括的、在此处被称为修订管理器的模块310,其从客户端接收更 新并处理这种改变或传入数据。来自客户端的修订记录被发送给修订管理器模块310,在那 里这些记录被接收和处理。在完成对电子表格文件230的这种处理和更新后,并且通过由 个别客户计算机请求或轮询主机240 (由箭头265表示),修订管理器模块310经由计算机 可执行指令将更新发送给(如箭头270所示)客户计算机。以此方式,使用包括协作期间 接收到的、来自客户计算机的更新的电子表格文件230的当前版本,来更新做出请求的客 户计算机的电子表格文件230的状态。可以理解,由主机240对电子表格文件230做出的 改变优选地在几毫秒之内对客户计算机可用。主机240也可能自动地将更新推到客户计算 机。修订管理器模块310识别协作中哪个客户端做出更新请求,记录该客户端看到的最近 的更新,并且发送关于自从该时间开始的所有更新的修订记录。客户端接着应用该修订记 录并且目前是最新的,具有所有客户端做出的所有更新。一般而言,可以由修订管理器模块310以接收修订记录的顺序来处理它们。然而, 如果两个客户端同时或近乎同时发送涉及电子表格文件内相同单元格或对象的修订记录 或在处理期间记录重叠,那么可能在改变之间有冲突。如果第二客户端在记录发源期间不 是最新的或者如果修订管理器模块310在接收第二客户端的记录之前接收了任何其他的 更新,这样必须考虑到第二客户端提交记录(不必是马上)的时间、传送时间、和发送/接 收开销,那么修订记录也会过时的。可以理解,一些修订可以被分解和合并(此处称为“可 变换”改变),而其他修订不能被合并(此处称为“不可变换”改变)。如何合并两个冲突的改变的一个示例在图3-5中示出。如图3中所示,与修订管 理器模块310 —起提供第一客户端的电子表格的局部视图300和第二客户端的电子表格的 局部视图305。可以注意到在该协作点处电子表格的视图300和305是相同的,其中值5和 6分别位于单元格Al和A2处。在图4中,可以看出第一客户端将涉及单元格A2内的值的 公式(即A2+2)添加到电子 表格300的单元格B2中。同时或近乎同时,第二客户端在电子 表格305中在单元格A2上插入一行。这些改变的每一个被发送到必须协调冲突的修订管 理器310,如箭头315和320所示。为此,修订管理模块310处理两个更新,并且在图5中做 出适当的变换。相应地,修订管理器模块310将它需要在电子表格300中的行1和2之间插入行的消息325发送给第一客户端(用户A),第一客户端处理单元格Bl内的公式更新 (即A3+2)。同时,修订管理器模块310将它需要将新的公式插入到电子表格305内的单元 格Bl的消息330发送给第二客户端(用户B),其中所添加的公式被调整为考虑所插入的 行。由此,通过做出对应于更新315和320的适当的变换,电子表格300和305反映来自每 个客户机的预期的改变并且是相同的。可以理解,修订管理器模块310将不能合并由客户计算机发送到它的每个冲突更 新。这至少部分地阻止了由一个客户端提供的更新可能对由另一客户端提供的另一更新具 有指数量的分支。此外,需要如何将电子表格的一个特征或在该处的操作中的改变与另一 特征或操作中的改变进行合并的详细的知识量。该知识可能在运行时不可用。
因此,一种方法是在可变换修订和不可变换修订之间进行区分,并接着将对电子 表格应用程序的所有可能的编辑分类为这两种类型之一。如此处所述,可变换记录是修订 管理器模块310知道如何合并到一起的那些修订记录。所有其他修订记录被认为是不可变 换的,修订管理器模块310将其识别为不可能有将这种修订记录与等待被应用的其他记录 合并的方式。在该实例中,修订管理器模块310首先确定所有客户端接收到了所有其他先 前的更新,使得所有的客户端当前处于相同的状态。这可以通过使每个客户端如同它通常 做的那样轮询修订管理器以获取更新,并且客户端接收指示修订管理器将要执行不可变换 操作并阻止用户做出任何进一步的编辑的消息而发生。换言之,为了确保所有客户端接收 到了所有其他先前的更新,可以阻止每个客户端做出新更新,使得修订管理器可以继而应 用不可变换操作。在协作的所有客户端同步之后,接着修订管理器模块310应用不可变换 记录并且相应地更新所有客户端。为了更好地理解发生的过程,所发生的步骤在图6的流程图中示出。如其中所示, 修订管理器模块310本质上控制电子表格文件230上的锁,并且由此操作以便在客户端和 主机240之间建立连接(由框600示出)。虽然对电子表格文件230的改变或更新可以经 由任何数目的客户端传送给主机240,但是可以看出反映了第一和第二客户端将更新发送 给修订管理器模块310 (分别是框605和610)。当修订管理器模块310从第一和第二客户 端接收更新时,它确定对电子表格文件230的两个更新都是可变换的(判定框615)。如果认为两个更新都是可变换的(即其修订记录被识别为能够被合并),那么修 订管理器模块310将更新组合到电子表格文件(框620)中并接着将这些更新应用于电子 表格文件230 (框650)。如果两个更新都被认为是不可变换的,那么修订管理器模块310首 先确认所有客户端接收到了所有先前对电子表格文件230的更新(框630),并接着将不可 变换更新应用于电子表格文件230 (框635)。在任一情况下,可以理解每个客户端优选地必须轮询修订管理器模块310以获取 对电子表格文件230的更新(框640),之后修订管理器模块310会提供所有轮询客户计算 机先前未接收到的、对电子表格文件230的更新(框645)。客户端接着应用由修订管理器模块310提供的修订记录(框650),以显示电子表格文件230的当前版本。应该理解,客户端可以包括应用从修订管理器/服务器接收到的记录的附加的客 户端侧合并逻辑。没有该附加的客户端侧合并逻辑,可能会要求富客户端在整个轮询和更 新过程期间阻塞以防止用户发起任何改变直至应用了最近的更新。富客户端可以包括要做 出响应的修订管理器合并引擎的版本。也应该理解实时同步可能不是完全可变换解决方案的必要条件。虽然连续的同步可以提供更好的用户体验,但是完全可变换解决方案的价值 的一部分是它可以临时离线以提供更好的远程可用性并且提供对于网络问题的健壮性。此 夕卜,应该 理解,在冲突的情况下,除了客户端还未看到的修订记录之外,修订服务器可以将 所变换的修订记录发送回客户端,以便考虑到那些相同的修订记录和客户端当前正在发出 的新的修订记录之间的冲突。 尽管已经用结构特征和/或方法专用的语言描述了本主题,但是应该理解在所附 权利要求中定义的主题不必限于上述具体特征或方法。相反,上述具体特征和方法是作为 实现权利要求的示例性形式公开的。
权利要求
一种其上存储有用于执行一过程的计算机可执行指令的计算机可读介质,所述过程包括从第一电子表格客户端(200)接收对电子表格文件(230)的第一更新;从第二电子表格客户端(210)接收对电子表格文件(230)的第二更新;确定所述第一更新和第二更新是否可变换,使得两个更新都可以被组合和应用到所述电子表格文件(230);如果所述第一更新和第二更新是可变换的,则组合所述第一更新和第二更新并将它们应用于所述电子表格文件(230),并且计算相互的更新以发送回所述第一和第二电子表格客户端;并且如果所述第一更新和第二更新中的至少一个是不可变换的,则依照用于不可变换改变的策略来处理该更新。
2.如权利要求1所述的计算机可读介质,其特征在于,所述第一和第二电子表格客户 端(210)都是富客户端。
3.如权利要求1所述的计算机可读介质,其特征在于,所述第一电子表格客户端(200) 是富客户端,而所述第二电子表格客户端(210)是浏览器客户端。
4.如权利要求1所述的计算机可读介质,其特征在于,所述过程在实时协作环境中执行。
5.如权利要求1所述的计算机可读介质,其特征在于,所述策略包括 确认所有的电子表格客户端都接收到了所有先前的更新;以及将所述不可变换更新应用于所述电子表格文件(230)。
6.如权利要求1所述的计算机可读介质,其特征在于,所述第一和第二更新是近乎同 时接收到的。
7.如权利要求1所述的计算机可读介质,其特征在于,所述过程还包括 从电子表格客户端接收对于对所述电子表格文件(230)的更新的请求;以及 发送包括所述电子表格客户端先前未接收到的对于所述电子表格文件(230)的所有更新的修订记录。
8.一种用于电子文件协作的方法,包括以下步骤从第一电子表格客户端(200)接收对电子表格文件(230)的第一改变从第二电子表格 客户端(210)接收对所述电子表格文件(230)的第二改变;确定所述第一改变和第二改变是否可变换,使得两个改变都可以被组合和应用到所述 电子表格文件(230);如果所述第一改变和第二改变是可变换的,则组合所述第一改变和第二改变并将它们 应用于所述电子表格文件(230),并且计算相互的更新以发送回所述第一和第二电子表格 客户端;并且如果所述第一改变和第二改变是不可变换的,则依照用于不可变换改变的策略来处理 该改变。
9.如权利要求8所述的方法,其特征在于,所述第一和第二电子表格客户端(210)都是富客户端。
10.如权利要求8所述的方法,其特征在于,所述第一电子表格客户端(200)是富客户端,而所述第二电子表格客户端(210)是浏览器客户端。
11.如权利要求8所述的方法,其特征在于,所述方法在实时协作环境中执行。
12.如权利要求8所述的方法,其特征在于,还包括以下步骤 确认所有的电子表格客户端都接收到了所有先前的更新;以及 将所述不可变换更新应用于所述电子表格文件(230)。
13.如权利要求8所述的方法,其特征在于,所述第一和第二更新是近乎同时接收到的。
14.如权利要求8所述的方法,其特征在于,还包括以下步骤从电子表格客户端接收对于对所述电子表格文件(230)的更新的请求;以及 发送包括所述电子表格客户端先前未接收到的、对于所述电子表格文件(230)的所有 更新的修订记录。
15.一种用于电子表格协作的系统,包括 用于执行计算机可执行指令的处理器;以及其上存储有用于执行一过程的计算机可执行指令的存储器,所述过程包括 从第一电子表格客户端(200)接收对电子表格文件(230)的第一改变; 从第二电子表格客户端(210)接收对所述电子表格文件(230)的第二改变; 确定所述第一更新和第二更新是否可变换,使得两个改变都可以被组合和应用到所述 电子表格文件(30);如果所述第一改变和第二改变是可变换的,则组合所述第一改变和第二改变并将它们 应用于所述电子表格文件(230);并且如果所述第一改变和第二改变是不可变换的,则依照用于不可变换改变的策略来处理 该改变。
16.如权利要求15所述的系统,其特征在于,所述过程是由修订管理器执行的。
17.如权利要求15所述的系统,其特征在于,所述第一客户端是富客户端,而第二客户 端是浏览器客户端。
18.如权利要求15所述的系统,其特征在于,所述过程在实时协作环境中执行。
19.如权利要求15所述的系统,其特征在于,所述策略包括 确认所有的电子表格客户端都接收到了所有先前的更新;以及 将所述不可变换更新应用于所述电子表格文件(230)。
20.如权利要求1所述的计算机可读介质,其特征在于,其中所述第一和第二更新是同 时接收到的。
全文摘要
此处公开了用于由客户计算机在电子表格文件上实时协作的技术。具体地,优选地随主机一起提供修订管理器模块,该模块从该客户计算机接收更新、处理这些更新并接着将它们应用于电子表格文件。另外,描述了用于处理由客户端同时或近乎同时发送到修订管理器的更新的技术。在这种情况下,该修订管理器确定对该电子表格文件的更新是否可变换或能够被合并。如果是,那么该更新被组合到该电子表格文件中并且应用到其上。如果该更新是不可变换的,那么修订管理器在将该不可变换更新应用于该电子表格文件之前确定所有客户端接收到了所有先前的更新。
文档编号G06F17/00GK101842802SQ200880114012
公开日2010年9月22日 申请日期2008年10月23日 优先权日2007年10月26日
发明者J·M·切尔罗弗, J·S·坎贝尔, M·H·史密斯, R·G·霍金, R·L·阿彻, R·坦登 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1