Search This Blog

Wednesday, February 6, 2008

Is Tomcat an Application Server?

"In this article I tackle the question of whether Tomcat is an
application server. I start by explaining the distinctions between app
servers, Web servers, and Java EE containers, and then look at some
scenarios where a Web server like Tomcat could be used appropriately as
an app server. I show a scaled architecture, starting with the sort of
lightweight implementation where Tomcat shines, and concluding with a
complex service-oriented architecture, where you would be better off
with a full-fledged Java EE application server... Apache Tomcat can be
used as an application server, especially for less complex Java EE Web
applications. According to some figures, Tomcat is the Web/application
server environment most used by Java developers. Tomcat's popularity is
due to its ease of use and support for many features considered to be
standard in a Java Web application environment, including WAR file
deployment, JNDI resources, JDBC data sources, JSP support, session
replication, virtual hosting support, clustering support, and JMX-based
management and monitoring. Tomcat is also a favorite for Java enterprise
development due to the fact that its runtime performance as a standalone
server is very competitive. With Tomcat version 6, some new features
have been added including asynchronous HTTP request handling via Comet,
thread pool sharing, non-blocking connectors, enhanced JMX management
and monitoring, Servlet 2.5, and JSP 2.1. Even with these new features,
however, Tomcat does not support the entire Java EE stack. Where Tomcat
and other Web servers fall short is in the area of features such as
distributed transactions, EJBs, and JMS. Applications requiring support
for these components are usually more at home in with a Java EE
application server such as JBoss, Geronimo, WebLogic, WebSphere, or
Glassfish. Many Java EE application servers actually use Tomcat as
their Web container.

No comments: