RMI(2)

本文深入探讨了Java RMI(远程方法调用)的技术背景和发展历程。从分布式系统的角度出发,对比了Socket通信的灵活性与RMI提供的简化远程过程调用的优势。文中详细解释了RMI如何通过引入Remote接口来标记远程服务,并利用代理机制处理通信细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近项目中又涉及到了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接口是一个空接口呀,这是我最大的疑问!!)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值