UML软件工程组织

分布对象技术
作者: 王怀民 选自:www.tongji.edu.cn

王 怀 民 博 士, 教 授。 现 任 国 防 科 技 大 学 并 行 与 分 布 处 理 国 家 重 点 实 验 室 副 主 任、 国 防 科 技 大 学 计 算 机 学 院 人 工 智 能 与 智 能 计 算 机 研 究 室 主 任、 国 家863 计 划 智 能 计 算 机 主 题 专 家 组 成 员。 主 要 从 事 分 布 计 算 环 境 和 人 工 智 能 技 术 的 研 究, 曾 参 加 和 主 持 了 多 项" 国 家863" 重 点 项 目 的 研 究 与 开 发。

背 景
 

---- 分 布 计 算(Distributed Computing) 是 近20 年 来 影 响 计 算 技 术 发 展 的 最 活 跃 因 素 之 一, 它 的 发 展 经 历 了 两 种 不 同 的 技 术 路 线。

---- 第 一 种 是 理 想 的 技 术 路 线, 试 图 在 互 连 的 计 算 机 硬 件 上 部 署 全 新 的 分 布 式 操 作 系 统, 全 面 管 理 系 统 中 各 自 独 立 的 计 算 机, 呈 现 给 用 户 单 一 的 系 统 视 图。 在80 年 代, 学 术 界 普 遍 追 求 这 一 目 标, 尽 管 产 生 了 许 多 技 术 成 果 和 实 验 系 统, 但 却 没 有 被 用 户 和 市 场 接 受。

---- 第 二 种 是 现 实 的 技 术 路 线, 即 在 网 络 计 算 平 台 上 部 署 分 布 计 算 环 境( 也 称 为 中 间 件), 提 供 开 发 工 具 和 公 共 服 务, 支 持 分 布 式 应 用, 实 现 资 源 共 享 和 协 同 工 作。90 年 代, 工 业 界 普 遍 遵 循 这 一 技 术 路 线, 产 生 了 一 系 列 行 之 有 效 的 技 术 和 广 为 用 户 接 受 的 产 品。

---- 当 前 人 们 所 说 的 分 布 计 算 技 术 是 指 在 网 络 计 算 平 台 上 开 发、 部 署、 管 理 和 维 护 以 资 源 共 享 和 协 同 工 作 为 主 要 应 用 目 标 的 分 布 式 应 用 系 统。 从80 年 代 中 期 开 始 至 今, 分 布 计 算 技 术 已 经 走 过 了 第 一 代, 目 前 正 处 于 第 二 代 的 成 熟 期, 并 且 开 始 孕 育 第 三 代( 见 表1)。

---- 80 年 代 中 后 期, 以 支 持 信 息 共 享 的 应 用 需 求 为 核 心, 形 成 了 面 向 过 程 的 第 一 代 分 布 计 算 技 术。 在 第 一 代 分 布 计 算 技 术 的 推 动 下,90 年 代 初 出 现 了 从 集 中 计 算 模 式 向 分 布 式 客 户/ 服 务 器 计 算 模 式 转 移 的 热 潮。 在 分 布 式 客 户/ 服 务 器 计 算 机 系 统 的 建 立 及 其 应 用 系 统 的 开 发 过 程 中, 人 们 逐 渐 体 会 到 分 布 式 系 统 比 想 像 的 要 复 杂 得 多, 例 如 异 构 环 境 下 的 应 用 互 操 作 问 题、 系 统 管 理 问 题、 系 统 安 全 问 题 等 等, 这 些 问 题 在 集 中 计 算 模 式 下 是 不 曾 出 现 的 或 不 突 出 的。 传 统 的 面 向 过 程 的 技 术 在 开 发 大 型 软 件 系 统 时 已 经 暴 露 出 很 大 的 局 限 性, 在 应 付 复 杂 的 分 布 式 应 用 系 统 时 更 加 力 不 从 心。 人 们 自 然 想 到 了 在80 年 代 软 件 领 域 大 放 异 采 的 面 向 对 象(Object Oriented,OO) 技 术。

---- 90 年 代 初, 以 面 向 对 象 技 术 为 主 要 特 征 的 第 二 代 分 布 计 算 技 术 开 始 孕 育, 经 过5 年 多 的 蓬 勃 发 展, 进 入 了 成 熟 时 期。 人 们 也 将 这 一 代 技 术 称 为 分 布 对 象 技 术。

核 心 概 念
 

---- 实 际 上, 常 规 的OOA 和OOD 方 法 可 以 直 接 应 用 于 分 布 式 系 统 的 分 析 和 设 计, 然 而 传 统 的OOP 环 境( 例 如C + + 或Smalltalk) 在 直 接 用 于 分 布 式 应 用 系 统 的 程 序 设 计 时 遇 到 了 问 题。 传 统 的 对 象 与 访 问 该 对 象 的 程 序 只 能 存 在 于 同 一 进 程 中, 并 且 只 有 相 关 程 序 设 计 语 言 的 编 译 器 才 能 创 建 这 些 对 象 并 感 知 这 些 对 象 的 存 在, 而 外 部 进 程 无 法 了 解 和 访 问 这 些 对 象。 这 意 味 着 在 常 规 的 分 布 式 客 户/ 服 务 器 应 用 中, 客 户 进 程 不 可 能 直 接 访 问 异 地 服 务 进 程 中 的 常 规 对 象。 为 了 解 决 这 个 问 题, 人 们 提 出 了 分 布 对 象 的 概 念。

---- 分 布 对 象 存 在 于 网 络 的 任 何 地 方, 可 被 远 程 客 户 应 用 以 方 法 调 用 的 形 式 访 问。 至 于 分 布 对 象 是 使 用 何 种 程 序 设 计 语 言 和 编 译 器 所 创 建, 对 客 户 对 象 来 说 是 透 明 的。 客 户 应 用 无 须 知 道 它 所 访 问 的 分 布 对 象 在 网 络 中 的 具 体 位 置 以 及 运 行 在 何 种 操 作 系 统 上, 该 分 布 对 象 与 客 户 应 用 可 能 在 同 一 台 计 算 机 上, 也 可 能 分 布 在 由 广 域 网( 如Internet) 相 连 的 不 同 计 算 机 上。 分 布 对 象 具 有 动 态 性, 它 们 可 以 在 网 络 上 到 处 移 动。

---- 独 立 于 特 定 的 程 序 设 计 语 言 和 应 用 系 统、 可 重 用 和 自 包 含 的 软 件 成 分 称 为 软 构 件。分 布 对 象 是 一 种 典 型 的 软 构 件。 基 于 分 布 对 象 技 术 的 分 布 式 应 用 开 发 就 是 分 布 对 象 的 开 发 和 组 装。

---- 分 布 对 象 技 术 采 用 面 向 对 象 的 多 层 客 户/ 服 务 器 计 算 模 型, 该 模 型 将 分 布 在 网 络 上 的 全 部 资 源( 无 论 是 系 统 层 还 是 应 用 层) 都 按 照 对 象 的 概 念 来 组 织, 每 个 对 象 都 有 定 义 明 晰 的 访 问 接 口。 创 建 和 维 护 分 布 对 象 实 体 的 应 用 称 为 服 务 器, 按 照 接 口 访 问 该 对 象 的 应 用 称 为 客 户。 服 务 器 中 的 分 布 对 象 不 仅 能 够 被 访 问, 而 且 自 身 也 可 能 作 为 其 他 对 象 的 客 户。 因 此 在 分 布 对 象 技 术 中, 客 户 与 服 务 器 的 角 色 划 分 是 相 对 的 或 多 层 次 的。 支 持 客 户 访 问 异 地 分 布 对 象 的 核 心 机 制 称 为 对 象 请 求 代 理(Object Request Broker, ORB)。ORB 处 于 分 布 对 象 技 术 的 核 心 位 置, 从OMG(Object Management Group) 的OMA(Object Management Architecture) 中, 我 们 能 够 体 会 到 面 向 对 象 的 分 布 计 算 技 术 典 型 结 构( 见 图1)。 其 中, 对 象 服 务 包 括 支 持 分 布 式 系 统 正 常 工 作 的 各 类 基 本 的 系 统 级 服 务, 例 如 名 字 管 理、 事 件 通 告、 对 象 事 务 管 理、 对 象 生 命 期、 时 间 同 步、 并 发 控 制 等。 公 共 设 施 包 括 支 持 分 布 式 系 统 高 效 开 发 和 有 效 工 作 的 各 类 面 向 领 域 的 常 规 服 务 和 工 具, 例 如GUI 服 务、 数 据 库 服 务、 电 子 邮 件 服 务、 系 统 管 理 服 务 以 及 面 向 电 信、 仿 真 和 金 融 等 应 用 领 域 的 领 域 构 架 等 等。 应 用 对 象 涉 及 各 种 应 用 软 件, 它 在 对 象 服 务 和 公 共 设 施 的 帮 助 下 完 成 相 应 的 应 用 逻 辑;ORB 如 同 一 条 总 线(Bus) 把 分 布 式 系 统 中 的 各 类 对 象 和 应 用 连 接 成 相 互 作 用 的 整 体。

图1 对 象 管 理 结 构

---- 与 第 一 代 的 分 布 计 算 技 术 相 比, 分 布 对 象 技 术 的 实 质 性 进 步 在 于 使 面 向 对 象 技 术 能 够 在 异 构 的 网 络 计 算 环 境 中 得 以 全 面、 彻 底 和 方 便 的 实 施, 从 而 能 够 有 效 地 控 制 系 统 的 开 发、 管 理 和 维 护 的 复 杂 性。 当 然, 需 要 特 别 强 调 的 是, 分 布 式 应 用 系 统 比 台 式 应 用 系 统 要 复 杂 得 多, 这 种 客 观 存 在 的 复 杂 性 无 法( 至 少 很 难) 通 过 技 术 手 段 降 低。 我 们 所 能 够 做 的 事 情 只 是 不 要 把 已 经 复 杂 的 问 题 变 得 更 复 杂, 这 正 是 第 二 代 技 术 优 于 第 一 代 技 术 的 关 键。

主 流 技 术
 

---- 目 前 分 布 对 象 技 术 已 经 成 为 建 立 应 用 框 架(Application Framework) 和 软 构 件(Software Component) 的 核 心 技 术, 在 开 发 大 型 分 布 式 应 用 系 统 中 表 现 出 强 大 的 生 命 力, 并 形 成 了 三 项 具 有 代 表 性 的 主 流 技 术, 即OMG 的CORBA(Common Object Request Broker Architecture)、Microsoft 的ActiveX/DCOM(Distributed Compound Object Model) 和SUN 公 司 的Java/RMI。

---- OMG 是 一 个 非 盈 利 性 国 际 组 织, 致 力 于 使CORBA 成 为" 无 所 不 在 的 中 间 件"。1989 年 成 立 时 仅 有8 家 公 司 参 与, 而 今 天 已 经 是 拥 有900 多 个 机 构 成 员 的" 议 会 式" 标 准 化 组 织, 世 界 上 几 乎 所 有 最 有 影 响 的 计 算 机 公 司( 如IBM、Microsoft 和HP 等)、 著 名 的 工 商 企 业( 如Boeing、Citibank 和Ford Motor 等) 和 大 学 研 究 机 构 都 是 这 个 组 织 的 成 员。OMG 所 制 定 的 分 布 对 象 计 算 标 准 规 范 包 括CORBA/IIOP、 对 象 服 务、 公 共 实 施 和 领 域 接 口 规 范。 遵 照 这 些 规 范 开 发 出 的 分 布 计 算 软 件 环 境 可 以 在 几 乎 所 有 的 主 流 硬 件 平 台 和 操 作 系 统 上 运 行。 现 在,CORBA/IIOP 已 成 为Internet 上 实 现 对 象 互 访 的 技 术 标 准,OMG 的IIOP 也 已 成 为 许 多 公 司( 如Oracle、 Netscape、Sun 和IBM 等) 进 行 系 统 集 成 的 基 本 协 议。1995 年 以 来, 基 于CORBA 软 件 的 企 业 级 应 用 发 展 迅 猛, 大 有 覆 盖DCE 之 势。 目 前 世 界 上 有 一 定 影 响 的CORBA 软 件 制 造 商 已 有10 多 家。

---- ActiveX/DCOM 是 由Microsoft 推 出 的 对 象 构 件 模 型, 最 初 用 于 集 成Microsoft 的 办 公 软 件, 目 前 已 发 展 成 为Microsoft 世 界 的 应 用 系 统 集 成 标 准, 并 集 中 反 映 在 其 产 品ActiveX 中。 在 分 布 计 算 技 术 上,OMG 的 优 势 比Microsoft 至 少 领 先2 ~3 年。 目 前, 只 有OMG 的 技 术 能 够 支 持 异 构 环 境 中 大 型 分 布 式 应 用 的 开 发, 而Microsoft 的DCOM 技 术 尚 不 能 胜 任。Microsoft 的 优 势 主 要 表 现 在 应 用 和 市 场 能 力 上。 从 未 来 市 场 策 略 考 虑,Microsoft 决 定 支 持OMG 提 出 的OLE/COM 与CORBA 的 互 操 作 标 准, 从 而 使COM 的 对 象 能 够 与CORBA 的 对 象 进 行 通 信。 今 后3 ~5 年 内,OMG 和 Microsoft 的 分 布 对 象 技 术 将 共 存, 并 在 许 多 方 面 相 互 渗 透。

---- 按 照Sun 和Javasoft 对Java 的 界 定,Java 是 一 个 应 用 程 序 开 发 平 台, 它 提 供 了 可 移 植、 可 解 释、 高 性 能 和 面 向 对 象 的 编 程 语 言 及 运 行 环 境。RMI(Remote Method Invocation) 是 分 布 在 网 络 中 的 各 类Java 对 象 之 间 进 行 方 法 调 用 的ORB 机 制。CORBA 技 术 与Java 技 术 存 在 天 然 的 联 系, 因 为Sun 是OMG 的 创 始 成 员,CORBA 标 准 中 的 许 多 内 容( 例 如IDL 标 准、IIOP 标 准) 是 以SUN 公 司 提 交 的 方 案 为 核 心 制 定 的。CORBA 与Java/RMI 的 主 要 区 别 在 于 以 下 两 个 方 面:

程 序 设 计 语 言 无 关 性 是CORBA 的 重 要 设 计 原 则, 而Java/RMI 依 赖 于Java 语 言 和Java 虚 拟 机;
Java/RMI 技 术 的 最 大 成 就 是 使 对 象 能 够 在Internet 上 迁 移 和 执 行, 而CORBA 2.0 标 准 中 只 考 虑 对 象 的 远 程 访 问, 没 有 对 象 作 为" 值" 传 递 的 承 诺。
---- 由 于 这 两 个 技 术 的 天 然 联 系 和 各 自 的 优 势,CORBA 技 术 与Java 技 术 的 融 合 已 成 为 必 然。

发 展 趋 势
 

---- 与Internet 技 术 结 合 是 分 布 对 象 技 术 值 得 重 视 的 发 展 趋 势。Internet 技 术 的 发 展, 特 别 是90 年 代 中 期WWW 技 术 的 广 泛 应 用, 给 分 布 对 象 技 术 的 应 用 开 辟 了 更 广 阔 的 空 间,Object Web 成 为 人 们 关 注 的 新 热 点。 从 技 术 的 角 度 看,WWW 应 用 已 经 经 历 了Hypertext Web 和Interactive Web 两 种 形 态, 但 都 存 在 很 大 的 局 限 性, 突 出 地 表 现 为 应 用 接 入 能 力 受 到 限 制。Java 的 出 现 为 在 浏 览 器 上 运 行 程 序 提 供 了 新 的 途 径, 标 志 着Object Web 时 代 的 开 始。 就 以 网 络 为 中 心 的 分 布 式 应 用 的 发 展 而 言, 这 种 把 对 象 下 载 到 浏 览 器 中 执 行 的 机 制 也 有 局 限。 主 要 表 现 在 大 量 的 遗 留 应 用 不 是 用Java 写 的, 自 然 无 法 下 载 到 浏 览 器 中 运 行; 同 时, 某 些 重 要 的 应 用, 包 括 信 息 共 享 与 管 理 类 的 应 用( 如 数 据 库 系 统) 以 及 信 息 采 集 与 信 号 监 测 应 用( 如 实 施 网 络 管 理 的Agent) 在 逻 辑 上 不 能 下 载 到 客 户 端 运 行; 另 外, 需 要" 减 肥" 的 客 户 机 可 能 难 以 承 受 越 来 越 庞 大 的 应 用 系 统。 尽 管Java 的RMI 解 决 了 访 问 异 地Java 对 象 的 问 题, 但 如 何 管 理 和 访 问 异 地 其 他 大 量 非Java 对 象 的 问 题 并 没 有 解 决。 另 外,Java RMI 没 有 提 供 分 布 对 象 事 务 管 理 等 服 务。1996 年 下 半 年,Java 与CORBA 开 始 携 手, 共 同 奠 定Object Web 时 代 的 技 术 基 础。

---- 何 谓Object Web ? 对 此 目 前 并 没 有 公 认 的 定 义, 但 可 以 从 应 用 和 技 术 两 个 角 度 给 出 一 定 意 义 上 的 解 释。

---- 1 . 应 用 内 涵

---- Object Web 是 继 Hypertext Web 和Interactive Web 之 后 新 的Web 应 用, 包 括" 保 守 的" 和" 理 想 的" 两 类 应 用 形 态。

保 守 的 应 用 形 态
---- 用 户 能 够 按 照 对 象 设 计 者 的 思 路 自 由、 便 捷 地 在Internet 上 操 纵 感 兴 趣 的 对 象;
理 想 的 应 用 形 态
---- 用 户 能 够 按 照 自 己 的 需 要 自 由、 便 捷 地 在Internet 上 操 纵 感 兴 趣 的 对 象。
---- 与Hypertext Web 和Interactive Web 比 较,Object Web 应 用 给 用 户 的 突 出 感 受 是 操 纵 的 实 体 不 再 局 限 于 含 有" 超 链" 的 文 档, 作 用 于 实 体 的 操 作 行 为 不 再 局 限 于" 下 载" 一 类 的 文 件 传 输 行 为。 下 面 给 出 两 个 应 用( 虽 然 目 前 还 没 有 成 熟 的 应 用, 但 实 现 该 应 用 的 技 术 途 径 已 经 成 熟) 的 简 单 陈 述, 以 帮 助 对Object Web 的 理 解。

---- (1) 开 放 的Internet/Intranet 管 理

---- 典 型 的 分 布 式 系 统 管 理 采 用Agent/Manager 体 系 结 构,Agent 运 行 在 被 管 理 的 设 备( 如 服 务 器、 路 由 器 和 智 能 交 换 机 等) 上,Manager 通 过 与Agent 的 交 互 实 施 分 布 式 系 统 管 理。 但 问 题 是Manager 不 能 管 理 采 用 新 标 准 的 新 设 备, 这 对 于Internet 管 理 是 不 合 适 的。 开 放 的Internet/Intranet 管 理 有 两 方 面 的 含 义: 第 一 是 指Agent 能 够 在Internet 上 公 布 其 管 理 功 能 的 接 口, 并 接 受 任 何 合 法 的Manager 按 照 标 准 的 远 程 对 象 访 问 协 议( 如CORBA/IIOP) 所 进 行 的 访 问; 第 二 是 指Manager 能 够 访 问 任 何 时 刻 加 入Internet 的Agent, 只 要 该Agent 支 持Internet 上 标 准 的 远 程 对 象 访 问 协 议, 并 在 加 入Internet 时 按 照 标 准 的 协 议 公 布 其 接 口。 这 时,Manager 就 是 管 理 对 象 的 浏 览 器。 我 们 注 意 到Sun 公 司 前 不 久 公 布 的Jini 能 够 实 现 该 应 用 构 思。

---- (2) Web 组 合 文 档

---- 传 统 的 组 合 文 档( 如MicroSoft 的Office 95) 是 台 式 应 用, 没 有 跨 网 络 引 用 组 件 的 功 能。 而 目 前 流 行 的Web 浏 览 器 基 于 超 文 本 结 构, 不 能 像 组 合 文 档 一 样 自 由 组 合 和 操 作 对 象。Web 组 合 文 档 较 之 传 统 的 组 合 文 档 增 加 了 跨 网 络 引 用 组 件 的 能 力, 这 意 味 着 复 杂 的 组 合 文 档 应 用 能 够 在 手 持PC 或 其 他 瘦 客 户 机 上 运 行。 例 如, 一 个 汽 车 设 计 专 家 在 远 离 自 己 的 设 计 中 心 讲 学 时, 能 够 通 过 随 身 携 带 的 笔 记 本 计 算 机, 现 场 演 示 从 设 计 中 心 服 务 器 上 选 择 若 干 汽 车 部 件, 修 改 后 组 合 一 种 新 型 的 汽 车, 并 现 场 调 用 设 计 中 心 的 仿 真 系 统 对 新 设 计 的 汽 车 进 行 各 种 仿 真 演 示。

---- 2. 技 术 内 涵

---- Object Web 技 术 主 要 包 括 对 象 开 发 技 术 和 对 象 访 问 技 术。 从 当 前 技 术 现 状 看,Object Web 技 术 成 分 如 表2 所 示。

---- " 对 象" 与" 对 象 访 问" 的 关 系 可 以 用" 货 物 运 输 系 统" 来 类 比。" 对 象" 是Object Web 上 的" 货"。Internet 上 已 存 在 大 量 的 超 文 本, 相 对 而 言COM 对 象、Java 对 象、CORBA 对 象 和 各 类 组 件 则 少 得 多。 由 于 台 式 环 境 中 的COM 对 象 非 常 丰 富, 今 后 几 年DCOM 对 象 可 能 首 先 会 在Internet 上 丰 富 起 来。 按 照Java 技 术 现 在 的 发 展 势 头,Internet 上 的Java 对 象 也 会 很 快 多 起 来。 由 于CORBA 对 象 具 有 语 言、 操 作 系 统 和 硬 件 平 台 无 关 性 的 特 点, 它 是 最 容 易 将 大 量 的 遗 留 应 用 和C + +、Smalltalk 对 象 带 入Object Web 的 技 术; 随 着Java 与CORBA 的 携 手,Java 对 象 又 会 成 为CORBA 对 象 的 特 例;COM 对 象 与CORBA 对 象 的 互 操 作 标 准 已 经 制 定。CORBA 对 象 将 迎 来 大 发 展 的 时 期。

---- " 对 象 访 问" 技 术 是Object Web 上 的" 车"。HTTP 用 于 下 载HTML 页 面 和Java Applet。Microsoft 的 对 象RPC、RMI 和CORBA/IIOP 协 议 分 别 是 远 程 访 问DCOM 对 象、Java 对 象 和CORBA 对 象 的 协 议。 从 访 问 异 地 应 用 的 意 义 上 讲,HTTP/CGI 也 可 视 为 一 种 对 象 访 问 协 议, 只 是 功 能 和 性 能 存 在 很 大 局 限。RMI 与CORBA 正 在 逐 步 融 合, 有 人 称 融 合 后 的 对 象 访 问 技 术 为Java/CORBA。 今 后 一 个 时 期, 在Object Web 领 域 占 主 导 地 位 的 技 术 将 是ActiveX/DCOM 和Java/CORBA。ActiveX/DCOM 的 应 用 丰 富, 占 据 了PC 用 户 的 绝 对 优 势, 一 旦 大 力 投 入Object Web 的 开 发, 市 场 优 势 不 可 阻 挡。Java/CORBA 的 技 术 优 于ActiveX/DCOM, 发 展 势 头 和 潜 力 不 可 低 估。

---- 也 许, 在Object Web 领 域ActiveX/DCOM 与Java/CORBA 的 关 系 会 像 操 作 系 统 领 域NT 与Unix 的 关 系 一 样。 发 展Java/CORBA 的 当 务 之 急 是 应 用 开 发, 把 握 未 来 的 最 好 办 法 是 创 造 未 来



版权所有:UML软件工程组织