XML和 移 动 Agent技 术 在 用 户 交 互 中 的 作 用
许 倩 霞
( 桂 林 电 子 工 业 学 院 计 算 机 系 广 西 桂 林 541004)
[摘 要] 电 子 商 务 、 虚 拟 企 业 要 求 合 作 、 分 布 计 算 、 跨 平 台 信 息 共 享 。 移 动 Agent满 足 Internet应 用 程 序 移 动 性 和 开 放 性 的 要 求 , XML则 是 Internet数 据 描 述 的 标 准 , 保 证 异 构 环 境 下 的 高 度 互 操 作 性 。 XML和 移 动 Agent技 术 对 移 动 计 算 中 的 用 户 交 互 提 供 了 最 好 的 支 持 。 本 文 提 出 了 应 用 XML和 移 动 Agent实 现 的 用 户 交 互 模 型 。
[关 键 词] XML( 扩 展 标 记 语 言 ) ; 移 动 Agent; 交 互 ; UI( 用 户 界 面 )
[中 图 分 类 号]TN92.9.5 TP311.53 [文 献 标 识 码]A [文 章 编 号]1008— 7656(2003)01— 0038- 04
1 引 言
移 动 Agent是 指 代 表 用 户 完 成 某 项 任 务 的 半 自 动 /全 自 动 的 程 序 /过 程 。 移 动 Agent可 以 在 网 络 中 穿 行 , 从 某 个 节 点 开 始 它 的 运 行 , 保 存 当 前 运 行 状 态 , 迁 移 到 另 一 个 网 络 节 点 继 续 运 行 。 移 动 Agent的 优 点 很 多 , 尤 其 对 于 移 动 设 备 来 说 , 由 于 通 常 都 存 在 网 络 带 宽 有 限 、 计 算 能 力 不 强 的 问 题 , 移 动 Agent技 术 则 可 以 解 决 这 些 问 题 : 第 一 , 移 动 Agent可 以 迁 移 到 指 定 网 络 节 点 , 减 轻 了 对 端 对 端 网 络 持 续 连 接 的 要 求 。 这 对 于 无 线 网 络 的 低 带 宽 高 错 误 率 来 说 优 势 更 为 明 显 ; 第 二 , 低 端 设 备 如 PDA可 以 利 用 移 动 Agent完 成 复 杂 的 工 作 , 因 为 可 以 将 移 动 Agent派 遣 到 有 足 够 处 理 能 力 的 服 务 器 上 去 完 成 ; 第 三 , 移 动 Agent可 以 代 理 用 户 完 成 某 些 工 作 , 如 电 子 商 务 中 的 协 商 谈 判 等 等 。
2 移 动 Agent与 UI
移 动 性 和 自 主 性 是 移 动 Agent的 两 大 特 性 。 移 动 Agent的 自 主 性 主 要 是 指 它 们 代 表 用 户 而 不 是 它 们 自 己 去 工 作 的 能 力 。 为 此 , 移 动 Agent需 要 与 用 户 有 效 地 交 互 。 一 般 有 三 种 交 互 方 式 [1]:
● Initial交 互 ( Initial Interaction) — — 当 移 动 Agent创 建 时 需 要 与 创 建 者 交 互 , 获 取 与 任 务 有 关 的 指 示 及 细 节 ( 如 需 要 它 干 什 么 , 用 X元 购 买 Y产 品 等 等 ) 。
● In- progress交 互 ( In- progress Interaction) — — 在 指 定 任 务 的 处 理 过 程 中 进 行 的 交 互 , 移 动 Agent可 能 需 要 与 创 建 者 交 互 ( 能 否 增 加 我 的 预 算 ? ) 以 完 成 任 务 。
● Completion 交 互 ( Completion Interaction) — — 完 成 任 务 后 , 移 动 Agent需 要 将 结 果 反 馈 给 创 建 者 ( 如 产 品 Y的 详 细 信 息 ) 。
用 户 界 面 UI( User Interface) 形 式 如 何 较 大 程 度 上 取 决 于 两 个 方 面 : 用 户 使 用 的 计 算 平 台 ( PDA, PC等 ) 和 该 平 台 提 供 的 功 能 特 征 ( 如 Palm IIIc 提 供 彩 色 , Palm Vx提 供 8M内 存 等 ) 。 UI可 以 是 简 单 的 HTML形 式 , 只 包 括 基 本 的 用 户 输 入 机 制 ( 文 本 框 、 下 拉 列 表 ) , 可 以 在 PDA上 浏 览 。 UI还 可 以 是 Java applet, 包 括 复 杂 的 用 户 输 入 机 制 ( 语 音 识 别 、 拖 放 等 ) , 可 以 在 多 媒 体 PC上 运 行 。 影 响 UI类 型 ( 复 杂 /简 单 , 常 规 /定 制 ) 的 因 素 主 要 有 两 点 [2]: 用 户 本 地 是 否 应 用 了 Agent平 台 ; 和 移 动 Agent的 位 置 ( 本 地 还 是 远 程 ) 。 如 果 用 户 本 地 有 Agent平 台 , UI就 可 以 是 高 度 可 定 制 的 , 因 为 UI可 以 存 放 在 本 地 Agent平 台 中 。 前 提 是 假 设 用 户 的 计 算 平 台 是 PC机 , 有 足 够 的 存 储 和 处 理 能 力 来 运 行 Agent平 台 。 然 而 对 移 动 设 备 来 讲 , 情 况 并 不 总 是 这 样 , 它 们 往 往 不 具 备 充 足 的 存 储 和 处 理 Agent的 能 力 。 因 而 , 移 动 设 备 上 的 UI往 往 是 远 程 产 生 再 下 载 到 移 动 设 备 上 。
对 移 动 Agent来 说 , In- progress交 互 最 为 关 键 , 必 须 得 到 完 全 支 持 。 我 们 常 常 需 要 动 态 建 立 起 来 的 UI, 因 为 常 规 的 UI不 能 在 所 有 的 环 境 中 工 作 。 例 如 , 典 型 的 常 规 UI设 计 在 800* 600分 辨 率 的 PC上 工 作 , 以 便 于 适 应 绝 大 多 数 的 情 形 。 即 使 采 用 HTML设 计 UI, 在 外 观 和 功 能 上 还 是 有 欠 缺 , 因 为 HTML中 的 标 记 有 限 。 这 也 是 为 什 么 HTML扩 展 后 允 许 包 含 JavaScript, Java applets和 Active X组 件 , 因 为 它 们 提 供 了 功 能 更 为 丰 富 、 高 度 可 定 制 的 UI。 然 而 , 加 入 这 些 语 言 却 限 制 了 某 些 计 算 平 台 , 因 为 诸 如 PDA之 类 的 设 备 仅 仅 能 识 别 HTML标 记 中 的 一 个 子 集 。 所 以 我 们 说 , 定 制 UI是 必 需 的 。
目 前 存 在 有 许 多 的 移 动 Agent平 台 , IBM Aglet[3], Concordia, Mole, W- MAP, Ara, Odysessy, Voyager和 ffMain。 许 多 平 台 只 提 供 了 少 量 的 移 动 Agent和 用 户 交 互 功 能 , 只 允 许 Initial交 互 和 Completion交 互 , 且 UI类 型 也 受 限 制 。 例 如 , Aglet平 台 上 定 制 的 UI可 以 创 建 移 动 Agent, 而 在 Concordia上 则 使 用 常 规 UI。 而 且 一 旦 交 互 中 涉 及 远 程 设 备 且 用 户 没 有 运 行 Agent平 台 时 , 前 述 各 平 台 就 只 提 供 常 规 UI。 象 在 W- MAP平 台 上 , 用 户 可 以 利 用 在 浏 览 器 上 运 行 的 常 规 UI启 动 一 个 移 动 Agent。
至 于 In- progress交 互 , 更 少 有 Agent平 台 支 持 , 只 有 一 个 , ffMain[]该 平 台 允 许 在 In- progress交 互 中 使 用 定 制 的 基 于 HTML的 UI。 用 户 不 必 运 行 Agent平 台 , 只 要 有 Web浏 览 器 即 可 。 不 过 这 种 定 制 的 UI有 许 多 限 制 : HTML UI是 预 先 产 生 的 , 即 移 动 Agent需 要 携 带 UI旅 行 ; UI极 其 简 单 , 仅 仅 使 用 HTML标 记 ; HTML标 记 还 受 限 于 UI可 能 运 行 的 平 台 , 象 PDA类 的 设 备 只 能 识 别 HTML的 一 个 子 集 。
3 XML与 UI
由 于 Internet的 盛 行 , 其 中 又 以 Web网 站 最 多 , 传 统 的 网 页 都 以 HTML标 记 语 言 所 编 写 。 但 HTML功 能 有 限 , HTML的 各 种 标 记 指 定 了 数 据 的 显 示 效 果 , 但 并 不 管 数 据 本 身 的 意 义 是 什 么 。 XML在 这 一 点 上 有 了 本 质 的 改 进 , 利 用 描 述 数 据 ( 也 称 元 数 据 , metadata) 的 概 念 , 利 用 数 据 ( 标 记 名 称 ) 来 描 述 另 一 个 数 据 ( 标 记 内 容 ) 。 对 于 XML而 言 , 显 示 格 式 并 不 是 最 重 要 的 , 相 对 地 , 数 据 所 代 表 的 意 义 才 是 最 重 要 的 。 因 此 , XML不 负 责 标 记 显 示 的 格 式 , XML允 许 通 过 XSL、 CSS、 HTML+ XML Island以 及 编 写 程 序 并 通 过 DOM取 出 数 据 再 显 示 等 复 杂 灵 活 的 方 式 进 行 显 示 。
XML和 HTML一 样 , 也 可 以 通 过 HTTP的 传 输 标 准 来 传 送 数 据 , 并 且 XML并 不 需 要 完 全 在 服 务 器 端 执 行 相 关 程 序 , 因 此 使 用 XML可 以 减 轻 服 务 器 的 工 作 量 , 达 到 平 衡 传 送 与 接 收 端 工 作 量 的 目 标 。 对 于 服 务 器 而 言 , 传 送 XML比 传 送 HTML更 好 。 如 果 传 送 HTML给 客 户 端 浏 览 器 的 话 , 服 务 器 必 须 多 做 一 件 事 , 就 是 必 须 先 确 定 客 户 端 浏 览 器 对 于 返 回 的 HTML标 记 都 能 产 生 同 一 格 式 的 网 页 , 而 返 回 XML时 却 完 全 不 必 考 虑 。 当 服 务 器 返 回 XML格 式 时 , 可 以 夹 带 一 个 排 版 样 本 ( StyleSheet) 一 并 返 回 客 户 端 , 这 个 排 版 样 本 用 来 转 换 XML成 为 HTML的 标 记 , 而 这 个 工 作 可 以 交 给 浏 览 器 来 做 。 如 IE 5.x内 含 的 XSL处 理 器 , 可 以 通 过 XSL排 版 样 本 中 的 指 令 将 XML转 换 为 HTML标 记 。
XML最 主 要 的 长 处 在 于 当 两 个 相 同 组 织 内 或 甚 至 在 不 同 组 织 间 若 要 做 信 息 交 换 时 , 采 用 XML作 为 表 示 语 言 最 简 单 有 效 。 XML对 于 集 成 多 方 来 源 的 信 息 与 提 出 一 个 供 给 多 种 显 示 的 标 准 数 据 存 储 方 面 表 现 的 也 极 为 出 色 。 目 前 已 有 以 XML所 制 定 的 工 业 标 准 XML/EDI( Electronic Data Interchange) 。 XML既 可 以 通 过 XSL等 排 版 样 本 保 有 显 示 数 据 的 功 能 , 同 时 也 能 够 在 传 播 信 息 时 仍 旧 保 有 数 据 的 本 质 涵 义 — — 因 为 它 能 够 使 用 标 记 与 属 性 描 述 数 据 。
综 上 所 述 , W3C所 制 定 并 推 荐 使 用 是 新 一 代 标 记 语 言 XML适 合 用 于 作 为 XML知 识 表 示 法 以 及 数 据 交 换 格 式 , 是 理 想 的 用 于 UI的 语 言 。
4 动 态 创 建 UI的 过 程
下 图 所 示 移 动 Agent动 态 创 建 UI的 过 程 。 这 一 模 型 与 计 算 平 台 无 关 。
这 里 包 括 两 种 类 型 的 服 务 器 , 即 UI引 擎 服 务 器 和 UI对 象 库 服 务 器 。 UI引 擎 服 务 器 提 供 服 务 , 满 足 移 动 Agent创 建 动 态 UI的 要 求 。 UI对 象 库 服 务 器 只 是 存 储 了 UI引 擎 服 务 器 所 需 的 各 种 各 样 的 UI对 象 。
UI对 象 库 中 的 每 一 个 对 象 都 被 分 类 且 赋 予 了 一 个 唯 一 的 ID号 , 该 ID号 不 仅 在 一 个 UI对 象 库 中 唯 一 , 在 其 它 对 象 库 中 也 是 唯 一 的 。 ID号 由 几 部 分 组 成 : 对 象 库 服 务 器 的 IP地 址 、 对 象 类 型 代 码 、 对 象 分 类 时 的 时 间 日 期 和 一 个 随 机 数 。 所 有 UI对 象 都 包 含 详 细 描 述 UI对 象 外 观 和 功 能 的 详 细 信 息 。 当 UI引 擎 服 务 器 创 建 UI时 , 据 此 可 以 找 到 满 足 给 定 要 求 的 UI对 象 来 。
例 如 , 当 一 个 移 动 Agent请 求 UI引 擎 服 务 器 创 建 一 个 动 态 定 制 的 UI时 , 要 提 供 两 个 信 息 : 一 个 XML模 板 指 定 UI类 型 ( 外 观 及 功 能 ) 和 一 个 用 户 配 置 信 息 ( 用 户 的 喜 好 ) 。 XML模 板 从 移 动 Agent访 问 的 Web站 点 上 获 取 , 在 XML模 板 内 列 出 了 UI的 详 细 需 求 。 下 面 是 一 个 XML模 板 的 例 子 : 一 个 移 动 Agent刚 刚 为 它 的 顾 主 购 买 了 一 个 DVD, 希 望 将 结 果 以 Completion交 互 的 形 式 显 示 出 来 。
<?xml version=“ 1.0” encoding=“ utf- 8” standalone=“ yes” ?>
MatrixCover.gif
UI引 擎 服 务 器 利 用 XML模 板 中 指 定 的 需 求 ( 目 标 平 台 、 任 务 域 等 等 ) 搜 索 UI对 象 库 服 务 器 , 找 出 匹 配 的 UI对 象 。 这 一 搜 索 可 以 跨 越 网 络 域 中 许 多 台 UI对 象 库 服 务 器 , 最 后 给 出 满 足 要 求 的 一 系 列 UI对 象 列 表 。 然 后 , UI引 擎 服 务 器 负 责 进 一 步 分 类 筛 选 , 挑 出 一 个 合 适 的 UI对 象 。 UI引 擎 服 务 器 可 以 决 定 将 几 个 UI对 象 结 合 成 一 个 单 独 的 UI而 不 是 只 有 一 个 UI对 象 。 其 输 出 结 果 将 是 指 定 UI结 构 的 XML文 档 。 下 面 是 一 个 XML文 档 的 例 子 , 其 中 包 括 一 个 UI对 象 “ FinalResult” (无 子 UI对 象 ), 类 型 为 “ JPanel” 。
<?xml version=“ 1.0” encoding=“ utf- 8” standalone=“ yes” >
Object>
一 旦 UI引 擎 服 务 器 完 成 对 UI请 求 的 处 理 , 即 产 生 一 个 XML文 档 , 其 中 包 含 了 UI的 结 构 , 该 结 构 决 定 UI如 何 构 造 ( 在 客 户 端 ) 并 展 示 给 用 户 。 构 造 有 三 种 形 式 : ( 1) 提 供 到 UI对 象 的 链 接 ( Linked) ; ( 2) 将 UI对 象 嵌 入 XML文 档 ( Embedded) ; 或 ( 3) 提 供 一 个 网 络 地 址 , 用 户 可 以 从 那 里 上 载 UI对 象 ( 仅 适 用 于 PDA设 备 ) ( Upload) 。
Linked的 XML文 档 只 是 简 单 地 提 供 对 UI对 象 的 访 问 链 , 这 意 味 着 , 一 旦 用 户 接 收 到 XML文 档 , XML需 要 被 解 析 以 决 定 下 载 哪 些 UI对 象 。 Embedded的 XML文 档 则 包 含 一 个 附 带 的 jar文 件 , 包 含 UI所 需 的 各 个 UI对 象 。 这 时 不 必 从 网 络 上 下 载 UI对 象 。 Upload的 XML文 档 仅 仅 适 用 于 用 户 使 用 PDA的 情 况 , 使 用 PDA设 备 的 HotSync功 能 上 载 UI对 象 。 这 时 要 求 我 们 把 UI对 象 存 放 在 一 个 特 定 的 网 络 位 置 , 运 行 一 个 应 用 程 序 , 指 示 PDA设 备 执 行 HotSync下 载 并 安 装 UI对 象 。
XML文 档 本 身 并 不 能 被 用 户 解 读 , 必 须 通 过 客 户 端 解 析 。 由 于 移 动 Agent可 能 运 行 在 各 种 各 样 的 计 算 平 台 上 ( PC, MAC, Solaris, PDA等 等 ) , 我 们 不 能 假 定 每 台 设 备 上 都 有 XML解 析 器 ( parser) 。 有 两 种 办 法 解 决 这 个 问 题 : 一 种 是 采 用 动 态 XML解 析 applet, 另 一 种 是 采 用 预 安 装 的 XML解 析 器 应 用 程 序 。 动 态 XML解 析 器 applet只 能 用 在 支 持 Web浏 览 器 的 计 算 设 备 上 , 这 些 设 备 或 者 提 供 默 认 的 JVM或 者 支 持 Java插 件 , 一 旦 用 户 要 求 交 互 , 就 提 供 动 态 applet对 XML文 档 进 行 解 析 , 创 建 UI。 预 安 装 XML解 析 器 应 用 程 序 仅 用 于 PDA设 备 , 因 为 PDA上 的 浏 览 器 不 支 持 Java, 这 样 预 安 装 的 基 于 XML的 Java应 用 程 序 将 会 解 析 XML文 档 , 并 执 行 HotSync操 作 , 创 建 UI。
本 文 提 出 了 为 不 同 客 户 端 访 问 设 备 而 定 制 的 移 动 Agent与 用 户 交 互 的 界 面 的 动 态 创 建 方 法 , 目 的 主 要 是 研 究 支 持 移 动 Agent和 电 子 商 务 的 定 制 UI的 动 态 创 建 , 以 满 足 不 同 系 统 软 硬 件 的 需 求 和 用 户 喜 好 。 XML标 准 被 设 计 为 既 能 描 述 数 据 , 又 能 在 多 种 应 用 程 序 和 计 算 平 台 之 间 交 换 信 息 , 是 Internet上 结 构 化 信 息 互 相 变 换 的 主 要 数 据 格 式 。 用 XML可 以 方 便 地 在 不 同 计 算 平 台 上 创 建 定 制 的 UI。 经 过 设 计 的 移 动 Agent结 构 允 许 它 们 在 异 构 网 络 环 境 如 Internet上 操 作 XML文 件 。 相 信 XML和 移 动 Agent技 术 的 结 合 对 移 动 计 算 环 境 下 的 应 用 程 序 开 发 必 将 作 出 巨 大 贡 献 。
[参 考 文 献]
[1]P.Mihailescu C, Gamage and E.A.Kendall. Mobile Agent to User Interaction(MAUI).http://www.pscit.monash.edu.au/~ patrikm/maui.pdf
[2]A.Lingnau and O.Drobnic. Agent- user communications: Requests, results, interaction. In Proceedings of the Second International Workshop on Mobile Agents 98(MA′ 98), Stuttgart, Germany, September 9- 11 1998.
[3]D.Lange and T.Chang. IBM Aglets workbench programming mobile agents in Java. White paper, IBM Corporation, 1996. http://aglets.trl.ibm.co.jp/whitepaper.htm
[作 者 简 介]许 倩 霞 , 1964年 生 , 副 教 授 ,硕 士 生 导 师 。 主 要 研 究 领 域 : 移 动 Agent技 术 , 电 子 商 务 , 分 布 计 算 。 E- Mail:ccqxxu@gliet.edu.cn
[责 任 编 辑 张 宜]
XML and Mobile Agent Technology in User Interaction
XU Qianxia
Department of Computer, Guilin Institute of Electronic Technology
[Abstract]E- Commerce and virtual enterprise requires collaborating, distributed computing and information sharing across various platforms. Mobile Agent suits the mobility and openness of the Internet applications. And XML is a standard for Internet data representation, which can guarantee a high degree of interoperability between heterogeneous environments. XML and Mobile Agent technology offered best support for user interaction in mobile computing environment. This paper proposes a user interaction model based on XML and mobile agent.
[Key Words] XML(eXtensible Markup Language); Mobile agent; Interaction; UI(User Interface)