CORBA(通用工具请求署理体系布局)
当前位置:以往代写 > C/C++ 教程 >CORBA(通用工具请求署理体系布局)
2019-06-13

CORBA(通用工具请求署理体系布局)

CORBA(通用工具请求署理体系布局)

副标题#e#

CORBA(通用工具请求署理体系布局)是在当今快速成长的软件与硬件资源的环境下成长出的一种新技能。它可以让漫衍的应用措施完成通信,无论这种应用措施是什么厂商出产的,只要切合CORBA尺度就可以彼此通信。CORBA 1.1于1991年由OMG提出,同时还提出了接口界说语言Interface Definition Language,IDL)以及可以或许让客户/处事器工具在特定的ORB(工具请求署理)实现中举办通信。而1994年提出并被采用的CORBA 2.0尺度才真正实现了差异出产厂商间的互操纵性。

ORB是一个在工具间成立客户/处事器接洽的中件。利用ORB,客户可以挪用处事器的工具或工具中的应用,被挪用的工具不要求在同一台呆板上。由ORB认真举办通信,同时ORB也认真寻找适于完成这一事情的工具,并在处事器工具完成后返回功效。客户工具完全可以不体贴处事器工具的位置,实现它所回收的详细技能和事情的硬件平台,甚至不必体贴处事器工具的与处事无关的接口信息,这就大大简化了客户措施的事情。既然可以或许这么利便,那ORB就需要提供在差异呆板间应用措施间的通信,数据转换,并提供多工具系统的无缝毗连。

我们凡是体例客户/处事器措施时,经常需要本身界说通信协议,而协议的拟定往往与硬件和实现的要领有关,而ORB可以或许简化这一进程。在ORB下,协议通过IDL语言举办界说,担保了一致性,为了照顾到机动性,ORB答允措施员选择相应的操纵系统,执行情况和编程语言。更重要的是它可以使本来的代码通过必然的方法重用。CORBA是面向工具尺度的第一步,有了这个尺度,软件的实现与事情情况对用户和开拓者不再重要,可以把精神更多地放在当地系统的实现与优化上。

下面我们来看看CORBA的一些详细环境。CORBA被设计用来对差异工具系统举办集成,提供机动的的工具挪用与成果实现。下图是客户工具通过ORB挪用处事器工具。

工具请求署理布局的概略事情进程就象上面的事情进程一样。客户将需要完成的事情交给ORB,由ORB抉择由哪一个工具实例完成这个请求,然后激活这个工具,将完成请求所需要的参数传送给这个激活的工具。除了客户传送参数的接口外,客户不需要相识其它任何信息,这就大大节减了用户的开拓精神。在提出请求时,客户可以利用动态挪用接口可能OMG IDL句柄。虽然用户也可以直接挪用一些ORB内部的成果。工具实现通过OMG IDL发生的框架或通过动态框架吸收到挪用请求,在处理惩罚这些请求时,工具实现可以挪用工具适配器和ORB。

工具的接口有两种界说方法,可以利用接口界说语言(称为OMG接口界说语言,OMG IDL)举办静态界说,这种语言按照举办的操纵和传送的参数界说工具。另一种要领,可以将接口插手接口库处事中,这种处事代表作为工具的接口的组件,答允在运行时对这些成为组件的接口举办会见,这两种要领是等效的。下图暗示的是客户利用句柄或动态挪用接口举办会见的环境。

客户知道工具的范例和但愿举办的操纵(一般客户都知道这个,假如连需要举办什么操纵都不知道,那就好笑了)客户可以通过会见一个工具的工具参考提出请求。客户可以通过挪用句柄函数初始化挪用,也可以动态提出请求。动态发出的请求和通过句柄接口发出的静态请求两者在名目是一样的,请求的吸收者不行能知道这种请求是动态发出的照旧静态发出的。

ORB定位符合的可以实现这个成果的代码,通过IDL框架或动态框架传向工具实现传送参数,并将节制权交给工具实现。框架是指定于接和工具适配器的,在实现请求的进程中,工具实现可以通过工具适配器获取一些ORB处事。在完成请求时,将节制权和输出数据返回给客户。不要被图给疑惑了,工具实现可以按照本身的需要选择需要的工具适配器利用。

接口可以在OMG IDL或在接口库中实现,这种对接口的界说用于发生客户句柄和工具实现框架。工具实现信息在安装时提供,生存于实现库中,在传送请求时可以利用这个信息库中的内容。


#p#副标题#e#

工具请求署理这个布局在上图中并不需要作为组件单独实现,它由接口界说。任何提供正确接口的ORB实现都是可被接管的。接口可分为以下几大类:

1.对付所有ORB实现均沟通的接口;

2. 指定于特定工具范例的操纵;

3. 指定于工具实现的特定形式的操纵;

差异的ORB可以回收差异的实现计策,加上IDL编译器,库和差异的工具适配器,这一切提供了一系列对客户的处事和对具有差异属性工具的实现。可以存在多个ORB实现,它们有差异的名称和差异的实现要领与挪用要领,对付客户而言,客户可以同时会见由差异ORB实现打点的工具,当几个ORB配合事情时,它们必需可以或许区别它们各自的工具名(也就是工具参考),客户不管区别尽管利用。ORB内核是ORB的一部门,它提供了工具的根基定名和请求通信机制。CORBA设计得可以支持差异的工具机制,它是通过在ORB内核上成立ORB来完成这一点的。

#p#分页标题#e#

一个工具的客户可以会见此工具参考,并对工具举办操纵。客户不清楚工具的内部布局,它只知道工具的接口和执行操纵所需要的时间和空间等资源。固然我们可以把客户想象为一个挪用工具的历程,可是我们也不要健忘了工具也可以挪用别的工具的处事。客户看到的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。

工具适配器是工具实现会见ORB提供的处事的主要方法由ORB提供的处事在一个工具适配器中常常包罗:工具引用的发生息争释、方法挪用、交互性安详、工具和实现的激活与释放、工具引用到实现的映射及实现的定位由于各个差异工具的工具粒度、生命周期等等。ORB内核无法为所有的工具提供一个统一、利便有效的界面。通过工具适配器的浸染,可以将目标工具分成若干组,每组通过特定的工具适配器来满意其特定的需要,但这样一来,工具适配器的种类便会急剧膨胀,为了淘汰工具适配器的种类,CORBA给出了根基工具适配器(BOA),以满意大大都工具的需要,BOA提供了发生息争释工具引用、对请求举办认证、激活/去活实现 、激活/去活单个工具、通过框架挪用要领等成果. 在提供这些成果时 ,BOA要用到一些与操纵系统有关的常识 ,这些常识由实现客栈提供,实现客栈还存放工具实现的有关信息。

#p#分页标题#e#

ORB接口一种直接对应于ORB的接口,它对付所有的工具接口,工具适配器都是一样的。大部的操纵都由工具适配器,句柄,框架或动态挪用实现,对付所有工具都需要的操纵很少。接口库是一种处事,个中生存着接口信息,这些信息在ORB执行请求时会用得上。并且,当一个应用措施在挪用一个未知接口的工具时,可以通过接口库相识可以或许在其长举办的操纵。除了,它可以充当ORB成果外,实现库凡是还生存与ORB工具实现相关的信息。实现库包罗了一些信息,这些信息让ORB可以定位并激活工具的实现。实现库中的信息是特定于ORB或实现情况的,凡是,实现的安装和节制计策是通过实现库实现的。除了,它可以充当ORB成果外,实现库凡是还生存与ORB工具实现相关的信息。

    关键字:

在线提交作业