国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JavaRMI應用

2019-11-18 14:23:25
字體:
來源:轉載
供稿:網友

  作 為 一 種 優 秀 的 計 算 平 臺,java 在 許 多 方 面 具 有 其 突 出 的 優 越 性。 其 中,RMI 最 典 型 地 展 現 了Java 平 臺 強 大 的 分 布 計 算 能 力。 本 文 用 一 個 簡 單 的 例 子 說 明RMI 給 分 布 計 算 帶 來 的 方 便, 以 及RMI 對 很 多 應 用 領 域 的 重 要 意 義, 如 桌 面 超 級 計 算 的 可 能 性。

---- 簡 言 之,RMI 是 一 種Java 虛 擬 機 之 間 對 象(Object) 互 相 調 用 對 方 函 數, 啟 動 對 方 進 程 的 一 種 機 制, 用 這 種 機 制, 某 一 臺Java 虛 擬 機 上 的 對 象 在 調 用 另 外 一 臺Java 虛 擬 機 上 的 函 數 時, 使 用 的 程 序 語 法 規 則 和 在 本 臺Java 虛 擬 機 上 對 象 間 的 函 數 調 用 的 語 法 規 則 一 樣。 正 是 這 種 機 制 給 分 布 計 算 的 系 統 設 計, 編 程 都 帶 來 了 極 大 的 方 便。 只 要 按 照RMI 規 程 設 計 程 序, 你 可 以 不 必 再 過 問 在 RMI 之 下 的 網 絡 細 節 了, 如TCP/ip,Socket 等 等, 更 不 必 擔 心 其 下 面 的 軟 硬 件 環 境。 任 意 兩 臺Java 虛 擬 機 之 間 的 通 訊 完 全 由Java 虛 擬 機 自 己 的RMI 來 負 責。 對 程 序 員 來 講, 這 兩 臺Java 虛 擬 機 之 間 完 全 是 透 明 的, 遠 在 天 邊 的Java 虛 擬 機 上 的 對 象, 使 用 起 來 就 象 近 在 眼 前 一 樣。

---- 范 例

---- 下 面 的 例 子 是 利 用RMI 設 計 的 一 個 簡 單 的 網 絡 計 算 器, 其 功 能 是 一 個 三 階 多 項 式 的 求 值, 然 后 畫 出 軌 跡。 讀 者 如 沒 有 時 間, 在 閱 讀 時 暫 時 不 必 細 究 其 語 法 細 節, 特 別 是 有 些 用IBM 的VisualAge for Java 自 動 生 成 的 用 戶 界 面 代 碼, 但 從 該 例 子 的 程 序 結 構 中, 你 可 足 以 了 解RMI 簡 明 的 風 格。 另 外, 本 文 主 要 從 應 用 的 角 度 討 論RMI, 省 去 了 對 其 原 理 的 分 析, 感 興 趣 的 讀 者 可 直 接 訪 問http://java.sun.com

---- 設 計 計 算 器 有 多 種 方 法, 從 結 構 上 看, 歸 納 起 來, 大 致 有 三 種。

---- 1、 本 地 機

---- 在 本 機 上 輸 入 參 數, 計 算 在 本 機 上 完 成, 結 果 由 本 機 顯 示 給 用戶。

---- 2、 本 地 機-TCP/IP- 遠 程 機

---- 在 本 地 機 上 輸 入 參 數, 本 地 機 將 參 數 通 過 網 絡 送 給 遠 程 機, 遠 程 機 啟 動 一 個 進 程 計 算 出 結 果, 然 后 遠 程 機 將 結 果 通 過 網 絡(Socket, HTTP 等 等) 送 給 本 地 機, 結 果 由 本 地 機 顯 示 給 用 戶。

---- 3、 本 地 機-RMI-TCP/IP-RMI- 遠 程 機

---- 本 地 機 從 遠 程 機 上 得 到 一 個 小 程 序(Applet) 用 作 數 據 輸 入( 多 項 式 系 數) 和 結 果 顯 示, 在 本 地 機 上 輸 入 的 數 據 將 作 為 調 用 遠 程 機 上 函 數 的 參 數, 該 遠 程 函 數 計 算 出 結 果, 反 過 來, 將 該 結 果 作 為 調 用 本 地 機 上 對 象( 如 剛 才 那 個Applet) 的 函 數( 如 屏 幕 刷 新) 的 參 數 調 用 該 本 地 函 數, 就 這 樣, 計 算 結 果 自 然 地 被 送 回 來, 顯 示 在 本 地 機 上。

---- 顯 然, 第3 種 方 案 是 最 靈 活、 最 優 雅 的 網 絡 計 算 模 式。 下 面 的 程 序 正 是 基 于 這 種 模 式。 由 于 篇 幅 所 限, 程 序 沒 有 過 多 考 慮 完 備 性, 如 對Exception 只 作 了 簡 單 的 處 理, 但 該 程 序 用 于RMI 編 程 風 格 講 解, 并 不 礙 大 局。

---- ServerManager, ServerManagerListener 用 于 簡 單 控 制RMIServer 的 啟 動, 停 止, 退 出。

---- RMIServer 設 計 成 一 個 簡 單 的RMI 服 務 器, 其 中,RMIServer(String sMAPServerName) 完 成 服 務 器 的 命 名, 在1099 口 上 作 注 冊 登 記 準 備。

---- startRMI() 的Naming.rebind("/"+sServerName,this) 將 啟 動 該 服 務 器, 以sServerName 的 值 為 名 稱, 也 就 是"RMIServer," 啟 動 后,RMIServer 開 始 在1099 口 上 傾 聽 來 自 網 絡 的 呼 叫。

---- stoPRMI() 的Naming.unbind(sServerName) 用 于 停 止 該 服 務 器。

---- calculateIT(double[] dA, ClientRemoteInterfacecrInterface) throws RemoteException 是 供 客 戶 端Java 虛 擬 機 作 遠 程 調 用 的 函 數,dA 是 多 項 式 系 數(a3,a2,a1,a0), 該 多 項 式 定 義 為

F(X)=a3*X3+a2*X2+a1X+a0

---- crInterface 是 客 戶 端Java 虛 擬 機 遠 程 調 用 服 務 器 端Java 虛 擬 機 時 作 為 參 數 送 過 來 的 代 表 客 戶 端 的 遠 程 接 口, 供 服 務 器 端 需 要 時 反 過 來 對 客 戶 端 作 遠 程 調 用 時 使 用。

---- calculateIT 結 果 計 算 出 來 以 后, 服 務 器 端 很 輕 松 地 用

crInterface.drawIT(iXY);

---- 一 個 語 句 就 激 發 了 在 客 戶 端 的drawIT(iXY) 函 數。 計 算 結 果iXY 作 為 函 數 參 數 自 動 地 傳 送 到 客 戶 端。

---- 客 戶 端Java 虛 擬 機 靠CalculatorDisplay 這 個Applet 激 發 服 務 器 端Java 虛 擬 機 上 的calculateIT 函 數, 瀏 覽 器( 如HotJava) 從 服 務 器 上 獲 得CalculatorDisplay 以 后, 該Applet 的init() 函 數 里 有 兩 條 關 鍵 的 語 句:

srInterface = (ServerRemoteInterface)
Naming.lookup("http://"+getCodeBase()
.getHost()+"/"+"RMIServer");
UnicastRemoteObject.eXPortObject(this);

---- 第 一 句 的 目 的 是 在 提 供 該Applet 的 服 務 器 上 尋 找 名 為RMIServer 的RMI 遠 程 對 象。 找 到 以 后, 用srInterface 接 口 代 表; 第 二 句 是 所 謂 的 將 本 對 象 輸 出 的 操 作, 這 樣 才 可 以 將 本 對 象 的 遠 程 接 口 作 為 遠 程 函 數 調 用 的 參 數 傳 送 到 服 務 器 端。 當 需 要 調 用( 或 啟 動) 服 務 器 端 的calculateIT 函 數 時, 也 只 是 簡 單 的 一 個 語 句

srInterface.calculateIT(dA,this);

---- Java 工 具 還 會 自 動 生 成CalculatorDisplay_Skel,CalculatorDisplay_Stub, RMIServer_Skel, RMIServer_Stub 文 件, 在 此 可 暫 不 理 會。P 和 本 文 沒 有 什 么 關 系, 作 者 只 是 為 了 方 便, 用 它 來 把 簡 單 信 息 顯 示 到 屏 幕 上。 至 此, 相 信 讀 者 已 經 看 出RMI 的 功 能 和 簡 明 性 了。

---- 前 景

---- 雖 然 本 文 描 述 的 只 是 一 個 小 小 的 多 項 式 求 值, 軌 跡 輸 出 例 子, 但 不 難 想 象, 計 算 對 象 可 以 是 高 階 微 分 方 程, 高 階 矩 陣 運 算, 客 戶 機 可 以 是 普 通 的PC 機, 服 務 器 可 以 是 超 級 計 算 機, 在 其 上 可 進 行 諸 如 流 體 力 學 模 型 仿 真, 風 洞 模 擬 試 驗, 實 時 圖 像 處 理, 氣 象 分 析, 股 市 預 測, 人 工 智 能, 大 型 數 據 庫 訪 問 等 等。 而PC 機 用 于 調 節 參 數, 控 制 進 程, 觀 測 結 果 等 等, 其 效 果 如 同 置 身 于 超 級 計 算 機 上 直 接 運 行 程 序 一 樣, 盡 管 它 實 際 上 離 你 十 萬 八 千 里。

---- 從 商 業 上 看, 超 級 計 算 機 可 以 向 更 多 的 用 戶 提 供 商 業 服 務, 例 如 收 費 向 遠 程 用 戶 提 供 模 擬 試 驗, 而 普 通PC 用 戶, 既 能 享 受PC 的 廉 價 方 便, 又 有 可 能 享 受 到 原 來 不 可 想 象 的 超 級 計 算 的 威 力, 因 為Java RMI 可 以 輕 松 自 如 地 將 超 級 計 算 延 伸 到 你 的 桌 面 上。

上一篇:java筆記

下一篇:JavaTM Studio Creator 入門

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 焦作市| 锡林浩特市| 商南县| 蒲江县| 石城县| 开阳县| 永川市| 贡山| 英德市| 米泉市| 江源县| 荆州市| 盈江县| 尼勒克县| 天津市| 桃园市| 营山县| 华安县| 同德县| 漳州市| 新密市| 乌鲁木齐市| 长垣县| 浦城县| 烟台市| 黑河市| 宜兴市| 吉安县| 四平市| 台南县| 揭西县| 辽源市| 横山县| 剑阁县| 长沙县| 湘潭县| 宾川县| 临沧市| 临沧市| 上蔡县| 石屏县|