CN102934105B - 在驻留的文字处理器中的协作光标 - Google Patents

在驻留的文字处理器中的协作光标 Download PDF

Info

Publication number
CN102934105B
CN102934105B CN201180027547.5A CN201180027547A CN102934105B CN 102934105 B CN102934105 B CN 102934105B CN 201180027547 A CN201180027547 A CN 201180027547A CN 102934105 B CN102934105 B CN 102934105B
Authority
CN
China
Prior art keywords
document
user
modification
cursor
model
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.)
Active
Application number
CN201180027547.5A
Other languages
English (en)
Other versions
CN102934105A (zh
Inventor
M·勒默尼克
O·S·贝洛梅斯特尼克
J·R·拉维
L·A·F·佩瑞拉菲尔霍
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Priority to CN201610811777.5A priority Critical patent/CN106445194B/zh
Publication of CN102934105A publication Critical patent/CN102934105A/zh
Application granted granted Critical
Publication of CN102934105B publication Critical patent/CN102934105B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

一种计算机实现的协作编辑方法,包括:从基于浏览器的文档编辑应用的用户接收对于由所述应用显示的文档的输入;识别执行所述应用的第一用户的光标在所述文档中的当前位置;从中央服务器系统接收数据,所述数据反映由不同于所述第一用户的一个或多个用户对所述文档进行的修改、以及所述一个或多个其他用户的光标在所述文档中的当前位置;更新在计算设备上存储的文档模型,所述计算设备正在执行所述基于浏览器的应用、并且向所述浏览器呈现所述模型的至少一部分;以及向所述浏览器呈现所述一个或多个其他用户的光标的当前位置。

Description

在驻留的文字处理器中的协作光标
相关申请的交叉引用
本申请要求于2010年4月12日提交的名称为“Collaborative Cursors in a Hosted Word Processor”的美国临时申请序列号No.61/323,259的优先权,其全部内容通过引用方式并入到本文中。
技术领域
本文涉及针对协作地编辑驻留的服务器系统上的电子文档的用户,来管理和显示光标位置的系统和技术。
背景技术
基于云的或驻留的(hosted)计算通常涉及经由web浏览器执行应用,并从远程服务器系统或服务获取应用的信息。相对于传统的桌面型软件,云计算提供了切实的优势,例如从各个不同的计算机和位置访问文档的能力。办公室生产率应用是由云当前递送的一种类型的应用。例如,多个用户可以采用他们的web浏览器来编辑在驻留的服务器系统上存储的文字处理和电子表格,可以访问企业资源计划(ERP)应用,可以编辑相片,并可以执行他们先前用桌面型生产率软件所能执行的大多数其他活动。
在驻留的系统中,还可以允许多个用户同时访问相同的文档。例如,服务器系统可以保持主文档,并可以向正在通过互联网访问文档的各个客户端计算设备传输对文档的修改。此类协作编辑能够改进系统上的体验,在所述系统中,每个用户对文档进行一批编辑,并随后将该文档转发到另一用户,其中当该另一用户知道该编辑不可用时,现在不存在馈送回路来校正由一个用户作出的编辑。
发明内容
本文描述了如下系统和技术,其可以用于将信息显示给同时在文档中并同时编辑文档的驻留的文字处理系统的多个用户(其中“同时”表示一般含义上的具有重叠编辑的能力,而并不需要字面上的同时发生)。如在这里所描述的,每个用户的客户端设备可以向服务器系统频繁地报告特定用户对其版本的文档新近进行的修改或改变(mutation)。此类多个报告(当用户进行改变(例如打字)时,所述多个报告以每秒多个报告的量级出现)可以通过数据来完成,所述数据向服务器系统告知文档中用户的光标的位置(例如,在表示文档内容的字符串中的哪两个字符之间)。系统服务器可以利用其已经从其他用户(例如,如果它们与每个用户干扰的话)接收到的其他改变来解析出该改变,并看将已更新的合作改变信息向外发送到并不提交相应的改变的所有的客户端设备,并可以发送具有指示其他用户光标的位置的数据。
在特定的实现中,此类特征提供了一个或多个优势。例如,可以将基于浏览器的文档显示给同时在协作编辑会话中的多个用户,并由所述多个用户编辑所述基于浏览器的文档。可以在视觉上吸引每个用户,使其能够看到标记每个其他用户的编辑位置的光标。因此,可以引导特定用户避免在与其他用户相同的区域中进行编辑,从而避免输入的编辑中的冲突。
在一个实现中,公开了一种计算机实现的协作编辑方法。所述方法包括:从基于浏览器的文档编辑应用的用户接收对于由所述应用显示的文档的输入;识别执行所述应用的第一用户的光标在所述文档中的当前位置;从中央服务器系统接收数据,所述数据反映由不同于所述第一用户的一个或多个用户对所述文档进行的修改、以及所述一个或多个其他用户的光标在所述文档中的当前位置;更新在计算设备上存储的文档模型,所述计算设备正在执行所述基于浏览器的应用、并且向所述浏览器呈现所述模型的至少一部分;以及向所述浏览器呈现所述一个或多个其他用户的光标的当前位置。所 述方法还包括接收与所述一个或多个其他用户的光标在所述文档中的当前位置相关的已更新信息,并且呈现所述一个或多个其他用户的光标的所述当前位置。此外,所述方法可以包括:向所述中央服务器系统发送描述由所述第一用户对所述文档进行的修改的数据,并且识别所述第一用户的光标在所述文档中的当前位置。
在一些方面中,所述方法包括:在由所述第一用户活跃地进行编辑活动的时段期间,每秒多于一次地发送描述所述文档中的修改的所述数据并识别所述第一用户的光标的当前位置。所述方法还可以包括:检测所述第一用户何时活动地编辑所述文档,当所述第一用户开始编辑所述文档时启动定时器,并且当所述定时器到期时发送根据所述用户的编辑活动得到的累积的数据。此外,所述方法可以包括:将所述定时器设置为小于500毫秒的时段,并且还可以包括:将所述定时器设置为等于或小于250毫秒的时段。此外,所述方法还可以包括:在由所述第一用户活跃地进行编辑活动的时段期间,每秒多于一次地发送描述所述文档中的修改的所述数据并识别所述第一用户的光标的当前位置。
在另一实现中,公开了计算机实现的协作编辑系统,包括:接口,用于从使用web浏览器编辑电子文档的多个客户端设备接收通信,所述通信包括指示特定用户处于活动状态中的文档中的光标的位置的信息;活动模型管理器,用于识别与在所述电子文档中处于活动状态的所述特定用户不同的用户;以及协作逻辑,用于向与所述特定用户不同的用户提供信息,该信息反映对所述电子文档的模型进行的修改和所述特定用户的光标在所述文档中的位置。
在下面的附图和说明书中阐述一个或多个实施例的细节。根据说明书、附图并根据权利要求书,其他特征和优势将变得明显。
附图说明
图1是用于在协作文档编辑情况下协调光标位置的系统的示意图;
图2A和2B是示出了电子表格应用的模型-视图-控制器实现的组件的框图;
图2C是允许多个用户通过驻留的服务器系统进行文档的协作编辑的系统的框图;
图3是用于协调对电子文档的同时修改的示例过程的流程图;
图4是用于协调对电子文档的同时修改的示例过程的泳道图;
图5A示出了实现协作的编辑会话的文字处理器的示例截屏;
图5B是示出了由多个用户协作地编辑的电子表格文档的截屏;
图6示出了可以用于实现这里描述的技术的计算机设备和移动计算机设备的示例。
各个附图中相似的附图标记指示相似的单元。
具体实施方式
本文描述了此类系统和技术,所述系统和技术用于协调由彼此分离且与驻留交互的服务器系统分离的多个不同用户通过互联网对电子文档的同时编辑。因此,这里论述的技术可以在云或驻留的计算范例中来编辑富文档(即可以包括各式、图像和超越简单文本的其他内容的文档)的同时,提供良好的用户体验。如这里所论述的,各个用户对文档进行的修改可以被表示为被传输给中央服务器系统的改变,并将所述改变(可能在将它们处理为另一种形式之后)转发给并非作为感兴趣的特定改变或改变群的源的用户,其中当由其他用户修改与随时间的重叠干扰的改变时,所述中央服务器系统作为仲裁方。当用户以几秒一次、每秒一次、或每秒多次的量级对文档进行修改时,改变的这种广播可能出现得非常频繁。而且,改变信息可以伴随有来自第一用户的指示该用户的光标在文档中的当前位置的信息。作为结果,当其他用户的计算设备接收到此类信息时,它们可以生成针对第一用户的光标(尽管该光标的颜色和形状不同于他们自身的光标的颜色和形状),并且还可以显示示出了第一用户的句柄或名称的标记或标识。为了最小化视觉干扰,仅当对应于 光标的远程用户正在进行编辑(例如在最近的数秒内进行了键入)时、或者当本地用户将指针悬停在其他用户的光标之上时,才显示此类标识。
图1是用于在协作文档编辑情况下协调光标位置的系统100的示意图。总体而言,在这里示出的系统是驻留的文字处理系统,多个用户可以同时访问所述驻留的文字处理系统,以彼此协作地编辑公共文档。在这里示意性地示出了针对三个不同用户的对应的网页,所述三个不同的用户正在编辑被称为“协作者周刊(Weekly Collaborator)”的简报。名为Barley的用户正在编辑页面102;名为Betty的用户正在操作页面104,所述页面104由相对于页面102远程的客户端计算设备来生成,并通过诸如互联网之类的网络110来访问页面104;名为JohnB的用户正在操作页面106。每个页面(更具体而言,每个生成页面的web浏览器)可以通过网络110与驻留的服务器系统108进行通信。可以通过提供各种驻留的服务(例如,搜索结果、映射结果、在线购物的支付交易、翻译工具、和云中的其他类似服务)的公司来操作系统108。
所示的页面102在其顶部边缘附近具有工具栏112,所述工具栏112可以显示浏览器按钮和用于以类似方式输入搜索查询的搜索框。在工具栏112之下,例如以下拉菜单和可选择的图标的形式显示有浏览器栏(chrome)114,所述浏览器栏114可以导致对正在浏览器页面102中正在编辑的文档进行格式修改。当文档大于页面102上适合的视口时,可以设置诸如滚动条118之类的额外的浏览器栏。可以由用户选择滚动条118上的柄,以将文档的其他部分同时带入到视野中。如下所述,系统可以遵从模型-视图-控制器布置,从而可以将文档的模型存储在客户端设备上,并且可以将文档的模型呈现给随后可以被显示在页面102上的文档对象模型(DOM)。当文档比视口大很多时,可能是更有效的的是,在视口处或者在视口周围仅呈现文档的一部分,并且延迟呈现或者甚至将文档模型的剩余部分从服务器下载到客户端。
在本特定的示例中,页面102、页面104和页面106的用户均在飞快地编辑简报以赶上到来的时限。这样,在用户进行编辑时,他们中的每个使其光标位于文档中的彼此不同的部分处,并且他们输入文本并从文档中删除文本。使用在这里论述的技术,在每个用户的客户端计算设备上执行的控制器可以截获此类键击和其他输入,并且可以将与这些键击相关的信息作为改变发送到服务器108。此类信息例如可以包括:被编索引到模型的内容的位置(其中编辑正在进行或者已经发生)和被编索引到模型的(特定用户的光标当前位于的)位置。此外,可以提供用于识别特定用户的信息,从而如以下更详细地描述的,服务器108可以提供识别与本地用户不同的用户的光标位置的信息。
对于光标位置,在页面102上示出了所有三个用户的光标信息。Barley(本地用户)的光标信息由光标122示出。光标122和其他光标可以被生成为在背景颜色中的具有窄宽度的横跨单元,并与正被编辑的文档的背景颜色形成对比。可以通过如下方式来确定光标的位置:识别光标的开始位置,并且随着字符被输入,使用适当的字符尺寸和格式来生成视野之外的div元素的字符,并且随后使用标准的HTML元素来确定此类视野之外的元素的高度和宽度。此类用户输入的字符可以随后被提供给DOM,并且被显示在页面102上,并且光标122的位置可以通过视口之外的元素的宽度被向前索引,从而光标现在位于新近增加的字符的右侧,并且向本地用户Barley指示将在该位置进行他的下一次键击。按照这种方式,光标122和正被编辑的文档中的文本和其他部分可以被合成地生成,从而提供匹配特定作者想要的格式的视觉印象。
为Betty示出了光标124A,其中Betty正在Barley编辑文档的位置之上的位置编辑文档。标记124B被附加到光标,从而Barley可以立即识别出Betty正在执行特定的编辑。因此,例如Barley可以知道Betty是她正在编辑的区域周围的主题的专家,并可以对她的编辑给予较少的关注。与之形成对比的是,Barley可以知道Betty正在编辑 的区域是他非常重视的区域,并且他可以紧密地关注Betty的编辑,并且如果她以他不希望的方式修改文档时,他可以给予她评论。例如,他可以将边注粘贴到文档,并且他可以对Betty的编辑进行编辑,或者他可以将注释键入到聊天会话中,所述聊天会话可以在文字处理应用执行时自动地执行。
JohnB正在其他两个用户的位置之下的很远的位置处编辑文档,并且不在页面102上的当前视口上。作为结果,JohnB的光标仅被示出为附加到标记120B的小的插入符号120A,并向下指向偏离页面,以向Barley指示JohnB处于在水平方向上与小的插入符号120A一致的某处,但偏离页面的底部。
页面104和106示出了可以被显示给其他用户的对应的图标的标记。具体而言,这些用户可以仅利用诸如图标122之类的图标来标记他们的位置,并且可以利用不同颜色的图标来标记其他用户的位置,并且所述其他用户的位置可能附加有识别正在该位置处进行编辑的用户的标识或其他注释。
在特定情况下可以关闭在这里示出的标识,从而本地用户可以更容易地看到页面102。例如,如果Betty在预定时间段(例如5秒或更长时间)停止键入,标记124B可以消失,或者仅示出图标124A。按照这种方式,可以向用户提供适当级别的警告,而无需占据视觉界面。
在这种情况下,可以通过使得诸如在下面论述的控制器之类的控制器频繁截获用户输入,并将它们作为改变发送到服务器系统108来获取有效的协作编辑。例如,当经过了长时间段而没有来自用户的输入、并且用户开始提供输入时,可以启动定时器,并且将定时器到期时缓存的所有输入作为改变成批地发送到服务器系统108。当用户以每200ms(毫秒)提供主动输入时,例如通过将上传发送到服务器系统108来将定时器设置为例如三秒、两秒、一秒、或几分之一秒的时间段。如果服务器系统108识别出在用户的输入之间存在冲突,则服务器系统108可以随后更改向其传递的这种改变,并 将经更改的改变传递回其他客户端。可以通过识别正在进行编辑的用户和该用户的光标在文档模型中的位置的信息来完成此类信息。可以通过其他客户端系统、例如通过生成背景颜色中的窄宽度的横跨单元并与特定用户的文档的背景形成对比的布局引擎来处理此类信息。作为横跨单元的光标可以被随后放置在页面104和106的编辑表面上,并且可以由这些页面的用户来浏览所述光标。
截获用户的交互、确定当前光标位置、并且将此类信息向上传递到服务器108、并且向下传递回其他客户端的过程可以通过编辑文档的会话重复地出现,直到这些用户之一登出会话并且他们的光标不再示出为止,或者直到所有用户登出会话、并且最新的模型是当前在服务器108上的模型为止。在此类情况下,如果从该时间起服务器模型并未被修改,则在每个客户端处的模型的拷贝可以被缓存,并且在下次用户重新登录到系统中时被重新使用,或者可以丢弃所述模型的拷贝(因为可以在下次会话时下载中央模型)。
图2A和2B是示出了文字处理应用的模型-视图-控制器(MVC)的实现的组件框图。文字处理应用例如可以由诸如图1中所示的浏览器104之类的web浏览器来执行。总体而言,MVC实现提供了从远程服务器到客户端的模型的下载,并且提供了将模型呈现到DOM中,以形成可以由web浏览器直接管理的模型的视图。控制器可以截获诸如对图标的点击和对键盘的键击之类的动作,并且可以使得例如通过将键入的字符增加到客户端上的和远程服务器两者上的模型(例如,将修改或改变上传回服务器,可以利用将改变集成到主模型的规则来对所述服务器进行编程,从而在用户工作时,客户端侧模型匹配主模型)来实现此类动作。
参见图2A,计算机应用200A可以被配置为显示文字处理文档202。应用200A包括控制或访问模型204A、视图206B和控制器208A。例如,模型204A可以包括文字处理文档202的状态的表示,其包括诸如字符数据、格式、样式、段落、章节、分隔、列表、表格、图像和公式之类的元素。视图206A可以表示模型204A的当前 状态的呈现。例如,视图可以提供将文档的实质(例如其原始文本)与格式和布局信息进行组合的视觉表示。当通过浏览器显示时,视图提供了通过模型定义的文档的所见即所得(WYSIWYG)表示的形式(如果并非精确的话)。
除了呈现模型之外,视图206A还可以用于将于文字处理文档202相关联的视觉信息(例如应用(即chrome浏览器)和其他文字处理数据的可见用户控制)展现给用户。控制器208A能够响应于模型204A或者视图206A中的变化,并且能够更新模型204A和视图206A的状态。如图2A中所示,模型204A、视图206A和控制器208A之间的实线表示组件之间的直接引用,并且虚线表示监听者。例如,监听与视图206A的展现的用户交互(例如由用户控制提供的),控制器208A能够修改模型204A,并且能够继而(通过使得视图206A获取新模型数据并呈现该新数据)直接或间接地修改视图206A。
作为另一示例,监听由协作环境中的另一用户在模型204A中作出的修改、或通过自动数据更新或另一个此类过程进行的修改,视图206A可以请求重新呈现更新的模型或该模型的一部分。例如,如果客户端设备的用户仅是当前编辑文档的多个用户之一,则由其他用户输入的字符和其他编辑可以被从服务器系统传递到客户端设备(并且由第一用户进行的编辑可以被从客户端设备传递到服务器系统),并且客户端代码可以近似实时地将字符增加到附近的模型中,并且这些修改可以被传递到DOM中(例如经由视图206A的呈现),从而每个用户可以非常快速地看到其他用户进行的编辑。
参见图2B,图2A中展现的模型-视图-控制器实现被示出有更多的细节。如图所示,计算机应用200B(对应于应用200A)包括:控制或访问模型204B(对应于模型204A)、视图206B(对应于视图206A)和控制器208B(对应于控制器208A)。
模型204B可以包括一个或多个文档模型210。每个文档模型210可以表示例如文字处理文档的集合中的单独的文档,并且每个模型210可以包括诸如字符、样式和实体之类的元素。还可以表示诸如电 子表格文档之类的其他形式的文档。可以经由到网络236(例如互联网)的连接,通过存储在远程计算系统上的主文档模型238来提供模型数据和元素。
通常而言,模型210中的文档文本关联于一系列的字符。例如,字符可以表示文字处理文档202的原始文本,并且还可以包括特定保留的控制字符,例如指示出现分隔的字符(例如,段落分隔、或页面分隔等)。在一些实现中,每个文档模型210可以包括一维字符串,所述一维字符串包括按其在文档中出现的次序的文档字符。
样式可以用于存储与文档文本(例如一系列的字符)的展现相关联的信息。例如,文本样式可以包括诸如字体、字体大小、加粗、倾斜、下划线、前景和背景颜色、对齐和其他此类属性的字符格式属性。在一些实现中,在每个文档模型210中包括的样式可以被存储在稀疏的映射中。例如,稀疏的映射可以包括与文档中的样式中的变化对应的标记符和指示字符串中的位置的指针。指针例如可以通过沿着出现样式修改的字符串指明位置来定义在匹配的标记符之间应用的样式。在一些实现中,匹配的组中的标记符可以被布置为被束缚到一维字符串中的特定字符。例如,如果在两对标记符之间增加文本,则其中的一个标记符的指针可以移位一个整数,所述整数等于与该增加的文本相关联的字符的数量。
每个模型210中的实体可以用于存储与文档模型210外部的对象相关联的信息,并且可以通过诸如一维字符串之类的模型中的引用来被指向。例如,实体可以包括诸如列表、表格和图像之类的对象。在一些实现中,引用可以包括对象标识符以及对一维字符串的(例如来自稀疏的映射的)指示对象在字符串中应当出现的位置的指针、或者来自字符串内部的当其被呈现和被显示时为实体和标记符指向特定实体在文档中应当出现的位置的标识符。例如,应当出现在两个段落之间的图像可以关联于特殊的字符,所述特殊的字符出现在字符串中的在一个段落的段落标记符之后且在下一段落的第一个字符之前的位置处。
视图206B可以生成使得用户能够与应用200B进行交互的一个或多个视图项220B,所述视图项220B例如是菜单栏、工具栏、上下文菜单、聊天面板、对话框和其他chrome浏览器栏等。视图206B还可以包括文档菜单222,所述文档菜单222展现与一个或多个文档模型210和一组每个视图224中的一个或多个相关联的信息和控制选项。例如,每个视图224中的一个可以关联于文档模型210中的对应一个。每个每视图224可以包括诸如选择器(例如光标、和选择指示符等)、导航工具(例如滚动条、文档地图和轮廓等)之类的组件或控件。
控制器208B可以包括一个或多个控制器230,所述一个或多个控制器230可以监听并处理用户与视图项220中的一个或多个的交互。在一些实现中,每个控制器230可以关联于视图项220中的对应的一个。例如,菜单栏控制器可以监听并处理用户与菜单栏视图项的交互(例如相关于用户通常将根据菜单选择行采取的各种动作),工具栏控制器可以监听并处理用户与工具栏视图项的交互,并且上下文菜单控制器可以监听和处理用户与上下文菜单视图项的交互等。对特定事件已经出现的确定可以使得特定控制器230执行预定代码或执行预定过程,例如当接收到按键按压并且将与按键按压相关的信息上传到中央服务器系统时通过更新本地模型来进行。
控制器208B还可以包括文档控制器232,所述文档控制器232可以监听并处理用户与文档菜单222的交互。此外,控制器208B还可以包括一组每视图控制器234,其中控制器234中的每个被配置为监听和处理用户与该组每视图224中的对应视图的交互。每视图控制器234中的每个可以包括各种控制器类型,例如用于截获和转换键盘输入的键控制器、用于截获和转换鼠标输入的鼠标控制器和用于截获和转换模型修改事件的模型修改控制器。
通常而言,在控制器208B中包括的控制器可以将用户生成的事件变换为模型和视图改变。例如,基于用户控制,相关的控制器(例如被配置为处理动作的控制器)可以接收与该动作相关联的一个或 多个事件,并且在用户动作被认可之前将所述一个或多个事件瞬间修改到视图206B。随后,基于事件特性,相关的控制器可以构建命令来改变模型204B,对其进行执行,并将更新的模型或仅仅特定改变的数据经由网络236发送到驻留文档模型238的远程服务器系统。
控制器还可以使用定时器或其他机制来聚集输入或改变,从而降低需要对本地和/或基于服务器的模型进行的更新的数量。例如,控制器可以将在预定的时间窗内出现的改变成批地实现到本地和/或基于服务器的模型,例如通过在感测到初始的键击后在将与在时间窗内接收到的所有键击相关的数据发送到中央服务器系统之前等待200ms。
与应用200B进行多个可能用户交互是可能的,包括被包括在单个用户会话和多个用户会话中的交互。出于说明的目的,在这里描述了与应用200B的一系列的示例性用户交互。例如,为了将文本输入到文字处理文档202中,用户可以通过使用计算机鼠标在文档202上进行点击,来为插入的文本选择期望的文档位置212来进行处理。在每视图控制器234中包括的鼠标控制器(例如与活动的文档202相关联的每视图控制器)可以监听与鼠标位置输入和鼠标点击输入相关联的事件,并且在截获所述事件时,可以修改视图206B(例如与活动的文档相关联的每视图)以向用户提供用于选择的视觉指示符(例如光标)。例如,所选择的位置212可以关联于可见光标(其中光标是诸如图像之类的图形HTML元素,并且被显示在文档正被显示的画面上的适当位置,从而创建使得图形元素看起来像真实图标的合成展现),并可以被高亮显示,并可以接收另一个此类变更。此外,所选择的位置还可以关联于模型204B中的位置。例如,可以基于所选择的位置212确定在文档模型210中包括的一维字符串中的位置。
通过使用键盘,用户可以在文档位置212处输入期望的文本。在每视图控制器234中包括的键盘控制器可以监听与键盘输入相关联的事件,并且在截获到它们时,可以修改视图206B以向用户提供 用于输入的视觉指示符。例如,随着用户在位置212处键入文本,文档202可以被可视地更新以将文本展现给用户。此外,键盘控制器可以修改模型204B以包括通过将用户输入复制到模型中所输入的文本。例如,在文档模型210中包括的一维字符串可以被更新以包括所输入的文本,从而协调模型204B与文档模型238。例如,对模型204B的修改可以被经由到网络236的连接发送到文档模型238。在一些实现中,可以周期性地(例如,每100毫秒一次、每200毫秒一次、每600毫秒一次、每秒一次、每两秒一次或其他适当的时间间隔)发送修改。在一些实现中,可以基于用户的活动(例如,输入段落分隔、应用格式修改、导航到另一文档部分、点击保存按钮或一些其他动作)发送修改。
作为另一示例,用户可以将实体(例如列表、表格、超链接、图像或另一此类对象)插入到文档202中。例如,用户可以通过使用计算机鼠标经由在文档202上进行点击,来为实体插入选择期望的文档位置(例如位置212)以进行处理。类似于与文本输入相关联的交互,例如在每视图控制器234中包括的鼠标控制器可以监听与鼠标定位输入和鼠标点击输入相关联的事件,并且在截获到事件时,可以变更视图206B以向用户提供用于选择的位置的可视指示符。接下来,例如用户可以通过与视图项220之一或与文档菜单222的交互来指明用于插入的实体。例如,用户可以在菜单栏上进行选择以指示意图插入图像。与图像选择相关联的对话框可以被展现给用户,使得用户能够选择期望的图像。
用于在应用200B中增加实体的模型-视图-控制器交互可以与当用户输入文本时的方式类似的方式进行操作。例如,随着用户在位置212处插入图像,在标记表面上显示的文档202可以被可视地更新以将图像展现给用户。此外,可以通过将引用写入到模型来将模型204B更改为包括对插入的图像的引用。例如,文档模型210(例如与活动的文档相关联的模型)之一可以被更新为包括对插入的图像的引用。一维字符串可以被更新为包括指示图像位置的特殊字符, 并且可以存储对图像的引用。
例如,当从与活动的文档相关联的模型呈现文档202时,图像内容可以被集成到被显示给用户的文档202中。在一些实现中,一维字符串可以包括用于单个实体的标识符的多个实例。例如,可以将图像定位在文档202中的通过一维字符串中的该标识符的多个位置指明的多个地点处。因此,可以在文档中共享单个的外部实体,或者在多个文档之间共享单个的外部实体,这两者均通过对外部实体的公共引用来实现。文档模型238可以被更新为包括插入的图像,从而协调模型204B和文档模型238。例如,可以经由到网络236的连接将对模型204B的修改发送到文档模型238。
此外,例如用户可以修改在文档202中展现的文本和实体的格式。通过与视图项220之一或与文档菜单222的交互,用户可以指示期望的格式修改(例如如下的修改:将所选择的文本框的字体修改为加粗、将一组文字修改为被组织为列表、将段落对齐方式修改为右对齐、和将文本线间距修改为双倍间距等)。控制器230之一或文档控制器232可以监听用户与视图206B的交互,并且在检测到交互时,可以变更模型204B以包括格式修改。例如文档模型210之一(例如与活动的文档相关联的模型)可以被更新为包括在定义格式修改并且沿着要出现样式修改的一维字符串定义位置的样式的稀疏映射中的元素。在每视图控制器234中包括的模型修改控制器可以监听与模型204B相关联的事件,并且将请求发送到视图206B以相应地进行更新(例如通过呈现格式化的文本的显示)。在一些实现中,模型修改控制器还可以处理由于协作的模型的修改而导致的模型修改事件。
在一些实现中,作为文档模型210之一的文档模型可以包括来自文档模型238的文档数据的子集。例如,如果文档模型238在实质上较大,则可以将数据的子集(例如,与用户当前可看到的文档的一部分相关联的子集,可能再加上当前可视区域或视口周围的缓冲区域,从而可以通过正常的浏览器交互来处理较小的滚动距离, 而无需从模型呈现额外的内容)提供给当前显示文字处理文档202的每个客户端。作为另一示例,可以将完整的文档模型238提供给每个客户端。
用户可选择该用户当前在web浏览器中正在查看的文字处理文档202的一个不同的部分。例如,通过与关联于文档202的滚动条214的交互,用户可以指示浏览当前视口或显示区域之外的文档数据的意图。每视图控制器234之一(例如与活动文档相关联的每视图控制器)可以监听用户与视图206B或其他适当的组件(例如滚动条214的可视部分)的用户交互,并且在(例如经由计算机鼠标)检测到交互时,能够请求视图206B对其自身进行重绘。
如果用户指明了较小量的滚动,视图206A可以使得其自身通过浏览器而被显示。例如,文档数据的缓冲区域可以被保持在文档202的可视区域中显示的数据周围的模型204B(已经被呈现到DOM之中)中。如果通过视图206B确定由用户指明的滚动的量位于数据的缓冲区域的界限之内,则可以使用此类预呈现的数据来更新文档显示。如果用户指明了较大量的滚动,从而使得通过视图206B确定用户指明的滚动位于预呈现的缓冲数据的界限之外,则可以经由网络236从文档模型238下载额外的文档数据。因此,可以利用与额外的文档部分相关联的信息来更新模型204B,并且可以使用下载的数据来呈现文档。
图2C是允许多个用户通过驻留的服务器系统进行文档的协作编辑的系统240的框图。总体而言,系统240包括由一个或多个计算机服务器(例如服务器农场)执行的驻留的文档系统242。驻留的文档系统242能够经由到网络244(例如互联网)的连接将文档驻留服务提供给任何数量的客户端用户。使用文档系统242,客户端用户可以创建新文档、更改现有的文档、共享文档、和与其他用户在文档上协作地进行工作。
为了说明的目的,可以将文档驻留服务提供给浏览器应用246、248和250。可以由web浏览器(例如由如图1中所示的浏览器104) 执行每个应用,并且所述每个应用可以包括模型、视图和控制器组件(例如与如图2A和2B中所示的应用200类似)。应用246、248和250可以被配置为执行计算机代码(例如JavaScript和在web浏览器中运行的其他代码),以显示文字处理接口并执行与由驻留的文档系统242服务的一个或多个文档相关联的文字处理功能。
如当前的图中所示,Chris可以与浏览器252进行交互,Tina可以与web浏览器254进行交互,并且Spike可以与web浏览器256进行交互。浏览器252、254和256中的每个可以访问任何适当数量的浏览器应用(例如,嵌入的应用、微件和网络服务等)。例如,浏览器252可以访问应用246,浏览器254可以访问应用248,并且浏览器256可以访问应用250。
通过与由web浏览器展现的控制进行交互,例如系统240的用户(例如Chris、Spike和Tina)能够针对由驻留的文档系统242提供和管理的一个或多个文档进行工作。例如,用户可以访问由系统242提供的现有文档或可以创建新文档。浏览器应用246、248和250中的每一个可以经由网络244与文档系统242的接口260进行通信。例如在浏览器应用246、248、250和接口260之间的通信可以包括HTTP(超文本传输协议)请求、SOAP(简单对象访问协议)消息或适当的某一其他的协议。在一些实现中,客户端浏览器可以保持到接口260的浏览器通道连接,以在客户端和文档系统242之间传送会话数据。
驻留的文档系统242可以包括子组件,所述子组件用于存储和管理与系统用户、文档和浏览器应用相关的信息。可以通过同一计算机服务器执行各个子组件,或者可以在多个计算机服务器之间分布各个子组件。子组件可以在彼此之间(例如经由消息、传输的文件、共享的数据、远程程序呼叫或某一其他协议)直接进行通信或者(例如通过与中间应用进行通信)在彼此直接间接地进行通信。总体而言,在文档系统242中包括的子组件可以经由接口260与客户端应用(例如浏览器应用246、248和250)进行通信。
系统242还可以包括用于存储用户信息270的一个或多个数据存储器件。例如,用户信息270可以包括与系统用户(例如,Chris、Tina和Spike)相关联的信息。此类信息可以包括总体的用户信息和登录信息(例如,用户名称、口令、和电子邮件地址等)、与由用户采用来访问系统的一个或多个设备相关联的信息(例如,IP地址、浏览器版本、和连接速度等)和系统使用信息(例如,访问次数和访问的数据量等)等。
在一些实现中,系统242可以包括一个或多个数据存储器件,所述数据存储器件用于以例如在以上和之下论述的文档模型此类文档模型的形式来存储文档272。例如,文档272可以包括由系统用户创建、保持和访问的文字处理文档。作为另一示例,可以通过诸如新闻馈送或基于收集的数据的另一报告过程之类的自动化的过程来生成文档272。与文档272相关联的信息可以包括文档数据模型、文档文本、文档格式信息、和实体(例如,表格、图像、视频、声音剪辑或其他此类对象)等。
系统242还可以包括用于存储访问信息274的一个或多个数据存储器件。例如,访问信息可以包括可以用于控制系统用户(例如在系统信息270中包括的用户)对系统文档(例如在文档272中包括的文档)访问。通常而言,系统用户可以设置它们创建或管理的文档的访问权限。例如,Chris可以创建个人的信函文档并将文档指明为私有。因此,系统的其他用户(例如Tina和Spike)无法定位或访问已经对其以各种类似的方式施加了访问控制限制的文档。作为另一示例,Tina上传了日程表文档,并将该文档指明为可由Chris共享和浏览。因此,Spike无法定位或访问该文档,但Chris却能以“仅浏览”模式对该文档进行访问。在一些实现中,作为文档创建者的Tina可以保留对文档的完全访问,具有诸如增加、编辑和删除内容的能力之类的权限、具有修改权限的能力、并且具有从系统242中移除文档的能力。作为另一示例,Spike可以创建与一个组项目相关的文档,并指明Chris和Tina(以及他自己)具有完全的访问权限。 在一些示例中,用户组可以被包括在访问信息274中。例如,用户可以创建组,并且将一个或多个用户增加到组中。在一些实例中,取代当分配文档许可时选择个体用户的是,用户可以选择包括用户的一组。访问信息274还可以包括诸如文档用户的用户id和文档访问次数之类的信息。
在一些实现中,系统242可以包括用于存储HTML/JavaScript 276的一个或多个数据存储器件。例如,HTML/JavaScript 276可以包括用于执行浏览器应用246、248和250的应用代码。例如当浏览器用户访问与驻留的文档系统242相关联的网站时,应用代码例如可以被提供给浏览器252、254和256中的任何一个。在接收到针对文档272中的任何一个的请求时,例如除了提供文档272中的一个或多个外,系统242还提供HTML/JavaScript 276。使用HTML/JavaScript 276,浏览器应用246、248和250可以呈现文档数据,并且可以提供使得浏览器用户能够与文档进行交互的接口。在一些实现中,可以使用与HTML/JavaScript不同的技术来提供应用代码。例如,对于包括适当的插件的web浏览器,可以提供另一类型的经编译或经解释的代码。
可能存在许多可能用户与系统240的交互(包括在单个用户会话和在多个用户会话中的交互)。例如,在协作编辑会话中,多个用户可以同时与文档进行交互。尽管用于编辑文档应用的行为均是独立的,但应用可以遵从于与用于更新和呈现文档模型的编辑规则相同的编辑规则。因此,多个用户针对文档可能具有类似的体验,并且可以一起工作来产生类似的文档模型。
在示例的会话中,为了发起协作文字处理文档编辑,Chris通过将web浏览器252指引到与系统242相关联的网站(例如域)来访问驻留的文档系统242。从浏览器252接收到登陆信息,系统242可以相对于用户信息270来验证Chris的信息。在验证时,系统242可以将HTML/JavaScript 276提供给用于执行在线文字处理器的浏览器252(尽管在进行验证之前可以传递特定的代码)。浏览器可以包 括HTML/JavaScript 276的一部分作为浏览器应用246,呈现与应用相关联的chrome浏览器,并且将应用显示给Chris。
Chris可以经由在浏览器252内的应用视图中显示的控制集来与浏览器应用246进行交互。例如,Chris可以通过点击在应用视图中显示的按钮或选择菜单选项来指示创建新文档的意图。应用控制器可以截获命令,并经由网络244将命令传递到接口260。接收到命令时,系统242可以将新文档增加到文档272,并且将与新文档相关联的信息增加到活动模型262的集合中。例如,活动模型262可以包括与当前由系统242的其他用户编辑的文档相关联的模型信息。
活动模型262的集合中的模型的对应版本可以被展现在浏览器应用246处。例如,Chris可以增加内容,并且对通过浏览器应用246的视图提供的文字处理文档进行修改,并且将对应的内容和修改施加到由浏览器应用246(以及在浏览器中运行的相关联的HTML和JavaScript代码)访问的模型,并且可以将对应的内容和修改传播到活动模型262。
Chris还可以与一个或多个用户共享文档。例如,使用与应用246相关联的控制,Chris可以选择Tina和Spike作为可以共享文档的用户,并且他可以向Tina和Spike两者赋予完整的文档权限。例如,Tina和Spike可以被包括在所展现的与Chris一般共享文档的用户的列表中,并且Chris可以从列表中选择Tina和Spike。作为另一示例,Chris可以提供Tina和Spike的电子邮件地址。系统242可以在访问信息274中存储共享信息(例如已经访问文档的其他用户的用户id和用户的许可级别等)。在一些实现中,系统242可以将消息(例如,电子邮件、文本消息、即时消息等)发送到已经接收了文档权限的用户。在一些实现中,已经接收了文档权限的用户可以接收到共享的文档的链接(例如超链接或URL)。
在接收到共享的文档的通知时,Tina和Spike可以使用他们的web测览器254和256访问文档。例如,在进行验证时,系统242可以向浏览器254和256提供HTML/JavaScript 276用于执行在线文 字处理器。浏览器可以包括HTML/JavaScript 276的一部分作为浏览器应用248和250,并且可呈现与应用相关联的chrome浏览器,并且可以显示应用。
此外,在驻留的文档系统242中包括的活动模型管理器264可以识别系统的用户和在文档中活动的用户(即Chris)当前打开了哪些文档,并可以建立协作会话。例如,活动模型管理器264可以确定由Tina和Spike请求的文档关联于活动模型262中的一个或多个。系统242随后可以将文档请求转发到驻留文档的计算机,并且计算机能够将Tina和Spike与当前的会话相关联。此外,浏览器应用248、250能够下载与活动模型262相关联的模型数据,并且呈现和显示所下载的模型数据。在一些实现中,系统242可以为Tina和Spike创建模型实例,并且可以将实例增加到活动模型262中。
在本示例中,用户能够看到其自己的光标以及协作会话中的其他用户的光标。为了说明的目的,每个用户的光标对他/她自己显现为方块。例如,Chris可以看到他自己的光标作为方块,并且看到其他用户的光标作为圆圈或作为三角形。相应地,Tina和Spike也可以看到他们的光标作为方块,并且看到其他用户的光标作为圆圈或作为三角形。在一些实现中,光标可以被显现为不同的颜色(在这里无法示出)。例如,光标通常可以显现为下划线或竖条,其中光标针对每个用户是不同颜色的。
在本示例中,可以由浏览器应用246、248和250将每个用户进行的修改发送到驻留的文档系统242,对所述修改进行协调,并将其发送回其他用户。在一些实现中,可以一定的时间间隔(例如每100毫秒一次、每200毫秒一次、每600毫秒一次、每秒一次、每2秒一次或另一适当的时间间隔)来发送修改。在一些实现中,可以至少部分基于用户的活动或非活动来进行发送。例如,在用户非活动的时段期间,可以比用户活动的时段期间的频率小的频率发送或接收修改。当用户正在输入数据时或者当本地用户悬停在另一用户的光标上时,可以显示识别其他用户的弹出标签,从而本地用户能够 识别出谁在进行修改(尽管标签随后可以消失,以不继续阻挡文档)。
为了协调由多个用户进行的多个文档修改,例如驻留的计算机系统242可以包括协作逻辑266。例如,可以通过一个或多个代码模块来执行协作逻辑266,所述代码模块由与系统242相关联的一个或多个计算机系统来执行。在一些实现中,可以由浏览器应用246、248和250来执行协作逻辑的各个部分。总体而言,逻辑266可以通过将一致的规则集应用到所有的用户修改,来解决数据冲突(例如,多个用户编辑相同的文档部分或应用抵触的文档格式的实例)。但在一些实例中,可能会向一个或多个用户提示消除修改的歧义。例如,如果Tina对文档进行了修改,并且Spike在接收Tina的修改前对文档进行了抵触的修改,可以向Spike展现来自浏览器应用250的包括可能的抵触解决方案场景的消息。在一些应用中,可以将一个用户识别为在冲突情况下胜过其他用户。例如,在出现抵触的情况下,作为文档创建者的Chris能够优先于由Tina或Spike进行的修改来施加他的修改。例如,如果Spike编辑一个段落同时Chris删除了该段落,则该段落(包括Spike的编辑)将被删除。
因此,图2C中所示的系统可以处理由多个用户同时进行的驻留的文档的协作编辑。此类编辑的管理可以涉及在系统的各个子系统之间传递少量的数据。
图3是用于协调对电子文档的同时修改的示例过程的流程图。总体而言,过程涉及识别由客户端计算设备的用户进行的文档或文档模型中的修改,将这些修改记录为改变,识别客户端设备的用户的光标的当前位置,并将此类信息上传到服务器系统,所述服务器系统随后(可能在重新格式化或调整信息之后)可以与其他客户端设备共享此类信息。该信息可以使得每个客户端设备能够在每个本地机器上实时地示出由其他设备进行的编辑和其他设备的当前光标位置。
过程开始于框302,其中由客户端设备接收用户输入。这些输入采用各种形式,例如将文本键入到文字处理、电子表格或绘图文档 中或其他适当的修改。输入还可以涉及在文档中删除文本、插入图形、修改的元素的格式或样式。
在框304,从用户接收的输入被封装以被传输到中央服务器系统。此类被传输到中央服务器系统的信息可以包括标识由用户进行的修改、在由中央服务器系统管理的文档模型中进行这些修改的位置的信息。修改还可以包括修订号,从而中央服务器可以追踪修改到达的次序,并可以使用此类信息来解决从不同用户接收的修改之间的干扰。此外,信息可以包括每个用户的识别信息,从而可以与文档的编辑模式下的其他用户共享用户的身份。
在框360处,客户端设备更新文档模型的其自身的版本,并将该模型或该模型的更新的部分呈献给在可访问随后将显示文档的浏览器的设备上的文档对象模型(DOM)。在框308,设备从中央服务器系统接收文档的模型数据。该接收的信息对应于其他客户端设备提供给中央服务器系统的信息,该信息类似于在框304中第一本地客户端设备提供的信息。因此,各个用户正在进行同步编辑,并且通信通过中央服务器系统彼此重叠。
在自客户端设备最后与服务器系统进行通信时起的时间内,设备的用户可以在影响其他设备上的其他用户进行的编辑、或者受其他设备上的其他用户进行的编辑影响的设备上进行编辑。这样,需要识别重叠的编辑,并且以如下方式来执行变换,所述方式匹配在其他客户端和服务器系统上执行的变换,从而在本地客户端处生成更新的文档模型。客户端还可以识别其他用户的光标位置,其中此类位置可以被直接指示在从服务器系统接收的数据中。该数据可以被增加到本地文档模型,并被呈现给本地的DOM。此类数据还可以指示标识符,例如用户名或句柄,以关联于每个光标位置。在框312,过程解析编辑,并且调整其光标先前显示在本地客户端处的文档上的其他用户中的每一个的光标位置。例如,可以将在DOM内具有与文档的背景形成对比的对比颜色的窄宽度的元素从在来自服务器系统的最后通信中指示的它们的位置移动到由来自服务器系统的最新 通信指示的新位置。
在框314,当模型被呈现给DOM区域时,修改被增加到模型并且被扩展到DOM,并且在框316,浏览器通过访问DOM来显示经修改的文档和光标。可以频繁地重复这里所示的过程,并且如上所述,例如每秒重复多次。作为结果,可以频繁地更新其他用户的光标位置,并且所述光标位置可以在时间和位置上紧密地匹配于当前由在其他用户自己的机器上的所述其他用户看到的光标位置。作为结果,由于多个用户能够更容易地实时看到其他用户在文档中执行的动作,因此所述多个用户可以更顺畅地进行交互。
图4是用于协调对电子文档的同时修改的示例过程的泳道图。总体而言,过程示出了此类示例,其中由两个不同的客户端计算设备采取对称的动作,所述两个不同的客户端均通过中央服务器系统来访问公共文档以协作地执行文档的编辑。
过程开始于框402A和402B,其中在两个客户端处的用户中的每个几乎同时地开始编辑共享的文档。在框404A和404B,例如当定时器到期或针对在客户端之一上识别出的每个键击或类似的修改时,每个客户端设备可以将这些修改发送到服务器系统。在框406,服务器系统识别出由特定用户正在编辑的文档,并且在本示例中可以为两个不同的客户端设备并行地执行此类动作,如通过中间栏中的堆叠的框所示出的那样。动作可以被堆叠在队列中,并且可以按照这些动作被接收的顺序来被处理。服务器系统408还可以识别当前在文档中并且处于活动中的其他用户,从而其可以确定哪些其他用户共享其接收的信息。在框410,服务器系统更新其文档模型的主拷贝,并将修改数据发送到相应的客户端,或者将与来自客户端B的修改相关联的数据发送到客户端A,并且将与客户端B相关联的修改发送到客户端A。
在框412A和412B,客户端从中央服务器系统接收修改数据,并且识别通过当与在本地客户端上进行的编辑进行比较时来自其他客户端的编辑创建的潜在冲突。在框414A和414B,客户端设备中 的每一个调整其修改数据表示,以解决此类冲突,并且随后在框416A和416B,客户端设备更新它们各自的模型,并且将它们呈现给在客户端上运行的浏览器上的相应的DOM。最后,在框418A和418B,客户端修改与其他用户的光标相关的DOM中的数据,并且在框412A和412B,将这些光标的表示移位到在从服务器系统接收的数据中表示的新位置。
这里所示的过程可以是连续的过程,其中每个客户端可以连续地监听用户进行的输入,并且可以将输入成批地进行发送,所述批可以为诸如键击之类的单个输入的批或稍大的批,其中批的大小通常被选择为足够小,从而使得可以将输入以在协作会话中提供足够的顺畅用户体验的频度发送给其他客户端。
图5A示出了实现协作编辑会话的文字处理器的示例截图。在该示例中,有三个用户正在观看JOSEPH SMITH的简历,并且在简历的底部键入评论。这里所示的具体的截屏是名为Kroberts的页面用户,如图所示,接近简历底部的三条线中的中间一条中的光标并未通过对其命名的标记来实现。假定本地用户(这里为Kroberts)并不需要看到与她的光标相邻的她自己的名字,并且通过省略标记,光标还变得更明显(与看起来彼此相像的其他光标相比)。其他用户(James Pattison和名为Otazi的用户)正在与Kroberts同时进行键入,从而如果图形以动画表示,则将会看到三个垂直光标条跨页面从左向右几乎一致地进行移动。对DOM(从其生成文档)的每个更新可以频繁地出现(例如,每秒多次),并且所述每个更新可以取决于特定用户的键入速度而包括一到多个字符。
而且,在页面的右侧提供聊天框,其中用户可以在他们移动时键入评论,其中每个评论将不被包括在文档自身上。例如,如在这里所示出的,在协作编辑环境中,用户之一可以请求其他用户执行特定动作。作为一个示例,第一用户可以请求其他用户在该第一用户浏览和编辑其他段落的同时浏览和编辑文档中的特定段落。
图5B示出了由多个用户协作地进行编辑的电子表格文档的截 屏。在该示例中,通过特定单元上的有色的轮廓或框来指示特定用户的光标的存在,并且在这里显现为四个不同的用户正在同时编辑电子表格的栏B。
图6示出了可以利用这里描述的技术使用的一般的计算机设备600和一般的移动计算机设备650的示例。计算设备600意在表示各种形式的数字计算机、例如膝上型计算机、桌面型计算机、工作站、个人数字助理、服务器、刀片服务器、大型计算机和其他适当的计算机。计算设备650意在表示各种形式的移动设备,例如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。这里示出的组件、它们的连接和关系、以及它们的功能仅是示意性的,并且并不意在限制在本文档中描述和/或要求保护的本发明的实现。
计算设备600包括处理器602、存储器604、存储设备606、连接存储器604和高速扩展端口610的高速接口608、以及连接低速总线614和存储设备606的低速接口612。组件602、604、606、608、610和612中的每个是使用各种总线互连的,并且可以被安装到一般的主板上或以其他适当的方式被安装。处理器602可以处理用于在计算设备600中执行的指令,包括在存储器604中或在存储设备606中存储的指令,以在外部输入/输出设备(例如与高速接口608耦接的显示616)上显示GUI的图形信息。在其他实现中,可以将多个处理器和/或多个总线与多个存储器和多种类型的存储器一起适当地使用。而且,可以连接多个计算设备600,其中每个设备提供必要操作的部分(例如,服务器库、一组刀片服务器或多处理器系统)。
存储器604在计算设备600中存储信息。在一个实现中,存储器604是易失性存储器单元。在另一实现中,存储器604是非易失性存储器单元。存储器604还可以是另一种形式的计算机可读介质,例如磁盘或光盘。
存储设备606能够为计算设备600提供大容量存储。在一个实现中,存储设备606可以是或包含计算机可读介质,例如软盘设备、硬盘设备、光盘设备或磁带设备、闪速存储器或其他类似的固态存 储器设备、或者设备的阵列,包括存储区域网络中的设备或其他配置。计算机程序产品可以有形地体现在信息载体中。计算机程序产品还可以包含指令,所述指令当被执行时,执行诸如如上所述的方法之类的一个或多个方法。信息载体是计算机或机器可读介质,例如存储器604、存储设备606、处理器602上的存储器或传播的信号。
高速控制器608管理计算设备600的带宽密集操作,而低速控制器612管理低带宽密集操作。此类功能分配仅是示例性的。在一个实现中,高速控制器608耦接到存储器604、显示器616(例如通过图形处理器或加速器),并且耦接到高速扩展端口610,所述高速扩展端口610可以接收各种扩展卡(未示出)。在所述实现中,低速控制器612耦接到存储设备606和低速扩展端口614。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以耦接到一个或多个输入/输出设备(例如键盘、指点设备、扫描仪)或网络设备(例如交换机或路由器,例如通过网络适配器)。
可以以图中所示的各种不同的形式来实现计算设备600。例如,其可以被实现为标准服务器620或多次实现在一组此类服务器中。其还可以被实现为机架服务器系统624的一部分。此外,其可以被实现在诸如膝上型计算机622之类的个人计算机中。或者,来自计算设备600的组件可以与诸如设备650之类的移动设备(未示出)中的其他组件相组合。此类设备中的每一个可以包括一个或多个计算设备600、650,并且整个系统可以由彼此之间进行通信的多个计算设备600、650构成。
计算设备650包括处理器652、存储器664、诸如显示器654之类的输入/输出设备、通信接口666和收发机668等组件。设备650可以被提供有存储设备(例如微驱动器或其他设备)以提供额外的存储。使用各种总线来互连组件650、652、664、654、666和668中的每一个,这些组件中的一些组件可以被安装在公共的主板上或以其他适当的方式被安装。
处理器652可以执行计算设备650中的指令,包括在存储器664 中存储的指令。可以将处理器实现为包括分离的多个模拟和数字处理器的芯片的芯片组。处理器可以例如提供设备650的其他组件的协调,例如用户接口的控制、由设备650运行的应用和设备650进行的无线通信。
处理器652可以通过与显示器654耦接的控制接口658和显示接口656与用户进行通信。显示器654例如可以是TFT LCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器或其他适当的显示技术。显示接口656可以包括用于驱动显示器654将图形和其他信息呈献给用户的适当的电路。控制接口658可以从用户接收命令,并且对所述命令进行转换以提交到处理器652。此外,外部接口662可以被设置为与处理器652进行通信,从而实现设备650与其他设备的附近区域通信。外部接口662例如可以在一些实现中提供有线通信,或者在其他实现中提供无线通信,并且还可以使用多个接口。
存储器664在计算设备650中存储信息。存储器664可以被实现为计算机可读介质、易失性存储器单元或非易失性存储器单元中的一个或多个。还可以提供通过扩展接口672与设备650相连接的扩展存储器674,所述扩展存储器674例如包括SIMM(单列直插式存储器模块)卡接口。此类扩展存储器可以为设备650提供额外的存储空间,或者还可以为设备650存储应用或其他信息。具体而言,扩展的存储器674可以包括执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如扩展存储器674可以被提供为装置650的安全模块,并且可以被编程有允许安全使用设备650的指令。此外,可以经由SIMM卡提供安全应用以及额外的信息,例如以不能以非法入侵的方式将识别信息放置在SIMM卡上。
存储器例如可以包括闪速存储器和/或NVRAM存储器,如下所述。在一个实现冲,计算机程序产品有形地体现在信息载体中。计算机程序包含指令,所述指令当被执行时,执行诸如如上所述的方法之类的一个或多个方法。信息载体是计算机或机器可读介质,例 如存储器664、扩展存储器674、处理器652上的存储器、或者可以例如通过收发机668或外部接口662接收的传播的信号。
设备650可以通过通信接口666进行无线通信,所述通信接口666在必要时可以包括数字信号处理电路。通信接口666可以提供各种模式或协议(例如GSM语音呼叫、SMS、EMS或MMS消息、CDMA、TDMA、PDC、WCDMA、CDMA 2000或GPRS等)下的通信。此类通信例如可以通过射频收发机668实现。此外,近程通信例如可以使用蓝牙、WiFi、或其他此类收发机(未示出)实现。此外,GPS(全球定位系统)接收机模块670可以将额外的导航和位置相关的无线数据提供给设备650,可以由在设备650上运行的应用来适当地使用此类数据。
设备650还可以使用音频编解码器660可听见地进行通信,所述音频编解码器660可以从用户接收语音信息并将其转换为可使用的数字信息。音频编解码器660也可以例如通过(例如在设备650的听筒中的)扬声器为用户生成可听见的声音。此类声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如语音消息、音乐文件等),并且还可以包括由在设备650上操作的应用生成的声音。
可以以图中所示的各种不同的形式来实现计算设备650。例如,其可以被实现为蜂窝电话680。其还可以被实现为智能电话682、个人数字助理或其他类似的应用设备的一部分。
可以将这里描述的系统和技术的各种实施实现在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或它们的组合中。此类各种实现可以包括一个或多个计算机程序中的实现,所述计算机程序在包括至少一个可编程处理器的可编程系统上是可执行和/或可编译的,所述可编程系统是专用或通用的,并且可以被耦接来从存储器系统、至少一个输入设备和至少一个输出设备接收数据和指令并且向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。
这些计算机程序(还被称为程序、元件、元件应用或代码)包括可编程处理器的机器指令,并可以被实现在高级过程和/或面向对象的编程语言中,和/或实现在汇编/机器语言中。如在这里所使用的术语“机器可读介质”、“计算机可读介质”是指用于将机器指令和/或数据提供给可编程处理器的任何的计算机程序产品、装置和/或设备(例如磁盘、光盘、存储器、可编程逻辑器件(PLD)),所述机器指令和/或数据包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,在这里描述的系统和技术可以被实现在具有用于将信息显示给用户的显示设备(例如CRT(阴极射线管)或LCD(液晶显示)监视器)、和使用其来提供到计算机的输入的键盘和指向设备(例如鼠标或轨迹球)的计算机上。也可以使用其他种类的设备来提供与用户的交互;例如,提供给用户的馈送可以是任何形式的感知馈送(例如视觉馈送、听觉馈送或触觉馈送)。可以接收任何形式的用户输入,包括声音、语音或触觉输入。
可以将这里描述的系统和技术实现在此类计算系统中,所述计算系统包括后端组件(例如数据服务器),或者包括中间件组件(例如应用服务器),或者包括前端组件(例如具有图形用户接口或web浏览器的客户端计算机,用户可以通过所述图形用户接口或web浏览器与这里描述的系统和技术的实现交互),或者此类后端、中间件或前端组件的任意组合。可以通过任何形式或介质的数字数据通信(例如通信网络)来互连系统的组件。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和互联网。
计算系统可以包括客户端和服务器。客户端和服务器通常相距较远并且一般通过通信网络进行交互。通过在相应的计算机上运行的计算机程序来实现客户端和服务器的关联,并且客户端和服务器在彼此之间具有客户端-服务器关联。
已经描述了多个实施例。但应当理解的是,可以进行各种各样 的修改而不偏离本发明的精神和范围。例如,本文中的大部分是针对文字处理文档来描述的,但其也可以针对其他形式的文档。
此外,附图中所示的逻辑流程并不需要所示的特定顺序或相继次序来实现期望的结果。此外,可以提供其他的步骤,或可以从所述的流程中删除步骤,并且可以从所述的系统中删除或向所述的系统增加其他的组件。相应地,其他的实施例落入所附权利要求的范围内。

Claims (19)

1.一种计算机实现的协作编辑方法,包括:
在中央服务器系统接收包括指示对文档的第一修改的信息的通信,所述第一修改是经由从第一基于浏览器的文档编辑应用的第一用户对于由所述第一应用显示的所述文档的第一输入来获得;
基于所述通信中指示对所述文档的所述第一修改的所述信息,更新在所述中央服务器系统存储的所述文档的文档模型的原版拷贝;
向多个客户端设备发送指示基于由所述第一用户对所述文档进行的所述第一修改对所述文档模型的所述原版拷贝进行的修改的信息,并且向所述多个客户端设备发送指示所述多个客户端设备的光标在所述文档中的位置的信息;
其中所述文档经由用户接口显示在客户端设备以在所述文档内示出针对其他客户端设备的光标,并且所述光标的每个光标示出与相应光标相关联的用户标识标签;
识别执行所述应用的所述第一用户的光标在所述文档中的当前位置;
识别与所述第一用户相关联的所述文档的视口;
接收数据,所述数据反映由不同于所述第一用户的一个或多个用户对所述文档进行的修改、以及所述一个或多个其他用户的光标的集合在所述文档中的当前位置,其中所述集合中的一个或者多个光标的所述当前位置在与所述第一用户相关联的所述视口以外;
通过按照一顺序来解决其中所述第一修改和反映对所述文档的相同部分造成冲突编辑的数据的实例,所述顺序是在所述中央服务器处接收冲突编辑以将一致的规则集应用到所述冲突编辑的顺序;
在所述中央服务器系统处基于解决的实例来更新与所述文档相关联的所述文档模型的所述原版拷贝;
向与所述第一用户相关联的所述视口呈现所述模型的至少一部分;以及
向基于文档编辑应用的所述浏览器呈现指向所述一个或多个其他用户的所述集合中的所述一个或者多个光标的所述当前位置的指针。
2.如权利要求1所述的方法,还包括:接收与所述一个或多个其他用户的光标在所述文档中的当前位置相关的已更新信息,并且呈现指向所述一个或多个其他用户的所述集合中的所述一个或者多个光标的所述当前位置的指针。
3.如权利要求1所述的方法,还包括:向所述中央服务器系统发送描述由所述第一用户对所述文档进行的修改的数据,并且识别所述第一用户的光标在所述文档中的当前位置。
4.如权利要求1所述的方法,其中,所述方法还包括:在由所述第一用户活跃地进行编辑活动的时段期间,每秒多于一次地发送描述所述文档中的修改的所述数据并识别所述第一用户的光标的当前位置。
5.如权利要求4所述的方法,还包括:检测所述第一用户何时活动地编辑所述文档,当所述第一用户开始编辑所述文档时启动定时器,并且当所述定时器到期时发送根据所述用户的编辑活动得到的累积的数据。
6.如权利要求5所述的方法,还包括:将所述定时器设置为小于500毫秒的时段。
7.如权利要求5所述的方法,还包括:将所述定时器设置为等于或小于250毫秒的时段。
8.如权利要求1所述的方法,其中所述方法包括:在由所述第一用户活跃地进行编辑活动的时段期间,每秒多于一次地发送描述所述文档中的修改的所述数据并识别所述第一用户的光标的当前位置。
9.一种计算机实现的协作编辑的设备,包括:
用于在中央服务器系统接收包括指示对文档的第一修改的信息的通信的装置,所述第一修改是经由从第一基于浏览器的文档编辑应用的第一用户对于由所述第一应用显示的所述文档的第一输入来获得;
用于基于所述通信中指示对所述文档的所述第一修改的所述信息,更新在所述中央服务器系统存储的所述文档的文档模型的原版拷贝的装置;
用于向多个客户端设备发送指示基于由所述第一用户对所述文档进行的所述第一修改对所述文档模型的所述原版拷贝进行的修改的信息,并且向所述多个客户端设备发送指示所述多个客户端设备的光标在所述文档中的位置的信息的装置;
其中所述文档经由用户接口显示在客户端设备以在所述文档内示出针对其他客户端设备的光标,并且所述光标的每个光标示出与相应光标相关联的用户标识标签;
用于识别执行所述应用的所述第一用户的光标在所述文档中的当前位置的装置;
用于识别与所述第一用户相关联的所述文档的视口的装置;
用于接收数据的装置,所述数据反映由不同于所述第一用户的一个或多个用户对所述文档进行的修改、以及所述一个或多个其他用户的光标的集合在所述文档中的当前位置,其中所述集合中的一个或者多个光标的所述当前位置在与所述第一用户相关联的所述视口以外;
用于通过按照一顺序来解决其中所述第一修改和反映对所述文档的相同部分造成冲突编辑的数据的实例的装置,所述顺序是在所述中央服务器处接收冲突编辑以将一致的规则集应用到所述冲突编辑的顺序;
用于在所述中央服务器系统处基于解决的实例来更新与所述文档相关联的文档模型,并且向与所述第一用户相关联的所述视口呈现所述模型的至少一部分的装置;以及
用于向基于文档编辑应用的所述浏览器呈现指向所述一个或多个其他用户的所述集合中的所述一个或者多个光标的当前位置的指针的装置。
10.如权利要求9所述的设备,还包括:用于接收与所述一个或多个其他用户的光标在所述文档中的当前位置相关的已更新信息,并且呈现指向所述一个或多个其他用户的所述集合中的所述一个或者多个光标的所述当前位置的指针的装置。
11.如权利要求9所述的设备,还包括:用于向所述中央服务器系统发送描述由所述第一用户对所述文档进行的修改的数据,并且识别所述第一用户的光标在所述文档中的当前位置的装置。
12.如权利要求9所述的设备,还包括:用于在由所述第一用户活跃地进行编辑活动的时段期间,每秒多于一次地发送描述所述文档中的修改的所述数据并识别所述第一用户的光标的当前位置的装置。
13.如权利要求12所述的设备,还包括:用于检测所述第一用户何时活动地编辑所述文档,当所述第一用户开始编辑所述文档时启动定时器,并且当所述定时器到期时发送根据所述用户的编辑活动得到的累积的数据的装置。
14.如权利要求9所述的设备,还包括:用于在由所述第一用户活跃地进行编辑活动的时段期间,每秒多于一次地发送描述所述文档中的修改的所述数据并识别所述第一用户的光标的当前位置的装置。
15.一种计算机实现的协作编辑系统,包括配置有以下组件的至少一个计算设备:
用于存储多个电子文档的文档数据库;
接口,用于从编辑在所述文档数据库中存储的电子文档的多个客户端设备接收通信,所述通信包括指示每个光标在所述文档中的位置、与每个光标相关联的用户、以及与每个用户相关联的视口,其中与第一用户相关联的第一光标的当前位置在与第二用户相关联的视口以外;
处理器,用于:
基于所述通信中指示对所述文档的修改的信息,更新在所述文档数据库存储的文档的文档模型的原版拷贝;
向所述多个客户端设备发送指示基于由所述第一用户对所述文档进行的第一修改对所述文档模型的所述原版拷贝进行的修改的信息,并且向所述多个客户端设备发送指示所述多个客户端设备的光标在所述文档中的位置的信息;
其中所述文档经由用户接口显示在客户端设备以在所述文档内示出针对其他客户端设备的光标,并且所述光标的每个光标示出与相应光标相关联的用户标识标签;
通过按照一顺序来解决其中所述通信反映对所述文档的相同部分造成冲突编辑的修改的实例,所述顺序是接收冲突编辑以将一致的规则集应用到所述冲突编辑的顺序;
基于解决的实例来修改存储在所述文档数据库中的所述电子文档,
向所述多个客户端中的每个客户端设备提供反映对所述电子文档的修改的信息,
指示所述多个客户端设备中的每个客户端设备来呈现指向文档中的每个光标的当前位置的指针。
16.如权利要求15所述的系统,还包括:文档日志,所述文档日志将文档与当前正在访问所述文档的用户相关。
17.如权利要求15所述的系统,其中所述处理器被配置为比每秒一次更频繁地提供反映所述修改的信息。
18.如权利要求17所述的系统,其中所述处理器被配置为比每500毫秒一次更频繁地提供反映所述修改的信息。
19.如权利要求17所述的系统,其中所述系统被编程为比每500毫秒一次更频繁地向同时编辑文档的多个用户中的每个用户进行报告。
CN201180027547.5A 2010-04-12 2011-04-12 在驻留的文字处理器中的协作光标 Active CN102934105B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610811777.5A CN106445194B (zh) 2010-04-12 2011-04-12 在驻留的文字处理器中的协作光标

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US32325910P 2010-04-12 2010-04-12
US61/323,259 2010-04-12
PCT/US2011/032138 WO2011130286A1 (en) 2010-04-12 2011-04-12 Collaborative cursors in a hosted word processor

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201610811777.5A Division CN106445194B (zh) 2010-04-12 2011-04-12 在驻留的文字处理器中的协作光标

Publications (2)

Publication Number Publication Date
CN102934105A CN102934105A (zh) 2013-02-13
CN102934105B true CN102934105B (zh) 2016-10-05

Family

ID=44169198

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201180027547.5A Active CN102934105B (zh) 2010-04-12 2011-04-12 在驻留的文字处理器中的协作光标
CN201610811777.5A Active CN106445194B (zh) 2010-04-12 2011-04-12 在驻留的文字处理器中的协作光标

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201610811777.5A Active CN106445194B (zh) 2010-04-12 2011-04-12 在驻留的文字处理器中的协作光标

Country Status (7)

Country Link
US (3) US20110252339A1 (zh)
EP (2) EP2558959A1 (zh)
CN (2) CN102934105B (zh)
AU (1) AU2011240674B2 (zh)
CA (1) CA2796299A1 (zh)
DE (1) DE202011110880U1 (zh)
WO (1) WO2011130286A1 (zh)

Families Citing this family (198)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8788319B2 (en) * 2005-12-30 2014-07-22 Microsoft Corporation Social context monitor
US8326814B2 (en) 2007-12-05 2012-12-04 Box, Inc. Web-based file management system and service
US9396279B1 (en) 2009-02-17 2016-07-19 Jpmorgan Chase Bank, Na Collaborative virtual markup
US20110314392A1 (en) * 2010-06-17 2011-12-22 Cisco Technology, Inc. Incorporating calendar interfaces to dynamically adjust presentation information
JP2012038210A (ja) * 2010-08-10 2012-02-23 Sony Corp 情報処理装置、情報処理方法、コンピュータプログラム及びコンテンツ表示システム
US9930092B2 (en) 2010-12-06 2018-03-27 Zoho Corporation Private Limited Editing an unhosted third party application
WO2012099617A1 (en) 2011-01-20 2012-07-26 Box.Net, Inc. Real time notification of activities that occur in a web-based collaboration environment
US20120210243A1 (en) * 2011-02-11 2012-08-16 Gavin Andrew Ross Uhma Web co-navigation
US8996985B1 (en) 2011-03-16 2015-03-31 Google Inc. Online document processing service for displaying comments
US8681866B1 (en) 2011-04-28 2014-03-25 Google Inc. Method and apparatus for encoding video by downsampling frame resolution
US9330366B2 (en) 2011-05-06 2016-05-03 David H. Sitrick System and method for collaboration via team and role designation and control and management of annotations
US8914735B2 (en) 2011-05-06 2014-12-16 David H. Sitrick Systems and methodologies providing collaboration and display among a plurality of users
US8918724B2 (en) 2011-05-06 2014-12-23 David H. Sitrick Systems and methodologies providing controlled voice and data communication among a plurality of computing appliances associated as team members of at least one respective team or of a plurality of teams and sub-teams within the teams
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
US8924859B2 (en) 2011-05-06 2014-12-30 David H. Sitrick Systems and methodologies supporting collaboration of users as members of a team, among a plurality of computing appliances
US8918723B2 (en) 2011-05-06 2014-12-23 David H. Sitrick Systems and methodologies comprising a plurality of computing appliances having input apparatus and display apparatus and logically structured as a main team
US8826147B2 (en) 2011-05-06 2014-09-02 David H. Sitrick System and methodology for collaboration, with selective display of user input annotations among member computing appliances of a group/team
US8918722B2 (en) 2011-05-06 2014-12-23 David H. Sitrick System and methodology for collaboration in groups with split screen displays
US9106787B1 (en) 2011-05-09 2015-08-11 Google Inc. Apparatus and method for media transmission bandwidth control using bandwidth estimation
US20130117064A1 (en) * 2011-06-17 2013-05-09 Progress Software Corporation Business process analysis combining modeling, simulation and collaboration with web and cloud delivery
US9063912B2 (en) 2011-06-22 2015-06-23 Box, Inc. Multimedia content preview rendering in a cloud content management system
GB2503625A (en) 2011-07-08 2014-01-01 Box Inc Collaboration sessions in a workspace on cloud-based content management system
US9652741B2 (en) 2011-07-08 2017-05-16 Box, Inc. Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof
US9197718B2 (en) 2011-09-23 2015-11-24 Box, Inc. Central management and control of user-contributed content in a web-based collaboration environment and management console thereof
US9948988B2 (en) * 2011-10-04 2018-04-17 Ricoh Company, Ltd. Meeting system that interconnects group and personal devices across a network
US20150199308A1 (en) 2011-10-17 2015-07-16 Google Inc. Systems and methods for controlling the display of online documents
US10430388B1 (en) 2011-10-17 2019-10-01 Google Llc Systems and methods for incremental loading of collaboratively generated presentations
US8266245B1 (en) 2011-10-17 2012-09-11 Google Inc. Systems and methods for incremental loading of collaboratively generated presentations
US8434002B1 (en) * 2011-10-17 2013-04-30 Google Inc. Systems and methods for collaborative editing of elements in a presentation document
US8812946B1 (en) 2011-10-17 2014-08-19 Google Inc. Systems and methods for rendering documents
WO2013062599A1 (en) 2011-10-26 2013-05-02 Box, Inc. Enhanced multimedia content preview rendering in a cloud content management system
US8990307B2 (en) 2011-11-16 2015-03-24 Box, Inc. Resource effective incremental updating of a remote client with events which occurred via a cloud-enabled platform
US8738706B1 (en) * 2011-11-16 2014-05-27 Google Inc. Systems and methods for collaborative document editing
WO2013082320A1 (en) 2011-11-29 2013-06-06 Box, Inc. Mobile platform file and folder selection functionalities for offline access and synchronization
US9760548B2 (en) * 2011-11-30 2017-09-12 The University Of Surrey System, process and method for the detection of common content in multiple documents in an electronic system
US9542366B2 (en) 2011-12-20 2017-01-10 Apple Inc. Smart text in document chat
US20130159849A1 (en) 2011-12-20 2013-06-20 Keng Fai Lee Jump to Collaborator Cursor
US9019123B2 (en) 2011-12-22 2015-04-28 Box, Inc. Health check services for web-based collaboration environments
US9904435B2 (en) 2012-01-06 2018-02-27 Box, Inc. System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment
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
US11232481B2 (en) 2012-01-30 2022-01-25 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US9965745B2 (en) 2012-02-24 2018-05-08 Box, Inc. System and method for promoting enterprise adoption of a web-based collaboration environment
US9195636B2 (en) 2012-03-07 2015-11-24 Box, Inc. Universal file type preview for mobile devices
US9286597B2 (en) * 2012-03-30 2016-03-15 Microsoft Technology Licensing, Llc Tracking co-authoring conflicts using document comments
US20130262992A1 (en) * 2012-04-02 2013-10-03 Jane He Methods and systems for electronic editing and/or signing
US9575981B2 (en) 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
US9367522B2 (en) 2012-04-13 2016-06-14 Google Inc. Time-based presentation editing
US20130283147A1 (en) * 2012-04-19 2013-10-24 Sharon Wong Web-based collaborative document review system
US9185429B1 (en) 2012-04-30 2015-11-10 Google Inc. Video encoding and decoding using un-equal error protection
US9413587B2 (en) 2012-05-02 2016-08-09 Box, Inc. System and method for a third-party application to access content within a cloud-based platform
WO2013166520A1 (en) 2012-05-04 2013-11-07 Box, Inc. Repository redundancy implementation of a system which incrementally updates clients with events that occurred via cloud-enabled platform
US20130311598A1 (en) * 2012-05-16 2013-11-21 Apple Inc. Cloud-based data item sharing and collaboration among groups of users
US9691051B2 (en) 2012-05-21 2017-06-27 Box, Inc. Security enhancement through application access control
US8914900B2 (en) 2012-05-23 2014-12-16 Box, Inc. Methods, architectures and security mechanisms for a third-party application to access content in a cloud-based platform
GB2505072A (en) 2012-07-06 2014-02-19 Box Inc Identifying users and collaborators as search results in a cloud-based system
US9712510B2 (en) 2012-07-06 2017-07-18 Box, Inc. Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform
US9237170B2 (en) 2012-07-19 2016-01-12 Box, Inc. Data loss prevention (DLP) methods and architectures by a cloud service
US9794256B2 (en) 2012-07-30 2017-10-17 Box, Inc. System and method for advanced control tools for administrators in a cloud-based service
US9369520B2 (en) 2012-08-19 2016-06-14 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
US8745267B2 (en) 2012-08-19 2014-06-03 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
GB2513671A (en) 2012-08-27 2014-11-05 Box Inc Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment
US9135462B2 (en) 2012-08-29 2015-09-15 Box, Inc. Upload and download streaming encryption to/from a cloud-based platform
US9117087B2 (en) 2012-09-06 2015-08-25 Box, Inc. System and method for creating a secure channel for inter-application communication based on intents
US9195519B2 (en) 2012-09-06 2015-11-24 Box, Inc. Disabling the self-referential appearance of a mobile application in an intent via a background registration
JP2014056319A (ja) * 2012-09-11 2014-03-27 Canon Inc 情報処理装置およびプログラム、制御方法
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
US9292833B2 (en) 2012-09-14 2016-03-22 Box, Inc. Batching notifications of activities that occur in a web-based collaboration environment
US10200256B2 (en) 2012-09-17 2019-02-05 Box, Inc. System and method of a manipulative handle in an interactive mobile user interface
US9553758B2 (en) 2012-09-18 2017-01-24 Box, Inc. Sandboxing individual applications to specific user folders in a cloud-based service
US10915492B2 (en) 2012-09-19 2021-02-09 Box, Inc. Cloud-based platform enabled with media content indexed for text-based searches and/or metadata extraction
US10958694B2 (en) * 2012-09-27 2021-03-23 Hewlett Packard Enterprise Development Lp Sharing content between collocated mobile devices in an ad-hoc private social group
US9959420B2 (en) 2012-10-02 2018-05-01 Box, Inc. System and method for enhanced security and management mechanisms for enterprise administrators in a cloud-based environment
US9495364B2 (en) 2012-10-04 2016-11-15 Box, Inc. Enhanced quick search features, low-barrier commenting/interactive features in a collaboration platform
US9665349B2 (en) 2012-10-05 2017-05-30 Box, Inc. System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform
US9628268B2 (en) 2012-10-17 2017-04-18 Box, Inc. Remote key management in a cloud-based environment
US9756022B2 (en) 2014-08-29 2017-09-05 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US8819587B1 (en) 2012-10-30 2014-08-26 Google Inc. Methods of managing items in a shared workspace
US10140198B1 (en) * 2012-10-30 2018-11-27 Google Llc Networked desktop environment
US20150193492A1 (en) * 2012-11-08 2015-07-09 Google Inc. Editing sub-section of an electronic document via notification message
US9529785B2 (en) 2012-11-27 2016-12-27 Google Inc. Detecting relationships between edits and acting on a subset of edits
CN103853319A (zh) * 2012-11-30 2014-06-11 英业达科技有限公司 依据输入操作控制相异装置的系统、服务器及其方法
FR2998995A1 (fr) * 2012-12-03 2014-06-06 France Telecom Procede de communication entre plusieurs utilisateurs munis de terminaux de communication, par l'intermediaire d'une espace virtuel de communication
JP5916590B2 (ja) * 2012-12-06 2016-05-11 コニカミノルタ株式会社 オブジェクト操作装置及びオブジェクト操作制御プログラム
US10235383B2 (en) 2012-12-19 2019-03-19 Box, Inc. Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment
CN103118067B (zh) * 2012-12-26 2017-02-08 珠海金山办公软件有限公司 一种多设备间智能传输并打开文件的方法和系统
US9396245B2 (en) 2013-01-02 2016-07-19 Box, Inc. Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9462037B2 (en) 2013-01-07 2016-10-04 Google Inc. Dynamically sizing chunks in a partially loaded spreadsheet model
US9953036B2 (en) 2013-01-09 2018-04-24 Box, Inc. File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9507795B2 (en) 2013-01-11 2016-11-29 Box, Inc. Functionalities, features, and user interface of a synchronization client to a cloud-based environment
US9311622B2 (en) * 2013-01-15 2016-04-12 Google Inc. Resolving mutations in a partially-loaded spreadsheet model
US9172740B1 (en) 2013-01-15 2015-10-27 Google Inc. Adjustable buffer remote access
US10599671B2 (en) 2013-01-17 2020-03-24 Box, Inc. Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform
US9311692B1 (en) 2013-01-25 2016-04-12 Google Inc. Scalable buffer remote access
US9225979B1 (en) 2013-01-30 2015-12-29 Google Inc. Remote access encoding
US20140258968A1 (en) * 2013-03-05 2014-09-11 Research In Motion Limited Visual Representation Of Edits For Collaborative Application Development
US20140258969A1 (en) * 2013-03-05 2014-09-11 Research In Motion Limited Web-Based Integrated Development Environment For Real-Time Collaborative Application Development
US9158518B2 (en) 2013-03-11 2015-10-13 Blackberry Limited Collaborative application development environment using a connected device
US10049084B2 (en) * 2013-03-18 2018-08-14 Hsc Acquisition, Llc Rules based content management system and method
US9773264B2 (en) 2013-03-26 2017-09-26 Blackberry Limited Method for providing composite user interface controls and an online storefront for same
US20140337718A1 (en) * 2013-05-07 2014-11-13 International Business Machines Corporation Graphical marking to indicate edited data
US10846074B2 (en) 2013-05-10 2020-11-24 Box, Inc. Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client
US10725968B2 (en) 2013-05-10 2020-07-28 Box, Inc. Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform
US9633037B2 (en) 2013-06-13 2017-04-25 Box, Inc Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
US9588954B2 (en) * 2013-06-15 2017-03-07 Microsoft Technology Licensing, Llc Application/document collaboration in a multi-device environment
US10133720B2 (en) * 2013-06-15 2018-11-20 Microsoft Technology Licensing, Llc Showing presence of multiple authors in a spreadsheet
US9805050B2 (en) 2013-06-21 2017-10-31 Box, Inc. Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform
US9489114B2 (en) * 2013-06-24 2016-11-08 Microsoft Technology Licensing, Llc Showing interactions as they occur on a whiteboard
US9535924B2 (en) 2013-07-30 2017-01-03 Box, Inc. Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US10817613B2 (en) 2013-08-07 2020-10-27 Microsoft Technology Licensing, Llc Access and management of entity-augmented content
US9971752B2 (en) 2013-08-19 2018-05-15 Google Llc Systems and methods for resolving privileged edits within suggested edits
US10258886B2 (en) 2013-09-04 2019-04-16 Nvidia Corporation Dynamic interface control device mapping when game sharing
US11130055B2 (en) 2013-09-04 2021-09-28 Nvidia Corporation System and method for granting remote access to a video game executed on a video game console or network client
JP2015052821A (ja) * 2013-09-05 2015-03-19 株式会社東芝 通信装置および通信方法
GB2518298A (en) 2013-09-13 2015-03-18 Box Inc High-availability architecture for a cloud-based concurrent-access collaboration platform
US10509527B2 (en) 2013-09-13 2019-12-17 Box, Inc. Systems and methods for configuring event-based automation in cloud-based collaboration platforms
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
US9348803B2 (en) 2013-10-22 2016-05-24 Google Inc. Systems and methods for providing just-in-time preview of suggestion resolutions
US10866931B2 (en) 2013-10-22 2020-12-15 Box, Inc. Desktop application for accessing a cloud collaboration platform
US9407596B2 (en) * 2013-11-20 2016-08-02 International Business Machines Corporation Interactive splitting of entries in social collaboration environments
JP6244902B2 (ja) * 2013-12-27 2017-12-13 富士通株式会社 ガジェット間表示連携方法、ガジェット間表示連携プログラム及び情報処理装置
US20150199454A1 (en) * 2014-01-10 2015-07-16 Brigham Young University Concurrent design and analysis of an engineering object
BR112016018374B1 (pt) * 2014-02-11 2022-08-16 Wix.Com Ltd Sistema para modificar um website ou aplicativo interativo, e, método para modificar um website ou aplicativo interativo
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
CN104980453B (zh) * 2014-04-02 2018-10-30 纬创资通股份有限公司 同步显示操作信息的方法、系统、电子装置及服务器
US10530854B2 (en) 2014-05-30 2020-01-07 Box, Inc. Synchronization of permissioned content in cloud-based environments
US9894119B2 (en) 2014-08-29 2018-02-13 Box, Inc. Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms
US10574442B2 (en) 2014-08-29 2020-02-25 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US10038731B2 (en) 2014-08-29 2018-07-31 Box, Inc. Managing flow-based interactions with cloud-based shared content
US20160098162A1 (en) * 2014-10-06 2016-04-07 Lenovo (Singapore) Pte. Ltd. Pen based locking mechanism
CN105630757B (zh) * 2014-11-07 2019-11-26 珠海金山办公软件有限公司 一种数据编辑方法及装置
US10191890B2 (en) * 2014-12-17 2019-01-29 Microsoft Technology Licensing, Llc Persistent viewports
DE112016001140T5 (de) * 2015-03-09 2017-11-30 Sensory Technologies LLC Interaktives Mehrbenutzer-Anzeigesystem und Verfahren
US9987561B2 (en) * 2015-04-02 2018-06-05 Nvidia Corporation System and method for multi-client control of a common avatar
US9953018B2 (en) * 2015-05-01 2018-04-24 Microsoft Technology Licensing, Llc Transfer of content between documents of different storage types
US10740349B2 (en) 2015-06-22 2020-08-11 Microsoft Technology Licensing, Llc Document storage for reuse of content within documents
US10339183B2 (en) 2015-06-22 2019-07-02 Microsoft Technology Licensing, Llc Document storage for reuse of content within documents
US10394949B2 (en) 2015-06-22 2019-08-27 Microsoft Technology Licensing, Llc Deconstructing documents into component blocks for reuse in productivity applications
US10565297B2 (en) 2015-06-26 2020-02-18 Microsoft Technology Licensing, Llc. Rumored changes for real-time coauthoring
US9519766B1 (en) 2015-09-07 2016-12-13 Voicebox Technologies Corporation System and method of providing and validating enhanced CAPTCHAs
US9448993B1 (en) 2015-09-07 2016-09-20 Voicebox Technologies Corporation System and method of recording utterances using unmanaged crowds for natural language processing
US9401142B1 (en) 2015-09-07 2016-07-26 Voicebox Technologies Corporation System and method for validating natural language content using crowdsourced validation jobs
US9734138B2 (en) 2015-09-07 2017-08-15 Voicebox Technologies Corporation System and method of annotating utterances based on tags assigned by unmanaged crowds
WO2017044415A1 (en) * 2015-09-07 2017-03-16 Voicebox Technologies Corporation System and method for eliciting open-ended natural language responses to questions to train natural language processors
US20170075507A1 (en) 2015-09-16 2017-03-16 International Business Machines Corporation Displaying user activity in real-time collaborative editing systems
US10204077B2 (en) * 2015-09-21 2019-02-12 Facebook, Inc. Rich text editor
US11194398B2 (en) * 2015-09-26 2021-12-07 Intel Corporation Technologies for adaptive rendering using 3D sensors
CN105302787A (zh) * 2015-11-10 2016-02-03 浪潮软件股份有限公司 一种表格数据编辑的方法及装置
US20170129870A1 (en) * 2015-11-11 2017-05-11 Mohan Murali Alapati Compositions and methods for the treatment of neurological diseases
US9667676B1 (en) * 2016-01-29 2017-05-30 Dropbox, Inc. Real time collaboration and document editing by multiple participants in a content management system
US11102188B2 (en) * 2016-02-01 2021-08-24 Red Hat, Inc. Multi-tenant enterprise application management
CN107515710A (zh) * 2016-06-16 2017-12-26 阿里巴巴集团控股有限公司 即时通讯处理方法、装置、设备和系统
KR101774267B1 (ko) * 2016-06-27 2017-09-04 주식회사 한글과컴퓨터 전자 문서의 공동 편집을 위한 협업 지원 장치 및 그 동작 방법
US10733478B2 (en) * 2016-08-31 2020-08-04 Facebook, Inc. Systems and methods for processing media content that depict objects
US20180063206A1 (en) * 2016-08-31 2018-03-01 Microsoft Technology Licensing, Llc Media Communication
US10635286B2 (en) * 2016-10-23 2020-04-28 Oracle International Corporation Visualizations supporting unlimited rows and columns
US11003632B2 (en) 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
US10382547B2 (en) * 2017-01-31 2019-08-13 Box, Inc. Collaborative cloud-based document editing from a browser-enabled platform native application
US11200071B2 (en) * 2017-02-27 2021-12-14 International Business Machines Corporation Cognitive scrollbar
US11163616B2 (en) * 2017-03-07 2021-11-02 Polyjuice Ab Systems and methods for enabling interoperation of independent software applications
US10666593B2 (en) * 2017-03-21 2020-05-26 Domo, Inc. Systems and methods for messaging and collaboration
KR101880507B1 (ko) * 2017-04-21 2018-07-20 주식회사 한글과컴퓨터 웹 문서에 삽입된 도형의 크기 조정을 지원하는 클라이언트 단말 장치 및 그 동작 방법
US10068002B1 (en) 2017-04-25 2018-09-04 Palantir Technologies Inc. Systems and methods for adaptive data replication
KR101880508B1 (ko) * 2017-04-27 2018-07-20 주식회사 한글과컴퓨터 웹 문서에서 목록 생성을 지원하는 웹 문서 편집 지원 장치 및 방법
KR101781844B1 (ko) 2017-05-19 2017-09-27 주식회사 한글과컴퓨터 마크업 언어 기반 문서의 조합 글자 동기화 장치 및 그의 동작 방법
US11301431B2 (en) 2017-06-02 2022-04-12 Open Text Sa Ulc System and method for selective synchronization
US20190004639A1 (en) * 2017-06-29 2019-01-03 Microsoft Technology Licensing, Llc Providing living avatars within virtual meetings
US10380196B2 (en) * 2017-12-08 2019-08-13 Palantir Technologies Inc. Systems and methods for using linked documents
CN110209308A (zh) * 2018-03-13 2019-09-06 腾讯科技(深圳)有限公司 光标控制方法及相关设备
CN108549623B (zh) * 2018-04-12 2022-03-01 北京三快在线科技有限公司 协作文档编辑控制方法、装置、电子设备及存储介质
US20190361580A1 (en) * 2018-05-23 2019-11-28 Microsoft Technology Licensing, Llc Progressive presence user interface for collaborative documents
US10902188B2 (en) * 2018-08-20 2021-01-26 International Business Machines Corporation Cognitive clipboard
CN109710909B (zh) * 2018-12-29 2020-07-07 腾讯科技(深圳)有限公司 内容获取方法、装置、终端及存储介质
CN109918345B (zh) * 2019-02-22 2023-11-03 腾讯科技(深圳)有限公司 文档处理方法、装置、终端及存储介质
US11244100B2 (en) * 2019-05-08 2022-02-08 Microsoft Technology Licensing, Llc Visualizing changes based on document scope
US11379016B2 (en) 2019-05-23 2022-07-05 Intel Corporation Methods and apparatus to operate closed-lid portable computers
CN110290218B (zh) * 2019-07-05 2022-04-19 永中软件股份有限公司 文件批注方法和系统、计算机可读介质
US11652930B2 (en) * 2019-07-30 2023-05-16 Cimpress Schweiz Gmbh Systems and methods for synchronizing document edits using application state variables
JP2021043719A (ja) * 2019-09-11 2021-03-18 富士ゼロックス株式会社 情報処理装置及びプログラム
US11543873B2 (en) 2019-09-27 2023-01-03 Intel Corporation Wake-on-touch display screen devices and related methods
CN110752984B (zh) * 2019-10-24 2021-10-15 北京字节跳动网络技术有限公司 一种显示在线文档的方法、装置、电子设备及存储介质
US11733761B2 (en) 2019-11-11 2023-08-22 Intel Corporation Methods and apparatus to manage power and performance of computing devices based on user presence
US20210234908A1 (en) * 2019-12-20 2021-07-29 Atlassian Pty Ltd. Systems and methods for collaborative editing an electronic resource using client device designations
US11809535B2 (en) 2019-12-23 2023-11-07 Intel Corporation Systems and methods for multi-modal user device authentication
US11360528B2 (en) 2019-12-27 2022-06-14 Intel Corporation Apparatus and methods for thermal management of electronic user devices based on user activity
US11157089B2 (en) * 2019-12-27 2021-10-26 Hypori Llc Character editing on a physical device via interaction with a virtual device user interface
EP4104002A4 (en) * 2020-02-14 2023-08-09 Magic Leap, Inc. 3D OBJECT ANNOTATION
US11388209B2 (en) * 2020-03-19 2022-07-12 DTEN, Inc. Interactive broadcast
US20210365231A1 (en) * 2020-05-25 2021-11-25 Shopify Inc. Systems and methods for displaying a cursor on another user device
US20220109651A1 (en) * 2020-10-07 2022-04-07 Microsoft Technology Licensing, Llc Interactive components for user collaboration
WO2022079123A1 (en) * 2020-10-13 2022-04-21 Pitch Software Gmbh Workspace video collaboration
US11366583B1 (en) * 2021-02-02 2022-06-21 Bank Of America Corporation Computer-to-computer users# edit and event transfer and synchronization
US11863600B2 (en) * 2021-06-30 2024-01-02 Dropbox, Inc. Techniques for efficient communication during a video collaboration session
US11863615B2 (en) 2022-03-18 2024-01-02 T-Mobile Usa, Inc. Content management systems providing zero recovery time objective
CN115543140A (zh) * 2022-09-26 2022-12-30 深圳市国鑫恒运信息安全有限公司 一种在sol页面展示bios设置界面光标的控制方法
US11935007B1 (en) 2022-12-27 2024-03-19 Dropbox, Inc. Generating collaborative content items to provide customizable graphical representations in online graphical user interfaces

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662210B1 (en) * 1997-03-31 2003-12-09 Ncr Corporation Method of remote collaboration system

Family Cites Families (132)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5528743A (en) 1993-05-27 1996-06-18 Apple Computer, Inc. Method and apparatus for inserting text on a pen-based computer system
US5793966A (en) 1995-12-01 1998-08-11 Vermeer Technologies, Inc. Computer system and computer-implemented process for creation and maintenance of online services
US5761669A (en) 1995-06-06 1998-06-02 Microsoft Corporation Controlling access to objects on multiple operating systems
US6651108B2 (en) 1995-08-14 2003-11-18 Next Software, Inc. Method and apparatus for generating object-oriented world wide web pages
US5930813A (en) 1995-12-21 1999-07-27 Adobe Systems Incorporated Method and system for designating objects
US5758358A (en) 1996-01-29 1998-05-26 Microsoft Corporation Method and system for reconciling sections of documents
US6006239A (en) 1996-03-15 1999-12-21 Microsoft Corporation Method and system for allowing multiple users to simultaneously edit a spreadsheet
US5895476A (en) 1996-09-09 1999-04-20 Design Intelligence, Inc. Design engine for automatic reformatting for design and media
US6006252A (en) 1996-10-08 1999-12-21 Wolfe; Mark A. System and method for communicating information relating to a network resource
JP3739525B2 (ja) 1996-12-27 2006-01-25 富士通株式会社 可変遅延回路及び半導体集積回路装置
JP3143079B2 (ja) 1997-05-30 2001-03-07 松下電器産業株式会社 辞書索引作成装置と文書検索装置
US7031954B1 (en) 1997-09-10 2006-04-18 Google, Inc. Document retrieval system with access control
JPH11208130A (ja) 1998-01-23 1999-08-03 Fujicopian Co Ltd 感熱転写記録媒体
AUPP252298A0 (en) * 1998-03-24 1998-04-23 80-20 Software Pty Limited Document management software
US6154738A (en) 1998-03-27 2000-11-28 Call; Charles Gainor Methods and apparatus for disseminating product information via the internet using universal product codes
US6243706B1 (en) 1998-07-24 2001-06-05 Avid Technology, Inc. System and method for managing the creation and production of computer generated works
US6377354B1 (en) 1998-09-21 2002-04-23 Microsoft Corporation System and method for printing a document having merged text and graphics contained therein
JP3904752B2 (ja) 1999-01-26 2007-04-11 アルプス電気株式会社 反射型液晶表示装置およびその製造方法
US6512531B1 (en) 1999-04-09 2003-01-28 Adobe Systems Incorporated Font navigation tool
US7064757B1 (en) 1999-05-07 2006-06-20 Apple Computer, Inc. Automatic synthesis of font tables for character layout
US6501779B1 (en) 1999-05-26 2002-12-31 Nxi Communications, Inc. Network communication system
US7330875B1 (en) 1999-06-15 2008-02-12 Microsoft Corporation System and method for recording a presentation for on-demand viewing over a computer network
US6971105B1 (en) * 1999-07-29 2005-11-29 Rehle Visual Communications Llc Method, apparatus, and computer program product for deferred completion of multi-step user transaction applications
US6327584B1 (en) 1999-07-30 2001-12-04 Hewlett-Packard Company Apparatus and method for using version control to dynamically update files while the files are available for access
JP3498020B2 (ja) 1999-09-29 2004-02-16 Nec液晶テクノロジー株式会社 アクティブマトリックス基板及びその製造方法
US7047033B2 (en) 2000-02-01 2006-05-16 Infogin Ltd Methods and apparatus for analyzing, processing and formatting network information such as web-pages
US6704798B1 (en) 2000-02-08 2004-03-09 Hewlett-Packard Development Company, L.P. Explicit server control of transcoding representation conversion at a proxy or client location
US7450114B2 (en) 2000-04-14 2008-11-11 Picsel (Research) Limited User interface systems and methods for manipulating and viewing digital documents
US7210099B2 (en) 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
US7035910B1 (en) 2000-06-29 2006-04-25 Microsoft Corporation System and method for document isolation
US6983316B1 (en) 2000-07-18 2006-01-03 Western Digital Ventures, Inc. Method of and content delivery server for delivering content to a personal computer having a disk drive which includes a network address for the content delivery server and a server-contacting program
CA2424713C (en) 2000-08-21 2007-12-04 Thoughtslinger Corporation Simultaneous multi-user document editing system
US6972748B1 (en) 2000-08-31 2005-12-06 Microsoft Corporation J-key input for computer systems
WO2002019097A1 (en) * 2000-09-01 2002-03-07 International Interactive Commerce, Ltd. System and method for collaboration using web browsers
US7152203B2 (en) 2000-09-11 2006-12-19 Appeon Corporation Independent update and assembly of web page elements
US6717593B1 (en) 2000-09-12 2004-04-06 Avaya Technology Corp. Mark-up language implementation of graphical or non-graphical user interfaces
TW538275B (en) 2000-09-18 2003-06-21 Alps Electric Co Ltd Reflective liquid crystal display device
US20020035580A1 (en) 2000-09-21 2002-03-21 Yoshinori Tanabe Computer readable medium containing HTML document generation program
US20020133492A1 (en) 2000-11-16 2002-09-19 Samson Information Tech, L.L.C. System and methods for web browser based document scanning, remote storage, and retrieval
US6766334B1 (en) 2000-11-21 2004-07-20 Microsoft Corporation Project-based configuration management method and apparatus
US6879997B1 (en) 2000-11-27 2005-04-12 Nokia Corporation Synchronously shared online documents
US8255791B2 (en) 2000-11-29 2012-08-28 Dov Koren Collaborative, flexible, interactive real-time displays
US20020129096A1 (en) 2001-02-14 2002-09-12 Mansour Peter M. Platform-independent distributed user interface client architecture
KR100685946B1 (ko) 2001-03-02 2007-02-23 엘지.필립스 엘시디 주식회사 액정 디스플레이 패널 및 그 제조방법
GB2373085B (en) 2001-03-08 2004-10-06 Ibm Method, computer program and system for style sheet generation
US6725219B2 (en) 2001-03-13 2004-04-20 Seiko Epson Corporation Internet presentation system
US7039643B2 (en) 2001-04-10 2006-05-02 Adobe Systems Incorporated System, method and apparatus for converting and integrating media files
JP3692054B2 (ja) 2001-05-21 2005-09-07 株式会社東芝 文書構造変換方法および文書構造変換装置およびプログラム
JP4081643B2 (ja) 2001-08-01 2008-04-30 株式会社日立製作所 液晶表示装置
WO2003014965A2 (en) 2001-08-03 2003-02-20 Koninklijke Philips Electronics N.V. Method of and system for updating a document
US7529778B1 (en) 2001-12-12 2009-05-05 Microsoft Corporation System and method for providing access to consistent point-in-time file versions
US6938070B2 (en) 2001-12-17 2005-08-30 Dassault Systemes Conflict resolution for collaborative work system
US20030179230A1 (en) 2002-03-25 2003-09-25 Gerry Seidman Method and apparatus for providing remote peer-to-peer collaborative user interfaces
US7114160B2 (en) 2002-04-17 2006-09-26 Sbc Technology Resources, Inc. Web content customization via adaptation Web services
JP3857663B2 (ja) 2002-04-30 2006-12-13 株式会社東芝 構造化文書編集装置、構造化文書編集方法及びプログラム
US7190468B2 (en) 2002-07-17 2007-03-13 Hewlett-Packard Development Company, L.P. Background document rendering system and method
US6928476B2 (en) 2002-08-23 2005-08-09 Mirra, Inc. Peer to peer remote data storage and collaboration
CA2421825C (en) 2002-09-20 2012-07-10 Mks Inc. Version control system for software development
US7231597B1 (en) 2002-10-07 2007-06-12 Microsoft Corporation Method, apparatus, and computer-readable medium for creating asides within an electronic document
CN1244874C (zh) * 2002-10-12 2006-03-08 鸿富锦精密工业(深圳)有限公司 多点协同作业系统及方法
US7818678B2 (en) 2002-10-31 2010-10-19 Litera Technology Llc Collaborative document development and review system
US20040088374A1 (en) 2002-10-31 2004-05-06 Webb James D. Aggregation and sharing of patient data
US7904807B2 (en) 2002-11-05 2011-03-08 Xerox Corporation System and method for copying formatting information between Web pages
US7698346B2 (en) 2003-03-18 2010-04-13 Coral Networks, Inc. Network operating system and method
GB0307714D0 (en) 2003-04-03 2003-05-07 Ibm System and method for information collation
US7426543B2 (en) 2003-04-25 2008-09-16 Sap Ag Accessing data stored in multiple locations
US7349929B2 (en) 2003-04-25 2008-03-25 Sap Ag Accessing data based on user identity
US7506069B2 (en) 2003-04-25 2009-03-17 Sap Ag Accessing data in a computer network
US7890928B2 (en) 2003-07-26 2011-02-15 Pilla Gurumurty Patrudu Mechanism and system for representing and processing rules
US20050033811A1 (en) 2003-08-07 2005-02-10 International Business Machines Corporation Collaborative email
JP2005131915A (ja) 2003-10-30 2005-05-26 Seiko Epson Corp 印刷装置および印刷方法並びに印刷装置用のプログラム
US20050125461A1 (en) 2003-12-08 2005-06-09 International Business Machines Corporation Version control of metadata
GB2410814A (en) 2004-02-05 2005-08-10 Stephen John Doyle Document conversion enabling browser content across different types of terminal devices
US7812860B2 (en) 2004-04-01 2010-10-12 Exbiblio B.V. Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device
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
US7487448B2 (en) 2004-04-30 2009-02-03 Microsoft Corporation Document mark up methods and systems
US20060031751A1 (en) 2004-05-26 2006-02-09 Shai Ehud Method for creating editable web sites with increased performance & stability
US20060048047A1 (en) * 2004-08-27 2006-03-02 Peng Tao Online annotation management system and method
US7707498B2 (en) 2004-09-30 2010-04-27 Microsoft Corporation Specific type content manager in an electronic document
US7656543B2 (en) 2004-11-12 2010-02-02 Hewlett-Packard Development Company, L.P. Albuming images
US8065604B2 (en) 2004-12-30 2011-11-22 Massachusetts Institute Of Technology Techniques for relating arbitrary metadata to media files
US7792788B2 (en) * 2005-03-04 2010-09-07 Microsoft Corporation Method and system for resolving conflicts operations in a collaborative editing environment
US7653875B2 (en) 2005-04-07 2010-01-26 Microsoft Corporation Browser sensitive web content delivery
US20060248121A1 (en) 2005-04-15 2006-11-02 Michael Cacenco System and method for supporting packaging, publishing and republishing of wireless component applications
US7491399B2 (en) 2005-06-23 2009-02-17 University Of Maryland Biotechnology Institute In Ovo vaccine against infectious bursal disease
US8539604B2 (en) 2005-08-03 2013-09-17 International Business Machines Corporation Method, system and program product for versioning access control settings
US20070061714A1 (en) 2005-09-09 2007-03-15 Microsoft Corporation Quick styles for formatting of documents
US7953696B2 (en) 2005-09-09 2011-05-31 Microsoft Corporation Real-time synchronization of XML data between applications
US7735018B2 (en) 2005-09-13 2010-06-08 Spacetime3D, Inc. System and method for providing three-dimensional graphical user interface
US20070073899A1 (en) 2005-09-15 2007-03-29 Judge Francis P Techniques to synchronize heterogeneous data sources
US7958448B2 (en) 2005-10-25 2011-06-07 Celartem, Inc. Systems, methods, user interfaces, and computer-readable media for activating and managing fonts
CA2524527A1 (en) 2005-10-26 2007-04-26 Ibm Canada Limited - Ibm Canada Limitee Systems, methods and tools for facilitating group collaborations
GB0523703D0 (en) * 2005-11-22 2005-12-28 Ibm Collaborative editing of a document
US7774703B2 (en) 2006-02-09 2010-08-10 Microsoft Corporation Virtual shadow awareness for multi-user editors
US20070220068A1 (en) 2006-02-15 2007-09-20 Bruce Thompson Electronic document and business process control
US8307119B2 (en) 2006-03-31 2012-11-06 Google Inc. Collaborative online spreadsheet application
US7743018B2 (en) 2006-04-10 2010-06-22 International Business Machines Corporation Transient storage in distributed collaborative computing environments
US8230351B2 (en) * 2006-04-11 2012-07-24 Sri International Method and apparatus for collaborative work
US7769727B2 (en) 2006-05-31 2010-08-03 Microsoft Corporation Resolving update-delete conflicts
JP4795127B2 (ja) 2006-06-06 2011-10-19 三菱電機株式会社 液晶表示装置およびその製造方法
US8745227B2 (en) 2006-06-07 2014-06-03 Apple Inc. Distributed secure content delivery
US8250082B2 (en) 2006-06-23 2012-08-21 Microsoft Corporation Cross domain communication
US20080028302A1 (en) 2006-07-31 2008-01-31 Steffen Meschkat Method and apparatus for incrementally updating a web page
US20080059539A1 (en) 2006-08-08 2008-03-06 Richard Chin Document Collaboration System and Method
JP4979312B2 (ja) 2006-09-09 2012-07-18 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US7624145B2 (en) 2007-01-06 2009-11-24 Microsoft Corporation Persistent collaborative framework for interactive web applications
US8019780B1 (en) 2007-03-30 2011-09-13 Google Inc. Handling document revision history information in the presence of a multi-user permissions model
US8190987B2 (en) 2007-10-25 2012-05-29 Microsoft Corporation Private views of data and local calculations during real time collaboration
US20090192845A1 (en) 2008-01-30 2009-07-30 Microsoft Corporation Integrated real time collaboration experiences with online workspace
US9436927B2 (en) 2008-03-14 2016-09-06 Microsoft Technology Licensing, Llc Web-based multiuser collaboration
GB2458388A (en) 2008-03-21 2009-09-23 Dressbot Inc A collaborative online shopping environment, virtual mall, store, etc. in which payments may be shared, products recommended and users modelled.
CN101556593A (zh) * 2008-04-11 2009-10-14 北京亿企通信息技术有限公司 一种多人协同工作文档管理的方法和系统
US7478330B1 (en) 2008-04-30 2009-01-13 International Business Machines Corporation Systems and methods involving improved web browsing
US8209706B2 (en) 2008-06-27 2012-06-26 Microsoft Corporation Inter-frame messaging between different domains
US8321783B2 (en) 2008-09-30 2012-11-27 Apple Inc. Visualizing content positioning within a document using layers
US8073812B2 (en) 2008-10-15 2011-12-06 Microsoft Corporation Preserving user intention in distributed data systems
US20100153948A1 (en) 2008-12-11 2010-06-17 Ghost, Inc. Combined web and local computing environment
US7962547B2 (en) 2009-01-08 2011-06-14 International Business Machines Corporation Method for server-side logging of client browser state through markup language
JP2010181978A (ja) * 2009-02-03 2010-08-19 Seiko Epson Corp 共同作業装置及び共同作業の制御方法
US8775939B2 (en) 2009-02-20 2014-07-08 Fuji Xerox Co., Ltd. Systems and methods for audience-enabled access to presentation content
US9294421B2 (en) 2009-03-23 2016-03-22 Google Inc. System and method for merging edits for a conversation in a hosted conversation system
US8446377B2 (en) 2009-03-24 2013-05-21 Microsoft Corporation Dual screen portable touch sensitive computing system
US8782524B2 (en) 2009-03-31 2014-07-15 Samsung Electronics Co., Ltd Method and apparatus for controlling presentation slides
US8179417B2 (en) * 2009-07-22 2012-05-15 Hewlett-Packard Development Company, L.P. Video collaboration
US8327812B2 (en) 2009-07-24 2012-12-11 Deere & Company Nucleate boiling cooling system
US9049258B2 (en) 2009-09-17 2015-06-02 Border Stylo, LLC Systems and methods for anchoring content objects to structured documents
JP5503300B2 (ja) 2010-01-14 2014-05-28 株式会社ジャパンディスプレイ 液晶表示装置の製造方法、液晶表示装置および電子機器
US20110178981A1 (en) 2010-01-21 2011-07-21 International Business Machines Corporation Collecting community feedback for collaborative document development
US8572022B2 (en) 2010-03-02 2013-10-29 Microsoft Corporation Automatic synchronization conflict resolution
US8892632B2 (en) 2010-06-04 2014-11-18 Microsoft Corporation Client-server interaction frequency control
US20120072819A1 (en) 2010-09-21 2012-03-22 Google, Inc. Asynchronous Redrawing in Online Document Processors
CN103238150B (zh) 2010-11-02 2016-08-17 谷歌公司 由多个用户对博客的实时同步文档编辑

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662210B1 (en) * 1997-03-31 2003-12-09 Ncr Corporation Method of remote collaboration system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Differential synchronization;Neil Fraser;《DocEng "09 Proceedings of the 9th ACM symposium on Document engineering》;20090918;第13-20页 *
NetEdit: A Collaborative Editor;Ali A. Zafer等;《URL:http://scholar.lib.vt.edu/theses/available/etd-05032001-113750/unrestricted/FinaIThesis.pdf》;20010423;第1、2、18-48、59-60页 *

Also Published As

Publication number Publication date
US9280529B2 (en) 2016-03-08
EP2558959A1 (en) 2013-02-20
EP3214556A3 (en) 2017-10-18
CN102934105A (zh) 2013-02-13
CA2796299A1 (en) 2011-10-20
CN106445194B (zh) 2019-07-09
EP3214556A2 (en) 2017-09-06
WO2011130286A1 (en) 2011-10-20
CN106445194A (zh) 2017-02-22
AU2011240674B2 (en) 2015-04-02
US20160139768A1 (en) 2016-05-19
US20110252339A1 (en) 2011-10-13
US10082927B2 (en) 2018-09-25
DE202011110880U1 (de) 2017-01-20
US20120110443A1 (en) 2012-05-03

Similar Documents

Publication Publication Date Title
CN102934105B (zh) 在驻留的文字处理器中的协作光标
US10678999B2 (en) Real-time collaboration in a hosted word processor
US9384176B2 (en) Rich content in a browser-based word processor
AU2011240674A1 (en) Collaborative cursors in a hosted word processor
EP2558962B1 (en) Rich browser-based word processor
US7792947B1 (en) Apparatus and method for dynamically coordinating the delivery of computer readable media
EP2558958B1 (en) Row heights in electronic documents
WO2011130281A1 (en) Zooming in a web browser
US20110277039A1 (en) Image Storage In Electronic Documents
AU2015202042A1 (en) Rich browser-based word processor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: Google limited liability company

Address before: American California

Patentee before: Google Inc.

CP01 Change in the name or title of a patent holder