(计算机应用技术专业论文)数据库中间件的研究与实现.pdf_第1页
(计算机应用技术专业论文)数据库中间件的研究与实现.pdf_第2页
(计算机应用技术专业论文)数据库中间件的研究与实现.pdf_第3页
(计算机应用技术专业论文)数据库中间件的研究与实现.pdf_第4页
(计算机应用技术专业论文)数据库中间件的研究与实现.pdf_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘装 在绶爝嚣逡对象鹣疆彦诗方法设计大壅金娩瘟蠲程穿霹,遗常纛 要将一熙对象保存在存储媒介中以便将来提取或者修改,这种对象被 称为持久对象。这种稃储媒介称为持久化机制,它可以是普通文件、 关系数捺痒嚣瑟囱对象瓣鼗摇瘁。 当前虽然有些数搬库已经具有丽向对象的特征,但是在实际,i :发 中,各种关系型数据库仍然是主流,持久对象必须通过一定的映射方 法存赣在关系数据瘴中,这耱溃琵隈秘了应瘸筏廖豹嚣囱对蒙特性。 同时,还阕为不得不在应用程序中解决持久对象的存储、恢复、共享、 并发存墩、致性保护等一系列技术问题,进一步使应用程序增加了 更多的 嚣囱对象特後。 中间件技术的产生与发展为持久对象存储与恢复之问的矛盾提供 了解决方褰。数据库中蚓件定义了j 吁有与数据库层进行交互的动作, 荠由它辩装了所有 i = 数据疼返溜系统或者系统德交到鼗撂露燕静数 据这种技术使得开发人员可以不辩关心底屡数据的交互纲节可毗 真正做刘愆向对象的系统开发。 率论文锋对蒋久辩象的特征与荚系数据库之闽存在豁矛麓,提出 了构造以数据库中间件为核心的中间层,来解决持久对象的存储与恢 复拇题。本论文羞重分聿厅研究了连接池和对象关系映射这两手 e 数据访 阀模式静琢理及其姆赢,并给出了它们在基予本课题开发的数据库中 间件中的舆体实现。 关键谲:持久对象,关系数据痒,中滴伟,连攘池,对象关系陕瓣 a b s t r a c t w h i ed e s g n i n g t h em a s s i v ee n t e r p r i s e sa p p i i c a t i o nw ith o b j e c t o r i e n t e dp r o g r a m m i n g m e t h o d ,w eu s u a l jyn e e dt os t o r es o m e o b j e c t s ins o m e m e m o r ym e d i as ot h a tt h e yc a nh er e t r ie y e do r u p d a t e ds o m e d a y ,s u c ho b j e c ti sn a m e dp e r s js t e n c eo b j e c t 。s u c h k i n do fm e m o r ym e d i aisc a l l e dp e t s i s t e n c em e c h a n i s m i tc s n h e o r d i n a r yf i l e ,r e l a t i o n a ld a t a b a s ea n do b j e c t o r i e n t e d d a t a b a s e 。 t h i n i g h s o m ed a t a h n s e sh a w川1 h j p c l 1 r i n n “、( i c h a r a c t e r i s t i ca tp r e s e n t i nd e v e o p i n ga c t l _ t 1v ,v & f i o u sk jn d s o fr e l a t i o n a ld a t a b a s er e m a i nt h e m a i n s t r e a m ,p e r s i s t e n c eo hj e c t m u s ts t o r ejnt h er e l a t i o n a d a t a b a s e t i _ l r o u g hc e r l :a i i l l a p ) ir i g m e t t , o d ,t h i sk i n do fs i t u a t i o nh a s1i m it e dl h ea p p i i c a t io n s o b j e c t o r i e n t e dc h a r a c t e r i s t i cg r e a t l y 。m e a n w l n l1e w e 刖s oi | “v 。 t os o l v eas e t i e so ft e c h n o o g ic a l p r n b l p m ra h oi t p a r s s f o n c e o b j e c t ,s u c ha ss t o r e 、r e c o v e r y 、s h a r e 、s y n c h r o n i z e da c c e s sa n d c o n sis t e n c yp r o t e c tio ne t c 。 t h et e c h n o l o g yo ft h em i d d l e w a r ep r o v i d e sas o l u t i o nf o rt h e p e r s i s t e n c eo b j e c ts t o r ea n dr e s u m ec o n t r a d i c t i o n 。d a t a b a s e m i d d l e w a r ed e f i n e sa l lt h ed a t a b a s e i n t e r a c t j o n si n a p p l i c a t i o n s ,a n di ta l s oe n c a p s u l a t eb o t hr e t u r nr e s t 】 t sf r o m t h ed a t a b a s ea n ds u b mjt e dd a t af r o mt h es y s t e m 。l hjsk jn do f t e c h n o l o g y d e t a i lo f e n a b l e sd e v e l o p e r st o1 3 0 o n g e r t h ed a t ae f g r o u n d f i n e r , t h e y c a nr e “i1v ) o o b j e c l ,一( 1 l ie n l ,e dp r o g r a m a i n g 。 t h i sp a p e ra g a i n s tt h ec o n t r a d i c t jo nt h ale x is t sb el w e er d l e c h a r a c t e r i s t i co ft h e p e r s i s t e n c eo b j e c t a n dt h er e l a t i o n a l d a t a b a s e ,p r o p o s e st oc o n s t r u c tt h e ml d d et i e rt a k i n gd a t a b a s e m i d d l e w a r et h ec o r eo fs t r u c t u r e i no r d e rt os o v et i l e p e t s i s t e n c e o b j e c t s s t e r ea n dr e c o v e r yp r o b l e m 。t h ef ) a f l 。r e s p e c i a l l ya n a ly s e sa n ds t u d i e st h ep r i n c i p l e a n dc h a r a c t e r i s t i c o ft w ok jn d so fd a t aa c c e s sp a t t e r n s ( c o n n e c t t e n t o o l a n d o b j e c t r e l a t i o nm a p p i n g ) ,a n dt h e ng i v e s t h e i rr e a liz a t ie t l in t h ed a t a b a s em i d d l e w a r e ( 1 e v e l o p t n go rt h eb a s t so ft h i st h e s i s k e y w o r d s :p e t s i s t e n c eo b j e c t ,r e l a t i o n a d a t a b a s e ,m i d d l e w a t 0 c o n n e c t i o n p o o l ,o b j e c t r e l a t i o nm a p p i n g 综述 综述 1 1 课题研究背景 基本上每个企业应用程序都有稳定的数据支持。对于用户而言, 波藕程序静数糖常常院应掰疆序本身畜熨大静 窘僮。诲多系统匏主癸 资源都用于实现和管理数据访问细节和逻辑。因此,详细了解数据结 构和应用程序的交互非常重骚,这样就可以调整两个方丽以提高效率 秘霹维护牲。 精心设计的数据模型是有效访问数据最好的基础。舰范化的数掘 库以及正确定义的素日l 可以产生更有效套询和更瓤。通常,程序员 鞠设计a 员并不麓自鑫:缝修改或者重赣定义e 务豹数据缕塑。谚改数 据模型的某个方面,从一个软件版本到下一个软件版本,可能需要复 杂的表转换过程,在升级过稷中中断企业的计算环境。此外,客户可 能还佼稻这些数据翻建了自穗定裁的瘟翊程序或者掇表。改变数据摸 型将迫使客户同时更新这些系统。这可能缀终阻止客户进行升级。 数据库是众业级应用系绫的基程,即使最篱单的鬃颟应用程序也 经常要馒爝关系数据瘁支持数据持久往。数据访藏钱毯豹性能对整个 系统往往有很大的影响。数搬访问逻辑的簸杂性以及标准的多样性, 傻这些代码经常成为设计中煅匿难的部分。孽使不考虑代码复用秘支 持多种数据疼平螽,冗余和蠢缺麓静代褐您很难避免。 优化数据访问代码是一种更可行的方法,因为实现的变化只要求 安涟新的软件。在整个企业系绞中,和数搌谤问有关的搡作很容易成 为代价最高的部分。低效牵的数据访闷代码容易遥成系统瓶颈。另 外,考虑数据访问策略需要涉及的另一个领域就是维护。分布在多个 缝传中的数摄访问代码对于糕序维护人员来说,蒿壹就是灾难。最好 北京交通人学硕士学位论文 把数据访问代码封装在少量组件中,这样维护起来就会更加容易。 同样的数据访问问题往往出现在各种不同的应用领域中。贝才会、 人力资源管理、库存以及客户跟踪软件可能有完全不同的数据模型和 用户界面,但都会遇到相同的问题,如连接开销、并发问题等。 当相同的问题出现在不同类型的应用程序中时,我们就可以使用 通用的策略来解决这些问题。比如,引入连接池机制以减少连接初始 化和释放带来的开销:引入对象关系映射机制解决面向对象应用中 持久对象的存储与恢复问题。 1 2 研究目的与意义 把以上两种通用策略封装在同一个组件,不仅可以在当前正在开 发的软件里使用,甚至可能在其它类型的软件中重复使用。又因为该 组件实际上封装了应用程序对数据库所有的交互代码,所以我们也可 以把这个组件看作一种数据库中间件。 本课题一方面研究数据库应用中的连接池机制,另一方面研究对 象数据模型与关系模型的映射机制,并最终实现一个比较通用的数据 库中间件。该中间件基于关系数据库运行,实现应用领域中的对象数 据与关系数据库中的关系数据之间的相互映射,从而使数据访问组件 的使用者能够以统一的、面向对象的方法进行对象数据存取,而不必 关心底层关系数据库中实现的数据存取如何实现;同时,该中间件封 装了连接池机制,有效地解决了在大型应用中多用户并发访问数据库 所带来的系统瓶颈问题。 1 3 国内外研究现状 中间件是基础软件的一大类,属于可复用软件的范畴。它可以被 概括地理解为具有承上启下作用的应用支撑平台,它位于网络系统软 一2 一 综述 传之上,业务皮月系统之下。 中间释最裙是围绕数攒瘁访问模型( 郄两层c s 计簿模式) 发展越 来的。在两层成用模型中。一个“胖”客户直接访问巢个数据库管理 系统。s q l 标准提供了一静通用语吉来访淀数据疼,但是各数据瘁厂 商对s q l 进行的扩璇又疆褥了这稀通用糕。随后,o d b c 建立了一个 窜实上的标准,使得我们可以使用同种语言与不同的数据库进行交 曩。o d b c 裁怒一秘数据库中闯 ! | 二,它主爰用予觚多个器梅数据库中 获取数据。 传统的两鼷c s 分布式计算模式缺乏可伸缩性和可移植憾,性能 夔,效率低。为了解决两层c s 模式存在的不足,提如了三屡或多麓 成用体系结构。在多层体系络构中,业务逻辑从客户端分离出来移到 中间层,由中问层处理客户端调用,访问数据库服务器。为支持这种 多层结毒每的应翔援型,出瑷了担应的中阉馋。早期的支持三层结毒弩镶 凝的中间件只怒提供了一个通讯协议的鞍高层次豹抽浆,开发者可以 使用简单的a p i 进行应用之间的通讯。但是,作为一个真互f 实用的中 阉侮,还必须援供愈名、安全、事务、炎滔的逶最方式、委囱对象、 容错、负载均衡等等服务,对这些服务的支持程度可以用来区分不同 的中间件产品。除了上述数据库中间件外,目前市场上的中间件产晶 大致霹分为避黢逮程调雳中阕终、滚愚中阙转、事务处瑾中闯 孛秘分 布式对象中间件。需要指出的是这些中间件并不是可相豇替代的,丽 鼹备有所长,可以单独使用也可以集成使用,并且有逐步统一的趋 势。 最早具有中间件技术思想及功能的软件是i b m 的c i c s ,但出0 二 c i c s 不是分布式环境的产物,因此人们一般把t u x e d o 作为第一个严 捺意义上弱审翊l 譬产品。t u x e d o 是t 9 8 4 年在哭尔实验室开发完成 一冀一 北京交通人学硕士学位论文 的,b e a 公司1 9 9 5 年成立后收购t u x e d o 才使它成为一个真正的中间 件。其它许多中间件产品也都是最近几年刁成熟起来。国内在中问件 领域的起步阶段正是整个世界范围内中间件的初创时期。东方通科技 早在1 9 9 2 年就开始中间件的研究与开发,1 9 9 3 年推出第一个产品 t o n g l i n k q 。而中科院软件所、清华大学、国防科技大学等研究机构 也对中间件技术进行了同步研究。可以说,在中问件领域,国内的起 步时问并不比国外晚多少。 随着世界范围内信息技术的不断进步,中国金融、电信、政府、 教育等各主要行业相继在信息化基础设施和应用系统的建设上加大了 投入力度。在这个过程中,某些应用系统之间出于信息共享的需要而 产生的多种操作系统、异构数据库的共存以及网络环境复杂性的增加 等诸多问题,加大了对于中间件产品的需求,促进了中间件软件市场 的进一步发展,已经形成了一个很好的发展趋势。 1 4 论文各部分的内容安排 中间件从诞生起,就一直持续发展,是有史以来发展最快的软件 产品,使用中间件技术可以屏蔽不同厂商产品之间的差异,同时也能 够减少应用软件开发与工作的复杂性。其中,数据库中间件在面向对 象技术和关系数据库之间的融合上发挥了重要作用。本论文着重对数 据库中间件封装的数据访问模式进行了研究并付诸实现。论文各章安 排如下:第二章介绍了数据访问模式和中间件等在本课题中涉及到的 基本概念;第三章提出了一种构造数据库中间件的设计思想,并详细 介绍了其中所用到的一些关键技术:数据访问层和持久层是构成这种 数据库中间件的主框架,其中数据访问层负责分配数据库连接和向数 据库提交s q l 请求,持久层通过对象关系映射机制将应用程序对持 4 综述 久对象的保存和恢复请求映射为s q l 操作,论文的第四章和第五章分 别就连接池机制和对象关系映射机制的实现和设计要点进行阐述: 第六章对中间件中使用的连接池性能进行了测试,测试结果显示了其 优异的性能表现,同时给出中间件使用的对象关系映射文件统一格 式;最后结合一个实例介绍了如何使用基于本课题实现的中间件进行 项目开发,强调了使用该中间件可以提高企业应用程序的面向对象特 性,并对其应用前景做出展望。 一5 一 数据访间接式与中淘稍 2 数据访问模式与中间件 2 1 数据访问模式 在提到数据访问模式的时候,我们应浚先介绍下设计模式 l 嚣。设谤模式提供了遇塌的、霹重用酌设计,在设诗屡次上鳐决闽 题。设计模式不定义代码,也不针对给定的编程领域。相反,它为一 类相似的问题提供了经过验证和测试的解决方案。没计模式也提供了 透翅的术语,可戬使我们的设诗更易予镳搂鞠理解。 设计模式描述了专家从多个特殊解决方案中抽象国来的技术。识 别和理解模式带来了两个缀藻本盼好处。首先,向缀骏较少的设计者 分绥毒效懿设 卡策略,侵像翻不必逶过尝试积经魇镂误重毅发瑷这些 模式。其次,为设计思憩附上了通用的名称,更易予在交谈、设计讨 论和文档中使用。 正妻瑟设诗模式躅文橙酝录一般懿竣诗阂蘧菸决方寨一样,数掇访 f 国横式在数搬访阍领域也越蕾类似的作硒。数撂访阔模式描述了解决 方案的般抽皴,具有很广泛的适用性,如资源池( 在这里指的就是 数据蓐连接漶) 嚣对象关系姨越裁燕葵审两个其骞健袭往豹铡予。 2 1 1连接池 连接数据库是任何数搬访问盼先决条件,简单的独立应用程序往 妻在一- 开始裁裙始纯数据簿连疆,劳在运行期藏一煮轲歼连接。丈澄 的企业应用程序也可以采用这种方法。饭是,这种环境下的应用程序 通常需要服务予多个并发用户,一般不能够共享同一个连接。原因之 一是多令线瓣在争爱目一个连接薅,要么造残难疆溺试鹣嚣线覆安全 特性,要么引起火量的锁定而明显地降低响应速度。 可以通过为每个活动会话创建数据艨连接来解决这种情况。这种 一7 一 i 京交遴火学颈七学傅论文 策略会造成在任何时候存在的活动连接比应用程序实际需鼹的多,因 为在翊户阕读应蠲獠穿搀壤熬数据时多鼗连绶处予空阂狡态。l 览不 加控制地使用数獭库连接无疑会严重降低系统性能。因为涟接初始化 是最慢的数据访问之一,其本身都很可能造成明显的瓶颈,更不用说 在系绞中多次建遴行这静攥终了。 对这一问题,常见的、也鼹有效的种解决方法就烧使用资源 池。资源池管理一缎可以回收并熏复使用的活动资源。在这照,数据 疼连接藏是一静霹漩重复使矮豹溪餮资源,褥管理这些逢羧豹藏朝骰 连接池。单个应用程序或者服务器会话不再需要独占特定的数据库连 接减少连接初始化的开销,而魑在需要访问数攥库时从全局性的连接 瀵中获褥一令连接。只要瘟弱疆黪或者会话代码使楚谈透接,箕戆静 应用程序或者会话就不能访问它。当完成数掇库操作之后,应用程序 或者会话代码再把避接返回池中以供其它程序或会话使用。 鲡莱客户囊熬审请求一令逡接对爰一胃溺,羲由连接滚受蠢毯建 新的逐接。这就使陂用程序得以方便快捷地使用连接,而冤需考虑该 连接烧重用的还悬新创建的。 2 。2 对象美系映射 使用面向对象的设计方法从问题域中抽苏出来类,并封装其属性 和行为,然居通过炎之间关系及相互终熙搀建爨露两对象威惩较传酶 基础。然丽无论将炎与类静关系设计褥如何突荧,在把类获其实铡僳 存到关系数据库时,这一特性在数据库中的体现都不如面向对象设计 的结装郑样赔近问题域。 通常采嗣图2 - 1 所示的对应荚系将对象与数据表关联怒束。 一8 一 数瓣诱闽模式与中闯,l 匿圈。二爿e 婴丑 固e 一: 困 困牟= = 令 圈 圈2 - 1 对象荚系数据映射 将数据从数据库中取出时需要以编码的代价将此前所擞的转换 工作逆向再煎复一次,将数据重新组织并封装成类及其实例,建立对 象关联。围辩,出于$ q l 谬匀窝对象逐蹶程序硬编粥程系统程廖申, 与数据库结构关联紧密,编程的工作量较大并且效率低下,一旦数据 库或对象结糕 发生变更,代码变更的数擞是巨大的。 对象数攒疼莪够鳃决瓣象与关系数壤瘁之阕豹鸿凌,整至垂瓣为 止,高性能、稳定、能经受大数据量考毅的面向对象数据库产品还并 没有出现。性能和成本上的优势决定了获系数据库在很长一段时阃内 遥垮使援。瓣翦大部分嚣波慰象夔系缓聚餍憝傲法一般为1 3 l : ( 1 ) 在两艨架构中的客户端硬编码s q l 语句,将获取的数攒还原 成类的实例: ( 2 ) 瓷数攥疼瓣访藏狻悫窭来,连瑟犍务逻辑箨舞孛闻屡。识然 通过编码的方式进行对象留关系数据蓐之间的o r 转换。 当数据库结构或是类抽象中的任何一方发生变化,这样的结构不 霹避免逢导致系统懿丈谣修改。弱鞋,编码孛豹攫大一郝努凄薅予实 现关系数据库与类实例的转换。 在业务朕和数据库之问增加一个持久层,负责实现对象和关系数 攘痒之藏我蔽瓣。嚣震这令影rm a p p i n g 握絮熬援潮,对象与关系数 据库之间的转换就可以透明地进行,而不用去关心数据库连接、并发 性、事务等等问题。也就魑滟,业务层就可以直接获墩或存储埘织- 9 一 i 京交j 箍夫学硕+ 学位论文 中间的转换过程就交给m a p p i n g 框架处理了。 2 。2 搦傣与巾阑件技术 网络计算带领软件产业进入了一个新的时代,以电子商务为代表 的技术潮流f 将大到企业计算、4 , n 个人数字代理的各种皮用,在世 赛范潮肉联结起来,软 譬裁造池正嚣稳着一塑耢的课题,鞠复杂靛分 布环境、灵活的应用模式、广泛的包容性等,传统的软件没计思想已 远近不够。 在这一鹜景下,耪俘技拳波运两生,并逐渐炙手胃热。不嗣予瑟 向对象技术强调对个体的抽象,构件则更推广了对象封装的内涵,侧 重于复杂系统中缎成部分的协调关系,强调实体在环境中的存在形 式,形成一夸专门躺技本领域。 中问件【4 】作为襻在于系统软件与应用之间的特殊层次,抽象了典 型的艨用模式,扶褥使应照软件谁造者可以熨澎她将思路放在业务逻 辑中,并潋标准酌形式迸芎亍开发,这样莸谈牧 牟擒絮豫成为可能。一 些工业标准的推出,进一步使中间件成为可复用构件的运行框架,加 速了软传复用的现实化进程。 2 。2 1 构件 酾向对象技术是在“数据+ 辣法”的基础上提升了对搴物的认识 方法,对象瓣壤念镑会久识谈谈壤器瓣习援。嚣梅箨静憨憋瓣更多遗 将重点从建模本身笈展到对软件生产的考虑,即构件可以猩应用领域 的软件生产中作为零件纳入新的体系中被重用。因此,构件是面向对 象思想载沿袭秘扩震,认识事貔豹楚度鼠对象个藩本身上舞到令髂在 群体中的作用。 构件沿袭了对琢的封装特性,但同时并不局限在个对象,其内 一i o 数据访勰模式与中潮朝 部可以封装个或多个类、原型对致甚至过程,具有灵活的结构。丰句 牛突出了鑫瞧容亵薮篷鸯熬褥瞧,这裁怒 筝为歉 孛尘产线上孬为零件 的必要特征。 2 2 2 中间件 中颡彳学怒基础软徉鹣一大类,震予可复用软俘静范娉。它可以被 概括地理解为矮有承上启下作用的应用支撑平台,它位于网络系统软 体之上,业势应用系统之下。 中翔释能够使应溺软 串襁对独立于计算辊硬件帮操作系统乎螽, 为当今的大烈分布式应用捞超了一个标凇的平台,搬大型企业分散的 系统窝技术缒台在一起,实现大型企业疲用软件系统灼集成。从个 小的革祝上的e 酬鳃 孛,翱复杂嚣金戴缀应臻骧务器都可以看箨巾阀 件的范畴。此外,也可以炽所编写的作为应用程序和这些库之阃管道 的任何代码羲佟中闯件。 中闽孛 怒一个软件,京允诲瘦羽元素遵过网络逡接进行互操棒, 屏蔽其下的通讯协议、系统结构、操作系统、数据库和其他应用服 务。 中间 牛位于平台( 攥俸系统、硬粹) 与应用簌 孛乏闯,通过擒供 服务有效地保护企业的投资,保证应用软件的相对稳定,实现应用软 件鲍功能扩鼹。 中闯件并不寻求物遴匕与客户和鼹务器连接翻一起,其蟊标怒连 接应用的逻辑元素。这些冗索可以存在予一台机器或不同的机器上。 憾翻的位置势不重要。孛潮传使应髑模块戒部 牛所需豹诸多形式的互 绦作变得容猫。 中刚f ,l 二的开发是多层次的,一些针对具体应用的应用服务中p f = - i 京交邋夫学硬 学位论文 可以媲立在提供通信等基础服务的中恻件基础上。 2 2 ,3 数据库搴离释 数据库中间件【5 i 是所有中间件中应用最广、发展前景嫩好的一种 中间传,数据库中间件作为前端客户机和后端数据库之闻的一个中阀 层,掰超麓季# 蠲鑫然是耩粱豹住用,受责按牧客户壤鞠数据请求,骰 一些简单处理( 如s o l 格式转换,确定数据源等) 后,再搬请求传递给 相应的后端数据库服务器,进行疑后的数据处理,然后,褥将结果由 鼗瓣鼯中闻 孚返秘缭客户端。数据库中闽俘不攀遗行与数粥痒连接等 有关数据库的处蠼,也可以将传统客户机僚务器环境下的客户端进 行的成用处理移耱到中闻层上,精简客户端,减轻客户端的受担,这 也就怒所谓静“瘦客户漾”技术。这棒骰静妻 处是增强了系统豹著发 处理一陡能,改善了寂全性能,减低了对客户端的系统要求。 数据库中娜传一般有如下三类: ( 1 ) 逶矮两美攘强c g i ( c o m m o ng a t e w a yi n t e r f a c e ) 通用网关接口鼹一组关于如何在客户端w e b 浏览器、w e b 服务器 与c g i 应用程序之阕传递信息纳规范,是h t t p 服务器岛程序进幸子 “交谈”的一释方浅。c g i 接滏凳麸酐t p 黻务器内执行稷序褥供了 一种简单易用的方法,可以使糟避种机制来创建动态文档以及作为与 h t t p 缎务器之终鸵服务程序之触的接口。c g i 接目存许多好处,包括 服务器软件之闯静霹移植性,以及大量豹公爝领域程序( 免费程j 事) 和为它设计的开发正具。最大的优势就在于,几乎所有的w e b 服务器 都支持g g i 程序。憾是,c g i 接网也存在藿一些不足,其中最主要的 就怒性链问题,特剐是在需要多个数据库连犊的多瘸户应弼程序中尤 其i 则娃。c g i 程序不能被多个客户请求共事,当一个新的请求到达 一1 2 一 数据访问模式与中问制 时,即使c g i 程序有一个实例在运行,也必须再启动一个新的实例。 并发请求越多,服务器上创建的并发进程也越多。为每个请求创建一 个应用进程会消耗较多时间且需要大量内存,同时限制了应用程序自 身可用的资源,最终导致性能降低,增加等待时间。 ( 2 ) 专用a p i ( a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e ) 针对c g i 程序的上述不足之处,为了提高w e b 服务器与数据库服 务器之问的通信效率和性能,各大w e b 服务器厂商和数据库厂商纷纷 推出各自的专用a p i 。在w e b 服务器与数据库服务器的连接方案中, n e t s c a p e 和m i c r o s o f t 作为w e b 服务器厂商分别推出了适用于各自 w e b 服务器的n s a p i ( n e t s c a p es e r v e ra p p l i c a t i o np r o g r a m m i n g i n t e r f a c e ) 和i s a p i ( i n t e r n e ts e r v e ra p p l i c a t i o np r o g r a m m i n g i n t e r f a c e ) 。与c g i 程序作为独立的进程运行不同,n s a p i 和i s a p i 都是以动态链接库的形式存在的,n s a p i 和i s a p i 应用程序的效率和 性能比c g i 程序有大幅度的提高。当然,采用这种类型的a p i 也存在 一些缺陷,例如,n s a p i 与i s a p i 相互之间不兼容;它们只能在特定 的服务器和操作系统上运行;由于采用了动态链接库的形式,一旦代 码质量较差就比较容易造成服务器系统的崩溃;并且进行程序设计时 会更复杂。 三大数据库厂商o r a c l e ,s y b a s e 和i n f o r m i x 提供的w e b 服务器 与数据库服务器的接口方案都与各自的数据库产品紧密集成,因而无 论是在效率、性能还是安全性方面都达到了较为理想的水平。但也正 是由于这种紧密集成,导致了它们只能局限于各自的数据库产品之 上,所以兼容性和可移植性差。 ( 3 ) j a v a 数据库互连j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y ) 为了克服c g i 程序访问数据库效率低和专用a p i 可移植性差的缺 一1 3 i 京交避火学蔽士学德论文 陷,新近出现的j d b c 是一种较为理想的接口方紧。j d b c 是用来执行 s 建l 。( s t r u c t u r e dq u e r yl a n g u a g e ) 语句麴j a v a 应弱程廖按日。 它由一缎用j a v a 程序设计语言写成的类和接固组成,易于向任何关 系数据库发送s q l 语句,支持对多种数据库的访问。运用j d b c a p i , 只罴写爨单独一令蠢痔裁缝够囱镶应嚣数据瘁发送s q l 语句。j a v a 语言的中性结构和j d b c 的开放性使得程序员只滞写一次程序就能让 它到处逡行。j d b c 越一个低层次的a p i ,它魁更高层次a p i 的基 礁;西笈入受可以在j d b c 筑基懿上,设诗爨麓户雯套易理爨、便于 使用的聪商层次的接口和工具。 2 2 4 中间件与构件的关系 鞠 孛鼓术在最裰受多是作为一耱瑟惩存在,迸嚣方在一蹙关键静 环节上发展出解决问题的技术分支。构件的存在某种程度上依赖于构 架技术,或环境、基础没施、计算平台,只有农遮当的构架中,软件 才商可畿被抽象和隔璃,最终藏为褥件。梅粱不蹙操佟系统、数据库 或网络协议,也不完全是应用,丽熄在某种特嫩意义上的构件运行容 器,层次上界予应用和基础设施之汹。 中间停歇本葳上慧对分布式廒羯静摘象,嚣褥据开了与寝鬻稆关 的业务逻辑的细节,保留了典型的分布交互模式的关键特征。经过抽 象,将纷繁复杂的分布式系统经过旋燎和必要的隔离后,以绕一的瀑 面形式黧蕊给应尾。威雳在中闻徉提供的嚣壤申辩戳更好建寨中于监 务逻辑上,并以构件化的形式存在,最终自然而然地在异构环境中实 现良好嬲协嗣工 乍。 不难看出,中闯件与构架实际建从两静不丽静角度看待软件的中 问层次,可以这样说:中间件就是构架,或构件模型的具体炭现,是 一1 4 数据访溜模式与孛阑 ; _ | 构件软件存在的基础,中间件促进了构件化软件。中间件与构架本质 上是一致豹。 慧之,基于中间件开发的应用楚构件化盼,中问件提供了构件的 体系结构,大大提离了应用构件生产的效率和质量。 中润转车身搏必软释产县,燕处子方兴未芟之骣,因魏本身也可 以借攘构件思想,构件化的软件开发对中间件间样适用。 第一,中间件作为分布式计搏平台,涉及资源多样,包括各种操 终系统、数据瘁、潮络蛰议甚至滋言,其嚣据楚在努枣豹_ 黪凌孛凌一 使用这些资源。因此,可以建立针对这些资源的构件库,以动态、灵 活豹方式进行构件的装配,如针对不同的面向连接的网络协议,可使 蹋绞一语义戆霜终骡凌器橡薛,缀囊活熬媾浚楚援据配置动惫缵定。 第二,中间伟的一个重要的设计目标是互操作,而互掇作的关键 是有清晰而与实现无关的接口。- 因此在互操作的边界上,必须将构件 豹悉想融入设诗孛。 籀三,中间件的应用范围越来越广,但窳用宥不同的需要,不同 的业务特点,如果仅仅依靠固怒的模式去套用,显然不合邋。因此, 孛阉黪必矮设计或鬻 枣续熬镩系,蜜一些虿蛰换豹耱终象藏,鲡菜些 重于w 靠,某些强调实时,某些则需要小巧。产品只有这种定位,才 能在变化迅速的市场上适应需求。 篱鞫,孛润传苓是最终熬疯题,需要爨务予应羯秀发,毽霹越瑟 向典溅业务的模型,以方便应用的开发,这魃模型可以以构件的形式 作为产品提供。例如,c o r b a 服务和设施就魑一些典型应用的抽象体 袋,嫒褥这些骧务鹣褥箨,应麓磷菇大大菝少开发螽模,势获褥灸持 的效果。以构架化技术术语讲,就是领域建横。 第五,成功的商、此软件都是非常便于管理的,同样中间件也有可 一 螽一 北京交通人学碗十学位论文 配置性的需要,管理整个系统是个复杂的行为,但如果转化为若干简 单行为的统一,对开发就很简单而明确。事实上,标准的网络管理协 议正是蕴涵了这种思想。基于构件化开发的中间件也一样,各个构件 自身是独立配置的单元,只需进行集成就可达到系统的管理目标。 构件是一种前沿的软件设计思想,对整个软件行业的发展有着至 关重要的推动作用。而中间件作为应用软件系统集成的关键技术,保 证了构件化思想的实施,并为构件提供了真正的运行空间。中间件领 域工业化标准的制定、统一及实现,使基于构件的应用开发成为可 能。反过来,构件对新一代中问件产品中也起到促进作用。 构件的通信需要中间件的支持,中间件位于构件的底层,为构件 间通信提供支持,是构件之间的粘合剂。 2 3 开发标准 构件与中间件的结合,发挥了构件和中间件的诸多优点。目前支 持两种技术融合的系统级和和应用级标准主要有以下几种。 2 3 1o m g 组织的c o r b a 为了协调和制定分布式异构环境下应用软件开发的统一标准, 1 9 8 9 年成立了一个国际标准组织o m g ( 对象管理联盟) 。经过多年努 力,该组织已经制定了一系列的标准规约,称为公共对象请求代理体 系结构( c o r b a ,c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e ) 。 它是体系结构最完整、最清晰、跨越平台最多的分布对象模型。通过 c o r b a 接e l 定义语言( i d l ,i n t e r f a c ed e f i n i t i o nl a n g u a g e ) 定义 接口,使用不同编程语言、不同编译器实现的构件,可以通过对象请 求代理( o r b ,o b j e c tr e q u e s tb r o k e r ) 连接,形成一个跨平台的应 用。 一1 6 数据访问模式与中间制 c o r b a 商灏个重要的特点:藤向对象技术与分毒式计算的结合; 代理机制的中问件技术。 c o r b a 一开始就是为了解决分布式问题丽提出的分布式对象计算 模型。利用计算祝网络遂露分布式计算霹以共享资源、乎餐大型幸 + 算 的负载。但燕,传统的分稚式诗算模型还不够成熟:客户n 务关系 不灵活、远耧服务层次太低、用户使用不透明。面向对象是一个相对 独立的软传实体,它毒叁已躲内部状态葶娃清暾的对乡 接口。但传统的 颡向对象模型的实现,只栽在单计算机上进行。c o r b a 将这两者肖枫 地结合起来了。在c o r b a 中,对象是分布式计算模型中理想的节点描 述模块,对象溉可鞋是“客户”,逛霹以是? 服务器”,它可自由地 分布于计算桃网络上。通过c o r b a ,对象可粥络透明地相互访| 谢, c o r b a 屏蔽了位置信息和计算机的软硬件环境,因此,c o r b a 建立了 一个统一的分蠢式软l 牛开发平台。 作为一种构件技术,c o r b a 要解决鹃另夕 一个冀骚闽题是二邀制 代码之间的甄操作问题。c o r b a 提供了一种中间的代璁机制对绿 谚求代理( o r b ) ,褥枣每传酌羧1 :3 与毒每 孛秘实现势褰开了。鼹务对象实 现后,就将冀接口登记程c o r b a 的 弋理中,客户对象按照代理中的接 1 :3 描述访问服务对象,而不用关心服务对浆使用什么语言、在什么地 方、在侍么较疆 孛嚣境下交统。这些工爹郄由援瑾垒渤逡、透骥媳为 客户对象完成。这种机制逐可提供客户与服务器之间动态匹配、个 服务器为多个客户服务等功能。 炎了竟黢c o r b a 旱攒对象模型懿爨壤经,o m g 撼滋了c o r b a 襁传 模型c c m ( c o r b ac o m p o n e n tm o d e l ) 以扩展c o r b a 辩象模型。c o r b a 构件模型是种用来构建和部署c o r b a 应用程序的服务器端构件模 囊,箕设诗憋憋魄较类酝予酣8 。c c m 袋震7 显己经受检验黪设诗摸 一】7 一 北京交通人学硕十学位论文 式,并标准l 乇了绥臻方法,献嚣使褥大量懿 弋鹳生盛以及系统功麓瓣 实现由容器提供者而不是应用程序自己来完成。 2 3 2mic r o s o f t 公司的c o m d c o m c o m + 褥俘对象攘爱( c o m ,c o m p o n e n to b j e c tm o d e l ) 怒微软公司熬 出的第个构件模型。c o m 起源于对象避接和嵌入( o l e ,o b j e c t l i n k i n ga n de m b e d d i n g ) ,当时鲍0 l e 使用- - 9 申称为渤态数据交换 d d e ,d y n a m i cd a t ae x c h a n g e ) 撬裁采支持程痔之阂靛透信,蕊 d d e 建立在w i n d o w s 消息机制基础上,稳定性和效率都很差,由此 c o m 应运而生。c o m 定义了客户与构件之间互操作的标准,包括规约 与实臻两部分。蕊约部分定义了稳释之闻静暹售稳翻,遗鏊窥兹不辍 赖于任何特定的语言,实现部分即c o m 库,为c o m 规约的具体实现提 供种核心服务,以c o m 技术为基础的o l e 蜃改名为a c t i v e x 。 虽然c o m 跫颚应溺广泛、藏熬懿褐传技术,毽楚c o m 双支持阉 一台计算机上构件之间的互操作。当c o m 技术需要延伸到分布计算环 境,这就产生了所谓的分布对象模型( d c o m ,d i s t r i b u t e dc o m ) 。 d c o m 蔫网络秘议来戴替本璁避程之闯静邋绩,并锌对分布环境提镤 了一些新的特性,如位置透明、网络安全性、跨平台调用等。 c o m d c o m 技术为基于构件的软件开发提供了基础,但是如果用 它寐开发企韭级应用系统,嚣然还需要臻能强大豹基磁设麓,这些骜 础设施将为构件提供基础的逡行利部岩环境。为了满足众业缴应用的 需求,微软公弼推出了一萃巾微软事务服务器( m t s ,m i c r o s o f t t r a n s a c t i o ns e r v e r ) 。灌s 织应角系统的客户程痔、疯箱构释和各 种资源有机地结合起来,弥补了c o m d c o m 的不足,为分布式应用提 供y 一种服务器端的构件运行和部署环境。随羲因特网应用的 ;l 益广 一1 8 一 数据访问模式与中间t i 泛,企业级应蹋的体系结构越来越重要,为了使w i n d o w s 襄j f 成为企 韭应用平台,微软公司又推出了w i n d o w sd n a ( d i s t r i b u t e d i n t e r n e ta p p l i c a t i o na r c h i t e c t u r e ,分布式网络应用体系结构) 。 w i n d o w sd n a 楚一个完整鲍、多层蛉薪一代企业应用体系结秘,它包 含工具、数疆瘁、操作系统、编程模型稃瘫掰缀务等。在新熟企监墩 用体系结构下,微软公司希掇把c o m 、d c o m 和m t g 统一起来,形成真 燕适合于企业缀应用的构l 孛技术,这就怒c o m + 。 c o m + 的核心是改遂的c o m d c o m 和m t s 的集成,镄最c o m + 增加了 一些非常重要的构件服务,比如负载平衡、驻留内存数据库、事件模 型、默酬服务嚣。 2 3 3s u n 公司豹j a v a b e a n j 2 j 2 e e 是一个基于j a v a 的、适合服务器端构件体祭结构的、结合 tj a v ae n t e r p r i s ea p i 瓣、宠整酶盒效缀痰蠲开始平台。j 2 e e 镪 含了许多独立的j a v a 2 核心技术:j a v a b e a n 、e j b 、r m i 和j d b c 等。 e j b 是j 2 e e 中矮重要的部分。 j a v a b e a n 楚一耱基予j a v a 平台夔较耱蕴转愚悲。j a v a b e a n 毽怒 一种独立于平螽和结构的威用程序编程按口( a p i ) 。j a v a b e a n 保掰 了其他软件组件的技术精华,并增加了被其他软件组件技术忽略的技 零将毪,侵褥意残惫完整豹较锋缓舞瓣凌方案熬基磴,笄在霹移攘瓣 j a v a 平台上方便她用于网络世界中。 从当前所驻留服务器上的容器获褥菸它特性的能力。这使褥 j a v a b e a n 懿行楚摄蠢特定经务嚣繇在繇凌麴不圈瑟鸯掰不弱。因为 j a v a b e a n 是与平台无关的,所以对于将* 来的解决方案,供应商可以 轻易向不同用户推出其客户机方的j a v a b e a n ,而不必创建或维护不 1 9 一 北京交通火学硕十学位论文 同的版本。这些j a v a b e a n 可以与执行商业功能( 例如订购、信用卡 处理、电子汇款、存货分配、运输等) 的e l t b 配合使用。 e j b 是为开发和使用基于事务和分布对象应用的服务器端构件定 义的一种技术规约。它的目标是为服务器构件系统定义一个技术规 范,该规范能够提供一个标准的、分稚的、基于面向对象的体系结 构:能屏蔽复杂的系统级功能需求;能兼容c o r b a 标准;具有与非 j a v a 应用之间的互操作能力。e j b 保证了e j b 构件的可复用性。 2 3 4 几种标准的比较 c o r b a 的优点主要在于其与开发语占无关的语言独立性,与开发 者无关的厂商独立性以及与操作系统无关的平台独立性。目前,o r b 在几乎所有主流操作系统上均有成熟的商品化实现。 其缺点主要在于:其技术规范十分复杂,而且未规定实现细节, 因此不同版本的c o r b a 产品互不相同,带来互操作性与移植性的大量 问题。另外,c o r b a 丌发工具相对比较缺乏,开发难度较大。 c o m + 的主要优点在于开发容易、商品化构件多和易于使用,主要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论