CORBA(Common Object Request Broker Architecture)是 OMG 制定的異構分布式對象互操作標準。本文系統梳理 CORBA產生背景、版本演進、體系架構核心組件、IDL/ORB/POA 關鍵機制,並對比 COM/DCOM、Java RMI/EJB 三大分布式對象技術流派,為技術選型提供參考。
一、產生背景:異構集成與 C/S 模式局限
- 企業級系統常集成不同廠商硬件、OS、數據庫、網絡協議 → 異構性導致互操作、兼容、平滑升級難題
- 傳統 C/S 模式:運行效率、網絡安全、系統擴展性受限
- OMG 提出 CORBA:以面向對象 + 中間件解決分布式計算環境 (DCE) 互聯問題
二、版本演進里程碑
| 時間 | 版本 | 關鍵特性 |
| 1990.11 | OMG Object Management Guide | 初步闡述 CORBA 思想 |
| 1991.10 | 1.0 | IDL、對象管理模型、動態請求 API、接口倉庫 |
| 1991.12 | 1.1 | 澄清二義性、引入對象適配器概念 |
| 1996.08 | 2.0 | IIOP 協議:不同廠商 ORB 真正互通 |
| 1998.09 | 2.3 | 異步實時傳輸、QoS 規范 |
| 2002.08 | 3.0 | 移除 MiniCORBA/實時 CORBA,簡化規范 |
當前主流產品(VisiBroker、Orbix、BEA)多支持 2.3/3.0。
三、CORBA 體系架構核心組件
架構圖:
圖 1 CORBA 平台組成結構
1. ORB (Object Request Broker) —— 軟總線核心
- 客戶端:提供 DII (Dynamic Invocation Interface) 動態調用、SII (Static Invocation Interface) 靜態調用(IDL 編譯生成 Stub)
- 服務端:提供 DSI (Dynamic Skeleton Interface) 動態骨架、SSI (Static Skeleton Interface) 靜態骨架(IDL 編譯生成 Skeleton)
- 任務:定位服務對象 → 通過 OA 傳遞調用 → 返回響應
2. OA (Object Adapter) —— 對象適配器
- BOA (Basic OA):早期簡單版,移植性差
- POA (Portable OA):2.2 版標準化,關鍵特性:
- 透明激活對象
- 單服務者支持多對象標識
- 多 POA 策略隔離
- 默認服務者委托機制
3. IDL (Interface Definition Language) —— 契約語言
- 定義接口,獨立於編程語言
- IDL 編譯器 → 目標語言映射(Java/C++/Ada/Smalltalk/COBOL)生成 Stub/Skeleton
- 運行時數據庫:IR (Interface Repository) 存儲 IDL 類型信息;IMR (Implementation Repository) 存儲服務器部署信息
4. 協議棧
- GIOP:通用 ORB 間協議,定義數據表示
- IIOP:GIOP 映射到 TCP/IP 的實例,實現跨網絡互操作
- IOR:可互操作對象引用,包含 IP、端口、對象鍵等定位信息
5. 服務層與設施層
| 層級 | 代表服務 |
| CORBA Services (核心服務) | 命名、事件、生命周期、關系、事務、並發控制、安全、持久化、查詢、屬性、許可證、時間... |
| CORBA Facilities (業務設施) | 打印、郵件、文檔管理、系統管理、組合文檔... |
四、三大分布式對象技術流派深度對比
特性矩陣
| 維度 | CORBA | COM/DCOM | Java RMI/EJB |
| 跨語言 | 優 (IDL 多語言映射) | 優 (COM 接口二進制標準) | 一般 (純 Java,JNI/JCA 橋接複雜) |
| 跨平台 | 優 (標準化協議) | 一般 (Windows 主導,第三方移植困難) | 優 (JVM 跨平台) |
| 網絡通訊 | 優 (IIOP/TCP/IP) | 一般 (DCOM 基於 RPC/ORPC) | 優 (JRMP/IIOP/RMI-IIOP) |
| 公共服務組件 | 優 (完整服務規范) | 一般 (MTS/COM+ 提供部分) | 優 (EJB 容器服務) |
| 事務處理 | 優 (OTS/JTS) | 一般 (MTS/COM+) | 一般 (EJB CMT/BMT) |
| 安全服務 | 優 | 一般 | 優 |
| 目錄服務 | 優 (Naming Service) | 一般 | 一般 (JNDI) |
| 產品成熟度 | 一般 | 一般 | 一般 |
| 廠商支持度 | 一般 | 優 (微軟全棧) | 優 (Sun/IBM/Oracle/紅帽) |
| 可擴展性 | 優 | 一般 | 優 |
流派特點總結
- CORBA:大而全、標準開放、互操作性最強、但規范龐大複雜、演進緩慢
- COM/DCOM:Windows 綁定、開發工具鏈成熟、效率高、跨平台是硬傷
- Java RMI/EJB:純語言跨平台、演進極快、EJB 容器提供企業級服務、與 CORBA 融合趨勢明顯 (RMI-IIOP、EJB-CORBA 互操作)
五、CORBA 應用前景與學習路徑
廣泛應用於銀行、電信、保險、電力、電商等關鍵領域。對象中間件市場群雄逐鹿(IBM、HP、BEA、Iona、Borland...)。
必懂 19 個核心概念速查
- CORBA:規范而非實現
- ORB:軟總線,定位+調用
- OA/POA:對象適配器,生命周期管理
- DII/DSI:動態調用/骨架接口
- IDL:接口定義語言,多語言映射
- SII/SSI:靜態調用/骨架接口
- Stub/Skeleton:客戶端存根/服務端骨架
- IR/IMR:接口/實現倉庫
- GIOP/IIOP:協議棧
- IOR:對象引用(含網絡地址)
- CORBA Services:核心中間件服務
- CORBA Facilities:業務級設施服務
掌握 CORBA 精髓在於理解「接口契約(IDL)+ 透明通訊(ORB/IIOP)+ 服務規范」三位一體的架構哲學,這也是現代微服務、Service Mesh 設計的濫觴。
- 上一篇文章: Java 基礎語法精講:變量命名規範、初始化規則與常量定義
- 下一篇文章: JDBC 數據源與 JNDI 完整指南:從硬編碼連接到企業級數據源管理
Copyright ©
程式碼之家 All Rights Reserved