FX-Connect (FXC): A Java-Based Collaborative Working Environment for FX-AdvancedBy 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. The concept of the FX-Connect system demonstrated here shows loading displays and annotating them simultaneously on machines at two different locations.
ArchitectureSystem 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. Test configuration of the FX-C System.
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 UsesThe many potential operational applications listed below are being explored concurrently with the development of the FXC system:
System SoftwareThe 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):
Figure 3. The schematic above shows the major components (classes) of FX-Connect.
The tools listed here briefly describe the existing interactive capabilities available on the FXC:
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, 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 ActivitiesThe 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. 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.)