JBoss Seam是一个强大的用来构建下一代Web 2.0应用程序的应用程序框架,它统一和集成流行的面向服务(SOA)技术,例如AJAX,JSF,EJB3,Java Portlets和BPM,工作流。
Seam自底向上设计,消除了架构和API的复杂性。它允许开发人员通过使用annotation的POJO,组件化的UIwidget和非常少的XML来组装复杂的web应用。由于Seam 1.0的简单,使得它未来易于和JBoss ESB和JBI集成。
为何选择Seam
- 基于EJB的发开:EJB3.0改变了EJB是粗粒度,重量级对象的名声,把它变成了有着细粒度annotation的轻量级POJO。在JBoss Seam中,所有的东西都是EJB。JBoss Seam采纳Web 2.0的概念即Web就是平台,此外,JBoss Seam消除了表现层组件和业务逻辑组件的差异。即使是session bean,也可以作为JSF动作的监听者。
- 基于AJAX的远程层:JBoss Seam 远程允许EJB 3.0 session bean在web浏览器中通过Ajax调用。Session beans对于JavaScript开发者来说就像是JavaScript对象,隐藏了XML序列化和XMLHttpRequest API的复杂性。Web客户端还可以通过异步通知订阅JMS主题和接受该主题的消息。
- 富状态应用程序:在JBoss Seam之前,HTTP session是唯一管理Web应用程序状态的方法。JBossSeam提供了多种富状态的不同粒度上下文,从对话范围到业务过程,将开发者中HTTP session中解放出来。例如,开发者可以编写多个工作空间的web应用程序,就如同多窗口的富客户端一样。
- 过程驱动应用程序:JBoss Seam通过JBoss jBPM透明集成了业务过程管理,实现复杂的工作流和页面流将变得非常简单。未来的JBoss Seam版本将可以用同样的方法定义表现层会话。
- 可测试性作为核心特性:Seam组件,就是POJO,故而天生易于单元测试。但对于复杂应用程序,仅仅单元测试还不够。因此,Seam将Seam应用程序的易于测试作为框架的核心特性。你可以写JUnit或者TestNG测试来模拟和用户的交互,检查所有系统组件,测试都在IDE中运行。