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.