EJB Free and Open Source Tools Summary

People often ask me "What's the best platform for J2EE development?"
There's no clear answer for this question. First, the vendors each provide
contradictory facts to prove that their product is the best. Second, each has
its zealots who will tell you all of the good things about one server and bad
things about the others. Third, there are dozens of products available out
there.

The Selection Process

To that question, I always answer: There is not one clear winner. It
all depends ... Then I suggest the following method for selecting a tool:

Decide feature requirements and priorities.

Do your homework, get informed. This article is full of links that may help
you.

Write a comparison matrix with products at the top and features on the
side. Put higher priority items at the top of the matrix.

Don't worry too much! Portability is an important feature of J2EE. If you
change your mind later, you should be able to migrate with a few days'
work.

To help you choose the right application server, here are a few links. Some
products are outdated, though:

One of the top priorities in the matrix should be price.
Today's economy mandates careful investments, and free or open source software
makes perfect sense. Many of these tools offer near-commercial-class stability
(especially in their 2.x versions and above) with good-enough performance--and you can't beat the price! To help those people for whom price is an
important factor, I've reviewed a few free or open source J2EE application
servers that support EJB 2.0.

Categories

With so many products, it's easy to get lost. Foremost, I decided to ignore
products that don't support EJB 2.0. That eliminates two-thirds of the
candidates. Then I decided to separate my reviews into three categories:

Open source J2EE servers

"Free" J2EE servers

Free EJB 2.0 development tools

You will note that I completely left out very popular products, including
Tomcat and Enhydra. These don't have EJB containers, though. They're JSP/servlet servers.

Open Source J2EE Servers

There are a few open source J2EE servers that support EJB 2.0. These
servers are, in no particular order:

JBoss

JBoss is one of the most famous open source servers. It works with most of
the J2EE technologies, including EJB 2.0 with CMP, JMS, JTA, Servlet/JSP, JNDI,
JMX, SOAP, etc. That's a whole alphabet. JBoss uses the LGPL license.

There are two flavors of JBoss 3.0 available. One has its own HTTP server
(JBossWeb), and the other one comes with Tomcat bundled. I looked at JBoss
3.0/JBossWeb, and had no problem installing, running, or configuring it. The
configuration tool that comes with it is not very good, so I had to configure it
manually with text and XML files. The documentation is poor, but it's enough to
get you started.

This sounds too good to be true. Is there a dark side to JBoss? Not really.
But there are a few things you should know:

JBoss is managed by a company called JBoss Group, not by a committee.
There's a community of developers that actively participate in the development
of JBoss, but JBoss Group has the final word.

In theory, JBoss Group make their money with services (support, consulting,
education). I've heard rumors that one day JBoss may not be free anymore. But I
was assured that this is not the case, and I'm convinced.

The product isn't certified as a J2EE application server. The justification
is that applying for this certification is expensive. Plus, I've heard a rumor
that Sun doesn't like JBoss very much.

In short, JBoss is the mother of open source J2EE application servers. For
more information, see the JBoss homepage.

JOnAS

JOnAS is another important player in the open source J2EE server market.
Like JBoss, it was originally an EJB container that was "upgraded" over time
with many other J2EE technologies. It is also available under the LGPL
license. In fact, the story of JOnAS sounds a great deal like that of JBoss.
JOnAS supports EJB 2.0, JMS, JCA, JMX, etc. It doesn't provide Web containment,
but can be used with Tomcat. This product is also bundled with Enhydra to
provide EJB and JMS support.

JOnAS is managed by a group called ObjectWeb. (No, not "WebObjects.")
ObjectWeb also hosts many other open source projects. The bulk of the group's
members work at Bull, so obviously Bull must
help out. Unlike the JBoss Group, Bull's main products are not related to open
source.

JOnAS is somewhat less popular than JBoss. This is partly due to the high
visibility of JBoss. (Better marketing?) I was able to get and install JOnAS
easily. The examples worked fine. The configuration is done through editing
text and XML files.

In short, JOnAS seems to be a good product. It would be better if it were
bundled with Tomcat, and if it had a graphical configuration tool.

OpenEJB

OpenEJB used to be a promising open source EJB container. Officially, it
was "shelved" last year by Intalio, the company that was managing it. OpenEJB
is still in beta state, version 0.9.1. It supports the EJB 1.1 specification,
plus a few EJB 2.0 features.

Why am I talking about a product that was shelved and doesn't fully support
EJB 2.0? Because the project is still alive and well. New versions come out
once in a while. The mailing list receives new messages regularly. The product
is still available for download. If someone wants to contribute and continue
the development, the door is open.

Here's proof: in October 2002, David Blevins, co-founder of the project,
wrote in a mailing-list message:

0.8 through 1.0 will all be EJB 1.1 compliant. OpenEJB 2.0 will be
EJB 2.1 compliant. We already have work in progress on 2.1 compliance.

Another proof: OpenEJB is bundled with WebObjects 5.x to provide standard J2EE services.

OpenEJB has two storefronts:

ExoLab Group, which also manages a handful of other, related open source
projects. ExoLab is composed of a team of elite programmers. The most famous of
them are Richard Monson-Haefel and David Blevins, prolific authors and J2EE
enthusiasts.

SourceForge, which hosts numerous open source projects.

OpenEJB is a member of a family of open source products, all managed by
ExoLab Group, including OpenJMS (a JMS server), OpenORB (a CORBA server), Tyrex
(a transaction server), and Castor (object-to-relational mapping). These can
all be plugged into a Tomcat Web application.