Is Apache Tomcat an Application Server?

posted by avanabs on June 9, 2010 09:22 PM

In a word, Yes. Tomcat is an "Application Server" for certain types of applications, including a large percentage of the applications being developed today. The answer depends, of course, on your definition of “Application Server”. It also depends on whether you think Tomcat is limited to the Apache Tomcat Project, or whether Tomcat also includes all the add-ons and plug-ins that have been made available through open source or commercially.

In any case, I assert that Tomcat is indeed an Application Server, all by itself. Tomcat becomes a much richer Application Server as you modularly (the only sane approach, IMHO) add functionality as required by your specific application.

So, what’s an “Application Server”?

I frequently hear the questions “What’s an application server?, “Is (or isn’t) XYZ an application server?”, and “Do I really need an application server?”. These questions also show up in various internet FAQ’s, blogs, etc. Some of the resulting discussions are almost hilarious, with firmly held beliefs sometimes swamping rational thought and one recent discussion at a major client bordered on open warfare. I too have some opinions, though perhaps not as vehemently held, based on years building applications across many architectures and technologies.

Initially “application servers” were the hardware and operating system for running application code in a two tier environment. The other server was the database server, typically running on another machine. Later on, as web applications evolved, the user interface moved to the client machine, the business logic stayed on the “application server”, and the database remained on its own server. Later yet, Java application servers were introduced which are based on the Java™ 2 Platform, Enterprise Edition (J2EE™). J2EE typically uses a multi-tier distributed model. This model generally includes a Client Tier, a Middle Tier, and a Data Tier. The Client Tier consists of one or more applications and/or browsers. The J2EE Platform is in the Middle Tier and consists of at least a Web Server, Servlet engine, and an EJB lots and lots of other "stuff". (For more information if you need a separate Web Server, see Mark Thomas' article on Myth or truth: One should always use Apache httpd in front of Apache Tomcat to improve performance?) The servers are also called "containers". There can be, and often are, additional sub-tiers in the middle tier, particularly in today's service architectures. The Data Tier has existing applications providing data services and/or databases.

To be clear, application servers are definitely NOT required to build sophisticated applications. In the past, I’ve coded TCP/IP and a FTP-like service directly into an electronic publishing application, for example, and I have re-invented data access/caching too many times over the years. Also, sophisticated frameworks like Spring provide rich JAVA application services, but they do not require a JEE application server to function. All that said, I definitely do not want to have to re-create those services ever again and in my wildest nightmares wouldn’t contemplate developing them from scratch myself. Application servers absolutely do make development easier, and far more productive, when building sophisticated application software. Even extremely powerful frameworks like Spring can benefit from the integrated services that an application server provides, so “Application Servers” will be with us for the foreseeable future.

There are many definitions (a Google search returns almost a million references) for “Application Server” floating around the industry; in all too many cases these are promulgated by vendor marketing departments with the primary objective being the assertion that “we are and they aren’t”. So, what do we think of when we talk about an "Application Server"?

Common Characteristics of an Application Server

  • Fits between the OS (or JVM) layer and the application layer…e.g. it’s “middleware” or a "framework"
  • Provides “services” (sometimes called "components") to the application, eliminating the need for the application developer to create or attempt to integrate and manage these (often complex) services from scratch
  • Services are invoked (implicitly or explicitly ) by the application as needed, rather than being coded into the application
  • Supports multiple applications simultaneously
  • Typically, but not always, includes an administrative/configuration function for managing both the environment and its applications

Thus, an application server is the code (also called a “framework” or a “container”) that sits between the OS and the application and provides a suite of services for the application (except with Microsoft, of course, where services are embedded in the OS and into the IDE’s). An “application server” is not necessarily a “JEE Application Server”, vendor marketing not withstanding, although many people do think they are synonymous.

For our purposes, we are specifically focusing on the world of JAVA, although the most widely used “application server” in the world is arguably Microsoft Windows, which provides many application services beyond the typical OS, coupled with any of the Microsoft Visual IDE’s. The big boys in the JAVA/JEE server space were BEA (now gone…sigh, acquired by Oracle), IBM, Oracle, SUN (also now gone, acquired by Oracle), and more recently jBoss (acquired by RedHat), Geronimo, and the like. The other big boy in JAVA applications servers, at least for the foreseeable future, is Tomcat, which offers many technological and business advantages over the commercial JEE Application Servers, as well as having some limitations.

How Much Application Server is Enough?

Today’s commercial JEE servers provide massive functional overkill for most applications, leading to needless cost and complexity. This is because the JEE application server vendors (and indeed the JEE specification itself) were being driven over a period of years by the best/most demanding customers to provide products that did absolutely everything for everybody. Commercial application servers also vary considerably in the range and quality of the services they offer to the IT function, a portion of which of which are based on “standards” (JEE, CORBA, etc).

These application servers are highly sophisticated, feature rich, and very expensive/complex. Additionally, much of the functionality in these products is outside of the JEE specifications, thus making each of them proprietary to some degree and particularly so in the areas of administration. Other JEE application servers, such as jBoss, SUN, and Geronimo, also meet the minimum of the JEE standard, but provide a much less broad suite of application services and some are notably lacking in operations/management tooling.

JEE Application Servers are widely used (some studies show over 80-90%) for the development of web and web services applications. In these, the application server’s services act as a set of components accessible to the software developer through an API. The services/components are usually executed in the same machine where the web server is running, and their main job is to support the construction of dynamic pages and deliver rich GUI, although increasingly service oriented architectures are being utilized to partition the business logic across multiple instances of lighter weight servers, frequently isolating web page creation from the underlying business logic.

Without doubt, the most widely utilized Java application server is Apache Tomcat (yes, Tomcat is an “application server”), which for many years was the reference implementation of the Java servlet specification, till SUN pulled it back. While Tomcat doesn’t offer all of the services of a commercial JEE Application Server, it includes the most commonly used services and it supports “plug-ins” and “add-ons” to enable enhancing Tomcat with specific services required by your application. The benefit of Tomcat’s architecture is that you use what you need, and leave out what you don’t. jBoss also was a lean and mean architecture originally, with the ability to leave out what you didn’t want, but sadly under RedHat it’s adopted the “mega-blob” approach of the other JEE vendors and it has become increasingly difficult to separate services from the blob.

The Apache Tomcat community continues to develop and support Tomcat, with regular releases that add sophisticated functionality, and improve security/stability, while maintaining 100% standard compliance and high reliability/performance. The Tomcat community has done a very good job of maintaining the focus, thus far avoiding the tendency to create a “mega-blob” application server like the commercial vendors did. It will be interesting to see what happens to Tomcat as multiple vendors start to create and deliver commercialized versions of Tomcat. Hopefully the community will retain their focus…they have done a good job so far, even while Tomcat became embedded in many commercial products, including several JEE Application Servers.

So, what are the quick answers to the FAQ I posed earlier?

What’s an Application Server? An Application Server provides services and infrastructure for developing, deploying, and running applications. There are many different application servers available today and, with sophisticated application frameworks, the line between the IDE and the Application Server is blurring. JEE servers are still widely used, while Tomcat and various JAVA frameworks are being adopted for many (most!) new applications and architectures.

Isn’t Tomcat an Application Server? Yes, it is, and many of today’s applications (and virtually all “web services”) can be built on top of Tomcat with pluggable services and add-ons. Aside from administration, Tomcat is often a much better choice, both technically and for TCO, to build today’s development and deployment architectures than yesterday’s “mega-blob” JEE servers. By adding administrative services, available from vendors like VMware (Spring), MuleSoft, etc, IT operations requirements can also be met…sometimes better than by the JEE vendors.

Do I really need an application server? No you don’t, but you almost certainly want one unless you are programming for a “device” (router, cell phone, PDA, etc) or you have a professional death wish. This is because most of today’s applications need a range of services and it’s very very costly and very very time consuming to re-invent these services each time. The more important question should be “which Application Server best meets the requirements of my application?”

In many (perhaps most) situations, the answer is likely to be Tomcat ++, where the ++ is some combination of the required plug-in/add-on services and a commercial management framework. You can do without, and/or do it yourself, but the advantages of leveraging sophisticated components which are available at bargain costs generally outweigh other considerations.

Author's note: As readers of my blogs already know, I’m NOT a big fan of the major commercial JEE Application Servers for most applications, even after using (and developing one of) them for many years. I believe that both JEE and JEE Application Servers started out as a wonderful vision, but lost their way as they evolved into mega-blobs that try to do everything for everybody. So, take this post with a grain of salt, depending on your particular prejudices and/or situation.

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 (


Nice one!

This kind of post is always good to read, to clarify ours thoughts about App Servers.

I had this kind of discussion in my office, at take ours to us to get in a conclusion. Windows App Server, as Microsoft called, is always in ours discussion if IIS is an App Server or "IIS + COM" is the App Server or if only the hole Windows Server is the App Server.

Congrats for your post,

Willian Leite

Willian Leite


jboss bloated?

JBoss is not bloated, there are three versions of the appserver starting from the shrink-wrapped one called JBoss Web Server, and building up the more complex Web Platform and Application Platform.

GlassFish offers a great balance

GlassFish 3 and Java EE 6 deliver good balance as a lightweight offering with production manageability - all in open source. Start with the 29MB Web Profile download (or download just the kernel), and add the (OSGi) modules you need to deliver on application functionality. Only the modules required to service running applications are actually started, which is why GlassFish 3 starts in seconds. The nice thing about the combination of GlassFish and Java EE 6 is that there is less reason to go out to a multitude of third party frameworks - and the multitude of vendors that support them - because the Java EE platform is inherently feature rich.

application as server is a useful feature

thanks for your post. I think that Application as server is a very helpful thing - if we can run any program as service we can get a lot of benefits


This is such an incredible asset, to the point that you are giving and you give it away for nothing. I cherish seeing blog that comprehend the benefit of giving a quality asset to free. Loftplan

Apache TomEE

Apache Tomcat provides the foundation for Apache TomEE, which turns Tomcat into an Oracle Web Profile Certified Application Server.

replica watches

In fact, they Purchase the Aboriginal Backpack to Manufacture the Exact Replica Handbags with Absolute Arrangement and Linings and this way they accumulate Louis Vuitton Imitation Handbags. Their handbags are identical in every way with originals. Those are the breitling replica finest replica superior accessible on bazaar , they fabricated them to perfection.Those replica handbags accept the aforementioned abstracts as the artist handbags. Their Louis Vuitton Replicas handbags accept the color, the attending and are absolutely like the replica watches originals. Their abundance is abounding of the best replica Louis Vuitton purse and handbags selections as able-bodied as a amount of added artist purses from alone the best and a lot of accepted designers.Louis Vuitton is the allegorical abode of appearance accoutrements and added accessories, back the year 1854. It is every individual girl's dream to be a appreciative buyer of the Louis Vuitton backpack and purses. Fabricated up of the rolex replica signature cipher canvas, these accoutrements are anxiously and acutely handmade till date so that it surpasses all the marks of quality. Talking of the baggage bags- craftsmen band up leathers and canvases calm and tap tiny nails one by one accepting the five- letter solid aces affidavit assumption locks with handmade keys. The hublot replica frames are aswell fabricated of 30-year old poplar that is broiled for at atomic four years. Talking about the superior of the Louis Vuitton will charge a complete book. But, as said by abundant people- aggregate comes for a price. So, assuredly the Louis Vuitton purses and handbags are no exceptions. To advance its name and its position of the "legendary" tag the bulk bracket is kept so top that, alone accountable few, from all locations of the apple can allow these bags. So, cerebration about the desires of millions others, abounding replica bag manufacturers accept sprung up in contempo times- who not alone carbon the designs and colours but even advance its qualities the best.Verify that your Breitling alarm has an arresting logo on its dial. If the louis vuitton replica logo is formed or corrective on the watch, again it is a affected as Breitling does not cast its watches in this manner. On the arresting logo, analysis to accomplish abiding that the breadth amid the ballast and surrounding wings is abounding in as Breitling alone produces its logo in this fashion. Examine the punch of the carefully and accomplish agenda of the sub-dials' functions. Chronographs, by definition, accept abate dials set in the beyond punch itself. On a Breitling, these sub-dials are acclimated alone for alarm functions. If the watch uses these sub-dials for agenda functions, it is not an accurate Breitling.


these sub-dials are acclimated alone Software avchd converter convert avchd video files to avi, mp4, wmv, mov mod converter free download to convert HD camcorder files. mts to avi mp4 mov mkv iMovie, FCP/FCE with mts converter, so to convert mts files for your PC and mobiles. it is not an accurate Breitling.

jackman10 sbobet asia

Thanks for the blog loaded

Thanks for the blog loaded with so many information. Stopping by your blog helped me to get what I was looking for. Hospitality Talent Manager


It seems that the latest Apache Tomcat causes confusion among many. Like most of my colleagues, I am still not sure whether Apache Tomcat is an Application Serve and a web based service that aims at bringing productivity suits accessible to the folks. points for cash

Tomcat Question

How do hosting providers offer dedicated JVMs in shared environments (example: all on port 80? Is it a mix out of web and application server then?

Spot on with this write-up, I

Spot on with this write-up, I truly feel this amazing site needs far more attention. I’ll probably be back again to read more, thanks for the info!
Mortgage Broker Calgary

This is a terrific web site,

This is a terrific web site, might you be interested in doing an interview about just how you developed it? If so e-mail me!
Edmonton Mortgage Broker
Life Insurance Vancouver
Life Insurance Calgary

Design, be it web or print,

Design, be it web or print, is about interaction. Without the necessary style information how could the developers do an efficient job interacting with your potential customers website design in roanoke va.

Real questions

Real questions for Microsoft pass4sure 100-101 Windows Server 2008 Active Directory, Configuring Exam from pass4sure with unlimited access of 2500+ Exams for Life time.

Testinside Practice Exams for Cisco

Harian Good!

Most of the times the terms Web Server and Application server are used interchangeably. Can you please tell me why have you termed Apache/Tomcat as Application Serve.


I hope you attract someone who appreciates you in your entirety. I hope you're able to dodge those that see you as a temporary blanket. GoaPackages

This article explains the

This article explains the question relatively well. It depends on the use-case, Tomcat can be both an application server and a web server.


Amazing put up i must assert not to mention thanks a lot for ones advice. Coaching is definitely a sticky topic area. But, continues associated with the prominent articles our instance. I just understand a put up not to mention await further. joint pain relief codes review


I would really prefer so as to add one other webpage into the endorsed styles everyone provided a while back. Anthony Dohrmann


Looking through a person's blogs and forums would make people prefer to publish progressively more. I did so your we appeared to be really happy by using. Them aren't executed to the place nonetheless it’s striking. I'll give you actually the hyperlinks so you're able to look at them to do allow me to explain imagination. sifilis menyerang pria


Latest collection of Eid Mubarak 2016 Wishes, Greetings, Messages, Sms, Images and more for sharing with your friends, family, lover on facebook & whatsapp. eid mubarak wishes


That thought of at bay your blog due to the fact About about over heard plenty of regarding one's articles or blog posts. Nicole Kidman

L'EURL est une SARL (société à responsabilité limitée)

Many thanks for this brilliant post! Many points have extremely useful. Hopefully you'll continue sharing your knowledge around.
creation sarl

Comportement du Chier

Nice share of information here. I really find this information really helpful for me. Thanks a lot, dude, for putting up this vital information on the internet for everybody to use.
kong chien


A web logs are actually amazing! You possess presented everybody that i are able to be able to write compatible with I just ever previously concept I was able to. my company

Prodaja Aerobic Life, esencijalni stabilizovani kiseonik 70 ml

Thanks for providing recent updates regarding the concern, I look forward to read more


Your colleagues are generally raging on the subject of a items also now I just discover why. drug addiction rehab centers


Very good points you wrote here..Great stuff...I think you've made some truly interesting points.Keep up the good work.
solution manual test bank


Nice blog and absolutely outstanding. You can do something much better but i still say this perfect.Keep trying for the best.


I’m a sucker for most of the articles or blog posts, I absolutely savored, I would really prefer more data regarding this, given that it's fine., Kudos meant for posting.

buy twitter followers On this

buy twitter followers On this page, you'll see my profile, please read this information. youtube likes


I experience considerable difficulties my contemplations on substance, however I truly felt I ought to here. Your article is truly awesome. I like the way you composed this data. Cheap tyres london


Looking through a person's blogs and forums would make people prefer to publish progressively more. I did so your we appeared to be really happy by using. Them aren't executed to the place nonetheless it’s striking. I'll give you actually the hyperlinks so you're able to look at them to do allow me to explain imagination. limousine service atlanta


Positive site, where did u come up with the information on this posting? I'm pleased I discovered it though, ill be checking back soon to find out what additional posts you include.
Car Insurance


This is very educational content and written well for a change. It's nice to see that some people still understand how to write a quality post!


Great weblog combined with the superb high quality things as well as I’m certain this is significantly useful.

Extraordinary overview, I'm

Extraordinary overview, I'm certain you're getting an awesome reaction. pest


Thanks for sharing this quality information with us. I really enjoyed reading. Will surely going to share this URL with my friends.


Remarkable ınternet site you've gotten right, very much cold knowledge!.. best font for college papers


Your website items set aside everybody once more. I just what food was in ominous desire from a website read through undoubtedly one of a web logs whereby most people advocated some of these. The sole I just stumbled upon at is really solid. Regards!

Good post but I was wondering

Good post but I was wondering if you could write a litter more on this subject? I’d be very thankful if you could elaborate a little bit further. Appreciate it!
Tea Tree Oil for Hair


This article gives the light in which we can observe the reality. This is very nice one and gives in depth information. Thanks for this nice article.
אופניים חשמליות


I wanted to thank you for this excellent read!! I definitely loved every little bit of it. I have you bookmarked your site to check out the new stuff you post.
game info


Nice post. I was checking constantly this blog and I’m impressed! Extremely useful info specially the last part I care for such information a lot. I was seeking this certain info for a long time. Thank you and good luck.

it's really nice and mean full. it's really cool blog. Linking is very useful have really helped lots of people who visit the blog and provide them useful information.
Bedsheets in Pakistan


My own close friends are usually crazy about your website now My partner and i realize why. voyance telephone


Verifying almost any blog site could make some others simply just wish to think of more. Used to do an amazing i always was initially splendid information by using. The software program possibly done with the collection however it’s remarkable. When i typically dispatch people. apostille san antonio


I actually love easily looking through your complete blogs and forums.

Post new comment

This question is for testing whether you are a human visitor and to prevent automated spam submissions.