410 likes | 547 Views
A View From the Trenches: Open-Source, Data-Intensive Software. Chris A. Mattmann Senior Computer Scientist, NASA Jet Propulsion Laboratory Adjunct Assistant Professor, Univ. of Southern California Member, Apache Software Foundation. Roadmap. 1 st part of the talk
E N D
A View From the Trenches: Open-Source, Data-Intensive Software Chris A. Mattmann Senior Computer Scientist, NASA Jet Propulsion Laboratory Adjunct Assistant Professor, Univ. of Southern California Member, Apache Software Foundation
Roadmap • 1st part of the talk • The importance and concerns of open-source software • 2nd part of the talk • NASA Earth Science Data Systems • Real-world open-source software and its use in various projects ARR-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) • Architect/Developer at NASA JPL in Pasadena, CA • Software Architecture/Engineering Prof at USC ARR-MATTMANN
Open Source Software Development • It’s here • Chances are if you build software nowadays, are youare using some type of open source software • Let me give you some context… ARR-MATTMANN
The NASA ESDS Context Where is open source most useful? Which area should produce open source software? ARR-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? ARR-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? ARR-MATTMANN
Concerns in the Open Source World • Help/Guidance • Is the OSS community/project alive? • How can you tell whether the project is alive? • How can you “follow the rainbow” to the OSS pot of gold? • Interaction • What are the best practices for interacting with OSS communities? • Implementation strategies • Insulation: how do you insulate your project from OSS change? • Configuration Management: what are the important CM issues when using Open Source Software in NASA ESDS? • Architectural strategies • How to design your system to take advantage of OSS? • Legal strategies • How to avoid getting sued by Oracle some huge tech company? ARR-MATTMANN
The NASA ESDS Context The aforementioned OSS concerns are cross cutting against the whole ESDS enterprise! ARR-MATTMANN
What is industry doing? • Big Data? • They got it • Bigger than NASA even! • How about processing 1 PB/day? • How are they doing it? • Open Source • “Big Data” technologies • What is JPL doing to be part of this? • That’s my goal! • Actively representing the science mission needs ARR-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 • Let’s take a few examples ARR-MATTMANN
Some OSS licenses • ApacheLicenseV2 • Allows (unrestricted): • Redistribution (or not) • Commercialization • Must keep ASL headers andNOTICE file bearingASL attribution • Contributors to ASFsign Apache CLAs or CCLAs • BSD License • Allows • Redistribution (or not) • Commercialization • Must include headerin code or in NOTICE • 0 contrib. restrictions ARR-MATTMANN
Some OSS licenses that aren’t so friendly • GPL(v2, v3), LGPL • Allows (restricted): • Redistribution • Based on implied commerciality and copyleft • Commercialization • May need to pay license fees • Standard attribution requirements (NOTICE or in source code headers) based on copyleft • “Copy left” Syndrome • Software must be redistributed under the same original terms of the any upstream author. • Author is not free to decide redistribution terms, or even source code inclusion terms (except under fair use which supersedes) ARR-MATTMANN
Why licenses are important • “War Story” • Amazon EC2, S3 • Johnson and Johnson Pharm. R&D • At a recent conference I met the director of R&D for J&J. He presented a story wherein which J&J needed large bursting processing and limited data storage for some drug tests they were conducted. They decided to use Amazon EC2. After reviewing Amazon’s licensing policy for EC2 J&J’s laywers determined that Amazon claimed IP for any data or computational results produced on its cloud. Since the need for Amazon’s processing and cloud was limited to a few trials, and since the costs were so outrageous to stand up its own cluster for these experiments, J&J decided to forge ahead with Amazon with the understanding that its lawyers would “duke it out.” should the need arise with Amazon’s lawyers based on the FOU restrictions and IP claims induced by Amazon EC2. ARR-MATTMANN
Why licenses are important • “War Story 2” • Oracle versus Google • Is there really free Java with your free lunch? • Although there is no definitive answer besides papers filed in court, Oracle’s claims in its lawsuit are based on perceived patents for the Java Virtual Machine and its associated IP. Sun originally filed patents on the Java Virtual Machine and its translation of programming language code into runtime executables. In order for a JVM to be a “certified” (read: trademark) JVM, the JVM must pass a “Test Compatibility Kit” (TCK), which Oracle/Sun license at a cost to JVM vendors. By purchasing the TCK, a JVM builder is given IP knowledge of the JVM patents. If a company builds a JVM but does not purchase the TCK, Oracle/Sun loses licensing dollars. ARR-MATTMANN
What does OSS licensing mean to Software Development? • Awareness • Know your distribution requirements • Know your contributor expectations • Know your field of use expectations • Know your commercialization expectations • Leverage licenses that give the most leeway in all important categories above • Allows the decision on some of the above aspects to be delayed without fear of penalty or prejudice • Friendly licenses: ASLv2, BSD, MIT • Know what you are signing *before* you sign it (or use it) ARR-MATTMANN
Redistribution • So you’ve built some awesome piece of software • And you’re wondering • What are my options for distributing it? • 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? ARR-MATTMANN
OSS Redistribution Infrastructure Issue tracking Portals Source code repository Repository browsing Acceptance testing Mailing lists ARR-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? ARR-MATTMANN
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 you? • 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 ARR-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. ARR-MATTMANN
Communities for your organization • 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) ARR-MATTMANN
Our experience: Apache OODT • Front Pagearticle on NASA.gov • Free and availableto download • First true NASA FOSS technology • Distributed atApache • Featured onSlashdot ARR-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 ARR-MATTMANN
So, again, why do we care? • Software Engineering Research Challenges/Questions • Students are using open source • They will inevitably see it in their projects, will use it to build out next generation infrastructure, etc. • Practitioner challenges • I still hear the “I just picked one” syndrome • We need to better train software engineering students and practitioners to understand the dimensions of open source software ARR-MATTMANN
2nd part of the Talk • Some context and real-examples ARR-MATTMANN
NASA Ground Data Systems Credit: D. Woollard ARR-MATTMANN
Context • NASA develops science data processing systems for multiple earth science missions • These systems convert the instrument telemetry delivered to earth from space into useful data for scientific research • Typical characteristics • Remote sensing instruments that orbit the Earth multiple times daily • Data are acquired constantly • Complex algorithms convert instrument measurements to geophysical quantities ARR-MATTMANN
Some Key Open Source Technologies in Use to Enable Science Data • Apache Tomcat • CoreAppServerfor many of our Data Web Services and Web Apps • Apache HTTPD • Powers front-facing portals, redirects to app servers (like Tomcat), vhosting, as well as fronting for Plone • Apache Tika • Metadataextraction, content identification • Apache Hadoop • Cloud Storage Also using Apache OODT to link all of these specific technologies together! ARR-MATTMANN
Application to planetary science • Often unique, one of a kind missions • Can drive technological changes • Instruments are competed and developed by academic and industry • Highly distributed acquisition and processing across partner organizations • Highly diverse data sets given heterogeneity of the instruments and the targets (i.e. solar system) • Missions are required to share science data results: • Common domain information model used to drive system implementations • Expert scientific help to the user community on using the data • Peer-review of data results to ensure quality • All planetary science data results from NASA (and some international) missions is deposited into the Planetary Data System, a federation of nodes in the USA and other systems internationally Apache OODT, Solr ARR-MATTMANN
Application for Earth Missions Apache OODT, Lucene, Tika, Tomcat, HTTPD • Leveraged OODT software framework for constructing ground data systems for earth science missions • Used OODT Catalog and Archive Service software • Focus is on Workflow Management • Constructed “workflows” • Execution of “processors” based on a set of rules • Explicit separation of workflow management from management of computational resources • Provided “lights out” operations • Multiple Missions • SeaWinds • QuikSCAT • Orbiting Carbon Observatory (OCO), OCO-2… • NP Sounder PEATE • SMAP SeaWinds on ADEOS II (Launched Dec 2002) Credit: D. Freeborn, C. Mattmann, D. Woollard ARR-MATTMANN
Application to Airborne Science Missions Users & Science Community Modeling & Visualization Spacecraft & Other Data Sources Apache OODT, Solr, Tika Airborne Data A full service stack is deployed for each mission, utilizing any mission-provided resources as well as a cloud computing infrastructure. Mission proprietary data is presented in a mission-specific secure portal while publicly available data is aggregated in the public portal. Ground Sensors Credit: D. Freeborn, D. Woollard, E. Law, D. Crichton, L. Kay-Im, ARR-MATTMANN 32
Earth System Grid Federation • DOE-funded federation to distribute climate model output to the climate modeling community • Common services for access to repositories and portals/gateways • Highly decoupled • Open source framework (software packaged and distributed) mandated by DOE SciDAC Program • A Recent question….how do you link observations and climate model output? Apache Solr ARR-MATTMANN
Specific Tools (H2O, CO2, …) Application to Climate Research(…Climate Data Exchange) Apache OODT, Apache Solr Credit: A. Braverman, C. Mattmann, D. Crichton, L. Cinquini, M. Cayanan ARR-MATTMANN
Application to Cancer Research: Early Detection Research Network Apache OODT, Apache Solr • EDRN has pioneered the use of informatics technologies to support biomarker research • EDRN has developed a comprehensive infrastructure to support biomarker data management across EDRN’s distributed cancer centers • It supports capture and access to a diverse collection of distributed sets of information and results based on a core ontology for biomarker research From: distributed research databases Credit: D. Crichton, C. Mattmann, S. Kelly A. Hart, H. Kincaid, S. Hughes ARR-MATTMANN
Application to Health Informatics: Virtual Pediatric Intensive Care Unit • Principal collaboration with Childrens Hospital Los Angeles to develop a research network to capture and share data sets from pediatric intensive care units • CHLA has established a collaboration across 85 hospitals • Grant funded by the National Library of Medicine to research an informatics infrastructure and validate methods to support data analysis • Ultimate goal is to improve decision support through an integrated network of information and researchers Apache OODT, Apache Solr ARR-MATTMANN
The Square Kilometer Array • 1 sq. km ofantennas • Never-beforeseen resolution looking intothe sky • 700 TB • Per second! Apache OODT, Apache Solr ARR-MATTMANN
Alright, I’ll shut up now • Any questions? • THANK YOU! • mattmann@apache.org • @chrismattmann on Twitter ARR-MATTMANN
Acknowledgements • Some Tika material inspired by Jukka Zitting’s talks • http://www.slideshare.net/jukka/text-and-metadata-extraction-with-apache-tika • http://www.slideshare.net/jukka/text-and-metadata-extraction-with-apache-tika-4427630 • NASA Jet Propulsion Laboratory • OODT Team • Dan Crichton’s keynote from ApacheConNA 2011 ARR-MATTMANN
2011 Workshop on Software Engineering for Cloud Computing (SECLOUD) • This is the workshop at ICSE that Craig was talking about • 10 accepted research papers and 5 “demos” • Come join us in Hawaii! https://sites.google.com/site/icsecloud2011/ ARR-MATTMANN
Book • Jukka Zitting and I are writinga book on Tika • Working on Chapters 14and 15 of 15 • Early Access availablethrough MEAPprogram • http://manning.com/mattmann/ ARR-MATTMANN