程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> CORBA 與Java 的結合使用

CORBA 與Java 的結合使用

編輯:JAVA編程入門知識

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 


  學 習 使 用CORBA 編 寫 訪 問 服 務 器 對 象 的 分 布 式Java 小 應 用
  ------------------------------------------------------------------------
  
  摘 要: 若 想 實 現Web 上 分 布 式 客 戶 機/ 服 務 器 模 式 的 應 用 程 序,可 以 選 擇 多 種 不 同 的 技 術。 但 是, 對於 必 須 服 務 於 大 量 用 戶 的應 用, 我 們 認 為 應 該 首 選CORBA, 因 為 它 具 有 可 擴 展 性 和 業 界 廣泛 的 支 持。由於CORBA 的 強 健 性 可 以 提 高Java 編 程 語 言 的 性 能, 利 用 已 有 的 基於 標 准 的 技 術,Java 開 發 者 可 以編 寫 出 功 能 強 大 的Web 應 用 程 序。 在 這 篇 文 章 裡, 我 們 首 先 簡 單 介 紹 一 下CORBA, 然 後 作 為 該 技術的 實 例, 我 們將 著 手 編 寫 一 個N 層 客 戶 機/ 服 務 器 應 用 程 序。 另 外, 在 附 文 中, 我 們 對 幾 種 分 布 式 對象 技 術 作 了 一 個 比 較, 它 們 分 別 是CORBA、RMI 和DCOM。
  
  利 用HTML 表 和 通 用 網 關 接 口(Common Gateway Interface), 用 戶 可 以 對Web 網 點 上 的 服 務 器 腳本 進 行 交 互 式 的 訪 問。 許 多 網 點 上 使 用這 種 技 術 提 示 用 戶 輸 入 用 戶 名 和 密 碼。 這 些 東 西 傳 入 服 務器腳 本 之 後, 用 於驗 證 該 用 戶 是 否 可 以 訪 問 網 點 中 的 某 一 部 分 內 容。 這 一 過 程用 到 了HTTP, 而 它 是一 種 無 狀 態(stateless) 的 協 議。 每 次 下 載 一個 頁 面, 客 戶 機 就 與 服 務 器 完 全 脫 離, 服 務 器 方 無 從得 知 客 戶機 的 信 息, 更無 法 知 道 脫 離 後 的 客 戶 機 正 在 進 行 的 動 作。 這 樣, 哪 怕 是 在 成功 的 登 錄 到 某一 網 點 之 後, 客 戶 程 序 每 查 詢 一 個 頁 面, 仍 需將 用 戶 名 和 密 碼 傳 向 服 務 器 方 進 行 重 復 的 認 證。 換句 話 說, 在你 的 客 戶 應 用程 序(Web 浏 覽 器) 和 服 務 器 應 用 程 序 之 間, 不 存 在 局 部 變 量、方 法 調 用 或 是對 象。
  
  經 過 數 十 年 的 努 力, 軟 件 開 發 者 們 幾 乎 可 以 成 功 地 將 代 碼 以對 象 的 形 式 加 以 封 裝。 但 是, 上 面 提到 的 現 象, 無 疑 表 明 了 我們 正 在 倒 退, 因 為 那 是 無 狀 態 的、 批 處 理 的 計 算 模 式。
  
  當 然,CGI 技 術 並 非 一 無 是 處。Web 給 我 們 帶 來 了 革 命 性 的 優 勢,那 就 是 基 於 標 准 的 開 放 協 議 和 與平 台 無 關 的 獨 立 性。 盡 管 成千 上 萬 的Web 網 點 使 用HTTP 和CGI 來 獲 得 用 戶 信 息、 在 服 務 器 上 運行 一段 腳 本、 甚至 還 可 能 向 用 戶 返 回 信 息, 但 是 從 傳 統 的 的 觀 點 看 來, 這 些 網點 並 不 能 算 是 真 正 的“ 應用 程 序”。 除 此 之 外, 由 於 新 技 術 的應 用(HTTP 和CGI), 所 有 這 些 網 點 的 代 碼 必 須 要 全 部 重 寫。 想 要對已 有 的Web 軟件 資 源 加 以 利 用, 或 是 編 寫 真 正 功 能 強 大 的 應 用 程 序, 使Internet/Intranet 成 為 通信 主 干, 所 使 用 的 技 術 必 須 具 有 以 下 特性:
  
  曋?持 現 有 的C、C + + 和COBOL 代 碼
  曋?持Java, 以 建 立 具 有 可 移 值 性、 平 台 獨 立 性 的 面 向 對 象 的 應用 程 序暽?業 中 立 性, 只 有 這 樣, 應 用程 序 才 易 於 維 護,且 不 會 被時 間
  淘 汰。
  暱?擴 充 性, 能 夠 支 持 大 {"C++, Java", "Java, Smalltalk, Ada95,
  C++", "Java, C++",
  "Java, C++", "Java, C++"},
  {"http://www.expersoft.com", "http://www.iona.com",
  "http://www.visigenic.com",
  "http://www.software.ibm.com/ad/cb",
  "http://www.sun.com/solaris/neo/solaris_neo/index.html"}};
  ORBQuery(String name) {
  super(name);
  }
  
  public java.lang.String GetName(int index)
  {
  String Name;
  Name = ORBVendors[index][0];
  return Name;
  }
  
  public java.lang.String GetVendor(int index)
  {
  String Vendor;
  Vendor = ORBVendors[index][1];
  return Vendor;
  }
  
  public java.lang.String GetOS(int index)
  {
  String OS;
  OS = ORBVendors[index][2];
  return OS;
  }
  
  public java.lang.String GetLanguages(int index)
  {
  String Languages;
  Languages = ORBVendors[index][3];
  return Languages;
  }
  
  public java.lang.String GetURL(int index)
  {
  String URL;
  URL = ORBVendors[index][4];
  return URL;
  }
  }
  
  至 此, 我 們 已 經 寫 好 了 所 有 服 務 器 方 必 需 的 代 碼, 下 一 步 的 工作 是 創 建 客 戶 小 應 用, 初 始 化 客 戶ORB,進 而 擊 活 並 調 用 剛 剛生 成 的 服 務 器 對 象。
  
  創 建CORBA 小 應 用
  
  正 如 服 務 器 對 象 要 向 服 務 器ORB 登 記 一 樣, 客 戶 端 小 應 用 或 應用 程 序 需 要 向 客 戶 機ORB 登 記。 當 要獲 得 遠 程CORBA 對 象 時, 客 戶機 采 用 了 一 種 間 接 的 方 法, 它 通 知 客 戶 機ORB 其 意 圖, 由ORB 負 責ORB 到ORB 的 通訊。 這 種 請 求 方 式 由 下 面 兩 行 代 碼 實 現( 在VisiBroker for Java 中):
  
  // 初 始 化 ORB ( 使 用applet)
  org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(this);
  // 檢 索applet 要 調 用 的 ORBInfo 接 口 對 象
  ORBInfoQuery= ORBQuery.ORBInfoHelper.bind(orb, "ORBInfo");
  
  執 行 了bind() 方 法 調 用 之 後, 我 們 的ORBInfoQuery 本 地 變 量 與 服 務器 的ORBInfo 對 象 綁 在 一 起。這 一 操 作 完 成 之 後, 我 們 就 可 以 調用 幫 助 方 法 來 實 現 客 戶 端 小 應 用。 記 住, 盡 管 示 例 中 我 們 完 全使用 了Java 語言, 但 實 際 上, 服 務 器 對 象 也 可 以 用 其 他 語 言 來 實 現, 如:COBOL、C + +、Ada 和Small talk。
  
  結 論
  
  與 單 純 的Java 小 應 用 相 比, 創 建CORBA Java 應 用 稍 顯 復 雜。 事 實 上, 這 同 樣 比 用RMI 創 建 純 粹 的Java 分 布 式 對 象 應 用 要 難 一 些。 但是,CORBA 和Java 的 聯 合, 所 創 建 的 應 用 程 序 功 能 更 為 強 大, 更 具可 擴充 性, 這 是單 純 用JDK 開 發 所 無 法 比 擬 的。 另 外, 現 實 是 企 業 界 很 少 使 用Java 應 用 程 序。CORBA 是 兩全 其 美 的 選 擇, 一 方 面 它 允 許 開 發 者利 用 已 有 的 代 碼 保 護 投 資, 另 一 方 面 又 可 以 充 分 發 揮Java 編程語 言 的 優 勢。
  
  分 布 式 對 象 另 外 兩 種 選 擇:DCOM 和RMI
  
  大 多 數Java 開 發 者 可 能 更 熟 悉DCOM 和RMI, 這 是CORBA 兩 個 主 要 的 競爭 對 手。 現 在 讓 我 們 對 三 者 做一 下 比 較。


 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved