首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

CORBA 與 Java 整合開發實戰:從 IDL 定義到 N 層分散式應用建構

     編輯:Java 程式設計入門

為何選擇 CORBA?

Web 早期 CGI/HTTP 無狀態模型導致每次請求需重複驗證,無法維持會話狀態。CORBA 提供:

  • 支援既有 C/C++/COBOL 代碼資產
  • Java 跨平台特性互補
  • 廠商中立、標準化、不被單一廠商綁架
  • 可擴展性支援大量用戶
  • 多平台支援(Solaris、Windows、HP-UX、AIX 等)
  • 物件導向開發模型
  • 端到端安全性
  • 廣泛產業支援(OMG 700+ 會員)

CORBA 核心架構 (OMA)

元件職責
ORB (Object Request Broker)物件通訊軟體總線,唯一必備元件
CORBA Services系統級服務:安全、命名、交易
CORBA Facilities應用級服務:複合文件等
Business Objects領域物件:飛機、銀行帳戶等

關鍵技術棧

  • IDL (Interface Definition Language):語言中立介面定義,編譯產生各語言 Stub/Skeleton
  • ORB:負責尋找遠端物件、參數編碼轉換、安全、動態啟動、回調等
  • IIOP (Internet Inter-ORB Protocol):TCP/IP 上的標準通訊協定 (CORBA 2.0+)

實戰範例:ORBQuery 小應用程式

步驟 1:定義 IDL 介面

module ORBQuery {
    interface ORBInfo {
        string GetName(in long index);
        string GetVendor(in long index);
        string GetOS(in long index);
        string GetLanguages(in long index);
        string GetURL(in long index);
    };
};

步驟 2:IDL 編譯產生 Java 碼

idl2java ORBInfo.idl

產生 8 個檔案:ORBInfo.java (介面)、_st_ORBInfo.java (Client Stub)、_sk_ORBInfo.java (Server Skeleton)、Helper/Holder/Operations/Tie/Example 輔助類別。

步驟 3:實作伺服器端

// ORBQuery.java - 實作介面,內含 ORB 廠商資料陣列
class ORBQuery extends _sk_ORBInfo {
    String[][] ORBVendors = { ... }; // 5 家廠商 x 5 屬性
    // 實作 5 個 GetXxx 方法回傳陣列資料
}

// Server.java - 向 ORB 註冊
public class Server {
    public static void main(String[] args) {
        ORB orb = ORB.init();
        BOA boa = orb.BOA_init();
        ORBQuery serverQuery = new ORBQuery("ORBInfo");
        boa.obj_is_ready(serverQuery);
        boa.impl_is_ready();  // 等待請求
    }
}

步驟 4:建立客戶端 Applet

// 初始化 ORB (Applet 環境)
ORB orb = ORB.init(this);
// 繫結遠端物件
ORBInfo query = ORBInfoHelper.bind(orb, "ORBInfo");
// 呼叫遠端方法
String name = query.GetName(0);

三大分散式物件技術對比

維度CORBADCOMRMI
語言中立✓ 全支援✓ (ODL)✗ 僅 Java
平台中立✓ 所有主流 OS✗ 僅 Win95/NT (擴展中)✓ JVM 平台
廠商中立✓ OMG 標準✗ Microsoft 單一控制✗ Sun 單一控制
互操作性✓ IIOP 跨 ORB✗✗
瀏覽器部署✓ Java ORB 動態下載✗ 需 IE + Win✓
效能優 (C++ 伺服器)良較差 (JVM 開銷)
成熟度高 (1994 年 2.0 版)低中
成本商業 ORB 收費Win 用戶免費免費 (JDK 內建)

結論與趨勢

  • CORBA + Java = 保護既有投資 + 發揮 Java 優勢,企業級整合首選
  • RMI 適合純 Java 小規模應用,但缺乏服務概念、物件啟動、跨語言能力
  • Sun 已宣佈 JTS 基於 OTS,RMI 未來將支援 IIOP,趨向標準匯流
  • 技術選型必須權衡:現有資產、擴展需求、團隊技能、長期演進
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved