Blogging Roller
While rollerweblogger.org is down, I'll be blogging here



Subscribe to "Blogging Roller" in Radio UserLand.

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.
 

 

Tomcat is not crap

I've been thinking some more about the Is Tomcat Crap? discussion.  Mike's reasons for saying Tomcat is crap come down to two points: 1) Tomcat performance in one set of benchmarks is very poor and 2) Tomcat's developer tools and speed of development is poor.  First let me address performance:

  • In many applications, the performance of the Servlet engine is not the bottle-neck. Most of the time, the Servlet engine is waiting on some database or ERP operation to complete.
  • The performance of Tomcat is going to be greatly improved in the Tomcat 4.1 release which adds the new Coyote HTTP connector and the newly rewritten Jasper JSP engine.  Jetty will also benefit from the new Tomcat, after all it uses Tomcat's Jasper JSP engine too.
  • Personally, I've always thought that Tomcat is fast enough (except on my old 300Mhz Linux box).
  • To paraphrase Mike: benchmarks suck, anybody can make one. 

Now, on to developer productivity. Tomcat is not an Enterprise Java Development product; it is just a Servlet engine. So, I do not really think you can criticize it for not including sufficient development tools. So, instead we should talk about what Servlet engine features can contribute to developer productivity. I think this boils down to these items:

Support a fast edit-deploy-debug loop
It should be really easy to deploy a new webapp and even easier to redeploy a new version of that webapp. You should be able to deploy and redeploy a simple webapp (with no database connections) without changing configs (in a text editor or in an admin GUI) and without restarting any JavaVMs. This should be true even if the server is running distributed with multiple background servers running behind a foreground web server.

Make it really easy to zoom in on errors
It should be really easy to find server and application error messages without having to grep around the file system. The server should include a log viewer and searcher that can combine logs from multiple distributed background servers, search through logs, and filter logs.

Make it really easy to configure the server
It should be really easy to configure the server, even if you are doing a distributed install on multiple background servers running behind a foreground web server. All configuration should be possible through a GUI-based installer and a GUI-based admin tool. You should not have to hand edit config files or startup scripts to change VM settings, classpaths, etc. -- that becomes a real pain when you have to do it on every background server (imagine Telnetting into each of your 20 background servers and editing configs and startup scripts on each).

None of the current crop of servers really come close to supporting all of these things. From what I've seen of Mike's favorites Orion, Resin, and Jetty; they are in about the same boat (or maybe I should say U-Boat) as Tomcat. 

The Tomcat developers deserve our support and our thanks. They are doing a great job.  I've seen Tomcat improve by leaps and bounds over the last year and it will continue to improve - I do not doubt that one bit.

I welcome any comments, corrections, or complements about this write-up.  It is based on my own admittedly limited knowledge of the Servlet server world.  Click here to email me.


Click here to visit the Radio UserLand website. © Copyright 2002 David M Johnson.
Last update: 8/20/2002; 12:07:24 AM.
This theme is based on the SoundWaves (blue) Manila theme.