用 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 开发分布式应用程序包括以下步骤:
定义一个远程接口
实现这个远程接口
开发服务器