现在的位置: 首页 > 综合 > 正文

CORBA 入门

2014年03月23日 ⁄ 综合 ⁄ 共 1175字 ⁄ 字号 评论关闭

CORBA 是什么

  •  

      下面我来用些图形说明一下:

      通过 ORB 发送请求

      ORB
       

      上面的图形说明的是客户端发送一个请求到对象的实现。客户端是希望对某对象执行操作的实体。对象的实现是一片代码和数据来实际实现对象。ORB 负责下面的必要的机制:对该请求找到对象的实现,让对象的实现准备好接受请求,和请求交换数据。客户端的接口完全独立于对象的位置,其实现的语言和其他不影响对象接口的东西。

      ORB 接口的结构
       ORB

      上面的图形显示的是一个独立的对象请求代理(ORB)的结构。ORB 的接口是灰色的矩形。箭头说明 ORB 的调用关系。

      为了提出一个请求,客户端可以使用动态调用接口(Dynamic Invocation Interface)(和目标对象的接口独立)或者一个 OMG 的 IDL 占位程序(具体的占位程序依赖于目标对象的接口)。客户端也可以直接和 ORB 在某些地方交互。

      对象的实现通过 OMG 的 IDL 产生的骨架或者是一个动态骨架的调用来接受请求。对象的实现可能在处理请求或其他的时候调用 ORB。

      对象接口定义的定义可以有下面两种方式。接口可以通过接口定义语言静态的定义,这叫做 OMG 的 IDL。该语言按照可以进行的操作和该操作的参数定义对象类型。或者(也可以作为补充),接口可以加入到 Interface Repository service。该服务描述了该接口作为一个对象的组件,并允许运行时访问这些组件。在任何 ORB 实现中,IDL 和 Interface Repository 有相同的表达能力。

      客户端使用占位程序或者动态调用接口

      ORB客户端通过访问对象的对象引用和了解对象的类型及要求执行的操作来发布一个请求。客户调用占位程序例程来请求或者动态构造请求。

      无论动态还是占位程序的接口都可以相同实现。接收方不可能知道请求是如何发布的。

      对象的实现接受请求
       ORB

      ORB 向对象实现定位适当的代码,传递参数,传输控制。这一切都通过 IDL 骨架或者动态骨架。骨架对于不同的接口和对象适配器是不同的。在执行该请求的时候,对象的实现可能由 ORB 通过对象适配器来获得一定的服务。当请求完成,控制和输出值返回给客户。

      对象的实现可能会选择使用的对象适配器。该决定基于对象的实现要求的服务。

      接口和 Implementation Repositories
       ORB

       

       

      上图说明的是接口和实现信息如何让客户和对象实现访问的。接口用 OMG 的 IDL 和/或 Interface Repository 定义。该定义用于产生客户占位程序和对象的实现的骨架。

      对象的实现的信息在安装时就提供好了,储存在 Implementation Repository 中以便请求发布的时候使用。

       

      参考:http://www.lslnet.com/linux/books/resource/corba.html

      http://www.kuqin.com/baike/20081006/21036.html

  •  

【上篇】
【下篇】

抱歉!评论已关闭.