《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.javaJava 接口声明,从 IDL 接口直接映射,客户端与服务框架双方实现
exampleHelper.java抽象类,为生成的 Java 接口提供静态实用方法
exampleHolder.javaHolder 托架类,为传递 out / inout 参数提供容器
exampleOperations.java定义接口方法,客户端与服务端共用;与 Tie 类组成纽带(delegation)机制
examplePOA.java服务端对象框架代码(实现基类)
examplePOATie.java用纽带机制实现服务端对象的类

知识点归纳

  1. Stub/Helper/Holder/POA/Tie 五件套是 OMG IDL-to-Java 映射的标准产物,理解这套结构等于理解了 Java CORBA 编程的骨架:客户端面向 Stub+接口编程,服务端继承 POA 或通过 Tie 委托组合实现。
  2. Holder 类存在的原因:Java 没有引用传递,out/inout 参数需要 Holder 对象作为可变装箱器。
  3. Operations 接口 + Tie 类的意义:让服务端实现可以不用继承 POA(Java 单继承限制),改用组合方式委托,这就是”纽带机制(delegation mechanism)”。
  4. 本章属于工具参考性质的目录页/节选合并版(该书按章拆成 50+ 个小 PDF 文件存放),实际代码示例片段在 PDF 中有截断。

关联

  • 同目录还有第34章”IDL到Java的映射”(队列中其他分片文件)
  • CORBA/RPC 主题可与 Solaris进程间通信IPC实验教程(Doors = IPC+RPC 综合)互为参照
  • 该书其余章节文件(1.pdf ~ 52.pdf)均在队列中按分片排列,如需整书消化可按目录聚合