Catching up since summer 2012
Now, this is going to be a little dense, a little hard to read, but we’re developers right? So, we’re used to reading dry-yet-information-packed-next. Buckle up and strap on your dev helmet, here’s the update to the Application Servers section from ZeroTurnaround’s Developer Productivity Report.
The world of app servers has traditionally been split between servlet-based containers and enterprise (Java EE) servers, with Tomcat being the clear winner in the servlet-based container space and WebSphere and Weblogic sharing the Java EE mantle. Typically servlet-based containers are used significantly more than Java EE servers, almost 60% of the respondents to our survey use at least one servlet-based container. Below you can see last year’s Developer Productivity Report results on Application Servers:
In the last half of 2012, the big dogs were trying to become more nimble and agile, while the quick Tomcats of the world are trying to add more of the Java EE feature set. The addition of the Liberty profile to the WebSphere line of products represents a shift in the mindset of traditional enterprise users, and developers are clamoring for a faster way to get as close to a production environment as possible on their local machines.
There has been progress in speeding up and making the Java EE space more accessible with the entrance of community editions of both GlassFish and JBoss, which compared to running a full blown instance of WebSphere are more reasonable for a developer’s workstation.
Likewise, work is progressing on the Apache TomEE project intent on making Tomcat Web Profile Certified, which undoubtedly will slow Tomcat while adding a lot of functionality and reduce the dependence on 3rd party frameworks. This will allow Jetty to remain the fastest application server, but the least full featured.
It’s early in 2013, so our Developer Productivty Report for this year is still some months away, but we are predicting a lot of developments this year in the application server space. Although these technologies remain very competitive, they are not such a subject of holy-war debates like we see with IDEs or programming languages. Nevertheless, selecting one for yourself or your organization may be tricky. In the last year, application servers have gone through some major and minor updates, so here we offer you a quick look at what happened with them.
Heavy-weight Application Servers going for Lightweight Style Features, and Vice Versa
Last stable version: WebSphere 8.5
What we could find about licensing: hard to say, talks in secret code about “processor value units” and stuff
A clear winner of AS arms race, in our minds, is WebSphere Application Server team, which besides a regular Websphere 8.5 release came with a completely new beast in the market – WebSphere Liberty profile. Its main features include a faster startup and dynamic, on-demand service inclusion. Similar to the way the JBoss 7 modularity system allows you to load and initialize services lazily, when they’re actually needed, WebSphere’s OSGi architecture kicks in and only a minimal configuration profile is started by default, but when your application needs other functionality then those services are brought to life. It means a lot in the development process, when you don’t need to deal with a full-blown application server every time, not wasting programmers attention into a redeploy timesink.
Other noteworthy things in the 8.5 release of WebSphere are JDK 7 support, Intelligent Management (which allows Network Deployment servers have WebSphere Virtual Enterprise features) and major improvements in JMS implementation. It might not sound like a big deal when it comes to development, but many teams use WebSphere to mirror a production environment, so a number of sweet additions for administrators make it even better. Among those to mention are Application Edition Management, which gives operations teams the ability to deploy a new version of their app while serving old clients to test the new release. Also, the whole configuration management process has been made easier with automatic monitoring and rollback of administrative changes.
Yes, all this has been available since summer 2012, when WebSphere 8.5 was released. And if you are still stuck on good, old WebSphere 6.1, note that we recommend you should upgrade quickly as it’s end of life date is scheduled for September 2013.
Last stable version: Jetty 8.1.8
What we could find about licensing: Open source
Big changes are coming to the world of Jetty. Although Jetty 9 is not officially released yet, Jetty-9.0.0 milestones are out there in the wild and seem very promising. Servlet 3.0 is in there, and they promise that most of the unreleased Servlet 3.1 spec is also supported, so they can patch it in no time when it’s actually released.
Also, websockets, SPDY support and more general performance improvements will allow Jetty to continue sitting on top of the competition in AS performance. Also having websockets makes Java 7 mandatory to run Jetty 9; however, considering that an estimated 23% of us are already use Java 7, this shouldn’t be a problem. Otherwise, don’t get sad, servlet 3.0 is nothing new so stable versions of Jetty (like v7 and v8) are still mature, supported and getting love. But if you still run Jetty 6, yep, Flintstones, I’m looking at you! Upgrade asap!
Last stable version: Tomcat 7.0.35 / TomEE 1.5.1
What we could find about licensing: Open source
There is a reason most of Java developers we talk to use Tomcat when they need a container. Tomcat features regular releases, tons of bugfixes and small enhancements. Minor releases of Tomcat 7, which is the current major stable version, has been released almost every month throughout 2012. The new year started with a 7.0.35 release, but this isn’t what makes 2012 special for the Tomcat team.
Part of their effort went into the creation of TomEE, which is a JEE server based on Tomcat and Apache stack for EE, basically that’s what Tomcat+OpenEJB was, but with more stuff added. One way to get it is to use a Web Profile that supports: CDI, EJB, JPA, JSF (we could name abbreviations all day here) …, JTA, anyway, most of the EE spec.
And if you need even more, ask for TomEE+ with JAX-RS, JAX-WS and JMS toppings. The latest maintenance to TomEE 1.5.1 was released in December 2012, so if you’re planning to be with Tomcat in the long run, have your applications tested on it and just want to add some EE features, take a look at TomEE. This project is very much alive and is worth to keep an eye on it.
Last stable version: JBoss AS 7.1.1 / JBoss EAP 7.1.3
What we could find about licensing: 11,250 USD / year for 16 cores (more info)
The introduction of JBoss 7 in mid-2011 was a major milestone for Red Hat, but since then not a lot seems to have been accomplished. JBoss 7.1.1 went live in spring 2012, and since then nothing especially new has come for open-source JBoss users.
But no so for commercial users running EAP; in September 2012, JBoss EAP 7.1.3 released fixes for more than 600 issues compared to 7.1.1. And although there were no major architectural changes or life-altering updates, that list is pretty much guaranteed to include at least a few things you’d like to update.
Last stable version: Weblogic 12.1.1
What we could find about licensing: 9,000 USD per processor/year | 45,000 USD per processor/pertual (more info)
Oh Weblogic, you are so huge and proprietary. That’s why we don’t see more releases. In fact, there was only one update during 2012, Weblogic 12c (12.1.1) and it brought as usual a tremendous amount of changes. JDK7 certification, Servlet 3.0, improved WS and CDI support. A new Maven plugin to install, start, stop and generally manage server instances is also available, so even if you’re not a fan of the Java world’s most-used build tool but you use Weblogic, check it out.
Last stable version: Glassfish 220.127.116.11
What we could find about licensing: Open source
Last but not least, Glassfish team doesn’t concede to competitors, it’s latest release is 18.104.22.168, which is a micro maintenance on top of 3.1.2 released earlier in February 2012. The 3.1.2 release alone fixed hundreds of bugs compared to previously available version. In addition to that, Glassfish 3.1.2 added support for JDK 7, WebSockets, upgraded several major server components: Mojarra, Weld, etc, including module management system which is compliant now with OSGi 4.3.
Admin life sweeteners include many Admin Console enhancements, Distributed Component Object Model (DCOM) remote protocol which makes managing GlassFish farms on Windows more pleasant (seriously, people do that?). Apache users can have now mod_proxy_ajp making Apache + Glassfish combo fancier. And on top of that they’ve added database based transaction recovery, so you don’t have to rely on the filesystem for that.
Development happens in different ways for different providers of Application Servers in the market, but every AS team, whether proprietary or open-source, continues to give their best to make your chosen application server, faster, easier to maintain, and nicer in every way. One trend we noticed is that lighter-weight AS and containers like Tomcat and Jetty started adding more rich features to their releases, while the heavier systems, like WebSphere, tried adding the features that made less-heavy competitors popular in the past.
Regardless, it is generally making sense to upgrade most of the time, especially when hopping on the latest and greatest versions is combined with preventing a random End of Life (EOL) date to sneak up on you.
Here is our TL;DR section:
- The WebSphere 8.5 update introduces somes of the biggest improvements in the App Server market, including the new Liberty profile, a faster startup and dynamic, on-demand service inclusion.
- In Jetty, big changes are promised for 2013; although Jetty 9 is not officially released yet, Jetty-9.0.0 milestones are out there in the wild and seem very interesting
- Tomcat continued to please fans with continuous updates each month, and the introduction of TomEE for enterprise users
- JBoss 7 users might have felt underwhelmed in 2012, but JBoss EAP users got a 7.1.3 release that contained more than 600 fixes and minor updates.
- The single WebLogic 12c release in 2012 contained tons of changes, but these releases don’t come all that often.
- Glassfish took it easy in 2012, their welcomed 3.1.2 release occurring last February and improving on little since then.
For the full version of the Developer Productivity Report, which includes sections on Java versions, IDEs, Build tools, Application & Web Frameworks, Continuous Integration servers, visit RebelLabs.
Prepared by Oleg Shelajev, Adam Koblentz and Cassandra Thomas