Seam streamlines AJAX development

Creator of the JBoss Seam project Gavin King hopes his brainchild will kickstart a common programming model for Web-based Java apps.
Written by Aaron Tan, Contributor
Most people who try to develop AJAX-based applications have got it wrong, says the creator of the JBoss Seam open source project.

Gavin King, who created the Seam project, told ZDNet Asia that most AJAX (Asynchronous JavaScript and XML) applications tend to look like "a set of custom tag libraries".

Seam is an application framework that helps developers create Web 2.0 applications by integrating technologies such as AJAX, JavaServer Faces (JSF), Enterprise Java Beans (EJB3) and business process management.

"I don't believe people want to be encoding in JavaScript," King said, adding that a platform like Seam can help developers ease AJAX development, where JavaScript is used extensively.

With Seam, programmers can create AJAX-based applications without having to learn JavaScript. Applications are also protected from potential bugs and performance problems associated with the switch to AJAX.

"The path we've gone down is to really make use of JSF, which is a fantastic standard," King added. As the underlying development technology in Seam, JSF allows developers to build Web applications quickly.

More importantly, King emphasized, is the use of Seam as a server-side programming model for AJAX-based applications, though "most people only see AJAX's significance in the client".

He explained that as developers move from the "traditional model of coarse-grained, synchronous requests to the server, to the [AJAX] model of fine-grained, concurrent asynchronous requests, the whole architecture that people use to build Web applications starts to break down."

King said that with AJAX, developers now need to "manage concurrent requests, as well as hold a state cache on the server for users, otherwise your applications have no chance to scale".

Through Seam, JBoss is also hoping to push for a standardized component model for the Java platform, King said. Component models illustrate the different software pieces that will be used to build a given system or application.

He also highlighted the disconnect that is created each time someone identifies a technical concern, such as interaction with a Web site, because "a new component model would be introduced". The resulting effect are more complex Java applications , he said.

King explained: "This means that if I am a developer trying to implement some business logic, I have to write a lot of code to integrate different component models, because I can't have a single component that performs the same logic."

King currently leads the JSR 299 specification in the Java Community Process (JCP), which is looking to introduce a common programming model for Web-based Java applications. JSR 299 is supported by Borland Software, Google, JBoss, Oracle, Sun Microsystems and Sybase.

Editorial standards