RMI(Remote Method Invocation)

RMI(Remote Method Invocation)原理浅析 现代的网络和编程技术,让我们的资源共享从信息逐步迈向了硬件,你想到过吗?你可以把一个解密的任务放到远程的运行更快的,闲置的服务器上进行,最后把运算的结果返回来,你所要做的就是提交任务。看到了吧,处理这些任务是远程的服务器。 Java的RMI的技术让这种实现变得非常的容易,本文就从基础性的东西讲解一下RMI的原理,有关安全和部署的问题,本文不加于讨论。读过本文希望对你的学 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 什么是RMI 分布式计算系统要求运行在不同地址空间不同主机上的对象互相调用。各种分布式系统都有自己的调用协议,如CORBA的IIOP(Internet InterORB Protocol), MTS的DCOM。那么EJB组件呢?在Java里提供了完整的sockets通讯接口,但sockets要求客户端和服务端必须进行应用级协议的编码交换数据,采用sockets是非常麻烦的。 一个代替Sockets的协议是RPC(Remote Procedure Call), 它抽象出了通讯接口用于过程调用,使得编程者调用一个远程过程和调用本地过程同样方便。RPC 系统采用XDR来编码远程调用的参数和返回值。 但RPC 并不支持对象,而EJB构造的是完全面向对象的分布式系统,所以,面向对象的远程调用RMI(Remote Method Invocation)成为必然选择。采用RMI,调用远程对象和调用本地对象同样方便。RMI采用JRMP(Java Remote Method Protocol)通讯协议,是构建在TCP/IP协议上的一种远程调用方法。 RMI调用机制 RMI 采用stubs 和 skeletons 来进行远程对象(remote object)的通讯。stub 充当远程对象的客户端代理,有着和远程对象相同的远程接口,远程对象的调用实际是通过调用该对象的客户端代理对象stub来完成的。 stub 每个远程对象都包含一个代理对象stub,当运行在本地Java虚拟机上的程序调用运行在远程Java虚拟机上的对象方法时,它首先在本地创建该对象的代理对象stub, 然后调用代理对象上匹配的方法,代理对象会作如下工作: 与远程对象所在的虚拟机建立连接 打包(marshal)参数并发送到远程虚拟机 等待执行结果 解包(unmarshal)返回值或返回的错误 返回调用结果给调用程序 stub 对象负责调用参数和返回值的流化(serialization)、打包解包,以及网络层的通讯过程。 skeleton 每一个远程对象同时也包含一个skeleton对象,skeleton运行在远程对象所在的虚拟机上,接受来自stub对象的调用。当skeleton接收到来自stub对象的调用请求后,skeleton会作如下工作: 解包stub传来的参数 调用远程对象匹配的方法 打包返回值或错误发送给stub对象 远程对象的stub和skeleton对象都是由rmic编译工具产生的。 RMI-IIOP RMI能够很好解决Java语言中分布式对象的调用问题,但RMI不是一个标准的调用协议,所以RMI不能调用非Java语言编写的对象。 IIOP(Internet Inter-ORB Protocol)是CORBA的通讯协议。CORBA是由OMG(Object Management Group)组织定义的一种分布式组件标准,通过和各种编程语言相匹配的IDL(Interface Definition Language),CORBA可以作到和语言无关,也就是说,用不同编程语言编写的CORBA对象可以互相调用。 JavaIDL定义了Java语言到CORBA之间的匹配,通过JavaIDL,用Java语言编写的应用程序可以和任何CORBA对象通讯。 RMI-IIOP结合了RMI的易用性和CORBA/IIOP的语言无关性,通过RMI-IIOP,RMI对象可以采用IIOP协议和CORBA对象通讯。RMI-IIOP对RMI的调用参数作了一些很轻微的限制,在调用CORBA对象时,必须遵循这些限制。JDK1.3已经提供对RMI-IIOP的支持。 Apusic Application Server对RMI-IIOP的支持 Apusic Application Server目前采用RMI,对RMI-IIOP的支持正在开发中,预计不久即会推出完全支持RMI-IIOP的新版本。
RMI(Remote Method Invocation)协议 RMI(Remote Method Invocation,远程方法调用)是一种用于在分布式系统中实现对象之间通信的协议。它允许一个Java对象(客户端)调用另一个Java对象(服务器端)的方法,即使这两个对象运行在不同的虚拟机(JVM)中,甚至不同的物理机器上。RMI是Java语言中内置的分布式计算技术,主要用于构建分布式应用程序。 阅读详情

相关推荐

Java RMI(Remote Method Invocation)远程方法调用 详解

远程方法调用 Remote Method Invocation是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。 编写一个RMI的步骤 定义一个远程接口,此接口需要继承java.rmi.Remote 开发远程接口的实现类 创建一个server并把远程对象注册到端口 创建一个client查找远程对象,调用远程方法 实例 定义一个远程接口 public...

LU_ZHAO的博客 1397

stub,存根是什么?

今天看到一道题 突然发现完全不知道啥是存根,于是上网搜了个最佳答案: j2ee里面的stub是这样说的..为屏蔽客户调用远程主机上的对象,必须提供某种方式来模拟本地对象,这种本地对象称为存根(stub),存根负责接收本地方法调用,并将它们委派给各自的具体实现对象 而本题答案为第二个:动态链接 动态连接使得大部分

暮然回首 2288

C#---第十一课:对列表的各种操作,添加、删除、排序、列表长度、获取元素的索引、FirstOrDefault()、SingleOrDefault()、last()

1.添加元素 2.删除元素 (1)删除列表中指定的元素 (2)删除列表A中所有与列表B相交的元素---常规 (3)删除列表A中所有与列表B相交的元素---lambda 3.排序(正序、倒序) 4.获取列表的最大容量(长度)、已用容量 6.获取元素在列表中的位置(index) 7.判断某元素是否在列表List中 8.获取列表中第一个元素First() & FirstOrDefault() 9.获取列表中唯一元素Single() & SingleOrDefault() 10.获取列表中最后一个元素

Alien-Hu 3627

软件构造总结第二章

软件测试与测试优先的编程一、软件测试二、测试案例三、测试优先的编程四、单元测试五、使用JUnit进行自动的单元测试1、JUnit介绍2、Junit 测试六、黑盒测试1、通过分区选择测试用例2、在分区中保含边界七、白盒测试八、覆盖率的测试九、自动化测试和回归测试十、记录你的测试策略 一、软件测试 再好的测试也无法证明系统里不存在错误。 一个好的测试应该包括以下特性 (1)可以发现错误 (2)不冗余 (3)最佳特性 (4)别太复杂也别太简单 测试的级别: (1)单元测试:指验证特定代码部分的功能的测试,通常是在

qq_45599206的博客 883

Kaggle时间序列竞赛金牌方案解析与实战指南

本文深度解析了Kaggle时间序列竞赛的金牌方案,揭示了其成功不仅依赖先进模型,更在于系统工程思维。文章系统阐述了从数据理解、特征工程到模型集成与后处理的全流程,并重点剖析了分层建模、自定义损失函数、时序交叉验证等核心技巧,为参赛者提供了从理论到实战的完整指南。

weixin_29196315的博客 358

Qt跨平台CAN通信实战:Vector、PCAN与周立功设备统一接口设计

本文针对Qt开发中常见的多品牌CAN设备兼容难题,提出了一套统一的跨平台CAN通信接口设计方案。通过抽象层封装,实现了对Vector、PCAN和周立功设备的统一操作,上层业务代码无需修改即可在不同硬件间切换,有效解决了驱动API差异、环境配置复杂和维护成本高等痛点,显著提升了代码复用率和开发效率。

weixin_29161785的博客 333

Java RMI远程方法调用详解

远程方法调用RMI(Remote Method Invocation),是允许运行在一个Java虚拟机的对象调用运行在另一个Java虚拟机上的对象的方法。 这两个虚拟机可以是运行在相同计算机上的不同进程中,也可以是运行在网络上的不同计算机中。 Java RMI:Java远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用特性使

AI吃大瓜的博客 3万+

非root用户如何在CentOS7集群上编译安装OpenFOAM6

本文详细介绍了在CentOS7集群上以非root用户身份编译安装OpenFOAM6的完整流程。通过环境准备、依赖包离线获取、源码编译安装等步骤,解决了集群环境下权限和依赖问题,特别针对OpenMPI和Boost库提供了优化配置建议,帮助用户高效完成安装并优化性能。

weixin_28826961的博客 683

Java RMI 远程方法调用

Java RMI 介绍 Java RMI(Java Remote Method Invocation) Java 远程方法调用 允许运行在一个 Java 虚拟机的对象调用运行在另一个 Java 虚拟机上对象的方法。通俗来说就是 A 机器上的 class 可以调用 B 机器上的 class 中的方法。 作用 为分布式 Java 应用程序之间的远程通信提供服务 例子 首先我这里新建了两个 project,一个是服务端,一个是客户端。服务端提供远程服务供客户端调用。话不多说,直接上代码! 服务端: 定义一个 H

qq_46603140的博客 914

SAP-ABAP:SAP ABAP 深度解析:BAPI 从入门到精通 —— 原理、实战与自定义开发全指南

SAP ABAP BAPI 深度解析摘要 本文全面介绍了 SAP ABAP 中的 BAPI(业务应用程序编程接口)技术,涵盖以下核心内容: BAPI 定义与特点:BAPI 是 SAP 为业务对象提供的标准化编程接口,具有面向对象、封装业务逻辑、标准化错误处理和版本兼容性等特点。 BAPI 与 RFC 关系:所有 BAPI 都是 RFC,但需额外满足业务对象注册、标准化参数和错误处理等要求。 BAPI 核心作用:包括业务逻辑封装、系统集成、标准化错误处理、版本兼容和审计合规。 实战演示:通过创建销售订单的完整

baidu_35680696的博客 1034

十一、增强现实

那都是n年前的老版本了,新版本完全没有这个问题,我就是纠结这个问题,搭建若干环境,又是vmware虚拟机,又是msys2,又是anaconda,又是找机器,折腾了几天,结果通通不是。以一张实际卡片为锚点,通过笔记本的摄像头,在显示器上将一个计算机内的3d物体显示在卡片上,类似于电影上看到的那种全息投影技术;如果你是想在windows环境下开发linux运行程序,那么CygWin/gcc是你的不二之选。而如果你想开发的是windows运行程序,并且追求速度,那么二者相比而言,MinGW是更好的选择。

3189

Java中的RMI

rmi 是 java中的一种rpc实现 ,提供了一种机制来实现分布式应用的通信和调用远程方法的能力.rmi的独特优势。

ThinkPet 1354

别再无脑调打码平台了!聊聊 ddddocr 在爬虫验证码识别中的真实边界

ddddocr是国产开源社区的优秀成果,它大幅降低了验证码识别的入门门槛。工具的自由不等于工程的自由。真正的能力不在于“会不会调库”,而在于能否准确判断工具的适用边界、构建鲁棒的容错机制、并在成本与效果之间做出理性权衡。下次当你准备在爬虫中加入验证码识别时,不妨先问自己:这个站点的验证码类型是否在ddddocr的能力圈内?我的预处理是否针对该站点做过专项调试?我的失败重试和监控机制是否完备?如果三个问题都能肯定回答,那么ddddocr就是你的利器;如果有任何一个犹豫,请先补齐短板再上路。评论区交流:你用。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1284

Java远程调用RMI(Remote Method Invocation)

1.RMI和Java Remote Method Invocation 在讨论RMI之前,我们先看看网站的架构。典型的网站有一个服务提供商(Web Server),多个服务使用者(Web Client)。网站使用的是浏览器(Browser)作为客户端,也就是所说的BS架构(Browser-Server)。还有一种不是使用浏览器作为客户端的,比如说即时聊天工具(QQ、MSN)等,它们需要你在本地安

lethorld的专栏 2652

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

RMI(Remote Method Invocation)-远程方法调用

RMI的组成一个正常工作的RMI系统由下面几个部分组成:调用远程RMI的步骤:RMI的主要优点:RMI有什么劣势RMI的基本使用知识http://www.blogjava.net/zhenyu33154/articles/320245.htmlRMI 优劣势总结https://blog.csdn.net/mingtianhaiyouwo/article/details/50513577

listeningdu的博客 390

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Remote Method Invocation (RMI)

78. What is RMI ? The Java Remote Method Invocation (Java RMI) is a Java API that performs the object-oriented equivalent of remote procedure calls (RPC), with support for direct transfer of seriali

teisei-din 740

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

『Java安全』RMI(Java Remote Method Invocation)远程方法调用_Remote_Registery_Naming

Java RMI(Java Remote Method Invocation)用于实现远程过程调用的应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。RMI使用Java远程消息交换协议JRMP(Java Remote Messaging Protocol)进行通信。 **在传输过程中:会将对象进行序列化与反序列化,因此可能会带来安全隐患** RMI需要编写**Server端和Client端**,同时两者必须共有一个**接口类**,在Server端还要有此接口的**实现类**,...

Ho1aAs‘s Blog 1364

【亲测免费】 RMI (Remote Method Invocation) 使用指南

RMI (Remote Method Invocation) 使用指南 RMI 是 Java 平台提供的一种允许程序各部分(对象)通过网络进行通信的技术,它使得一个网络中的远程服务就像本地服务一样被调用。本教程基于 GitHub 上的 learnedsystems/RMI 开源项目,旨在引导用户了解并使用此项目。以下内容将分为三个主要部分进行展开:项目的目录结构、启动文件介绍以及配置文件说明。 1...

gitblog_00372的博客 443

RMI (Remote Method Invocation)远程方法的简单调用

RMI介绍:JNDI 就是一个注册表,服务端将服务对象放入到注册表中,客户端从注册表中获取服务对象 定义远程接口: package demo.zookeeper.remoting.common; import java.rmi.Remote; import java.rmi.RemoteException; /** * * @author Administrator *...

qnzhl的博客 315

rmi(Remote Method Invocation ) 學習

一:工作原理 RMI系统结构,在客户端和服务器端都有几层结构。          ---------                                     ---------        | 客户对象|                                    | 远程对象|          ---------                           

what's java 2401

Java RMI 远程方法调用 (Remote Method Invocation)

一、简介   RMI是远程方法调用的简称,象其名称暗示的那样,它能够帮助我们查找并执行远程对象的方法。通俗地说,远程调用就象将一个class放在A机器上,然后在B机器中调用这个class的方法。   我个人认为,尽管RMI不是唯一的企业级远程对象访问方案,但它却是最容易实现的。与能够使不同编程语言开发的CORBA不同的是,RMI是一种纯Java解决方案。在RMI中,程序的所有部分都由J

Intlgj的专栏 2719

RMI(Remote Method Invocation) 远程方法调用理解

关键词stub 桩,提供给客户端的远程服务的代理,通过他与远程服务或远程服务的代理来交互。 skeleton 骨架,远程服务的代理,代理远程服务。 文章列表RMI 原理浅析

hui_yan2012的专栏 572

Java Remote Method Invocation (RMI)

分析 UnicastServerRef # exportObject 得知,exportObject 返回的对象,是使用 JDK 动态代理创建的对象,从 RemoteObjectInvocationHandler 可以看出,这个代理对象的能力是,将对这个代理对象的方法调用,通过 RemoteObject 持有的 UnicastRef 对象的 invoke 方法启动本地 Socket 与远程对象的交互,从而得到远程对象的执行结果。怎么实现这个目标的?)其他的都是给 RMI Server 用的?

来啊 快活啊 1190
上一篇: JNDI(Java Naming Directory Interface)
下一篇: Enterprise JavaBeans导论七
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值