探索CORBA技术的应用领域

6 月份,我们谈过您为什么要使用 CORBA 和 Java 技术。本月,我要通过一个可用的简单示例,让您开始探索 CORBA 技术的许多领域。不过,别忘了我们的目标是,创建这样一种分布式应用程序:使驻留在一台计算机上的客户机能向运行于另一台计算机上的服务发出请求。我们不想为诸如硬件或操作系统软件等细节问题操心,而只是想让这种服务能响应客户机的请求。

IDL 接口

全部 CORBA 结构是从一个接口开始的,理解接口的最佳方法就是想像我的汽车,对,我的汽车。虽然您不熟悉它,但如果我对您说:“开上我的车,带些三明治回来当午餐”,恐怕您就不会怀疑自己能不能驾驶我的汽车。您可能想知道它停在哪里,以及开它是否安全,但是您会确信开我的车与开您的车差别不大。这是因为,在各种汽车当中,人与汽车之间的接口已高度标准化了。我的轿车和您的跑车之间可能会有一些差异,但汽车的油门踏板、刹车和方向盘的安装都是标准的,您一定能轻松快速上路。

因为 CORBA 与语言无关,所以它依靠一种接口定义语言 (IDL),来表达客户机如何向实现接口的服务发出请求。我们的接口就是一个方法:add()。这个方法将取两个数(两个 IDL 的 long 型数)并返回这两个数之和。下面是我们的接口计算程序:

清单 1. calcsimpl.idl

module corbasem {
  module gen {
   module calcsimpl {
     interface calculator {
      long add(in long x, in long y);
     };
   };
  };
};

这个接口中的 IDL 关键字有:module、interface、long 和 in。IDL 使用关键字 module 来创建名称空间,并且此关键字准确地映射为 Java 关键字 package。运行 IDL-to-Java 编译器时,生成的 Java 文件将会存到名为 calcsimpl 的子目录中。IDL 关键字 interface 完美地映射为 Java 接口,并代表一种抽象类型,因为两者都只定义您与对象通讯的方式,而不涉及对象的实现。IDL 关键字 long 是一种基本的整数类型,它至少映射为一个 4 字节的类型,这种类型在 Java 代码中就是 int。

想一想执行远程方法调用的机制,您就会发现定义参数传递的方向(客户机到服务器、服务器到客户机或者双向传递)是多么的有意义。在 IDL 操作中,这些方向用 in、out 和 inout 关键字来声明,每个参数都必须声明方向,以便使对象请求代理程序 (ORB) 知道该参数的去向。这会影响到为发送而进行的参数打包、参数解包以及内存管理。ORB 对参数了解得越多,它的效率就越高。关键字 in 表明 long x 和 long y 是从客户机传递到服务器。

图 1. 参与 CORBA 请求的各个部分

IDL 编译器 需要 IDL 编译器吗?

您可能已经有了 ORB 供应商和 IDL-to-Java 编译器。但如果还没有,您从哪里获取呢?这里有好多,而且有些还可以免费下载。我推荐 Object Oriented Concepts, Inc. 的 Orbacus ORB。如果不将其用于商业目的,它还可以免费下载,而且完全符合 CORBA 2.3 规范。另外一个可试用 60 天的编译器是 Inprise 的 Visibroker,也完全符合 CORBA 2.3 规范并且可下载。如想获得这两种产品,请参阅参考资料。

接口定义以后,必须在 ORB 供应商提供的 IDL-to-Java 编译器上运行。IDL 编译器是一种精巧的实用程序,它生成 IDL 的 stub 和 skeleton 以及其它支持文件。生成的这些源文件,大部分将增强 CORBA 标准中定义的特定 IDL 类型的打包功能。编译器将生成大部分网络探测 (plumbing),这在分布式系统中非常重要。在最基本的级别中,IDL-to-Java 编译器只是一个按 CORBA 2.3 规范的定义来实现从 IDL 到 Java 语言映射的程序。手动生成这些代码既枯燥又费时,还容易出错;IDL-to-Java 编译器会处理这一切,所以您就不用操心啦;同时,它会用一定的规则约束您,并强制您执行封装。IDL-to-Java 编译器将把 CORBA-land 规则强加给您的系统。

输入下面的命令,从 Orbacus 执行 IDL-to-Java 编译器,把所有生成的文件都放在 CLASSPATH 的输出目录下。

时间: 2025-01-19 12:54:21

探索CORBA技术的应用领域的相关文章

开放共享:网商银行的运营探索及技术支撑

本文作者:网商银行首席信息官  唐家才 正文 我国经济正处于"三期叠加"的新常态,传统经济动能减速,经济增速放缓,消费经济和产业经济的升级迫在眉睫,创新创业(简称双创)正在迸发市场活力,以"互联网+"为代表的新经济业态正在超预期发展.全社会涌现了大批的双创者,他们在利用互联网技术与平台,创新产品与服务,注重客户体验,促进社会消费的供给侧改革.以这批双创者为代表的小微客群正在成长为国民经济的主力军之一,他们是当前金融需求最旺盛的一个客群.他们的需求呈现出"急

CORBA技术初探

一.概述 CORBA(Common Object Request Broker Architecture, 公共对象请求代理体系结构)是由OMG(对象管理组织,Object Management Group)提出的应用软件体系结构和对象技术规范,其核心是一套标准的语言.接口和协议,以支持异构分布应用程序间的互操作性及独立于平台和编程语言的对象重用. CORBA经过近十多年的发展,已逐步走向成熟,并成功地应用在我国许多大型的软件系统中,由此产生了对掌握CORBA技术的软件开发人员的大量需求.在此,

探索CORBA对象生命周期之CORBA对象

我们知道,POA规范定义CORBA对象为具有标识.接口和实现的抽象实体.从客户机的角度来看,对象表示为对象引用,对象引用封装了对象接口类型和标识,并包含足够的信息来定位对象的实现.但从服务器的角度来看又怎样呢? 1.伺服对象 POA规范引入了伺服对象(servant)的概念,使抽象的CORBA对象能和实现该对象功能的具体编程语言实体彻底分离.这样从服务器的角度来看, CORBA对象是作为伺服对象实现的.要记住CORBA是与编程语言独立的体系结构.伺服对象可实现为C++或Java类,也可以实现为一

深入探索CORBA对象生命周期之慨述

在服务器端,服务器的ORB在运行时从网络读取请求,并通过调用在第一个安装的消息拦截器上的receive_message( )开始处理请求.ORB用对象关键词以标识目标必须含有POA的名字,通过POA才能到达该对象.找到正确的POA后,下一步是寻找对象本身,这个工作如何完成取决于为对象的POA定义的策略.如果对象能够定位,ORB通过调用在第一个安装的请求拦截器上的target_invoke( )来继续处理请求,拦截器则使用DII函数invoke( )来依次继续处理请求,这在客户端中已经讨论过.这里

一个简单的 CORBA/java 示例

示例 6 月份,我们谈过您为什么要使用 CORBA 和 Java 技术.本月,我要通过一个可用的简单示例,让您开始探索 CORBA 技术的许多领域.不过,别忘了我们的目标是,创建这样一种分布式应用程序:使驻留在一台计算机上的客户机能向运行于另一台计算机上的服务发出请求.我们不想为诸如硬件或操作系统软件等细节问题操心,而只是想让这种服务能响应客户机的请求. IDL 接口 全部 CORBA 结构是从一个接口开始的,理解接口的最佳方法就是想像我的汽车,对,我的汽车.虽然您不熟悉它,但如果我对您说:"开

规则与自由:为何选择CORBA和Java技术

欢迎光临有关 Java 和 CORBA 技术的这一定期栏目.此第一期将概述 Java 和 CORBA 技术,并帮助您决定如何最有效地让它们为您工作.以后的栏目将提供 Java 和 CORBA 编程的内行指导和代码. 在 1855 年,时年 26 岁的 Joshua Chamberlain 是 Bowdoin 大学的修辞学教授,在一次演讲中讲述了规则与自由之间的关系,以及二者之间失衡带来的危害.没有自由的规则是专制,而没有规则的自由是混乱. 公司信息系统部门的管理可能会形成过度的规则或过度的自由.

共话大数据 2013大数据全球技术峰会召开

2013年4月26日,由51CTO传媒旗下WOT(World of Tech)品牌主办的"2013大数据全球技术峰会"在北京富力万丽酒店正式举办.本次峰会聚焦大数据技术,围绕大数据基础架构与上层应用的生态系统,探索大数据基础的解决方案,全面剖析了数据从产生到挖掘到最后被消费的整个过程. 本届峰会为期2天,吸引了全球1000多位大数据领域的专业人士.企业及政府用户.技术专家.行业分析师和媒体共聚一堂,共同交流大数据时代的机遇和挑战,探讨在传统企业应用.新兴行业拓展的创新. 工信部软件与服

用JAVA开发CORBA应用实例

应用实例 文章摘要: 通用对象代理体系结构CORBA(Common Object Request Broker Architecture)是对象管理组织所定义的用来实现现今大量硬件.软件之间互操作的解决方案,CORBA也是迈向面向对象标准化和互操作的重要一步. -------------------------------------------------------------------------------- 正文: 用JAVA开发CORBA应用实例 通用对象代理体系结构CORBA(C

实例讲解:Java中的SOAP技术

开始之前,我想就本文即将讨论的主题和读者需要具备的起点知识做一些必需的描叙.本文的主题是讨论SOAP技术,我们将尽可能的讲得通俗易懂一些,所以,我们引入了一个普通的"Hello World"范例来给读者说明它们是怎么运作的,让读者知道它们的运作方式.我认为,如果光看官方文档是很难开始学习这门新技术的,官方文档中包含大量的范例,并解释了所有的特性和优点,但是没解释它们的运作方式.在这篇文章中,我不打算只肤浅的解释SOAP技术的定义,我们假设读者熟悉JAVA语言,Web技术,具有XML语言