The Apache Tomcat server has achieved the highest penetration of any Java server owing in some part to its light weight and simplicity. The server itself is only 6 megabytes installed compared to others that are as large as 600-megabytes. A recent Evans Data Research Survey found that 68% of all organizations used Tomcat compared to 43% for IBM Websphere, 38% for JBoss, and 25% for Oracle Weblogic. But its use has been limited owing to very meager management capabilities. This could change with the advent of SpringSource tc Server, a proprietary application server built on top of the Tomcat core.
The philosophy behind Tomcat is that programmers actually need less features rather than more, argues Filip Hanik, Senior Software Engineer for SpringSource, "A key differentiation between Tomcat and other Java application servers, is that Tomcat is very light weight. One side effect mentioned was the download size, however the most important factor is that there are less moving parts within the server itself … leading to less things that can go wrong. " The biggest challenge for Tomcat is that it lacked enterprise class management and deployment features. Organizations had to code their management tools or configure other tools to support the Java applications. Considerable effort was also required when trying to deploy Tomcat across a large number of servers. One approach to this problem is to bring a scalable, agent based management system to Tomcat in which an agent on each server gathers information about operations and reports back to a single management server. This approach, one supported by tc Server, makes it easier for operations teams to change configurations on servers throughout the organization and to track their status. This kind of approach also makes it easier for tc Server to provide a centralized audit trail of all of the changes made to applications throughout the organization. In a Webinar on the tc Server, Colin Sampaleanu, Director of Technical Sales at SpringSource said the comprehensiveness of the management architecture helps to gather operational data to make the support process more effective. He noted, "Tc Server gives you more visibility into a system, this means that you should have a faster response time with zero or less roundtrips to get it fixed."
Sidebar: What tc Server Adds to Tomcat:
Jim Jagielski, Chief Open Source Officer and Principal Software Engineer at SpringSource wrote on his blog that tc Server adds the following features to Tomcat:
- List applications running in a distributed collection of server instances
- Target, deploy and undeploy applications to distributed server instance
- Start, stop and reload applications running for distributed server instances
- Control Spring web MVC application parameters like caching, JSP behavior, and serving of static content
Server configuration and management
- Remote configuration control for server instances
- Configure JDBC Data Sources and connection pools
- Define virtual hosts, access logs and integration with web servers
- Configure JVM server start parameters like Java heap size and garbage collection characteristics
- Define server groups (tc Server or Tomcat instances)
Advanced server diagnostics
- Application thread lock detection provides warnings when threads compete for restricted resources in a way that would compromise application integrity
- Configurable automatic and on-demand thread and heap dumping for failure and exception analysis
- Thread to URL association for faster diagnosis when analyzing problems with request processing
There are also features to do administrative tasks from the command line scripting environment, which can help to automate tasks. It also adds support for a high-concurrency connection pool that is more efficient and scalable than Tomcat's traditional DBCP.