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

文档序号:9620886阅读:来源:国知局
性。诸如系统对手指触摸行为的响应的状态的其他方面可以不受绘制区域影响。
[0053] 图2图示了分布式协作系统,其包括可以被链接到地理地分布的若干设施(例如 设施1和设施2)并且在其处定位显示客户端的共享服务器105。例如,设施1可以位于纽 约,而设施2可以位于洛杉矶。可以存在定位协作系统中的可用的显示客户端的其他物理 位置。在该示例中,设施1包括第一房间151、第二房间152和第三房间153。设施2包括 第一房间161、第二房间162和第三房间163。设施1中的第一房间151包括使用多个显 示器实现的大幅面显示器。设施1中的第二房间152包括单个屏幕、中幅面显示器。设施 1中的第三房间153可以是私人办公室或者其他房间,其中,个人计算机或者膝上型电脑可 以用作在所选择的工作空间中交互的会话的显示客户端。该图示中的设施2如设施1,并且 包括第一房间161、第二房间162和第三房间163。设施2中的第一房间161包括使用多个 显示器实现的大幅面显示器。设施2中的第二房间162包括单个屏幕、中幅面显示器。设 施2中的第三房间163可以是私人办公室或者其他房间,其中,个人计算机、膝上型电脑、移 动平板电脑或者移动电话可以用作用于会话的显示客户端。
[0054] 图2图示了结合依赖于远程地定位的大幅面或者中幅面显示器(或者墙)的分布 式协作系统出现的问题。大幅面和中幅面显示器通常不在单独的用户的排他性控制下。因 此,协作服务器105可以不具有关于在任何给定时间具有对白板的访问的人们的信息。
[0055] 图3图示了墙102c。该示例中的墙是6英尺高和30英尺宽。其初始是默认背景 颜色或者图像,并且具有贯穿墙的默认绘制状态。而且,工作空间数据可以定义多个对象 301a到301h(统称为对象301),其具有映射到墙的显示区域中的物理位置的工作空间中的 位置。对象301可以包括卡,其包括例如在显示区域中渲染的文本、图像或者绘画。此外, 对象301可以包括允许用户与卡的内容交互的特征或者使用诸如触摸屏的显示器处的用 户接口工具链接到卡的功能。而且,如图3中所图示的,可以将绘制重叠对象302显示在墙 的显示区域中。
[0056] 绘制状态可以是独立于显示在区域中的对象30U302的区域的特征,并且由线条 绘制属性定义,其在图3的实施例中包括诸如画笔类型、画笔大小和颜色的线条外观属性。 出于示例的目的,可以对系统进行配置,使得当用户l〇lc使用光笔或一个或多个手指(在 本文中有时统称为书写用具)触摸墙时,工具栏210出现在附近并且定义绘制区域212。触 摸触摸点是有时在本文中被称为"打开用户输入"的一个实施例;其他实施例对于读者而言 将是明显的。新定义的绘制区域的初始绘制状态是预定义默认的(诸如画笔类型=墨水、 厚度=5mm、颜色=白色),其在各种实施例中可以或者可以不匹配墙的剩余部分的默认状 态。在图2的实施例中,贯穿绘制区域应用针对绘制区域所建立的绘制属性。线条绘制对 逻辑地在可以运行在计算机系统110上的任何应用程序以上的层中的墙进行操作,而不管 程序是否具有墙102C的任何特定区域的所有权。
[0057] 在图3的实施例中,绘制区域总是填充墙的整个垂直范围,但是在其他实施例中, 区域可以是较短的,和/或具有非矩形形状。而且,在图3的实施例中,绘制区域利用左边界 214和右边界216可感知地区别;在另一实施例中,其他装置可以被用于对诸如背景阴影的 区域进行区别。在又一实施例中,区域界限对于用户而言不是可感知的。假定对左和右足 够的空间,客户端计算机系统110可以产生关于用户的触摸点集中的位置的绘制区域。绘 制区域具有最小宽度W_和理想宽度WldMl。最小宽度优选地被选择为最小的宽度以允许合 理地无拘无束的表达,并且在图3的实施例中是4英尺。理想宽度优选地被选择为粗略地 等于水平地伸出的平均用户的手臂的最宽跨越度,并且在图3的实施例中是6英尺。
[0058] 如果在用户的触摸点的任一侧存在大量空间,那么计算机系统110可以将初始区 域宽度设定到WldMl。这就是在图3中所图示的场景。如果用户的触摸点离待关于其集中的 新绘制区域的墙边缘太近,那么计算机系统110将邻接靠墙边缘的新绘制区域。假定足够 的空间是可用的,则新绘制区域将仍然具有宽度WldMl,因此新绘制区域将不关于用户的触 摸点集中。另一方面,如果用户的触摸点离墙边缘足够远以创建关于触摸点集中的绘制区 域,但是新绘制区域将小于离墙边缘的1_,那么墙边缘与新绘制区域之间的间隙空间被认 为是不可用的。在这种情况中,计算机系统110将延伸新绘制区域以填充不可用的空间。
[0059] 出于示例的目的,图4图示了两个用户101c和101d可以同时使用墙的场景。初始 地,用户l〇lc在触摸点516处触摸墙102c,并且响应于其计算机系统110利用工具栏510 产生绘制区域512。可选地,用户101c然后触摸工具栏510上的控制装置以便改变区域512 内的线条外观属性。然后,第二用户lOld在触摸点518处触摸墙102c,其处于墙102c背景 内(即在所有已有的绘制区域外部)。然后,由计算机系统110利用工具栏520产生第二 绘制区域514。如果用户101d在区域514内这时绘制线条,则计算机系统110将利用默认 线条属性而不是针对绘制区域512由用户101c先前所设定的那些线条属性对其进行绘画。 用户101d然后可选地触摸工具栏520上的控制装置以便改变区域514内的线性外观属性。 区域514中绘制的后续线条将然后采取新线条外观属性。区域512的线条外观属性将保持 不改变。
[0060] 还可以使绘制区域自动地跟踪光笔的移动。虽然很多可能的跟踪算法对于读者而 言将是明显的,但是跟随这些最小规则的一个将是优选的:(1)只要光笔保持相对靠近区 域的中心,区域就不移动;和(2)当光笔接近区域界限时,区域移动使得界限保持在光笔的 前面。
[0061] 绘制区域提供用户交互的一个示例,其可以对本地显示墙有影响,但是不对全局 工作空间数据有影响。如该示例中所图示的,对象30U302的位置不受区域内的绘制区域、 工具栏和绘制重叠的分配影响。当然,在其他类型的用户接口交互中,可以移动对象301、 302的位置,并且这样的移动可以是与全局工作空间数据中的对象有关的事件。
[0062] 在 2013 年 2 月 04 日提交的题为"REGIONDYNAMICSFORDIGITALWHITEBOARD" 共同未决的美国申请第13/758, 984号中描述了与基于与本地墙交互的用户输入的解释有 关的各种行为,其通过上文引用加以合并。这些行为图示对墙处的用户输入和图像数据的 本地处理,其可以由在一些实施例中对协作服务器处所维持的共享工作空间数据很少或者 没有影响的本地计算机系统110执行。
[0063] 图5A-5E表示可以是由协作服务器105处的数据库所维持的工作空间数据的一部 分的数据结构。在图5A中,图示了事件数据结构。事件是与可以导致工作空间数据中的变 化的工作空间数据的交互。因此,事件可以包括事件标识符、时间戳、会话标识符、事件类型 参数、客户端标识符和工作空间中的位置阵列,其可以包括对应的事件中的一个或多个。例 如,将期望的是,时间戳具有大约几毫秒的分辨率或者甚至更精细的分辨率,以便最小化针 对影响单个对象的竞争事件的竞态条件的可能性。而且,事件数据结构可以包括UI目标, 其标识客户端显示器处的触摸屏上的笔画所链接到的工作空间数据中的对象。事件可以包 括风格事件,其指示例如笔画的显示参数。事件可以包括文本类型事件,其指示文本对象的 工作空间中的条目、修改或者移动。事件可以包括卡类型事件,其指示卡类型对象的工作空 间中的创建、修改或者移动。事件可以包括笔画类型事件,其标识笔画的位置阵列和笔画的 显示参数,诸如例如颜色和线条宽度。
[0064] 可以将事件分类为持续的历史事件和短暂事件。用于添加到工作空间数据和在用 户之间共享的事件的处理可以取决于事件的分类。该分类可以固有在事件类型参数中,或 者附加的标记或者字段可以使用在事件数据结构中以指示分类。
[0065] 空间事件地图可以包括具有历史事件的条目的事件的日志,其中,每个条目包括 诸如在图5A中所图示的结构。服务器侧网络节点包括执行以下步骤的逻辑:从客户端侧 网络节点接收承载短暂事件和历史事件的消息,并且在不添加日志中的对应的条目的情况 下,将短暂事件发送给其他客户端侧网络节点,并且将历史事件发送给其他客户端侧网络 节点,同时将对应的条目添加到日志。
[0066] 图5B图示了卡数据结构。卡数据结构可以提供属性的高速缓存,其标识工作空间 数据中的对象的当前状态信息,包括会话标识符、卡类型标识符、阵列标识符、客户端标识 符、卡尺寸、与卡相关联的文件的类型和工作空间内的会话位置。
[0067] 图5C图示了将若干事件和对象合并到可捕集合(被称为数据块)的数据结构。数 据结构包括会话ID和包括在数据块中的事件的标识符和在其处创建数据块的时间戳。
[0068] 图f5D图示了用于链接到参加所选择的工作空间中的会话的用户的数据结构。该 数据结构可以包括访问令牌、针对会话显示客户端的客户端标识符、链接到显示客户端的 用户标识符、指示用户访问会话的最后时间的参数,以及终止时间和用于承载关于会话的 各种信息的cookie。该信息可以例如维持针对用户的工作空间内的当前位置,其可以在用 户登录的每次用于确定工作空间数据,以在登录关联到的显示客户端处进行显示。
[0069] 图5E图示了显示阵列数据结构,其可以使用在与通过各自具有显示客户端的联 合显示器实现的大幅面显示器相关联中。这样的联合显示器中的显示客户端合作以充当单 个显示器。工作空间数据可以维持显示阵列数据结构,其通过阵列ID标识显示器阵列,并 且标识每个显示器的会话位置。每个会话位置可以包括联合显示器的区域内的X轴偏移和 y轴偏移、会话标识符和深度。
[0070] 系统可以加密与客户端侧网络节点的通信,并且可以加密在其中存储空间事件地 图的数据库。此外,在客户端侧网络节点上,在一些实施例中,对空间事件地图的高速缓存 的副本进行加密以防止得到对客户端计算机的访问的入侵者对数据的未授权的访问。
[0071] 图6是表示用于创建、修改、分布和显示工作空间的工作空间数据的分布式协作 系统的功能架构的示图。基本配置包括管理由诸如服务器105的服务器所执行的事件数据 的协作服务601、可以由诸如服务器105的服务器执行或者位于诸如对等网络节点的服务 器可访问的其他计算机系统中的门户服务602和位于客户端侧网络节点处的显示客户端 603,在该客户端侧网络节点处,用户交互是活动的。显示客户端603与协作服务601和门 户602通信。显示客户端603与协作服务601之间的通信信道613管理会话历史的下载和 会话事件的实况更新。此外,跨越该信道613,显示客户端603可以将可以与事件相关联的 图像上载到协作服务601。显示客户端603跨越通信信道623与门户602通信。门户602 管理针对工作空间数据、会话管理和用户管理的主页。该门户可以被用于用户登录、验证, 并且用于将图像文件等作为备选方案递送给通信信道613或者与其平行。协作服务601和 门户602跨越信道612通信。协作服务601和门户602管理验证和授权协议,并且协调会 话管理和工作空间数据管理。
[0072] 显示客户端603可以是包括具有存储在可访问的存储器中的计算机程序的物理 或者虚拟计算机系统的客户端侧网络节点,其提供支持协作会话的逻辑,包括HTML5客户 端、用于显示阵列实现方案的墙阵列协作逻辑、工作空间数据解析搜索和渲染逻辑以及管 理与服务器和显示墙处的工作空间数据的实况交互的会话事件应用。
[0073] 门户602可以是包括具有存储在可访问的存储器中的计算机程序的物理或者虚 拟计算机系统的服务器侧网络节点的一部分,其提供支持对协作服务器的用户访问的逻 辑。该逻辑可以包括用于为用户提供初始进入点诸如具有登录资源的网页的应用、用于管 理用户账户和会话预期的逻辑、用于提供验证服务诸如基于OAuth(开放授权)的服务的逻 辑以及账户数据的逻辑。
[0074] 协作服务601可以是服务器侧网络节点的一部分,并且可以管理会话事件数据、 协调在客户端之间更新的事件、将可捕历史和图像递送给客户端和控制对在工作空间数据 中的所存储的数据库的访问。
[0075] 图7图示了用于基于利用联合控制由多个显示器701-704所实现的显示器实现显 示墙的可选的技术。在该示例中,每个显示器701-704与对应的显示客户端711-714相关 联。每个显示客户端可以执行用于渲染来自显示区域上的工作空间的对象的浏览器,其具 有与多个显示器中的每个显示器相对应的显示区域的多个子集。每个显示客户端可以被配 置为例如通过存储偏移参数(例如针对显示器701的0, 0 ;针对显示器702的0, 1 ;针对显 示器703的1,0 ;和针对显示器704的1,1)来管理针对会话的显示区域的子集中的显示器。
[0076] 显示客户端711-714中的每个显示客户端可以维持与协作服务器105的通信信道 721-724,其进而耦合到工作空间数据库106。协作服务器105和/或客户端可以维持针对 每个授权用户的工作空间内的用户位置。当授权用户登录并且已经选择诸如在图7中示出 为显示画布的显示器阵列时,协作服务器可以将显示客户端711-714中的每个显示客户端 链接到与会话和用户相关联的组中。协作服务器可以然后将工作空间内的当前用户位置下 载到组中的显示客户端中的每个显示客户端的可显示区域或者画布。该组中的显示客户端 可以独立地应用其偏移参数以标识映射到由偏移参数所指示的工作空间的子集上的会话 位置。备选地,协作服务器可以通过根据阵列特点向每个客户端递送当前用户位置作为偏 移,来管理与显示客户端711-714中的每个显示客户端通信的偏移计算。
[0077] 为了支持多个显示器之间的单个显示器的协调,显示客户端711-714中的每个显 示客户端还可以利用本地于显示区域的管理的事件与其他显示客户端中的每个显示客户 端通信,并且其对全局工作空间数据没有影响。备选地,显示客户端711-714可以仅与协作 服务器105通信,其可以然后将本地事件引回到与会话相关联的显示客户端组,并且将全 局事件引到与工作空间活动会话的所有显示客户端和存储工作空间数据的数据库。
[0078] 包括联合显示器的单个显示器处的显示客户端可以是耦合到对应的显示器的所 实现的单独的计算机系统,或者可以使用具有耦合到对应的显示器的虚拟机的单个计算机 系统来实现。
[0079] 此外,单个显示器驱动程序可以被配置为控制被布置为单个显示墙的物理显示器 的集合的整个表面。
[0080] 空间事件地图系统可以包括在包括任何数目的物理和虚拟机的客户端和服务器 侧资源的协作中执行的API。以下描述了API的一个示例。API可以以各种方式定义,同时 包括支持(一个或多个)服务器侧网络节点中的空间事件地图的维护并且支持空间事件地 图与一个或多个活动客户端侧网络节点的共享的元件。在该示例中,API在该示例中被分 解为由两个服务器所管理的过程:
[0081] 套接字请求服务器(SocketRequestsServer)(网络套接字(Websockets))_ 被 于利用曾经连接的相关数据(新笔画、卡、客户端等)更新客户端。还处理初始连接握手。
[0082] 服务请求服务器(ServiceRequestsServer) (HTTP/REST)-用于可高速缓存的响 应以及公布数据(即图像和卡)
[0083] 客户端侧网络节点根据API进行配置,并且包括对应的套接字请求客户端和服务 请求客户端。
[0084] 套接字请求:
[0085] 套接字服务器可以执行经由Websocket维持连接的网络协议。在API中所使用的 消息可以封装在WebSocket协议内。消息可以是单独的UTF-8编码的JS0N阵列。
[0086] 可以经由服务器请求服务器使用HTTP请求而不是支持高速缓存的websocket完 成包括客户端侧网络节点处的协作会话的空间事件地图的全部或者部分的历史的初始加 载。
[0087] 套接字连接
[0088] http://localhost:4545/〈sessionId>/socket ? device =〈device〉
[0089] sessionld-(字符串)要加入的会话的id
[0090]device-(字符串)设备类型,诸如墙或者台式电脑
[0091] 消息结构
[0092] 每个阵列的第一元素是sender-id,其指定发起消息的客户端。sender-id在服务 器上的所有会话之间是唯一的。从服务器发送到客户端的id和cr消息使其sender-id设 定到默认值,诸如-1。每个消息阵列的第二元素是双字符代码。该代码定义阵列中的剩余 的参量以及预期的动作。利用为-1的sender-id发送的消息是起源于服务器的消息。
[0093] 有效消息类铟
[0094] 以下是由本文中的API示例所支持的消息。这些消息中的许多消息采取以下参 数:
[0095]sender-id:-发送消息的客户端的ID,或者如果消息起源于服务器,则为-1。
[0096] 客户端ID请求:
[0097] //服务器〈一客户端["id", sessionld, zoomLevel,xl,yl,x2, y2]
[0098] 该请求可以被用于使能与套接字API交互。
[0099] 该请求开始异步client-id请求/响应握手。下一区段解释新客户端(包括所提 供的客户端ID)的异步确认。
[0100]Sessionld-(字符串)要加入的工作空间的id
[0101]zoomLevel-(整数)由该客户端所期望的缩放级别
[0102] xl,yl(整数,可选的)用户视口的期望的原点
[0103]x2,y2(整数,可选的)用户视口的期望的范围点
[0104] 不存在利用该消息发送的sender-id。
[0105] 该消息中所发送的zoomlevel(缩放级别)是客户端的优选的缩放级别。如果客 户端加入空显示器阵列(经由"id"消息),则客户端的优选的缩放级别变为显示器阵列的 初始缩放级别。如果客户端加入现有的显示器阵列,则忽略其id消息中所发送的优选的缩 放级别,并且(在av消息中)发送与现有的显示器阵列相关联的缩放级别。
[0106] 客户端ID响应:
[0107] // 服务器一>客户端[-1,"id",client-id]
[0108] 要求客户端存储经分配的客户端I
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1