1. Seam为Web Beans铺路
Seam是JBoss的拳头产品之一,与Hibernate有着同等重要的地位。JBoss Seam是一个功能强大的Web应用框架,Seam的英文含义是“缝合”的意思,正如Seam的名字所暗示的那样,Seam是一瓶极具粘合力的技术缝合剂,能够将Ajax、JSF、EJB3、Portlet以及Business Process Management (BPM)等诸多技术缝合在一起。Seam的剑锋直指下一代的Web2.0应用,而它所统一和集成的这些技术,正是Web2.0所必须的。
Seam的使命是降低Java应用的复杂度,不但从架构级,而且深入到API级别。在Seam看来,复杂的Web应用,可以通过一些简单组件的组合来实现,这些组件包括经过注释的POJO,用户界面组件或JavaScript部件,以及少量的XML。
组件模型是Seam的核心,在Seam里面,什么都是组件。这不奇怪,随着面向对象思想的深入人心,组件模型早已成为软件编程的不二选择,不过,Seam的组件模型有其出人意表之处,那就是Seam打破了传统编程理论中,表示层组件和应用逻辑组件之间牢不可破的界线,将表示层组件模型和应用层组件模型,合而为一。Seam的这一做法是一面双刃剑,一方面,对于小规模应用,两个组件模型界线的模糊化,显然简化了应用框架的格局,降低了编程的复杂度,但另一方面,表示层和应用层的融合,与现代分层理论和实践相违背,是否适用于大规模复杂应用,有待实际项目的考验。
两种框架经Seam缝合之后,在Seam里面运用组件就非常容易了。简单的POJO自然不在话下,即使是EJB,由于EJB3已经通过注释技术,将EJB从重量级、粗粒度的对象,转变成了轻量级、细粒度的对象,在Seam里面的运用也是轻而易举的。当然,Seam的用途并不局限于EJB3,Seam可以用在任何J2EE环境中,甚至在简单的Tomcat中,Seam也能找到用武之地。这得益于Seam的API级别的基础框架。
在Seam之前,HTTP Session是Web应用状态管理的唯一手段,Seam改变了这种状况。Seam提供了多种不同粒度的上下文状态,其范围涵盖从对话级别到业务流程级别,将程序员从HTTP Session的局限性中解脱出来。例如,Seam可以编写支持多浏览器窗口的Web应用,就像桌面环境下的多窗口应用一样。
此外,Seam集成了JBoss的jBPM,即JBoss业务流程管理,使得Seam具备了实现和优化复杂的工作流和页面流的能力。
在可测试性方面,由于Seam的组件都是POJO,因此,对Seam应用实施单元测试,是非常容易的。不过,对于复杂应用,单纯依赖单元测试是不够的,因此,Seam在其框架的核心特性中,提供了对测试的支持能力,这使Seam获得了良好的可测试性。Seam的开发人员可以编写JUnit或TestNG测试,完整地模拟系统和用户的交互过程,这样就可以在IDE内,完成系统所有组件的测试。
Seam的最新版本是1.1版,和它的前一个版本(Seam 1.0版)相比,1.1版的Seam最大的卖点是Ajax。Seam集成了基于JSF的若干开源Ajax方案,例如ICEfaces和Ajax4JSF等。由于对Ajax功能的集成利用了Seam独特的状态和并发管理引擎,开发者无需学习JavaScript,就能替应用涂上Ajax的油彩。
2. Web Beans信心十足
从上面对Seam的介绍,可以看出Seam与Web Beans几乎完全类似,事实上,Seam正是Web Beans的前身,只不过Seam是JBoss自己鱼缸里的一条大鱼,而Web Beans则是JBoss投向Java棋盘的一枚棋子。Web Beans试图收获的果实,JBoss已经在Seam这块试验田里播下了种子。这正是Gavin King信心的来源,是Gavin King敢于夸下海口的原因。这一点,从Seam和Web Beans在时间上的前后呼应,也可以看出。Seam 1.0的发布时间是2006年6月,而此时距离Gavin King抛出JSR 299不足一个月,也就是说,在Seam发布前不到一个月,当JBoss的Seam项目刚刚结束内部发布,准备推向公众之时,Gavin King看到了Web Beans的目标是可以达成的,所以毅然提交了Web Beans的JSR。
Seam和Web Beans在时间上的重叠,绝非巧合,就连Gavin King自己,也承认Seam和Web Beans承前启后的关系。在提交给SE/EE执行委员会的申请中,Gavin King解释Web Beans现有的技术基础时,提到了JBoss的Seam。Gavin King认为,Seam揭示了Web Beans某些技术问题的一种可能的解决方案,并且Seam表明这些方案在原理上是可行的。
3. JBoss的野心
现在,让我们来看看,如果Web Beans成功了,Java Web企业应用框架,会是怎样一种格局呢?如前所述,从下到上,Java Web企业应用由三个层构成。最底层是数据层,中间是应用层,最上面是表示层,而粘合这三个层的,是JBoss的Hibernate和Web Beans。我们不妨稍做分析:数据层是关系数据库的世袭领地,在下一代面向对象数据库出现之前,关系数据库的地位固若金汤,不会有什么变动;表示层不如数据层那么风平浪静,但Sun的JSF因其创新性的引入了组件模型的概念,成为众多框架中出类拔萃者,未来无疑是JSF的;应用层可以说是最动荡不安的区域,Sun的EJB过去有着一段失败的历史,现在虽然以全新面目推出了EJB3,但EJB的未来仍有很多未知数。所以,如果说Java Web企业应用框架会发生一些事情的话,应用层将会是主要战场。
如果上面的分析是正确的,那么,JBoss在应用层框架之役上,已经占据了相当有利的地形。应用层的下面有Hibernate虎视眈眈,上面则埋伏着Web Beans的十万大军,JBoss之手,如同一把钳子,牢牢地控制着应用层框架。处于Hibernate和Web Beans夹击之下的应用层框架,完全落入JBoss掌中,并非不可能。只需将Hibernate的触角向上延伸,配合Web Beans的向下渗透,JBoss想要吞并应用层框架,比任何其他对手的胜算都要大一些。
JBoss是Java开源领域的一个传奇企业,以一个开源的应用服务器JBoss起家,现在已经是开源领域最活跃的力量之一了。Hibernate和Gavin King的加盟,是JBoss发展道路上举足轻重的事件。Hibernate是JBoss梦寐以求的,Gavin King也需要一个相对稳定收入和环境,来支撑Hibernate的开发,所以,二者一拍即合。一家传奇企业与一个传奇人物走到了一起,如果不继续制造一些传奇的产品,那倒奇怪了。Seam的身体里流淌着JBoss和Gavin King的血液,脱胎于Seam的Web Beans,是否也会在Java Web企业应用框架的历史上,写下一段传奇的经历呢?
被Red Hat以3.5亿美金的巨资收购后,JBoss迎来了企业发展的第二个春天,有Red Hat做靠山,JBoss在IBM、Sun和Oracle这些巨人面前,多少鼓起了一些抬头正视的勇气。JBoss的脾气,一如它的创始人Fleury,坚定而固执,在Bea的WebLogic和IBM的WebSphere大收其费时,JBoss“顽固地”坚持走自己开源和免费的道路,终于在应用服务器市场上占据了一席之地,并且获得丰厚回报。精神和物资,是迈向成功的两大基石,Red Hat的雄厚财力、Fleury的坚定信念以及Gavin King的不凡勇气,或助Web Bean成功闯关,成就JBoss在Java Web企业应用框架领域的勃勃野心。
出处:IT168
分享到:
相关推荐
在开始使用JBoss之前,确保系统已安装JDK是非常重要的,因为JBoss是纯Java的Web应用服务器,依赖于JDK来运行。官方下载地址为http://labs.jboss.com/jbossas/downloads/,你可以在这里获取最新的JBoss应用服务器版本...
首先,"jboss-web.xml"是JBoss特定的Web应用程序部署描述符,它是Tomcat中的web.xml在JBoss环境中的扩展。这个文件主要负责定义应用的Servlet、过滤器、监听器以及与EJB交互的JNDI(Java Naming and Directory ...
WebBeans的参考文档详细介绍了如何在不同的应用服务器上安装和配置WebBeans,包括JBoss AS5、Apache Tomcat 6.0.19和Glassfish等。此外,还提供了示例代码,帮助开发者理解如何将WebBeans集成到现有的项目中,例如...
【JBoss Web 2.1.0.GA 知识点详解】 JBoss Web,全称为JBoss Application Server的Web容器部分,是Red Hat公司开发的一款开源Java Servlet和JavaServer Pages(JSP)容器,它是JBoss应用服务器的重要组成部分。在本...
6. **热部署**:开发者可能喜欢JBoss Web的热部署特性,允许在不中断服务的情况下更新和部署应用程序。 7. **模块化架构**:遵循模块化设计,JBoss Web使得定制和扩展服务器成为可能,用户可以根据需求选择加载特定...
3. **部署应用**:将整个WEB应用(包括`WEB-INF`目录和`jboss-web.xml`)打包成WAR文件,然后将此WAR文件放入JBoss的`deploy`目录下。或者,如果你使用的是JBoss AS7或EAP 6及更高版本,可能需要将应用放在`...
在EJB-JBoss-Web的实例中,开发者可以创建和管理EJB组件,这些组件通常包括会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean(Message-Driven Beans)。会话bean负责业务逻辑,实体bean持久化...
Jboss应用服务器在启动时,会对WEB-INF目录下的web.xml文件进行解析,以便加载应用程序的配置信息。但是,如果web.xml文件存在语法错误或配置错误,Jboss将无法正确地解析该文件,从而导致启动报错Failed to parse ...
在部署 Jboss 项目时,需要将 war 文件解压到 Jboss 服务器的部署目录下,例如 D:\jboss-5.1.0.GA\server\default\deploy 下。然后,需要配置 Jboss 服务器的配置文件,例如 server.xml、oracle-ds.xml 等文件。 五...
Linux下JBOSS部署手册
jboss web 是在tomcat的基础之上又进行了一些修改,如果你一直在用tomcat,建议试一下jboss web,它的目录结构和tomcat的一样,使用方法也一样,但性能要好点。 最重要的是他可以在一台机器上方便的安装多个服务。
本教程基于Weld 1.0,是JBoss官方提供的一个入门级资料,旨在帮助开发者快速理解和掌握WebBeans的基本概念和实践应用。 WebBeans是Java EE中的一种服务,它扩展了JavaBeans的概念,提供了动态、类型安全的依赖注入...
本篇将深入探讨在JBoss应用服务器上构建Web Service的全面指南,涵盖从安装配置到开发、测试、安全及高级特性应用的全过程。重点包括JBossWS的功能介绍、安装流程、基本操作示例(如RPC、文档和消息风格端点)、基于...
2. 将JAR文件添加到项目的类路径中,这可以通过构建工具(如Maven或Gradle)的依赖管理来完成,或者直接将JAR复制到WEB-INF/lib目录下。 3. 配置Atmosphere框架,以便在JBossWeb服务器上启用服务器推送功能。这可能...
2. **清理缓存**:清理浏览器缓存,或者在JBoss的data目录下找到`tmp`或`work`文件夹,删除其中与项目相关的文件来清除服务器缓存。 3. **重新部署**:有时,简单地停止和重新启动服务器,或者重新部署整个项目是...
在Windows环境下部署JBOSS 5.1.0作为Web应用服务器,涉及到一系列配置步骤,包括集成Spring框架、设置环境变量、修改默认配置以及配置SSL安全连接。以下是对这些步骤的详细说明: 1. **下载JBOSS-5.1.0.GA-jdk6.zip...
### JBoss for Web – JBoss Enterprise Middleware:关键知识点解析 #### 一、JBoss Enterprise Middleware 简介 **JBoss Enterprise Middleware** 是由 Red Hat 提供的一套全面的企业级中间件解决方案,它集成了...
最后,要更改Web工程的根目录,需要创建一个名为`jboss-web.xml`的文件,在`webroot/WEB-INF/`目录下。文件内容应包含`<context-root>`标签,用于定义Web应用的上下文路径。例如,设置`<context-root>/...
### JBoss Web 用户手册知识点概览 #### 一、关于 JBoss Web - **概述**:JBoss Web 是 JBoss Enterprise Middleware Stack (JEMS) 的关键组成部分之一,它能够以与 Apache Web 服务器媲美甚至超越其性能的方式运行...
总之,"jboss-as-web.Final-RECOMPILE.jar"是JBoss AS 7热部署机制的核心组成部分,它使得开发者能够在不中断服务的情况下更新Web应用,极大地提高了开发效率。理解并熟练运用这一特性,对于高效地开发和维护基于...