Tuesday, June 13, 2006

JBoss Seam!

With the release of JBoss Seam 1.0 this week, I thought it would be interesting to give a high level overview of what Seam is.

First, let me say that I believe Seam will be a huge step forward for developer productivity! Everyone that is thinking about, or toying with things like Ruby on Rails, or Spring, should stop and take a long look at Seam. Why do I say this?

Well, when you consider that the Java programming models have been too complex, and the realization of that has brought us some really innovative new technology, such as EJB 3. There is some very good UI technology in JSF and Facelets in particular (don't do JSP anymore). There are other very useful Java tools, such as jBPM for business process management, but nothing brings all of this together.

That's what Seam does. It unifies all of these great techologies in a seamless programming model, that is really compelling. Seam let's you take advantage of the fact that EJB 3 entities are just POJO's, and that they are detached objects, that can be used anywhere in an application. In fact, Seam let's you use EJB 3 entities as the backing bean in a JSF UI! But this is just scratching the surface.

Seam not only let's you program with a single model, but also integrates business process management. When you consider that all business applications are automated business processes to begin with, a business process management tool, like jBPM, is a natural fit for any and all applications. Seam allows you to use business process management, and in Seam's case, jBPM specifically, without having to be a BPM wizard. In fact, many things can be done without writing a line of jBPM code!

Besides, BPM integration, Seam also integrates AJAX style programming, with a Seam remoting capability, that allows JavaScript to call EJB components (stateless/stateful session beans, and message driven beans & pojo's) directly! This is powerful!!

When you couple these attributes, a single programmer model that eliminates all the glue code from your presentation layer, everything is a POJO, AJAX integration through JSF components and the Seam remoting capabilities, and finally some tooling with Eclipse that can code generate a fully working Seam application from your database schema, what are you waiting for? Oh, and all of this will become a Java standard through the JCP process. Gavin was able to get a JSR submitted and approved, called WebBeans, that will make this a standard (JSR 299).

Download some of the sample applications off of the JBoss website, along with the code for Seam 1.0, and I think you will be impressed.

No comments: