`
dajian
  • 浏览: 112952 次
  • 性别: Icon_minigender_1
  • 来自: 白云
社区版块
存档分类
最新评论
阅读更多
对象请求代理(ORB)
        对象请求代理(Object Request Broker , ORB)是对象总线,它可以让对象透明的向本地或远程的其他对象发送请求或从那里接受响应。ORB使对象可以在运行时相互发现和调用对方的服务。
        ORB是对象间建立客户/服务器关系的中间件。通过使用ORB,一个客户对象可以透明的调用服务器对象的方法。客户/服务器的角色仅仅是用于协调两个对象之间的交互。ORB的对象根据场合的不同既可以充当客户,也可以充当服务器。

       
CORBA ORB 的客户端和服务器端工作

客户端:
        客户端IDL存根(Client IDL Stubs)
为对象服务器提供静态的接口。这些预编译的存根定义了客户如何调用服务器上的相应服务。从客户的角度来看,存根像是一个本地调用,它是一个远程服务器对象的本地代理。服务由IDL定义,而客户和服务器的存根都由IDL编译器生成。对于它所使用的服务器上的每一个接口,客户都必须有一个IDL存根。
        动态调用接口(DLL)让你可以在运行时找到调用的方法。
        接口池API允许获得和修改所有有关已注册的组件接口以及它们支持的方法和它们所需的参数的描述。CORBA称这些描述为方法标记。我们可以把接口池看作是一个动态的ORB元数据池。
        ORB接口由一些API组成,这些API用于定位可能与应用程序有关的本地服务。
        全局池ID是ORB提供的全局标志符,称为池ID(Repository ID)用来在多个销售商ORB和池的环境下唯一且全局的标志一个组件和它的接口。池ID是系统生成的、唯一的字符串,以便维护对多个池的命名规则的一致性,它不允许有任何名称冲突。池ID是在IDL中通过指令 pragmas 生成的。池ID自身是个字符串,由三级名称层次结构组成。
       
服务器端:
        服务器IDL存根(OMG称其为框架)
为每一个服务区输出的服务提供静态接口。由IDL编译器创建。
        动态框架接口(DSI)为那些需要处理收到的对某些组件的方法调用的服务器提供了一种运行时动态绑定机制,这些被调用的组件不具备给予IDL编译的框架(或存根)。
        对象适配器位于ORB核心通信服务的顶层,为代表服务器对象的服务接受请求。它提供运行时环境来初始化服务器对象、将请求传给它们并且分配它们的对象ID —— CORBA 称这种ID为对象引用。对象适配器也用实现池纪录它支持的类和它们运行时的实例(如对象)。
        实现池(Implementation Repository)提供了运行时信息池,里面存放了关于服务器支持的类、被实例化的对象以及它们的ID信息。它还提供了一个公共场所,用于存储与ORB实现相关的附加信息。
        ORB接口由一些API组成,用于定位本地服务。
       


        同时支持动态和静态客户/服务器调用以及接口池的特性提高了CORBA的性能。静态调用更易于编程、更快,且可以自己生成文档。动态调用提供了最大的灵活性,但编程起来比较困难。动态调用对于那些在运行时寻找服务的工具非常有用。服务器端无法区别动态和静态调用,这两种调用都含有相同的消息语义。这两种情况下,ORB都是通过服务器IDL存根找到服务器对象适配器、传递参数、将控制转交给对象实现。
分享到:
评论

相关推荐

    实时CORBA中ORB核心的优化

    主要介绍实时corba技术以及orba核心的优化

    ORBit-Ada:GNOME ORBit CORBA ORB的Ada绑定-开源

    ORBit-Ada提供与ORBit Corba ORB绑定的Ada。 ORBit-Ada是免费软件(OpenSource),受GPL和GMGPL的版权保护。

    通信与网络中的基于CORBA的分布式网络管理

    CORBA是对象管理组织提出的面向对象的体系结构,它为分布式异构环境下各类应用系统的集成提供了良好的技术规范和标准,CORBA是一种采用通用对象请求代理ORB间互联协议/基于Internet的ORB间互联协议(GIOP/IIOP)...

    实时CORBA实现机制

    描述了实时CORBA的实现,以及一些注意事项

    corba数据交换corba数据交换corba数据交换corba数据交换

    CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是...CORBA标准主要分为三个部分:接口定义语言(IDL)、对象请求代理(ORB)以及ORB之间的互操作协议IIOP。CORBA的体系结构如下图所示:

    CORBA简单教程(摘自sun microsystem)

    一个介绍在java中使用corba的简单教程,来源于sun的官方网站。对于想开发分布式应用程序的朋友,是个不错的入门教程哦~~ 目录结构: Distributed Applications Data are Distributed Computation is Distributed ...

    基于C++CORBA高级编程

    全书共22章,系统地介绍了CORBA的基本体系和概念,IDL语义和映射为C++的规则、POA和对象生命周期,CORBA机理和 ORB,动态 CORBA特性以及CORBA重要的服务程序。本书的独到之处在于它不仅介绍概念及资源,更重要的是...

    CORBA的应用与容错

    该文档在分析前任研究成果的基础上,分析了CORBA的优点以及背景,并以CORBA在ATC系统的应用为主题实际论证了CORBA运用在分布式计算机系统中的诸多优点。最后,文档还讨论了基于CORBA技术的系统的容错策略,指出...

    The harmless ORB-开源

    .NET Framework的CORBA ORB。

    corba 核心服务与研究实现

    corba核心服务于研究 orb orm 组织

    Perl ORB-开源

    Perl ORB是Perl的CORBA ORB的实现。 它完全用Perl编写,并支持Perl客户端和服务器。

    基于TAO(The_ACE_ORB)的CORBA编程

    基于TAO(The_ACE_ORB)的CORBA编程:对想学习ACE。TAO的初学者来说,具有参考价值。

    javaee jts规范中文版

    javaee jts规范中文版提供应用和应用服务器控制事务的范围和持续时间的能力 允许多个应用组件执行单个,原子事务...提供通过CORBA ORB/TS标准接口来与其他事务管理器实现进行交互的能力(它对事务管理器的客户端是透明的)

    Eclipse3.2下配置ORBStudio插件的corba开发环境

    相信你用的上:Eclipse3.2下配置ORBStudio插件的corba开发环境

    CORBA标准 part 2 CORBA互操作 - 版本 3.2 (2011)

    ORB互操作能力定义了一个丰富的,弹性的方法来支持在分布式异构环境下的CORBA兼容对象构成的网络.

    opalORB - A Perl ORB-开源

    opalORB(Perl ORB)是OMG CORBA ORB标准的实现,遵循CORBA / e Micro Profile加上DSI / DII。 该Perl ORB完全用Perl编写,不需要C编译器,但是包含C ++和Java的互操作性测试。

    ORBStudio775

    eclipse的corba编程插件,插入后可以使用基于corba的orb

    基于CORBA的分布式仿真系统的开发与实现.

    CORBA是开放式、多平台、面向对象的分布式计算技术的工业规范,利用CORBA可以进行跨平台、跨语言的分布式软件开发。本文结合CORBA技术、数值计算方法、OpenGL图形仿真技术,以C++Builder为开发工具开发了基于CORBA的...

    CORBA.rar_corba

    本文重点分析了CORBA的体系结构和实现机制, 详细描述了ORB 的体系结构和CORBA 的运行流程,并给出了一个利用CORBA实现c++和java混合编程的实例

    CORBA编程范例

    关于CORBA编程的简单说明时间运用. CORBA一般请求流 1.客户端调用 2.客户端ORB将消息 传递给服务器ORB 3.服务器端ORB将消息传递给POA(Portable Object Adapter ) 4.POA将请求分配给对象,并返回结果

Global site tag (gtag.js) - Google Analytics