中國計算機報記者 黃 盛 萍
--------------------------------------------------------------------------------
網 絡 時 代 的 世 界 語
長 期 以 來, 台 式 機 操 作 系 統 市 場 的 霸 主 位 置 一 直 被 微 軟 牢 牢 地 占 據 著, 而 Windows 95 的 出 台 又 使 得 微 軟 的 地 位 更 加 鞏 固。 全 球 軟 件 業 巨 人 微 軟 和 芯 片 之 王 Intel 聯 合 壟 斷 形 成 的 “Wintel” 標 准 的 PC 機 占 據 了 世 界 80% 以 上 的 市 場, 而 且 Intel 的 微 處 理 器 芯 片 還 在 不 停 地 更 新 換 代, 微 軟 的 操 作 系 統 仍 舊 在 頻 頻 升 級。 面 對 兩 大 公 司 築 就 的 堅 固 的 “柏 林 牆”, 用 戶 別 無 選 擇 地 跟 著 微 軟 和 Intel 走。 然 而, 隨 著 網 絡 計 算 時 代 的 到 來、 全 球 Internet 的 迅 猛 發 展, 各 種 異 構、 分 布 式 的 軟 硬 件 平 台 越 來 越 多, 使 不 同 平 台 之 間 的 信 息 流 通 存 在 極 大 障 礙, 軟 件 開 發 者 們 越 來 越 不 願 意 用 面 向 特 定 平 台 的 專 用 代 碼 編 寫 應 用 程 序, 希 望 使 用 一 種 不 依 賴 於 本 地 平 台 的 語 言 進 行 編 程。
Sun 公 司 的 Java 語 言 應 運 而 生。 Java 是 一 種 面 向 對 象、 可 在 Internet 網 上 分 布 執 行 的 程 序 設 計 語 言, 它 最 重 要 的 特 性, 就 是 用 Java 語 言 編 寫 的 應 用 (Applet) 可 在 任 何 一 個 硬 件、 軟 件 平 台 上 運 行。 Java 的 出 台, 很 快 就 引 起 廣 大 用 戶 和 眾 多 廠 商 們 的 關 注, 同 時 也 在 軟 件 開 發 者 們 的 心 中 點 燃 了 希 望 之 火。
以 往, 我 們 為 較 普 通 的 計 算 過 程 編 寫 應 用, 也 不 得 不 依 賴 於 用 戶 平 台 的 操 作 系 統 和 微 處 理 器 結 構; 有 了 Java 以 後, 用 戶 可 能 再 也 用 不 著 頻 繁 地 去 將 計 算 機 以 及 操 作 系 統 升 級, 在 維 護、 升 級 上 的 費 用 就 會 大 大 減 少, 用 戶 可 將 用 Java 編 寫 的 應 用 通 過 Internet 或 其 它 裝 有 Java 環 境 的 網 絡 快 速 傳 輸 給 其 它 用 戶。 Java 具 有 高 度 的 可 移 植 性, 用 它 編 寫 的 應 用 可 以 不 加 修 改 地 運 行 在 異 構 的 主 機 系 統 上, 信 息 系 統 的 管 理 程 序 可 以 在 網 絡 上 廉 價 地 傳 輸 及 維 護, 開 發 人 員 還 可 以 免 費 得 到 Java 的 可 執 行 代 碼、 Java 編 譯 器 以 及 Ja-va 的 開 發 人 員 工 具 包。
利 用 Java 可 以 開 發 出 許 多 應 用, 這 裡, 僅 向 讀 者 介 紹 Sun 公 司 推 出 的 Internet 上 的 一 種 交 互 式 應 用 ? ? ? HotJava 浏 覽 器。
HotJava 是 一 種 WWW(World Wide Web) 浏 覽 器, 也 是 完 全 用 Java 語 言 編 寫 的 主 要 面 向 最 終 用 戶 的 應 用。 開 發 者 將 其 產 品 起 名 “HotJava(熱 咖 啡)” 的 目 的 也 許 是 想 讓 人 們 在 使 用 HotJava 時 像 喝 一 杯 熱 氣 騰 騰 的 咖 啡 那 樣 適 意、 輕 松。
Java 的 醞 釀 始 於 1990 年, 正 式 推 出 是 在 1995 年 的 5 月, HotJava 浏 覽 器 則 是 與 Java 語 言 同 期 推 出 的, 它 是 第 一 個 基 於 Java 語 言 及 其 運 行 系 統 而 建 立 的 應 用。 HotJa-va 不 僅 充 分 顯 示 了 Java 語 言 環 境 的 威 力, 而 且 為 在 更 復 雜、 離 散、 異 構 的 Internet 網 上 進 行 分 布 式 Java 編 程 提 供 了 一 個 理 想 的 平 台。
Web 浏 覽 器 的 發 展 史
Internet 正 以 驚 人 的 速 度 快 速 增 長, 時 至 網 絡 時 代 的 今 天, Internet 已 經 變 成 了 一 個 雜 亂 無 章 的 數 據 海 洋, 這 個 數 據 海 洋 中 存 在 著 多 種 異 構 的 網 絡 主 機 系 統, 在 其 上 使 用 著 各 種 類 型 的 格 式 存 儲 數 據, 不 同 的 數 據 存 儲 格 式 及 其 傳 輸 協 議 又 在 這 種 無 序 的 結 構 中 形 成 了 某 些 規 則。 網 絡 上 增 長 最 為 迅 速 的、 也 是 用 戶 最 感 興 趣 的 領 域 之 一 就 是 WWW, 它 基 於 超 文 本 來 構 造 系 統, 用 於 指 導 用 戶 在 Internet 的 數 據 海 洋 中 漫 游。
Web 在 Internet 中 有 著 舉 足 輕 重 的 地 位, 其 浏 覽 器 將 數 據 獲 取 功 能 和 數 據 圖 形 化 功 能 結 合 在 一 起。 目 前 最 普 通 的 處 理 浏 覽 器 文 件 格 式 的 語 言 是 超 文 本 構 造 語 言 (HyperText Makeupanguage, Html), 超 文 本 概 念 的 關 鍵 是 在 其 文 檔 中 含 有 與 其 它 文 檔 的 連 接, 超 文 本 不 僅 包 括 文 字 信 息, 而 且 還 包 含 聲 音、 圖 像、 動 畫 等 廣 義 的 文 本。 WWW 的 客 戶 程 序 與 服 務 器 程 序 的 相 互 通 信 采 用 超 文 本 傳 輸 通 訊 協 議 HTTP(HyperText Transmission Protocol)。
翻 開 Web 浏 覽 器 的 發 展 史, 人 們 可 以 看 到: 第 一 代 Web 浏 覽 器 以 NCSA Mosaic 和 Netscapeavigator 為 其 典 型 代 表。 它 們 用 HTML 語 言 生 成 一 個 超 文 本, 該 文 本 可 把 用 戶 點 (Click) 到 的 任 何 應 用 連 接 起 來。 這 些 浏 覽 器 的 工 作 方 式 是 通 過 網 絡 獲 得 連 接 的 數 據, 還 可 以 卸 載 數 據, 並 將 其 顯 示 到 用 戶 的 本 地 屏 幕 上。
C/S 計 算 新 概 念
HotJava 帶 來 了 全 新 Client/Server 計 算 的 雙 重 概 念。 通 常 的 Client/Server 計 算 是 若 干 個 客 戶 機 與 一 個 大 型 的 中 央 服 務 器 長 期 連 接 著, 每 個 客 戶 機 都 可 以 訪 問 中 央 服 務 器 的 數 據 及 其 應 用 程 序。 即 傳 統 的 Client/Server 計 算 大 致 為 一 個 星 型 結 構: 中 央 是 一 個 大 型 服 務 器, 四 周 是 客 戶 機。 由 WWW 產 生 的 新 的 網 絡 模 型 是 一 種 廣 域 網, 即 若 干 個 客 戶 機 和 多 個 服 務 器 短 時 連 接, 實 行 控 制 智 能 由 服 務 器 轉 移 到 了 客 戶 機, 回 答 “由 誰 負 責” 也 從 服 務 器 轉 移 到 了 客 戶 機 上。
第 一 代 Web 浏 覽 器 產 生 的 主 要 問 題 是: 浏 覽 器 必 須 知 道 每 一 種 可 能 出 現 的 數 據 類 型、 通 訊 協 議 以 及 硬 件 線 路 連 接 的 方 法, 這 就 意 味 著 一 旦 有 新 的 數 據 類 型、 協 議 和 線 路 連 接 出 現, 這 些 浏 覽 器 就 得 修 改 或 升 級 以 適 應 新 的 變 化 情 況。 對 於 最 終 用 戶 而 言, 他 就 得 不 停 地 知 道 存 在 什 麼 樣 的 協 議、 哪 些 浏 覽 器 可 以 處 理 這 些 協 議、 哪 些 游 覽 器 的 哪 些 版 本 可 以 與 別 的 版 本 兼 容。 而 Internet 卻 以 令 人 吃 驚 的 速 度 迅 猛 地 發 展, 各 種 各 樣 的 協 議、 不 同 版 本、 不 同 廠 家 的 浏 覽 器 使 人 眼 花 缭 亂, 這 種 情 況 的 發 展 很 快 便 會 失 去 控 制。 同 時, 隨 著 Internet 電 子 貿 易 的 飛 速 增 長, 網 絡 的 安 全 性 也 日 益 成 為 Internet 用 戶 最 關 心 的 問 題, 基 於 網 絡 的 應 用 必 須 抵 御 網 絡 病 毒 及 其 它 各 種 入 侵 者 的 侵 襲。
構 造 一 個 類 似 HotJava 這 樣 的 浏 覽 器, 其 最 重 要 的 技 術 之 一 便 是 要 求 它 安 全 可 靠。 HotJava 本 身 帶 有 一 系 列 的 實 用 工 具, 為 用 戶 提 供 了 高 度 的 安 全 性。 它 的 安 全 性 表 現 在 以 下 兩 級 上:
第 一 級: Java 語 言 解 釋 器
HotJava 的 第 一 級 安 全 性 來 自 Java 語 言 自 身 的 特 性。 其 安 全 性 表 現 在 以 下 幾 個 方 面:
? 在 使 用 Java 語 言 編 寫 應 用 程 序 時, 在 需 要 進 行 大 量 的 編 譯 時 和 運 行 時 進 行 二 級 檢 查, 從 而 減 少 了 開 發 人 員 的 出 錯 機 會;
? Java 用 運 行 時 間 系 統 來 管 理 用 戶 的 內 存, 在 內 存 管 理 模 塊 中, 語 言 基 本 上 沒 有 指 針 及 指 針 的 相 關 算 法, 這 樣, 用 戶 程 序 不 會 有 指 針 懸 空、 內 存 溢 出 和 內 存 冗 余 的 現 象 發 生;
? 在 Java 的 運 行 時 間 系 統 中, 內 置 了 防 病 毒 和 損 害 文 件 系 統 的 保 護 機 制, 這 樣 即 使 從 In-ternet 網 上 卸 載 或 者 修 改 Java 應 用 程 序, 最 終 用 戶 也 是 非 常 安 全 的;
? Java 禁 止 未 授 權 的 代 碼 對 Java 程 序 進 行 干 預, 因 此 保 證 了 程 序 的 安 全 性。
當 代 碼 模 塊 被 移 植 入 HotJa-va 中 時, 它 實 際 上 並 不 知 道 代 碼 模 塊 是 否 具 有 Java 語 言 規 則 帶 來 的 安 全 性, 因 為 本 地 的 Java 語 言 編 譯 器 不 可 能 產 生 這 種 安 全 性。 移 植 的 代 碼 由 一 系 列 檢 查 所 控 制, 開 始 是 直 接 測 試 代 碼 的 格 式 是 否 正 確, 最 後 是 由 識 別 器 進 行 一 系 列 一 致 性 檢 查。 實 際 上, HotJava 的 一 級 安 全 性 可 以 說 是 Java 語 言 環 境 安 全 性 的 繼 承。
第 二 級: 高 層 協 議
這 一 級 安 全 性 基 本 保 證 了 界 面 級 不 會 受 到 侵 犯, 它 在 系 統 的 較 高 層 實 現 了 保 護 機 制。 例 如 文 件 訪 問 初 始 化 時, 產 生 一 個 訪 問 控 制 表, 該 控 制 表 負 責 對 移 植 代 碼 形 成 (或 由 其 衍 生) 文 件 的 讀 / 寫 訪 問 實 施 控 制。 這 些 訪 問 控 制 表 的 缺 省 值 要 求 非 常 嚴 格, 如 果 一 段 移 植 代 碼 試 圖 去 訪 問 未 被 允 許 訪 問 的 文 件, 診 斷 箱 允 許 用 戶 來 判 定 是 否 讓 其 作 指 定 的 訪 問。
HotJava 的 特 點
在 使 用 第 一 代 浏 覽 器 時, 用 戶 需 要 知 道 有 關 Internet 數 據 格 式、 通 訊 協 議 以 及 硬 件 線 路 連 接 方 面 的 知 識, 有 了 HotJava 以 後, 情 況 就 大 不 相 同 了。 它 可 以 將 不 同 的 數 據 格 式 協 調 起 來, 並 可 隨 時 通 過 網 絡 添 加 新 的 文 件 格 式, 用 戶 無 需 知 道 各 種 通 訊 協 議 的 內 容。 因 此, 與 第 一 代 浏 覽 器 相 比, HotJava 浏 覽 器 有 幾 個 重 要 特 點:
1. 動 態 伸 縮 性
HotJava 可 以 動 態 伸 縮, 它 可 以 從 網 絡 上 的 任 何 一 個 地 方 隨 意 卸 載 Java 應 用 程 序 (applets), 並 在 用 戶 的 本 地 客 戶 機 上 運 行。 而 且, HotJava 增 加 了 可 將 靜 態 文 檔 變 換 為 動 態 應 用 的 動 態 特 性, 從 而 擴 展 了 浏 覽 功 能。 它 在 網 絡 上 的 浏 覽 技 術 取 自 Mosaic 和 其 它 浏 覽 器 產 品。
動 態 性 表 現 在 以 下 三 個 方 面: 首 先, 內 容 是 動 態 的。 例 如, 用 Java 語 言 編 寫 一 段 程 序, 配 以 HotJava 應 用 程 序 接 口, 用 於 實 現 化 學 實 驗 的 交 互 式 仿 真 過 程, 結 果 使 人 們 可 以 用 HotJava 浏 覽 器 通 過 網 絡 輕 而 易 舉 地 看 到 實 驗 的 仿 真 變 化 情 況, 並 且 還 能 與 其 交 互, 而 不 只 是 一 些 文 本 的 靜 態 圖 像。 而 且, 實 現 化 學 實 驗 呈 活 動 狀 態 的 代 碼 不 包 含 可 能 損 害 系 統 的 代 碼, 因 為 這 部 分 代 碼 繼 承 了 Java 語 言 安 全 性 和 穩 定 性 的 特 征。
其 次, 類 型 是 動 態 的, HotJava 可 以 支 持 多 種 不 同 的 對 象 類 型, 例 如 絕 大 多 數 Web 浏 覽 器 支 持 一 些 圖 像 格 式 的 集 合, 如 GIF、 Xll pixmap、 Xllbitmap, 再 遇 到 其 它 格 式 的 圖 像 信 息 就 無 法 直 接 進 行 處 理; HotJava 則 不 然, 它 可 以 隨 意 將 代 碼 連 接 到 新 的 顯 示 格 式, 每 遇 到 新 的 類 型, HotJava 浏 覽 器 就 對 其 自 身 進 行 修 整, 以 動 態 地 適 應 變 化 的 格 式。
協 議 也 是 動 態 的。 Internet 主 機 進 行 通 訊 的 協 議 是 網 絡 的 關 鍵 部 分, 其 中, HTTP 是 WWW 通 訊 協 議 中 最 重 要 的 一 種, WWW 中 與 文 檔 相 關 的 部 分 被 稱 為 URL, 當 前 的 Web 浏 覽 器 支 持 內 置 HTTP 協 議。 HotJava 則 不 采 取 這 種 方 法, 它 讓 協 議 名 與 適 當 的 協 議 句 柄 連 接, 這 就 使 新 的 協 議 動 態 地 協 調 起 來。 協 議 的 動 態 協 調 性 在 Internet 上 有 著 特 殊 的 意 義, 在 通 常 情 況 下, 如 果 用 戶 在 多 個 具 有 不 同 協 議 的 服 務 器 上 訪 問 數 據, 用 戶 就 需 要 多 個 浏 覽 器。 使 用 HotJava 浏 覽 器 則 是 被 賦 予 一 個 參 數 在 一 個 目 標 上 (URL)。 如 果 協 議 句 柄 已 經 安 裝, 這 種 協 議 就 直 接 可 用, 否 則 HotJava 就 搜 索 一 個 本 地 系 統 作 為 URL 的 目 標 系 統。
2. 更 好 的 交 互 性
HotJava 帶 來 了 更 多 的 Web 浏 覽 器 的 交 互 性, 可 將 當 前 浏 覽 器 上 的 靜 態 數 據 顯 示 變 換 成 超 文 本 的 新 型 動 態、 動 畫 式、 交 互 式 的 浏 覽 系 統, 進 行 浏 覽 的 開 發 人 員 只 需 擊 打 一 下 按 鍵, 即 可 通 過 Internet 發 布 他 們 的 應 用。
HotJava 沒 有 采 取 第 一 代 浏 覽 器 那 樣 的 單 一 方 法, 而 是 將 交 互 性 的 焦 點 從 Web 服 務 器 集 中 到 Web 客 戶 機 上, 即 集 中 到 用 戶 要 浏 覽 Web 的 計 算 機 上。 由 於 其 基 於 Java 語 言 系 統, HotJava 浏 覽 器 的 客 戶 可 以 動 態 地 卸 載 在 客 戶 機 上 運 行 正 確 的 代 碼 段。 這 樣 的 Applet 可 以 提 供 全 動 畫、 聲 音 效 果 和 與 用 戶 的 實 時 交 互。
HotJava 動 態 性 取 代 了 Mosaic 一 類 的 第 一 代 浏 覽 器 靜 態 的 特 征, 用 戶 的 應 用 涵 蓋 了 從 交 互 式 的 以 教 學 為 主 的 科 學 試 驗, 到 游 戲、 專 門 的 購 物 應 用, 還 可 以 實 現 廣 告、 報 紙, 以 及 一 系 列 還 沒 有 想 到 的 主 要 應 用。
需 要 強 調 的 是, HotJava 為 用 戶 訪 問 這 些 應 用 提 供 了 一 種 全 新 的 方 法。 你 需 要 的 軟 件 可 以 透 明 地 通 過 網 絡 傳 輸 到 用 戶 的 本 地 客 戶 機, 用 戶 不 必 刻 意 去 安 裝 某 個 應 用, 什 麼 時 候 需 要, 就 可 以 隨 時 從 網 上 傳 過 來。 WWW 的 內 容 開 發 者 不 必 擔 心 安 裝 在 用 戶 系 統 中 的 是 否 是 特 殊 的 軟 件 代 碼, 它 只 需 自 動 地 獲 取 就 行 了。
結 語
Java 帶 來 了 網 絡 時 代 的 嶄 新 變 革, 軟 件 開 發 商 們 也 普 遍 看 好 Java。 HotJava 可 以 稱 得 上 是 Java 的 一 個 成 功 應 用, HotJava 1.0 版 已 在 今 年 1 月 份 出 台。 目 前 已 經 有 28 個 以 上 的 大 公 司 申 請 加 入 Sun Java 的 授 權 行 列, 它 們 當 中 有 IBM、 微 軟、 HP、 SGI、 Oracle 等 全 球 知 名 的 計 算 機 公 司, 其 中 也 有 許 多 公 司 准 備 用 Java 開 發 出 它 們 自 己 的 Web 應 用。 占 據 浏 覽 器 市 場 70% 份 額 的 Netscape 公 司, 已 准 備 將 Java 與 它 的 下 一 代 Nav-igator 浏 覽 器 捆 綁 在 一 起。