Internet/Extranet三 层 应 用 系 统 的
设 计 与 实 现

董 山 徐 海 燕

返回


---- 目 前, 基 于Internet/Extranet 的 三 层 应 用 系 统 正 在 日 益 广 泛 地 实 施, 由 于 这 项 工 作 涉 及 大 量 新 思 想、 新 技 术, 因 而, 如 何 以 一 种 正 确 的 思 路, 针 对 具 体 应 用 的 特 点, 选 择 有 效 的 实 施 方 法 已 经 显 得 越 来 越 重 要。 本 文 从 系 统 方 案 设 计、 开 发 步 骤、 应 用 技 巧 三 个 方 面 加 以 论 述, 希 望 能 给 从 事 相 关 工 作 的 人 员 提 供 一 定 的 借 鉴 或 启 示。

方 案 设 计

 

----在 设 计 系 统 时, 应 从 以 下 五 个 方 面 分 别 加 以 考 虑:

----1. 根 据 系 统 的 实 际 需 要 选 择 应 用 结 构

----相 比 较 而 言, 两 层 结 构 是 以 工 作 组 或 部 门 方 式 工 作, 客 户 端 数 量 在 可 控 制 的 范 围 之 内, 所 需 处 理 的 事 务 数 量 也 可 以 预 计, 并 且 平 台 也 是 已 知 的。 而 三 层 结 构 主 要 是 基 于Internet/Extranet 的 架 构 之 上, 用 于 解 决 不 可 预 计 的 客 户 端 和 事 务 数 量。 三 层 应 用 的 原 则 是 将 应 用 逻 辑 封 装 或 划 分 在 对 象 当 中, 并 将 对 象 放 置 于 专 用 的 服 务 器 上, 然 后 从 专 用 服 务 器 上 接 受 来 自 客 户 端 的 请 求 并 进 行 处 理, 这 样 就 避 免 了 两 层 结 构 中 不 容 易 对 客 户 端 应 用 程 序 升 级 改 造、 客 户 端 投 资 大、 缺 乏 集 中 控 制 和 数 据 库 负 担 过 重 等 问 题, 而 且 通 过 组 件 方 式 还 能 实 现 有 效 的 重 用 等。

----2. 确 定 客 户 端 应 用 方 式

----在 选 择 采 用 三 层 应 用 结 构 之 后, 需 要 确 定 客 户 端 的 应 用 方 式。 我 们 可 以 选 择 浏 览 器 或 自 定 义 应 用 界 面 方 式, 如 果 客 户 端 采 用 浏 览 器, 那 么 整 个 系 统 应 用 方 式 就 变 为: 浏 览 器 ->Web Server ->Application Server ->DBMS; 如 果 客 户 端 采 用 自 定 义 应 用 界 面, 那 么 整 个 系 统 应 用 方 式 就 变 为: 客 户 端 应 用 - >Application Server ->DBMS。 这 两 者 当 中, 浏 览 器 方 式 可 以 实 现 完 全 的“ 瘦 客 户” 端 应 用, 而 自 定 义 应 用 界 面 可 以 根 据 应 用 的 需 要 提 供 更 多 的 功 能。

----3. 进 行 客 户 端 和 中 间 层 之 间 的 应 用 逻 辑 划 分

----在 确 定 客 户 端 应 用 方 式 后, 要 进 行 客 户 端 和 中 间 层 之 间 的 应 用 逻 辑 划 分。 通 常, 客 户 端 主 要 完 成 接 受 用 户 输 入, 校 正 输 入 是 否 符 合 规 范, 提 示 用 户 确 认 等 功 能; 中 间 层 主 要 完 成 取 得 相 关 数 据, 进 行 复 杂 逻 辑 处 理 等 工 作, 并 可 提 供 对 各 种 异 构 环 境 下 的 客 户 端 的 支 持 和 应 用 逻 辑 的 重 用 等 功 能。

----4. 确 定 前 端、 中 间 层 的 实 现 方 式

----我 们 可 以 依 据 应 用 逻 辑 的 具 体 划 分 选 择 前 端、 中 间 层 的 具 体 实 现 方 式。 在 客 户 端, 用 户 可 以 采 用HTML、 JavaScript 或 组 件 方 式(Java applets、ActiveXs、Plug ins) 来 实 现 相 应 的 逻 辑; 在 中 间 层, 用 户 可 采 用JavaScript 或 组 件 方 式 实 现 相 应 的 逻 辑。 其 中, 各 种 方 式 在 适 用 的 情 况 和 实 现 的 难 易 程 度 上 各 有 优 缺 点, 例 如HTML、JavaScript 能 够 实 现 的 功 能 有 限。 而 对 于Java applets、 ActiveXs、Plug ins 这 几 种 组 件 方 式 来 说,Java applets 需 要 下 载 到 客 户 端 执 行, 如 果 下 载 量 过 大, 则 会 花 费 较 多 时 间;ActiveXs 只 适 用 于Windows 平 台,Plug ins 方 式 需 要 预 先 安 装。 所 以, 应 根 据 系 统 的 具 体 情 况 选 择 适 宜 的 实 现 技 术。

----5.Web 方 案 的 选 择

----Web 站 点 资 源 存 储 方 式 可 以 设 计 成 文 件 方 式 或 数 据 库 方 式。 文 件 方 式 易 于 实 现, 不 需 要 额 外 的 软 件, 而 数 据 库 方 式 支 持 动 态 内 容、 事 务 管 理 等 功 能; 在Web 站 点 结 构 上 可 选 择 静 态Web 站 点、 动 态Web 站 点 和Web 上 进 行 联 机 事 务 处 理(OLTP) 这 几 种 方 式, 这 些 都 可 以 用 各 种 相 关 工 具 和 中 间 层 软 件 加 以 实 现; 同 时, 在Web Server 和Application Server 之 间 可 以 选 择 各 种 相 应 的 接 口 标 准, 如CGI、ISAPI、NSAPI, 其 中CGI 对 每 一 个HTTP 请 求 都 将 激 活 一 个 相 应 进 程, 系 统 资 源 消 耗 稍 大;ISAPI、NSAPI 效 率 比 CGI 高, 但 开 发 时 要 考 虑 线 程 同 步 问 题, 开 发 难 度 稍 大 一 些。

开 发 步 骤

 

----如 果 用 户 选 择 的 是 分 布 式 三 层 应 用 的 方 式, 则 基 本 开 发 过 程 如 下:

----1. 在 中 间 层 用 各 种 工 具( 如PowerBuilder) 开 发 组 件, 实 现 相 应 的 中 间 层 逻 辑( 包 括 对 后 台 数 据 库 的 访 问), 然 后 提 交 给Application Server;

----2. 在 客 户 端 则 需 要 首 先 同 中 间 层 取 得 连 接, 然 后 生 成Proxy 对 象, 并 进 行 初 始 化, 之 后 就 可 以 调 用 中 间 层 各 组 件 的 相 应 方 法 进 行 处 理, 来 完 成 提 供 给 用 户 的 各 种 功 能。 对 于 客 户 端 而 言, 应 用 程 序 只 需 进 行 相 应 的 调 用, 其 他 工 作 由Application Server 来 完 成( 见 图)。

----如 果 用 户 选 择 的 是 基 于 浏 览 器 的 三 层 应 用 方 式, 中 间 层 的 开 发 过 程 基 本 同 上, 但 增 加 了 用Powersite 来 实 现 各 种 页 面, 页 面 中 可 嵌 入HTML  Datawindow 等。 由 于 它 是 基 于 浏 览 器 的, 所 以 无 需 客 户 端 的 开 发。

应 用 技 巧

 

----如 何 将 大 量 已 有 的 两 层 应 用 移 植 到 三 层 应 用 中 ? 其 主 要 思 路 就 是 将 两 层 中 前 端 的 应 用 逻 辑 移 植 到 中 间 层, 然 后 在 客 户 端 进 行 调 用。 这 样, 通 过 中 间 层 的Application Server, 就 可 以 实 现 重 用、 事 务 管 理、 性 能 优 化 等 工 作。

----如 何 重 用 已 有 的Datawindow ? 只 需 要 在 客 户 端 定 义 相 应 的Datawindow 的Proxy 对 象 或 生 成 相 应 的HTML Datawindow 即 可。

----同 时, 在 三 层 应 用 开 发 过 程 中 亦 要 坚 持 良 好 的 开 发 规 范, 例 如 画 出 良 好 的 页 面 及 导 航 图, 以 及 相 应 的 页 面 详 细 设 计 等, 这 样 才 能 够 保 证 高 效、 有 序 的 开 发 和 管 理。