Posted by
jdcampbell on February 20, 2008 at 9:23 PM PST
Top JEE 5 Comparison of Features and Benchmarks.
Do you need to make a good decision on what Java EE application
server to use for your organization? Sure, and there are a lot of choices out
their. I have used Java application servers for years my self, and total there
are actually about 9 different JEE application servers on the market that I know
of. Open-source Java EE servers are used as much as the commercial counterparts
and I believe the only advantage of going commercial is that you may get better
security that way. Though certain commercial JEE servers have proprietary
features which are valuable, the same can be said of open-source
available features.
The servers we will look at are Sun Microsystems open-source
Glassfish 2.0, Red Hat’s open-source JBoss 4.2, IBM’s open-source WebSphere 2.0
Community Edition, and BEA’s commercial WebLogic 10. I'm covering JBoss 4.2 due to
it's popularity, though it is only partially JEE 5 compliant. I will do benchmarks using a standard benchmark tool from WiseFirm.com. All of these
servers and the benchmarks are being run on the same computer and on the same
Linux OS, so the benchmarks are a very good demonstration of how these servers
truly compare on performance.
Features Comparison…
Below is a quick table on the major features of importance
available with our four JEE servers, these features are the standards used in the industry. The table shows a "Yes" if the feature is shipped with the JEE server package standardly, the table shows "Available" if the feature requires additional package installs, and the "Partial" marks a feature that the particular JEE server does not fully support...
| Feature Description |
Glassfish 2.1
|
JBoss 4.x
|
WebSphere 2.0
|
WebLogic 10
|
| Java EE 5 compliance |
Yes
|
Partial
|
Yes
|
Yes
|
| JSP 2.1 and Servlet 2.5 capable |
Yes
|
Yes
|
Yes
|
Yes
|
| EJB 3.0 capable |
Yes
|
Yes
|
Yes
|
Yes
|
| JavaServer Faces 1.2 support |
Yes
|
Yes
|
Yes
|
Yes
|
| Custom plug-in support |
Yes
|
Yes
|
Yes
|
Yes
|
| Business-rules engine support |
Yes
|
Available
|
Available
|
Available
|
| Hibernate 3.x support |
Available
|
Yes
|
Available
|
Available
|
| JBoss Seam support |
Available
|
Yes
|
Yes
|
Available
|
| Clustering support |
Yes
|
Yes
|
Yes
|
Yes
|
| JAX-WS / JAX-B 2.x |
Yes
|
Available
|
Yes
|
Yes
|
| Eclipse IDE connector support |
Yes
|
Yes
|
Yes
|
Yes
|
| Ease of operation rating 1 to 10 |
7
|
6
|
9
|
6
|
Benchmark Comparison...
I used a
really nice tool for benchmarking called jRealBench (www.WiseFirm.com gives it
free). This tool is designed to show realistic benchmarks, it uses a simple Java
.war application that you deploy on your J2EE server, then you specify how many
session hits you want to benchmark and just click the Benchmark button. It keeps
a database of all the computers you benchmark and allows you to do a chart
comparison of them. Here are the results of our four servers all run on the same
x64 Dual-core server, this benchmark is based on a 10,000 session test...
There are two
tests done in the benchmark charts above, the left test is initial session
creation which is when a user first hits your web site application, the right
side bars are session re-hit benchmarks which is when the same user accesses
another page in your web application. Just in case you have any trouble reading
the server names, the blue-bar is JBoss, the green-bar is WebSphere, the first
red-bar is Glassfish, and the right-hand red-bar is Weblogic.
This test
does not simply check the maximum number of sessions that can be run on these
J2EE servers, this is a more realistic benchmark comparable to a production web
application. A previous article I did showed that many J2EE servers will run
over 1.2 million concurrent sessions, and that is only limited by RAM
availability on the server from my knowledge.
Many people
have stated that Glassfish is faster then these other servers, but I ran these
benchmarks again and again and could not get Glassfish to outperform the others.
As you can see Glassfish benchmarked slower then 2 of the other servers, and
Weblogic was the slowest of all. WebSphere 2 CE is the same as Geronimo 2, it is
based on the Tomcat 6 servlet container, and clearly outperforms all of these
other J2EE servers. WebSphere (Geronimo) is the fastest J2EE server I know
of.
The Bottom Line...
Saving money and getting the best performance and product for
the buck is what we all need. Websphere 2.0 CE (Geronimo) is supported by at
least as many people as JBoss 4.x is, and Websphere outperforms all of these
other J2EE servers. Red Hat's JBoss and BEA Weblogic have commercial support,
while Websphere CE and Glassfish are primarily open-source products. You will
pay more for the commercial support but rather you end up in better shoes for
that is your decision.
As far as
J2EE version 5 compatibility and features are concerned, all of these servers
are JEE 5 compatible except JBoss 4.x. Red Hat is releasing JBoss 5 soon and
that will be JEE 5 compliant and probably perform better, but I don't think it
will perform better then Websphere/Geronimo noticeably, though we will just have
to see. On the matter of features overall, the most popular JEE components
fortunately are very cross-platform compatible so most servers support them.