java corba 编译

合集下载

javabus进入方法

javabus进入方法

javabus进入方法(原创版4篇)目录(篇1)1.背景介绍:JavaBus 的发展与应用2.JavaBus 的概念与特点3.JavaBus 的进入方法4.JavaBus 的优势与未来发展正文(篇1)随着信息技术的飞速发展,Java 编程语言以其卓越的性能和跨平台特性,在众多编程语言中脱颖而出。

JavaBus,作为 Java 编程语言的一个重要组成部分,为广大开发者提供了便利的编程接口,使得各种应用程序之间能够实现高效、稳定的数据传输。

本文将详细介绍 JavaBus 的进入方法,并展望其优势与未来发展。

一、JavaBus 的概念与特点JavaBus,全称 JavaBus Architecture,是 Java 编程语言中用于实现分布式对象技术(CORBA)的一种架构。

JavaBus 通过提供一组标准的API(应用程序编程接口),使得 Java 对象能够在不同的网络环境中进行通信。

其主要特点如下:1.面向对象:JavaBus 完全支持 Java 语言的面向对象特性,如封装、继承和多态等,方便开发者构建复杂的业务逻辑。

2.分布式:JavaBus 支持跨平台、跨网络的通信,使得应用程序能够实现真正的分布式处理。

3.可靠性:JavaBus 提供了一套完整的错误处理机制,确保通信过程中的数据安全与完整性。

二、JavaBus 的进入方法要进入 JavaBus,需要了解以下几个方面的知识:1.JavaBus API:JavaBus API 是 JavaBus 的核心,提供了各种用于实现对象通信的方法和接口。

开发者需要熟悉这些 API,以便在程序中实现 JavaBus 功能。

2.IDL(接口定义语言):IDL 是一种用于描述接口的文本语言。

开发者需要使用 IDL 定义通信接口,以便在不同的语言和平台之间实现数据交换。

3.编译与部署:编写好 JavaBus 程序后,需要使用相应的编译工具将其编译为二进制文件,并在目标环境中部署,以便实现通信功能。

最新CORBA客户端-服务端的处理流程Java示例

最新CORBA客户端-服务端的处理流程Java示例

C O R B A客户端-服务端的处理流程J a v a示例CORBA 客户端/服务端的处理流程(Java示例)一、客户端的处理流程ORB的初始化 -->分布式对象引用的获取 -->分布式对象的引用 |1、ORB(Object Request Broker,对象请求代理)是基于CORBA的分布式对象系统的核心,在代理对象(Stub)和分布式对象实现的背后,由ORB提供了实现分布式对象系统所需要的各种服务。

由ORB提供的服务包括如下四种:1)ORB接口。

主要包括 ORB的初始化(获取ORB)、获取CORBA服务对象、动态调用请求的生成、分布式对象引用的变换等。

2)DII(动态启动接口)。

将客户端生成的对象调用请求传送给ORB时需要利用DII。

3)DSI(动态骨架接口)。

DSI是与DII对应的服务器端的接口,分布式对象实现利用该接口从ORB中获取来自客户端的请求。

4)OA(对象适配器)。

它是用于在服务器进程中管理分布式对象而提供的接口。

OA提供的主要的功能包括分布式对象引用的生成,以及将分布式对象实现登录到ORB中等。

在客户端中,ORB的初始化有以下两个目的1)为分布式对象初始化环境2)为了利用ORB接口而获取其对象的引用2、分布式对象引用的获取一般来说,CORBA系统不同,获取分布式对象引用的方法也不同,目前大概有如下几种方法:1)利用文件的方法获取对象。

过程是:服务器将所生成的分布式对象引用进行字符串化处理后保存在文件中,并以某种方式将其发送到客户端能够获取的设备上。

客户端从该文件中获取字符串的分布式对象引用,并将其恢复原状。

分布式对象引用的字符串化:ORB orb = ORB.init();String orbstr = orb.object_to_string((Object)con_ref);//将orbstr 以文件形式发送给客户端字符串化引用的复原:BankControl ank_ref;ank_ref = Bank.ControlHelper.narrow(orb.string_to_object(orbstr));...2)利用Binding 服务的方法获取对象引用。

CORBA中POA-Tie模式的JAVA实现

CORBA中POA-Tie模式的JAVA实现
维普资讯
第 1 卷 第4 9 期
2 0 0 7年 8月
沈 阳
大 学 学 报
Vo . 9, 11 No. 4
Au . 200 7 g
J OURNAL OF HENYANG S UNI VERS TY I
文章 编号 :10 —2 52 0 )40 1—3 0 89 2 (0 7 0 .0 50
用 P) 策略实 现 的 ,(A策 略 的 内容 与 线程 、 ( A P) 生 命 期 、 象 唯一 性 、 活 等 有关 . 供 开 发者 设定 对 激 可
和定位对象 、 处理连接管理 、 传送数据和请求通信
所需 的框 架 结 构 . O A 对 象 之 间 从 不 直 接 进 C R B
体, 它标准化 了 IL编译 器产生的框架类 , D 以及
P OA和 Srat 间 的交 互 , 得 服 务 器 应 用 程 evn 之 使 序能 在 不 同 的 O B R 实 现 中 得 到 移 植 . 1为 图 C R A 的体 系结 构 L . O B 2 』
客 户 方
对象实现方
1 ∞ R A的体 系结构 及对象请求代理 B
C B OR A是 由 国际 OMG( bet n g me t Oj c Ma ae n
行 通信 , 象通 过 远 程 桩 对运 行 在 本 地 计算 机 上 对
的 O 发出请求 . B R 本地 O 使用 lt t ne B R n me It — e r Ob r 协议 (I P为缩写形式 ) I O 将该请求传递给其 他计算机上的O B . R T 然后 , M 远程 O 定位相应 B R
( ) 动 P Ma a e. 个 P AMa a e 可 4启 OA n gr一 O ng r

通信中间件CORBA

通信中间件CORBA

CORBA(COMmon Object Request Broker Architecture,公共对象请求代理体系结构,通用对象请求代理体系结构)是由OMG(The Object Management Group)组织制订的一种标准的面向对象应用程序体系规范。

或者说 CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案;OMG组织是一个国际性的非盈利组织,其职责是为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。

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把用其他语言开发的程序码和关于该程序码能力和如何调用该程序码的资讯包到一个套装(package)中,包成套装的物件则可以在网络上被其他程序(或CORBA物件)调用。

基于TAO(The ACE ORB)的CORBA编程

基于TAO(The ACE ORB)的CORBA编程

CORBA Programming with TAO - 1.Start(基本概念)摘要:简要介绍CORBA的基本原理,并解释POA、stub、skeleton、servant等重要概念。

一、CORBA及TAO简介CORBA是一个为简化跨平台应用而提出的规范,它独立于网络协议、编程语言和软硬件平台,支持异构的分布式计算环境和不同编程语言间的对象重用。

CORBA可以作为不同平台应用间信息传递的中间件,CORBA通过引入经过充分验证的有效的框架结构和通信手段,最大限度地简化了网络通信相关应用的设计与开发,使得我们可以专注于业务逻辑的实现,而无需关心通信的细节。

CORBA曾在无数文章中被称作“软总线”,以表明它作为数据传递通道的基本特性。

现在存在众多CORBA实现,既有商用的ORBacus、VisiBroker,也有一些优秀的开源实现,如:TAO、omniORB、MICO等。

由于各实现遵从相同的规范,接口基本一致,所以在熟练应用一种CORBA实现后,转而使用其它实现时,一般不会存在太大的障碍。

TAO(The ACE ORB)是美国华盛顿大学的Douglas C. Schmidt教授领导开发的一个实时CORBA平台,它是一个免费的开放源码项目,用C++语言开发,符合CORBA2.6规范。

支持语言: C++支持平台: Win32,常见的各种Unix/Linux,实时操作系统如VxWorks等等。

在所有的CORBA实现中,TAO 支持的平台是最多的。

支持的服务: Naming、Event、Notification、Security、Time、Scheduling、Logging、Lifecycle、Trading、Concurrency、Lifecycle、A/V Streaming、Load balancing等。

本系列文章将以当前最新的ACE-5.5+TAO-1.5+CIAO0.5为例,简要介绍如何应用TAO进行CORBA C++编程,其中部分内容(尤其是编译器配置相关的内容)是Windows平台特有的,但其它大多数信息在各平台上都是相同或者类似的。

基于CORBA的Java开发与应用的研究

基于CORBA的Java开发与应用的研究
u ) / 创建和初始化O B R 种分布式对象运行的基 础结 构,使得应用程序 n n , / 的应用可以扩展到不 同的网络领域 ,不同的编 S o O j t S o e n wS o b c( h w b c h wR f e h wO j t e = e 程语言 ,不同的操作系统。而J v 是一个移动 ) / aa , 创建服务对象并将其向O B / R 注册 用程序相比,创建C B a a OR A J v 应用所能实现
日 菜
基于C R A Jv 开发与 O B 的, a a 应用的研究
方 毅 哈尔滨银行 同济大学软件工程在读研究生
本文介 绍了 o A与 aa c 耻I Jv的内在联
系, 分析 了C R A t O B t 术和Jv语言 结合 的优 势 , aa
文中查找 “h w 并获得指 向该C R A So O B 对象 的引用 :调用对象的S o a ( ) h wN me 操作并打印 结果,其代码如下 : D b C CasS o U l{ u l l h wC et i s l pbi s t o i(tn rs) ul 切 i vi ma Sr g ag[ c c d n i ]
的功能更为强大 ,它一方面简化了C RB 的实 O A 现 ,另一方面提高 了Jv的程序功能。 aa
的代码系统 ,对运行对象来说是一个 可移 动的 操作系统 ,它提供 了一个移动对象 基础结构, 使得各个对象组件能够在各个操作 系统运行 ,
同时 提 出了一 个概念 清晰 、结 构 紧凑的 分 布
(” a e ev e } N m S ri ”) c
N in g C 0n t a m tex

式计算模型和构件互操作的方法 ,它 不但是 与

java与scala混合编译

java与scala混合编译

java与scala混合编译Java和Scala是两种常用的编程语言,它们都运行在Java虚拟机(JVM)上,并且可以相互调用和混合编译。

本文将介绍Java和Scala混合编译的相关概念、优势和使用方法。

一、Java和Scala的特点Java是一种面向对象的编程语言,它具有简单、可移植、安全和强大的特点。

Java广泛应用于企业级应用开发、Android应用开发等领域。

Scala是一种多范式编程语言,它结合了面向对象编程和函数式编程的特点。

Scala具有简洁、灵活、高效和可扩展的特点,适用于大规模数据处理、并发编程等场景。

二、Java和Scala的混合编译1. 概念Java和Scala混合编译是指在同一个项目中同时使用Java和Scala 编写代码,并将它们一起编译成可执行的程序。

混合编译可以充分发挥Java和Scala各自的优势,提高开发效率和代码质量。

2. 优势(1)兼容性:Java和Scala可以无缝地相互调用,Java代码可以直接调用Scala代码,Scala代码也可以调用Java代码。

这使得项目迁移、代码重用等工作更加方便。

(2)灵活性:Java和Scala可以根据具体需求选择使用,Java适用于简单的业务逻辑,Scala适用于复杂的算法和数据处理。

混合编译可以充分发挥两者的优势,提高代码的可读性和可维护性。

(3)性能优化:Scala具有更高的抽象能力和表达能力,能够编写出更加优雅和高效的代码。

在性能敏感的场景下,可以使用Scala 编写核心代码,提升程序的性能。

3. 使用方法(1)建立项目:使用IDE或命令行工具创建一个Java项目,然后将Scala源文件添加到项目中。

(2)配置构建工具:如果使用Maven或Gradle等构建工具,需要配置相应的插件和依赖项,以支持Scala的编译和打包。

(3)编写代码:根据项目需求,使用Java和Scala分别编写代码。

Java代码和Scala代码可以在同一个包下,相互调用。

CORBA接口开发详解(网络资料)

CORBA接口开发详解(网络资料)

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概述

CORBA概述

CORBA基本概念
CORBA
Facilities(CORBA工厂):位于CORBA
Services之上,定义了更高层次的分布式服务与框 架。如:打印、电子邮件、文档管理等。
CORBA体系结构
CORBA在基于网络的分布式应用环境下实现应用
软件的集成,使得面向对象的软件在分布、异构环 境下实现可重用、可移植和互操作。
将被分布对象的消息。
CORBA基本概念
CORBA
务。
services(CORBA服务):在ORB级别之
上,定义了大多数分布式企业对象可利用的公共服
命名服务、交易对象服务、关系服务、生命周期服务、外表化服
务、查询服务、事件服务、许可服务、时间服务、对象事务服务、并发 服务、安全服务、收集服务、特性服务、持久对象服务、通知服务、增 强时间视图等。
义语言:定义客户和服务器之间的静态接口,通过 编译器生成客户存根、服务器框架,以及根据支持
的语言映射,自动生成来自一个CORBA IDL的代码。
目前支持的语言映射包括:Java, C++等。
CORBA基本概念
SII(Static SSI(Static
Invocation Interface)静态调用
CORBA体系结构
CORBA特点
CORBA的核心是一套标准的语言、接口和协议, 以支持异构分布应用程序间的互操作性及独立于平 台和编程语言的对象重用。 引入中间件(Middleware)作为事务代理,完 成客户机(Client)向服务对象方(Server)提出 的业务请求;
CORBA体系结构
CORBA特点
编译IDL文件生成,其功能是负责发送一个操作调 用给能实现此操作的服务。

使用CORBA编写Java应用程序

使用CORBA编写Java应用程序

V n o = B e d id x l e d r OR V n o n e I 使用 ape) pl t
o g. 1  ̄. r OT CORBA . RB r I O ob =o g. mg. r o C0RBA . 0RB. [ t it i
正在 与第 三 方开 发商协 作 , 以将 D O C M 穆到 其他 的操作系 统上 ( 括 M S 几 包 V 和 种 UN X操 作 系统 ) 像 C R A一 样 . I 。 O B
DC M是 独立 于 语 言 的 , 用 Mi o ot O 它 c sf r
的 O B If 对 像绑 在 一 起 。这 一 操 作 R no 完成 之后 ,我们 就 可 以调用 帮 助方祛 来 实现 客户端 小应 用 。 记住 ,尽 管示例 中
者 的 选 择 范 围 ( 方 说 开 发 工 具 和 风 比 格 】 其 次 .D O 缺乏 众多 的平 台支 。 C M
( t dx ii e) nn
S rn t i gURL}
持.这极大程度地制约了代码的可重用
性和 D O 应用 的可 扩展 眭。最 后 ,与 CM
C B OR A相 比 ,DC M 是 一 种 非常 不成 O
( t d x i i e) nn
t i g a g ag s S rn L n t e F
的对 像描 述语 言 ( D )通 过 接 口对对 O L 像 加 队描 述 与 C R A相 比 . CO O B D M有三 个重 大缺 点。首先 ,它 由单 一开 发者 ( 微软 ) 定义 并控 制 .这大大 限制 了 D O 使 用 CM
开 发者 ( 比如说 Vs e i) 发 ig nc 开 1

1--Corba整体介绍

1--Corba整体介绍

CORBA的产生 CORBA的产生
CORBA的产生有其特定的背景,它是在面 向对象的技术兴起,客户/服务器模式普遍 得到应用的前提下,为屏蔽通信和实现细 节的需求,继承已有系统,消除“孤岛” 现象而产生的。
最 初,OMG 在1990 年 制 订 了 对 象 管 理 体 系(Object Management Architecture), 即 OMA, 来 描 述 应 用 程 序 如 何 实 现 互 操 作。 作 为 其 中 的 一 部 分, 需 要 有 一 个 标 准 规 范应用程序片段即对象的互操作──这 导 致 了CORBA 的 诞 生。
Client
远程引用
Object Request Broker 详 述
OMA 定 义 了 组 成CORBA 的 四 个 主 要 部 分:
(1) 对象请求代理ORB(Object Request Broker)。
(2) 对象服务(Object Services)
(3) 公共设施(Common Facilitites)
(4) Business Objects
对象请求代理ORB(Object 对象请求代理ORB(Object Request Broker)
(1) 对象请求代理ORB(Object Request Broker): 负责对象在分布环境中透明地收发请求和响应, 它是构建分布对象应用、在异构或同构环境下实 现应用间互操作的基础。ORB是一个中间件,他 在对象间建立客户-服务器的关系。通过ORB, 一个客户可以很简单地使用服务器对象的方法而 不论服务器是在同一机器上还是通过一个网络访 问。ORB截获调用然后负责找到一个对象实现这 个请求,传递参数和方法,最后返回结果。客户 不用知道对象在哪里,是什么语言实现的,他的 操作系统以及其他和对象接口无关的东西。

使用JAVA开发CORBA分布式应用

使用JAVA开发CORBA分布式应用

以及和 O 连接 时所需要的一些代码。使用 IL B R D ,开发人员可以用 其他 语言来实现 客户机和服务器。如果要为一个 已经存在的 0 R A 0 B 服务实现 客户机, 为一个 已经 存在 的客户机实现服 务,则首先要给 出 IL 口, 或 D接 然后运行 i l o a a编译器产 生桩和 构架 ,在此基础上再进行实现 。 dtjv 使用 I L 建接 口 (td .d ) D创 S u y i 1下面的0 I 描述—个叫 对象。 阻
三 、使 用 JV 开发 C 队 鲷 AA 哝
O ,客户可 以透 明地 调用一个服务对象上 的方法,这 个服务对 B R
象 可 以在 本 地 , 也可 以 在通 过 网络 连接 的 其 他 机 器 上 。 O 在 异 B R 构 分 布 环 境 下 为 不 同 机 器 上 的应 用 提 供 了互 操 作 性 ,并 无 缝 地 集 成 了 多种对 象 系统 。 C R A有 几 个 基 本 的优 点 : 与 开发 语 言 无 关 的独 立 性 , 与 开 OB 发 者无 关 的独 立 性和 与 操 作系 统 无关 的独 立性 。 OB 的 OB 当前 CR A R 在
CRA . O B 1 1于 19 年 由 O G发 布 , 其 中 定 义 了 接 口定 义 语 言 91 M
码 发布 。对 客户和服 务对象 来说 J V A A是很理想的编程语言 ,J V AA内置
的 多 线 程 、 垃 圾 收 集 和 错 误 处 理 使 编 写 健 壮 的 网络 对 象 变 得 很 容 易 。 这 两 种 对 象 模 型 可 以很 好 地 相 互 补 充 ,C R A处 理 网 络 的 透 明 性 , OB JV 处 理 实现 的 透 明性 , O A为 Jv 可 移植 应 用环 境 提 供 了一 个 分 布式 AA CR B AA

CORBA技术及实例

CORBA技术及实例

作者:easyinfonetemail: easyinfonet@日期:2000-11-14 23:15:195.3 CORBA技术及实例CORBA是一种规范,它定义了分布式对象如何实现互操作。

在WorldWideWeb盛行之前,特别是Java编程语言风靡之前,C++开发者基本将CORBA作为其高端分布式对象的解决方案。

实际的CORBA规范归对象管理组(ObjeotManagementGroup)管辖,这是一家由700多家公司组成的开放的研讨会,其工作是制订对象计算的开放标准。

CORBA对象可以用任何一种CORBA软件开发商所支持的语言,如C、C++、Java、Ada和Smalltalk,来编写。

同样地,CORBA对象可以运行在任何一种CORBA软件开发商所支持的平台上,如Solaris,Windows95/NT,OpenVMS、DigitalUnix、HP-UX或AIX等。

这意味着,我们可以在Windows95下运行Java应用程序,同时动态调入并使用C++对象,而实际上,该对象可能存储于一个在Internet上的UnixWeb服务器上。

使用接口描述语言(InterfaceDescriptionLanguage)编写的对象接口,使得与语言无关的独立性成为可能。

IDL使得所有CORBA对象以一种方式被描述,仅仅需要一个由本地语言(C/C++、CORBA、Java)到IDL的“桥梁”。

CORBA对象的互通信要以对象请求解析器(Object Request Broker)为中介,这种互通可以在多种流行通信协议之上(如TCP/IP或是IPX/SPX)实现。

在TCP/IP上,来自于不同开发商的ORB用InternetInter-Orb协议(IIOP)进行通讯,这是CORBA2.0标准(最新的版本)的一部分。

目前,对于较为流行的编程语言(包括C++,Smalltalk,Java和Ada95),已经有了许多第三方的ORB。

软件构件与中间件技术 实验指导书

软件构件与中间件技术 实验指导书
在机器 A 上打开一个 DOS 窗口,运行服务器:
现在在机器 B 上运行客户端:
9
至此,我们已经成功地完成了系统的开发和测试。请回答下面问题: (一) 假定使用 JDK1.6,编译 idl 文件的命令是什么? (二) 编译后,产生了哪几个文件?简要说明生成的各个 Java 类的作用。尤其是,客户
端的 码根和服务器端的框架是哪个类。 (三) Idl 文件中的 BAPkg 模块映射成了什么? (四) 实现远程对象要注意什么问题 பைடு நூலகம் (五) 实现服务器端的步骤是什 么? (六) 实现客户端的步骤是什 么? (七) 运行服务器和客户程序的命令是什么? (八) 谈一谈你对 Java CORBA 的认识。
"1050"); ORB orb = ORB.init(args, env);
org.omg.CORBA.Object temp;
7
temp
=
orb.resolve_initial_references("NameService");
NamingContextExt node = NamingContextExtHelper.narrow(temp);
"1050")
; ORB orb = ORB.init(args, env);
org.omg.CORBA.Object temp;
temp
=
orb.resolve_initial_references("RootPOA");
POA poa = POAHelper.narrow(temp);
poa.the_POAManager().activate();
在“包名”一栏中,输入包名。这里是 DBPkg。点击“完成”,进入 下图:

一个简单的CORBA例子

一个简单的CORBA例子

⼀个简单的CORBA例⼦因为对CORBA分析的需要,这⾥写⼀个简单的CORBA例⼦。

从JDK1.2开始,JDK中集成了ORB的实现,本例⼦使⽤了JDK1.7,对于JDK1.2+应该都没有问题。

这个例⼦实现⼀个简单的加减乘除的功能的计算器,客户端将参数和请求的⽅法名传送到服务端,服务端处理这个请求并将结果返回给客户端。

我们知道不同编程语⾔中的类型的表达,内存模型是不⼀样的,为此CORBA发明了⼀套中间描述语⾔IDL,不同语⾔平台的ORB实现负责将IDL中的类型映射到本地类型中。

因此IDL是我们编写CORBA程序的出发点,⾸先,我们⽤IDL来描述我们的接⼝/对象:1 module com{2 module bes{3 module corba{4 module test{5interface Calc{6void add(in long a,in long b,out long c);7void sub(in long a,in long b,out long c);8void multi(in long a,in long b,out long c);9void div(in long a,in long b,out long c);11 };12 };13 };14 };15 };当然接⼝Calc中的⽅法的返回值不⼀定为void,这⾥将返回值放到了out类型的参数c中,⽅法可以带有多个out类型的参数。

然后我们⽤idlj ⼯具(jdk⾃带)将Calc.idl转换为对应java的描述,并⽣成Stub和POA等类:idlj给我们⽣成很多⽂件,⾸先我们来看⼀下UML图:上⾯的图不涉及⼯具类CalcHelper和CalcHolder,这两个类的作⽤在后⽽阐述。

package com.bes.corba.test;/*** com/bes/corba/test/_CalcStub.java .* 由IDL-to-Java 编译器 (可移植), 版本 "3.2"⽣成* 从Hello.idl* 2016年2⽉15⽇星期⼀下午09时08分34秒 CST*/public class _CalcStub extends org.omg.CORBA.portable.ObjectImpl implements com.bes.corba.test.Calc{public void add (int a, int b, org.omg.CORBA.IntHolder c){org.omg.CORBA.portable.InputStream $in = null;try {org.omg.CORBA.portable.OutputStream $out = _request ("add", true);$out.write_long (a);$out.write_long (b);$in = _invoke ($out);c.value = $in.read_long ();return;} catch (org.omg.CORBA.portable.ApplicationException $ex) {$in = $ex.getInputStream ();String _id = $ex.getId ();throw new org.omg.CORBA.MARSHAL (_id);} catch (org.omg.CORBA.portable.RemarshalException $rm) {add (a, b, c );} finally {_releaseReply ($in);}} // addpublic void sub (int a, int b, org.omg.CORBA.IntHolder c){org.omg.CORBA.portable.InputStream $in = null;try {org.omg.CORBA.portable.OutputStream $out = _request ("sub", true);$out.write_long (a);$out.write_long (b);$in = _invoke ($out);c.value = $in.read_long ();return;} catch (org.omg.CORBA.portable.ApplicationException $ex) {$in = $ex.getInputStream ();String _id = $ex.getId ();throw new org.omg.CORBA.MARSHAL (_id);} catch (org.omg.CORBA.portable.RemarshalException $rm) {sub (a, b, c );} finally {_releaseReply ($in);}} // subpublic void multi (int a, int b, org.omg.CORBA.IntHolder c){org.omg.CORBA.portable.InputStream $in = null;try {org.omg.CORBA.portable.OutputStream $out = _request ("multi", true);$out.write_long (a);$out.write_long (b);$in = _invoke ($out);c.value = $in.read_long ();return;} catch (org.omg.CORBA.portable.ApplicationException $ex) {$in = $ex.getInputStream ();String _id = $ex.getId ();throw new org.omg.CORBA.MARSHAL (_id);} catch (org.omg.CORBA.portable.RemarshalException $rm) {multi (a, b, c );} finally {_releaseReply ($in);}} // multipublic void div (int a, int b, org.omg.CORBA.IntHolder c){org.omg.CORBA.portable.InputStream $in = null;try {org.omg.CORBA.portable.OutputStream $out = _request ("div", true);$out.write_long (a);$out.write_long (b);$in = _invoke ($out);c.value = $in.read_long ();return;} catch (org.omg.CORBA.portable.ApplicationException $ex) {$in = $ex.getInputStream ();String _id = $ex.getId ();throw new org.omg.CORBA.MARSHAL (_id);} catch (org.omg.CORBA.portable.RemarshalException $rm) {div (a, b, c );} finally {_releaseReply ($in);}} // div// Type-specific CORBA::Object operationsprivate static String[] __ids = {"IDL:com/bes/corba/test/Calc:1.0"};public String[] _ids (){return (String[])__ids.clone ();}private void readObject (java.io.ObjectInputStream s) throws java.io.IOException{String str = s.readUTF ();String[] args = null;java.util.Properties props = null;org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init (args, props);try {org.omg.CORBA.Object obj = orb.string_to_object (str);org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl) obj)._get_delegate (); _set_delegate (delegate);} finally {orb.destroy() ;}}private void writeObject (java.io.ObjectOutputStream s) throws java.io.IOException{String[] args = null;java.util.Properties props = null;org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init (args, props);try {String str = orb.object_to_string (this);s.writeUTF (str);} finally {orb.destroy() ;}}} // class _CalcStub_CalcStub是存根类,有过远程调⽤编程经验的读者应该对这个词⽐较熟悉,它是远程对象在本地的⼀个代理(Proxy)。

CORBA技术

CORBA技术

4 通过值传递对象
与异步消息服务类似,缺乏通过值来传递对象的能力也是CORBA规范的一大漏洞。CORBA允许数据类型(如整型、结构和数组等)在网络上作为操作参数或者返回结果进行传输。当客户请求某个对象提供的服务时,过去的CORBA版本只允许将目标对象的引用传递给客户,客户根据该引用与目标对象建立连结。由于目标对象不在客户方,所以客户所发出的每个请求和相应的执行结果都必须通过网络进行传输。当客户与目标对象交互频繁时,这无疑会大大增加网络负载,并且影响系统的可靠性。
3) CORBA消息服务
多年来,不少CORBA的研究者和供应商都认为,缺乏对异步消息的强有力支持是CORBA规范的一大漏洞。异步消息较好地解决了大规模分布式系统中协作实体和协作基础设施的不可靠问题。特别是近年来,网络中的便携式计算机和其它手持设备的数量不断增加,协作实体之间的连接中断已经成为常见而又正常的现象。异步消息服务机制在具有这种特征的系统中显得尤为重要。由于缺乏对异步消息服务的支持,与其它的开放式分布处理标准/规范(如RM-ODP)比较,CORBA在支持大规模分布式处理方面已经相形见绌[8]。CORBA消息服务规范就是在这种背景下应运而生的。它的主要内容包括:异步消息服务、与时间无关的调用和消息服务的服务质量。
IDL编译器将Valuetype翻译为宿主语言(如C++和Java等)的类。从这个意义上可以认为,支持Valuetype参数的传递也就等于支持通过值传递对象。但是,需要特别注意的是,CORBA3.0不支持通过值传递“真正的CORBA对象”。从前面的内容可知,虽然Valuetype支持界面类型,但它本身不是真正的CORBA对象,而仅仅是OMG IDL的一个新的数据类型而已。当真正的CORBA对象作为一个远程请求操作的参数时,只能传递它的对象引用。由此可知,CORBA3.0尚未彻底解决有关通过值传递对象的问题。

一个用Java实现的CORBA式客户机/服务器程序

一个用Java实现的CORBA式客户机/服务器程序

2 u0 2
文章编号:0 51 9 ( 02 0 —0 60 1 0— 00 20 ) 100  ̄ 2

个用 Jv aa实现 的 C R A 式客户机/E O B H 务器程序
李丽萍
( 宁工学院 计算机系, 宁 锦州 辽 辽 11 0 ) 2 0 1

要: 介绍 了C B 概念 与模型 ; 为实例 . 写了一个 用 Jv OR A 作 编 aa实现 的客 户机 / 服务器应用程序 。
F X 及 以上 、 p n O e VMS DgtlU nx P一 或 AI 、 ii i I UX a 、


等。 这意 味着 我们可 以在 Widws8下运 行 Jv no 9 aa应 用程序 , 同时动态 调 入 并使 用 c 对 象 , 实 际上 , 而 该 对 象 可能 存储 于一 个 在 It nt 的 Unxwe ne e 上 r i b
(R ObetR qetB oe) 一 个 运 营 对 象 )B( j eus rkr 是 c 的总线标 准 : 支持 对象之 间透 明地交 流 , 即逻辑上 的 交流 。 为 创建一个 遵从 C B 规范 的应 用程序 , OR A O B是 c B 四大部 分 中惟一 必须 提供 的 。许多 R OR A O B R 版 本 根 本 不 带 C R ASri s或 是 c R O B ev e c O —
ቤተ መጻሕፍቲ ባይዱ
Ke r s: ywo d COR BA ;a a dsrb e p l ain J v  ̄ i itd a pi to t c Ab ta t sr c :Th o c p ina dmo e o ec n e t n d l fCORB 8 eito u di hs a e ; l n / e v ra piain o A r r d a t i p p r ac e tS r e p l to n n i c p o rm a ai c mp ̄da h rci l x r p rg a i J v o i st e p at a an  ̄. n s c e

CORBA 体系结构

CORBA 体系结构

CORBA 体系结构摘要:CORBA 规范被称为是面向21世纪的软件总线,已经成为流行的分布对象计算规范。

本文重点分析了CORBA的体系结构和实现机制, 详细描述了ORB 的体系结构和CORBA 的运行流程,并给出了一个利用CORBA实现c++和java 混合编程的实例。

一、CORBA 简介CORBA 是OMG 定义的分布式应用程序的标准结构。

它的目的是为了简化开发分布式应用程序的复杂性,用于创建一个基于对象的跨平台的分布式结构。

为了实现上述目标,OMG 组织制定了OMA(Object Management Architecture , 对象管理体系结构) 参考模型。

该模型描述了OMG 的规范所遵循的概念化的结构基础,其核心部分是ORB (Object Request Broker , 对象请求代理) 。

基于ORB 机制就可以充分利用分布的、可以互操作的对象构造和可以互操作的应用。

这种优势是明显的,用户可以在不了解实现交互细节的情况下,建立共享资源的应用。

CORBA 是一个透明的中介分布式对象标准,遵循CORBA 标准编写的分布式对象可以在许多平台中执行。

以C + + Builder5. 0 中所使用的Inprise 公司的VisiBroker 为例,目前其所支持的平台有Windows 95/ 98 , Windows NT , Solaris , HP - UX ,IBM AIX ,SGI , IBM 390 以及Dec。

此外CORBA也是一个语言无关的对象标准,同样可以使用多种语言来开发CORBA 对象及客户端应用程序,甚至可以混合各种语言来开发CORBA 应用系统。

二、CORBA 的体系结构1、CORBA 的体系结构与实现机制在CORBA 应用系统中主要分为两部分:一是位于应用程序服务器中的CORBA 对象,另一个是应用使用的客户程序。

这些客户程序通过CORBA 技术使用CORBA 对象提供的服务来完成其工作。

Corba的原理和实现与IDL

Corba的原理和实现与IDL

Corba的原理和实现编写人:杜航航编写时间:2011/1/18目录引言 (3)1 CORBA历史 (3)2 Corba的原理和特性 (4)2.1 CORBA体系结构 (4)3 IDL(Interface Definition Language) (5)3.1 OMG IDL的语法规则 (6)3.2 OMG IDL词法规则 (6)3.3 数据类型 (6)3.4 常量 (7)3.5 构造数据类型 (7)3.6 数组类型 (7)3.7 模板(template)类型 (7)3.8 接口(interface) (8)4 java环境下的Corba实现 (8)4.1 环境 (8)4.2 编码 (8)4.2.1 IDL接口定义和实现 (8)4.2.2 接口实现类的编码 (9)4.2.3 服务器端编码 (9)4.2.4 客户端编码 (10)4.3 运行 (10)引言爱立信的很多产品都广泛采用Corba协议作为系统集成的标准接口,比如OSS产品内部是Corba,OSS和NBI以及NBI和综合网管之间也是corba接口。

因此研究一下Corba接口对以后的工作会有极大的帮助。

1 CORBA历史CORBA是由OMG(Object Management Group)负责制定和维护的一组规范。

OMG成立于1989年,是一个非营利的国际性软件组织,主要致力于为分布式计算提供解决方案并制定规范。

除CORBA外,OMG还制定了如UML(United Modeling Language, 统一建模语言)、CWM等其他重要规范。

OMG目前已有世界上760多个成员,东南大学是中国唯一的OMG成员。

CORBA自1990提出并被OMG采纳以来,已历经多个版本。

分别称为CORBA 1、CORBA 2和CORBA 3。

其中CORBA 1是对CORBA 1.x的统称,CORBA 2是对CORBA 2.x的统称。

目前CORBA 3规范还在制订中,不久便可面世。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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提供了动态绑定和接口升级等机制,能够方便地扩展和更新系统。

2. 缺点
- 学习曲线较陡峭:CORBA的概念和机制较为复杂,需要一定的学习成本。

- 性能受限:由于CORBA使用了网络通信,因此在性能方面可能存在一定的延迟。

- 配置复杂:使用CORBA需要进行一系列的配置和部署工作,增加了系统的复杂性。

四、总结
Java CORBA是一种基于Java语言的分布式对象技术,通过定义标准接口和协议,实现不同平台、不同语言的对象之间的通信和交互。

它的核心是对象请求代理(ORB),它充当了分布式对象之间的中间人角色。

使用Java CORBA需要定义IDL接口、编译IDL文件、实现接口、编译和打包、启动ORB、注册对象以及进行远程调用等步骤。

Java CORBA具有跨平台、跨语言、高性能和可扩展性等优点,但也存在学习曲线陡峭、性能受限和配置复杂等缺点。

对于需要实现分布式对象通信和交互的应用场景,Java CORBA是一种值得考虑的技术方案。

相关文档
最新文档