Java 天地
企业JavaBeansTM技术介绍(3)
作者:不详 来源:天极网
EJB 结构
上图显示了EJB技术的体系结构。EJB规范支持任何类型的客户,
因为该规范不强制要求任何远程对象的"网线"协议;这就意味着一个服务器可支持多种协议,
如RMI、IIOP(CORBA)和DCOM等;它也说明, 一个EJB服务器的客户程序不一定要用Java语言来编写。
EJB服务器实际是各种支持EJB安装的服务的集合,
这些服务包括分布式事务管理、分布式对象管理和对这些对象的分布式调用以及低层次系统服务。简而言之,
EJB服务器管理那些支持EJB组件所需要的资源。一个EJB服务器提供商可提供一个容器的实现(详情见后),
他也可以为第三方厂商提供API以使其能嵌入附加EJB容器。EJB规范在服务器的设计和实现上给了开发人员以极大的自由。
EJB服务器正象是EJB组件的一个家, 而容器则是Bean生活的地方,
就象是一个记录"生活"在数据库中一样。它提供了一个可升级、安全和事务性的环境,
在该环境中Bean可以操作。处理对象生命周期(包括创建和销毁一个对象)的正是容器。容器也负责Bean的状态管理。
容器对客户是透明的, 容器上没有客户API。当一个Bean被安装在容器中时, 该容器提供两种实现:
Bean的EJBHome接口的实现(详情见后)和Bean的远程接口的实现。容器也负责保证在JavaJNDI
中能够获得Bean的EJBHome接口。
要构造一个Bean, 你必须首先实现商务方法。 例如,
如果你正在编写一个帐目检查Bean, 你可能要实现一个"借方"方法用来作为接口的一部分;你还必须实现两种类型的EJB接口之一
--Session Bean或Entity Bean;这些接口包括了诸如与工作设置管理相关的方法并且不暴露给客户。
当把一个Bean安装在服务器上时,
远程接口(在CORBA中通常称作skeleton)则被自动生成。远程接口的实现被称为EJBObject,
它只将程序员指定的远程接口暴露出来。尽管企业Bean类包含了同样的方法, 但它并不实现远程界面。
EJBObject的作用就象是一个代理人, 它截取远程对象调用并调用企业Bean实例中的适当的方法。
一个EJB容器可实现安装在该容器中的每个企业Bean的EJBHome接口, 它允许Bean的创建和清除,
并且可查询有关Bean的信息或"元数据"。该容器使客户通过JNDI便可获得EJBHome接口。对Entity Beans来说,
EJBHome接口也包含了一个或多个"finder"方法, 使客户用一个主键即可查询有关Bean的信息。
特性
应用程序开发人员所面临的最复杂的问题之一是编写分布式事务应用程序。EJB技术的一个主要特性就是它对分布式事务的支持;EJB技术使你可编写访问跨越多个EJB服务器的多重分布式数据库的应用程序。为使这一工作变得简单,
EJB规范允许你在部署阶段就以声明的形式指出事务行为, 而管理事务行为的负担被转移给服务器,
特别是转移给容器和EJB服务器提供者。如果Bean的开发人员有更高的事务需求, 则可使Bean通过程序来管理事务界限。
|