`
dodoflying
  • 浏览: 180077 次
社区版块
存档分类
最新评论
阅读更多
最近项目中又涉及到了RMI,我想探究RMI的本源。(能够在工作中有时间探究本源,真好!)

首先看一下RMI的官方文档
http://java.sun.com/j2se/1.5.0/docs/guide/rmi/spec/rmiTOC.html

RMI出现的背景

  1. 在分布式系统中JavaTM最先支持的是Socket;
    优点:Socket的灵活性和扩展性很强;
    缺点:Socket需要客户端和服务端在应用级定义通信协议,这是非常麻烦的一件事;

  2. Remote Procedure Call (RPC) 远程过程调用;

    特点:其抽象了过程调用级别的通信接口,程序员可以调用一个本地的程序,这个调用其实是传到了远    端目标;RPC实用了一种扩展的表示类型来编码,例如XDR;(external data representation 外部数据表示,是指在网络上传输的数据形式,因为计算机系统并不都使用相同的内部数据表示方法,并且客户和服务器可能运行在两种不同的计算机上,远程过程调用技术必须解决从一种数据表示到另一种数据
    表示的转化问题。一种广泛采用的方法是定义标准的外部表示,这要求双方都进行数据的外部表示和内部表示之间相互转化。)
    通信桩程序:在RPC模型中,需要附加的程序来实现通信,这些程序称为通信桩程序(Communication stub)或者代理(Proxy),客户端和服务器端的两个桩程序负责处理所有的通信细节;

 

RMI Interfaces and Classes

 

The java.rmi.Remote Interface

The interface java.rmi.Remote is a marker interface that defines no methods:

public interface Remote {}

A remote interface must at least extend the interface java.rmi.Remote (or another remote interface that extends java.rmi.Remote).(为什么呢?Remote接口是一个空接口呀,这是我最大的疑问!!)





分享到:
评论

相关推荐

    RMI2-Product.rar_rmi

    在"RMI2-Product.rar_rmi"这个压缩包中,我们可以看到一个关于RMI的示例应用,名为"RMI2-Product"。这个例子很可能展示了如何构建一个基于RMI的分布式产品管理系统。 在RMI中,主要涉及以下几个关键概念: 1. **...

    java中的RMI程序

    在给定的源代码`RMI2`中,可能包含以下内容: - 一个实现了`Remote`接口的类,表示远程对象。 - 服务器端代码,用于创建远程对象实例、注册到RMI注册表,并启动服务器。 - 客户端代码,用于查找远程对象、调用其...

    Rmi示例 Rmi代码示例

    2. **RMI客户端**(RmiClient): - **查找远程对象**:客户端首先需要通过`java.rmi.Naming.lookup()`或`Registry.lookup()`方法从RMI注册表中获取远程对象的引用。 - **调用远程方法**:获取到远程对象的引用后...

    java_rmi.rar_RMI java_java.rmi

    2. **实现远程接口**:然后,创建一个实现远程接口的类,该类通常需要继承自`java.rmi.Remote`接口,并且抛出`java.rmi.RemoteException`。在这个实现类中,你需要实现远程接口中的所有方法。 3. **创建并注册远程...

    RMI-2-master:RMI 第二部分

    Java RMI 会话 2 Java RMI(Remote Method Invocation),是Java开发的一种调用远程方法的技术。 为基于 Java 的分布式应用程序中的服务器和客户端通信提供简单的机制。 使用 RMI 构建分布式应用程序包括: Java 中...

    java rmi java rmi

    根据提供的文件信息,我们可以深入探讨Java RMI(Java Remote Method Invocation)的相关知识点,包括其概念、原理、体系结构以及一个具体的示例。 ### RMI的概念 RMI是一种Java技术,它允许开发者创建分布式应用...

    分布式实验报告RMI.docx

    2. 实现远程服务器接口 在 HelloTaskImpl.java 中实现远程服务器接口,并将服务注册到 RMI 注册表中。 3. 编译生成 Stub 文件 使用 rmic 处理实现类,生成远程对象的 Stub 文件。 4. 启用 rmiregistry 启用 ...

    RMI.rar_Java RMI_java.rmi_java.rmi.Remot_remote

    2. **实现远程对象**:创建一个实现远程接口的类,实现接口中声明的方法。这些方法将被序列化并通过网络传输。 3. **注册远程对象**:使用`java.rmi.Naming`类或`java.rmi.server.UnicastRemoteObject`来注册远程...

    java rmi 参考文档

    ### Java RMI (Remote Method Invocation) 概念与实践 #### 一、Java RMI简介 Java RMI(Remote Method Invocation)是一种允许调用不同Java虚拟机(JVM)上方法的机制。这些JVM可能位于不同的机器上,也可能在同一...

    JAVA RMI 传输 SSL加密

    2. **在Server端设置远程对象引用**: - 需要在指定的端口上导出远程对象,例如,在3000端口上导出JMX的Registry对象。这使得其他客户端能够找到并连接到这个服务。 3. **在Client端设置远程对象引用并发起连接**...

    java RMI实现代码

    2. 远程对象:实现了远程接口的类,代表实际执行远程方法的实体,需要继承`java.rmi.Remote`并实现接口中的所有方法。 3. RMIServer:服务器端程序,负责注册远程对象到RMI注册表,使得客户端可以通过名称查找并调用...

    JAVA RMI测试代码

    2. **远程实现**:实现了远程接口的具体逻辑,这个实现类需要继承`java.rmi.Remote`接口,并且可能抛出`java.rmi.RemoteException`。 3. **注册服务**:RMI的注册表(`java.rmi.registry.Registry`)用于存放远程...

    RMI原理及应用详解

    2. **EJB(Enterprise JavaBeans)**: EJB容器利用RMI作为底层通信机制,使得组件能够在不同的JVM间透明交互。 3. **Web服务器与应用服务器间的通信**: 如Servlets通过RMI与EJB交互。 4. **网格计算**: 在大规模...

    SpringRMI小例子

    2. 实现RMI服务:接着,创建接口的实现类,如`MyServiceImpl`。 ```java @Service("myService") public class MyServiceImpl implements MyService { @Override public String doSomething(String input) { ...

    Ehcache RMI Replicated Cluster(RMI集群)

    2. **启动RMI服务**:在每个节点上,需要启动RMI注册服务器,这样其他节点才能找到并连接到它。这可以通过调用`java.rmi.registry.LocateRegistry.createRegistry(port)`来完成。 3. **创建RMI绑定**:接着,每个...

    基于JAVA RMI的聊天室

    ### 2. 聊天室架构 - **服务器端(Server)**: 这个项目中的服务器端是RMI的核心,它负责接收客户端的连接请求,创建并注册远程对象,管理所有在线用户,并处理客户端发送的聊天消息。服务器端通常会有一个主类启动...

    java RMI技术实现的网络聊天室

    2. **RMI架构**:RMI的核心组件包括远程接口(Remote Interface)、远程对象(Remote Object)、RMIC编译器和RMI注册表(RMI Registry)。远程接口定义了客户端可以调用的远程方法,远程对象实现了这些接口并实际...

    spring中使用RMI

    在Spring框架中,远程方法调用(Remote Method Invocation, RMI)是一种使应用程序能够通过网络调用另一个JVM上的对象方法的技术。RMI是Java平台的一部分,它允许开发者创建分布式应用,使得对象可以像调用本地方法...

    spring RMI简单例子

    2. **远程服务实现(Remote Service Implementation)**:实现远程接口的类,需要抛出`RemoteException`。例如: ```java public class MyRemoteServiceImpl implements MyRemoteService { @Override public ...

Global site tag (gtag.js) - Google Analytics