This project was originally conceived as an experiment in the use of Java (Arnold and Gosling, 1996) for remote instrumentation, and an illustration of the capabilities of such a system. At the same time we were also collaborating with a number of investigators across the country on a project to automate the acquisition of large numbers of TEM images (Potter et al, 1998a,b). During this project we had a need for a tool that enabled consultation with remote collaborators, ideally enabling them to view and manipulate TEM specimens interactively and thus provide insight and advice as to the quality of the specimen. With this goal in mind we wanted to limit the requirements at the remote site to be simply an Internet connection and a standard "out-of-the-box" web browser (such as Netscape Navigator or Internet Explorer). No browser plug-in installations or browser revision requirements were to be allowed.
Given the goal of producing a user interface for our TEM using only the capabilities available in the standard distributions of Internet Explorer 3.x and Netscape Navigator 3.x there were only two possible implementations. The simplest was to use a combination of HTML forms and CGI scripts as was traditional at that time. The more complex possibility was to use the new Java support provided in those browsers. The first attempt used the simpler HTML Forms/CGI scripts method (Kisseberth et al., 1996). While it was partially successful, continued use of this simple system would have severely limited future expandability. Java as an alternative allowed the creation of a platform independent application with few operational
What is Java? Java is an object-oriented programming language designed to be compiled into bytecode. Bytecode is essentially machine language instructions that can be executed by a Java Virtual Machine (JVM). Java Virtual Machines have been developed for all major computing platforms and are built into Netscape and Microsoft Web Browsers. Java applications are written as a collection of classes (functions related to an object); these classes can be written in Java or compiled into the native machine language of the JVM host computer. The Abstract Window Toolkit (AWT) is a standard class library compiled native to the machine running the JVM which provides high-level user interface components that the Java application can use. The AWT translates user interface components from the Java AWT specification to the local computers native user interface. This results in applications with a "native" look and feel, but also results in applications which look and behave slightly differently depending on which platform the JVM/AWT is running.
Java applications run from a Web browser are known as Applets and have restricted access to the computer running the JVM. This prevents Applets from reading private data from your computer or otherwise acting in an unauthorized manner. While it is possible to bypass this security restriction with signed Applets, this has not yet been implemented in all web browsers and it is not consistent even in those where it has. We thus decided to operate within the restrictions of an unsigned Java Applet.
The JavaScope Applet requires only a few basic controls:
|Camera Controls||Microscope Controls|
|Continuous/Single Frame||Goniometer Movement|
The only limits the Applet environment places on our application is the inability to save images to disk or to contact a computer over the internet other than the one the Applet was loaded from.
JavaScope has been written as a client/server application (see figure 1). The JavaScope applet is the client and presents the application interface to the user. JavaScope responds to actions by the user by sending commands to a camera control server (SSCd) and microscope control server (RCMd) that run on a Unix workstation attached to the TEM and CCD Camera. These servers are responsible for controlling the TEM and digital camera using applications and libraries already developed as part of the emScope library (Kisseberth, 1997).
The emScope library was developed as part of a project whose goal is to provide complete automated control of a TEM. emScope consists of a set of software tools that were designed to be
A small modification to the emScope remote control server allowed the JavaScope applet to control the TEM.