VisiBroker for Java 程序员指南 — 第2章 理解CORBA模型
来源:《VisiBroker for Java程序员指南》第2章,8页,文本型PDF提取。
一、CORBA 概述
CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)由 OMG(对象管理组)采纳,旨在解决分布式对象应用程序的复杂性与高成本问题。它采用面向对象方法创建可重用、可共享的软件组件,每个对象封装内部细节并提供良好界面,降低应用复杂度与开发成本。
ORB 核心角色
ORB(Object Request Broker,对象请求代理)是连接客户程序与目标对象的中间层。客户程序无需知道对象的物理位置或实现语言,只需了解对象名字与界面,ORB 负责查找对象、请求路由与返回结果。
关键认知:ORB 本身不是独立进程,而是集成在终端用户应用程序中的库与网络资源集合。
二、VisiBroker for Java 特性
VisiBroker for Java 完整实现 CORBA 2.3 规范,提供 ORB 运行环境与开发支持。通信采用 OMG 的 IIOP(Internet Inter-ORB Protocol)标准,保证高性能与互操作性。
关键特性清单
| 特性 | 说明 |
|---|---|
| 智能代理(osagent) | 动态分布式目录服务,提供负载均衡与高可用性;自动检测连接丢失并尝试故障转移 |
| 位置服务 | 从多个智能代理聚合信息,支持触发器回调机制,与拦截器组合实现增强负载均衡 |
| 对象激活监控(OAD) | 按需自动启动对象实现,支持延迟激活 |
| 线程管理 | 支持每会话线程模型与线程缓冲池模型;连接多路复用与复用已释放连接 |
| IDL 编译器 | idl2java(生成桩与框架)、idl2ir(写入接口库) |
| DII/DSI | 动态调用接口与动态框架接口,支持运行时动态创建/分派请求 |
| POA 支持 | 可移植对象适配器,支持伺服对象管理器、激活与持久化 |
| 拦截器与对象包装器 | 定制 ORB 行为,实现负载均衡、监控、安全性 |
| 命名服务 | 支持可接插后备存储,实现持久化与容错 |
| Web 命名 | URL 与对象引用关联 |
| java2iiop | 用 Java 定义接口替代 IDL,便于现有 Java 代码改造为 CORBA 互操作 |
| Gatekeeper | 可选特性,允许向 Web 服务器对象发出请求并接收回调,穿过防火墙 |
三、开发环境工具链
程序员工具
idl2ir:IDL 文件 → 接口库idl2java:IDL 文件 → Java 桩与框架java2iiop:Java 文件 → 桩与框架(不用 IDL)java2idl:Java 字节码 → IDL 文件
CORBA 服务工具
irep:管理接口库oad:管理对象激活监控进程nameserv:启动命名服务实例
管理工具
oadutil list/reg/unreg:管理 OAD 注册osagent:管理智能代理osfind:报告网络中运行的对象
四、环境要求
- JDK 1.1+:UDP广播查找智能代理、Gatekeeper、java2iiop/java2idl、按值传递、OAD
- JDK 1.1.8+:按值传递与 RMI/IIOP 结合使用对象
五、互操作性
- VisiBroker Java ↔ VisiBroker C++:共用同一 IDL 即可
- 与任何遵循 CORBA 规范的 ORB 产品通过 IIOP 互操作