一起学习
编者按:好久没有关注Java EE了,这两天恶补了一下,不看不知道,一看吓一跳,Java EE在过去的一年里发生了如此大的变化:Ejb,那个曾经作为Java EE核心部件的概念中,如今已经没落了,落得人人喊打的地步,有人竟用“拯救”一词来形容JEE,真的让我感慨万千,2005年还风光无限,而如今却落得这步田地,人们不仅要问“难道Java EE不能像Ajax一样吗”。
在读这篇文章之前我们来认识一下文章的两位主人公:
Brandon Werner :布兰登维尔纳是辛辛提那州的科技企业家和软件设计师,同时也是世界开发协会XML标准组织成员之一。
Gavin King:Hibernate项目和EJB 3.0规范的发明人,以火爆的脾气和自负的性格而闻名业界,他当时发现CMP太滥,在没有任何SQL开发数据库的经验的情况下,Gavin King开发Hibernate的第一件事是去街上买了本SQL基础的书,被业界评为走向天堂阶梯的传奇人物。
那么让我们来看看两位有着特殊身份的人物在网上说了什么?
JEE缘何没有Ajax思想
Brandon Werner表示,SOA平台远比Java要强大,这就是为什么包括BEA、IBM在内的其他公司甚至根本不提供它们的SOA思想给JCP的原因。
在现实世界中,我们正在向一个SOA风格的业务实现过程和模型靠拢,Werner说到,我们必须停止在具体技术方面的思考,而开始在模式和方法方面的思考,这才是处理我们正在解决问题的最好办法。
同时Werner在其博客上发表了一篇题为“如何拯救JEE,绝不是EJB3.0”的观察文章,题目非常具有煽动性,而且锋芒毕露。他表示,他不会因为受到几个杂志编辑的鼓动,而贬低像Hibernate和Spring之类的框架,进而对EJB 3.0大唱赞歌。
Werner在其博客文章中杀气腾腾的表示,“作为一个精通企业架构和开发的人,我感觉到了这种不可避免的推动力,埋葬Hibernate和Spring,但是这就等于把一些非常好的工具扔到臭水沟里,而这只是为了继续Sun的帝国梦和JCP的领导地位。但是从企业的视角来看,它们不在乎你是否使用EJB 3.0、还是使用Spring或者Hibernate,对于架构师来说,全都是JEE。
显然在Werner看来,Hibernate和Spring还会有很好的发展。对于业界扬EJB 3.0而贬Hibernate和Spring的做法他很不以为然,那么在Werner看来,什么才是让JEE保持生命力的良丹妙药呢?
然后Werner抛出了他的惊人之言:“Ajax思想”
“Ajax”不是一种专属于任何一个公司的技术,甚至它连一个“实施指南”都没有。你可以使用任何你想使用的后端技术,使用任何你想要的持久性,甚至实施你自己的异步回调(call-back)和改进。Ajax唯一的事情是一系列非常重要的最好实践和模式,开发者可以使用它们来创建引人注目的Web客户端。为什么不让JEE更像Ajax呢?为什么在JEE模式还没有抛弃这些技术的时候,我们就朝着相关JCP技术发展呢?”
Hibernate真的被埋葬了吗?
Werner在其博客中称,他的评论已经引起了Gavin King(Hibernate项目和EJB 3.0规范的发明人)的抗议,称JBoss和JEE在模仿Hibernate的技术,King在Javalobby网站中贴出了自己的评论,他表示他没有看到Hibernate的项目如何被“埋葬”。
相反,EJB3.0给了我们更多的机会来把Hibernate和对象关系映射技术介绍给更广泛的人们,这在以前是不可能的。 我们应该感到幸运,我们可以随意使用任何超强的开源技术。
King还表示,在诅咒EJB3.0前,请真正看一下这个规范,把它与Hibernate比较一下。看一下它的实体管理器应用程序接口(EntityManager API)、看一下持久化模型、看一下查询语言。你认为这一些都是从哪儿来的呢?(是的,EJB3.0中的应用程序接口(API)不是与Hibernate中完全相同,不过它是一个正常的规范处理的修正部分。)
他继续表示到,Hibernate不会被埋葬,相反,它会变得更标准化,为了做到这一点,我们已经与其他重要的相关方进行了讨论并开展了实际的工作,尤其是和Sun和甲骨文。
这些工作进展的都非常顺利,更重要的是,对象相关性映射(ORM)现在已经通过正式的规范实现文档化了,就像Java从C++团队学习远程和管理事务一样。
King对Werner的博客文章的回应时说到:
“Ajax之所以存在,是因为它有一个标准-XmlHttpRequest。好的,假如你在真正的谈论Ajax框架,这就是这个空间还没有真正成熟的一个标志。成功的解决方案的要想出现,最终还是需要编写标准。现在Ajax框架依然是一种基本的誓言性技术”。
总结:在上面的争论中我们不难看出Brandon Werner一个Ajax思想的崇尚者,Gavin King是JCP规范的制定者,所以两个人这么激烈的争论就不足为奇了,其实焦点之处不是Ajax的问题,是人的问题,Sun公司拥有超强的开发团队是不容置疑的,但是超强的开发团队不一定会有超强的开发思想,Sun公司的后知后觉已为此付出沉重的代价,Hibernate的推出迫使Ejb3.0问世,JSF在还没有走向市场就夭折了,为什么现在流行的框架Struts,Spring,Tapstry等等却没有一个是Sun公司的,但却都是在Java的基础上建立起来的,我觉得在这些问题上是否会给Sun的高层们一些启示呢?
下载本文示例代码
Ejb 人人喊打 Sun想用Ajax 拯救Java EEEjb 人人喊打 Sun想用Ajax 拯救Java EEEjb 人人喊打 Sun想用Ajax 拯救Java EEEjb 人人喊打 Sun想用Ajax 拯救Java EEEjb 人人喊打 Sun想用Ajax 拯救Java EEEjb 人人喊打 Sun想用Ajax 拯救Java EEEjb 人人喊打 Sun想用Ajax 拯救Java EEEjb 人人喊打 Sun想用Ajax 拯救Java EEEjb 人人喊打 Sun想用Ajax 拯救Java EEEjb 人人喊打 Sun想用Ajax 拯救Java EEEjb 人人喊打 Sun想用Ajax 拯救Java EEEjb 人人喊打 Sun想用Ajax 拯救Java EE
阅读(180) | 评论(0) | 转发(0) |