NASA's JPL Explores Eclipse

De-coder: NASA's JPL Explores EclipseWhile NASA's Spirit and Opportunity rovers are exploring the bumpy, rocky terrain of Mars, the space agency's Jet Propulsion Lab is exploring the wideopen landscape of opensource software.

JPL, which employs 20 developers and 10 system engineers, designs applications for NASA's surface projects, including current missions and upcoming trips-the Phoenix Mars Lander in 2007 and the Mars Science Laboratory Rover in 2009-to the red planet. JPLplans where rovers will travel, the best way for them to approach rocks and how many photos to snap.

The JPL Maestro Team uses proprietary software based on Java to write programs and the user interface for these missions. They don't use an integrated development environment, or have any kind of application framework. The software isn't onboard the Martian rovers, but here on Earth, controlled by JPL.

Last year, several members of the Maestro team transferred from the active operations of the Mars Exploration Rover to development. They analyzed how they wanted to write software and decided proprietary coding wasn't the right way.

"All of that stuff that the application has to have, we wrote from scratch," says Jeff Norris, JPL's supervisor of planning software systems group. "We're not ashamed to say this, but we're not as good at writing applications as others are in this area."

JPL's decision to use opensource software was not philosophical- it needed to justify its spending. "We're funded by the taxpayers to do this stuff, and it [is] our responsibility to spend more money on rocket science," than on general application development, Norris says.

The rover's Science Activity Planner, a software system designed to control and communicate with the rovers as they scour Mars' surface, uses open-source components for activity plans, energy calculation and other mission- critical tasks. The components include Castor, a data-binding framework; Java Expression Parser, a system for parsing and evaluating mathematical expressions; Xerces-J, a validating XML parser; and MySQL database. Many operations workstations for the Mars mission run on Linux. The team decided to go with Eclipse, including the Eclipse Rich Client Platform, for its application programming. The Eclipse RCP includes an Update Manager that allows developers to publish changes to clients so end users don't need to manually download updates.

"Open source provides access to everything under the hood," Norris says. "If we're suspicious of something, we can go in and find [the problem]. Norris' team discovered bugs in Eclipse, which the Eclipse community quickly fixed. Fixing a bug in a vendor's software would have taken months or even years because the developer would not have the vendor's source code.

"What Eclipse represents in multienvironments answered a lot of problems we were having," he says. Eclipse allows JPL to transfer code to other missions, retire "large amounts" of old code and reap savings. "It's kind of magical, and we're still able to use [existing] code to support" operations applications, Norris explains.

JPL plans to use apps based on Eclipse for its Spirit and Opportunity Rovers, the first time for JPL in a mission- critical operations setting.

About the Author

Kathleen Ohlson is senior editor at Application Development Trends magazine.