DIVA -- distributed visualization architecture

Instructor's Guide


intro, objects modeling, simulation, visualization, legacy summary, Q/A, literature
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

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.