求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

CORBA查看源代码讨论查看历史

跳转至: 导航搜索
  CORBA

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

简介

­­­CORBA是OMG组织在1991年提出的公用对象请求代理程序结构的技术规范。CORBA有很广泛的应用,它易于集成各厂商的不同计算机,从大型机一直到微型内嵌式系统的终端桌面,是针对大中型企业应用的优秀的中间件。最重要的是,它使服务器真正能够实现高速度、高稳定性处理大量用户的访问。现在很多大型网站后端的服务器都运行CORBA,其中有些网站您可能每天都在访问。CORBA的底层结构是基于面向对象模型的,由OMG接口描述语言(OMG Interface Definition Language,OMG IDL)、对象请求代理(Objec tRequest Broker,ORB)和IIOP标准协议(Internet Inter­ ORB Protocol,也称网络ORB交换协议)3个关键模块组成。使用接口描述语言编写的对象接口,使得与语言无关的独立性成为可能。IDL使得所有CORBA对象以一种方式被描述,仅仅需要一个由本地语言(C/C++、CORBA或Java)到IDL的“桥梁”。CORBA对象的互通信要以对象请求代理为中介,这种互通信可以在多种流行通信协议(如TCP/IP或IPX/SPX)之上实现。在TCP/IP上,来自于不同开发商的ORB用IIOP标准协议进行通讯。­­­­我们知道,为了保持CORBA的商业中立性和语言中立性,必须有一个中介,存在于像C++CORBA服务器代码和JavaCORBA客户机这样的实体中间,这就是IDL。一个底层对象的若干相关方法和属性被IDL集入一个单一接口。一旦IDL接口定义完成,它可以以Stub码或框架代码的形式编译成所选用的语言。在所有的ORB中都有IDL编译器。值得注意的一点是,IDL不同于其他的面向对象程序设计语言,我们不能用它指定所定义的类或方法的具体实现。因此,仅仅将它作为一种定义底层对象接口的语言要好得多。

评价

客户端发起调用的时候,输入参数格式都与特定平台和特定语言有关,客户端ORB负责将它们编码成可以在网络上传送的格式,或称在线格式(on-wire format),这一过程称为编组(marshalling)。这种“0101”的格式在网络上传送后到达服务器端的ORB,服务器端的ORB负责将这些在线格式“还原”成本地所使用的特定平台和语言的格式,这一过程称为解组(unmarshalling)。与此相反,当服务器端调用结束以后,服务器端ORB负责将输出参数和返回参数编码成在线格式,并经网络传送到客户端ORB,客户端ORB再将这些在线格式“还原”成本地所使用的特定平台和语言的格式,作为输出参数和返回参数送给客户端程序。总的来说,编组与解组的重要性表现在:第一,它把对远端对象的调用变成一维的有序码流,有利于在网络上的传送。第二,它提供了一个独立于各平台和语言的“中间格式”,不同的平台上的不同语言通过这个“中间格式”进行“对话”“(中间格式”的规则,将在后面章节中叙述)。正是由于编组和解组的引入,使客户端和服务器端的平台和语言可以不同,带来了CORBA的平台独立与语言独立的特性。[1]

参考文献

  1. CORBA搜狗