|
航 向 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 等 元
件 來 開 發 現 在 二 層 架 構 為 主 的 應 用 系 統 時
有 那 些 好 處 呢 ?
下頁
|