web可视化技术发展(2.1

EverCraft一直在关注Web可视化技术的发展,在本系列文章里,小编将对国外一篇感觉很不错的综述性文章进行翻译,供这一领域的爱好者相互学习。这篇paper的信息为:“Mwalongo, F., et al., State-of-the-Art Report in Web-based Visualization. COMPUTER GRAPHICS FORUM, 2016. 35(3): p. 553-575. ”。感兴趣的小伙伴可以直接阅读原文献哈。


系列2内容主要讨论可视化在web服务、网格化、云服务方面的技术基础,同时也涉及浏览器本地渲染、数据编码、数据传输等方面的技术。

远程可视化及web可视化通常采用CS(client-server)架构。网格化计算和云计算的可视化方法将大量数据的处理问题置于服务端(比如大型模型的渲染任务、复杂的预处理任务等),同时支持多客户端访问。在某些特殊场景下,比如来自仿真计算或其他处理后的结果数据已经存储在网格端或云端,这些源数据基本不大可能迁移,那么只能采取基于网格或云服务的可视化方案。

基于web的可视化方法充分利用了跨平台的浏览器以及对应的web部署和协同技术。在基于网格和基于云的可视化方案里,web可视化同样扮演了重要的作用,如将浏览器作为客户端访问入口。

系列2将包括如下几个部分(小编我技术渣,翻译能力有限,对于内容较多的部分,只能一分再分了...):

  • 2.1 作为Web服务的可视化
  • 2.2 基于网格计算的可视化
  • 2.3 基于云计算的可视化
  • 2.4 浏览器的本地渲染
  • 2.5 数据编码和传输技术

2.1 作为Web服务的可视化

W3C组织将web服务定义为:用来支持机器与机器之间网络信息交互的软件系统。web服务的主要目标即为尽可能使不同软件应用和工具在共同完成某项特定任务时,其相互之间可以进行流畅的信息交互。因为web服务定义了统一的接口,各不同类型编程代码的应用程序即使在不同的运行环境执行,其相互之间依然可以实现顺畅的信息交互。web服务技术在异构分布式计算系统里显得尤为重要。

根据渲染管线(pipeline)如何拆分,基于web服务概念的可视化方法主要分为三类:

  1. 将所有的可视化管线作为一个黑盒,一个应用程序视为单个服务,用户通过交互界面配置需要可视化的数据并获得可视化结果。这种方式的优势是对于用户来说十分简单。但是,另一方面则也限制了用户对于更多可视化类型的选择。
  2. 将管线的每一个阶段分为独立的web服务。这种方式各部分的管线向用户开放,用户可通过集成不同类型的web服务来定制满足自己需求的多样化。各种不同类型的Web服务可由多方开发服务商提供、由不同的执行代码组成、运行在不同的环境。虽然这种方式为用户提供了最大的自由度,但是由于各服务之前的信息交互和数据交换成本,可能带来效率的降低。
  3. 将管线的每几个阶段打包为独立web服务。这种方式为前两种方式的结合,既为用户提供一定的自由度,又保证信息交换的效率。

若将数据可视化作为数据分析流程的一部分,相对于把可视化应用程序拆分为不同web服务,把其作为单个web服务将更有助于抽象。将可视化应用的管线的不同阶段分为不同的web服务,则更适用于程序开发者。开发者们更愿意集成不同性能的可视化技术,以充分利用不同硬件特性,为用户提供最有效的可视化服务。

另外一个重要的技术点则是如何处理可视化管线不同服务之间的数据交换。Web服务之间可以直接进行数据交换,也可通过数据中心进行数据交换。有研究表明前者的性能通常优于后者。

在实现方面,通用有两种主要的技术路径:基于SOAP的web服务和基于RESTful的web服务。由于RESTful更为简单,并更易与其他web标准集成,目前的主流更倾向于RESTful。但是,虽然基于RESTful的web服务在商业领域和云服务领域广泛应用,但在可视化服务方面却没有得到足够的关注。我们将在2.2和2.3部分讨论网格化和云计算环境下的可视化web服务。

Web服务使得不同工具可以基于标准的方式进行信息交互,不管其是用哪种代码编写的、在什么环境下运行或者在什么设备上。这将使得数据分析可以更加的自动化(在数据分析流程里可视化作为其中一部分)。各组元可以将其实现细节在自己内部封装,相互之间只要遵循一致的通信协议。将接口和实现分开,使得各组元可以更专注于针对某些特殊任务或硬件特性进行优化。

目前关于作为web服务的可视化的工作主要还是关注如何将web服务理念应用于可视化程序本身,关注可视化程序内部各子服务的信息交互,而没有过多关注在数据分析流程中可视化服务和其他数据分析工具的交互(如仿真和分析工具/服务)。不断增长的数据量和复杂的数据分析需求,使得单独的可视化工具并不足以满足某些特定的任务,因此需要考虑可视化工具与数据分析其他工具的融合。

通过为可视化服务提供不依赖于编程语言和运行平台的统一接口,各可视化服务之间的连接变得简单,并将进一步提高数据分析的自动化程度。通过复杂的可视化引擎,用户只需要输入可视化数据和提供部分可视化参数,就可以自动输出可视化结果。这将更有助于各行业领域的研究人员专注于研究各自领域的核心工作,而不用花费更多的时间在软件工具的集成上面。


EverCraft.co

我们相信。每个人都具有创新的力量,每一份对未来的设计都将让生活变得更有趣。

web可视化技术发展(2.1/6)


分享到:


相關文章: