Introduction

The FX-Collaborate (FXC) prototype has evolved, since 1998, into a highly interactive display system that allows forecasters at different geographic locations to
concurrently view and interact with the same data. Collaboration among forecasters in generating a forecast product or for joint weather briefings can speed
up forecast decisionmaking and enhance accuracy.

The FXC project began as an exploratory development for studying architectural issues related to the implementation of collaboration and distributed databases.
The approach was to develop an operational prototype system that would assist us in exploring these issues while simultaneously collecting information from users
about what constitutes an effective, collaborative system. The Java programming language was chosen for this project, since it allows rapid prototyping and
supports remote method invocation (RMI).

The National Weather Service's large investment in the development of the AWIPS data acquisition and display capabilities supported the decision to leverage
the use of the AWIPS code to access the data and generate display metafiles. By defining a flexible metafile format, it is possible to display image and graphic
data and provide flexibility for changing line colors, width, and font size, and progressive disclosure of data when zooming. In an FXC collaborative session,
individual users can control their own display and the displays of all of the other participants.

Here we discuss some of the FXC applications, including illustrations (scenarios), design aspects, testing, and future development.

FXC Capabilities

FXC supports most of the basic functions of a meteorological workstation and provides many advanced features not found in most such workstations,
including collaborative displays, data from various sources (such as local disks, Web servers, and remote AWIPS databases), a chat facility, and a slide
briefing capability. The following brief scenarios are presented to help illustrate some of the capabilities and applications of the system.

Scenario 1 (Noncollaborative)  A forecaster loads a visible satellite image and overlays the latest METAR observations. After studying the data, the
surface temperature and 500-mb height analyses are overlayed. The forecaster zooms in on a certain area, draws a cold front, and then saves the displayed
information as a jpeg image for possible distribution and future use. The manual graphics are saved as Java objects for potential modification at a later time.

Scenario 2 (Collaborative)  During a weather briefing to emergency managers a forecaster loads an infrared satellite image and the hurricane track
guidance from HPC. Animation of the infrared image confirms the track history of the hurricane. The forecaster then draws and annotates a warning box
that indicates where flooding is expected. Next, a river stage plot is brought up from a Website and the forecaster pinpoints the locations of rivers that are
close to flooding. A hydrograph and a video camera overlooking the river verify the information.

Scenario 3 (Collaborative)  Prior to a rocket launch at the Eastern Launch Range, the lead forecaster gives a briefing to advise team members of the
current launch conditions. The forecaster first loads a satellite image, then radar and lightning data, and proceeds by annotating the display to indicate trends
in the weather and potentially hazardous conditions. Interspersed throughout the briefing are text slides that show the state of each of several well-established
launch criteria. The state of one criterion is then changed from green to red. After the briefing the weather is monitored by setting up two real-time animation
sequences, one of radar and another of satellite images. The FXC system is then instructed to alternate between these two sequences indefinitely.

Scenario 4 (Collaborative)  A university professor is giving a lecture to students at a remote campus. The professor loads various observations and then
illustrates a particular atmospheric phenomenon by loading several analyses and forecast fields, creating time series, model soundings, and arbitrary spatial
and time-height cross sections. Relevant points are then underscored by retrieving images and slides prepared in advance and stored on the local disk. The
professor concludes the lecture by creating a text slide instructing the students to independently study a particular event. The students disconnect from the
collaborative session and connect to independent servers to complete the assigned task. Occasionally, a student joins the collaborative chat room to obtain
an answer to a question.

These situations show how FXC capabilities can be effectively used for a variety of applications. Although FXC is specifically designed for collaboration, it also
can be used in a collaborative or noncollaborative mode.

Architecture

FXC consists of two basic functional components: a client and a server. The client is responsible for handling user requests and controlling the display, and the
server is responsible for obtaining data from remote sources and enabling data communication between clients (Figure 1).

Figure 1. Depiction of a number of FXC clients and two separate collaborative sessions.

One session consists of five participants: a forecaster from FSL, three Emergency Managers from Florida, North Carolina, and Georgia, and one forecaster
from the Georgia River Forecast Center. The second is a collaborative session between FSL and a participant in Granby, Massachusetts. In this diagram,
FSL can be participating in the weather briefing conducted by the River Forecast Center for the emergency managers, and at any time connect to the other
session with Granby, Massachusetts.

Each of the yellow circles, labeled "Servers," actually represents a collection of dedicated servers (processes) that can run on a single computer, or be distributed
over several machines. The individual servers are dedicated to specific remote functions such as drawing (Scribble Server), meteorological data processing
(Depictable Server), model interrogation, text retrieval, and text message exchange.

Some of these dedicated servers, such as the Depictable Server, require access to the AWIPS database or files and therefore may only be run on a computer
with access to such data. However, most of the other servers may be run wherever adequate processing and communications bandwidth are available.
The architectural concept employed enables the distribution of the servers across a network to achieve optimum system performance and reliability.

The Depictable Server satisfies all user requests for image or graphic products. It responds to requests for AWIPS products by using AWIPS C++ code to
retrieve the appropriate data from the database and generate a metafile. The meteorological data server then sends the metafile to the requesting client
(and all other clients in a collaborative session). The metafile contains sufficient information to allow each FXC client to render and manipulate the
requested display.

The Depictable Server is also able to access Web servers and retrieve images from a Website. When in a collaborative mode, the Depictable Server retrieves
the requested information from the Web server and sends it to the requester and each of the collaborating clients. When not connected to any server, the
client retrieves the desired image directly from the Web server.

The various data sources available to each of the FXC clients are shown in Figure 2. A user can obtain data (currently in jpeg or gif format) from any one
of a number of AWIPS databases, Web servers, collaborators, or the user's local disks.

Figure 2. Data sources available to each of the FXC clients.

The Scribble Server is responsible for communicating all drawing actions to the collaborating clients. It keeps an active record of the drawing session
and allows users to disconnect and reconnect without losing any information. An explicit "clear" by any of the users is required to erase the record of
the session. Users can utilize the Scribble Server to share manually generated forecast products that were created offline.

The FXC client includes a local data server that retrieves jpeg and gif images from the local disks. Such images are the primary source for slide presentations
and for providing supplemental information during a briefing.

The FXC client software is a single process that provides an interface between the servers and the user, and manages the display, the graphical user interface,
and all communications with the servers. In a typical application, the client software runs on a remote host and communicates with the servers over a network.
However, it is possible to run the client on the same machine as the server. This is appropriate for applications where only one aspect of FXC is of particular
interest (such as the drawing capability and jpeg generation). Architecturally, this is similar to running an application with multiple processes.

Drawing Tool

One of FXC's key features is its ability to annotate the meteorological display, which plays a crucial role in enhancing communications between
collaborators and in supporting basic product generation. Figure 3 shows the FXC screen and graphical annotations made with the drawing tool,
which makes a large collection of meteorological symbols and annotation capabilities available to the user.

Figure 3. An FXC screen showing graphical annotations created with the drawing tool.

The symbols are divided into nine major categories: aviation, precipitation, fronts, lines, combined symbols, polygons, text, cloud cover, and miscellaneous
symbols such as wind barbs and hurricanes. All symbols have configurable attributes that may be set to defaults or altered once a symbol has been drawn
on the display. Basic editing features include undo, redo, delete, duplicate, move, modify attributes, modify line, and change text.

Since all screen annotations are stored as Java objects, it is possible to save them to a file and retrieve them at a later time for additional modifications.
These objects are also passed between clients participating in a collaborative session, and any of the collaborators can modify the symbols created by
another client. Annotations can also be saved as a single color graphic overlay metafile, allowing the user to sequence through a number of manual
graphics superimposed on different forecast model graphics.

The drawing tool uses the true color capability of the hardware, so the graphics can be drawn in multiple colors. Also, individual annotations, such as
for fronts, are displayed using multiple colors as appropriate. The user can annotate any information displayed on the screen, including jpeg images.
However, annotations of jpeg images cannot be transferred properly from one image to another, since earth references (latitude and longitude) are not
available for these images. Normally, annotations can be redrawn to any scale and projection available in the system.

Platform Considerations

The FXC client software has been tested on different machines and operating systems, including Intel-based machines running Win95, Win98, WinNT,
Win2000, Linux, and a Macintosh G3 Powerbook running Yellow Dog Linux. The performance of the software varies with the hardware configuration
and the operating system. The Java VM implementation for Windows appears to be the most efficient and dependable. The FXC software has not been
run on HP hardware for some time, since the latest Java Development Kits were often not available for the HP-UX platforms.

The FXC Depictable Server, which uses the AWIPS software, must run on an Intel-based Linux machine, since the C++ code has not been ported to
other platforms. The Scribble Server and some of the other servers may be installed on machines running other operating systems, but would require
some minor software modifications.

Summary

The FXC prototype system is being tested at various locations under quasi-operational conditions. As users become more familiar with the system, they
are requesting additional features, such as extensions of existing capabilities (for instance, a more flexible interface for creating slide shows), the ability to
create custom color tables, and the need for additional meteorological products. There is also widespread interest in incorporating telephony into the system
in lieu of the telephone conference calls that are currently used. In the longer term, exploration will continue into greater distribution of processing and access
to a larger variety of data and databases.

Note: A complete list of references and more information on this and related topics are available at the main FSL Website www.fsl.noaa.gov, by clicking
on "Publications" and "Research Articles."

(Herb Grote is Chief of the Systems Development Division, and can be reached at grote@fsl.noaa.gov.)