摸索CORBA技术的操纵范围[Java编程]
本文“摸索CORBA技术的操纵范围[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
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 的输出目录下.
以上是“摸索CORBA技术的操纵范围[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |