IBM’s Open Source Plus strategy


Quite often I get to hear the opinion that the company must choose between commercial software or Open Source. It is presented as if one choice is diagonally opposite from the other. Even at the highest levels and keynote speeches at conferences (including those of Jim Whitehurst who is Red Hat’s CEO) this debate is escalated into antagonistic argument that only one path is the “Right One” and you “must make your choice”. I beg to disagree. I do not think it has to be so black and white. It certainly plays in Red Hat interest to present it this way as they portray “commercial” software as “expensive”, “proprietary”, “outdated”, and a long list of other negative labels.

Let me remind those critics of commercial software that almost none of the innovation happening with Open Source would have been possible without those very commercial companies contributing and driving majority of most successful OSS projects, including many Apache projects. IBM is a prime example of such commercial company and it is not the only one. You may or may not know, but IBM has a long and extensive history of Open Source contributions and use of OSS in IBM software. IBM has several thousand developers contributing code to hundreds of Open Source projects, including Eclipse (does anyone remember that IBM created Eclipse in a first place?), great number of Apache projects – just see list of committers and contributors for Apache HTTPD, OpenJPAGeronimo, Tomcat, CXF, AXIS, Tuscany, and many many many more. But it does not stop there as IBM leads and contributes to a number of OSS projects outside of ASF, including Linux (did you know that IBM is one of the biggest code contributors to Linux), OpenStack, CloudFoundry and hundreds of other Open Source projects.

IBM not only donates resources, skills and code to Open Source projects, but it also uses the best of OSS in its own commercial products. IBM calls it Open Source Plus strategy. It is impossible to stay competitive these days and develop everything from scratch. The IBM strategy is simple:

  • Collaborate with Open Source Community to drive and establish common conventions, standards and create implementations for these. This allows IBM to promote its technical vision and in some cases creates entirely new markets and drives established competitors out (anyone remembers Borland IDE?).
  • Consume the best of Open Source code in IBM products and develop additional value (some call it proprietary code) on top of these so that people are willing to pay for these extras (for instance enhanced performance, security, management tools, development tools, etc.). This reuse of OSS projects allows IBM to reduce R&D costs yet value add functions differentiate IBM products from competitors.
  • Provide industry leading customer experience via joint projects, documentation, support, consulting and other services. This establishes long term trusted relationships with customers, ISVs and partners.

To give you an example, IBM Worklight uses over 100 Open Source projects. IBM Big Insights uses over 40 projects, IBM SmartCloud uses over 70 projects. Finally, WebSphere Application Server uses over 100 Open Source projects. Few of these are shown on the picture below:

was-Opensource

If you want to get a complete list of all OSS projects used in Liberty Profile, just take a look at the “notices” file (located in the “lafiles” directory). Beware that this file is over 300 KB size as there is a LOT of OSS software used to build Liberty and full WebSphere Application Server profiles – a lot of this with enhancements and optimizations. To give you a flavor, here are just Apache specific projects listed in this file (there are many other OSS projects listed there – see full file for details):

QUOTE: “The Program includes some or all of the following that IBM obtained under the Apache License Version 2.0:
Abdera
Annogen
Apache Ant
Apache Aries
Apache Avalon
Apache Axiom
Apache Axis
Apache Axis2
Apache Batik
Apache Bean Validation
Apache Commons Beanutil
Apache Commons IO
Apache Commons Lang
Apache Commons Logging
Apache Commons Pool
Apache Commons EL
Apache Commons Codec
Apache Commons Collection
Apache Commons Discovery
Apache Commons Digester
Apache Commons Fileupload
Apache Commons-Net
Apache Commons JXPath
Apache Derby
Apache Felix
Apache HTTP Client
Apache Http Core
Apache HTTP Server
Apache Jakarta Commons Codec
Apache Jakarta httpcore
Apache Jakarta Commons HttpMime
Apache Jakarta Commons Logging
Apache Geronimo Specs
Apache Geronimo Specs Annotations
Apache Geronimo Specs EJB
Apache Geronimo Specs Interceptor
Apache Geronimo Specs J2EE Connector
Apache Geronimo Specs JACC
Apache Geronimo Specs JASPIC
Apache Geronimo Specs JMS
Apache Geronimo Specs JPA
Apache Geronimo Specs JTA
Apache Geronimo Specs Servlet APIs
Apache Geronimo Specs Validation
Apache Lucene
Apache Mime4J
Apache Muse
Apache MyFaces
Apache Neethi
Apache OpenJPA
Apache Oro
Apache Portable Runtime
Apache Sandesha2
Apache SOAP
Apache Transport
Apache Tomcat (subset)
Apache Tools Ant
Apache Tuscany
Apache Struts
Apache Wink
Apache Woden
Apache Xalan-J
Apache XML Schema
Backport-util-concurrent
CGLib1
Google Closure Compiler
Guava
Jackson
Jaxen
JSTL
Log4J
OpenAjax.js
Open Web Beans
OSGi Materials
SVGWeb
Xerces
XML-APIs
XML Beans
XML Resolver
XML4J

…………..” ENDQUOTE        Get the idea?

Another level of discussion is whether or not you can use various OSS projects to build and run your application on top of WebSphere Application Server. The answer here is that you surely can use your favorite OSS frameworks and libraries and run them on WAS. There are many customers that do, and there is plenty of literature that describes best practices and recommendations. One example is this free IBM redbook “Configuring and Deploying Open Source with WebSphere Application Server Liberty Profile” that covers the use of Liberty Profile with Jenkins, Chef, Maven, Spring, Hibernate, etc. Here is another one example of such article on the use of Spring and Hibernate with WAS. This particular IBM Technote provides few additional examples of how OSS projects can be used with WAS.

Liberty Profile has extensive collection of articles and downloadable features with pre-integrated Open Source examples found on wasdev.net Liberty Repository. Here is a snapshot of the current repository filtered down to OSS assets:

Liberty Repository

Liberty Repository 1

Next time you hear someone religiously say that Open Source is not compatible with commercial software, you know better: IBM uses the best of Open Source to build its products and you can use IBM products in conjunction with Open Source projects of your choice. Check out IBM Open Source Plus page for latest news and free downloads.



Categories: News

Tags: , , , ,

1 reply

  1. Hello – another part of the way IBM software is compatible with Open Source is via Standard Interfaces. Take the IBM MQ messaging implementation for example. We supply a JCA standard Resource Adapter. This means you can integrate IBM MQ with Open Source application servers, examples being JBOSS or GlassFish.

    See the support statement for more information http://www-01.ibm.com/support/docview.wss?uid=swg27023129.

    Like

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: