荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Minatl (Minatl), 信区: Program
标  题: Borland 的MIDAS 技 术 (转摘)?
发信站: BBS 荔园晨风站 (Wed Jan 20 18:47:50 1999), 转信







Borland 的MIDAS 技 术

--------------------------------------------------------------------------------

概 述
---- Borland 自 从 推 出 了Delphi 之 后, 深 受 程 序 设 计 人 员 的 青 睐。
Delphi 的 每 一 个 新 版 本 都 给 用 户 提 供 了 更 新、 更 好 的 功 能。 例 如
,Delphi 1.0 版 本 给 用 户 提 供 了 一 种 全 新 的 可 视 化 编 程 环 境, 使 用
 户 能 快 速 开
发Windows3.1 的 应 用 程 序。Delphi 2.0 中 增 加 了 数 据 模 块 (Data Module) 等
 多 种 高 效 的 数 据 重 用 功 能。 现 在 第 三 代 版 本Delphi 3 — — 多 层 结
 构 的32 位 快 速 开 发 工 具 又 给 开 发 人 员 带 来 了 全 新 的 多 层 结 构 概
 念。
---- 早 在1980 年 第 一 个 数 据 库 管 理 系 统 出 现 时, 数 据 库 的 世 纪 就
 已 悄 然 开 始。 那 时 的 观 念 是 由 应 用 程 序 控 制 关 系 型 数 据 库, 这
 种 数 据 处 理 的 模 式 一 般 称 为 单 层 结 构(1 -Tier)。 由 于 这 种 结 构
 的 数 据 库
程 序 占 用 计 算 机 资 源 较 多, 于 是 在80 年 代 中 期, 数 据 库 应 用 开 始
 转 向 C/S 结 构, 也 就 是 所 谓 的 两 层 结 构(2 -Tier)。 这 种 结 构 在 近
 十 年 内 不 但 得 到 了 广 泛 的 运 用, 而 且 相 当 成 功。 然 而, 在 两 层
C/S 结 构 成
功 的 背 后 却 逐 渐 暴 露 出 其 构 架 上 的 缺 陷。 其 中 最 明 显 的 问 题 表
 现 在 应 用 程 序 的 伸 缩 性 和 维 护 方 面。 例 如, 一 个 跨 国 企 业 如 何
 把 数 据 库 管 理 系 统 及 其 应 用 程 序 分 散 到 十 分 缓 慢 的 网 络 上, 如
 何 控 制 数
据 的 统 一 性 和 完 整 性; 一 旦 应 用 程 序 有 任 何 改 动, 维 护 人 员 就
必 须 修 改 每 一 个 客 户 端 上 的 应 用。

---- 新 一 代 数 据 库 管 理 系 统 在 传 统 的 C/S 结 构 中, 增 加 了 应 用 程
 序 服 务 器 — — 这 种 新 的 结 构 就 是 所 谓 的n -Tier 或Multi -Tier。 应
 用 程 序 服 务 器 包 括 了 统 一 的 界 面、 业 务 规 则 的 制 定 和 数 据 处 理
 逻 辑 的 规
定 等 等。 多 层 应 用 服 务 技 术 允 许 分 割 应 用 程 序, 本 地 计 算 机 上
无 须 安 装 一 整 套 数 据 库 工 具, 就 可 以 在 另 一 台 机 器 上 存 取 数 据
。 同 时 它 允 许 对 业 务 规 则 和 进 程 进 行 集 中 管 理, 并 在 整 个 网 络
 上 分 发、 实
现 进 程 负 载 的 动 态 调 节。

---- 众 所 周 知, 开 发 服 务 器 级 的 应 用 程 序 要 比 开 发 单 纯 应 用 级
的 程 序 困 难 得 多, 有 很 多 系 统 服 务 需 要 考 虑。 如 果 没 有 一 种 好
的 工 具, 对 于 大 多 数 程 序 员 来 说, 开 发 一 个 复 杂 的 多 层 结 构 应
用 只 能 是 一
种 理 想。 为 了 使 这 种 理 想 方 便 地 实 现,Borland 公 司 推 出 了 开 发 多
 层 结 构 所 需 的 技 术 和 工 具 集 — —MIDAS。

MIDAS — — 多 层 分 布 式 应 用 程 序 服 务 器
---- 对MIDAS 这 个 名 字 一 般 有 两 种 理 解。MIDAS 是Multi -tier Distributed
Application Services Suite( 多 层 分 布 式 应 用 程 序 服 务 包) 的 缩 写, 这
 也 诠 释 了MIDAS 技 术 的 实 质。 也 许 因 为 这 个 本 义 太 长, 很 多 人 更
愿 意 把 它
理 解 成Multi -tier Made Easy, 这 也 是MIDAS 的 作 用。 多 层 计 算(Multi -
tiered computing) 是 业 界 对 此 类 技 术 通 用 的 术 语, 而Multi -tier 是
Borland 公 司 采 用 的 技 术 术 语。Borland 典 型 的 三 层 结 构 如 下: 第 一
层 是 数 据 库 服
务 器, 第 二 层 是 应 用 服 务 器, 第 三 层 是 瘦 客 户 机。
---- 数 据 库 服 务 器 是 诸 如InterBase、Oracle、Sybase、MS SQL Server 等 数 据
 库, 应 用 服 务 器 和 瘦 客 户 机 由Delphi 建 立。 大 多 数 情 况 下, 数 据
库 访 问 软 件( 例 如BDE, SQL *NET 等 等) 与 应 用 服 务 器 运 行 在 同 一 台
 机 器 上。

---- 应 用 服 务 器 主 要 基 于Borland 的 分 布 式 数 据 技 术, 至 少 包 括 两
 方 面 的 内 容:

---- 1. 内 置 在Delphi 组 件 中;

---- 2. OLEnterprise 产 品 对 分 布 式 计 算 和 负 载 平 衡 提 供 超 强 的 支 持


---- 内 置 在Delphi 组 件 中 使 你 能 很 容 易 地 使 用DCOM、Socket 或
OLEnterprise 连 接 两 台 机 器, 并 在 两 者 之 间 来 回 传 输 数 据 集。
OLEnterprise 工 具 提 供DCOM 的 选 择 方 法 简 化 了 连 接 两 台 机 器 的 任 务
, 尤 其 是 对 两 台 运
行Windows 95 的 机 器 更 是 如 此。OLEnterprise 使 用 户 能 访 问Object Broker,
 它 允 许 在 几 个 服 务 器 中 随 机 分 配 任 务 负 载。 此 外, 还 可 以 在 几
 台 机 器 上 装 载 服 务 器 工 具, 每 次 实 行 连 接 时,Broker 会 选 择 其 中
 一 台 机 器。
例 如, 如 果 你 有100 个 客 户 端 和3 台 服 务 器,Object Broker 会 随 机 分 配
 负 载 给3 台 服 务 器, 每 台 服 务 器 大 约 有33 个 客 户 端。Broker 会 在 服
 务 器 异 常 关 闭 时 提 供 支 持。 编 写 几 行 代 码 可 以 提 供 服 务 器 错 误
 处 理, 把
客 户 端 从 出 现 问 题 的 服 务 器 切 换 到 另 一 台 正 常 运 行 的 服 务 器。
 另 外Broker 不 会 试 图 把 一 个 新 的 客 户 端 连 接 到 已 经 关 闭 的 服 务
器 上, 相 反 它 会 自 动 连 接 到 其 中 一 台 正 在 运 行 的 服 务 器 上。

---- 分 布 式 数 据 集 可 以 基 于DCOM, 在 客 户 端 没 有 任 何 数 据 库 工 具
 的 情 况 下 读 取 远 程 数 据。 有 些 用 户 可 能 会 有 这 样 的 疑 问: 通 过
 浏 览 器 和Web 服 务 器 也 能 在 客 户 端 没 有 任 何 数 据 库 工 具 的 情 况
下 观 察 远 程
机 器 上 的 数 据 集, 为 什 么 还 要 采 用 分 布 式 数 据 集 呢 ? 这 是 因 为
 浏 览 器 的 功 能 远 不 如Borland 分 布 式 数 据 集 的 功 能。 如 果 没 有 一
种 强 大 的 第 三 方 工 具( 如IntraBuilder), 要 增 强 浏 览 器 的 约 束 条 件
, 或 者 在 浏
览 器 中 加 入 或 建 立 一 个 一 到 多 的 关 系 表 是 非 常 困 难 的。 但 这 些
 功 能 都 可 以 在Delphi 的 多 层 应 用 程 序 中 简 单 地 实 现,Delphi 的 编 译
 应 用 程 序 比 基 于HTML 的 应 用 更 快 速、 更 易 于 应 答。

---- 分 布 式 数 据 集 允 许 在 客 户 端 的 应 用 中 使 用 所 有 标 准 的
Delphi 组 件, 包 括 数 据 库 工 具, 但 是 客 户 端 无 须 装 载BDE、ODBC 或 者
 任 何 数 据 库 类 库 ( 例 如Oracle SQL *NET、 Sybase CT -Lib 等 等) 。 当 然
 网 络 上 的 某 些 地
方 需 要BDE 或 类 似 的 引 擎, 但 是 客 户 端 无 须 装 载。 简 言 之, 现 在 只
 需 要 一 套 服 务 器 端 的 数 据 库 工 具, 每 一 个 客 户 端 就 可 以 使 用 它


---- 分 布 式 数 据 集 是 缩 减 网 络 通 信 量 的 一 种 方 法。 从 服 务 器 端
下 载 数 据 后, 在 客 户 端 操 作 数 据 而 无 须 初 始 化 任 何 网 络 交 易,
除 非 需 要 更 改 服 务 器 端。 这 意 味 着 在 不 启 动 网 络 交 易 的 情 况 下
, 可 以 编
辑、 插 入、 删 除 多 个 记 录。 更 改 服 务 器 数 据 时, 可 以 在 预 先 选 定
 的 时 间 段 内 把 多 个 数 据 包 送 到 网 络 上。

---- 另 外, 当 客 户 端 从 网 络 上 断 开 时, 仍 然 可 以 利 用“briefcase
model" 访 问 数 据。 其 操 作 步 骤 如 下: 先 把 一 个 远 程 数 据 库 复 制 到
 磁 盘 上, 然 后 关 闭 计 算 机, 再 重 新 引 导 它、 断 开 网 络 连 接、 编 辑
 数 据, 接 着
重 新 联 网 并 修 改 数 据 库。 所 有 这 些 都 可 以 在 没 有 大 型 数 据 库 工
 具 的 客 户 端 完 成。 这 说 明 为 了 操 作 数 据, 客 户 端 不 必 每 时 每 刻
 都 与 服 务 器 连 接。 这 对 于 膝 上 型 计 算 机 用 户 和 想 要 保 持 数 据 库
 通 信 量 最
小 的 站 点 是 非 常 理 想 的。

---- MIDAS 技 术 的 另 一 方 面 是 提 供 访 问 数 据 库 约 束 条 件。 当 从 服
务 器 上 卸 载 数 据 时, 可 以 同 时 卸 载 一 套 自 动 执 行 的 约 束 条 件。
约 束 条 件 可 以 帮 助 程 序 员 确 保 用 户 输 入 合 法 的 数 据。 当 重 新 连
 到 网 络 上
时, 数 据 可 以 被 正 确 地 修 改。 如 果 你 在 更 改 数 据 库 时 偶 然 发 生
了 一 个 错 误, 那 么 内 建 的 机 制 会 帮 助 程 序 员 报 告 和 处 理 错 误。
例 如, 如 果 另 一 个 用 户 已 经 更 改 了 你 正 试 图 更 改 的 那 条 记 录,
那 么 你 将 看
到 一 个 提 示 你 如 何 处 理 的 选 项 表。 在Delphi Object Repository 中 的 一
 个 预 建 表 单 可 以 使 你 的 应 用 程 序 简 单 地 实 现 错 误 处 理。

---- Borland 多 层 计 算 的 另 一 个 重 要 功 能 是 将 数 据 库 的 负 载 分 散
到 多 个 服 务 器 上。 这 样, 一 旦 发 生 错 误 也 能 恢 复。 概 括 起 来 讲,
 这 些 技 术 存 在 于 三 种Broker 中:

---- 第 一 种 叫 做Remote Data Broker,Remote Data Broker 结 构 的 精 髓 是 让
每 一 个 客 户 端 不 再 需 要BDE, 取 而 代 之 的 是 一 个 中 央 化 的BDE, 以
集 中 管 理 的 方 式 降 低 每 一 个 客 户 在BDE 上 所 需 的 开 销 和 复 杂 度。

---- 第 二 种 叫 做Constraint Broker, 它 所 扮 演 的 角 色 是 保 证 所 有 客 户
 数 据 的 一 致 性 及 数 据 的 完 整 性。

---- 第 三 种 是Business Object Broker, 它 的 目 的 是 给 一 些 关 键 性 的 商
 业 应 用 程 序 提 供 一 个 快 速 且 可 信 赖 的 使 用 环 境。 为 了 满 足 这 种
 高 层 次 的 要 求,Business Object Broker 会 自 动 地 将 应 用 程 序 做 适 当
的 划 分, 并
复 制 重 要 的 业 务 规 则 到 每 一 个 区 间, 以 达 到 速 度 的 要 求。

实 现 工 具
---- Borland 提 供 了 四 种Delphi 工 具 帮 助 用 户 实 现 分 布 式 数 据 集。 前
 两 个 在 服 务 器 端:
---- 1. 远 程 数 据 模 块 像 标 准 数 据 模 块 一 样, 它 不 但 可 以 将 数 据
传 播 到 当 前 的 应 用 中, 而 且 会 传 到 网 络 上 的 特 定 区 域 中。 特 别
是 它 们 把 简 单 的 数 据 模 块 转 化 成COM 对 象, 允 许 你 通 过DCOM 访 问 远
 程 服 务 器
上 的 数 据 库。

---- 2. TProvider 组 件 就 像 可 以 驻 留 在 标 准 数 据 模 块 中 的TTable 组 件
 一 样, 驻 留 在 远 程 数 据 模 块 中, 不 同 的 是TProvider 在 网 络 上 发 布
 数 据 表。TTable 和TQuery 组 件 都 含 有Provider 属 性。 但 是 如 果 把 它 作
为 一 个 独 立
的 组 件 访 问, 会 有 更 大 的 灵 活 性 和 力 量。 特 别 是 把TProvider 组 件
与TTable 或TQuery 组 件 建 立 连 接, 网 络 上 的 其 它 程 序 就 可 通 过DCOM 从
TTable 或TQuery 访 问 数 据。 远 程 数 据 模 块 的 任 务 就 是 使 客 户 端 访 问
 服 务 器 上
特 定 的Provider。

---- 在 客 户 端 可 以 利 用 两 个 组 件 访 问 服 务 器 提 供 的 数 据:

---- 1. TRemoteServer 组 件 把 客 户 端 连 到 服 务 器 上, 特 别 是 连 到 服 务
 器 的 远 程 数 据 模 块 上。 更 明 确 地 说 是 连 到 远 程 数 据 模 块 支 持 的
COM 接 口 上。TRemoteServer 能 浏 览 可 用 的 服 务 器, 一 旦 找 到 服 务 器,
TRemoteServer
就 可 与 之 连 接。

---- 2. TClientDataSet 与TRemoteServer 组 件 连 接 在 一 起, 在 服 务 器 上 就
 得 到 一 个 特 定 的Provider 。 简 言 之,TClientDataSet 组 件 扮 演 了 与
TQuery 或 TTable 同 样 的 角 色, 只 不 过 它 是 为 远 程 站 点 提 供 数 据 服
务。 如 同 在 许 多
标 准 的Delphi 应 用 程 序 中 传 统TDatabase、 TTable、 TDataSource、TDBGrid 组
 件 的 配 置 结 构 一 样, 在 远 程 数 据 集 中 使 用TRemoteServer、
TClientDataSet、TDataSource 和 TDBGrid 组 件, 它 们 的 配 置 只 是 稍 有 不 同
。 在 这 个 新 的 方 案
中,TRemoteServer 的 作 用 类 似 于TDatabase 的 作 用, 而TClientDataSet 组 件
与TTable 或TQuery 组 件 所 起 的 作 用 又 极 其 相 似。

结 论
---- MIDAS 为 多 层 结 构 的 应 用 开 发 提 供 了 强 大 的 功 能, 这 使 得 开
发 者 再 也 无 需 为 越 来 越 庞 大 的 数 据 及 应 用 发 愁 了。 在Delphi 3.0
Client/Server 版 中 打 包 了MIDAS 的 开 发 版, 它 可 以 用 于 多 层 结 构 应 用
 的 开 发 及 调
试, 在 应 用 分 布 时, 还 需 要 另 外 购 买Borland MIDAS for Delphi。 MIDAS 是
Borland 公 司 金 门 结 构 系 列 产 品 的 一 部 分。 在 不 久 的 将 来, 金 门 结
 构 的 其 它 开 发 工 具 如:C + +Builder、JBuilder 中 也 将 打 包MIDAS, 以
帮 助 用 户
用C + +、Java 语 言 进 行 多 层 结 构 应 用 程 序 的 开 发。


--------------------------------------------------------------------------------
中国计算机世界出版服务公司版权所有








--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.0.240]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店