论文:SAGE2 – A New Approach for Data Intensive Collaboration Using Scalable Resolution
作者:Thomas Marrinan, Jillian Aurisano, Arthur Nishimoto, Krishna Bharadwaj, Victor Mateevitsi, Luc Renambot, Lance Long, Andrew Johnson. 通讯作者:Jason Leigh
发表:Best Paper Awards of CollaborataCom 2014
一、简介
SAGE2 作为一款中间件,支持分辨率可拓展的共享显示(SRSD, Scalable Resolution Shared Displays),通过浏览器支持实时多用户的协同合作:
- 它支持如上所示的原型应用;
- 同时用户可向服务器上传文件、视频 (pixel streams) 来分享工作进展;
- 它也支持多用户实时交互
http://sage2.sagecommons.org/videos/ 中的视频 ”SAGE2 capabilities” 比较好地描述了 SAGE2 的各个功能。
二、相关工作
早在 2004 年,EVL 实验室就基于 C++ 开发了 SAGE 用来支持多用户协同合作。为了改进 SAGE, 了解“用户最期盼的特性”,EVL 实验室开展了用户调研,调研涵盖 40 个不同的地区,调研表明最需要的特性有:
- 整合多用户应用程序
- 加强实时远距离协作
- 降低使用门槛
除了进行用户调研外,EVL 实验室还通过与用户长时间的紧密合作,观察总结了 SAGE 中 4 种常见的工作流程
- lightning collaboration. 它主要描述在会议中,与会者不再需要传统的控制器(比如通过主控电脑连接投影),通过 SAGE 就可以 快速 共享资源(video, PDF, pointer 等),阐述项目进度。
- parallel investigation. 我们在此设想一个由不同的领域专家组成的团队协同工作时,这些领域专家会分别聚焦在各自的问题上,并在自己的设备上进行探索。那如果我们将这些设备的内容同时呈现在屏幕上,专家们就可以看到自己同事的进展,进而提出新的问题,迭代地向实现目标前进。
- single-driver, multiple-navigator scenario. SRSD 通过支持单用户分享交互应用,使得所有用户可以同时在屏幕墙上看到该用户的工作进展;每个用户可以定制自己的光标,来提示该用户。
- remote gigabyte data streams, 用以支持多用户分享多媒体数据。
SAGE 一方面为上述工作流程提供了便利,但同样存在着一些不足。
- 我们以 lightning collaboration 为例,对于一些在会议中需要简报的新用户而言,下载安装客户端存在困难。
- 在 parallel investigation workflow 中,用户无法访问别人的内容;一些用户可能上传大量信息,别的用户进行相关查找时有困难
- 对于第三种工作流程,当角色发生变换时,新的 driver 需要在自己的 PC 上重复之前的预处理工作,才能让大家看到前一个 driver 做的工作,这样比较费时。
- 最后就是因为用户机器配置的问题,可能无法完全发挥 SAGE 功能,甚至不能部署。
当然,除了和自身的前一版本的系统比较外,作者还与约 15 种现有的解决方案相比较,最终提出 SAGE2 是唯一一个能满足他们所有要求的交互系统。
三、设计与实现
基于用户需求及原系统的不足之处,作者在设计 SAGE2 时制定了如下理念:
- 支持多用户同时输入
- 多用户事件处理;消除 轻协作 和 并行调查 下的交互问题;加强实时通讯能力
- 降低使用门槛:开发 Web 系统
并设计了如下所示的架构图:
在实现 SAGE2 的过程中,作者团队遇到了 3 大挑战,挑战内容及解决方案如下
挑战1: 支持集群环境
设计 SAGE2 的目标之一,就是使其具有硬件弹性(hardware flexibility) ,能部署在不同的硬件规模上。欲达成这个目标,需要解决如下问题
– 无缝展示:基于拼接屏,向用户呈现一个无缝的图形环境
– 引入 Audio Client, 同步在 SRSD 上多个视频的声音
– 分布式绘制中的动画同步:Server 通过 WebSocket 向所有 Display Clients 广播,发送 redraw 指令
挑战 2: 支持多用户实时交互
- 希望支持用户通过浏览器,访问 Server 进行交互
- 与 SAGE 不同,它降低了系统使用门槛及学习成本
- 为支持用户实时交互,引入了 事件捕获与转发 机制
- 为拓展交互类型,利用 Omicron 以支持四大类不同的交互方式
- 在由不同主机支持的屏幕上进行多点触控
- 动作追踪 (motion tracking) 或三维设备 (6DOF devices)
- 坐在屏幕前,使用 gyro-mouse 或屏幕指针 (laptop pointer)
- 通过 SAGE UI 在任意远的地方进行交互
挑战 3: 在平台上支持“多用户应用”
– 两种交互模式
- 定制的窗口操作模式 和 应用交互模式
将鼠标悬停在应用边界进而改变窗口大小的的传统方法并不适用于超高清的 SRSD 系统,作者定制了窗口操作模式,用来缩放和平移应用,比较好地解决了上述问题。
- 支持在 SRSD 上动态加载多个 Web 应用
- 实例封装
- 事件转发
- 分享 Web 应用
- 使用户能在远端访问 Web 应用并支持交互,作者将所有应用设计成可通过 URL 来访问的对象 (RESTful)
四、应用开发
作者称,截至 2014 年,SAGE2 是第一款同时支持定制应用 (customize application) 和 现成应用 (off-the-shelf application) 集成的多用户 SRSD 系统。作为用户可以采用如下 3 种方式在 SAGE2 平台上运行应用程序:
– 开发 SAGE2 原生应用: SAGE2 JavaScript API
–
– 修改已有应用程序:Pixel streaming and event forwarding
– 添加 “a few lines of code”, 在超高清的尺度下进行观察和交互
– 现成应用:lightweight SAGE2 client (pixels & event)
– 在 SRSD 上可对应用进行放缩,但分辨率受限于 remote machine
作者团队开发了一些 SAGE2 原型应用可以供大家学习参考:
– Image viewer, PDF viewer, video player, Google Maps
– Custom notepad application using SAGE2 JavaScript API
– 允许多用户使用独立的光标同时添加文字
– Browser
– 必要性:一些 Web 页面主动防止它们被嵌套在别的 Web 页面下
– 实现:C++ application built using the Chromium Embedded Framework(CEF3)
– SAGE2 messaging client
– 用例:部署在一台运行 ParaView 应用的远程机器上
五、用户案例
更多内容及用户案例可参考论文原文或访问 SAGE2 官网:http://sage2.sagecommons.org/
✉️ zjuvis@cad.zju.edu.cn