JAVA RMI 调查报告
由于 Java 具有跨平台、代码可移植性、安全高效等广泛而强大的功能,因而在开发网
络分布式应用的时候,可以用它自身的机制实现分布式计算,一种基于 Java 的远程方法调
用(RMI)为我们开发企业分布式应用提供了行之有效的解决方案。
随着电力企业信息化建设的不断深入和发展,企业内部和企业与企业之间对信息、对数
据的交换量大大增加,这些信息与数据越来越需要在不同的计算机网络间传送和交流。同时,
由于各单位、各部门之间的现存的计算机网络硬件设备与操作系统千差万别,应用水平也参
差不齐,因此,开发出跨平台、可移植、高效安全的网络分布式应用来服务于电力企业,就
显得尤为重要。
在当今的编程术语里,分布式计算已经成为很常见的词,它将企业的业务数据和程序分
布在网络的不同物理位置上,通过调动网络上多台计算机的处理能力,发挥远程调用数据的
功能。
远程方法调用(Remote Method Invocation ,RMI),可以在不同的 Java 虚拟机(JVM)之间
实现对象与对象的通信。JVM 可以位于相同或不同计算机上,在多个 JVM 中,一个 JVM 可以
调用存储在其它 JVM 的对象的方法。
本文主要介绍 RMI 的特点,分析应用 RMI 进行企业分布式计算的原理,以及利用 RMI 实
现基于 Java 的企业分布式应用的具体步骤。
远程方法调用(RMI)的特点
1、 TCP 编程的缺点
由于 Java 编程语言设计之初就是面向对象和支持网络的,因此,基于对象的 RMI
机制已经内置在 Java 平台中。
我们经常会在网络开发中使用 TCP/IP 编程,这样,自然而然地就会涉及到 Socket
(套接字)编程。但是,使用 Socket 编程需要大量重复编码,在复杂分布式操作时显
得非常麻烦,而且易于出错。因此,如何快速、高效、安全、可扩展地进行网络分布式
计算,是开发者们一贯追求和倡导的主题。直到 RMI 的出现,这种繁杂、低效的开发情
况才有很大改观。
2、RMI 编程的特点
当我们利用对象序列化在网络上分配对象时,RMI 提供了非 Java 平台无法匹敌的
独特而强大的分布式计算模型,RMI 主要有以下特点:
客户机可以向本地方法一样调用远程服务器上的方法;
可以根据接口指定客户机/服务器编程合约;
可以从服务器对象缺省二进制类文件,自动生成调动/反调动代码;
将 Java 编程模型扩展到机器边界(和 Java 虚拟机(JVM)边界之外),不需要任何特
殊语法;
还可以和一个远程方法调用中的数据同时传输行为(代码)。
尽管 RMI 不是唯一的企业级远程对象访问方案,但它却是最容易实现的。
3、RMI 与 CORBA
作为分布式应用程序框架的规范,COBRA 首当其冲,它是由对象管理组织(OMG)开
发的。与 CORBA 不同的是,CORBA 能够利用不同编程语言(例如 C/C++、Basic 等)开
发实现分布式应用,而 RMI 是一种纯 Java 解决方案。在 RMI 中,程序的所有部分都由
Java 语言编写,这样,开发出来的程序完全符合 Java 规范,便于实现跨平台访问、扩
展和移植。按照笔者所在西北电力建设集团公司的情况看,服务器操作系统主要有