I have found – by accident really! – a very interesting presentation on SlideShare concerning the different leading Open Source Application Servers on the market.
This very solid evaluation is proposed by OpenLogic.
I have summarized parts of it below.
Goal of the presentation /
Help you choose which open source application servers to evaluate more thoroughly:
- JBoss
- GlassFish
- dm Server
- Geronimo
- Tomcat
Which open source application servers are your using or considering using /
J2EE Didn’t Fill the Need /
- EJB 2 is difficult to use
- Many people consider it unnecessary difficult
- Entity Beans were especially problematic
- But even session beans earned bad reputations
- The Open Source community responds
- OSS packages mitigating the problem
- Hibernate instead of Entity Beans
- Spring as a component model
- They were very successful in the marketplace
- OSS packages mitigating the problem
- Many Spring/Hibernate applications
- Required only Tomcat to run but also work in full app servers
When Tomcat Is Not Enough /
- Tomcat doesn’t support
- JMS
- EJBs
- Other…
- Enterprises need integration
- The more mature the app is, the more likely it is to be added
- Add-ons
- It was possible to add things that Tomcat was missing
- But this became a “build your own Frankenstein” exercise
Java Enterprise Edition in the Meantime /
- Weaknesses in EJB 2 model were recognized
- Work on new specification was completed
- J2EE → JEE 5
- EJB 2 → EJB 3
- Entity Beans → JPA
- EJB 3
- Simple annotation-based programming model
- Not everybody adopted EJB 3
- JEE 6 will embrace modularity
- Profiles, including web profile
Choices in 2007 /
- Use Spring
- Start with full app server
- Start with Tomcat, build from there
- Use EJB 3
- Requires full app servers
- Full application server
- Pros – everything you are likely to need, could use EJB
- Cons – complexity, might use more resources then Tomcat
- Tomcat
- Pros – small, simple, low resource usage
- Cons – you might need to build your own app server, no EJB
OSGi /
- Started in 1999
- Recently got a lot of exposure
- In particular, R 4.1
- JSR-294
- OSGi brings
- Dependency management and modularity
- Ability to load only parts it needs
- OSGi currently has a lot of mindshare
The central questions /
- Decisions, decisions
- EJB 3 or Spring
- Spring on dm Server or on J2EE/JEE server?
- OSGi or not OSGi
- Do I need EJB 2 compatibility?
- In addition, there are many “old” considerations
- Servers are not “all inclusive”
- EJB 3 apps won’t work on SpringSource dm Server or Tomcat
Assessment JBoss /
JBoss Thought Leadership
|
JBoss for Developers
|
JBoss in Production
|
JBoss – Conclusions
|
Assessment SpringSource dm Server /
SpringSource dm Server
|
dm Server for Developers
|
dm Server Thought Leadership
|
dm Server – Conclusions
|
Assessment Tomcat /
Tomcat
|
Tomcat – Conclusions
|
Tomcat in Development and Production
|
Conclusions /
- App servers are not just about the JEE specs
- Make some high-level decisions before evaluation
- Do I need EJB 2 compatibility?
- Do I intend to follow EJB 3 and other industry standards?
- Do I need something fast, lightweight, and easy to use?
- Do I have a need for lifecycle management of server components (through OSGi)?
- Do I need support for dynamic languages like Groovy and JRuby?
- Am I an early adopter of new technology?
Recommendations /
- “I’m using EJBs and I’m conservative”
- JBoss, GlassFish
- “I don’t need XA/JMS/EJB”
- Tomcat, JBoss, GlassFish, dm Server
- “I’m using Spring”
- Conservative – JBoss, Tomcat, GlassFish
- Leading edge – dm Server
- “I need to embed an app server in my commercial code”
- Tomcat, Geronimo
- “I use Spring heavily and I need OSGi”
- I need it today and don’t need EJBs – dm Server
- I need it soon and/or need EJBs – GlassFish, JBoss
- “I use Seam”
- JBoss
- “I want ActiveMQ/Spring/Hibernate preinstalled”
- Geronimo
- “I need dynamic language support”
- Groovy/Grails – dm Server, JBoss, GlassFish
- JRuby/Rails – GlassFish, Geronimo