J.H. Brewer
Canadian Inst. for Advanced Research
and Dept. of Physics & Astronomy,
Univ. of British Columbia, Vancouver, B.C., Canada V6T 1Z1
The µSR community has an admirable history of innovation in data acquisition and analysis software, but we have paid a price in duplication of effort; also, development in some areas (especially graphical visualization tools) is still hampered by ``lowest common denominator'' compatibility requirements.
The relative compactness and simplicity of most µSR data allow design of a ``universal'' data file format (in fact several such formats have been implemented) yet each laboratory seems intent upon maintaining its own.
Even if we accept this situation as unavoidable, there is still a way to introduce a standardized data representation and a universally available means of displaying same that will encourage cooperative development efforts without hindering idiosyncratic innovation:
|
a ``thin'' Java Client
that runs in the User's local Web browser and
retrieves condensed data in a standard format from a remote Server which can read raw µSR data files from its own archives. |
The Client consists of a µSR Java GUI (Graphical User Interface) and a Java SpreadSheet applet that manages Columns of information supplied by the Server. A Column is the basic Java Object that one might wish to plot or manipulate within the SpreadSheet. Typically the User will want to plot one Column against another or combine Columns (by name) in some mathematical expression to generate a new Column. Several types of Columns are defined. Although the number of elements in a Column is in principle restricted only by the memory available to Java in the User's Web browser, most Columns are expected to have only as many elements as can reasonably be displayed graphically at once (less than about 256). The SpreadSheet will have some mathematical manipulation capabilities of its own (and will recognize various common constants and functions in addition to the named Columns) but all computationally intensive calculations will be handled by the Server.
Users log in (via the GUI) to the Server, which maintains state and preference information for each User. On demand, the Server constructs Columns from µSR data files (or from other Columns) and delivers them to the Client over the Internet using RMI and/or CORBA protocols. The Server is being implemented under Linux. It will provide a relatively simple means of ``wrapping'' native methods (written in C++ or other compiled languages) in the required Java code and supplying the required stubs and implementation code for the RMI/CORBA interfaces, which would otherwise be daunting. (Trust me.) New methods for manipulating µSR data can thus be added as they become available and the capabilities of the Server incrementally increased without any changes to the GUI.
An initial version of the µSR Java GUI and a rudimentary Server are expected to be available in August 1999. Progress will be announced on http://musr.physics.ubc.ca/gui/ (the temporary Web site for this project).
Suggested Session: Technical Developments