您的位置:首页 >> 编程开发 >> Java >> JavaBeans >> 正文
RSS
 

J2EE'SEJBTechnology

http://www.rdxx.com 01年11月18日 11:08 互联网 我要投稿

关键词: J2EE , EJB , JB
接口的接口被称为 enterprise bean 的远程接口,它指定在 bean 自身中定义的业务方法。当应用程序调用 enterprise bean 中的业务方法时,应用程序并不访问 bean 本身。实际上,方法调用被传递给实现 EJBObject 接口扩展的那个对象。这种做法称为委托,它是 EJB 体系结构中的一个设计要点:

“客户机从来不直接访问 enterprise bean 类的实例。客户机总是使用 enterprise bean 的远程接口来访问 enterprise bean 的实例。实现 enterprise bean 的远程接口的类由容器提供。此类所实现的分布式对象称为 EJB 对象。”(Enterprise JavaBeans Specification 1.0)

bean 对 EJBObject 接口的扩展称为其远程接口,而实现远程接口的对象则称为 EJB 对象

enterprise bean 还必须具有本地接口。此接口是标准 EJBHome 接口的扩展。实现 bean 的本地接口的对象称为本地对象。本地对象包含一个 create() 方法,此方法由应用程序调用,而应用程序则必须创建一个 bean 实例。本地对象中的 create() 方法创建一个新的 EJB 对象。它并不直接创建新的 enterprise bean 实例,因为不允许直接访问 bean。

EJB 对象和本地对象充当 bean 对象的代理,因为它们代表 bean 接收方法调用。EJB 对象主要为 bean 业务方法充当代理;本地对象主要为 bean 生存周期方法充当代理。

为 EJB 组件使用 create() 方法并不一定要实例化新的 bean。容器确定如何最好地满足创建请求,对于某些类型的 bean,它可以重用现有的实例:

“客户机使用会话 bean 本地接口上的 createremove 方法。虽然客户机以为它正在控制着 EJB 实例的生存周期,但是,是容器在处理 createremove 调用,而不一定要创建和删除 EJB 实例。在客户机和...实例之间不存在固定的映射。容器只是将客户机的工作委托给任何一个方法已经就绪的可用实例而已。”( Enterprise JavaBeans Specification 1.0)

创建新的 bean 实例受容器的控制,并可以与客户机发布 create() 方法异步。

当创建一个 EJB 组件时,开发人员负责定义 EJBObject 接口和 EJBHome 接口,但是无需编写实现这些接口的类的代码。EJB 容器软件组件自动创建这些类。

下面的代码段说明客户机应用程序可能怎样使用称为 CartBean 的 enterprise bean 来进行在线购物:

CartHome cartHome = javax.rmi.PortableRemoteObject.narrow(initialContext.lookup("applications/shopping_cart"), CartHome.class);
Cart cart = cartHome.create();
cart.addItem(item29);
cart.addItem(item67);
cart.addItem(item91);
cart.purchase();
cart.remove();

CartHome 是实现本地接口的类(EJBHome 接口的扩展)。Cart 是实现远程接口的类(EJBObject 接口的扩展)。当客户机调用应用程序方法(如 addItem()purchase())时,它们是在 cart 对象上调用的,此对象接着将这些方法的执行委托给 bean 自身。enterprise bean 的功能是通过其代理 EJB 对象(即 cart)来获得的。如果多台客户机同时访问 cart bean,将会发生什么事情呢?Enterprise bean 开发人员无需编写代码来支持并发访问。并发性由 EJB 容器支持。

下图说明各 EJB 对象之间的关系:


EJB 各对象之间的关系

服务器和容器
EJB 体系结构包括 EJB 服务器和 EJB 容器两个概念。EJB 服务器充当一种组件执行系统,正如 EJB 白皮书中所述:

“Enterprise JavaBeans 规范为每个支持完全可移植性的 Java 应用程序服务器定义了一个标准模型。任何厂商都可以使用此模型来实现对 Enterprise JavaBeans 组件的支持。多种系统(如 TP 监视器、CORBA 运行时系统、COM 运行时系统、数据库系统、Web 服务器系统或其它基于服务器的运行时系统)都可以调整到能够支持可移植的 Enterprise JavaBeans 组件。”(Thomas,

 
 
标签: J2EE , EJB , JB 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站