TomcatExpert

Definition of Apache Tomcat

I am a newbie in Tomcat.

In your about page you state as, "Apache Tomcat is the most popular java application server in the world." In other places I read it as servlet container, java http web server and so on.

We have a lot of different deffinitions, it is confusing.Can you describe it in more details, what TOMCAT exactly is? And can you describe internal components/archtecture of Tomcat and their interaction and general interaction with user.

Thanks!

asked by xemox

question

In my consulting practice, I see alot of confusion about this question, and definitely not just from "newbies". Much of this is due to honest differences of opinion regarding "what's an app server", and some of it is due to differences in use cases and industry jargon. Also, there is the "marketing" component", where vested interests seek to position their product as an "app server" and their competitors (with virtually identical technologies) product as some thing less.

So, what's Tomcat? The reality is that it's many differnet things to many people, one of which is that's certainly the most widely deployed JAVA "Application Server". That said, it's NOT a direct competitor/replacement to the likes of WebLogic, WebSphere, etc, but for a huge percentage of the production JAVA applications in the world, Tomcat...perhaps augmented by one or more plug-in/add-on services...provides all the application infrastructure that's needed. Tomcat is:


Note: Tomcat should not be confused with the Apache web server, which is a C implementation of an HTTP web server; these two web servers are not bundled together.

It happens that this question is very timely, because I've been working on a blog series (first one should be out this week) about the trend to build (or migrate) applications onto Tomcat instead of the JEE Application Servers of the past. Those blogs will include much more detail and specifically discuss the questions regarding Tomcat vs JEE, what the differences are, etc. You can also get good whitepapers on the topic from some of the vendors who are basing hybrid products on Tomcat, such as SpringSource and MuleSoft. Finally, there are some excellent reference books that start with basic concepts and take you all the way thru the programming models and to configuration/deployment details. One of my favorites for beginners is "Tomcat: The Definitive Guide, by Jason Brittain and Ian F. Darwin and published by O'Reilly

So, Tomcat is indeed an "application server", based on many accepted definitions of app server. It is also a "servlet container". It is also a "web server". Tomcat is an excellent runtime environment for frameworks such as Spring, Groovy, etc, and it is also a core technology in many commercial products that layer application services and management tools around it to simplify integration and deployment.

 

answer

answered by avanabs on December 14, 2011 02:37 PM

Andy has recently decided to make the jump from individual consulting to join the Spring Source team. He will continue to be working with major clients to assist them with IT architecture evolution, now as a member of a large and growing organization. His first project will be leveraging Tomcat, Spring, and a Tomcat based data grid/cache called GemFire. He’s looking forward to sharing the lessons learned with the tomcatexpert community. Andy has been architecting, designing, and building enterprise infrastructure and applications software for most of his career. He’s been responsible for BEA’s “Blended Source” initiative, combining the best of Open Source (including both Tomcat and Spring) with WebLogic, BEA’s WebLogic Enterprise Security product family, MEI Software’s financial systems, Netegrity’s SiteMinder security product, Camex’s electronic publishing systems, mainframe applications for Bell Telephone, and many others. During that time his hands on technology experience has ranged from octal coding into neon lighted switches all the way through JAVA and beyond, including many generations of “the best and final thing we will ever need”, and he looks forward to working on the even better things coming in the future. He was involved in the early days of Open Source software as a contributor to EMACS and refocused on Open Source during his tenure as Director of Product Management with BEA Systems, combined with a fascination for the rapidly evolving application deployment architectures and technologies driving today’s development. Andy has provided architecture and technology guidance for both vendors and IT organizations and he shares what he is learning through consulting services and through his web site, Enterprise Software Trends (www.estrends.com).

Comments

Post new comment

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.