Open source software development is a well established software development paradigm that allows free access to software source code so that anyone can submit modifications and improvements back to the software project. This movement has revolutionized the way many software products are created, upgraded and used.
NASA already has a framework—the NASA Open Source Agreement (NOSA)—for releasing open source software developed with taxpayer funding back to the open source community. NOSA received certification from the Open Source Initiative.
"NASA has been a pioneer in the Federal Government in addressing some of the difficult issues surrounding intellectual property and liability in open source software release." said NASA Chief Technology Officer for IT Chris C. Kemp.
The adoption of open source standards at NASA has enormous benefit to the public through direct and ongoing access to NASA technology. It helps lower the barrier to entry into space by opening private industry's access to NASA's technology investments.
NASA has used open source to address project and mission needs, to accelerate software development and to maximize public awareness and impact of NASA research.
Since 2003 NASA has released more than 60 software projects under the NOSA.
In addition to the NOSA, there are several other ways NASA is supporting the adoption of Open Source at the Agency. NASA's Chief Technology Officer for IT, Chris C. Kemp, worked with NASA's legal department to develop a Contributor License Agreement (CLA) for NASA, which allows open source code developed by third-parties to be incorporated into NASA open source projects for future release under the NOSA. The NASA open source legal team finalized the CLA making it available for use in late 2009.
In addition, the OCIO recently announced that, once NASA developed software has been approved for release under established policy, NASA developers may distribute their approved code via popular software forums such as GitHub and SourceForge. This was met with much enthusiasm from the NASA developer community, as it makes NASA open source software more readily accessible to other open-source developers. Release of software via these websites still requires that the software be approved for public release under the established software release policy. Finally, NASA is working toward hosting source-code software currently under development on NASA public servers.
Although NASA and the public have already derived numerous benefits from open source release, the full benefits of open source can only be achieved if we establish the processes, policies, and corporate culture for open source development. This means providing a path for non-NASA developers to contribute to on-going NASA projects in real-time. With initiatives such as the CLA, NASA is showing its commitment to adopting policies and processes needed to support open source development.
In its Open Government Plan, NASA outlines several goals to advance open source software development in the next year. Those goals are to implement a streamlined review process for NASA open source release, reducing approval time to two to four weeks, and to establish the ability for NASA software projects to be open source from inception, including the ability to take advantage of community development and public source code hosting.
NASA will host an Open Source Summit in the fall. Stay tuned to future issues of IT Talk for more details.
NASA Nebula and NII's Cloud are built entirely of open-source components and both employ open-data application programming interfaces.
See the June issue of IT Talk for more on Nebula and cloud computing.
Open Source in Practice: NASA Vision Workbench
The NASA Vision Workbench is a general-purpose image processing and computer vision library under development by the NASA Ames Intelligent Systems Division. Vision Workbench has been available as NASA open source software since 2006 and has been used to create interactive explorable panoramas and produce high-resolution two- and three-dimensional maps of the Moon for robotic exploration.