Rethinking Enterprise Java

JBoss AS 7 has been out for a week or so – probably not enough time for opinions to be formed but the feedback I’ve seen so far has been overwhelmingly positive. But that isn’t the subject of this post.

You probably didn’t see Red Hat’s press release as those things are typically only read by the press so I wanted to draw to you attention a single paragraph :

“JBoss Application Server 7 represents a major milestone in the evolution of Java application servers from complex and monolithic to more lightweight, modular and agile. This release will enable developers to re-think how they develop and deploy enterprise Java applications.”

I wrote that and I meant it. Over the last 5 years there has been a significant difference between the Java EE servers like JBoss, Weblogic and Websphere and Apache Tomcat. Tomcat has been the poster-child for the lightweight container movement (but we shouldn’t forget Jetty and Resin – both very capable servers) and has established itself as probably the most popular Java run-time.

But I think we’re at the point where there is no-longer a lightweight division between Java EE servers and Tomcat (and other Web Containers) – some good blog posts here and here that discuss typical developer requirements like startup time and deployment speed (make sure you read the comments). When we’re at the the point where we’re discussing sub-second differences between startup or deployment times then I think we have convergence. I think we’re at a point where you can no longer paint Java EE servers into the big, slow and heavy corner and Tomcat into the lean and fast corner.

Developers have more choice today than ever before – they can choose a lightweight container but no longer have to make a tradeoff between footprint and features. Or start with a basic server like Tomcat and incrementally build a full featured application server from the ground up as more features like caching, persistence, transactions, messaging, view layer are required.

OK before the Glassfish fanboys chime in – yes Glassfish did a great job of addressing light-weight needs for Java EE some time ago but by any available measure Glassfish still doesn’t represent a mainstream choice like Tomcat, JBoss, Weblogic or Websphere.

Not all free advice is good advice

Mike Gualtieri at Forrester has a rather sensationalist post with a rather sensationalist title “Stop Wasting Money On WebLogic, WebSphere, And JBoss Application Servers”. I agree with some of what Mike says and have been giving the same advice to developers, customer and users for at least the last decade. Specifically – choose the run-time that best suits your needs. If all you require is a Servlet container then Tomcat is very likely the way to go; very likely the least complexity you need. If your application has greater needs – Transaction coordination, caching, clustering, ORM / Persistence, messaging, a modern UI framework then you probably need to look at one of the commercial or open source Java EE Application Servers (Weblogic, Websphere, JBoss, Glassfish).

The mistake that people make (Mike included) is that vanilla Tomcat addresses the full spectrum of enterprise web / app platforms. It simply doesn’t. There is only a small class of applications that need nothing more than a servlet container. The vast majority of Tomcat deployments require a whole bunch of additional technology – the de-facto Tomcat stack is Tomcat + some view layer tech. (eg. Spring MVC) + some persistence / ORM (eg. Hibernate). That is the basis for the alternative to Java EE. Most people end up adding a lot more stuff than that and find themselves somewhat accidentally maintaining a full featured application server. I know of customers who have been very successful doing this; they’ve invested in very knowledgeable people to manage the stack; I’ve also seen customers fail or simply decide that they aren’t willing to become an app. server vendor.

Finally, full disclosure – I do work for one of the vendors Mike mentions – specifically Red Hat and we would be delighted to sell you a subscription to a full featured Java EE Application Server (and a broad range of middleware) but if you have chosen Tomcat – we can help you with that too – we provide a distribution of Tomcat and even certify and test other elements of the Tomcat stack like Hibernate and Spring. Or as most customers actually demand – we can help you with both.

Lightning Strikes !

Screen shot 2011-07-05 at 8.02.30 AM.png

Just 6 months after JBoss AS 6 was released, JBoss AS 7 (codename Lightning) is now available. Congratulations and a big thank you to the JBoss AS team and community. JBoss AS 7 is a major release in every respect and will become the technology underpinning for much of what we do at JBoss for the next decade. I believe it also represents a shift in the way developers will think about enterprise Java and it opens up new possibilities for deployment that were unthinkable 5 years ago due to technical and economic limitations.

If you’ve been following the AS 7 candidate releases (and AS 6 before it) then you already know that AS 7 includes some significant new features. I’m not going to list them all; but here are the highlights:

Developer Productivity

  • Startup-time and memory utilization have been significantly reduced which leads to a much more productive developer experience – no more coffee breaks during deployments and restarts.This required some significant rethinking and a fair amount of innovation (something we’re good at apparently)
  • The Java EE 6 Web Profile provides a much leaner, less complex platform for developers who focus purely on the web-tier – less to learn, fewer design choices – increased developer productivity
  • More flexible and powerful modular classloader – less time debugging and configuring classpaths; more time writing applications
  • Testable by Design with Arquillian with out of container testing for the business logic so developers can be more productive while delivering better quality applications.

Price / Performance

  • It’s probably a little early to claim significant performance gain over the competition right now but request path performance is a goal and the hard work of tuning and performance improvements starts now, One early indicator will hopeful give you a sense of what we’d like to achieve is the recent SPECjms2007 submission from Red Hat. SPECjms is a pretty narrowly focussed benchmark and not all the JMS vendors are represented, that said this is pretty significant for us as it is the first public benchmark submission from JBoss and good practice for future activities

Operational Ease of Use

  • Some of the more significant advances in JBoss AS 7 are around the operational ease of use. The configuration has been completely refactored around a multi-node domain model, though the simple single-instance view has been maintained for developer use as well
  • There are stable, easy to use management APIs – so AS 7 deployments can be completely automated from Java or any other scripting environment.
  • New shiny, task oriented domain console that also allows you to manage multiple, distributed nodes.

Anyway – time to stop reading and start playing : learn more about JBoss AS 7 here and get the bits here and provide feedback on community site.

Next post – how AS 7 relates to Red Hat’s commercial, fully supported distribution – JBoss Enterprise Application Platform 6.

Thoughts on G+

My opinion on G+ (based on about an hour of tinkering) :

  1. G+ will be of limited utility until the majority of people I know or care about is using it (ie. it has to catch up with FB and Twitter)
  2. Circles – great start but needs finishing – need more set theory – subsets, intersections, compliments, etc. will make it very powerful though maybe a little nerdy for the non-technical.
  3. UI is very slick – amazing demonstration of what is possible in a standard browser
  4. I represents a personal dilemma. I’ve been using Facebook for mostly personal stuff; Twitter for mostly work stuff. With a little natural overlap. I can manage two social networks; three will be tough.

This is my profile if you want to connect.

Lightning Strikes !

Screen shot 2011-07-05 at 8.02.30 AM.png

Just 6 months after JBoss AS 6 was released, JBoss AS 7 (<codename>) is now available. Congratulations and a big thank you to Jason, Brian, Jaikaran and team. JBoss AS 7 is a major release in every respect and will become the technology underpinning for much of what we do at JBoss for the next decade. I believe it also represents a shift in the way developers will think about enterprise Java and it opens up new possibilities for deployment that were unthinkable 5 years ago due to technical and economic limitations.

If you’ve been following the AS 7 candidate releases (and AS 6 before it) then you already know that AS 7 includes some significant new features. I’m not going to list them all; but here are the highlights:

Developer Productivity

  • Startup-time and memory utilization have been significantly reduced which leads to a much more productive developer experience – no more coffee breaks during deployments and restarts.This required some significant rethinking and a fair amount of innovation (something we’re good at apparently)
  • The Java EE 6 Web Profile provides a much leaner, less complex platform for developers who focus purely on the web-tier – less to learn, fewer design choices – increased developer productivity
  • More flexible and powerful modular classloader – less time debugging and configuring classpaths; more time writing applications
  • Testable by Design with Arquillian with out of container testing for the business logic so developers can be more productive while delivering better quality applications.

Price / Performance

  • It’s probably a little early to claim significant performance gain over the competition right now but request path performance is a goal and the hard work of tuning and performance improvements starts now, One early indicator will hopeful give you a sense of what we’d like to achieve is the recent SPECjms2007 submission from Red Hat. In and of itself – this is the first public benchmark submission from JBoss and while not all the competing JMS products are represented – we’re confident we can crush the competition.
  • Stay tuned on this one.

Operational Ease of Use

  • Some of the more significant advances in JBoss AS 7 are around the operational ease of use. The configuration has been completely refactored around a multi-node domain model, though the simple single-instance view has been maintained for developer use as well
  • There are stable, easy to use management APIs – so AS 7 deployments can be completely automated from Java or any other scripting environment.
  • New shiny, task oriented domain console that also allows you to manage multiple, distributed nodes.

Next post – how AS 7 relates to Red Hat’s commercial, fully supported distribution – JBoss Enterprise Application Platform 6.

Anyway – time to stop reading and start playing : learn more about JBoss AS 7 here and get the bits here and provide feedback on community site.