面向对象方法是软件构件技术的基础。为了真正实现软件构件化,还必须解决分布式计算和对象的互操作问题。因为按上述构件技术的目标,要求构件间能互操作,而且这些构件也允许分布式地放置在网上异构环境下的不同节点上。
为了协调和制定分布式异构环境下应用软件开发的统一标准,1989年成立了一个国际组织,称为对象管理联盟(OMG )。加盟此组织的单位愈来愈多,现己有800多个单位,其中包括软件的开发供应商,软件用户和软件技术的研究单位等。经过多年的努力,已制定了一系列的标准规约,称为CORBA(公共对象请求代理程序体系结构)。CORBA的核心是对象请求代理(ORB),是分布式对象借以相互操作的代理通道。另外还定义了最基本的对象服务构件和公共设施构件的规约。OMG所定义的CORBA并不规定具体的实现。实现CORBA的软件由各个厂家自行开发。现已有多种可用的产品版本发布。
如上所述,CORBA的核心ORB的作用是将客户对象(Client)的请求发送给目标对象(在CORBA中称为对象实现Object Implementation),并将相应的回应返回至发出请求的客户对象。ORB的关键特征是客户与目标对象之间通信的透明性。在通信过程中,ORB一般隐蔽了目标对象的具体细节,如对象的位置、对象的实现、对象执行的状态、对象通信机制等。ORB的通信透明性使得应用开发者可较少考虑低级分布式系统的程序设计问题,而更多地关心应用领域问题。
OMG接口定义语言IDL用于定义对象的接口。一个对象的接口指定该对象所支持的类型和操作,因而惟一定义了可用于该对象的请求形式。客户在构造请求时,必须了解对象的接口。如上所述,保持接口描述的“语言中性”对在异构环境中实现分布式应用是重要的。IDL仅为一个说明式语言,而不是一个全面的程序设计语言。因此,IDL本身并不提供诸如控制结构这样的特征,IDL也不能直接用于实现分布式应用。相反,客户和对象的实现是采用具体的程序设计语言完成的。因此,ORB所支持的特征必须能够在实现语言中访问。语言映射决定IDL的内容如何映射为具体程序设计语言的设施。
IDL编译器将具体接口定义翻译为目标语言代码。目前OMG已完成了从IDL到C , C++,Java. Smalltalk. Ada95, Cobol等语言映射的标准化工作。
CORBA除了对核心ORB做了规定以外,还定义了对象服务和公共设施构件的规约。对象服务包括最基本和最常用的服务内容,如名字服务、事件服务等,而公共设施则包括范围更广的、建立在对象服务之上的服务,如用户界面、信息管理、系统管理和任务管理等。CORBA对应用系统未做具体规定,它可以建立在对象服务和公共设施之上,利用它们中的构件。
各省软考办 | ||||||||||