(计算机应用技术专业论文)基于net的分布式系统应用研究.pdf_第1页
(计算机应用技术专业论文)基于net的分布式系统应用研究.pdf_第2页
(计算机应用技术专业论文)基于net的分布式系统应用研究.pdf_第3页
(计算机应用技术专业论文)基于net的分布式系统应用研究.pdf_第4页
(计算机应用技术专业论文)基于net的分布式系统应用研究.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

(计算机应用技术专业论文)基于net的分布式系统应用研究.pdf.pdf 免费下载

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

文档简介

摘要 基于n e t 的分布式系统应用研究 摘要 随着计算机网络技术的迅速发展和广泛应用,分布式计算技术已经成为构建企业 服务应用框架和软件构件的核心技术,而且在开发大型分布式应用系统中也表现出了 强大的生命力,因此如何利用分布式计算技术在分布式环境下建立高效、安全和健壮 的分布式系统是一一个值得研究的问题。 论文首先系统地、全面地、详细地概述了分布式系统的体系结构、分布式计算标 准、构建分布式系统的关键技术和原理。同时指出了构建基于稳定、高伸缩性、可配 置性、高效率性、易维护性分布式系统存在的若干问题。在此基础上,针对构建高可 靠性分布式系统的要求,结合n e t 框架下的各种编程模型和m v c 模式技术,提出了 一种新的分布式系统框架体系结构。同时简要介绍了实现基于w e b 的分布式系统所需 技术。论文进而在详细分析了构建分布式框架的分布式计算组件各层功能和实现原理 的基础上对分布式计算组件进行了详细设计,结合面向对象编程思想和m v c 设计模 式,采用c # 语言和a s p n e t 编程模型实现了基于w e b 的分布式计算组件。 最后,利用建立的分布式计算组件,在软件工程的指导下利用u m l 统一建模方法 设计了分布式校园管理信息系统后台数据库,编程实现了分布式校园管理信息的各个 模块,验证了分布式计算组件的正确性,从而实现了分布式计算框架的一个典型应用。 关键字:分布式系统,n e t ,组件,m v c 设计模式 a b s t r a c t a p p lic a t10 na n dr e s e a r c ho fd ls t rib u t e ds y s t e mb a s e d o nn e t a b s t r a c t w i t ht h ec o m p u t e rn e t w o r kt e c h n o l o g yr a p i dd e v e l o p m e n ta n dw i d e s p r e a da p p l i c a t i o n , t h ed i s t r i b u t e dc o m p u t i n gt e c h n o l o g ya l r e a d yb e c a m et h ec o r et e c h n o l o g yo fc o n s t r u c t i n g t h ee n t e r p r i s es e r v i c ea p p l i c a t i o nf r a m ea n dt h es o f t w a r ec o m p o n e n t ,a n di ta l s od i s p l a y s t h ef o r m i d a b l e v i t a l i t y i nt h e d e v e l o p i n gl a r g e s c a l e 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 m c o n s e q u e n t l y , h o wt om a k eu s eo ft h ed i s t r i b u t e dc o m p u t i n gt e c h n o l o g yt ob u i l dh i g h l y e f f e c t i v e ,s a f ea n dv i g o r o u sd i s t r i b u t e ds y s t e mu n d e rt h ed i s t r i b u t e de n v i r o n m e n ti sw o r t h s t u d y i n g t h ep a p e rf i r s ts y s t e m a t i c a l l y , c o m p r e h e n s i v e l y , d e t a i l e d l yo u t l i n e dt h ed i s t r i b u t e d s y s t e m ss t r u c t u r e ,t h ed i s t r i b u t e dc o m p u t i n gs t a n d a r d ,t h ee s s e n t i a lt e c h n o l o g ya n dt h e p r i n c i p l eo fc o n s t r u c t i n gt h ed i s t r i b u t e ds y s t e m s i m u l t a n e o u s l yp o i n t e do u ts o m ee x i s t i n g q u e s t i o n so fc o n s t r u c t i n gt h es t a b l y , h i g hf l e x i b l ea n dc o n f i g u r e d ,h i g h l ye f f e c t i v e ,e a s i l y m a i n t a i n e dd i s t r i b u t e ds y s t e m i nt h i sf o u n d a t i o n ,a i m e da tt h er e q u e s to fc o n s t r u c t i n gt h e r e l i a b l ed i s t r i b u t e ds y s t e m ,a n di n t e g r a t i n gs o m ek i n d so fp r o g r a m m i n gm o d e lo f n e t f r a m ea n dt h em v c p a t t e r n ,p r o p o s e dak i n do fn e wd i s t r i b u t e ds y s t e m sf l a m es t r u c t u r e s i m u l t a n e o u s l yb r i e f l yi n t r o d u c e dt h et e c h n o l o g yo fr e a l i z i n gt h ed i s t r i b u t e ds y s t e mb a s e d o nw e b t h e n ,t h ep a p e rd e t a i l e d l y a n a l y s e dt h ed i s t r i b u t e dc o m p u t i n gc o m p o n e n t s f u n c t i o na n dt h er e a l i z e dp r i n c i p l eo fc o n s t r u c t i n gt h ed i s t r i b u t e df r a m e ,a n dc a r r i e do nt h e d e t a i l e dd e s i g nt ot h ed i s t r i b u t e dc o m p u t i n gc o m p o n e n t ,s i m u l t a n e i t yu n i f i e dt h e o b j e c t o r i e n t e dp r o g r a m m i n gt h i n k i n ga n dt h em v cd e s i g np a t t e r n u s e dt h e 钟l a n g u a g e a n dt h ea s p n e tp r o g r a m m i n gm o d e lr e a l i z e dd i s t r i b u t e dc o m p u t i n gc o m p o n e n tb a s e do n w 曲 f i n a l l y , u s e de s t a b l i s h e dd i s t r i b u t e dc o m p u t i n gc o m p o n e n tt od e s i g nt h ed i s t r i b u t e d c a m p u sm a n a g e m e n ti n f o r m a t i o ns y s t e m sd a t a b a s et h r o u g hu m lu n d e rt h es o f t w a r e e n g i n e e r i n gi n s t r u c t i o n ,r e a l i z e de a c hm o d u l eo ft h ed i s t r i b u t e dc a m p u sm a n a g e m e n t i n f o r m a t i o nt h r o u g hp r o g r a m m i n g , i tc o n f i r m e dt h ed i s t r i b u t e dc o m p u t i n gc o m p o n e n t s a c c u r a c y , t h u si th a sr e a l i z e dad i s t r i b u t e dc o m p u t i n gf r a m em o d e lt y p i c a la p p l i c a t i o n k e yw o r d s :d i s t r i b u t e ds y s t e m ,n e t ,c o m p o n e n t ,m v cd e s i g np a t t e r n 1 1 独创性声明 本人郑重声明:所呈交的学位论文是我个人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表和撰写的研究成果,也不包含为获得华 东交通大学或其他教育机构的学位或证书所使用过的材料。与我一同工作 的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢 意。 本人签名鸳a 玉斗 关于论文使用授权的说明 日期加r ;o 本人完全了解华东交通大学有关保留、使用学位论文的规定,即:学 校有权保留送交论文的复印件,允许论文被查阅和借阅。学校可以公布论 文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。 保密的论文在解密后遵守此规定,本论文保密期一年。 第一章绪论 第一章绪论 1 1 本文的研究背景和现状 1 1 1 本文的研究背景 随着计算机技术的飞速发展,我们正在进入一个崭新的计算时代一互联网时代。 当i n t e m e t 技术特别是w e b 技术在2 0 世纪9 0 年代中期成为技术主流时,业务计算的 模型发生了巨大变化,这一变化的焦点便是对传统的客户机朋艮务器- ( c l i e n t s e r v e r ) 计 算模式产生了巨大的冲击。首先,客户机n 务器结构在维护上需要极大的成本,尤 其是当客户端位于不同的区域时,其次客户端i n 务器模式不具有良好的可伸缩性, 因为客户机服务器结构能够支持的客户端用户人数有一定的限度,当客户端用户的 数目超过一定数量的时候,客户机朋艮务器结构的执行效率便开始下降,这种客户端 用户人数的限制无疑己经不能够适应当今电子商务迅猛发展的大趋势。分布式w e b 计算模型是由各种信息和应用程序集合所组成的层松散地连接而成,这些信息和应用 程序驻留在种类繁多的硬件平台上。分布式计算技术之所以能够取得飞速地发展,其 根本的原动力就在于它能给用户提供一个可伸缩、可扩展和高度可用的公共信息传送 平台【1 】o 针对基于i n t e r n e t 和i n t r a n e t 的分布计算模型迅猛发展的现状,微软于2 0 0 0 年发 布了名为n e t 的下一代软件和服务战略,使其利用以互联网为基础的分布式计算和通 讯激增的特点,通过先进的软件构架,利用现有网络协议和格式,来协调众多智能设 备与网站,从而提供更简单、更为个性化和更有效的互联网服务。n e t 要实现的一 个很重要的思想就是:“在任何时候、任何地方使用任何可用的方式,都可以取得任 何你想要的信息”。为了实现这项标准,必须结合许多新的技术、设备和软件平台【2 1 。 1 1 2 本文的研究现状 程序设计理念的革新推进了软件工程的演进,应用程序开发技术正发生着一次质 的飞跃,从根本上大幅度提高了开发人员的生产效率,它为开发人员进行一种全新概 念的应用程序开发提供了一种新的思路。 随着w e b 浏览器迅速变得无所不在和w e b 服务其遍布大小公司,对于企业的运 作方式产生了巨大的影响,因而许多企业在这个竞争激烈的时代,都必须加快企业信 息化的脚步,从而可以更好地利用i n t e r n e t 和i n t r a n e t 丰富的信息资源以及潜在的用 户。很显然,尽管客户端j j l 务器软件的开发者尽了最大努力使其产品具有w e b 功能, 但是在设计开发系统时仍需要采用与w e b 计算模型截然不同的方式来思考应用程序 第一章绪论 模型。显然,要求有新的技术和工具来迎接技术变化和开发人员所面临的挑战。针对 这种情况,研究基于w e b 的分布式计算模式的应用系统,来取代传统的客户机服务 器模式,以便能够利用i n t e r a c t 和i n t r a n e t 上丰富的信息资源,构建一个易于开发、 易于维护、并具有良好可伸缩性的应用程序,就显得尤其必要。 基于w e b 的分布式结构的出现可以解决客户机朋艮务器结构在维护上所需的高成 本,尤其是当客户端在不同的区域时,因为它能够让不同的用户获得几乎相同的用户 体验,而不会因为应用逻辑的不同而有比较大的区别。此外,也可以改善客户机朋艮 务器结构延展性的问题,对于当前i n t e m e t i n t r a n e t 迅猛发展情况下以电子商务为代表 的应用系统而言,需要使用更具延展性的分布式结构来解决这个问题【3 1 。 另外从重复使用的角度来看,基于w e b 的分布式结构也是优于客户机月艮务器结 构的,分布式结构能够迫使软件开发人员以企业对象的形态编写企业逻辑,进而允许 其他系统或是i n t e r n e t i n t r a n e t 系统可以重复使用这些企业对象,这对于软件开发人员 以及客户端的维护都具有正面的效益,也能够降低系统的维护成本。 此外,所有的开发工具厂商,数据库厂商,中介软件厂商,以及i n t e m e t i n t r a n e t 工具厂商都加入了对于分布式结构的支持,所以也造成了分布式应用系统开发的日益 完善的体系结构。事实上从所有的软件开发的迹象来看,分布式结构已经成为不可避 免的趋势【4 】。 1 2 本文的主要工作及组织结构 1 2 1 本文的主要工作 分布式计算技术以其分布性、高伸缩性、可配置性、高效率性和易维护性等优点 得到了广大软件开发人员的认可,它被认为是适应新型网络环境、解决软件危机的途 径。 n e t 是一个全新的分布式计算平台,利用现有的网络基础设施、协议规范和数据 库技术,为用户提供一体化的智能信息平台,创建了一种架构在o s 和w e b 之上的基 于i n t e m e t 的新一代信息平台和软件基础设施,旨在消除“信息孤岛 ,解决软件危 机,实现网上计算资源、数据资源、信息资源、应用资源的智能共享。 本课题首先通过对分布式应用系统原理、方法、体系结构的研究,从而了解和掌 握如何构建稳定、高伸缩性、可配置性、高效率性、易维护性的分布式应用系统的一 些理论基础,然后以n e t 平台为基础,研究开发一个基于w e b 的分布式系统应用框 架。最后在系统框架基础上,实现一个具体的成功应用案例。 1 2 2 本文的组织结构 第一章:绪论:本章介绍了本文的研究背景、研究现状、主要研究内容和论文的 2 第一章绪论 组织结构。 第二章:分布式系统理论基础:本章主要介绍分布式系统的体系结构、分布式计 算标准和实现分布式系统的关键技术。 第三章:n e t 平台及其相关技术:本章主要介绍n e t 平台的框架结构、数据访问 技术a d o n e t 对象模型、实现分布式计算组件的a s p n e t 编程模型和m v c 模式。 第四章:基于n e t 的分布式计算组件应用研究:本章主要介绍在n e t 平台上如何 实现一个分布式计算组件,该组件包括表示层、业务层和安全控制层。 第五章:应用实例一分布式校园综合信息管理系统:本章主要介绍了如何在第四 章实现的分布式计算组件上建立一个分布式系统,并以校园综合管理信息系统的具体 实现来说明如何利用分布式计算组件来建立基于n e t 的分布式系统。 第六章:结束语:本章主要内容是总结全文,得出结论,并做出展望。 3 第二章分布式系统理论基础 第二章分布式系统理论基础 2 1分布式系统体系结构 2 1 1 传统的两层体系结构 传统的分布式系统采用c l i e n t s e r v e r 体系结构。在这种体系结构中,应用分为两 大部分:一部分是由多个用户共享所需的功能和信息,尽1 s e r v e r 部分;另一部分是每 个用户所需要的功能和信息,即c l i e n t 部分。c l i e n t 部分执行前台功能,如管理用户接 口、采集数据和接受用户请求等;s e r v e 部分执行公共服务或存放公共信息。当用户 需要服务或想要得到公共信息时,由c l i e n t 端发出请求,通过专用接口或o d b c 等将 请求发送到s e r y e r 端,s e r v e r 端接到请求后,激活相应的服务处理请求,并将处理结 果送回c l i e n t 端。 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 ) 客户端维护开销大 在c l i e n t s e r v e r 体系结构中,每一个客户机都要安装所需的应用程序,都包含数 据( 业务) 处理逻辑,使客户端应用程序变得相当大,这种类型的客户机叫“胖客户 机。“胖客户”机维护费用较大,一旦要对数据处理逻辑进行修改,必须把新的应用 程序分发到每一个客户端;一旦客户机上的应用程序被破坏了或者准备在同一台客户 机上增加其它业务处理单元,就必须重新安装相应的客户端应用程序。 2 ) 工作节点的扩展性差 在c l i e n t s e r v e r 系统中,随着业务量的不断增加,处理的业务点不断增多,这就 对系统工作节点的可扩展性提出了越来越高的要求。由于c l i e n t s e r v e r 体系结构的一 部分业务是在客户机上完成的,所以每增加一个工作节点就不得不在新增的客户机上 安装相应的客户端应用程序。, 3 ) 安全性差 c l i e n t s e r v e r 体系结构的运行模式允许客户端直接操作数据库服务器中的内容, 这使得系统的安全性受到了很大威胁,也加大了系统安全管理的难度。 钔可移植性差 c l i e n t s e r v c :体系结构可移植性的缺陷体现在两个方面: 第一,系统具有平台相关性。平台相关性是由开发语言造成的,传统的 c l i e n t s e r v e r 体系结构的m i s 系统大多是由,p b ,d e l p h i 等开发工具开发的,这导致 4 第二章分布式系统理论基础 了系统的平台相关性,如果要在另一种操作系统平台上运行同一个m i s 系统,软件开 发商就必须开发出基于新的操作系统的应用程序。 第二,对数据库的类型具有依赖性。c l i e n t s e r v e r 体系结构中对数据库的操作主 要是通过s q l 、存储过程、视图、触发器等实现的,不同的数据库对这些功能的支持 和实现存在着或多或少的差别。这样当系统的数据库服务器类型发生改变时,就必须 改动大量的源码,甚至会导致移植工作根本无法实现。存在一定程度上的资源浪费。 c l i e n t s e r v e r 体系结构中,每一个客户端在向数据库服务器提出请求时都会与服务器 建连接无法共享。这样,当几十个、几百个、甚至成千上万客户机同时对服务器进行 访问时,就会对服务器造成极其沉重的负担,严重时会导致服务器崩测5 1 。 2 1 2 三层及多层体系结构 传统的两层结构缺点太多,而多层结构则代表了企业级应用的未来,典型的有 w e b 下的应用、多层c s 应用等。多层结构和三层结构的含义是一样的,只是细节上 有所不同,。多层结构一般可以分为以下几个层: 1 ) 表示层:基于w e b 和b r o w s e r ,并提供一定的网络访问安全性; 2 ) 逻辑层:也称为中间层,它是界面层和数据层的桥梁。响应用户的请求,执 行任务并从数据层抓取任务数据,将必要的结果返回界面层显示给用户。同 时,还应实现分布式管理、负载均衡、安全隔离等。它使用清晰的语法逻辑 陈述; 3 ) 数据层:包括数据的定义、维护、完整性、安全性,响应逻辑层的请求,数 据访问等。这一层通常由大型关系数据库系统来实现,! t l :l o r a c l e ,d b 2 ,s q l s e r v e r 等。 单层体系将界面层、逻辑层、数据层合并在一起。两层体系分为两类:一种是将 表示层和逻辑层合为一层,数据层为另一层,通常称为胖客户服务器结构;另一种是 将逻辑层与数据层合并,表示层独自为一层,通常称为瘦客户服务器结构。而三层体 系结构是把这几层分离处理,它是最简单的多层应用。它把应用分为:瘦客户端应用 程序、应用程序服务器和远端( r e m o t es i t e ) 数据库服务器。其中客户端主要负责用 户界面的处理;服务器端主要负责商业逻辑的处理,为客户端提供公共的数据服务, 处理客户端与数据库间的数据流( d a t af l o w ) ;远端数据库服务器提供关系数据库的 存取与维护等【酬。 2 1 3 分布式计算体系结构的发展趋势 随着i n t e r n e t 技术的进步,基于w e b 的分布式计算结构己经得到了越来越广泛的流 行,这种流行的趋势还会在未来得到进一步的加强。目前,分布式计算结构的发展存 在着以下趋势: 5 第二章分布式系统理论基础 1 ) w e b 日益成为分布式计算中一个重要的平台。这个平台独立于操作系统,这 使得人们对操作系统的依赖性大大减小。在这种计算结构下,人们不仅可以 选择w i n d o w 操作系统,也可以采用l i n u x 等其它操作系统; 2 ) 基于集成框架的思想得到广泛应用。现代分布式应用系统规模日趋扩大,系 统开发的分工日趋细化,单纯一两种技术已经难以解决问题,因此需要依靠 一种集成框架,将各种技术结合起来形成一种体系结构( a r c h i t e c t u r e ) ,并依 靠集成框架所提供的开发模式来简化开发和管理; 3 ) w e b 的计算能力将得到进一步的提高。x m l 被用来作为w e b 上数据交换和存 储的格式,基于x m l 的计算技术大大提高了w e b 的信息处理能力; 4 ) 基于w e b 的移动计算技术越来越流行。利用移动计算技术,人们可以在外出 途中照常办公; 5 ) 对安全性的要求越来越高。 2 2 分布式计算标准 2 2 1 c o m d c o m 技术 c o m d c o m ( c o m p o n e n to b j e c tm o d e l d i s t r i b u t e dc o m 一构件对象模型分布构 件对象模型、) 。m i c r o s o f l 的分布式构件对象模型( d c o m ) 是c o m 在分布式计算方面的 扩展,使c o m 跨越机器的边界,进一步应用于局域网、广域网以及i n t e m e t 上。为了 适应网络环境,d c o m 主要的任务是在c o m 的基础上,实现远程调用,并采取一些 策略,以适应和优化网络环境。 以m i c r o s o f t 为首的d c o m c o m c o m + 阵营,从d d e ,o l e 到a c t i v e x 等,提供了 基于中间件开发的基础,如v c ,v b ,d e l p h i 等都支持d c o m ,包括o l ed b 在最新的 数据库存取技术,随着w i n d o w s 2 0 0 0 的发布,m i c r o s o f t 的d c o m c o m c o m + 技术, 在微软d n a 2 0 0 0 分布计算结构基础上,展现了一个全新的分布构件应用模型。首先, d c o m c o m c o m + 的构件仍然采用普通的c o m 模型。c o m 最初作为m i c r o s o f t 桌面 系统的构件技术,主要为本地的o u 波用服务,但是随着微软服务器操作系统卜i ,r 和 d c o m 的发布,c o m 通过底层的远程支持使得构件技术延伸到了分布应用领域。 d c o m c o m c o m + 更将其扩充为面向服务器端分布应用的业务逻辑中间件。通过 c o m + 的相关服务设施,如负载均衡、内存数据库、对象池、构件管理与配置等等, d c o m c o m c o m + 将c o m 、d c o m 、m t s 的功能有机地统一在一起,形成了一个概 念、功能强的构件应用体系结构。使用d c o m 的应用程序就可以在位置上达到分布性, 从而满足你的客户和应用的需求。在c o m d c o m 环境中,客户可以调用进程内对象, 可以通过本地代理调用本地另外进程内对象,也可以通过远程代理调用本地另外机器 6 第二章分布式系统理论基础 上的对象。c o m d c o m 不仅提供对象的创建和管理等功能,还包括三个基本构件: 永久存储、智能名字、和统一的数据传输【8 1 。c o m 以及这些构件的结合形成了c o m 的体系结构,它描述了如何创建对象、对象之间如何通信、如何存储对象、如何标识 对象以及如何与对象交换数据,其体系结构图如2 1 所示【9 1 。 图2 - ic o m d c o m 体系结构图 f i 配- 1s y s t e mc o n f i g u r a t i o nc h a r to fc o m d c o m 2 2 2 e d b j a v ar m i 技术 为了推动基于j a v a 的服务器端应用开发,s u n 于19 9 9 年底推出了j a v a 2 技术及相关 的j 2 e e 规范,j 2 e e 的目标是:提供平台无关的、可移植的、支持并发访问和安全的, 完全基于j a v a 的开发服务器端中间件的标准。 在j 2 e e 中,s u n 给出了完整的基于j a v a 语言开发面向企业分布应用规范,其中, 在分布式互操作协议上,j 2 e e 同时支持r m i 和i i o p ,而在服务器端分布式应用的构造 形式,则包括了j a v as e r v l e t 、j s p ( j a v as e r v e rp a g e ) 、e j b 等多种形式,以支持不同的 业务需求。 j 2 e e 简化了构件可伸缩的、其于构件服务器端应用的复杂度,虽然d n a 2 0 0 0 也 一样,但最大的区别是d n a 2 0 0 0 是一个产品,j 2 e e 是一个规范,不同的厂家可以实 现自己的符合j 2 e e 规范的产品,j 2 e e 规范是众多厂家参与制定的,它不为s u n 所独有, 而且其支持跨平台的开发,目前许多大的分布计算平台厂商都公开支持与j 2 e e 兼容 技术。r m i 的设计目的是为了能够无缝地与j a v a 语言其它方面结合起来,支持分布式 程序设计。r m i 本质上是j a v a 的r p c ( r e m o t ep r o c e d u r ec a l l ,远程过程调用) 。通过r m i , 一个j a v a 程序可以用本地调用方法相同的方式调用位于网络上其它机器上的j a v a 对 象。r m i 的核心是远程对象的概念,远程对象实现了一个远程界面,在这个远程界面 中声明了可以被其它对象从远程机器上调用的方法,从而实现了客户方程序跨网络的 远程调用。e j b 是s u n 推出的基于j a v a 的服务器端构件规范j 2 e e 的一部分,自从j 2 e e 推出之后,得到了广泛的发展,已经成为应用服务器端的标准技术。s u ne j b 技术是 7 第二章分布式系统理论基础 在j a v ab e a n 本地构件基础上发展的面向服务器端分布应用构件技术。它基于j a v a 语 言,提供了基于j a v a - - 进制字节代码的重用方式。从企业应用多层结构的角度看,e j b 是业务逻辑层的中间件技术,与j a v ab e a n s 不同,它提供了事务处理的能力,自从三 层结构提出以后,中间层,也就是业务逻辑层,是处理事务的核心,从数据存储层分 离,取代了存储层的大部分地位。从分布式计算的角度,e j b 像c o r b a - - 样,提供 了分布式技术的基础。提供了对象之间的通讯手段。从i n t e r n e t 技术应用的角度,e j b 和s e r v l e t 、j s p 一起成为新一代应用服务器的技术标准,e j b 中的b e a n 分为会话b e a n 和实体b e a n ,前者维护会话,后者处理事务,现在s e r v l e t 负责与客户端通信,访问e j b , 并把结果通过j s p 产生页面传回客户端,其应用体系结构图女1 :1 2 2 所示【1 0 】。 霄e b 客户 l 旺,s s l 曩l i o p ,s s l m i i ,s s l 磊翮型坠 客户应用喜器l 寸一 j 荭嘲涡蛊备嚣 囡圈国 老事囊 落 餮署连 哲棼 亭务 a 砉磐理署 蓐连 徉 接 覆蛊 庭斑 羡燕 接恐嚣 备备备务 备 务 图2 - 2j 2 e e 体系结构图 f i 9 2 - 2s y s t e mc o n f i g u r a t i o nc h a r to fj 2 e e 2 2 3c o r b a 技术 c o r b a 是由o m g 提出的应用软件体系结构和对象技术规范,其核心是一套标准 的语言、接口和协议,以支持异构分布应用程序间的互操作性及独立于平台和编程语 言的对象重用 7 1 。它针对多种对象系统在分布式计算环境中如何以对象方式集成而提 出的,为对象管理定义了一个对象模型一o m g 参考模型。 c o r b a 使用的对象模型将c o r b a 系统中所有的应用看成是对象及相关操作的 集合,因此通过对象请求代理( o r b ) ,使c o r b a 系统中分布在网络中应用对象的获 取只获取网络的畅通性和服务对象特征获取的准确程度,而与对象的位置和对象所处 的设备环境无关。c o r b a 的对象模型图如2 3 所示。 c o r b a 以o r b 为基础,定义了一种与操作系统和网络服务程序设计语言无关的 分布式对象模型和组件模型,该模型及其框架结构将面向对象技术与客户朋艮务器计 算模式结合起来,有效地解决了对象封装和分布式计算环境中资源共享、代码重用、 8 囊雾 第二章分布式系统理论基础 可移植性及应用的互操作性等问题,实现了异构平台间对象的互操作,从而能实现真 正的跨平台。它采用连接式基础对象模型,底层网络通讯采用s o c k e t 机制,此外还提 供了分布和组装构件的方法,因此也可以看作是一种构件集成模型。 匿象嚣簿,翔熙鬻程黪骥键 翻lll离 ,:譬凳i 二:凌孑黪代粤诲券爱j 笼荽:j 雾i : 划 l 隆 匿彝零罂麓 图2 3c o r a a 对象模型图 f i 9 2 3o b j e c tm o d e lc h a r to fc o r b a 目前有多个软件开发商提供了对c o r b a 的支持,其代表软件有:v i s i b r o k e r 等。 但与其他主流技术相比,c o r b a 在软件开发商的支持程度和产品成熟度上要稍差一 此【1 1 】【1 2 】 二=o 2 2 4 三种分布式计算技术的比较 首先,它们属于分布对象技术,支持面向对象分析设计中的继承、封装、多态等 思想,都采用基于构件的开发( c b d ) 方法。其次,它们都继承和发展了r p c 的思想, 即用通常本地过程调用的语义对分布式应用程序间的交互操作进行封装,根据远程过 程调用方式表示的分布式程序间的交互界面自动生成s t u b 和s k e l e t o n ,由它们负责完 成远程请求的打包、发送和接收。再次,它们简化了分布式系统的开发,降低了程序 员的工作量。 c o b r a 是一个完整的、开放的、稳定的分布计算体系。o m g 的目的是以面向对 象技术为核心,构建一组完整的分布式软件开发标准。c o b r a 体系包含了从对象管 理体系o m a 、接口定义语言i d l ( i n t e r f a c ed e f m i t i o nl a n g u a g e ) 、对象请求代理o r b 、 对象服务、对象建模等一系列全面的面向对象软件开发的体系结构以及开发工具。 c o m d c o m 是w i n d o w s 平台o l e 不断发展的产物,它缺少完整的体系结构。r m i 是j a v a 语言的功能的增强,也没有完整的体系结构。 c o r b a 规定了一整套的对象服务,如命名服务、事务服务、安全服务、消息服 务等,这些服务都是分布式应用系统所必须的基本服务。d c o m 的服务当前只提供一 种受限的命名服务、事务服务以及与n t 的安全性集成。r m l 只提供一种基于u r l 的 简单的命名服务。 跨平台支持是c o r b a 的初始目标和基本核心,始终是c o r b a 所关注的焦点, o r b 可运行在多种平台上。d c o m 的跨平台支持并非初始目标,其主要目标是用于 9 第二章分布式系统理论基础 w i n d o w s 平台,现己可运行于若干种u n i x 平台。j a v a r m i 是在纯j a v a 环境下实现 的,j a v a 语言本身的可移植性使得r m i 具有很强的跨平台特性。 c o b 燃过接口定义语言i d l 来做到对语言中立。d l 用于定义构件的接口,而 不是内部的工作。内部工作由其它程序语言完成,通过映射,d l 可以被转换到标准 的程序设计语言。目前大多常用语言都对c o r b a 提供支持。d c o m 也由一系列微软 产品及j a v a 、p o w e r b u i l d e r 、d e l p h i 所支持。r m i 是一种纯j a v a 的解决方案。其客户端 和服务器端的程序都必须用j a v a 编写。若要集成非j a v a 程序,就必须先用j a v a 程序进 行封装【1 3 】。 综合上述比较,我们可以得到表2 1 。 表2 1 三种分布式计算标准技术比较表 c o m d c o mc o r b ae r b 删i 体系结构不完整完整统一不完整 支持跨语言操作好好一般 支持跨平台操作一般好好 网络通讯一般好好 公共服务构件一般好好 可用性 一般 一般 一般 事务处理一般 好一般 消息服务一般 一般 一般 安全服务一般好好 目录服务般好一般 容错性 一般 一般 一般 产品成熟性一般一般一般 软件开发商的支持好一般好 可扩展性 一般 好好 2 3 分布式系统关键技术 2 3 1 负载平衡算法 建立了一个分布式系统,提供负载平衡的功能是必须的。由于分布式系统是使用 多台服务器来共同提供服务,如何将负载平衡到不同的服务器上将决定整个分布式系 1 0 第二章分布式系统理论基础 统的性能和效率。负载平衡算法设计的好坏直接决定了分布式系统在负载平衡上的表 现。目前有以下几种常用的分布式系统负载平衡算法: 1 ) 轮转法:是所有平衡算法中最简单也最容易实现的一种方法。在一个网络环 境中,每个服务器都具有相同的地位,轮转法简单的在这些服务器中顺序轮 转选择,将新的请求轮流发给服务器队列中的下一服务器,如此连续、周而 复始,每个服务器都在相等的地位下被轮流选择。这种算法适用于系统中所 有结点的处理能力和性能均相同的情况,但没有考虑每个服务器的当前状 态,容易导致平衡效果不佳: 随机法:赋给各结点一个由伪随机算法产生的值,将新的请求发送到具有最 小或最大随机数的节点。同轮转法一样,这种平衡算法也是无差别地选择服 务器。只适合在某些特定的网络环境中【1 4 j ; 3 ) 散列法:也叫哈希法( h a s h ) ,通过单射不可逆的h a s h 函数,按照某种规则 将网络请求发往系统中的结点。使用这种方法需要订立合理的规则,在某些 情况中能够提供较好的平衡; 钔最少连接法:系统检测每一个服务器当前的连接数目,将新的请求发送到当 前连接数最少的服务器。但在系统中,服务器本身可以允许的连接数不同, 每个连接所使用的带宽情况也不相同,最少的连接数并不能准确地说明服务 器目前的负载情况,使用这种算法来进行负载平衡也不够完善; 5 ) 最小流量法:系统检测每一个服务器当前的使用带宽,将新的请求发送到当 前使用带宽最少的服务器。同最少连接法一样,这种算法在进行负载平衡时 也容易出现一些问题; 6 ) 最快响应法:平衡控制器记录到每一个服务器的响应时间,使用i c m p 包或 基于u d p 包约专用技术来主动探测各服务器,将新的请求发送到响应最快的 服务器。这种算法在广域网中有一定的作用,而区域网系统中i c m p 包基本 上都在1 0 m s 区j 完成回应,彼此区别并不大,体现不出差别【1 5 1 1 1 6 。 2 3 2 时钟同步算法 在设计分布式系统时,由于没有全局时钟,有些同步工作就非常困难。在集中式 系统中,时间的概念很清楚,当进程想知道时就问,它使用系统调用且由内核提供。 如果进程a 询问时间,之后进程b 也询问时间,b 得到的时间值就应该大于,或等于a 所得到的时间值,但一定不会小于a 得到的时间值。但是在分布式系统中,获得时间 的一致是不容易的。 为了给需要精确时间的人们提供了u t c ,国际时间标准化组织使用了一个在f o r t c o l l i n s ,c o l o r a d ow 1 称为w 、) l 厂、,自身的短波广播站。w w v 在每i 唧开始处广播一 个很小的脉冲w w v 精确度为正负1 毫秒,但由于空气起伏的随机性会影响到信号 第二章分布式系统理论基础 传输路径长度,实际精确度在正负1 0 毫秒。 如果某一台机器上有w w v 接收器,我们的目的是使其他所有机器与它同步。 如果没有一台机器上有w w v 接收器,每台机器按自己的机器时间计时,那么同步的 目的就是尽可能地将所有机器放在一起。 时钟同步算法描述如下:每台机器上假设都有一个每秒产生h 次中断的计时器。 当时间到时中断处理程序将软时钟加1 ,软时钟记录从过去某一约定值开始的中断次 数,我们将这个值记为c 。更特殊的,当u t c 时间为t 时,在机器j d 上的时间值是c 。o ) , 最完美的情况是对所有的p 和t ,有c 。( f ) = i ,换言之,d c d l 理想值为1 。真正计 时器并不是每秒精确的中断日次,理论上当h = 6 0 时,计时器每小时应该产生2 1 6 0 0 0 个滴答。实际上,用现代计时时钟芯片可以获得的相关延迟是1 0 ,这就意味着一台 机器每小时可以获得2 1 5 9 9 8 - - 2 1 6 0 0 2 范围的滴答,若存在一常数p ,则有: 1 一ps d c i d ls 1 + p 。计时器可以在它规定的范围内工作,制造商标明的常数p 是 最大漂移速度。若两个时钟相对于u t c 时间以相反方向漂移,在它们同步后的& 时 间内,它们可能的差值为2 p a t ,若操作系统的设计者要保证每两个时钟之间的相差 不超过多,时钟必须至少在每宇2 p 秒内再同步一次( 用软件方法) ,不同算法实现再 同步的方法不同。 1 ) c r i s t i a n 算法: 现在开始讨论一种算法,它非常适合于只有一台机器上有w w v ,其它所有机器 与它同步的系统。将拥有w w v 的那台机器称作时间服务器算法是基于c r i s t i a n 以前的 一些工作,每台机器以小于或等于亭2 p 秒的周期定期地向时间服务器发送消息访问 当前的时间,时间服务器接到消息后就尽快回答含有当前时间c u t c 值的消息。 第一种近似情况是当发送者得到回答后,就将它的时钟设为c u t c ,但是这种算 法有两个问题,一个很重要,一个次要。第一个重要的问题是时间决不能倒退,若发 送者的时钟快,c u t c 值比u t c d x ,若将发送者的时间值直接改成c u t c 会导致严重 的错误,比如在时钟变化后,编译产生的目标文件的时间早于时钟变化前源文件的修 改时间。这种变化必须逐步进行,一种方法是假设将计时器设置为每秒产生1 0 0 次中 断,通常每次中断将时间加1 0 毫秒,当时钟需要慢下来时,中断服务程序每次仅加9 毫秒,直到调整好为止同样时钟要加快时,每次中断服务程序将时钟加1 1 毫秒,而 不是立即把时间调到所需要的值。 另一个次要问题是从时间服务器端发送的应答到发送者要花费时间,然而不幸的 1 2 第二章分布式系统理论基础 是这种延迟可能较大,而且随着网络负荷的改变而改变。c r i s t i a n 的处理方法是试

温馨提示

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

评论

0/150

提交评论