什么是CORBA

公共对象请求代理(调度)进程体系结构(commonobjectrequestbrokerarchitecture )简称为CORBA;对象管理组织(object management ) 简而言之,CORBA允许APP应用程序与其他APP应用程序进行通信,无论它们位于何处或由谁设计。 CORBA 1.1是由对象管理组织于1991年发表的。 他定义了接口定义语言(IDL )和APP应用程序编程接口(API ),以通过实现对象侦听(orb )来激活客户端/服务器之间的交互。 CORBA 2.0于1994年12月发布。 他定义了跨不同的ORB提供商进行通信的方法。

ORB是中间件,在对象之间建立了客户和服务器的关系。 无论服务器位于同一台计算机上还是通过网络访问,ORB都允许客户端轻松使用服务器对象方法。 ORB监听调用,找到对象实现这个请求,传递参数和方法,并返回结果。 客户不需要知道对象位于何处、用哪种语言实现,也不需要知道与操作系统或其他对象接口无关的内容。

在传统的客户端/服务器程序中,开发人员使用自己设计的标准或公认的标准来定义设备之间的协议。 协议的定义取决于实现的语言、网络的传输和许多其他因素。 ORB简化了这个过程。 使用ORB时,协议定义通过APP应用接口进行,该接口是接口定义语言(IDL )的实现,与使用的编程语言无关。 ORB提供了很大的灵活性。 他让程序员选择最适合他的操作系统、运行环境和设计语言,构建系统中的所有组件。 更重要的是,整合已经存在的组件。

CORBA是面向对象的标准化和互操作性道路上的信号。 CORBA使用户不必知道在硬件和软件平台以及企业网络的何处可以操作。

ORB结构

用几张图来说明吧。

通过ORB发送请求

上图显示了客户端将请求发送到对象的实现。 客户端是对对象执行操作的实体。 对象实现是用于实际实现对象的代码和数据。 ORB负责为该请求找到对象实现,使对象实现准备接受请求,以及与请求交换数据所需的机制。 客户端接口完全独立于对象的位置,不影响实现的语言或其他对象接口。

ORB接口的工作原理

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

为了发出请求,客户端使用动态调用接口(动态调用接口),与目标对象的接口分开或依赖于目标对象的接口的OMG 客户端还可以直接与ORB交互。

的实现通过OMG IDL生成的骨架或通过调用动态骨架来接受请求。 对象的实现在处理请求和其他时可能会调用ORB。

定义对象接口定义有两种方法: 接口可以在接口中定义语言的静态定义,称为OMG的IDL。 此语言根据可执行的操作和该操作的参数定义对象类型。 或者,也可以将接口添加到接口存储库服务中。 此服务描述了接口用作对象的组件,并允许用户在运行时访问这些组件。 在任何ORB实现中,IDL和接口库都具有相同的表达能力。

客户端使用占位符或动态调用接口

客户端通过访问对象的对象引用、了解对象类型以及需要执行的操作来发出请求。 客户可以调用占位程序请求请求,也可以动态构建请求。

动态或占位符接口也可以以相同的方式实现。 接收方不知道请求是如何发出的。

对象实现接受请求

ORB在对象上定位适当的代码,传递参数,传达控制。 这都通过IDL骨架或动态骨架。 骨架因接口和对象适配器而异。 当执行该请求时,对象的实现可能使ORB通过对象适配器获得一定的服务。 请求完成后,控制值和输出值将返回给客户。

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

接口和实施资料档案库

上图显示了接口和实现信息如何访问客户和对象。 接口在OMG的IDL和/或接口存储库中定义。 此定义是生成客户端占位符和对象实现的框架。

的实现信息在安装时提供,并存储在Implementation Repository中以请求发布。