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是一种重要的分布式计算标准,它提供了一种通用的框架,使得不同的对象可以在不同的平台上进行交互和通信,从而实现跨平台的互操作性。
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);
}。