The Artima Developer Community
Sponsored Link

Java Community News
Seam 1.1 Released

1 reply on 1 page. Most recent reply: Dec 18, 2006 3:13 AM by Stefane Fermigier

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 1 reply on 1 page
Frank Sommers

Posts: 2642
Nickname: fsommers
Registered: Jan, 2002

Seam 1.1 Released Posted: Dec 13, 2006 12:31 PM
Reply to this message Reply
Summary
JBoss Seam is an open-source framework that makes it easy to work with stateful web applications. Seam bridges session state management tasks between server-side stateful beans and client-side Ajax components, and adds sophisticated state-management capabilities to Java EE.
Advertisement

An important application architecture trend is a move towards stateful enterprise applications from earlier stateless models. A strong force fueling that trend is the desire to build richer, more interactive user interfaces that often mimic desktop applications, but store all persistent data on a server. As well, many Java EE applications have come to rely on session state as an integral part of an application's architecture, even though Java EE has thus far lacked sophisticated session state management tools.

JBoss' open-source Seam framework aims to fill that void. The Seam project today released Seam 1.1, adding a wealth of features that make stateful application development much easier.

According to Seam project founder Gavin King, who previously founded the Hibernate project:

You won't really fully appreciate Seam until you start to come to terms with the stateful component model, conversations, conversation-scoped persistence contexts, pageflow and business process management...

One aspect of better managing state is to be able to work with persistence contexts, something that proved difficult with most persistence management and O/R mapping tools:

One of the main reasons we decided to create Seam in the first place was our frustration at all the problems Hibernate users experienced with LazyInitializationExceptions when using Hibernate with stateless session beans or Spring.

According to King's blog post, the latest Seam release includes two features that directly help manage persistence contexts:

First, there is a bunch of extremely complex code (totally invisible to the user) to allow extremely efficient clustering of extended persistence contexts—even more efficient than what the EJB container is allowed to do with container-managed persistence contexts.

Second, we introduced support for atomic persistence contexts... that let you make changes to managed objects across many requests in the same conversation, but have those changes be made persistent only at the end of the conversation (or some other well-defined point), instead of at the end of each request. This is a feature that JBoss, Sun and Sybase tried unsuccessfully to standardize into the EJB3 specification. If you want to use this feature, you'll need to use Hibernate as the JPA provider.

Another area Seam helps with is the development of Ajax-based user interfaces for enterprise Java apps. King notes that Seam 1.1 integrates with several client-side Ajax frameworks:

Most Java developers would prefer to be able to get functionality like partial page refresh, interactive server-side validation, server-side suggest, etc, without needing to futz with JavaScript at all.

This is where ICEfaces and Ajax4JSF come in. These are the leading AJAX component libraries for JSF, and they are the easiest way to build a rich client using simple, declarative JSF templates. We've been working with the ICEfaces and Ajax4JSF teams to make sure that both libraries work with Seam.

King also notes that Seam 1.1 introduces a new notion of concurrency centered around the requirements of stateful Ajax applications:

If you try to take a traditional stateless architecture, designed for use with few, synchronous, coarse-grained requests, and re-use it in an AJAX environment where many, asynchronous (and therefore concurrent), fine-grained requests are the order of the day, you're virtually guaranteed to kill your database!

AJAX makes server-side (conversational) state management a requirement, not a nicety. Amazingly, Seam is the only architecture in existence today which offers a strong model for conversation state. But the possibility of concurrent access to server-side conversation state opens up a whole raft of thread-safety issues which are not addressed by the servlet specification. Seam 1.1 solves these problems in a robust way.

Other Seam 1.1 features include the Seam Application Framework that makes it easy to get started with Seam-based applications, and better support for plain JavaBeans, and scripts that generate Eclipse or NetBeans projects for Seam applications.

What do you think of stateful Web apps? Do you believe that tools, such as Seam, can help overcome problems with state management?


Stefane Fermigier

Posts: 2
Nickname: fermigier
Registered: Oct, 2003

Re: Seam 1.1 Released Posted: Dec 18, 2006 3:13 AM
Reply to this message Reply
In case you have missed it, here is a case study of a "real life" application built with JBoss Seam:

http://www.slideshare.net/sfermigier/nuxeo-ep-5-open-source-enterprise-content-management-a-seam-case-study/1 (On Slideshare)

http://blogs.nuxeo.com/sections/blogs/eric_barroca/2006_11_23_nuxeo-s-presentation-jboss-world-berlin-2006 (same, as PDF)

Flat View: This topic has 1 reply on 1 page
Topic: You Call it Coupling, I Call It Reality Previous Topic   Next Topic Topic: Brian Oliver on Why Distributed Caching is Not What Spring Developers Need

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use