CORBA规范综述
CORBA技术剖析及其应用
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、工具,以及操作系统厂商都积极提倡的应用系统结构。
CORBA服务
CORBA服务CORBA (Common Object Request Broker Architecture)是一种分布式计算平台,旨在使不同的计算机系统能够相互通信和交互。
CORBA服务是由CORBA技术提供的一种机制,用于简化分布式系统中的通信和互操作。
CORBA服务可以被视为一种软件组件,可以在网络上的不同计算机之间进行通信。
它提供了一个中间件层,用于处理不同计算机之间的通信细节,例如数据序列化、网络传输和安全性。
这使得开发人员可以将重点放在业务逻辑上,而不必担心底层通信机制。
在CORBA服务中,存在两个主要角色:客户端和服务器。
客户端是请求CORBA服务的应用程序,而服务器是提供CORBA服务的应用程序。
客户端向服务器发送请求,服务器根据请求执行相应的操作,并将结果返回给客户端。
CORBA使用一个称为ORB(Object Request Broker)的组件来协调客户端和服务器之间的通信。
CORBA服务提供了一种透明的方式来访问远程对象。
远程对象是分布在不同计算机上的对象,可以通过CORBA服务进行远程访问。
客户端不需要了解远程对象的位置和实现细节,只需要知道对象的接口定义。
这种透明性使得客户端可以轻松地访问远程对象,同时也降低了系统的耦合度。
CORBA服务的另一个重要特点是面向对象的。
它支持面向对象的概念,例如继承、封装和多态。
通过使用面向对象的概念,开发人员可以更容易地设计和实现复杂的分布式系统。
CORBA服务还提供了一些高级功能,例如事务处理和持久性。
事务处理允许开发人员将多个操作组合成一个原子操作,以确保数据的一致性和完整性。
持久性允许对象在服务器重启后保持其状态,以便客户端可以继续与对象交互。
总的来说,CORBA服务为分布式系统提供了一种简单、灵活和可扩展的通信机制。
它通过隐藏底层通信细节和提供丰富的功能,使得开发人员可以更容易地开发和维护分布式应用程序。
同时,CORBA服务还具有跨平台性,可以在不同的操作系统和编程语言之间进行通信。
CORBA技术介绍
对象管理小组
由OMG制定的最关键的规范——对象 管理结构(Object Management Architecture, OMA)和它的核心(也就是CORBA规范), 提供了一个完整的体系结构。这个结构以足 够的灵活性、丰富的形式适用了各类分布式 系统。
OMA对象模型
在OMA对象模型中,对象是一个被封装 的实体,它具有一个不可改变的标识,并能 给客户用户提供一个或多个服务。 interface printer { attribute model; void print(in string buffer); };
对象管理小组
对象管理组(Object Management Group, OMG)是一个非赢利性的协会组织, 组建于1989年,由一些的计算机公司发起, 目前成员已超过800个, 遍及计算机制造商、 软件公司、通信公司和最终用户。
对象管理小组
OMG的宗旨是,推动对象技术(OT) 的理论和实践在软件行业中的使用,特别是 在开发分布式计算机系统方面。其目的是, 为面向对象的应用提供一个公共框架,如果 符合这一框架,就可以在多种硬件平台和操 作系统上建立一个异质的分布式应用环境。
CORBA技术介绍
主要内容
• CORBA概述 • 对象管理小组 • OMA对象模型
ቤተ መጻሕፍቲ ባይዱ
CORBA概述
CORBA(Common Object Request Broker Architecture, 公共对象请求代理体系结构) 是由OMG(对象管理组织,Object Management Group)提出的应用软件体系结 构和对象技术规范。其核心是一套标准的语 言、接口和协议,以支持异构分布应用程序 间的互操作性及独立于平台和编程语言的对 象重用。
corba用法
CORBA是由OMG组织制订的一种标准的面向对象应用程序体系规范,使用IDL(接口定义语言)刻画出对象将呈现出来的接口,并且规定了从IDL到特定程序语言如C++或Java实现的映射。
其使用一种接口定义语言来刻画物件将呈现出来的接口,又规定了从IDL到特定程序语言如C++或Java实现的映射。
CORBA体系结构的中心部分是对象请求代理程序(Object Request Broker, ORB),它作为一个“软件总线”来连接网络上的不同对象。
在客户端,ORB提供一个发送操作调用的接口;而在服务器端,ORB提供一个将操作调用传输到服务器的API。
ORB的任务是定位一个合适的服务器,并且通过一个对象适配器(Object Adapter, OA)将操作调用传送给服务器。
OA的目的是:给框架发送方法,调用并且支持服务器对象的生命周期(例如,对象的建立和删除)。
在CORBA体系结构中,处理分布式处理环境(DCE)中硬件和软件系统的互连问题,实现整个系统上端到端的可预测性。
处理器资源管理是将网络任务的优先级映射到实时操作系统的优先级队列中,有两种映射方法:一种是将网络ORB请求映射到整个实时操作系统的优先级范围;另一种是映射到本地实时操作系统优先级的一个子集上。
优先级继承与传播:在运行过程中,进程会创建子进程,不同的进程之间相互调用,如果不支持优先级继承和传播,则无法保证正确的优
先级关系。
被调用进程的优先级必须大于或等于调用进程的优先级。
因此在调用时,必须动态改变被调用进程的优先级。
存储管理是通过进程池来实现的。
建议咨询专业人士获取具体详细信息。
java corba 编译
java corba 编译Java CORBA是一种基于Java语言的分布式对象技术。
CORBA (Common Object Request Broker Architecture)是一种面向对象的中间件,通过它可以实现不同平台、不同语言的对象之间的通信和交互。
本文将对Java CORBA进行详细介绍,包括其基本概念、使用方法以及优缺点等方面。
一、CORBA基本概念CORBA是一种分布式对象技术,它建立在面向对象的基础上,通过定义标准接口和协议,使得不同平台、不同语言的对象能够相互通信和交互。
CORBA的核心是对象请求代理(Object Request Broker,ORB),它充当了分布式对象之间的中间人角色,负责对象的寻址、消息传递和通信协议的实现等功能。
二、Java CORBA的使用方法1. 定义IDL接口:IDL(Interface Definition Language)是CORBA的接口定义语言,用于定义接口的操作和数据结构。
首先需要在IDL文件中定义接口的方法和参数等信息。
2. 编译IDL文件:使用IDL编译器将IDL文件编译成Java代码,生成对应的Java接口文件。
3. 实现接口:根据生成的Java接口文件,编写具体的实现类,实现接口中定义的方法。
4. 编译和打包:将实现类的源代码编译成Java字节码文件,然后将字节码文件打包成Java Archive(JAR)文件。
5. 启动ORB:在应用程序中启动ORB,创建ORB实例,并通过ORB连接到CORBA服务。
6. 注册对象:将实现类的对象注册到ORB中,使得其他对象能够通过ORB访问该对象。
7. 远程调用:通过ORB提供的接口,远程调用其他对象的方法,实现分布式对象之间的通信和交互。
三、Java CORBA的优缺点1. 优点- 跨平台、跨语言:CORBA使用IDL作为接口定义语言,使得不同平台、不同语言的对象能够相互通信和交互。
Corba技术原理及在通信领域的应用简介
Corba技术原理及在通信领域的应用简介目前移动通信运营商大都拥有一个规模宏大的网络,如核心话务网、接入网、SDH和PDH传输网、分组交换网、智能网等多种电信网络。
随着网络规模的不断扩大,网络设备的种类和数量也不断地增加,整个网络的复杂性日益提高,多厂商问题非常突出——尽管每个厂商都提供了对自己设备的网络管理系统,然而这些网络管理系统无法提供统一的接口和数据指标,更重要的是网络管理作为一个整体却被这些相互独立的网管系统划分开来,这显然是不合理。
针对网络管理的问题,各运营商都希望能够在目前分散的网管系统基础上建立综合网管系统(下简称NMC),以实现全网的综合管理,包括:集中监控、分析、优化,及时掌握全网运行情况并进行有效控制,从而提高运营商信息化管理水平,最终提高移动通信的服务质量和运营效益。
然而,由于不同的厂商网管(下简称OMC)系统采用不同的技术和协议研制缺乏统一的接口标准和规范,从而为其接入综合网管以及未来的系统扩容都带来巨大困难。
因此,我们需要提出一个统一接入的解决方案,这个方案的目标就是让OMC能象组件一样被纳入到NMC中——这便是北向接口。
CORBA(Common Object Request Broker Architecture)是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案。
它提供了面向对象应用的互操作标准,是一种标准的面向对象应用程序体系规范是一种被广泛承认的、具有良好应用前景的系统集成标准,在银行、电信、保险、电力和电子商务领域都有广泛的应用。
由于CORBA可以让分布的应用程序完成通信,无论这种应用程序是什么厂商生产的,只要符合CORBA标准就可以相互通信,因此,我们很容易把它和NMC的需求联系在一起,本文就是讨论如何利用CORBA来实现这个统一接入的方案。
我们的设计思路大体如下:首先,分析NMC的基本功能需求,按照划分的功能模块对接入点进行对象建模。
CORBA分布式构件
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协议-概述说明以及解释1.引言1.1 概述Corba(Common Object Request Broker Architecture)是一种面向对象的分布式计算的标准化协议。
它定义了一套标准化的通信协议,使得不同的对象能够在网络上进行通信和交互。
Corba协议通过对象请求代理(ORB)实现对象之间的通信,使得对象在不同的计算机上可以相互调用,实现分布式计算。
该协议被广泛应用于企业级软件系统中,能够提高系统的可扩展性、可维护性和灵活性,为分布式系统的开发提供了良好的支持。
在本文中,我们将介绍Corba协议的基本原理、特点和应用领域,以便更好地理解和使用这一重要的分布式计算协议。
1.2文章结构1.2 文章结构本文将首先介绍Corba协议的概念和背景,包括其起源、发展历程和基本原理。
接着将详细探讨Corba协议的特点,包括其跨平台、语言中立和分布式的优势。
然后将深入分析Corba协议在各个应用领域的具体应用,包括企业级系统、网络通信和物联网等方面。
最后对Corba协议的发展前景进行展望,探讨其在未来的发展趋势和潜在挑战。
通过本文的阐述,读者将能够全面了解Corba协议的重要性和应用领域,以及对其发展方向有更深入的认识。
1.3 目的本文的主要目的是介绍和探讨Corba(通用对象请求代理结构)协议,旨在帮助读者了解该协议的基本概念、特点和应用领域。
通过对Corba协议的介绍,读者可以深入了解面向对象技术在分布式系统中的应用,以及Corba协议在不同领域中的实际应用情况。
同时,本文也将分析Corba 协议的优势和局限性,以及未来在分布式计算领域的发展趋势。
通过本文的阐述,读者将能够更好地理解和应用Corba协议,为其在实际项目中的应用提供参考和指导。
2.正文2.1 Corba协议介绍CORBA(Common Object Request Broker Architecture)是一种用于分布式系统中对象通信的协议。
corba标准
corba标准CORBA(Common Object Request Broker Architecture)是一种面向对象的分布式计算标准,它定义了如何在一个分布式系统中使用对象来交互和共享数据。
CORBA提供了一种通用的框架,使得不同的对象可以在不同的平台上进行交互和通信,从而实现跨平台的互操作性。
CORBA标准包括以下几个主要部分:1. ORB(Object Request Broker):ORB是CORBA的核心组件,它负责对象之间的通信和交互。
ORB提供了一种标准的通信协议,使得对象可以相互发现和调用对方的方法。
2. IDL(Interface Definition Language):IDL是一种用于定义对象接口的语言。
它定义了对象的行为和交互方式,包括对象的方法、参数和返回值等。
3. IIOP(Internet Inter-ORB Protocol):IIOP是一种基于TCP/IP的协议,用于在分布式系统中进行对象通信。
它提供了一种通用的传输机制,使得ORB可以相互通信。
4. OMG(Object Management Group):OMG是一个组织,负责管理和维护CORBA标准。
它定义了CORBA的核心组件和相关规范,并提供了相关的文档和指南。
CORBA标准的主要优点包括:1. 跨平台性:CORBA对象可以在不同的操作系统和硬件平台上进行交互和通信,从而实现跨平台的互操作性。
2. 语言无关性:CORBA标准支持多种编程语言,包括C++、Java、Python等,使得开发人员可以使用自己熟悉的编程语言来开发分布式应用程序。
3. 易于集成:CORBA提供了一种标准的接口定义语言,使得不同的系统可以更容易地集成在一起。
4. 安全性:CORBA提供了一些安全机制,如身份验证、授权和数据加密等,确保分布式系统中的数据安全。
总之,CORBA是一种重要的分布式计算标准,它提供了一种通用的框架,使得不同的对象可以在不同的平台上进行交互和通信,从而实现跨平台的互操作性。
CORBA核心规范
[精华] corba核心规范(转贴) 作者:yuxq发表于:2003-09-20 11:16:25【发表评论】【查看原文】【C/C++讨论区】【关闭】核心规范当前最新版本是3.0,是在2002年8月整理发布的。
CCM的3.0规范也已经发布。
CORBA规范3.0终于出来了,也许是不能再拖了吧。
比较奇怪的是3.0规范的编号是2002年6月份的(02-06-33),但是规范是在7月份才整理出来的。
在CORBA3.0规范中去掉了MiniCORBA和实时CORBA。
OMG组织的网站上有一个页面介绍在3.0规范将要增加的内容,我将其翻译过来,大家可以点这儿查看。
因为新版本规范在不断推出,所以里面的内容可能会与现在的实际情况有点儿差异。
语言映射规定IDL语言到Ada、C、C++、JA V A、COBOL、SmallTalk、Lisp、Python和CORBA 脚本语言的映射,以及JA V A到IDL的反映射等。
对象服务共有17个对象服务:命名服务、事件服务、时间服务、对象事务服务、安全服务、收集服务、并发服务、特性服务、持久对象服务、生命周期服务、交易对象服务、外表化服务、关系服务、查询服务、通知服务、许可服务、增强时间视图。
通用设施主要包括国际化和时间、移动代理。
行业标准主要有商业、金融、生命科学研究、制造业、电信、交通、医疗保健等。
规则与自由----为何选择CORBA 和Java 技术?欢迎光临有关Java 和CORBA 技术的这一定期栏目。
此第一期将概述Java 和CORBA 技术,并帮助您决定如何最有效地让它们为您工作。
以后的栏目将提供Java 和CORBA 编程的内行指导和代码。
在1855 年,时年26 岁的Joshua Chamberlain 是Bowdoin 大学的修辞学教授,在一次演讲中讲述了规则与自由之间的关系,以及二者之间失衡带来的危害。
没有自由的规则是专制,而没有规则的自由是混乱。
公司信息系统部门的管理可能会形成过度的规则或过度的自由。
CORBA技术的若干探讨
CORBA技术的若干探讨一、前言作为实际应用效果良好的技术方法之一,CORBA技术在实践中扮演着不可替代的角色,该项课题的研究,将会更好地提升CORBA技术的实践水平,从而有效优化轧钢厂电气设备检测的最终整体效果。
二、CORBA技术概述分布式设备在线状态监测系统可以较好地解决大型成套设备状态监测与故障诊断的问题,因而设备故障诊断工作者为此作了很多研究。
20世纪90年代以来,国外一些著名的公司已相继推出了成套的分布式设备在线监测系统,国内也有许多单位正在从事这方面的研制开发工作,并已经有较为商品化的系统问世。
目前分布式系统的实现技术有多种,其中采用CORBA,公共对象请求代理体系结构)技术构架分布式系统是比较成熟的实施方案之一。
在企业内建立和调配软件系统是一项复杂的任务。
CORBA为完成这一任务提供了功能强大的框架。
CORBA可以集各种操作系统平台和各种开发语言的优点于一身,具有良好的实时性、可靠性及跨平台性。
利用CORBA,可以更容易地开发异构分布式系统。
CORBA非常适合创建企业级或者多企业级的大型远程在线监测系统。
系统通过Intemet或Intranet将分布在不同地域的诊断对象的状态信息进行集成,利用CORBA技术构成具有多服务器互连,多层次信息交互,资源共建共享等特点的设备远程监测与故障诊断系统。
三、利用CORBA技术构架在线监测系统整个系统的构架分为三层:数据采集站、服务器和客户端。
数据采集站上安装有数据采集卡,负责采集数据,并对数据做初步处理后通过通讯线程传送到服务器,并可以根据不同的情况设置不同的采集参数。
服务器是系统的核心,是处理数据的关键部分。
服务器通过若干个双缓冲队列将所有数据暂时保存。
对于电流和功率,如果有跳闸信号,服务器将跳闸信号前5分钟的数据存人数据库;对于温度和湿度,服务器通过存储线程将所有特征值存人数据库。
同时,服务器通过监听线程池随时响应远程客户端的请求,包括实时数据的显示,历史数据的回放,以及温度和湿度信号的趋势分析等。
CORBA
OMG IDL接口定义语言 IDL接口定义语言
OMG IDL 代码类似于C++或者JAVA代码 代码类似于C++或者JAVA代码 它支持的属性包括:模板(module) 它支持的属性包括:模板(module),接口 (interface),操作(method),属性 interface),操作(method),属性 (attribute),继承(inheritances),数据 attribute),继承(inheritances),数据 类型,异常(exception),传播的上下文. 类型,异常(exception),传播的上下文. 下面举一个IDL简单定义的例子. 下面举一个IDL简单定义的例子.
DSI
ORB (GIOP/IIOP) )
CORBA体系结构 CORBA体系结构
OMG接口定义语言 OMG接口定义语言 OMG IDL是一种声明性语言,不是编程语言, IDL是一种声明性语言,不是编程语言, 用于指定包含操作的属性的接口,它使对 象行为与对象实现分离.使不同语言产生 的对象之间可以互操作,但是需要编译器 把IDL映射为具体的语言,目前,已经有 IDL映射为具体的语言,目前,已经有 IDL到 IDL到C ,C++, C++, Smalltalk,Ada,Java,COBOL|等的映射. Smalltalk,Ada,Java,COBOL|等的映射.
Module CORP { struct PersonalData {string name; string phone; string site;}; typedef PersonalData EmpPersonalData; struct EmpData {char jobjob-class; float hourlyhourly-rate;}; Interface Employee {attribute EmpData personal-data; personalreadonly attribute Department department-obj; departmentvoid promote (in char new-job-class); new-job}; Interface Manager: Employee { void approve-transfer(in Employee employee-obj, approveemployeein Department current-department); current} }
CORBA企业解决方案01
在企业内建立和调配软件系统是一复杂的任务。
C O R B A(Common Objeet Request Broker Arch, tectule,公共对象请求代理体系结构)为完成这一任务提供了功能强大的框架。
使用C O R B A,可以更容易地开发异构分布式系统。
但是,要开发出好的系统仍然是相当困难的。
C O R B A规范对于开发实际系统中错综复杂的情况所给出的指导甚少。
本书的目的在于帮助C O R B A系统开发者学习有关开发大规模C O R B A系统所需的设计要点、方法和值得考虑的问题。
为了恰当地讨论这些复杂的课题,需要一个关于术语和符号的常用词汇表,以便对对象适配器的一些重要方面有共同的理解,以及对C O R B A系统的性能特征达成共识。
这就是本书第一部分的目的。
第1章定义了一些公共的术语,并引入了在本书中使用的一整套图形符号。
第2章从应用程序员的角度来考察C O R B A规范。
本书并不是要讨论规范中的细节,而是集中于两代主要的O R B—基于基本对象适配器(B O A)的O R B和基于可移植对象适配器(P O A)的O R B。
在此引入了两个重要的课题,C O R B A激发的生命周期和C O R B A对象的生命周期,并从BOA ORB和POA ORB的角度讨论它们。
第3章简要介绍了作为C O R B A规范一部分而定义的某些服务,这当中的许多服务在本书后面会涉及。
范例系统将在第4章描述。
它提供了本书很多讨论中需要的上下文知识。
这个范例很简单,易于理解,但又足够综合,能够说明C O R B A系统中的很多方面。
最后,第5章讨论了C O R B A系统的性能方面,并特别着重于I D L(接口定义语言)设计。
第1章绪论近年来,C O R B A已从一学术研究课题转变为主流技术。
各组织正在建立和调配实际的C O R B A系统,并使用C O R B A技术来解决行业中的基本问题,涉及的行业范围从金融到电信,从保险到制造业,从医疗到石油化工。
CORBA规范将GIOP定义为它的基本的互用性框架GIOP不是一(精)
6 0 4
Hello\0 10
c 11
Padding 16
d
13.4 GIOP消息格式
GIOP首先由CORBA2.0进行定义-2.1-2.3,因此GIOP 的版本有三个1.0-1.1-1.2。在版本1.0中主要附加了对 消息存储的支持,在1.2中增加了对双向通信的支持。 (1) 使用消息存储片可以更高效地将连在一起地数据编 码。 (2) 双向通信对于通过防火墙进行的通信很重要。
G
I
O
P
1
1
0
0
4字节消息大小
0 1
2
3
4 5
6
7
8
Request消息格式
一个Request消息由三部分组成,依次是GIOP头, GIOP Request头和GIOP Request体。 Request头和 Request体一起构成了GIOP体。 Request头的字段如下: (1) service_context:这个序列包含服务数据,它是由 ORB运行时默认地添加到每一个请求上的。主要是为 了传输某些ORB服务所要求地信息。
GIOP消息格式
GIOP具有的8种消息类型如下: 消息格式 Request Reply CancelRequest LocateRequest LocateReply ColseConnection MessageError FragMent 始发方 客户机 服务器 客户机 客户机 服务器 服务器 客户机或服务器 客户机或服务器
GIOP定义了一个公共数据表示,为了传输,它确定了IDL类型的 二进制格式。CDR具有以下的主要特点: (1) CDR同时支持长字节和短字节表示:CDR编码的数据是标记指 示数据的字节顺序。如果始发方和接收方使用不同的字节类型, 接收方负责字节变换。这个模型,也称接收方更正模型(receiver makes it right), (2) CDR按照自然边界对齐原始的类型:数据通过存储在内存中数 据的指针编组或解组成它的自然二进制表示。要由一些字节流部 分填充。 (3) CDR编码的数据是非自识别的:CDR编码需要在始发方和接收 方之间有一个关于要交换的数据类型的约定。 CDR编码是一种注重效率的折中方案。
corba培训
主要内容
CORBA基本概念
什么是CORBA CORBA模型
ORBIX软件体系
ORBIX简介 ORBIX安装配置
CORBA程序开发
开发步骤 HELLO WORLD 示例
什么是CORBA?
CORBA—Common Object Request Broker Architecture,中文称为公用对象请求代理体系,从刚 开始只支持c语言,发展到现在支持目前的大量的编程 语言,已经成为软件开发的主流,并被业界广泛接受。
ORBIX介绍
ORBIX是IONA公司开发的符合CORBA 2白皮书的ORB产品
ORBIX安装步骤
1. 检查JAVA版本,需要JAVA 1.3以上版本 2. 运行安装程序,根据提示完成安装 3. 安装LICENSE 4. 设置环境变量
ORBIX安装步骤
现场演示……
ORBIX开发应用
1.使用Toolkit代码生成器来开发 2.只使用IDL编译器来进行开发
Remote Procedure Call(RPC)
面向方法、比socket稍好用些、需要了解好多对方细节
Microsoft Distributed Component Object Model (DCOM)
相对健壮的对象模型、限于Windows
Java Remote Method Invocation (RMI)
4. 开发服务端的程序:这个服务端对这些CORBA对象来说像一个容器一样, 每个都支持一个接口。你必须自己添加代码来为每个类型的CORBA对象提供商业 逻辑方法。服务端通过将对象的引用发送到一个大家都知道的地方,使的这些 CORBA对象对客户端来说有用。
5.开发客户端的程序:客户端用IDL编译器产生对那些需要从服务端响应的 对象的引用进行映射。
CORBA
中 图分 娄 号 .P 1 T 36
文献 标 识 码 A
C R A系统中请求级截获器的设计与实现 OB
尹 刚, 王怀 民、 滕 猛 4 07) 10 3 ( 国防 科 技 大 学 计 算 机 学 院 , K沙
摘
要 : 首 先 伞 绍 了截 获 器 的 基 奉 概 念 和 要 解 决 的 具 体 问题
木 u 以 健 OR 内部 的 服 务 明 确 分 离 , 实 现 不 同 OR Βιβλιοθήκη B B 服务 的独立 与共 存 。
也 可 以 使 用 多 个 截 获 器 O 中 定 义 了 两 类 截 获 器 : B R ① 请 求 级 截 获 器 . 责 执 行 结 构 化 请 求 : 消 息 级 截 负 ② 获 器 . 责 发 避 和 接 收 消 息 ( 结 构 化 的 缓 冲 区 ) 负 非 : 截 获 器 提 供 了 一 种 将 可 移 植 的 O B 服 务 增 加 到 R
C ORB 系 统 的 高 度 灵 活 的 方 法 。 其 灵 活 性 基 于 客 户 A
I O B 内核 与 O B 服 务 . 1 R R 根据 C R A标准 的定 义 , R ( 象请求 代理) O B O B 对 包
括O B R 内核 和 OR 服 务 两 个 部 分 。OR 内核 定 义 为 B B
Ab ta t T i p p rf s y ito u e h a i c n e t no I tre tra dt ese i p o lm r s le p e e t h n sr e  ̄ hs a e i t nr d c steb sc o c p J f n ec po n h p c血 r be rl o e ov s rs nst eI — tre trd sg ls te e cie ei lme tto c e eal a ig 11 ne c pinp ft. e c po e inr e . h nd s rb s h o t mp e nain sh mei d ti b s , tre t o as n n 2i i o i
第五讲CORBA-精品
它们对对象引用有不同的表示方法 并且有不同的调用执行方法
软件构件与中间件技术
•ORB核心(ORB Core)
CORBA 5/75
提供对象的基本表示 以及请求的通讯 特别地:编排/还原(Marshal/Unmarshal) 将高层语言的参数等表示转换为 便于底层网络传输的形式
}
软件构件与中间件技术
•ORB与OA初始化
CORBA 17/75
当应用程序要求CORBA环境时 它需要一种获得ORB和OA对象引用的机制
这样的机制有两个作用: 把应用程序初始化到ORB和OA环境 向应用程序返回ORB和OA对象引用 以便将来使用ORB和OA操作
软件构件与中间件技术
2、ORB实现方式
1
wchar
1、2或4
octet
1
short
2
unsigned short 2
long
4
unsigned long 4
long long
8
unsigned long long 8
float
4
double
8
long double
8
boolean
1
enum
4
软件构件与中间件技术
CORBA 30/75
字节顺序:
软件构件与中间件技术
CORBA 21/75
二、GIOP-IIOP
1、GIOP概述 2、CDR 3、GIOP消息格式 4、IIOP 5、IIOP IOR
软件构件与中间件技术
CORBA 22/75
1、 GIOP概述
目前已经被广泛地采纳 经被ISO组织采纳,成为一种工业标准 (ISO/IEC 19500-2)
CORBA介绍
CORBA介绍CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构,通用对象请求代理体系结构)是由OMG组织制订的一种标准的面向对象应用程序体系规范。
或者说CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案;OMG组织是一个国际性的非盈利组织,其职责是为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。
OMG组织成立后不久就制订了OMA(Object Management Architecture,对象管理体系结构)参考模型,该模型描述了OMG规范所遵循的概念化的基础结构。
OMA由对象请求代理ORB、对象服务、公共设施、域接口和应用接口这几个部分组成,其核心部分是对象请求代理ORB(Object Request Broker)。
对象服务是为使用和实现对象而提供的基本服务集合;公共设施是向终端用户应用程序提供的一组共享服务接口;域接口是为应用领域服务而提供的接口;应用接口是由开发商提供的产品,用于它们的接口,不属于OMG标准的内容。
ORB提供了一种机制,通过这种机制,对象可以透明的发出请求和接收响应。
分布的、可以互操作的对象可以利用ORB构造可以互操作的应用。
CORBA标准由物件管理组织(OMG)设立并进行控制,CORBA定议了一系列API,通信协议,和物件/服务信息模型用于使得异质应用程序能够互相操作,这些应用程序用不同的程序语言编写,运行在不同的平台上。
CORBA因此为定义明确的物件提供了平台和位置的透明性,这些物件是分布式计算平台的基础。
通常来说,CORBA把用其他语言开发的程序码和关于该程序码能力和如何调用该程序码的资讯包到一个套装(package)中,包成套装的物件则可以在网络上被其他程序(或CORBA物件)调用。
在这个意义上来讲,CORBA可以被看作是一个机器可读的文件档格式,类似于标头档(header),但是具有相当多的资讯。
CORBA规范及其技术核心
CORBA规范及其技术核心
童爱红;吴盘荣
【期刊名称】《航空计算技术》
【年(卷),期】2000(030)004
【摘要】CORBA(通用对象请求代理结构)规范被称为是面向21世纪的软件总线.已成为流行的分布对象计算规范.CORBA规范的内容很丰富,本文着重从整体上把握CORBA的体系结构和核心内容.基于对CORBA的发展和技术特色的介绍,本文详细讨论了OMA(对象管理体系结构)模型、ORB系统组成和ORB运行过程.【总页数】4页(P40-43)
【作者】童爱红;吴盘荣
【作者单位】解放军理工大学工程兵工程学院伪装与仿真工程系江苏南京210007;解放军理工大学工程兵工程学院伪装与仿真工程系江苏南京 210007
【正文语种】中文
【中图分类】TP393.09
【相关文献】
1.中间件技术及其规范CORBA的探讨 [J], 陶达刚
2.基于CORBA规范下的机床设计工作流程子系统的实现 [J], 陈建松
3.基于CORBA规范的EMS中间件平台研究 [J], 缪欣;黄海悦
4.基于OMG CORBA A/V流规范的多媒体通信中间件组管理的设计与实现 [J], 董露;唐伦;陈前斌
5.符合Real-time CORBA规范的传感器网络监控系统设计 [J], 魏云华
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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名成员的国际组织,它包括信息系统厂商,软件开发者和用户。
自1989成立以来,OMG组织一直在促进软件开发中的面向对象技术的理论与实践,该组织的合同包括建立业界的指导方针与对象管理规格说明,以提供应用开发的公共框架。
主要目的是促进在分布、异构环境中基于对象的软件的可重用性、可移植性与互操作性。
遵循这些规格说明有可能开发出一种跨越所有主要硬件舞台和操作系统的异构应用环境。
OMG组织的目的是通过建立对象管理体系结构来发展对象技术并引导其发展方向。
CORBA是一个关于分布对象平台架构的标准化规格说明,目的是实现多厂商网络环境中应用的互操作。
CORBA实现允许应用软件之间的彼此通信,而不必顾及这些应用软件的位臵是谁设计的,及它们是用什么语言实现的等问题。
CORBA标准第一版,CORBA1.1是于己于1991年推出的。
它定义了CORBA接口定义语言(IDL)及应用编程接口,允许客户在CORBA通信设施的顶部与服务器对象进行交互。
这些通信设施具体包含在所谓对象请求代理(ORB)。
IDL提供了说明构件接口的统一的方法,它独立于符合接口要求的实现构件的编程语言。
1994年下半年发布了CORBA 2.0版。
它的主要增强点:给出了关于不同厂商ORB之间的互操作协议的规格说明。
1997年8月,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.0和2.0版中OMG对对象模型以及ORB的功能进行了规定。
CORBA规范内容很多,其中与构件实现规范相关的主要内容包括IDL、IR和Component Model。
1. IDLIDL(Interface Definition Language)是CORBA 用来定义对象接口的语言,是客户与服务器之间的一种契约。
通过这个契约,ORB 有效地分离了功能的实现方与使用方,使双方可以用不同的语言实现,可以运行在不同的操作系统上,并且可以运行在不同的结点上。
IDL 本身不是一种编程语言,它独立于任何一种具体的语言之上,但它采用了C++的词法,并尽量与C++的语法兼容,因此易于被编程人员所掌握。
2. IRIR(Interface Repository)是ORB 的构成部分之一,它提供一致的接口定义存储,管理并提供对OMG IDL 所指定对象定义集合的访问。
IR 可以完成提供请求签名的类型检查(请求是否通过D Ⅱ或stub 发出)、帮助检查接口继承图的正确性、帮助提供不同ORB 实现之间的互操作性等工作。
3. Component ModelCORBA Component Modem CORBA 3.0的核心内容之一,该模型的提出是为了使更多的编程人员方便地进行基于CORBA 的软件开发。
CORBA 构件模型主要在构件的事件、属性、定制、组装、包(Packaging)以及构件池(Component Repository)等方面作出规定。
第1.02节 对象管理架构(OMA)其中,CORBA 对象请求代理Object Request Broker(ORB)称为ORB 总线,通过Application Interface 、Domain Interfaces 、Common Facilities 、Object Services 四类接口(服务)来完成客户与CORBA 对象之间的通信,ORB 内核完成对象的创建、实现、定位以及通信机制等;Object Services 是指对总线进行扩展的系统级别服务,共十五种(见第二部分);Common Facilities 是指应用对象直接使用的服务框架;Application Interfaces 是指用户最终使用的商用对象及应用;Domain Interfaces 则面向专用领域。
图1.1、1.2、1.3 描述了它们之间的关系。
对象管理架构(OMA )为OMG 组织将不同标准大规模集成起来的框架OMA 带有对象模型(object model )与称之为参数模型(reference model )的概念性架构。
OMA 中定义了CORBA 四个主要部分:ORB (Object Request Broker )、对象服务(Object service)、公共设施和应用对象。
对象模型把计算实体看作为可标识的对象。
对象通过提供使用环境的服务,封装了状态与行为。
环境由向对象发出请求的客户(client )组成;对象由对象引用(object reference )来标识。
在与对象模型相联系的类型层次结构中,把对象引用作为特殊的类型处理。
除了对象引用外,对象模型也提供了若干种简单类型与类型构造符,包括序列(sequemce ),结构(structure ),联合(union ),及枚举(enumeration )等,后者可用来构造用户定义的结构类型。
OMA 把对象接口与它的实现明确地区分开来。
接口通过操作的集合定义了关于客户的合同,满足此接口的所有实现将为客户提供合适的行为。
对象模型支持这种抽象,它既允许设计者提出公用功能,如公用结构与公用行为,又能通过接口继承性(interface inheritance)增量地加入新的功能。
通过继承把接口中使用的服务与类型传递给后代接口,对象接口可用不同编程语言来实现。
满足特定接口的对象实现可以彼此透明地替换,只要接口保持不变,客户察觉不到实现的变动,也不必为利用替换对象的能力而重编译。
这些特性便于系统逐步适应技术的变动,质量提高或性能要求。
图1.2中参考模型包括概念性架构和一组可重用的功能接口,或一组特定应用的对象实现。
参考模型的主体为对象请求代理(ORB)。
它提供了对象可以透明地彼此交互的标准机制。
这里,客户和服务器对象是本地的还是分布的都是一样的。
而且屏蔽了服务请求格式与内部数据表示的多样性。
参考模型支持4类接口,公共设施,领域接口及对象服务:应用接口是现有应用的接口。
它们的定义不是CORBA标准的一部分。
本标准仅仅规定了接口定义必须遵循的格式及能使用对象与ORB交互的机制。
第1.03节CORBA详细结构图第二章对象服务(CORBAServices)的具体内容第2.01节名字服务名字服务是ORB中的对象定位其它对象的主要方法。
所谓名字就是对象的标识,一个对象与一个名字的联系被称作为一个名字绑定。
一个命名上下文是指一个包含若干名字绑定的名字空间,在其中每个对象名是唯一的。
一个名字绑定总是存在于一个命名上下文中。
一个上下文(context)同样是一个对象,它也可以在一个命名上下文中绑定一个名字。
一个上下文绑定和一个名字绑定的关系如同一个目录和一个文件的关系。
由于上下文绑定的存在可以通过一个序列名来指定一个对象,这一序列名(也可称为复合名)定义了一个对象绑定在一个名字空间的路径。
图2-1-1表示了一个名字空间的例子。
图 2-1-1名字空间实例在图2-1-1中由三个上下文绑定(The world city,Asia,R.P.C)和一个名字绑定(Shanghai)组成了一个复合名。
解析名字(resolve a name)是指在一个给定的命名上下文中找到和一个名字相联系的对象;绑定名字(bindaname)是指在一个给定的命名上下文中建立一个名字绑定。
命名服务是由NamingContext和 BindingIterator两个接口实现的,见下图。
图2-2-2 接口NamingContext和 BindingIterator及其中的方法NamingContext对象包含有若干名字绑定。
通过调用接口NamingContext中bind方法可以把一个对象和一个名字联系起来。
Rebind方法和bind方法类似,只是当一个名字已经和一个对象绑定,它重新以一个新名字和该对象进行绑定。