首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> 新手入门 >> 基础入门 >> 正文

J2EE中用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开发分布式应用程序包括以下步骤:

定义一个远程接口

实现这个远程接口

开发服务器

开发客户机

生成存根和基干,启动RMI注册表、服务器和客户机

下面我们将通过开发一个文件传输程序来实践这些步骤。

范例: 文件传输程序

这个应用程序允许客户机从远程主机上传送(即下载)任何类型的文件(纯 文本或二进制文件)。第一步是定义一个远程接口,这个接口规定了服务器所提 供方法的信号,客户机将调用这些方法。

定义一个远程接口

用于文件下载应用程序的远程接口如代码范例1所示。接口 FileInterface提供了一个方法downloadFile,这个 方法接受String参数(文件名),将文件的数据以字节数组的形式 返回。

代码范例1 1: FileInterface.java

import java.rmi.Remote;

import java.rmi.RemoteException;

public interface FileInterface extends Remote {

public byte[] downloadFile(String fileName) throws

RemoteException;

}

请注意FileInterface的以下特征:

它必须声明为public,这样客户机才能加载实现远程接口 的远程对象。

它必须扩展为Remote接口,以满足使该对象成为远程对象的 要求。

这个接口中的每种方法都必须投出一个java.rmi.RemoteException。

实现远程接口

[1] [2] [3] 下一页

【责编:Ken】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航