學習使用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, 進 而 擊 活 並 調 用 剛 剛生 成 的 服 務 器 對 象。

使用JAVA開發CORBA應用
  通用對象代理體系結構CORBA(Common Object Request Broker Architecture)是對象治理組織所定義的用來實現現今大量硬件、軟件之間互操作的解決方案,CORBA也是邁向面向對象標准化和互操作的重要一步。     ...查看完整版>>使用JAVA開發CORBA應用
 
使用JAVA開發CORBA應用
  通用對象代理體系結構CORBA(Common Object Request Broker Architecture)是對象管理組織所定義的用來實現現今大量硬件、軟件之間互操作的解決方案,CORBA也是邁向面向對象標准化和互操作的重要一步。  ■COR...查看完整版>>使用JAVA開發CORBA應用
 
使用JAVA開發CORBA應用
通用對象代理體系結構CORBA(Common Object Request Broker Architecture)是對象管理組織所定義的用來實現現今大量硬件、軟件之間互操作的解決方案,CORBA也是邁向面向對象標准化和互操作的重要一步。   ■CORBA技...查看完整版>>使用JAVA開發CORBA應用
 
用RMI和CORBA進行分布式Java編程
  Java遠程方法調用(RMI)機制和公用對象請求代理體系(CORBA)是最重要 和使用最廣泛的兩種分布式對象系統。每個系統都有其特點和短處。它們在行 業中被用于從電子交易到保健醫療的各個領域。一個項目假如要從這...查看完整版>>用RMI和CORBA進行分布式Java編程
 
用RMI和CORBA進行分布式Java編程
  Java遠程方法調用(RMI)機制和公用對象請求代理體系(CORBA)是最重要 和使用最廣泛的兩種分布式對象系統。每個系統都有其特點和短處。它們在行 業中被用于從電子交易到保健醫療的各個領域。一個項目如果要從這...查看完整版>>用RMI和CORBA進行分布式Java編程
 
用RMI和CORBA進行分布式Java編程
Java遠程方法調用(RMI)機制和公用對象請求代理體系(CORBA)是最重要 和使用最廣泛的兩種分布式對象系統。每個系統都有其特點和短處。它們在行 業中被用于從電子交易到保健醫療的各個領域。一個項目如果要從這兩種...查看完整版>>用RMI和CORBA進行分布式Java編程
 
用RMI和CORBA開發JAVA分布式程序
用RMI和CORBA開發JAVA分布式程序 RMI(遠程方法調用)和CORBA(通用對象調用代理架構)是兩個最重要,並廣泛應用的分布對象系統架構。每個架構都有優劣,這兩個架構沒應用到從電子商務到醫保系統等不同的領域。兩者...查看完整版>>用RMI和CORBA開發JAVA分布式程序
 
[2004-8-4]VB.Net學習筆記,使用ADO.Net對象訪問數據庫,將結果寫入ListView(高手莫入)
Public Class Form1 Inherits System.Windows.Forms.Form#Region " Windows 窗體設計器生成的代碼 " Public Sub New() MyBase.New() '該調用是 Windows 窗體設計器所必需的。 Initialize...查看完整版>>[2004-8-4]VB.Net學習筆記,使用ADO.Net對象訪問數據庫,將結果寫入ListView(高手莫入)
 
[2004-8-4]VB.Net學習筆記,使用ADO.Net對象訪問數據庫,將結果寫入ListView(高手莫入)
Public Class Form1 Inherits System.Windows.Forms.Form#Region " Windows 窗體設計器生成的代碼 " Public Sub New() MyBase.New() '該調用是 Windows 窗體設計器所必需的。 Initialize...查看完整版>>[2004-8-4]VB.Net學習筆記,使用ADO.Net對象訪問數據庫,將結果寫入ListView(高手莫入)
 
 
回到王朝網路移動版首頁