Home | How to make GlassFish's embedded Derby listen on a socket >>

Java Enterprise Edition 5

About a month ago, I was finally persuaded to step up from plain Tomcat to a full Java EE application server. I have previously avoided J2EE except for the servlet and mail functionality, due to the rather high initial effort involved and the large footprint (real or just perceived) of the enterprise-class platforms. But things have changed a lot since 2003, and EJBs are not as frightening as they were back in the old days. In order to get started quickly, the platform choices were initially narrowed down to Geronimo and GlassFish, since these two were EE5-certified, free software, and had everything bundled. I immediately felt more comfortable using GlassFish: the command-line tools were easier to use, deployment and redeployment of all but the most trivial things was easier and more intuitive, and it was easier to figure out how to add third-party drivers (e.g. MySQL). Geronimo was a little bit easier to install and faster to start, but the differences were nothing to get excited about. Just for the record: the versions I tried were GlassFish-v2ur2-b04 and Geronimo-tomcat6-javaee5-2.1.3.

I know there are other open-source options such as JBoss, JOnAS, and Resin, but of these only JBoss is EE5-certified at this time, and JBoss failed the initial selection only because the installation bundle contains the Hypersonic SQL database instead of Derby, and I wanted a server with a built-in database that scales well, and Hypersonic doesn't scale as well as Derby. But I'll take a look at JBoss with Derby or MySQL or PostgreSQL later, and write about my impressions in a separate post. This isn't a fair review of all existing application servers anyway, it's just me thinking aloud. So don't hold your breath.

The choice of GlassFish isn't hurt by the fact that GlassFish is the EE5 reference implementation, or that clustering features are supported out of the box. This is important for anyone who can see high volume or high availability as future requirements, because such environments can be simulated easily during the development phase, using GlassFish (or JBoss) on multiple virtual machines running on one or more physical machines using qemu or some other virtualization software. That's a part of my plan anyway. I'll get back to this in a future post.



Add a comment Send a TrackBack