New York, NY
The Laboratory for Atmospheric and Space Physics (LASP) at the University of Colorado Boulder was founded in 1948, a decade before NASA. It began as the Upper Air Laboratory, using captured German V2 rockets to send scientific instruments into our planet’s upper atmosphere.
Today, LASP continues to focus on scientific research, both in the earth’s upper atmosphere and beyond. LASP partners with government agencies like NASA and the National Oceanic and Atmospheric Administration (NOAA), commercial entities like Ball Aerospace, and other universities like the University of Arizona and Northern Arizona University, to develop, test, and operate spacecraft and scientific instruments.
Projects in which LASP has participated include NASA’s Kepler space telescope mission, the Mars Atmosphere and Volatile Evolution Mission (MAVEN), the Solar Radiation and Climate Experiment (SORCE), the Total and Spectral Solar Irradiance Sensor (TSIS-1) currently aboard the International Space Station (ISS), the Emirates Mars Mission (EMM), and many others.
A Highly Scalable Command and Control System
One of LASP’s key tools for fulfilling its mission is the Operations and Science Instrument Support–Command & Control (OASIS-CC) software suite. OASIS-CC is LASP’s in-house-developed, ground-based, real-time command and control system for spacecraft and instruments. It can be scaled from low-level development through integration, test, and flight ops. LASP has been using OASIS-CC in all its mission roles for more than 30 years.
The OASIS-CC project began in 1985 and chose Ada as the implementation language. According to Jason Gurgel, the OASIS-CC Program Manager at LASP, OASIS-CC uses a client server model. The core server makes network connections to scientific instruments, spacecraft systems, ground control systems, other ground stations, ground instrumentation, simulators, and other systems. The OASIS-CC client graphical user interfaces (GUIs) allow users to design workspaces to display command control panels, telemetry data, and additional information.
OASIS-CC can be used to develop and test scientific instruments in the laboratory and control those same instruments during missions aboard spacecraft. By using OASIS-CC throughout the life of a program, project managers can greatly reduce both risk and cost by leveraging re-use.
Mission-Critical Software Must Remain Reliable
The heart of the OASIS-CC system — the client server portion — is written in Ada. It has been certified as NASA Class B software (Non-Human Space Rated Software Systems or Large-Scale Aeronautics Vehicles). One of LASP’s big challenges, according to Gurgel, is making sure that the mission-critical software remains reliable.
LASP is constantly modifying OASIS-CC to control new instruments. And they need to be sure those expensive instruments will work perfectly throughout their mission when doing so. Neither LASP nor their partners can afford to have undefined code behavior or other bugs waste the money spent developing and testing an instrument and sending it into space.
“Naturally, any changes or new features have to be thought about and then thoroughly tested,” Gurgel said. “That’s just the nature of the software; it’s mission-critical.”
One of the big challenges of maintaining the reliability of a 30-year-old real-time system is keeping it up-to-date, manageable, and efficient. That’s why, in 2010, LASP decided to undertake a major overhaul of OASIS-CC.
Until then, OASIS-CC had been a monolithic system — a single program written in Ada 83. To make the system more efficient and maintainable, LASP decided to repartition it and update its code to a more modern version of Ada.
For the latter, LASP needed a new compiler. They had been using a Verdix/Vads Ada 83 compiler from the 1980s. What they wanted was a modern Ada compiler supported by a vendor with deep Ada expertise. They were looking for a partner who would aid them in their Ada upgrade and help them make sure their software remained certified to NASA Class B.
A Total System Migration
LASP decided to refactor their entire code base and migrate it from a SPARC/Solaris system to a Linux platform. They removed all the GUI portions from the Ada code and reworked the rest as a distributed client server, upgrading the code from Ada 83 to Ada 95. Then, they wrote brand new C++ code for the front end and the displays on all the GUIs.
For their new Ada compiler, they chose AdaCore’s GNAT Pro compiler.
“The main reason was support,” said Gurgel of why they went with GNAT. “We wanted a supported compiler. We also wanted Ada language support to help with the transition [to Ada 95] and to check the box for keeping that software certification in place.”
AdaCore realizes that teams exist on a spectrum, from those who simply wait for new versions and features to be released through AdaCore’s continuous release download page, to those who require ultra-reliable, long-term support.
For the latter, AdaCore provides GNAT Pro Assurance, a version of the standard GNAT Pro Enterprise product augmented by a service known as “sustained branch”—a stable development line in which critical fixes can be back-ported and accompanied by a thorough impact analysis. GNAT Pro Enterprise customers, like LASP, are welcome and encouraged to make technology enhancement requests. Through this system, many customer suggestions have been implemented and incorporated into GNAT Pro over the past several years.
According to Gurgel, Ada’s features make it the best language choice for the mission-critical portions of OASIS-CC. Two features he cited as essential are concurrency (tasking) and data type security.
Ada Training for New Employees
Another challenge for LASP is one that many Ada organizations face when hiring new employees. “Few candidates know anything about the language,” said Gurgel, “but if we want them to work on the system, we’ve got to train them in Ada. Our OASIS-CC team is small, so that’s a big challenge for us.”
Help with Ada training is also a big benefit of partnering with AdaCore. LASP has availed itself of several of AdaCore’s training opportunities, including a live, five-day Ada Fundamentals course. “We don't have a formal training program,” said Gurgel. “From my experience in hiring a few new people, I think it’s a little difficult for them to pick up Ada without some kind of basic training. If you just throw them in the deep end, I think they’ll be overwhelmed at first. But once they get a little AdaCore training, it’s fairly easy for new team members to adapt to Ada.”
Gurgel said the time and effort LASP invested in rearchitecting and upgrading the system 10 years ago is still paying dividends today. He expects it will continue to do so for many years. “That effort has extended the system’s life well into the future,” he added. “We don’t have any plans to rewrite it. It’s definitely fulfilling our needs.”
This article was contributed by AdaCore. For more information, visit here .