CORBA_IDL
- 格式:doc
- 大小:26.00 KB
- 文档页数:11
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请求映射到整个实时操作系统的优先级范围;另一种是映射到本地实时操作系统优先级的一个子集上。
优先级继承与传播:在运行过程中,进程会创建子进程,不同的进程之间相互调用,如果不支持优先级继承和传播,则无法保证正确的优
先级关系。
被调用进程的优先级必须大于或等于调用进程的优先级。
因此在调用时,必须动态改变被调用进程的优先级。
存储管理是通过进程池来实现的。
建议咨询专业人士获取具体详细信息。
corb表达式-回复CORBA是一种面向对象的中间件技术,用于在分布式系统中实现不同平台之间的通信和互操作性。
本文将详细介绍CORBA的概念、架构和工作流程,以及其在实际应用中的优势和挑战。
第一部分:CORBA概述CORBA,全称为Common Object Request Broker Architecture,是一种通用的对象请求代理架构。
它由OMG(对象管理组织)提供,OMG是一个国际标准化组织,致力于制定和维护软件和系统集成的标准。
CORBA 提供了一种灵活的方式来在异构系统之间进行通信,而无需考虑具体的平台和编程语言。
CORBA使用基于IDL(Interface Definition Language)的方式来描述和定义系统中不同对象之间的接口,这样可以确保不同平台和语言之间的互操作性。
IDL是CORBA的核心组成部分,它实际上是一种中立语言,描述了对象的方法和属性。
基于IDL,CORBA使用Object Request Broker(ORB)来处理不同平台和语言之间的对象交互。
第二部分:CORBA架构和工作流程CORBA架构由四个主要组件组成:IDL编译器、ORB、接口实现和客户端应用程序。
1. IDL编译器:负责将IDL描述的接口转换成各种编程语言的实现代码。
2. ORB:作为中间代理,负责将客户端请求转发给相应的接口实现并返回结果。
3. 接口实现:实现IDL描述的接口的具体逻辑。
4. 客户端应用程序:通过ORB发送请求给接口实现,并处理返回的结果。
CORBA的工作流程如下:1. 开发者使用IDL编写对象接口描述,并使用IDL编译器将IDL转换为特定编程语言的代码。
2. 接口实现者根据生成的代码来实现对象接口的具体逻辑。
3. ORB管理着客户端和接口实现之间的交互。
当客户端调用某个对象的方法时,ORB将请求转发给相应的接口实现。
4. 接口实现根据客户端的请求执行相应的操作,并返回结果给ORB。
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(公用对象请求代理体系)是基于对象技术的分布计算应用软件体系结构。
corba标准主要分为三个部分:接口定义语言(IDL),对象请求代理(ORB),以及ORB之间的互操作协议IIOP,核心是对象请求代理。
corba与平台和语言无关。
java IDL既是corba的一个实现,它是jdk1.3或更高版本的核心软件包之一,定义在org.omg.CORBA及其子包中,在java IDL的支持下,开发人员可以使用如下两种方法将java 和corba集成在一起:创建java对象并使之可在corba orb中展开;创建java类并作为/jinzhengquan/admin/EditPosts.aspx?catid=295786和其它orb一起展开的corba对象的客户,这种方法提供了另外一种途径,通过它java可以被用于将你的新的应用和以前遗留的系统相集成。
采用java创建corba应用,corba对象服务的实现方式分为两种:对象的命名引用方式和字符串化对象引用方式,创建corba应用程序的过程大体如下:编写IDL接口定义文件;将接口定义文件编译为相应高级语言源代码,产生服务器框架与客户端存根;基于服务器框架,编写服务对象实现程序;基于客户端存根,编写客户对象调用程序;分别编译客户对象和服务对象程序;运行服务对象和客户对象程序。
第一步下载JacORB并配置jacORB1,解压JacORB-2.3.0-bin,将jacORB拷贝到c:\jacORB;2,修改c:\jacORB\bin下的文件,去掉idl.tpl,idl.bat.tpl,jaco.tpl和jaco.bat.tpl文件的后缀名".tpl";3,在jacORB目录下建立classes文件夹,将etc中的jacorb_properties.template文件拷贝到classes下,将文件中(*)Service=file:/c:/NS_Ref修改为(*)jacorb.naming.ior_filename=c:/NS_Ref,并将文件名改为jacorb.properties4,在dos下输入ns即可。
基于CORBA的综合网络管理系统的IDL设计
陈思耀
【期刊名称】《智能计算机与应用》
【年(卷),期】2006(000)006
【摘要】介绍了基于CORBA网络管理系统体系结构,以及网络管理模型中CORBA的IDL设计.
【总页数】2页(P20-21)
【作者】陈思耀
【作者单位】广东省潮州市韩山师范学院,521041
【正文语种】中文
【中图分类】TP311.52
【相关文献】
1.基于CORBA的综合网络管理系统 [J], 熊丽霞;徐悦;陈旭东
2.基于CORBA综合网络配置管理的设计与实现 [J], 罗晶
3.基于CORBA的综合网络管理系统设计 [J], 尤鹏南;李成忠
4.基于J2EE,CORBA和WBM的综合网络管理系统 [J], 崔百丰;方宁生;姜浩
5.基于CORBA的综合网络管理系统 [J], 丁晓光;潘成胜
因版权原因,仅展示原文概要,查看原文内容请购买。
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是一种重要的分布式计算标准,它提供了一种通用的框架,使得不同的对象可以在不同的平台上进行交互和通信,从而实现跨平台的互操作性。
首先,编写bank.idl文件,为程序需使用的两个对象定义接口
然后,写这两个对象的实现
最后,编写客户端和服务端程序。
写完后,文件夹中有如下文件:
按win+R,输入cmd,打开两个命令行窗口,一个作为服务端,一个作为客户端。
我们需要对这几个文件进行编译,其中idl2java bank.idl执行后,将生成一个bank文件夹,这是visiBroker为我们生成的java文件,一个接口对应7个java文件,这是自动生成的,不需要改。
但需要将其编译一下。
接着就编译客户端Client.java,然后编译服务端Server.java,
然后,需要在任意端启动osagent
过程如下:
准备工作完成之后,我们在其中一个窗口输入vbj Server,将服务端启动起来
在另一个窗口输入vbj Client,启动客户端
从上,我们可以看到程序实现的功能。
本程序采用mysql数据库。
数据库内容如下:
执行完这些后,文件夹中的内如如下:
这里是生成的bank文件夹中的内容:
分布式作业:
这个是实现的学生成绩管理系统,运行方法如下:。
CORBA原理范文对象请求代理是CORBA体系结构的核心部分之一、它是一个客户端对象,用于代表客户端与服务器端的通信。
当客户端想要调用服务器端的方法时,它将通过对象请求代理将请求发送给ORB。
对象请求代理将封装调用请求的细节,并通过称为IIOP(Internet Inter-ORB Protocol)的协议将请求发送给服务器端。
对象适配器是CORBA的另一个关键组件。
它充当客户端和服务器端之间的中介,帮助它们进行通信。
对象适配器负责将服务器对象暴露给客户端,并转换来自客户端的请求以适应服务器端。
它还处理任何必要的数据转换和协议转换,以确保客户端和服务器端能够交互。
ORB是CORBA原理的重要组成部分,用于协调和管理客户端和服务器端之间的通信。
ORB负责接收来自客户端的请求,将其路由到适当的服务器对象进行处理,并将返回结果传递回客户端。
ORB还负责解析和组装IIOP消息,在客户端和服务器端之间建立和维护通信连接。
CORBA的原理基于面向对象的理念和分布式系统的概念。
它采用了接口定义语言(IDL)来定义远程调用接口,以确保不同平台的应用程序可以无缝通信。
IDL定义了接口、数据类型和异常等规范,使得客户端和服务器端能够理解和解释对方的请求和响应。
CORBA的原理还包括使用对象引用来标识远程对象。
客户端通过对象引用来定位和访问服务器端的对象,而不需要知道对象在网络中的具体位置。
对象引用包含了对象的唯一标识符和网络地址,ORB使用这些信息来确保请求能够正确地路由到目标对象。
在CORBA系统中,所有的通信都是基于消息的。
客户端通过ORB发送请求消息到服务器端,服务器端处理请求并返回响应消息。
通过使用消息传递机制,CORBA能够提供一种可靠的通信方式,支持多种网络传输协议和数据编码格式。
总的来说,CORBA的原理是基于分布式计算和面向对象的理念,通过对象请求代理、对象适配器和ORB等组件实现了分布式应用程序之间的通信和交互。
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系统CORBA标准由对象管理组织(OMG)设立并进行控制,CORBA定议了一系列API,通信协议,和物件/服务信息模型用于使得异质应用程序能够互相操作,这些应用程序用不同的程序语言编写,运行在不同的平台上。
CORBA因此为定义明确的物件提供了平台和位置的透明性,这些物件是分布式计算平台的基础。
CORBA分布计算技术,是由绝大多数分布计算平台厂商所支持和遵循的系统规范技术,具有模型完整、先进,独立于系统平台和开发语言,被支持程度广泛的特点,已逐渐成为分布计算技术的标准。
COBRA标准主要分为3个层次:对象请求代理、公共对象服务和公共设施。
CORBA应用程序开发过程下面是CORBA应用程序开发的基本过程:1.需求分析:和其他软件开发项目一样,CORBA应用程序开发的第一步是进行需求分析。
开发团队需要与客户进行讨论,了解他们的需求和预期的应用程序功能。
这些需求包括要支持的对象类型、通信和交互的方式等。
2.接口设计:接下来,需要设计CORBA接口来定义对象之间的通信和交互协议。
CORBA接口使用接口定义语言(IDL)来描述对象的属性、方法和数据类型。
IDL是一种语言中立的描述语言,可以生成各种编程语言的代码。
3.IDL编译:一旦接口定义完成,IDL文件需要被编译成具体编程语言的代码。
CORBA支持多种编程语言,如C++、Java、Python等。
开发团队需要选择适合他们的编程语言,并使用CORBA提供的IDL编译器将IDL文件编译成特定语言的代码。
5.编译和构建:对象实现完成后,代码需要被编译和构建成可执行的应用程序。
这个过程与传统的软件开发流程类似,包括编译、链接和构建可执行文件的步骤。
6.部署和运行:部署CORBA应用程序需要考虑多个因素,如操作系统的兼容性、网络配置等。
开发团队需要确保应用程序可以在目标环境中正确运行,并处理可能出现的网络通信问题。
7.测试和调试:一旦应用程序部署完毕,开发团队需要进行系统测试和调试。
这包括使用各种测试工具和技术来验证应用程序的正确性和性能。
开发团队可能需要使用CORBA测试框架,如TAO(The ACE ORB)来进行测试。
8.维护和更新:一旦应用程序上线,并被用户使用,开发团队需要持续进行维护和更新。
这包括修复错误、添加新功能和进行性能优化。
CORBA应用程序的更新可能涉及到修改IDL文件和重新编译代码。
以上是CORBA应用程序开发的基本过程。
由于CORBA的复杂性和涉及到的多个技术,CORBA应用程序的开发需要经验丰富的开发团队和合适的工具支持。
corba开发步骤以CORBA开发步骤为标题,我们将介绍一种常用的软件开发技术,以帮助读者更好地理解CORBA开发的过程。
CORBA(Common Object Request Broker Architecture)是一种基于面向对象的分布式计算框架,它允许不同的应用程序在网络上进行通信和交互。
CORBA提供了一种机制,使得不同的程序可以通过远程过程调用(RPC)来调用、访问和共享对象。
下面是CORBA开发的步骤:1. 定义IDL接口CORBA使用IDL(Interface Definition Language)来定义分布式应用程序的接口。
在这一步中,我们需要定义接口的方法、参数和返回类型。
IDL定义了接口的规范,而不关注具体的编程语言。
通过IDL,我们可以在不同的语言之间实现互操作性。
2. 生成Stub和Skeleton代码在CORBA中,客户端和服务器之间通过Stub和Skeleton进行通信。
Stub是客户端用来调用服务器对象方法的代理,而Skeleton 是服务器端用来接收和处理客户端请求的代码。
通过IDL编译器,我们可以生成Stub和Skeleton的代码,以便在客户端和服务器端使用。
3. 实现服务器对象在这一步中,我们需要根据IDL接口实现服务器对象的功能。
服务器对象是客户端调用的目标对象,它提供了IDL接口中定义的方法。
通过实现服务器对象,我们可以在服务器端处理客户端的请求,并返回相应的结果。
4. 编写客户端代码客户端代码用于调用服务器对象的方法。
在客户端代码中,我们需要创建Stub对象,并通过Stub对象调用服务器对象的方法。
客户端代码可以在本地或远程机器上运行,它通过网络与服务器进行通信。
5. 编译和链接代码在这一步中,我们需要将IDL接口、Stub和Skeleton代码、服务器对象和客户端代码编译成可执行文件。
编译和链接的过程可能因编程语言而异,我们需要根据实际情况进行相应的操作。
CORBA技术在网管系统中的应用发表时间:2009-02-11T14:48:55.250Z 来源:《黑龙江科技信息》2008年9月下供稿作者:张婷婷何丰马宁黄宇[导读] 采用CORBA技术容易实现遗留系统的集成,符合标准的处理流程,系统的开放性适应新技术、新业务的发展。
摘要:公共对象请求代理体系结构(Common Object Request Broker Architecture,简称CORBA)是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案。
在电信运营系统中,网管系统一直是网络维护工作的重点。
采用CORBA技术容易实现遗留系统的集成,符合标准的处理流程,系统的开放性适应新技术、新业务的发展。
主要对CORBA技术在网管系统中的应用做一些研究。
关键词:公共对象请求代理体系结构;对象管理组织;分布式处理环境Abstract:The CORBA is a solution project for OMG to solute the interlinkage in the DCE.In the telecommunication system,network adopting CORBA technology in the telecommunication network system is an easy way to carry out the integration of system bequeath.It's according to the standard management way and the development of new technology and operation.This paper mainly research the CORBA technology in the application in the netwok system. Key words:CORBA;OMG;DCE;ORB 引言公共对象请求代理体系结构(Common Object Request Broker Architecture,简称CORBA)是对象管理组织为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案。
OMG IDL已经为C、C++、Java等主要高级程序设计语言制定了IDL到高级编程语言的映射标准。
项目开发人员可以根据需要选择自己最熟悉的编程语言来独立开发基于CORBA 的应用,而对软件系统的互操作能力不产生影响。
1. IDL的语法规则
OMG IDL文件举例
module Compute
{
typedef double radius;
typedef long times;
interface PI
{
double getResult( in radius aRadius, in times time); } }
上述接口定义文件主要用于客户端向服务对象提出请求:计算π值。
因此,模块中定义了一个方法getResult(),以圆的直径(aRadius)和迭代次数(times)作为该方法的输入参数。
2. OMG IDL词法规则
OMG IDL采用ASCII字符集构成接口定义的所有标识符。
标识符由字母、数字和下划线的任意组合构成,但第一个字符必须是ASCII字母。
IDL认为大写字母和小写字母具有相同的含义,例如anExample和AnExample是相同的。
与C++和Java类似,采用以“/*”开始,以“*/”结束来注释一段代码,以“//”开始注释从“//”开始直至行尾的所有内容。
另外,IDL保留了47个关键字,程序设计人员不能将关键字用作变量或方法名。
需要注意的是关键字的大小写,例如:typedef double context;
//错误:定义的变量context是关键字
typedef double CONTEXT;
//错误:CONTEXT与关键字context冲突
3. 数据类型
(1)基本数据类型:OMG IDL基本数据类型包括short、long和相应的无符号(unsigned)类型,表示的字长分别为16、32位。
(2)浮点数类型:OMG IDL浮点数类型包括float、double 和long double类型。
其中float表示单精度浮点数,double 表示双精度浮点数,long double表示扩展的双精度浮点数。
(3)字符和超大字符类型:OMG IDL定义字符类型char 为面向字节的码集中编码的单字节字符; 定义类型wchar为从任意字符集中编码的超大字符。
(4)逻辑类型:用boolean关键字定义的一个变量,取值只有true和false。
(5)八进制类型:用octet关键字定义,在网络传输过程中不进行高低位转换的位元序列。
(6)any数据类型:引入该类型用于表示OMG IDL中任意数据类型。
4. 常量
OMG IDL用const关键字声明一个常量,用于模块(module)或接口(interface)中定义保持不变的量,如:const double PI = 3.1415926;
在IDL中,可以定义long、unsigned long、unsigned short、char、boolean、float、double、string类型的常量。
5. 构造数据类型
类似于C和C++的语法规则,OMG IDL中构造数据类型包括结构、联合、枚举等形式。
如下例:
(1)结构类型:
typedef long GoodsNumber;
struct
{
GoodsNumber number;
string name;
float price;
}
(2)联合类型:
union stockIn switch( short )
{
case 1: stocker : long;
case 2: goodsName1 : string;
case 3: goodsName2 : string;
}
(3)枚举类型:
enum GoodsStatus { GOODS_SALED, GOODS_INSTOCK};
6. 数组类型
OMG IDL的数组类型提供了多维定长、统一数据格式的数据存储方式——数组。
每一维的长度必须在定义时给定,所有数据单元必须存储相同类型的元素。
如下例定义一个长度为
20×100的整数数组:
typedef long aDimension[20][100];
7.模板(template)类型
OMG IDL提供两种类型的模板:
(1) 序列(sequence)类型:
用该方法定义长度可变的任意数值类型的存储序列,通常在定义时可以指定长度,也可以不指定,如:
typedef sequence <long,80> aSequence;
//长度定义为80
typedef sequence <long> anotherSequence;
//长度不定
(2) 字符串(string)序列:
同样对于字符串序列类型,也有两种定义方式:
typedef string <80> aName; //长度定义为80
typedef string anotherName; //长度不定
8.接口(interface)*****
CORBA接口作为服务对象功能的详细描述,封装了服务对象提供服务方法的全部信息,客户对象利用该接口获取服务对
象的属性、访问服务对象中的方法。
接口用关键字interface声明,其中包含的属性和方法对所有提出服务请求的客户对象是公开的,如下例:
interface JobManager
{
readonly attribute string FirstName;
attribute string status;
string QueryJobStatus( in long Number, out string property);
}。