返回列表 回复 发帖

EJB发展历史与EJB 3.0特性

EJB从1996年发布以来,产生了不同的EJB版本,到现在为止,EJB已经成功的发布到了EJB 3.0版本了。每一次发布,都会具有不同的特性。
1.EJB发展历史
  首先我们简单回顾一下EJB的发展历史。
(1)EJB 1.0
      最初的版本1.0开始支持有状态和无状态的服务器对象(称为会话Bean),以及可选支持持久化域对象(称为实体Bean)。在可移植性方面,EJB通过提供可移植性和远程特性的专门远程接口达到访问的目的,但是受到了远程基础结构和按值传递的语义的开销的影响。
(2)EJB 1.1
      其后的版本1.1要求厂商支持实体bean,并且引入XML部署描述文件来替换存储在专门的串行化类文件中的数据。
(3)EJB 2.0
      EJB 2.0通过引入本地接口解决远程接口造成的开销和按值传递的缺陷。只有运行在J2EE容器内的客户才能通过其本地接口访问EJB,但是按引用传递的方法调用允许组件之间更加有效的进行交换操作。EJB 2.0还引入了新型的EJB,消息驱动Bean(message-drive bean,MDB),能够参与异步消息系统。实体bean得到了容器管理的关系的支持,允许bean的开发者声明式指定由EJB容器管理的实体bean之间的持久化关系。另外,引入了EJB查询语言EJB QL,它使开发者具有了使用类似SQL那样的语言来查询实体bean实例的功能。
(4)EJB 2.1
      EJB 2.1添加了Web服务的支持,允许会话bean暴露端点接口,添加了允许按照指定的时间或者时间间隔调用EJB的计时器服务。EJB 2.1还提供了扩展EJB QL的功能,并且引入XML schema来替换定义了ejb-jar.xml部署描述文件的DTD。
(5)EJB 3.0
      EJB 3最重要的改动是实体bean被替换为POJO,现在被称为实体,可以运行在EJB容器的外部,因此在实体类本身中不需要专门的接口或者EJB专有的代码。会话bean不再需要主接口或者EJB专有的组件接口。在逻辑上它们仍然支持远程和非远程接口。这两个改动和很多其他改动都符合EJB 3以简化的开发模型为中心的新的设计理念。

2.EJB 3.0特性
     EJB技术创建了服务器端开发的标准。与Java本身一样,EJB改变了开发的方式并且激发了很多创新。实际上,直到几年之前,除了Microsoft .NET框架EJB还没有遇到过真正的对手。EJB 3.0作为最新的版本,更具有下面显而易见的特性。
*易用性
   EJB 3可能是最简单的服务器端开发平台。最值得注意的是POJO程序设计、使用注解而少用冗长的XML、大量使用有意义的默认值,以及JPA。虽然EJB服务的数量众多,但是会发现它们非常直观。在很大程度上,EJB 3具有实用的外观并且不要求我们了解错综复杂的理论。实际上,大多数EJB服务的目的是使我们脱离这种思维模式,以便集中精力完成工作。

*集成解决方案套装

     EJB 3提供服务器解决方案的完整套装,包括持久化、消息、轻量型计划、远程处理、Web服务、依赖注入(Dependency Injection,DI)和拦截器。这就是说我们不必花费很多时间寻找第三方工具并将其集成到应用程序中。此外,EJB 3提供与其他Java EE技术的无缝集成,比如JDBC、JavaMail、Java事务API(Java Transaction API,JTA)、Java消息服务(Java Messaging Service,JMS)、Java验证和授权服务(Java Authentication and Authorization Service,JAAS)、Java命名和目录接口(Java Naming and Directory Interface,JNDI)、Java远程方法调用(Java Remote Method Invocation,RMI),等等。EJB也保证与持久化层技术的无缝集成,比如JavaServer Pages(JSP)、servlet、JavaServer Faces(JSF)和Swing。

*开放的Java EE标准

    EJB是Java EE标准的关键部分。如果采用EJB 3,这是必须掌握的极为重要的概念。EJB 3有开放的、公共的API规范,组织机构鼓励使用它创建容器或持久化提供器实现。EJB 3标准是Java Community Process(JCP)开发的,它由非排外的、推动Java标准发展的个体小组构成。开放标准使更多的厂商支持EJB 3,这就意味着不必依赖专有的解决方案。

*广泛的厂商支持

    EJB被数量众多的各种各样的独立机构支持,包括技术领域中最大、最受尊重的和财力最雄厚的大公司,比如Oracle和IBM,以及充满热情和活力的开源组织,比如JBoss和Geronimo。
广泛的厂商支持带来三大重要优势。首先,我们不会受到个别公司或组织的兴衰的影响。其次,大量人员的长期投入使这种技术尽可能保持竞争力。从本质上讲,在这个充满竞争的时代,可以充分利用Java和Java以外的各种技术的优势。第三,厂商在过去的相互竞争中提供了具有附加值的非标准特性。所有这些因素让EJB继续健康向前发展。

*稳定的、高质量的代码基础

    虽然EJB 3是开创性的一步,但是大多数应用程序服务器实现仍然受益于相对稳定的代码基础。长期以来,这些代码基础经受了一些要求最为苛刻的企业环境的考验。大多数持久化提供器解决方案(比如JDO、Hibernate和TopLink)也是稳定的产品,在很多任务关键型的产品型环境中使用过。这就是说,虽然EJB 3非常新,但是我们可以期望较快地、得到稳定的实现。此外,由于基于标准的开发的本质,厂商一般会重视EJB 3容器实现的质量。在某种意义上,它有利于保证内在的实现质量。

*集群、负载平衡和故障转移

    在历史上,大多数应用程序服务器厂商增加的特性对集群、负载平衡和故障转移提供了健壮的支持。历史记录证明,EJB应用程序服务器支持一些最大型的支持高性能计算(high-performance computing,HPC)的服务器农场环境。更重要的是,不必修改代码,不需要集成第三方工具,通过相对简单的配置(在创建硬件集群的固有工作之外),我们就可以利用这样的支持。这就是说,如果有需要,可以依靠硬件集群使用EJB 3扩展我们的应用程序。
返回列表