Reengineering an UNIX/AML Based Application to ArcInfo 8.0/COM

Michael Werling, Senior MTS, Litton TASC, Inc. 
Ray Renner, Principle MTS, Litton TASC, Inc.

Abstract

The Combat Terrain Information Systems (CTIS) project is moving their Digital Topographic Support System (DTSS) from a Unix, ArcInfo 7.2.1, and AML environment to a Windows NT and ArcInfo 8 environment. The CTIS program is re-engineering key components of the DTSS system using Microsoft COM, ArcInfo 8, and ArcSDE 8. The DTSS system processes Vector Product Format (VPF) and Digital Terrain Elevation Data (DTED) data to generate combat terrain analysis products, which are currently stored in ArcInfo coverages and INFO tables. The re-engineered DTSS system is using ArcSDE and GeoDatabases to store the data and results. Re-engineering and design issues with this effort will be discussed in detail.


Introduction

The Digital Topographic Support System (DTSS) was developed for the U.S. Army as part of the Combat Terrain Information Systems (CTIS). The DTSS combines selected hardware and software to provide military users with i map generation, data editing, and analysis capabilities. The software portion of DTSS integrates Commercial-Off-The-Shelf (COTS) products such as Esri’s ArcInfo and ERDAS Imagine with Government-Off-The-Shelf (GOTS) software and custom-generated code and libraries.

DTSS Build 6.0

The current version of DTSS is a Sun Solaris-based system using ArcInfo 7.2.1, AML, and a mix of C, C++, Ada, and Fortran code. This version of DTSS software has evolved over the past decade from a VAX-based to a Unix-based system. DTSS Build 6 provides the Army’s Terrain Analyst the capability to generate mobility, intervisibility, terrain elevation , and other terrain analysis products.

DTSS Build 7.0

DTSS Build 7.0 represents the first attempt to provide Unix-based DTSS comparable functionality in a Windows NT environment. The Windows NT environment allows DTSS developers to take advantage of new ArcInfo 8.0 software features and develop custom software interfaces that provide a Windows environment “look and feel.”

Prior to start of software development, user feedback was informally gathered to determine what the users like and dislike about the existing Unix system. Based on this feedback, an iterative software build schedule was developed. The iterative approach allows TASC to refine the designs and techniques used and incorporate lessons learned into subsequent iterations.  This approach is particularly useful given the learning curve associated with the new ArcInfo architecture and COM.

DTSS Build 7.0 software components include:

Build 7.0 Architecture

The software components of the DTSS can be divided into two broad categories: extensions and tools. Microsoft COM is used in the development of both extensions and tools. Extensions are used to customize the user interfaces of ArcCatalog and ArcMap. Extensions are also used to find out what tools are available and to add those tools to the user interface.

DTSS tools are components that perform the actual software processes that run the DTSS. In general, the tools implement the ArcInfo interface ICommand that allows them to be added to the toolbars or menus of ArcMap and ArcCatalog. The tools also implement a DTSS-specific interface that allows them to be manipulated by the extensions.

DTSS specific tools can easily be created and integrated with the DTSS software using COM. By using a dynamic scheme for loading custom-developed tools into the DTSS system, tools can be added or removed through registry operations instead of recompiling the code.This simplifies the testing and deploying of individual tools. As new tools are created or existing tools are updated they can be deployed to users without affecting the software already installed on their machine.

All of the data sets used by the DTSS tools are stored in geodatabases. The original data sets are stored in a variety of formats. These files are converted to geodatabases through the DTSS data importer tool. Users can easily edit the data in the geodatabase prior to running the TDA using ArcMap.

Example: Mobility TDA

The DTSS Build 7 Mobility Wizard tool is a good example of how system is designed using COM and ArcInfo 8.  This tool performs analysis on a selected data set to calculate the maximum speed of a user-defined vehicle.

 On startup of ArcMap, the ArcMap DTSS extension is loaded. When the extension is loaded it creates a DTSS menu option on the main menu bar of ArcMap using the ArcInfo IMenuDef interface. The extension then loads all registered DTSS tools, such as the Mobility Wizard and the About DTSS dialog box.

The Mobility Wizard implements the ArcInfo ICommand interface that allows it to be added to the ArcMap main menu bar.

 

When the user selects to run the Mobility Wizard, the first screen in the Wizard is shown. This wizard allows the user to set all of the parameters required by the mobility engine.

 The Mobility Wizard has a standard interface comparable to other wizards found in Microsoft Windows-based products.

When the user completes the configuration, the mobility engine is started. This is implemented in a COM object using C++ and exposes two interfaces, IDTSSMobility and IDTSSTDAEvents.

The parameters are passed to the object through the IDTSSMobility interface. Once the engine is started, it periodically reports status through the IDTSSTDAEvents connection point interface. This allows the GUI to periodically report status, reassuring the user that progress is being made.

The mobility engine utilizes AML scripts to perform geographic processing such as gridding. Once the data has been prepared, it is passed into the Mobility Application Programming Interface (API) provided by the U.S. Army, which performs Cross Country, On-Road Speed and Gap Crossing analysis for the given geographic data set.

Once the mobility analysis is completed, the final status (success or failure), along with the result, is reported as an event.  If the analysis was successful the result is passed back to ArcMap and displayed with a default map template. If the analysis failed for some reason a failure code and message is sent to ArcMap to be displayed to the user.

Issues Encountered

Future Direction

In addition to existing Unix-based DTSS functions, new features provided by ArcInfo 8 on Windows NT can be exploited to provide DTSS users with new and improved analysis tools. Some additional features that were not available on Unix include: