第二章分布对象负载均衡一般方法
13
户机方的代理。调用者在本地端头上调用方法,端头负责在远程对象上执行该方
法调用。在RMI中,远程对象的端头实现了远程对象实现的所有远程接FJ。当端
头的方法被调用时,它初始化一个与包含该远程对象的远程虚拟机JVM的连接,
将参数数据串行化后传递到调动流,远程引用层RRL(Remote
Reference
Layer)
用调动流与服务器方RRL通讯。执行远程方法后,RRL将串行化返回值送回端头,
出端头负责反串行化后将返回值返回给调用者。为了给调用者提供一种简单的调
用机制,端头隐藏了参数串行化和网络级通讯的细节。
在远程JvM上,每一个远程对象都应有一个对应的框架。框架接受客户机方
RRL的方法调用请求,并将请求分派给实际的远程对象实现。当框架接收到力法
调用时,它读取并反串行化调用远程方法的参数,在实际的远程对象实现上调用
该方法,等待接收来自远程对象的返回值或异常,然后将串行化的结果(返回值
或异常)调动到调动流中。
远程引用层RRL负责维护不与具体端头或框架模型相关的独立引用协议。这
就使得RRL的改变不会影响端头/框架层及传送层。RRL涉及低层传送接口,负责
向端头/框架层提供流。RRL通过传送层实现客户机方和服务器方构件通信。客户
机方构件包含远程服务器的特定信息。这个信息传递到服务器方构件,因此只依
赖于服务器方RRL。服务器方RRL负责引用语法和处理这些语法之后再向框架发
送远程方法调用。客户机和服务器方构件之问的通讯则由传送层处理。
传送层负责建立并维护客户机和服务器之I'uj的连接。它包括4个抽象【7j:端
点(Endpoint)抽象用于引用包含Java虚拟机(JVM)的地址空间,是具体传送
接口的引用;通道(Channel)抽象是两个地址空问之间的通路,负责管理客户机
和服务器之间的各种连接;连接(Connection)抽象是客户机和服务器之间数据
(变元和返回值)传送的抽象;传送(Transport)抽象负责建立本地地址空I'DJ和
远程端点之间的通道,还负责接收到包含抽象的地址空间的输入连接。传送层建
立连接、管理现有连接,并处理其地址空间中的远程对象。
传送层接收客户方RRL的请求时,它寻找请求的远程对象的RMI服务器,然
后传送层建立到这个服务器的接插连接并将建立的该连接传递到客户机RRL,同
时将远程对象的引用加入到内部表中。此时,客户机即连接到服务器上。传送层
监视连接的活动,如果较长时削该连接不使用,则传送层负责关闭陔连接。
2.3.1.3
RMI与EJB的关系
1)首先RMI与EJB位于软件体系结构的不同层次。RMI实现了网络的对象问通信
协议,EJB是基于RMI上构造的服务器端框架。
2)RMI定义的是面向通信的一种远程调用。它的重点在于定义并实现一种对象问