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:
- Specialized and expensive graphics hardware.
- Large program size since operating system just supports basic functionality.
- Usually only the programmer is able to run the experiments.
- Installation at other sites requires experts, and does not allow regular update.
- 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:
- Runs on Standard PC and Workstation.
- Tiny program size because Java base classes are already installed.
- Each application has a user interface per default since it runs in a browser.
- No installation beside a browser with Java since browser performs the data transfer.
- Speed: depends.
These advantages have the following reasons:
- 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.
- 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.
- 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.
- 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.
- 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.