An Open Source Strategy for NASA Chris A. Mattmann Senior Computer Scientist, NASA Jet Propulsion Laboratory Adjunct Assistant Professor, Univ. of Southern California Member, Apache Software Foundation
Roadmap Areas for Open Source at NASA Strategies and Decision Points Apache OODT Wrap-up This is a shorter version of a longer,  half day breakout on NASA Open Source  that I led at the 9 th  NASA Earth Science Data System Working Group Meetings in October 2010 http://s.apache.org/anM   29-Mar-11 NASAOSS-MATTMANN
And you are? Apache Member involved in OODT (VP, PMC), Tika (VP,PMC), Nutch (PMC), Incubator (PMC), SIS (Mentor), Lucy (Mentor) and Gora (Champion), MRUnit (Mentor) Senior Computer Scientist at NASA JPL in Pasadena, CA USA Software Architecture/Engineering Prof at Univ. of Southern California  29-Mar-11 NASAOSS-MATTMANN
The NASA ESDS Context Where is open source most useful? Which area should produce open source software? 29-Mar-11 NASAOSS-MATTMANN
Concerns in the Open Source World Licensing GPL(v2, v3?), LGPL(v?), BSD, MIT, ASLv2 Your own custom license approved by OSS NASA OSS license? Caltech license? Copy-left versus Copy-right Redistribution Can you take open source product X and use it in your commercially interested software Y? If so, do you have to pay for it? Should others pay for your open source product if they use it in their commercial application? Open Source “Help Desk” Syndrome versus Community Are you trying to simply make your open source software (releases) available for distribution (aka  help desk )? Are you trying to get others to “buy in” to your open source software? 29-Mar-11 NASAOSS-MATTMANN
Concerns in the Open Source World Intellectual Property Who owns it? How does the Open Source Software affect your IP? Open Source Ecosystems Where can you find the “killer app” you need? Which communities are conducive for longevity? How relevant are “generic” open source software communities to NASA Earth Science Data Systems? Contributing Are you  even allowed  to contribute to a OSS community? Can you do it on “company” time? What’s required? What’s the governance? Responsiveness How response is the OSS community to your projects’ needs?  29-Mar-11 NASAOSS-MATTMANN
Concerns in the Open Source World 29-Mar-11 NASAOSS-MATTMANN
The NASA ESDS Context The aforementioned OSS concerns are cross cutting against the whole ESDS enterprise! 29-Mar-11 NASAOSS-MATTMANN
Licensing Relates to:  redistribution ,  intellectual property ,  contributing ,  legal strategies There are tons of OSS approved licenses What’s the difference between them? The difference mostly has to do with  Commercialization Redistribution Attribution Will talk specifics in the breakout sessions 29-Mar-11 NASAOSS-MATTMANN
Redistribution So you’ve built some awesome piece of NASA ESDS Software And you’re wondering What are my options for distributing it to Other DAACs? Other SIPS? Other funded proposal efforts we’re collaborating with (ACCESS, MEASURES) Any other collaborators? Question: what license are you going to choose? Hopefully one that  supports redistribution  under your own terms! How to redistribute the software? Requires infrastructure Who’s going to set it up? 29-Mar-11 NASAOSS-MATTMANN
OSS Ecosystems Where should you go to for your open source project? Should NASA have its own? Should your project (SIPS, DAAC, proposal) have its own? 29-Mar-11 NASAOSS-MATTMANN
Apache Maturity Model Start out with  Incubation Grow  community Make  releases Gain interest Diversify When the project is ready, graduate into Top-Level Project (TLP) Sub-project of TLP Increasingly, Sub-projects are  discouraged  compared to TLPs NASAOSS-MATTMANN 29-Mar-11
Apache is a meritocracy You earn your keep and your  credentials Start out as  Contributor Patches, mailing list comments, etc. No commit access Move onto  Committer Commit access, evolve the code PMC Members Have binding VOTEs on releases/personnel Officer (VP, Project) PMC Chair  ASF Member Have binding VOTE in the state of the foundation Elect Board of Directors Director Oversight of projects, foundation activities Apache Organization NASAOSS-MATTMANN 29-Mar-11
SourceForge (a different model) Project Proposal Accepted? Get going! No foundation-wide oversight Tons of dormant projects with  no communities of interest Goal is to host infrastructure and host technologies Goal is  not  to build communities No foundation-wide rules or guidelines for committership or for project management  Dealt with locally by the progenitor of the project Can lead to BDFL (benevolent dictator for life) syndrome No foundation-wide license requirements BSD, GPL(v2, v3), MIT, LGPL, etc all allowed NASAOSS-MATTMANN 29-Mar-11
OSS Ecosystems FTR, there are tons of concerns here Should the ecosystem impose license restrictions? Only support license X or Y? What are the redistribution policies? What’s the community? What’s the IP? What’s the infrastructure support? Is it a foundation with rules, or just free for all? Elephant in the room:  What is the exposure? How many people are going to community C and are going to see your software and perhaps want to use it, improve it, file bugs against it, file patches, etc.? Where/how does this matter to NASA? Standing up our own OSS ecosystem may make sense for large, coarse-grained federations A LOT more difficult to justify OTOH, for fine grained components, and module reuse 29-Mar-11 NASAOSS-MATTMANN
Community versus “Help Desk” How do you want to have your open source software project run in the open? Do you expect folks to come to you and  only  file bugs?  Then you and your team are the only ones who can fix them? Then you and your team are the only ones who can release updates?  ” Help Desk” open source project Examples: Sourceforge.net, Google Code, etc. Do you expect to grow a community of interest where volunteers actively engage in software development? Are volunteers empowered to pick up a shovel and help dig the hole? Can volunteers (including your own paid employees) file issues? Do you want to give the community a stake/vote in the overall process?   “ Community Building” open source project Examples: Apache Software Foundation, Eclipse Foundation, etc. 29-Mar-11 NASAOSS-MATTMANN
Communities for NASA Working on common software Measured not in terms of what center contributor works for, but in terms of  Number of patches contributed (high quality) Mailing list questions answered # of releases made, or helped with Tests written Documentation added Take the politics out of it and just work on “core” common code of mutual interest Deciding on the right redistribution mechanism and license Apache Software Foundation and ASLv2 provide openness and ability for center-local redistribution, commerciality and other decisions (for internal distributions and beyond) 29-Mar-11 NASAOSS-MATTMANN
Intellectual Property within NASA Centers can similarly (if they so choose) have their own customizations/distributions of OSS  NASA Langley DAAC’s FooBar powered by Apache Hadoop NASA AIRS SIPS’s Baz built on Apache Pivot powered by Linux NASA protects its marks through the New Technology Report process Uncover marks Uncover potential patents License/etc., as appropriate We see this less on the ground side than we do with the flight Mostly NASA wide, but some center specifics (e.g., Caltech) Takeaway:  the answer to “who owns it” is still “the Center” or “the project” who initiated the software development, with or without OSS. OSS may have its own restrictions/rules, so need to be wary of that (recall  copyleft  syndrome) 29-Mar-11 NASAOSS-MATTMANN
Contributing to OSS OSS communities are built around “contributions” But what does it mean to contribute? Mailing list help/discussions Yes those are contributions Reporting/filing bugs and new feature improvements Yes those are contributions Writing documentation and user guides Yes those are contributions Volunteering to make releases Yes those are contributions Positively contributing towards the evolution of the project with your thoughts and ideas Yes those are contributions NOTE:  What did I leave out? 29-Mar-11 NASAOSS-MATTMANN
Contributing to OSS: code Yes yes, code is important (but not the  only  contribution) How should you go about your code contributing process to open source? Relates to:  “Help Desk”  versus Community Do you want the members of your project to be the   only  folks who can actual touch the source code of your OSS project? Only bug reports? How “open” are you? How “open” do you want to be? Do you want to accept  code  contributions from the community? Patches? Allow community members to become “committers” (assist in the development of the code?) RTC versus CTR 29-Mar-11 NASAOSS-MATTMANN
Responsiveness Measure of a “healthy” community Does your patch sit? Do your mailing list questions go unanswered? Is the project electing new “committers” (if it’s in community mode)? How should your NASA center/group decide whether or not an OSS project you want to use is responsive? How should your NASA center/group decide how responsive  it will be ? Heavily influenced by: Community mode: “Help desk” versus “Community” 29-Mar-11 NASAOSS-MATTMANN
Getting help? Using Open Source Software is  different  than producing software intended for distribution in open source Either way: what’s your strategy for getting help? It used to be: you can’t rely on OSS for any “real time” support Not anymore: companies stood up “around” OSS technology, dedicated to providing support Apache Hadoop: Cloudera Apache Solr/Lucene: Lucid Imagination Apache Cassandra: Riptano Apache Maven: Sonatype … others? How good is the documentation for the OSS Project? Healthy wiki? Healthy “cook books”? Is the documentation baked in or separate? Javadocs (or equivalent) on all public methods? Use cases? 29-Mar-11 NASAOSS-MATTMANN
Getting help: DIY Build expertise and intellectual capital in existing open source technology If you are pulling it in and using it Involves: “Community” model, but also works in “Help Desk” Involves: active participation Involves: friendly license (especially if you want to redistribute) If you are building your own technology that you want to put into open source Others may “help” you Solve challenges at  ZERO  cost to you  (well not ZERO but minimal) Free cycles of interest 29-Mar-11 NASAOSS-MATTMANN
Interactions with Open Source Case Study: Mailing lists communications* * Taken from: http://wiki.apache.org/nutch/Becoming_A_Nutch_Developer  29-Mar-11 NASAOSS-MATTMANN
Interactions with Open Source Mailing list interaction  very important Most immediate feedback you get when contributing  to  open source, and also when creating  your own  open source project Is the biggest thing that turns people away to start out with “ who are these nerds and why don’t they have any manners?” It’s all about “learning” their “language” Sure, the cost may be high in terms of ego and attitude, but the reward (free work!) is well worth it Following and understanding the practices of the OSS project are  hugely  important Know the license for an OSS product Know whether they are “community” versus “help desk” Know its history Read its documentation Be informed! Danger: thinking the OSS community is your personal helpdesk (or vice versa, you are its) 29-Mar-11 NASAOSS-MATTMANN
Architectural and Implementation issues How to  design  for open source? Extension points Places in your code for “plug ins” Plugins should be well documented Public facing “javadoc” (or similar) “ Cookbooks” for integrating Wiki pages Baked in documentation Use of shared component marketplace Many times PL specific PyPI – Python Maven Central/Ibiblio – Java CPAN – Perl STL, GNU, Autoconf, Make, etc. – C/C++ YMMV, some are Webified, have package metadata, searchable, etc. 29-Mar-11 NASAOSS-MATTMANN
Leverage active technologies Don’t expect to use Haskel and have a huge OSS community there to assist you Some modern active OSS languages Python Perl Ruby Java  Don’t just be a consumer, be a producer Pick up a shovel and help dig the hole Instead of overlooking the OSS community and telling them how  the hole should be dug to meet your needs Will help you get needed OSS feedback for your technology 29-Mar-11 NASAOSS-MATTMANN
Legal Issues Understand patent law Or pay people to understand it for you Understand OSS licenses and what you sign up for when you use relevant technologies and their licenses Look for open APIs and open specs Understand what “open” means Vendor lock in Try to avoid it through the use of all the techniques of OSS which we’ve discussed Engage the community and understand what’s “really” free an what isn’t Get legal’s buy-in Don’t insulate them 29-Mar-11 NASAOSS-MATTMANN
Legal Issues Understand “marks” Trademarks Their implication to patents What will NASA support in terms of licensing? Center specific Depends on IP, export control, ITAR, compliance, commercialization If you make it through all of the above and the software is cleared for release, you really are in the driver’s seat No NASA wide guidelines Most or all communities allowed Most or all OSS approved licenses allowed Is there a Contributor License Agreement (CLA) or Corporate Contributor License Agreement (CCLA) to sign? What are its implications? 29-Mar-11 NASAOSS-MATTMANN
OODT: An Open Source Framework for  Distributed Science Data Mgmt Environments Originally funded by NASA to focus on distributed science data system environments science data generation  data capture, end-to-end Distributed access to science data repositories by the community Entered the  Apache incubator program  in January 2010 First Apache project we are aware of originating from a NASA Lab Graduated to  Apache Top Level Project  in November 2010 Used for a number of science data system activities in planetary, earth, biomedicine, astrophysics NASAOSS-MATTMANN http://oodt.apache.org   29-Mar-11
OODT Principles Division of Labor Avoid making one component the workhorse, configurable Technology Independence  Guard against unexpected changes in the technology landscape Metadata as a first-class citizen Descriptions of resources come in handy Separation of software and data models Allow each to evolve independently Modular, domain-agnostic  Pick and choose from adaptable components with defined interfaces NASAOSS-MATTMANN 29-Mar-11
OODT Components Software Components Catalog/Archive Services – data mgmt/workflow Product Services – access/transformation of data Profile Services – discovery of resources/data Query Services – query federation Web Grid – web-based messaging to connect services Core Models Common XML representations as an interface to all components Representation of distributed resources Domain Models These are specializations that sit on top of OODT NASAOSS-MATTMANN 29-Mar-11
OODT Science/Mission/Project Specialization NASAOSS-MATTMANN Common Specific Unique Rqmts. More Capabilities OODT Core Framework Core Components/Models Process Control Framework Science/Mission/Project-Specific OODT Extension Discipline Models Mission-Specific Services New capabilities/ improvements 29-Mar-11
Case Study: OODT’s Movement to  the Apache Software Foundation Meeting held June 15, 2007 at JPL with ASF President Justin Erenkrantz Develop plan moving forward to bring first NASA project to Apache Discuss obstacles, sponsorship Discuss outlook 29-Mar-11 NASAOSS-MATTMANN
OODT: Incubation Come up with incubation proposal Send out emails to the Incubator mailing list Look for mentors Get sponsorship from ranking Apache PMC member or board member Justin and others Top-level  project versus sub project outlook heading out of incubation 29-Mar-11 NASAOSS-MATTMANN
Incubation Requirements Monthly Updates (for first 3 months, then quarterly) Status Progress Community Acceptance Plan for exiting incubation (no hard deadlines) How to have a solid user base How to operate as a unit in the Apache way Maintenance of user interest and community going forward Diversity: contributions from more than just JPL Children’s Hospital LA, USC, Project WBS, AOL Time Warner, other NASA centers, DOE labs, SKA project 29-Mar-11 NASAOSS-MATTMANN
… 2 years later Worked it out with JPL legal Turns out the ASLv2 license is extremely friendly and is something that at least JPL was amenable to Developed OODT incubator proposal http://wiki.apache.org/incubator/OODTProposal   Found willing Apache mentors besides Justin Jean-Frederic Clere, Ross Gardler, Ian Holsman … Put OODT at Apache! 29-Mar-11 NASAOSS-MATTMANN
Takeaways Lots for NASA to consider in terms of OSS Choose licenses, strategies, processes that enable folks to pick up a shovel and help dig the hole Education perspective: this is how CS/science are being trained at the University level We can’t ignore open source I sincerely look forward to the breakout sessions, lots to discuss 29-Mar-11 NASAOSS-MATTMANN
Free as in beer “ Something like the Apache foundation is the best place for released government software. A previous attempt at release and public distribution via a private company was a truly dismal failure. OpenPBS (portable batch system) is supposed to be available to anyone that asks. However when you do ask a sales rep strings you along for more than a month trying to sell you something that they can't actually assure you will fit your requirements (and is no longer under development) even when the free one is documented as doing so. It was a truly stupid waste of the salesperson's time and mine that would have exceeded the price of providing the file for download or sending by email by several orders of magnitude and generated a lot of ill will. I'll go as far as saying it was blatant false advertising using a government funded open source product to do a bait and switch to try to sell me an unmaintained product they picked up in a corporate take over. My experience appears to have been identical to that of many that attempted to obtain this government funded open source software that NASA had declared was available for anyone. Eventually due to this open source project becoming closed the project just had to fork and the compatible Torque batch system was developed by people that had actually get hold of the original OpenPBS .”  –  Slashdot user comment
Alright, I’ll shut up now Any questions? THANK YOU! [email_address]   @chrismattmann  on Twitter 29-Mar-11 NASAOSS-MATTMANN
Thank You! Learn more and track our progress at: http://oodt.apache.org   Join the mailing list: [email_address] [email_address]   Chat on IRC: #oodt on irc.freenode.net Acknowledgements Key Members of the OODT teams: Dan Crichton, Chris Mattmann, Steve Hughes, Andrew Hart, Sean Kelly, Sean Hardman, Paul Ramirez, David Woollard, Brian Foster, Dana Freeborn, Emily Law, Mike Cayanan, Luca Cinquini, Heather Kincaid Projects, Sponsors, Collaborators: Planetary Data System, Early Detection Research Network, Climate Data Exchange, Virtual Pediatric Intensive Care Unit, NASA SMAP Mission, NASA OCO-2 Mission, NASA NPP Sounder Peate, NASA ACOS Mission, Earth System Grid Federation  NASAOSS-MATTMANN 29-Mar-11
Backup 29-Mar-11 NASAOSS-MATTMANN
Implementation strategies Concerns Insulation: how do I insulate my project from OSS change but still use OSS? How do I make my project’s OSS software available for redistribution? What technologies are the “best” for my project? What communities are the best? Answers: See next slide It depends It depends It depends 29-Mar-11 NASAOSS-MATTMANN
Insulation: one strategy Missions maintain their own local CMs Local mission CMs  contain forks of  existing OSS  software Forks can be patch based or CM  based Changes found  particularly effective are discussed  within the comm. And eventually  brought before a  CCB that reviews  their generality, etc. Fig Credit: Dana Freeborn 29-Mar-11 NASAOSS-MATTMANN
Review use of Open Source Review architecture Interrogate buy versus build Why did you buy? Why did you build? WHY DID YOU USE OPEN SOURCE? Or why didn’t you? Review regularly Review it again And again Promote open source infusion Promote construction of open source components inside of your data system implementation and their redistribution 29-Mar-11 NASAOSS-MATTMANN
Steps forward JPL to tackle legal issues Is OODT releasable as an Apache product http://www.apache.org/licenses/software-grant.txt This needs to be signed by parties that be by JPL Contributor License Agreement Do we need a corporate one?  Ended up signing one for OODT and an SGA In parallel to this Draft OODT incubation proposal Start identifying who would initially be interested More external, non-JPL people who are interested, the better 29-Mar-11 NASAOSS-MATTMANN

2011 NASA Open Source Summit - Chris Mattmann

  • 1.
    An Open SourceStrategy for NASA Chris A. Mattmann Senior Computer Scientist, NASA Jet Propulsion Laboratory Adjunct Assistant Professor, Univ. of Southern California Member, Apache Software Foundation
  • 2.
    Roadmap Areas forOpen Source at NASA Strategies and Decision Points Apache OODT Wrap-up This is a shorter version of a longer, half day breakout on NASA Open Source that I led at the 9 th NASA Earth Science Data System Working Group Meetings in October 2010 http://s.apache.org/anM 29-Mar-11 NASAOSS-MATTMANN
  • 3.
    And you are?Apache Member involved in OODT (VP, PMC), Tika (VP,PMC), Nutch (PMC), Incubator (PMC), SIS (Mentor), Lucy (Mentor) and Gora (Champion), MRUnit (Mentor) Senior Computer Scientist at NASA JPL in Pasadena, CA USA Software Architecture/Engineering Prof at Univ. of Southern California 29-Mar-11 NASAOSS-MATTMANN
  • 4.
    The NASA ESDSContext Where is open source most useful? Which area should produce open source software? 29-Mar-11 NASAOSS-MATTMANN
  • 5.
    Concerns in theOpen Source World Licensing GPL(v2, v3?), LGPL(v?), BSD, MIT, ASLv2 Your own custom license approved by OSS NASA OSS license? Caltech license? Copy-left versus Copy-right Redistribution Can you take open source product X and use it in your commercially interested software Y? If so, do you have to pay for it? Should others pay for your open source product if they use it in their commercial application? Open Source “Help Desk” Syndrome versus Community Are you trying to simply make your open source software (releases) available for distribution (aka help desk )? Are you trying to get others to “buy in” to your open source software? 29-Mar-11 NASAOSS-MATTMANN
  • 6.
    Concerns in theOpen Source World Intellectual Property Who owns it? How does the Open Source Software affect your IP? Open Source Ecosystems Where can you find the “killer app” you need? Which communities are conducive for longevity? How relevant are “generic” open source software communities to NASA Earth Science Data Systems? Contributing Are you even allowed to contribute to a OSS community? Can you do it on “company” time? What’s required? What’s the governance? Responsiveness How response is the OSS community to your projects’ needs? 29-Mar-11 NASAOSS-MATTMANN
  • 7.
    Concerns in theOpen Source World 29-Mar-11 NASAOSS-MATTMANN
  • 8.
    The NASA ESDSContext The aforementioned OSS concerns are cross cutting against the whole ESDS enterprise! 29-Mar-11 NASAOSS-MATTMANN
  • 9.
    Licensing Relates to: redistribution , intellectual property , contributing , legal strategies There are tons of OSS approved licenses What’s the difference between them? The difference mostly has to do with Commercialization Redistribution Attribution Will talk specifics in the breakout sessions 29-Mar-11 NASAOSS-MATTMANN
  • 10.
    Redistribution So you’vebuilt some awesome piece of NASA ESDS Software And you’re wondering What are my options for distributing it to Other DAACs? Other SIPS? Other funded proposal efforts we’re collaborating with (ACCESS, MEASURES) Any other collaborators? Question: what license are you going to choose? Hopefully one that supports redistribution under your own terms! How to redistribute the software? Requires infrastructure Who’s going to set it up? 29-Mar-11 NASAOSS-MATTMANN
  • 11.
    OSS Ecosystems Whereshould you go to for your open source project? Should NASA have its own? Should your project (SIPS, DAAC, proposal) have its own? 29-Mar-11 NASAOSS-MATTMANN
  • 12.
    Apache Maturity ModelStart out with Incubation Grow community Make releases Gain interest Diversify When the project is ready, graduate into Top-Level Project (TLP) Sub-project of TLP Increasingly, Sub-projects are discouraged compared to TLPs NASAOSS-MATTMANN 29-Mar-11
  • 13.
    Apache is ameritocracy You earn your keep and your credentials Start out as Contributor Patches, mailing list comments, etc. No commit access Move onto Committer Commit access, evolve the code PMC Members Have binding VOTEs on releases/personnel Officer (VP, Project) PMC Chair ASF Member Have binding VOTE in the state of the foundation Elect Board of Directors Director Oversight of projects, foundation activities Apache Organization NASAOSS-MATTMANN 29-Mar-11
  • 14.
    SourceForge (a differentmodel) Project Proposal Accepted? Get going! No foundation-wide oversight Tons of dormant projects with no communities of interest Goal is to host infrastructure and host technologies Goal is not to build communities No foundation-wide rules or guidelines for committership or for project management Dealt with locally by the progenitor of the project Can lead to BDFL (benevolent dictator for life) syndrome No foundation-wide license requirements BSD, GPL(v2, v3), MIT, LGPL, etc all allowed NASAOSS-MATTMANN 29-Mar-11
  • 15.
    OSS Ecosystems FTR,there are tons of concerns here Should the ecosystem impose license restrictions? Only support license X or Y? What are the redistribution policies? What’s the community? What’s the IP? What’s the infrastructure support? Is it a foundation with rules, or just free for all? Elephant in the room: What is the exposure? How many people are going to community C and are going to see your software and perhaps want to use it, improve it, file bugs against it, file patches, etc.? Where/how does this matter to NASA? Standing up our own OSS ecosystem may make sense for large, coarse-grained federations A LOT more difficult to justify OTOH, for fine grained components, and module reuse 29-Mar-11 NASAOSS-MATTMANN
  • 16.
    Community versus “HelpDesk” How do you want to have your open source software project run in the open? Do you expect folks to come to you and only file bugs? Then you and your team are the only ones who can fix them? Then you and your team are the only ones who can release updates?  ” Help Desk” open source project Examples: Sourceforge.net, Google Code, etc. Do you expect to grow a community of interest where volunteers actively engage in software development? Are volunteers empowered to pick up a shovel and help dig the hole? Can volunteers (including your own paid employees) file issues? Do you want to give the community a stake/vote in the overall process?  “ Community Building” open source project Examples: Apache Software Foundation, Eclipse Foundation, etc. 29-Mar-11 NASAOSS-MATTMANN
  • 17.
    Communities for NASAWorking on common software Measured not in terms of what center contributor works for, but in terms of Number of patches contributed (high quality) Mailing list questions answered # of releases made, or helped with Tests written Documentation added Take the politics out of it and just work on “core” common code of mutual interest Deciding on the right redistribution mechanism and license Apache Software Foundation and ASLv2 provide openness and ability for center-local redistribution, commerciality and other decisions (for internal distributions and beyond) 29-Mar-11 NASAOSS-MATTMANN
  • 18.
    Intellectual Property withinNASA Centers can similarly (if they so choose) have their own customizations/distributions of OSS NASA Langley DAAC’s FooBar powered by Apache Hadoop NASA AIRS SIPS’s Baz built on Apache Pivot powered by Linux NASA protects its marks through the New Technology Report process Uncover marks Uncover potential patents License/etc., as appropriate We see this less on the ground side than we do with the flight Mostly NASA wide, but some center specifics (e.g., Caltech) Takeaway: the answer to “who owns it” is still “the Center” or “the project” who initiated the software development, with or without OSS. OSS may have its own restrictions/rules, so need to be wary of that (recall copyleft syndrome) 29-Mar-11 NASAOSS-MATTMANN
  • 19.
    Contributing to OSSOSS communities are built around “contributions” But what does it mean to contribute? Mailing list help/discussions Yes those are contributions Reporting/filing bugs and new feature improvements Yes those are contributions Writing documentation and user guides Yes those are contributions Volunteering to make releases Yes those are contributions Positively contributing towards the evolution of the project with your thoughts and ideas Yes those are contributions NOTE: What did I leave out? 29-Mar-11 NASAOSS-MATTMANN
  • 20.
    Contributing to OSS:code Yes yes, code is important (but not the only contribution) How should you go about your code contributing process to open source? Relates to: “Help Desk” versus Community Do you want the members of your project to be the only folks who can actual touch the source code of your OSS project? Only bug reports? How “open” are you? How “open” do you want to be? Do you want to accept code contributions from the community? Patches? Allow community members to become “committers” (assist in the development of the code?) RTC versus CTR 29-Mar-11 NASAOSS-MATTMANN
  • 21.
    Responsiveness Measure ofa “healthy” community Does your patch sit? Do your mailing list questions go unanswered? Is the project electing new “committers” (if it’s in community mode)? How should your NASA center/group decide whether or not an OSS project you want to use is responsive? How should your NASA center/group decide how responsive it will be ? Heavily influenced by: Community mode: “Help desk” versus “Community” 29-Mar-11 NASAOSS-MATTMANN
  • 22.
    Getting help? UsingOpen Source Software is different than producing software intended for distribution in open source Either way: what’s your strategy for getting help? It used to be: you can’t rely on OSS for any “real time” support Not anymore: companies stood up “around” OSS technology, dedicated to providing support Apache Hadoop: Cloudera Apache Solr/Lucene: Lucid Imagination Apache Cassandra: Riptano Apache Maven: Sonatype … others? How good is the documentation for the OSS Project? Healthy wiki? Healthy “cook books”? Is the documentation baked in or separate? Javadocs (or equivalent) on all public methods? Use cases? 29-Mar-11 NASAOSS-MATTMANN
  • 23.
    Getting help: DIYBuild expertise and intellectual capital in existing open source technology If you are pulling it in and using it Involves: “Community” model, but also works in “Help Desk” Involves: active participation Involves: friendly license (especially if you want to redistribute) If you are building your own technology that you want to put into open source Others may “help” you Solve challenges at ZERO cost to you (well not ZERO but minimal) Free cycles of interest 29-Mar-11 NASAOSS-MATTMANN
  • 24.
    Interactions with OpenSource Case Study: Mailing lists communications* * Taken from: http://wiki.apache.org/nutch/Becoming_A_Nutch_Developer 29-Mar-11 NASAOSS-MATTMANN
  • 25.
    Interactions with OpenSource Mailing list interaction very important Most immediate feedback you get when contributing to open source, and also when creating your own open source project Is the biggest thing that turns people away to start out with “ who are these nerds and why don’t they have any manners?” It’s all about “learning” their “language” Sure, the cost may be high in terms of ego and attitude, but the reward (free work!) is well worth it Following and understanding the practices of the OSS project are hugely important Know the license for an OSS product Know whether they are “community” versus “help desk” Know its history Read its documentation Be informed! Danger: thinking the OSS community is your personal helpdesk (or vice versa, you are its) 29-Mar-11 NASAOSS-MATTMANN
  • 26.
    Architectural and Implementationissues How to design for open source? Extension points Places in your code for “plug ins” Plugins should be well documented Public facing “javadoc” (or similar) “ Cookbooks” for integrating Wiki pages Baked in documentation Use of shared component marketplace Many times PL specific PyPI – Python Maven Central/Ibiblio – Java CPAN – Perl STL, GNU, Autoconf, Make, etc. – C/C++ YMMV, some are Webified, have package metadata, searchable, etc. 29-Mar-11 NASAOSS-MATTMANN
  • 27.
    Leverage active technologiesDon’t expect to use Haskel and have a huge OSS community there to assist you Some modern active OSS languages Python Perl Ruby Java Don’t just be a consumer, be a producer Pick up a shovel and help dig the hole Instead of overlooking the OSS community and telling them how the hole should be dug to meet your needs Will help you get needed OSS feedback for your technology 29-Mar-11 NASAOSS-MATTMANN
  • 28.
    Legal Issues Understandpatent law Or pay people to understand it for you Understand OSS licenses and what you sign up for when you use relevant technologies and their licenses Look for open APIs and open specs Understand what “open” means Vendor lock in Try to avoid it through the use of all the techniques of OSS which we’ve discussed Engage the community and understand what’s “really” free an what isn’t Get legal’s buy-in Don’t insulate them 29-Mar-11 NASAOSS-MATTMANN
  • 29.
    Legal Issues Understand“marks” Trademarks Their implication to patents What will NASA support in terms of licensing? Center specific Depends on IP, export control, ITAR, compliance, commercialization If you make it through all of the above and the software is cleared for release, you really are in the driver’s seat No NASA wide guidelines Most or all communities allowed Most or all OSS approved licenses allowed Is there a Contributor License Agreement (CLA) or Corporate Contributor License Agreement (CCLA) to sign? What are its implications? 29-Mar-11 NASAOSS-MATTMANN
  • 30.
    OODT: An OpenSource Framework for Distributed Science Data Mgmt Environments Originally funded by NASA to focus on distributed science data system environments science data generation data capture, end-to-end Distributed access to science data repositories by the community Entered the Apache incubator program in January 2010 First Apache project we are aware of originating from a NASA Lab Graduated to Apache Top Level Project in November 2010 Used for a number of science data system activities in planetary, earth, biomedicine, astrophysics NASAOSS-MATTMANN http://oodt.apache.org 29-Mar-11
  • 31.
    OODT Principles Divisionof Labor Avoid making one component the workhorse, configurable Technology Independence Guard against unexpected changes in the technology landscape Metadata as a first-class citizen Descriptions of resources come in handy Separation of software and data models Allow each to evolve independently Modular, domain-agnostic Pick and choose from adaptable components with defined interfaces NASAOSS-MATTMANN 29-Mar-11
  • 32.
    OODT Components SoftwareComponents Catalog/Archive Services – data mgmt/workflow Product Services – access/transformation of data Profile Services – discovery of resources/data Query Services – query federation Web Grid – web-based messaging to connect services Core Models Common XML representations as an interface to all components Representation of distributed resources Domain Models These are specializations that sit on top of OODT NASAOSS-MATTMANN 29-Mar-11
  • 33.
    OODT Science/Mission/Project SpecializationNASAOSS-MATTMANN Common Specific Unique Rqmts. More Capabilities OODT Core Framework Core Components/Models Process Control Framework Science/Mission/Project-Specific OODT Extension Discipline Models Mission-Specific Services New capabilities/ improvements 29-Mar-11
  • 34.
    Case Study: OODT’sMovement to the Apache Software Foundation Meeting held June 15, 2007 at JPL with ASF President Justin Erenkrantz Develop plan moving forward to bring first NASA project to Apache Discuss obstacles, sponsorship Discuss outlook 29-Mar-11 NASAOSS-MATTMANN
  • 35.
    OODT: Incubation Comeup with incubation proposal Send out emails to the Incubator mailing list Look for mentors Get sponsorship from ranking Apache PMC member or board member Justin and others Top-level project versus sub project outlook heading out of incubation 29-Mar-11 NASAOSS-MATTMANN
  • 36.
    Incubation Requirements MonthlyUpdates (for first 3 months, then quarterly) Status Progress Community Acceptance Plan for exiting incubation (no hard deadlines) How to have a solid user base How to operate as a unit in the Apache way Maintenance of user interest and community going forward Diversity: contributions from more than just JPL Children’s Hospital LA, USC, Project WBS, AOL Time Warner, other NASA centers, DOE labs, SKA project 29-Mar-11 NASAOSS-MATTMANN
  • 37.
    … 2 yearslater Worked it out with JPL legal Turns out the ASLv2 license is extremely friendly and is something that at least JPL was amenable to Developed OODT incubator proposal http://wiki.apache.org/incubator/OODTProposal Found willing Apache mentors besides Justin Jean-Frederic Clere, Ross Gardler, Ian Holsman … Put OODT at Apache! 29-Mar-11 NASAOSS-MATTMANN
  • 38.
    Takeaways Lots forNASA to consider in terms of OSS Choose licenses, strategies, processes that enable folks to pick up a shovel and help dig the hole Education perspective: this is how CS/science are being trained at the University level We can’t ignore open source I sincerely look forward to the breakout sessions, lots to discuss 29-Mar-11 NASAOSS-MATTMANN
  • 39.
    Free as inbeer “ Something like the Apache foundation is the best place for released government software. A previous attempt at release and public distribution via a private company was a truly dismal failure. OpenPBS (portable batch system) is supposed to be available to anyone that asks. However when you do ask a sales rep strings you along for more than a month trying to sell you something that they can't actually assure you will fit your requirements (and is no longer under development) even when the free one is documented as doing so. It was a truly stupid waste of the salesperson's time and mine that would have exceeded the price of providing the file for download or sending by email by several orders of magnitude and generated a lot of ill will. I'll go as far as saying it was blatant false advertising using a government funded open source product to do a bait and switch to try to sell me an unmaintained product they picked up in a corporate take over. My experience appears to have been identical to that of many that attempted to obtain this government funded open source software that NASA had declared was available for anyone. Eventually due to this open source project becoming closed the project just had to fork and the compatible Torque batch system was developed by people that had actually get hold of the original OpenPBS .” – Slashdot user comment
  • 40.
    Alright, I’ll shutup now Any questions? THANK YOU! [email_address] @chrismattmann on Twitter 29-Mar-11 NASAOSS-MATTMANN
  • 41.
    Thank You! Learnmore and track our progress at: http://oodt.apache.org Join the mailing list: [email_address] [email_address] Chat on IRC: #oodt on irc.freenode.net Acknowledgements Key Members of the OODT teams: Dan Crichton, Chris Mattmann, Steve Hughes, Andrew Hart, Sean Kelly, Sean Hardman, Paul Ramirez, David Woollard, Brian Foster, Dana Freeborn, Emily Law, Mike Cayanan, Luca Cinquini, Heather Kincaid Projects, Sponsors, Collaborators: Planetary Data System, Early Detection Research Network, Climate Data Exchange, Virtual Pediatric Intensive Care Unit, NASA SMAP Mission, NASA OCO-2 Mission, NASA NPP Sounder Peate, NASA ACOS Mission, Earth System Grid Federation NASAOSS-MATTMANN 29-Mar-11
  • 42.
  • 43.
    Implementation strategies ConcernsInsulation: how do I insulate my project from OSS change but still use OSS? How do I make my project’s OSS software available for redistribution? What technologies are the “best” for my project? What communities are the best? Answers: See next slide It depends It depends It depends 29-Mar-11 NASAOSS-MATTMANN
  • 44.
    Insulation: one strategyMissions maintain their own local CMs Local mission CMs contain forks of existing OSS software Forks can be patch based or CM based Changes found particularly effective are discussed within the comm. And eventually brought before a CCB that reviews their generality, etc. Fig Credit: Dana Freeborn 29-Mar-11 NASAOSS-MATTMANN
  • 45.
    Review use ofOpen Source Review architecture Interrogate buy versus build Why did you buy? Why did you build? WHY DID YOU USE OPEN SOURCE? Or why didn’t you? Review regularly Review it again And again Promote open source infusion Promote construction of open source components inside of your data system implementation and their redistribution 29-Mar-11 NASAOSS-MATTMANN
  • 46.
    Steps forward JPLto tackle legal issues Is OODT releasable as an Apache product http://www.apache.org/licenses/software-grant.txt This needs to be signed by parties that be by JPL Contributor License Agreement Do we need a corporate one? Ended up signing one for OODT and an SGA In parallel to this Draft OODT incubation proposal Start identifying who would initially be interested More external, non-JPL people who are interested, the better 29-Mar-11 NASAOSS-MATTMANN