CORBA规范综述
张亚红  宋凯
华东计算技术研究所
二OOO年三月
目录
引言    3
第一章    CORBA 体系结构    3
1.01    CORBA规范概述    3
第1.02节    对象管理架构(OMA)    4
第1.03节    CORBA详细结构图    5
第二章    对象服务(CORBAServices)的具体内容    7
第2.01节    名字服务    7
第2.02节    生存周期服务    8
第2.03节    事件服务    10
第2.04节    交易黄页服务    12
第2.05节    事务服务    13
第2.06节    并发控制服务    15
第2.07节    安全服务    15
第2.08节    持久性服务    16
第2.09节    流转换服务    18
第2.10节    查询服务    19
第2.11节    组服务    19
第2.12节    对象关系服务    19
第2.13节    时间服务    20
repository文件夹可以删除吗第2.14节    准许服务    21
第2.15节    属性服务    21
第三章    CORBA相关产品及CORBA的未来    22
第3.01节    CORBA相关产品    22
StarBus的ORB核心机制原理    23
第3.02节    CORBA的未来    24
第四章    程序开发一般过程    25
第4.01节    程序开发一般过程    25
第4.02节    用Starbus开发分布应用步骤    27
参考文献    27

引言
对象管理组织(OMG)提出的CORBA规范为实现分布式环境下的软件重用、移植和互操作提供了一套前景光明的规范,并为开放式系统的研究提供了一个很好的系统实现框架。介绍CORBA的文章已有很多,本文试图能够从结构上简而全的对它进行综述,并简单介绍了相关产品和CORBA环境下的程序开发过程
第一章    CORBA 体系结构
第一.01节    CORBA规范概述
CORBA (Common Object Request Broker Architecture)公共对象请求代理架构,是国际对象管理组织(Object Management Group  OMG)制定的分布对象计算规范,目前最新版本为3.0(于199911月发布),目的是促进在分布、异构环境中基于对象的软件的可重用性、
可移植性与互操作性,实现多厂商网络环境中应用的互操作;
OMG组织是一个超过750名成员的国际组织,它包括信息系统厂商,软件开发者和用户。自1989成立以来,OMG组织一直在促进软件开发中的面向对象技术的理论与实践,该组织的合同包括建立业界的指导方针与对象管理规格说明,以提供应用开发的公共框架。主要目的是促进在分布、异构环境中基于对象的软件的可重用性、可移植性与互操作性。遵循这些规格说明有可能开发出一种跨越所有主要硬件舞台和操作系统的异构应用环境。OMG组织的目的是通过建立对象管理体系结构来发展对象技术并引导其发展方向。
CORBA是一个关于分布对象平台架构的标准化规格说明,目的是实现多厂商网络环境中应用的互操作。CORBA实现允许应用软件之间的彼此通信,而不必顾及这些应用软件的位置是谁设计的,及它们是用什么语言实现的等问题。
CORBA标准第一版,CORBA1.1是于己于1991年推出的。它定义了CORBA接口定义语言(IDL)及应用编程接口,允许客户在CORBA通信设施的顶部与服务器对象进行交互。这些通信设施具体包含在所谓对象请求代理(ORB)。IDL提供了说明构件接口的统一的方法,它独立于符合接口要求的实现构件的编程语言。1994年下半年发布了CORBA 2.0版。它的主
要增强点:给出了关于不同厂商ORB之间的互操作协议的规格说明。19978月,OMG组织又发布了CORBA 2.1版。它包括以下方面的规格说明:互操作性修订,IDL类型扩充,CORBA映射,Ada映射,及CORE RTF的某些变动。CORBA标准还处于发展中,OMG组织即将发布CORBA 3.0版。CORBA 3.0版包括:可重用对象的构件,模块脚本语言规范,支持object-by-value,多个接口,对Java接口的定义语言映射,通过防火墙标准化Internet Inter-ORB协议,及集成分布计算环境的路径映射等。
OMG首先发布了OMA(对象管理体系结构),提出了构件互操作的软总线——ORB(Object Request Broker),并将构件分为三类:公共对象服务(COS)、面向领域的公共设施(CF)和完成具体任务的应用构件。在其后发布的CORBA1.02.0版中OMG对对象模型以及ORB的功能进行了规定。CORBA规范内容很多,其中与构件实现规范相关的主要内容包括IDLIRComponent Model
    1. IDL
    IDL(Interface Definition Language)CORBA用来定义对象接口的语言,是客户与服务器之间的一种契约。通过这个契约,ORB有效地分离了功能的实现方与使用方,使双方可以用不同
的语言实现,可以运行在不同的操作系统上,并且可以运行在不同的结点上。IDL本身不是一种编程语言,它独立于任何一种具体的语言之上,但它采用了C++的词法,并尽量与C++的语法兼容,因此易于被编程人员所掌握。
    2. IR
    IR(Interface Repository)ORB的构成部分之一,它提供一致的接口定义存储,管理并提供对OMG IDL所指定对象定义集合的访问。IR可以完成提供请求签名的类型检查(请求是否通过DⅡ或stub发出)、帮助检查接口继承图的正确性、帮助提供不同ORB实现之间的互操作性等工作。
    3. Component Model
    CORBA Component Modem CORBA 3.0的核心内容之一,该模型的提出是为了使更多的编程人员方便地进行基于CORBA的软件开发。CORBA构件模型主要在构件的事件、属性、定制、组装、包(Packaging)以及构件池(Component Repository)等方面作出规定。
第一.02节    对象管理架构(OMA)
图1.1        Object Management Architecture (OMA)
其中,CORBA 对象请求代理Object Request Broker(ORB)称为ORB总线,通过Application InterfaceDomain InterfacesCommon FacilitiesObject Services四类接口(服务)来完成客户与CORBA对象之间的通信,ORB内核完成对象的创建、实现、定位以及通信机制等;Object Services是指对总线进行扩展的系统级别服务,共十五种(见第二部分);Common Facilities是指应用对象直接使用的服务框架;Application Interfaces是指用户最终使用的商用对象及应用;Domain Interfaces则面向专用领域。图1.11.21.3 描述了它们之间的关系。
对象管理架构(OMA)为OMG组织将不同标准大规模集成起来的框架OMA带有对象模型(object model)与称之为参数模型(reference model)的概念性架构。OMA中定义了CORBA四个主要部分:ORBObject Request Broker)、对象服务(Object service)、公共设施和应用对象。对象模型把计算实体看作为可标识的对象。对象通过提供使用环境的服务,封装了状态与行为。环境由向对象发出请求的客户(client)组成;对象由对象引用(object reference)来标识。在与对象模型相联系的类型层次结构中,把对象引用作为特殊的类型处理。除了对象引用外,对象模型也提供了若干种简单类型与类型构造符,包括序列(sequemce),结构(structure),联合(union),及枚举(enumeration)等,后者可用来构造用户定义的结构类型。OMA把对象接口与它的实现明确地区分开来。接口通过操作的集合定义了关于客户的合同,满足此接口的所有实现将为客户提供合适的行为。对象模型支持这种抽象,它既允许设计者提出公用功能,如公用结构与公用行为,又能通过接口继承性(interface inheritance)增量地加入新的功能。通过继承把接口中使用的服务与类型传递给后代接口,对象接口可用不同编程语言来实现。满足特定接口的对象实现可以彼此透明地替换,只要接口保持不变,客户察觉不到实现的变动,也不必为利用替换对象的能力而重编译。这些特性便于系统逐步适应技术的变动,质量提高或性能要求。
1.2中参考模型包括概念性架构和一组可重用的功能接口,或一组特定应用的对象实现。参考模型的主体为对象请求代理(ORB)。它提供了对象可以透明地彼此交互的标准机制。这里,客户和服务器对象是本地的还是分布的都是一样的。而且屏蔽了服务请求格式与内部数据表示的多样性。
参考模型支持4类接口,公共设施,领域接口及对象服务:应用接口是现有应用的接口。它们的定义不是CORBA标准的一部分。本标准仅仅规定了接口定义必须遵循的格式及能使用对象与ORB交互的机制。
第一.03节    CORBA详细结构图
对象请求代理 ORB
图1.2        CORBA详细结构图

图1.3        CORBA详细结构图2
第二章    对象服务(CORBAServices)的具体内容
第二.01节    名字服务
名字服务是ORB中的对象定位其它对象的主要方法。
所谓名字就是对象的标识,一个对象与一个名字的联系被称作为一个名字绑定。一个命名上下文是指一个包含若干名字绑定的名字空间,在其中每个对象名是唯一的。一个名字绑定总是存在于一个命名上下文中。一个上下文(context)同样是一个对象,它也可以在一个命名上下文中绑定一个名字。一个上下文绑定和一个名字绑定的关系如同一个目录和一个文件的关系。由于上下文绑定的存在可以通过一个序列名来指定一个对象,这一序列名(也可称为复合名)定义了一个对象绑定在一个名字空间的路径。图2-1-1表示了一个名字空间的例子。                                                                             

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。