(计算机应用技术专业论文)基于net框架的多层企业应用系统架构与设计.pdf_第1页
(计算机应用技术专业论文)基于net框架的多层企业应用系统架构与设计.pdf_第2页
(计算机应用技术专业论文)基于net框架的多层企业应用系统架构与设计.pdf_第3页
(计算机应用技术专业论文)基于net框架的多层企业应用系统架构与设计.pdf_第4页
(计算机应用技术专业论文)基于net框架的多层企业应用系统架构与设计.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

武汉理i _ i 大学硕卜学位论文 摘要 随着i n t e r n e t 及其相关技术的迅猛发展,传统的客户机服务器两层模型 已经明显不能适应企业应用的发展要求,计算机的体系结构也从两层结构发展 到多层结构。当前多层结构因其明显的优越性,已成为构建企业应用的一个标 准。然而当前的多层架构庞大复杂,在开发中存在着开发效率低下、移植性差、 修改困难、重用性差等问题。 本文在对n e t 框架下w e b 服务进行深入研究的基础上,借鉴当前j a v a 环境 下比较流行的框架技术,结合n e t 下面向对象的持久技术机制,开发了一套基 于n e t 的面向服务的多层企业应用系统框架。该框架摈弃了传统c s 模式的缺 陷,层次结构清晰,建立了对象和关系的映射,直接利用面向对象的方法操纵 关系数据库。 本文首先确定了课题的研究内容,并简单的介绍了与课题有关的技术。其 次介绍了分布式系统的发展历程,从传统的c s 模式发展到目前的多层结构, 分析了它们的不足,在对当前存在的分布式对象技术进行了深入的比较和分析 的基础上,突出了w e b 服务的优点,并对n e t 平台和w e b 服务的相关知识进行了 深入的探讨。再次,重点介绍了面向对象的持久技术,主要阐述了o r 映射机 制和n e t 平台下的n h i b e r n a t e 技术,介绍了如何利用该持久技术开发系统,并 结合武汉蓝焰自动化燃气管理信息系统的开发,详细阐述了该框架的体系结构 以及各层的相互关系,并简要的给出了系统的实现过程。最后作为全文的总结 分析了该系统体现的优点和存在的不足。 关键词:n e t 框架,w e b 服务,持久对象技术,o r 映射,x m l 武汉理工大学硕士学位论文 a b s t r a c t w i t ht h ed e v e l o p m e n to fh i e m e ta n dr e l a t e dt e 曲n o l o g y , t h e t r a d i t l o nc s m o d e la p p e a r so 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 fm o d e m e 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 lc o m p u t e i 耵c h i t e c t u r ch a sd e v e l o p e df r o mt h e 2 一t i e ra r c h i t e c t u f et ot h en - t i e ra r c h i t e c t u r e c u f r e n t l y , b e c a u s eo fi t so b v i o u s a d v a n t a g e s ,n t i c ra r c h i f e d u r eh a sa l r e a d yb e c o m eas t a d a r d 0 f s t r i l c t u r i n g e n t e r p r i s ea p p l i c a t i o n h o w e v e r ,a tp r e s e n t ,t h ee n o 咖o u sa n dc o m p l e xn t i e r a r c h i t e c t u r eh a ss o m ep r o b l e m s ,s 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 g d i f f i c u l tt ob et r a i l s p l a i l t e d ,u p d a t e da n df e u s e d o nt h eb a s i so fs t u d y i n gd e e p l yw e bs e r v i c e so n n e tf f a m e w o r k r e f e 仃i n gt o c u 玎e n tp o p u l a rf r a m e w o r kt e c l l n o l o g yi nj a v ae v i r o 咖e n t ,c o m b i l l i n gw j t ho r i e n t e d d b j e c tp e r s i s t e n tt e c h n o l o g ym e c h a i l i s mt od e v e l o po r i e n t e ds e i c e ,n t j e re n t e l p r i s e a p p l i c a t i o ns y s t e m f r a m e w o r ko n n 王互t l l e 缸瑚e w o r ks p u m st l l ed e f e c to f t r a d i t i o n a lc sm o d e l ,h a sc l e a rl a y e rs t m c t l l r e ,e s t a b l i s h e st h e0 r m a p p i n 舀 m a n i p u l a t e sd 打e c t l yf e l a t i o nd a t a b a s ew i t ho r i e n t e do b j e c t i nt h ep 印e r ,a tf i r s t ,i te s t a b l i s h e st h er e s e a r c hc o n t e n ta n dd e s c r i b e ss i m p l yt h e t e c h n o l o g y r e l a t e dt os u b j e c t s e c o n d l y ,i td e s 喇b e st h ed e v e l o p m e n tp h a s eo f d i s 埘b u t e ds y s t e m ,f 如mt r a d i t 主o n a lc sm o d e lt oc u n e n tn t i c rm o d e l ,a n da n a l y s e s t h e i rd i s a d v a m a g c b a s e do nd e 印l ya n a l y s i n ga n dc o m p 响gt o c i l r r c n ta v a n a b l e d i s t r i b u t e do b j e c tt e 曲n o l o g y ,e m p h a s i z e st h e a d v a n t a g eo fw e bs e i c e a n d i n t m d u c e s n e t 触m e w o r ka n dw 曲s e n ,i c ei np a n i c u l a r a i l dm o r c ,i ti n t r o d u c e s t h e o r i e n t e d o b j e c tp e r s i s t e n tt e c h n o l o g y ,m a i n l y d e s c f i b e so 佩 m a p p i n ga n d n h i b e m a t et e c h n o l o g yo n n e ta n de x p l a i n sh o wt od e v e l 叩s y s t e mw i i ht h e t e c h n o l o gy ,a i l dc o m b i n e sw i t ht t l ei m p l e m c n to fw u h a nl a n y a nc o i p o r a l i o ng a s m a n a g e m e n ts y s t e m ,e x p l a i n st h ef r 锄e w o f k sa r c h i t e c t u r ci nd e t a i la n dr c l a t j o n 锄0 n g1 a y e r s ,s i m p l yd e s c r i b e sm ec o u r s eo fs y s t e mj m p l e m e n t f i n a l ly a n a l y s e st h e a d v a l l t a g ea n dd i s a d v a i l t a g eo ft h es y s t e m 踮t h es u m m a r y o ft h ef u l lp a p e f k e yw o r d s :n e tf r a m e w o r k ,w e bs e n r i c c ,p c r s i s t c n to b j e c tt e c h n o l o gy ,o 爪 m a p p i n 昌x m l i i 武汉理工大学硕士学位论文 第1 章绪论 软件系统架构设计在软件开发历程中一直起着关键的作用。对于一个规模 很小的应用软件,无论是用什么样的系统结构都可以达到预期的要求。但对于 规模较大的企业级应用而言,系统架构不仅会影响到系统设计和开发的进度, 也会直接影响到系统的后续发展潜力,甚至会决定系统的成败。下面首先从软 件系统架构的开发趋势入手,对本文中用到的相关技术,n e t 框架、对象持久 技术、w e b 服务进行简要的介绍。 1 1 软件系统架构的开发趋势 单层的软件产品大都是单机软件系统,通常设计人员与开发人员对系统结 构并不重视,从整体上看,软件没有层次概念,通常一个应用程序包括了所有 的用户界面、业务逻辑以及数据处理,应用的数据有可能存放在远程机器上, 但访问数据逻辑被包含在应用程序中。由于单层应用软件比较庞大,所以相应 的带来一些不利的因素:在设计阶段,要求设计人员必须面面俱到,从复杂的 逻辑结构中整理出程序设计文档;在开发阶段,软件开发人员之间的协作也比 较困难;在测试和维护阶段,对软件局部改动可能会影响到整体;软件发布之 后,如果需求有了新的变化,在开发新版本软件时,往往要全面调整程序结构 甚至废弃原来大量的代码,所以单层软件的版本更新往往比较慢。对于网络应 用或者分布式应用,单层结构显然不能满足要求,于是把应用程序分成两部分, 客户端和服务器端部分,从而形成了两层结构,也称为客户一服务器结构。在这 种结构中,用户界面和业务逻辑在应用的客户端,数据维护在服务器端实现, 通常由另一个独立的应用程序来完成。这种结构的缺点是业务逻辑层位置模糊, 若放在客户端,则往往使得客户层笨重,并且也为系统的同常维护和版本升级 造成了很多不便;若放在服务器层,则往往难以在数据库系统中实现复杂的应 用逻辑。于是,两层结构自然演变到了多层结构。 当前,多层结构已经成为构建企业级应用的一个标准。多层结构具有明显 的优越性。首先,可以运行在不同的机器上,如果应用使业务逻辑比较复杂, 可以使用高配置的计算机来运行业务逻辑层;如果应用的数据量很大,就可以 1 武汉理工大学硕士学位论文 采用分布式的数据库来作为应用的数据存储结构。其次,只要层与层之间的接 口保持不变,那么某一层的变化不会影响到其它层,当层与层之间是松散耦合 时,可以简单地替换组件( 或整个一层) 。多层结构具有如下优点:具有良好的 透明和封装、高内聚低耦合、易于扩展维护和重用、开发人员易于分工提高开 发效率。 1 2 n e t 框架 针对i n t e r n e t i n t r a n e t 迅猛发展的现状,微软于2 0 0 0 年6 月发布了名为 m i c o r s o f t n e t 的下一代软件和服务策略,使其利用以互联网为基础的分布式计 算和通讯急增的特点,通过先进的软件架构,利用网络协议和格式,来协调众 多的智能设备与网站,从而提供更简单、更为个性化和更有效的互联网服务。 n e t 框架是一个多语言组件开发和执行环境,它提供了一个跨语言的统一 编程环境。n e t 框架的目的是便于开发人员更容易地建立w e b 应用程序和w e b 服务,使得i n t e r n e t 上的各应用程序之间,可以使用w e b 服务进行沟通。开发 人员可以将远端应用程序提供的服务和单机应用程序的服务结合在一起,组成 一个应用程序。 n e t 要实现的一个很重要的思想就是:“在任何时候、任何地方使用任何可 用的方式,都可取得任何你想要的信息”。为了实现这项标准,必须结合许多新 的技术、设备和软件平台。 1 3 对象持久层 持久化的基本概念就是某一层中的一个类,只能与同层的或者相邻层中的 类进行交互。通过按照这种方法将代码分层,就可以更容易地维护以及增强代 码,因为它们之间的耦合已经极大地降低了。用户直接与应用程序的用户接口 层进行交互。用户接口层主要实现了界面以及报表等,用户接口层的类可以发 送消息给业务层和系统层;业务层实现了业务类,业务类可以发送消息给系统 层和持久层;持久层封装了存储对象到持久机制的行为,如对象数据库、文件 和关系数据库。持久层与应用系统的关系如图1 1 所示: 2 武汉理工大学硕士学位论文 图1 一l 持久层与应用系统的关系 大部分企业计算机的软件应用不得不与他们的后端数据库频繁交互。在传 统的软件应用开发中,数据库关系模型的改变对对象规范的影响非常大,s q l 语 句到处出现在代码中,这样的好处是写代码效率很高,对于小型应用程序或者 原型,是可行的;但缺点是直接耦合了该业务类与关系数据库结构,这意味着 任何小的改变( 如对某一列重命名或者移植到另外一种数据库) 都将导致源代 码级的修改。例如,数据库一张表里如果增加了一个字段,那么在应用程序中 就需要对所有使用这张表的模块进行修改,特别是在系统开发的后期,势必会 造成人力的极大浪费,甚至影响开发的进度。要构建一个大型的面向对象业务 的软件系统,将对象保存到关系型数据库中,就需要将业务对象是如何进行存 储的单独开来,使开发人员不会为这些变化所困,即应该专注于商业逻辑的开 发而不是数据库结构的改变,使用持久对象技术则是实现这个目标的方法。 持久对象技术就是提供一个持久层,可以从一个数据存储源中生成对象, 并可以把数据保存到数据存储源中去,该技术向开发人员隐藏了对象存储的细 节,实际上是构建一个层的特殊情况,使开发人员自己免于变化之苦。所有持 久对象都使用持久层的标准接口,如果数据存储机制改变了,只有持久层需要 改变,这样就使对象范例和关系范例之间的映射变得透明起来。企业应用开发 者在应用和底下的数据库之间创建了一个“持久层”,将对象映象到某种持久机 制( 在这里是关系数据库) 中,并且对关系数据库结构的简单改动并不影响面 向对象代码。该数据库负责存储从应用到数据库的数据,也负责数据的检索、 武汉理,r 大学硕士学位论文 更新和删除,结构如图1 2 所示。在基于j 2 e e 的企业应用中,组成该持久层的 j a v a 类既可以映射对象到数据,也可以映射数据到对象,使用j d b c 实体、实 体b e a s 、j d o 等类的工具通常都可以建立。使用持久对象技术可以大大提高数 据库应用系统的开发效率和质量,而且使本来非常烦杂的后期除错、维护工作 变得简便。 1 4w e b 服务 一持久磁 曰 图1 2 持久层与关系数据库的关系 在w 曲服务诞生之前,已经有多种分布式计算技术,比如r m i 、c o r b a 和d c 0 m 等,这些技术都已经取得了一定的成功,但是无法克服自身的缺点, 也正是这些缺点阻碍了它们更广泛的应用。r m i ( r e m o t em e t h o di n v o c a t i o n ) 的实 现需要通信的两端都有j a v a 运行环境,这从根本上阻碍了它的推广。c 0 r b a 和 d c o m 的使用必须依靠于某个特定的实现提供商。c 0 r b a ( c o m m o n0 b j e c t r e q u e s tb r o k e ra r c h “e c t u r e ) 和d c o m ( d i s t r i b u t e dc o m p o n e n to b j e c tm o d e l ) 都要 求对运行环境进行严格的管理,随便拿两台计算机进行d c o m 调用几乎是不可 能的事情。而且,程序员在处理c o r b a 和d c o m 消息时,必须按照他们各自 的规则安排数据的结构,确定数据的类型。在实际应用中,c o r b a 和d c o m 更加适合于服务器到服务器的通信,而不适合客户到服务器的通信,特别是 i n t e 玎l e t 上的分散客户。随着i n t e l l l e t 的发展,很多商业机构都希望能够把他们的 企业运营集成到分布应用软件环境中,比如网上支付、网上购物、网上订票和 网上炒股等。w 曲服务就是一个基于i n t e m e t 开发标准的分布计算模式,首先, 它独立于提供商、平台和编程语言。其次,它提供足够的交互能力,能够适应 各种场合的应用。最后,对于程序员来浼,它易于实现和发布应用程序。w 曲 服务的诞生不是偶然的,是i n t e 丌l e t 以及相关技术发展到一定程度的产物。自从 有了i n t e m e t ,h n 甲协议就广为使用,其简单性、可靠性、通用性使得依靠它 目目目目 武汉理工大学硕士学位论文 的网页可以流行在各个平台上。x m l 语言的诞生使得信息的传输可以脱离平台、 程序语言的限制,为网络上各种系统的“对话”提供了一门“国际化的语言”。 s o a p 的协议为服务请求、消息的格式定义了简单的规则,并得到了各大系统软 件提供商的支持。 1 5 课题研究的主要内容 本课题在跟踪国外先进技术的基础上,初步研究n e t 平台带来的新的系统 平台基础构建技术、三层多层分布式体系结构和分布式程序设计。在构建分布 式多层企业应用系统方面,参考了j 2 e e 解决方案的成功之处,通过一个完整 的燃气管理信息系统的详细设计和开发,提出了一套基于n e t 分布式多层应用 系统的通用解决方案。本文主要完成了以下几个方面的工作: 1 、研究现有的单层、两层、多层架构,分析其优势和不足。 2 、研究当前的w e b 服务理论和相关的技术,如x m kw s d l ,u d d i ,s o a p 等。 3 、研究n e t 技术。n e t f r 锄e w o r k 是微软公司推出的一个新的计算平台,n e t 彻底地把计算模式从单机、客户机服务器和w e b 网站的方式转向分布式计 算。本课题使用n e t 开发平台,以便方便地开发企业级应用系统架构。 4 、研究了当前比较流行的面向对象的持久技术实现机制,比如n h i b e m a t e ,并 论述了关系数据库与实体对象间的映射方案。 5 、基于n e t 平台,利用w 曲服务和面向对象的持久技术构建一个管理系统。 武汉理:l 大学硕士学位论文 第2 章分布式系统多层架构 2 1 分布式系统的基本概念 当今的计算机应用系统通常是体系结构和技术的结合,它们所具有的一个 共同点是其分布式本质。分布式系统是一个动态的计算机集合,这些计算机由 网络连接到一起,运行专门设计的软件,为用户提供集成式计算机环境。分布 式系统的范围包括从支持商业处理的单用途应用程序,到服务于大范围用户并 具有广泛资源的全方位服务计算机设备。 作为分布式系统,它与集中式系统的区别并没有严格定义,分布式系统的 定义主要依据该类系统的特征来描述,即分布式系统就是由多个相互连接的处 理资源组成的计算机系统,这些资源可以合作执行一个共同的任务,最少依赖 于集中的程序、数据和硬件等资源。 ,作为一个分布式系统,它所具有的主要特征有:资源共享( r e s o u r c e s h a r i n g ) 、开放性( o p e n n e s s ) 、并发性( c o n c u 玎e n c y ) 、容错性( f a u l tt o l e r a n c e ) 和透明性( t r a n s p a r e n c y ) 等。这些特性与分布式系统的关系,表现在并非一个 称为分布式的系统会自然具备这些特性,而是这些特性是评价一个系统是否真 正的就是分布式系统的依据,也是设计分布式系统追求的目标,不论系统软件 还是应用软件的设计人员都应该认真研究并支持这些特性,否则设计的系统就 不是一个真正的分布式系统。1 3 j 2 2 分布式计算的概念 分布式计算的思想由来已久,随着计算机技术的发展,当需要两台以上的 计算机协同通信以完成一个共同的功能时,分布式计算就出现了,到目前发明 出许多计算技术来支持分布和可重用应用程序逻辑。现在人们几乎无时不刻不 在使用分布式计算。万维网就是明显的例子。万维网上的内容是相当丰富的, 想让每个人的计算机上都容纳有全部的w e b 资源是不现实的,因此我们通常只 会在必要的时候用超文本传输协议来请求所需的部分,然后得到我们需要的结 果。在这罩我们所得到的信息并不是在本地得到的,而是远端的主机根据你发 出的请求作出相应的响应,以得到我们所需要的信息,这里我们所采用的技术 6 武汉理_ | | _ :大学硕士学位论文 就是分布式计算。 所谓分布式计算,指的是彼此连接着的多台计算机上分别执行不同的功能, 而这些功能共同构成一个完整的程序总体。这种分布式概念使我们能够把数据 放到最合理的地方去得到处理。【6 j 靠着分布式计算,电脑可以与其他的电脑沟通,彼此共享着计算的信息, 而工作可以分散到网络各地不同的电脑上执行,以加速整体计算的速度和共事 资源。在这里,实际上就是将应用程序的逻辑进行分布处理,以得到最优的性 能和最经济的解决方案。应用分布应用程序逻辑的原因有多种: ( 1 ) 分布式计算使得连结不同的机构或团体成为可能。 ( 2 ) 应用程序访问的数据通常位于不同的计算机上,应用程序逻辑应当靠近 数据所在的计算机。 ( 3 ) 分布式应用程序逻辑可以在多个应用程序问重用。升级分布式应用程序 时不必升级整个应用程序。 ( 4 ) 通过分布式应用程序逻辑,使得负载分摊到不同的计算机,从而提供了 潜在的性能优化。 ( 5 ) 当新的需要产生时,应用程序逻辑可以重新分布或者重新连接。 ( 6 ) 扩展一层比扩展整个应用程序容易。例如,如果数据服务层不够快,可 以向该层增添更多的资源,而不必影响整个应用程序。 i n t e r n e t 增强了分布式计算的重要性和适用性。i n t e r n e t 的简单易用和无 处不在性使得分布式计算作为分布式应用的骨干成为必然的选择。 2 3 分布式系统多层结构 随着计算机技术、网络技术、数据库技术的不断发展,并在企业应用需求的 不断推动下,应用软件体系结构的计算模式经历了个“单机集中计算一两层客 户服务器计算一多层( 三层) 客户朋艮务器计算”的发展过程,而“基于多层客户 服务器分布式计算”是多层结构的一种特殊形式,即在i n t e r n e t i n t r a n e t 技 术推动下,与w e b 结合发展的产物。 当前,传统两层客户服务器结构和基于多层客户服务器结构的应用并存, 但是针对复杂的、不断发展变化的业务需求,后者能够在较低代价的条件下比前 者能够提供更好、更及时、更安全的应用,因此在应用方面前者已经逐渐向后者 7 武汉理工大学硕士学位论文 转变。 2 3 1 传统两层客户服务器结构的缺陷 在上个世纪8 0 年代末,两层结构数据库应用系统代替了集中计算单机应用 系统,并且在近1 0 年内得到了广泛运用,且相当成功。一般来说,系统被分为 3 个层次:用户界面层、事务规则处理层、数据管理层。部署方面,应用系统分 为:客户端和服务器端。客户端负责实现用户界面;服务器端运行数据库管理 系统( d b m s ) ,实现数据的存储和处理,并且数据的安全性、完整性、并发控制 等得到了保证,而事务规则处理可能处于两者中的某一个,这种结构主要体现 了“请求一响应”模式,即客户端提出数据处理请求,服务器接受并将处理结果 输出至客户,做出响应。 但是,随着i n t e r n e t 和i n t r a n e t 应用的不断普及,应用系统的不断扩大 以及应用程序用户数量的几何倍数增长,两层结构因存在着以下缺陷已经不能 满足某些应用。 1 ) 事务规则处理层的位置不明确。与数据库服务器混在一起,可能形成“胖 服务器”;和客户端的用户界面设计放在一起,可能形成“胖客户端”,因此都 不能充分利用计算机的计算能力。 2 ) 客户端的数目不能太多,一般不能超过1 0 0 个。当同时存在大量客户端 数据请求时,服务器有限资源将被用于频繁应付与客户端之间的连接,从而无 法及时响应数据请求,客户端数据请求堆积的直接后果将导致系统整体运行效 率的大幅降低甚至全面崩溃。 3 ) 安全性不高。唯一在线的数据库服务器成为系统可靠性的安全隐患,如 果数据库服务器因为某种原因停止工作,那么整个系统将趋于瘫痪。 4 ) 可扩展性比较差。它只适应于单数据源,并且基于局域网。 2 3 2 基于w e b 多层客户服务器结构体系 2 3 2 1 多层( 三层) 结构的分层思想及其联系 多层结构的思想逻辑功能更清晰、层间低耦合、层内高内聚、系统的扩展 性好、安全性高、可重用性高等。一般说来,该结构对两层结构进行扩展,分 为客户层,中间层和数据存储层。客户层实现系统与客户的交互功能,提供用 武汉理工大学硕士学位论文 户请求和呈现处理结果的界面;数据存储层主要是管理、存储系统需要的各种 数据;中间层是客户层和数据存储层的桥梁,一般从功能上可以再分为以下三 层。 1 ) 表示层。即所谓w e b 层,处理用户界面,处理相同的业务,在为不同的 用户界面服务时,会有一些不同。例如,同样是银行的账务查询业务,通过a t m 机和电话查询所输入的密码是不一样的。当表现层的客户需要计算或进行数据 存取的时候,便产生一个调用传给中间业务逻辑层,整个业务处理的结果最后 回传给表示层。 2 ) 数据业务逻辑层。用于实现业务逻辑以及事务规则处理,开发的业务应 用构件存放于应用服务器上,接收界面表示层的业务调用,同时通过数据访问 层对各种数据源进行访问。 3 ) 数据访问层。为业务逻辑层提供数据服务,屏蔽数据源的差异。因此, 无论是什么样的数据库,还是什么格式的文件,对于业务逻辑层来说,访问界 面是完全一样的。 因此,在多层分布式结构中,中间业务层是非常关键的,包括各种服务器或 应用服务器,如微软的i i s 、o r a c l e 公司的i a s 、b e a 公司的w e b l o g i c 、i b m 公司的w e b s p h e r e 等应用服务器。 图2 1 为基于w e b 的多层客户服务器的典型结构及其联系。w e b 服务器和客 户端一般采用h t t p 协议传送、接收h t m l x m l 文档:w e b 服务器与其他应用服务 可以利用分布计算协议通信。应用服务器和数据源之间在局域网内根据数据源 的不同利用特定的数据访问协议通信,三者从而形成一个整体。 j 譬,端 十藏鼠务器 岳嫡髓姑瓣 图2 1 基于w e b 的多层客户服务器的典型结构 9 武汉理工大学硕士学位论文 2 3 2 2 多层结构物理部署策略 一般多层结构物理部署策略有两种:非分布式部署( 单计算机部署) 和分 布式部署( 多计算机部署) 。但是,无论哪种策略,数据源层一般放在一台单独 的服务器上( 如数据库服务器) 。 非分布式部署策略一般是将中间业务层的几个逻辑层:业务外观层、业务 处理层、数据访问层集中部署在台应用服务器上,它可以是基于中间件的服 务器,也可以是服务器或者二者的有效组合。这种策略适合规模比较小的分布 式系统;但对于规模大一点的系统,可以在群集间复制该w 曲主机,以达到负 载平衡以及快速响应能力。 分布式策略则相反,在单独的服务器上部署特定的组件。例如业务外观层、 业务处理层以及数据访问层很可能部署在独立于主机的几个服务器上。这种部 署策略对于同一时间访问的客户端比较多、系统规模比较大是很有利的,前提 是多台服务器之间通信、管理、资源分配等必须有一定的技术保障。 2 3 2 3 多层结构的优势 多层结构的优势是很明显的,主要体现在: ( 1 ) 安全性更高。中间层隔离了客户机对数据的直接访问。 ( 2 ) 可维护性更强。仅仅需要对中间业务逻辑进行维护。 ( 3 ) 响应速度更快。通过负载均衡以及中间层缓存数据能力,可以提高客户 端的响应速度。 ( 4 ) 系统扩展灵活。规模需要增大只需在中间层部署更多的服务器,客户端 完全透明。 ( 5 ) 人员分工明确。有利于各种应用开发人员的协同工作,发挥各自的优 势。 ( 6 ) 对异种数据库或数据源的支持性高。 2 4 分布式对象技术 目前比较著名的分布式对象技术和标准有:微软的分布式对象构建模型 ( d c o m ) 、o m g 的公共对象请求代理机构( c o r b a ) 、s u n 公司的j a v a r m i 技术以 及w e bs e r v i c e s 技术。 1 0 武汉理工大学硕士学位论文 2 4 1d c o m ( dis t rib u t e dc o m p o n e n t0 b j e c tm o d ei ) d c o m 是建立在a c t i v e x 、o 王剧c o m 基础上,底层实现基于分布式计算环 境( d c e ) 中的核心远程对象调用技术,是微软的构件对象模型c o m 在网络方 面的扩增。它克服了c o m 缺乏分布性的缺点,允许客户远程访问,具有相当的 分布能力,对于基于网络应用的分布式计算产生了重大影响。从分布式应用系 统的角度来看,d c o m 具有以下一些特征:j 伸缩性。使用d c 0 m 建立起来的应用系统能很好地适应系统规模的变化, 其位置的透明性保证了这种变化可以不改变构件的源程序。 可配置性。使用d c o m 建立起来的应用系统可以很方便地对系统进行重 新配置,包括服务器的变化、客户程序的自动安装。 安全性。d c o m 使用了w i n d o w s n t 提供的可扩展安全性框架,在非n t 平台上实现的d c o m 也包括了一个与n t 兼容的安全容器。 协议无关性。使用d c o m 建立起来的分布式应用系统对网络有很强的适 应能力,用户可以在不改变现有网络结构的情况下使用分布式应用软件,或直 接利用h l t e m e t 网络。 d c o m 是c o m 在分布计算方面的延伸,它通过使用远程对象调用( r p c ) 来提供跨网络的通信,从而为分布在网络不同节点的两个c o m 构件提供了互操 作的基础结构。因此,d c o m 可以作为分布式应用系统的基本架构,客户程序 与d c o m 构件对象之间形成的客户朋艮务器关系,进一步可构造多层软件模型。 典型的分布式应用是在各个服务器上进行一些d c o m 构件对象,客户程序调用 这些构件对象,由它们完成实际的功能。d c o m 模型图如图2 2 所示。 图2 2 d c o m 模型图 武汉理【:火学硕士学位论文 2 4 2c o r b a ( c o m m o nr 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 是对象管理组织o m g ( o b j e c tm a n a g e m e n tg r o u p ) 于1 9 9 1 年公布的 面向对象处理的分布式计算环境标准,它定义了分布式计算的许多关键的领域, 使用了面向对象的分布式模型,使不同的应用可以共享软件构件,从而在不同 的软硬件平台和应用程序间实现互操作。 c o r b a 的体系结构如图2 3 所示。c o r b a 的体系结构由o r b 、i d l 、接口库、 对象激活和对象转换器构成。客户通过动态激活接口或i d l 桩提出要求,动态 激活接口与目标对象的接口没有关系,而i d l 桩则依赖于被要求的目标对象接 口。对象的实现可通过i d l 产生的骨架或动态骨架,也可以调用对象转换器。 图2 3c o r b a 体系结构 c o r 队建立在o 姒对象模型基础之上,主要由对象请求代理o r b 、接口定义 语言i d l 和标准通信协议1 1 0 p 三个关键部分组成。 0 r b ( 0 b j e c tr e q u e s tb r o k e r ) 0 r b 是c o r b a 所依附的基础框架和核心,它提供了分布式对象的基本底层操 作和管理,规定了分布对象的定义( 接口) 和语言映射,建立了客户机与服务 器对象之间的通讯,实质是在对象之间建立客户端服务器关系的中间件。通过 使用o r b ,一个客户端可以透明地调用一个服务器上的对象。0 r b 截获调用请求 并负责寻找能够实现这个请求的对象,找到对象后,将相应的参数传递给对象, 并调用对象的方法,最后返回结果。 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 ) 所有c o r b a 都是通过i d l 来描述的。i d l 是一种接口描述语言,它用于描 武汉理工大学硕士学位论文 述对象的接口、接口所支持的操作以及操作所需要的参数等,并可将它所定义 的对象类型映射到特定的编程语言或对象系统中,而且能被其它对象或应用激 活。 由于i d l 存根表示了客户端实现语言与0 r b 核心实现语言的对应,因此客 户端可以用0 r b 核心支持的任何种语言开发。目前c o r b a 提供了i d l 到c 、c + + 、 j a v a 、c o b o l 等语言的映射技术一i d l 编译器,通过c o r b a 实现了分别与客户端 和服务器的程序联编。 ) ii o p ( i n t e r n e ti n t e r o r bp r o t o c a l ) 协议 i i o p 是建立在t c p i p 之上的协议,它分别将目标对象标识、调用操作传 递到对象的参数加以编码传送。由于t c p i p 是独立于供应商的最流行的网络传 输协议,因此,通过1 1 0 p ,o r b 具有了开放式的互操作性,从而使不同供应商 之间的c 0 r b a ,以及c 0 r b a 和其它分布式系统间可以跨i n t e r n e t 网域进行通 信。 2 4 3j a v a r m i 技术 j a v a r m i 是j a v a 的一组用于开发分布式应用程序的a p i 。r m i 使用j a v a 语 言接口定义了远程对象( 在不同机器操作系统的程序对象) ,它结合了j a v a s e r i a l i z a t i o n ( j a v a 序列化)和j r m p ( j a v ar e m o t em e t h o dp r o t o c a l ,j a v a 远程 方法协议) 。简单说,这样使原先的程序在同一操作系统的方法调用,变成了 不同操作系统之间的方法调用。由于j 2 e e 是分布式程序平台,它以r m i 机制 实现程序构件在不同操作系统之间的通信。比如,一个e j b 可以通过r m i 调用 另一台机器的e j b 远程方法。 在基于r m i 的应用程序体系结构中, 面向注册表的机制提供了一种简单 的非永久性命名查找服务, 该服务用于存储远程对象引用、启发来自客户应用 程序的查找。基于j r m p 的r m i 结构充当r m i 客户程序和远程对象之间的介质。 它截获客户请求,传递调用参数,将调用请求委托给r m i 骨干,最后将方法 执行的返回值传递给客户站位程序。它还支持从服务器到客户应用程序的回调, 以便实现异步通知功能。 随着j 2 e e 的广泛应用,作为其体系核心的r m i 也起着越来越重要的作用。 但是只能应用于j a v a 平台是它的最大的局限。图24 展现了r m i 模型的结构。 1 3 武汉理工大学硕士学位论文 图2 4j a v a 刚i 结构模型 2 4 4 新代的分布式计算模式一一w e b 服务 分布式对象的三大主流技术d c o m 、c 0 r b a 和j a v a 都有一个缺陷一一属于r p c 模型,这种模型要求客户端和服务器是同质的而且必须紧密耦合在一起,否则 就不能实现互操作,这使得它们十分脆弱且扩展性差,在此情况下,一种能够 方便地实现i n t e r n e t 上跨平台、联接松散、应用程序不受端口变化的分布式计 算模式应运而生,这就是面向服务的w e bs e r v i c e s ( w e b 服务) 。 w e b 服务采用了面向服务的体系结构,由服务提供者、服务请求者和服务 代理三个角色以及发布、查找和绑定三个操作构成,各角色和操作之间通过交 互实现服务的调用,其结构图2 5 所示。在该模型结构中,三个操作使用不同 的技术规范来为w e bs e r v i c e s 提供交互的基本框架,发布服务使用u d d i ( u n i v e r s a ld e s c r i p t i o n ,d i s c o v e r ya n di n t e g r a t i o n ,统一描述、发现和集 成) 来注册w e b 服务的特性,查找服务使用u d d i 和w s d l ( w e bs e r v i c e d e s c r i p t i o nl a n g u a g e ,w e b 服务描述语言) 的组合来让其它程序找到所需要的 w e b 服务,绑定服务使用w s d l 和s o a p ( s i m p l e0 b j e c ta c c e s sp r o t o c 0 1 ,简 单对象访问协议) 来建立应用程序和w e b 服务之间的通信,从而实现对w e b 服 务的访问。这些技术规范都是建立在可扩展标记语言x m l ( e x t e n s i b l em a r k u d l a n g u a g e ) 基础之上的,) 【m l 是w e b 服务得以实现基于i n t e r n e t 和跨平台最关 键的技术。 1 4 武汉理工大学硕士学位论文 图2 5w e b 服务的体系结构 2 4 5 分布式对象技术的比较 w 曲服务同传统的分布式对象技术相比,虽然d c o m 和c o r b a 在使用运 行于相同平台的软件和紧密管理的局域网上创建企业应用程序时非常优秀,但 是它们在创建跨平台、跨h t e m e t 的可伸缩性的应用程序时力不从心,而这正是 w 曲服务的用武之地。表1 1 给出了三者之间的一些技术比较。 表1 1c o r b a 、d c o m 和w 曲服务的技术比较 特征 c o r b a d c o m w e b 服务 远程调用机【n t e m e ti n t e r o r b分布式计算环境远程超文本传输协议( ) 佛rt e x t 制协议( i i o p )过程调用( 阢e r p c )t r a n s f e rp r o t o c a l ,舯p ) 编码通用数据表示网络数据表示 扩展标记语言 接口描述接口定义语言 接口定义语言w e b 服务描述语言 发现 命名服务与交易服务注册库通用发现、描述与集成机制 防火墙的友好否 否 是 协议的复杂性高高低 跨平台性部分 否是 武汉理:r 大学硕士学位论文 第3 章n e t 平台与w e b 服务 3 1 c r o s o f tw in d o w sd n a 体系结构概述 w i n d o w sd n a 是w i n d o w sd i s t r i b u t e di 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 s 分布式网络应用程序体系结构。w i n d o w sd n a 实际 上是微软的基于组件的分布式应用程序战略框架结构,具有可伸缩性和高可靠 性。 w i n d o w sd n a 指定了如何使用w i n d o w s 平台开发强壮的、可伸缩的、分布式 的应用程序;扩展现有的数据和外部程序以支持i n t e r n e t ;同时支持更为广泛 的客户终端以扩大应用的覆盖面。由于w i n d o w sd n a 依赖于一个基于w i n d o w s 平台的一整套综合的集成化服务,开发者将摆脱对于分布式应用基础结构的建 立和集成所带来的负担,并可集中精力于商业解决方案。这种结构的基本出发 点是为了改善传统的c l i e n t s e r v e r 两层结构表现出的明显的局限性,以适应 更快、更复杂的事务处理任务和快速开发的需要。w i n d o w sd n a 与微软的w i n d o w s 操作系统紧密结合,它是在原来微软的分布式对象服务( 如c o m 、事务服务器m t s 等) 的基础上构造的。w i n d o w sd n a 的结构和s u n 的j 2 e e 标准相似。在 w i n d o w sd m 结构中,分布式应用系统由表示层、业务逻辑层和数据服务层三 个组成部分,如图3 一l 所示。 图3 1w i n d o w sd n a 体系结构 1 ) 表示层:用户的界面部分。主要是通过在客户端浏览器中运行h t m l 、 d h t m l 、s c r i p t i n g 、 j a v a a p p l e t 、

温馨提示

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

评论

0/150

提交评论