跟着Java手艺进修的络续深入,越来越感觉连结初心是何等主要,无论我们学到哪个水平,在进修的时候始终连结初学者的心态,才能在本身的手艺之上实现冲破!
今天有点像鸡汤,回来正题,持续更新我的进修笔记:Java手艺中的 RMI与RPC的区别。
一:RPC 长途过程挪用
RPC(Remote Procedure Call Protocol)长途过程挪用和谈,经由收集从长途较量机上恳求挪用某种办事。
一次RPC挪用的过程也许有10步:
1.执行客户端挪用语句,传送参数
2.挪用内陆系统发送收集新闻
3.新闻传送到长途主机
4.办事器获得新闻并取得参数
5.凭据挪用恳求以及参数执行长途过程(办事)
6.执行过程完毕,将究竟返回办事器句柄
7.办事器句柄返回究竟,挪用长途主机的系统收集办事发送究竟
8.新闻传回内陆主机
9.客户端句柄由内陆主机的收集办事领受新闻
10.客户端领受到挪用语句返回的究竟数据
二:RMI 长途方式挪用
RMI:长途方式挪用(Remote Method Invocation)。可以让在客户端Java虚拟机上的对象像挪用内陆对象一般挪用办事端java 虚拟机中的对象上的方式。
RMI长途挪用步伐:
1,客户挪用客户端辅助对象stub上的方式
2,客户端辅助对象stub打包挪用信息(变量,方式名),经由收集发送给办事端辅助对象skeleton
3,办事端辅助对象skeleton将客户端辅助对象发送来的信息解包,找出真正被挪用的方式以及该方式地点对象
4,挪用真正办事对象上的真正方式,并将究竟返回给办事端辅助对象skeleton
5,办事端辅助对象将究竟打包,发送给客户端辅助对象stub
6,客户端辅助对象将返回值解包,返回给挪用者
7,客户获得返回值
三:RPC与RMI的区别
1:方式挪用体式分歧:
RMI中是经由在客户端的Stub对象作为长途接口进行长途方式的挪用。每个长途方式都具有方式签名。若是一个方式在办事器上执行,然则没有相成家的签名被添加到这个长途接口(stub)上,那么这个新方式就不克被RMI客户方所挪用。
RPC中是经由收集办事和谈向长途主机发送恳求,恳求包含了一个参数集和一个文本值,平日形成“classname.methodname(参数集)”的形式。RPC长途主机就去搜刮与之相成家的类和方式,找到后就执行方式并把究竟编码,经由收集和谈发还。
2:适用说话局限分歧:
RMI只用于Java;
RPC是收集办事和谈,与把持系统和说话无关。
3:挪用究竟的返回形式分歧:
Java是面向对象的,所以RMI的挪用究竟能够是对象类型或许根基数据类型;
RMI的究竟统一由外部数据透露 (External Data Representation, XDR) 说话透露,这种说话抽象了字节序类和数据类型构造之间的差别。