background image

 

分布式对象技术。最流行的是由 Object Management Group 

 

创建的 CORBA、Sun 

Microsystems   

的 Java RMI (JRMP)   

和 Microsoft   

的 DCOM   

和 MTS(

 

又名 COM+)。每

种都有其自身的优缺点。Sun Microsystems   

的 Enterprise JavaBean 是最新加入这个

圈子的技术。在某些方面,它既是这些技术的竟争者,同时也是合作者。
  由于在三层计算中使用了其它开放标准(  

如 LDAP),CORBA(公共对象请求中介体系

结构)

 

在解决供应商垄断问题方面取得了成功。不幸的是,虽然 CORBA 根本改变了分布

式计算,但经验证编程模块太复杂,而且供应商不能一致地遵守规范。CORBA 有高级的
分布式计算,但已证明太难而无法实现,并且其可移植性也比预期差。
  Enterprise JavaBean (EJB)   

是 Sun Microsystems   

对 CORBA 的可移植性和复杂

性的解决方案。EJB 

 

引入了比 CORBA 更简单的编程模块,它可以让开发人员创建可移植

 

分布式组件,称作 Enterprise Bean。EJB 编程模块可以让开发人员创建安全的、事务性

 

的和持久的商业对象 (Enterprise Bean),该对象使用非常简单的编程模块和声明属性。

 

与 CORBA 不同,例如访问控制(授权安全性)和事务管理等设施非常易于编程。CORBA 

 

需要使用复杂的 API 

 

来利用这些服务,而 EJB 

则根据一种称作 部署描述信息 的特性文

 

件中的声明将这些服务自动应用到 Enterprise Bean

 

。这个模型确保了 bean 开发人员

可以集中精力编写商业逻辑,而容器会自动管理更复杂但又必要的操作。

 

  由于 EJB 

 

规范颁布了一组明确的 EJB 容器(供应商服务器)  

和 EJB 组件(商业对象)之

 

间 的 契 约 , 因 此 EJB   中 实 现 了 可 移 植 性 。 这 些 契 约 或 规 则 确 切 规 定 容 器 必 须 为 
Enterprise Bean 提供什么服务,bean 

 

开发人员需要使用什么 API 和声明属性来创建 

Enterprise Bean

 

。由于详细指定了 Enterprise Bean 的生命周期,因此供应商知道如

 

何在运行时管理 bean,bean 

 

开发人员确切知道 Enterprise Bean 在其存在期间可以

做什么。
  Enterprise JavaBean 简化了分布式对象的开发、部署和访问。EJB 分布式对象(一种 
Enterprise Bean)

 

的开发人员只需依照为 Enterprise JavaBean 建立的契约和协议实

 

现对象。支持 EJB 的应用程序服务器可以,也确实,使用任何分布式网络协议,包括本

 

地 Java RMI 

 

协议 (JRMP)

 

、专有协议或 CORBA 

 

的网络协议 (IIOP)。不管在某个特定产品

中使用的基本网络协议是什么,EJB 

 

使用相同的编程 API 

 

和语义以 Java RMI-IIOP 访问

 

分布式对象。协议的细节对应用程序和 bean 开发人员隐藏;对于所有供应商来说,定位

 

和使用分布式 bean 的方法是相同的。
  注:Enterprise Bean   

与 JavaBean 不同。JavaBean 

 

是使用 java.beans 包开发的,

 

它是 Java 2 标准版的一部分。JavaBean 是一台机器上同一个地址空间中运行的组件 。
JavaBean 是进程内组件。Enterprise Bean 

 

是使用 javax.ejb 

 

包开发的,它是标准 JDK 

 

的扩展,是 Java 2 Enterprise Edition 的一部分。Enterprise Bean 是在多台机器上跨

 

几个地址空间运行的组件。因此 Enterprise Bean 是进程间组件。JavaBean 通常用作 
GUI 

 

窗口小部件,而 Enterprise Bean 则用作分布式商业对象。