CORBA(四)

日期: 2007-12-27 来源:TechTarget中国

  不同的ORB可以采用不同的实现策略,加上IDL编译器,库和不同的对象适配器,这一切提供了一系列对客户的服务和对具有不同属性对象的实现。可以存在多个ORB实现,它们有不同的名称和不同的实现方法与调用方法,对于客户而言,客户可以同时访问由不同ORB实现管理的对象,当几个ORB共同工作时,它们必须能够区别它们各自的对象名(也就是对象参考),客户不管区别只管使用。ORB内核是ORB的一部分,它提供了对象的基本命名和请求通信机制。CORBA设计得可以支持不同的对象机制,它是通过在ORB内核上建立ORB来完成这一点的。

  一个对象的客户可以访问此对象参考,并对对象进行操作。客户不清楚对象的内部结构,它只知道对象的接口和执行操作所需要的时间和空间等资源。虽然我们可以把客户想象为一个调用对象的进程,但是我们也不要忘记了对象也可以调用另外对象的服务。客户看到的ORB接口和人观念中的接口有差不多,这就为编程提供了帮助。客户不需要对代码进行改变就可以通过ORB实现功能,对象适配器只能由ORB或对象实现调用。

  对象实现提供了对象的表现形式。通常实现由另一对象提供或由相应的软件提供,当然也可以自己编程实现。在某些情况下,对象的主要功能是非对象实体产生作用。在CORBA中可以支持对象的不同实现。通常,对象实现不依赖于ORB或客户请求,对象实现可以通过选择对象适配器选择和ORB相关服务来选择接口。

  对象参考是需要在ORB内指定的信息,客户和对象实现相应于语言映射有对象参考的一个透明定义,这样就把实现的表示与参考隔离开了。两个ORB实现可能在选择对象参考表示时是不同的。所有的ORB必须提供相对于对象参考一致的语言映射,这使得程序能够独立于ORB对对象参考进行访问。

  OMG接口定义语言(OMG IDL)通过对象的接口定义了对象的类型。一个接口由一些命名的操作和与这些操作相关的参数组成。请注意,虽然IDL提供概念框架用于描述对象,但不需要有IDL源代码供ORB工作。只要相同的信息以句柄函数或运行接口库的形式提供,特定的ORB就可以正常工作。IDL是一种方法,它使对象实现能够告诉潜在的客户,什么样的操作可以执行。从IDL的定义上可以将CORBA对象映射为特定的编程语言或对象系统。

  不同的面向对象语言和非面向对象语言可以以不同的方式访问CORBA对象。对于面向对象语言而言,它希望看到的是对象的形式,即使对非面向对象语言来说,它所希望看到的也不包括具体的内部实现。将OMG IDL映射为编程语言的方法对于所有的ORB实现应该是一致的。这些映射可能包括数据类型的映射和调用ORB的过程(或函数)接口的映射。语言映射还定义了对象调用和客户(或实现)中的控制线程之间的相互作用。最普通的映射提供了同步调用,结果可以在过程完成时返回。其它的映射可以用来初始化调用并将控制权返回给程序,在这些情况下,附加的函数必须相应的同步功能。

  为了映射非面向对象语言,将有一个对每个接口类型的程序接口。通常,句柄将提供访问OMG IDL定义的操作的机制。句柄调用对于ORB核心是私有的那部分ORB。如果有多于一个ORB,将会有对应于不同ORB的接口。在这种情况下,需要ORB和语言映射相互协调以访问正确的对象参考句柄。面向对象语言不需要句柄接口。接口允许对象动态调用,用户可以不必调用一个特定对象上的操作,他可以指定调用特定的对象。客户程序提供关于操作和参数类型的信息就可以了。

  允许动态处理对象调用的接口是非常有用的,不是由与特殊操作相关的框架来访问对象实现,而是由一个提供访问操作名和参数的界面用一种类似于动态调用接口的方式来访问对象实现。动态框架界面可以由客户句柄或动态调用接口来调用,它们向动态框架接口发出对象请求。动态框架接口的基本思想是让所有的对象请求通过调用同一组例程来达到调用对象实现中方法的目的,这组例程便叫做动态调用例程DIR。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • 基于SOA的物流信息集成框架模型设计

    文中基于SOA具有的松耦合、跨平台、可重用等优势,提出了一种基于SOA的物流信息集成框架模型,对框架内的各个技术层面特别是服务组装层面进行了深入探讨。

  • OMG主席畅谈云计算和SOA

    Richard Soley是在20世纪90年代致力于推动标准分布式对象计算架构的核心人员之一,这一架构就是后来众所周知的CORBA。

  • OMG DDS线协议交互式实例

    若干不同的消息类型构成了急速嵌入式中间件的小世界。对象管理组织(OMG)赞助的数据分布式服务(DDS)最近被用于演示这些系统之间的线协议交互操作。

  • OMG BPM/SOA实践社区BPM/SOA案例研究

    本周,SearchSOA.com和eBizQ合作伙伴OMG BPM/SOA实践社区宣布了“敏捷业务和业务流程管理BPM流程优化以及面向服务架构(SOA)案例研究竞赛”的冠军。