一个正常工作的RMI系统由下面几个部分组成:
● 远程服务接口的定义
● 远程服务接口的具体实现
● 桩(Stub)和框架(Skeleton)文件
● 一个运行远程服务的服务器
● 一个RMI命名服务,它允许客户端去发现这个远程服务
● 类文件的提供者(一个HTTP或者FTP服务器)
● 一个需要这个远程服务的客户端程序
如果所有的RMI文件都已经设计好了,那么需要下面的几个步骤去生成系统:
1、 编写并且编译接口的Java代码
2、 编写并且编译接口实现的Java代码
3、 从接口实现类中生成桩(Stub)和框架(Skeleton)类文件
4、 编写远程服务的主运行程序
5、 编写RMI的客户端程序
6、 安装并且运行RMI系统
实现过程如下:(以下代码在Windows Server 2003,JDK1.6环境下调试通过,代码来自互联网)
服务器端:
1接口
第一步就是建立和编译服务接口的Java代码。这个接口定义了所有的提供远程服务的功能,下面是源程序:
Product,java
import java.rmi.*;
public interface Product extends Remote
{
String getDescription() throws RemoteException;
}
2接口的具体实现
下一步,我们就要写远程服务的具体实现,这是一个ProductImpl类文件:
ProductImpl.java
import java.rmi.*;
import java.rmi.server.*;
public class ProductImpl extends UnicastRemoteObject implements Product
{
private String name ;
public ProductImpl(String n) throws RemoteException
{
name = n;
}
public String getDescription()
{
return "Hello,I am " + name + " . I love you !";
}
}
3 桩(Stubs)和框架(Skeletons)
下一步就是要使用RMI编译器rmic来生成桩和框架文件,这个编译运行在远程服务实现类文件上。
>rmic ProductImpl
在你的目录下运行上面的命令,成功执行完上面的命令你可以发现一个ProductImpl_stub.class文件,如果你是使用的是1.2以前的SDK,那么你还可以发现ProductImpl_Skel.class文件。
4 主机服务器
远程RMI服务必须是在一个服务器中运行的。
ProductServer.java
import java.rmi.*;
import java.rmi.server.*;
public class ProductServer {
public static void main(String args[])
{
try
{
System.out.println("Construction server implementats ...");
ProductImpl p1 = new ProductImpl("Wang.yuanbin");
ProductImpl p2 = new ProductImpl("Bueaty");
System.out.println("binding server implementation to registry ...");
Naming.rebind("wyb",p1);
Naming.rebind("Beau",p2);
System.out.println("Waiting for invocations from clients ...");
}
catch (Exception ex)
{
System.out.println("Error: " + ex );
}
}
}
分享到:
相关推荐
Java自带了一些用于RMI开发的工具: - `rmiregistry`:RMI注册表服务,用于存储和查找远程对象。 - `rmic`:编译远程接口,生成必要的Stub和Skeleton类。 - `rmid`:RMI运行时守护进程,管理远程对象的激活和持久化...
**RMI原理及应用详解** 远程方法调用(Remote Method Invocation,简称RMI)是Java平台提供的一种分布式计算技术,允许在不同的Java虚拟机(JVM)之间进行对象方法的透明调用。RMI的核心思想是使Java对象能够跨越...
二、RMI开发步骤 1. 定义远程接口:创建一个接口,继承`Remote`,并声明远程方法。 2. 实现远程接口:创建实现该接口的类,包含具体业务逻辑。 3. 创建RMIServer:在服务器端启动RMI服务,创建远程对象实例,并在RMI...
同时,这也有助于理解RMI的工作原理,包括远程方法调用的过程,对象的传输机制,以及如何进行跨网络的交互。 在实际项目中,RMI常用于构建分布式系统,例如分布式数据库、分布式缓存、分布式计算等场景。了解并掌握...
RMI(Remote Method Invocation,...了解RMI的基本原理和使用后,我们可以根据这些源码学习如何设计和实现一个简单的分布式应用,如聊天室。同时,也可以进一步研究RMI的安全性、性能优化以及异常处理等方面的知识。
远程方法调用(Remote Method Invocation,RMI)是Java提供的一种...这将帮助你理解RMI的工作原理,并为将来开发分布式应用打下基础。在实际应用中,RMI常用于构建分布式系统,如数据库连接池、分布式缓存服务等。
远程方法调用(RMI,Remote Method Invocation)是Java平台中用于构建分布式应用程序的关键技术。...理解RMI的工作原理和实现细节对于开发分布式Java应用至关重要,它能帮助开发者构建可扩展、健壮且易于维护的应用。
在Java世界中,远程方法调用(Remote Method ...理解并熟练掌握RMI的原理和使用,对于开发高效、可靠的Java网络应用至关重要。在JDK 1.5版本下,开发者可以利用RMI的优势,构建出高性能、可扩展的分布式系统。
### RMI原理详解 #### 前言与背景 RMI(Remote Method Invocation,远程方法调用)是一种Java平台上的技术,它允许开发者在不同JVM间的对象间进行方法调用,就像是本地方法调用一样简单。这项技术的出现极大地简化...
Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种分布式计算技术,它允许Java对象在不同的网络...通过实践提供的"rmi"代码示例,你可以深入理解RMI的工作原理,并掌握如何在实际项目中使用它。
**远程方法调用(Remote Method Invocation,...理解RMI的工作原理和关键组件,对于开发高效、可靠的分布式应用至关重要。通过正确使用RMI,开发者可以构建出可扩展、易于维护的分布式系统,满足各种复杂的业务需求。
RMI是Java在分布式环境中实现对象间通信的重要手段,使得开发者可以像操作本地对象一样操作远程对象,极大地简化了分布式应用的开发。 ## 1. RMI 基本概念 ### 1.1 远程接口 (Remote Interface) 远程接口定义了...
RMI使得开发者可以像调用本地对象一样调用网络上的对象,极大地简化了分布式应用程序的开发。本项目提供的“java RMI实现代码”包括客户端和服务器端的示例,通过清晰的代码注释帮助理解RMI的工作原理。 一、RMI的...
Java RMI(Remote Method Invocation,远程方法...虽然现代Java开发中,RMI可能不是首选的分布式计算解决方案(例如,Web服务和RESTful API更为流行),但了解RMI的基本工作原理对于理解Java的分布式特性仍然很有价值。
Java开发工具包(JDK)自带了RMI的支持,包括编译、运行和调试工具。例如,`rmic`用于生成远程对象的stub和skeleton,`rmiregistry`用于启动RMI注册表,`rmid`管理服务器端的Java虚拟机。 **安全性与性能优化** ...
在进行RMI开发时,确保理解并适当地处理这些问题是非常重要的。 压缩包文件"zrmi"可能包含了上述步骤中的源代码文件,包括远程接口定义、远程实现类、服务器端启动类和客户端调用类。通过查看这些源代码,你可以更...
RMI的基本原理是,通过Java序列化机制,将远程对象的方法调用和参数转化为可以在网络上传输的数据,然后在远程服务器上执行相应的方法,并将结果返回给客户端。这一过程涉及的主要组件包括远程接口、远程对象、...
首先,让我们深入理解RMI的工作原理。RMI系统由两部分组成:客户端和服务器端。客户端通过接口调用远程对象的方法,而这些调用实际上被转换为网络请求,发送到服务器端。服务器端接收到请求后,执行相应的方法,并将...
本项目实例是基于RMI技术实现的一个服务器端程序,名为"RMIServer",提供了远程服务的接口和实现,下面将详细介绍RMI的基本概念、工作原理以及如何通过这个项目实例来学习和应用RMI。 1. **RMI基本概念**: - **...