JBoss Inc. Tuesday will formally announce the beta release of its new lightweight Java application framework known as JBoss Seam.
Already the Seam framework is generating a lot of buzz on Java forums, as developers take a peek at its capabilities.
Essentially, JBoss Seam is an integration framework that seamlessly ties together the Java presentation layer and the transactional/database layer, thus the naming of the technology, the company said. Seam integrates JavaServer Faces (JSF) and Enterprise JavaBeans (EJB) 3.0, said Marc Fleury, chief executive of Atlanta-based JBoss.
JBoss Seam is the result of work begun by Gavin King, a JBoss core developer who founded the Hibernate project and created the Hibernate object/relational persistence and query service for Java. Hibernate is now a core part of the JBoss Enterprise Middleware System.
“JSF does a good job for the Web tier, but theres a gap in how to tie together the presentation layer with the transactional layer and the back-end database tier,” King said.
So JBoss Seam is “a unified component model,” where a developer can “write a component that handles business logic and is simultaneously understood by the presentation layer,” King said.
Fleury said that while he does not wish to make a comparison with the productivity-focused Ruby on Rails (RoR, pronounced “roar”) dynamic scripting, language-based open-source Web development framework, he acknowledges that RoR “was what crystallized this. Seeing Ruby-on-Rails-style productivity was definitely a catalyst.”
Indeed, Fleury said JBoss recognized a need to get to even greater simplicity in Java development than what lightweight frameworks such as Apache Beehive and Spring provide.
“We had gotten so snobbish,” he said of the Java worlds strict attention to often unnecessary Java patterns and “redundant” code. “But RoR was such a roaring success, we said we could do something like it in Java, but even better because Java is a typed language and you can do refactoring, etc.”
However, Fleury said he is not trying to push one over the other, because developers will have to choose. But JBoss Seam is pure Java, he said.
Moreover, “were offering this portable across all application servers,” he said. “This is not a lock-in scenario.”
Indeed, King and Fleury said they will be willing to submit Seam to a standards body to be adopted as a standard. “Were open to it,” they both said.
JBoss Seam is a new framework for building Enterprise Java applications, and JBoss also introduced its JBoss Microcontainer, a lightweight container that can be used to manage, configure and deploy plain old Java objects (POJOs).
Fleury said the Seam and Microcontainer announcements are “part of the bigger SOA [service-oriented architecture] picture for us. … This marks the entry of JBoss into the SOA world. Were the open-source platform for SOA. Were defining the programming model for the whole stack.”
Fleury said the SOA picture includes the companys broad support for Web services—both Simple Object Application Protocol (SOAP) and Representational State Transfer (REST) style, increasing support for Asynchronous JavaScript and XML (AJAX), and workflow—via the jBPM JBoss workflow and business process management engine.
King said the original thinking for Seam came to him as part of an application he did two years ago as a consultant. King and the Hibernate project joined JBoss in October 2003—and it reached its millionth download this month, the company said. But being the lead for Hibernate and pursuing his full-time wage earning responsibilities delayed the delivery of the finished framework. However, King said it would have been “difficult” to deliver Seam without being employed at JBoss.
“Its a logical progression for JBoss to do this,” Fleury said. “When Gavin came to me with this idea I immediately gave him the green light to go out and hire people.”
Next Page: Seam eliminates unnecessary programming.
Page 2
King said Seam eliminates unnecessary programming in filling in the Java Enterprise Edition 5 architecture by integrating EJB 3.0 and JSF into a single component model. He said it eliminates the extra programming, or glue code, needed to make the two components work together.
In addition, JBoss Seam extends declarative state management, he said. JBoss Seam applies the concept of declarative state management to application state. Currently, Java EE applications implement state management manually, an approach that results in bugs and memory leaks when applications fail to clean up session attributes. JBoss Seam eliminates almost entirely this class of bugs, he said.
“Whenever you see people doing state management manually, they are prone to bugs,” King said.
“Weve seen a lot of success with Inversion of Control [IoC] containers,” he said. IoC containers are containers that that help to assemble components from different projects into a cohesive application, said Martin Fowler, chief scientist at ThoughtWorks Inc., in Chicago, in a paper on the subject. King said he borrowed from these frameworks and addressed that issue of state management.
In addition, JBoss Seam uses EJBs everywhere and enables process-driven applications, he said.
Overall, the simplicity of JBoss Seam is its strength, King said. It enables developers to experience greater productivity and build more robust applications.
In addition, JBoss Seam makes use of the annotations feature in Java EE 5, which enables developers to do away with a lot of the XML required by JSF.
“We wanted to get rid of all that and allow you to just add an annotation” rather than a lot of XML code to add context. Annotations enable developers to imprint Java code with their own attributes.
“JSR-175 [Java Specification Request] is known as a Metadata Facility for the Java Programming Language, so its not about system configuration; its all about declarative programming,” King said.
King had a busy time on TheServerSide.com Web site describing and defending Seam Monday. Several posters said it looked a lot like the Spring framework.
Said one poster: Seam “still doesnt look that simple to me. I think what is needed is Eclipse to hide this low level complexity.”
Others noted that there has been little love lost between the Spring and Hibernate/JBoss camps.
“It definitely is interesting,” said Dion Almaer, chief technology officer at Adigio Inc., in Cambridge, Mass., in an interview with eWEEK. But, “first they [JBoss] updated Hibernate to do some things that Spring/Hibernate did, and now Seam is doing the IoC piece that traditionally has been done in Spring.”
Cliff Schmidt, an open-source consultant in Seattle, called Seam “YAAF—Yet Another Application Framework.”
He added: “Except JBoss Seam appears to be another JBoss-controlled community, rather than a truly collaborative and meritocratic community. If its like other JBoss projects, it has been designed by JBoss Inc. and will always evolve according to JBoss Inc.s best interests alone. For users to be willing to take a risk on a project like that, its got to be something new—something thats not available elsewhere. Years ago, JBoss app server qualified as something new relative to what else was available in open source. However, since Seam is 18 to 24 months behind some of the other open-source frameworks out there, including ones that have much more experience with J2SE [Java 2 Standard Edition] 5 metadata annotations, I dont think users need to compromise by investing in an application framework that evolves at JBoss whim.”
The beta release of JBoss Seam 1.0 is now available for developers to download and evaluate at www.jboss.com/products/seam. This community release works with Hibernate 3.0, and the final release will work with JBoss Application Server and any application server supporting EJB 3.0.