针对分布合作可视化的事件同步(VisConnect: Distributed Event Synchronization for Collaborative Visualization)

支持多用户合作的可视化能够让多个用户同时对同一个可视化界面进行交互,共享交互分析结果。这个工作设计了一个工具VisConnect,让原有的基于d3的可视化能够方便支持多个用户协同进行交互。不同用户之间可以互相同步各自在网页上的交互行为,从而保持交互页面的一致性。通过一个“锁”的机制,可以保证用户之间的交互不发生冲突。

有效的合作可以帮助人们更高效的完成目标。在可视化领域,针对合作场景的不同,可以分为同地或者分布合作,同步或者异步合作。同地合作指用户处于同一空间,面向同一个交互界面,如大屏幕前;分布合作指用户处于不同的地理位置,使用不同的设备进行合作。同步合作指用户可以同时对于可视化进行交互,异步合作指用户的交互有先后顺序。

本工作[1]研究针对的是可视化的分布式同步合作。已有的可视化工作,大部分不支持多用户的同步进行交互,需要大量的重新开发工作。而本文提供了一个工具,用户只要在代码中放入VisConnect的脚本,然后将原来代码中d3的事件函数以及Math中的random函数进行替换,原有的可视化页面中会出现一个邀请链接,复制这个链接发送给其它用户,便可以实现多个用户进行协同交互。

图1 将原有d3代码中的事件函数以及Math中的random函数进行替换,即可以支持多用户协同交互

在多个用户同时进行交互后,页面的事件会在不同用户之间同步(图2)。相比直接同步可视化结果,同步事件具有更好的可拓展性,能够支持不同的可视化形式。然而用户对页面元素进行交互时可能会发生冲突,比如两个用户同时拖拽一个节点。为了解决交互的冲突问题,作者采用了一个锁的机制,即一个元素被用户选中后,其他用户就不能对该元素进行交互。一段时间后,系统会自动判断该元素如未处于交互状态,会将其解除锁定。

图2 不同的事件在用户之间同步,一个元素被用户选中后即被锁定,其它用户不能进行交互

VisConnect支持d3中的所有事件,对于相对复杂的操作比如brush和lasso,其状态相对更加复杂。VisConnect此时并没有将操作的中间过程进行了同步,而是对于用户交互的结果进行了同步。VisConnect还设计支持多个用户之间发送讨论消息的功能。

对于复杂的任务,使用VisConnect要考虑到不同视图的之间的关系,并不是所有的状态都需要在视图之间同步。已有的可视化交互往往针对于单人的场景,不一定适用于多人合作,此时需要单独设计特定的交互方式。

参考文献

  1. Michail Schwab, David Saffo, Yixuan Zhang, Shash Sinha, Cristina Nita-Rotaru, James Tompkin, Cody Dunne, and Michelle A. Borkin. VisConnect: Distributed Event Synchronization for Collaborative Visualization. IEEE VIS 2020.

评论关闭。