《VisiBroker for Java 开发人员指南》第15章:使用 IDL
来源:田浩然上传的资料 / 电子书 / java / VisiBroker for Java开发人员指南 / 15.pdf(7页,文本型PDF,pdftotext 提取) 该书为 Inprise(原 Borland/Visigenic)VisiBroker for Java 的官方中文文档,全书分上篇程序员指南 + 下篇工具与服务参考。本篇是第五部分”工具与服务”的第15章。
核心主题
CORBA 接口定义语言(IDL)在 VisiBroker for Java 体系中的角色,以及 idl2java 编译器生成的桩/框架代码结构。
关键概念
IDL 的定位
- IDL 是描述性语言而非程序设计语言:只描述远程对象实现的接口(接口名、属性、方法名、参数类型、in/out/inout 方向)。
- IDL 文件写好后,用
idl2java编译器生成 Java 客户端桩(stub)与服务端框架(skeleton/POA)代码。 - VisiBroker 遵循 OMG 规范,语言映射细节不在书内重复,指向 OMG 站点(CORBA/IIOP 正式规范第24章定义了 IDL→Java 映射)。
idl2java 生成的代码族(一个 IDL 接口 example 生成 7 类文件)
| 生成文件 | 角色 |
|---|---|
_exampleStub.java | 客户端桩代码,在客户端实例化,实现 example 接口 |
example.java | Java 接口声明,从 IDL 接口直接映射,客户端与服务框架双方实现 |
exampleHelper.java | 抽象类,为生成的 Java 接口提供静态实用方法 |
exampleHolder.java | Holder 托架类,为传递 out / inout 参数提供容器 |
exampleOperations.java | 定义接口方法,客户端与服务端共用;与 Tie 类组成纽带(delegation)机制 |
examplePOA.java | 服务端对象框架代码(实现基类) |
examplePOATie.java | 用纽带机制实现服务端对象的类 |
知识点归纳
- Stub/Helper/Holder/POA/Tie 五件套是 OMG IDL-to-Java 映射的标准产物,理解这套结构等于理解了 Java CORBA 编程的骨架:客户端面向 Stub+接口编程,服务端继承 POA 或通过 Tie 委托组合实现。
- Holder 类存在的原因:Java 没有引用传递,out/inout 参数需要 Holder 对象作为可变装箱器。
- Operations 接口 + Tie 类的意义:让服务端实现可以不用继承 POA(Java 单继承限制),改用组合方式委托,这就是”纽带机制(delegation mechanism)”。
- 本章属于工具参考性质的目录页/节选合并版(该书按章拆成 50+ 个小 PDF 文件存放),实际代码示例片段在 PDF 中有截断。
关联
- 同目录还有第34章”IDL到Java的映射”(队列中其他分片文件)
- CORBA/RPC 主题可与 Solaris进程间通信IPC实验教程(Doors = IPC+RPC 综合)互为参照
- 该书其余章节文件(1.pdf ~ 52.pdf)均在队列中按分片排列,如需整书消化可按目录聚合