包括空间事件地图的协作系统的制作方法

文档序号:9620886阅读:257来源:国知局
包括空间事件地图的协作系统的制作方法
【技术领域】
[0001] 本发明涉及用于数字协作的装置、方法和系统,并且更特别地涉及促进多个同时 的用户具有对全局工作空间数据的访问的数字显示系统。
【背景技术】
[0002] 数字显示器常常用于以与白板类似的方式的交互式演示和其他目的。一些显示器 被联网并且可以用于协作,使得对一个显示器上的显示图像做出的修改复制在另一显示器 上。大规模显示器为超过一个用户同时地在相同表面上呈现或者注释提供机会。然而,在 多个用户的协作中可能发生问题,并且在一些情况中,其对单个显示器的使用可能限制其 表达的灵活性。
[0003] 同时,数字显示器可以包括单个房间中的大型显示屏幕或者屏幕阵列,其被配置 为提供大型交互表面。因此,应预期到,可以由许多用户在针对不同协作的不同时间共享大 型数字显示器。在用于协作的工作空间数据对限于授权用户的访问保密的情况下,仅在数 字显示器处用户交互的数字显示器被分发到许多网站并且不一定在单个用户的排他性控 制下,出现了关于对协作的访问的安全性问题。
[0004] 另外,系统的分布式特性导致交互并且可以同时和有时在没有其他用户正观察工 作空间数据时改变相同工作空间数据的不同地点的多个用户的可能性。这产生关于多个位 置的并发性以及关于工作空间数据的当前状态的共享信息的问题。
[0005] 因此,期望找到以这样的方式允许多个用户共享显示器的分布式网络中的工作空 间数据的方式:每个用户具有随着想法的实时交换表达他或她的想法的最大自由度,同时 提供足以保护协作的保密特性的安全性。因此,对于创建问题的鲁棒的解决方案而言出现 机会。可以实现更好的想法、协作和结果。

【发明内容】

[0006] 描述了一种实现空间事件地图的协作系统,该协作系统可以具有用于基于空间事 件地图显示图像的许多分布式数字显示器。空间事件地图还可以被部署在具有单个位置的 单个显示器的系统中。
[0007] 公开了一种支持针对跨越多个设备和位置可访问的每个会话的基本上无限数量 的2D和3D工作空间的系统。
[0008] 基于空间事件地图描述了一种协作系统,该协作系统包括定位工作空间中的事件 的条目。空间事件地图可以包括事件的日志,其中日志中的条目具有工作空间中的事件的 图形目标的位置和时间。而且,日志中的条目可以包括标识用于在显示器上渲染图形目标 所使用的图形构造的参数(例如url或者实际文件)。描述了服务器侧网络节点和客户端 侧网络节点,其互相交互以形成通过其可以使空间事件地图对授权客户端可访问的协作系 统,并且客户端可以利用空间事件地图来渲染局部显示区域,并且创建可以被添加到空间 事件地图并且与其他客户端共享的事件。
[0009]与特定协作会话相关联的工作空间可以被表示为提供没有指定界限的参考帧的 无限虚拟区域,在其内定位时间和虚拟协作空间中的事件。工作空间可以涵盖实际上无限 的虚拟区域,因为其具有客户端侧网络节点导航超过其界限的可能性微不足道的足够大的 大小。例如,在一些设置中,涵盖映射到包括1,〇〇〇, 〇〇〇像素乘以1,〇〇〇, 〇〇〇像素的物理显 示空间的虚拟区域的大小可以被认为实际上是无限的。在一些示例中,工作空间基本上是 "无限的",因为其大小仅由标识虚拟空间内的位置所使用的解决方案的范围所限制。而且, 系统可以包括若干工作空间,其中每个工作空间可以单独地配置以由单个用户或者用户组 访问。
[0010] 可以根据应用程序接口API对协作系统进行配置,使得服务器侧网络节点和客户 端侧网络节点可以关于协作事件通信。可以定义标识创建或者修改具有工作空间中的位置 和时间的图形目标的事件的消息。可以将事件分类为历史事件和短暂事件,其中历史事件 被存储在空间事件地图中,并且短暂事件未利用空间事件地图永久地存储而是被分布在协 作会话的其他客户端之间。
[0011] 提供了包括操作集和操作参数的应用程序接口(API),其提供利用空间事件地图 的工作空间的参与。可以使用软件实现的功能来在数据处理器中实现操作集,其可以是硬 件辅助的,其被配置为使用参数和执行API的操作。
[0012] 提供以上概述以便提供对本文所描述的协作系统的一些方面的基本理解。该概述 不旨在标识发明的关键或者重要元件或者描绘发明的范围。
【附图说明】
[0013] 将参考其具体实施例描述本发明,并且将对未按比例绘制的附图进行参考,并且 其中:
[0014] 图1A和1B(统称为图1)图示了数字显示器协作环境的示例方面。
[0015] 图2图示了包括地理上被分布到可以被递送以用于由授权用户使用的工作空间 数据的多个显示墙的协作系统。
[0016] 图3和4图示了图1的显示器上的绘制区域行为的方面。
[0017]图5A-5E(统称为图5)是针对工作空间的工作空间数据的部分的数据结构的简化 图。
[0018]图6图示了如本文中所描述的系统的一个示例中的工作空间中的参与者的功能 特征。
[0019] 图7是使用联合显示器实现的数字显示器的示图。
[0020] 图8是计算机系统110(例如图1B中的客户端设备计算机系统)的简化框图。
[0021] 图9是可访问地被存储到客户端设备计算机系统110 (图1B)的数据库的示意图。
[0022] 图10是图示可以用于协作系统的用户登录顺序的服务器侧逻辑的方面的流程 图。
[0023] 图11是图示可以用于协作系统的用户登录顺序的客户端侧逻辑的方面的流程 图。
[0024] 图12是图示针对用于协作会话的墙中的显示客户端的客户端侧逻辑的方面的流 程图。
[0025] 图13是图示管理协作系统中的利用分布式显示墙的服务器侧逻辑的方面的流程 图。
[0026] 图14是图示针对用作协作系统中的显示器的联合显示系统的客户端逻辑的方面 的流程图。
[0027] 图15以图1B的风格图示支持其中存在广泛地分布的显示器的分布式显示器协作 的系统。
[0028] 图16是客户端侧网络节点和显示器的简化功能框图。
[0029] 图17是图示像图16那样的客户端侧网络节点的操作的流程图。
[0030] 图18是图示由像图16那样的客户端侧网络节点中的逻辑所执行的流程的流程 图。
【具体实施方式】
[0031] 以下描述被呈现为使得本领域的技术人员能够做出和使用本发明,并且被提供在 特定应用和其要求的上下文中。所公开的实施例的各种修改对于本领域技术人员而言将是 容易明显的,并且在不脱离本发明的精神和范围的情况下,本文所限定的通用原理可以适 于其他实施例和应用。因此,本发明不旨在限于所示的实施例,而是将符合与本文所公开的 原理和特征一致的最宽范围。
[0032] "无限工作空间"问题包括跟踪人们和设备如何随时间与工作空间相互作用的需 要。为了解决该核心问题,我们已经创建我们称为空间事件地图的东西。空间事件地图包 含定义工作空间中的对象和事件所需要的信息。从空间、事件和空间中的事件的地图和由 包括多个同时用户的多个用户对空间的访问的观点来考虑技术是有用的。
[0033] 空间:为了支持针对给定协作会话的无限数量的空间信息,我们提供一种组织被 称为工作空间的虚拟空间的方式,其可以例如由具有维度中的一者或两者的基本上无限的 范围的2维笛卡尔(Cartesian)平面表征表示,例如以这样的方式:可以将新内容添加到 空间;可以将内容布置和重新布置在空间中;用户可以从空间的一个部分导航到另一个部 分;和在其需要时,用户可以容易地找到空间中的所需要的东西。
[0034] 事件:与工作空间的相互作用被处理为事件。人们和系统经由有形用户接口设备 可以与工作空间相互作用。事件具有可以定义或者指向待显示在物理显示器上的目标图形 对象的数据和作为工作空间内的创建、修改、移动和目标图形对象的删除的动作,以及与其 相关联的元数据。元数据可以包括诸如发起者、日期、时间、工作空间中的位置、事件类型、 安全信息和其他元数据的信息。
[0035] 跟踪工作空间中的事件使得系统能够不仅呈现其当前状态中的工作空间中的空 间事件,而且将其与多个显示器上的多个用户共享,以共享可以属于内容的相关外部信息 和理解空间数据如何随时间演变。此外,根据所需要的数据的数量,空间事件地图可以具有 合理的大小,同时还定义无限的工作空间。
[0036] 在系统中可以存在若干不同种类的事件。可以将事件分类为持续事件(还被称为 历史事件),其被永久地存储或者长时间由用于维持工作空间的系统在其使用寿命期间所 要求。可以将事件分类为短暂事件,其对于仅短时间和在会话中所涉及的其他客户端之间 是有用的或者感兴趣的。持续事件可以包括被存储在取消/回放事件流中的历史事件,该 事件流可以与会话的空间事件地图相同或者从其导出。短暂事件可以包括未被存储在系统 的取消/回放事件流中的事件。(一个或多个)空间事件地图可以由协作系统用于跟踪系 统中的工作空间上的持续事件和短暂事件二者的一些实施例中的工作空间中的时间和位 置。
[0037] 地图:工作空间中的事件的地图可以包括分离的空间事件的总和。当工作空间的 持续空间事件可用时,那么可以将该工作空间"映射"到显示器或者屏幕,其具有特定大小 的可显示区域并且其标识要被显示在可显示区域中的工作空间中的位置或者区域。
[0038] 多用户访问:一个关键特性在于,同时在工作空间上工作的所有用户或者多个用 户应当能够以近实时方式看到其他用户的交互。空间事件地图允许具有不同物理位置处的 显示器的用户经历近实时事件,包括任何给定工作空间上的所有用户的其相应的可显示区 域内的持续事件和短暂事件二者。
[0039] 图1A图示了数字显示器协作环境的示例方面。在示例中,多个用户101a-h(统称 为101)可以期望在全部一般地在图1A中被指定为103a-d(统称为103)的复杂的图像、音 乐、视频、文档和/或其他媒体的创建中彼此协作。所图示的示例中的用户使用被配置为电 子网络节点的各种设备以便彼此协作,例如平板电脑l〇2a、个人计算机(PC) 102b和许多大 幅面显示器102c、102d、102e(统称为设备102)。在所图示的示例中,大幅面显示器102c(其 有时在本文中被称为"墙")容纳用户中的超过一个(例如,用户l〇lc和101d、用户101e 和101f以及用户101g和101h)。用户设备(其被称为客户端侧网络节点)具有在其上可 显示区域被分配用于显示工作空间中的事件的显示器。针对给定用户的可显示区域可以包 括显示器的整个屏幕、屏幕的子集、待显示在屏幕上的窗口等,使得每个显示区域具有与工 作空间的实际上无限的范围相比较有限的区域或者范围。
[0040] 图1B图示了与图1A相同的环境。如图1B中所示,有时在本文中被称为"墙"的 大幅面显示器102c、102d、102e由相应的客户端侧物理网络节点10控制,其进而与被配置 为服务器侧物理网络节点的中心协作服务器105网络通信,其具有其可访问的存储一个或 多个工作空间的空间事件堆栈的数据库106。如本文所使用的,物理网络节点是活动电子设 备,其附接到网络并且能够通过通信信道发送、接收或者转发信息。可以部署为网络节点的 电子设备的示例包括各种计算机、工作站、膝上型计算机、手持式计算机和智能电话。如本 文所使用的,术语"数据库"不一定隐含结构的任何统一。例如,当一起考虑时,两个或两个 以上分离的数据库仍然构成如本文使用该术语那样的"数据库"。
[0041] 可以使用诸如Apache或者nginx的web服务器软件托管运行在协作服务器105 处的应用。例如,可以在运行诸如LINUX的操作系统的虚拟机上对其进行托管。服务器105 在图1B中启发式地图示为单个计算机。然而,服务器架构可以涉及各自运行服务器应用的 许多计算机的系统,这是因为对于大规模基于云的服务而言是典型的。服务器架构包括通 信模块,其可以被配置针对各种类型的通信信道,包括协作会话中的每个客户端的超过一 个信道。例如,跨越网络、客户端软件的近实时更新可以经由使用基于消息的信道、例如基 于WebSocket(网络套接字)协议与服务器通信模块通信。对于文件上载以及接收初始大 容量工作空间数据而言,客户端软件可以经由HTTP与服务器通信模块通信。服务器可以运 行例如以由Ruby-on-Rails服务的JavaScript书写的前端程序,例如基于Oauth支持验证 /授权,并且支持多个分布式客户端之间的协作。服务器通信模块可以包括基于消息的通信 协议栈,诸如WebSocket应用,其执行记录工作空间数据中的用户动作的功能,并且如果适 用的话,则将用户动作转播给其他客户端。该系统可以运行在例如node.JS平台上,或者设 计为处理高负载套接字应用的其他服务器技术上。
[0042] 数据库106存储例如每个会话的空间事件地图的工作空间数据集的数字表示,其 中工作空间数据集可以包括或者标识与可显示在显示画布上的对象有关的事件。工作空间 数据集可以以空间事件堆栈的形式实现、管理,使得至少持续空间事件添加到堆栈(入栈) 并且在取消操作期间从先进后出模型中的堆栈移除(出栈)。可以存在针对许多不同工作 空间的工作空间数据集。针对给定工作空间的数据集可以被配置在数据库中,或者作为和 工作空间有关的机器可读文档。工作空间可以具有无限或者实际上无限的尺寸。工作空间 数据包括标识由显示墙上的显示区域中的显示客户端可显示的对象的事件数据结构,并且 将工作空间中的时间和位置与由事件数据结构所标识的对象相关联。每个设备102仅显示 整个工作空间的一部分。显示墙具有针对显示对象的显示区域,显示区域映射到与集中在 工作空间中的用户位置上或者否则利用其定位的工作空间中的区域相对应的工作空间中 的对应的区域。显示区域到工作空间中的对应的区域的映射可由显示客户端用于标识要被 渲染在显示器上的显示区域内的工作空间数据中的对象,并且标识链接显示器上的显示区 域中的位置处的用户触摸输入的对象。
[0043] 服务器105和数据库106可以构成服务器侧网络节点,包括存储与具有工作空间 中的位置的图形目标的事件有关的日志的存储器,日志中的条目包括事件的图形目标的工 作空间中的位置、事件的时间和事件的图形目标的目标标识符。服务器可以包括建立多个 活动客户端侧网络节点的链接,以接收标识与具有工作空间中的位置的图形目标的修改和 仓|J建有关的事件的消息,响应于所述消息而将事件添加到日志和将与从特定客户端侧网络 节点所接收的消息中所标识的事件有关的消息分发到其他活动客户端侧网络节点。
[0044] 服务器105中的逻辑可以包括应用程序接口,包括将承载日志的部分的消息发送 给客户端侧网络节点和接收来自承载标识与具有工作空间中的位置的图形目标有关的事 件的数据的客户端侧网络节点的消息的流程和参数的指定集合。
[0045] 此外,服务器105中的逻辑可以包括应用接口,其包括将从一个客户端侧网络节 点所接收的事件分发到其他客户端侧网络节点的过程。
[0046] 符合API的事件可以包括要被存储在日志中并且分发到其他客户端侧网络节点 的第一类事件(历史事件)和待分布到其他客户端侧网络节点但是未存储在日志中的第二 类事件(短暂事件)。
[0047] 服务器105可以存储针对多个工作空间的工作空间数据集,并且将工作空间数据 提供给参加会话的显示客户端。工作空间数据随后由具有包括显示客户端软件的适当的软 件112的计算机系统110用于确定显示在显示器上的图像,并且将用于交互的对象分配到 显示表面上的位置。服务器105可以存储和维持针对不同协作会话的众多工作空间。每个 工作空间可以与一组用户相关联,并且被配置用于仅由组中的授权用户访问。
[0048] 在一些备选方案中,服务器105可以跟踪针对每个设备102的"视口",其指示该设 备上可视的画布的一部分,并且可以向每个设备102提供用于渲染视口所需要的数据。
[0049] 运行在负责渲染绘图对象、处理用户输入和与服务器通信的客户端设备上的应用 软件可以基于HTML5或者其他基于标记的流程,并且在浏览器环境中运行。这允许对许多 不同客户端操作系统环境的容易的支持。
[0050] 在数据库106中所存储的用户接口数据包括各种类型的对象,其包括诸如图像位 图、视频对象、多页文档、可扩展矢量图等的图形构建。设备102各自经由网络104与协作 服务器105通信。网络104包括所有形式的网络部件,诸如LAN、WAN、路由器、交换机、WiFi 部件、蜂窝部件、有线和光学部件和因特网。在一个场景中,用户101中的两个或两个以上 用户101位于相同房间中,并且其设备102经由WiFi与协作服务器105通信。在另一场景 中,用户101中的两个或两个以上用户101彼此分离数千英里,并且其设备102经由因特网 与协作服务器105通信。墙102c、102d、102e可以是多点触摸设备,其不仅显示图像,而且 可以感测通过利用要么光笔要么诸如一个或多个手指的身体的一部分触摸显示表面所提 供的用户手势。在一些实施例中,墙(例如l〇2c)可以在一个或多个手指(或者例如整个 手)的触摸与光笔的触摸之间进行区分。在实施例中,墙通过发射红外光和检测所接收的 光来感测触摸;从用户的手指反射的光具有墙从周围所接收的光区分的特点。光笔以以下 方式发射其自身的红外光:墙可以从环境光和从用户的手指所反射的光二者进行区分。墙 102c可以例如是垂直和水平地平铺的、由芬兰的赫尔辛基的MultiTouch公司制造的Model No.MT553UTBLMultiTactionCells阵列。为了提供各种表达方式,墙102c以其维持"状 态"的这样的方式操作。即,其可以取决于(除了其他方面)输入的顺序而对给定输入不同 地作出反应。例如,使用工具栏,用户可以选择若干可用的画笔类型和颜色中的任一种。一 旦被选择,墙就处于光笔的后续笔画将使用所选择的画笔类型和颜色绘制线条的状态。
[0051] 在说明性的实施例中,显示阵列可以具有总计大约6英尺高和30英尺宽的可显示 区域,其对于多个用户而言足够宽以站在墙的不同部分处并且同时对其进行操纵。然而,可 以在多用户场景中限制墙上的表达的灵活性,因为在该实施例中,墙不在不同用户的手指 或者由不同用户所操作的光笔之间进行区分。因此,如果一个用户使墙处于一个期望状态, 则第二用户将限于使用该相同状态,这是因为墙不具有辨识待不同地处理的第二用户的输 入的方式。
[0052] 为了避免该限制,客户端侧网络节点可以定义墙102c上的"绘制区域"。如本文所 使用的,绘制区域是在其内墙的状态的至少一个方面可以独立于墙上的其他区域而改变的 区域。在本实施例中,在绘制区域之间可以不同的状态的方面包括使用光笔绘制在墙上的 线条的属
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1