InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Tomcat used by 64% of Java Developers

Posted by Srini Penchikala on Dec 03, 2007

Sections
Development,
Operations & Infrastructure
Topics
Java ,
Web Frameworks ,
Application Servers
Tags
Tomcat

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.

Srini Penchikala currently works as Security Architect and has 17 yrs of experience in software product management.

Jetty out of the picture? by Toby Jee Posted
Re: Jetty out of the picture? by Johannes Brodwall Posted
Re: Jetty out of the picture? by Greg Wilkins Posted
Re: Jetty out of the picture? by Thom Nichols Posted
Tomcat is a web container by Hussein Baghdadi Posted
Re: Tomcat is a web container by James Strachan Posted
Re: Tomcat is a web container by Johannes Brodwall Posted
Re: Tomcat is a web container by chatchai chailuecha Posted
Re: Tomcat is a web container by Geoffrey Wiseman Posted
  1. Back to top

    Jetty out of the picture?

    by Toby Jee

    Boy... it seems that Jetty was pushed out of the picture totally.

  2. Back to top

    Tomcat is a web container

    by Hussein Baghdadi

    >> Apache Tomcat is the most used application server
    Tomcat isn't an application server.

  3. Back to top

    Re: Tomcat is a web container

    by James Strachan

    >> Apache Tomcat is the most used application server
    Tomcat isn't an application server.


    Why not?

    James
    Iona
    Open Source Integration

  4. Back to top

    Re: Jetty out of the picture?

    by Johannes Brodwall

    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.

  5. Back to top

    Re: Tomcat is a web container

    by Johannes Brodwall

    >> Apache Tomcat is the most used application server
    Tomcat isn't an application server.


    Why not?


    Or, if not, why is that a problem?

  6. Back to top

    Re: Tomcat is a web container

    by chatchai chailuecha

    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.

  7. Back to top

    Re: Tomcat is a web container

    by Geoffrey Wiseman

    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.

  8. Back to top

    Re: Jetty out of the picture?

    by Thom Nichols

    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.

  9. Back to top

    Re: Jetty out of the picture?

    by Greg Wilkins

    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.

Educational Content

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.

Beauty Is in the Eye of the Beholder

Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.

Architecting Visa for Massive Scale and Continuous Innovation

John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.

Max Protect: Scalability and Caching at ESPN.com

Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.

The Seven Deadly Sins of Enterprise Agile Adoption

Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.

Questions for an Enterprise Architect

Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?

Wrap Your SQL Head Around Riak MapReduce

Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.