发布网友 发布时间:2024-10-23 18:31
共1个回答
热心网友 时间:2024-11-01 20:10
EJB是Enterprise Java Beans技术的简称, 又被称为企业Java Beans。这种技术最早是由美国计算公司研发出来的。EJB技术的诞生标志着Java Beans的运行正式从客户端领域扩展到服务器领域。在电子商务领域运用EJB技术可以简化应用系统的开发, 这是由该技术的结构和特点所决定的。
EJB概念
EJB (Enterprise Java Beans) 是基于分布式事务处理的企业级应用程序的组件。Sun公司发布的文档中对EJB的定义是:EJB是用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构件体系结构。[2]
在开发分布式系统时, 采用EJB可以使得开发商业应用系统变得容易, 应用系统可以在一个支持EJB的环境中开发, 开发完之后部署在其它的EJB环境中, 随着需求的改变, 应用系统可以不加修改地迁移到其它功能更强、更复杂的服务器上。EJB在系统实现业务逻辑层里面负责表示程序的逻辑和提供访问数据库的接口。EJB是Enterprise Java Beans技术的简称, 又被称为企业Java Beans。这种技术最早是由美国计算公司研发出来的。EJB技术的诞生标志着Java Beans的运行正式从客户端领域扩展到服务器领域。在电子商务领域运用EJB技术可以简化应用系统的开发, 这是由该技术的结构和特点所决定的。[1]
中文名
EJB
外文名
Enterprise JavaBean
中文全称
企业级JavaBean
设计目标
是部署分布式应用程序等
用途
构筑企业级应用的服务器端
EJB概念EJB历史技术特点EJB组件的体系架构EJB组件的工作流程EJB种类EJB实行版本变化TA说参考资料
EJB概念
EJB (Enterprise Java Beans) 是基于分布式事务处理的企业级应用程序的组件。Sun公司发布的文档中对EJB的定义是:EJB是用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构件体系结构。[2]
在开发分布式系统时, 采用EJB可以使得开发商业应用系统变得容易, 应用系统可以在一个支持EJB的环境中开发, 开发完之后部署在其它的EJB环境中, 随着需求的改变, 应用系统可以不加修改地迁移到其它功能更强、更复杂的服务器上。EJB在系统实现业务逻辑层里面负责表示程序的逻辑和提供访问数据库的接口。[2]
EJB历史
从拥抱到抛弃
由于IBM和Sun Microsystems等EJB提倡者力推其前景,起初一些大公司纷纷采用EJB部署他们的系统。然而随后各种问题便接踵而至,对EJB的恶评短时间内激增。对于初学者,EJB的API显得太过困难;对于许多程序员来说,书写那些必须抛出特定异常的接口并将bean类作为抽象类实现的做法既不直观也不正常。当然,EJB所被赋予的使命,如对象关系映射和事务管理确实有其天然复杂性,但其API之复杂还是令开发人员们觉得望而却步,一些人开始怀疑EJB除了引入了复杂的实现手段以外似乎并未带来什么实际好处。
另外,实际运用中被发现,如果使用EJB来封装业务逻辑会带来性能上的下降。这是因为,最早的EJB规范只允许客户端通过特定协议(如CORBA)进行远程方法调用来调用,即使大部分实际应用根本就不需要分布式计算。直到EJB 2.0才引入了本地接口,以支持可以开发不通过网络就能直接本地调用的EJB系统。
尽管如此,EJB的广泛普及仍然为其复杂度所制约。尽管已经有一些高质量的集成开发工具可以协助开发人员通过自动编码解决一部分重复作业,但这并不能降低学习此项技术的难度。另一方面,“草根阶层”的编程爱好者们发起了一场旨在使用 “轻量级”技术以代替复杂的EJB的运动。这些技术包括Hibernate(用于提供数据持久化和对象-关系映射)及Spring框架(用于封装业务逻辑)。尽管它们不像EJB那样有巨头支持,但其在庶民间却更加流行,并且也被一些对EJB深感失望的企业所采用。
重生
EJB规范起初的一个主要价值—对分布式应用进行事务管理—在随后的实践中被一致认为几乎没能派上用场。对于企业级应用来说,Spring和Hibernate等简化框架更加实用。因此,EJB 3.0规范(JSR 220)为了迎合这个趋势相比于其前辈进行了一次激进的大跳跃。受到Spring 影响,EJB 3.0也使用所谓的“传统简单Java对象(POJO)”;同时,支持依赖注入来简化全异系统的集成与配置。Hibernate的创始人Gavin King参与了这一新版规范的制订,并对EJB大加提倡。Hibernate的许多特性也被引入到Java持久化API当中,从而取代原来的实体bean。EJB 3.0规范大幅采用Java注释(annotation)来对代码进行元数据修饰,从而消减了此前EJB编程的冗杂性。
相应地,EJB 3.0几乎成为了一个全新的API,与此前的数版可谓毫无相似度可言[3]。
技术特点
1) 具有可复制性。由于EJB是以组件为基础的技术模型, 所以在任何一个EJB服务器中都可以随意部署, 或者将其他模式直接进行移植和复制, 不需要定制专用的EJB服务器系统和容器。EJB之所以能够被复制, 是因为让自身的服务器已经定义了一些规范服务, 而这些服务又可以对EJB容器和组件之间的关系进行定义, 即使进行复制也不会破坏其内部结构的稳定性。
2) 具有重复性特点。因为EJB是服务器上运行程序的一个功能片段, 可以进行重新组装和重新定义, 所以它能够利用自身的这一特性和其他组间一起组建出符合使用需求的应用系统, 而且可以同时为多个系统提供服务。
3) 具有的平台。和计算机网络中任何一个特殊平台、Internet协议和中间件或其他基础设施不同, EJB结构平台完全是的, 具有极强的性。也正是因为如此, 它所开发出来的应用程序才能不进行任何修改, 完全被复制到另外的平台中。
4) 具有广阔的拓展空间。EJB模型是以多层分布式体系结构为基础构建起来的, 因为该系统的多功能, 所以不管是规模较小的应用程序, 还是规模较大的事务处理, 都可以运用高模型。随着电子信息和通信技术的不断发展, 应用程序的需求量不断增加, 为了让这些应用程序可以在不改变核心程序的前提下被复制到操作功能更强大、运行环境更先进的系统中, 就可以运用EJB模型来实现。所以, EJB具有极强的扩展性, 而且电子技术的进步会为它的应用提供一个非常广阔的空间。[1]
EJB组件的体系架构
EJB的架构主要包括以下几方面:
1) Enterprise Java Bean类:包含了组件的实现细节, 是实际完成bean功能的地方。EJB容器根据需要调用这个类对bean进行实例化。
2) EJB对象:在服务器端, 一个EJB对象是一个实现了bean的远程接口 (具有网络功能) 的分布式对象, 它在服务器端上包装了bean的实例。EJB对象由容器控制在适当的时机调用所需的服务, 这些服务对客户而言是透明的。
3) Remote接口:遵照EJB规范, 所有的Remote接口都必须来源于一个通用的接口, 包含了EJB对象必须实现的方法。
4) Home接口:开发者必须定义home接口, 容器厂商则提供从home接口中产生home对象实现的方法。