irma (Interactive Remote Microscopy Application) is a new software system for web-based remote control of a Philips XL30 ESEM-FEG. irma consists of three primary applications, the irma|ESEM Image Observer, the irma|ESEM Scope Controller, and irma|Server. irma|ESEM Image Observer (Observer) and irma|ESEM Scope Controller (Controller) constitute the Java-based GUI front-end for microscope control and image acquisition. Both are loosely based on JavaScope|TEM, a Java-based front-end for controlling a Philips CM200 Transmission Electron Microscope (Kisseberth et al., 1999). irma|Server, the UNIX-based back-end for direct microscope control, is based on the emScope library (Kisseberth et al., 1997).
All three applications (Observer, Controller and Server) work together to provide real-time control and image acquisition of the ESEM. The Observer and Controller (figure 1) are written in Java, and run in a web browser on multiple platforms (Windows 98/NT, MacOS, AIX and IRIX have been tested). The Observer functions as a window to the current image state of the ESEM, receiving automatic image updates whenever a parameter is changed on the microscope. An Observer does not require a Controller to be present, allowing users to take a passive, observing role while viewing image updates. Any number of Observers from any number of locations (network bandwidth being the sole limiting factor) can be loaded, functioning simultaneously.
The Controller works with an Observer, and provides manipulation of the primary ESEM controls. Stage position can be modified by pressing buttons in a North, South, East and West orientation; the distance moved being determined by the user through a step-size (in mm) menu. A range of magnification values between 20x and 20480x can be selected directly, or cycled through in a doubling or halving fashion. Contrast, brightness and AutoCB (Contrast/Brightness) allow manipulation over image quality. Coarse/fine focus and AutoFocus adjust the Free Working Distance (FWD). A number of interesting specimen views may be pre-selected by the ESEM operator and later revisited by the user through the preset buttons. Once set and enabled, selecting a preset will move the microscope into the state previously defined for that preset (defined as a set of parameters for stage position, magnification, contrast, brightness and FWD). An analagous function, user-defined views, allows a user to save her own named presets locally--a "bookmark" for a particular microscope state.
Both the Observer and Controller communicate with the ESEM through irma|Server (Server). Server is a multi-threaded UNIX application written in C that handles the transfer of user commands, image updates, and state information between the ESEM and the Observers/Controllers (figure 2). Through a series of TCP/IP sockets, a defined protocol for communication is followed. Server handles four separate sockets;
Server talks to the rxlServer, an application written on top of Philips' control library. rxlServer is written in Visual C++ and runs on the WindowsNT workstation that Philips provides with the ESEM. Its only communication outside of the ESEM is with irma|Server.
irma|ESEM has been in use since early March, 1999 for a project called Bugscope (Potter et al., 1999). Bugscope is a K-12 education project that provides schools with the ability to interactively investigate "bugs" in an ESEM over the Internet. School children at a particular location are given access to the control parameters provided by the Controller, while participants at other locations may also observe the session with the Observer. Every image acquired during a schools session is automatically saved to a web-based database, allowing them to view and search the images online at a later time. Through the use of irma|ESEM, school age children with varying backgrounds and equipment are able to use a unique resource.
Several significant additions to irma|ESEM are currently in development. These include the ability to support multiple controllers with independent ESEM states simultaneously, automatic stereo image acquisition for use with red-blue 3D glasses, and rapid high-definition image capture.