CORBA 构件模型综述
- 格式:pdf
- 大小:98.45 KB
- 文档页数:2
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)第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 体系结构第1.01节CORBA规范概述CORBA (Common Object Request Broker Architecture)公共对象请求代理架构,是国际对象管理组织(Object Management Group OMG)制定的分布对象计算规范,目前最新版本为3.0(于1999年11月发布),目的是促进在分布、异构环境中基于对象的软件的可重用性、可移植性与互操作性,实现多厂商网络环境中应用的互操作;OMG组织是一个超过750名成员的国际组织,它包括信息系统厂商,软件开发者和用户。
CORBA技术剖析及其应用梁剑,李晓,胡彬华(中国科学院新疆物理研究所,新疆乌鲁木齐830011)摘要:为了满足复杂的、大型的分布式应用开发的需求,作为基于组件对象模型的分布式技术规范,CORBA 和COM/DCOM技术被广泛采用。
主要分析CORBA技术的标准、结构、特点及其作用,并提出了CORBA对象的具体实现方法;同时也给出了CORBA技术和COM/DCOM技术相应的对比。
关键词:分布式应用;CORBA;COM/DCOM中图法分类号:TP311.5文献标识码:A文章编号:1001-3695(2002)08-0091-03The Anatomy and Application of CORBA TechnologyLIANG Jian,LI Xiao,HU Bin-hua(The Xinjiang Institute of Physics,the Chinese Academy of Sciences,Wulumugi Xinjiang830011,China)Abstract:In order to meet that need of the large-scale and complicated development of distributed application,as the distributed technology standard of component model,CORBA and COM/DCOM technologies are used widely.In this paper,we analyze the criterion,structure,char-acteristic and function of CORBA technology,and give an achieving method.In addition,we have given the comparison between CORBA and COM/DCOM technologies.Key words:Distributed Application;CORBA(Common Object Reguest Broker Architecture);COM/DCOM1引言目前,开发分布式多层应用系统似乎是所有开发工具、数据库厂商、Internet/Intranet、工具,以及操作系统厂商都积极提倡的应用系统结构。
摘要随着软件开发的愈来愈复杂,构件化开发是提高软件复用的重要的技术。
软件体系结构提供了种自顶向下实现基于构件的软件复用的途径。
它的ADL描述提供了一种描述整个系统构造的能力。
而当前的UML只安为其提供一些扩展也能够描述软件体系结构。
构件化的开发目前已经有很多成熟的技术,而CORBA规范充分利用了现今软件技术发展的最新成果,在基于网络的分布式应用环境下实现应用软件的集成,使得面向对象的软件在分布、异构环境F实现可重用、可移植和互操作。
我们提出~种基于CORBA的袍灶珏菇摸式,这是~种三层结构的开发模式,先粟用UML描述整个系统的体系结构,建模出该系统的基本信息。
然后采用CORBA的二层结构开发模式实现它。
这种方J℃可以把大系统划分为很多独立的构件.可以更改某些构件而不会对系统的其他部分造成影响。
从而能够极大的提高软件的开发效率和复用。
关键字:软件体系结掬ADLUML构件技术CORBAVv∥。
√ABSTRACTWiththecomplexityofSoftwaredevelopment,Component—BasedSoftwareDevelopmentisanimportangtechniqueofSoftwareReuseSoftwarearchitectureafrortsawaytorealizeaup-to—downsoftwareresuebasedoncomponents.it’SADLdiscriptionaffortsacompetence/abilitytodescribetheconstructionofthewholesystem,thecurrentUMLneedonlytobeaffordedsomcextendtodescribesoftwarearchitecture.Component—BasedSoftwareDevelopmenthaspossessedmanymaturationaltechnologies,butCORBAavailsofthelatestproduceofcurrentsoftwaretechnologydevelopment,Realizesintegrationofapplicationsoftwareinthenet—distributed—usebasedcircumstance,makestheSoftwarerealizereuse,transplant,andinteractivemanipulation.WeadvanceacomponentdevelopmentmodelbasedonCORBA.it'sadevelopmentmodelincludingtllleestratificationstructures.firstlyituseUMLtodescribethewholesystem’Sarchitecture.modelthebasicinformationofthesystem.thenitrealizesthesystembythecorbatllreesatratificationslructuresdecelopmentmodelthesystembythecorbathreesatratificationstructuresdecelopmentmodel.ThiskindofmodeCallde_idethebigsystemintomanyindependentcomponents,Canmodifysomecomponentswithoutanyaffectiontootherpansofthesystem.SOitcanextremelyimprovethedevelopinge币ciencyandreuseofthesoftware.Keyword:SoftwareArchitecture,CORBA,Compdent,ADL,UMLIll基1:CORBA的软件体系结构引言近儿年来,面对日益复杂的软件系统,人们开始认识到,要真LE实现软件的T业化生产力式,达到软件产业发展所需要的软件生产率和质量,软件复用是一条现实可行的途径。
CORBA分布式构件CORBA分布式构件是一种用于分布式计算的基础技术。
它可以使得不同的应用程序和设备通过网络互相通信和共享资源,从而达到更高效和灵活的分布式计算。
CORBA是“Common Object Request Broker Architecture”的缩写,它是一种基于对象的分布式计算技术。
这个技术的核心在于“Object Request Broker”(ORB),它是一个中间件,负责将分布式系统中的不同对象链接起来,并协调消息传递和方法调用。
CORBA构件的特点是支持多种编程语言和平台,因此可以方便地将不同的应用程序和设备链接起来,实现分布式计算的整合。
CORBA构件包含了许多基本的概念,包括对象、接口、服务、ORB等等。
每一个对象都有一个唯一的标识符和一组特定的方法接口,其他对象可以通过ORB访问这个对象并调用它的方法。
由于CORBA构件中的所有对象都是基于通用的接口定义语言(IDL)编写的,因此不同编程语言和平台的应用程序都可以通过ORB访问它们。
CORBA构件的优点是可以支持多种协议和架构,包括TCP/IP、UDP、HTTP等等,因此可以满足不同应用场景的需求。
此外,CORBA构件还可以提供多种服务,包括命名服务、交易服务、安全服务等等,可以使得分布式计算更加可靠和安全。
但是,CORBA构件也存在一些缺点。
首先,它的实现复杂,需要开发人员具备较高的技术水平。
其次,CORBA构件的性能相对较低,因为它需要进行多次消息传递和方法调用,而且ORB本身也需要消耗一定的系统资源。
此外,CORBA构件还存在一些安全隐患,需要开发人员进行必要的安全设置和管理。
综上所述,CORBA分布式构件是一种重要的分布式计算技术。
通过它,我们可以方便地将不同的应用程序和设备链接起来,实现资源共享和协作。
虽然它存在一些缺点,但是随着技术的不断发展和完善,我们相信它会变得越来越优秀,为分布式计算领域带来更多的价值。
CORBA 原理简介与实例CORBA 核心总体设计规划基于服务的ORB遵循公共ORB 体系结构,可以有很多ORB 的具体实现,比如客户和实现驻留ORB ,基于服务的ORB ,基于系统的ORB 以及基于链接库的ORB 等。
考虑到我们今后利用本平台所作开发项目的具体情况以及我们目前的开发条件与能力,决定选用基于服务的ORB 为开发目标。
这种基于服务的ORB ,对ORB 进行集中式管理,所有的客户实现均可以与一个或多个服务器进行通信,这些服务器的功能是将请求从客户端发送到实现端。
这样的话,ORB 就可以做成一个普通的程序,以便运行在不同的平台上。
总体结构本系统所采用的实现方法为:客户通过动态调用接口和ORB 接口经ORB 核心与具体的对象实现进行交互。
具体结构如下图所示:参照CORBA 2.3规范,本系统工作原理如下:客户首先通过ORB 核心提供的ORB 接口得到一个对象引用。
至于得到一个什么样的对象引用,取决于客户需要的服务。
通常每个服务都会有一个标识,客户就是通过这个标识来识别每一个服务的。
也就是说,客户首先要向ORB 核心提交一个服务标识来请求一种服务。
ORB 核心在得到客户提供的服务标识之后,从它掌握的各个对象适配器(POA )中处于活跃状态的对象实现(服务提供者)中挑选一个。
本系统中,ORB 核心是通过查询一个POA 、对象实现(服务标识)列表来完成这一功能的。
这样的话,ORB 核心返回给客户的对象引用具体地说就是该服务与POA 对在本核心所用于所有ORB 实现的同一接口可能有多个对象适配器上调用 下调用总体结构图持有列表中的位置。
ORB核心又是怎么得到并维护这个POA与服务标识的列表的呢?这个列表的创建与修改都是通过POA来完成的,因为与对象实现(服务提供者)直接交互的是POA,而不是ORB核心。
对于服务是否可用的状态维护,本系统考虑了两种情况:一是ORB先于对象实现而运行;二是对象实现先于ORB而运行。
CORBA技术的若干探讨一、前言作为实际应用效果良好的技术方法之一,CORBA技术在实践中扮演着不可替代的角色,该项课题的研究,将会更好地提升CORBA技术的实践水平,从而有效优化轧钢厂电气设备检测的最终整体效果。
二、CORBA技术概述分布式设备在线状态监测系统可以较好地解决大型成套设备状态监测与故障诊断的问题,因而设备故障诊断工作者为此作了很多研究。
20世纪90年代以来,国外一些著名的公司已相继推出了成套的分布式设备在线监测系统,国内也有许多单位正在从事这方面的研制开发工作,并已经有较为商品化的系统问世。
目前分布式系统的实现技术有多种,其中采用CORBA,公共对象请求代理体系结构)技术构架分布式系统是比较成熟的实施方案之一。
在企业内建立和调配软件系统是一项复杂的任务。
CORBA为完成这一任务提供了功能强大的框架。
CORBA可以集各种操作系统平台和各种开发语言的优点于一身,具有良好的实时性、可靠性及跨平台性。
利用CORBA,可以更容易地开发异构分布式系统。
CORBA非常适合创建企业级或者多企业级的大型远程在线监测系统。
系统通过Intemet或Intranet将分布在不同地域的诊断对象的状态信息进行集成,利用CORBA技术构成具有多服务器互连,多层次信息交互,资源共建共享等特点的设备远程监测与故障诊断系统。
三、利用CORBA技术构架在线监测系统整个系统的构架分为三层:数据采集站、服务器和客户端。
数据采集站上安装有数据采集卡,负责采集数据,并对数据做初步处理后通过通讯线程传送到服务器,并可以根据不同的情况设置不同的采集参数。
服务器是系统的核心,是处理数据的关键部分。
服务器通过若干个双缓冲队列将所有数据暂时保存。
对于电流和功率,如果有跳闸信号,服务器将跳闸信号前5分钟的数据存人数据库;对于温度和湿度,服务器通过存储线程将所有特征值存人数据库。
同时,服务器通过监听线程池随时响应远程客户端的请求,包括实时数据的显示,历史数据的回放,以及温度和湿度信号的趋势分析等。
收稿日期:2004-05-19;修返日期:2004-06-26基金项目:国防预研基金资助项目(413160102)CORBA 构件模型综述*潘慧芳,周兴社,於志文(西北工业大学计算机学院,陕西西安710072)摘 要:随着计算机网络技术和应用的发展,分布构件技术成为分布式计算领域的热点,CCM 就是主流的分布构件技术之一。
首先介绍了CCM 产生的背景,然后对CCM 的重要组成部分进行了详细的阐述,并对现有的基于CCM 的研究和实现进行了简要的分析,最后将CCM 与EJ B 和COM 进行了比较。
关键词:构件;CORBA;CCM中图法分类号:TP311 文献标识码: A 文章编号:1001-3695(2005)05-0014-02An Overview of CORBA Com ponent M odelPAN Hui-fang,ZHOU Xing-she,YU Zhi-wen(School of Computer Science,Nor thwester n Polytechnical Univers ity,Xi ’an Shanxi 710072,China)Abst ract :Along wit h t he developm ent of com puter net works and applica tions,distribut ed com ponent t echnolog y becam e t hehot spot of distribut ed com M is one of t he popular dis tribut ed com ponent technolog ies.This paper first int roduces t he background of CCM.It then describes t he m a in sect ions of CC M and a na ly zes the ex ist ing im plem ent at ions based on CC M.Fi-na lly,it com pares C CM with rela ted t echnolog ies.Key words:Com ponent;CORB A;C CM随着网络技术的飞速发展,单个计算节点的处理能力持续提高,不同厂商和异构技术环境的不断激增,使得分布式系统的应用和开发日趋复杂。
在构建企业分布式应用系统的过程中,要求系统具有可配置性、可伸缩性、可重用性和可管理性,以满足不断增长的企业应用需求。
在这种情况下,分布构件技术应运而生。
通过采用分布构件技术,可以降低大型分布式系统的开发难度,重用已有的代码资源,提高分布式系统的开发效率。
目前,主流的服务器端分布构件技术有OMG 组织的C CM (CORB A C om ponent Model,C CM )技术,M icrosoft 的C OM (Com ponent Object M odel,C OM)技术以及S U N 的EJ B(E nt er-prise J av a Bea n,EJ B )技术。
因为C ORBA 采用远程对象调用机制,支持异构环境下分布式应用系统的开发和互操作,具有与底层硬件、操作系统、网络、通信协议和编程语言无关的特点,所以被广泛地应用于大型的分布式系统中。
而CCM 作为C ORB A 3.0规范的一部分,对原有的对象模型进行了扩展,从而更易于服务器端软件的重复使用和CORBA 应用程序的动态配置,因而具有广阔的应用前景。
1 CORBA 构件模型传统的CORB A 对象模型(CORBA2.x 规范)具有一些明显的缺陷,如没有配置对象实现的标准方式,缺少对公共COR-BA 服务器编程模式的有效支持,对象功能难以扩展,CORBA 对象服务的可用性没有预先定义,对象生命周期管理没有标准化等。
这些缺陷导致对象实现难以设计、重用、配置、管理和扩展。
为此,OMG 在C ORBA 3.0中引入了CCM,C CM 是用于开发和配置服务器端分布式应用的构件模型。
下面对CCM 中的抽象构件模型、构件实现框架(C IF)、容器编程模型、打包与部署模型进行详细的描述。
1.1 抽象构件模型CCM 构件提供了称为端口(Port s)的多种外部接口,以便与客户、其他构件、C ORB A 服务等进行交互。
构件模型支持四种基本的Port s 。
(1)侧面(Facet s)。
它是构件提供的与客户交互的相互独立的一组接口。
一个构件能够提供多个对象引用,这些不同的对象引用被称为Facet s,Facet s 可以支持不同名字和功能的IDL 接口。
客户通过唯一的等价接口(E quivalent Interfa ce)在构件的多个Facet s 间进行导航。
Fa cet 接口的实现被封装在构件中,被看作是构件的一部分。
(2)插口(Recept acles)。
它是一些指定的连接点(Connec-tion Point s),这些连接点描述一个构件使用外部构件提供的对象引用来调用其上的操作的能力。
通过使用插口,构件能够与其他对象进行连接,并调用这些对象的操作。
(3)事件源/事件接收器(E vent Sources/Ev ent S inks)。
它是指定发送/接收特定类型事件的连接点。
事件源分为Em it-ter 和Publis her 两类,Em itt er 规定在某个时间只允许一个接收者与之连接,Publisher 允许同时有多个接收者与之连接。
事件接收器允许有多个事件源与之相连。
(4)属性(At tribut es)。
属性主要用于构件的配置,配置工具使用属性对构件的配置参数进行预先的设置。
CCM 引入了产地(Hom e)对构件的生命周期进行管理。
一个Hom e 是某种类型所有构件实例的管理器,不同类型的Hom e 能够管理同一类型的构件,但一个构件实例只能有一个Hom e 实例。
Hom e 形式化了工厂(Fa ct ory)设计模式来管理同・41・计算机应用研究2005年一类型所有构件实例的生命周期。
Hom e接口提供创建(Crea-t e)和删除(Rem ove)构件实例的操作,客户能够访问Hom e接口来控制他所使用的构件实例的生命周期。
客户要使用构件,必须首先通过Resolv e_init ia l_references获得Hom eFinder接口的对象引用,再使用Hom eFinder获得Hom e接口的对象引用,最后通过调用正确的操作来创建或找到所需构件的对象引用。
1.2构件实现框架(Component Implementation Frame-work,CIF)构件实现框架为构造构件实现定义了编程模型。
C IF引入了构件实现定义语言(Com ponent Im plem enta tion Definit ion L anguag e,CIDL)来描述构件以及构件Hom e的实现。
支持构件的ORB产品编译CIDL描述文件,生成实现构架(S keleton),它自动完成了构件的许多基本行为,如导航、身份查询、激活、状态管理、生命周期管理等。
开发者对构架进行扩展,添加一些用户定制的构件行为,以创建完整的构件实现。
作为一种编程的抽象,C IF被设计成与现有的POA框架兼容,并且为编程人员屏蔽了使用复杂性。
特别是CIF能够使用现有的POA框架实现,但又没有直接暴露POA框架的任何元素。
1.3 容器编程模型(Container Programming Model)容器编程模型是一个API框架,它定义了一组API接口以简化开发和配置C ORB A应用的复杂度。
容器编程模型的组成如下:(1)外部API(E xt ernal API)。
定义了构件客户可用的接口,这些接口被存在接口库(Int erface Repos it ory)中,由构件开发者实现。
(2)容器API(Cont ainer API)。
定义了构件开发者使用的API框架,它由内部(Int ernal)接口和回调(Ca llback)接口组成。
内部接口由容器提供,用来帮助实现构件的行为,构件可以通过内部接口访问容器支持的服务;回调接口由构件实现,被容器调用,用来在容器内配置和管理构件。
(3)CORBA使用模型(CORB A U sag e Model)。
定义了容器和POA,ORB,C ORBA服务等的交互。
CORB A使用模型由策略(Policy)控制,策略规定了与POA和C ORBA服务的交互模式。
(4)构件的种类(Com ponent Ca tegory)。
有四种CORBA构件,分别是服务(Service)构件、会话(S es sion)构件、过程(Process)构件和实体(E nt it y)构件。
容器编程模型的体系结构如图1所示。
容器为CORB A构件提供运行时的执行环境。
主要功能有:负责运行时期所有构件实例的创建和管理;管理POA策略以决定如何创建构件引用;为常用的CORB A对象服务(交易服务、安全服务、持久性服务和通知服务)提供了一个适配层,从而将客户的请求转发给对应的C ORBA服务。
1.4 打包和部署CCM规范使用XML来指定构件的打包和部署信息,以简化构件在大型分布式系统上的配置和使用。
构件包(C om ponent Packa ge)是用于部署的最小单元,它包括构件的描述信息和一组二进制的构件实现文件。
描述信息在运行时供容器使用;每个实现文件对应在一种硬件平台、操作系统、语言编译器和ORB上编译产生的二进制代码。
一个构件包可以被单独部署,也可以被包含到一个组装包(Assem bly Packa ge)内和其中的其他构件一起部署。
组装包由一个包描述文件、一组构件包和属性文件组成。
包描述文件说明该组装包由哪些构件组成以及它们之间的相互关系。
使用构件包或组装包部署构件的过程如下:①部署工具与用户交互确定构件安装到哪些目标主机上;②将构件实现安装到目标主机上;③在主机上实例化构件Hom e和构件;④对于组装包,还需按照组装包描述信息建立构件之间的连接关系。
2CCM研究与实现系统目前,基于CCM的研究和实现有很多,其中比较有代表性的有:法国里尔大学GOAL项目组开发的OpenC CM(Open CORB A Com ponent Model Plat form),美国华盛顿大学的C IAO (Com ponent-Int eg rat ed ACE ORB),C PI开发的E J CCM(E nter-prise J av a CORB A Com ponent Model)以及MICO项目组开发的MicoCC M。