1、JAVA 程 序 员 应 当 如 何 来 选 择 RIA 的 开 发 环 境随 着 互 联 网 的 快 速 发 展 , 人 们 对 网 络 应 用 的 兴 趣 逐 步 在 提 高 , 迫 切 需 要 能够 构 造 一 个 “富 客 户 端 ”: 能 够 用 HTML 能 实 现 的 接 口 更 加 健 壮 、 反 应 更 加 灵敏 和 更 具 有 令 人 感 兴 趣 的 可 视 化 特 性 , 而 且 能 够 在 互 联 网 上 以 一 种 象 使 用 Web 一样 简 单 的 方 式 来 部 署 富 客 户 端 程 序 , 而 且 能 够 随 着 系 统 的 升 级 而 享 用 更 多 便
2、捷 的高 效 的 体 验 。而 这 , 是 一 个 趋 势 , 不 久 的 将 来 必 定 要 成 为 主 流 。当 前 , 基 于 HTML 的 应 用 程 序 之 所 以 变 得 流 行 是 由 于 应 用 系 统 的 部 署 成本 低 、 结 构 简 单 , 且 HTML 易 于 学 习 和 使 用 。 很 多 用 户 和 开 发 人 员 都 乐 于 放 弃由 桌 面 计 算 机 带 来 的 用 户 界 面 改 进 , 来 实 现 对 新 数 据 和 应 用 系 统 的 快 速 访 问 。 与丧 失 一 些 重 要 的 UI 功 能 相 比 , 基 于 Web 的 方 式 所 带 来 的
3、 好 处 要 更 大 得 多 。但 是 , 随 着 用 户 需 求 的 提 升 , 在 某 些 互 联 网 应 用 方 面 , 复 杂 的 应 用 可 能 需要 多 次 提 取 网 页 来 完 成 一 个 事 务 处 理 。 这 往 往 会 导 致 交 互 响 应 速 度 慢 , 让 人 无 法接 受 。 甚 至 有 可 能 需 要 多 次 操 作 才 能 得 到 用 户 最 终 结 果 。 之 所 以 如 此 , 用 户 对 交互 体 验 的 需 求 上 升 才 导 致 AJAX(Asynchronous JavaScript And XML)的 迅 速流 行 。 但 JavaScript
4、脚 本 引 擎 的 脆 弱 性 必 将 注 定 这 只 是 RIA 的 一 个 中 间 过渡 方 式 。在 一 个 典 型 的 RIA 应 用 体 系 结 构 (如 下 图 )中 , XML 通 常 被 用 作 数 据 传输 的 格 式 , 有 时 也 被 用 来 描 述 窗 体 的 布 局 。 客 户 端 可 以 保 持 与 数 据 源 的 连 接 , 这样 服 务 器 能 够 实 时 地 对 客 户 端 数 据 进 行 更 新 。用 于 富 客 户 端 (RIA)的 常 用 技 术 有 :1.JavaScript/Ajax2.JAVA(这 里 指 的 是 Applet 或 者 是 Java
5、 的 应 用 程 序 )3.Flash/Flex4.XUL, 等 等 。而 我 们 该 如 何 选 择 RIA 开 发 环 境 呢 ?而 基 于 以 上 开 发 技 术 实 现 RIA 的 应 用 的 解 决 方 案 有 上 百 种 之 多 , 通 常 情况 下 我 们 很 容 易 失 去 重 点 并 判 定 错 误 。Marc Domenig 给 出 了 他 的 答 案 (Rich Internet Applications and AJAX - Selecting the best product)。如 下 是 他 对 选 择 RIA 还 是 Ajax 的 判 定 图 。首 先 需 要 对
6、 自 己 将 要 开 发 的 项 目 回 答 几 个 问 题 , 这 样 才 能 做 出 正 确 的 选 择 。1)您 将 开 发 的 项 目 是 简 单 的 用 户 界 面 需 求 ?如 果 您 回 答 是 , 那 没 有 选 择 , HTML 将 是 最 快 捷 便 利 的 手 段 。 简 单 的HTML 也 能 够 完 成 绝 大 多 数 用 户 的 交 互 需 求 。但 如 果 想 提 供 用 户 UI 体 验 , 您 需 要 考 虑 下 如 下 RIA 技 术 特 性 :局 部 屏 幕 更 新 ;异 步 通 讯 ;服 务 器 端 推 送 数 据 ;支 持 直 接 操 作 的 部 件
7、;多 窗 口 应 用 ;模 式 对 话 框 ;菜 单 ;键 盘 导 航 , 等 等 。RIA 在 Web 应 用 体 系 结 构 中 提 供 富 客 户 端 操 作 体 验 , 其 目 标 是 整 合 桌 面 客户 端 和 WEB 应 用 程 序 的 优 势 , 而 常 用 的 开 发 技 术 就 是 如 上 提 到 的Java, JavaScript, Flash/Flex。 该 如 何 选 择 呢 ?这 就 需 要 您 回 答 第 二 个 问 题 了 。2)全 面 应 用 性 ?工 业 级 应 用 ?还 是 漂 亮 人 性 化 的 用 户 操 作 体 验 ?AJAX 既 不 是 一 个 产
8、 品 也 不 是 一 项 新 技 术 , 但 它 确 实 是 RIA 体 系 中 的一 个 新 的 分 支 。 它 是 基 于 JavaScript, XML 和 其 他 技 术 的 一 项 整 合 操 作 。是 否 采 用 Ajax 需 要 考 虑 如 下 几 个 问 题 :是 否 需 要 面 对 市 场 上 繁 乱 复 杂 的 浏 览 器 和 操 作 系 统 ;AJAX 所 封 装 和 支 持 的 UI 组 件 是 否 能 够 满 足 您 的 系 统 需 求 ;对 系 统 操 作 的 健 壮 性 需 求 ;(如 果 是 高 要 求 , 不 建 议 使 用 )。如 果 您 开 发 的 系 统
9、 需 要 的 是 工 业 级 应 用 需 求 , Marc Domenig 的 答 案是 采 用 Java。如 果 您 开 发 的 系 统 更 需 要 漂 亮 人 性 化 的 用 户 操 作 体 验 , Marc Domenig 建 议 采 用 Flash。Flash 是 一 个 已 经 成 熟 的 商 业 产 品 , 它 可 以 在 Web 网 页 中 引 入 交 互 式的 图 形 界 面 。 最 近 经 过 升 级 后 , 新 版 本 包 含 了 建 立 窗 体 风 格 的 应 用 程 序 的 功 能 。尽 管 Flash 作 为 一 个 在 Web 上 最 广 泛 部 署 的 前 端 技
10、 术 还 有 争 议 (取 决 于 所 选用 的 Flash Player 版 本 ), 但 据 称 已 经 有 98%以 上 的 桌 面 系 统 都 支 持Falsh。 由 于 用 来 创 建 动 画 式 图 形 的 Flash 工 具 其 功 能 十 分 强 大 和 是 可 视 化 的(与 之 相 反 其 它 技 术 要 求 进 行 低 级 的 图 形 编 码 ), 所 以 图 形 设 计 人 员 使 用 起 来十 分 得 心 应 手 。 Flah 采 用 的 脚 本 语 言 是 ActionScript-ECMAScript 1.5 的一 个 变 种 , 该 脚 本 语 言 又 被 称
11、为 JavaScript。 Flex 产 品 对 Flash 增 加 了 一 个XML 描 述 语 言 , 使 得 可 以 编 译 用 户 界 面 , 并 且 能 够 用 Flash Player 来 随 时进 行 描 述 。 Flex 使 得 传 统 的 开 发 机 构 能 更 好 地 了 解 和 使 用 Flash。 Flex 和Flash 的 最 大 缺 点 在 于 对 XML 和 Web 服 务 等 标 准 的 支 持 很 有 限 , 而 且 作 为 应用 开 发 工 具 的 环 境 还 不 大 成 熟 。 Flex 和 Flash 的 优 点 在 于 它 可 以 很 容 易 的 用来
12、 创 建 复 杂 的 动 画 式 显 示 , 以 及 可 以 使 用 第 三 方 控 件 。而 对 于 JAVA 程 序 员 来 说 , 可 以 把 所 有 的 有 关 企 业 级 的 应 用 , 包 括 数 据 库操 作 , 消 息 中 间 件 , 事 务 处 理 等 都 交 给 JavaEE 去 完 成 。 RIA 只 是 用 于 提 高用 户 体 验 , 提 高 可 操 作 性 的 一 种 方 式 。 我 们 可 以 根 据 开 发 系 统 的 用 户 需 求 去 做 正确 的 选 择 。 人 生 最 终 的 价 值 在 于 觉 醒 和 思 考 的 能 力 , 而 不 只 在 于 生 存 。