独立于设备、应用、用户和时间共享内容和工具的方法与流程

文档序号:33507315发布日期:2023-03-18 03:50阅读:509来源:国知局
独立于设备、应用、用户和时间共享内容和工具的方法与流程
独立于设备、应用、用户和时间共享内容和工具的方法


背景技术:

1.在网络之上使用多个设备进行协作工作已变得司空见惯。一个或多个用户可以利用多个设备,例如膝上型计算机和平板电脑来完成任务。因此,现代信息技术越来越依赖于多设备工作流和分布式工作场所。然而,现有的协作解决方案通常与特定的应用绑定,例如浏览器或生产力应用。当用户利用多个计算设备来完成任务时,用户可能需要熟悉具有不同于相应计算设备的用户界面的应用。
2.正是基于这些和其他一般考虑,本文所公开的各方面得以实现。此外,尽管可以讨论相对具体的问题,但应当理解,这些示例不应局限于解决背景技术或本公开的其他地方所标识的具体问题。


技术实现要素:

3.根据本公开,通过使用在用户之间和计算设备之间自动共享的对开页(folio)来解决上述和其他问题。对开页利用基于云的基础设施,其使用事务日志提供故障弹性同步。当跨设备故障转移时,基础设施可以跨设备自动同步对开页。当对开页与其他对开页同步时,对开页中的内容和工具跨用户和设备自动共享。在一个示例中,多窗口操作系统可以将对开页呈现为顶层的半透明ui元素。对开页是一个独立的实体,其不与设备上可能驻留的特定应用或资源绑定或单独相关联。
4.共享内容和工具的系统和方法可以包括在第一计算设备上接收对第一对开页中的媒体原语的更新。在该示例中,第一对开页包括媒体原语,该媒体原语包括内容。接收的更新可以涉及在计算设备上添加或修改与媒体原语相关联的内容。在接收到更新时,提供通知。该通知涉及将第一对开页中的媒体原语与驻留在第二计算设备上的第二对开页同步。第一计算设备和第二计算设备可以在一些方面相同,而在一些其他方面不同。使用第一计算设备和第二计算设备之间的对等、跨设备故障转移处理来执行对开页的同步期间第一计算设备与第二计算设备之间的数据迁移。与基于tcp连接的数据传输不同,在某些方面,对开页的同步依赖于分布式客户端-服务器架构,其中服务器使用事务日志和中央存储设备(例如,云存储)来管理相应客户端中本地高速缓存存储设备中的共享状态。
5.在一些方面,云服务器上的数据分发器从第一计算设备接收通知。数据分发器为客户端设备之间的跨设备故障转移提供事务日志,以同步对开页及其组成部分。
6.在一些方面,对开页的组成部分包括用于内容的同步共享和/或内容的异步更新的媒体原语和工具。例如,交互承诺通过用稍后接收的内容替换对开页的媒体原语中的占位符数据,提供了媒体原语的内容的异步更新。占位符是指资源中的位置,诸如文档、演示文稿、多媒体文件或任何其他类型的电子资源。
7.在进一步的方面中,对开页可操作以跨设备共享工具,诸如远程指针、相机或其他类型的接口或对本地应用的访问,从而允许远程用户经由对开页访问和/或修改远程设备上的内容,而无需用户建立远程桌面会话。
8.提供本发明内容是为了以简化的形式介绍概念的选择,其将在下面的详细描述中
进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护主题的范围。示例的附加方面、特征和/或优点将在下面的描述中部分地阐述,并且部分地将从描述中显而易见,或者可以通过本公开的实践来学习。
附图说明
9.参考以下附图描述非限制性和非穷举性示例。
10.图1示出了根据本公开的方面的用于在用户和设备之间交互共享内容的示例系统的概述。
11.图2a示出了根据本公开的方面的交互生成对开页及其组成部分的示例方法。
12.图2b示出了根据本公开的方面的交互同步对开页及其组成部分的示例方法。
13.图2c示出了根据本公开的方面的交互提供同步对开页及其组成部分的示例方法。
14.图3示出了根据本公开的方面的同步内容的示例方法。
15.图4a示出了根据本公开的方面的用于基于用内容实现占位符来自动更新文档的示例系统的概述。
16.图4b示出了根据本公开的方面的用于基于用内容实现占位符来自动更新文档的示例方法和时序图。
17.图4c示出了根据本公开的方面的用于基于用内容实现占位符来自动更新文档的示例方法。
18.图5a示出了根据本公开的方面的用于跨设备交互共享远程指针的示例系统的概述。
19.图5b示出了根据本公开的方面的用于跨设备交互共享远程指针的示例方法和时序图。
20.图6a示出了根据本公开的方面的用于共享内容和工具的示例系统的概述。
21.图6b示出了根据本公开的方面的屏幕的示例。
22.图6c示出了根据本公开的方面的使用场景的示例。
23.图6d示出了根据本公开的方面的系统的示例性益处。
24.图7是示出可以实践本公开的各方面的计算设备的示例物理组件的框图。
25.图8a是可以实践本公开的各方面的移动计算设备的简化图。
26.图8b是可以实践本公开的各方面的移动计算设备的另一简化框图。
具体实施方式
27.以下参考附图更全面地描述了本公开的各个方面,附图是本公开的一部分,并且示出了具体的示例方面。然而,本公开的不同方面可以以许多不同的方式实现,并且不应被解释为限于本文所阐述的方面;相反,提供这些方面使得本公开将是彻底和完整的,并且将向本领域技术人员充分传达这些方面的范围。可以将这些方面实践为方法、系统或设备。因此,各方面可以采取硬件实现、完全软件实现或结合软件和硬件方面的实现的形式。因此,下面的详细描述不是限制性的。
28.现代信息技术越来越依赖于多设备工作流和分布式工作空间。单个用户执行的多设备工作流利用技术生态系统,在单个用户执行任务时将任务从一个设备转换到另一个设
备。协作工作得益于将用户活动从一个地方转移到另一个地方的技术生态系统。如本文所用,术语“地点”可以是字面上的位置、不同的设备或设备形状因素、协作方接近的空间,或完成特定任务所需的信息的位置和/或可用性。术语“地点”也可以是虚拟位置,其中分别位于远程位置的多个用户可以虚拟并置。但问题是,如果我们考虑以这样一种普遍的方式进行这些转换,那么从应用开发和用户体验的角度来看,这些转换的成本很高。
29.本公开通过允许设备和各方之间的协作而不依赖于特定的应用或设备而受益于现代信息技术。更确切地说,本公开的各方面允许用户活动从一个设备向另一个设备的转换,其方式允许通过利用所公开的对开页将交互从设备、应用、用户和时间解除绑定。在一些方面,跨设备故障转移提供了一系列操作步骤,以将一个计算设备上的对开页及其组成部分的更新弹性地转换到另一个计算设备上的另一个对开页。对开页可以呈现为应用窗口上方的顶层交互式窗口。附加地或备选地,对开页提供对远程或本地资源和工具的访问,这些资源和工具可能由不同的用户拥有,并位于不同的设备(或客户端设备)上。这些设备基于弹性的分布式系统基础进行连接。
30.允许跨多个设备的多个用户之间的协作存在许多复杂的问题。协作方可以并置或分布。操作可能取决于设备、应用、用户和时间限制。网络、软件和硬件故障或临时中断意味着复杂的部分故障情况。复杂的部分故障情况可能会导致程序员和最终用户无法正确预测和处理问题。复杂的部分故障情况可能在任何设备的任何时刻发生。现有解决方案通过将协作限制在单个应用或设备类型来解决这些问题。然而,在这样做的过程中,个体协作方有学习如何操作潜在的不熟悉的设备和/或应用的负担。即使协作方熟悉特定设备或应用,合作解决方案也可能禁止他们使用她的首选设备或应用。此外,特定协作应用或设备可能要求用户在允许他们参与协作之前预先自我注册。这些负担导致协作或多设备工作区的整体生产率降低。
31.如上所述,现有的协作解决方案处于“孤岛”状态(在单个设备或应用中,诸如浏览器),依赖于文件夹同步或共享整个文件。相反,本公开的方面提供了一种综合解决方案,其通过提供可由不同协作方跨不同设备访问的直观用户界面(ui)来解决上述问题。现有的协作解决方案,依赖于以文档为中心的归档,提供整个文档的云存储以及已建立的文件夹和文件的同步。然而,本文公开的方面利用了由多个协作方主动使用的瞬时内容片段(或工具)。其他一些现有系统依靠消息传递来提供协作,例如文件或图像被拖到线程中进行共享。但这些系统仍会导致孤岛:必须切换到特定的共享应用才能共享内容,而且通常无法共享工具。类似地,用户可以在多个设备中使用共享应用来执行任务。也就是说,用户可以使用“共享应用”在其他设备上与自己共享内容。用户不会期望共享应用的单用户、多设备使用。例如,试图用另一部电话给自己打电话是违反直觉的。
32.本公开通过使用对开页来解决上述问题,该对开页允许协作操作不受设备、应用、用户和/或时间的限制。在各方面,小程序是位于操作系统或应用顶层的轻量级分布式用户界面元素,允许统一的ui环境。所公开的具有各个组成部分的对开页可以被呈现为如由多窗口操作系统的窗口管理器控制的应用窗口上方的顶层交互窗口。因此,即使用户在他们熟悉的生产力应用、文档或网页之间切换,共享内容和工具也始终对用户可用。
33.本公开还解决了管理与各个设备形成和更新协作方团队的复杂任务的问题。本文公开的方面可以提供协作方的组的自动形成。本公开还解决了管理个人可以利用的一组多
个设备中添加和移除一个或多个设备的复杂任务的问题。在一些方面,物理上或虚拟上接近的设备可以形成联合,其中内容和工具可以自动同步以在设备之间共享。形成物理邻近的设备的联合可以基于来自各个设备的接近传感器的数据。例如,形成虚拟邻近的设备的联合可以基于预定义的设备组或者基于设备之间的语义或上下文关系自动形成组。在一些其他方面,用于形成联盟的一组设备可以由服务器(即数据发布方)通过由相应设备发送请求来注册。
34.传统的协作系统侧重于共享文档。本公开的各方面提供了构成文档的共享内容。本公开还侧重于支持跨多个设备对内容片段起作用的协作工作和个人工作。例如,协作工作可以是分布式用户操作、交互工具、输入、内容和行为的组合。例如,个人工作可以利用多个设备的组合,同时通过各种用户操作、交互工具、输入在设备上移动内容片段。在各方面中,交互工具和输入包括,例如,剪贴板、颜色选择器、相机流或鼠标远程指针。
35.例如,单个内容可以包括可拖放到文档中的图像、文本段落或调色板。但是,即使是多个对象的分组,例如,三个图像的占位符也可以收集在一个容器中,这在视觉上类似于一张展开的纸。
36.对开页是分布式界面对象,它承载各种大小和类型的媒体及其事务工具的混合实例。任何对象内容、工具或容器都可以通过对开页在一方自己的设备(或与协作方的设备)之间共享。附加地或备选地,对开页可以是允许跨不同用户和跨不同设备访问媒体原语或其他类型容器中的应用、数据、工具和内容的门户。在进一步的实施例中,对开页可以是允许跨设备交互共享工具和媒体内容的ui构造。无论是在个人工作期间还是在协作工作期间,用户都可以在与对开页交互时将活动和控件从一个设备转换到另一个设备。内容、容器和对开页都通过小程序可拖动、半透明的ui元素在ui中具体化,当用户在不同程序或网页之间切换时,这些元素始终保持在窗口管理器的顶部。最后,交互承诺作为对未来内容的引用,例如要实现的数据的占位符(例如,尚未拍摄的现场照片)。占位符和要完成的数据被封装为跨设备媒体原语和工具,用户同样可以收集、共享、拖放或以其他方式插入文档。与协作方共享数据需要不同于将个人工作传递给自己的设备的界面。通过将对开页及其组成部分呈现为应用窗口上方的顶层窗口,本公开保持相同的共享启示始终可用,即使用户在他们熟悉的生产力应用、文档、网页、设备类型和设备的操作系统之间切换。
37.本公开涉及用于将基于内容和/或数据的用户活动从一个设备转换到另一个设备的系统和方法。本系统中的统一用户交互界面将用户界面元素和操作与设备、应用、用户和时间解耦。本系统可以包括弹性分布式系统基础。在一些方面,跨设备故障转移提供了一系列操作步骤,以将一个计算设备上的对开页及其组成部分的更新弹性地转换到另一个计算设备。该基础在分层结构下为本地应用和设备以及共享资源提供互连。
38.图1示出了根据本公开的方面的用于在用户和设备之间交互地共享内容的示例系统100的概述。系统100可以表示用于跨设备在用户之间交互地共享内容或工具的系统。系统100可以在连接的设备之间分发和同步程序代码和数据。
39.客户端设备a 102a和客户端设备b 102b表示不同的客户端设备。相应客户端设备为设备的相应用户提供能够共享协作工作的内容的环境。相应设备通过网络134连接到分布式网络,例如云计算环境。应用a 104a是用于在客户端设备a 102a上处理内容(例如图像数据105a)的应用。应用b 104b是用于在客户端设备102b上处理内容(例如图像数据105b)
的应用。应用a 104a和应用b104b可以是相同或不同的应用。
40.对开页a 120a和对开页b 120b分别在客户端设备a 102a和客户端设备b 102b上执行。在一些方面,对开页是一种程序代码,它提供用户半透明的交互图标和对话框窗口,这些窗口显示在相应客户端设备上的其他窗口的顶部。对开页a 120a和对开页b 120b可以包含一个或多个媒体原语和工具。当用户需要时(例如,当鼠标悬停在对开页图标上时)可以显示对开页,然后在不使用时淡入背景。在各方面中,对开页a 120a和对开页b 120b是自动同步的共享对开页。对一个对开页及其组成部分(例如,对开页中媒体原语的内容)进行的更新将自动与另一对开页共享。因此,对开页是从用户和设备中解除内容和工具共享绑定的一种显著方式。
41.媒体原语a 122a和媒体原语b 122b包括内容。内容可以是多种类型之一。媒体原语中的内容类型可以包括但不限于图像、文本、声音等。在一些方面,媒体原语可以在用户需要时显示(例如,当鼠标悬停在对开页图标上时),然后在不使用时淡入背景。通过这种方式,媒体原语可以表示手边的一段内容,以在某个时刻用作共享的提醒。媒体原语还可以是稍后要完成的内容的占位符(例如,通用空图像)。例如,已经由应用a 104a处理(例如,创建和/或编辑)的图像数据105a可以被复制到媒体原语a 122a。从图像数据105a到图像数据122a的定向箭头表示复制操作。因此,媒体原语a 122a包括图像数据123a,其是图像数据105a的副本。在进一步的方面,所公开的媒体原语可以表示应用、图形界面元素、工具或任何类型的数据结构或计算机资源。本领域技术人员将理解,本文所述的同步益处可用于跨设备共享任何类型的计算机资源。在一些方面,同步可以包括例如更新图像数据123a和图像数据105a的副本作为数字资产的数字权利管理的数字资产权利。
42.在一些方面,媒体原语可以链接到用于在应用内和应用之间传输数据的设备中的短期存储。例如,输入可以来自文件系统、应用并且来自输入设备。例如,短期存储可以存储各种类型的内容、文本、声音和图像数据。在一些方面,在短期存储上添加(例如,复制)或移除(例如,删除)内容更新媒体原语。
43.媒体原语在用户和设备之间共享的对开页中。其他设备的用户可以将数据从媒体原语传输到相应设备的本地应用。实际上,设备上的短期存储可以通过同步对开页在设备间自动与其他用户共享。应当理解,根据本公开的对开页提供了跨设备的用户之间对其内容(例如,对开页内的媒体原语和工具)的自动共享。因此,用于共享数据的用户交互对于用户、设备和应用来说是不可知的。
44.工具a 124a表示客户端设备a 102a中的对开页a 120a中的各种类型的工具之一。工具b 124b表示客户端设备b 102b中的对开页b 120b中的各种类型的工具之一。工具b 124b是工具a124a的共享工具,因为客户端设备b 102b中的对开页b 120b与客户端设备a 102a中的对开页a 120a同步。通过对开页,用户可以跨设备自动共享和同步工具。通过将工具放在一个对开页中,由工具处理的数据和工具提供的功能可以在用户之间共享,并在设备之间共享,工具通过网络同步。在一些方面,工具类型可以包括但不限于颜色选择器(即,将颜色处理为数据的颜色传输设备)。工具可以是键盘(例如,将按键输入处理为数据)、鼠标指针(例如,处理位置数据并在屏幕上输入作为数据)、相机(例如,图像输入设备,将图像处理为数据的图像输入设备)、屏幕复印机(例如,至少处理部分屏幕的副本)、页面提取器(例如,提取文档页面的副本)等。工具封装由客户端设备上的设备硬件或应用提供的一个
或多个功能。下面将进一步详细描述示例性工具。虽然本文公开了示例性工具,但本领域技术人员将理解,在不脱离本公开的范围的情况下,任何类型的工具都可以在协作方之间共享。
45.当一个或多个用户使用共享对开页中的相机工具在相应客户端设备上拍照时,相机工具能够收集照片。相机工具还允许与其他客户端设备共享客户端设备的桌面(例如,屏幕和显示器)。在一些方面,对开页中的相机工具可以与客户端设备的显示控制器相关联。这样,相机工具可以访问显示图像的快照。对开页和对开页中的相机工具在网络上的用户和客户端设备之间自动同步。当显示控制器中的显示图像的快照被周期性地更新时,屏幕在用户和客户端设备之间持续共享。颜色选择器允许用户与其他用户和其他设备共享设备屏幕的特定位置的颜色。与对开页相关联的颜色选择器通过读取位置的颜色信息来操作。然后,当用户从同一设备或另一设备上的对开页中选择颜色选择器工具时,颜色选择器提供颜色信息。键盘工具允许跨设备与应用共享键盘输入数据。与对开页相关联的键盘工具在第一设备处接收一系列键盘输入。然后,当从文件夹中选择键盘工具时,键盘工具将该系列键盘输入数据提供给另一设备。远程指针工具允许与其他设备共享远程指针(例如鼠标指针)。用户在对开页中创建一个远程指针工具,用于共享。访问同步对开页的其他用户可以在其他设备中打开远程指针工具。当其他用户移动相应的鼠标指针时,远程指针工具从相应设备中的相应用户捕获一系列鼠标光标位置数据,并在屏幕上提供来自其他用户的一系列鼠标指针位置数据。在一些方面,另一客户端设备上的同步对开页中的鼠标指针工具向另一客户端装置提供一系列鼠标光标位置数据,用于显示远程指针。
46.数据分发器140自动同步客户端设备a 102a中的对开页a120a和客户端设备b 102b中的对开页b 120b。对开页a 120a和对开页b 120b是克隆,并共享相同的媒体原语和工具。因此,媒体原语a 122a与媒体原语b 122b同步。图像数据123b是图像数据123a被同步时的副本。工具a 124a与工具b 124b同步。在一些方面,可以通过使用对开页中的工具来同步应用或应用的一部分。可以将带有应用的电子表格分配给一个工具,以呈现该电子表格。这样,当工具跨设备同步时,该电子表格可以由用户在不同设备上与应用一起呈现和操作。由于同步工具的存在,缺少位置应用来处理电子表格的设备可能仍会在设备上呈现电子表格。在一些方面中,作为图像数据123a的克隆的图像数据123b可以被复制到应用b中的图像数据105b。在一些其他方面中,应用b 104b可以直接访问和处理媒体原语b 122b中的数据123b,而无需将图像数据123b复制或传输(或导入)到图像数据105b以进行处理。从图像数据122b到图像数据105b的定向箭头表示复制操作。应用b可以进一步处理(例如编辑)图像数据105b。
47.当相应客户端设备中的对开页被更新时,对开页管理器a126a和对开页管理器b 126b分别通知数据分发器140。当媒体原语a 122a随着图像数据123a从应用a 104a中的图像数据105a复制而更新时,对开页a 120a被更新。对开页管理器a 126a通过网络134向数据分发器140(云服务器)中的对开页更新接收器150发送通知。
48.同步接收器a 128a和同步接收器b 128b分别从数据分发器140接收同步通知。一旦接收到同步通知,同步接收器a 128和同步接收器b128b可以接收已经在其他设备中更新的媒体原语和工具,并同步相应对开页中的数据。在一些方面,同步接收器a 128a和同步接收器b 128b从数据分发器140中的同步通知器156接收同步通知。
49.显示控制器a 106a和显示控制器b 106b分别控制客户端设备a 102a和客户端设备b 102b的显示。显示控制器b 106b控制客户端设备b 102b的显示。在一些方面,将显示控制器分配给文件夹中的媒体原语中的相机工具可以实现用户之间的屏幕共享。
50.输入接收器a 108a和输入接收器b 108b分别在相应的客户端设备a 102a和客户端设备b 102b中接收鼠标和/或键盘输入数据。在一些方面,在对开页a 120a中生成远程指针工具(例如,工具a 124a)将远程指针工具与输入接收器a 108a相关联。这样,远程指针工具(工具a 124a)接收一系列输入数据,用于与客户端设备b 102b中的远程指针工具共享(例如,工具b 124b)。
51.在一些方面,容器(图1中未示出)是媒体原语的集合。容器可以指定显示媒体原语集合的布局。例如,布局可以是垂直区块、水平区块和扇形。对开页可以包括用于跨设备在用户之间共享媒体原语集合的容器。
52.本地存储设备a 130a和本地存储设备b 130b分别将数据本地存储在客户端设备a 102a和客户端设备b 102b中。在一些方面,本地存储的数据可以包括用于对开页的本地高速缓存数据以及与对开页内的媒体原语和工具相关联的数据。例如,使用本地高速缓存的数据而不是依赖于通过网络134从云存储142接收数据,减少了各个客户端设备处的用户交互的响应时间。在一些其他方面,本地高速缓存的数据可以由数据分发器140控制,以获得与数据分发器140中的云存储142中集中存储的数据的一致性。
53.数据分发器140通过网络134跨设备(例如,客户端设备a102a和客户端设备b 102b)分发与对开页和相应组成部分相关的数据和程序代码。在一些方面,数据分发器140维护更新对开页和相应组成部分的事务记录。当客户端设备未能同步数据时,数据分发器140向客户端设备提供指令以回滚事务并恢复对开页的先前状态,或者基于事务记录重新执行同步操作以恢复共享对开页。
54.数据分发器140可以包括云存储142、对开页更新接收器150、存储更新器52、状态更新器154和同步通知器156。云存储142存储与对开页、媒体原语和工具相关的数据,用于在客户端设备之间进行同步。云存储142可以存储事务记录和日志以管理同步数据的步骤。数据分发器140可以使用云存储142中的数据,以使得客户端设备能够在同步数据中遇到问题时回滚并重新提交以实现同步。
55.对开页更新接收器150例如从相应客户端(客户端设备a102a和客户端设备b 102b)接收对开页更新通知。在一些方面,对开页更新通知包括客户端设备的标识符、与已在客户端设备中的本地操作中更新的对开页相关的数据。对开页更新接收器150可以接收对开页中的媒体原语和工具的更新数据。
56.存储更新器152利用与更新的对开页相关的接收数据更新云存储142中的数据。在一些方面,存储更新器152可以生成并存储对开页的事务记录和日志。维护事务记录和日志使得数据分发器140能够指示在同步数据时出错的客户端设备回滚并重新提交用于同步对开页和相应组成部分的操作。
57.状态更新器154更新关于在多个设备上跨多个用户同步对开页的状态信息。状态更新器154可以结合更新云存储142的存储更新器152来更新状态。在一些方面,状态可以是以下用于同步的状态之一:接收到更新通知、向客户端设备发送更新通知、接收到来自客户端设备的更新通知的一个或多个确认、以及从客户端设备接收一个或多个确认以完成对开
页的同步。
58.同步通知器156基于与更新云存储142中的对开页有关的数据通知并指示相应客户端设备同步对开页和相应的组成部分。在方面,同步对开页的通知可以包括需要同步的对开页的标识符和内容。在一些方面,通知可以包括具有事务记录的一系列指令,以使客户端设备能够在客户端设备遇到错误和/或丢失对开页数据时回滚和重构数据更新。
59.应当理解,关于图1描述的各种方法、设备、应用、特征等并不旨在将系统100限制为由所描述的特定应用和特征执行。因此,可以使用附加的控制器配置来实践本文中的方法和系统,和/或可以排除所描述的特征和应用,而不背离本文中公开的方法和应用。
60.图2a示出了根据本公开的方面的、由客户端设备执行的用于交互地生成用于在用户和设备之间共享内容的对开页的示例方法200。图2a示出了方法200a的操作的一般顺序。通常,方法200a从接收操作202开始,并在更新操作222之后进行重复操作。方法200a可以包括更多或更少的步骤,或者可以与图2a中所示的步骤不同地安排步骤的顺序。方法200a可以作为由计算机系统执行并编码或存储在计算机可读介质上的一组计算机可执行指令来执行。此外,方法200a可以由与处理器、asic、fpga、soc或其他硬件设备相关联的门或电路来执行。在下文中,将参考结合图1、图2b-图2c、图3、图4a-图4c、图5a-图5b、图6a-图6d、图7和图8a-图8b描述的系统、组件、设备、模块、软件、数据结构、数据特性表示、信令图、方法等来解释方法200a。
61.接收操作202在客户端设备(例如图1中的客户端设备a102a)上接收本地用户交互输入。本地交互输入可以包括客户端设备的用户创建新对开页、现有对开页中的新媒体原语或现有对开页中的新工具的指令。在一些方面,本地用户交互输入可以是指定指令的菜单选择的形式。
62.比较操作204比较所接收的本地交互输入是用于创建新对开页还是新媒体原语/工具。当输入是用于创建新对开页206a时,接收操作208交互地接收新对开页的元数据。新对开页的元数据可以包括但不限于新对开页的名称、图标样式、用于呈现的排版。新对开页的样式可以包括一种或多种颜色,用于将新对开页面表示为图标。在一些方面,对开页及其组成部分的元数据可以指定如何确定接收方(例如,基于邻近度或通过数据分发器预注册的访问控制列表)。
63.创建操作210基于接收到的元数据创建新的对开页,并显示具有样式的新对开页。在一些方面,创建操作210可以在客户端设备的本地存储器中分配存储器,并在分配的存储器中存储关于新对开页的元数据。在一些方面,客户端设备可以在创建新对开页时为新对开页创建一个或多个组成部分(例如,媒体原语和工具)。在一些其他方面,可以在客户端设备上创建对开页之前创建对开页、媒体原语和/或工具的一个或多个组成部分。因此,一个或多个现有媒体原语和/或工具可以在创建对开页时添加到对开页。在创建对开页之后,步骤进行到发送新对开页的操作216。当接收到的输入指定创建新的媒体原语或工具206b时,接收操作212交互地接收现有对开页中的媒体原语或者没有内容的工具。更新操作214用新媒体原语或新工具更新对开页。在一些方面,用户可以通过从本地应用(例如图像编辑器)、文件目录或用户输入(例如语音输入)拖放内容(例如图像和声音)来交互地将内容添加到新媒体原语。本领域技术人员将理解,任何类型的资源都可以添加到新的媒体原语中。
64.操作步骤216至222可以被分组(如图2a中的(a)所示)为一系列步骤以同步对开
页。传输操作216传输具有媒体原语和工具的对开页的更新通知,以用于跨用户和多个设备进行同步。
65.在一些方面,传感器与联合内特定设备的物理角度和/或线性运动的相关性可触发跨设备的对开页同步。在用户或设备联盟中具有设备的用户可以将内容或数据放置在原语中或将工具放置在对开页中。然后,用户可以将设备朝向具有不同设备的另一用户倾斜。倾斜操作与另一用户的接近/相关位置的相关性以及同时另一用户设备的可能倾斜可以触发在两个设备之间同步对开页或动态创建在两个用户之间私人共享的对开页。当远程用户执行远程呈现(例如,使用远程指针或其他呈现远程呈现的方法)并在远程呈现中使他们相应的设备朝向彼此倾斜时,可以在远程用户之间提供共享对开页的类似创建。
66.传输操作216传输所创建或更新的对开页的通知。通知可以包括与对开页相关联的元数据、与用于跨设备同步的媒体原语和工具相关联的数据、以及分别与对开页中的媒体原物和工具相关的内容和数据。例如,通知和对开页数据的传输是到数据分发器140。在一些方面,客户端设备可以响应于传输从数据分发器接收消息。该消息可以指示数据分发器接收关于更新的对开页的传输的确认。在一些其他方面,客户端设备可以从数据分发器接收附加消息。附加消息可以指示数据分发器已经向其他客户端设备通知了同步通知,并且从其他客户端设备接收到同步通知。在一些方面,当客户端设备联合中的一个或多个其他用户和设备已经通过同步接收到具有媒体原语和/或工具的更新的对开页时,客户端设备可以向用户提供反馈。反馈可以基于客户端设备上的视觉反馈、音频反馈和/或触觉反馈。反馈可以在其他设备、可穿戴设备或平板电脑上被提供,例如用于给出收据的意识。在一些其他方面,当客户端设备联合中的一个或多个其他用户和设备没有通过同步来访问具有媒体原语和/或工具的更新对开页时,客户端设备可以向用户提供反馈。关于缺乏访问的反馈可以基于例如从在客户端设备上更新对开页以来经过的预定时间段。在一些其他方面,向用户提供关于同步和/或访问状态的反馈的定时可以基于客户端设备或任何其他客户端设备在客户端设备联合中的位置。
67.提供操作218在客户端设备上提供用于用户交互的对开页。在一些方面,客户端设备可以将对开页显示为具有其名称的用户交互图标或窗口。用户可以交互访问媒体原语的内容和/或使用该工具。例如,用户可以将媒体原语中的图像数据复制到本地应用以编辑图像数据。在某些方面,选择对开页可能会导致显示对开页操作的菜单,列出其组成部分,例如添加媒体原语和工具。在一些其他方面,表示对开页的图标可以在缩略图图像和颜色中指示其一个或多个组成部分。在另一些方面,可以通过复制和粘贴以及交互地将与媒体原语和工具对应的图标拖放到对开页图标和窗口上,将现有媒体原语或工具添加到对开页。内容可以通过各种用户交互操作(例如复制粘贴、拖放)添加到媒体原语中。
68.接收操作220接收对开页上的对开页同步通知。在一些方面,可以通过网络从数据分发器(例如,图1中的数据分发器140)接收对开页同步通知。对开页同步通知可以指定要用特定内容更新的对开页。更新操作222更新客户端设备上的对开页。在一些方面,更新操作222可以更新表示对开页的呈现,以传达例如添加的组成部分、媒体原语和工具。在完成更新操作222之后,步骤进行到接收操作202,以通过客户端设备中的本地用户交互来接收输入。
69.应当理解,操作202-222是为了说明本发明的方法和系统而描述的,并且并不旨在
将本发明限制于特定的步骤序列,例如,可以以不同的顺序执行步骤,可以执行附加的步骤,并且可以在不脱离本发明的情况下排除所公开的步骤。
70.图2b示出了根据本公开的方面的通过跨设备同步对开页与其他用户交互共享内容的示例方法。图2b示出了方法200b的操作的一般顺序。通常,方法200b从接收操作230开始,并在更新操作242之后进行重复操作。方法200b可以由数据分发器(例如,图1中的数据分发器140)执行。方法200b可以包括更多或更少的步骤,或者可以与图2b中所示的步骤不同地安排步骤的顺序。方法200b可以作为由计算机系统执行并编码或存储在计算机可读介质上的一组计算机可执行指令来执行。此外,方法200b可以由与处理器、asic、fpga、soc或其他硬件设备相关联的门或电路来执行。在下文中,将参考结合图1、图2a、图2c、图3、图4a-图4c、图5a-图5b、图6a-图6d、图7和图8a-图8b描述的系统、组件、设备、模块、软件、数据结构、数据特性表示、信令图、方法等来解释方法200b。
71.接收操作230在客户端设备处接收本地用户交互输入。交互输入选择对开页中的媒体原语。在一些方面,对开页可以包括供选择的一个以上媒体原语。在一些方面,可以突出显示所选媒体原语以指示选择。接收操作232接收媒体原语的内容。在一些方面,媒体原语可以与一种类型的内容相关联。例如,内容的类型可以是文本、图像、声音。接收操作232例如接收用于具有图像类型的媒体原语的图像数据。更新操作234利用所接收的内容更新媒体原语。在一些方面,媒体原语的呈现表示可以被更新以指示媒体原语中的内容。例如,图像数据的缩略图可以与用于指示内容的媒体原语一起显示。
72.由客户端设备向数据分发器的传输操作236通知关于更新的对开页和媒体原语,并将对开页元数据和数据与媒体原语和工具一起传输以用于跨设备同步。通知和对开页数据的传输例如是到数据分发器140。在一些方面,传输操作236传输与经更新的对开页及其组成部分相关联的元数据和数据。在一些方面,传输操作236可以传输一组链接(例如,客户端设备中的本地存储器中的位置信息),该组链接提供本地缓存的对开页及其组成部分的位置。数据分发器可以使用链接来取回经更新的对开页及其组成部分的数据和元数据。在一些方面,客户端设备可以响应于传输从数据分发器接收消息。该消息可以指示数据分发器接收关于更新的对开页的传输的确认。在一些其他方面,客户端设备可以从数据分发器接收附加消息。附加消息可以指示数据分发器已经向其他客户端设备通知了同步通知,并且从其他客户端设备接收到同步通知。
73.提供操作238在客户端设备上提供用于用户交互的对开页。在一些方面,客户端设备可以显示带有其媒体原语和/或工具(如果有的话)的对开页。用户可以交互地访问媒体原语的内容和/或使用该工具。例如,用户可以将媒体原语中的图像数据复制到本地应用以编辑图像数据。接收操作240接收对开页上的对开页同步通知。在一些方面,可以通过网络从数据分发器(例如,图1中的数据分发器140)接收对开页同步通知。对开页同步通知可以指定要用特定内容更新的对开页。更新操作242更新客户端设备上的对开页。在一些方面,更新操作242可以更新表示对开页的呈现以传达例如添加的组成部分、媒体原语和工具。提供操作244在客户端设备上提供用于用户交互的经更新的对开页。在完成更新操作244之后,步骤进行到接收操作230,以通过客户端设备中的本地用户交互来接收输入。
74.一组操作步骤236至242(如图2b中的(a)所示)至少类似于使对开页同步(如图2a中的(a)所示)的步骤216至步骤222的一系列步骤。传输操作236传输包括用于跨用户和设
备同步的媒体原语和工具的对开页的更新通知。
75.应当理解,操作230-242是为了说明本发明的方法和系统而描述的,并且并不旨在将本发明限制于特定的步骤序列,例如,可以以不同的顺序执行步骤、可以执行附加的步骤、并且可以在不脱离本发明的情况下排除所公开的步骤。
76.图2c示出了根据本公开的方面的例如由客户端设备在用户和设备之间交互共享内容的示例方法。图2c示出了方法200c的操作的一般顺序。通常,方法200c从接收操作250开始,并在更新操作260之后进行重复操作。方法200c可以包括更多或更少的步骤,或者可以与图2c中所示的步骤不同地安排步骤的顺序。方法200c可以作为由计算机系统执行并编码或存储在计算机可读介质上的一组计算机可执行指令来执行。此外,方法200c可以由与处理器、asic、fpga、soc或其他硬件设备相关联的门或电路来执行。在下文中,方法200c将参考结合图1、图2a-图2b、图3、图4a-图4c、图5a-图5b、图6a-图6d、图7和图8a-图8b描述的系统、组件、设备、模块、软件、数据结构、数据特性表示、信令图、方法等来解释。
77.接收操作250例如由客户端设备接收计算设备中对开页上的对开页同步通知。在一些方面,对开页同步通知包括数据和元数据、以及用于更新对开页的组成部分以与跨用户和计算设备的其他对应对开页同步的数据。在一些方面,客户端设备接收更新的对开页及其组成部分的数据和元数据。客户端设备可以使用接收到的数据来本地更新对开页以与其他对开页同步。对开页的组成部分可以包括一个或多个媒体原语和工具。媒体原语可以包括内容、具有图像数据类型的媒体原语的图像数据。例如,工具可以包括与工具相关联的数据、颜色选择器工具的颜色数据。在一些方面,客户端设备可以更新存储在客户端设备的本地存储器中的对开页的数据和元数据。
78.更新操作252更新用于本地用户交互的对开页。在一些方面,媒体原语中的图像数据的缩略图可以显示在计算设备的多窗口桌面显示的顶层,高于应用窗口。顶层窗口可以是半透明的,当未选择顶层窗口时,顶层窗口将淡出。这样,用户可以方便地看到共享内容,以便根据需要进行选择。在一些其他方面,颜色选择器工具的图标可以用表示正在共享的颜色数据的特定颜色来显示。例如,颜色可以是黄色。
79.接收操作254交互地接收对媒体原语和/或媒体原语中的工具的用户选择。在一些方面,在接收到对开页的媒体原语中的图像数据的缩略图图像上的选择输入时,可以选择对开页中的媒体原语中的图像数据。在一些其他方面,可以选择工具。例如,在接收到用户对颜色选择器工具的选择时,可以突出显示颜色选择器的图标以指示选择。
80.提供操作256将媒体原语的被选择的内容或工具的数据提供给在计算设备中本地执行的应用。在一些方面,提供操作256包括使用计算设备中可用的应用编程接口(api)来将内容或数据从对开页编程地传输到应用。应用可以进一步处理所接收的内容或数据。在一些方面,提供操作256可以将图像数据提供给例如在计算设备中执行的相册应用。这样,例如,相册应用将共享的图像数据注册到相册中。在一些其他方面,黄色的颜色数据可以被传递到设计插画器应用的调色板上。用户可以从设计插画器应用中的调色板中选择颜色以在创建插画时应用共享颜色。在一些其他方面,提供操作256向一个或多个应用提供内容或数据的链接或引用(例如,位置信息或地址信息)。一个或多个应用可以直接访问分别在对开页中的媒体原语或工具中的内容或数据。通过直接访问,因为对开页及其组成部分在用户和客户端设备之间同步,所以一个或多个应用可以访问最新内容或数据。方法200c可以
返回到接收操作250,以允许在计算设备中进一步使用对开页中的共享内容和数据。
81.应当理解,操作250-256是为了说明本发明的方法和系统而描述的,并不旨在将本发明限制于特定的步骤序列,例如,可以以不同的顺序执行步骤,可以执行附加的步骤,并且可以在不脱离本发明的情况下排除所公开的步骤。
82.图3示出了根据本公开的方面的同步内容的示例方法。图3中示出了方法300的操作的一般顺序。通常,方法300从接收操作302开始,并在更新操作312之后进行重复操作。方法300可以包括更多或更少的步骤,或者可以将步骤的顺序安排为与图3中所示的步骤不同。方法300可以作为由计算机系统执行并编码或存储在计算机可读介质上的一组计算机可执行指令来执行。此外,方法300可以由与处理器、asic、fpga、soc或其他硬件设备相关联的门或电路来执行。在下文中,将参考结合图1、图2a-图2c、图4、图5a-图5b、图6a-图6d、图7、图8a-图8b描述的系统、组件、设备、模块、软件、数据结构、数据特性表示、信令图、方法等来解释方法300。
83.接收操作302接收对开页上的更新通知。在一些方面,当对开页及其组成部分(例如媒体原语和工具)已被更新时,对开页上的更新通知可由客户端设备中的对开页管理器发送。更新通知可以包括正在更新的对开页的标识符,并且需要与其他客户端设备中的对开页同步。更新通知还可以包括基于更新的对开页的内容数据和元数据。
84.更新操作304更新云存储中的对开页及其元数据。更新操作304还存储对开页所做的更改的细节。存储的数据足以让其他客户端设备同步对开页及其组成部分。
85.确定操作306确定对开页同步通知的接收方。在一些方面,数据分发器140维护连接的客户端设备,用于自动同步对开页及其组成部分。在一些方面,可以基于确定在从其接收更新通知的始发客户端设备附近通信的客户端设备来确定接收方。客户端设备可以包括接近传感器,其检测距相应客户端设备预定距离内的其他客户端。在一些方面,接近传感器可以包括但不限于红外(ir)传感器/发射器对、超声传感器/发射器对、深度相机(例如,运动传感或光雷达(lidar)传感模态)、超宽带(uwb)传感器/发射器、基于来自无线、近场通信(nfc)(例如,)和低功率无线电技术的信号强度提示的传感器。例如,低功率无线电技术可以包括来自分布式设备上的多个传感器/发射器对的三角测量。在一些其他方面,从图像输入设备(例如,网络相机)接收的视觉数据可以用作接近传感器。在一些方面,所接收的对开页的更新通知可以包括发起客户端设备的接近传感器已经在其附近识别的客户端设备的列表。在一些其他方面,可以由一个或多个客户端设备向数据分发器预注册对开页同步通知的接收方列表。
86.通知操作308利用对开页同步消息通知客户端设备。对开页同步消息指示接收客户端设备同步特定对开页及其组成部分。对开页同步消息包括同步对开页及其组成部分所需的元数据和内容。
87.接收操作310接收对在客户端计算设备处接收通知的确认。在一些方面,数据分发器140在同步对开页及其组成部分中维护各个客户端设备的事务状态。数据分发器140可以使用接收到的确认来管理各个客户端设备的事务状态。在同步对开页及其组成部分时出错的情况下,数据分发器140使客户端设备能够中止和重做同步过程,并在成功同步时重新提交。
88.更新操作312基于所接收的确认及其缺失来更新用于同步的对开页状态数据。在
完成对开页状态数据的更新后,操作进行到接收操作302,以从客户端设备接收对开页的更新通知。操作310形成循环步骤。
89.应当理解,操作302-312是为了说明本发明的方法和系统而描述的,并不旨在将本发明限制于特定的步骤序列,例如,可以以不同的顺序执行步骤,可以执行附加的步骤,并且可以在不脱离本发明的情况下排除所公开的步骤。
90.本公开提供了交互承诺。交互承诺表示一种异步工作流,用户可以将内容委派给其他设备或协作方,以便将来实现。交互承诺使用对开页作为媒体原语中尚未可用内容的代理。交互承诺可以实现一次或多次。例如,在一些方面,交互承诺可以用于用更好的选项替换初始图像,协作方稍后可以共享。交互承诺通过使用一组媒体原语作为稍后实现的占位符来支持多重实现。在一些方面,该组媒体原语可以被提供给文档的编辑器作为用于插入文档的内容的选项。通过提供延迟实现文档的特定内容的选项,文档的编辑可以通过专注于编辑的优先部分而无需等待适当的内容,从而提高效率和生产力。在某些方面,交互承诺允许用户在编辑文档时避免等待同事提供内容。
91.图4a示出了根据本公开的方面的用于基于用内容实现占位符来自动更新文档的示例系统的概述。具体地,该示例涉及将图像数据的占位符放置在由第一用户使用的第一客户端设备上的文档中的特定位置。图像数据的占位符链接到第一客户端设备中的对开页的媒体原语。使用第二客户端设备自动共享对开页并将其同步到第二用户的文件夹。稍后,第二用户将图像数据(例如,照片)从本地应用(例如,相册)复制到第二客户端设备上的共享对开页上的媒体原语。文件夹将再次同步。第一客户端设备中的对开页中的媒体原语接收图像数据。然后将图像数据提供给文档并替换占位符。具体地,系统400a描述了客户端设备a 402a中的文档464包括链接到客户端设备a 412a的对开页a 408中的媒体原语406a的占位符407a的占位符的状态。对开页a 408a和对开页b 408b自动同步。客户端设备b 402b的用户将要将图像数据462复制到对开页b408b的媒体原语406b的占位符407b。基于状态的情况,本公开使得能够通过替换客户端设备a 402a中的文档464中的占位符来复制和自动插入客户端设备b 402b中的图像数据462。客户端设备b402b的用户可以自动将图像数据462插入文档464。用户将图像数据462与媒体原语406b的占位符407b相关联。在一些方面,例如,从应用b到媒体原语406b的图像数据的拖放或复制粘贴操作建立了关联。
92.客户端设备a 402a和客户端设备b 402b表示两个客户端设备。各个客户端设备为设备的各个用户提供共享协作工作内容的环境。两个客户端设备连接到网络134。应用a 404a是用于在客户端设备a 402a上处理文档464的应用。应用b 404b是用于在客户端设备b 402b上处理内容、编辑图像数据462的应用。
93.对开页a 408a和对开页b 408b分别是客户端设备402a和客户端设备b 402b上的小程序。对开页a 408a和对开页b 408b是共享对开页,并通过数据分发器416在客户端设备a 402a和客户端设备b 402b之间同步。
94.对开页a 408a包括媒体原语406a。媒体原语406a被示为空的,没有内容。内容的缺乏由占位符407a表示。在所描述的示例中,占位符407a链接到文档464内的位置数据。当内容变得可用时,该特定位置可用于插入媒体原语408a的内容。例如,位置数据可以指定文档的第三页距上边缘10.0cm和距左边缘2.5cm的坐标。例如,媒体原语可以是“图像”类型,其尺寸为水平800像素乘垂直800像素。文档可以存储在名为“travel_doc”的文件中。该文件
可以与用于编辑文档的特定应用(例如,应用a 404a)相关联。尽管本文描述了特定类型的内容和文件类型,但本领域技术人员将理解,在不脱离本公开的范围的情况下,占位符可以与任何类型的文件类型或数据结构相关联。
95.对开页b 408b包括媒体原语406b。数据分发器416自动同步对开页a 408a和对开页b 408b。在一些方面,应用b 404b是在客户端设备b 402b中执行的相册应用。具体地,应用b 404b可以生成和编辑图像数据462。
96.在一些方面,用户可以将图像数据462复制到对开页b 408b中的媒体原语406b的占位符407b。复制操作可以包括拖放操作、复制和粘贴操作以及其他类型的操作。在图像数据462被复制到页b 408b中的媒体原语406b的占位符407b之后,对开页a 408a由数据分发器416自动与页b 408同步。客户端设备402a中的对开页a 408中的媒体原语406a接收图像数据462的副本。由于媒体原语416a链接到文档464中的特定位置,媒体原语406a中的占位符407a的内容被插入到文档464中的特定位置。也就是说,图像数据462的副本被自动插入到文档464中的特定位置。
97.在一些方面,由于图像数据源于客户端设备402b以插入客户端设备402a中的文档,因此图像数据自动插入客户端设备a402a的文档对于设备来说是不可知的。在一些方面,图像数据的自动插入不受设备、应用、用户和时间的限制。
98.图像数据到文档的自动插入对于用户来说是不可知的,因为根据该示例,不同的用户使用客户端设备a 402a和客户端设备b402b。图像数据到文档的自动插入对应用来说是不可知的。客户端设备402a的用户可以熟悉应用a 404a(例如,文档编辑应用)和对开页a 408a与媒体原语406a的使用。客户端设备402b的用户可以熟悉应用b 404b(例如,相册应用)和对开页b 408b与媒体原语406b的使用。客户端设备b 402b的用户不需要熟悉应用a404a来插入图像数据。用户只需要了解相应用户操作的客户端设备中的应用的使用。图像数据到文档的自动插入是不可知的。自动插入的过程不会在为客户端设备402a中的文档创建占位符的时间与客户端设备402b的用户选择图像数据462并将其复制到媒体原语406b的时间之间施加时间限制。
99.将对开页a 408a与更新的对开页b 408b同步的操作可以如下。首先,对开页管理器b 126b将对开页b 408b中的更改通知给数据分发器416。对开页更新接收器150可以从客户端设备b 402b中的对开页管理器b126b接收对开页更新通知。
100.对开页更新接收器150例如从各个客户端(客户端设备a402a和客户端设备b 402b)接收对开页更新通知。在一些方面,对开页更新通知包括客户端设备的标识符、与已在客户端设备中的本地操作中更新的对开页相关的数据。
101.存储更新器152用与更新的对开页相关的接收数据更新云存储142中的数据。在一些方面,存储更新器152可以生成并存储对开页的事务记录和日志。维护事务记录和日志使得数据分发器140能够指示在同步数据时出错的客户端设备回滚并重新提交用于同步对开页和相应组成部分的操作。
102.状态更新器154更新关于在多个设备上跨多个用户同步对开页的状态信息。状态更新器154可以结合更新云存储142的存储更新器152来更新状态。在一些方面,状态可以是以下用于同步的状态之一:接收到更新通知、向客户端设备发送更新通知、接收到来自客户端设备的更新通知的一个或多个确认、以及从客户端设备接收一个或多个确认以完成对开
页的同步。
103.同步通知器156基于与更新云存储142中的对开页有关的数据通知并指示相应的客户端设备同步对开页和相应的组成部分。在方面,同步对开页的通知可以包括需要同步的对开页的标识符和内容。在一些方面,通知可以包括具有事务记录的一系列指令,以使客户端设备能够在客户端设备遇到错误并丢失对开页数据时回滚并重构数据更新。在一些方面,同步通知器156通知客户端设备a402a将对开页a 408a与对开页b 408b同步
104.在一些方面,客户端设备b 402b的用户可以在稍后的时间更新媒体原语406b中的图像数据。根据本公开,媒体原语中的改变触发了一系列步骤,用于将对开页a 408a与更新的对开页408b同步。结果,客户端设备a 402a中的文档464中的图像数据可以被更新的图像数据自动替换。在一些其他方面,
105.应当理解,关于图4a描述的各种方法、设备、应用、特征等并不旨在将系统400a限制为由所描述的特定应用和特征执行。因此,可以使用附加的控制器配置来实践本文中的方法和系统,和/或可以排除所描述的特征和应用,而不背离本文中公开的方法和应用。
106.图4b示出了根据本公开的方面的用于基于用内容实现占位符来自动更新文档的示例方法和时序图。图4b中的一系列操作400b示出了客户端设备a 402a、客户端设备b 402b和服务器409之间的通信。客户端设备b 402b可以包括应用b 404b、对开页管理器b 126b和同步接收器128b。
107.客户端设备a 402a的用户可以交互地创建418媒体原语a406a作为占位符。当内容变得可用时,对开页管理器410a请求420用于将内容放置在文档460(即,图4a中具有占位符464的文档,其中位置信息被指示为图4b中文档460内的虚线内的区域)中的位置信息。用户可以通过交互式放置操作422来操作应用a 404a,以将媒体原语a 406a中的占位符放置到文档内的特定位置上。在一些方面,放置操作422可以包括但不限于拖放操作、复制和粘贴操作以及能够指定文档中占位符的放置的其他操作。在一些方面,放置操作422确定占位符在文档中的位置。文档460被更新为具有占位符指示464的文档。
108.应用a 404a将与媒体原语a 406相关联的占位符位置数据424发送到对开页管理器410a(例如,图4a中的对开页管理者a126a)。在示例中,占位符可以用于放置图像数据。在一些其他示例中,例如,占位符可以用于放置其他类型的内容、文本、声音。对开页管理器410a向服务器409中的数据分发器416通知更新426。
109.数据分发器416向客户端设备a 402a中的同步接收器412a传输对开页同步通知430a。类似地,数据分发器416向客户端设备b 402b中的同步接收器412b发送对开页同步通知430b。在一些方面,对开页同步通知430a和对开页同步通知430b都指示相应的客户端设备同步相应的对开页。在一些方面,数据分发器416在服务器409中维护事务记录作为日志,以便在中止同步操作的情况下重新同步对开页。
110.同步接收器412b将对开页同步通知430b作为同步更新432重定向到对开页管理器410b。对开页管理器410b用媒体原语406b中的占位符位置更新对开页。对开页a 408a和对开页b 408b是同步的。相应地,相应对开页中的媒体原语406a和媒体原语606b被同步,两者都包括占位符。对开页管理器410b可以更新对开页和媒体原语的图标表示,以指示占位符作为媒体原语内容的存在。
111.客户端设备402b的用户可以交互地从应用b 404b向媒体原语406b选择(即选择操
作436)图像数据462。在一些方面,选择操作436可以包括但不限于拖放操作、复制和粘贴操作、移动操作以及能够指定图像数据462的其他操作。在一些方面中,应用b404b可以是处理或管理内容和数据的应用、照片编辑器、图像绘制工具、文件管理器等。图像数据462仅作为示例示出;图像数据462可以是具有占位符464的文档容纳以插入的任何类型的数据。在一些其他方面,图像数据462可以表示或可以备选地通过文本、声音、元数据、隐藏或未隐藏。基于交互操作,对开页管理器401b接收图像数据462作为内容数据438。将内容插入媒体原语406b表示对媒体原语416b和对开页b 408b的更新。因此,对开页管理器410b将更新440通知给服务器409上的数据分发器416,以便跨连接的客户端设备(即,客户端设备a 402a中的对开页a 408a)同步对开页。
112.数据分发器416向客户端设备a 402a中的同步接收器412a发送对开页同步通知444a。类似地,数据分发器416向客户端设备b 402b中的同步接收器412b发送对开页同步通知444b。在一些方面,对开页同步通知444a和对开页同步通知444b指示相应的客户端设备同步相应的对开页。在一些方面,数据分发器416在服务器409中维护事务记录作为日志,以便在中止同步操作的情况下重新同步对开页。
113.同步接收器412a将对开页同步通知444a作为同步更新446重定向到对开页管理器410a。对开页管理器410a用图像数据更新对开页a 408a。对开页a 408a和对开页b 408b是同步的。相应地,相应对开页中的媒体原语406a和媒体原语606b被同步,两者都包括代替占位符的图像数据。对开页管理器410a可以更新对开页a 408a和媒体原语a 406a的图标表示,以指示图像数据作为媒体原语的内容的存在。
114.对开页管理器410a与应用a 404a通信以提供媒体原语的更新内容。在一些方面,对开页管理器410a以编程方式与应用a404a通信。通信可以使用底层操作系统(例如,应用编程接口和应用间对象模型)来进行,以在具有占位符464的文档内的占位符位置处发送媒体原语a 406a中的图像数据。应用a 404a通过插入图像数据(即,具有图像数据466的文档)来更新具有占位符464的文档。在一些方面,来自客户端设备b 402b中的拖放操作436以修改客户端设备a 402a中的具有图像数据466的文档的一系列操作可以自动发生。
115.一系列操作400b可以要求客户端设备a 402a的用户具有使用应用a 404a编辑文档以及使用具有媒体原语的对开页的技能。客户端设备b 402b的用户将具有使用应用b 404b对图像数据进行操作以及使用具有媒体原语的对开页的技能。这些操作不会对向文档中放置内容施加时间限制。也就是说,基于自动同步对开页和媒体原语的交互承诺的处理与设备、用户、应用和时间无关。
116.应当理解,关于图4b描述的各种方法、组件、属性等并不旨在将系统和方法限制于所描述的特定属性。因此,可以使用附加的拓扑配置来实践本文中的方法和系统,和/或可以排除所描述的一些属性,而不背离本文中公开的方法和方法。
117.图4c示出了根据本公开的方面的由客户端设备基于用内容实现占位符来自动更新文档的示例方法。图4c中示出了方法400c的操作的一般顺序。通常,方法400c以接收操作480开始,以提供操作494结束。方法400c可以包括更多或更少的步骤,或者可以与图4c中所示的步骤不同地安排步骤的顺序。方法400c可以作为由计算机系统执行并编码或存储在计算机可读介质上的一组计算机可执行指令来执行。此外,方法400c可以由与处理器、asic、fpga、soc或其他硬件设备相关联的门或电路来执行。在下文中,方法400c将参考结合图1、
图2a-图2c、图3、图4a-图4b、图5a-图5b、图6a-图6d、图7、图8a-图8b描述的系统、组件、设备、模块、软件、数据结构、数据特性表示、信令图、方法等来解释。
118.接收操作480接收媒体原语数据。在一些方面,用户可以在接收媒体原语数据之前交互地创建新媒体原语(例如,图4a中的媒体原语406a)作为内容的占位符(例如图4a的占位符407a)。例如,媒体原语中的内容的类型可以是图像或文本。媒体原语数据可以包括用于将内容放置在特定文档(例如,图4a中的文档464)或文件中的占位符位置数据。例如,占位符位置数据可以指定文档第三页距上边缘10.0cm和距左边缘2.5cm的坐标。例如,媒体原语可以是“图像”类型,其尺寸为水平800像素乘垂直800像素。文档可以存储在名为“travel_doc”的文件中。该文件可以与用于编辑文档的特定应用(例如,图4a中的应用a 404a)相关联。也就是说,媒体原语用作具有上述尺寸的图像的占位符,以插入文档的特定位置。在该接收操作480时,尚未指定内容图像数据。
119.更新操作482用占位符位置数据更新媒体原语数据。在一些方面,对开页管理器在媒体原语中添加与占位符相关联的数据。数据可以包括尺寸、文档容纳代替占位符被插入的内容的一种或多种类型(例如,光栅/矢量图像数据、文本、声音等)、占位符在文档中的位置、文档的标识符(例如,文件名)。媒体原语可以包括数据作为基于文本的格式,例如带有标签和分隔符、xml或逗号分隔的值、或结构化数据的二进制流形式。对开页管理器可以将媒体原语的更新数据存储在客户端设备的本地存储器中。在一些其他方面,客户端设备的本地存储可以是物理数据存储设备或虚拟数据存储设备,其跨网络映射到云中服务器上的存储器空间。在其他方面,本地存储的数据可以由服务器上的数据分发器访问。在一些其他方面,本地存储的数据可以由客户端设备发送到服务器。在一些方面,可以基于占位符位置数据来更新媒体原语的用户交互指示符的呈现。媒体原语的图标可以包括用于在客户端设备的显示器上呈现的占位符的指示符(例如,虚线空正方形)。
120.更新操作484更新本地客户端设备中的本地对开页数据。更新操作484可以通过用具有媒体原语的对开页替换空对开页来更新对开页的显示呈现。媒体原语被包括在客户端设备(例如,图4a中的客户端设备a 402a)中的对开页(例如,图4a的对开页a408a)。在一些方面,更新操作484将表示更新的对开页的数据存储在客户端设备的本地存储设备中。对开页可以由结构化数据表示,该结构化数据包括对开页的元数据(名称、样式配置、对开页中其组成部分的指示符等)以及关于作为其组成部分更新的媒体原语的信息。结构化数据可以以基于标记或定界符的数据格式(例如xml)或二元数据流存储在一个或多个文件中。
121.通知操作486通知对开页的更新。在一些方面,更新通知可以由客户端设备(例如,客户端设备a 402a)传输到连接到网络134的数据分发器416。对开页的更新通知可以包括状态信息(例如,新的、更新的、删除的等)以及与对开页及其组成部分相关联的更新数据和元数据。更新通知可以表示作为跨用户和设备的分布式对开页的弹性同步的事务过程的一部分的状态消息。在同步操作期间,与数据分发器的通信(包括更新通知)通过维护客户端设备中的事务日志和本地高速缓存数据以及服务器中的数据分发器来维护数据的原子性、一致性、隔离性和持久性。在通知更新的对开页失败的情况下,客户端设备可以基于本地存储的数据发起通知操作486的一次或多次重试。在一些方面,对开页更新接收器(例如,图4a中的对开页更新接收器150)可以接收更新通知并继续在其他客户端设备(例如,客户端设备b 402b)中同步对开页。
122.在一些方面,客户端设备可以从数据分发器接收状态更新通知,该状态更新通知指示但在完成跨用户和设备的对开页同步之前成功接收到更新通知。客户端设备随后可以接收另一状态更新通知,该通知指示由服务器上的数据分发器协调的同步的结果。同步的结果可以包括成功、失败等。成功指示跨用户和设备的对开页的确认成功同步。失败指示已确认同步失败。在一些方面,客户端设备可以基于本地存储中的事务日志和数据将对开页的更新回滚到先前状态。在一些其他方面,客户端设备可以进一步基于从服务器中的数据分发器接收到的数据的指令来更新对开页及其组成部分的元数据和数据,这指示了同步过程。
123.接收操作488接收对开页更新和内容数据。在示例性流程中,第二客户端设备(例如,图4a中的客户端设备b 402b)的用户可以将图像数据462添加为同步对开页(例如,在图4a的对开页b408b)中的媒体原语(例如,媒体原语406b)的内容(例如,内容占位符407b)。因此,对开页更新涉及第一客户端设备(例如,客户端设备a 402a)中的同步对开页(例如,图4a中的对开页a408a)。内容数据可以是图像数据(例如,图4a中的图像数据462)。在一些方面,接收的操作488从服务器上的数据分发器接收更新。
124.更新操作490更新本地对开页数据和对开页的显示呈现。例如,本地对开页数据可以用于对开页a 408a。本地对开页数据包括与对开页中的媒体原语和工具相关的数据。在一些方面,更新操作490用数据接收来更新本地存储器。对开页的经更新的呈现可能表明对开页最近已更新。
125.更新操作492更新本地媒体原语和媒体原语的显示呈现。在一些方面,更新操作490利用所接收的内容数据(例如,作为图4a中的图像数据462的副本的图像数据)更新媒体原语(例如,图4a的媒体原语406a)。在一些方面,媒体原语的呈现可以包括缩略图或其他指示符,其指示包括内容(例如,文本、图像、声音等)的媒体原语。所接收的内容可以存储在客户端设备中的本地存储器中。在当前示例场景中,内容是用于插入文档的图像数据的副本。在一些其他方面中,内容可以是一些其他数据类型、文本、声音、二进制或文档容纳用于插入的任何其他数据类型。
126.提供操作494向本地应用(例如,图4a中的应用a 404a)提供媒体原语中的经更新的内容。在一些方面,提供操作494可以使用应用用户界面在特定文档内的特定位置自动插入图像数据。例如,与客户端设备b 402b中的图像数据462相同的图像数据可以被放置在客户端设备a 402a中的文件名为“travel_doc”的文档的第三页上的距上边缘10.0cm和距左边缘2.5cm的位置处,其尺寸水平为800像素,垂直为800像素。在一些方面,媒体原语的内容的插入可以替换文档中的占位符。在一些其他方面中,内容的插入可以将占位符保留在文档中,以便在稍后时间随着媒体原语的内容被更新而进一步插入内容。在另一些方面,文档通过呈现内容(图像数据)而不从媒体原语复制到文档来呈现占位符内的内容。每次打开和呈现文档时,本地应用都可以访问并查找对开页中媒体原语的内容。
127.应当理解,操作480-494是为了说明本发明的方法和系统而描述的,并且并不旨在将本发明限制于特定的步骤序列,例如,可以以不同的顺序执行步骤,可以执行附加的步骤,并且可以在不脱离本发明的情况下排除所公开的步骤。
128.图5a示出了根据本公开的方面的用于在计算设备中交互共享远程指针作为对开页中的工具的示例系统的概述。具体地,系统500a可以表示计算设备连接显示设备的系统。
来自其他不同计算设备的远程指针操作在计算设备处共享。计算设备的显示设备显示由另一不同计算设备的用户操作的共享远程指针。例如,具有相应计算设备的多个用户在具有大型显示器的位置聚集并协作。
129.客户端设备a 502a包括应用a 504a、对开页a 508a、显示控制器a 106a、输入控制器a 108a、对开页管理器a 126a和同步接收器128a。具体地,客户端设备502b包括显示器107和本地存储器a 130a。客户端设备b 502b包括应用b 504b、对开页b508b、显示控制器b 106b、输入控制器b 108b、对开页管理器b126b和同步接收器128b。根据示例系统500a,客户端设备a 502a的用户在与客户端设备b 502b的用户协作的同时使用其显示器107。客户端设备b 502b的用户的远程指针出现在客户端设备a 502a的显示器107上。
130.在一些方面,对开页a 508a和对开页b 508b被自动同步。相应地,相应对开页的组成部分,即远程指针工具类型的工具510a和工具510b被同步。在工具510b上进行的更新被自动同步,并且工具510a接收更新。远程指针工具类型的工具510b与客户端设备502b的输入控制器b 108b相关联。在一些方面,输入控制器b108b例如在客户端设备b 502b上接收输入设备、鼠标和/或笔的运动数据。输入控制器b 108b将输入设备的运动数据提供给远程指针工具510。
131.输入控制器b 108b捕获客户端设备b 502b上的鼠标和/或笔的运动数据。工具510b从输入控制器b 108b接收运动数据。工具510b将运动数据提供给对开页管理器b 126b。对开页管理器b126b将对开页b 508b的更新通知和基于工具510b的运动数据传输到数据分发器516。
132.数据分发器516中的对开页更新接收器150从客户端设备b502b的对开页管理器b 126b接收更新通知和运动数据。存储更新器162更新云存储142中的共享对开页数据。状态更新器154更新更新与对开页b 408b相关联的对开页的状态信息。在一些方面,状态更新器154维护事务记录和日志,以在相关联的对开页中对开页的更新操作中提供弹性。在该示例中,客户端设备a 502a中的对开页a 508a与客户端设备b 502b中的对开页b 508b相关联。同步通知器156向客户端设备a 502a中的同步接收器128a通知用于将对开页a 508a与更新的对开页b 508b同步的命令。同步接收器128a接收同步更新命令以更新对开页a及其组成部分。同步接收器128a接收工具510a的远程指针的运动数据。
133.因此,客户端设备502b中的对开页b 508b的工具510b和客户端设备502a中的对开页a 508a的工具510a自动同步。对开页管理器a 126a用运动数据来更新工具510a。如图5a中的箭头所示,接收到运动数据,工具510a将运动数据提供给输入控制器a108a。输入控制器a 108a将运动数据处理为远程指针运动。因此,输入控制器a 108a向显示控制器a 106a提供远程指针运动数据,以在显示器106b上呈现远程指针。在一些方面,可以在显示器107上呈现多于一个的远程指针。每个远程指针可以被呈现为不同的形状和/或颜色,以使显示器107的观看方能够区分一个远程指针和另一个远程指针。在一些方面,输入控制器a 108a可以提供远程指针的选择输入操作(例如,点击输入事件)。输入控制器b 108b可以基于选择输入操作向工具510b提供数据。工具510b上的数据的更新引起工具510b和工具510a的同步。工具510a可以向输入控制器508a提供输入数据,用于处理客户端设备a 502a上的选择输入操作。因此,例如,显示器106b可以通过改变远程指针的呈现和显示器上的其他更新来提供选择输入操作的结果。
134.应当理解,关于图5a描述的各种方法、设备、应用、特征等并不旨在将系统500a限制为由所描述的特定应用和特征执行。因此,可以使用附加的控制器配置来实践本文中的方法和系统,和/或可以排除所描述的特征和应用,而不背离本文中公开的方法和应用。
135.图5b示出了根据本公开的方面的用于在计算设备中交互地共享远程指针的示例方法和时序图。图5b示出了客户端设备a502a、客户端设备b 502b和服务器509之间的通信500b。客户端设备a 502a可以包括输入控制器a 108a(即图5中的输入控制器a 108a)、对开页管理器a 126a和同步接收器128a。客户端设备b 502b可包括输入控制器b、对开页管理器b 126b和同步接收器128b。在一些方面,创建远程指针以供客户端设备b 502b的用户控制。远程指针与客户端设备a 502a共享,用于在客户端设备a512a的显示器(例如,图5a中的显示器107)上呈现。
136.创建操作520由客户端设备b 502b的用户在客户端设备b502b中的对开页(即,图5a中对开页b 508b的工具510b)中创建远程指针类型的工具。为了将所创建的工具与客户端设备502b中的一系列输入操作相链接,输入控制器b 108b向对开页管理器b126b发送设置指针命令522。对开页管理器b将工具510b与输入控制器(例如输入控制器b 108b)相关联。对开页管理器b向服务器509中的数据分发器516发送通知更新524消息。数据分发器526向客户端设备b 502b的同步接收器128b发送同步更新528b命令。类似地,数据分发器516向客户端设备a 502a的同步接收器128a发送同步更新528a命令。同步更新命令指示接收方客户端设备更新对开页和相应的选区(例如,媒体原语和工具)。
137.客户端设备a 501的同步接收器128a接收同步更新528a命令,并将同步更新530命令提供给对开页管理器a 126a。对开页管理器a 126a更新客户端设备a 502a中的相应对开页。因此,对开页管理器a 126a在用于客户端设备a 502a的用户的工具(即工具510a)中制作远程指针。在一些方面,用户可以交互地选择工具以使用客户端设备a 502a中的共享远程指针。
138.客户端设备a 502a的用户可以交互地从工具510a中选择532指针工具。基于该选择,对开页管理器a 126a设置534到输入控制器a 108a的远程指针。在方面,输入控制器a 108a与显示控制器a 106a通信以在显示器107上呈现共享远程指针536。
139.共享远程指针536基于在客户端设备b 502b中发生的输入运动而移动。客户端设备b 502b的用户移动538输入设备,例如。输入控制器b 108b生成指针位置数据540,并将其发送到对开页管理器b 126b。对开页管理器b 126b向服务器509的数据分发器516(即图5a中的数据分发器516)发送通知更新542通知。
140.数据分发器516向客户端设备b 502b的同步接收器128b发送同步更新546b命令。类似地,数据分发器516向客户端设备a502a的同步接收器128a发送同步更新546a命令。同步更新命令指示接收方客户端设备更新对开页和相应的选区(例如,媒体原语和工具)。
141.客户端设备a 501的同步接收器128a接收同步更新528a命令,并向对开页管理器a 126a提供同步更新530命令。对开页管理器a 126a更新客户端设备a 502a中的相应对开页。对开页管理器a 126a向输入控制器a 108a更新550远程指针的位置。在一些方面中,输入控制器a 108a与显示控制器a 106a通信,以在显示器107上呈现共享远程指针552的移动。
142.在一些方面,共享远程指针的移动数据可以由客户端设备b502b通过服务器509中的数据分发器作为数据流传输到客户端设备a 502a,而不是大量传输数据的批量数据传
输。通过在流中提供运动数据,可以平滑地呈现共享远程指针的运动。
143.在一些方面,具有显示器507的客户端设备a 502a的用户可以在对开页中创建具有远程指针类型的工具,并将该工具与显示器507相关联。本公开可以与客户端设备502b的用户共享对开页。看到客户端设备b中的工具与远程指针类型的工具在同步的对开页中,客户端设备b 502b的用户可以选择该工具并将该工具与客户端设备b的输入控制器b 108b相关联。在一些方面,同步工具和相应客户端设备的输入控制器建立了基于同步对开页自动传输运动数据的路径。此后,客户端设备502b中的输入设备(例如,笔和/或鼠标)的移动导致客户端设备502a中的显示器107上的共享远程指针的移动。在一些方面,多个用户可以使用远程指针类型的工具来在客户端设备502a的显示器107上显示各个用户的多个远程指针。
144.应当理解,关于图5b描述的各种方法、组件、属性等并不旨在将系统和方法限制于所描述的特定属性。因此,可以使用附加的拓扑配置来实践本文中的方法和系统,和/或可以排除所描述的一些属性,而不背离本文中公开的方法和方法。
145.应该理解的是,将远程指针作为对开页的工具共享的示例场景代表了使用对开页中的工具的示例,并且该工具的使用不受任何限制。工具可以与任何设备和应用相关联,用于在各种情况下共享与处理数据相关的功能,例如当数据作为与其他用户和客户端设备的协作努力的一部分被处理时。通过同步对开页中的工具来共享这些工具,可以提高在同步和异步情况下协作工作会话期间传输用户活动的效率。使用所公开的对开页的工具的同步对于客户端设备之间的处理中的可能故障是有弹性的。在这样做时,本公开提供了用于访问工具和对开页的用户界面,这些工具和对开页在用户和客户端设备之间是一致的。复杂的用户操作可以在用户的相应客户端设备上执行,因为工具可以与客户端设备中的任何输入和输出设备以及应用(无论是物理的还是虚拟的)相关联。
146.图6a-图6d示出了根据本公开的方面的基于同步对开页共享内容的示例。图6a示出了根据本公开的方面的在用户和设备之间交互共享内容的示例结构。
147.本公开提供了一种具有基于事务记录管理的弹性的分布式系统,不同于例如使用自组织tcp连接或udp流。每个客户端都保留共享状态的本地副本。对本地状态的更改将实时同步,一旦建立连接,状态就会更新(或在新设备上“恢复”)。联合中的客户端可以通过云进行通信,它们经由包含访问授权所需信息的联合特定连接字符串访问云。
148.本公开可以利用基于声明性数据库技术的基础设施来持久化数据,通过在可确定重放的日志中捕获状态变化来提供虚拟弹性。这是经由云在一个持久、故障弹性和性能方面实现的。设备间连接的虚拟化与状态变化的虚拟弹性相结合,使系统不仅对ip地址变化具有鲁棒性,而且有助于用户界面操作从一个设备迁移到另一个设备。只要客户端可以访问云,它们就可以(重新)同步应用状态,在跨设备故障转移时实现从一台机器到另一台机器的状态转换。在一些方面,跨设备故障转移提供了一系列操作步骤,以将一个计算设备上的对开页及其组成部分的更新弹性地转换到另一个计算设备。该系统不需要实现额外的程序逻辑来处理复杂的分布式故障情况。
149.在本公开中,无论当前应用、网页还是文件系统窗口,对开页及其组成部分可以被呈现为多窗口操作系统中的顶层半透明窗口,使得它们始终可见并且始终可用作拖放目标。客户端设备的用户可以通过鼠标、笔或直接触摸进行拖放,在小程序和未修改的外部应
用之间传递这些丰富的数据格式。在一些方面,选择和放置(例如,拖放、复制和粘贴等)内容和数据到媒体原语或工具分别以三种格式添加数据:(i)文件系统中图像或其他数据的副本的路径;(ii)位图或内容或数据的其他格式,以实现丰富的反馈和与未修改的应用的兼容性;以及(iii)将内容的标识符(例如图像数据)传递给对开页并用于处理交互承诺的内部格式。
150.当用户将媒体原语或工具的对象放置到未修改的外部应用上时,程序间通信使用与操作相关联的应用编程接口或对象模型进行。媒体原语和工具提供了可概括的抽象类,使开发方能够添加对新应用的支持。备选地,开发方可以修改外部应用以直接访问剪贴板数据格式。例如,对于传统应用,与外部应用的数据传输可基于剪贴板格式、文件路径、位图图像和文本字符串进行。
151.随时解除绑定动作是所公开的系统的技术基础的基础。例如,当一个设备加入联合时,它会从会话中确定地重播共享模型更新。因此,系统可以立即或稍后将活动迁移到另一个设备,甚至可以重新访问过去的状态,只要它们在日志中仍然可用。该系统通过交互承诺在用户界面中提供“时间不绑定”。交互承诺允许用户为尚未可用的内容插入占位符。
152.这些工具为无时间限制的交互承诺提供了应用本机支持。例如,颜色选择器可以接受从外部图像编辑器应用拖动的选择(形状)。系统保留对该形状的引用,并在用户使用颜色选择器采样新颜色时更新选择的填充颜色。
153.在一些方面,发生在系统中的交互不受任何特定用户的约束。例如,交互承诺适用于协作场景,其中一个用户可以插入一个图像占位符,然后通过对开页与协作方共享。然后,协作方可以完成它(例如,用设备的相机拍照),并通过对开页进行分享。
154.图6b示出了根据本公开的方面的用于在对开页中创建各种对象的示例性用户界面。
155.小程序跨窗口管理器和其他应用提供用户界面对象。小程序是独立的可执行文件,可视为紧凑的区域,当用户需要时(例如,当鼠标悬停在代表小程序的图标上时)可以显示,然后在不使用时淡入背景。用户可以根据需要重新定位它们,也可以在不再需要时取消它们。小程序是半透明的ui元素。半透明允许部分显示底层内容或程序窗口。但是,当用户选择一个小程序(通过触摸或用鼠标或笔尖指针悬停)时,小程序完全实现,变得不透明。当不再选中或指针移开时,小程序将变回半透明状态。因此,小程序总是可见的,总是在顶部,并且总是可以从任何程序或网页进行拖放。
156.通过这些小程序,ui努力使跨设备交互可见和本地。本公开提供了可以在用户需要时(例如,当鼠标悬停在对开页图标上时)显示,然后在不使用时淡入背景的窗口。这种具体化允许域对象与交互工具相结合,这非常适合于多表面环境。
157.在一些方面,小程序使域对象能够与交互工具相结合,同时通过工具交互与操作系统、窗口管理器、应用窗口以及彼此进行互操作。用户可以从任务栏启动小程序(图6b)。小程序可以显示在半透明窗口中,其中当用户需要时(例如,当鼠标悬停在对开页图标上时)显示窗口,然后在不使用时淡入背景。与半透明窗口中呈现的小程序和工具的进一步交互通常直接生成小程序,而无需重新访问此任务栏。
158.本公开提供了五种接口机制以从设备、应用、用户和时间解除绑定内容和工具:
159.对开页是一个小程序,为个人工作和协作工作提供跨设备门户。对开页提供了一
个存放单个或混合媒体内容(媒体原语和容器)以及交互工具的地方。门户允许跨不同用户和跨不同设备访问工具中的应用和/或数据以及媒体原语中的内容。
160.交互承诺是内容的占位符,允许推迟选定的行动或决定。例如,用户可以拖动空的媒体原语(其中图像的内容还不可用)来创建和共享未来实现的承诺。
161.工具封装了许多用户界面操作、输入和交互行为。用户可以将工具拖动到内容上(或将其用作放置目标),以通过工具交互实现各种效果。媒体原语包括显示在半透明窗口中的内容(如图像),以使其可直接用于跨设备使用。
162.容器在视觉上表示为一个张开的捆。容器是一个小程序。容器提供了一个始终可用的多对象视觉剪贴板,用户可以停靠在屏幕的任何边缘,方便地收集和管理内容。
163.图6c示出了根据本公开的方面的基于自动同步对开页的示例性操作。示例:爱丽丝(alice)是一家小公司的建筑师,目前正在编写一份关键报告,以确保她的建筑设计在一个遥远的建筑工地上正确施工:
164.场景1.创建对开页:爱丽丝从系统托盘启动任务栏,在那里她可以创建媒体原语、容器、对开页和工具。她创建了一个小程序,在设备之间传递内容。可以在半透明窗口中显示对开页,其中当用户需要时(例如,当鼠标悬停在对开页图标上时)显示窗口,然后在不使用时淡入背景。可以通过拖放从其他程序或小程序访问该对开页。
165.场景2.随时随地收集图像:在火车上,爱丽丝使用她的平板电脑从任务栏创建一个容器。她浏览了她的网站照片文件夹,并将想要的图片拖放到容器中。爱丽丝将这个容器拖到她创建的对开页中。后来,在她的办公室里,她从桌面上打开它,可以访问共享的容器,其中包含她平板电脑上收集的图像。
166.场景3.创建并履行承诺:在她的桌面上,爱丽丝意识到她没有新大楼入口的照片。爱丽丝创建了一个空占位符并将其插入到文档中。她通过一个对开页与施工现场的同事约翰(john)分享。那天下午,约翰为新入口拍照,以填补占位符。当爱丽丝从对开页中取回图像时,她的文档会更新,从而实现了承诺。
167.场景4.在大屏幕上共享内容:在一个有大屏幕的会议室里,爱丽丝与两位同事讨论报告。在社交距离上,他们可以通过一个对开页将鼠标指针传递到大屏幕上。然后,爱丽丝站起来发言,而她的同事则用电话指出他们对文件中的部分内容有疑问。爱丽丝使用extract工具拍摄当前页面的快照。然后,当她的同事指出关注的领域时,她用钢笔对文档进行注释。她通过再次提取页面来捕获标记,为了进行比较,她将两个快照拖回到共享对开页中。
168.与以前的系统不同,本公开提供了一种系统托管“富客户端”,其中共享层在编程语言的绑定级别直接插入应用状态。本公开提供了在原则分布式系统架构中在云中的服务器中管理的持久共享状态作为其组成部分。因此,本公开提供了一种分布式系统,其为内容和工具解除设备、应用、用户和时间的所有四个基石的绑定。
169.图6d示出了根据本公开的各方面的将协作工作与设备、应用、用户和时间解除绑定的本公开。基于共享对开页同步内容是基于具有事务管理的弹性分发系统。小程序在单个设备上运行,但底层系统经由云将程序状态的所有更新保存在持久日志中。因此,用户活动从一个设备迁移到另一个设备是故障转移到新机器的一种特殊情况。但是,相同的持久日志机制提供了高性能的同步,也支持并行(多设备)体验。这允许从特定设备解除界面元
素的绑定。
170.本公开通过例如通过应用编程接口在媒体原语和外部应用之间提供编程传输数据来解除应用的绑定。该系统提供半透明、始终在顶部的小程序来表示对开页、媒体原语和工具。小程序可以显示在半透明窗口中,其中当用户需要时(例如,当鼠标悬停在对开页图标上时)显示窗口,然后在不使用时淡入背景。媒体原语和工具与外部应用的集成不限制应用共享内容和工具。在一些方面,工具包括数据和处理数据的应用。当使用受许可证保护的应用时,可以向该工具添加额外的用户许可证。也就是说,共享和同步工具传递数据和应用。在一些方面,具有同步工具的其他设备可能缺少应用来处理工具共享的数据。通过这种方式,共享工具不仅提供数据,而且还为应用提供用户许可证,以供其他用户使用该应用在相应设备上处理数据。
171.本公开不限制用户共享内容和数据。各个用户可以继续使用他们熟悉的应用。然而,本公开使得用户能够在使用不同类型应用的用户之间共享内容并与其他用户共享内容。由于小程序可以跨设备漫游,因此它们可以在多个设备上的多个用户之间建立连接。然而,在目前的实践中,人们用于协作的许多工具与用于个人工作的日常工具有很大的不同。人们可以通过与将屏幕抓取传递给同一地点(甚至是远程)的协作方的交互机制完全相同的交互机制,将一段短暂的信息留作以后在个人工作中使用。
172.本公开通过在用户之间和客户端设备之间提供同步和异步交互,来限制在协作工作期间共享内容的时间。特别地,交互承诺将出现内容需求的时间与协作方提供内容的时间分离开来。本系统提供了指定文档中占位符位置的时间。本系统还提供了通过将占位符替换为内容解耦来插入内容的时间。通过取消两个场合重合的要求,这两个场合被分离。一旦存在分布式状态的可确定重放日志,应用逻辑就不必立即“故障转移”。同样,更细粒度的交互也可以保持潜在状态,以便稍后迁移或同步。在一些方面,当插入到占位符的内容是受版权保护的材料时,数字资产权利可以在数字权利管理中自动更新和/或提供。数据分发器可以与数字权利管理交互地更新数字资产权利。在一些其他方面,数字许可权利可以在数字许可管理中自动更新和/或提供。例如,已经接收到同步媒体原语和/或工具的客户端设备缺少处理所接收的内容和/或数据所需的应用。客户端设备可以由数据分发器提供,例如数字许可和数字许可下的应用,以适当地处理接收的内容和/或数据。数据分发器可以与数字许可管理交互获得并分发具有数字许可的应用。
173.应当理解,关于图6a-图6d描述的各种方法、组件、属性等并不旨在将系统和方法限制于所描述的特定属性。因此,可以使用附加的拓扑配置来实践本文中的方法和系统,和/或可以排除所描述的一些属性,而不背离本文中公开的方法和方法。
174.图7是示出可以实践本公开的各方面的计算设备700的物理组件(例如硬件)的框图。以下描述的计算设备组件可以适用于上述计算设备。在基本配置中,计算设备700可以包括至少一个处理单元702和系统存储器704。根据计算设备的配置和类型,系统存储器702可以包括但不限于易失性存储器(例如,随机存取存储器)、非易失性存储(例如,只读存储器)、闪存或这些存储器的任何组合。系统存储器704可以包括操作系统705和一个或多个程序工具706,其适于执行本文所公开的各个方面。例如,操作系统705可以适合于控制计算设备700的操作。此外,本公开的各方面可以结合图形库、其他操作系统或任何其他应用来实践,并且不限于任何特定的应用或系统。该基本配置在图7中由虚线708内的那些组件示出。
计算设备700可以具有附加特征或功能。例如,计算设备700还可以包括额外的数据存储设备(可移动和/或不可移动),例如磁盘、光盘或磁带。这种附加存储在图7中由可移动存储709和不可移动存储710示出。
175.如上所述,多个程序工具和数据文件可以存储在系统存储器704中。当在处理单元702上执行时,程序工具706(例如,数据分发应用720)可以执行包括但不限于本文所述的方面的处理。数据分发应用720包括更新接收器722、存储更新器724、接收方确定器726、状态更新器728、同步通知器730,如关于图1更详细描述的。根据本公开的方面可以使用的其他程序工具可以包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用等。
176.此外,本公开的各方面可以在包括分立电子元件的电路中、包含逻辑门的封装或集成电子芯片、利用微处理器的电路中或者在包含电子元件或微处理器的单个芯片上实践。例如,可以经由片上系统(soc)来实践本发明的各个方面,其中图7所示的每个或多个组件可以集成到单个集成电路上。这样的soc设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能,所有这些都作为单个集成电路集成(或“烧录”)到芯片基板上。当经由soc操作时,本文所描述的关于客户端切换协议的能力的功能可以经由与单个集成电路(芯片)上的计算设备700的其他组件集成的专用逻辑来操作。还可以使用能够执行逻辑操作的其他技术来实践本公开的各个方面,例如,与、或和非,包括但不限于机械、光学、流体和量子技术。此外,本公开的方面可以在通用计算机内或在任何其他电路或系统中实践。
177.计算设备700还可以具有一个或多个输入设备712,诸如键盘、鼠标、笔、声音或语音输入设备、触摸或滑动输入设备等。还可以包括(多个)输出设备714,诸如显示器、扬声器、打印机等。上述设备是示例,可以使用其他设备。计算设备700可以包括允许与其他计算设备750通信的一个或多个通信连接716。合适的通信连接716的示例包括但不限于射频(rf)发射机、接收机和/或收发机电路;通用串行总线(usb)、并行和/或串行端口。
178.本文中使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可以包括以用于存储信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质,例如计算机可读指令、数据结构或程序工具。系统存储器704、可移动存储709和不可移动存储710都是计算机存储介质示例(例如,存储器存储)。计算机存储介质可以包括ram、rom、电可擦除只读存储器(eeprom)、闪存或其他存储技术、cd-rom、数字多功能盘(dvd)或其他光存储设备、盒式磁带、磁带、磁盘存储设备或其他磁存储设备,或可用于存储信息并可由计算设备700访问的任何其他制品。任何这样的计算机存储介质可以是计算设备700的一部分。计算机存储介质不包括载波或其他传播或调制的数据信号。
179.通信介质可以由计算机可读指令、数据结构、程序工具或调制数据信号(例如载波或其他传输机制)中的其他数据来实现,并且包括任何信息传递介质。术语“调制数据信号”可以描述具有一个或多个特性的信号,该特性以对信号中的信息进行编码的方式被设置或改变。作为示例而非限制,通信介质可以包括有线介质,诸如有线网络或直接有线连接,以及无线介质,诸如声学、射频(rf)、红外和其他无线介质。
180.图8a和图8b示出了计算设备或移动计算设备800,例如,移动电话、智能电话、可穿戴计算机(诸如智能手表)、平板计算机、膝上型计算机等,本公开的各个方面可以用其来实
践。在一些方面,用户(例如,图1中的客户端设备a 102a的用户和客户端设备b 102b的用户)使用的客户端可以是移动计算设备。参考图8a,示出了用于实现这些方面的移动计算设备800的一个方面。在基本配置中,移动计算设备800是具有输入元件和输出元件两者的手持计算机。移动计算设备800通常包括显示器805和一个或多个输入按钮810,其允许用户将信息输入到移动计算设备800中。如果包括作为可选输入元件,则侧输入元件815允许进一步的用户输入。侧输入元件815可以是旋转开关、按钮或任何其他类型的手动输入元件。在备选方面,移动计算设备800可以包括更多或更少的输入元件。例如,在一些方面,显示器805可以不是触摸屏。在又一备选方面,移动计算设备800是便携式电话系统,诸如蜂窝电话。移动计算设备800还可以包括可选小键盘835。可选小键盘815可以是在触摸屏显示器上生成的物理小键盘或“软”小键盘。在各个方面,输出元件包括用于显示图形用户界面(gui)的显示器805、视觉指示器820(例如,发光二极管)和/或音频换能器825(例如,扬声器)。在一些方面,移动计算设备800包括用于向用户提供触觉反馈的振动换能器。在又一方面,移动计算设备800包括输入和/或输出端口,诸如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如hdmi端口),用于向外部设备发送信号或从外部设备接收信号。
181.图8b是示出计算设备、服务器(例如,图1中的web服务器102、web搜索服务器114和副本生成器120)、移动计算设备等的一个方面的架构的框图。也就是说,移动计算设备800可以结合系统802(例如,系统架构)来实现一些方面。系统802可以实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息客户端、游戏和媒体客户端/播放器)的“智能电话”。在一些方面,系统802被集成为计算设备,诸如集成数字助理(pda)和无线电话。
182.一个或多个应用866可以被加载到存储器862中,并在操作系统864上或与操作系统866相关联地运行。应用的示例包括电话拨号程序、电子邮件程序、信息管理(pim)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息传递程序等。系统802还包括存储器862内的非易失性存储区域868。非易失性存储区域868可用于存储在系统802断电时不应丢失的持久信息。应用866可以使用非易失性存储区域868中的信息并将其存储在非易失性存储区域868中,诸如电子邮件应用使用的电子邮件或其他消息等。同步应用(未示出)也驻留在系统802上,并且被编程为与驻留在主机上的对应同步应用交互,以保持存储在非易失性存储区域868中的信息与存储在主机计算机处的对应信息同步。应当理解,其他应用可以被加载到存储器862中并在本文所述的移动计算设备800上运行。
183.系统802具有电源870,其可以被实现为一个或多个电池。电源870还可以包括外部电源,诸如ac适配器或为电池补充或再充电的电动对接支架。
184.系统802还可以包括执行发送和接收射频通信的功能的无线电接口层872。无线电接口层872经由通信运营方或服务提供方促进系统802与“外部世界”之间的无线连接。在操作系统864的控制下进行与无线电接口层872之间的传输。换句话说,由无线电接口层862接收的通信可以经由操作系统864传播到应用程序866,反之亦然。
185.视觉指示器820(例如,led)可用于提供视觉通知,和/或音频接口874可用于经由音频换能器825产生听觉通知。在所示配置中,视觉指示器820为发光二极管(led),音频换能器825为扬声器。这些设备可以直接耦合到电源870,使得当被激活时,即使处理器860和
其他组件可能为了节省电池功率而关闭,它们仍保持开启一段由通知机制规定的持续时间。led可以被编程为无限期地保持开启,直到用户采取行动来指示设备的通电状态。音频接口874用于向用户提供可听信号并从用户接收可听信号。例如,除了耦合到音频换能器825之外,音频接口874还可以耦合到麦克风以接收可听输入,例如便于电话交谈。根据本公开的方面,如下所述,麦克风还可以用作音频传感器,以便于控制通知。系统802还可以包括视频接口876,其使得能够操作车载相机830来记录静止图像、视频流等。
186.实现系统802的移动计算设备800可以具有附加特征或功能。例如,移动计算设备800还可以包括额外的数据存储设备(可移动和/或不可移动),例如磁盘、光盘或磁带。这种附加存储设备在图8b中由非易失性存储区域868示出。
187.由移动计算设备800生成或捕获并经由系统802存储的数据/信息可以如上所述本地存储在移动计算设备100上,或者数据可以存储在任何数量的存储介质上,该存储介质可以由设备经由无线电接口层872或者经由移动计算设备800和与移动计算设备800(例如,分布式计算网络(诸如因特网)中的服务器计算机)相关联的单独计算设备之间的有线连接来访问。应当理解,这样的数据/信息可以经由移动计算设备800经由无线电接口层872或经由分布式计算网络来访问。类似地,这种数据/信息可以根据公知的数据/信息传输和存储装置(包括电子邮件和协作数据/信息共享系统)在计算设备之间容易地传输以供存储和使用。
188.本技术中提供的一个或多个方面的描述和说明不旨在以任何方式限制或限制本公开的范围。本技术中提供的方面、示例和细节被认为足以传达占有权并使其他人能够做出和使用要求保护的公开的最佳模式。所要求的公开不应被解释为限于例如本技术中提供的任何方面或细节。无论是组合显示和单独描述,各种特征(结构和方法)都旨在选择性地被包括或省略,以产生具有特定特征集的实施例。已经提供了本技术的描述和说明,本领域技术人员可以设想落入本技术中体现的一般发明构思的更广泛方面的精神范围内的变化、修改和替代方面,这些方面不脱离要求保护的公开的更广范围。
189.如将从前述公开中理解的,本技术的一个方面涉及计算机实现的方法。该方法包括由第一计算设备接收与第一应用相关联的数据作为对第一计算设备中的第一对开页中的媒体原语的更新,其中第一对开页是用于基于与第一应用不同的用户交互界面来共享数据的第一用户交互实体,第一对开页包括包含内容的媒体原语,更新涉及内容向媒体原语的添加,并且第一对开页在第一计算设备上执行。此外,该方法包括由第一计算设备传输第一通知,其中第一通知涉及基于更新的媒体原语将第一对开页与第二对开页同步,第二对开页是用于基于用户交互界面访问具有数据的第二应用的第二用户交互实体,该用户交互界面与第二计算设备上的第二应用不同。该方法还包括由第一计算设备接收将第一对开页与第二对开页同步的状态,以及由第一计算设备基于所接收的状态通过第一计算设备上的用户交互界面提供经更新的第一对开页。
190.本技术的另一方面涉及计算机实现的方法。该方法包括由第一计算设备接收与第一应用相关联的数据作为对第一计算设备中的第一对开页中的工具的更新,其中第一对开页是用于基于与第一应用不同的用户交互界面来共享数据的第一用户交互实体,第一对开页包括工具,工具表示数据的转换,更新涉及数据向工具的添加,并且第一对开页在第一计算设备上执行。此外,该方法包括由第一计算设备传输第一通知,其中第一通知涉及基于经
更新的工具将第一对开页与第二对开页同步,第二对开页是提供在第二计算设备上执行的用户交互界面的第二交互实体,第二计算设备不同于第一计算设备,以及由第一计算设备在第一计算设备上提供经更新的第一对开页。
191.在进一步的方面,本技术涉及一种系统。该系统包括处理器和存储计算机可执行指令的存储器,计算机可执行指令在由处理器执行时使系统执行操作。操作包括接收与第一应用相关联的数据作为对第一对开页的组成部分的更新,第一对开页是用于基于与第一应用不同的用户交互界面与第二对开页共享数据的第一用户交互实体,第一对开页在第一计算设备上执行。此外,操作包括由第一计算设备传输第一通知,其中第一通知涉及基于经更新的组成部分将第一对开页与第二对开页同步,第二对开页是用于基于用户交互界面访问具有数据的第二应用的第二用户交互实体,用户交互界面不同于第二计算设备上的第二应用,第一应用不同于第二应用。操作还包括由第一计算设备接收将第一对开页与第二对开页同步的状态,以及由第一计算设备基于所接收的状态在第一计算机设备上提供第一对开页的经更新的组成部分。
192.上述一个或多个方面中的任何一个结合上述一个或者多个方面的任何其他方面。本文所述的一个或多个方面中的任一个。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1