Unidata - To provide the data services, tools, and cyberinfrastructure leadership that advance Earth system science, enhance educational opportunities, and broaden participation. Unidata
         
  advanced  
 
small UCAR logo
upper part of Unidata logo
small bit of sky
lower part of Unidata logo
news community about software support datasources
greenish border
© Copyright 2000 American Meteorological Society. To appear in the Proceedings of the 16th International Conference on Interactive Information and Processing Systems for Meteorology, Oceanography, and Hydrology, Long Beach, California, American Meteorology Society, January 2000. The AMS does not guarantee that the copy provided here is an accurate copy of the published work.

Future Directions for Unidata Applications


Russell K. Rew*, John L. Caron,
Steven R. Emmerson, and Don R. Murray

Unidata Program Center
University Corporation for Atmospheric Research
Boulder, Colorado

INTRODUCTION

Unidata's transition to platform-independence presents a unique opportunity for users to help shape a new suite of display and analysis applications for the atmospheric sciences. With the guidance of a group of users from the community, Unidata developers are creating prototype meteorological applications in Java. Ultimately, this effort will result in a component-oriented framework that supports the assembly of custom applications. We review lessons learned from the current prototype applications, discuss issues involved in the construction of an application from components, and evaluate the benefits of this kind of software for research and education.

GOALS

The long-term objectives of Unidata's current development effort are to:

  • deliver platform-independent software for the analysis and visualization of meteorological data;
  • create a component-oriented framework that supports assembly of custom applications;
  • maintain, support, and enhance the software for the Unidata community; and
  • enlist other developers in enhancing components and developing new components.

 

The software will ultimately deliver capabilities similar to those of other well-known analysis and display packages such as NMAP (formerly GEMPAK), McIDAS, and WXP. The new software will differ from these other packages in one significant respect: it can be installed on any platform that provides the necessary Java support.

These goals are ambitious and will require significant effort over several years. In the short term, prototype applications are being designed and implemented with a user-centered development methodology to help determine the right architecture for the planned components and to tune the process used for their development. The comprehensive data model and advanced visualization capabilities of VisAD are serving as a foundation for some of the prototypes, which include:

  • a surface observations viewer that displays archived or current METAR data from NOAAPORT, supporting zoom and pan, changing projections, and map underlays;
  • an interactive sounding application that displays a skew-T diagram and a 3-D wind hodograph, and that permits simple editing of the temperature, dew-point, and wind values;
  • a satellite data viewer that displays satellite images on a 3D rotatable globe with looping and navigation; and
  • a model data viewer that displays model outputs at various levels of the atmosphere.

 

RESOURCES REQUIRED

Considerable effort was required to develop packages such as GEMPAK, McIDAS, or AWIPS to their current level of maturity and functionality. Attempting to develop a similar package with an order of magnitude less resources is both daunting and ambitious. There are several reasons why we believe this effort will succeed.

One reason is our use of the Java programming language, which embodies much of the best practices of software engineering, including object orientation, type safety, multithreading, and garbage collection -- features which, by themselves, increase programmer productivity and code correctness. Additionally, the Java environment promotes increased productivity in other ways. It's standardization and portability frees us from the need to expend resources supporting multiple platforms. Its rich set of class libraries allows our development to "stand on the shoulders of others" (rather than "stand on other's toes" as some have characterized previous reusability efforts). Finally, Java's open source and the large number of open source developers in the Java community promises continued development of substantial, useful class libraries. In this sense we arguably have more resources for our application development than the developers of previous meteorological packages.

Another reason for optimism is our use of component-based software engineering (CBSE) practices. CBSE is a method for developing and packaging software by which independently developed pieces of software can interact with each other, and can be assembled into useful new configurations by third parties. CBSE will enable the Unidata community to share not just data, but also the software needed to visualize and analyze that data.

A final reason for the probable success of this undertaking is the use of VisAD (Hibbard 2000). This package provides a generic model of scientific data and a sophisticated, three-dimensional visualization system. Using this package will bypass several developer-years of effort.

USER-CENTERED DEVELOPMENT

Involving users early and often in the software development process should help to improve the quality of the results. The Unidata Meteorological Applications (MetApps) Task Force is a group of knowledgeable users who have volunteered to participate in distributed collaboration with Unidata developers to help create the new applications and components. The MetApps group has specified what will be in the initial prototype applications by writing use cases. A use case is a way of describing the functional requirements of a software system. However, instead of an abstract description of those requirements, a use case is a concrete, detailed description of a representative task, written using the language and goals of the user. The emphasis is on specifying, specifying what the user wants to do, rather than on how the user would do it.

After MetApps members write use cases, development typically begins with a simple prototype that lacks most of the intended functionality. The MetApps users then offer feedback on the design and what is needed next, and the prototype is subsequently modified in a process of relatively small incremental developments that incorporate user feedback and adapt to changes in user requirements from experience with the prototype.

Development of prototypes supported only for a limited set of knowledgeable users and with no backward-compatibility constraints requires less time than development of polished applications for a broad user community. Developers have an understanding with the MetApps users that the goal of the prototypes is not polished applications, but rather insights into how to best implement the needed capabilities, what user interfaces work best, and what capabilities are candidates for components.

LESSONS LEARNED

The current effort involves about 3 Java developers and 12 users. It is still too early in the project to confidently say whether all the project goals will be accomplished with this level of effort, but it is possible to comment on a few aspects of how well the distributed participatory design and development are working:

  • Use cases seem to be an adequate way to represent user requirements for these kinds of applications.
  • Email has significant shortcomings as a way to communicate among users and developers. We are now trying a web tool that organizes discussion threads around artifacts such as design documents and prototypes, but getting a high level of participation from developers and users requires significant effort.
  • It is necessary to allow extra time for infrastructure development and refiguring of designs, even though these activities may not result in user-visible changes to prototypes.
  • Java seems to be a good choice for developing platform-independent applications, but it requires significant developer time to keep up with new Java libraries and interfaces that may be useful.
  • Developing useful components of the right granularity is difficult, and requires multiple iterations.

 

Unidata's developers cannot focus solely on developing new applications, but must still dedicate some time to maintenance and support of current application and infrastructure (for example, Unidata's LDM and netCDF software, the Internet Data Distribution system, and new data sources) in the face of rapidly changing data streams and technology.

BENEFITS

It is too early in this project to evaluate its ultimate success, but our experience so far seems to indicate that the development of platform-independent analysis and display applications is now practical and desirable. The possible benefits include reduction of efforts spent porting software, creation of software designed specifically for the Unidata community of educators and researchers, ownership of the software to facilitate maintenance and enhancement, and use of distributed objects and component frameworks to create applications that incorporate the best characteristics of modern software engineering technology.

Building the correct infrastructure for component-based applications will require clear goals and numerous iterations. The pressure to develop and support working, useful applications in the near future may cause premature commitments that would work against our ability to deliver on the promise of component-based software. Fortunately, the Unidata community has always understood the necessity of balancing resources among support, maintenance, and development and of foregoing some short-term developments to make longer-term goals achievable.

REFERENCES

Caron, J., 1999. "Component Based Software for Scientific Application Development," 15th International Conference on Interactive Information and Processing Systems for Meteorology, Oceanography, and Hydrology, Dallas, Texas, Am. Meteor. Soc.

Fowler, M., K. Scott, 1997. "Chapter 3: Use Cases" from "UML Distilled: Applying the Standard Object Modeling Language," Addison-Wesley. <URL: http://www.awl.com/cseng/titles/0-201-32563-2/umldist-chap3.html>

Hibbard, W., 2000. "An Example of Unidata's Future in New Software: the VisAD Component Architecture for Collaborative Data Analysis and Visualization," 16th International Conference on Interactive Information and Processing Systems for Meteorology, Oceanography, and Hydrology, Long Beach, California, Am. Meteor. Soc.

Wright, M., "About UMADA (Unidata MetApps Discussion Area)", October 1999. <URL:http://www.unidata.ucar.edu/community/committees/umada/>

 


*Corresponding author address: Russ Rew, UCAR Unidata, P.O. Box 3000, Boulder, CO 80307-3000; e-mail <russ@unidata.ucar.edu>. The Unidata Program Center is sponsored by the National Science Foundation and managed by the University Corporation for Atmospheric Research.

 
 
  Contact Us     Site Map     Search     Terms and Conditions     Privacy Policy     Participation Policy
 
National Science Foundation (NSF) UCAR Office of Programs University Corporation for Atmospheric Research (UCAR)   Unidata is a member of the UCAR Office of Programs, is managed by the University Corporation for Atmospheric Research, and is sponsored by the National Science Foundation.
P.O. Box 3000     Boulder, CO 80307-3000 USA     Tel: 303-497-8643     Fax: 303-497-8690