阅读提示:Web Beans在技术奇才Gavin King的炮制下,以全票通过的结果风光出炉。Web Beans欲深度集成JSF和EJB3两种框架,虽然被担心目标过于远大,但有JBoss Seam做铺垫,Web Beans信心十足。Java Web企业应用领域前景无限,先以Hibernate试水,然后遣Web Beans入局,野心勃勃的JBoss欲在Java企业应用领域争夺更多话语权。全文共分三部分,本文是上篇。
1. 企业应用乃兵家必争之地
熟悉Java企业应用框架的开发者都知道,企业应用是Java最重要的技术领域,也是Java赖以生存和发展的巨大市场。在企业应用中,Web应用又随着互联网的普及,成为独占鳌头的企业应用类型。在互联网基础架构日益发达的今天,越来越多的企业将自己的核心业务系统搬上Web,巨大的市场容量和诱人的赢利前景,使得Java Web企业应用成为众多IT厂商觊觎的对象。在三流厂商忙于抢单子,二流厂商热衷创品牌的时候,手握标准和规范话语权的一流厂商,也在进行着争夺话语权的你死我活的斗争。
一个标准的Java Web企业应用,由三个层组成,即表示层,应用层和数据层。三个层中,数据层负责维护需要长久保存的应用数据,提供数据存储、查询等功能,由关系数据库一统天下;表示层即用户界面层,经历了从“客户端/服务器”到“浏览器/服务器”的演变,现在,基于HTTP协议的HTML浏览器成为硕果仅存的客户端标准;应用层是竞争最激烈的战场,不但有Unix和Windows的操作系统之争,有ASP和JSP的动态网页之争,就连Java内部,也有众多的框架技术一比长短,当然,公认的胜者非EJB莫属了。
可见,在企业应用领域,数据层多为关系数据库,这是数据库厂商们争夺的对象,与Java无关,但应用层和表示层则需要用到Java的技术,这其中就包含Java的框架技术。从目前各种Java框架的博弈结果分析,官方的建议是在Web表示层使用JSF框架,而在应用层采用EJB框架。
2. Hibernate试水
显然,层的划分只是出于开发、管理和维护的方便,是一种逻辑的概念,在实际的企业应用系统中,上述的三个层是耦合在一起的,需要沟通和互动。在应用层和数据层之间,SQL曾经是标准的沟通语言,但随着面向对象思想的深入人心,结构化的SQL语言越来越和组件模型格格不入,于是对SQL进行封装,以面向对象的方式建立应用层和数据层的沟通机制,就独立出来,成为一门叫做“持久化”的技术。
Hibernate是近几年最热门的Java持久化技术之一,而刚刚过去的2006年,Hibernate更是收获颇丰。Sun的Java EE 5弃Entity Beans于不顾,全盘接受Hibernate的技术、概念和思想,在EJB3.0的持久化层面,上演了一出大义灭亲的好戏,将Hibernate推向功成名就的荣誉顶峰。
从此,Java企业应用标准的议事厅里,Sun的声音变小了,JBoss的声音变大了,Hibernate堂而皇之地坐在了Java持久化的头把交椅上。JBoss以Hibernate试水Java企业应用标准,获得了意想不到的成功。
持久化技术,虽然只是Web企业应用框架的补充,但也是不可或缺的一部分。JBoss的聪明之处,是发现了这样一个涉足Web企业应用标准的机会,而与Gavin King的联手,则是成功的关键。Gavin King的Hibernate是应用层和数据层的粘合剂,多年的打拼,Hibernate早已成为Java持久化技术“事实上”的标准。JBoss和Gavin King强强合作,试水企业应用标准,一举成功是意料之中的了。
3. Web Beans入局
Hibernate大获全胜,无疑让JBoss和Gavin King尝到了甜头,同时也增强了他们的信心,等待着下一次机会的到来,随时准备发动下一场战役。当Sun的JavaServer Faces技术推出以后,凭着独创性地在Web开发上引入了组件模型和事件驱动模式,Java Web企业应用框架的重心逐渐向JSF倾斜。随着Sun及其合作伙伴的大举投入,JSF在经历了长时间的蛰伏之后,慢慢崭露头角,大有成为表示层框架的标准之势。
2006年是JSF加速发展的年头,1.2版本规范颁布,解决了JSF使用过程中暴露的主要问题,JSF的各种实现(Implementation)和扩展如雨后春笋般涌现。当Java EE 5将JSF上升为强制规范之后,JSF成为Java Web表示层框架的标准,几成定局,JBoss和Gavin King等待的机会又来了。他们的武器还是粘合剂,不过这次,他们要粘合的不是数据层和应用层,而是应用层和表示层。粘合剂的名称,就叫做Web Beans。
称Web Beans为粘合剂,也许不太恰当,因为Web Beans的目标,并非粘合应用层和表示层那么简单。Web Bean其实是JSF的Managed Beans的升级版或者替代品。Managed Beans是JSF的一项技术,用于在Web页面和业务逻辑之间建立联系。页面通过EL访问Managed Beans,而Managed Beans可以访问后台的EJB或者应用层的其他组件和功能,这样,用户就可以通过页面实现对应用系统的操作。
Managed Beans机制最突出的优势,是其对象的实例化由JSF框架自动控制,无需程序员干预,这在一定程度上简化了Java Web开发。另外,值得一提的是,JSF为Managed Beans定义了三种上下文范围,分别是请求范围、会话范围和应用范围。所谓上下文,是指Web应用的一系列请求之间的前后联系,Managed Beans的上下文范围,定义了其生存周期,例如,会话范围的Managed Beans,始于会话的开始,止于会话的结束。Managed Beans在生存周期内,其实例状态得到维护,因此,是在不同请求之间传递应用系统状态的一种手段。
可惜的是,JSF没有在应用层上下太多的功夫,与应用层交互的唯一手段,只有Managed Beans。这倒也怪不得JSF,因为JSF的定位本来就是表示层框架,在Sun的蓝图里,应用层由EJB主持大局。如同应用层和数据层之间需要持久化技术来粘合一样,应用层和表示层之间,同样需要某种技术来粘合。Managed Beans有一定的粘合作用,但远远不能满足企业应用编程的需求。这正是Gavin King所需要的。Gavin King做事向来雷厉风行,这次也不例外,抓住JSF的几条小辫子之后,Gavin King和JBoss祭出了Web Beans的大旗。
出处: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应用服务器的重要组成部分。在本...
10. **社区支持**:作为JBoss项目的一部分,JBoss Web拥有活跃的社区,开发者可以在论坛上提问、分享经验并获取技术支持。 总的来说,JBoss Web 3.0.0 Beta 2是针对企业级Java Web应用的理想选择,它结合了Tomcat的...
在JBoss中,我们可以将一个WEB应用配置为默认应用程序,使得用户可以通过IP地址直接访问,而无需在URL中指定具体的工程名。这个过程涉及到对JBoss服务器配置的深入理解和XML文件的编辑。 标题所指的"将WEB应用发布...
在EJB-JBoss-Web的实例中,开发者可以创建和管理EJB组件,这些组件通常包括会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean(Message-Driven Beans)。会话bean负责业务逻辑,实体bean持久化...
Jboss启动报Failed to parse WEB-INF/web.xml; - nested throwable错误解决方案 在Jboss应用服务器中,启动报错Failed to parse WEB-INF/web.xml; - nested throwable是一种常见的错误,本文将对此错误进行深入分析...
Jboss 项目部署文档是指在 Jboss 服务器上部署项目的详细步骤,包括环境变量的配置、项目打包、配置文件的修改、JNDI 的配置等。以下是 Jboss 项目部署文档的详细知识点: 一、环境变量配置 在部署 Jboss 项目之前...
jboss web 是在tomcat的基础之上又进行了一些修改,如果你一直在用tomcat,建议试一下jboss web,它的目录结构和tomcat的一样,使用方法也一样,但性能要好点。 最重要的是他可以在一台机器上方便的安装多个服务。
WebBeans,也称为Weld,是Java企业版(Java EE)中的一个核心组件,它是JSR-299规范的实现,主要负责依赖注入(Dependency Injection, DI)和上下文及会话管理(Contexts and Dependency Injection, CDI)。...
本篇将深入探讨在JBoss应用服务器上构建Web Service的全面指南,涵盖从安装配置到开发、测试、安全及高级特性应用的全过程。重点包括JBossWS的功能介绍、安装流程、基本操作示例(如RPC、文档和消息风格端点)、基于...
通过理解这个压缩包的内容和用途,开发者可以有效地利用"atmosphere-compat-jbossweb-0.6.3.jar"来增强其在JBossWeb上的Web应用程序,实现高效的实时通信。同时,遵循"license.txt"中的许可规定,确保开发过程的合规...
Linux下JBOSS部署手册
当我们在JBoss上部署基于Eclipse的Web项目时,可能会遇到一些问题,特别是涉及到文件更新、刷新和重新部署的时候。本文将深入探讨这些常见问题以及解决方案。 首先,让我们了解"刷新"在Web项目部署中的含义。在...
### JBoss for Web – JBoss Enterprise Middleware:关键知识点解析 #### 一、JBoss Enterprise Middleware 简介 **JBoss Enterprise Middleware** 是由 Red Hat 提供的一套全面的企业级中间件解决方案,它集成了...
为了使FineReport能够在JBoss上运行,还需要确保JDK已正确安装,并将`tools.jar`复制到FineReport的`WEB-INF\lib`目录下。然后,将FineReport的`webroot`目录打包成`webroot.war`文件,并将其移动到JBoss服务器的...
- **部署 Web 应用**:指导用户如何将 Web 应用程序部署到 JBoss Web 服务器上。 - **作为 Windows 服务运行 JBoss Web**:介绍如何将 JBoss Web 配置为 Windows 服务以便更方便地管理。 #### 四、架构概述 - **...
本书旨在帮助读者全面掌握如何在JBoss平台上进行高效、稳定的EJB组件开发以及Web Services的构建和部署。 JBoss是开源的Java应用服务器,它基于Java EE(Java Platform, Enterprise Edition)标准,提供了全面的...
总之,"jboss-as-web.Final-RECOMPILE.jar"是JBoss AS 7热部署机制的核心组成部分,它使得开发者能够在不中断服务的情况下更新Web应用,极大地提高了开发效率。理解并熟练运用这一特性,对于高效地开发和维护基于...