Comparison of Open Source Application Servers

openlogic

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 /

appserver

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
  • 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

  • Complete ecosystem
    • Portal
    • ESB
    • BPM
  • JBoss has history of innovation
    • Pioneer of EJB 3
    • Seam Application Framework
    • Web Beans
  • OSGi
    • Support in JBoss 5

JBoss for Developers

  • Excellent customizability
    • JMX-based, don’t deploy what you don’t need
  • Seam is worth a look for developers
  • JDK 6 with 4.2.3 and 5.0 GA
    • JDK 5 compiled binaries work on both JDK 5 and JDK 6
  • JBoss IDE
    • Eclipse-based
    • JBoss Tools
      • Free version (RHDS is paid version)

JBoss in Production

  • Dependability
    • Excellent clustering and failover capability
    • Reliable in production
  • Monitoring and deployment capabilities
    • Not really oriented toward system administration out of the box
      • Command line/file edit flavor of configuration
      • GUI tools (Tomcat manager and JMX Console) are fairly basic
    • Excellent 3rd party tools available for monitoring
      • Hyperic
      • GroundWork IT
      • JON *

JBoss – Conclusions

  • Strengths
    • Mature, scalable and reliable
    • Good support for J2EE and EJB 3
    • Seam framework
  • Weaknesses
    • Limited GUI-based configuration in open source version
    • LGPL License may be a concern for ISV’s embedding app servers

Assessment SpringSource dm Server /

SpringSource dm Server

  • Newcomer
    • Released in April of 2008
    • GPL license
    • Incorporates many mature components
      • Spring Framework
      • Tomcat
      • Equinox
    • dm Server users are very early adopters
  • Different take on app server
    • OSGi support
    • No support for EJB
    • No JMS out of the box

dm Server for Developers

  • Server works well with Spring Framework
  • IDE
    • Spring IDE – IDE for Eclipse platform
    • Support for NetBeans and IntelliJ
  • OSGi support
    • Resolves “dependency hell”
    • But requires application migration to take advantage of it
  • Supports Java 5 and 6

dm Server Thought Leadership

  • OSGi-based
    • Good OSGi implementation
    • OSGi discussed a lot in their documentation
  • No support for EJB
    • No support for EJB 3 or old EJB 2 spec
  • Spring offers similar functionality to Seam
    • Which is somewhat more mature
    • Although some of the Seam ideas might be somewhat more powerful
      • Bijection

dm Server – Conclusions

  • Strengths
    • Support for Spring Framework
    • Support for OSGi
  • Weaknesses
    • Newcomer
    • No EJB
    • Limited experience among workforce

Assessment Tomcat /

Tomcat

  • First release (3.0.x) in 1999
    • Apache license
  • Servlet container
    • Lightweight server
  • Used in many other app servers
    • JBoss
    • dm Server
    • Geronimo

Tomcat – Conclusions

  • Strengths
    • Lightweight
    • Well known and tested
    • < li>Fast startup/deployment for development

  • Weaknesses
    • No support for EJB, JMS or almost anything else outside of “web side”
  • Tomcat in Development and Production

    • Tomcat 6 supports
      • Clustering
      • Failover
    • Widely used for both development and production
    • Supported in most popular IDEs

    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

    Leave a Reply