Advanced Linux Prototype System
(ALPS)
Primary Development Activities

FSL's Advanced Linux Prototype System (ALPS) development will focus in three areas: full Linux integration, a distributed data paradigm (push/pull of data), and creation of a new API to support manual graphic generation. These are expounded upon herein.

API Design Concept

Three separate approaches for creating a new API for AWIPS were investigated. The risk, cost, and development schedule for each of these approaches is different. Also, the long term benefit to the AWIPS program varies with each approach. The approaches with their advantages and disadvantages are:

Enhancement of extension interface

Advantages:
The API enhancements can be implemented quickly
The architecture has already been validated with WarnGen, Home Cursor, and other extensions.
A new extension could be written fairly rapidly to perform various drawing functions
Disadvantages:
The extension interface is difficult to use.
Increases IGC complexity in order to support the new interfaces.
Does not improve IGC maintenability and new product integration.
Supports a limited set of extensions
Not really an "application" interface since it shares code with the IGC.

Communicate through an extension

Advantages:
Provides a simple interface for applications
Application can be written readily by outside programmers
D2D Applications can write into IGC window (not the case with current applications)
Programming language does not have to be C++
Disadvantages:
Increases IGC complexity in order to support new interfaces.
Does not improve IGC maintenability.
Supports a limited set of applications.

Restructuring of IGC

Advantages:
Maintenance of the IGC is considerably easier (rewrite of code)
Size of the IGC is significantly reduced
Applications use the same interface as depictables.
Extensions have been eliminated (now handled by application)
New depictables can be added more easily
Architecture provides for future growth of D2D (extends life of current AWIPS)
Easier to integrate external applications

Disadvantages:
Requires significant effort
Risk is highest of all presented approaches


The third approach, i.e. restructuring of the IGC, is being pursued since it promises to have the greatest long term benefits for the AWIPS program. Some of the design concepts for this approach are discussed in the next paragraphs.

Restructuring of the IGC

1. Overview

The objective is to create a powerful API that can be used by a large number of applications, and also by the D2D depictables and extensions. The current IGC (interactive graphic capability) comprises a large body of code that has three separate interfaces for depictables, extensions, and applications. Depictables are responsible for creating most of the meteorological displays on the AWIPS workstation (there are over 65 unique depictables used by D2D). Depictables draw information to the IGC window using the "painter" object. Extensions are "half" objects in that reside partially in the IGC process and partially in a separate process. They use a higher level interface that is more limited in functionality. Communications between the IGC and extension occurs through sockets. Finally, D2D applications have a very simple, but extremely limited interface using text strings transmitted via standard IO channels. They cannot draw directly into an IGC window. In order to consolidate these three interfaces requires a total restructuring and redesign of the IGC.

The current IGC process is partitioned into two or more processes consisiting of a display manager and the depictables (and applications). The display manager controls the display window and draws into it using X11 drawing instructions. The depictable process(es) use a new interface that is at a slightly higher level than the X11 instructions used by the IGC. The exact partitioning of responsibilities between the display Manager and depictables (and applications) has not been finalized. For the most part, the depictables will remain the same. But the current painter interface will be replaced by the new API. Ideally, each depictable should have its own process. However, since many depictables (particularly, those controlled by the Volume Browser) are fairly tightly coupled to each other it is envisioned that a depictable manager manage some or all depictables. If desired, a future effort could subdivide the depictables into individual processes.

The D2D extensions, of which WarnGen is the most complex, will be modified to work with this new interface. The number of extensions is small and most, such as the "Home Cursor" extension, are fairly simple to rewrite.

A new application will be developed that uses the new API to implement a comprehensive drawing and annotation capability.

ALPS API OPT3
Figure 1. ALPS Application Programmers Interface

Distributed Data Concept

Currently, all data displayed by the AWIPS workstation are read from the local database and processed by the IGC for display. This approach requires that all data be located on the local data server in order for the data to be accessible to the user. It also implies that all data must be transmitted routinely to the data server in order to be available when the user needs it. The concept of distributed data makes it possible for the AWIPS workstation to access data on its local database as well as on servers at remote sites.

To implement the concept of distributed data, a significant change is required to how data are managed within the AWIPS system. The concept of an inventory server is introduced and significant changes are made to the data purger and notification server (see Figure 3). A fallout of this architectural change is a significant reduction in the work performed by the notification server.

A description of the initial work in this area was presented at the 21st IIPS conference (Jan 05, San Diego) by Davis et al.

Distributed Data

Figure 3. ALPS Inventory Server

Linux System Integration

The proposed AWIPS architecture consists entirely of computers that run the Red Hat Enterprise Linux operating system. The Network Attached Storage (NAS) device is the primary local database that serves data to all of the other system components over a high speed Gigabit ethernet connection. The system closely emulates the final configuration proposed to the NWS to implement an all-Linux AWIPS architecture.

ALPS Architecture

Figure 4. Prototype System Architecture


Prepared by Herb Grote;
last update 10 Jan 05 by J. Wakefield.