`
ywChen
  • 浏览: 121636 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

RMI入门

    博客分类:
  • J2EE
阅读更多

    RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体现在它强大的开发分布式网络应用的能力上,是纯Java的网络分布式应用系统的核心解决方案之一。其实它可以被看作是RPC的Java版本。但是传统RPC并不能很好地应用于分布式对象系统。而Java RMI 则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。


    通俗来说即远程方法调用是一种计算机之间对象互相调用对方函数,启动对方进程的一种机制,使用这种机制,某一台计算机上的对象在调用另外一台计算机上的方法时,使用的程序语法规则和在本地机上对象间的方法调用的语法规则一样。

 

 

RMI(远程方法调用)原理示意图 


 

 方法调用从客户对象经占位程序(Stub)、远程引用层(Remote Reference Layer)和传输层(Transport Layer)向下,传递给主机,然后再次经传 输层,向上穿过远程调用层和骨干网(Skeleton),到达服务器对象。 占位程序扮演着远程服务器对象的代理的角色,使该对象可被客户激活。 远程引用层处理语义、管理单一或多重对象的通信,决定调用是应发往一个服务器还是多个。传输层管理实际的连接,并且追踪可以接受方法调用的远程对象。服务器端的骨干网完成对服务器对象实际的方法调用,并获取返回值。返回值向下经远程引用层、服务器端的传输层传递回客户端,再向上经传输层和远程调用层返回。最后,占位程序获得返回值。 

要完成以上步骤需要有以下几个步骤: 

    1、 生成一个远程接口 

    2、 实现远程对象(服务器端程序)

    3、 生成占位程序和骨干网(服务器端程序)

    4、 编写服务器程序 

    5、 编写客户程序 

    6、 注册远程对象 

    7、 启动远程对象 

 

    【例】简单rmi入门例子

 

package rmi;
import java.rmi.Remote;
import java.rmi.RemoteException;
/** 
 * 第1步:必须定义接口,要求如下:每个方法必须抛出异常 
 */  
public interface HelloInterface extends Remote  
{  
    public String sayHello() throws RemoteException;  
}  

 

 

 

package rmi;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

/** 
 * 第2步:接口实现类,也就是真正的服务端 
 * 要求:继承UnicaseRemoteObject是最简单的方法 
 *  
 *  
 */  
public class HelloImpl extends UnicastRemoteObject implements HelloInterface {  
	 // 这个实现必须有一个显式的构造函数,并且要抛出一个RemoteException异常   
    public HelloImpl() throws RemoteException  
    {  
        super();  
    }  
  
    public String sayHello() throws RemoteException  
    {  
        return "hllo";  
    }  
}  

 

 

package rmi;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
/** 
 * 第三步:注册服务 
 *  
 *  
 */  
public class RMIServer {
	public static void main(String[] args) throws RemoteException,
			MalformedURLException {
		// 不必再执行rmiregistry了
		LocateRegistry.createRegistry(1099);
		HelloInterface hello = new HelloImpl();

		// 注册服务
		Naming.rebind("//localhost/hello", hello);
	}
}

 


 

package rmi;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;

/** 
 * 第四步:远程调用 
 *  
 *  
 */ 
public class RMIClient {
	public static void main(String[] args) throws MalformedURLException,
			RemoteException, NotBoundException {
		HelloInterface hello = (HelloInterface) Naming
				.lookup("//localhost/hello");

		System.out.println(hello.sayHello());
	}
}
 

 

 

 

 

 

  • 大小: 35.7 KB
分享到:
评论

相关推荐

    RMI入门好例子

    这个“RMI入门好例子”旨在帮助初学者理解并实践RMI的基本原理和操作流程。 首先,RMI的核心思想是通过接口实现远程对象的透明调用。在示例中,`rmidemo`可能包含了服务器端的代码,它会定义一个接口,例如`...

    JAVA RMI入门教程

    【JAVA RMI入门教程】 Java Remote Method Invocation (RMI) 是Java平台中用于构建分布式应用程序的一个关键技术。RMI使得不同Java虚拟机(JVM)之间的对象可以相互通信,从而共享资源和处理能力,实现分布式计算。其...

    java Spring+RMI入门程序源代码

    本项目提供了一个入门级的源代码示例,帮助开发者理解如何在 Spring 环境下集成 RMI 技术。以下是关于这两个技术及其整合的详细知识点: **Spring 框架** 1. **Spring 概述**:Spring 是一个开源的 Java 应用开发...

    RMI入门小结

    这篇博客“RMI入门小结”主要探讨了RMI的基础概念、实现步骤以及常见问题。 1. RMI的基本原理: RMI的核心是通过接口定义服务,服务端实现接口,并将实现类注册到RMI注册表中。客户端通过引用远程接口,即可调用...

    RMI入门例子和教程,分初级、进阶,还有与Spring整合的

    自己收集了一些跑得通的教程,并自己整理给出了,入门例子。包括:最原生的使用javac和rmic的例子;还有进一步的,使用IDM,用代码代理原生rmic编译的例子;还有RMI和Spring整合的例子。 另外附有:例子说明 和 一些...

    java RMI入门例子

    这个"java RMI入门例子"将带你深入理解RMI的工作原理和主要组件。 RMI的核心概念包括: 1. **远程接口**:这是定义远程方法的接口,通常继承自java.rmi.Remote。这些方法声明抛出java.rmi.RemoteException,表示...

    rmi入门

    【标题】:“RMI入门” 远程方法调用(Remote Method Invocation,简称RMI)是Java平台提供的一种用于在分布式环境中实现对象间通信的技术。RMI允许一个Java对象调用网络另一端的Java对象的方法,就像调用本地对象...

    rmi入门(带源码)

    这个“rmi入门(带源码)”的资源可能是一个教学资料或实践项目,帮助初学者理解和应用RMI技术。 首先,我们来详细了解一下RMI的基本概念: 1. **远程接口(Remote Interface)**:这是定义远程方法的接口。它继承了...

    《EJB-RMI入门》

    《EJB-RMI入门》是一本专注于讲解Java企业级应用开发技术的书籍,特别是针对RMI(Remote Method Invocation,远程方法调用)的使用。RMI是Java平台中用于构建分布式应用程序的关键技术,它允许Java对象在不同的Java...

    rmi入门学习,实用的小例子

    ### RMI基础知识与实践 #### 一、Java RMI简介 Java Remote Method Invocation (RMI) 是Java平台提供的一种分布式计算技术,允许开发者在不同Java虚拟机(JVM)之间调用远程对象的方法,从而实现分布式应用程序的...

    JAVA之RMI入门

    简约而不简单的描述了RMI技术,希望对大家有所帮助。

    RMI 入门学习资料

    RMI(Remote Method Invocation)是Java提供的一种用于构建分布式应用程序的机制,它允许Java对象在不同的网络环境中相互调用方法,实现了远程对象间的无缝通信。RMI是在JDK1.1版本中引入的,它是纯Java实现的,遵循...

    RMI入门(二)实例 --- 亲自将代码调试成功

    在本文中,我们将深入探讨Java Remote Method Invocation (RMI)技术,通过一个具体的实例来学习如何设置、构建和调试RMI应用。RMI是Java提供的一种远程对象调用机制,它允许Java对象在不同的JVM之间进行通信。在这个...

    编程语言JavaRMI入门教程.pdf

    本文档是关于Java远程方法调用(Java RMI)的入门教程,适用于JDK 1.1版本。文档首次发布于1997年2月10日,由Sun Microsystems公司版权所有。Sun Microsystems公司授予用户一个全球性的、非独家的、不可转让的、无...

    RMI入门教程

    RMI,远程方法调用(Remote Method Invocation)是Enterprise JavaBeans的支柱,是建立分布式Java应用程序的方便途径。RMI是非常容易使用的,但是它非常的强大。

    rmi学习资料

    "RMI基础教程 - 深海有约 - BlogJava.files"和"rmi入门教程,简单明了(转).files"可能包含了相关的源代码或者图片资源,帮助读者更好地理解和实践RMI编程。 通过深入阅读这些资料,你可以了解如何设置RMI环境,...

    JavaRMI快速入门

    Java Remote Method Invocation(Java RMI)是Java编程语言中用于在网络间进行远程对象调用的技术。它是Java平台的标准部分,允许程序员在分布式环境中调用对象的方法,就像它们在同一台计算机上一样。Java RMI对于...

Global site tag (gtag.js) - Google Analytics