最近项目中又涉及到了RMI,我想探究RMI的本源。(能够在工作中有时间探究本源,真好!)
首先看一下RMI的官方文档
http://java.sun.com/j2se/1.5.0/docs/guide/rmi/spec/rmiTOC.html
RMI出现的背景
-
在分布式系统中JavaTM最先支持的是Socket;
优点:Socket的灵活性和扩展性很强;
缺点:Socket需要客户端和服务端在应用级定义通信协议,这是非常麻烦的一件事;
- Remote Procedure Call (RPC) 远程过程调用;
特点:其抽象了过程调用级别的通信接口,程序员可以调用一个本地的程序,这个调用其实是传到了远 端目标;RPC实用了一种扩展的表示类型来编码,例如XDR;(external data representation 外部数据表示,是指在网络上传输的数据形式,因为计算机系统并不都使用相同的内部数据表示方法,并且客户和服务器可能运行在两种不同的计算机上,远程过程调用技术必须解决从一种数据表示到另一种数据
表示的转化问题。一种广泛采用的方法是定义标准的外部表示,这要求双方都进行数据的外部表示和内部表示之间相互转化。)
通信桩程序:在RPC模型中,需要附加的程序来实现通信,这些程序称为通信桩程序(Communication stub)或者代理(Proxy),客户端和服务器端的两个桩程序负责处理所有的通信细节;
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"这个压缩包中,我们可以看到一个关于RMI的示例应用,名为"RMI2-Product"。这个例子很可能展示了如何构建一个基于RMI的分布式产品管理系统。 在RMI中,主要涉及以下几个关键概念: 1. **...
在给定的源代码`RMI2`中,可能包含以下内容: - 一个实现了`Remote`接口的类,表示远程对象。 - 服务器端代码,用于创建远程对象实例、注册到RMI注册表,并启动服务器。 - 客户端代码,用于查找远程对象、调用其...
2. **RMI客户端**(RmiClient): - **查找远程对象**:客户端首先需要通过`java.rmi.Naming.lookup()`或`Registry.lookup()`方法从RMI注册表中获取远程对象的引用。 - **调用远程方法**:获取到远程对象的引用后...
2. **实现远程接口**:然后,创建一个实现远程接口的类,该类通常需要继承自`java.rmi.Remote`接口,并且抛出`java.rmi.RemoteException`。在这个实现类中,你需要实现远程接口中的所有方法。 3. **创建并注册远程...
Java RMI 会话 2 Java RMI(Remote Method Invocation),是Java开发的一种调用远程方法的技术。 为基于 Java 的分布式应用程序中的服务器和客户端通信提供简单的机制。 使用 RMI 构建分布式应用程序包括: Java 中...
根据提供的文件信息,我们可以深入探讨Java RMI(Java Remote Method Invocation)的相关知识点,包括其概念、原理、体系结构以及一个具体的示例。 ### RMI的概念 RMI是一种Java技术,它允许开发者创建分布式应用...
2. 实现远程服务器接口 在 HelloTaskImpl.java 中实现远程服务器接口,并将服务注册到 RMI 注册表中。 3. 编译生成 Stub 文件 使用 rmic 处理实现类,生成远程对象的 Stub 文件。 4. 启用 rmiregistry 启用 ...
2. **实现远程对象**:创建一个实现远程接口的类,实现接口中声明的方法。这些方法将被序列化并通过网络传输。 3. **注册远程对象**:使用`java.rmi.Naming`类或`java.rmi.server.UnicastRemoteObject`来注册远程...
### Java RMI (Remote Method Invocation) 概念与实践 #### 一、Java RMI简介 Java RMI(Remote Method Invocation)是一种允许调用不同Java虚拟机(JVM)上方法的机制。这些JVM可能位于不同的机器上,也可能在同一...
2. **在Server端设置远程对象引用**: - 需要在指定的端口上导出远程对象,例如,在3000端口上导出JMX的Registry对象。这使得其他客户端能够找到并连接到这个服务。 3. **在Client端设置远程对象引用并发起连接**...
2. 远程对象:实现了远程接口的类,代表实际执行远程方法的实体,需要继承`java.rmi.Remote`并实现接口中的所有方法。 3. RMIServer:服务器端程序,负责注册远程对象到RMI注册表,使得客户端可以通过名称查找并调用...
2. **远程实现**:实现了远程接口的具体逻辑,这个实现类需要继承`java.rmi.Remote`接口,并且可能抛出`java.rmi.RemoteException`。 3. **注册服务**:RMI的注册表(`java.rmi.registry.Registry`)用于存放远程...
2. **EJB(Enterprise JavaBeans)**: EJB容器利用RMI作为底层通信机制,使得组件能够在不同的JVM间透明交互。 3. **Web服务器与应用服务器间的通信**: 如Servlets通过RMI与EJB交互。 4. **网格计算**: 在大规模...
2. 实现RMI服务:接着,创建接口的实现类,如`MyServiceImpl`。 ```java @Service("myService") public class MyServiceImpl implements MyService { @Override public String doSomething(String input) { ...
2. **启动RMI服务**:在每个节点上,需要启动RMI注册服务器,这样其他节点才能找到并连接到它。这可以通过调用`java.rmi.registry.LocateRegistry.createRegistry(port)`来完成。 3. **创建RMI绑定**:接着,每个...
### 2. 聊天室架构 - **服务器端(Server)**: 这个项目中的服务器端是RMI的核心,它负责接收客户端的连接请求,创建并注册远程对象,管理所有在线用户,并处理客户端发送的聊天消息。服务器端通常会有一个主类启动...
2. **RMI架构**:RMI的核心组件包括远程接口(Remote Interface)、远程对象(Remote Object)、RMIC编译器和RMI注册表(RMI Registry)。远程接口定义了客户端可以调用的远程方法,远程对象实现了这些接口并实际...
在Spring框架中,远程方法调用(Remote Method Invocation, RMI)是一种使应用程序能够通过网络调用另一个JVM上的对象方法的技术。RMI是Java平台的一部分,它允许开发者创建分布式应用,使得对象可以像调用本地方法...
2. **远程服务实现(Remote Service Implementation)**:实现远程接口的类,需要抛出`RemoteException`。例如: ```java public class MyRemoteServiceImpl implements MyRemoteService { @Override public ...