RMI 技术讲解 1、 什么是RMI
我们知道远程过程调用(Remote Procedure Call, RPC)可以用于一个进程调用另一个进程(很可能在另一个远程主机上)中的过程,从而提供了过程的分布能力
Java 的 RMI 则在 RPC 的基础上向前又迈进了一步,即提供分布式 对象间的通讯
RMI(Remote Method Invocation)为远程方法调用,是允许运行在一个Java 虚拟机的对象调用运行在另一个Java 虚拟机上的对象的方法
这两个虚拟机可以是运行在相同计算机上的不同进程中,也可以是运行在网络上的不同计算机中
2、 RMI 的用途
RMI 的 用途是为分布式Java 应用程序之间的远程通信提供服务,提供分布式服务
目前主要应用时封装在各个J2EE 项目框架中,例如Spring,EJB(Spring 和EJB 均封装了RMI 技术) 在Spring 中实现RMI(具体代码见最后一页) ①在服务器端定义服务的接口,定义特定的类实现这些接口; ②在服务器端使用org
springframework
remoting
RmiServiceExporter 类来注册服务; ③在客户端使用org
springframework
remoting
RmiProxyFactoryBean 来实现远程服务的代理功能; ④在客户端定义访问与服务器端服务接口相同的类 3、 RMI 的局限
RMI 目前使用Java 远程消息交换协议 JRMP(Java Remote Messaging Protocol)进行通信
JRMP 是专为Java 的远程对象制定的协议,由于JRMP 是专为Java 对象制定的,因此,RMI 对于用非 Java 语言开发的应用系统的支持不足
不能与用非 Java 语言书写的对象进行通信(意思是只支持客户端和服务器端都