




已阅读5页,还剩71页未读, 继续免费阅读
(计算机系统结构专业论文)基于seda架构的数据库中间件系统的设计和实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学硕士学位论文摘要 摘要 随着i n t e r n e t 的发展,以及现代企业的跨地域发展,大部分企业的数据库 应用系统都需要在i n t e r n e t 或企业广域网中运行。传统二层c s 应用程序结构 是单一服务器且以局域网为中心的,难以扩展至大型企业广域网或i n t e r n e t ,这 使其到了被淘汰的边缘。目前企业中大量存在二层c s 结构的数据库应用系统, 出于保护原有系统投资和保证企业信息系统平稳运行的需要,急需一个便捷、高 效、低成本的系统升级方案。 针对上述需求,本文设计和实现了一个基于s e d a ( s t a g e de v e n t d r i v e n a r c h i t e c t u r e ) 架构的数据库中间件系统,并且在数据库中间件系统基础上构建 了一个便捷的数据库应用系统开发平台。为广大企业提供了一个便捷、高效、低 成本的系统升级方案和新系统开发方案。 本文主要的研究和工作内容如下: 1 、分析了广大企业目前在数据库应用系统方面的两大需求,即原有系统升 级改造的需求和新系统开发的需求;同时分析了传统二层c s 结构、三层或多层 c s 结构和b s 结构的优缺点;最终提出了基于数据库中间件的系统解决方案。 2 、深入研究分析了s e d a 应用服务器架构。该架构在高并发、条件负载、高 可用性等方面的卓越表现,特别符合互联网应用服务器开发的需求,为这类服务 器开发提供了一个优异的解决方案。在本文中,我们使用c + + 实现了s e d a 架构, 并将其扩展为一个通用的应用服务器开发框架。 3 、设计和实现了一个基于s e d a 架构的数据库中间件系统,并且在数据库中 间件系统基础上构建了一个便捷的数据库应用系统开发平台。该系统充分利用了 中间件技术的优越性和s e d a 应用服务器构架的高性能优点。同时采用了数据库连 接池、缓存、负载均衡、线程池等技术,使系统具有高性能、高可用性、高可扩 展性、高可重用性等优点。为了进一步化简数据库应用系统开发过程,还实现了 自动升级功能模块、语言封装类库、代码生成器等功能。该系统开发平台为广大 浙江大学硕士学位论文 摘要 企业提供了一个便捷、高效、低成本的系统升级方案和新系统开发方案。 4 、将该系统实际应用于原有数据库应用系统的升级改造和新系统的开发中, 验证了该系统在降低新系统开发成本和保护企业原有系统投资方面的优势。 关键词: 中间件,数据库,架构,缓存,负载均衡,o r 映射 浙江大学硕士学位论文 a b s t r a c t a b s t r a c t w i t l lt h ed e v e l o p m e n to fi n t e m e tn e t w o r ka n dt h ed e v e l o p m e n to ft h em o d e m e n t e r p r i s es t r i d i n go v e rt h er e g i o n , m o s te n t e r p r i s ei n f o r m a t i o ns y s t e m sn e e dt ow o r k i ni n t e r a c to rt h e e n t e r p r i s ew i d e a r e an e t w o r lt h et r a d i t i o n a lt w o l a y e rc s a r c h i t e c t u r ei sb ea l lu n i t a r ys e r v e ra n dc e n t e r i n go nl o c a la r e an e t w o r k ,a n di ti s d i f f i c u l tt oe x p a n dt ot h el a r g ee n t e r p r i s ew i d ea r e an e t w o r ko ri n t e r n e ls oi t h a s a r r i v e da tt h eb o r d e rb e i n ge l i m i n a t e d a tp r e s e n t ,t h e r ee x i s tl a r g ea m o u n to fd a t a b a s e a p p l i c a t i o ns y s t e mw h i c hb a s e do nt h e t r a d i t i o n a lt w o - l a y e rc sa r c h i t e c t u r ei n e n t e r p r i s e i no r d e rt op r o t e c to r i g i n a ls y s t e mi n v e s t m e n ta n de n s u r et h a te n t e r p r i s e i n f o r m a t i o ns y s t e mo p e r a t e ss t a b l y , i tu r g e n t l yn e e d sar a p i d ,h i g h e f f e c t ,l o wc o s t s o l u t i o nf o rs y s t e mp r o m o t i o n s p e c i f i c a l l yf o ra b o v e m e n t i o n e dn e e d ,w ed e s i g n e da n di m p l e m e n t e dad a t a b a s e m i d d l e w a r es y s t e mb a s e do l l s e d a ( s t a g e de v e n t - d r i v e na r c h i t e c t u r e ) ,a n d c o n s t r u c t e dac o n v e n i e n ta n dr a p i dd e v e l o p m e n tp l a t f o r mf o rd a t a b a s ea p p l i c a t i o n s y s t e mo ni t sb a s i s i ti sar a p i d ,h i g h - e f f e c t ,l o wc o s ts o l u t i o nf o rs y s t e mp r o m o t i o n a n ds y s t e md e v e l o p m e n t 1 1 1 em a i nc o n t e n ti sl i s t e da sb e l o w : f i r s t l y , i ta n a l y z e dt h et w ob i gr e q u i r e m e n t si ne n t e r p r i s e sd a t a b a s ea p p l i c a t i o n s y s t e m ,a n di t a l s oa n a l y z e dt h ea d v a n t a g ea n dd i s a d v a n t a g eo ft h et h r e ek i n d a r c h i t e c t u r e s ( a st h et r a d i t i o n a lt w o l a y e rc sa r c h i t e c t u r e 、t h et h r e el a y e r so fc s a r c h i t e c t u r ea n dt h eb sa r c h i t e c t u r e ) ,t h e ni tp r e s e n t e das y s t e ms o l u t i o nb a s e do n d a t a b a s em i d d l e w a r e s e c o n d l y , m a k i n gat h o r o u g hs t u d yo nt h ea p p l i c a t i o ns e r v e ra r c h i t e c t u r ec a l l e d s e d a i th a sa d v a n t a g ei nt h er e s p e c to fh i g hc o n c u r r e n c y , c o n d i t i o nl o a d s ,h i g h a p p l i c a b i l i t ye t e ,s o i tw i l lb eap r e d o m i n a n ts o l u t i o nf o ri n t e m e ts e r v i c e s i nt h i s p a p e r , w eu s e dc + + t or e a l i z et h es e d aa r c h i t e c t u r e a n dw ee x p e n d e dt h es e d a a r c h i t e c t u r et oag e n e r i cd e v e l o p m e n tf r a m e w o r kf o ra p p l i c a t i o ns e l w e l t h i r d l y , w ed e s i g n e da n di m p l e m e n t e dad a t a b a s em i d d l e w a r es y s t e mb a s e do n i i i 浙江大学硕士学位论文 a b s t r a c t s e d a , a n dc o n s t r u c t e dac o n v e n i e n ta n dr a p i dd e v e l o p m e n tp l a t f o r mf o rd a t a b a s e a p p l i c a t i o ns y s t e m o ni t sb a s i s t h i ss y s t e mf u l l yu t i l i z e dt h ea d v a n t a g e so f m i d d l e w a r et e c h n o l o g ya n ds e d aa r c h i t e c t u r e ,a n di ta d o p tm a n yt e c h n o l o g i e ss u c h a sd a t a b a s ec o n n e c t i o np o o l ,c a c h e ,l o a db a l a n c e ,t h r e a dp o o le t c ,s ot h es y s t e mh a s a d v a n t a g e ss u c ha sh i 曲一p e r f o r m a n c e ,h j 【曲a v a i l a b i l i t y , h i 曲e x p a n s i b i l i t ye t e i no r d e r t of u r t h e rs i m p l i f yt h ed e v e l o p m e n tp r o c e s so fd a t a b a s ea p p l i c a t i o ns y s t e m ,w ea l s o i m p l e m e n t e ds o m ef u n c t i o n ss u c ha sa u t o u p d a t e ,l a n g u a g ee n c a p s u l a t i o n l i b r a r i e sa n d c o d eg e n e r a t o r t h i sd e v e l o p m e n tp l a t f o r m p r o v i d e dar a p i d , h i g h - e f f e c t ,l o wc o s t s o l u t i o nf o rs y s t e mp r o m o t i o na n dn e ws y s t e md e v e l o p m e n t f o u r t h l y , t h i ss y s t e mw a sa p p l i e di np r a c t i c a ls y s t e mp r o m o t i o na n dn e ws y s t e m d e v e l o p m e n t i tv e r i f i e dt h ea d v a n t a g eo f t h es y s t e mi nt h er e s p e c to f r e d u c i n gt h e c o s t o fn e ws y s t e md e v e l o p m e n ta n dp r o t e c t i n go r i g i n a le n t e r p r i s es y s t e mi n v e s t m e n t k e y w o r d s :m i d d l e w a r e ,d a t a b a s e ,a r c h i t e c t u r e ,c a c h e ,l o a d b a l a n c e ,o r m 浙江大学硕士学位论文图目录 图目录 图3 1 事件驱动模型图1 4 图3 2s t a g e 的结构图1 5 图3 3h t t p 服务器的有穷状态机图1 7 图3 4s t a g e 有穷状态机图1 8 图5 1 基于数据库中间件c s 应用程序架构图2 5 图5 2 数据库中间件服务器端构架图2 6 图5 3 数据库中间件系统客户端s t u b 部分框架结构图2 7 图5 4 数据库中间件系统有穷状态机图( 总图) 3 7 图5 5 数据库中间件系统的有穷状态机图( 会话管理请求子图) 3 7 图5 6 数据库中间件系统的有穷状态机图( 数据库请求子图1 3 8 图5 7 数据库中间件系统的有穷状态机图( 客户端升级请求子图) 3 8 图5 8 数据库中间件系统s t a g e 有穷状态机图( 总图) 3 9 图5 9 数据库中间件系统s t a g e 有穷状态机图( 会话管理请求子图l 3 9 图5 1 0 数据库中间件系统s t a g e 有穷状态机图( 数据库请求子图) 4 0 图5 1 1 数据库中间件系统s t a g e 有穷状态机图( 客户端升级请求子图) 4 0 图5 1 2 基于用户组的用户访问权限管理结构图4 4 图5 1 3 传统二层c s 结构程序多数据库连接示意图。4 7 图5 1 4 基于数据库中间件的应用程序客户端多数据库连接示意图4 7 图5 15 数据库请求处理流程图4 9 图5 1 6 仿a d o 接口的封装实现类图一5 1 图5 1 7 远程监控系统结构图5 4 图6 1 研究中心数据库管理系统客户端界面图6 2 n l 浙江大学硕士学位论文 第l 章绪论 第1 章绪论 1 1 课题的提出 8 0 年代末,信息产业界首次引入了c s ( 客户机服务器) 应用程序结构。 在整个9 0 年代,这一概念被广泛地应用于各种类型的软件系统的设计和开发中, 它革命化地改变了我们传统的应用设计和系统实现方式,同时为多用户系统提供 了前所未有的双向交互感,以及无可比拟的灵活性。 从9 0 年代后期开始,随着i n t e r n e t 网络的发展,以及现代企业的跨地域发 展,大部分企业信息系统都有通过i n t e r n e t 或企业广域网进行跨地域运行的需 求。传统二层c s 应用程序结构是单一服务器且以局域网为中心的1 2 ,难以扩展至 大型企业广域网或i n t e r n e t ,这使其到了被淘汰的边缘。在上述需求下,随着相 关技术的发展,三层c s 结构和s s 结构得到了快速发展,已经取代传统的二层 c s 结构,成为目前系统开发的首选。 三层c s 结构能够使系统高效地运行在基于i n t e r n e t 网的分布式应用环境 中。但是也极大增加了系统的复杂度,开发难度和开发成本剧增。这种结构对设 计开发人员的要求很高,一旦设计不当,将产生系统性能达不到要求、开发周期 变长、系统难以维护等后果。 随着w e b 技术的日益成熟,采用8 s 结构开发数据库应用系统成为目前的趋 势。b s 结构不但天然适应i n t e r n e t 网,同时也免除了大量客户端程序的升级维 护问题。然而,由于b s 结构在交互能力和客户端界面展示能力较弱【3 1 ,难以满 足很大部分应用的需求。 目前企业中大量存在二层c s 结构的数据库应用系统,出于保护原有系统投 资和保证企业信息系统平稳运行的需要,急需一个便捷、高效、低成本的系统升 级方案。同时,传统的二层c s 结构已经无法满足当前数据库应用程序开发的需 求,而三层c s 构架和b s 构架也存在各自的缺点。因此,也需要一种既能继承 三种构架的优点,又能消除它们各自缺点的低成本解决方案。 浙江大学硕士学位论文 第1 章绪论 由此,本文提出了基于s e d a 架构的数据库中间件系统,并且在此数据库中 间件系统基础上构建了一个便捷的数据库应用系统开发平台。 1 2 课题的研究内容 本文的研究的出发点就是前- - d , 节最后提出的两个需求。为了找到有效的解 决方案,本文首先从数据库中间件技术入手,介绍了中间件技术的发展情况以及 中间件技术的特点和优越性,同时也介绍了数据库中间件技术的发展情况。数据 库中间件能够解决系统构架问题,然而要保证高性能必须采用一个先进、高效的 应用服务器架构。为此我们对s e d a 应用服务器架构进行了深入的研究。结合两 大先进技术,终于找到了解决方案,并将该解决方案与目前业界采用的解决方案 进行了对比。 本文主要的研究和工作内容如下: l 、分析了广大企业目前在数据库应用系统方面的两大需求,即原有系统升 级改造的需求和新系统开发的需求;同时分析了传统二层c s 结构、三层或多层 c s 结构和b s 结构的优缺点;最终提出了基于数据库中间件的系统解决方案。 2 、深入研究分析了s e d a 应用服务器架构。该架构在高并发、条件负载、高 可用性等方面的卓越表现,特别符合互联网应用服务器开发的需求,为这类服务 器开发提供了一个优异的解决方案。在本文中,我们使用c + + 实现了s e d a 架构, 并将其扩展为一个通用的应用服务器开发框架。 3 、设计和实现了一个基于s e d a 架构的数据库中间件系统,并且在数据库中 间件系统基础上构建了一个便捷的数据库应用系统开发平台。该系统充分利用了 中间件技术的优越性和s e d a 应用服务器构架的高性能优点,同时采用了数据库连 接池、缓存、负载均衡、线程池、数据加密传输和数据压缩传输等技术,使系统 具有高性能、高可用性、高可扩展性、高可重用性等优点。为了进一步化简数据 库应用系统开发过程,还实现了自动升级功能模块、语言封装类库、代码生成器 等功能。该系统开发平台为广大企业提供了一个便捷、高效、低成本的系统升级 浙江大学硕士学位论文第1 章绪论 方案和新系统开发方案。 4 、将该系统实际应用于原有数据库应用系统的升级改造和新系统的开发中, 验证了该系统在降低新系统开发成本和保护企业原有系统投资方面的优势。 1 3 课题的研究意义 目前,各企业存在大量的传统二层c s 结构的数据库应用系统,这些系统已 经难以满足现在企业的需求。如何最大限度的保护原有系统投资、保证企业信息 系统平稳运行? 传统二层c s 结构已经面l 临淘汰,而三层c s 结构和b s 结构也 有其缺陷,难以满足很多数据库应用系统开发的需求。如何才能快速、高效、低 成本地开发新的数据库应用系统? 针对上述两个问题,找出一个便捷、高效、低 成本的解决方案,是本研究课题的基本出发点。 为了解决问题,我们对数据库中间件技术和s e d a 应用服务器架构进行了深 入研究。 中间件是和操作系统、数据库并列的三大系统级基础软件之一,数据库中间 件是中间件市场的一个重要分支,在企业信息管理和电子商务平台都有着广泛的 应用。因此对数据库中间件的研究重要的理论意义和实际应用价值。 s e d a 应用服务器架构在高并发、条件负载、高可用性等方面的卓越表现, 特别符合互联网应用服务器开发的需求,为这类服务器开发提供了一个优异的解 决方案。因此,对该构架进行研究并实现自己应用服务器框架,具有重要的理论 意义和实际应用价值。 通过本文提出的基于s e d a 架构的数据库中间件系统,能够有效地解决上述 两个问题,这不但能够最大限度地保护广大企业的原有投资,同时能够大大节约 企业新的投资成本。 1 4 论文的结构 本文主要阐述了基于s e d a 架构的数据库中间件系统的设计和实现。论文共 浙江大学硕士学位论文 第1 章绪论 分为7 章。第l 章是绪论部分,主要阐述了课题的提出、研究内容以及课题的研 究意义。第2 章主要介绍了中间件技术、中间件技术的特点和优越性、数据库中 间件技术的发展现状。第3 章深入介绍了s e d a 应用服务器架构的设计目标、实 现原理、应用实例、以及该架构的发展现状。第4 章分析了三种应用程序结构的 优缺点,对用户进行了深入分析,并对目前业界的解决方案进行了对比分析,提 出了基于s e d a 架构的数据库中间件系统解决方案。第5 章着重讨论了基于s e d a 架构的数据库中间件系统的设计和实现;首先是总体设计部分,该部分对系统的 总体设计进行了详尽的阐述;接着详细介绍了s e d a 架构内核框架的实现,在这 里介绍了一个在s e d a 架构实现基础上扩展的通用的应用服务器开发框架;然后 详细介绍数据库中间件服务器的各个模块的设计和实现:接着详细介绍数据库中 间件s t u b 部分的各个模块的设计和实现。第6 章介绍了该系统的应用案例。最后 总结了全文,并提出了展望。 浙江大学硕士学位论文 第2 章数据库中间件技术 第2 章数据库中间件技术 2 1 中间件技术简介 计算机技术迅速发展。从硬件技术看,c p u 速度越来越高,处理能力越来越 强;从软件技术看,应用程序的规模不断扩大,特别是i n t e r n e t 及w w w 的出现, 使计算机的应用范围更为广阔,许多应用程序需在网络环境的异构平台上运行。 这一切都对新一代的软件开发提出了新的需求。在这种分布异构环境中,通常存 在多种硬件系统平台( 如p c ,工作站,小型机等) ,在这些硬件平台上又存在各种 各样的系统软件( 如不同的操作系统、数据库、语言编译器等) ,以及多种风格各 异的用户界面,这些硬件系统平台还可能采用不同的网络协议和网络体系结构连 接。如何把这些系统集成起来并开发新的应用是一个非常现实而困难的问题1 4 】。 于是,中间件技术应运而生。 中间件是指基于计算机硬件和操作系统之上,支持应用软件开发和运行的系 统软件。它为企业级的分布式应用,提供了一个标准的平台,使得应用软件开发 和运行,能够独立于特定的计算机硬件和操作系统平台之上,以实现企业应用系 统的集成【5 】o 中间件的分类方法很多,目前公认的分类方法是,把中间件分为两大类:一 类是底层中间件,用于支撑单个应用系统或解决单一类问题,包括交易中间件 ( t p m ) 、应用服务器( w a s ) 、消息中间件( m o m ) 、数据访问中间件( u d a ) 等;另一类 是高层中间件,更多用于系统整合,包括企业应用集成中间件( e a is u i t e s ) 、工 作流中间件( w o r k f l o w ) 、门户中间件( p o r t a l ) 等,它们通常会与多个应用系统打 交道,在系统中的层次较高,并大多基于底层中间件运行【6 】o 浙江大学硕士学位论文第2 章数据库中间件技术 2 2 中间件的特点和优越性 中间件具有如下特点: 满足大量应用的需要运行于多种硬件和0 s 平台支持分布计算,提供跨网络、 硬件和0 s 平台的透明性的应用或服务的交互,支持标准的协议,支持标准的接 口。 由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件己成 为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和网络 服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环蝌7 1 , 不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保 持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在 应用软件开发和维护中的重大投资。 世界著名的咨询机构s t a n d i s hg r o u p 在一份研究报告中归纳了中间件的十 大优越性0 8 】: 缩短应用的开发周期 节约应用的开发成本 减少系统初期的建设成本 降低应用开发的失败率 保护已有的投资 简化应用集成 减少维护费用 提高应用的开发质量 保证技术进步的连续性 增强应用的生命力 具体地说,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个 简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上, 不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负 6 浙江大学硕士学位论文 第2 章数据库中间件技术 担。 中间件带给应用系统的,不只是开发的简便、开发周期的缩短,也减少了系 统的维护、运行和管理的工作量,还减少了计算机总体费用的投入。s t a n d i s h 的 调查报告显示,由于采用了中间件技术,应用系统的总建设费用可以减少5 0 左 右。在网络经济大发展、电子商务大发展的今天,从中间件获得利益的不只是i t 厂商,i t 用户同样是赢家,并且是更有把握的赢家。 2 3 数据库中间件技术 2 3 1 数据库中问件技术简介 数据库中间件是产生最早,应用最广泛,技术最成熟的一种中间件。它处于 前端客户机和后端数据库之间,负责接收客户端的数据请求,做一些简单处理( 如 s q l 格式转换,确定数据源等) 后,把请求再传递给相应的后端数据库服务器,进 行最后的数据处理,然后,再将结果由数据库中间件返回给客户端。数据库中间 件不单进行与数据库连接等有关数据库的处理,也可以将传统c s 环境下的客户 端进行的应用处理移植到中间层上,精简客户端,减轻客户端的负担,这也就是 所谓的“瘦客户端”技术们。这样做的好处是能增强系统的并发处理性能,改善 安全性能,减低对客户端的系统要求。 一、传统的数据库中间件分类: l 、本地中间件 为特定数据库设计的,专有驱动程序,本地中间件能够提供最佳的访问性能, 但可移植性大大降低。这类数据库中间件包括各大数据库提供的数据库访问驱 动,例如o r a c l e 的o c i 1 0 1 。 2 、呼叫层接口( c a l ll a y e ri n t e r f a c e ,c l i ) 多数数据库中间件产品为该类型中间件,提供多个数据库的统一调用界面。 它可以把一般通用的接口呼叫转换成任意的数据库本地语言,也可以把接口呼叫 转换成一致的表现形式以便向数据库发出请求的应用程序可以理解【1 l 】。例如 0 d b c ,j d b c ,o l ed b 。 浙江大学硕士学位论文 第2 章数据库中间件技术 3 、数据库网关 数据库网关提供对大型系统内部数据的访问,它们可以从统一的应用程序接 口集成多个数据库以便访问、重新映射旧的数据库模型并且对出入数据库网关的 查询和信息进行转换。例如通过一个o d b c 接口和一个数据库网关,可以访问某 大型机上的d b 2 ,某小型机上的o r a c l e ,某p c 上的数据文件。 数据库网关( 也叫s q l 网关) 是一种应用程序接口( a p i ) ,通过使用同一接口提 供对运行在多种平台上的不同数据库的访问。它们类似于实际的数据库中间件产 品,提供给开发者到任意数目数据库的访问接口,包括一些运行在典型的不易访 问的环境下的数据库。如,通过一个o d b c 接口和一个数据库网关,可以同时访问 存储在大型主机环境下的d b 2 数据库、小型机上的o r a c l e 数据库和u n i x 服务器 上的s y b a s e 数据库。开发者只需使用一个a p i 调用,数据库网关就可以完成所有 的其它工作。数据库网关把s q l 调用解释成为标准f a p ( f o r m a ta n dp r o t o c 0 1 ) 格式【1 2 】。f a p 格式通用的客户机和服务器连接,也是异质数据库和运行平台的通用 联结。网关可以把a p i 调用直接翻译成f a p ,把请求传递到目标数据库并翻译以便 目标数据库和平台做出响应。目前市场上有很多数据库网关产品,如e d a s q l 、 r d a 、d r d a 1 3 】等。 二、综合型的数据库中间件 随着中间件技术的发展,以及系统应用的各项复杂需求,现在的数据库中间 件往往难以用传统的分类方式进行分类,这些中间件要么综合了多个分类的特点 和功能,要么本身是个应用集成型的中间件,数据库相关功能只是该中间件的一 部分。如数据库群集中间件c - j d b c 、o r m 中间件h i b e r n a t e 、d a t ad i r e c tc o n n e c t f o ro d b c 、t u x e d o 1 4 】等。 2 3 2 数据库中间件产品介绍 1 、o d b c o d b c 实际上并不是一个产品,而是微软在几年前创建的一个标准。o d b c 是 一个c l i ( c a l ll a y e ri n t e r f a c e ) ,通过允许开发者制作一个在大多数关系数据 浙江大学硕士学位论文第2 章数据库中间件技术 库中可运行的简单的a p i 调用,简化从w i n d o w s ( 以及其它一些操作系统) 到数据 库的访洲15 1 。 像所有的中间件一样,o d b c 提供一个定义良好的、不依赖于数据库的a p i 。 使用a p i 时,o d b c 通过一个驱动管理器来判定应用程序要连接的数据库的类型, 并载入( 或卸载) 适当的o d b c 驱动,这样,就实现使用o d b c 的应用程序和数据库 之间的相互独立。 2 、j d b c j d b cj a v as o f t 的j d b c 1 6 l 是第一个支持j a v a 语言的数据库应用程序接口 ( a p i ) ,功能上与o d b c 相仿,提供j a v a 开发人员一个从支持j a y a 开发或支持j a v a 应用程序运行的环境访问各种数据库的统一的接口。 j d b c 主要由两层组成:j d b c 应用程序接口( j d b ca p i ) 和j d b c 驱动应用程序 接口【切。j d b ca p i 提供从应用程序到j d b c 管理器的通讯。开发者通过a p i 使用 标准j a v a 机制访问数据库。数据库供应商提供j d b c 驱动接口,也可以通过 j d b c o d b c 连接桥使用传统的0 d b c 连接。 j d b ca p i 定义了一个j a v a 类集,允许a p p l e t 、s e r v l e t 、j a v a b e a n 和j a v a 应用程序连接数据库。通常,由这样一个小应用通过网络连接远程关系数据库服 务器,如s y b a s e 、o r a c l e 或i n f o r m i x 。这些由数据库供应商提供的原始的j a v a j d b c 类与用户自定义的应用程序类共存,提供一种“纯j a v a ”的、可移植的数 据库访问。这样就允许从任意支持j a v a 的平台到任意数据库的连接。 j d b c 管理器和o d b c 管理器一样,按j a v a 小应用或应用程序的需要载入或卸 载数据库驱动器。j d b c 支持单个或多个数据库服务器的连接。就是说,一个小应 用可以同时连接本地的所有数据库和i n t e r n e t 上的公用数据库。 3 、o l e d b o l e d b 常被戏称为o d b c 的“大哥”,它定义了一个数据访问服务器的集合, 通过这些服务器可以很容易地连接到任意数目的数据源。这样,开发者就可以把 多种不同的数据源作为单一的虚拟数据库来管理。o l e d b 允许使用标准的c o m 接 口访问数据。 浙江大学硕士学位论文 第2 章数据库中间件技术 o l ed b 提供开发者访问关系数据库、文件、扩展表、电子邮件等数据的方法。 通过c o m 接口,开发者可以使用o l e d b 方便地集成面向对象的数据库和多维数据 库。使用o l e d b 时,数据库被简单的看作一个数据提供者组件1 8 】。任何通过o l e d b 使用本地数据格式和表现方法的组件都被视为数据提供者,包括关系数据库( 使 用o d b c ) 、i s a m 文件、文本文件、e - m a i l 、微软w o r d 文件和数据流文件。这里 的核心思想是生成独立的o l e d b 组件对象用以调度数据提供者的各种附加特性和 功能。这些独立的o l e d b 组件叫做“服务提供者”。服务提供者类似于查询处理 器允许应用程序使用它们实现不同数据联合( 同族的或异族的) 之间的互联。数据 以单一的视图的形式存在,而不管它们的数据模型是关系型的、面向对象的还是 多维的。 与数据提供者相对的是o l e d b 数据消费者、单个数据提供者的应用程序或作 用于任意多数据提供者的类属消费者。如微软的e x c e l 、w o r d 、p r o j e c t 都可以 成为数据消费者。 4 、r d a 和d r d a r d a 并不是一种产品,它是一个开发者访问数据的标准。r d a 使用o s i 并且 支持动态s q l 语句,允许客户端同时连接一个以上的数据库。但它不支持典型的 事务相关服务。 d r d a 是i b m 的一个数据库连接标准,它有许多数据库的支持如s y b a s e 、 o r a c l e 、i b m 和i n f o r m i x 。与其它的数据库网关一样,d r d a 提供便利的运行在多 平台环境下的任意数目数据库的连接。d r d a 把数据库任务定义为远程请求、远程 工作单元、分布式工作单元和分布式请求。d r d a 是一个定义良好的标准,它要求 数据库符合标准的s q l 语法,以便能够充分发挥d r d a 在不同的系统、不同的情 况下运行不同的数据库的功能。 5 、数据库群集中间件c j d b c c - j d b c 作为开发源码的数据库群集中间件,可以让任何应用程序通过j d b c 能够透明的访问数据库群集【1 9 1 。 数据库可以分布在多个节点并可以进行数据复 制,c - j d b c 能够均衡在这些节点之间的查询负载。c - j d b c 通过软件来实现 1 0 折江大学硕士学位论文 第2 章数据库中间件技术 r m d b ( 廉价数据库冗余阵列) 1 2 0 1 。 6 、o r m 中间件h i b e r n a t e 对象关系映射中间件h i b e r n a t e l 2 1 】是一个开放源代码的对象关系映射框架, 它对j d b c 进行了非常轻量级的对象封装,使得j a v a 程序员可以随心所欲的使用 对象编程思维来操纵数据库。h i b e r n a t e 可以应用在任何使用j d b c 的场合,既 可以在j a v a 的客户端程序实用,也可以在s e r v l e t j s p 的w e b 应用中使用,最 具革命意义的是,h i b e r n a t e 可以在应用e j b 的j 2 e e 架构中取代c m p 2 2 1 ,完成数 据持久化的重任。 2 4 本章小结 本章首先介绍了中间件技术的起源、中间件概念和定义以及中间件的分类。 接着着重分析归纳了中间件的特点,以及其十大优越性。在接着介绍了数据库中 间件发展概况,对传统数据库中间件进行了分类,同时介绍数据库中间件往综合 型中间件发展的趋势;最后,对当前比较成熟的几款数据库中间件做了简要介绍。 浙江大学硕士学位论文 第3 章s e d a 应用服务器架构 第3 章s e d a 应用服务器架构 3 1s e d a 应用服务器架构简介 s e d a ( s t a g e de v e n t d r i y e na r c h i t e c t u r e ) 是一种基于阶段事件驱动的服务 器应用程序架构。它是m a t tw e l s h 博士( 目前为哈佛大学计算机系副教授) 在 加州大学伯克利分校攻读博士学位期间提出的一个高性能应用服务器模型。s e d a 整合了基于多线程的服务器编程模型和基于事件驱动的服务器编程模型的优势, 它可以高效地管理并发、i o 、调度和其他服务器需要的资源,从而实现一个高 性能的服务器程序。s e d a 被设计成为构建通用应用服务器的编程模型。 s e d a 的设计目标包括2 3 】: 1 ) 支持大规模的并发操作,每个结点能够同时处理上万个客户的服务请求 2 ) 有效实现条件负载,确保系统的高可用性,当负载大范围变化时展示出 他优越的性能 3 ) 简化复杂应用程序的设计,适用于通用的应用服务器程序开发。 3 2s e d a 应用服务器架构实现原理 3 2 1 线程并发服务模型 线程并发服务模型利用多线程技术,每个待处理并发请求各自被分配给一个 独立的工作线程,由该工作线程进行请求处理并且返回相应的结果,请求处理的 整个工作流程都在该工作线程中完成【州。一般由主线程负责线程的管理,事先创 建一定数量的工作线程,构成线程池,然后按照一定调度算法,将各个请求分配 到工作线程。 线程并发模型充分利用了操作系统多线程技术的特性,利用多线程实现c p u 、 内存以及i o 资源的多路复用,从而实现大量并发请求的并发处理。该模型结构 比较简单,工作流程能够比较直观地在线程中实现,同时能够较好地实现大量并 浙江大学硕士学位论文第3 章s e d a 应用服务器架构 发请求的快速响应和处理。 由于请求处理工作流程中往往存在大量的阻塞操作,随着并发量的增大,为 了保证请求得到及时响应和处理,必须增加工作线程数。然而,工作线程的总数 是有限制的,而且线程间的切换需要耗费大量的c p u ,同时由于线程间公用资源 的存在,线程同步也需要大量的c p u 开销。因此,线程并发模型在系统高负载的 情况下性能急速下降,甚至造成系统崩溃。 3 2 2 事件驱动模型 事件驱动是指根据事件的状态决定执行流程的程序运行模式。它可以表示为 一个二元组( s , r ) ,其中,s 是事件状态集合;r 是运行模式集合【2 5 1 。要实现 事件驱动模型,首先要将请求处理流程进行抽象,从中抽象出一系列的事件状态 ( 如磁盘、网络等i 0 访问完成事件,计时器事件) 以及运行模式,从而构成一 个有穷状态机;然后在此基础上实现事件调度器( s c h e d u l e r ) 和各个事件处理例 程。 浙江大学硕士学位论文 第3 章s e d a 应用服务器架构 图3 1 事件驱动模型图 采用事件驱动模型构建应用服务器系统( 如图3 1 ) ,只需要少量的工作线程 ( 譬如等于c p u 个数) 就能够实现系统的并发运行,这可以避免线程并发模型中 大量线程带来的线程调度和线程同步损耗【2 6 1 。因此,在理想状态下,该模型在性 能上要比线程模型优越得多。当然这里有个前提条件就是,事件处理例程中不能 有阻塞的i 0 操作,因此该模型必须采用非阻塞i 0 访问策略2 7 】( 异步非阻塞的 网络访问,异步非阻塞的文件读写等) 。 由于事件驱动模型在有穷状态机的基础上实现,各个事件联系紧密,难以进 行划分;各个事件发生的概率和事件处理事件各不相同,各事件的调度策略需要 考虑众多因素,难以制定。因此采用事件驱动模型开发系统,难以实现模块化开 发,而且事件调度器( s c h e d u l e r ) 实现逻辑十分复杂,这大大增加了系统实现的 复杂度,也极大增加了系统开发和调试的难度。 浙江人学硕1 :学位论文 第3 章s e d a 应用服务器架构 3 2 3s e d a 阶段事件驱动模型 s e d a ( s t a g e de v e n t d r i v e na r c h i t e c t u r e ) 阶段事件驱动模型就是在事件驱 动模型的基础上设计实现的,它目标是继承事件驱动模型的高并发处理性能,同 时极大化简系统开发的难度。 一、s e d a 模型的基本设计思路: 应用服务器程序的请求处理流程往往是一个复杂的基于事件驱动的有穷状 态机,因此实现服务器程序的过程就是用程序实现有穷状态机的过程。s e d a 模型 对有穷状态机进行分析,对状态网状图进行划分,将相关的状态聚集在同一个 s t a g e ( 阶
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全生产航空运输安全生产教育试题及答案
- 美甲生活常识试题及答案
- 2025年建筑装饰安全生产管理人员真题及答案
- 四川省眉山市仁寿县铧强中学2023-2024学年高三上学期语文9月诊断性考试试卷(含答案)
- 网络工程考核培训试题及答案
- (正式版)DBS23 001-2014 《食品安全地方标准 蓝莓果酒》
- (正式版)DB5404∕T 0021-2024 《烤藏香猪》
- (正式版)DB65∕T 4905-2025 《一体化在线政务服务平台“统一受理”系统办件接入技术规范》
- 2026年水果种植公司员工试用期考核管理制度
- 2026年水果种植公司水果销售合同签订与履行管理制度
- 上海嘉定区区属国有企业招聘考试真题2024
- 2025心肺复苏术课件
- T-CECS 10400-2024 固废基胶凝材料
- 2025年内蒙古三新铁路有限责任公司招聘笔试参考题库含答案解析
- 2025-2030年中国铝合金游艇行业十三五规划与发展建议分析报告
- 2023-2024学年鲁教版 九年级数学上册期中复习检测试卷
- 初中竞选安全部部长
- 《人体的经络》课件
- 《福禄贝尔》课件
- 期中测试卷(第一单元至第四单元)-2024-2025学年六年级上册数学人教版
- 关闸马路环境监测
评论
0/150
提交评论