APP下载

浅析分布式CORBA技术

2008-10-15李奕生

中学理科·综合版 2008年9期
关键词:体系架构

李奕生

摘 要:CORBA是一项比较成熟的分布式面向对象技术,具有与平台和语言无关的特点.本文主要阐述CORBA技术的发展演进、技术特点、体系架构、核心技术、安全机制等几个方面内容,这对该领域的研究开发人员理解CORBA技术有一定的参考价值.

关键词:分布式计算技术;CORBA;体系架构;ORB

一、引言

分布式计算技术是为了适应网络发展,特别是互联网的发展而提出的一种应用,它不仅要解决客户与应用程序之间的调用,而且要解决应用程序之间协同工作等问题.在信息时代,PC机、服务器和智能设备星罗棋布,这样的环境下,使用传统主机/终端模式已不能满足用户要求,主要问题在于跨网络、跨平台、跨语言传播和使用信息,这是一个面对各种遗留应用、专有标准和异构平台的集成问题,由此产生了对分布式计算技术的需求.CORBA(CommonObjectRequestBrokerArchitecture,公共对象请求代理体系结构)就是在当今快速发展的软件与硬件资源的情况下提出的一种分布式计算平台,它允许不同的应用程序之间可以透明地进行互操作,而不用关心对方位于何地、由谁来设计、运行于何种硬软件平台以及用何种语言实现等.

二、CORBA概述

1.CORBA的发展演进

CORBA作为一个分布式的面向对象应用架构规范,它是由OMG(对象模型组织)研究组在80年代末提出,在90年代逐步完善,直到现在形成被软件行业普遍认可的标准——CORBA/IIOP规范.CORBA的开发者OMG最初由3Com,AmericanAirlines,Canon,DataGeneral,Hewlett-Packard,Philips,Sun和Unisys等8家公司于1989年组建,专门从事公共软件平台的研究和行业标准的制订,目前已经有800多个成员单位加入OMG.CORBA1.1版本于1991年由OMG提出,同时还提出了接口定义语言以及能够让客户机/服务器对象在特定的ORB实现中进行通信的规则.而在1994年提出并被采纳的CORBA2.0标准才真正实现了不同生产厂商间的互操作性.OMG在1999年推出的CORBA3.0是一个非常重要的版本,目前应用最广泛,它实现CORBA与Internet的彻底集成.它引入的新技术主要包括:CORBA构件模型,CORBA的消息服务和通过值传递对象.

2.CORBA的技术特点

CORBA在基于网络的分布式应用环境下实现应用软件的集成,使得面向对象的软件在分布、异构环境下实现可重用、可移植和互操作,CORBA技术具有如下几个主要特点:

(l)在CORBA规范中引入了代理的概念,代理可以完成对客户方提出的抽象服务请求的映射、自动发现和寻找服务器、自动设定路由,实现到服务器方的执行.CORBA实现客户与服务对象的完全分开,客户不需要了解服务对象的实现过程以及具体位置.

(2)CORBA提供软总线机制,这是系统定义的一组接口规范,使得在任何环境下,采用任何语言开发的软件只要符合接口规范的定义,均能够集成到CORBA系统中.

(3)CORBA规范只是针对OMA体系结构中的ORB制定的工业标准,而面向应用的对象定义则可以在OMA的应用对象或应用开发环境中逐步分层定义和实现.

3.CORBA的基本结构

1990年OMG制定了对象管理体系结构(OMA),CORBA是它的一种实现方案.在CORBA中主要定义了接口定义语言(IDL)和应用编程接口(API),从而通过实现对象请求代理(ORB)来激活客户/服务器的交互[4].其基本程序结构如图1.

从图1我们可以看到,在客户机上的应用程序与服务器上的应用程序是相对独立的.客户应用程序提出请求,服务器应用程序接受这些请求并做出响应.其实现过程如下:

(1)客户机提出请求;

(2)客户机ORB核心通过网络传送给与服务器应用程序相连接的服务器ORB核心;

(3)服务器ORB核心将这些请求分配给对象适配器,由它产生目标对象;

(4)对象适配器进一步将请求分配给实现对象的私服程序;

(5)私服程序执行请求后,它返回结果给客户应用程序.

三、CORBA的核心

CORBA的底层结构是基于面向对象模型的,由OMG接口描述语言(IDL)、对象请求代理(ORB)以及ORB之间的互操作IIOP协议(也称网络ORB交换协议)3个关键模块组成.

1.ORB(Object Request Broker)

CORBA体系结构的核心就是ORB.可以这样简单理解:ORB就是使得客户应用程序能调用远端对象方法的一种机制.

具体来说:当客户程序要调用远程对象上的方法时,首先要得到这个远程对象的引用,之后就可以像调用本地方法一样调用远程对象的方法.当发出一个调用时,实际上ORB会截取这个调用,因为客户和服务器可能在不同的网络、不同的操作系统上甚至用不同的语言实现,ORB还要负责将调用的名字、参数等编码成标准方式(称Marshaling)通过网络传输到服务器方,并通过将参数Unmarshaling的过程,传到正确的对象上.服务器对象完成处理后,ORB通过同样[JP3]的Marshaling/Unmarshaling方式将结果返回给客户.

因此,ORB是一种功能,它具备以下能力:

(1)对象定位;

(2)对象定位后,确信Server能接受请求;

(3)将客户方请求通过Marshaling/Unmarshing方式重定向到服务器对象上;

(4)如果需要,将结果以同样的方式返回.

2.IDL(InterfaceDefinitionLanguage)

IDL,接口定义语言,是CORBA体系中的另一个重要概念.如果说ORB使CORBA做到与平台无关,那么IDL则使CORBA做到与语言无关.

[JP3]正像其名字中显示的那样,IDL仅仅定义接口,而不定义实现,类似于C中的头文件.实际上它不是真正的编程语言.要用它编写应用程序,需要将它映射到相应的程序设计语言上去,如映射到C++或JAVA上去.映射后的代码叫客户存根代码和服务器骨架代码.[JP]

3.IIOP协议

在发布CORBA2.0版本之前,ORB产品的最大缺点是不同供应商所提供的ORB产品之间并不能互操作.为此,OMG在CORBA2.0版本中制定通用ORB间通信协议(GIOP)和Internet域ORB间通信协议(IIOP).

GIOP是互操作体系结构的基础,它是一种通用协议,为ORB之间的通信规定了一系列标准传输文法和信息格式.IIOP定义了如何在TCP/IP传输协议上构建GIOP.GIOP和IIOP之间的关系类似于接口定义和具体实现之间的关系.

四、CORBA安全机制

对象请求中介必须管理从信任域到ORB间一系列系统的安全性.组件不需要负责加强其自身的安全性,这样更容易开发、管理和跨环境输出.CORBA安全机制在对象请求中介的模型如图2所示,所有的对象调用都由适当的安全函数作为中间媒介进行传送,以加强管理[5].

1.鉴别

鉴别产生一个唯一的鉴别标志,这个标志不能被对象更改,只有鉴别服务器可以更改它.鉴别过的客户可以用一个注册号从任何地方访问任何服务器对象.用户登录一次,取得鉴别,然后获得一组需要与之[JP4]通信的对象的安全票,都由对象请求中介安全机制进行.

2.特许授权

CORBA分别提出了无授权、简单授权和组合授权三种授权方案,无授权即中间对象不能利用客户的特许去调用链中的下一个对象;对于简单授权而言,中间对象采用了客户的特许,然后在处理目标时模仿客户,它还可将客户的证书授权给其他对象;组合授权即中间对象在处理目标对象时可以包含客户的特许,也可以包含它自己的特许.

3.加密

CORBA对象请求服务可以为处理不可窜改问题提供加密和密码检验两种机制,加密允许两个本体保持一条安全的通信途径,密码检验可以确保数据在穿过网络时没有被修改.另外,CORBA安全服务定义了可替代子系统,允许对象请求中介使用标准的工业加密和电子签名机制.

五、CORBA的应用

由于CORBA系统引入了中间件的概念,取消了原有分布式计算模型中客户机服务器之间的一一对应关系.客户机可以在运行时动态获得服务对象的位置,并且可以对多个服务对象提交事务请求,极大推动了分布计算技术的发展.

另外CORBA规范约束采用面向对象的分布式软件的构造方法,以接口定义语言的形式实现对象内部细节的完整封装,从而降低了软件系统的复杂程度,增加了软件功能的可重用性.CORBA提供到C、C++、Java、SmallTalk等高级语言的映射,很大程度地减小了对程序设计语言的依赖性,使软件开发人员可以在较大范围内共享已有成果.

正是以上特点推动了分布式多层软件体系结构的发展,也正是基于CORBA具有较好的开放性和连续性,目前CORBA技术在银行、图书馆、电信、保险、电力和电子商务领域都有广泛的应用.

六、结束语

分布式对象技术为网络计算平台上软件的开发提供了强有力的解决方案,它已经成为建立服务应用框架和软件构件的核心技术,在开发大型分布式应用系统中表现出强大的生命力.CORBA生命力是目前主流的分布式计算技术之一,对这一体系结构的深入了解对进行各种分布式应用系统的设计与开发工作有重要意义.

参考文献

1.李文军,周晓聪,李师贤等.分布式对象技术[M].北京:机械工业出版社,2004.

2.JasonPritchard著,徐金梧等译.COM与CORBA本质与互用:体系结构与策略实现[M].北京:清华大学出版社,2002.

3.郭乐深,苏森,杨放春,刘锦德.基于CORBA技术的策略安全信息系统的研究[J].小型微型计算机系统,2002(3):50-54.

猜你喜欢

体系架构
“广谱式”创新创业教育的体系架构与理论价值研究
分析智慧教育体系架构与关键支撑技术
云计算:体系架构与关键技术
基于SDN的OpenFlow管控标准接口协议研究
基于国产软硬件的行业大数据体系架构研究
基于分布式星群的空间信息网络体系架构与关键技术
关于应急移动通信体系架构及组网技术分析
智慧健康物联网体系架构研究
以培养工程能力为导向的工程建设管理综合训练中心建设实践探索
财务管理理论:舶来品与现实的矛盾