JBoss野心勃勃的Web Beans(上篇)

发表于:2007-06-11来源:作者:点击数: 标签:
1. 企业应用乃兵家必争之地 熟悉Java企业应用框架的 开发 者都知道,企业应用是Java最重要的技术领域,也是Java赖以生存和发展的巨大市

1. 企业应用乃兵家必争之地 

熟悉Java企业应用框架的开发者都知道,企业应用是Java最重要的技术领域,也是Java赖以生存和发展的巨大市场。在企业应用中,Web应用又随着互联网的普及,成为独占鳌头的企业应用类型。在互联网基础架构日益发达的今天,越来越多的企业将自己的核心业务系统搬上Web,巨大的市场容量和诱人的赢利前景,使得Java Web企业应用成为众多IT厂商觊觎的对象。在三流厂商忙于抢单子,二流厂商热衷创品牌的时候,手握标准和规范话语权的一流厂商,也在进行着争夺话语权的你死我活的斗争。 

一个标准的Java Web企业应用,由三个层组成,即表示层,应用层和数据层。三个层中,数据层负责维护需要长久保存的应用数据,提供数据存储、查询等功能,由关系数据库一统天下;表示层即用户界面层,经历了从“客户端/服务器”到“浏览器/服务器”的演变,现在,基于HTTP协议的HTML浏览器成为硕果仅存的客户端标准;应用层是竞争最激烈的战场,不但有UnixWindows的操作系统之争,有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的大旗。

相关文章链接:

JBossMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">野心勃勃的Web Beans(中篇)             JBoss野心勃勃的Web Beans(下篇) 

(责任编辑 火凤凰 sunsj@51cto.com  TEL:(010)68476636-8007)



原文转自:http://www.ltesting.net

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
...