NASA's JPL Explores Eclipse
- By Kathleen Ohlson
While 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,
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.
Kathleen Ohlson is senior editor at Application Development Trends magazine.