Jevgeni Kabanov has reported the results of a survey on Java EE Containers, focusing specifically on redeploy and restart times. The survey results most prominently feature information about the following Java EE containers:
Jetty
Apache Tomcat
GlassFish
JBoss
Oracle Weblogic
IBM WebSphere
In fact, the containers line up in that order in terms of how much time is spent redeploying (in minutes per hour). That's Chart 6 in the report.
In fact, that ordering was applied in all of the charts that presented the results of container redeploy and restart times. Jetty was always clearly the fastest in terms of restart time. Tomcat and GlassFish were quite close, not much different overall. JBoss was slower, with Oracle WebLogic a bit slower than JBoss, and IBM WebSphere the slowest of all in redeploy times.
So, does this mean that everyone should switch to Jetty? Not exactly! Jevgeni considers the redeploy times to be an indicator of the complexity of the applications that developers are deploying on each container. His interpretation, after presenting his final chart (#9) is:
Jetty is only used in projects that redeploy quickly. This makes all kind of sense, considering that Jetty doesn't even support redeployment and instead has extremely fast container startup.
Apache Tomcat and GlassFish are used in same types of project. Both are posed as fully functional yet lightweight alternatives to the classic heavy application servers. Although Tomcat is much more popular today, GlassFish is growing in popularity in the same market share.
JBoss, Oracle Weblogic and IBM WebSphere compete for pretty much the same market segment. The majority of their projects are large and complex, and the redeploy times reflect that.
More than 1100 people participated in the survey. Though it wasn't a scientific survey, the results are still interesting, and worthy of a look, if you're interested in seeing what others who work with Java EE containers are experiencing.
The JVM language summit happened last week, and as usual after a developer gathering these days, slowly the podcasts are starting to appear. First to get a summit-related recording out were the makers of the Grails Podcast, who in the issue 95 have led an interview with Jochen Theodorou, the Groovy Project Tech Lead, touching on "Groovy history and his current role, polyglot programming, JSR 292 (invokeDynamic) and the Da Vinci Machine Project"...
The Java EE Container Redeploy & Restart Report comes from a survey conducted over the summer, with over 1100 Java EE developer respondents. It analyzes time spent on the Redeploy and Restart process, and compares the following containers: GlassFish, Jetty, Tomcat, WebSphere and WebLogic. Among other results, this report shows that Java EE developers are spending 3 to 7 work weeks a year on redeploys and restarts, depending on their container of choice.
Quick recap of the next speeches I'll give and conferences I'll attend:
JavaDay in Verona, October 24, organized by JUG Padova and LUG Verona: "Stanco del solito database SQL? Passa ad uno store RDF!" (the conference is in italian, the title translated in english is "Tired of the old SQL? Move to a RDF store").
JAXItalia 2009, November 12-14, in Milan: "Tools for an effective software factory (I can't live without Hudson)".
Wakaleo Consulting is pleased to announce a new training course focusing on "Agile Testing Practices for Java developers". Indeed, whether you are applying Agile methodologies or not, high quality unit and integration testing is an essential key to high-quality software...
Ed has developed a 50 minute audio-visual presentation recounting his experience in writing the book. This presentation includes audio clips from the programmers themselves, including subtitles for those for whom English is not their native language, together with insight to tie it all together...
ramses_perez wonders about HTTP methods PUT, DELETE, TRACE: "Hi. I am faced with the problem that I can not figure out how to disable the HTTP methods PUT, DELETE, TRACE. What documentation exists that details the precedures on how to disabel the HTTP methods on the Application Server? Or if..."
And tahicks asks How to add missing namespace information?: "In response to the invocation of a web service I'm getting a return that has the namespace missing from the "payload" of the SOAP message. This detail throws the JAXB unmarshaller off when it tries to convert the XML to a JAXB bound class..."
Our current Spotlight is the new Janice Heiss interview with "Java Champion Kirk Pepperdine on Performance Tuning and Cloud Computing": "java.sun.com (JSC): In your talks, you always warn developers that they must carefully evaluate any generic advice that you provide to see if it applies to a particular situation. Why is this so important? Pepperdine: While I do give generic advice, I carefully explain that people have to evaluate it to see if it will work. I am giving advice in a vacuum, so what may work for many people most of the time may be very detrimental in other contexts. I don't know in advance what specific problem someone is working on..."
Our Feature Articles include Jeff Lowery's A Finite State Machine Supporting Concurrent States, which demonstrates how Java enums and EnumSets can be used as a basis to define and validate application states and state transitions. We're also featuring Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2.
Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.
Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.