基于Java的访问远程数据库的高效的标准软件体系结构 (2).doc

上传人:滴答 文档编号:1271602 上传时间:2019-01-25 格式:DOC 页数:7 大小:159KB
下载 相关 举报
基于Java的访问远程数据库的高效的标准软件体系结构 (2).doc_第1页
第1页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、 基于 Java 的 访问远程 数据库的 高效的 标准软件体系结构 摘要: 新颖的客户端服务器体系结构利用 WEB 技术越来越有利于远程数据库存取,其结构是在客户端采取 WEB 浏览器作为图形用户界面,在服务器端采取传统的 SQL 数据库管理系统 (DBMSs)。 目前,在标准浏览器和具体 DBMSs 之间的活动是由 一定数量的 基于上一代 浏览器中的 Java 虚拟机 的软件结构支持。这些软件结构 , 从开放性和灵活性问题看 似乎很好 , 但在 数据库存取 方面却存在不足 。 本文将通过对一定数量的实验结果的分析 指出这些不足 。本文描述 了 四个不同 的 基于 Java 技 术的 软件结构

2、支持 数据库存取,报告了它们在不同的硬件平台上工作的性能测试,并对测试结果进行了比较分析。 关键字: CORBA; Java; JDBC; 执行 评估 ; 可视化 数据库存取 1. 介绍 对客户服务器数据库 访问 的传统 解决方法 是 根据 由 一种 直观 语言 编写的 用户界面的联合的行动 (即客户 ) 和 一个标准 SQL 引擎 (即服务器 ) 。当前 , 这种方法 正受到一种 基于新兴的 Web 范例的新颖的解决办法 的挑战 。 基于互联网的 用户界面,通常用 java 编写, 由浏览器从服务器下载 并运行在虚拟浏览器 上 。 这样的解决办法的要点是客户软件 作为一个独特 的副本 处 在

3、服务器系统, 这就好于 客户软件 在 客户 机 系统里。 由于集中所有这些操作在服务器站点 成为 可能 ,这就使客户软件的安装、配置和维护费用 被降低 。 对 SQL 数据库的基于互联网的 访问 ,可以得到由很多基本组成成分组成的软件体系结构的支持。 令人遗憾这样的软件体系结构,从开放 性 和灵活性来看似乎 很 好, 但是给数据库接口方面带来了明显的潜在 危机。 图 1. 软件结构 1: 通过 Java 接口访问 数据库 在这篇文章里 将描述四个不同 的 基于互联网 访问 SQL 数据库 的 软件结构 ,并且 通过 报告 和 比较他们的 执行情况来揭示各个体系结构的潜在危 机的来源。 本文 结

4、构 如下 : 首先我们描述基于 Java 的数据库存取 的 准软件 体系结构 (第2 部分 ); 然后我们提出使用的试验 平 台和在我们的实验过程中 遵循 的方法 (第 3 部分 ); 最后我们 给 出 了 结果 (第 4 部分 ), 并且讨论 了 软件体系结构 的 性能 (第 5 部分 );总结 (第 6 部分 )结束 本文 。 2. 基于 Java 的数据库 存取 的软件体系结构 在这个部分我们提出四个 适合我们的调查 的 基于 java 访问 数据库 的 软件结构 。 每 个体系结构都 遵循客户机服务器 体系 并且由 3 个主要实体组成 : 客户、服务器和共用 组件 。 客户和服务器在每

5、 个体系结构 里是相同的; 共用 组件在各个体系结构之间则起着不同的作用。 客户是一个 基于 Java 技术的 浏览器 , 服务器是 一个 接受远程 网络 连接 和查询 的 SQL 数据库管理系统 (DBMS), 网络协议 采取 TCP/IP 协议 。 各个软件 体系 结构 的 共用 组件 在 结尾 部分描述。 2.1. 基于 Java 接口 的 连接 模块结构 基于 Java 接口的 连接 模块结构如 图 1 所示。阴影部分表示 软件模块 , 程序员必须发展 它们使其余的组成部分连接起来。 客户 端 (浏览器 )从服务器 端 上下载一个 java 应用程序并且运转它。 java 应用程序通过

6、 Java 接口模块发送查询和接收回应。 服务器 (DBMS)通过作为中间代理的一个软件 元件 与客户交换数据。这样的 一个 中间 代理软件接受 客户 查询 并且通过 API 信息库把它们提交到数据库。 在 java 应用程序和中间 代理软件 之间的连接性 是 基于 TCP / IP 协议 。 在客户端通信由标准 Java 接口 API 支持 ; 在服务器端通信由标准 UNIX 插口接口支持。 在 java 应用程序和中间 代理软件 之间的操作 是 基于 支持 基本 数据库存取操作的一个 普通 协议 ( 打开数据库,提交 查询 , 接收回 应, 关闭 数据库 )。 基于专有的 数据库管理系统

7、JDBC驱动程序的体系结构 基于专有的 DBMS JDBC 驱 动程序 的 结构如 图 2 所示 。 JDBC 是允许 java 应用程序 和应用 软件在后台访问 数据库的一个标准接口 。 和 前 面介绍 的 结构 一样,客户 机 (浏览器 )从服务器上下载一个 java 应用程序并且运转它 , java 应用程序通过标准 JBDBC 应用编程接口 (JDBC API)访问 DBMS。 JDBC API 是作为 标准 Java开发工具 包 和 基于 Java 技术的 浏览器的最新 版本 的 一 部份 。 JDBC 针对不同 的DBMS 也不一样 , DBMS 实施通信协议 时 必需 用 到 具

8、体的 JDBC 驱动程序。 具体 JDBC驱动程序 由 DBMS 生产商 或者第三 方 提供 ,并且 动态地连 接标准 JDBC 对象。 通常 , JDBC 驱动程序 跟客户 端的 java 应用程序一起从服务器下载。 图 2 基于专有的 DBMS JDBC 访问 数据库的软件体系结构。 图 3 基于 JDBC 桥 访问 数据库的软件体系结构。 2.3.基于 JDBC 桥 的体系结构 基于请求 机制 的软件体系结构 如图 3 所示。 如同前 面 的体系结构, java 应用程序通过标准 JDBC API 和具体的 JDBC 驱动 程序 与数据库进行信息交流。与以前的体系结构 不同 , JDBC

9、 驱动 程序 不直接访问数据库,但是它访问一个通过一份专有的协议运 行 在服务器上 的中间对象。 当 java 应用程序 请求连接 时 ,动态地 生成 二个组分 : 为具体 DBMS 所 采取 的 一个 JDBC 代理和 一个 数据库代理。 图 4 基于 CORBA 的数据库 访问 的软件体系结构。 Software component Software product Vendor DBMS 1 Browser Java socket DBMS JDBC driverr Request broker Database agent JDBC agent Broker JDBC Driver C

10、lient ORB Server ORB PostgreSQL 6.1.1 Navigator 4 class .socket class postgresql.driver oplrqb pgr95 sv jdbc sv class openlink.driver package org.omg. CORBA omniORB2 University of California Netscape Netscape University of California Openlink Openlink Openlink Openlink Visigenic/Netscape Olivetti &

11、Oracle Research Labs 表 1 作为被测试的软件体系结构的组成部分使用 的 软件产品 2.4.基于 CORBA 的组成部分之间可用性 的结构 基于 CORBA 的 结构如 图 4 所 示。 在这 种 情况 下 java 应用程序通过面向对象的 API 与 DBMS 联系。 API 和 服务器 端的 数据库存取对象 进行交互。后台操作由对象请求代理程序 (ORBs)支持 。 数据库存取对象由系统集成商开发 , 它的 API 通过一种正式的规范语言 IDL描述。 IDL 用不同的语言 编写,它 支持在客户 机 和服务器之间的可靠的操作 。 3. 测试和方法 在这个部分我们描述我们

12、使用的试验 平台和 我们随后执行实验的方法。我们在 服务器 (PC 机 , 200 MHz, 32 M RAM, Linux 操作系统 )安装了 DBMS, 在 客户机( 166 MHz PC 机 , Linux 操作系统 )安装 不同 的 软件 组件,选择的 产品 如表 1所示。我们选择了三个对数据库的基本操作来进行测试,即 打开数据库、查询、数据库关闭。我们为测试选择的查询是一个单独的选择,它从一个超过 4 列 39 000 行的表中而来,由 34 byte 字符串组成。 为了使偶然 性 减到最小 ,对每个潜在因素的测量都 重复实验超过 6000 次并且选择最小 的 结果 。 Local

13、Socket PC HP Sun Open Exec Close 33 54 67 37 60 68 38 62 68 38 68 69 表 2 各个平台利用 java插件对数据库的本地和远程的基本操作的最少 时间 4. 实验和结果 实验能达到的标准和访问数据库的响应时间。 在初步的实验里我们 测试 存在于 4 个 软件体系结构的普通组成部分。在其余实验里我们 测试 每软件体系结构的响应时间 并且 确定 具体的 消耗时间 以及 这些时间消耗 的 原因 。 我们报告初步实验的结果在 4.1 部分和实验 其 余的结果在 4.2 部分。 4.1.初步的实验 这部分提出 初步测试 基于 java 的客

14、户 端 软件体系结构 的 响应时间 , 即, (i)数据库本地存取时间和 (ii)Java 插 件 通讯时间。 数据库本地存取时间 测试 , 我们开发一个 C 程序 来执行对数据库的基本操作,并测试它的运行时间。 测量数据 结果以 毫秒 为单位 , 详见 表 2(第一栏 )。 我们 还测试了 以 TCP/IP 协议联系 库 和 DBMS 存取 数据库的 响应时间。其响应时间小于 2ms,可以忽略不记。 为了测量 Java 插 件 通讯时间,我们建立 了 基于插 件 连接 的 模 块 (参阅第 2.1 部分 )结构 。 结构中的代理模块可在先前的实验里, 通过 TCP/IP 协议用 C 程序连接

15、获得。 测量 结构 的 响应 时间 的 数据在表格 2 的第 2 栏里 (每一列分别对应测试中用到不同的硬件平台)。 结果 显示 通过 Java 插 件 远程访问数据库 的响应时间不可以忽视,即打开数据库和 执行查询的时间占到 10-30%。 Local JDBC JDBC/broker CORBA PC HP SUN PC HP SUN PC HP SUN Open Exec Close 33 54 67 143 101 5 192 104 8 218 106 10 70 77 0 93 80 0 160 83 1 39 66 72 42 71 75 44 78 78 表 3 不同的软件体系

16、结构和客户平台最小 查询时间 4.2.标准软件体系结构试验 这部分提出 对 标准 高效的体系结构 进行实验评价 ,体系结构已在 第 2 部分中 描述。 对标准体系结构的评价是 基于 JDBC 和 CORBA 模件之间的可用性。在这个部分 里 我们提出 对两个标准体系结构的内部响应时间进行测试,其中一个是 基于 JDBC 标准 ,一个是 基于 CORBA 标准 。 4.2.1.基于专有的 JDBC 驱动程序 的 结构 的效率 表 3 的 2-4 列是 基本 的 存取数据库时间 数据 , 以 毫秒 为单位, 那些 结构的规则 在第 2.2 部分 里 描述。 在 开放性 的操作里我们 确 定 时间消

17、耗有 以下两个来源: (i) 每当数据库被打开时建立一个 java 插 件 连接, (ii) 通过插 件 读 /写 的对数据库连接必要的每个项目 (登录,密码,数据库名字等等 )。 第一 项来源是由 JDBC 标准数据库关闭操作导致 TCP/IP 连接 关闭 引起的 。 在 PC 平台消耗的时间是 18 ms, 在 HP 平台消耗的时间是 28 ms, 在 SUN 平台消耗的时间是 37 ms。 第 二 项来源是由 为了减少在 java 接口上读和写的操作, JDBC 对 PostgreSQL DBMS 不 选择单个字符串 信息 。这一时间消耗在不同的硬件平台上变化很大( PC 10 ms,

18、HP 22 ms , Sun 67 ms)。 4.2.2.基于 JDBC 桥 的 结构 的效率 表 3 的 5-7 列是 基本 的 存取数据库时间 数据 , 以 毫秒 为单位, 那些 结构的规则 在第 2.3 部分 里 描述。 在 开放性 的操作里我们 确定时间消耗有 以下两个来源: (i)小应用程序分别向请求 代理 和 JDBC 桥 建立两个网络连接打开数据库 ; (ii)服务器需要 很 长的时间来处理这两个连接 。 第一个时间消耗是 36-74ms,它们 取决于硬件平台 。第二个时间消耗大约是 75ms。我们是通过测试 对 DBMS 请求建立连接 到获得查询的时间间隔再减去网络延迟得到这一

19、结果 的。 截止时间 表示, 数据库关闭 是 在网络连接关闭之后。截止时间 仅仅包括 在那些代理终止之前 的 必要的握手行动。 4.2.3.基于 CORBA 的 结构 的效率 表 3 的 8-10 列是 基本 的 存取数据库时间 数据 , 以 毫秒 为单位, 那些 结构的规则 在第 2.4 部分 里 描述。 测试结果显示, 基于 CORBA 的 结构在 所有硬件工作台 上直接 在 Java 接口上所有操作的响应时间可以忽略不记( 参见表 2)。 在基于 java插 件 的 结构 里获得的关于通信协议和插 件 方法的几 个 最优化的结果 是很有价值的。 因此,我们实验 表明 利用 java 插

20、件可使 CORBA 模件之间可用性 最优化 。 5. 讨论 实验在前 面 部分提出 了 基于 java 技术访问数据库的 标 准解决办法 。假设在本地连接环境(局域网)下,网络延迟不影响其他的延迟而可以忽略不记,那么这种解决方案是可行的。 在我们的实验过程中获得的 Java 接口 模 块 的工作特性是: 连接和读 /写操作的反应时间快,接口相对根据使用的硬件平台传输的数据类型的高可变性。 Java 插 件 的可变性影响 了 所有其他 基于 java 插 件的方法的执行。然而我们在进行 基于 JDBC 和 CORBA 解决办法的 实验时,考虑到了所有可变性的影响。 一些实验揭示 Java 插座接

21、口把它的劣质的性能传播到 JDBC 模件。尤其我们做 的 实验, java 插 件的执行 增加 了 大约 30 到 100 的反应时间 并且 高度依赖 使用的硬件 平 台。 反之,其他实验 显示 CORBA 没 有受 java 插 件运行 的劣质性能 的 影响。 特别是我们 在客户端的 java 接口上测试到了接近最优的结果,而且在不同硬件平台上结果也不变。 最后,我们证明 CORBA 标准模件 是在 高性能 的 局域网环境 下 最适合 的 解决数据库 存取的 办法, 原因如下: CORBA 结构足以可靠和轻易的支持用不同的语言运行在不同的环境里的客户机和服务器之间的各种标准接口; CORBA 结构 属于标准 java 库 程序包, 足以最优的解决 java 接口 执行时的问题。 6. 总结 文章提出 针对 四个 基于 Java 接口和关于 JDBC 和 CORBA 标准 的 软件结构 在执行时的性能的测试方法。 这两个标准 是最 频繁 的被用来解决 由 Java 客户 机轻易的访问远程 数据库服务器 的方法。 我们的工作的主要贡献是性能评价和软件体系结构的比较测试 ,这对证明各个体系结构在访问数据库时的 瓶颈 问题很有意义。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。