技术开发 频道

EJB3.0:是脱胎换骨,还是重蹈覆辙?



     异军突起:欲取EJB而代之 

    虽然EJB过于复杂,使用它的开发人员比较少,这并不等于人们对企业级的服务的需求小。相反,随着企业信息化程度越来越高,对方便易用的企业级服务的需要与日俱增。
在EJB规范中,关于实体Bean的描述是最多的。看上去实体Bean的功能十分强大,但实际上并非如此。实体Bean的主要功能是对数据进行包装,从而使数据持久化。但这个EJB中最重要的功能也是最虚弱的。本来很简单的功能Sun却定义了一大堆接口,而且不能通过实体Bean进行SQL级的查询,并且实体Bean必须得依托EJB容器才能使用。这些限制大大降低了实体Bean的使用价值。

    虽然实体Bean的难以使用让人望而却步,但对数据持久化的需求没有一天停止过。自从在进入二十一世纪以来,有许多类EJB类似但更容易使用的数据持久化组件开始成为开发人员的新宠。这其中比较流行的有Hibernate、JDO和TopLink。

    在这里Hibernate当仁不让地成为了最耀眼的明星。Hibernate不能不说是一个奇迹,它在不到3年的时间里,从一个不起眼的开源软件成为了今天业界瞩目的主流O/R映射框架,它的创始人Gavin King也一夜成名。而EJB在它诞生后的几年时间里,却骂声不断,它们之间形成了强烈的反差。当然,从技术角度来说,Hibernate的技术并不是非常先进的,而Gavin King也不是什么绝顶高手。Hibernate之所以能发展得如此快,主要是因为Hibernate的开发难度比较EJB小,而且Hibernate的使用并不依赖于具体的容器,可以将Hibernate使用在B/S或C/S的任何Java环境上。

    而今年夏天投票通过的JDO2.0标准从某种程度而言,并不逊色于Hibernate当前的版本,有些功能甚至比Hibernate还要好,例如 JDO支持对类属性的惰性装载,而Hibernate要到3才支持,当前Hibernate仅仅支持类的惰性装载。

    TopLink是比较古老的O/R映射框架,自从它被Oracle收购后,对Oracle数据库有了更好的支持。但这种框架并不是开源的,而且售价不菲。

    这几种O/R映射框架大有取代EJB之势,而Sun由于已经有了EJB,也不可能再做一个和这些框架类似的东本和它们竞争。因此,Sun要想扭转EJB的颓势,必须要从EJB下手。而EJB1.x和EJB2.x都以失败而告终,那么EJB的下一个版本EJB3.0又会如何呢,Hibernate的创始人Gavin King的加入会使EJB3.0成为继Hibernate的下一个新宠吗?
0
相关文章