Markus Eisele

About Markus Eisele

Markus is a Developer Advocate at Red Hat and focuses on JBoss Middleware. He is working with Java EE servers from different vendors since more than 14 years and talks about his favorite topics around Java EE on conferences all over the world. Follow him on Twitter @myfear.

Selecting Your Java EE 6 Application Server

The number one question I get asked is: ‘Which Java EE Application server should we use?’. With the growing adoption of Java EE 6 new compatible application server get certified.

The current official compatibility and certification matrix lists 12 different products certified for the Full Profile, the Web Profile or both. If you are going to start a new project on a green field which decision would you make? Here is what I do trying to narrow the solution space down.
 
 
 

The Players


What does the bouquet to pick from look like? Very colorful. Beside the well know names like IBM, SAP, RedHat, Apache and Oracle we also have lesser know names in the list. Caucho’s Resin, Apache’s TomEE, OW2’s JOnAS and SAP’s NetWeaver Cloud are Web Profile only certified. All the others reached a Full Profile certification.
 
 
 
A full list of our participants with some further details is contained in the following table:

AppserverVendorLicenseProfileVendor Support AvailableJava Version
GlassFish Server 3.01OracleOTN / CommercialFPYesHotSpot 6/7
GlassFish Server Open Source Edition 3.xOracleGPL + CDDLFPNoHotSpot 6/7
WebSphere Application Server 8.xIBMCommercial (prod+dev)FPYesIBM JVM 7
WebSphere Application Server Community Edition 3.0IBMIBM International License Agreement for Non-Warranted ProgramsFPYesIBM JVM 7
JEUS 7TMAXCommercialFPYesHotSpot 6
Interstage Application Server powered by Windows AzureFujitsuCommercialFPYesHotSpot 6
Interstage Application Server v10.1FujitsuCommercialFPYesHotSpot 6
Geronimo 3.0-beta-1ApacheApache 2.0FPNoHotSpot 6
WebLogic Server 12.1.1OracleCommercial / Free for DevFPYesHotSpot 6/7
uCosminexus Application Server v9.0HitachiCommercialFPYes?
JBoss Application Server 7.xRedHatLGPLFPNoHotSpot 6
JBoss Enterprise Application Platform 6RedHatLGPL / CommercialFPYesHotSpot 6
Resin 4.0.17CauchoGPL ‘Resin Open Source’ version ‘Resin Professional’ CommercialWPYesHotSpot 6
TomEE 1.0ApacheApache 2.0WPNoHotSpot 6/7
JOnAS 5.3.0-M8-SNAPSHOTOW2LGPLWPNoHotSpot 6/7
NetWeaver CloudSAPCommercialWPYesSAP Java Server VM 1.6

Looking at your Requirements

The good message first. All the application servers listed on the compatibility matrix passed the Java EE 6 TCK (Technology Compatibility Kit) which basically means, that they deliver the same kind of functionality related to Java EE 6. Even if this contains a decent area of fuzziness due to many reasons. One is, that no TCK covers 100% of the specified features. But I’m sure you can come up with other reasons. What basically is a good message leaves you wondering which could be the right set of requirements to compare instead? It is obviously not a complete technical set of metrics but a combination of different aspects.

A simple example set of metrics could be the following:

– Source Code License (OSS or Commercial)

– License Costs (free for development and production)

– Support (development and/or production support available)

– Certified Java Version (6.0, 7.0 / HotSpot / Proprietary JVM)

– Java EE 6 profile (Full or Web Profile)

This is by far too less if you are doing a full blown product selection . You most likely are going to look at metrics from different categories (e.g. functional, non-functional, corporate, financial aspects) but for now this should be sufficient.

The Selection Process

Lets do it: On to the selection process in this simple example.

First a little disclaimer: This is a very very simplified selection process which really don’t dig into all the dirty little details. It is only thought as a rough methodology idea for your own selection process! So, if anybody is unhappy about what I did, I am happy to read about it in the comments!

We are looking for an OSS server which supports the Java EE 6 Full Profile. That means we are going to kill all the commercial servers and the Web Profile only ones:

AppserverVendorLicenseProfileVendor Support AvailableJava Version
GlassFish Server 3.01OracleOTN / CommercialFPYesHotSpot 6/7
GlassFish Server Open Source Edition 3.xOracleGPL + CDDLFPNoHotSpot 6/7
WebSphere Application Server Community Edition 3.0IBMIBM International License Agreement for Non-Warranted ProgramsFPYesIBM JVM 7
Geronimo 3.0-beta-1ApacheApache 2.0FPNoHotSpot 6
JBoss Application Server 7.xRedHatLGPLFPNoHotSpot 6
JBoss Enterprise Application Platform 6RedHatLGPL / CommercialFPYesHotSpot 6

Five left. Two which are questionable from a license point of view. Both JBoss EAP 6 and Oracle GlassFish Server do have a commercial license (as to my understanding) but they still rely on the OSS server products and the licensed version is only relevant if you want to have support. With the next step I am going to kick all the servers which don’t offer vendor support:

AppserverVendorLicenseProfileVendor Support AvailableJava Version
GlassFish Server 3.01OracleOTN / CommercialFPYesHotSpot 6/7
WebSphere Application Server Community Edition 3.0IBMIBM International License Agreement for Non-Warranted ProgramsFPYesIBM JVM 7
JBoss Enterprise Application Platform 6RedHatLGPL / CommercialFPYesHotSpot 6

Which brings us down to three. Still not really a single result. Now lets intentionally remove IBM because they are not certified on HotSpot but use their own IBM JVM J9.

AppserverVendorLicenseProfileVendor Support AvailableJava Version
GlassFish Server 3.01OracleOTN / CommercialFPYesHotSpot 6/7
JBoss Enterprise Application Platform 6RedHatLGPL / CommercialFPYesHotSpot 6

That leaves us with JBoss AS 7 and GlassFish as the only real options today according to my little evaluation.

Recommendation

One could call me afraid of selection a single winner here. If you know me, you know that this simply isn’t true. Given the initial metrics this is exactly the outcome and obviously the selected metrics are not sufficient enough to appoint a clear winner.

If you need a final recommendation you have to tweak the metrics to your needs. I would recommend looking a little bit further into:

– Market reach (e.g. downloads/customers/etc.)

– Maturity (e.g. availability in years since EE 6 final version)

– Development Performance (e.g. Startup-Time/IDE integration)

Remark:

I’m sorry for the fact, that I mixed the commercial offerings from Oracle and RedHat with the related OSS servers a bit. Given the fact, that I wanted to see a OSS server would have lead to a knock-out criteria with the vendor support requirement. Given the fact, that I really don’t want to propose to use AS7.1.1.Final to anybody (see a very nice summary of the reasons done by henk) I personally think, that it is fair to recommend the commercial side for both servers.
 

Reference: Selecting Your Java EE 6 Application Server from our JCG partner Markus Eisele at the Enterprise Software Development with Java blog.

Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you two of our best selling eBooks for FREE!

JPA Mini Book

Learn how to leverage the power of JPA in order to create robust and flexible Java applications. With this Mini Book, you will get introduced to JPA and smoothly transition to more advanced concepts.

JVM Troubleshooting Guide

The Java virtual machine is really the foundation of any Java EE platform. Learn how to master it with this advanced guide!

Given email address is already subscribed, thank you!
Oops. Something went wrong. Please try again later.
Please provide a valid email address.
Thank you, your sign-up request was successful! Please check your e-mail inbox.
Please complete the CAPTCHA.
Please fill in the required fields.

One Response to "Selecting Your Java EE 6 Application Server"

  1. Bern Kelly says:

    Very poor English.

Leave a Reply


− three = 2



Java Code Geeks and all content copyright © 2010-2014, Exelixis Media Ltd | Terms of Use | Privacy Policy | Contact
All trademarks and registered trademarks appearing on Java Code Geeks are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries.
Java Code Geeks is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.
Do you want to know how to develop your skillset and become a ...
Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you two of our best selling eBooks for FREE!

Get ready to Rock!
You can download the complementary eBooks using the links below:
Close