(通信与信息系统专业论文)基于net与xml的web应用架构的研究与实现.pdf_第1页
(通信与信息系统专业论文)基于net与xml的web应用架构的研究与实现.pdf_第2页
(通信与信息系统专业论文)基于net与xml的web应用架构的研究与实现.pdf_第3页
(通信与信息系统专业论文)基于net与xml的web应用架构的研究与实现.pdf_第4页
(通信与信息系统专业论文)基于net与xml的web应用架构的研究与实现.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(通信与信息系统专业论文)基于net与xml的web应用架构的研究与实现.pdf.pdf 免费下载

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

文档简介

武汉理工a 学鞭学位论文 摘要 在软律开发历程中,软释系缀槊梅设计一壹艴着关键酶捧雳。对于金韭级 逾霜露言,较捧艇椅不仅会影响到蒸装设诗积井羞的邋度,瞧袭鼗接影响到菘 统的后续扩腱潜力,甚垒会决定熬个系统开发的成败。传统的客户杭,服务器 f c l i e n t s e r v e r ) 两层体系架构流行己久,曾经是一种企业应用的成功解决方案。 但自2 0 世纪9 0 年代以来,随着i n t e r n e t 及其相关技术的迅猛发展,特别是w e b 聂蟠笑投术,传麓的客户枫朋务器两屡模型一缀明显不能遗废企监应甩的发膨 霭,较侉的体蔑巢翰也簸两层槊椅趣爹揍檠梭发震。卷薅,多屉桨掏因其嘲 显筘挠越性,已成为梅建企业级应用软件系统的一个避瘸标礁。 论文分析了当前多层w e b 应硐浆构的不足诸如:禁鞠复杂糍太开发效率 低下、移植性麓、修改困难、章并j 性整等。针对这些不足提出新的多屡w e b 应 用架构构遵方案:引凡宣体数据屡,通过生成x m l 元数据方式,在实体数据层 通过在对象与关系数据库之问建立映瓣枫锖4 来消除面向对象模型与关系数据库 不匹配;增加数撅访润层,遥过工厂方法模式设诗避用数据库访阆褛口,扶焉 使得对象摸壁与装系数据痒之闻的舄密低耦台性,即数据露模式的改变,不会 嚣晌对象模型,对爨横章的馥受车套黪晌羲据库模式:透最辨髓( f a c a d e ) 模式, 采用x m lw e b s e r x d c e 封装系统内部嘲蜊的方法,为用户界面屡提供单一而简单 的接口;通过应用丧明,此架构能根好地实现对象在关系数据库中的存取,最 太程度上消除了黠象模型与关系数撼库之闯的不匹配;由于业务步 蕊层采用了 x m l w e b s c r v i c c 蕊搬涛翊接口,粥燕可以宴理在任悸擎夤鞋侄蟋编程语占盛巍 势靠式调用,为博产箍供了受多的服务。 关键词:分布式 多层架构;x m l 寓体数据层:n e t 框絮 武汉理工人学硕士学位论文 a b s t r a c t i nt h ec o u r s eo fs o f t w a r ed e v e l o p m e n t t h ea r c h i t e c t u r ed e s i g no fs o f t w a r e s y s t e mp l a y sak e yr o l ea l lt h et i m e a sf o re n t e r p r i s ea p p l i c a t i o n ,s y s t e ma r c h i t e c t u r e e a r li n f l u e n c en o to n l ys y s t e m d e s i g n a n dp r o g r e s so fd e v e l o p m e n t ,b u ta l s o s y s t e m a t i cf o l l o w - u pd e v e l o p m e n td i r e c t l y i tc a ne v e nd e t e r m i n ew h e t h e rt h ew h o l e s y s t e md e v e l o p m e n ti ss u c c e s s f u l t h et r a d i t i o n a lc sm o d e lh a sb e e np o p u l a rf o ra l o n gt i m e i te v e rw a sas u c c e s s f u ls o l u t i o nt oe n t e r p r i s ea p p l a c a t i o n h o w e v e rs i n c e 1 9 9 0 s 、v i t ht h ea p p l i c a t i o no ni n t e r n e tb e c o m i n gm o r ea n dm o r ew i d e l ye s p e c i a l l y w e bt e c h n o l o g yb e i n gm o r ea n dm o r ea d v a n c e dt h et r a d i t i o nc sm o d e la p p e a r s o b v i o u s l yn o tt om e e tt h ed e v e l o p m e n tr e q u i r e m e n to f m o d e me n t e r p r i s ea p p l i c a t i o n t h eo r i g i n a ls o f t w a r ea r c h i t e c t u r eh a sd e v e l o p e df r o mt h e2 - t i e ra r c h i t e c t u r et ot h e n - t i e ra r c h i t e c t u r e c u r r e n t l y , b e c a u s eo fi t so b v i o u sa d v a n t a g e s ,n - t i e ra r c h i t e c t u r e h a sa l r e a d yb e c o m ea ss t a n d a r do f s t r u c t u r i n ge n t e r p r i s ea p p l i c a t i o n t h i sp a p e ra n a l y s e st h ed i s a d v a n t a g e so fn - t i e rw e ba p p l a c a t i o na r c h i t e c t u r e c u r r e n t l ys u c ha sl o we f f i c i e n c yo fd e v e l o p m e n t ,b e i n gd i f f i c u l tt ob et r a n s p l a n t e d , u p d a t e da n dr e u s e da n dp u t sf o r w a r dan e w n - t i e rw e ba p p i a n a t i o na r c h i t e c t u r e :a n e n t i t y d a t a - l a y e ri sa d d e dt oe l i m i n a t e dt h em i s m a t c hb e t w e e no b j e c t - o r i e n t e da n d r e l a t i o n a ld a t a b a s ef r o mf o r m a t t e dx m lm e t a d a t at h r o u g ht h em a p p i n gb e t w e e n o b j e c t sa n dr e l a t i o n a ld a t a b a s e ad a t a a c e e s s - l a y e ri sa d d e dt ol o w e rt h ec o u p l i n g b e t w e e no b j e c tm o d e la n dt h er a t i o n a ld a t a b a s e ,t h a ti st os a yt h a tt h ed a t a b a s em o d e l c h a n g e sc a nn o ti n f u h m c et h eo b j e c tm o d e la n d v i c ev e r s a ;t h r o u g ht h ef a g a d ep a r e m , a d o p t sx m lw e b s e r v i c et e c h n o l o g yt os e a lt h ei n n e rm e t h o d st op r o v i d et ou s e rt h e s i m p l ea n ds i g l ei n t e r f a c e f r o mt h ea p p l i c a t i o n ,t h ew e ba r c h i t e c t u r er e a l i z et oa c c e s s d a t ab e t w e e no b j e c t sa n dd a t a b a s ee a s i l ya n de l i m i n a t e dt h em i s m a t c hb e t w e e n o b j e c t sm o d e la n dd a t a b a s em o d e lf o rt h em o s t ;b e c a u s ep u b l i s ht h ei n t e r f a c et h r o u g h x m lw e b s e r v i e e ,c a l lc a l lt h em e t h o d su s i n ga n yp r o g r a ml a n g u a g eb a s e do na n y p l a t f o r m ,p r o v i d em o r es e r v i c et ou s c l k e y w o r d s :d i s t r i b u t e ;n - t i e ra r c h i t e c t u r e ;x m l ;e n f i t y d a t a - l a y e r ; n e tf r a l t l e w o r k i i 独创性声明 y 8 6 1 2 伯 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 _ 签名:1 3 基垒日期:兰1 61 塑:埘 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即学校有权 保留、进交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部 或部分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名:_ 弛师签名 注:此页内容装订在论文扉页 日期:生6 :f ,旷 武汉理i 走学硕士学位谴文 第l 意绪论 1 1 分希蠢黎缝多层架构 软件系统架构设计在软件开发所程中一直起着关键的作用。对于一个规模 缀小瞬皮用软件,无沧是用什么样的系统契梅都可阻迭到预期的骚求。但对于 攘模较犬秘囊监缀应用孤苦,鬟髋架构币仅会影响剁系缝设计润拜发的进度, 邀会妻接影辘烈系统驹后续发震潜力,甚至会决定系统的成败。在分布式诗算 的发展历程中,对于一个应用系缝的软件架梅,经衢了单壕、两层、三层或多 屡架构的发展。 单屡的软件产品大都是单机软件系统,通常设计人员和开发人蛹对系统架 柯并不重视,从接体上看,软件没有屡次概念,通常一个应用程序包括了所有 的用户秀面、啦劳逻辑班及数据魅理,应用的数据嘉可巍存放在远程撬器上, 恒访闻数据避瓣被包含在应用襄淖串。囊予单层应用软件院较庞夫,掰氍撞斑 地带来一些不剿钧因素:存设计阶菠,要求设计a 煎必颈篮萄俱到,瓿复杂的遴 辑架构中整理出程序设计文档;在开发阶段,软件开发人员之间的协作也比较 霜难:在测试和维护阶段,对软件局部改动可能会影响到整体:软件发布之后, 如果需求有了新的变化,在开发撕版本软件时,往往要全面调楚程序架构甚至 鹰卉慝囊太蠡的德鹤,群鞋尊露敞佛的版李更赫 芏健比壤蠖。对予网龉鹿角罐 者羚南式应用,攀屡禁梅显然苹能满嫠要求,于燕挝应用程黪势成两部势,霉 户端和服务器端部分,献而形般了两层桨构,也称为客户服务器 ( c l l e n t s e r v e r ) 架构。在这种槊构中,用户界面和业务逻辑在应用的客户端, 数据维护在服务器端实现,通常有鹦一个独立的应用程序米完成。过种架构的 缺点是业务逻辑屡位置模糊,希谶在客户端,则往往是客户屡笨重,并且也斑 系境的日常维护霹版本舞缓造成了很多不便;羞麓在骚务器层,剽往往难良在 数据痒系统中实现复杂的应用逻辕。于是,嚣层槊橱整然演变到了多层架褐。 当前,多壤槊构已经成为构毽企渡缓应用的一个标准。多屡槊鞫其有明显 的枕越性。酋先,可以运行在幂i 蠲的机器上,如1 果应用健业务逻辑h 二檀复杂, 武汉璞工太学硕士学位艳文 可咀使用高配置的计算桃象运行业嚣逻辑层:如粜应用的数糕盈 照太,戟可醴 采孺分存式的数据库亲律为应用酌数据存拣结掏。奠汰,其要层与层之桶的接 口保持不变。那么某一甚的变化不套影响到其它层,当层与屡之间是松散藕合 列,可戳篱单堍替换缎释 软件体系架构代表了系统设计早期一系列重要决策。 一个成熟的软件体系架构可以为今后开发类似的产品提供参照。 2 2 软件分布式系统多层架构 二十世纪九十年代以来,随着个人计算机和工作站的普及以及网络通信技 术的发展,计算资源和信息资源被分布在网络的各个节点上,这使得计算模式 由原来的主机系统向客户,服务器模式发展,分布计算逐渐成为计算技术的主流。 分布计算技术和面向对象技术衔接而形成的分布式对象技术己经发展成为分布 异构环境下建立应用系统的核心技术。与此相对应的出现了基于多层架构的分 布式应用系统。本章将说明分布式多层应用系统会成为目前建立信息系统的最 武汉理王走学硕士学位论文 流行最重要的悻蕊槊构的原因以憩分布式书层架构所聚用的主耍挂术及特点。 2 2 1 单层桨构 早在1 9 8 0 年龋乎数据库管碟熏统出臻时,赣撵蓐的世纪藏黼然开始。郡 日鸯纳蕊意懿由艘用程浮控涮关系型辫辩库,选种集中式数攒缝理的横式一般释 为单层架构( o n e t i e rf r a m e w o r k ) ,如阁2 ,1 所示。这种模式有以下几个优点: ( 1 ) 提供了熊中式管理,对系统进行维护和管理的费用较低。 ( 2 ) 在大裂生机土_ 可以挂接多个终端,操作系统使用分时调度的方法同时为 多巾; 户提供臌务,每乎终端在走塑童桃孛对应一令逡疆。 ( 3 终端没蠢i 算能力,因此对生辘邃 亍安垒缳护毖骏容摄。 f 4 ) 计算能打和数据存储能力演谢较礞的可扩震性。 ( 5 ) 每个终端与主机连接的线路避常较短,而且是专线,所以他们运行程序 时的可靠性很高。 圈2 集中嚣算模式 但是髓着软硬粹的发展,这种模式的缺点也越来越突獭,其对于大部分应 用,资源利用率低;软件开发周期长;易用性差,过于封闭,系统伸缩性小。 2 2 :工双屡絮掏 两层架耪也就是通常赝说匏释户维务器( c 撂禁构;这是姿今计葵辊网络上 瀛抒的一种计算横式。c s 模式瀛嚣的一个重要圜素是它的简单性。两层架构 ( t w o t i e r f r a m e w o r k ) 使得_ l j 可视化编程工具快速开发应埔程序成为可能。 武汉理工太擎硕士学位论文 翻2 2 两层c 箔傣系架捣 两层c t s 絮构将整个系统分为两个功能模块,鹪一艨包禽了软件的瘟用层 与表现层,驻留于客户端。第二耀包含数据库和服务器组件。一个基于s q l 的 数椐库管理系统一胜安装在服务器端。应用软件在腻务器端进行的操作土耍是 数据存储和检索,其他的业务逻辑豫作和界面操作都在客户端。在两层模式中 会商部分逻辑瓠存储过程鞠触发器黝形式存鹾在服势器媾,醚优化服务器性能, 但姥大多数盼戏灞逻辑是披在客户端。 如阉2 。2 娇示,它的数据爱虚用服务浆中存储,可遗避不冈豹乎曾打取,霄 较好的系统伸辅髋。它把集中管理模式转化为种服务器与客户机负荷均衡的 分布式计算模式,解决了执行效率和容最不足的问题。但是随着应用规模的不 断扩大,两层的c s 模式逐渐显睦 了它的不适应性。 戎两晨架构鲋数褥疼访闫模式一f ,客户端必须翻速赞料在臌务器t 是鲤钶 纽纵藕存德豹,丽霆京弼土直接佟遴的燕s o l 语句。鼹务嚣端煎担根重,不憩 适合大规模豹寝拜i 。 具体表现在【;【下几方面: 门1 由于客户端和服务器直接连接,服务器将消耗部分系统资源用于处理与 客户端的连接工作。那幺每当同时存亵大量客户端数据请求时,服务器有限的 系境资源将被糯于颓繁应幸毒与客户端之阆静连接,从丽无法及时酶应数据请求。 窖户端数据请求罐积靛壹接螽粜瓣簪教系统整体运行效率戆大据降羝甚至全嚣 崩溃。 口) 在此架椅中,啦在线的数据库骓务器成为幕统可纛健的极 酶廊。如 武汉理工发学硬士学位论文 粜数据库服势器因为某种原冈停止二i :怍,那么整个系统将趋于瘫糗。 ( 3 ) 客户端成糟程序分发j 二作的炳磁程序令人难以接受。系统开发过程完毕, 睫之而来的程序分菠豫了要求为每魏客户机安装客户端程序的执行文体以外, 还要求安装程淳运杼新必须的动鸯链接瘁文件f 翘酶、程序初始忧文释( j n i ) 等许多 _ 葜他文件。曼外,透必颂完成每怠窖产辘器鲍( ) d b c 或b d e 酶蕊置工作;不仅 蝴此,每次辔户端程序的修改和舟褫,又意味着上述相黼势发过程义一次重复。 ( 4 ) 在存储过程调用中,即所有处理过程都在数据库层进行。只是将最终结 果返回到客户端。这种架构的业务逻辑需采用专用语言开发,很难再移值到其 他的数据库上去。 2 。2 3 多罄黎掏 如上文j 衍说,由于两层c s 槊构并不能适用所有的情况,因此必须建立一 种新的工作分配方式。昂好的方法就是进一步分离客户屡,使客户机r 的所有 处理过程不直按镍作数据库管理系统。这样就可e 上把客户端的处理分为应用程 序秘业务逻辑处理。这秘处理导致了n 屡( n t i ef f a n e w o r k ) 綮掏的出现。多层 架掏和三藏絮鞫的台义是一样翁,辩怒细节上宥所甭弼,鹤的是为了解决三个 屡萄上的闽麓: ( i ) 界面屠:蓦于w e b 和b m e f ,并提供一定i f 勺瞬络访问蜜生性: f 2 ) 逻辑屡:也称为中间层、中舟代理,它是界面层和数据层的桥梁,响应 用户的请求,执行任务并从数据联抓取任务数据,将必簧的结果返回界面层显 示给用户;同时,还癍实现分布或嚣糍、鱼载均衡、f a i l r e c o v e r , 查垒隔离等。 它使用清晰蟾语法逻辑陈述; f 3 ) 数攒糕:包括数据豹定义、维护、完整性、安全性,响应逻辑层韵请求, 数据访问等。运一层通常由大型数据席服务器来实现,如:o r a c l e ,d b 2 ,s y b a s e , s q l s e r v e r 落。 典型的即为三层c l q 架构与蒸于w 曲的n 晨b sw e b 应用絮榆。 2 2 ,31 三层( 3 - t i e r ) c s 槊鞫”j 在传统的璃屠客户机,服务模登中阀抽入一层,敞面构残三层客户蹲务计算 模型f 3 - t i e r ) ,一个三层客户,服务计簿攥篓包括赛_ 匮瑶( i n t e r f a c e ) ,事务屠( b u s i n e s s ) 和数据稃鞭攫( d a 辍a c c e s s ) 。各屡瑞麓其体壹口下: 斌汉理互天学礤士学锶融殳 ( 1 ) 界面屡:应j 的用户接叫粼分,负责用户与应用程序的变亘。它接受用 户豹输a 、请求,将结寒鏊主适当静形式f 挪糯形、鞭袭) 返回绘用户,常必g u l 界面表现出来。客户的g u i 界面应当易于生成和修改,尽量与其他两层保持独 立,以遗盛应麓熊变伍。 ( 2 ) 事务层:是应用逻辑处理的核心,它是具体业务的实现。应用服务器和 襄户阀的数据交往应尽量蠲洁,客户将壤隶储息发送绦应熙搬务器,应用服务 器逅圈数据和站渠,应耀船务器般和数据库服务器谢密集数据交 堇,应用濂 务器向数据库服务器发送s q l 请求,数据库服务器将数据访问结果返回拾应月 e 贽籍。 f 3 ) 数据层:负责实体控制数据的管理。以传统的基于s q l 的d b m s 实现, 宠成数据的存储、数揩的凌阿、数攒的完整性纳粜警。典型的三层c s 桨橱如 图2 3 骈示。 圈2 _ 3 层d s 体系槊构 最用三熙甜s 桨梅鸯醴下优点; ( 1 1 可畈对证务进行台瑾分配, ( 2 ) 有利于提高系统的性能,使中削层的业务逻辑处理与数据层的业务数据 紧密结台在一起,丽无嚣考虑客户熬具体撼甓。 f 3 ) 添加新的中间层服务器能够满足新增客户机的需求,可以大大提高三层 系统的霹诤缩性。 武汉理王 学矮士学位论文 ( 4 ) 在窑户机的应用耦序和数据躞的数据库之间增加中间层,可阻使客户机 的应用程序独立于数据层的数据库。 ( 5 ) 可以将业务逻辑集中到起,商利于系统的实旌。 对于三层c 藤轺梅,当系绕规模扩大螽只要增加中蚓构传一中耩应用& 务 器,便可幂断弛扩太系统趣模。麴荣每个t 阀构件褥簪避豹客户艇数僳持钰其 最大允许值以内,则系统性能几乎辱害下降。扩展j 茜架构如阉2 ,4 所耵。 图2 4 扩展的三三层c s 架构 2 。2 3 。2n 朦( n - t i e r 副s ) v e r b 应用禁构 剥年健中翔,w e b 技术的辩瑰健静塌( b m m 聚 v 哟蘩转逐渐成为应用系 统模式最其翁景的模式。与c s 相融,采用b s 模式船体系架构也称w e b 架掏 具有明显的优点惭: ( 1 ) 界面风格统一、使用简单:用户端只需安装b r o w s e r 浏览器软件,不需要像 c s 槊构中那样安装数据库客户端较社、应用软件等,操作界面倘单统一,这样 币但可以节省客户枫的硬盘空闻与内存,露且幢安装过程更自g 简便: ( 站易于爨掰,扩展性好:由于擂户端无露安装专翔的款镑,对应爝系统进行 升级时,只需要新服务器端的赣件,用户扶网主囱己下载安装就可龇实现升缓, 实现系统的辩撼升缀,减轻丁系境雄护与升级的成率与z 律璧。使矧户纳总体 武汉理互九学硕士学位论文 拥有成本( t c o ) 大犬降低; ( 3 ) 信息共亭度商:h t m l 是数据格式的一个开放标准,目前大多数流行的软 件均支持h t m l 同时m v b m 技术馊褥b r o w s e r 可访闼多种格式文髂; 圈2 5 基予w e b 的n 层分布式体系架梅 在b s 体蕊架构之中,纳入纽件模型和分布式组件模裂,把中间层划分为 许多服务程序,将每个服务程序都视为独立的层,这样就形成了h 层体系架构 和w 曲分布式计算的概念。鲍型的n 艨架构就是基1 二w 曲的应用程序,如图 2 5 辨示。遗种分布或系统模式继承tb s 模式翦特色,同时又增加了分j 布式组 件带来妁好照戮: f 1 ) 受载平锎能力:分南式w e b 计算将复杂静业瀑处理努害藏枢甄之润可交 瓦调用和通信的嚣于北务功能韶群或对象,并可将黄分配到多个嗣络互连的应 用雌务器中鬻现负荷分担。w e b 服务器器要使用业务对黎的服势【1 i ,町以依据 1 0 武援瑾j 二戈譬硬盘学位谜文 目稚每一台应翘褥岸服务器的负荷以及是否可以提供服势的情况采动淼跳定连 接1 0 郡一台瘟硝程序疆务器中。这磐应雳豫务器还其各霹分布对象管理和实施 调度的功能,能够迅速的将请求交鼯当时可用的对象,井随着请对之的增抒凋用 至多鞋辩在其他应用溪势嚣数对黎。 ( 2 ) 容错能力:当菜台应用服务器发生故障或失效时,分布式系统会自动把 该趔爆服务器正在处理静业务蒲求移交给另井一台工髂正常的艘务器。 ( 3 ,算构性:嗣络分布的业务娩理对象,可访阀不弼的盾台数据库,遥合多 种异构数据库环境i l 。 2 3 软件分布式对象技术 分布式对象魁指簋位置运明( 存在于同络的任何地方) 、并自b 被远程客户应用 醴方法调用的形戏访潺的实馋”1 1 1 1 3 l 。分布式对象技术采用面向对象概念组织、 管理网络计算,支持商向对象的多膳客户枫服务器横壅,甜猩不同机器的对象 问相要传递消息,共同协作实现系统功能。在n e tf r a m e w o r k 之前基于组件的 分布式计算的主要协议爨c o r b a c o m m o n ( 劐概r e q u e s tb r o k e ra r c h i t e c t u r e , 通爿j 对糠请求代理结构) ,色来自o b j e c tm a n a g e m e n to r o u p ( 对魏管理自私,还有 m i c x o s o r 的d o o mf d i s t d b u t e dc o m p o n e n to b j e c tm o d e l ,分布式组件对象模 型) 。 2 3 。1 分布式瓣基计舞原理”l 鼹封菩静蘸肉对象分布式计算技术中,对象之闻的通信都是基予客户恚0 黥 务器模式。若更获取荣种骓务,客户首先饕调雨远程对象酌某种方法才艟宴现: 此时霹户与近端服势嚣要进行信息j 变换交换准则就是接口定义语言 i d l ( i n t e r f a e ed e f i r n f i o n l a n g u a g e ) 。i d l 定义了对象的蚤稗接口和方法,对予 客户隐藏了具体的实现细节。另外,在各种不同的特布对幕计算技术中虽嚣! l 各穗其体技术的标准或协议窦瑗靛方法不同,但基本的实现郝是基于l 姐a c ( 远程 过程调_ i | | ) 原理或类似r p c 原理衙实现的。基本的r p c 结构如图2 6 所舔。 武议理z 丈学硬上学位诧文 图2 , 6r p c 臆理幽 在戳或擞议r p c 结梅中,软 牛逻辑矮敬主要囱三层缝成,分稚之为离 层、中层辅溅屠。在蕊务器端与客户端,两者是分剐层层对应,如萄2 6 所示, 基本的r p c 或粪似r p c 的蛮现过程是:在客户端,客户若受调用远程巢个或某 些对象豹方法,首先客户瘴溺程序稠用客户s t u b :莸褥成功感,客户s t u b 按照 客户的请求将所滞参教规则化为消息信息( 数据打包) :然后调用线路协泌通过网 络底震协议将客户蛇请求转罐至4 自务器端。在服务器端,线路协议在捻测4 有 请求到达时,靛照一定规则判断,蓿是正确和台法爵请求,将请求传邀到服务 器s t u b ,服务嚣s t u b 将消息解包题,按照窖户参数的要求执行相应的撵作服 务器调用相关对象的方法。调用的方法执行结束后,按照与前述相反射执行颓 序持运行结果传邀到客户端,整个调用过稷完成。目前虽然各种丹布式对象技 术憋基诲蜜理鳓节不同,塑存黯鳃体系架掬中都燕子相目的使置。 c o r b a ( c o m m o ao b j 。甜r e q u e s tb t k c ra r e h l t e e t u t e ,餐共对象请求代理体 系架构) 是由o m g ( 对象管理组织,o b j e c t m a n a g e m e n t c , r o u p ) 提出的应用软l 牛体 系檠构和对象糍术麓蕊。其棱心蹙一套标准翁语言、接日和瓣竣,猷燕拷异鞫 分布应用程序问的互操作性及独立于平台和编程语寄舶对象重用 “j 。c o r b a 完 整的体系粱构蛔圈2 7 掰示。 武汝鸳工失掌碗士譬证论文 ll c o r d a r a _ 蛙裳 嗍獬黜h 瓣器潲嚣搿蕊 l| c o r b a 最i 霉晦求艘谍l ( 1 b 黼r 避t 啪tb i 蜮e 畸一o r b l ( t 0 r b a 鬣秭 对象t 存捧l 、纠馨必,羽孥命辐,搏绩种豫、耐霉卦他、事件描忖对馨 阿,肛舞、m :抒。许对、置j 壹美氇、对霉潦陵、砧霉镪释对簿出动搿箨种豫螽 图2 7e o r b a 的怍黑絮构 c o r b a 的梭心部辟是o r b 和o m g 接口定义语宙: ( 1 ) 对象请求代理o r b ( o b j e c tr e q u e s t b r o k e r ) :o r b 包描了确定和定位对象t 进行连接管理和收发数攥所必须的所有避讯设施,o r b 的基本任务是把请求肚 客户方传送到辘激活躺对象妥瑗中,它赞分布式对象提供7 逶明越发遴请求帮 接受响应的机制。筒而亩之。0 r b 可以帮助c o r b a 对孽互相“理解”对方i = i 以在c o r b a 黠象之糯传递信患、精求。可以“管理 c o r b a 对象之阕豹分布与 集成。 f 2 1 接口定璺语言o m gi d l ( i m e r f a c ed e f i n el a n g u a g e ) :o m gi d l 是一种严 格定义的接西定义语言;用它编写构接嗣定义髓完整昀定义接口,并究备地说 明每个操作的参数。o m gi d l 是独立于嶷体辎程语言的,也是独市卜平台的 它是一个蟪援鳓,不涉鼓安瑶问蹙。o m gi d l 主要的用途是定义匝用系统中的 重要接口,这些接u 是复用、互操作的关键部分,也是软件体系架构的重要组 成部分。 2 3 3c o m d c o m 接求 c o m ( 组件对象模型) 诞生于1 9 8 8 年,当时m i e r o s o f t 的一蝗小蛆开始构建 些面向对象的撼础絮构,这些架椅,可蛙程细件的基础上提供蘼用性。d c o m ( 分 布式缀借对象模鐾) 是c o m 技术的延续,主簧是增翱了远程调翔c o m 部件的翡 i 0 渡理一l 夫学碗圭警经避文 隧”。d c o m 悬旗子咀下的崽恕:在d c o m 协谊的支特下,不同惠用橇序可阻 透过潮络进行互操作。这样可戬在一个应用程序中( 或工连接库涮建对象, 向n 鸟主留在另外一台机器上的程序中通过接口调用此对象的方法。另外,由于 它结含繇寒c o m 中的a c t i v c x 援承,使得鼯露的各拳中a c t i v e x 部件也魏d c o m 的兼容性而变成可被远程调用的部件n q 。c o m d c o m 中客户与被请求对象通信 足基于定义的二避制结构。这样,只要捋赍此种二进剐枷范,可瞄实瑗币唰缔 程语言实蕊的客户和组件之间的互操作性。c o e 6 t d c o m 的维成如圈2 。8 醑示。 圈2 ,8c o 驯d c o m 组溅 c o m d c o m 的技术特点在于每个程侉模块无需存储各客户端,更茏需下载 程序本身在客户端运行,只要在服务器杰存放一份d o o m 部件,不同地方的用 户酃可通过网绦来访闰这一d o o m 辩侔。警程痔流程发生变纯时+ 疆绺受冀要 对变更的部分进行修改,即可同时对其他举位的程序更新,有效地提商了整个 系统的灵活性。 2 3 4 w e b 膜务 d o o m 和c o r b a 在用于相同平台的软件和紧密管理的局域网中创建企业 应用程序对 嚣优秀。毽是,谯# 】在剖建踌平台、跨i t a t e r l m t ,逶艟i n t e n a e t 的耐 武汉理王走学颈士学位诧文 伸雏性的府用程降叫山不从心m 1 。撼们币是为完成遮拨目标瓣设计的。 随麓新技术豹发展,实现分u 籀式处理有了蓊的解决方寨,郎w e b , s e r v i c e ( w e b 服务) 。w e b 服务就悬在i n t e r n e t 上进行分布式计算的基本构造块【i g 】。w e b 鞭势能够为男。个应用程序而不诬经是剥瑟器提供鼗据,并通遣外置数据鞋兔 许其他的客户机使用在同样的端口和传输屡都起作用的标准协议( 如h t t p ) 来执 芎亍操作。鬟现了w e b 服努翻w e b 腮务构架麟,用户就可以驯鞠i n t e r a c t 上f i :多 现有接术。 从技术方丽膏,w e b 服务试图解决使用诸如c o r b a 芹ud o o m 这样紧 彗捆 绑的箍术瞄遇到豹阔篝。遮磐闰翘包括捆褥邋逮酶虫墙+ 饰波鲍复杂瞧,异类 平台的集成等。 图2 9 演示了进行势农式她理麴一般情形。作为客户端应用禊序可以是镑统 的w i n d ( w sf o r m 应用稳序、基于w e b 的a s p n e t 应用程序、蜂窝式移动应用程 序等,还可以是另外的w e b 服务程序。这些客户端应用程序构成n 层模型中的 表示篷f 鹅中庄捌孵】手数据暴示。币间剥建中间最,处理商势遂辑:右列是数据 层,处理数据存储。 网2 9 基子w e b 服努的分布戏蛙理 随着简单对象访问协议s o a p ( s i m p l eo b j e c ta c c e s sp r o t o c 0 1 ) 的币断标准 纯,w e bj | | i 壶务正成为个可隧和冀齄服务器和应埔鞭守交互、可行的方法。 武汉理工大学硕士学位论文 第3 章n e t 框架与w e b 服务 3 1 n e t 框架f 1 9 1 n e t 框架是微软公司为了建造、开发和使用x m lw e b 服务和应用软件的 程序设计模型。n e t 框架旨在实现下列目标: ( 1 ) 提供个致的面向对象的编程环境,而无论对象代码是在本地存储和 执行,还是在本地执行但在i n t e r a c t 上分布,或者是在远程执行的。 ( 2 ) 提供一个将软件部署和版本控制冲突最小化的代码执行环境。 ( 3 ) 提供一个可提高代码( 包括由未知的或不完全受信任的第三方创建的代 码) 执行安全性的代码执行环境。 ( 4 ) 提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。 ( 5 ) 使开发人员的经验在面对类犁大不相同的应用程序( 如基于w i n d o w s 的 应用程序和基于w e b 的应用程序) 时保持一致。 r 6 ) 按照工业标准生成所有通信,以确保基于n e tf r a m e w o r k 的代码可与任 何其他代码集成。 3 1 1 n e t 框架体系架构瑚1 1 2 1 】 n e t 框架主要可以下部件组成:通用语言运行环境、中间语言i l , f r a m e w o r k 类库、a s p n e t 以及a d o n e t ,如图3 1 所示。高层语言位于公共中间 语言之上,公共中间语言提供了访问n e t 系统服务的接口,这些访问包括一些高 级服务,例如a s pn e t 和w i n d o w sf o r m ,还包括了对低层的n e t 类库的访问, 而,n e t 类库是一切访问的基础。 而n e t 类库是一切访问的基础。 武髓理、! ,大学巅士学链论文 嚣3 t n e t 框凝体系檠构 3 1 2 灏用语瓷运括酵c i , r 通用语言遣行时c l r ( c n n l l r t o i ll a n g u a g er u n t i m e ) 是n e tf r a m e w o r k 的基 础。它处于n e f f 框架瓣最羝屡,是将底层平台差异j 莛行抽象瓣运行期纂础设施。 它提供内打管理、线程管理和远程处理等棱心服务。箨且压强制按施严格n 勺类 型安全鞋及可拖离安垒性靼可靠性的其他形式的代码准确性。 同时,c l r 是n e t 代码执行的一种机制,它构建在中间谮亩i l 之上,源谱 言在编译后都生成i l ,并且它包盘执行己编译代码的备种机制,这些机制包括; 代码验诞和运 子鐾寸编译执行技术g u s t - i n - t i m e , j 豫) ,娥毂回收和加强安垒壤略啦 及提供配拦调试服务等。c l r 支持所有自用公用中间语亩( c o n u n o ni n t e r m e d i a t e l a n g u a g e ) 表示的编翟语言,跌两为多种谬富提供了静统一瞬运行环境,使褥 组件和x m lw e b 服务的综台使用不再受编程语言的限制f “ 口”。 蠢了通用语寓运行时,就可烈握容舄地设计出能蟮跨语言交互的缢性和惠 用程痔。也就是谎,餍不同浯言编写韵对象可戳互糯通信,并且它们的行为掰 以紧密集成。例如,可以定义一十类,然后使用不同的语占从原始类派生出另 一个娄或调用漂始类鹪穷法。还可戳将个娄的实侧传递到用酉同豹疆富编骂 的另一个类的方法。这种跨语言鬃成之所以成为可能,是园为基于通用语言运 盱时的语言躺详器鄣i 鼹捷羽霹遵用语音运行对定璺魄通用擞型系统,甄b 它 武覆理太学碗圭举位论盅 们港搪通用诳言运行时荧于定望断裳型以燕创建、健翊、保持和绑定剡擞掣的 勰则。 3 i 巾阚语誊氆 柱n e t 框架中执行的所有瀑富都编译成相同的目标代码,弥为中间语言 fi m e r m e d k a t el a n g u a g e ) 。i l 是一缝可骥霄效遗转换兜本瓿代码盈独立于c p u 的指令,包括用于加载、存储和树始化对蒙以及对对魏训用方法的指令,近包 撬罪予奠术和逻辑运算、控伟流、直接悫彝访问、髯鬻处理和其他操事譬蝻指令。 在n e t 框架审,通过实时( t ) 搿| 6 译器来将几转换为特定于c p u 的代码,可 干谊菇语言运行库为它支持的每种计算机绩构都提供了一种袋多种3 1 t 编译器, 因此嗣一组l l 可| 三l 在繇支持的往可结褐上j i t 编译和运行* 3 l 4 n e t 类席 。n e tf r a m e w o r k 的另一个主受组件是娄库,它是一个畸公熟语言运行库紧 密集成的可重糟的类型集会,该娄淳是面淘对象蘸,捶供能竣任何现代编程语 言所调用的类。藕组成如闰3 2 所前,高层语言在草础娄岸之上构建自融晌结构。 b a s e c l a 鞘睇 t y p e s y s t e m ( e m l m e e n t m o d e l t h ) 日dn e tc i a s 5 蜘稍n 基g d t h r e a d i n g g i 曲s l i “ c r y p t o g r a p s e r i a l i z a t t e 目t p r o g r a m m l f f t f , o b d e b u g g i n 旷r 憎 r m n m c o n l g u r a t i 枷n s t a l l e v 镕t 阁3 2 n e t 框架中的主要基础类岸 和其他缔程语言和操作环境供程序墨健用的函数库相比,n e t 类库明鼹不 两。铡如c 运行时库、w i m o w sa p i ,c 争+ 标准模投库强及m i c r o s o f t 麓m f c 翻 巍浸理一i :天学疆:扛孥韫睡文 a i 。i 库,所宙逾些娄库所存存的问题是:它们戏省蹙语言 b 蓑的或者跫系统相 关的娥毒两者都有丽且蕞楚不能处理最篱攀的数据粪骥稠公共操作。n e t 粪库有 以下两点特殊之处: 它怒用于也游娄痒,从而那拣犏谔盛l l 麴任何语寓都能够镬用它。 它是基于0 0 的类痒,从而通过将大量的类组织到一个名字空间层次上来工 作。 3 1 5 涌用语言规范c l 8 语富互用性是一种代码与使用葚他编稳语言编写的另一种代码进行交互的 能力。语言互用性可眺有助于最大穰度地提高代码的莛复使用率,从两提高开 发适程的教率。为鲍m i c r o s o f t 定义了“公慕语言规范c l s ( c o m m o n 抽獬 s p e c i f i c a t i o i 0 ”,落规范为编译器供麻商详细描述,针对c l r 的端详器磐须支持 的鼹少特牲集。c l s 透过宝望一壤开发 照可噬确信在多种语富中都w 用的功 能来增强和确保语言互用性。 e i ,s 的猜举程于:霞c l r 内,燮犁盼每个成员既是个字段鼗搦) ,又是 一个方雏行为) 。这意酥糟每释编程语言必须既可访问字段又可调嗣方浊。某些 字段和方法可同时以特殊和通用的方式蚀用。) i f 了简化编程道程,语裔通常提 供凝外酌抽象蠢法使鳊霉这些通焉鳊程模式更简单。侧翔语宙公开了下爹概念。 枚举、数组、属性、索引程序、委托、事件、构造两数、析构涵数、操作符重 裁、转换踅算符筹概盘。当编译嚣戎瓣代码孛遗到戳上 壬愿穰意时,它必须将 这些构造转换成字段和方法龇便c l r 和任翘算泡编程滠言可以访问该构造。 c l s 在设计上足够大,可以包括经常需要的谱誊构造:间时也足够小,太 多数语言都可曝支持它。此静,侄俺不可能抉速验证惶码擞型安全毽酌语言构 造都被排除在c l s 之外,卧便所有符合c l s 的语言都可以生成可验证舯代码。 3 。1 6 通用类溅系缝 在n 雠框絮中,c l r f c o r c a n o n t y p e s y s t e m ) 是铮瓣类型熬,类墼自成用程謦 和组件公开功能。类型摄一种机制,通过它用一种编程语言编写的代礴可以与 用蒜外种鳊私谦害编碍的t 码遴芎亍交流。, n e t 攥奖中绘出了一巾覆式的援范的 武汉理工夫学硕士学垃艳文 公用类型秉统( e 1 8 ) ,描述煎犁盘i 】俺定义和执行。 逮埔类型系统支持两种一般类剐的粪型,每一娄都细分戒予娄剐: 值类型:值类型直接包言它们的数据,值类型的实例要么在堆栈上,要么 内磁在结构中。德类型爵以蹙蠹联瀚( 可运行霹蜜瑶) 、用户定璺的或枚攀的。 引厢类型:引用类型存储对值的内存地址韵引用。位于堆上。引用类型可 【丑妊值描述炎型、指甘类型或接口娄型。引用燕型的燕型口f 以自描述粪型僮 来确定。自描述类型迸步缨分硪数组和类类型。舞类型是蠲户定义盼黉、装 箱的值类型和委托。 圈3 3,n e t 框絮中类型美燕围 c t s 舰箍还裁定了以下内容: 规定类型,可咀包台一个绒多个成员; 字袅t 一种载擐变量,是对象的状卷的一部分。字跫惩名稼和燮型标识。 方法:一种函数。对某个对象执行操作,通常会改变对象的状态。 属性;谢调用若。谴成员粼畦于字段。对于懿型实

温馨提示

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

评论

0/150

提交评论