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 互操作

关联

  • 与 CORBA、分布式系统、Java RMI 等概念相关
  • 本章为后续各章(智能代理第16章、位置服务第17章、命名服务第18章、接口库第21章等)做铺垫