background image

用 RMI 和 CORBA 实现分布式 Java 编程

Java 远程方法调用(RMI)机制和公用对象请求代理体系(CORBA)

 

是最重要 和使用最广泛

 

的两种分布式对象系统。每个系统都有其特点和短处。它们在行 业中被用于从电子交易到

 

保健医疗的各个领域。一个项目如果要从这两种分布式 机制中选用一个,往往难以抉择。
本文概括地介绍了 RMI 和 CORBA

 

,更重要的是, 它将介绍如何开发一个有用的应用程

序,用于从远程主机下载文件。然后它将:
  简要介绍分布式对象系统
  简要介绍 RMI 和 CORBA
  让你对在 RMI 和 CORBA 中开发应用程序所涉及的工作有个初步印象
  演示如何使用 RMI 和 CORBA,从远程主机传送文件
  对 RMI 和 CORBA 进行简单比较
  客户机/服务器模型
  客户机/服务器模型是分布式计算的一种形式,在这种形式中,一个程序(  

客 户机)与

另一个程序(服务器)

 

通讯以便交换信息。在这种模型中,客户机和服 务器通常都说同样的

语言--也就是说客户机和服务器能理解同一个协议--  

这 样它们才能通讯。

  虽然客户机/

 

服务器模型的实现方式多种多样,但典型做法是使用底层套接字。 使用

套接字开发客户机/

 

服务器系统意味着,我们必须设计一个协议,也就是客户 机和服务

 

器都认识的一组命令集,通过这些命令它们就能通讯了。举例来说, HTTP 协议中提供了
一个名为 GET 的方法,所有 Web

 

服务器都必须实现这个方法,所 有 Web 客户机(浏览

器)都必须使用这个方法,才能获取文档。
  分布式对象模型

 

  基于分布式对象的系统是一组对象的集合,这些对象以一种明确定义封装的接 口把
服务的请求者(客户机)和服务的提供者(服务器)

 

分隔开。换言之,客户 机从服务的实现中

 

分离出来,变成数据的呈现和可执行代码。这就是基于分布式 对象的模型与纯粹的客户
机/服务器模型的主要区别之一。

 

  在基于分布式对象的模型中,客户机向对象发送消息,然后对象解释该消息以 便决

 

定要执行什么服务。这项服务,也就是方法,可以选择是让对象还是让代理 来执行。Java
远程方法调用(RMI)和公用对象请求代理体系(CORBA)

 

就是这种 模型的例子。

  RMI
  RMI 是一个分布式对象系统,它使你能够轻松地开发出分布式 Java

 

应用程序。 在

RMI

 

中开发分布式应用程序比用套接字开发要简单,因为不需要做设计协议这种 很容易

出错的工作。在 RMI

 

中,开发者会有一种错觉,似乎是从本地类文件调用的 本地方法,

其实参数传送给了远程目标,目标解释参数后再把结果发回给调用方。
  RMI 应用程序初步
  使用 RMI 开发分布式应用程序包括以下步骤:
  定义一个远程接口
  实现这个远程接口
  开发服务器