topical media & game development

talk show tell print

object-oriented programming

Visualization support


Visualization is one of the oldest forms of communication. As expressed in the programmers manual of In3D from  [In3D], visualization may be used to convey information and to help us manage, analyze, control and comprehend vast amounts of information.

slide: Retail USA © 1995--1999 Visible Decisions Inc.

The visualization in slide 3d-usa, which is one of the examples that comes with In3D, depicts sales figures in the USA, embedded in an obvious geographical metaphor. The image, which may be animated to display the time-dependent changes in sales figures, contains a wealth of information that would be much more difficult to comprehend if presented numerically or even in (plain) 2D graphs.

In this section will discuss how visualization may be used to give access to information and what role visualization can play in decision making. We will also look at the design rationale underlying a generic distributed architecture for information visualization, which is based on Java and VRML technology.

So many users, so many perspectives

The title of this section is from an article,  [Perspectives]. It is meant to express that visualization must be flexible in order to accommodate the individual user's information needs. Originally, visualization was primarily used for the analysis of scientific data, resulting from measurements or some physical model. Nowadays, visualization is increasingly applied to non-scientific data, for better understanding of the contents and the relations between the data. In business data visualization there is not necessarily a physical model underlying the data. Nevertheless, it is worthwhile to visualize the data in order to explore structural patterns and temporal relations.

slide: In3D architecture

The In3D toolkit,  [In3D], provides an object-oriented framework for the visualization of business data. It is based on the Model--View--Control paradigm, and provides the functionality to define data models or containers, observers for these models, mappings to transform the data to be displayed, a variety of views to display the data, sensors and controllers to create interactive applications, and frames and viewers for displaying visualizations on the screen. The In3D toolkit is built on OpenGL and allows for VRML import and export. An overview of the In3D architecture is given in slide in3d-arch.

Interaction -- visualization

  • selection -- clicking a view -> action
  • brushing -- display detailed information
  • controllers -- sliders and buttons for manipulation
  • filtering -- apply constraints on the data
  • sensors -- triggered by user navigation
  • navigation -- move around and explore
  • commands -- user-defined macros

slide: User interaction

Creating an effective visualization may be quite demanding. First of all, one has to make the choice for an appropriate metaphor. Basically, the choice is between a literal metaphor, such as the geographical metaphor used in slide 3d-usa, or an abstract metaphor, such as a data cube or an abstract topology. Next, it is important to organize the data, and to find suitable visual primitives to display the data content and the inherent relationships of the data. Finally, user interaction capabilities must be added, to allow for explorative behavior and drill down. See slide interact.

Available systems

The In3D toolkit ( was one of the first around for business data visualization. Recently, a number of VRML-based visualization kits have been introduced (for example and

DIVA -- distributed visualization architecture

The DIVA project aims at creating a flexible architecture and framework for dynamic information visualization, in particular business process visualization, that is the visualization of the outcomes and implications of business process simulations.

slide: Conceptual architecture (DIVA)

DIVA is based on three requirements

  • to allow for multiple views or perspectives, according to the users' information needs;
  • to provide adaptive visualizations, allowing for experimentation; and
  • to support a networked, Web-based infrastructure.
Conceptually, a visualization may be regarded as a transition of data through a sequence of models, as depicted in slide diva-arch.

slide: Screenshot

In the case of business process visualization, the primary model, or generator component, is a simulation of a business process. The derived model collects these data, filters some out, and computes aggregate data, as for example the average waiting time for a queue. The presentation model defines how the data is presented, that is what visual gadgets are used to display the outcome and the dynamics of the simulation.

As an example, look at the visualization displayed in slide screenshot. It presents a waiting queue, which is the result of a business process simulation, as described in  [Perspectives], and a dialog that allows to restart the simulation.

Collaborative visualization

The conceptual architecture in slide diva-arch allows for having multiple perspectives on the same data. For example, instead of the queue length, we might also display the actual throughput or the product lead time. In  [Perspectives], we have investigated how to extend the DIVA architecture to support collaborative visualization and decision making, for example in a process re-engineering or redesign effort.

Collaborative visualization

  • sessions -- meetings/roles
  • roles -- chair, listener, talker, interactor
  • interactor -- disruptive or non-disruptive
  • perspectives -- sharing and enforcing
  • communication -- telepointers, chatting, ...

slide: Collaborative visualization

Obviously, the original DIVA architecture needs to be extended with sessions, defining a (virtual) meeting and corresponding roles, such as a chair, listeners, talkers, and interactors. Restarting the simulation is an example of the action of an interactor. Clearly, such interactions disrupt the actual course of events and must be limited to privileged participants.

To deploy visualizations effectively in actual argumentation, it must be possible, literally, to share one's point of view with other participants, or to enforce one's perspective. In practice this means that a particular visualization, that is presentation of a perspective, is displayed to the other users. So, instead of the length of the queue, the average waiting times may be displayed, for example to illustrate that customer satisfaction will not be affected. Technically, our solution for sharing or exporting views is based on mobile object technology, as will be discussed shortly.

Finally, we need additional means to communicate with the other participants, such as a telepointer and a chatting facility.

Display agents

To allow for sharing or enforcing perspectives, we introduced so-called display agents, mobile Java objects that may be used by a Java applet to create a VRML world using the external authoring interface (EAI). See  [DIVAVRML].

slide: Architecture DIVA -- display agents

As sketched in slide diva-agents, the simulation server sends events to the visualization, embedded in a Web browser. A visualization consists of a VRML world and Java objects that intercept the visualization events (using the CORBA Event Service) and react to possible user actions. The content of VRML worlds are stored as display agents, which reflect the contents of the secondary model or concept space. Display agents are mobile objects that may be activated on demand, to display the simulation scene, or to update the other participants' view.

Implementation details

DIVA is designed as a distributed object-oriented system. The DIVA components are written in C++ and Java, and can run on different platforms. We use the Common Object Request Broker Architecture (CORBA) to let our distributed objects communicate with each other. By using the interface definition language (IDL) to describe the interfaces between components and by making use of the object request broker (ORB), distributed components are able to communicate.

Voyager, described in  [Voyager], is an agent ORB written purely in Java, which supports CORBA. Voyager allows us to use mobile objects, a feature which CORBA does not have. We use Voyager to construct the mobile controller components. These components are able to `dock' at a user environment and can subsequently show their user interface on the screen to let the user interact with it.

We use VRML, see  [ISO97], as the main visualization tool. The users are able to navigate through the VRML worlds by using a VRML-browser. The External Authoring Interface (EAI) makes it possible to control the VRML worlds dynamically via the Java and Javascript languages.

The visualization gadgets in the presentation component are represented by mobile display agents. These agents are constructed using Voyager. Display agents can also `dock' in a user environment and, in addition, get access to the local VRML world. They collect the needed information from shared concept spaces to build and maintain the 3D visualization.

The combination of CORBA and the Web enables access to information resources by means of HTML, Java and VRML. For example, the simulation and shared concept space, that is the derived model, can be hosted on a Unix server while the presentation components are executed in a Web-browser on Windows client machines.

(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.