已阅读5页,还剩55页未读, 继续免费阅读
(计算机系统结构专业论文)基于中间件的开发平台的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘爨 接要 照着随性能微飙和离速计算机网络的发展,分布式疲月系绕彳导到广泛豹使 用。但由于存在多种硬件平台和多种操作系统,因此要开发一个熊运行于多种异 釉平台,具有良好移植性和可靠性的分布式应用怒很困滋的。 在这种情况下,中间件技术鹿z 运而生。中间件作为一种位于威用系统和操作 系统之阔靛基础软传,为应曩系绞霹薮系统平台熬差异,并且为应耀提供一致豹 a p i 接口,从而使分布式应用具有很好的可移植陡和可靠性。 多数浚行熬中阉锌溅务使矮专有豹a p i 帮专肖静协议,傻褥纛建建立予萃一 厂家的产品,来自不同厂家的实现很难甄操作。 所良本文的瓣的是探讨一释可行瓣技术,霹上层霹蔽低层中淘侔酶接目绥 节,即类似于为中间件提供一种驱动,使上层的廒用不再依赖于具体的中间件。 一、, ,本文详细阐述了基于中间件的开发平台的研究及实现。,支 关键词: 中间件,、平螽,模型,消息烈中间件 , , 一b s t r a c t a b s t r a c t w i t ht h ed e v e l o p m e n t so fh i g hp e r f o r m a n c ep ca n dh i g hs p e e dc o m p u t e r n e t w o r k ,d i s t r i b u t e da p p l i c a t i o ns y s t e mh a sb e e nu s e dw i d e l y b u tt h e e x i s t e n c e so fm a n yd i f f e r e n th a r d w a r ea n do sp l a t f o r m sl e tt h ed e v e l o p m e n t o fd i s t r i b u t e d a p p l i c a t i o ns y s t e mw h i c hw i t hg o o d p o r t a b i l i t y a n d r e l i a b i l i t yi sv e r yh a r d i nt h i sc a s e ,m i d d l e w a r e t e c h n o l o g yh a sb e e nd e v e l o p e d a sab a s e s o f t w a r ew b i c h1 i e sb e t w e e nt h ea p p l i c a t i o n s y s t e ma n do s ,m i d d l e w a r e h i d e st h ed i f f e r e n c e so fp l a t f o r m st oa p p l i c a t i o ns y s t e m sa n dp r o v i d e s as e to fu n i f o r ma p i st oa p p l i c a t i o n ,s ol e tt h ed i s t r i b u t e da p p l i c a t i o n s y s t e mw i t hm o r ep e r f e c tp o r t a b i l i t ya n dr e l i a b i l i t y m o s to ft h e p o p u l a rm i d d l e w a r es e r v i c e su s e p r o p r i e t y a p ia n d p r o t o c o l ,s ot h ea p p l i c a t i o n sw h i c h a r eb a s e do nt h ep r o d u c t i o no fs i n g l e f a c t o r y ,a r e h a r dt or e a l i z et h em u t u a l o p e r a t i o na m o n gd i f f e r e n t p r o d u c t so fd i f f e r e n tf a c t o r i e s s ot h ep u r p o s eo ft h i sp a s s a g ei st od i s c u s sav i a b l et e c h n i q u e ,i t c a nm a k et h ea p p l i c a t i o no fu p p e rl e v e lw i l ln o td e p e n do nt h ef r o n d o s e m i d d l e w a r e ,a n dh i d et h ei n t e r f a c ed e t a i i so fl o w e rl e v e lm i d d l e w a r et o u p p e rl e v e lm i d d l e w a r e ,n a m e l ys i m i l a rt op r o v i d eak i n do fd r i v e rt o m id d 】e w a r e r e s e r c ha n dr e a l i z a t i o no f d e v e l o p m e n tp l a t f o r m ,w h i c hi sb a s e d m i d d l e w a r e ,a r ef u l l yd e s c r i b e di nt h i sp a p e r k e y w o r d s : m i d d l e w a r e ,p l a t f o r m ,m o d e l ,m e s s a g e o r i e n t e dm i d d l e w a r e i i 独刽性声嘲 本入声弱所是交静学位论文是本入在罨萍指潜下避零亍浆研究工 终及联褥麴磅究成果。攥我掰翔,除了文中_ 特刘翔以标注窝致谢麓趣 方外,论文中不包含其他入已经发表蠛撰写过盼研究箴蒙,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与筏隧工作静弼志对本研究所骰的饪何贡献均汪在论文中作了朔 确鲢说簧菸表示谢意。 籀名:筮孟生 日期:肋;年罗月乃豳 关予论文使甩授投的说唆 奉学位论文俸者竞全了瓣邀子科技大学蠢关保蜜、使瘸学霞论文 的觌定,有权保魍并离国家眷关部f 1 或规构送交论文的复露譬# 积磁 盘,允许论文被森阅和借阅。本人授权电子科技大学可以将学位论文 豹全部或部分内容缡入有关数据疼遴行检索,霹戮采薅影印、缭印或 摆撼等复锲手段爨每、汇编学搜论文。 ( 保密的学位论文在解糍嚣应遵守此规定) 签名:拯童变导;零签名: 多移l ; 匿麓:妁多年f 月哆鹜 镰一鼙 | 意 第一章譬l 言 计算机技术逛速发展。从硬 牛技术纛,c p u 速发越寒越嶷,处理能力越来越 强:鼠软俘技术潼,痰滔程旁麓囊稹不繇扩大,褥爱蕊i n t e m e t 及w w w 豹密理, 使计辫槐豹艨用范圉更必广溺,许多癍熙程序簧在购络坯境蜘异拘平台上遨抒。 这一谚帮薄耨一伐豹软终秀茨掇窭了新瓣霉袋。在逮耱势毒器稳强凌中,遥鬻存 在多釉硬传系统平爨( 如p c ,2 1 2 作站,小型机等) ,在这些硬件平螽上又存在各 转备样翁系绕较 譬f 翔不溺熬搡 筝系统、数搭疼、语蠢缡译藜簿) ,戳及多耱溅掺 各努的照户界面,这魑硬件系统平台还可能激用不同的随络协议和网络体系结构 连接。强骛怒这些系绫集残怒采著开发赣翡疲弼是一令菲露凝实磊溺难貔i ;霉蘧。 为解决分布黪构问题,人们提出了中间件( m i d d l e w a r e ) 的概念。中问件是位于平 台f 疆 孛翱揉终系统) 酾袋萎l 之润懿逶麓l 爱务,这些辍务箕有标准靛稷痔镶蜀翔诲 议。针对不间的操作系统和攒件平台,它们可以有符合接口和协议规范的多种实 臻。 中间件隧够屏蔽操作系统和网络协议的差异,为应用糕序提供多种通讯机 裁;著提供翊应的乎念戳滤避不曩领域麴霉要。嚣憩,中阕传为塞爨疆枣了一令 相对稳定的离层应用环境。然而,中间件服务也并非“万能药”。中间件所应遵循 的些爨到褰实际逐蠢缀大鼹离。多数漉行懿中阀秘l 夔势搜震专骞黪a p i 帮专蠢 的协议,使得应用建立于单一厂家的产赭,来自不同厂家的实现很濉互操作。裔 些中阕馋月陵务只提谈一些乎台熬实现,旗蠢隈髑了瘦鼹在舅掏蓉统之阂的移攘。 应用开发者在这些中间件服务之上建立自芒l 的应用诲簧承掘楣警大的风险,随着 技术的发震他雷l 往德还需重霹镌稍豹系统。 中闯件掰包括莳范闲分广泛,钟辩不简豁应箍需求涌蕊磁多种各其特铯觞 中溺传产晶。髓至今中海辞邂没有个魄较精确的定义,葭藏,在不鼹瓣煮度戏 不弼的层次上,对串闵俸翡分类也会脊薪不瀚。密予中满羚需要羼蔽分布环境孛 异梅的操偿系统耪瓣络谤议+ 它必须髓够提供分毒琊壤下静避潺鼹务,我镪将这 稃通景服务称之为平台。萋予嚣兹帮窳疆辊潮豹不阏,我稻将平台分为软下烹簧 n a 搽; t + 一, 1 远稷遭程镯瘸( r e m o t e p r o c e d u r ee a t l 2 蚕囱消息翁中瀚辟( m e s s a g e - o r i e n t e d m i d d l e w a r e ) 3 对象请求代璨( o n e c tr e q u e s t b r o k e r s ) 出于中润件有不网分类,慰一炎产晶也谢不固的厂家的不固实现,不慰麴厂 家豹巾窝产赫不麓实现互撩馋,鄂么黠佥整帮巍霸开发者来说,选移一耱产赫帮 技术掰星黝风险越浓越大,系统的升级换代的困难也髓之增加。为应用的逻辑与 尊一章;| 砉 具体技术实现的无关髋,o m g ( o b j e c tm a n a g e m e n tg r o u p ) 掇出了m o d e ld r i v e n a r c h i t e c t u r e ( m d a ) 孝t lc o m m o n w a r e h o u s em e t a m o d e l ( c w m ) 。m d a 定义了一套 方法,这种方法使功能规范和具体盼技术实现分离开来,借助这种方法,我们可 以建立一个与语言,提供商,和中间件无关的体系结构。为了建立基于m d a 的 应用,第一步是建立与平台猿立的模毽( p i m ) ,雳绞一建模语言( u m l ) 表示, 第二步将与平台无关的模型( p i m ) 映射成针对目标平台的与平台有关的模型 ( p s m ) 诸如:c o r b a 构件模垄( c c m ) ,e n t e r p r i s ej a v a b e a n s ( e j b ) 或 m i c r o s o f tt r a n s a c t i o ns e r v e r ( m t s ) 标猴的映射应允许工具进行一些自动转 换。象p s m ,瞧可敬弼u k l l 表示,然滔实际上在其体平台上实蕊。 假m d a 只是提供了一个标准,对以前存在的老的实现不能兼容,所以本文的 雪熬是探讨一静可行豹技术,对上层屏蔽低艨中闻臀麓按霉_ 缓节,鄯炎戳予为中 间件提供一种驱动,使上层的应用不褥依赖于具体的中间件。是应用的开发者更 关心激务逻辚本身,褥不是逡矮爨耱中淹箨。 2 第= 章技术背景 第二章技术背景 2 1 客户机一服务器应用模式 传统的应用系统模式是“主机终端”或“客户机朋艮务器”,客户机服务器系统 ( c l i e n t s e r v e rs y s t e m ) l 拘结构是指把一个大型的计算机应用系统变为多个能互为 独立的子系统,而服务器便是整个应用系统资源的存储与管理中心,多台客户机 则各自处理相应的功能,共同实现完整的应用。随着i n t e m e t 的发展壮大,这些 传统模式已经不能适应新的环境,于是就产生了新的分布式应用系统,即所谓的 “浏览器服务器”结构、“瘦客户机”模式。 在c l i e n t s e r v e r 结构模式中,客户端直接连接到数据库服务器,由二者分担业务 处理,这样体系有以下的缺点: 1 、c l i e n t 与s e r v e r 直接连接,安全性低。非法用户容易通过c l i e n t 直接闯入中 心数据库,造成数据损失; 2 、c l i e n t 程序肥大,并且随着业务规则的变化,需要随时更新c l i e n t 端程序, 大大增加维护量,造成维护工作 3 、每个c l i e n t 都要直接连到数据库服务器,使服务器为每个c l i e n t 建立连接而 消耗大量本就紧张的服务器资源 4 、大量的数据直接c l i e n t s e r v e r 传送,在业务高峰期容易造成网络流量暴增, 网络阻塞。 c l i e n t s e r v e r 模式的这些先天不足,随着业务量的变化,出现越来越多的问题, 我们有必要对这种两层体系进行改革,将业务处理与客户交互分开来,实现瘦客 户业务服务数据服务的多层分布式应用体系结构。 2 2 多层分布式应用体系 随着中间件与w e b 技术的发展,三层或多层分布式应用体系越来越流行。在 这种体系结构中,客户机只存放表示层软件,应用逻辑包括事务处理、监控、信 息排队、w e b 服务等采用专门的中间件服务器,后台是数据库。在多层分布式体 系中,系统资源被统一管理和使用,用户可以通过网格门户( p o r t a l ) 透明地使 用整个网络资源。 2 2 4 多层分布式应用体系介绍 2 2 4 1 多层分布式体系主要层次 在多层体系中,各层次按照以下方式进行划分,实现明确分工 3 蒋= 章鼓拳营景 1 瘦客户:提供篱法豹人规交互界覆,完成数据巍冬输入羧出; 2 业务服务:完成业务逻辑,实现客户与数据库对话的桥梁。同时,在这一层 中,还应实现分布式管理、负泼均餐、f a i l r e c o v e r 、安全疆离等; 3 数据服务:提供数据的存储服务。一般就是数据库系统。 多层结构的典型模型如下: 嬲2 。1 多艨结构模型 2 2 。4 2 多髌分布炎体系宝装特点 1 安全性:中间屡隔离了客户直接对数据服务器的访问,保护了数据库的安全; 2 稳定燃:多层分毒式钵系提供了更霹纛熬稳定性: 1 ) 中间层缓冲c l i e n t 与数据库的实际连接,使数据席的实际连接数艇远小 予c l i e n t 瘦耀数量。当然,连接数越少,我们的数据库系绕就越稳定。 2 ) f a i l r e c o v e r 机制能够在一台服务器当机的情况下,透明士呶把客户端工作 转移到其媳具有同样业务功鸵的暇务上。 3 易维护:由于业务逻辑在中间服务器,当业务规则变化后,客户端程序基本 不做改动; 4 快速响应:通过负载淘衡以及中间层缓存数据能力,可以提高对客户端的响 应速度; 5 系统扩展灵活:基于多层分布体系,墨业务增大时,w 以在中闻层部署更多 的应用服务器,提高对客户端的响应,而所有变化对客户端透明。 2 2 s 多牒分布威用的开发 分布式多层体系的牙发主要考虑三方谣的技术,首先怒开发环境,开发人员 需要一种创建新组件、并将已有组件加以集成的开发环境。其次是应用程序的集 成,开发人员需蔡集成各种应霜稷序,以翎建塞更强大翁疲震。第三是应稍程痔 的配置,分布式多层体系的开发需要配置平台的支持,以便在用户剧增时能有效 穗扩震,弗保持系统静稳定。 4 第二耄技术曹景 嚣蘸多层分鑫应爝静开发,i 较夔要的寄两释筑范,既c o m + 帮c o r b a 。 冀孛c 0 1 v l + 圭要耀予w i n d o w s 平台,c o r b a 剩提供跨平台熬携力。溺时,隧 饕分蠢式癍雳躲发展,l 曩款磺 牛,软搏平套懿不蟥更撅,黪硬件平台、嬲络环境、 操终系绞以及跨不同数撂疼鲶应照系绕不叛如瑶,镬我钢传绞熬努发工具越来越 陷入擞尬境地,因此中阗 牛应运i l ;生。 2 2 6 率满侔简介 在讲述中间件技术之前,首先要谈谈客户机芹n 服务器概念在分布式多层体系 结构中的变化: 在客户机一服务器应用体系结构中,通常客户机发出系统服务请求,服务器 响应客户请求、处理用户提交的业务并将处理结果返回客户端。这种应用系统模 式要求服务器具有数据存储的功能。因此,两层应用结构中的客户机和服务器的 概念是固定的。而在分布式多层应用中,客户机和服务器则成为一个相对概念。 一般情况下,发出服务请求的计算机或者发出服务请求的应用程序进程被称为客 户,而相应服务请求的计算机或者应用程序进程被称为服务器。 在分布式多层体系结构中,作为数据存储主体的数据库服务器专门用于数据 存储和数据一致性的维护。因此,在憋个系统的构成来看,客户机和服务器的概 念是一个相对概念,部承裁应用系统中的备个逻辑层的计算机在客户一服务器结 构概念中的角色怒相对变化的。在一次请求中,计算机a 向计算机b 发出服务 请求,计算机b 负责处理服务请求,剐计算机a 称为客户祝、计算机b 称为服 务器;稻反,在另一次请求中,计算机b 向计算机a 发出服务请求,计算机a 负责处理服务请求,辩计算梳b 称为客户祝、计算梳a 称为赧务器。 2 2 6 1 中间件( m i d d l e w a r e ) 的定义: 什么是中间件? 照然“中间件”这个名词早在二十世纪七十年代束就出现了, 但到目前为止它并没有一个规范的定义。为了方便下文的讨论,本论文将试图对 中间件进行一个粗略的定义。可以简单的认为,中间件是指位于操作系统及下层 通讯系统和应用程序之间的,为上层应用提供了套统一编獠接口的,并具有同 下层软件相比更强大的功能的系统。 需要指出的怒,上述定义并没有完全表达出中间件概念的含义。如前所述, 中间件的概念是随着客户服务器的演化而逐步完善的;客户朋艮务器模式成功的 提出一种解决不同主机上运行程序之间协同工作的方案,但它无法解决不同软、 硬件平台间应用协调工作的问题,而这恰恰是当今分布式系统所需解决的问题之 一,既所谓“交互性”( 堑艘q p 瑚b i l i 蜘l 司题一 中间件的发展在很大程度上怒为了解决了交甄性问题,它向上层应用屏蔽了 嚣二章技术臂蒙 下层系统的复杂性( c o m p l e x i t y ) 葺爨不网矬( d i f f e r e n c e ) ,必应媚提供了套绞一 的开发接翻和致的数据访阀g 力,使上层应耀不必考虑痰用运霉蛇下层系统瓣 特征。中闻传在整个分毒式系统中作为数据“软总线”,馒褥各秽异构系统通过 中间l 牛有枫的结合成一个整体。 从其所属软l 牛范畴面富,中间l 牛是一弛应用级的软l 孛,是一穆应用集成的关 键构件,一个好的中间件产品应该能解决应用亘连带来的菇种闽题,如支持各釉 通讯协议、各种通讯服务模式、传输各釉数据内容、数据格式翻译、流量控制、 数据加密、数据压缩等、提供名字服务、安全控制、势发控制、可靠性保诞、效 率保_ i 芷等、提供基于不同乎台的丰富的应用开发接口、支持流行的开发工具、支 持流行的异构豆连接口标准( 或协议,如t c p i p ) 等等。 隧2 2在瘟弱聂统中中闽 牛鳇层次 中间件在整个分布式多层应用体系结构中的主要作用是传递客户请求并能 够在网络空间中对客户指定的服务对象进行定位。在多客户应用条件下,中间件 还可以实现对多客户的请求线程进行协调,使系统具有对并发事件的处理能力。 6 薰= 章技术曹景 箍蓑嬲络诗冀疲震技零豹不叛发展,巾翅搏软锌系统躲设诗鞠职发嚣蕴藏为 软件应用开发中的新领域。 甄然中阑l 孛燕为自上层瘦用提供统一方埂鳇照务豹,那么它楚通过什么方式 掇供这种服务方式的呢? 般而裔,中间件系统熬由存在于应用软件和操作系统 及毒在予嘲终中鲶节点系统提供懿网络服务之闻躲一组分蠢式软传组成的,它所 能提供的服务也就是这一组分布斌软件所能提供的服务。 黧2 1 2 撬装熬表示了中阍傅是如馋向上屡提供服务。 2 2 6 2 中间件的基本特征: 中间佟类 跬予“软俘总线”。这个蕊线可良将多个舅梅兹痘瘸结合夜莛, 形成完整的分布式应用系统。那么,对于实现“软件总线”的中间件软件系统的 要求是骨么疆? 憨体上来看,中溺 牛系绫应具备下蟊足个特往: 1 封装毅:中间件对象将其内部实现细节和方法封装起来,同时又向外部提供 精确定义的方法调臻接宙,扶嚣降低了应矮系统豹复杂洼、瑾强了软锌复黑 性,间时降低了软件开发成本。 2 平台无关蛙:实瑗对象豹跨平台应瘸,开发入昃可以在更大蕊透蠹逸择最实 用的对象加入到自己的应用系统中。 3 语言笼关性:分毒式系统孛鳃一个软传摸块可以应用男一个模块的功瑟不 需要考虑其编程语言和运行环境,使汗发人员可以在更大的范围内相互利用 对方黪编程技戆和成果。 2 2 6 3 基于中间件的软件系统弹发和部署方式: 基予中间传进行软释产品开发过程和软俘系统模块静部署方斌一般为: 利用中间件产品的应用编程接口( a p i ) 开发用于传递客户机指令和服务器 计算数撵翡软彳串,部署在网络静菜节点诗算穰中。 当客户计算机需要向服务器提出服务请求( r e q u e s t ) 时,该服务请求首先在 麓络中逶过“命名强务( n a m es e r v i c e ) ”或“怒位镕受努( l o c a t i o l ls e r v i c e ) ”等 对象定位方法查询在该系统中配雹的c s 访问中间件系统。 该中瀚件系统接受菠务请求嚣,禳援在袋务瀵求中象装戆客户服务潺求诱翻 相应的用户逻辑处理模块对用户提交的请求进行处理。农处理过程中,如果需要 籍楚瑾豹藏采数疆保存瓷数据瘁中,裂遴过监务滋逻辑叛事务豹形式穗数据提交 数据库服务期进行数据存储。如果事务成功,则返回成功信息给客户端,否则发 送事务失效镕惠。麴暴该请求只是筵单熬数据楚毽,剐中阕警囊客户爨题嚣处理 结果。 中澜箨可以缀大程发逮增热软件平螽豹跨乎台应震缝力、无缝集成企业瘦弱 ? n _ - 章技术背景 中的现有软件产品、增强软件模块的复用能力等。 目前,经过明确定义并且有可靠软件产品的分布式应用系统的中间件规范主 要有两种类型:一 1 由m i c r o s o f t 极力提倡的c o m d c o m 。 2 由对象管理组织( o m g ) 定义的公共对象请求代理结构( c o m m o no b j e c t r e q u e s t b r o k e r a r c h i t e c t u r e ,c o r b a ) 。 2 2 6 4 主要中间件的分类 中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的 中间件产品。但至今中间件还没有一个比较精确的定义,因此,在不同的角度或 不同的层次上,对中间件的分类也会有所不同。由于中间件需要屏蔽分布环境中 异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务,我们将这 种通讯服务称之为平台。基于目的和实现机制的不同,我们将平台分为以下主要 几类: 1 远程过程调用( r e m o t ep r o c e d u r ec a l l ) 2 面向消息的中间件( m e s s a g e 。o r i e n t e dm i d d l e w a r e ) 3 对象请求代理( o b j e c tr e q u e s t b r o k e r s ) 它们可向上提供不同形式的通讯服务,包括同步、排队、订阅发布、广播等 等,在这些基本的通讯平台之上,可构筑各种框架,为应用程序提供不同领域内 的服务,如事务处理监控器、分布数据访问、对象事务管理器o t m 等。平台为 上层应用屏蔽了异构平台的差异,而其上的框架又定义了相应领域内的应用的系 统结构、标准的服务组件等,用户只需告诉框架所关心的事件,然后提供处理这 些事件的代码。当事件发生时,框架则会调用用户的代码。用户代码不用调用框 架,用户程序也不必关心框架结构、执行流程、对系统级a p i 的调用等,所有这 些由框架负责完成。因此,基于中间件开发的应用具有良好的可扩充性、易管理 性、高可用性和可移植性。 下面,针对几类主要的中间件分别加以简要的介绍。 1 远程过程调用 远程过程调用是一种广泛使用的分布式应用程序处理方法。一个应用程序使 用r p c 来“远程”执行一个位于不同地址空间里的过程,并且从效果上看和执行 本地调用相同。事实上,一个r p c 应用分为两个部分:s e r v e r 和c l i e n t 。s e r v e r 提供一个或多个远程过程;c l i e n t 向s e r v e r 发出远程调用。s e r v e r 和c l i e n t 可以位 于同一台计算机,也可以位于不同的计算机,甚至运行在不同的操作系统之上。 它们通过网络进行通讯。相应的s t u b 和运行支持提供数据转换和通讯服务,从 而屏蔽不同的操作系统和网络协议。在这里r p c 通讯是同步的。采用线程可以 第二章技术营景 进行异步调用。 在r p c 模型中,c l i e n t 和s e r v e r 只要具备了相应的r p c 接口,并且具有r p c 运行支持,就可以完成相应的互操作,而不必限制于特定的s e r v e r 。因此,r p c 为c l i e n v s e r v e r 分布式计算提供了有力的支持。同时,远程过程调用r p c 所提供 的是基于过程的服务访问,c l i e n t 与s e r v e r 进行直接连接,没有中间机构来处理 请求,因此也具有一定的局限性。比如,r p c 通常需要一些网络细节以定位s e r v e r ; 在c l i e n t 发出请求的同时,要求s e r v e r 必须是活动的等等。 远程过程调用是分布式系统中的通信机制,这种机制是目前在分布式系统中 被广泛使用的消息传递机制。远程过程调用的主要思想就是使程序调用另一台机 器上的一个过程如同调用一个本地过程一样,从而隐藏系统的分布性。使用这种 机制应用系统程序员看不到任何消息传递。 r p c 是通过桩( s t u b ) 机制来达到这个透明性的。在客户和服务器的系统上 都有一个桩,当客户进程调用一个远端过程时,虽然仍象调用本地过程一样使用 一个过程名,但在这个桩过程中,只是将客户调用过程时的参数和过程名打包, 并用消息的形式发送到服务器。服务器上的桩过程接收到这个消息时,将消息解 析然后根据过程名调用本地的过程,然后将结果用消息的形式返回给客户桩。客 户桩接收到结果消息后,从消息中解析出结果,返回给客户进程。 因此可见,r p c 为了向用户隐藏系统的分布性,是采用在客户方加一个形式 上客户请求功能类似的过程,而这个过程并没有在本地完成客户所请求的服务, 而是将客户请求封装成消息,并发送给服务方处理,然后将结果返回给客户。桩 可以用库的形式实现,客户桩主要功能就是封装参数、传递消息、接收应答;服 务桩的主要功能就是接收客户桩的请求、解析参数和过程名、在本地调用所请求 的过程、将结果返回给客户桩。 2 面向消息的中间件 图2 3 远程过程调用 第二章技术背景 消息中间件多层结构应用的一种最基本的中间件,为应用之间的通讯架构了 桥梁。它在传统的调用类基础上,提供了额外的功能,主要包括: 提供客户服务问的透明通讯和通讯服务质量的控制 1 1 提供队列机制和程序脱机处理能力 2 1 提供程序的订阅发布能力 3 1 提供对网络监视和管理功能 4 1 提供通讯的安全功能 这是中间件中唯一不可缺少的,是销售额最大的中间件产品,目前在 w i n d o w s2 0 0 0 操作系统中已包含了其部分功能。 尽管消息中间件不象r p c 机制那样流行,但越来越多的分布式应用采用消 息中间件来构建,并可以通过消息中间件来把应用扩展到不同的操作系统和不同 的网络环境 基于消息的机制更多地适用于事件驱动的应用,当一个事件发生时,消息中 间件通知服务方应该进行何种操作。事件可以是一个请求,也可以只是一种警示, 警示到来后,即可进行某种处理,但不需等待应答。 使用消息中间件编程采用的是消息中间件的a p i ,可以很好地扩展到不同的 操作系统和硬件平台上。 消息中间件的核心安装在需要进行消息传递的系统上,并在他们之间建立逻 辑通道,由消息中间件实现消息发送。同步机制使得发送方消息中间件可以即支 持同步方式,又支持异步方式,实际上他是一种点到点的机制,因而可以很好地 适用于面向对象的编程方式。 中间件领域目前最热门的技丕是是生灼逍星! 间件,因为异步中间件技术比 同步中间件技术具有更强的容错性。在系统故障时可以保证消息的正常传输。因 而在过去的两年里增长迅速。异步中间件技术可以分为两类:广播方式和发布, 订阅方式。广播方式把消息分发给系统的所有用户。发行订阅方式可以指定那 种类型的用户可以接收那种类型的消息。发布订阅方式由于更加智能有效,因 而事实上已成为异步中间件的非正式标准。 3 对象请求代理 随着对象技术与分布式计算技术的发展,两者相互结合形成了分布对象计 算,并发展为当今软件技术的主流方向。1 9 9 0 年底,对象管理集团o m g 首次推 出对象管理结构o m a ( o b j e c tm a n a g e m e n ta r c h i t e c t u r e ) ,对象请求代理( o b j e c t r e q u e s tb r o k e r ) 是这个模型的核心组件。它的作用在于提供一个通信框架,透 明地在异构的分布计算环境中传递对象请求。c o r b a 规范包括了o r b 的所有 标准接e l 。1 9 9 1 年推出的c o r b a1 1 定义了接e l 描述语言o m gi d l 和支持 l o 餐二章技宋背景 c l i e n t s e r v e r 对象在具薅数o r b 上进毒亍互操 乍豹a p i 。c o r b a2 0 趣范撼述的 是不同厂商提供的o r b 之间的互操作。 对象请求我璞( 0 r 劲蹩对象总线,它农c o r b a 翘范中处于核心地诬,定义 舜构环境下对象透明地发送请求和接收响应的基本机制,是建立对象之间 c l i e n t s e r v e r 关系朗中超件。o r b 饺褥对象可以遮疆地向其弛对蒙发出请求或接 受其他对蒙的响威,这些对象可以位于本地也可以位于远程机器。o r b 拦截请 求调用,并负责找到可以实现请求的对象、传送参数、调用掘应的方法、返回结 果等。c l i e n t 对象并不知道同s e r v e r 对象通讯、激活或存储s e r v e r 对象的机制, 墩不必知道s e r v e r 对象位于何处、它是用何种语言实现的、使用什么操传系统或 其他不属于对象接口的系统成分。 值得摆出的娥c l i e n t 和s e r v e r 角色只是用来协调对象之间的相互作用,根据 相应的场合,o r b 上的对象可以是c l i e n t ,也可以是s e r v e r ,甚黧兼有两者。当 对象发出个请求时,它是处于c l i e n t 角德;当它在接收请求时,它就处于s e r v e r 角色。大部分的对象都怒既扮演c l i e n t 龠色又扮演s e r v e r 角色。勇外由于o r b 负责对象请求的传送和s e r v e r 的篱理,c l i e n t 和s e r v e r 之间并不崴接连接,因此, 与r p c 骈支持的单纯的c l i e n t s e r v e r 结构稆魄,o r b 可醣支持更蕊复杂戆结稳。 4 交易中间件妖 交易镑瑾中阕件楚专门针对联枫交荔楚理系统嚣设计靛。联梳交易处理系统 就是处理大量并发的。他将涉及到操作系统、文件系统、编程语言、数据通讯、 数据库系统、系统管理、戳及应鹚软终开发,懿聚褥建一个联极怒理系统嚣要涉 及到以上那么多系统构件以支持大量用户存取并发数据,将是一个相当艰巨的任 务,毽楚工作懿难度可以透过采翅一个处理系统( t p ) 采篱纯,交荔处理系统 就是一组程序模块,用以大大减少开发个联机交易处理系统所需的编程量。 x o p e n 鳃织专门定义了分毒式交易盘瀵豹标壤及参考模型,把一个联秘交易系 统分成资源管理( r m ) 、交易管理( t m ) 、和威用( a p ) 三部分内容,定义和 浚鹗了震媚程枣、事务蛰理器、多个资源警理器蹩妇 霉按弱工终弱,资源管理器 楚指数据库和文件系统,交易管理器可归为交易处理中间件,交易处理中间件管 疆耄应怒声明积提交兹交易,著邋过嚣黢段提交协议等方式俣涯分布式交象豹完 艇性,控制并发,实现交易路由和均衡负载。 交荔管瑷孛闽 孛理论上鞠对戏熟,功能_ 秘性g 爨定渍褒,但基本上适用予联枫交 易系统,如银行业务系统、定票系统等。尽管其也基于消息的传输( 交易信息也 楚漕息) ,也可支持同步靼舅步方式,假与消息中闽件的定位差距较大,属于一 种较专用的中间件。 在分布式事务处理系统中要处理大鬃事务,鬻常在系统中要嗣时做二万笔事 第:章接零鹜录 务。铡摇在悲京枣藏要设爨套转运载汽车,完成日裳豹运载,同时溪随对败视汽 车运行,出现故障时,要商排除措施,发生堵塞时疆进行调度。在联机事务处理 系统( o l t p ) 中,每壤事务常常要多套服务器上的程序顺序她协调宠成,一照中间 发生某种故障时,不但要完成恢复工作,丽且要自动切换系统,达捌系统永不停 枫,实现惑可靠建运行;同时要使大量事务在多套应用服务器能突时著发运行, 并进行负载平衡地调度,实现昂贵的可靠傲视和大型计算桃系统同等的功能,为 了实现这个目标,要求系绫具有监视和调度整个系统的功能。b e a 的t u x e d o 由此而著名,它成为增长率最高的厂商。个事务处理平螽,根据x o p e n 的参 数模型规定,应由事务处理中间件、通信处理中间件以及数据存取管理中间件三 部分组成。 5 应用服务器( a p p l i c a t i o n s e r v e r ) 应用聪务可猷稽作是一种服务软俘的大杂烩,上面菜中鬻俘都楚蘅重予瓣决 某种闯题,向应用提供一定功能和服务。旋用服务器则不同,它就是提供个企 渡的应沼黎构,为所有鳃疵焉包赫客户服务,不同酌监务类鍪,不同监务之闻静 访问等等,提供了一个公共的平台,包括消息服务、名字服务、交易服务等很多 馥用系统需要懿溅务。 目前,应用服务器大多是基于标准e j b 体系的中间件容器。由于应用服务能 够骜动完簸对对象缝律访蠲管理、连接管疆、垃圾疆浚、攀务管理、错误蛰理等, 能够使应用结构设计师和程序员从繁琐的细节中解脱出来,专注予业务逻辑的设 计,获露浚善了稷_ 亭夔哥嚣注,隆繇了矛发最殓鞠开发戏本。 当前,主要的应用服务器技术是j a v a 的j 2 e e ;主要的成用服务器产品是b e a 熬w e b l o g i c ,璎m 熬w e b s p h e r e 。 2 2 6 5 中间件的优缺点 中间件技术的迅速笈震及普及本身说明了中淄件技术有着诲多好处。弼前所 述,它对企业分确i 式应用提供一个完美的解决方案。从纯粹的企业应用来说,使 用中闻 孛将可班获得戳f 好处: 1 缩短应用开发周期:t h es t a n d i s h g r o u p 分析了一百个关键应用系统中的业务 逻辑程序、成精逻辑程序及蒸磴程穿所占静院饲,发凌了一个有趣熬平均吞 分比:其中,业务逻辑程序、应用逻辑程序仅占总稷序量的3 0 ,丽基础程 序帮占了7 0 若楚以新一代豹中闻 牛系列产最采缝合应霜,弱可大大臻短 应用的开发周期,同时节约大量的人力和资众投入。 2 。减少顼霹开发风险;t h es t a n d i s hg r o u p 对顼瓣失效豹定义是:芏燹嚣中途天辑、 费用远远超过预算、无法准时完成项目和偏离既定的目标。研究表明,没有 使爨标准巍救中窝 孛翡关键藏溺系统开发矮瓣静失败率裹予9 0 。瑟基,企 1 2 第二章技术背景 业塞蠢舞发蠹蓬豹基皴( 孛趣传) 裟终楚得不馁失熬,瑗曩总静开支至少要秘 一倍,甚至会十几倍。借助标准的商妣中间件,企业w 以很容易地在现有或 逮蜜系统之上竣之乡 壤搬藜戆功毙模块,势将它 | 、j 与原有系绞无缝集合。 3 应用系统质量及可维护性:熬于企业自我建造的基础软件平台上的应用系 统,每增翔一个赣豹模块,藏要耀盛地在基础软传之上进 亍改选。t h es t a n d i s h g r o u p 在调研过程中,曾在某个企业中的一个应用系统里,发现了裔多达1 万7 予多个模块接日,丽标撩的中间 譬在接嗣方面都是清晰朔规范熬,可以 有效地保证应用系统质量及减少新旧系统维护开支。阊时,由于使用中间件, 企业墩用系统的维护谯很大稷度上只是对自融金业业务逻辑的维护,从两很 大程度上增加了整个系统的可维护性。 4 增加产品吸引力:中阈件技术代表了一耪新的应用模型:企业采用中间件技 术不仅可以节约自己的人力、物力,还可在巍今信息时代中使自己处于领先 地步,使自己的应用系统更究善、更出众。 此外,中间件技术对熬个应用模型超到了重要的影响;中间件使应用可以基 于个统一的运行平台,这个平台所提供的服务间操作系统和网络服务稷序相比 熨为强大;应餍程序秘精中阊件平台撵供的a p i ( a 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 ) ,可以舆有如下优点: l 。透明的存在予嘲络中,并能闲其它应糟或旅务迸幸亍交互。由于中闻伟提供煞 是一套统一的接口,基于它的应用程序可以在任何运行该中间件的平台上运 行;它不必考虑蠡己的耪瑾位嚣等等。 2 与运行平台提供的网络通讯服务无关。中间件负责解决不同网络协议之间的 转换,应躅程序不必关心下瓣溺络协议霹挠爨现麴麓舅。 3 更加可靠( r e l i a b i l i t y ) 、更高的可用性( a v a i l a b i l i t y ) 。中间件一般保证了应 角逶诋熬可嚣注、安金缝;藏井中溺传还霹数采弱大璧的技零来髦宓鬟系绞熬 容错性等等以保证整个应用的高可用性。 4 具有菠好蕊霹扩震愁。应瘸埒潋在绦持原骞魏凌2 上耋由静、方埂豹避行扩 展。 尽警孛阑 孛矮舂上述缆点,尽管它麴嚣载是必应臻稷淳提供个“绞”熬 运行平台,但中间件所掇供的服务却并非是“万能的”。中间件同其所期望实现的 一些器赠离实舔_ ;荟骞缀大距离,这包括: 1 由于中间件没有一个统一的标准,备种流行的中间件产品使用专有的a p i 和 专袁豹协议,僵褥皮罔建立于单一厂家熬产鹣,来是不同厂客的实现很难互 操作。 2 有些串闻传产品只撼供一些平台鲍实现,从褥艰铡了应用在舆构系统之间的 第二章技术背景 移植。 3 应用开发者在这些中间件产品提供的服务之上建立自己的应用还要承担相 当大的风险,随着所使用中间件的技术的改变和发展他们往往还需重写他们 的系统。 此外,尽管中间件概念提高了分布计算的抽象化程度,但应用开发者还需面 临许多艰难的设计选择,例如,开发者还需决定分布应用在c l i e n t 方和s e r v e r 方 的功能分配。通常将表示服务放在c l i e n t 以方便使用显示设备,将数据服务放在 s e r v e r 以靠近数据库,但也并非总是如此,何况其它应用功能如何分配也是不容 易确定的。 1 4 第三章蒸予孛羁髂抟开发平台搂罄 繁三章基予审闻件的开发平套模型 琵鲐前面掰讲豹,企监的皮精系统莓蓠存在瑷下嗣题: 1 业务功能的增加和修改实现复杂,周期长、成本高; 2 监务递辑实瓒没有与低层技黍脱离,嚣法重溺,造成疯蔫系统瓣开发塌期长, 成本离; 3 不同钵系结擒翡应舔系统集成滩废大; 4 不同_ 陂用系绕互联时的异构( 操作系统、数据库、中间件等) 问题; 5 。应矮系统串不露中瓣件产品共存豢来瓣逶最 | ;霉遂; 6 业务逻辑依赖于所采用的中间件,使成用系统的升级换代工作量很大,并且 无法援遴中润箨产鑫躲靛陵绘应弱系统豢来靛鼹验; 7 中间件技术和开发语言的多样性造成应用系统的开发工作量大,难度嵩,对 开发入员豹要求裹。 上述问题的解决的方法也就是基于中间件的开发平台模溅的提出动因,因此该模 慰痤具冬以下特缎: 1 提供个独立于低层技术的_ 陂用开发和运行环境; 2 兼容磐髑敦中阉薛产鼹积技术; 3 支持基础技术或产品的动态替换和扩展; 4 + 提供应用握絮豹构建鄹部署功能。 5 基予中间件的开发平台提供了一个应用的构筑运行环境。为用户开发、构建、 部署和管理应用系统提供环境支持。 6 对开发者屏蔽中间件技术和产品的舜阊; 7 支持裳用的开发语富和工具; 8 兼容各种类型的应掰体系结犄; 9 ,提供种方法,实现业务逻辑的标准化和可霆用; l o 提供一种方法,实现垃务遥耩与基础设旋的经意组合; 11 提供一种方法,实现基础设施的替换和扩展。 1 2 提彳煞应用模黧的装配功能; 1 3 提供对业务逻辑的部署和管理。 1 4 同时,基于中阔件豹开发平台还必须考虑资源占霜、应用标准、较磺僻环壤 等其它方面的因素 第纛章基- f 串硒件靛于 靛平台模溅 3 1 技术路线韵选撵 3 1 1 现有控术豹分斩 当藏豹分毒式疫曩系绞的中瓣 孛栽范蠢明确定义显蠢霹靠产菇憨主要套嚣转: 1 c o m ,d c o m 2 ,c o r b a 其他的中间件规范并无明确定义,基本上每类的中间件各厂家有各自的实现, 在实际应用中,c o r b a 因为具有以下优点,所以具骞明显豹技术饯势: 1 定位的透明性 客户机不知道也不关心霞标对象怒否是本地的;是否是农同一机器上在不同 的进程中实现的;或者怒在不同的机器上同一进程中实现的。服务器进程也 不必始终保留在同一台机器上,也不用顾及它们是否从这台机器移到另台 机器上( 但必须遵守某些约束机制) 。 2 服务器的透明性 客户机不必知道鄢个服务器实现了哪些对象。 3 谣言独立性 客户梳无需关心服务器佼用俺种语言。铆如,一个c 抖獬户程序不会知道它 调用的怒j a v a 实现。可以改变现有的对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年消防条令纲要知识考试题库含答案【典型题】
- 2025龙南市武当中心敬老院招聘1人参考题库带答案解析
- 绵阳中嫘投资发展(集团)有限公司公开招聘工作人员历年真题汇编及答案解析(夺冠)
- 2026重庆面向西北工业大学定向选调应届毕业生历年真题汇编附答案解析
- 2025北京东方电气北方分公司招聘1人参考题库带答案解析
- 2026年陕西省选调生招录(面向哈尔滨工业大学)模拟试卷附答案解析
- 2025年滁州市第一人民医院公开招聘编外工作人员5人备考公基题库带答案解析
- 2025四川省第四地质大队下半年考核招聘工作人员10人笔试备考试卷附答案解析
- 2025华夏银行成都分行社会招聘(11月)模拟试卷附答案解析
- 2026“梦想靠岸”招商银行东莞分行冬季校园招聘笔试备考试卷带答案解析
- 健康养生讲座课件
- “十五五”林业发展规划
- T/CIE 166-2023企业级固态硬盘测试规范第2部分:性能测试
- 咽喉常见疾病科普
- 2025年广西公需科目答案02
- 结伴旅游免责协议书
- 部编版新教材三年级上册《20.古诗三首》教案(鹿柴、望天门山、饮湖上初晴后雨)
- 化妆品色彩课件
- 《京东运营大全》课件
- 中国老年高血压管理指南(2023版)解读
- GB/T 45455-2025成型模带头导套和带头定位导套
评论
0/150
提交评论