topical media & game development
object-oriented programming
Visualization support
subsections:
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 (www.vdi.com) was one of the first around
for business data visualization.
Recently, a number of VRML-based visualization kits
have been introduced (for example www.em7.com and www.platinum.com).
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.