Apache Tomcat is the most used application server by the Java community, according to a recent study conducted by BZ Research. The study found that Tomcat is used by 64 percent of corporate Java developers. With its support for clustering, session replication, and JMX based server monitoring and management, Tomcat container has gained more popularity and support by the developers and system administrators, compared to other application servers. IBM WebSphere and RedHat JBoss application servers, which came second and third in the research study.
Alex Handy wrote about this trend in an article in Software Development Times magazine saying that Java developers are looking for simplicity when it comes to choosing a J2EE container to host their applications on.
Mark Brewer at Covalent, an open source support company, said that Tomcat's success came about with the developers starting out with a stand-alone Tomcat server on their desktop and promoting their web applications to higher environments where WebSphere or JBoss application servers are used to host the applications. Since both of these servers bundle Tomcat as the servlet container, much of the code developers tested out in the local Tomcat server could be moved to the production environment without any changes in the code or configuration files. Another Java EE 5 compliant application server Apache Geronimo also uses Tomcat as its servlet container.
The sweet spot for Tomcat is where most of the enterprise applications don't really need the J2EE components such as EJBs, Java Messaging (JMS), or distributed transactions (XA) offered by a full-blown commercial J2EE application server. All they really need is a Java 5-compliant Web container with clustering support. Tomcat development team introduced clustering and session replication features in version 5.0 back in 2004, which are continued in the latest version (6.0). They have also enhanced the server monitoring support based on JMX technology. With clustering in the mix, many of the companies including financial organizations such as Morgan Stanley are moving their Java application portfolios to Tomcat platform. Terracotta, the vc-backed open source distributed clustering solution also offers out of the box session clustering for Tomcat.
At the recent QCon conference track on Architectures you've always wondered about, most of the speakers indicated that they are not using EJBs or XA transactions when architecting their enterprise applications.
Michael Goulde at Forrester Research group said that Tomcat is probably the third most used open source component, after the Apache Web server and MySQL database; he also said that it's not just Web developers who are interested in using Tomcat but SOA developers are also showing the interest. The integration of SOA tools such as ActiveMQ and Apache CXF with Tomcat container makes them good candidates to consider in an enterprise SOA stack.
Tomcat version 6 has introduced some new features:
- Comet support which allows asynchronous HTTP request processing so a servlet can process the input as well as write data back to the client asynchronously.
- Executor which allows the web administrators to configure a shared Executor element that the catalina connectors can use to share one or more thread pools. In the previous versions, there was a separate thread pool for each connector. Executor element is defined in the server.xml configuration file.
- NIO connector allows to configure a non blocking Java connector (called Http11NioProtocol) in addition to the traditional HTTP and AJP connectors used in Tomcat.
Tomcat 6 supports Servlet 2.5 and JSP 2.1 specifications and is available under Apache License Version 2.0. The developers can download the latest version 6.0.14 as well as subscribe for tomcat-users mailing list to participate in the user discussions.
BEA WebLogic, Oracle Application Server, Sun Java Enterprise Server, Apache Geronimo, and SAP NetWeaver are the other application servers that were included in BZ Research study.
Community comments
Jetty out of the picture?
by Toby Jee,
Re: Jetty out of the picture?
by Johannes Brodwall,
Re: Jetty out of the picture?
by Greg Wilkins,
Re: Jetty out of the picture?
by Thom Nichols,
Tomcat is a web container
by Hussein Baghdadi,
Re: Tomcat is a web container
by James Strachan,
Re: Tomcat is a web container
by Johannes Brodwall,
Re: Tomcat is a web container
by chatchai chailuecha,
Re: Tomcat is a web container
by Geoffrey Wiseman,
Jetty out of the picture?
by Toby Jee,
Your message is awaiting moderation. Thank you for participating in the discussion.
Boy... it seems that Jetty was pushed out of the picture totally.
Tomcat is a web container
by Hussein Baghdadi,
Your message is awaiting moderation. Thank you for participating in the discussion.
>> Apache Tomcat is the most used application server
Tomcat isn't an application server.
Re: Tomcat is a web container
by James Strachan,
Your message is awaiting moderation. Thank you for participating in the discussion.
Why not?
James
Iona
Open Source Integration
Re: Jetty out of the picture?
by Johannes Brodwall,
Your message is awaiting moderation. Thank you for participating in the discussion.
My thought exactly. Netcraft clocks in Jetty now at over 80% of Tomcat in popularity. (194k versus 162k) Some time that little wonder got some more love.
Re: Tomcat is a web container
by Johannes Brodwall,
Your message is awaiting moderation. Thank you for participating in the discussion.
Or, if not, why is that a problem?
Re: Tomcat is a web container
by chatchai chailuecha,
Your message is awaiting moderation. Thank you for participating in the discussion.
I don't know what the exact meaning of application server is but I see all products claiming themselves application server have both web container and EJB container.
Tomcat only has web container.
Re: Tomcat is a web container
by Geoffrey Wiseman,
Your message is awaiting moderation. Thank you for participating in the discussion.
I wouldn't hesitate to call Tomcat an application server, personally: I don't see EJB as a pre-requisite. I mightn't call it a "J2EE Server", since that tends to imply "J2EE Certified", which, AFAIK, requires EJB support.
Re: Jetty out of the picture?
by Thom Nichols,
Your message is awaiting moderation. Thank you for participating in the discussion.
Although this doesn't surprise me, it seems most developers use Tomcat simply because they haven't bothered to try out any of the alternatives.
Granted, Tomcat is dead simple to get running, but I decided to try Jetty too. I have to say Jetty wins hands down in a development environment because of its hot-reloading features, simpler configuration and better integration with IDEs, Maven, etc.
Re: Jetty out of the picture?
by Greg Wilkins,
Your message is awaiting moderation. Thank you for participating in the discussion.
Thebreakdown that Johannes gave was for .com domains. Tomcat has a bit more market share of global domains, but Jetty has around 60% of the market share of Tomcat on netcraft: survey.netcraft.com/Reports/200711/
However, netcraft does not see embedded servers or those that are hidden behind firewalls or have ID's turned off. If embedded uses were included (eg Jetty is bundled with eclipse 3.3 as the help server and HTTP service in equinox) then the market share figures would be much more flattering to Jetty I think.