NARAC scientists must have advanced and efficient graphical user interfaces to make computer model predictions.
Software team begins modernization of NARAC graphical user interface framework

NARAC Software Team Begins Modernization of GUI Framework

Thursday, March 30, 2017

As any computer systems professional knows, the “leading edge” is a moving target. When the system belongs to Lawrence Livermore’s National Atmospheric Release Advisory Center (NARAC)—the Department of Energy’s premier atmospheric transport and dispersion simulation facility—ensuring the reliability of core operational systems requires thoughtful consideration of new technology alongside evolving needs. NARAC’s software development team continually evaluates current capabilities and weighs appropriate solutions to meet NARAC’s critical national and international missions. Led by John Fisher, this team consists of Bill Eme, John Donetti, Hoyt Walker, Kathleen Fischer, Rich Belles, Sei Jung Kim, and Sara Woods from Global Security Computing, and Bob Shectman and Tom Baginski from Engineering.

NARAC supports Livermore’s national and global security missions by providing real-time assessment of and emergency response strategies for airborne releases of nuclear, radiological, chemical, biological, and other hazardous materials. Examples of NARAC’s modeling and response efforts include the release of radioactive materials at New Mexico’s Waste Isolation Pilot Plant and predictions of airborne dispersion of radioactive material following earthquake and tsunami damage to Japan’s Fukushima Daiichi Nuclear Power Plant. NARAC’s ability to respond to urgent events depends on a fast, reliable computer modeling system.

As part of a broad software modernization effort to address rapid expansion of capabilities and minimize long-term maintenance expenses, Fisher’s team recently began to update NARAC’s graphical user interface (GUI) framework. A critical part of this process involved review of the team’s strategy to evaluate proposed technologies and upgrades and to identify risks and opportunities. Subject matter experts from the Computation Directorate formed the review committee, which presented its recommendations to Fisher’s team in February of 2017.

Winds of Change

NARAC’s Central System is an automated, Linux-based operational framework that uses worldwide meteorological and geographical databases to build three-dimensional models of an area under scrutiny. These data are enhanced with characteristics of the hazardous material(s) in question, enabling NARAC scientists and engineers to generate dispersion and fallout models that can predict—often within 15 minutes—radiation dose, air and ground contamination, blast damage zones, health risks, and other population effects.

Central System GUIs facilitate a range of user needs, such as event management, data gathering, source formulation, and product generation. Working closely with NARAC operations staff, the software team focused on GUI features for the design review with four key objectives: (1) ensure efficient, cost-effective maintenance with streamlined architecture and development processes; (2) increase flexibility and maintainability of the system by leveraging open-source tools and eliminating third-party licensing where possible; (3) simplify future technology integrations by separating data from software; and (4) improve usability. “Our users are Laboratory scientists. Their work demands sophisticated technology solutions,” notes Fisher.

Now in its third generation, the current Central System includes more than 100 applications that rely on the Java Swing API and a specialized custom framework for interface consistency. Although this framework is mature and tailored to NARAC’s operational needs, the drawbacks are significant: Its distributed CORBA architecture is obsolete, testing is difficult, and Swing is no longer supported by Oracle. Furthermore, existing GUIs are unwieldly for NARAC’s large, complex data sets. “While it’s easy to navigate through hierarchical data in the Swing environment, users can struggle with too many open windows on their desktops,” explains Kim. “This is not ideal in an emergency.”

Figure 1. NARAC’s Central System brings together 50 data sources, 28 servers, 8 storage units, and more than 3 million lines of code. (Click to enlarge.)

Web-Based Solutions

In the modernization project, Central System GUIs will move to a web-based technology stack that delivers a better user experience while simplifying development and implementation. For instance, the JavaScript-friendly Node.js ecosystem sets the stage for replacing desktop GUIs with lightweight applications. Fisher says, “Node.js enables JavaScript on the server side, making it easier for us to develop applications quickly.” In addition, data will be shareable with other NARAC systems via libraries and data formats like NetCDF, which is designed for large sets of scientific data. The software team also plans to address requirements for easier form validation, more integrated online documentation, and enhanced map interactivity.

Other web-based solutions will help the software team work more efficiently. To improve code validation with instant error-checking, they will use TypeScript, an object-oriented programming language that compiles to JavaScript. Angular 2, a front-end web application framework, will complement TypeScript by supporting modularization and dependency management of large applications. Another toolkit known as PrimeNG will help simplify development of uniform GUI components. Fisher notes, “Together these tools will reduce the likelihood of problems in NARAC’s production environment.”

A common thread in the team’s plan is the use of open-source software for its widely used standards and responsive development community. Furthermore, Kim explains, “We can help ensure the longevity of our infrastructure by reducing dependency on proprietary software.” Keeping pace with open-source, JavaScript-based technology popular in Silicon Valley also positions the Laboratory favorably with the next generation of developers. “We did our homework,” states Fisher. “We’re upgrading NARAC’s Central System with technologies that scale well and perform well.”

Figure 2. Planned upgrades to NARAC’s graphical user interfaces include advanced docking functionality for multiple applications in use at the same time. (Click to enlarge.)

Getting the Greenlight

The review committee evaluated the appropriateness and feasibility of the software team’s plan, which included a prototype that combined the proposed tools into a unified interface with simplified code. Recommendations ranged from workflow process improvements to enhancing the team’s skills. As a result of the committee’s findings, Fisher’s team changed to a client/server model by switching to Express web service architecture (instead of the planned Electron desktop architecture) to run applications. In recent tests, Express has proven to be more compatible with Angular 2.

Fisher’s team appreciated the advantages of peer review. “Our proposal needed fresh eyes from an educated audience,” he says. They were pleased with the committee members’ domain knowledge and welcomed the opportunity to collaborate with software development experts from other areas of the Laboratory. Kim notes, “It was clear from the committee’s response that the members are experienced with modern web technology. They know what they’re doing.”

NARAC’s GUI upgrades will occur in phases as part of a larger multi-year project. After the architecture rollout, the software team will begin rebuilding and streamlining applications while a parallel effort is under way to update other Central System components. Fisher and team have recruited a student to help with implementation over the summer, and the team hopes to hire additional interns. Fisher looks forward to the project’s challenges. “We’re setting a high bar for modernization,” he says.