EJB Free and Open Source Tools Summaryby Emmanuel Proulx
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.
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
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 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 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.
For more information, see the official JOnAS web site.
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.
Pages: 1, 2