WEB开发网
开发学院WEB开发Jsp 用分布式对象技术构造Java应用 阅读

用分布式对象技术构造Java应用

 2008-01-05 19:08:18 来源:WEB开发网   
核心提示:用java,RMI 和HORB 实 现 分 布 式 对 象 环 境 摘 要 本 文 原 发 表 在 十 二 月 的 日 文JavaWorld 印 刷 版 上,用分布式对象技术构造Java应用, 概 括 地 介 绍 了 分 布 式 对 象 技 术, 重 点 介 绍 了 其 中 的 两 种 具 体 技 术: 远 程 方 法

  用java,RMI 和HORB 实 现 分 布 式 对 象 环 境

--------------------------------------------------------------------------------

摘 要 本 文 原 发 表 在 十 二 月 的 日 文JavaWorld 印 刷 版 上, 概 括 地 介 绍 了 分 布 式 对 象 技 术, 重 点 介 绍 了 其 中 的 两 种 具 体 技 术: 远 程 方 法 启 用(RMI) 和Hirano 对 象 请 求 代 理(HORB)。 通 过 代 码 实 例 和 图 解, 你 自 己 便 能 判 定 哪 种 分 布 式 对 象 技 术 最 适 合 你。

直 到 最 近, 软 件 程 序 用 面 向 对 象 设 计 方 法 创 建 时, 设 计 主 要 运 行 在 单 机 的 内 存 里。 为 了 使 软 件 适 应 网 络 运 用 和 保 存 在 二 级 存 贮 里, 除 了 面 向 对 象 方 法 以 外, 还 需 要 其 他 的 设 计 方 法。 人 们 开 发 了 面 向 网 络 的 分 布 式 对 象 技 术 来 解 决 这 个 问 题。 同 时, 可 以 将 对 象 直 接 存 贮 在 二 级 存 贮 里 的 面 向 对 象 数 据 库(ODBMS) 技 术 诞 生 了。

这 些 技 术 都 不 是 新 的,-- 支 持ODBMS 的 开 发 工 具 在90 年 代 早 期 便 出 现 在 市 场 上, 然 而 这 些 产 品 不 是 价 格 太 高, 使 用 无 名 的 语 言, 就 是 没 有 获 得 工 程 师 行 业 的 广 泛 认 可。 随 着Java 的 出 现, 分 布 式 对 象 技 术 和ODBMS 技 术 得 到 了 进 一 步 的 发 展, 而 且 价 格 下 降 了, 所 以 获 得 了 工 程 师 们 的 接 受。 根 据 最 近 软 件 的 动 向, 这 些 技 术 得 到 越 来 越 广 泛 的 关 注。

很 明 显, 未 来 的 软 件 环 境 必 须 包 括 三 项 重 要 的 技 术:

1. “ 面 向 对 象”

2. “ 网 络”

3. “ 数 据 库”

这 些 环 境 可 以 用 分 布 式 对 象 技 术 和ODBMS 来 实 现。 本 文 的 中 心 是 基 于Java 的 分 布 式 对 象 技 术。

什 么 是 分 布 式 对 象
简 单 说 来, 分 布 式 对 象 技 术 允 许 在 不 同 机 器 上 的 对 象 相 互 传 递 消 息(Java 方 法 调 用)。 为 了 便 于 理 解 什 么 是 分 布 式 对 象, 请 看 图1, 一 个 网 络 卡 拉OK 模 型 的 设 计。 正 如 你 看 到 的, 当 一 个 远 程 操 作 在 服 务 器 中 的Karaoke box 执 行 歌 曲 选 择 时, 一 个Music 对 象 将 被 送 到 客 户 机。 客 户 机 通 过 发 送“ 播 放” 消 息 启 动 音 乐。 以 下 定 义 一 些 术 语: 等 同 于Karaoke box 的 对 象 称 为“ 远 程 对 象”, 发 送 给 客 户 机 的Music 对 象 称 为“ 拷 贝 对 象”, 由 客 户 机 发 往 服 务 器 上 的Karaoke box 对 象 的 消 息 称 为“ 远 程 消 息”, 我 们 将 用 这 个 模 型 实 现 一 个 分 布 式 对 象 系 统。

图1: 网 络 卡 拉OK 模 型 图

RMI 和HORB 概 述
本 文 的 中 心 是 两 项 分 布 式 对 象 技 术:RMI( 远 程 方 法 启 用), 它 捆 绑 于JDK1.1 的 标 准 特 征 中, 和HORB(Hirano 对 象 请 求 代 理), 它 由 美 国 国 家 电 子 研 究 所( 国 际 贸 易 和 工 业 部) 的Satoshi Hirano 开 发。 本 文 的 最 后 将 介 绍CORBA, 它 致 力 于 成 为 工 业 标 准 的 分 布 式 对 象 系 统。 关 于HORB 的 最 新 信 息, 可 在 以 下URL 中 查 到:http://ring .tel.go.jp/openlab/horb/。

分 布 式 对 象 的 应 用(HORB 与RMI)
我 试 图 用 这 两 项 技 术, HORB 和RMI 来 构 造 一 个 分 布 式 对 象 系 统。 理 解 这 些 技 术 最 快 的 方 法 是 通 过 获 得 实 际 的 动 手 经 验。

首 先, 我 们 将 基 于 网 络 卡 拉OK 模 型 设 计 类。 图2 为 一 个 类 示 图, 它 说 明 了 基 于 内 部 类 结 构 和 类 创 建 的 实 例 之 间 的 关 系 结 构。

图2: 网 络 卡 拉OK 模 型 的 类 示 图

HORB 介 绍
这 部 分 提 供 一 个 如 何 使 用HORB 的 例 子。 与RMI 相 比,HORB 允 许 以 类 似 于 常 规 面 向 对 象 编 程 的 格 式 编 码, 列 表1 是HORB 卡 拉OK 类 的 源 代 码(Karaoke.java)

列 表1:Karaoke box 类[HORB]

class KaraokeBox{
void hello(String s){
System.out.PRintln("Client Name " + s);
}
}

列 表2 是 使 用Karaoke box 的 客 户 机 的 源 代 码(Client.java)。 首 先 调 用KaraokeBox 类 的hello() 方 法。 到 此, 程 序 不 是 分 布 式 对 象。 对KaraokeBox 类 的hello() 方 法 的 调 用 也 是 本 地 调 用。

列 表2: 使 用Karaoke box 的 客 户 机 的 源 代 码[HORB]

class Client{
public static void main(String argv[]){
String name = (argv.length == 1) ? argv[0] : "-";
KaraokeBox box = new KaraokeBox();
box.hello(name);
}
}

现 在 我 们 将 用 一 个 小 魔 术 将KaraokeBox 转 换 成 远 程 对 象。

Tags:分布式 对象 技术

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接