RMI原理,以及CORBA和SOAP

来源:互联网 发布:备份windows激活信息 编辑:程序博客网 时间:2024/04/25 13:32

一 基本概念:

1.         Stub(存根):当客户端要在远程对象上调用一个方法的时候,实际上调用的是代理对象上的一个普通方法,称这个代理对象为stub。RMI的存根定义就是使用了这样一个理解:在与远程发生通讯调用时,把通讯调用的所有细节都通过对象的封装形式给隐藏在后端。客户端的stub方法构造了一个信息块,包括:远程对象的标识,被调用方法描述,参数。

2.         Skeleton(骨架):它的内部就是真正封装了一个类的形成调用体现机制。包括我们熟知的ServerSocket创建、接受、监听、处理等。接收者对象做这些事:

     (1)反编组参数

     (2)定位要调用的对象

     (3)调用所需的方法

     (4)捕获返回值或调用产生的异常,并且反编组

     (5)返回值编组,返回客户端。

3.         Mashalling(编组):在内存中的对象转换成字节流,以便能够通过网络连接传输,适合虚拟机之间传递。

4.         Unmashalling(反编组):在内存中把字节流转换成对象,以便本地化调用。

5.         Serialization(序列化):编组中使用到的技术叫序列化。

6.         Deserializationg(反序列化):反编组中使用到的技术叫反序列化。

二 示意图

三 只说说各自的特点

        数据格式,传输方式,适用场景和优缺点。

(1) SOAP:简单对象访问协议,提供一个调用远程方法的协议。而SOAP是基于XML和HTTP的分布式对象的通信协议

独立于编程语言,使用XML传输格式。

      使用WSDL(Web服务描述语言)格式的服务描述文件描述web服务的接口:被调用的方法,参数和返回值类型。

      WSDL文件并不说明服务 做什么,只说明参数和返回值的类型。

      最吸引人的地方是语言中立。

(2)CORBA 通用对象请求代理架构,使用IIOP(Internet Inter-ORB协议)支持对象间通信。

     定义了接口定义语言(IDL)和应用编程接口(API),从而通过实现对象请求代理(ORB)来激活客户/服务器的交互。

     ORB提供了一种机制,通过这种机制,对象可以透明的发出请求和接收响应。

     CORBA仅仅是一个规范,而不是一个实现。

原创粉丝点击