Java知识整理——远程方法调用
- 什么是RMI ?
Java远程方法调用(RMI)是一个Java API,它执行的面向对象的等价远程过程调用(RPC)的方法,包括了直接传输序列化的Java类和分布式垃圾收集的支持。 远程方法调用(RMI),也可以看作是一个远程运行的对象上激活的方法的过程。RMI提供位置透明性,因为用户认为一个方法是在本地运行的对象上执行。 RMI Tips here. - 什么是RMI的体系结构的基本原理?
RMI的架构最重要的原则是将行为的定义和行为的实施分别对待。 RMI允许定义的行为和实现行为保持独立,并在独立的JVM中运行的代码。 - RMI的体系结构层是什么?
RMI的结构主要分为以下几层:
桩(Stub)和框架(Skeleton)层:该层位于开发者视图的下面。该层是负责拦截客户端请求接口的方法并重定向这些请求到远程RMI服务上。
远程引用层:架构的第二层是处理从客户端到服务器的远程对象引用的解析。该层解析并管理从客户端到远程服务对象的引用。该连接是一对一(单播)连接的。
传输层:该层主要负责连接参与服务的两个JVM。它基于通过网络连接的机子的TCP/IP,提供了基本的连通性,以及一些防火墙的渗透策略。 - 在RMI中远程接口的作用是什么?
远程接口用于识别那些不是来自本地机子接口但可以被调用的方法。所有对象都是必须直接或间接实现该接口的远程对象。实现该远程接口之前应该声明其远程接口,为每个远程对象定义构造方法,并在所有远程接口中为每个远程方法提供实现。 - java.rmi.Naming 类扮演的角色 ?
java.rmi.Naming类提供了存储和获取已注册的远程对象. Naming类中的每个方法都需要一个URL格式的String作为参数的名称. - RMI中的绑定是什么意思 ?
绑定是关联或注册一个远程对象的名字的过程, 这个名字可以在以后用到, 用于查找与它绑定的远程对象. 远程对象可以通过Naming类中的bind或rebind方法与一个名字相关联. - Naming 类中的bind与rebind方法的区别 ?
bind方法的绑定主要用于将特定的名字绑定到一个远程对象, 但rebind方法的绑定用于将特定的名字重新绑定到一个新的远程对象. 如果这个名字已经绑定过了, 使用rebind这个绑定会被替换. - 运行RMI 程序的步骤?
为了使RMI程序正常运行需要以下步骤:
编译所有源文件.
用rmic生成stub.
启动rmiregistry.
启动RMIServer.
运行客户端程序. - RMI中stub的角色 ?
远程对象的stub作为远程对象在本地程序中的表示或代理. 调用者调用本地stub的一个方法, 这个方法会在远程对象上执行.当一个stub的方法被调用时, 它经历了以下步骤:
初始化与运行远程对象的远程JVM的连接.
将参数编码并传递给远程JVM.
等待方法调用与执行的结果.
解码返回值或异常(如果执行失败).
将返回值返回给调用者. - 什么是DGC?它是如何工作的?
DGC代表的是分布式垃圾收集。远程方法调用(RMI)使用的是DGC自动垃圾收集机制。由于RMI涉及到跨JVM的远程引用,垃圾回收就会相当困难。DGC使用相关的计数算法为远程对象提供自动存储管理。 - 在RMI中使用RMISecurityManager的目的是什么?
在RMI应用程序中可以使用RMISecurityManager提供安全管理器来下载代码。如果安全管理器没有设置好,RMI的类加载器不会从远程端下载任何类。 - 解释编组和解组。
当一个应用程序要通过网络来传送内存对象到另一台主机,或者保留它到存储器,内存表达法会将其转换到合适的格式。这个过程就叫做编组,而恢复操作就叫解组。 - 解释序列化和反序列化。
Java提供了一个机制,是指一个对象可以被表示为字节序列,包括对象的数据,以及对象类型的信息和存储在对象中的数据类型。因此,序列化可以看做是平面化对象为了存储到磁盘中,方便后面读取和重新配置的一种方式。反序列化是一种从平面化状态到活跃状态的一种转换对象的逆过程。
Java知识整理——远程方法调用相关推荐
- java中使用rmi进行远程方法调用
java中进行远程方法调用,能支持分布式计算.并且可以实现在server的修改,能反应到各个client. 假如server的ip是:192.168.11.2, server端的代码如下: /*** ...
- java分布式对象——远程方法中的参数和返回值+远程对象激活
[0]README 1)本文文字描述转自 core java volume 2, 旨在学习 java分布式对象--远程方法中的参数和返回值+远程对象激活 的相关知识: [1]远程方法中的参数和返回值 ...
- XML-RPC远程方法调用
一.简介 XML-RPC的全称是XML Remote Procedure Call,即XML远程方法调用. 它是一套允许运行在不同操作系统.不同环境的程序实现基于Internet过程调用的规范和一系列 ...
- Spring-整合JDBC-事务-远程方法调用RMI
一.spring整合JDBC spring整合jdbc使用了模版方法设计模式 定义一套规范,固定流程不变,传入可变内容 1.Maven项目添加依赖 spring-context坐标依赖 mysql驱动 ...
- Java远程方法调用
主要参考 http://www.kaixinwenda.com/article-yxc135-7690958.html http://bbs.chinaunix.net/thread-1179312- ...
- 面试之Java知识整理
1.面向对象都有哪些特性 继承.封装.多态性.抽象 2.Java中实现多态的机制是什么? 继承与接口 3.Java中异常分为哪些种类 3.1按照异常需要处理的时机分为编译时异常(CheckedExce ...
- 系统间通信2:通信管理与远程方法调用RMI
本文引用 : https://yinwj.blog.csdn.net/article/details/49120813 RMI : Remote Method Invocation,远程方法调用 RP ...
- RMI原理揭秘之远程方法调用
接上:http://guojuanjun.blog.51cto.com/277646/1423392 这一次我们从学习RegistryImpl_Stub.java和RegistryImpl_Skel. ...
- [Dnode]基于Node.js给浏览器提供异步远程方法调用
Dnode介绍 Dnode是一个提供异步双向远程方法调用的类库.网络socket和websocket风格的socket.io通信已经成为可能,所以系统的进程之间可以相互通信并且可以与运行在浏览器端的用 ...
最新文章
- 开发一次、多端覆盖的开源统一框架
- python 命令行参数-Python命令行参数处理
- [C#学习] DataAdapter.Fill()分页
- 求生欲强烈!HTC官方回应并未退出中国市场
- html字段值换行代码怎么写,HTML段落,换行,字符实体
- Graham-Scan小总结——toj2317 Wall
- php . 和..,?php?和??
- SCADA数采HAAS数控系统现场实操步骤
- 最全公司章程自由规定事项
- CGAL学习记录——点云密度计算
- 装配uwsgi和nginx rabbitMQ
- 键盘密码(Qwerty)——python解密
- C语言学习--01 认识数据类型
- 【C语言】求最小公倍数三种方法
- 计算机教案封面设计,四年级信息技术《精彩封面巧设计》教学设计
- 第一届广西英招杯部分WP
- 基于规则的中文分词 - NLP中文篇
- 解决thinphp里返回json时斜杆和中文被转义问题
- apache mima 过滤器
- 在高通410c开发板使用PyQt开发电动窗帘Demo(五)