I am founder and Master Developer of Plumbr, memory leaking detection tool. I enjoy solving problems, raising self-awareness and professional pride of developers around me. In my out-of-office time I am bookworm and computer games addict. Nikita is a DZone MVB and is not an employee of DZone and has posted 89 posts at DZone. You can read more from them at their website. View Full User Profile

Most Popular Application Servers

03.18.2013
| 7545 views |
  • submit to reddit
This is the second post in the series where we publish statistical data about the Java installations. The used dataset originates from free Plumbr installations out there totalling 1,024 different environments we have collected during the past six months.

First post in the series analyzed the foundation – on what OS the JVM is run, whether it is a 32 or 62-bit infrastructure and what JVM vendor and version were used. In this post we are going to focus on the application servers used.

It proved to be a bit more challenging task than originally expected – the best shot we had towards the goal was to extract it from the bootstrap classpath. With queries similar to “grep -i tomcat classpath.log”. Which was easy. As opposed to discovering that:

Out of the 1024 samples 92 did not contain a reference to bootstrap classpath at all. Which was our first surprise. Whether they were really ran without any entries to bootstrap classpath or our statistics just do not record all the entries properly – failed to trace the reason. But nevertheless, this left us with 932 data points.

Out of the remaining 932 we were unable to link 256 reports to any of the application servers known to mankind. Before jumping to the conclusion that approx. 27% of the JVMs out there are running client side programs, we tried to dig further

  • 57 seemed to be launched using Maven plugins, which hides the actual runtime from us. But I can bet the vast majority of those are definitely not Swing applications.
  • 11 environments were running on Play Framework, which is not using Java EE containers to run.
  • 6 environments were launched with Scala runtime attached, so I assume these were also actually web applications.
  • 54 had loaded either jgoodies or swing libraries which make them good candidates for being a desktop application
  • 6 were running on Android. Which we don’t even support. If you guys can shed some light on how you managed to launch Plumbr with Android, let us know.
  • And the remaining 122 – we just failed to categorize – they seemed to range from MQ solutions to batch processes to whatnot.

But 676 reports did contain reference to the Java EE container used. And results are visible from the following diagram:

Application Server Marketshare

The winner should not be a surprise to anyone – Apache Tomcat is being used in 43% of the installations. Other places on the podium are a bit more surprising – Jetty coming in second with 23% of the deployments and JBoss third with 16%. The expected result was exactly reversed, but apparently the gears have shifted during the last years.

Next group contains Glassfish, Geronimo and Weblogic with 7, 6 and 3% of the deployment base respectively. Which is also somewhat surprising – having just 20 Weblogic installations and Websphere nowhere in sight at all – the remaining five containers altogether represent less than 2% of the installations. I guess all the pragmatic-lean-KISS-… approach is finally starting to pay off and we are moving towards tools developers actually enjoy.

If you look forward for the next posts in the series focusing on other interesting statistics about the JVM deployment base, subscribe to our Twitter feed and be notified on time.

Published at DZone with permission of Nikita Salnikov-tarnovski, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Luca Cavagnoli replied on Mon, 2013/03/18 - 10:54am

 Tomcat and Jetty aren't even application servers :/

ivo mägi replied on Tue, 2013/03/19 - 2:49am

Indeed Tomcat and Jetty are not officially certified by Oracle. But as far as Wikipedia counts as a source - http://en.wikipedia.org/wiki/Application_server - they are still in the list. And I think they should be - considering that you can pick only the subset of the Java EE specification to implement ...

Chris Haddad replied on Fri, 2014/02/14 - 9:17am

 If you desire to augment your Tomcat environment with integrated user management, monitoring, and clustering, take a look at WSO2 Application Server , which is Tomcat++.  The application server  has a Tomcat core, with additional security, scalability, and availability features.  Also, WSO2 Application Server has server-side JavaScript, API, and services support.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.