




已阅读5页,还剩50页未读, 继续免费阅读
(计算机软件与理论专业论文)基于jini的dm数据库中间件的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文 摘要 j i n i 是s u n 提出的一种新的分布式计算的软件技术。为了在以j i n i 技术为架 构的分布式计算环境下实现对d m 数据库简洁透明的访问,论文设计和实现了基于 j i n i 的唑茎堡庄中间件,使j i n i 环境中的各类客户应用能够方便的使用d m 数据 库管理系统提供的数据存储和访问服务。 通过研究j i n i 环境下客户应用的通用需求,提出基于j i n i 的d m 数据库中间 件的总体模块划分,按实现的功能将d m 数据库中间件划分成四个主要的部件:服 务注册管理部件、租借管理部件、数据库访问管理部件、远程事件管理部件。 在深入研究j i n i 标准的基础上,提出了符合j i n i 规范的d m 数据服务来实现 基于j i n i 的d m 数据库中间件。f d m 数据服务通过j i n i 规范中所定义的发现、加入 以及租借的机制完成与j i n i 系统环境的互操作,通过提供可下载的代理对象使j i n i 客户可以存取所连接的d m 数据库。d m 数据库中间件具有透明性、易用性、适应性、 可配置性和主动性的特点。从效率和安全的角度考虑,在研究了j a v a 中的r m i 和 激活模型之后,提出独立完成数据服务、通过远程对象完成数据服务、通过远程激 活对象完成数据服务的三种可选的实现方式来实现代理服务对象。j i n i 客户可以根 据不同的系统吞吐量和安全性的需求,下载代码尺寸和通讯方式不同的代理服务对 象。 在代理服务对象及后台服务进程的具体实现方面,详细讨论了其中运用的各种 关键技术:d m 服务代理与j i n i 系统的交互方式、服务中使用的通用数据的存取技 术,提高物理连接利用率的连接缓冲池技术,为服务提供主动机制的远程事件通知 技术,数据加密传输技术。 关键字:中间件;j i n i 服务;分布式技术;连接缓冲池:远程事件 7 v l 7 v 华中科技大学硕士学位论文 a b s t r a c t j i n it e c h n 0 1 0 9 y ,an e wd i s t r i b u t e dc o m p u t i n gt e c h n o l o g y ,i ss p e c i f l e db y s u n i no r d e rt os u p p o r ts e a m l e s sa c c e s st ot h ed md a t a b a s ei nt h e d a t a b a s e c e n t e r e da p p li c a t i o nb a s e do nj i n ia r c h i t e c t u r e ,w ed e s i g na n d i m p l e m e n td md a t a b a s em i d d l e w a r eb a s e do nj i n i i tm a k e so u rd md b m sag e n e r a l j i n is e r v i c et h a tc a nb eu s e de x t e n s i v e l yi nt h ed i s t r i b u t e ds y s t e mb a s e d o nj i n ia n de n a b l e st h ec l i e n tt oa c c e s st h es t o r a g es e r v i c et h a td md b m s p r e y i d e ss e a m l e s s l y a f t e rt h er e s e a r c ho fg e n e r a lr e q u i r e m e n t sf o rt h ej i n ic l i e n t s ,t h e g l o b a lm o d u l ed e s i g no ft h ed md a t a b a s em i d d l e w a r eb a s e d o nj i n ii sp r o p o s e d i tc o n t a i n sf o u rk e r n a lm o d u l e sa c c o r d i n gt ot h e i rf u n c t i o n :t h es e r v i c e r e g i s t e rc o m p o n e n t ,t h e l e a s em a n a g e m e n tc o m p o n e n t ,t h ed a t a b a s ea c c e s s c o m p o n e n t ,t h er e m o t e e v e n tm a n a g e m e n tc o m p o n e n t o nt h eb a s iso ft h ed e t a i l e dr e v i e wo f7 1 n is p e c i f i c a t i o n ,t h ep l a nt h a t ad md a t a b a s es e r v i c ef o l l o w e db yj i n is p e c i f i c a t i o ni m p l e m e n t st h e m i d d l e w a r ei sp r o p o s e d t h ed md a t a b a s es e r v i c ei n t e r a c t sw i t hj i n is y s t e m b yt h em e c h a n i s mo fd i s c o v e r y ,j o i na n di e a s e i n g i tp r o v i d e st h ec l l e n t a d o w n l o a d a b l ep r o x yo b j e c tt om a n i p u l a t et h ed md a t a b a s ei tc o n n e c t s t h ed m d a t a b a s es e r v i c eist r a n p a r e n t ,f a c i li t a b l e ,s e l f - a d a p t i v e ,c o n f i g u r a b l e a n da c t i v e f r o mt h ev i e wo fe f f i c i e n c ya n ds e c u r i t y ,w ed e s i g nt h r e eo p t i o n a l w a y st oi m p l e m e n tt h es e r v i c ep r o x yb a s e do nj a v ar m ia n da c t i v a t i o nm o d e l , i nt h ep r o c e s so fe l a b o r a t i n gt h ei m p l e m e n t a t i o no ft h e d o w n l o a d a b l e p r o x yo b j e c ta n dt h eb a c k e n ds e r v i c et a s k ,w ef o r m u l a t ea l l k i n d so fk e y t e c h n o l o g ys u c h a st h ei n t e r a c t i o nb e t w e e nt h ed ms e r v i c ep r o x ya n dj i n i s y s t e m ,t h eg e n e r a lw a yt oa c c e s sd a t a b a s e ,c o n n e c t i o np o o l i n g ,r e m o t ee v e n t i i 华中科技大学硕士学位论文 n o t i f i c a t i o n ,c r y p t o g r a p h yo fd a t at r a n s f e r i n g k e y w o r d :m i d d l e w a r e :j i n is e r v i c e ;d i s t r i b u t e dt e c h n o l o g y c o n n e c t i o l lp o o i i n g ;r e m o t ee v e n t i i i 华中科技大学硕士学位论文 1 1 课题背景 1 绪论 本课题来源于国家“通用信息处理平台”中的“国产数据库管理系统d m 适应 性改造”分系统。 随着信息处理流程愈来愈复杂,需要存取的数据量愈来愈庞大,数据库逐渐成 为主要的收集和处理数据的工具,它是许多公司整体业务结构形成的基础。在分布 式计算环境下,基于异种系统平台,要实现对异构数据库的查询和联合使用,并提 供个独立于特定的数据库管理系统的统一的编程界面,必须提供一个通用的s q l 数据库访问和存储结构,它是实现d b m s 应用的广泛性和多样化的理想方式。为了在 以j i n i 技术为架构的分布式计算环境下实现对数据库简洁透明的有效访问,我们 需要一种新的通用的数据库服务方式。j i n i 环境下的数据库中间件是一种行之有效 的方法”“。 d m 数据库管理系统是华中理工大学数据库与多媒体技术研究所研制分布式多 媒体数据库管理系统。为了增强d m 系统的通用性和易用性,使用户可以一致性和 透明性地访问d m 数据库,我们提供了o d b c 和j d b c 驱动程序“,使蹦数据库管理 系统可以方便地与许多数据库开发平台和开发工具互连,也可以以w e b 方式访问d m 数据库。为了满足在分布式环境下,特别是分布式环境的移动计算的需要。本课题 准备研究基于j i n i 的d m 数据库中间件,使d m 数据库管理系统可以作为一种通用 的j i n i 服务在基于j i n i 的分布式应用中得到广泛的应用。我们定义的d m 数据库 中间件的功能主要是使j i n i 环境中的各种客户应用,可以像使用任何其他j i n i 环 境中的服务一样,以标准的方式使用d m 数据库管理系统提供的强大的数据存储和 访问服务。 华中科技大学硕士学位论文 1 2 国内外发展概况 计算机技术已经进入了一个新的时代。从7 0 年代末开始,p c 逐渐成为计算机 业的主角。但如今,那种以单个p c 为主的计算模式已渐渐失去主角地位”1 。一个新 的计算时代已经来i 临。在这个新的计算时代中,有两个趋势是值得注意:计算的网 络化“;计算的嵌入化。1 。 网络计算模式注重于将计算能力和资源分布到网络上,实际上是分布到数据库 服务器和各种应用服务器上。因此,网络计算模式实际上是以数据库为中心的计算 t o 一川 嵌入计算是指把计算机技术运用到原先被认为不是计算机的设备( 如电话、电 视、各种手持式设备等) 中。1 。嵌入计算的引入,大大拓展了传统意义上的计算机 网络,使大量家电设备、工业设备成为网络计算的一部分。计算真正的以网络为中 心。 正是基于这样的计算需求,j i n i 技术应运而生“2 1 “。j i n i 的设想十分简单:所 有支持j i n i 的设备或服务“,可以是数字相机、打印机、p d a 、蜂窝式电话或者是 纯软件服务,只要接入到t c p i p 网络中,就可以自动发现并使用附近其他支持j i n i 的服务。支持j i n i 的设备或服务可以使用网络上任何可用的资源,就像直接连到 一起或者用专门的程序控制了设备一样。把一个新的支持j i n i 的设备或服务添加 到“网络群体”中,只需要将其插接到网络中或是启动相应的服务程序即可“。f f l n z 技术提供的简明性、可靠性、可伸缩性给分布式计算带来了巨大的好处“。 j i n i 技术的核心目的是将网络环境中的各种软件服务和硬件设备集合成一个 统一的、动态的分布式系统“。基于j i n i 技术构建的数据库中间件产品会大大提 高数据库产品在网络计算环境下的可用性“”。 1 2 1j i n t 中主要关键技术 j i n i 是s u n 提出的一种新的分布式计算的软件技术“”。1 。j i n i 同其他分布式 2 华中科技大学颂士学位论文 技术一样“”2 ”,提供了对象位置的透明性。“,包括远程对象的定位和装载c 2 7 - 2 8 ,远 程方法的调用“8 2 ”1 。j i n i 的独特之处在于提出了可移动代码的概念。j i n i 利用了 j a v a 的r m i 及可移动代码的特性,使网络上的设备和服务易于维护、管理、扩展。 j i n i 的本质是解决服务之间是如何连接的问题。”,它是一种使网络上的服务可以彼 此寻找并相互利用的基本结构。1 。j i n i 为网络环境下的设备和服务提供了真正的即 插即用1 。j i n i 将j a v a 应用环境由单个的虚拟机推向整个的分布式网络口5 1 。 j i n i 定义了一组核心的规范和网络应用层协议来说明j i n i 系统应如何构建, 系统中的实体之间应如何交互。服务的实现者可以提出符合j i n i 规范的不同实现 方式。j i n i 中主要包含以下几项基本的关键技术。 1 发现( d i s c o v e r y ) 发现是服务启动时用于寻找网络中的服务群体,并把自己加入服务群体的过程 。发现协议还使得哪些已从网络断开的服务能够在恢复了与群体其他部分的通信 时,重新参与到群体中。发现协议实际上是j i n i 网络中的应用层协议。为了支持 上述功能,发现协议需要底层网络支持支持t c p 协议和u d p 组播传送协议。发现协 议是j i n i 服务寻找查找服务的途径,一旦找到某个查找服务,j i n i 服务就会加入 到该群体中,并在该查找服务中公布服务代理对象。 2 查找( l o o k u p ) 发现协议定义了如何找到代表特定群体的查找服务,而查找机制则是规定了服 务和应用应该如何使用查找服务。查找服务可以理解为一个大的目录引擎,群体中 每个服务都向其注册了必要的信息。j i n i 应用通过查找服务获取感兴趣服务的信 息。3 i n i 应用还可以向查找服务请求事件,动态获取网络中服务的变化。查找服务 本质上也是完整的j i n i 服务。使用者( 服务与应用) 也是通过下载服务代理的方 式与之交互3 ,唯一不同的是查找服务代理是直接通过发现过程得到的,而一般的 服务代理则是从相应的查找服务上获得的。 3 租借( l e a s i n g ) 租借解决了j i n i 系统中的两个核心的问题。第一,保证任何失败能够被检测 到。任何资源的占有者的崩溃都不会造成整个系统的崩溃。因为通过租借,资源的 提供者可以判断资源的使用者是否有失败的存在。租借提供了一个最后期限,是指 华中科技大学硕士学位论文 未被注意的失败存在的最长时间。第二,租借使得系统自动清除失败的部分,有效 的避免了长期运行服务的错误状态累积。租借技术使j i n i 具有自修复能力,它保 证一个群体在某些关键服务失败的情况下一段时间后可以恢复。它还保证长时间的 服务不会无限制的增长。 4 远程事件( r e m o t ee v e n t ) 在j i n i 环境中,我们经常需要在服务和客户之间异步的传送信息,j i n i 标准 提出了远程事件通知技术。远程事件通知技术有效的解决了分布式环境下跨进程的 异步信息传递的问题。远程事件通知技术是以j a v a 事件机制和j a v ar m i 机制为基 础的。这种远程事件机制保证了基于事件的分布式程序的可靠性和可伸缩性。在分 布式计算环境中很难保证事件通知的顺序发送和准确到达,所以远程情况需要更多 的策略性决定。 5 事务( t r a n s a c ti o n ) 事务是j i n i 使包含多个服务的计算到达一个“安全”状态的机制“”。调用者 可以保证,计算要么全部完成,要么都没进行,无论那种状态系统都到达一个可知 的状态。这种系统通常采用的协议为两阶段提交。j i n i 的事务模型采用了一种面向 对象的方式,提供了使用两阶段协议的接口,接口的实现完全取决于相应的服务如 何定义。 1 2 2 中间件技术 客户服务器( c s ) 计算模式作为分布计算标准,在可扩展性、模块性、可维 护性及灵活性等方面存在一些缺陷。例如:客户必须使用服务器提供的调用接口, 这些接口往往与服务器及调用接口支持的语言相关,编程语言受限制,软件的维护 比较复杂。为了满足易用性、异构性、分布性和安全性等的需要,人们提出了3 层 乃至n 层应用体系模型,于是出现了各种各样的连接客户机和服务器的中间层系统 和组件,我们将其统一称为中间件”1 。 中间件是一个非常广泛的概念,在某种意义上可以看作将c s 应用“粘”在一 起的胶水。它位于应用与网络底层、主机操作系统和别的资源服务器( 如数据库服 华中科技大学4 硕士学位论文 务器) 之间,它使得大量的不同平台表现为同样的界面。抽象地说,中间件位于客 户和服务器之间,它通过一组a p i 与两者通信,两端的程序员用这些a p i 来请求服 务和接收数据。 中间件在应用和所需资源之间提供了一些容易使用的a p i ,它也提供对其它系 统或系统服务的透明的a p i 级的访问能力,而不必要求开发者知道这些系统的所在。 中间件层能用某种名字服务找到所需要的系统,然后激活远程处理,并响应呼叫进 程的请求。 中间件致力于两个基本的互操作性的需要:服务和数据。面向数据库管理系统 的中间件能给数据库管理员提供简单的界面,使他能容易地实现d b m s 服务器与各 种各样的客户的互操作。 1 2 3 国内外相关产品发展概况 1 2 3 1j i n i 技术的发起与应用 j i n i 这个项目开始一直在s u n 公司内部悄悄进行,公众毫不知晓。直到1 9 9 8 年纽约时报的技术专题记者j o h nm a r k o f f 将其披露到报端。这项技术最终于 1 9 9 9 年1 月2 5 日公布于众,这时已经有了很多获取许可的申请。这些开发商主要 是丌发支持j i n i 的服务和设备o ”,包括磁盘驱动器、数码相机、打印机和扫描仪 等。鉴于此,s u n 公司迅速发起了j i n i 联盟。这些公司涉及到从设备制造商到企业 级软件公司的许多领域,其中包括像q u a n t u m 和s e a g a t e 这样的磁盘驱动器制造商, n o k i a 和e r i c s s o n 这样的蜂窝电话制造商,其他还有打印机制造商如x e r o x 、 c a n n o n 、e p s o n 和h p ,相机制造商k o d a k ,网络设备制造商c i s c o 和3 c o m ,软件开 发商b e a ys y s t e m s 、n o v e l l 和i n p r i s e ,许多消费类电器公司,如s o n y 、s h a r p 、 p h ili p s 和t o s h i b a 。j i n i 技术的应用已经给大量应用服务开发商和设备制造商( 4 d n e t w o r k s ,a d v i c e f r a m e w o r k s ,g i g a s p a c e st e c h n o l o g i e s ,e t c ) 带来各项成功。 华中科技大学硕士学位论文 1 2 3 2 j i n i 技术在数据库产品市场的前景 网络计算模式注重于将计算能力和资源分布到网络上,实际上是分布到数据库 服务器和各种应用服务器上。因此,从某种意义上来说,网络计算模式实际上是以 数据库为中心的计算,二者是紧密联系的。主要的数据库厂商如o r a c l e 、i n f o r m i x 、 m i c r o s o f t 、i b m 、c a 、s y b a s e 等均推出了大量的与网络计算相关的产品,以占领未 来网络计算市场的最高点。因为j i n i 是一种比较新的分布式软件技术,目前各数 据库厂商都还没有开发出基于j i n i 的中间件产品。j i n i 技术提供的简明性、可靠 性、可伸缩性给分布式计算带来了巨大的好处。基于j i n i 技术构建的数据库中间 件产品会大大提高数据库产品在j i n i 系统环境下的可用性。 1 3 课题主要研究工作 我们开发的基于j i n i 的d m 数据库中间件实际上是j i n i 世界和d m 数据库服务 器之间的“关口”。基于j i n i 的d m 数据库中间件是由一套符合j i n i 规范的服务来 实现的,它为客户提供一套访问d m 数据库的通用的j i n i 接口。这里的体系结构采 用了十分通用的j i n i 模型,即通过j i n i 接口控制并中介所连接的d m 数据库服务。 基于j i n i 的d m 数据库中间件的具体技术指标如下: 1 定义一组通用的数据库服务访问接口,适于各种j i n i 应用或服务在分布式 环境下透明的访问d m 服务器存取数据。 2 完整的实现基于j i n i 的d m 数据库服务接口和j i n i 的通用接口。 3 支持当数据库服务加入服务群体是的发现机制。、服务的查找“、租借、 远程事件的通知。 4 安全的认证机制,提供可信任的数据库服务,及代码下载机制。 本课题在研究j i n i 规范白皮书的基础上,研究和实现了一种基于j i n i 的d m 数 据库中间件系统,它具有透明性、易用性、适应性、可配置性和主动性的特点。我 们开发了基于j i n i 的d m 数据库中间件,实质上是j i n i 系统中的一个通用的服务。 通过这个通用的数据服务,j i n i 环境下的客户能方便的存取删数据库。本课题的 6 华中科技大学硕士学位论文 研究内容如下: 第二章描述基于j i n i 的d m 数据库中间件系统的总体设计,内容包括系统总体 结构模型,服务代理接口的设计,不同类型代理对象的特点。 第三章主要介绍d m 服务代理与j i n i 系统的相互作用,内容包括如何在j i n i 系 统中发布d m 数据服务,j i n i 客户如何获得d m 数据服务。 第四章主要介绍d m 服务代理中数据服务实现的若干关键技术问题,包括通用数 据的存取技术,连接缓冲池技术,远程事件通知技术,数据加密传输技术。 华中科技大学硕士学位论文 2 系统总体设计 本章描述基于j i n i 的d m 数据库中间件系统的总体设计。内容包括提出基于 j i m 的d m 数据库中间件的总体结构,服务代理内部具体的功能模块划分,服务代 理接口的设计。从效率和安全的角度考虑,在研究了j a v a 中的r m i 和激活模型之 后,提出独立完成数据服务、通过远程对象完成数据服务、通过远程激活对象完成 数据服务的三种基本模式来实现代理服务对象。 2 1j i 环境下d m 数据库中间件的总体结构 我们构筑基于j i n i 的d m 数据库中间件的目的是使j i m 环境中的各类客户应 用能够方便的使用d m 数据库管理系统提供的强大的数据存储和访问服务。基于j i n i 的d m 数据库中间件的实现方法是在j i n i 环境中加入一个由我们自己构造的d m 服 务代理。j i n i 环境中的各类客户应用通过d m 服务代理完成对d m 数据库的存取。要 实现上述的目标,我们需要解决以下两个基本的问题: 1 服务代理如何加入到j i n i 网络中的数据库服务群体中。 2 服务代理如何中介j i n i 客户应用对d m 数据库的访问。 解决第一个问题需要肌服务代理完整的实现j i n i 规范中所定义的发现、加入 以及租借的机制。这是每个j i n i 环境下的服务提供商都必须遵循的共同规范,只 是具体实现由服务提供商决定。 解决第二个问题需要d m 服务代理获取5 i n i 客户的数据库访问请求,经过一些 处理后,将其转化为对d m 数据库服务器的物理数据访问请求,并将获得的访问结 果返回给各个j i n i 客户。 按具体实现的功能我们将d m 数据服务划分成四个主要的部件,如图2 1 所示。 下面给出每个部件的功能概述。 1 服务注册管理部件 一- - _ _ - - _ _ - - _ - _ _ - 一 华中科技大学颂士学位论文 服务注册管理部件完成的功能是在服务启动时寻找j i n i 网络中可用的查找服 务,并向其注册d m 数据服务代理对象。其中发现协议实现模块实现j i n i 规范中的 组播传送请求协议和单播发现协议,以不同的方式寻找可用的查找服务;服务属性 管理模块负责对特殊的查找服务信息,首次获取的服务i d 和当前的d m 服务属性进 行持久化保存,以便在发生故障重启服务时恢复到正确的状态。 3 1 n i 系统中的查找服务 3 1 n i 客户应用 务a 事z 誓务服务迹事:搿鹏煅种 发现协议实现服务租约管理 f 数据存取模块l 事件注册向量 模块模块 管理模块 连接缓冲池管 理模块 远程事件租借 远程事件激发 i 服务模块管理l 管理模块加密数据传输 模块 管理模块 数据库访问管理部 服务注册管理部件 租借管理部件件 远程事件管理部僻 l 叫数据服务 存取删教据库 1 蹦数据库服务器 图2 1d m 数据服务总体结构图 2 租借管理部件 租借管理部件完成的功能是实现j i n l 分布式环境下对远程资源占用租约的管 理。d m 数据服务中主要使用了两类不同的远程资源。一类是当d m 数据服务向某个 查找服务的服务列表注册时,查找服务需要维护对d m 数据服务订立的租约,以保 9 华中科技大学硕士学位论文 m m 证在服务不可用时及时删除它占用的资源。而对于d m 数据服务而言,需要在规定 的时间范围内续定租约,这项工作由服务租约管理模块完成。另一类远程资源是当 j i n i 客户向d m 数据服务注册感兴趣的远程事件时,d m 数据服务需要维护事件注册 向量以便在需要的时候激发事件处理,所以d m 数据服务同样要维护相应远程事件 的租约,以便在订阅事件的客户不可用时,及时删除所占据的资源。这项工作是由 远程事件租借管理模块完成的。 3 数据库访问管理部件 数据库访问管理部件的功能是完成中介j i n i 客户对d m 数据库的访问的实质性 工作。它由三个功能模块组成:数据存取模块、连接缓冲池管理模块、加密数据传 输管理模块。其中数据存取模块通过d mj d b c 接口存取d m 数据库;连接缓冲池管 理模块用于将j i n i 客户的逻辑连接请求映射到与d m 数据库服务器的物理连接上: 数据加密传输模块定制了j i n i 客户与d m 数据服务之间的r m i 连接套接字,达到j i n i 网络中数据流加密传输的效果。 4 远程事件管理部件 远程事件管理部件负责接受并维护j i n i 客户向d m 数据服务提出的远程事件通 知请求,在某个客户所关心的事件发生时,利用p & i i 机制调用用户注册的事件处理 函数。其中事件注册向量管理模块负责维护一个向量结构,这个向量中存储了所有 注册的事件收听者的引用,并调用远程事件租借模块中的函数对事件的租借时间进 行管理。远程事件激发模块负责依次调用事件收听者注册的事件处理函数。 以上是从功能的角度描述了d 【数据服务的总体结构。下一节中,我们将就服 务代理接口的定义,功能划分作详细介绍。 2 2d m 服务代理的接口设计 d m 作为一个成熟的数据库管理系统,为了增强它的通用性和易用性,使用户可 以一致性和透明性地访问d m 数据库,我们已经开发了许多d m 客户端工具,如i s q l , j i s q l ,e m a n a g e r ,j e m a n a g e r 等,我们也提供了o d b c 和7 d b c ,但这些工具和接口 都有各自的实用环境。为了让j i n i 环境下的客户能方便的访问d m 数据库,我们开 1 0 华中科技大学硕士学位论文 发了基于j i n i 的晰数据库中间件,实质上是7 i n i 系统中的一个通用的服务。d m 服 务代理的功能是向j i n i 客户应用提供d m 数据库管理系统的通用数据存取操作。该 d m 服务代理的功能具有如下特点: 1 透明性 客户不需要知道d m 服务代理在网络中的具体所在,更无需知道数据库服务器 所在的主机,也不必关心服务代理运行的软硬件平台。 2 易用性 服务代理提供了简洁但功能完备的接口,客户仅需要象使用本地方法一样调用 这些接口就可以实现对d m 数据库的数据存取。 3 适应性 根据不同的客户应用及物理网络的状况,提供三种不同量级的服务代理,区别 在于客户端的计算能力和网络的吞吐状况。 4 可配置性 用户可以通过配置脚本文件对服务注册方式,安全机制,服务代理类型,连接 缓冲池等系统参数进行设置。 5 主动性 d m 数据服务代理具有服务的主动性,用户可以将感兴趣的信息以远程事件的方 式向j i n i 系统注册,d m 数据服务代理就可以通过远程事件的方式通知客户端。 2 2 1 定义数据服务接口 服务接口定义了服务的功能。服务代理对象将实现d m s e r v i c e i n t e r f a c e 接口, 而客户在找到查找服务后,就可以使用它的类型名称从查找服务获取服务代理对 象。d m s e r v i c e i n t e r f a c e 提供了用户对数据库操作的界面。用户对数据库的一切操 作都是通过该接口来完成的。该接口的定义参照了通用的o d b c ,j d b c 标准中的相 关函数定义,除了对数据库实施操纵的接口外,d m s e r v i c e i n t e r f a c e 还提供了一些 非常有用的服务配置接口,使用户能够灵活地配置他所需要的服务,以满足一些特 殊的服务要求,如安全机制、事务管理等。下面给出了d m s e r v i c e i n t e r f a c e 接口 华中科技大学硕士学位论文 中定义主要方法。 i n tc o n n e c t t o d a t a b a s e ( s t r i n gs e r v i c e n a m e , s t r i n gu s e r n a m e , s t r i n gp a s s w o r d ) t h r o w sd m e x c e p t i o n : c o n n e c t t o d a t a b a s e :连接s e r v i c e n a m e 参数指定的数据服务器,s e r v i c e n a m e 并不是任何与物理数据库相关的主机名或u r l ,而是从d m 数据服务属性中查询获得 的服务相关名,由对应的数据服务命名。用户还必须提供连接所用的用户名和口令, 通过访问的认证。该函数返回用于标识连接的整数标识。 i n td i s c o n n e c t f r o m d a t a b a s e ( i n tt o k e n ) t h r o w sd m e x c e p t i o n : d i s c o n n e c t f r o m d a t a b a s e :断开t o k e n 参数指定数据源。 i n ts e t s e r v i c e o p t i o n ( i n tt o k e n , s t r i n go p t i o n s t r i n g ) t h r o w sd m e x c e p t i o n : i n tg e t s e r v i c e o p t i o n ( i n tt o k e n ) t h r o w sd m e x c e p t i o n : s e t s e r v i c e o p t i o n 、g e t s e r v i c e o p t i o n :配置和获取服务选项。通过该方法, 用户可以指定和查询服务数据传输的安全特性。 t a b l e m e t a g e t t a b l e s ( i n tt o k e n : s t r i n gt a b l e n a m e , s t r i n go w n e r ) t h r o w sd m e x c e p ti o n : g e t t a b l e s :查询表的各种元数据信息,如关键字、索引和权限等。参数中的 表名,所有者都可以指定为j d b c 标准中可能的通配符。返回的结果是自描述的结 1 2 华中科技大学硕士学位论文 果集。 c o l u m n m e t a g e t c o l u m n s ( i n tt o k e n , s t r i n gt a b l e n a m e , s t r i n gc o l u m n n a m e , s t r i n go w n e r ) t h r o w sd m e x c e p tio n ; g e t c o l u m n s :查询列的元数据信息,包括列名、列类型等。参数中的列名,表 名,所有者都可以指定为j d b c 标准中可能的通配符。返回的结果是自描述的结果 集。 i n te x e c u p d a t e ( i n tt o k e n ,s t r i n gs q l c m d ) t h r o w sd m e x c e p t i o n : e x e c u p d a t e :执行一条数据库操纵、定义语句。 i n te x e c q u e r y ( i n tt o k e n ,s t r i n gs q l c m d ) t h r o w sd m e x c e p t i o n ; e x e c q u e r y :执行一条查询语句,并返回查询标识号。 i n tf e t c h t u p l e s ( i n tt o k e n , i n tq u e r y l d , d m r e s u l t sr e s u l t , i n t p o s , i n tr o w s , i n tr e a l r o w s ) t h r o w sd m e x c e p ti o n : f e t c h t u p l e s :根据指定的查询标识号,取得查询结果。参数中还可指定想要 获取得记录个数以及实际获取的记录个数,并可以在结果集中定位光标。 华中科技大学硕士学位论文 2 2 2 实现接口的三种量级的服务代理对象 服务代理对象的功能是实现数据服务接口,为用户提供d m 数据服务。服务代 理对象可以完全由自身完成服务功能,即在服务对象内部通过j d b c 驱动程序存取 d m 数据库。但出于效率和安全的原因,对于大部分的情况,都将是由一个代理和一 个通过代理与之通信的后台服务进程来实现。代理和后端两部分之间的通信可以统 一使用r m i 机制,或者完全使用原始套接字,以及其他所需的任何协议。j i n i 环境 下,d m 服务代理对象,后台服务进程,j i n i 客户应用及j i n i 系统中的查找服务之 间的数据流向如图2 2 所示。 图2 2j i n i 环境下d m 数据代理的数据流图 1 4 华中科技大学硕士学住论文 在本节中我们将提出三种可选的实现方式来实现代理服务对象。这三类服务代 理的主要区别在于服务代理对象和后台守护进程的工作划分。 2 2 2 1 重量级服务代理对象 重量级服务代理对象本身完成所有的数据服务功能。后台守护进程只是负责将 d m 数据服务注册到查找服务中,并且不断的续定服务租约,以保证服务的有效性。 这种情况下后台守护进程只包含了服务注册管理部件和租借管理部件中的服务租 约管理模块,而服务代理对象则包含了数据库访问管理部件中的数据存取模块。以 后当j i n i 环境下的客户应用请求d m 数据服务的时候,服务代理对象被完整的下载 到客户所在的j v m 上,然后客户便通过服务代理接口提供的方法访问d m 数据库。 这时在服务代理对象内部,直接调用j 1 ) b c 驱动程序,与d m 数据库服务器进行通讯, 完成数据的存取工作。由于不存在服务代理对象和后台守护进程的通讯,所以某些 功能模块被省略了。 从实现的角度来看,重量级服务代理对象的实现方法是最简单的实现。重量级 服务代理对象的完成的功能如图2 3 所示。 图2 3 重量级服务代理对象功能示意图 2 2 2 2 中量级服务代理对象 中量级服务代理对象本身并不完成接口中定义的功能,而是由后台服务进程中 的远程对象完成实际的数据访闯操作。服务代理与后台进程之间的通讯采用j a v a 中的r m i 机制。r m i 使得运行在不同的j a v a 虚拟机上的应用程序可以彼此会话。通 华中科技大学硕士学位论文 过这种技术,使我们的服务代理对象的代码尺寸大大减小,工作也非常简化,通过 远程接口,调用后台进程中的远程对象中的方法。但在这种情况下,后端服务进程 必须一直运行。后端服务进程中的远程对象调用j d b c 驱动程序访问d m 数据库。后 端服务进程当然也要包括服务注册管理部件、租借管理部件、远程事件管理部件。 在这种结构之下,后端进程成了一个处理中心,因为不同的j i n i 客户的访问请求 在这里汇总,我们可以对连接请求,重复使用的数据进行缓冲达到提高效率,和用 户吞吐量的目的。中量级服务代理对象的完成的功能如图2 4 所示。 图2 4 中量级服务代理对象功能示意图 2 2 2 3 轻量级服务代理对象 轻量级服务代理对象实现的功能与前面提到的中量级服务代理对象类似,但却 更为灵活。我们看到重量级服务代理对象无需后端服务进程运行,但却十分庞大; 而中量级服务代理对象虽然紧凑,却需要在后台一直运行一个庞大的后台守护进 程,如果长时间无用户访问,后台守护进程做的事情只是续定服务租约,造成了资 。一 1 6 华中科技大学硕士学位论文 源的浪费。在充满了j i n i 服务的网络中,如果有某个不做什么的进程要耗费资源, 这将是很大的性能问题。 解决办法是使用r m i 激活框架。激活框架是j a v a 在需要时启动远程服务器对 象的一种工作方式。激活框架为远程对象提供了一种节约资源的方式,使它只有在 被需要时才占用内存和c p u 资源。当有调用者试图激活它的一个方法时,对象被激 活,即意味着它的状况从先前的非活跃又“重获生命”,这时对象可以接受对它的 调用。 激活很好地支持了那些长时间存在的远程对象,使它们只有在被使用时才被激 活。它还带来的另一个好处,即对这些对象的引用可以长时间存在。也就是说,如 果我们拥有了对一个可激活对象的引用,则只要激活框架知道这个对象,此引用就 是有效的,我们可以对它进行存储和重用,因为它所指向的对象可在需要时被启动。 在具有大量远程对象的系统中激活将十分有用。激活的方法将那些暂时不用的对象 置为非活跃,在需要时重新活化。 激活使服务器对象在需要时才启动,所以使用它可以开发出能在崩溃后自动恢 复的软件。如果可激活的远程对象被关闭或者失败,或者是运行远程对象的机器崩 溃,则可以使用激活机制使它在需要时“复活”。激活守护进程把持久性状态信息 存储在文件系统的记录中,在需要的时候利用它进行恢复。 虽然在远程对象很多,或远程对象使用不频繁的环境中采用激活机制会极大提 高性能,但在决定激活和取消的策略时,仍然要小心。重新激活一个不活跃对象的 开销是相当大的,它将创建一个新的j v m ,为被激活的对象加载并验证所需的类, 并取消序列化。因此,一旦某个对象已被激活,就需要采取一定策略使之保持一段 “安全”的时期。如果没有这个策略,对象可能会在活跃和非活跃状态之间“颠簸”, 消耗掉很多的时间和内存。取消激活的策略可根据从上次调用以来间隔的时间、累 积的调用次数,或其他参数来决定。 在轻量级服务代理的实现中,后端进程仍然要向r m i 远程服务注册表注册远程 对象。这个远程对象与前一节中的一样,调用j d b c 驱动程序访问d m 数据库。轻量 级服务代理对象的完成的功能如图2 5 所示。 华中科技大学硕士学位论文 图2 5 轻量级服务代理对象功能示意图 2 3j i n i 环境中d m 服务代理的配置与发布 本章将对d m 数据代理服务的部署和启动以及j i n i 系统环境作详细阐述,其主 要内容是如何构筑j i n i 系统环境,启动j i n i 系统服务,d m 服务代理代码的部署。 2 3 1 配置运行j i n i 系统环境 j i n i 和j a v a 一样定义了一组核心规范来说明软件是如何运行的,因此就像另 外的操作系统厂家或开发组可以开发其他符合此规范的j a v a 版本一样,j i n i 也可 以有多种不同的实现方式。s u n 公司也实现了j i n i 规范的样例版本,就像他们为 j a v a 技术提供的w i n d o w s 和s o l a r i s 样例实现一样。s u n 完全采用l a v a 2 实现j i n i , 所以可以在任何符合j a v a2 规范的平台上运行。 本文中采用的开发和运行环境是j a v a2j d k 和j i n is y s t e m s o f t w a r e1 2 。 一 l r 华中科技大学硕士学位论文 所有软件包均可从s u n 公司的网站上免费获取。 j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络店铺代理运营合同范本7篇
- 叉车配件供货合同2篇
- 安全培训班教师课件
- 供用电合同(编号:1)
- 木梯课件教学课件
- 押题宝典期货从业资格之《期货法律法规》模考模拟试题附参考答案详解【综合卷】
- 安规培训课件输电
- 新质生产力下医院智慧运营管理实践研究
- DB15-T 3481-2024 设施二氧化碳气肥施用技术规程
- 推拿治疗学新题库及参考答案详解(模拟题)
- 医院信息安全与保密承诺书2篇
- 物料分类账详解
- 康复护理学-康复评定认知功能评定
- 泰来2井三级井喷事故分解析
- 船舶常用英语名称
- 超市标准商品分类表
- 《导游业务》教案资料.docx
- 最全的食物相克表(打印版)
- 河南省科技版三年级劳动与技术上册教案
- 施工现场安全标志和安全防护设施设置方案
- QC课题衬衣小扣外观解析PPT课件
评论
0/150
提交评论