Is my open source library supported on WebSphere Application Server?
JonMarshall 1000009QM4 Visits (2000)
"Is my Open Source project XYZ supported on WebSphere Application Server?"
IBM is a massive advocate of Open Source projects and contributes to a huge array of important Open Source projects. You may have heard of some of them; Eclipse (IBM originally developed this in-house before donating to Open Source), Linux, Apache Web Server, and onto projects such as Dojo, Apache Aries, Apache Tuscany, Apache OpenJPA.
However when it comes to application code, application development teams can draw from such a huge range of projects, versions of projects, and, if they really want, bespoke modified projects and supply them with their application to run on top of WAS.
From a support standpoint, any open source code supplied with the application, is considered to be part of the application. It needs to be integrated, tested, and supported by application development teams. It simply cannot be supported with WAS by IBM Support.
What WAS does provide is a robust API, supported over many releases, which means that where an open source project relies on standard and public APIs, you can assume that your application will function without change or issue throughout maintenance upgrades and even version migrations (subject to any deprecated interfaces being removed - but we give you plenty of warning about those).
The risk is more around the maturity and roadmap of the open source project. From time to time, we come across applications that have been written to use an open source project which has fallen by the wayside for whatever reason; it was an old technology, it lost community and development support. Then the application team has to either a) maintain the open source project themselves, as the old technology may not run on later releases or b) move to another API set.
For this reason, I am a strong advocate of using the Java EE specifications wherever possible. They now have a really strong track record for "migratability" too.
Another benefit of the Java EE specifications, certainly where WebSphere is concerned, is that you're likely to benefit from greater performance and better manageability.
Take the use of Hibernate for example (illustrated below). Not only is it an extra project for the application to maintain, it's an extra layer on top of WAS, just adding to code path length. Using the WAS built-in JPA provider would very likely give better performance. Our JPA engine is one of the reasons for the strong performance WAS has on the public benchmarks.
So having said that we can't support open source projects, IBM did spend some time taking one combination of open source projects, Spring and Hibernate, to assess how best to use them with WAS. Out of this came the following article which has been revised a few times on "Using Spring and Hibernate with WebSphere Application Server". This is simply guidance as to how WebSphere is best used with these projects. The recommendation of the authors remains to use Java EE API's instead of Spring. Since Java EE 5 and the enhancements with Java EE 6, Java EE provides all the function on Spring.
As ever, I would be interested to hear your comments?