JBoss Seam is a powerful application framework used to build next-generation Web 2.0 applications. It unifies and integrates popular service-oriented (SOA) technologies, such as Ajax, JSF, ejb3, java portlets, BPM, and workflow.
Seam is designed from the bottom up to eliminate the complexity of the architecture and API. It allows developers to assemble complex web applications by using annotation pojo, componentized uiwidgets, and a small amount of XML. The simplicity of SEAM 1.0 makes it easy to integrate with JBoss ESB and jbi in the future.
Why seam?
- EJB-based development: Ejb3.0 has changed the coarse granularity of EJB and has become a lightweight pojo with fine-grained annotation. In JBoss Seam, everything is EJB. JBoss Seam adopts the concept of Web 2.0, that is, the Web is the platform. In addition, JBoss Seam eliminates the differences between the presentation layer components and the business logic components. Even session beans can be used as listeners for JSF actions.
- Ajax-based remote layer:JBoss Seam remotely allows EJB 3.0 Session Bean to be called through Ajax in a web browser. Session beans is like a JavaScript Object for JavaScript developers, hiding the complexity of XML serialization and XMLHttpRequest APIs. The Web Client can also subscribe to a JMS topic and receive messages for the topic through asynchronous notifications.
- Rich state application:Before JBoss Seam, HTTP session is the only method for managing the web application status. Jbossseam provides different granularities of rich States, from the scope of conversations to the business process, freeing developers from HTTP sessions. For example, developers can write Web applications in multiple workspaces, just like rich clients with multiple windows.
- Process-driven applications:JBoss Seam transparently integrates business process management through JBoss jbpm to implement complex workflows and page streams. In the future, JBoss Seam can define presentation layer sessions in the same way.
- Testability as the core feature:The seam component is a pojo, so it is naturally easy to perform unit testing. However, for complex applications, unit testing alone is not enough. Therefore, seam uses the ease of testing of seam applications as the core feature of the framework. You can write a JUnit or testng test to simulate interaction with users, check all system components, and run the test in IDE.