方兴未艾CORBA.PDFVIP

  • 4
  • 0
  • 约1.33万字
  • 约 9页
  • 2018-06-09 发布于湖北
  • 举报
方兴未艾的CORBA 庞燕 武新逢 ­­­­ 一直以来,面向对象的技术(Object Orientation ,OO)是软件界努力追求 的目标,传统的对象技术通过封装、继承及多态提供了良好的代码重用功能。但是这些对象 只存在于一个程序中,外面的世界并不知道它们的存在,也无法访问它们。要解决这些问题 就需要提供一个标准的构件框架,使不同厂家的软件通过不同的地址空间、网络和操作系统 交互访问。该构件的具体实现、位置及所依附的操作系统对客户来说都是透明的。因此有关 对象中间件的标准相继问世,像 OMG 组织(Object Management Group)的公用对象 请求代理程序结构(Common Object Request Broker Architecture ,CORBA)、 Microsoft 的构件对象模型(Componet Object Model,COM)以及IBM 公司的系统对 象模型(System Object Model,SOM)等,这些标准都极大地促进了对象中间件技术的 发展。 CORBA 概要描述 ­­­­ CORBA 是OMG 组织在1991 年提出的公用对象请求代理程序结构的技术规范。 CORBA 有很广泛的应用,它易于集成各厂商的不同计算机,从大型机一直到微型内嵌式系 统的终端桌面,是针对大中型企业应用的优秀的中间件。最重要的是,它使服务器真正能够 实现高速度、高稳定性处理大量用户的访问。现在很多大型网站后端的服务器都运行 CORBA,其中有些网站您可能每天都在访问。 ­­­­ CORBA 的底层结构是基于面向对象模型的,由OMG 接口描述语言(OMG Interface Definition Language ,OMG IDL)、对象请求代理 (Object Request 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 服务器代码和Java CORBA 客户机这样的实体中间,这就是IDL。一 个底层对象的若干相关方法和属性被IDL 集入一个单一接口。一旦IDL 接口定义完成,它 可以以Stub 码或框架代码的形式编译成所选用的语言。在所有的ORB 中都有IDL 编译器。 ­­­­ 值得注意的一点是,IDL 不同于其他的面向对象程序设计语言,我们不能用它指 定所定义的类或方法的具体实现。因此,仅仅将它作为一种定义底层对象接口的语言要好得 多。 ORB 接口结构 ­­­­ 为了创建一个遵从CORBA 规范的应用程序,ORB 是CORBA 必须提供的。没有 ORB,CORBA 应用程序就无法工作。CORBA ORB 最显著的功能,是对应用程序或是其他ORB 的请求予以响应。实现细节对软件开发者的透明性,是ORB 的一个杰出的特性。 ­­­­ 在CORBA 应用程序运行期间,ORB 可能被请求做许多不同的事情,包括查找并 调用远程计算机上的对象、负责不同编程语言之间的参数转换( 如C++到Java)、用动态 方法调用激活远程对象等等。 ­­­­ 图1 所示为一个独立的ORB 的结构,箭头说明ORB 的调用关系。为了提出一个 请求,客户端可以使用动态调用接口(Dynamic Invocation )或者客户端的Stub 程序。 客户端也可以直接和ORB 交互。 图1 ­­­­ 对象的实现(Object Implementation )通过IDL 静态骨架(IDL Static Skeleton)或动态骨架(Dynamic Skeleton )的调用来接受请求。 ­­­­ 图2所示为一个远程调用过程。为了调

文档评论(0)

1亿VIP精品文档

相关文档