远程方法调用(RMI)协议
分布式编程技术的基本思想:
RMI 的几个重要概念:
存根(stub)
客户端代码实际上调用的是代理对象的一个普通的方法。代理对象即为存根
存根位于客户端机器上,它知道如何通过网络与服务端通信。
参数编组(parameter marshalling)
存根将远程方法所需的参数打包成一组字节,对参数编码的过程称作参数编组。
参数编组的目的是将参数转换成适合在虚拟机之间进行传递的格式。
RMI 协议中对象是使用序列化机制进行编组的
SOAP 协议,对象使用XML格式进行编组
客户端的存根构造了一个信息块,它由以下几部分组成:
1. 被使用的远程对象的标识符
2. 被调用的方法的描述
3. 编组后的参数
存根将此信息块发给服务器。在服务器端,接收对象执行以下动作:
1. 定位要调用的远程对象
2. 调用所需的方法,并传递客户端提供的参数
3. 捕获返回值或该调用产生的异常
4. 将返回值编组,打包送回给客户端存根
客户端存根对来自服务端的返回值或异常进行反编组,其结果即为调用存根的返回值。