Charles Engelke's Blog

July 9, 2003

Session: Deciding on an Open Source J2EE Platform

Filed under: OSCON 2003 — Charles Engelke @ 8:24 pm

Ed Lyons of NetNumina Systems is giving this talk. The criteria for
evaluating tools won’t be features, but what’s really important:
maintainability, track record, management, integration, security,
transactions, support, availability, performance. He will weight these
according to factors he showed for 5 seconds.

Database. “Ultimately, applications simply change contents of databases.” I don’t
really agree, but I understand what he means. SAP DB just surrendered to
MySQL (good luck integrating all that Pascal with C). Current open source
options include MySQL, PostgreSQL, and Firebird (was Borland’s Interbase 6).
“If the open source database race was a popularity contest, MySQL would
win.” It has nice support from books, community, MySQL AB (about 70
employees). They’re very upfront about what MySQL can’t do, as well as what
it can. MySQL is fast with quick reads, perfect for static websites. They
have transactions now, but still no views or stored procedures (but they are
on the way). They’ve added a query cache, and have some replicatoin going,
though they admit “not easy to use replication in high-performance
applications.” They’re working on multimaster, failsafe, two way
replication. Hot backup coming in MySQL 5.0.

PostgreSQL has always tried to be the real enterprise database
with a focus on features and tools, not speed. They’ve been improving
performance, but don’t seem to have as much momentum as MySQL. Lots of
places offer commercial support (even in Japanese). They support triggers,
referential integrity, outer joins, replication.

He scores the three databases he’s discussed. It’s almost a tie between
PostgreSQL and MySQL. MySQL wins in Support and Performance. PostgreSQL
wins in Transactions, Maintenance, and Availability. Firebird is just okay
compared to these two.

What about commercial databases? Look at Oracle. You can do anything
with it while it’s running. There are lots and experienced and certified
Oracle DBAs and consultants, and lots of commercial support. It’s got great
performance, superior tools, integrates with everything, and has the best
track record available.

The EJB Container. We’re not saying “app server”. It’s all about
JBoss in the enterprise, but we’ll look at others, too.

The only serious player is JBoss when in contention with commercial
products. Enhydra used to be good, but it’s no longer competitive due to
actions by sponsor Lutris. OpenEJB can be a good test harness (and can be
added to Apache Tomcat), and JOnAS has lots of features but no track record.
Both OpenEJB and JOnAS can be good choices in some cases, but JBoss usually

JBoss is the only app server that is making BEA, IBM, and Sun a bit
nervous. It leads in spec. compliance, tools, management, support,
enthusiasm, and there are books, seminars and a conference. It’s
contributors “are some of the brightest people in J2EE”. It has a real
track record in big companies for small and medium-sized things. JBoss is
solid across the J2EE, not just EJB (JMS, transactions, CORA, RMI). They
are serious about testing and QA. They may not be J2EE certified for
political and economic reasons, but they’re as good as anyone there. They
are looking at management, clustering, and ease of development as selling

The scoring of EJB Containers is no contest. JBoss wipes the others out.
The only reason it didn’t get top scores in every category was that it was
being compared to commercial offerings (and it still got the top score in
most areas). Of the others JOnAS slightly edged out OpenEJB, but they really aren’t
close, because their strengths are in different areas.

How about Websphere? How does it compare to JBoss? It has lots more
connectivity to legacy platforms, works with IBM tools people are familiar
with, and leverages IBM’s customer base. It seems that if those aren’t key
areas, Websphere doesn’t beat JBoss by much at all.

Web Container. This is the HTTP stack. Choices are Apache,
Tomcat, and Jetty. Tomcat started as an augmentation of JServ, but
soon they added web serving directly to Tomcat. The web server became good,
but you’re still better using Apache for serving static pages. Clustering
is appearing.

Jetty works for JBoss.

Apache is the biggest name in web servers, running more than 60% of the
world’s web servers. Very well supported in every way. Apache needs to be
compared not to Jetty, but to commercial web servers (not IIS; ones that
people spend money on). For example, why does eBay use Zeus web server (at
$1700/CPU)? It’s faster and more scapable than Apache, and can still use
Tomcat for servlets and JSP. It’s got great management and maintenance
tools, and top quality commercial support.

We’re way over time, so there’s no time to discuss odds and ends.


Blog at

%d bloggers like this: