天极网 3月16日消息 随着Internet的广泛运用,将应用扩展到局域网、广域网甚至Internet上已成为用户的普遍需求,这样,分布计算成了新的热点。在分布计算环境中,异构性是一个十分明显的特点。一个典型的分布环境包括有大型主机、UNIX工作站和PC机,各种机器所采用的操作系统和网络通信协议也是千差万别。在这样的异构环境下实现信息和软件资源的共享将十分困难,而一个健壮的分布计算框架将为分布应用软件的开发带来极大的好处。自80年代末期以来,对应用软件的可扩展性和可重用性的要求也使得面向对象的分析、设计和编程技术得到了广泛的运用。将面向对象的思想应用到分布环境中,分布对象计算(Distributed Object Computing,简称DOC)的概念就应运而生了。
目前,OMG组织制订的CORBA(Common Object Request Broker Architecture,通用对象请求代理体系结构)标准与Microsoft的COM/DCOM(Component Object Model/Distributed COM,组件对象模型/分布组件对象模型)标准、Sun公司的Java RMI(Java Remote Method Invocation,Java远程方法调用)标准一起形成了分布对象计算领域的主流。
一、CORBA的发展历程
OMG(Obiect Management Group)组织是一个国际性的非盈利组织,OMG组织成立于1989年,其发起单位有BNR欧洲有限公司、DEC公司、Expersofi公司、HP公司、IBM公司、ICL公司、IONA技术有限公司、NCR公司、Novell USG公司、Object Design公司、SUN Microsystem公司和SunSoft公司。该组织的工作职责是,为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。其主要技术目标是,使得基于对象的软件在分布异构环境下具有良好的可重用性、可移植性和互操作性,从而能够在由多种主流硬件平台上运行多种操作系统构成的异构分布环境中,方便地建立异构分布应用系统。
为了实现上述目标,OMG组织成立后不久就制订了OMA(Object Management Architecture,对象管理体系结构)参考模型。该模型描述了OMG的规范所遵循的概念化的基础结构,其核心部分是ORB(Object Request Broker,对象请求代理)。ORB提供了一种机制,通过这种机制,对象可以透明地发出请求和接收响应。基于ORB机制就可以充分利用分布的、可以互操作的对象构造可以互操作的应用。这种优势是明显的,用户可以在不了解实现交互细节的情况下,建立共享资源的应用。
针对ORB,OMG组织制订了CORBA规范,并于1991年颁布了CORBA规范1.1版本,而后经历了1.2版本,又于1995年颁布了CORBA规范2.0版本,该版本对前一版本内容作了一定修改。OMG组织在1997年颁布了CORBA规范2.1版本。该版本增加了COM/CORBA互操作规范。1998年2月CORBA2.2规范问世,该版本增添了POA(Portable Object Adapter,可移植的对象适配器)和IDL到Java语言的映射规范。与此同时,OMA体系结构中增加了领域接口这一部分,表明OMG组织已经从最初的制订CORBA内部运行方式转向开始注重CORBA技术与应用相结合的问题。CORBA公共服务规范也作了相应的修订。
CORBA 3.0规范采用支持Enterprise JavaBeans(EJB)规范的对象封装方案,使EJB成为CORBA的组件方案。CORBA 3.0对象能动态加载各种组件以及传输、事务和邮件交换协议。这就意味着,如果与CORBA 3.0规范相容的服务器遇到EJB,它就能在运行时加载Java虚拟机并运行这些对象。CORBA 3.0规范还包括一些新特性:将应用程序工具和环境用于CORBA组件的设计;支持CORBA对象在异步实时信息队列中进行传输;采用服务质量(QoS)技术规范;增加新的技术规范,以便实现与传统环境的结合等。CORBA技术本身的发展与CORBA技术应用的发展是不可分割的,CORBA技术的广泛深入应用推动了CORBA技术的不断成熟,而CORBA技术的进一步完善又促进CORBA技术应用的实施和推广。
二、CORBA的技术特色
CORBA规范的产生有其特定的技术背景,主要有以下几个方面:
(1)面向对象技术的兴起
面向对象技术不同于传统的设计和实现技术,它把数据以及相关的方法封装在一起构成对象。通过封装的方法更加精细地描述数据以及方法的作用域,使用继承特性来扩展这些作用域。再加上对象引用和对象实现的分离,使得由于对象的数据和方法改变而造成的影响,在不涉及引用方法的情况下,局限于该对象的本身,从而大大方便了软件对象的修改和扩展。对象的继承性使得可以利用已有对象的功能来构造新的对象,有效地提高软件的开发效率。因此,面向对象技术的发展,在提高软件可重用性和软件开发质量方面起到了积极的推动作用。
(2)客户/服务器模式的普遍应用
这种计算模式可使得客户尽量少了解实现细节,从而便于客户应用的开发。该模式具有不对称性,即服务器不会主动询问客户的请求,而是被动地执行指定服务。客户/服务器模式适用于由不同计算能力的计算机和设备组成的网络环境。
(3)集成已有系统及屏蔽通信和实现细节的需求
一般地说,用户已经积累了一批极具价值的系统,通常这些系统改造和重写的代价很高,所以在构造新系统时,用户希望能够利用这些资源。因此,如何有效地将已有系统集成或移植到新系统中,并且在将来尽可能使它们不再成为"孤岛"系统,是用户应用开发中提出的迫切需求。
(4)现有分布处理机制和方法存在着不足之处
现有典型的分布处理系统和标准有RPC(远程过程调用)和DCE(分布计算环境) 等。它们虽然是按照客户朋艮务器模式构造的系统,但是客户程序和服务器程序之间的调用关系是静态的,基于它们所构造的系统也是静态的,并且可以使用的编程语言必须与RPC和DCE实现语言相一致,从而限制了用户的可选语言范围。 CORBA技术在充分发挥新技术的优势和克服已有方法缺陷的基础上,引入了自身的新特色,使之成为新一代的分布计算技术中有影响力的工业规范。




