`

EJB的发展历史

    博客分类:
  • EJB
阅读更多
EJB的发展历史

转自:http://book.51cto.com/art/201008/220992.htm
8.1.2 EJB的发展历史
http://book.51cto.com  2010-08-21 17:25  李刚  电子工业出版社  我要评论(0)
摘要:《经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发》第8章会话EJB,升级之后的EJB 3规范对开发者来说具有简单、易用的特征,正是因为这种勇于自我革新的精神,使得EJB 3规范重新焕发出新的魅力。本小节为大家介绍EJB的发展历史。
标签:EJB  Java EE  WebLogic  JSF+EJB 3+JPA  经典Java EE企业应用实战


8.1.2  EJB的发展历史

对于EJB这种备受争议却又充满传奇色彩的技术,我们将再次回顾它从辉煌出场,经历黯然衰败,直到今天再次辉煌的发展轮回。

(1)EJB 1.0

最初的EJB 1.0大约于1998年发布,最初的规范只包含有状态的和无状态的两种服务器对象(后来统称为有状态的会话Bean和无状态的会话Bean),以及可选的持久化领域对象(后来称为实体Bean),EJB 1.0就已经提供了良好的分布式支持功能:它允许通过远程接口来远程调用EJB中的业务方法。

EJB 1.0规范试图简化RMI的远程访问编程,但EJB 1.0规范却引入了新的烦琐,开发编写一个EJB更难了,甚至比直接用RMI更复杂。但无论如何,EJB 1.0的远程访问支持还是吸引了大量厂商的眼球,立即成为当时最大的热门技术。

但EJB 1.0也有一个考虑不全的地方,它过早地估计网络就是计算机,它强制客户机组件总以远程访问的方式来调用EJB的方法,对于一些不需要远程访问支持的系统来说,EJB 1.0的远程访问支持就变成了一种累赘:它会加大系统开销,影响性能。

(2)EJB 1.1

EJB 1.1与EJB 1.0的区别在于EJB 1.1正式支持实体Bean,实体Bean成为EJB核心规范之一,实体Bean既是当年Sun公司寄予厚望的持久化解决方案,也是导致EJB饱受骂名的重要原因。除此之外,EJB 1.1引入了XML格式的部署描述文件,使用XML配置文件以声明式的方式来管理EJB部署信息。

EJB引入XML配置文件时大概是XML最风光的时候,大量的技术实现、框架都打算采用XML来作为配置文件,将以"硬编码"方式写在程序代码中的信息提取到XML配置文件中成了一种潮流。再后来,Annotation出现了,大部分技术、框架又放弃了XML配置文件,改为使用Annotation来管理配置信息。

(3)EJB 2.0

EJB 2.0解决了EJB 1.0中强制远程访问支持带来的系统开销和性能下降问题,EJB 2.0规范引入了本地接口的概念,它允许开发者自己决定是否要让EJB组件支持远程访问,如果EJB组件不需要支持远程访问,让Bean实现类实现本地接口即可,这就可以避免远程访问支持带来的系统开销和性能下降。

EJB 2.0增强了实体Bean的功能,它为CMP(容器管理持久化)的EJB提供了容器管理关系(CMR)的支持,允许开发者通过配置文件来管理EJB之间的关联关系。而且还引入了EJB查询语言:EJB-QL,EJB-QL正式为实体Bean提供了查询支持。不幸的是,EJB-QL的功能似乎不如原生SQL强大,往往对开发者形成某种制约。

EJB 2.0规范的另一个亮点是:消息驱动Bean(MDB),消息驱动Bean本质上与无状态的会话Bean相同。只是它无须远程接口,因此它不能被客户机调用。但客户机组件可通过向消息目的发送消息来触发MDB的onMessage方法。

(4)EJB 2.1

EJB 2.1增加了Web Service支持,增加Web Service支持后的EJB更有利于异构系统的整合。不仅如此,EJB 2.1还增加了计时器服务,允许按指定时间或固定间隔来调用EJB的业务方法,计时器服务可以非常方便地为系统提供任务调度的支持。

除此之外,EJB 2.1增强了EJB-QL的功能,从而提供了更强大的查询支持。虽然EJB 2.1在努力改进EJB-QL查询功能,但大家对EJB 2的骂声掩盖了Sun在EJB-QL上的努力。

(5)EJB 3.0

EJB 3完全抛弃了EJB 2实体Bean的设计,仅仅保留原有的Session Bean和消息驱动Bean,这体现了EJB 3自我革新的巨大勇气。EJB 3引进了全新的JPA规范作为持久化解决方案--也许这个说法有一定的问题,因为JPA被定义成一种独立的持久化API,它甚至已经不再属于EJB 3规范。

EJB 3再次简化了EJB 2中Session Bean的开发,Session Bean不再需要Home接口,EJB 3规范只要求提供远程或本地的业务接口即可。而且EJB 3不再推荐使用XML文件作为部署描述文件,而是改为使用Annotation来设置部署描述信息,进一步简化了EJB组件的开发过程。

总之,EJB 3.0是EJB历史上最重要的版本之一,EJB 3.0使得经典Java EE技术重回开发主流,让越来越多的人愿意选择以EJB 3为核心的Java EE来开发企业级应用。

(6)EJB 3.1

笔者成书之时,EJB 3.1规范已经作为Java EE 6规范的一部分被发布。由于EJB 3.1规范刚刚发布不久,因此支持EJB 3.1的应用服务器并不多见,但EJB 3.1宣称进一步简化了EJB 3.0的开发过程,例如,EJB 3.1允许企业Bean只提供一个Bean类,甚至无须提供业务接口;允许通过异步的方式来调用Session Bean的业务方法;简化了EJB的类文件必须打包到JAR文件中的限制,允许直接将EJB类放到WAR文件中。

相信不久各应用服务器厂商马上就会推出支持EJB 3.1规范的服务器,而EJB 3.1也会比EJB 3.0更深入人心。

现在Java EE应用架构已经形成两种主流的技术架构:一种是以EJB为核心,前端以JSF为MVC框架的技术架构,这种技术架构以Sun提倡的官方Java EE技术为主;另一种则是以Spring+Hibernate为核心,前端以Struts 1或Struts 2为MVC框架的技术架构,这种技术架构以主流的开源框架为主。笔者把前者称为经典Java EE,把后者称为轻量级Java EE。

分享到:
评论

相关推荐

    EJB的入门教材.pdf

    1. EJB的历史与发展:EJB规范自1998年首次发布以来,已经经历了多个版本的更新,每个新版本都引入了一些新的特性和改进。了解EJB的发展历程有助于理解其设计理念和使用场景。 2. EJB的架构和组件类型:EJB架构主要...

    精通EJB第二版

    在第二版中,作者针对EJB 2.x规范进行了深入探讨,这是EJB发展的一个重要阶段,引入了许多关键特性,如会话bean、实体bean、消息驱动bean,以及ejb-jar.xml配置文件的使用。 1. **组件模型**:EJB组件模型包括会话...

    EJB 资料,enterprise javabean

    #### 一、EJB 概念与历史背景 EJB(Enterprise JavaBeans)是Java平台的一部分,用于开发和管理基于组件的企业级应用程序。它由Sun Microsystems在Java 2平台企业版(J2EE)中首次引入,并成为构建大型分布式应用的...

    自己编写的EJB源代码

    虽然现在的最佳实践可能已经发生了变化,但理解这些基础知识对于深入理解Java EE架构和历史发展仍然很有价值。如果你对EJB感兴趣,可以借此机会研究如何在现代环境中重构或升级这些旧代码,以利用更先进的技术和最佳...

    ejb2.0.rar_EJB2.0特性_ejb2.0

    EJB2.0,全称为Enterprise JavaBeans 2.0,是Java EE(Java Platform, Enterprise Edition)平台上的一个核心组件,主要用于构建可扩展、安全...尽管如此,EJB2.0仍然是理解Java EE发展历史和企业级开发的重要里程碑。

    Manning - Bitter EJB @2003.pdf

    《Bitter EJB》这本书反映了EJB技术自1998年发布以来至2003年间的发展历程,期间经历了多个版本的迭代,包括EJB 1.0(1998年3月)、EJB 1.1(1999年11月)以及EJB 2.0(2001年8月)。每个版本都在试图解决前一版本中...

    EJB 企业级javabean

    虽然EJB在早期版本中被批评为过于复杂,但随着Java EE的发展,EJB逐渐简化,特别是EJB 3.0引入了注解,大大降低了学习曲线。现在的EJB更加轻量级,比如引入了无状态会话Bean,以及CDI(Contexts and Dependency ...

    Java EJB 3.0实例教程 企业应用开发核心技术 PDF

    期待已久的EJB3.0最终规范已经发布了。虽然EJB3.0 最终规范出来了一段时间,但对EJB3.0的应用还停留在介绍之中,应用实例更是少之又少,所以作者拟写本书,以简单的实例...随着EJB3的发展,EJB2.x将会逐步成为历史。

    Study EJB_Note

    这一章节将介绍EJB的历史、它如何解决企业级开发的挑战以及与之相关的JSR(Java Specification Requests)和JCP(Java Community Process)等标准制定过程。 2. **FirstEJB**:从零开始,学习EJB编程的基础步骤和...

    EJB3.0开发手册

    - **EJB的历史地位**:自1999年作为J2EE规范的一部分首次推出以来,EJB(Enterprise JavaBeans)成为了Java企业级开发的重要组成部分。它的出现极大地改变了Java企业级开发的方式,为开发者提供了良好的架构支持。 ...

    EJB概要描述了EJB中最为重要的知识点

    #### 二、企业级应用的架构发展历史 1. **Host/Terminal(主机/终端,终端不具备处理能力,数据由主机处理)** - 特点:终端为“哑终端”,仅能接收命令而无法处理;所有处理逻辑均在主机上完成。 - 优点:安全性...

    Why J2EE Without EJB.pdf

    #### EJB的历史背景及问题分析 1. **EJB的设计初衷**:当EJB首次出现时,大多数开发者对其充满期待,认为它是企业级中间件的未来之路。然而随着时间的推移,这种观念逐渐发生了变化。 2. **技术发展的影响**: -...

    EJB学习笔记.doc

    EJB的发展与企业级程序架构的历史紧密相关。早期的Host/Terminal架构虽然安全可靠,但昂贵且不易升级。随着技术进步,Client/Server架构出现,业务逻辑移至客户端,降低了开发成本,但维护困难且无法应对大量用户。...

    ejbCreate函数用于初始化一个EJB实例.zip_QRL_YVVX_初始化一个EJB实例

    Enterprise JavaBeans(EJB)是Java平台...随着EJB规范的发展,最佳实践已经转向使用`@PostConstruct`注解,以遵循更现代化的Java编程模式。然而,理解`ejbCreate`的历史和用途对于理解和升级旧版EJB代码库仍然很重要。

    ejb2.0 api文档快速开发

    总的来说,EJB 2.0 API文档对于理解企业级Java开发的历史和现代框架的演变至关重要。虽然其复杂性在某种程度上限制了它的广泛应用,但它仍然是Java EE发展的重要里程碑,对后续的技术演进有着深远的影响。通过深入...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    8.1.2 EJB的发展历史 298 8.1.3 EJB的优势和使用场景 299 8.2 EJB的分类 301 8.2.1 Session Bean的概念和作用 302 8.2.2 Message Driven Bean的概念和 作用 303 8.2.3 实体和JPA 303 8.3 开发无状态的Session Bean ...

    EJB2 SessionBean

    **EJB2 SessionBean**是Java企业版...尽管现代Java EE(现称为Jakarta EE)已经发展到了EJB3.x和更高级别,但理解EJB2 SessionBean的基本概念和工作原理对理解整个企业级应用开发的历史和演进仍然是非常有价值的。

    自己整理的EJB2的处理流程图例

    **EJB2(Enterprise JavaBeans 2)处理流程...不过,随着技术的发展,EJB3引入了更简洁的注解和JSF等新特性,使得EJB的使用变得更加便捷。尽管如此,EJB2仍然是理解和学习企业级Java应用开发历史和技术演进的重要部分。

Global site tag (gtag.js) - Google Analytics