RMI
RMI
1
1
、
、
RMI
RMI
的需求
的需求
RMI
RMI
允许不同的
允许不同的
Java
Java
虚拟机之间进行对象间的通信,
虚拟机之间进行对象间的通信,
从而共享各个虚拟机上的资源和处理能力。
从而共享各个虚拟机上的资源和处理能力。
RMI
RMI
的目的是使分布在不同的虚拟机中的对象工
的目的是使分布在不同的虚拟机中的对象工
作起来像是本地对象,以达到位置透明性,应用
作起来像是本地对象,以达到位置透明性,应用
程序不用知道对象是本地还是远程的,屏蔽应用
程序不用知道对象是本地还是远程的,屏蔽应用
程序对底层的复杂实现细节。
程序对底层的复杂实现细节。
引用远程对象的
引用远程对象的
JVM
JVM
叫客户机,包含远程对象的
叫客户机,包含远程对象的
JV
JV
M
M
叫服务器。
叫服务器。
2 RMI
2 RMI
结构
结构
如何使
如何使
RMI
RMI
开发者不用考虑调用目的对象是在本地还远
开发者不用考虑调用目的对象是在本地还远
程?
程?
通过本地、远程透明性的一种架构来完成,即存根(
通过本地、远程透明性的一种架构来完成,即存根(
St
St
ub
ub
)和骨架(
)和骨架(
Skeleton
Skeleton
)。
)。
RMI
RMI
在客户机端使用存根,存根就像服务器端代码的代
在客户机端使用存根,存根就像服务器端代码的代
理。客户通过存根在网络上查找所调用的远程对象。
理。客户通过存根在网络上查找所调用的远程对象。
从客户机的角度来看,这些存根看起来完全像服务器
从客户机的角度来看,这些存根看起来完全像服务器
端的方法,使用同样的方法名、参数列表和返回值,
端的方法,使用同样的方法名、参数列表和返回值,
但不包含实际的方法代码,客户机取得的是
但不包含实际的方法代码,客户机取得的是
Interface
Interface
的
的
reference
reference
,而无法取得实现该接口的
,而无法取得实现该接口的
class
class
。
。
客户
存根
远程对象
骨架
远程接口
存根和骨架
存根包含将客户端请求传送到服务器、处理从服务
存根包含将客户端请求传送到服务器、处理从服务
器传回的结果和将结果返给客户机的代码。
器传回的结果和将结果返给客户机的代码。
在服务器端,称为骨架的代理接收客户机的远程调
在服务器端,称为骨架的代理接收客户机的远程调
用,将它们转换成在服务器上的本地调用,进行
用,将它们转换成在服务器上的本地调用,进行
本地调用并将结果传回客户机。
本地调用并将结果传回客户机。
存根和骨架由
存根和骨架由
RMI
RMI
编译程序自动产生,它分析编写
编译程序自动产生,它分析编写
的服务器端类,生成存根和骨架的代码段。
的服务器端类,生成存根和骨架的代码段。
评论2
最新资源