Open Source, Open Standards: View from the Shoulders of Giants
I'm often asked, "Why would a long-time open source community member join a proprietary software company like Adobe?"
When people think about Adobe, they often think about our great software products, such as the Creative Suite, Acrobat, or Photoshop. More recently people think about Adobe Marketing Cloud, which provides a complete set of analytics, social, advertising, targeting and web experience management solutions for digital marketers.
When people think about Adobe, they probably don't think about Open Source or Open Standards. But maybe they should!
Here are some things I found out about Adobe and openness before joining:
- Adobe is on GitHub and SourceForge, with projects including an editor, fonts, and contributions to WebKit.
- Adobe has an Open @ Adobe blog and Twitter account, carrying on the conversation about Open Source and Open Standards for the last couple of years.
- Adobe host forums for discussion around Open Source.
- You can find a summary of many of these open source efforts on the Adobe website, with more details at the Adobe Developer Connection. Adobe employees contribute to a wide range of open source projects, and Adobe hires more Apache Software Foundation members than just about any other company.
- Adobe also contribute to web standards, and has a whole suite of tools aimed at making it easier for people to build a beautiful, modern web. Adobe actively encourages contributions to many related projects.
- Adobe's broader engagements with open standards are detailed on the standards blog, where for the last year the conversation has spanned a wide range of topics.
- Adobe also sponsors a number of events in both open source and standards. Most recently, the Open Source Think Tank 2013 and Eclipsecon, and the Open Futures Meetup at SXSW with W3C and IEEE.
Now that I've joined, I've been able to see the true depth of Open Source use. Just focusing on Adobe Experience Manager (AEM) and taking a quick look at its architecture:
- At its core, AEM is built upon a content repository. The content repository stores files in the tar format (IEEE standards POSIX.1-1988 and POSIX.1-2001), on top of which is the content repository API for Java (JCR; standards JSR-170 and JSR-283, both led by Adobe's VP of Enterprise Technology, David Nüescheler).
- AEM has a modular architecture based around the OSGi specification, and so Apache Felix is used to provide the pluggable framework.
- The web framework and RESTful architecture are delivered by Apache Sling, which leverages the underlying JCR implementation to store and manage content.
- Pinning all of this together is a huge list of open source dependencies, managed using Apache Maven.
It's great to see such a wide range of open source software used in the AEM solution, but more importantly each of these open source projects (and many more) regularly see active engagement and contributions from Adobe developers.
Adobe is not just passively benefiting from all this code: Adobe developers are in fact frequently working within open source communities creating and driving these projects forward, hand-in-hand with defining and developing the open standards and specifications that they implement.
There's a saying, often ascribed to Sir Isaac Newton: "If I have seen further it is by standing on the shoulders of giants". It is frequently used in reference to open source software, to describe the rapid advances that can be made by leveraging the software commons rather than reinventing the wheel.
It's great to see how Adobe has pulled together best-of-breed open source projects to build Experience Manager, a powerful web experience management solution that implements (and sometimes defines) web standards. I'm looking forward to playing a part in evolving web experience management, and to seeing the associated innovations and specifications becoming part of future successful open source projects.
Fore more on Adobe and openness, see http://www.adobe.com/open.
Andrew is a Senior Technical Product Marketing Manager for Adobe Experience Manager at Adobe. Prior to Adobe, Andrew spent several years working in a mobile consortium building mobile platforms, and also worked extensively in systems integration where he delivered a wide range of enterprise content management solutions. At Adobe, he provides a bridge between engineering and the wider world, ensuring everyone knows about the great new features and functionality that are being built, and how best to use them, with a mobile focus. Andrew is passionate about open development, is active in a number of open source communities, and is also an Apache Software Foundation Member.