Workstation versus Online Visualization

For a long time scientific visualization was beyond the budget of many mathematical departments. Large research institutes, military organizations, and commercial companies were among the first who could afford specialized graphics hardware. In science, specially funded research groups where able to afford high-end graphics workstations including the necessary staff to manage the machines and simultaneously do the scientific experiment. In the mean-time, the computational power of personal computers with relatively cheap graphics card suffice to perform most of the scientific visualization tasks found in research. Nevertheless, one still encounters the following drawbacks of the current software running on specialized workstations and mainframes:

  1. Specialized and expensive graphics hardware.
  2. Large program size since operating system just supports basic functionality.
  3. Usually only the programmer is able to run the experiments.
  4. Installation at other sites requires experts, and does not allow regular update.
  5. Advantage: extremely fast execution speed.

These drawbacks are in strong contrast to the situation we have encountered during the development and usage of the software JavaView. JavaView is a scientific visualization software completely written in the programming language Java. Java is an object-oriented programming language similar to the language C and C++ but different in the sense that Java is designed to run on any computer. Further, Java programs may run inside web browsers. Both properties are the reason that Java has become the major programming language for interactive web applications since its first presentation in 1995. A program written in Java has the following advantages:

  1. Runs on Standard PC and Workstation.
  2. Tiny program size because Java base classes are already installed.
  3. Each application has a user interface per default since it runs in a browser.
  4. No installation beside a browser with Java since browser performs the data transfer.
  5. Speed: depends.

These advantages have the following reasons:

  1. Java is automatically installed on a computer if a web browser is installed. Therefore, the popularity of web browsers helped to install Java on nearly any computer world-wide.
  2. The size of Java programs is usually very small compared to classical stand-alone application software since the Java base classes, which are comparable to software libraries, are already installed. Therefore, an application must only deliver its additional functionality, and not system routines.
  3. An application inside a web page must have a well-designed graphical user interface since it is by default used by some other people than the programmer. This is in contrast to classical experimentation software, and leads to a great benefit in the design of better products.
  4. The installation of classical software systems has often been a pain. The customer often needed to compile the package again on his machine, or make special adjustments depending on his specialized hardware. The author was in an even worse situation. He needed to offer and maintain different versions for different platforms. When using Java then there exists only one version independent of the hardware platform and operating system. This is possible since the Java virtual machine must cope with system differences, so the responsibility is transferred from the author of applications to the supplier of the Java virtual machine. Therefore, the installation process of a Java application such as JavaView is reduced to downloading an archive, i.e. one or more library files, which is done automatically through a web browser. This allows the author to concentrate on the development of the software without keeping to much care on the destination platform, and it frees him from providing installation mechanisms. The user is freed from any installation task, he just starts his browser and selects a Java enhance web page.
  5. The speed of Java applications not only depends on the hardware but to a large extend on the quality of the installed Java virtual machine (JVM). A Java application consists of machine independent byte code which is interpreted by a JVM and executed on a local computer. JVMs differ largely in quality, for example, when loading a Java application some JVMs compile the byte code into machine dependent code, which leads to a drastic increase in execution speed.