Você está na página 1de 41

A Comparison of Open Source

Application Servers for the Enterprise

Webinar on Dec 11, 2008


Presented by Rod Cope & Veljko Krunic of OpenLogic
Recording available at: www.openlogic.com/downloads/webinars.php
About OpenLogic

OpenLogic enables enterprises to


safely and securely
acquire, manage and control
open source software,
and thereby
realize significantly higher savings.
Goal

Help you choose which open source application


servers to evaluate more thoroughly:
JBoss
GlassFish
dm Server
Geronimo
Tomcat
Introduction
Rod Cope
CTO & Founder of OpenLogic
25 years of software development experience
IBM Global Services, Anthem, Ericsson, many more
Veljko Krunic
Senior Consultant
15 years of software development experience
JBoss Division of Red Hat, Rally Software, PeopleSoft, many more
OpenLogic, Inc.
SLA support, security updates, and indemnification for over 450 open source
packages (including JBoss, GlassFish, Geronimo and Tomcat)
Governance and policy enforcement
Consulting services and training
Dozens of Fortune 500 customers
Background

Application servers are strategic investments


You are likely to use them for years to come
In the past
J2EE standard
Selection based on
“-ilities”
Maturity
Value-add features beyond the standard
Polling Results from Webinar Attandees

Are you replacing proprietary application servers with open


source application servers (check one)?

Yes, we have already done it

Not yet, but we plan to do it

Not yet, but we are considering it

No, staying with proprietary

Don't know

0 20 40 60 80 100
Polling Results from Webinar Attandees

Which open source application servers are your using or


considering using (check all that apply)?
Caucho Resin
Geronimo
GlassFish
JBoss
Jetty
JOnAS
SpringSource DM
Tomcat
Other

0 20 40 60 80 100
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
What Does This Mean For Me?

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
Polling Results from Webinar Attandees

What are your reasons for using or considering open source


application servers (check all that apply)?
Lower cost
Functionality
Support of standards
Robustness / scalability / performance

In-house expertise
Access to the community
Access to source code

Preference for open source options

0 20 40 60 80 100
Polling Results from Webinar Attandees

What is your biggest concern or challenge with using open


source application servers (check one)?
Need for SLA-level
support
Lack of in-house
expertise
Selling to management /
legal
Concerns about open
source licenses
Robustness / scalability /
performance concerns

0 20 40 60 80 100
Contenders

Make a decision about what functionality you need


Evaluate the contenders
JBoss
GlassFish
dm Server
Geronimo
Tomcat
JBoss

Started in 1999, incorporated in 2001


LGPL License
Reasons for Success
One of the first OSS app servers that was proven enough for
production
Good product
Developers generally like it
Fast startup and operations, easy configuration (for developers)
Good standard support
Modular architecture
Possible to control amount of resources used
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 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 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 - 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
GlassFish

Relatively new
Launched in June 2005
JEE 5 support introduced in May 2006
Glassfish 2
September 2007
Clustering and enterprise capabilities
Merged with Sun Java System Application Server
CDDL License
Huge interest
First seven months of 2008 - 4.5 million downloads
Compare to Spring Framework's 5 million downloads
GlassFish Thought Leadership

JEE 5 certified
Reference implementation
Full support for EJB 3
OSGi is coming in version 3
Sun is a strong supporter of OSGi
Good support for dynamic languages
JRuby
GoldSpike
Grails
Living with GlassFish

IDE
NetBeans-based
Excellent support for GlassFish
Support for Java 6 for a long time
Sun has fairly large ecosystem (e.g., openESB)
Relatively new
Not as easy to hire expertise
Good production capabilities
Clustering
Failover
GlassFish – Conclusions

Strengths
Good support for emerging standards
Good heritage of code, based on a good application server
Excellent support for dynamic languages
Weaknesses
Less widely used than JBoss
Relatively new
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 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 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 - Conclusions

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

Supported by IBM
WSCE based on Geronimo announced in October 2005
JEE 5 certified
Full support for EJB 3
Apache licensed
Geronimo Details

Capabilities
Clustering
GBeans and IoC
Built-in frameworks (ActiveMQ, Spring)
Less often used than others (like JBoss) on large
deployments
Certified on Java 5
Works with Java 6
IDE support
GEP, MyEclipse
Geronimo – Conclusions

Strengths
Apache licensed
JEE certified with full EJB 3 support
Sponsored by IBM
Weaknesses
Not as widely used in production as other servers
Less usage means that it is more difficult to find people who
are experts in it
Smaller ecosystem than others (like JBoss)
Although WAS and WSCE share the same name, they do not share the
same code
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 in Development and Production

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

Strengths
Lightweight
Well known and tested
Fast startup/deployment for development
Weaknesses
No support for EJB, JMS or almost anything else outside of
“web side”
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
Recommendations (continued)

“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
Polling Results from Webinar Attandees

Which non-Java based server technologies are used in your


enterprise (check all that apply)?
Groovy, Grails

.NET

PHP

Ruby on Rails

TurboGears

Zope

Other

0 20 40 60 80 100
Q&A

Any questions?
Contact Information

Rod Cope: rod.cope@openlogic.com


Veljko Krunic: veljko.krunic@openlogic.com
__________________________________________________________________________________________

Download the webinar recording and slides:


www.openlogic.com/downloads/webinars.php

Get a quote on technical support for open source:


www.openlogic.com/products/support.php
Get a quote on training & professional services for open source:
www.openlogic.com/products/open-source-services.php

Você também pode gostar