⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.html

📁 写给JSP初级程序员的书
💻 HTML
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="description" content="Java,JDBC,EJB,Open Source,jdk,rmi">
<meta name="Keywords"
content="Java, servlets, Java servlet, Javascript, ActiveX, VRML,
        applet, applets, directory, news, jdbc, applications, 
        Java applications, Java developer, Java development, developer, 
        classes, Jars.com, Jars, intranet, Java applet, Javabeans, 
        Java products, JDK, Java development kit, java development environment, JIT,
        JavaPlan, enterprise tools, JVM, Java Virtual Machine, Java resources, 
        SUN, CGI, Perl, database, network, html,
        xml, dhtml, rating, ratings, review, jars, cgi, programming,
        software review, software rating">
<title>csdn_学 习 使 用CORBA 编 写 访 问 服 务 器 对 象 的 分 布 式Java 小 应 用</title>
<style>
.news {   BACKGROUND: #007cd3;  font-family: "宋体"; font-size: 9pt }
.t {  font-family: "宋体"; font-size: 9pt }
.t1 { color:#007cd3;  font-family: "宋体"; font-size: 9pt }
.white { font-family: "宋体"; font-size: 9pt;color:#FFFFFF }
.red { font-family: "宋体"; font-size: 9pt;color:#FF0000 }
A:visited {color:#0000FF}
A:hover {color: #ff6666; text-decoration: none}
.text {font-size: 12px; line-height: 160%; font-family: "宋体"}
.text1 {color:#000000; font-size: 12px; line-height: 130%; font-family: "宋体"; text-decoration: none}
.text1:visited {color:#000000}
.text1:hover {color: #000000}
.text2 {color:#000000; font-size: 12px; line-height: 130%; font-family: "宋体"; text-decoration: none}
.text2:visited {color:#000000}
.text2:hover {color: #000000}
.text3 {font-size: 12px; line-height: 100%; font-family: "宋体"; text-decoration: none}
.large {font-size: 14.8px; line-height: 130%}
</style>
</head>

<body>




  <tr>
    <td WIDTH="100%" VALIGN="TOP">
      <tr>
        <td WIDTH="100%" CLASS="white"></td>
      </tr>
    
      <tr>
        
      </tr>
      <tr>
        <td WIDTH="100%" bordercolor="#FFFFFF" CLASS="t" bgcolor="#F0F0F0" colspan="2">
        学 习 使 用CORBA 编 写 访 问 服 务 器 对 象 的 分 布 式Java 小 应 用<br>------------------------------------------------------------------------<br><br>摘 要: 若 想 实 现Web 上 分 布 式 客 户 机/ 服 务 器 模 式 的 应 用 程 序,可 以 选 择 多 种 不 同 的 技 术。 但 是, 对 于 必 须 服 务 于 大 量 用 户 的应 用, 我 们 认 为 应 该 首 选CORBA, 因 为 它 具 有 可 扩 展 性 和 业 界 广泛 的 支 持。 由于CORBA 的 强 健 性 可 以 提 高Java 编 程 语 言 的 性 能, 利 用 已 有 的 基于 标 准 的 技 术,Java 开 发 者 可 以 编 写 出 功 能 强 大 的Web 应 用 程 序。 在 这 篇 文 章 里, 我 们 首 先 简 单 介 绍 一 下CORBA, 然 后 作 为 该 技术 的 实 例, 我 们将 着 手 编 写 一 个N 层 客 户 机/ 服 务 器 应 用 程 序。 另 外, 在 附 文 中, 我 们 对 几 种 分 布 式 对 象 技 术 作 了 一 个 比 较, 它 们 分 别 是CORBA、RMI 和DCOM。<br><br>利 用HTML 表 和 通 用 网 关 接 口(Common Gateway Interface), 用 户 可 以 对Web 网 点 上 的 服 务 器 脚 本 进 行 交 互 式 的 访 问。 许 多 网 点 上 使 用这 种 技 术 提 示 用 户 输 入 用 户 名 和 密 码。 这 些 东 西 传 入 服 务 器脚 本 之 后, 用 于验 证 该 用 户 是 否 可 以 访 问 网 点 中 的 某 一 部 分 内 容。 这 一 过 程用 到 了HTTP, 而 它 是 一 种 无 状 态(stateless) 的 协 议。 每 次 下 载 一个 页 面, 客 户 机 就 与 服 务 器 完 全 脱 离, 服 务 器 方 无 从 得 知 客 户机 的 信 息, 更无 法 知 道 脱 离 后 的 客 户 机 正 在 进 行 的 动 作。 这 样, 哪 怕 是 在 成功 的 登 录 到 某 一 网 点 之 后, 客 户 程 序 每 查 询 一 个 页 面, 仍 需将 用 户 名 和 密 码 传 向 服 务 器 方 进 行 重 复 的 认 证。 换 句 话 说, 在你 的 客 户 应 用程 序(Web 浏 览 器) 和 服 务 器 应 用 程 序 之 间, 不 存 在 局 部 变 量、方 法 调 用 或 是 对 象。<br><br>经 过 数 十 年 的 努 力, 软 件 开 发 者 们 几 乎 可 以 成 功 地 将 代 码 以对 象 的 形 式 加 以 封 装。 但 是, 上 面 提 到 的 现 象, 无 疑 表 明 了 我们 正 在 倒 退, 因 为 那 是 无 状 态 的、 批 处 理 的 计 算 模 式。<br><br>当 然,CGI 技 术 并 非 一 无 是 处。Web 给 我 们 带 来 了 革 命 性 的 优 势,那 就 是 基 于 标 准 的 开 放 协 议 和 与 平 台 无 关 的 独 立 性。 尽 管 成千 上 万 的Web 网 点 使 用HTTP 和CGI 来 获 得 用 户 信 息、 在 服 务 器 上 运行 一 段 脚 本、 甚至 还 可 能 向 用 户 返 回 信 息, 但 是 从 传 统 的 的 观 点 看 来, 这 些 网点 并 不 能 算 是 真 正 的“ 应 用 程 序”。 除 此 之 外, 由 于 新 技 术 的应 用(HTTP 和CGI), 所 有 这 些 网 点 的 代 码 必 须 要 全 部 重 写。 想 要对 已 有 的Web 软件 资 源 加 以 利 用, 或 是 编 写 真 正 功 能 强 大 的 应 用 程 序, 使Internet/Intranet 成 为 通 信 主 干, 所 使 用 的 技 术 必 须 具 有 以 下 特性:<br><br>曋?持 现 有 的C、C + + 和COBOL 代 码<br>曋?持Java, 以 建 立 具 有 可 移 值 性、 平 台 独 立 性 的 面 向 对 象 的 应用 程 序暽?业 中 立 性, 只 有 这 样, 应 用 程 序 才 易 于 维 护,且 不 会 被时 间<br>淘 汰。<br>暱?扩 充 性, 能 够 支 持 大 {"C++, Java", "Java, Smalltalk, Ada95,<br>C++", "Java, C++",<br>"Java, C++", "Java, C++"},<br>{"http://www.expersoft.com", "http://www.iona.com",<br>"http://www.visigenic.com",<br>"http://www.software.ibm.com/ad/cb",<br>"http://www.sun.com/solaris/neo/solaris_neo/index.html"}};<br>ORBQuery(String name) {<br>super(name);<br>}<br><br>public java.lang.String GetName(int index)<br>{<br>String Name;<br>Name = ORBVendors[index][0];<br>return Name;<br>}<br><br>public java.lang.String GetVendor(int index)<br>{<br>String Vendor;<br>Vendor = ORBVendors[index][1];<br>return Vendor;<br>}<br><br>public java.lang.String GetOS(int index)<br>{<br>String OS;<br>OS = ORBVendors[index][2];<br>return OS;<br>}<br><br>public java.lang.String GetLanguages(int index)<br>{<br>String Languages;<br>Languages = ORBVendors[index][3];<br>return Languages;<br>}<br><br>public java.lang.String GetURL(int index)<br>{<br>String URL;<br>URL = ORBVendors[index][4];<br>return URL;<br>}<br>}<br><br>至 此, 我 们 已 经 写 好 了 所 有 服 务 器 方 必 需 的 代 码, 下 一 步 的 工作 是 创 建 客 户 小 应 用, 初 始 化 客 户ORB, 进 而 击 活 并 调 用 刚 刚生 成 的 服 务 器 对 象。<br><br>创 建CORBA 小 应 用<br><br>正 如 服 务 器 对 象 要 向 服 务 器ORB 登 记 一 样, 客 户 端 小 应 用 或 应用 程 序 需 要 向 客 户 机ORB 登 记。 当 要 获 得 远 程CORBA 对 象 时, 客 户机 采 用 了 一 种 间 接 的 方 法, 它 通 知 客 户 机ORB 其 意 图, 由ORB 负 责ORB 到ORB 的 通讯。 这 种 请 求 方 式 由 下 面 两 行 代 码 实 现( 在VisiBroker for Java 中):<br><br>// 初 始 化 ORB ( 使 用applet)<br>org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(this);<br>// 检 索applet 要 调 用 的 ORBInfo 接 口 对 象<br>ORBInfoQuery= ORBQuery.ORBInfoHelper.bind(orb, "ORBInfo");<br><br>执 行 了bind() 方 法 调 用 之 后, 我 们 的ORBInfoQuery 本 地 变 量 与 服 务器 的ORBInfo 对 象 绑 在 一 起。 这 一 操 作 完 成 之 后, 我 们 就 可 以 调用 帮 助 方 法 来 实 现 客 户 端 小 应 用。 记 住, 尽 管 示 例 中 我 们 完 全使 用 了Java 语言, 但 实 际 上, 服 务 器 对 象 也 可 以 用 其 他 语 言 来 实 现, 如:COBOL、C + +、Ada 和Small talk。<br><br>结 论<br><br>与 单 纯 的Java 小 应 用 相 比, 创 建CORBA Java 应 用 稍 显 复 杂。 事 实 上, 这 同 样 比 用RMI 创 建 纯 粹 的Java 分 布 式 对 象 应 用 要 难 一 些。 但是,CORBA 和Java 的 联 合, 所 创 建 的 应 用 程 序 功 能 更 为 强 大, 更 具可 扩 充 性, 这 是单 纯 用JDK 开 发 所 无 法 比 拟 的。 另 外, 现 实 是 企 业 界 很 少 使 用Java 应 用 程 序。CORBA 是 两 全 其 美 的 选 择, 一 方 面 它 允 许 开 发 者利 用 已 有 的 代 码 保 护 投 资, 另 一 方 面 又 可 以 充 分 发 挥Java 编 程语 言 的 优 势。<br><br>分 布 式 对 象 另 外 两 种 选 择:DCOM 和RMI<br><br>大 多 数Java 开 发 者 可 能 更 熟 悉DCOM 和RMI, 这 是CORBA 两 个 主 要 的 竞争 对 手。 现 在 让 我 们 对 三 者 做 一 下 比 较。<br><br>CORBA 重 述<br><br>CORBA 有 几 个 基 本 的 优 点: 与 开 发 语 言 无 关 的 独 立 性, 与 开 发 者无 关 的 独 立 性 和 与 操 作 系 统 无 关 的 独 立 性。CORBA 的ORB 在 当 前每 一 种 主 流 操 作 系 统 上 均 有 实 现( 仅 就Microsoft 的 各 种 操 作 系统 来 说,CORBA 获得 的 支 持 甚 至 超 越 了DCOM)。 除 此 之 外,CORBA ORB 可 以 访 问 多 种 语言 实 现 的 对 象( 包 括C++、COBOL、Smalltalk 和Java)。 借 助 于IIOP, 某一 开 发 者( 比 如 说Visigenic) 开 发 的CORBA ORB 能 够 获 取, 操 作 远 程的 由 其 他 的 开发 者( 比 如 说IONA) 开 发 的 对 象。Java ORB 允 许 客 户 端 在 没 有 安 装任 何 特 别 软 件 的 情 况 下 实 现Java 客 户 端 应 用 程 序。(Java ORB 的 类可 与 小 应 用 一 起 动 态 下 载, 也 可 能 与 浏 览 器 捆 绑 在 一 起。)<br>DCOM: Microsoft 的 法 宝<br><br>目 前,Microsoft 的 分 布 式 组 件 对 象 模 型(Distributed Componont ObjectModel) 仅 运 行 于 两 种 操 作 系 统 之 上:Windows 95 和Windows NT4。Microsoft 正 在 与 第 三 方 开 发 商 协 作, 以 将DCOM 移 到 其 它 的 操 作 系统 上( 包 括MVS 和 几种UNIX 操 作 系 统)。 象CORBA 一 样,DCOM 是 独 立 于 语 言 的, 它 用Microsoft 的 对 象 描 述 语 言(ODL) 通 过 接 口 对 对 象 加 以 描 述。<br><br>与CORBA 相 比,DCOM 有 三 个 重 大 缺 点。 首 先, 它 由 单 一 开 发 者( 微软) 定 义 并 控 制, 这 大 大 限 制 了DCOM 使 用 者 的 选 择 范 围( 比 方 说开 发 工 具 和 风 格)。 其 次,DCOM 缺 乏 众 多 的 平 台 支 持, 这 极 大 程度 地 制 约 了 代码 的 可 重 用 性 和DCOM 应 用 的 可 扩 展 性。 最 后, 与CORBA 相 比,DCOM 是一 种 非 常 不 成 熟 的 技 术。 尽 管 微 软 目 前 正 为DCOM 加 入 消 息 和 事务 支 持, 但 这 些 功 能 在1994 年 的CORBA 2.0 就 已 经 实 现 了, 并 且 正由 几 家 不 同的CORBA 软 件 开 发 商 所 发 行。<br><br>为 了 使 一 个Java 的 小 应 用/ 应 用 程 序 得 以 访 问 服 务 端 的DCOM 对 象, 开 发 者 不 得 不 使 用Internet Explorer 浏 览 器 和Windows 95/NT 平 台,只 有 这 样 才 能 支 持 客 户 机 软 件。 这 样 的 限 制 当 然 削 弱 了 应 用程 序 在Web 上 的 可用 性。 而 另 一 方 面,DCOM 的 一 个 重 大 优 势 在 于, 对Microsoft WindowsNT/95 用 户 免 费。 过 去 的 历 史 已 经 多 次 表 明, 这 是 与Microsoft 竞 争的 重 大 障 碍。<br><br>RMI:Sun 的Java-Only 解 决 方 案<br><br>Remote Method Invocation 是 最 新 的JDK 1.1 中 的 重 要 特 色。RMI 使 得Java客 户 能 够 访 问 远 地 的 服 务 对 象。 这 听 起 来 似 乎 十 分 类 似 于CORBA, 但 两 者 并 不 一 样。 其 关 键 在 于 服 务 器 端 的 应 用 程 序 也 必 须用Java 编 写, 且 只能 使 用JDK 1.1 中 提 供 的 工 具。 你 根 本 无 法 把 过 去 编 制 的 代 码 加到 新 程 序 中 去, 除 此 之 外,RMI 还 有 许 多 其 它 缺 陷。<br><br>与CORBA 不 同,RMI 没 有 服 务 这 一 概 念。 另 外, 根 据RMI 写 出 的Java 服务 器 对 象 往 往 性 能 低 劣, 这 个 缺 点 源 于Java 虚 拟 机。( 有 趣 的 是,Java CORBA 服 务 器 比RMI 服 务 器 表 现 出 更 好 的 性 能。)RMI 也 不 包括 象CORBA ORB 那样 的 对 象 击 活 功 能。<br><br>实 际 上,RMI 及Java 技 术 更 可 能 向OMG 的 标 准 靠 拢, 而 不 是 背 道 而驰。Sun 已 经 宣 布,Java 事 务 服 务(Java Transaction Serveces) 将 建 立 在OMG 的 对 象 事 务 服 务(Object Transaction Serveces)。 该 公 司 还 曾 发 布其 长 远 计 划:使RMI 对 象 可 以 通 过IIOP 互 通 讯。<br><br>总 而 言 之,RMI 对 于 用 纯Java 书 写 的 小 规 模 的 应 用 程 序 来 说, 是一 种 可 行 方 案。 但CORBA 提 供 了 集 成 的 基 础, 这 种 集 成 是 指 新 开发 的 代 码 和 已 有 对 象 的 集 成, 同 时 允 许 将 来 加 以 扩 展。 在 做 出取 此 舍 彼 的 选择 之 前, 你 必 须 权 衡 上 面 的 各 种 因 素, 并 仔 细 审 视 每 种 技 术 的现 状。<br><br>     <br></font>
        </td>
      </tr>
    </td>
  </tr>
</div>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -