February 1999 FSL

Forum FX-Connect (FXC): A

Java-based Collaborative Working Environment for FX-Advanced


    Contents

    Blowdown

    Y2K Ready?

    FX-Net Development

    3-D Visualization

    FX-Connect

    Turbulence

    Etcetera

    Publications

    Contact The Editor

    Design:
    Wilfred von Dauster

    FX-Connect (FXC): A Java-Based Collaborative Working Environment for FX-Advanced

    By U. Herbert Grote

    Since 1980 FSL has been investigating and prototyping advanced architectures for meteorological forecast workstations. Over half a dozen systems have been developed, ranging from a single workstation to many workstations clustered around a server.

    A recent project involves the FX-Connect (FXC) system, which explores distributing the workstation and server functions over different remote locations. A unique feature of FXC is that it can accommodate the interaction of forecasters located at different locations through a graphical user interface, and even allows some degree of interaction between FXC and an FX-Advanced (AWIPS-like) workstation. (The concept of remote interaction is demonstrated in Figure 1.)

    Technologies evolving over the last few years offer opportunities for exploring new architectures. For example, with the continuing evolution of higher bandwidth communications over the Internet and other wide-area networks, it is now feasible for systems to be distributed over large geographical domains. Also, new software technologies such as Java's Remote Method Invocation (RMI) and the Common Object Request Broker Architecture (CORBA) allow powerful interaction between heterogeneous computer systems. Java's RMI and object serialization, in particular, make tight interaction between remote systems relatively simple.

    The objective of the FXC exploratory development is to investigate new software architectures that involve distributed objects, new workstation capabilities, and promising hardware technology.

    Figure 1

    Figure 1. The concept of the FX-Connect system demonstrated here shows loading displays and annotating them simultaneously on machines at two different locations.

    Architecture

    System Topography – The test bed for the development of FXC is illustrated in Figure 2. It consists of two FX-Advanced configurations, each running a different "localization," an FXC display system, and a separate machine that serves as an additional source of data and processing. Each FX-Advanced localization comprises a complete set of static and real-time data for a specific Weather Forecast Office (WFO) graphical location. The FXC display system is the principal Java component that can access datasets from either of the two FX-Advanced configurations and merge them with data from another independent machine. The display system can also control the exchange of data with the FX-Advanced displays so that users can collaborate on a particular task. The display communicates with the other components by either the Ethernet or a switched phone line.

    Figure 2

    Figure 2. Test configuration of the FX-C System.

    The FXC Java code is distributed over all computers in the system except the data servers. The code currently runs on Hewlett-Packard DS and WS computers, a Silicon Graphics data server, and a Pentium FXC machine. Only the software that interfaces directly to the FX-Advanced is not portable. A design decision was made early on to use Java's RMI to invoke methods of a remote object. This allows a remote object to be easily relocated to a different host by simply changing the RMI binding. It also makes the location of the object immaterial to a "client" choosing to invoke methods of the object.

    Characteristics – The FXC display software performs most of the rudimentary functions of meteorological workstations, including image and graphic display, graphic overlays, animation, zoom, pan (translate), color change, and reading of the cursor, as well as special interactive graphical functions such as drawing, QC editing, and specifying baselines and points. The user interface is patterned after the FX-Advanced to make operation of FXC relatively easy for an experienced FX-Advanced user. This is especially needed since the FXC display can be started as a stand-alone program or as an FX-Advanced application. The functionality of the FXC display is identical regardless of how it is started.

    The FXC supports basic collaboration between an FX-Advanced workstation and an FXC display. Since only existing interfaces were used and no enhancements were made to the FX-Advanced software to support collaboration, not all features available on the FXC display system are also available on the FX-Advanced. Hence, both system users can specify baselines and load products, but drawing can be initiated only by the FXC user. Annotation occurs concurrently on the local screen as well as the remote FX-Advanced screen. The FX-Advanced will receive minor modifications to support more efficient and symmetric collaboration. The recent addition of sound allows the FXC and FX-Advanced users to communicate verbally.

    Since the FXC display system may not have a database of its own, it receives most of its displays from external sources. Almost all of the images and graphics available on an FX-Advanced can be requested and displayed on the FXC. The graphics and images reflect the geographic position and area of the FX-Advanced localization. In principle, a user could connect to any FX-Advanced system in the country that is reachable over an Internet or dial-up phone line and access its synoptic and local products. The FXC supports compression techniques such as run-length encoding, GIF, and selective data elimination for phone line use. If desired, users can collaborate with the selected remote system.

    In addition to the images and graphics available from the FX-Advanced, the FXC can obtain displays from other systems. The selected FX-Advanced will always establish the geographic localization for the FXC. Graphics from another machine are generated in latitude and longitude coordinates by FXC software, and are readily overlayed on an FX-Advanced-generated display. If no FX-Advanced is selected as a remote host, then a default geographic localization is used by the FXC.

    Using the Java language, we can develop interactive applications to reside totally or partially on a remote host. For example, the FXC quality control editor and time-series plot use RMI with object serialization to access netCDF data on a separate processor.

    The FX-Advanced software currently used for testing is the same as that used by the AWIPS Build 4.2.

    Forecast Applications and Uses

    The many potential operational applications listed below are being explored concurrently with the development of the FXC system:
    • Assisting Another WFO – With FXC's potential to access almost the entire database of another WFO over the AWIPS wide area network, an adjacent office could assist a WFO in a severe weather situation.
    • Weather Briefings Between WFOs – It would be possible for one forecaster (or more) in one office to collaborate with a colleague in a remote forecast office. Displays can be concurrently loaded and annotated in the two separate offices.
    • Privileged User Connection to a WFO Database – A privileged user, such as an emergency manager, could interact with a WFO forecaster during an emergency weather situation.
    • Classroom Training – From the office, an instructor could interact with a student, for instance, to point out specific features in a meteorological display. Voice communications may need to be added to effectively communicate a concept.
    • Field Experiments – A user in the field could communicate and interact with the home base using a laptop computer and a mobile phone.
    • Forecast Product Development – Two forecasters could collaborate on creating a new forecast product.
    • Research and Development – Since FXC is able to merge data from different locations, a forecaster could overlay displays from experimental models or data sources available at remote locations with FX-Advanced data displays. (Some development work is needed in order to merge new data displays.)

    System Software

    The FXC software is a Java application that is distributed over several machines. Because the FXC is an application and not an applet, the software runs without a network browser and has fewer restrictions on using system resources, such as memory, disk, and the network. The FXC software is briefly described below by listing the function(s) of the major components (called classes) and the interactive tools.

    Major Components – The FXC comprises five classes of particular interest (Figure 3):

    • FXStudio – This is the first object to be instantiated when starting the FXC, and it also instantiates other objects as needed to satisfy user requests. FXStudio contains the data structures and methods for the menu bar.
    • Manager – This class receives messages from the FXStudio and obtains "depictable" objects and manages depictables. The Manager contains information on what remote host is connected and establishes RMI connections.
    • Display – This class manages the information displayed in an FXC window. The Display also instantiates other objects such as the image and the graphics brush which paints depictables to the window and provides animation and labeling of displays.
    • Browser – This class displays a volume browser menu (similar to FX-Advanced) and manages the state of the browser. Product selections by the user invoke methods in the Manager object.
    • DepictableServer – This class acquires one or more depictables from an FX-Advanced interactive graphic capability (IGC). The DepictableServer contains methods that specify the number of frames, frame position, and the specific meteorological product to be loaded or unloaded by the IGC. It is one of the classes that has an RMI interface to make its methods available locally or remotely. The DepictableServer uses a DataGenerator object to make the connection with a Tcl/Tk script, which actually controls the IGC. It works asynchronously so that individual frames can be made available while the remaining frames are being received.

    Figure 3

    Figure 3. The schematic above shows the major components (classes) of FX-Connect.

    Interactive Tools – Interactive tools implement an abstract class that defines the common and mandatory methods for an interactive tool. One of these methods allows the tool to redraw itself when a change is made to the data. Other methods for handling requests allow the user to edit the graphic or to deactivate (hide) the object. In addition to these common methods, each tool implements methods that are specific to the tool.

    The tools listed here briefly describe the existing interactive capabilities available on the FXC:

    • Baseline and Points – These tools allow a line, or point, to be drawn on the screen to identify where a vertical cross section or other operation on a gridded dataset is to be performed. Modifications of the baseline or point can be reflected almost instantaneously on a remote user screen.
    • Drawing – This tool enables the user to draw weather symbols, fronts, arbitrary lines and text to the screen, and then save them as a product (Figure 4). The Drawing tool also allows a remote screen to be updated almost simultaneously.
    • Quality Control Editor – The user can display observational data in different colors to reflect the quality of the data. By overlaying these on other graphics, the user can evaluate the QC algorithm and manually change the QC flag of data that are believed to be in error. A time-series plot can be drawn to assess the temporal consistency or past performance of the sensor (Figure 5).

    Figure 4

    Figure 4, above. The FX-Connect Drawing tool can be used to draw weather symbols, fronts, and arbitrary lines to the screen, then update the information on a remote screen and save it as a product.

    Figure 5

    Figure 5, left. The FX-Connect QC Editor tool can be used to check the quality of a type of data (profiler data in this case) and determine whether it passes or fails the test.

    Future Activities

    The concept of distributed processing and data management for the FXC is illustrated in Figure 6. It depicts two sites, one at location "A" and another at location "B," acquiring, processing, and displaying a variety of data labeled as A, B, and C. Both locations are capable of acquiring the specific data type A and sharing the full processing of that data (i.e., P A,P' A, or P" A). Note that since either site can perform processing (P A) of the data, if the collaborator at one site cannot perform a certain process, the option will be available to perform the processing at the other site. This suggests that processing of a dataset could be assigned dynamically to a site based on such factors as loading. The ability to reassign processing is implemented through remote objects which can be instantiated at either or both locations. Failure to communicate with a remote object results in automatic reassignment of the object to another site based on predefined parameters. Also, each site can acquire ancillary data (B and C) in addition to common data (A) and perform the associated processing.

    Figure 6

    Figure 6. The FX-Connect concept of distributed processing and data management. Users can dynamically reassign data and processing from one site to another for the purpose of distributing the load or backup data.

    The current prototype implements some limited distribution of objects, but does not include automatic reassignment of objects. Some of the other new concepts to be investigated include dynamic extensibility of the system, and improved system integrity through the use of digital signatures. Developers will also enhance existing capabilities, test them, and incorporate suggestions from the users to further improve FXC. Certain operational issues will be explored as well, such as communications to an AWIPS system from outside the firewall and over the AWIPS wide-area network.

    (Herb Grote, a Supervisory Electronics Engineer, heads the Systems Development Division. He can be reached here.)