corba是什么 CORBA

CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构,通用对象请求代理体系结构)是由OMG组织制订的一种标准的面向对象应用程序体系规范。或者说 CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案;OMG组织是一个国际性的非盈利组织,其职责是为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。

CORBA(CommonObjectRequest BrokerArchitecture,公共对象请求代理体系结构,通用对象请求代理体系结构)是由OMG组织制订的一种标准的面向对象应用程 序体系规范。或者说 CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案;OMG组织是一个国际性的非盈利组织,其职责是为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。

OMG组织成立后不久就制订了OMA(Object Management Architecture,对象管理体系结构)参考模型,该模型描述了OMG规范所遵循的概念化的基础结构。OMA由对象请求代理ORB、对象服务、公共设施、域接口和应用接口这几个部分组成,其核心部分是对象请求代理ORB(Object Request Broker)。对象服务是为使用和实现对象而提供的基本服务集合;公共设施是向终端用户应用程序提供的一组共享服务接口;域接口是为应用领域服务而提供的接口;应用接口是由开发商提供的产品,用于它们的接口,不属于OMG标准的内容。ORB提供了一种机制,通过这种机制,对象可以透明的发出请求和接收响应。分布的、可以互操作的对象可以利用ORB构造可以互操作的应用。

CORBA标准由物件管理组织(OMG)设立并进行控制,CORBA定议了一系列API,通信协议,和物件/服务信息模型用于使得异质应用程序能够互相操作,这些应用程序用不同的程序语言编写,运行在不同的平台上。CORBA因此为定义明确的物件提供了平台和位置的透明性,这些物件是分布式计算平台的基础。

通常来说,CORBA把用其他语言开发的程序码和关于该程序码能力和如何调用该程序码的资讯包到一个套装(package)中,包成套装的物件则可以在网络上被其他程序(或CORBA物件)调用。 在这个意义上来讲,CORBA可以被看作是一个机器可读的文件档格式,类似于标头档(header),但是具有相当多的资讯。

CORBA使用一种接口定义语言用于刻画物件将呈现出来的接口。CORBA又规定了从IDL到特定程序语言,如C++或Java,实现的映射。这个映射精确的描述了CORBA资料类型是如何被用户端和服务器端实现的。标准映射的有Ada、C、C++、Smalltalk、Java、以及Python。 还有一些非标准的映射,为Perl和Tcl的映射由这些语言写的ORB实现。

CORBA的IDL只是IDL的一个例子。

在提供用户语言和平台中性的远端程序呼叫规范的同时,CORBA也定义了通常需要的服务,例如事务和安全。

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决定由哪一个对象实例完成这个请求,然后激活这个对象,将完成请求所需要的参数传送给这个激活的对象。除了客户传送参数的接口外,客户不需要了解其它任何信息,这就大大节省了用户的开发精力。而下图着重说明ORB的接口结构。

这个图中的一些信息希望大家能够注意一下,在编程的时候不一定能够全部用上,但是它们还是很重要的。在提出请求时,客户可以使用动态调用接口或者OMG IDL句柄。当然用户也可以直接调用一些ORB内部的功能。对象实现通过OMG IDL产生的框架或通过动态框架接收到调用请求,在处理这些请求时,对象实现可以调用对象适配器和ORB。

对象的接口有两种定义方式,可以使用接口定义语言(称为OMG接口定义语言,OMG IDL)进行静态定义,这种语言根据进行的操作和传送的参数定义对象。另一种方法,可以将接口加入接口库服务中,这种服务代表作为对象的接口的组件,允许在运行时对这些成为组件的接口进行访问,这两种方法是等效的。下图表示的是客户使用句柄或动态调用接口进行访问的情况。

客户知道对象的类型和希望进行的操作(一般客户都知道这个,如果连需要进行什么操作都不知道,那就可笑了)客户可以通过访问一个对象的对象参考提出请求。客户可以通过调用句柄函数初始化调用,也可以动态提出请求。动态发出的请求和通过句柄接口发出的静态请求两者在格式是一样的,请求的接收者不可能知道这种请求是动态发出的还是静态发出的。下图是一个对象实现接收请求的示意图。

ORB定位合适的可以实现这个功能的代码,通过IDL框架或动态框架传向对象实现传送参数,并将控制权交给对象实现。框架是指定于接和对象适配器的,在实现请求的过程中,对象实现可以通过对象适配器获取一些ORB服务。在完成请求时,将控制权和输出数据返回给客户。不要被图给迷惑了,对象实现可以根据自己的需要选择需要的对象适配器使用。下图是接口和实现库的结构示意图。

上图显示了接口和实现住处如何对客户和对象实现是可用的,接口可以在OMG IDL或在接口库中实现,这种对接口的定义用于产生客户句柄和对象实现框架。对象实现信息在安装时提供,保存于实现库中,在传送请求时可以使用这个信息库中的内容。

对象请求代理这个结构在上图中并不需要作为组件单独实现,它由接口定义。任何提供正确接口的ORB实现都是可被接受的。接口可分为以下几大类:

1.对于所有ORB实现均相同的接口;
2. 指定于特定对象类型的操作;
3. 指定于对象实现的特定形式的操作;

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

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

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

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

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

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

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

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

对象适配器是对象实现访问ORB提供的服务的主要方式由ORB提供的服务在一个对象适配器中经常包括:对象引用的产生和解释、方式调用、交互性安全、对象和实现的激活与释放、对象引用到实现的映射及实现的定位由于各个不同对象的对象粒度、生命周期等等。ORB内核无法为所有的对象提供一个统一、方便有效的界面。通过对象适配器的作用,可以将目的对象分成若干组,每组通过特定的对象适配器来满足其特定的需要,但这样一来,对象适配器的种类便会急剧膨胀,为了减少对象适配器的种类,CORBA给出了基本对象适配器(BOA),以满足大多数对象的需要,BOA提供了产生和解释对象引用、对请求进行认证、激活/去活实现 、激活/去活单个对象、通过框架调用方法等功能. 在提供这些功能时 ,BOA要用到一些与操作系统有关的知识 ,这些知识由实现仓库提供,实现仓库还存放对象实现的有关信息。

ORB接口一种直接对应于ORB的接口,它对于所有的对象接口,对象适配器都是一样的。大部的操作都由对象适配器,句柄,框架或动态调用实现,对于所有对象都需要的操作很少。接口库是一种服务,其中保存着接口信息,这些信息在ORB执行请求时会用得上。而且,当一个应用程序在调用一个未知接口的对象时,可以通过接口库了解能够在其上进行的操作。除了,它可以充当ORB功能外,实现库通常还保存与ORB对象实现相关的信息。实现库包括了一些信息,这些信息让ORB可以定位并激活对象的实现。实现库中的信息是特定于ORB或实现环境的,通常,实现的安装和控制策略是通过实现库实现的。除了,它可以充当ORB功能外,实现库通常还保存与ORB对象实现相关的信息。

一、CORBA的来源

●CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案;

●OMG是一个世界性的非赢利论坛组织,成立于1989年,最初有3Com、AmericanAirlines、Cannon Inc、DataGeneral、HP、Philips Telecommunication N.M、SUN、Unisys八个成员,目前已超过700个成员,其目标是开发一种技术上先进和商业上可用,独立于厂商的软件工业规范;

●1991年OMG提出了CORBA1.1,定义了IDL接口定义语言,开发出对象请求代理ORB中间件,在客户机/服务器结构中,ORB通过一定的应用程序接口(API),实现对象之间的交互;

●1994年12月OMG完成了CORBA2.0,提出了IIOP(Internet Inter Object Protocol),用以规范不同厂家的ORB之间的真正互通,同时增加了互操作性和对C++及SmallTalk的匹配,OMG期望通过上述规范,建立一种“连接世界的体系结构”;

●CORBA 在面向对象的标准化和互操作上迈出了坚实的一步。使用CORBA,用户能在不知道软件和硬件平台以及网络位置的情况下透明的获取信息;

●CORBA自动进行许多网络规划任务如对象注册、定位、激活;多路径请求;分帧和错误处理机制;并行处理以及执行操作;

corba是什么 CORBA

●作为面向对象系统中的通信核心, CORBA为当代的计算环境中带来了真正意义上的互联;

二、CORBA的含义及特点

●CORBA定义了一种面向对象的软件构件构造方法,使不同的应用可以共享由此构造出来的软件构件;

●每个对象都将其内部操作细节封装起来,同时又向外界提供了精确定义的接口,从而降低了应用系统的复杂性,也降低了软件开发费用;

●CORBA的平台无关性实现了对象的跨平台引用,开发人员可以在更大的范围内选择最实用的对象加入到自己的应用系统之中;

●CORBA的语言无关性使开发人员可以在更大的范围内相互利用别人的编程技能和成果, 是实现软件复用的实用化工具;


三、CORBA的一般用途

●存取来自现行桌面应用程序的分布信息和资源;

●使现有业务数据和系统成为可供利用的网络资源;

●为某一特定业务用的定制的功能和能力来增强现行桌面工具和应用程序;

●改变和发展基于网络的系统以反映新的拓扑结构或新资源;

四、CORBA的技术背景

●面向对象技术的兴起;

●客户/服务器模式的普遍应用;

●集成已有系统及通信和实现细节的需求;

●现有分布处理机制和方法存在着不足之处;

五、基于分布式对象计算的CORBA

●在CORBA环境中,应用程序的集成是基于面向对象模型的;

●CORBA通过分布式对象计算,即分布式计算和面向对象计算的结合,以实现软件重用,这是开发下一代软件的基础;

●分布式对象计算的组成

分布式计算和对象模型的结合:CORBA是这两者的完美结合,这两部分不仅带来了自身的优点,而且完善了对方的优点;

代理器的使用:CORBA使用代理器来处理系统中客户机与服务器之间的消息;

●什么是分布式计算

分布式计算是两个或多个软件互相共享信息;

大部分分布式计算是基于客户/服务器模型的;

分布式计算可以拥有稀有资源共享、平衡机器负载等优点,使计算机资源的使用更为有效;

CORBA采用一定的手段增强分布式计算:

●CORBA采用增强分布式计算的手段

允许客户机与器间灵活变化的关系;

加入一个称为代理的中介;

允许服务器有多个进程;

支持同步及异步两种通信形式;

●对象模型是对象计算中的概念,是考虑问题及其可能解决方案的概念性框架; 对象模型的基础是对象概念之上的,对象提供了把行为和属性结合成一单独实体的手段;

●使用对象模型具有以下优点:定义一个基于现实世界的系统模型

把系统逻辑地分成能完成特定任务的对象

当需求改变时扩展模块

● 在CORBA中分布式计算和对象模型的结合实现了相互促进,CORBA在分布式计算和对象模型环境中加入了下列内容:

●分布式计算方面的增强:对分布式计算环境,CORBA在环境中加入了特定对象的引用。在CORBA中,要完成某个操作,所需要做的仅仅是请求某个有能力完成该操作的对象去完成它,客户机不需要知道更多的信息;

对象模型方面的增强:对于对象模型,CORBA加入了代理器的概念。代理器使应用程序不需要知道对象在网络上哪个地方和对方是如何工作的就可以进行交互,只有代理器需要知道CORBA服务器和客户机在网络上的位置;

六、CORBA

  

爱华网本文地址 » http://www.413yy.cn/a/8103450103/100803.html

更多阅读

手机刷机是什么意思 手机刷机线

刷机是什么意思刷机就是给智能手机重装系统,进行系统安装的操作。就像是给自己的电脑从新装系统一样,刷机的目的在于提高整机运行性能.升级原来的系统,能够修正系统bug让手机运行得更加稳定.更换自己喜欢的版本.删除官方手机自带的一

Macd金叉是什么意思,Kdj金叉是什么意思 macd kdj rsi金叉选股

今天我们来说一下,Macd金叉是什么意思,Kdj金叉是什么意思这俩个问题。首先大家要长得,股市技术面上看,是存在金叉和死叉二种概念的,金叉的出现一般意味着上涨,死叉的出现一般意味着下跌。但这里建议大家看金叉或者死叉时,不要只看日K线,还

声明:《corba是什么 CORBA》为网友绝不放弃分享!如侵犯到您的合法权益请联系我们删除