基于在场的同步的制作方法
【专利摘要】基于在场的同步基于每一协作者在协作环境的共享文档内的在场信息来管理并发协作者之间的更新。协作者对共享文档的页面的编辑在其他协助者访问同一页面时可被更频繁地同步。作为对比,协作者对共享文档的页面的编辑在没有其他协助者访问该页面时可被较不频繁地同步。此外,共享文档内协作者在场的方式可影响同步率——与不活跃地与其他用户协作的单个用户相比,在线会议内的协作用户可以更频繁地同步。在一个实现中,共享文档内的其他维护活动(例如,垃圾收集)可受协作环境内各协作者的在场信息的影响。
【专利说明】基于在场的同步
[0001] 背景
[0002] 在线协作工具通常向用户通知协作环境内其他用户的状态或"在场"。例如,即时 消息收发工具可指示另一用户是否登录、是否积极地参与同协作环境中某一其他人的在线 通信、是否在他或她的计算机处已有较长的一段时间不活动等等。此类"在场"指示可能有 助于允许一个用户知晓另一用户是否有空进行在线通信。
[0003] 此外,某些在线协作工具允许多个用户并发地编辑共享文档。例如,在某些环境 中,共享文档可表示与开发组的项目有关的所有信息的非常大的数据储存库。此类在线协 作工具可以同步多个用户之间的编辑活动。然而,此类同步可能无法实现"足够实时"的协 作体验(例如,用户可能断定共享文档中其他用户进行的编辑被同步得太慢)。或者,此类 同步可在协作环境内生成与必需或需要的相比,更多的网络活动(例如,非平凡地影响网 络和服务器负载,且潜在地减小协作环境中的流通感)。
[0004] 概述
[0005] 本文描述并要求保护的各实现通过基于协作环境的共享文档内每一协作者的在 场信息来同步各并发协作者之间的更新,从而解决上述问题。协作者对共享文档的页面的 编辑在其他协助者访问同一页面时可被更频繁地同步。作为对比,协作者对共享文档的页 面的编辑在没有其他协助者访问该页面时可被较不频繁地同步。此外,共享文档内协作者 在场的方式可影响同步率--与不与其他用户活跃地协作的单个用户相比,在线会议内的 各协作用户可以更频繁地同步。在一个实现中,共享文档内的其他维护活动(例如,垃圾收 集)可受协作环境内各协作者的在场信息的影响。
[0006] 此处还描述和列举了其他实现。
【专利附图】
【附图说明】
[0007] 图1示出了提供基于在场的同步的示例协作环境。
[0008] 图2示出了来自提供基于在场的同步的示例协作环境的屏幕截图。
[0009] 图3示出了提供以基本同步率的基于在场的同步的示例协作环境。
[0010] 图4示出了提供以各种同步率的基于在场的同步的示例协作环境。
[0011] 图5示出了用于针对基于在场的同步在单用户模式与多用户模式之间进行确定 的示例操作。
[0012] 图6示出了用于执行基于在场的同步的多用户模式的示例操作,其从标准同步模 式转换到快速同步模式。
[0013] 图7示出了用于执行基于在场的同步的多用户模式的示例操作,其从快速同步模 式转换到标准同步模式。
[0014] 图8示出了可以对实现此处所描述的技术有用的示例系统。
【具体实施方式】
[0015] 图1示出了提供基于在场的同步的示例协作环境100。协作环境100包括通信地 耦合协作服务器104的通信网络102,多个客户机设备106、108、110等,以及数据存储112。 数据存储112存储协作环境100内可访问的共享文档,对这些共享文档的访问由协作服务 器104来管理。各协作者(例如,并发地访问共享文档114的各用户)使用客户机设备106、 108和110经由协作服务器104来访问存储在数据存储122中的共享文档。通过该连接, 用户可与共享文档114内的其他用户协作。共享文档114可以是单个文档文件、或具有各 个细分水平的文档文件(例如,笔记本、子文档、章节、页、段落、节等等)的集合。例如,在 一个实现中,共享文档114可包括与特定项目有关的大型信息集合,包括个人数据、要求规 范、功能规范、设计规范、发行时间表、在线讨论日志、电子邮件、项目计划、蓝图、源代码、图 片、备注等等。由此,共享文档无需限于单个文档文件。
[0016] 在协作环境100中,各协作者的客户机设备以基于其他协作者在协作环境100内 的相对在场信息所确定的频率来提供并接收反映对共享文档114的访问的更新通信。例 如,并发地访问共享文档114的同一页面116的各协作者与其他页面上的其他协作者相比 可被更频繁地同步。以此方式,同一页面上的各协作者体验到对该页面上其他协作者作出 的编辑的迅速同步,使得那些编辑以非常快速或实时的方式出现在该页面上。作为对比,不 在同一页面116上的那些协作者直到他们导航到该页面才会查看对该页面的编辑。由此, 在该页面上的编辑可较不频繁地被同步到这些"遥远"的协作者,由此减小协作环境100内 的平均同步通信量。
[0017] 更新通信提供了协作环境100内的用户在场信息的指示,包括但不限于,用户行 为、用户状态、编辑动作、活动/非活动状态或其他状态指示符(例如,隐式或显式状态)、共 享文档内的位置、活动编辑的频率、用户是否处于在线会议中、协作者与其通信的其他用户 的身份、用户在协作环境内是否活动或用户是否在后台执行协作环境、地理位置(GPS)数 据、用户的身份(包括联合身份)等等。
[0018] 图2示出了来自提供基于在场的同步的示例协作环境的屏幕截图200。屏幕截 图200中的呼出202 (其通过悬停在图标203上方或选择图标203来显示)显示了被称为 "Spec Discussion"的共享文档内、且具体地在被称为"Project Notebook"的笔记本内的 各协作者名称,在该"Project Notebook"笔记本中有11个人,且在该Project Notebook的 页面Design/Iced Fusion页面上有6个人。沿左侧工具条的列表204指示共享文档内可用 的多个笔记本。沿屏幕截图200顶部的选项卡指示该笔记本内的各个部分。沿右侧工具条 的列表208指示该笔记本内的多个页面,其中当前页面210在该工具条中被突出显示。
[0019] 在访问Project Notebook笔记本的11个协作者中,他们中的六位正访问屏幕截图 中显示的当前页面。同一页面上的在场可以暗示这些协作者之间比其他页面上的协作者具 有更活跃的协作活动,并且因此相比于当前存在于其他页面的其他五位协作者,使这六位 协作者彼此更频繁地同步。
[0020] 图3示出了提供以基本同步率的基于在场的同步的示例协作环境300。各协作者 302并发地访问共享文档304。Nicole和Jane正并发地访问页面100,而Scott正访问页 面102,并且Alex、David、Daniel和其他人正访问页面789。其他协作者(未示出)也可访 问共享文档304。如果只有单个协作者当前正访问共享文档304,则基于在场的同步操作会 处于单用户模式中。然而,当多个协作者正并发地访问共享文档304时,尽管位于共享文档 304内的各个位置,基于在场的同步操作仍处于多用户模式中。
[0021] 在多用户模式中,Scott对没有其他协作者并发地访问的页面(即,页面102)的 访问导致Scott对该页面的访问操作(例如,编辑)以基本更新通信频率被更新到协作服 务器306。由此,Scott的客户机设备以该基本更新通信频率来发送描述他的编辑的更新通 信(由箭头308指示)。同样,Scott对于共享文档304内其他页面上的其他协作者作出的 编辑更新(未示出)的接收也以基本更新通信频率来调度。应当理解,来自和去往协作服 务器306的基本更新频率可以取决于协作环境300的配置而不同。
[0022] 如图3中所示,其他协作者也以基本更新通信频率来接收Scott的编辑更新(如 箭头310、312、314、316和318所示),因为这些协作者与Scott不在同一页面(页面102) 上或访问同一页面。应当理解,基本更新频率(无论是来自还是去往服务器)可以在每一 个用户的基础上被定制。
[0023] 在一个实现中,协作服务器306包括或可以访问作者元数据数据存储320,该作者 元数据数据存储320可以在每一文档或文档细分的基础上为每一协作者存储作者元数据 (包括但不限于,位置数据、活动状态、通信能力数据等)。位置数据可以指示共享文档内协 作者所访问的位置。活动状态可以指示协作者是否活动地访问共享文档,而不是在后台进 程中打开该文档。通信能力数据可以指示协作服务器与客户机设备之间可用的通信带宽。 可采用其他作者元数据。
[0024] 在场评估器322确定一个或多个其他协作者相对于当前协作者是否满足在场条 件。基本同步模式控制器324管理在基本同步模式期间与各并发协作者的客户机设备进行 的更新通信,而增强同步模式控制器326管理在增强同步模式期间与各并发协作者的客户 机设备进行的更新通信。同步服务控制器328处理更新通信的接收和传输,无论处于基本 同步模式还是增强同步模式中。
[0025] 应当理解,尽管图3示出了在场评估器322、基本同步模式控制器324、增强同步模 式控制器326以及同步服务控制器328作为协作服务器306的组件,但这些组件中的一个 或多个可以分布到这些客户机设备中的一个或多个。例如,协作服务器306可以执行智能 电话客户机设备的这些组件,而其他协作者的客户机工作站可以在协作环境300中执行这 些组件。
[0026] 图4示出了提供以各种同步率的基于在场的同步的示例协作环境。各协作者402 并发地访问共享文档404。与图3-样,Nicole和Jane正并发地访问页面100,而Scott正 访问页面102,并且Alex、David、Daniel和其他人正访问页面789。其他协作者(未示出) 也可访问共享文档404。当多个协作者正并发地访问共享文档404时,尽管位于共享文档 404内的各个位置,基于在场的同步操作仍处于多用户模式中。
[0027] 在多用户模式中,Daniel对由其他协作者(例如,David和Alex)并发地访问的页 面(即,页面789)的访问导致Daniel对该页面的编辑以增强更新通信频率被更新到协作 服务器406。由此,Daniel的客户机设备以该增强更新通信频率来发送描述他的编辑的更 新通信(由箭头418指示)。同样,Daniel对于共享文档404内同一页面上的其他协作者 (例如,David和Alex)作出的编辑更新(未示出)的接收也以增强更新通信频率来调度, 如箭头414和416所示。应当理解,来自和去往协作服务器406的增强更新频率可以取决 于协作环境400的配置而不同。另外,尽管如此,Daniel可以以该基本更新通信频率(或 某一其他更新的频率,其取决于Daniel与那些其他协作者相比在共享文档404内的相对在 场)接收来自共享文档404内其他页面上的其他协作者的更新。
[0028] 如图4中所示,其他协作者也以更新通信频率(如箭头408、410和412所示)来 接收Scott的编辑更新,该更新通信频率取决于与Daniel相比每一其他协作者的相对在 场。由于这些协作者与Scott不在同一页面(页面102)上或访问同一页面,因此在一个实 现中,与David和Alex相比,这些协作者以较慢速率来接收与Daniel的访问有关的更新通 信(例如,以基本更新通信频率)。应当理解,基本更新频率(无论是去往还是来自服务器) 可以在每一个用户的基础上被定制,如箭头408和410的不同箭头类型所示。
[0029] 在一个实现中,协作服务器406包括或可以访问作者元数据数据存储420,该作者 元数据数据存储320可以在每一文档或文档细分的基础上为每一协作者存储作者元数据 (包括但不限于,位置数据、活动状态、通信能力数据等)。在场评估器422确定一个或多个 其他协作者相对于当前协作者是否满足在场条件。基本同步模式控制器424管理在基本同 步模式期间与各并发协作者的客户机设备进行的更新通信,并且增强同步模式控制器426 管理在增强同步模式期间与各并发协作者的客户机设备进行的更新通信。同步服务控制器 428处理更新通信的接收和传输,无论处于基本同步模式还是增强同步模式中。
[0030] 应当理解,尽管图4示出了在场评估器422、基本同步模式控制器424、增强同步模 式控制器426以及同步服务控制器428作为协作服务器406的组件,但这些组件中的一个 或多个可以分布到这些客户机设备中的一个或多个。例如,协作服务器406可以执行智能 电话客户机设备的这些组件,而其他协作者的客户机工作站可以在协作环境400中执行这 些组件。
[0031] 图5示出了用于针对基于在场的同步在单用户模式与多用户模式之间进行确定 的示例操作500。如果协作者是共享(或可共享)文档中唯一存在的协作者,则协作环境可 保持在单用户模式中。在一个实现中,单用户模式可以高速缓存单个协作者的访问操作,或 采用基本或较低更新通信频率。例如,单用模式可以使去往协作服务器的更新通信延迟,直 到另一用户变为存在于共享文档中,直到单个协作者保存或退出共享文档,或直到满足另 一条件。
[0032] 导航操作502将协作者导航至共享文档内的访问位置。例如,协作者可以打开 共享文件内的文档,并且导航至共享文档的笔记本中的页面,以便在该页面内读取或写入 (例如,编辑)文本或其他对象。作为访问该文档的一部分,锁定操作504获取对共享文档 内公共对象的共享锁。在一个实现中,作为锁定操作504的一部分,协作者向与共享文档相 关联作者元数据添加作者条目。
[0033] 在场操作506确定其他协作者是否存在于共享文档内。如果共享文档内不存在其 他协作者,则判定操作508导致处理,以周期性地重新检查共享文档内其他协作者的在场。 如果判定操作508确定共享文档内存在其他用户,则多用户操作510进入多用户同步模式。
[0034] 图6示出了用于执行基于在场的同步执行的多用户模式的示例操作600,其从标 准同步模式转换到快速同步模式。作者操作602访问共享文档并且写入与共享文档相关联 的作者元数据结构。随着每一协作者在共享文档内改变位置,作者操作602更新作者元数 据以反映正确的在场信息,包括当前协作者在共享文档内的位置。在一个实现中,作者元数 据结构被存储在可由协作服务器访问的数据存储中并且与共享文档相关联。作者元数据结 构可以通过以下提供的示例元数据访问方法来访问,尽管可采用其他替代API :
[0035]
【权利要求】
1. 一种方法,包括: 确定在共享文档的至少两个并发协作者之间的更新通信频率,其中所述更新通信频率 基于所述至少两个并发协作者的在场信息;以及 根据所确定的更新通信频率来传递与所述并发协作者中的至少一者的更新通信,每一 更新通信指示针对所述并发协作者中的至少一者的所述协作环境内的在场信息。
2. 如权利要求2所述的方法,其特征在于,与不满足在场条件的在场信息相比,满足所 述在场条件的所述至少两个并发协作者的在场信息导致所述至少两个并发协作者之间不 同的更新通信频率。
3. 如权利要求1所述的方法,其特征在于,所述确定操作包括: 与所述至少两个协作者在所述共享文档的不同页面上的情况相比,当在场信息指示所 述至少两个协作者在所述共享文档的同一页面上的情况下,确定更快的更新通信频率。
4. 如权利要求1所述的方法,其特征在于,所述至少两个并发协作者的在场信息指示 所述至少两个并发协作者在所述共享文档内的行为或状态中的至少一项。
5. 一种系统,包括: 同步服务控制器,被配置成传递更新通信,以便基于所述共享文档的并发协作者的在 场信息以不同的更新通信频率来在所述并发协作者之间同步所述共享文档中的编辑。
6. 如权利要求5所述的系统,其特征在于,所述同步服务控制器还被配置成,与相对在 场信息不满足在场条件的至少两个并发协作者之间的更新通信频率相比,确定相对在场信 息满足所述在场条件的所述至少两个协作者之间的更快的更新通信频率。
7. 如权利要求5所述的系统,其特征在于,所述至少两个并发协作者的在场信息指示 所述至少两个并发协作者在所述共享文档内访问的相对位置。
8. 如权利要求5所述的系统,其特征在于,所述至少两个并发协作者的在场信息指示 所述至少两个并发协作者在所述共享文档内的活动。
9. 如权利要求5所述的系统,其特征在于,还包括: 在场评估器,被配置成评估所述至少两个并发协作者之间的相对在场条件。
10. -个或多个计算机可读存储介质,所述计算机可读存储介质编码有用于在计算机 系统上执行计算机过程的计算机可执行指令,所述计算机过程包括: 传递更新通信,以便基于所述共享文档的并发协作者的在场信息以不同的更新通信频 率来在所述并发协作者之间同步所述共享文档中的编辑。
【文档编号】G06F15/16GK104067269SQ201380006027
【公开日】2014年9月24日 申请日期:2013年1月16日 优先权日:2012年1月19日
【发明者】D·谢, S·塞帕勒特波恩, G·内兹克, S·斯塔拉 申请人:微软公司