基 于Web 和Java 的 网 上 协 作 技 术
吴 巍 枫----彭 德 纯----刘 溥
----
随 着 网 络 计 算 时 代 的 来 临, 以 计 算 机 网 络 为 通 信 媒 体 的 协 同 工 作 系 统( 亦 称 群 件) 受 到 了 商 业 界 的 青 睐 和 学 术 界 的 高 度 重 视。 在 群 件 市 场 上, 既 有 像IBM 的Lotus Notes 这 样 的 老 牌 劲 旅, 也 有 像Microsoft 的NetMeeting 这 样 的 后 起 之 秀。 而 近 两 年 来, 随 着Internet 如 火 如 荼 的 发 展 和Web、Java 技 术 的 迅 速 成 长, 群 件 正 逐 步 向 着 基 于Web 和Java 的 网 上 协 作 技 术 方 向 发 展。
一、 问 题 的 提 出
----
随 着 计 算 机 网 络 技 术 的 迅 速 发 展 和Internet 的 广 泛 应 用, 网 络 计 算 已 成 为 计 算 机 理 论 及 应 用 的 一 个 极 为 重 要 的 发 展 方 向。
----
从 技 术 发 展 和 应 用 的 角 度 看, 过 去 构 造 高 性 能 计 算 系 统 只 有 向 量 并 行 处 理 一 种 方 法, 如1975 年 的 向 量 处 理 机Cray1 , 其 主 要 特 点 是 高 度 流 水 线 和 向 量 处 理。 后 来, 出 现 了 大 规 模 并 行 处 理MPP 系 统, 如1991 年 推 出 的CM5, 包 含32 个 到16384 个 处 理 器 节 点。 最 近 几 年, 工 作 站 的 性 能 迅 速 提 高, 价 格 不 断 下 降。 随 着 基 于 交 换 的ATM 网 络 技 术 的 不 断 完 善, 基 于 网 络 的 多 计 算 机 结 构 成 为 构 造 并 行 处 理 系 统 的 一 个 新 方 向。 美 国 卡 内 基 · 梅 隆 大 学 的 实 验 系 统 — — 基 于 网 络 的 多 计 算 机 系 统Nectar 就 是 通 过 将 高 速ATM 和FDDI 网 络 与 一 组 高 性 能 的 工 作 站 连 接, 提 供 并 行 处 理 功 能。 该 系 统 达 到 了 可 以 和 传 统 的 紧 耦 合 多 计 算 机 系 统 相 媲 美 的 高 性 能, 同 时 又 具 有 无 可 比 拟 的 灵 活 性。
----
另 一 方 面, 计 算 机 网 络 已 经 向 开 放 式 的 异 构 网 络 发 展。Kouzes 等 人 提 出 在Internet 上 进 行 科 学 合 作 研 究。 香 港 科 技 大 学 的Chanson( 陈 天 雄) 教 授 等 人 正 在 进 行Internet 上 负 载 共 享 问 题 的 研 究。 因 此, 加 强 对 基 于 异 构 网 络 的 并 行 分 布 处 理 的 研 究 是 把 握 国 际 发 展 潮 流 的 关 键 和 一 个 基 本 要 求。
----
最 近,Java 已 发 展 成 为 应 用 于Internet/Intranet 异 构 网 络 环 境 的 最 热 门 的 程 序 设 计 语 言, 但 目 前 它 的 应 用 还 局 限 于WWW 浏 览 器。 能 否 扩 充Java 的 功 能, 充 分 利 用Internet 这 一 已 经 存 在 并 高 速 发 展 的 异 构 网 络 进 行 并 行 处 理 呢 ? 另 外, 在 现 代 社 会 和 信 息 时 代, 人 们 的 工 作 方 式 具 有 群 体 性、 分 布 性、 交 互 性 和 协 同 性。 那 么 能 否 在 广 泛 使 用 的Internet/Intranet 等 异 构 网 络 环 境 上 实 现 计 算 机 支 持 的 协 同 工 作 呢 ?
----
因 此, 充 分 发 挥Java 平 台 和Web 计 算 模 型 的 优 势, 在Internet/Intranet 环 境 中 建 立 基 于Java 的 面 向 对 象 分 布 并 行 处 理 系 统 和 协 同 工 作 的 协 作 工 具, 具 有 深 远 的 现 实 意 义。
二、 基 于Java 和Web 的 协 同 应 用 系 统 的 特 点
----
1 . 特 点
----
(1) 平 台 适 应 性 强 Java 语 言 的 最 大 优 点 是“ 一 次 编 程、 随 处 运 行” 的 跨 平 台 特 性。 此 外, 由 于Web、Java 和Internet 有 着 共 同 的 网 络 通 信 协 议TCP/IP, 因 而 基 于Java 和Web 的CSCW 应 用 系 统 既 能 在 小 型 局 域 网 上 运 行, 又 能 在 大 型 广 域 网 乃 至Internet 上 运 行。
----
(2) 开 放 性 和 可 扩 展 性 好 一 个 好 的 群 件 系 统 应 有 一 组 功 能 强 大 的 协 作 工 具 集 的 支 持, 并 且 用 户 可 以 将 自 己 开 发 的 协 作 工 具 模 块 嵌 到 系 统 工 具 集 中。
----
(3) 性 能/ 价 格 比 高 从 本 质 上 讲,Web 是 一 种 基 于HTTP 协 议 的C/S 计 算 模 式, 其 优 点 在 于 系 统 的 反 应 速 度 快、 可 维 护 性 好、 成 本 低, 系 统 功 能 具 有 灵 活 性 和 可 变 更 性。Java Applets 为 Web 的 静 态HTML 页 面 增 添 了 动 态 特 性 和 交 互 性, 而 且Java 程 序 不 需 要 移 植 费 用。 所 有 这 些 因 素 使 得 基 于Java 和Web 的CSCW 应 用 系 统 具 有 良 好 的 性 能 价 格 比。
----
2 . 需 要 解 决 的 问 题
----
由 于 浏 览 器 以HTTP 服 务 器 为 基 础, 涉 及WWW、Java、CGI、Plug -in 和Active -X 等 大 量 新 技 术, 因 此 基 于Web 和Java 的 群 件 系 统 需 要 解 决 一 些 新 问 题。
----
(1) 研 究 新 的 体 系 结 构 与 传 统 的Socket 通 信 不 同, 出 于 安 全 性 考 虑,Java 不 允 许 两 台 机 器 上 的Applet 之 间 直 接 通 信, 只 能 通 过 在Applet 的 源HTTP 服 务 器 上 增 加 一 个 用Java application 编 写 的 通 信 服 务 器 来 通 信。 但 是 实 际 系 统 客 户 端 的 通 信 模 块 往 往 较 为 复 杂, 且 具 有 一 定 的 通 用 性, 如 果 全 部 用Applet 来 实 现, 那 么 将 面 临 客 户 端 线 程 过 多、 下 载Applet 费 时 和 服 务 器 方 受 限 制 等 缺 点。 因 此, 必 须 研 究 新 的 通 信 机 制, 并 以 此 构 建 新 的 体 系 结 构。 下 述 的Tango 系 统 提 出 一 种 被 称 为 本 地 守 护 神LD(Local Daemon) 的Netscape Plug -in 方 案, 对 于 协 调 客 户 内 部、 客 户 和 服 务 器 以 及 客 户 和 客 户 之 间 的 通 信, 不 失 为 一 个 较 好 的 方 案。
----
(2) 发 掘 新 的 协 作 工 具 有 必 要 发 掘 基 于Web 和Java 的CSCW 协 作 工 具, 包 括 传 统 协 作 工 具 的Java 化 和 由Web 与Java 的 本 身 特 性 衍 生 出 来 的 新 的 协 作 工 具, 后 者 如 共 享 超 媒 体 电 子 笔 记 本 和 Web 浏 览 器 同 步。Web 浏 览 器 同 步 工 具 使 协 作 者 可 在Web 服 务 器 上 使 用 超 文 本 材 料 举 办 讲 座 和 讨 论。 网 络 围 棋 俱 乐 部 就 是 我 们 最 近 完 成 的 一 个CSCW 原 型 系 统。 它 通 过Web 服 务 器 公 布 对 弈 的 结 果 以 及 对 弈 的 人 员 名 单, 并 且 允 许 用 户 通 过 访 问 电 子 笔 记 本, 查 看 历 史 棋 谱 或 保 存 自 己 的 棋 局。
----
(3) 开 发 和 利 用 基 于Web 和Java 的 通 信 和 协 作 的 基 础 设 施、 环 境 和 工 具 一 方 面 要 充 分 利 用Java 提 供 的 分 布 式 处 理 设 施, 如 基 于 远 程 方 法 调 用(RMI:Remote Method Invocation) 的 分 布 式 对 象 模 型(DOM:Distributed Object Model) 和 遵 循CORBA 的IDL 系 统; 另 一 方 面, 用 户 可 以 开 发 通 用 的 通 信 和 协 作 环 境、 工 具 及 类 库。 目 前 的 一 些 系 统 如Tango、 Habanero、JCT 和PJVM 等 在 这 些 方 面 都 做 了 不 少 工 作。
三、Tango
----
Tango 为 建 立 基 于Web 的 协 作 环 境 提 供 了 一 个 集 成 平 台。 使 用Tango 能 够 快 速 地 将Web 和 非Web 应 用 程 序 集 成 为 一 个 多 用 户 协 作 系 统。Tango 的 功 能 与NetMeeting 类 似, 但 其 界 面 放 在 浏 览 器 里。 用 户 登 录 进 入Tango 环 境 后, 即 可 在 一 组 功 能 强 大 的 协 作 工 具 集 的 支 持 下 召 开 网 络 协 作 会 议。Tango 为 用 户 提 供 的Tango 核 心API 和Tango CA API, 允 许 用 户 开 发 自 己 的 协 作 模 块, 并 可 以 挂 进Tango 环 境。
----
1. 系 统 组 成
----
Tango 系 统 组 成 部 件 如 下 图 所 示
----
(1) 本 地 守 护 神(Local Daemon) 主 要 任 务 是 中 转Java Applet 和 本 地 应 用 程 序 与 中 心 服 务 器 的 通 信; 启 动 本 地 应 用 程 序; 在 同 一 节 点 上 运 行 的 应 用 程 序 之 间 传 送 消 息。Tango 守 护 神 由 嵌 入Web 浏 览 器 的 插 件(Plug -in) 来 实 现, 它 是Tango 中 唯 一 独 立 于 操 作 系 统 的 核 心 部 分。 目 前 有 基 于Navigator 3.0 的 实 现, 对Microsoft 的IE 来 说, 它 则 被 设 计 成 一 个Active X 控 件。
----
(2) 中 心 服 务 器(Center Server) 主 要 的 通 信 部 件。 所 有 本 地 守 护 神 都 与 中 心 协 作 服 务 器 通 信。 协 作 服 务 器 维 护 系 统 状 态 数 据( 参 加 者、 应 用 程 序 和 会 议 等)。 它 的 主 要 任 务 是 维 护 整 个 系 统 的 状 态, 为 参 与 每 一 次 会 议 的 应 用 程 序 之 间 的 消 息 传 递 寻 找 路 径, 并 记 录 后 端 数 据 库 事 件。
----
(3) 本 地 应 用 程 序(Local Application) 指 所 有 独 立 运 行 的 用 户 程 序。 本 地 应 用 程 序 可 用 任 何 编 程 语 言 编 写。 本 地 应 用 程 序 通 过Socket 与 本 地 守 护 神 通 信。 本 地 守 护 神 负 责 本 地 应 用 程 序 的 启 动 和 对 外 通 信。
----
(4)Java applets 用Java 编 写 的 用 户 程 序, 从HTTP 服 务 器 上 下 载, 在 浏 览 器 中 执 行。Java applets 调 用 本 地 守 护 神 的 方 法 彼 此 进 行 通 信。
----
(5) 控 制 程 序(Control Application) 向 用 户 提 供 与Tango 交 互 的 界 面。 控 制 程 序 的 功 能 包 括: 在 本 地 和 远 地 启 动 应 用 程 序, 创 建 或 连 接 已 有 的 会 议 和 退 出 应 用 程 序 等。
----
2. 事 件 流(Event Flow)
----
Tango 支 持 事 件 的 透 明 分 发。 通 过 插 入Tango API 调 用, 开 发 者 能 够 指 定 要 分 发 的 事 件。 如 何 分 发 和 分 发 到 哪 里 去 则 由 会 议 管 理 层 决 定。
----
对 下 述 用 户 动 作, 控 制 程 序 将 产 生 一 系 列 的 专 门 事 件:
- 进 入 系 统。
- 退 出 系 统。
- 激 活 运 行 本 地 程 序。
- 离 开 会 议。
- 加 入 与 新 的 应 用 程 序 的 会 议。
- 加 入 与 已 有 的 应 用 程 序 的 会 议。
- 激 活 运 行 远 程 应 用 程 序。
- 切 换 至Master 模 式( 或 者 说 发 言 权 控 制 事 件)。
----
对 这 些 事 件 的 详 细 描 述 可 参 阅Tango 文 档。
----
3.Tango 扩 展 机 制
----
Tango 体 系 结 构 具 有 可 伸 缩 性 和 可 扩 展 性, 一 个 具 体 体 现 是Tango 扩 展 机 制 — — 离 散 事 件 模 拟 器。 一 个 实 现 虚 拟 时 间 的 多 线 程 模 拟 引 擎 可 被 脚 本 语 言 驱 动 或 者 被 用 户 通 过 模 拟 控 制 器 交 互 式 地 控 制。 引 擎 和 控 制 器 分 别 由Java application 和Java applets 实 现。 模 拟 引 擎 可 为 任 一 兼 容Tango 的 应 用 程 序 创 建 消 息, 创 建 和 控 制 会 议, 并 可 实 现 执 行 路 径 取 决 于 用 户 输 入 的“ 剧 本”。
----
4. 视 频 会 议
----
为 了 确 保 系 统 的 到 可 伸 缩 性, 实 时 多 媒 体 流 不 通 过 中 心 服 务 器 发 送, 而 由 一 种 类 似 于Insoft( 现 被Netscape 收 购) 公 司 的OpenDVE 的 分 布 式 结 构 实 现。 该 机 构 支 持 广 播 方 式。 会 议 控 制 仍 由Tango 中 心 服 务 器 承 担。 音 频、 视 频 解 码 和 重 放 功 能 由Java 实 现。 目 前 支 持 两 种 音 频(GSM 和ADPCM) 和 低 速 率H.263( 电 话 线)、 中 速 率H.261(ISDN 线 路) 和 高 速 率 的YUV9 格 式( 局 域 网) 三 种 视 频 编 码 解 码 器。
----
5. 协 作 工 具
----
Tango 在 其 框 架 下 开 发 了 很 多 协 作 工 具, 主 要 包 括:
----
(1) 交 谈(Chat) 支 持 在 线 文 本、 音 频 交 谈 和URL 剖 析。
----
(2) 共 享Web 浏 览 器 当 一 个 共 享 浏 览 器 用 户 连 接 某 一 个URL 时, 参 加 会 议 的 其 他 成 员 的 浏 览 器 自 动 地 跟 随 该URL。Tango 共 享Web 浏 览 器 工 具 建 立 在 标 准 的 未 修 改 的Netscape 浏 览 器 上。 两 个 浏 览 器 之 间 的 连 接 通 过Tango JavaScript 和 智 能 代 理 对 新 来 的HTML 页 面 进 行 分 析 来 实 现。
----
(3) 可 编 程 协 作Web 浏 览 器 当Master 获 取 一 个URL 文 档 时, 该 文 档 将 被Slave 共 享 或 观 看。 该 工 具 的 基 本 功 能 是 创 作、 编 辑 和 演 示 幻 灯 片。 已 定 义 的 一 组URL 由Master 一 步 一 步 地 向Slave 演 示。
----
(4) 音 频/ 视 频 会 议
----
(5) 共 享 音 频/ 视 频 播 放 器
----
(6) 共 享Internet 搜 索 引 擎 Master 上 一 些 流 行 的Internet 搜 索 引 擎, 如Yahoo、InfoSeek、 Alta -Vista 等 的 搜 索 结 果 可 被 其Slave 共 享。
----
(7) 支 持Web 的 远 程 教 学 工 具WebWisdomWeb Wisdom 是 一 个 交 互 式 远 程 教 学 工 具。 通 过 与 其 它Tango 协 作 工 具 结 合, 可 提 供“ 虚 拟 大 学” 的 解 决 方 案。
----
(8) 电 子 举 手 学 生 通 过 电 子 举 手 程 序 引 起 老 师 的 注 意, 或 表 明 自 己 不 懂 的 问 题, 老 师 在 收 到 这 些 重 要 的 反 馈 信 息 后 对 学 生 予 以 远 程 指 导。
----
(9)Hopfield 神 经 网 络 图 形 演 示
----
在Tango 的WWW 网 址http://trurl.npac.syr.edu/tango/ 上 可 下 载Tango 的Beta 版, 并 有 较 详 细 的 安 装 说 明。
四、JCT
----
JCT(Java Collaborator Toolset) 是 美 国Old Dominionda 大 学 开 发 的 一 个Java 应 用 程 序 的 协 作 平 台。 通 过 一 个 被 称 为Collawt 的 新 的AWT 类 库 替 代Java 原 有 的AWT 类 库,JCT 能 把 一 个 单 用 户 界 面 的 应 用 程 序 变 成 一 个 多 用 户 界 面 的 应 用 程 序, 从 而 支 持“ 透 明 协 作”(Transparent Collaboration)。Collawt 具 有 在 协 作 者 之 间 自 动 分 发 事 件 的 功 能, 即Collawt 解 释 所 有 的 用 户 事 件, 并 将 其 送 到 事 件 分 发 器, 由 事 件 分 发 器 向 协 作 组 内 该 应 用 程 序 的 所 有 拷 贝 广 播。 使 用Collawt 类,JCT 开 发 了 一 个 白 板 演 示 程 序。
----
Tango 的 网 址 为http://www.cs.odu.edu/ ~kvande/Projects/Collaborator/ , 从 中 可 以 得 到 有 关 资 料。
----
五、Habanero
----
Habanero 来 自 著 名 的NCSA。 由 于 系 统 全 部 用Java application 编 写, 因 而 不 能 在 浏 器 器 上 运 行。 从 功 能 上 看, 它 与Tango 大 同 小 异。 其 网 址 为http://www.ncsa.uiuc.edu/SDG/Software/Habanero/ 。
六、PJVM
----
PJVM 是 武 汉 大 学 于1996 年 研 制 的 基 于Java 的 面 向 对 象 分 布 处 理 系 统, 要 既 能 支 持 并 行 计 算 机, 又 能 实 现 分 布 处 理。 PJVM 系 统 扩 充 了Java 对 象 库, 解 决 了 多 线 程 存 取 共 享 存 储 变 量 的 同 步 问 题, 提 供 了 基 于 消 息 传 递 和 基 于 分 布 式 共 享 存 储 等 多 种 编 程 接 口, 实 现 多 种 计 算 模 式, 系 统 易 于 使 用、 灵 活 高 效。
----
另 外, 系 统 还 具 有 很 好 的 可 伸 缩 性, 能 够 在Intranet 乃 至 于Internet 上 进 行 并 行 分 布 处 理。 这 些 特 点 为 在 异 构 广 域 网 络 上 实 现 超 大 问 题 的 大 规 模 并 行 处 理, 实 现“ 计 算 机 支 持 的 协 同 工 作” 奠 定 了 基 础。
中国计算机世界出版服务公司版权所有
|