




已阅读5页,还剩75页未读, 继续免费阅读
(机械电子工程专业论文)应用服务器数据库连接服务的研究、设计和实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。具我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表或撰写过的研究成果,也不包含为获得电子科技大学或其它教 育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意。 签名: 董塞 日期:z 一,。年j 月3 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文的规定, 有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅 和借阅。本人授权电子科技大学可以将学位论文的全部或部分内容编人有关数 据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解秘后应遵守此规定) 签名:萋久 导师繇畜幻 日期:2 舻1 年;月c r 日 电子科技大学硕士毕业论文应用服务器数据库连接服务的研究、设计和实现 中文摘要 f 正文i 随着电子商务的迅猛发展,应用服务器使用得越来越广泛,所有基 于i n t e m e t 的w e b 应用和e j b 应用均可采用它来开发,这些应用通常需要访问 数据库,而且可能需要同时访问多个不同的数据库,为了支持数据库访问,应 用服务器通常集成有数据库连接服务。 本文主要阐述了应用服务器数据库连接服务的理论研究和设计实现。其中, 理论研究为设计实现奠定了坚实的理论基础和完善的系统框架,主要对应用服 务器体系结构、数据库连接服务体系结构、交易服务体系结构以及数据库连接 服务和交易服务之间的通信机制等方面进行了研究;设计实现完成了数据库连 接服务的系统设计和实现,主要包括服务管理和连接管理两个模块。连接管理 模块是数据库连接服务的核心,共实现了三种结构:1 ) 既不支持连接池,又不 支持分布式交易的数据库连接服务体系结构;2 ) 支持连接池,但不支持分布式 交易的数据库连接服务体系结构;3 ) 既支持连接池,又支持分布式交易的数据 库连接服务体系结构。第三种体系结构是本文研究的重点,可提供了连接池、 预编译语句对象池和分布式交易等功能。 f 实践证明,作为应用服务器一个必不可少的系统级服务组件,数据库连接 服务不仅可确保应用代码具有较好的移植性,而且能够在很大程度上改善应用 服务器的整体性能,可为商务应用高效、透明地访问各种关系数据库管理系统 提供一种更优的选择方案,特别适合本地或者分布式计算环境下的多用户并发 访问。厂 关键词:连接池,全局交易,本地交易,可交易连接,可交易资源 电子科技大学硕士毕业论文应用服务器数据库连接服务的研究、设计和实现 a b s t r a c t c o n t e n t :w i t ht h er a p i dd e v e l o p m e n to fe l e c t r o n i c b u s i n e s s ,a p p l i c a t i o ns e r v e r i su s e dm o r ea n dm o r ew i d e l y b a s e do nt h ei n t e r a c t ,s u c ha l lk i n d so fb u s i n e s s a p p l i c a t i o n sa sw e b a n de j ba r ed e v e l o p e dw i t ht h eh e l po f a p p l i c a t i o n s e r v e rt 0 0 1 t h e yu s u a l l yn e e da c c e s s i n go n eo rm o r ek i n d so fr e l a t i o nd a t a b a s em a n a g e m e n t s y s t e m i no r d e rt os u p p o r td a t a b a s ea c c e s s ,a p p l i c a t i o ns e r v e ri n t e g r a t e sd a t a b a s e c o n n e c t i o ns e r v i c e t h e s t u d y , d e s i g n a n di m p l e m e n to fd a t a b a s ec o n n e c t i o ns e r v i c ei si l l u m i n a t e d i nd e t a i l t h ep a r to ft h e o r e t i c s t u d yp r o v i d e st h es o l i df o u n d a t i o na n dp e r f e c t f r a m e w o r kf o rt h ep a r to fd e s i g na n di m p l e m e n t ,i n c l u d i n gt h ea r c h i t e c t u r eo f a p p l i c a t i o n s e r v e r ,d a t a b a s ec o n n e c t i o ns e r v i c e ,t r a n s a c t i o ns e r v i c ea n dt h e c o m m u n i c a t i o np r i n c i p l eb e t w e e nd a t a b a s ec o n n e c t i o ns e r v i c ea n dt r a n s a c t i o n s e r v i c e t h ep a r to fd e s i g na n di m p l e m e n te m p h a s i z e so ns e r v i c ea n dc o n n e c t i o n m a n a g e m e n tm o d u l e ,s u p p o r t i n g t h r e ek i n d so fd a t a b a s ec o n n e c t i o ns e r v i c e a r c h i t e c t u r e f i r s t ,c o n n e c t i o np o o l i sn o t s u p p o r t e d ,n e i t h e r i sd i s t r i b u t e d t r a n s a c t i o n s e c o n d ,c o n n e c t i o np o o li ss u p p o r t e d ,b u td i s t r i b u t e dt r a n s a c t i o ni sn o t t h i r d ,b o t ho ft h e ma r es u p p o r t e d t h et h i r da r c h i t e c t u r ei s e m p h a s i z e do n , p r o v i d i n gw i t hc o n n e c t i o np o o l ,p r e p a r e ds t a t e m e n to b j e c tp o o la n dd i s t r i b u t e d t r a n s a c t i o nf u n c t i o n i ti sp r o v e dt h a td a t a b a s ec o n n e c t i o ns e r v i c en o to n l ym a k e s a p p l i c a t i o n sm o r e p o r t a b l e ,b u ta l s og r e a t l yi m p r o v e st h ep e r f o r m a n c eo fa p p l i c a t i o ns e r v e r ag o o d c h o i c ei s p r o v i d e df o r e f f i c i e n ta n dt r a n s p a r e n t a c c e s s i n g a l lk i n d so fr e l a t i o n d a t a b a s em a n a g e m e n ts y s t e m i ti s v e r yf i tf o rc o n c u r r e n tu s e r sa c c e s si nl o c a lo r d i s t r i b u t e dc o m p u t i n ge n v i r o n m e n t k e yw o r d s : c o n n e c t i o n p o o l ,g l o b a l t r a n s a c t i o n ,l o c a lt r a n s a c t i o n , t r a n s a c t i o n a lc o n n e c t i o n ,t r a n s a c t i o n a lr e s o u r c e 2 电子科技大学硕士毕业论文 应用服务器数据库连接服务的研究、设计和实现 1 1应用服务器概论 第一章引言 随着i n t e m e t 的出现和电子商务的兴起,客户机服务器两层模型使分布式 计算获得一定程度的发展。但是该模型属于点对点的直接连接,性能低、管理 复杂、系统可扩展性差,因此它不再适合商务逻辑复杂、形式多变的分布式应 用的开发。为了克服客户机,服务器两层模型的种种缺陷,人们将商务逻辑从原 来的客户端分离出来并移交给后端服务器处理,而前端客户机仅负责表示逻辑 的实现,例如界面设计和数据的有效性校验等操作。在这里,后端服务器也称 作应用服务器。因此,应用服务器是商务应用结构从传统的两层客户机,服务器 向多层,特别是向三层模型转移的必然产物。这种转移,是企业进入电子商务 的关键。 1 1 1应用服务器的功能 应用服务器是软件开发和系统集成的基础平台,通常集成有名字、目录、 交易、数据库连接、消息以及线程等多种系统级服务。其中,名字目录服务可 用来查找和访问分布式对象,交易服务可用来划分交易边界、传播交易上下文、 同步交易和管理可交易资源,数据库连接服务可用来透明地访问各种关系数据 库管理系统,消息服务可用来接受或者发送异步消息。因此,应用服务器具有 十分强大的功能,可为电子商务方案的解决提供全程支持,这种支持能力具体 体现在以下几个方面: 1 ) 启动、监控、调整、配置和布署分布式应用,包括对象生命周期管理、 线程管理、状态管理以及安全管理等; 2 ) 数据库连接访问管理、交易管理等: 3 ) 多用户并发访问管理、负载均衡、容错、修复、迁移以及升级扩展等; 4 ) 与现有系统的无缝集成。 以上各种管理功能均由应用服务器的相应服务组件来提供支持,在应用的 ,可用性、可移植性以及运行效率等方面都有了很好的保障,同时简化了应用的 开发周期和成本。通过基于图形的集中化控制,用户能够随时掌握分布在网络 上众多对象的状态,快速建立对象与对象之间的后援关系,设定对象异常终止 时后备对象接替运行的策略。 电子科技大学硕士毕业论文应用服务器数据库连接服务的研究、设计和实现 1 1 2应用服务器的运用 目前,应用服务器在很多领域( 例如电子商务、远程教育和远程医疗) 均 获得广泛地运用。在这里,主要讲述它在网站、客户关系管理以及信息门户三 个电子商务方面的典型运用。 1 1 2 1 商务网站 随着电子商务的推广,越来越多的网站开始由原来纯粹的信息服务转向为 形式多样的商业服务,比如网上购物、网上拍卖以及网上金融等。通常情况下, 这些商务服务的应用逻辑都很复杂,而且对系统的安全检测、并发控制、可靠 性以及运行效率均提出较高的要求,为了适应这一要求,中间件厂商推出了应 用服务器产品。由于应用服务器支持交易处理、状态维护、并发控制、安全检 测、资源共享等功能,因此它可在很大程度上简化商务应用的开发、缩短开发 周期、提高开发质量、促使商务应用快速地响应市场需求,同时确保它具有较 好的可移植性和可扩展性。 1 1 2 2 客户关系管理 客户关系管理( c l i e n t r e l a t i o nm a n a g e m e n t ,简称为c r m ) 是企业和客户 进行通信的唯一渠道,它蕴藏着重要的商业信息。电子商务运行的基本原则是 以客户为中心,因此客户关系管理在电子商务中占有极其重要的地位。目前很 多大企业,特别是制造业中,诸如e r p 这样的传统应用依然是很基本的。不过, 电子商务要求对这些企业应用进行必要的重整,在这个过程中,客户关系管理 发挥了至关重要的作用。因此,可从某种意义上讲,没有客户关系管理就没有 现代企业。但是,客户关系管理应用完全架构在异构的、动态的以及分布的环 境之上,因此,建造这样的环境,需要依托诸如j 2 e e 这样的新平台,而应用 服务器正是这一平台的核心。 1 1 2 3 企业信息门户 信息门户是近来在企业应用中倍受关注的一个方面。与y a h o o 、e x c i t e 以 及n e t c e n t e r 等普通门户不同,企业信息门户打破了多年信息系统建设中所形成 的种种技术壁垒,最终实现了企业数据、信息以及服务到工作现场的引导。企 业信息门户强调服务的“个性化”,即在正确的时刻,正确的地方,将正确的信 息提供给真正需要它们的人。为了提供真正个性化的服务,企业信息门户的基 本任务是将那些从后端系统( 例如数据库管理系统) 所获取的服务或者数据, 以最适合于前端工作的方式提交到工作现场。由于应用服务器处于多层应用结 构的中间,可将业务逻辑处理后的数据提交给w e b 页面,因此应用服务器是支 电子科技大学硕士毕业论文应用服务器数据库连接服务的研究、设计和实现 撑企业信息门户的“幕后英雄”。 1 1 3应用服务器的发展现状 目前许多软件厂商发现应用服务器技术蕴藏着巨大的商机,因而相继加大 了它的推广力度。g a r t e rg r o u p 在其最新的报告中指出:尽管当前世界经济不 太景气,但对于应用服务器软件的需求仍将持续增长,因为它是驱动其它软件 ( 例如电子商务、客户关系管理和信息门户) 协同工作的一种系统平台。据预 测,到2 0 0 5 年,全球应用服务器的年市场营业额将达到4 0 亿美元,而今后还 会以更快的速度增长。至今r r 领域约有3 0 的商家宣布能够提供应用服务器 产品及相关服务。仅仅这两个数据就足以反映应用服务器市场的火爆程度。r r 商家都知道,争夺应用服务器市场就是争夺方兴未艾的电子商务市场的制高点。 目前,就企业级应用服务器产品而言,在国外主要有b e a 的w e b l o g i c 和i b m 的w e b s p h e r e ,而国内主要有东方通科技的t o n g w e b 应用服务器和金蝶阿派 斯应用服务器。 1 2j 2 e e 技术标准 j 2 e e 是s u n 公司推出的用于开发基于组件模型的系统软件的一种基础结 构,与o m g 的c o r b a 和m i c r o s o f t 的d c o m 相对应,它已成为应用服务器 的事实标准,目前大多数应用服务器均采用此标准来设计。j 2 e e 是开发、配置 和管理分布式应用的新平台,可支持以服务器为中心的多级应用结构,在开发 基于i n t e m e t 的商务应用,特别是建设b 2 b 或者b 2 c 的商务系统时,该标准正 发挥越来越重要的作用。以j 2 e e 为平台开发多级分布式商务应用,具有一系 列明显的优点: 1 ) 提供简单、易用的商务应用开发模型; 2 ) 对商务应用的开发、配置、布署和管理提供全程支持; 3 ) 确保商务应用真正实现“一次开发,随处可运行”; 4 ) 提供商务应用运行时所需的全部系统服务; 5 ) 可充分利用企业现有的r r 资源并确保商务应用的跨平台运行。 基于j 2 e e 的应用服务器集成有名字、目录、交易、数据库连接、消息以 及线程等多种系统级服务,这些服务通常采用组件模型来开发。j 2 e e 所提供的 良好接口定义不仅可确保某个特定的服务组件具有相对独立的、完整的功能, 而且可在很大程度上减小服务组件之间的藕合性。 j 2 e e 涉及的技术主要包括j a v a 、e j b 、j n d i 、r m k i i o p 、j d b c 、j t a 、j t s 、 j m s 以及x m l 等方面,如表1 - 1 所示: 电子科技大学硕士毕业论文应用服务器数据库连接服务的研究、设计和实现 表1 1j 2 e e 主要技术 应用编程接口描述 e n t e r p r i s ej a v a b e a n s ,企业j a v a b e a n s ,一种服 e j b 务方组件模型,常用于面向对象的分布式计算环境。 j a v a n a m i n g a n d d i r e c t o r yi n t e r f a c e ,j a v a 名字目 j d n i录接口,可提供名字目录服务,例如d n s 、n d s 、 n - i s + 、l d a p 和c o s n a m i n g 。 r e m o mm e t h o di n v o c a t i o n ,远程方法调用,可 i u d i 为基于j a v a 的分布式计算创建远程接口。 j a v ai n t e r f a c ed e f i n el a n g u a g e ,j a v a 接口定义语 j a v a i d l言,可在j a v a 平台上创建支持c o r b a 通信的远程接 口,包括i d l 编译器以及支持h o p 协议的o r b 。 j a v as e r v l e t s 和j a v as e r v e rp a g e s ,j a v a 服务方 s e r v l e t 、j s p小应用程序和服务方页面,可支持动态的w e b 内容生 成以及浏览器客户会话管理。 j a v a m e s s a g es e r v i c e ,j a v a 消息服务,可支持通 j m s过不同消息系统的异步通信,例如可靠队列和发布订 阅。 j a v at r a n s a c t i o na p i ,j a v a 交易编程接口,可用 儿 a 来划分交易边界、传播交易上下文、同步交易和管理 可交易资源。 j a v at r a n s a c t i o ns e r v i c e ,j a v a 交易服务,它是 j t s c o r b a o t s 的j a v a 映射。 j a v ad a t a b a s ec o n n e c t i v i t y ,j a v a 数据库连接, j d b c 可用来透明地访问各种关系数据库管理系统,例如 o r a c l e 、d b 2 、i n f o m i i x 、s q ls e r v e r 和s y b a s e 等。 1 3课题的主要任务 本课题源于北京东方通科技软件开发公司的应用服务器项目组,主要任务 是完成数据库连接服务的理论研究和设计实现。其中,理论研究主要包括应用 服务器体系结构、数据库连接服务体系结构、交易服务体系结构以及数据库连 接服务和交易服务之间的通信机制等方面的研究;设计实现主要包括标准数据 源接口、数据库连接池、预编译语句对象池和分布式交易等功能的实现。 电子科技大学硕士毕业论文 应用服务器数据库连接服务的研究、设计和实现 1 4论文的章节安排 第一章是引言,讲述了应用服务器的一般概论、j 2 e e 技术标准以及本人在 课题中所承担的任务。 第二章是标准数据源接口部分,主要讲述了商务应用访问数据库管理系统 的两种基本方法:驱动程序管理器法和标准数据源接口法,并详细地阐述了标 准数据源接口的规范设计以及它和名字服务之间的关系。通过名字服务获取标 准数据源对象引用,不仅可确保应用代码具有最好的可移植性,而且可屏蔽底 层数据库连接池和分布式交易等功能的实现。 第三章是数据库连接池部分,主要讲述了客户方连接池、服务方连接池和 预编译语句对象池,并详细地阐述了服务方连接池的规范设计。使用连接池缓 存物理连接以便在适当的时候重用,可以显著地提高物理连接的加载速度,从 而缩短连接建立时间并提高多用户并发访问数据库的效率。 第四章是分布式交易部分,主要讲述了分布式交易体系结构、交易管理器、 资源管理器以及交易管理器和资源管理器之间的通信机制,并详细阐述了分布 式交易的规范设计。由于多个数据库管理系统可能同时参与分布式计算,因此 应用服务器需要使用交易管理器来协调分布式交易下的多个数据库之间的关 联,并对所有已登记资源执行两阶段提交以确保交易的原子性、完整性、一致 性和持久性。 第五章是数据库连接服务的设计和实现,主要讲述了三种体系结构的设计 和实现方案:1 ) 既不支持数据库连接池,又不支持分布式交易的体系结构设计 和实现;2 ) 支持数据库连接池,但不支持分布式交易的体系结构设计和实现; 3 ) 既支持数据库连接池,又支持分布式交易的体系结构设计和实现。包括总体 功能与需求、系统资源和环境以及详细设计等内容。 第六章是结论,总结了该课题得出的结论、取得的成果以及下一步的工作 展望。 最后一部分是致谢、个人简介和参考文献。 第二章标准数据源接口 2 1 驱动程序管理器 驱动程序管理器d r i v e r m a n a g e r 是用来管理各种数据库驱动程序的类。每 当调用c l a s s f o r n a m e 方法装载特定厂商的d r i v e r 实现时,j a v a 运行时环境将 1 0 电子科技大学硕士毕业论文 应用服务器数据库连接服务的研究、设计和实现 自动地把它的一个实例注册到d r i v e r m a n a g e r 中,如果需要的话,还可以同时 加载并注册多个不同的驱动程序,而建立物理连接时,d r i v e r m a n a g e r 会根据相 应的要求从其注册列表中选择适当的驱动程序以供使用。 d r i v e r m a n a g e r 类没有提供构造函数,因此它的方法都是静态的,其中建立 数据库连接的方法原型为: p u b l i cs t a t i cc o n n e c t i o ng e t c o n n e c t i o n ( s t r i n gu r l ) t h r o w ss q e x c e p t i o n p u b l i cs t a t i cc o n n e c t i o ng e t c o n n e c t i o n ( s t r i n gu r l ,s t r i n gu s e r , s t r i n gp a s s w o r d ) t h r o w ss q l e x c e p t i o n j d b c 应用常使用d r i v e r m a n a g e r 来访问数据库,但这种方式弊端较多,首 先d r i v e r 实现标识一个特定的驱动程序供应商;其次数据库服务器信息,例如 用户名、口令以及u r l 完全硬编码到程序中;另外d r i v e r m a n a g e r 仅支持本地 交易,并不适合于分布式计算,因此并不推荐j d b c 应用组件使用这种方法来 访问数据库。 2 2标准数据源 为了支持分布式计算、安全管理数据库服务器以及确保应用代码具有最好 的可移植性,j d b c 2 0 标准扩展a p i 为访问各种关系数据库管理系统提供了 一个统一的、高度抽象的数据源接口j a v a x s q l d a t a s o u r c e ,其定义如下: p u b l i ci n t e r f a c ed a t a s o u r c e p u b l i cc o n n e c t i o ng e t c o n n e c t i o n 0t h r o w ss q l e x c e p t i o n p u b l i cc o n n e c t i o ng e t c o n n e c t i o n ( 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 ss q l e x c e p t i o n p u b l i cp r i n t w r i t e rg e t l o g w r i t e r ( ) t h r o w ss q l e x c e p t i o n p u b l i cv o i ds e t l o g w r i t e r ( p r i n t w r i t e ro u t ) t h r o w ss q l e x c e p t i o n p u b l i cv o i ds e t l o g i n t i m e o u t ( i n ts e c o n d s ) t h l o w ss q l e x c e p t i o n p u b l i c i n tg e t l o g i n t i m e o u t ot h r o w ss q l e x c e p t i o n ) j a v a x s q l d a t a s o u r c e 接口通常由驱动程序供应商或者应用服务器厂商实 现。和d r i v e r m a n a g e r 相比使用d a t a s o u r c e 来访问数据库具有以下优点: 1 ) d a t a s o u r c e 对象通常由应用服务器使用j n d l 名字服务来注册,因此分 布式客户可以远程地管理它所获得的任何连接,而使用d r i v e r m a n a g e r 的客户只 能管理本地连接; 2 ) d a t a s o u r c e 对象并不要求客户应用程序在运行环境中加载、注册驱动程 序,其属性完全由应用服务器负责配置和管理,从而避免了硬编码,而使用 龟子科技大学顽士毕业论文应用腰务器数据摩连接服务的研究,设计和实现 d r i v e r m a n a g e r 的客户应用程序需要显式地指定驱动程序类、u r l 、用户名以及 口令等数据库信息; 3 ) d a t a s o u r c e 对象不仅可以屏蔽各种驱动程序之间的差异,而且可以透明 地提供数据库连接池、预编译语句对象池以及分布式交易等功能,而直接使用 d r i v e r m a n a g e r 只能创建物理连接。 2 2 1标准数据源属性 数据源属性通常分为标准数据源属性以及特定供应商属性两类。如表2 - 1 , 标准数据源属性通常包括数据库名、数据源名、网络协议等信息,而特定供应 商属性取决于某个具体驱动程序厂商。在实现j a v a x s q l d a t a s o u r c e 接口时,通 常要求设置这些属性,而且属性获取和设置方法的设计应当遵守j a v a b e a n 命名 规范。 表2 1 标准数据源属性 属性名类型描述 d a t a b a s e n a m e s t r i n g数据库名 d a t a s o u r c e n a m e s t r i n g数据源名 d e s c r i p t i o ns t r i n g数据源描述信息 n e t w o r k p r o t o c o l s t r i n g 与数据库服务器进行通信时所使用 的网络协议 p a s s w o r ds t r i n g数据库口令 p o r t n u m b e r i n t 监听数据库连接请求的端口号 r o l e n a m e s t r i n gs q l 规则名 s e r v e r n a m e s t r i n g数据库服务器名 u s e r s t r i n g数据库用户名 2 3 j n d l 名字服务和标准数据源的关系 在分布式计算环境中,j n d l 名字服务和标准数据源之间有着密不可分的关 系。服务方常用一个容易理解的逻辑名来标识一个数据源对象,并将该逻辑名 到对象的绑定保存在j n d l 名字服务上下文中,因此远程客户可以很方便地根 据逻辑名来查找数据源对象并访问相应的数据库管理系统,从而确保应用代码 独立于j d b c 驱动程序和j d b cu r l ,使应用代码具有最大的可移植性。下面 我们先简要地介绍一些与j n d l 名字目录服务有关的概念,然后再讲述如何通 过j n d l 名字服务来布署数据源和访问数据源 】2 电子科技大学硕士毕业论文应用服务器数据库连接服务的研究、设计和实现 2 3 1j n d l 名字目录服务 j n d i 不仅是一种j a v a 扩展而且是j 2 e e 的一个重要组成部分,它为访问各 种名字或者目录服务提供了组标准的a p i 。在n t e m e t 上,名字服务主要使用 易理解的名来查找和访问各种分布式对象,而目录服务属于功能增强的名字服 务,它提供了更为复杂的对象查找机制,可根据对象特征和属性来查找和访问 分布式对象。例如f i l es y s t e m 、r m i r e g i s t r y 和c o s n a m i n g 属于基于j n d i 的 名字服务,而n i s 、n d s 以及l d a p 属于基于j n d i 的目录服务。 2 3 1 1 旬柄 j n d l 名字服务中的一个对象对应于内存中的一个实例或者与一些离散的 函数或数据集合相关的地址范围。对象句柄通常被称为引用或者指针,它可以 与当前执行环境中的本地对象相关联,也可以与远程机器上的分布式对象相关 联。一般说来句柄值是不可阅读的,它嵌有一些与底层通信协议相关的数字信 息,通常依赖于运行平台和执行环境。对象句柄所指向的逻辑实体可以穿越不 同的进程空间而且在不同的时刻可能呈现不同的值。例如某个类的对象句柄在 时刻t l 在机器a 上可能有某个3 2 位的引用值,而在时刻t 2 在机器b 上可能有 一个完全不同的值。 2 3 1 2 名字 名字是一个标识实体的逻辑值,可以被阅读,它仅对当前执行环境中已编 译的程序代码有意义。下面我们给出一些使用名字的示例: 文件名字符串:指向一个文件对象引用。 因特网主机名字符串:指向因特网中的一台机器。 c o r b a 对象名字符串:指向一个c o r b a 对象。 每个命名系统都有自己的命名规则,只有遵守这种规则才能保证名字的有 效性。例如:w i n d o w s 文件系统要求按照下面的方法来表达一个文件名字:根 目录、冒号、由反斜杠隔开的目录和文件名及其扩展名( 例如:c : m y d i r m y f i l e t x t ) 。每一个名字到相应对象的关联被称为名字绑定。 2 3 1 3 命名上下文 从数据结构的观点出发,命名上下文实质上是一种集合的概念,常用来保 存名字到对象的绑定,其中每个对象既可以是一个实际的系统资源( 例如文件 对象) ,也可以是另外的命名上下文( 即子上下文) 。命名上下文可提供名字绑 定和名字解析功能。在多层体系结构中,服务方总是将远程对象绑定到一个逻 辑名上,而客户方可根据此逻辑名来解析相应的远程对象。 电子科技大学硕士毕业论文应用服务器数据库连接服务的研究、设计和实现 可使用类i n i t i a l c o n t e x t 来创建名字服务初始上下文。类i n i t i a l c o n t e x t 实现 了 a v a x n a m i n g c o n t e x t 接口,该接口依赖于初始上下文的创建环境( 客户端或 者服务器端) ,其环境属性常保存在一个h a s h t a b l e 对象中,该h a s h t a b l e 对象可 作为类i n i f i a l c o n t e x t 的构造函数的参数,从而将环境属性传递给初始上下文。 常用的属性有j a v a n a m i n g p r o v i d e r u r l 、j a v a n a m i n g s e c u m t y p r i n c i p a l 和 i a v a n a m i n g s e c u r i t y c r e d e n t i a l s 。第一个属性定义了j n d l 名字目录服务供应商 的位置,第二个、第三个属性均定义了调用者的身份。 2 3 2布署数据源 下面演示如何布署一个数据源对象,也就是说如何创建数据源对象以及如 何将它注册到j n d l 名字服务中。 s t a n d a r d d a t a s o u r c es d s = n e ws t a n d a r d d a t a s o u r c e ( ) ; s d s s e t u s e r ( “u s e r ) ; s d s s e t p a s s w o r d ( p a s s w o r d ”) ; s d s s e t s e r v e r n a m e ( “m y _ d a t a b a s e _ s e r v e r ) ; s d s s e t d a t a b a s e n a m e ( “m y _ d a t a b a s e ”) ; s d s s e t p o r t ( 1 5 2 1 ) ; s d s s e t n e t w o r k p r o t o c o l ( t c p ,) ) ; c o n t e x tc t x = n e w i n i t i a l c o n t e x t o ; c t x b i n d ( j 曲c d a t a b a s e , s d s ) ; 示例中的第一行创建了一个数据源对象s d s ,其中s t a n d a r d d a t a s o u r c e 类实 现了标准数据源接口j a v a x s q l d a t a s o u r e e ,第二行至第七行对数据源属性进行 了设置,第八行调用i n i t i a l c o n t e x t 类的构造函数获取j n d l 名字服务初始上下 文c t x ,最后一行将所创建的数据源对象s d s 绑定到逻辑名j d b c d a t a b a s e 上。 2 3 3连接数据源 数据源对象一旦注册到j n d l 名字服务中,j d b c 应用组件就可根据数据源 逻辑名来透明地访问各种关系数据库管理系统了。示例代码如下: c o n t e x tc t x = n e w i n i t i a l c o n t e x t 0 ; d a t a s o u r c e d s = ( d a t a s o u r c e ) c t x 1 0 0 k u p ( j d b c d a t a b a s e ) : c o n n e c t i o n c o i l = d s g e t c o n n e c t i o n 0 示例中的第一行代码调用类l n i t i a l c o n t e x t 的构造函数获取j n d l 名字服务 初始上下文c t x ,紧接着使用逻辑名j d b c d a t a b a s e 在名字服务中查找相应的数据 源对象,并将其对象引用返回给j d b c 应用,最后调用d a t a s o u r c e g e t c o n n e c t i o n 1 4 电子科技大学硕士毕业论文 应用服务器数据库连接服务的研究、设计和实现 方法建立数据库连接。 第三章数据库连接池 众所周知,服务器可为一个或者多个客户请求提供服务。随着n t e m e t 技 术的快速发展,客户数量日益增多,服务器必须并发地处理更多的入请求,因 此其性能的优劣就显得越来越重要了。 如何才能更高效地服务于客户请求呢? 通常采用的技术就是尽可能地重用 占有昂贵资源的对象。我们知道,对象的创建和回收均会给系统带来一定的负 荷,而与网络有关的对象比其它对象更需要系统资源,因此在编写程序特别是 服务方程序时,不仅需要尽可能地减少对象创建数目,而且应当重用某些重要 对象以实现程序的优化。 资源池是一种对象缓存技术,它常维护一组“热资源”以备需要时使用, 而数据库连接池属于某种特定类型的资源池,常用来缓存物理数据库连接。创 建连接时,数据库服务器在为它分配内存资源的同时还要进行一系列操作,例 如校验网络协议、验证用户身份、设置安全上下文和交易上下文,这些操作不 仅耗时,而且很浪费系统资源。如果多用户能够共享它们,就可以显著地提高 物理连接的加载速度,从而缩短连接建立时间并提高数据库访问效率。 根据客户是否可见可将数据库连接池划分为客户方连接池和服务方连接 池,下面我们就这两种类型的连接池分别展开详细地论述。 3 i客户方连接池 客户方连接池通常由应用程序开发者管理和配置,其信息对所有客户都是 可见的,也就是说客户应用不仅知道自己正在使用连接池而且深知其属性,例 如驱动程序类型、数据库u r l 以及连接池最大连接数和最小连接数等属性。客 户方连接池的实现主要基于驱动程序管理器类,因此它的作用仅局限于缓 弘物 理数据库连接”。 如果j d b c 应用使用客户方连接池来访问数据库的话,它通常需要实现以 下几个步骤: 1 ) 首先获取连接池或者连接池管理器对象引用; 2 ) 然后从特定池中获取一个物理连接; 3 ) j d b c 应用操作物理连接; 4 ) 最后将物理连接缓存到连接池中。 如图3 1 所示,客户方连接池为j d b c 应用的服务,应用程序可直接与它 电子科技大学硕士毕业论文 应用服务器数据库连接服务的研究、设计和实现 交互并依此执行连接池创建、连接获取以及连接缓存等操作。 创建连接池 厂 、 ,、 曰 客户方连接池 音 、 啊 田 _ n 获取连接o n 数据库 应 驱 用 动 程 o o 程服务器 序 缓存连接 序 、 图3 1 客户方连接池模型 不过,使用客户方连接池访问数据库时应用程序开发者必须严格遵守如下 约定: 1 ) 客户应用应当显式地将物理连接缓存到连接池中; 2 ) 客户应用应当显式地提交或者回退当前交易,这是由于客户方连接池无 法检测交易执行情况。 仅当客户共享相同的运行环境时,这种类型的连接池才比较有效。而在以 下两种情况多客户可共享相同的运行环境: 1 ) 在单个包容器中布署w e b 应用组件。即使多个s e r v l e t 和j s p 程序可 在不同的线程中激活,但它们仍共享相同的运行环境; 2 ) 支持多线程的服务方程序; 当前应用程序开发者为了提高数据库访问效率常使用客户方连接池来缓存 物理连接,但是这种技术除了上面的种种限制条件外,还具其它不足之处:第 一,应用代码移植性差、难维护;第二,不支持分布式交易:第三,应用越复 杂,系统资源占用越多,其执行效率也逐渐降低。为了克服以上缺陷,推荐使 用服务方连接池技术。 3 2 服务方连接池 服务方连接池通常由应用服务器供应商实现,它克服了传统的客户方连接 池技术的所有缺陷,不仅适用于本地以及分布式计算环境下的多用户并发访问, 而且具有良好的系统扩展性和伸缩性,可大大优化软件的整体性能,其模型通 常可用图3 - 2 来表示。 电子科技大学硕士毕业论文 应用服务器数据库连接服务的研究、设计和实现 图3 - 2 服务方连接池模型 为了支持服务方连接池,j d b c 2 0 标准扩展a p i 定义了如下接口和类: j a v a x s q l d a t a s o u r c e j a v a x s q l c o n n e c t i o n p o o l d a t a s o u r c e j a v a x s q l p o o l e d c o n n e c t i o n j a v a x s q l c o n n e c t i o n e v e n t l i s t e n e r j a v a x s q l c o n n e c t i o n e v e n t 其中标准数据源接口d a t a s o u r c e为应用透明访问各种关系数据库管理系 统提供一个统一的、高度抽象的入口,连接池数据源c o n n e c t i o n p o o l d a t a s o u r c e 是可池化连接p o o l e d c o n n e c t i o n 对象工厂,调用它的g e t p o o l e d c o n n e c t i o n 方法 可创建可池化连接对象,而可池化连接代表真正的物理连接,它封装了维护物理 连接的所有信息,常缓存在连接池中以备重用。 j d b c 应用使用服务方连接池( 仅支持本地交易) 获取逻辑连接句柄的步 骤如下: 1 ) j d b c 应用调用d a t a s o u r c e g e t c o n n e c t i o n 方法获取逻辑连接句柄 c o n n e c t i o n ; 2 ) d a t a s o u r c e 对象校验连接池中是否缓存有可池化连接p o o l e d c o n n e c t i o n 3 ) 如果连接池中未有可重用的可池化连接对象p o o l e d c o n n e c t i o n 的话, d a t a s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《跨地域夫妻情感调解与子女抚养权归属合同》
- 2025年广东省深圳市事业单位工勤技能考试题库(含答案)
- 2025年全国特种设备安全管理(A证)理论考试试题(附答案)
- 2025年幼儿园保健医考核试题及答案
- 2025中小学教师编制考试理论基础知识复习题库及答案
- 2025年事业单位工勤技能考试考试题库及答案解析3
- 2025年国际贸易专业考试试题及答案
- 2025年高级职业技术岗位考试试题及答案
- 2025年法制宣传日法律基础知识竞赛题库及答案
- 2025年院感多重耐药菌医院感染预防与控制技术指南专项测试题有答案
- 《传统书画装裱与修复中材料的选择与运用》
- 2024ESC心房颤动管理指南解读
- 防洪排涝工程合同范本有效
- 高血压病基层诊疗指南
- 医院视频监控系统维保方案
- 门诊护士课件教学课件
- 《大学生的人际关系》课件
- 职务侵占罪培训
- 中式烹调师技能等级认定四级理论知识试卷
- DB65-T 4784-2024 冰川范围调查技术规范
- 幼儿园礼仪小天使《借物品》教学课件
评论
0/150
提交评论