APP下载

CORBA技术的优越性与应用

2009-04-09高榕岭

新媒体研究 2009年5期

高榕岭

[摘要]CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是由OMG(对象管理组织,Object Management Group)提出的应用软件体系结构和对象技术规范,其核心是一套标准的语言、接口和协议,以支持异构分布应用程序间的互操作性及独立于平台和编程语言的对象重用。是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案。CORBA经过近十年的发展,已逐步走向成熟,并成功地应用在我国许多大型的软件系统中。

[关键词]CORBA OMG DCE ONC ORB

中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0310135-01

近年来,随着互联网技术的日益成熟,公众及商业企业正享受着高速、低价网络信息传输所带来的高品质数字生活。但是,由于网络规模的不断扩大以及计算机软硬件技术水平的飞速提高,给传统的应用软件系统的实现方式带来了巨大挑战。首先,在企业级应用中,硬件系统集成商基于性能、价格、服务等方面的考虑,通常在同一系统中集成来自不同厂商的硬件设备、操作系统、数据库平台和网络协议等,由此带来的异构性给应用软件的互操作性、兼容性以及平滑升级能力带来了严重问题。另外,随着基于网络的业务不断增多,传统的客户/服务器(C/S)模式的分布式应用方式越来越显示出在运行效率、系统网络安全性和系统升级能力等方面的局限性。

为了解决分布式计算环境(DCE,Distributed Computing Environment)

中不同硬件设备和软件系统的互联,增强网络间软件的互操作性,解决传统分布式计算模式中的不足等问题,对象管理组织(OMG)提出了公共对象请求代理体系结构(CORBA),以增强软件系统间的互操作能力。作为面向对象系统的对象通信的核心,CORBA为当今网络计算环境带来了真正意义上的互联。

CORBA作为系统集成的一种工业标准体系结构,其主要优点在于:

1.CORBA简化了分布式应用的集成,对于最终用户而言,它更易使用,因而在时间和成本方面都有所节约。

2.CORBA作为一种抽象的规范定义并不限制具体的实现方案,这一点对于软件供应商而言最具吸引力。因为这种灵活性使供应商可以充分利用现有的网络设施,比如有些供应商(如IONA)是以基于ONC(Open Network Computing)兼容的RPC方式实现CORBA,而有些供应商(如HP)是利用OSF DCE来实现CORBA,还有些供应商(如SunSoft)则跳过RPC层直接在底层直接实施CORBA,大多数供应商都提供使用OMG IDL接口实现连接库代码的支持。这种软件结构与实现手段相分离的特点,使得供应商们可以先利用IDL完成软件的结构设计,然后再选择合适的通信机制,以使系统具有最大限度的可用性。

3.与原有的基于RPC机制的单纯的C/S结构相比,CORBA结构更有利于资源的灵活、合理利用。因为CORBA是对等式的分布计算环境,所有应用对象之间的地位是平等的,其担任的角色也是可以转换的:当某一对象产生服务请求时就被称为客户方,而当它接受服务请求时就被称为服务方。绝大多数CORBA对象都可以担任客户方和服务方两种角色。使用CORBA,用户可以透明地访问信息,不需要知道信息存在于什么软件中、使用什么硬件平台。作为面向对象系统的通信核心,CORBA为今天的计算环境带来了真正的互操作性。

4.CORBA是面向对象的,这意味着面向对象的种种方便与强大功能将在CORBA的使用中得以体现,如系统的开放性、可重用性以及与原有系统的无缝集成和新功能的快速开发等等。它使程序员选择最适合的操作系统、执行环境,甚至系统各个组件也可以采用不同的编程语言实现。更重要的是,它允许现有组件的集成。

5.CORBA IDL是一种与编程语言无关的接口定义语言,用来定义对象的请求/服务接口,描述应用对象所封装的内容及界限。它类似于C++中类的描述,也包括属性和操作两部分,并且也支持接口之间的继承,以实现对象的可重用性。IDL定义经过编译后成为可为开发人员直接使用的头文件和stub程序。由OMG IDL到任何编程语言的映射理论上都是可以得到支持的。

6.CORBA作为一种标准,其核心元素的稳定性是有保证的。CORBA产生于拥有700多成员的OMG组织,该组织包括了多家主要的计算机软硬件厂商及大的科研院所,并得到X/Open,OSF,COSE,CI Labs,X/Consortium等的支持,权威性是毋庸置疑的。

正是基于CORBA的以上优点,可以把CORBA与JAVA相结合,Java弥补了CORBA的一些不足,而CORBA则可以为Java带来可移植的面向对象的软件环境。两种技术的基础结构彼此互补,具有非常好的应用前景。

CORBA不只意味着对象请求代理(ORB),它同时也是一个非常完整的分布式对象操作平台。CORBA使JAVA应用可以跨越网络、程序语言、组件界限以及操作系统,并为JAVA提供了一组分布服务,如分布式自我观察、动态发现、事务、关系、安全和命名等。因此能够大大扩展Java应用软件的使用范围。

Java也不光只是一套能和CORBA结合的程序语言。Java不仅是一种面向对象的语言,它还是一个动态代码系统,它对运行对象来说是一个可移植的虚拟机(JVM)。JAVA为开发、管理、发布Client/Server应用提供了更简单的方式。人们可以通过将应用放在一个Web服务器上将这一应用发布给成千上万个用户,而不必关心它的安装和升级。JAVA还非常适合服务器的开发,它可以动态地将服务代码移向最需要它们的地方。

Java允许CORBA对象在各种不同的机器上执行,无论是大型机、网路电脑(NC),甚至是蜂窝式电话等可编程的各种机器上,并简化了大型CORBA系统的代码发布。对客户和服务对象来说JAVA是很理想的编程语言,JAVA内置的多线程、垃圾收集和错误处理使编写健壮的网络对象变得很容易。

这两种对象模型可以很好地相互补充,CORBA处理网络的透明性,JAVA处理实现的透明性,CORBA为JAVA可移植应用环境提供了一个分布式的结构。

这个方案成功的关键在于这两种技术的基础结构能够彼此互补。Java弥补了CORBA的一些不足,而CORBA则可以为Java带来可移植的面向对象的软件环境。

CORBA和Java为Object Web上各种产品的集成起着沾合剂的作用。这是软件工业界中第一个尝试即插即用功能的软件,而这个功能正是开放系统最终希望实现的。

参考文献:

[1]张伟、熊齐帮、仲冬竹,CORBA技术在网络层管理中的应用[J].微型机与应用,2001(01).

[2]李琪林、陈宇、周明天,基于CORBA的分布对象容错机制研究与实现[J].计算机科学,2002(12).

[3]徐占洋、沈琦,实时CORBA系统中ORB间通信机制研究[J].计算机应用与软件,2005(03).