Borland
Taiwan
  產 品 資 訊  |  網 路 資 源  |  軟 體 下 載  |  新 聞 群 組  |  用 戶 社 群  |  意 見 信 箱

航 向 N-Tier 的 主 從 架 構 世 界

Delphi 3.0 對 於 開 發 主 從 架 構 的 應 用 程 式 而 言 , 提 供 了 傲 人 的 功 能 。 自 從 我 在RUN!PC 上 介 紹 Delphi 3.0 以 來 大 部 份 的 時 間 是 著 重 於 它 的 新 功 能 於 N-Tier 的 主 從 架 構 和 ActiveX 元 件 方 面 。 事 實 上 Delphi 3.0 對 於 WEB Programming 方 面 的 支 援 也 有 非 常 突 出 的 表 現 , 只 是 我 並 沒 有 時 間 撰 寫 這 方 面 的 文 章 , 不 知 道 有 沒 有 人 願 意 撰 寫 一 些 有 關 如 何 使 用 Delphi 開 發 WEB 方 面 的 應 用 以 造 福 我 們 這 些 使 用 Delphi的 程 式 師 。

不 過 在 我 所 接 觸 的 許 多 使 用 Delphi 開 發 應 用 系 統 的 朋 友 來 說 , 他 們 更 重 視 的 是 如 何 能 夠 順 利 的 把 應 用 程 式 從 Delphi 2.x 昇 級 到 Delphi 3.0 。 許 多 朋 友 經 常 詢 問 我 的 問 題 便 是 雖 然 他 們 也 『 覺 得 』 N-Tier 的 架 構 是 未 來 的 趨 勢 , 但 是 由 於 他 們 目 前 開 發 的 應 用 系 統 還 是 二 層 式 的 傳 統 主 從 架 構 , 那 麼 還 需 要 使 用 任 何 Delphi 3.0 中 開 發 N-Tier 主 從 架 構 的 新 元 件 例 如 TclientDataSet 嗎 ? 如 果 現 在 他 們 希 望 能 夠 在 未 來 把 現 在 的 二 層 主 從 架 構 轉 換 為 N-Tier 的 架 構 的 話 , 那 麼 現 在 又 應 該 如 何 的 開 發 應 用 系 統 呢 ?

從 二 層 主 從 架 構 到 N-Tier 的 主 從 架 構

事 實 上 開 發 傳 統 的 二 層 主 從 架 構 應 用 程 式 和 開 發 N-Tier 的 主 從 架 構 應 用 系 統 並 沒 有 我 們 想 像 中 有 那 麼 大 的 差 距 。 Delphi 3.0 之 中 的 新 元 件 - TClientDataSet , TRemoteServer 和 Tprovider 並 不 只 是 可 以 使 用 於 N-Tier 的 主 從 架 構 之 中 , 在 我 們 開 發 傳 統 二 層 的 主 從 架 構 應 用 程 式 時 , 仍 然 可 以 使 用 它 們 。 這 是 因 為 在 三 層 的 主 從 架 構 中 , 我 們 可 以 把 中 間 的 應 用 程 式 伺 服 器 和 客 戶 端 的 應 用 程 式 安 裝 在 同 一 台 的 機 器 之 中 , 這 樣 的 主 從 架 構 在 邏 輯 上 雖 然 是 N-Tier 的 架 構 , 但 是 在 實 際 上 卻 是 二 層 的 主 從 架 構 應 用 程 式 。 那 麼 讓 應 用 程 式 伺 服 器 和 客 戶 端 應 用 程 式 於 相 同 的 機 器 中 執 行 時 有 什 麼 樣 的 現 象 呢 ? 我 們 可 以 從 下 面 的 敘 述 中 一 一 的 討 論 。

如 果 你 的 主 從 架 構 應 用 系 統 使 用 這 種 架 構 的 話 , 那 麼 除 了 在 每 一 台 的 客 戶 端 機 器 之 中 需 要 安 裝 客 戶 端 的 應 用 程 式 之 外 , 你 也 必 須 安 裝 應 用 程 式 伺 服 器 。 此 外 每 一 台 的 客 戶 端 機 器 之 中 仍 然 需 要 安裝 BDE/IDAPI 。 此 外 你 的 應 用 系 統 也 必 須 把 應 用 程 式 邏 輯 撰 寫 成 二 份 程 式 。 一 n個 客 戶 端 的 使 用 者 介 面 程 式 , 另 外 一 個 是 應 用 程 式 伺 服 器 。

從 上 面 的 說 明 中 你 可 能 會 覺 得 使 用 這 種 架 構 不 但 沒 有 享 受 到 N-Tier 主 從 架 構 標 榜 的 Thin-Client 端 的 好 處 , 還 必 須 費 功 夫 把 應 用 程 式 分 成 二 個 部 份 , 似 乎 更 麻 煩 了 , 那 麼 為 什 麼 還 要 考 慮 這 種 架 構 呢 ? 請 你 不 要 忘 記 我 們 前 面 在 討 論 這 種 架 構 可 能 性 的 時 候 是 因 為 要 讓 現 有 的 二 層 主 從 架 構 可 以 在 未 來 能 夠 順 利 的轉 換 為 N-Tier 的 主 從 架 構 。 那 麼 你 也 許 會 問 , 為 了 要 獲 得 這 個 彈 性 , 有 必 要 付 出 這 麼 大 的 代 價 嗎 ?

事 實 上 你 如 果 現 在 考 慮 使 用 這 種 架 構 來 開 發 你 現 在 的 主 從 架 構 的 話 , 那 麼 除 了 可 以 在 未 來 能 夠 較 為 順 利 的 轉 換 為 N-Tier 的 主 從 架 構 之 外 , 還 有 許 多 其 他 的 好 處 而 且 能 夠 克 服 以 往 在 Delphi 2.0x 版 本 中 一 些 不 易 完 成 的 工 作 。 所 以 是 有 許 多 好 處 的 。 那 麼 使 用 TClientDataSet 等 元 件 來 開 發 現 在 二 層 架 構 為 主 的 應 用 系 統 時 有 那 些 好 處 呢 ?

下頁