Which Java EE 6 App Server ? - JBoss 6.0 or GlassFish 3.x

It's been over a year that Java EE 6 was released in Dec 2009 along with GlassFish as the Reference Implementation.  JBoss contributed two new specifications to the Java EE 6 platform - JSR 299 (Contexts & Dependency Injection) and JSR 303 (Bean Validation) and contributed in multitude of other ways to make the platform successful, many thanks for that. RedHat released JBoss 6.0, their first Java EE 6-compliant app server (no production support and only Java EE 6 Web Profile) last month, a very hearty congratulations to them!

Resin is also making good progress and should be coming out soon too, Websphere 8.0 Beta already has support for Java EE 6, Oracle WebLogic coming out later this year. Read "From 2 to 8: Java EE 6 App Servers" for couple of months old status on Java EE 6 compliance.

This blog highlights some key differences between the GlassFish 3.x and JBoss 6 (based upon publicly available information and some basic experiment on my personal machine):

Features/AppServer GlassFish 3.0.1 JBoss 6.0
Compliance Full Java EE 6, and Java EE 6 Web-Profile Java EE 6 Web-Profile Only
Download Size 33-52 MB for Web Profile, 34-85 MB full Java EE 6 181.3 MB
Installer Zip and .sh/.exe installers Zip only
Release Maturity 1 year+ About 1 week
Commercially Supported Yes No
IDE Integration NetBeans, Eclipse, IntelliJ Eclipse (primarily), NetBeans
Web-based Admin Console Yes Yes
CLI Administration Yes No
REST-based Administration Yes No
Clustering Coming in 3.1 Yes
Update Tool Yes No
OSGi Native Configurable
Startup Time (3 consecutive start/stop on 4GB MacBook Pro with default settings) (7-12 seconds)

GlassFish Server Open Source Edition 3.0.1 (22) startup time : Felix(10330ms) startup services(1680ms) total(12010ms)
Felix(5557ms) startup services(1149ms) total(6706ms)
Felix(5729ms) startup services(1576ms) total(7305ms)

(29-25 seconds)

JBossAS [6.0.0.Final "Neo"] Started in 35s:210ms
Started in 34s:498ms
Started in 29s:532ms

Docs Comprehensive Minimal, mostly placeholders and in some places pointing to older 5.x docs.
Maven Listed on download page. Could not find them listed here.

Let me know if any of the points need correction.

And now some miscellaneous bullet points ...

  • JBoss Download page says "This is a community project and, as such is not supported with an SLA.". Clicking on the Download link again shows a warning "Community projects represent the latest development releases and are not supported". So you can download JBoss 6 and use it for development but would you like to use an unsupported product, with no SLA, in production ?

  • The first Java EE 6 implementation, i.e. GlassFish, is available and tested in multiple scenarios for over a year.

  • The zip-install required manual intervention:

    inflating: jboss-6.0.0.Final/docs/licenses/Gnu Lesser Public License - lesser.html  
    replace jboss-6.0.0.Final/docs/licenses/GNU Lesser General Public License -
     lgpl.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
      inflating: jboss-6.0.0.Final/docs/licenses/GNU Lesser General Public License -
     lgpl.txt
    
  • Only Java EE 6 web profile compliance in JBoss means there is no way to use other Java EE features yet. And so you are stuck if your needs grow beyond Web Profile.
  • Going to http://localhost:8080/admin-console starts a hidden Java window as well, found it slightly weird!
  • The release notes is just a buglist with no instructions on supported platforms etc.
  • Stopping the container took over a minute, 1m:3s:692ms to be precise. And this is when only Admin Console was accessed and no app was deployed.

The articles like "New JBoss puts Java EE 6 to Work" by PC World and others with similar heading are misleading when they say "one of the first enterprise-grade application servers to fully support Java EE 6". How can an App Server be enterprise-grade and yet not offer commercial support and minimal documentation ? And also Java EE 6 is already put to work in multiple GlassFish deployments so not sure what it means "puts to work".

Both WebLogic and GlassFish are equally strategic for Oracle. If you want to use open source, light-weight (highly modular, smaller size, high speed, not "not enterprise ready") development/deployment, and cutting edge Java EE 6 features then pick GlassFish. If you want integration with Coherence, Fusion Apps, sophisiticated deployment scenarios then pick Oracle WebLogic. And WebLogic builds upon the innovation done in GlassFish by sharing multiple components anyway.

In addition, the current release of WebLogic Server (11g 10.3.3) has support for some of the key Java EE 6 standards like JSF 2.0 and JPA 2.0. The upcoming WebLogic release (11g 10.3.4) will have support for some other Java EE 6 specifications as well. And Java EE 6 compliance in WebLogic is also coming later this year.

Where are you deploying Java EE 6 applications ?

Technorati: javaee6 glassfish jboss comparison

Comments:

Did you ever tried to use the update tool of Glassfish behind a proxy server which uses NTLM authentication only (due to institution policies)? ;-)

Posted by jiai on January 04, 2011 at 06:02 AM PST #

There is a company that provides production support for JBoss 6.0 AS with SLA.

Posted by Thomas on January 05, 2011 at 12:02 AM PST #

I'm just curious what personal machine did you use ? On mine:

JBossAS [6.0.0.Final "Neo"] Started in 13s:610ms

Posted by hubbycat on January 05, 2011 at 02:46 AM PST #

My machine configuration ...

2.4 GHz Intel Core 2 Duo
4 GB 667 MHz DDR2 SDRAM
Mac OSX 10.5.8

Posted by Arun Gupta on January 05, 2011 at 02:50 AM PST #

Arun, let me address a couple of points.

1. Enterprise Grade
I fully expect many thousands of deployments of AS 6 over the coming months, despite Red Hat not offering commercial support for it. Many users are happy with self support or will find other comanies who will provide some level of support for them. Open Source provides that choice. Our decision to not support this particular version is based on functionality and nothing else. The goal of AS 6 was to deliver Java EE 6, the goal of AS 7 is to build on that foundation and deliver a lighter, more modular run-time that will keep us ahead of the competition for another decade.

2. Web Profile Support
While AS 6 only passes the Web Profile TCK - it has many features above and beyond the Java EE 6 Web Profile and is probably closer to the EE full profile in terms of features. It will be interesting to see if anyone actually notices which EE features are actually missing in AS 6 - most of the things that were defferred are generally accepted as being deprecated anyway.

3. Glassfish is Strategic
Sure, Oracle has a commitment to produce an EE RI and TCK - so Glassfish is strategic in that sense. But I can say from first-hand experience - Oracle's salesforce is only selling one App Server today and it's not Glassfish; or OC4J ;)

4. Startup Time
Everyone understands that lazy-loading can give the perception of a faster startup - we'll address that in AS 7.

Rich Sharples
JBoss by Red Hat

Posted by Rich Sharples on January 05, 2011 at 10:00 AM PST #

Hi Arun. I suggest renaming your "maturity" column because it gives the wrong impression at present. I can't speak for Glassfish, but it is certainly wrong to say that JBossAS 6.0 is only "mature" by a week. Many of the components within it have been around for years; some, such as the transaction service, have been implemented and available in a number of application servers since 1997.

Posted by Mark Little on January 05, 2011 at 08:37 PM PST #

Hey Arun,
Happy New Year.

I could not resist taking a shot at your post:
http://anil-identity.blogspot.com/2011/01/response-jboss-as6-vs-glassfish-3x.html

Cheers,
Anil

Posted by Anil Saldhana on January 05, 2011 at 11:31 PM PST #

@Mark Understood, and the same is true for GlassFish Server. To be more specific (and admittedly more accurate), perhaps Arun could rename it to "release maturity".

@Rich

Regarding #1
"Our decision to not support this particular version is based on functionality and nothing else."

From what I understand from JBoss blogs and webinars, additional QA/security/integration testing of integrated components takes place behind the firewall, so my assumption is that the commercial product is higher quality than FOSS bits. I agree that this doesn't mean that users can't put the JBoss FOSS bits into production. The way I (perhaps incorrectly) grok this is that the release decision and the JEAP value proposition is also tied to differentiated quality in addition to features. Just trying to ensure I fully grok the JBoss release model.

Regarding #2
Its great to see JBoss 6 achieve Java EE 6 Web Profile compliance. I look forward to seeing JBoss meet full Java EE 6 platform compliance.

Regarding #3
You are right that the Oracle sales force is out selling WebLogic Server as the foundation of Fusion Middleware and a high end application server infrastructure but at the same time they are actively and successfully selling GlassFish Server because of the roadmap we are executing to. We have been pleasantly surprised by the uptake of GlassFish Server not only with our continued multi-million download numbers but the continuing growth in our commercial customer base. Clearly we also have the requirement to deliver a Java EE reference implementation with GlassFish Server but it certainly is more than that given what we see in our customer base.

Regarding #4
Lazy loading in GlassFish Server delivers real-world fast startup time. For example, the EJB container (and even the administration console) is not loaded if it is not needed. GlassFish Server has been decomposed into ~250 modules that are dynamically (lazily) loaded. The overall result is faster startup time.

Posted by John Clingan on January 06, 2011 at 05:01 AM PST #

>@Mark Understood, and the same is true for GlassFish Server. To be more specific (and admittedly more accurate), perhaps Arun could rename it to "release maturity"

Why bother - let's not pretend that this is some kind of independent evaluation that actually might be useful to anyone.

> Regarding #1

> QA/security/integration testing of integrated components takes place behind the firewall

Er, yes correct, we don't use pubically accessible machines to do our testing - WTF does ?

This post goes into some detail about our Enterprise Platform releases :

http://blog.softwhere.org/archives/1035

> Regarding #3

So you're saying that Oracle has adopted IBM's WAS / WAS CE strategy ? Good luck - hope that works out better than it did for IBM.

- Rich

Posted by Rich Sharples on January 06, 2011 at 06:30 AM PST #

<quote>
Only Java EE 6 web profile compliance in JBoss means there is no way to use other Java EE features yet. And so you are stuck if your needs grow beyond Web Profile.
</quote>

That's not accurate. The other techs are still usable, it's just not "certified". Dimitris explains about this in his blog here http://dandreadis.blogspot.com/2011/01/introducing-brand-new-jboss-as-60.html

<quote>
Going to http://localhost:8080/admin-console starts a hidden Java window as well, found it slightly weird!
</quote>

That's strange! I just checked locally, but I don't see any such hidden Java window and neither have I seen any user mention about it in the forums. Is there a screenshot that you can share? Maybe that will help us understand what it's about.

<quote>
Stopping the container took over a minute, 1m:3s:692ms to be precise. And this is when only Admin Console was accessed and no app was deployed.
</quote>

Shutdown takes me around 3 seconds:

13:45:51,672 INFO [AbstractServer] Stopped: JBossAS [6.0.0.Final "Neo"] in 3s:426ms

I too am just accessing the admin console and there's no other app deployed.

Posted by Jaikiran Pai on January 06, 2011 at 04:18 PM PST #

CDI(in ear) in Glassfish 3.01 is not working. CDI in Glassfish 3.1b34 is not working. CDI in JBoss 6(in ear) working fine. Please fix errors in Glassfish 3.01 and 3.1!

Posted by Max Volkov on January 07, 2011 at 03:54 PM PST #

Max,

Is there a corresponding bug id ?

Posted by Arun Gupta on January 07, 2011 at 11:11 PM PST #

I register bug report GLASSFISH-15496

Posted by Max Volkov on January 08, 2011 at 04:29 AM PST #

Max,

3.1 is in a high resistance mode as mentioned at:

http://wikis.sun.com/display/GlassFish/3.1BuildSchedule

Lets hope the bugfix can get included in this release.

Posted by Arun Gupta on January 08, 2011 at 05:53 AM PST #

Thanks for fast bugfix.

Posted by Max Volkov on January 10, 2011 at 07:29 PM PST #

@jiai The Update Tool included with GlassFish does not currently support NTLM authenticating proxies. Sorry about that. Some details here: http://java.net/jira/browse/UPDATECENTER2-2043 (including a hack you could experiment with).

Posted by Joe Di Pol on January 11, 2011 at 08:59 AM PST #

Some more mistakes found in CDI integration. For example, the report of my colleagues in the GlassFish-15524.

P.S. I hope that all the other stupid errors in the integration of CDI will be corrected soon ... :)
P.P.S. Our testing in progress... :)

Posted by Vektor on January 11, 2011 at 01:53 PM PST #

<quote>
The zip-install required manual intervention:

inflating: jboss-6.0.0.Final/docs/licenses/Gnu Lesser Public License - lesser.html
replace jboss-6.0.0.Final/docs/licenses/GNU Lesser General Public License - lgpl.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
inflating: jboss-6.0.0.Final/docs/licenses/GNU Lesser General Public License - lgpl.txt
</quote>

This issue has now been fixed https://issues.jboss.org/browse/JBAS-8794

Posted by Jaikiran Pai on January 30, 2011 at 05:31 PM PST #

As someone who's been struggling with the embedded product for many months, I've found yet another roadblock to my testing code. So I think that any evaluation should compare testing support as well. Question: Is GF still in active development? I don't see much activity in the forums. Too bad.

Posted by Matthew Cornell on May 29, 2012 at 10:42 AM PDT #

Post a Comment:
Comments are closed for this entry.
About

profile image
Arun Gupta is a technology enthusiast, a passionate runner, author, and a community guy who works for Oracle Corp.


Java EE 7 Samples

Stay Connected

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today