(计算机软件与理论专业论文)corba系统负载平衡的研究与实现.pdf_第1页
(计算机软件与理论专业论文)corba系统负载平衡的研究与实现.pdf_第2页
(计算机软件与理论专业论文)corba系统负载平衡的研究与实现.pdf_第3页
(计算机软件与理论专业论文)corba系统负载平衡的研究与实现.pdf_第4页
(计算机软件与理论专业论文)corba系统负载平衡的研究与实现.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(计算机软件与理论专业论文)corba系统负载平衡的研究与实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 c o r b a 作为当前流行的分和式对象技术,凭借其平台独立性和编程语言独 血性等优势,为异卡句环境下分嘶j 式应用提供了强有力的支持,成为越米越多的企 业级分布式应用系统构建的平台。目前,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 技术原理以及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 、负载平衡、策略 第i 负 a b s t r a c t a saf a s h i o nd i s t r i b u t e d o b j e c tt e c b n o t o g y ,c o r b ap r o v i d e s d i s t r i b u t e d a p p l i c a t i o ni ni s o m e r o u se n v i r o n m e n tw i t hs t r o n gs u p p o r tw i t hi t sa d v a n t a g eo ft h e i n d e p e n d e n c eo f p l a t f o r ma n dp r o g r a ml a n g u a g e n o w , c o r b ah a sb e e ns u c c e s s f u l l y u s e di nt e l e c o m ,f i n a n c e ,n e g o t i a b l es e c u r i t i e sa n dm a n yo t h e rf i e l d s b a s e do nc o r b a ,t h ed i s t r i b u t e da p p l i c a t i o ns y s t e mu s u a l l yc o m p r i s e sm a n y o b j e c t sd i s t r i b u t e di nd i f f e r e n th o s t s i no r d e rt og e tag o a lo fh i g ha v a i l a b i l i t ya n d h i g hs c a l a b i l i t yo ft h ea p p l i c a t i o ns y s t e m ,t h et e c h n o l o g yo fl o a db a l a n c i n gi su s e di n c o r b ad 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 b yt h em e a n so fd i s t r i b u t i n gt h er e q u e s t so f t h ec l i e n t st om a n ys e r v e r st ob ee x e c u t e da v e r a g e l y , t h et e c h n o l o g yo fl o a db a l a n c i n g c a np r o t e c tt h ep r i m a r yh a r d w a r ei n v e s t m e n t ,o b v i o u s l yi m p r o v et h er e t r a c t i l i t yo ft h e d i s t r i b u t e ds y s t e ma n da d v a n c et h ep e r f o r m a n c eo ft h ea p p l i c a t i o ns y s t e m t h u s ,t h e l o a db a l a n c et e c h n o l o g yb a s e do nc o r b ah a si m p o r t a n tv a l u ei nr e s e a r c h t h i s p a p e rf i r s ti n t r o d u c e st h et h e o r yo fd i s t r i b u t e ds y s t e m ,t h et e c h n o l o g y p r i n c i p l eo fc o r b aa n dt h er e s e a r c hs i g n i f i c a n c eo fc o r b al o a db a l a n c i n g i t i n t r o d u c e sa n da n a l y s e st h et e c h n o l o g yo fl o a db a l a n c i n gi nc u r r e n td i s t r i b u t e ds y s t e m a n dt h ee x i s t e dt e c h n o l o g yo fl o a db a l a n c i n gi nt h ec o r b a s y s t e m t h e n ,b a s e do n t h a t i tp r o v i d e sam o d e lo fp o l i c y - b a s e dc o r b al o a db a l a n c i n gs c h e m e t h i sm o d e l u s e st h ep o l i c yd e s i g np a t t e r no nc o r b al o a db a l a n c i n gs y s t e ma n di ta b s t r a c t st h e p o l i c yi n t e r f a c eo fl o a db a l a n c i n g t h ec o m b i n a t i o no fd i f f e r e n tp o l i c i e sm a k e st h e v a r i e t yo fl o a db a l a n c i n gp o l i c y a i m i n ga td i f f e r e n tr e q u i r e m e n t s ,i tc a nc o n f i g u r e d i f f e r e n tp o l i c i e so fl o a db a l a n c i n g ,t h u s ,i tm a k e su pt h es h o r t c o m i n go fl o a d b a l a n c i n g so n l ys a r i s f y i n gs p e c i a la p p l i c a t i o n ,h a sg r e a tf l e x i b i l i t y , m a dp r e s s e sc l o s e t oc o n c r e t e a p p l i c a t i o nr e q u i r e m e n t s ,a tt h es a m et i m e ,b a s e do nt e m p l a t e i m p l e m e n t a t i o n ,i th a sg o o dd u p l i c a t i o n f i n a l l y , t h ee x p e r i m e n ti sp r o s e c u t e d ,t h e m o d e li st e s t e da n dt h ee x p e c t e dg o a li sg a i n e d k e y w o r d :c o r b a ,l o a db a l a n c i n g ,p o l i c y 第1 i 虹 第1 章绪论 第1 章绪论 1 1 课题背景、研究意义、来源 c o r b a l l l 是当前最具生命力的分饥式列象技术,自9 0 年代初诞生以来, 一直受到计算机信息工作者的关注。它通过制定规范,把应用程序与系统依 附软件的较底层细节和复杂性隔离丌来,把应用程序和通信核心的细节分离 开来。c o r b a 最大的特点是提供了异构分布式环境下对象之| b j 的可互操作 性,从而保证了建立在不同c o r b a 产品之上的分布式对象互相通信。 c o r b a 给当今网络计算环境带来了真正意义上的互联。 c o r b a 经过十多年的发展,已经逐步走向成熟,并成功应用于电信、 金融、电子商务等企业级应用领域,c o r b a 成为越来越多的企业级分椎式 应用系统构建的平台b 】。 一般而言,c o r b a 应用系统是包含许多服务对象的复杂分布式系统, 应用程序庞大,众多对象分布在不同的后台服务器上运行,这样就可能出现, 其中一些服务器因接收处理大量的客户请求而不堪负重,而另一些服务器却 只有很少的客户请求需要处理,因此就影响到整个系统的性能,这是构筑高 性能、高i j 用、可扩展的分布式应削系统不能出现的。大量研究表明,负载 平衡技术可以有效提高系统性能【3 】、可用性和扩展性,这样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 负载平衡技术的基础上,提出了一种基于策略1 4 】的c o r b a 负载 平衡模型,运用策略设计模式抽缘出负载i f 衡算法子策略以及负载粒艘子策 略,在此基础上形成c o r b a 负载平衡器模型,该模型在有效的起到负载平 衡功能有效的提高系统的性能的同时,由于基于策略的模式,也使该模型具 有了很大程度的灵活性和可配置性。 在这样的课题背景和意义下,本人先后参加了电信综合故障管理系统和 筇i 业 笫i 章绪论 高可用集群中蚓件的设计、开发工作。项f j 中分别采用c o r b a 技术和集群 中间件技术。在项目过程中,本人查阅了大量中间件、c o r b a 和负载平衡 相关的文献,系统学习了分珀j 式系统、中阳j 件技术、c o r b a 技术、负载平 衡以及c o r b a 系统负载平衡相关技术:同时,在实际的项目丌发过程中, 也成功地运用了中问件以及c o r b a 的相关技术,对中间件和c o r b a 也有 了深刻的理解。 本课题还得到了中幽科大青年旗金( k a l l 2 5 ) 和。| j 国科学院高水平大学 建设项目( k y 2 7 0 6 ) 资助。 1 2 相关工作介绍 近年来,中间件应用技术的发展,为了达到提高系统的扩展性和系统整 体吞吐量的要求,基于中问件的负载平衡技术被广泛采用。这里我们介绍 c o r b a 负载平衡技术的相关1 :作。 o r b 绒的负载平衡,在o r b 内部实现,负载平衡机制和o r b 结合相当 紧密。采用o r b 级技术的一个好处是可以计算无连接的数目;然而,0 r b 级负载平衡要求对o r b 本身做相应的修改,除非这种修改被o m g 采纳, 否则可移植性和可交互性都会受到影响。例如,i n p r i s e 公司的v i s i b r o k e r 产 品。 基于c o r b a 服务的负载平衡,i - 以保汪相对于客户端来晚,负载平衡 功能透明集成,并且保证在其他c o r b a 兼容的o r b 架构中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 事件服务等) 提 供的机制,实现负载平衡。这实际上只是实现了负载平衡功能,而不能算是 单独的负载平衡服务。例如,香港理工大学改进c o r b a 事件服务来实现负 载、f 衡和容错功能;德幽s i e g e n 大学利用c o r b a 命名服务在上作站j 刊络上 实现负载分配。另一种是提供单独的负载平衡服务,不必依赖其他c o r b a 服务就可以提供负载平衡功能。例如,丌发源代码c o r b a 产品t a o 实现 了单独的负载平衡服务。 第2 砸 第1 章绪论 1 3 论文所做的工作 1 、本文首先简要介绍了分稚式系统及负载平衡技术。阐述了分布式对象 技术c o r a b 的体系结构,以及c o r b a 的重要特征。 2 、阐述了在c o r b a 系统中存在的几种负载平衡技术:o r b 级负载平 筏和基于c o r b a 服务的负载! f 衡,并对各自的特点进行简要分析; 并在此基础上重点介绍了a c et a o 中的负载平衡服务模型,刘t a o 负载平衡模型框架和工作模式进行泌明。 3 、详细介绍了基于策略的c o r b a 负载平衡器的模型,并重点阐述负载 平衡策略的设计和实现方案。基于策略的c o r b a 负载平衡模型的主 要思想是运用策略设计模式,抽象出负载平衡算法子策略以及负载粒 度子策略,在此基础上形成c o r b a 负载平衡器模型;其具有策略设 计模式的可配置性的优点,并且策略的可配置性也使欧模型在实际应 用中具有更大的灵活性。 4 、在a c et a o 的基础上实现c o r b a 负载平衡策略模型,对该模型进 行仿真实验。 1 4 论文结构 本论文组织如下: 第1 章:绪论。简要介绍本课题的研究背景、研究价值,目前有关本课 题的相关工作等,以及本人在课题中的所做的工作,最后列出论文的组织结 构。 第2 章:分布式系统及负载平衡概述。介绍分布式系统的由来和发展、 常见的分布式中间件简介、负载平衡技术及c o r b a 体系结构的重要特征, 并对典型自 j j l k o 负载平衡技术进行了介绍。 第3 章:c o r b a 系统的负载i 1 衡技术。先介绍现存的几种c o r b a 系 统的负载平衡解决办法,然后介绍了a c et a o 的负载框架。 第4 章:基于策略的c o r b a 负载平衡系统的设计。首先介绍该方案的 总统框架模型,然后详细介绍了浚负载平衡器的设计思路,并对设计中遇到 销3l 玎 第1 章绪论 的一些难点及解决办法进行分析,最后介绍了该方案的特征。 第5 章:模型实现与分析。在a c et a o 的基础上实现c o r b a 负载平 衡策略模型,。 第6 章:结束语。对本文所做的工作进行总结,并对c o r b a 系统负载 平衡做出展望,最后对论文撰写过程中的收获作了小结。 笫4 页 辩2 章分布武系统发负载f 衡槲述 第2 章分布式系统及负载平衡概述 本章主要介绍分布式系统以及负载平衡的一些重要概念,并在此基础上 重点阐述了c o r b a 技术原理以及目前典型的几种负载平衡技术。 2 1 分布式系统概述 2 1 1 分布式系统的由来及发展 计算机技术的发展可以通过使用计算机的不同方式来描述。在50 年代, 计算机是串行处理机,一次运行一个作业直至完成。这些处理机通过一个操 作员从控制台操纵,而对于普通用户则是不可访问的。在60 年代,需求相 似的作业作为一个组以批处理的方式通过计算机运行以减少计算机的空闲 时间。同一时期还提出了其他一些技术,如利用缓冲、假脱机和多道程序等 的脱机处理。70 年代产生了分j 系统,不仅作为提高计算机利用率的手段, 也使用户离计算机更近了。分时是迈向分布式系统的第一步:用户可以在不 同的地点菇享并访问资源。 从2 0 世纪8 0 年代中期开始,技术上两大进步开始改变以往计算机昂贵 而又无法互连执同工作的状况。首先是功能更强的微处理机的开发,开始出 现了8 位的桃型,随后不久1 6 位,3 2 位,甚全6 4 位的c p u 也盯始普及。 其中许多机器具有较大主机( 即大型机) 的计算能力,但价格却只是过去的 几分之。 第二个进步是高速计算机网络的出现。局域网l a n 使得同一建筑内的数 十甚至上百台计算机连接起来,使少量的信息能够在大约1 毫秒左右的时间 罩在计算机问传输。更大量的数据则以1 0 m 到1 0 0 m b p s 或更大的速率传送。 广域网w a n 使得全球范围内的数百力台计算机连接起来,传输速率从 6 4 k b p s 到用于一些先进的实验型网络中的每秒千兆比特。 应用这些技术的结果,使得将大量c p u 组成的计算系统通过高速网络连 接在一起不仅成为可能,而且变得十分容易。相对于以前包括单个c p u 、存 始5 负 第2 章分布,系统肚负载、r 衡概述 储器、外设和“些终端在内的集中式系统( 又称单处理机系统s i n g l ep r o c e s s o r s y s t e m ) ,它们通常被称为分布式系统( d i s t r i b u t e ds y s t e m ) 。 分砷j 式系统1 5 , 6 , 7 1 有很多不同的定义,但目前还没有一个广为接受的。下 面是一个火致的描述:“一个分川j 式系统是一些独立的计算机的结合,但是 对这个系统的用户来说,系统就像一台计算机一样。”这个定义有两个方面 的含义:第一,从硬件角度来讲,每台计算机都是自主的;第二,从软件角 度讲,用户将整个系统看作是一台计算机。这协都足必需的,缺一不可。 分布式系统能够获得大发展的原凶主要在于它圳有许多优点: 1 分和式系统可以潜在的得到比单个的人型集中式系统好得多的性能 价格比。 2 一些应用本身就是分布式的。 3 同集中式系统比较,分斫j 式系统的一个潜在的优势在于它的高町靠 性。 4 分布式系统具有良好的可扩放性。 2 1 2 常见的分柿式中问件介绍及其比较 近几年来,以交易中间件为框架基础的三层客户机月臣务器模式已被广泛 证实为建立丌放式关键业务应用系统的最佳环境。这种模式的成功使用已为 许多国际大型企业在应用的开发和部署方面节省了大量的时间和金钱。中间 件销量正在以惊人的速度增长。据i d c 资料显示,1 9 9 8 年中间件市场总值 仅为1 2 3 4 亿美元,而到2 0 0 4 年将达到9 0 _ 3 亿美元,年增长率高达3 9 7 。 我国中间件近年来也进入了快速发展阶段,预计今后5 年市场的容量将达到 9 亿美元左右。目日u 中间件市场的繁荣其实代表了软件发展的一个趋势,即 各种系统应用最终将走向融合。 中间件是一种独立的服务程序,位于客户机服务器的操作系统之上,管 理计算资源和网络通信。分相式应用软件借助中间件在不同的技术之j e j j 共享 资源。由丁中间件技术正处于发腱过程之中,凶此目前尚不能对它进行精确 的定义。比较流行的定义是:中n j j 件是种独立的系统软件或服务程序,分 布式应用软件借助这种软件在不同f | ! 匀技术之间共享资源。中间件位于客户机 筢6i 玎 第2 帝分布一系统及扭载卜衡概述 i l k 务器的操作系统之上,管理计算资源和网络通讯。 目前,中问件发展很快,已经与操作系统、数据库并列为三大基础软件。 中问件主要分为以下几类t 8 1 : 1 通信处理( 消息) 中间件 此类中间件能在不同平台之间通信,实现分稚式系统中可靠的、高 效的、实时的跨平台数据传输f 如t o n g l i n k 、b e ae l i n k 、i b m 的 m q s e r i e s 等) 。这是中n 日什中唯一小可缺少的,足销售额最大的中间件 产品。 2 交易中间件 在分布式事务处理系统中要处理大量事务,常常在系统中要同时做 上万笔事务。例如在北京市就要设置各种运载汽车,完成n 常的运载, 同时要随时监视汽车运行,出现故障时,要有排除措施,发生堵塞时要 进行调度。在联机事务处理系统( o l t p ) 中,每笔事务常常要多台服务器 上的程序顺序地协调完成,一旦中f 白j 发生某种故障时,不但要完成恢复 工作,而且要自动切换系统,达到系统永不停机,实现高可靠性运行: 同时要使大量事务在多台应用服务器能实时_ 并发运行,并进行负载平衡 地调度,实现昂贵的可靠性机和大型计算机系统同等的功能,为了实现 这个目标,要求系统具有监视和训度整个系统的功能。一个事务处理平 台,根据x o p e n 的参数模型规定,应山事务处理中削件、通信处理中 | - 白j 件以及数据存取管理中间件三部分组成。 3 数据存取管理中间件 在分布式系统中,重要的数据都集中存放在数掘服务器中,它们可 以是关系型的、复合文档型、具有各种存放格式的多媒体型,或者是经 过加密或压缩存放的,该中间件将为在网络上虚拟缓冲存取、格式转换、 解压等带来方便。 4 w e b 服务器中间件 浏览器图形用户界面已成为公认规范,然而它的会话能力差、不能 第7 贝 第2 审分布式系统及负载r 撕概述 作数据写入、受h t t p 协议的限制等,就必需进行修改和扩充,形成了w 曲 服务器中问件,如s i l v e r s t r e a m 公司的产u i u i 。 5 安全中问件 一些军事、政府和商务部门上网的最大障碍是安全保密问题,而且 不能使用国外提供的安全措施( 如防火墙、加密、认证等) ,必需用国产 的产品。产生不安全因素是由操作系统引起的,但必需要用中删件去解 决,以适应灵活多变的要求。 6 跨j 卜台和构架的中m f b 当前开发大型应用软件通常采用基于构架和构件技术,在分布系统 中,还需要集成各节点上的不同系统平台上的构件或新老版本的构件, 由此产生了构架中问件,功能最强的是c o r b a ,可以跨任意平台,但 是太庞大;j a v a b e a n s 较灵活简单,很适合于做浏览器,但运行效率 差;d c o m 模型主要适合w i n d o w s 平台,已广泛使用。实际上国内新建 系统主要是u n i x ( 包括l i n u x ) ;f 1 w i n d o w s ,因此针对这两个平台建立相 应的中间件要实用得多。 7 专用平台中间件 为特定应用领域设计领域参考模式,建立相应构架,配置相应的构 件库和中矧件,为应用服务器开发和运行特定领域的关键任务( 如电子商 务、网站等) 。 8 网络中间件 它包括网管、接入、网络测试、虚拟社区、虚拟缓冲等,也是当前 最热门的研发项目。 9 。交易【 ;_ i 问件 在目前的企业信息化中,应用最多的就是交易中间件了。三层客户 机朋务器模式的核心概念就是利用交易中i 白j 件将应用的业务逻辑、表示 逻辑和数据分为三个不同的处理层,从而使其应用系统不但具备了大型 第8 贝 笫2 章分布式系统及负载平衡概述 机系统稳定、安全和处理能力高等特性,同时棚有丌放式系统成本低、 可扩展性强、7 i :发周期短等优点。而交易中问件作为构造三层结构应用 系统的基础平台,提供了以下两个主要功能:负责客户机和服务器问的 联接和通砒;提供一个三层结构应用 :发和运行的平台。 交易中制件提供一个基础的框架去帮助你建立、运行和管理一个三 层客户机朋匣务器模式的应用,使你不需要从零做起,大大缩短了应用开 发的时问,提高了应用j - i :发的成功率。根据s t a n d i s hg r o u p 的调查报告, 采用一个成熟的交易中问件产品能够为应用丌发节省2 5 5 0 的时间。 而通过自己去丌发应用单中间件功能的项目,有9 0 以上以失败告终。 一个优秀的交易中侧件应具备以下六个条件: 1 )成熟、稳定、可靠 2 )很强的产品生命力 3 )完整、高质量的功能 4 )优秀的性能 5 ),r 放、遵循标准 6 )简单、易用 2 2 负载平衡概述 2 2 1 负载平衡的概念 负载平衡【9 ,1 0 l 也称负载共享,是指对系统中的负载情况进行调整,以尽 量消除或减少系统中结点负载不均匀的现象。 负载平衡的具体实现方法是将重载场点上的任务转移到其他轻载结 点上,尽可能实现系统中各场点的负载平衡,从而提高系统的吞吐量。负载 共享有利于统筹管理分仰式系统中的各种资源,便于利用共享信息及其 服务机制扩大局部分稚式系统的处理能力。 负载平衡有动态、静态之分。 1 静态平衡策略 第9 畎 旃2 帝分布式系统驶负载平衡概述 静态负载策略是在系统运行的初始时刻,将用户提交的任务一次性分 配给系统中各处理机,此后直到这些任务运行完毕,各处理机上的任务一 般不阿变更。在这方面已经研究出了许多具柏。特色的算法,较有代表性的 柯蘸于硐论的分配算法、o 1 程序设计力法、肩发式乃法、边传算法和 模拟退火算法。它的特点是实现简单旭是由于不能准确估计每个任务的 运行时间及任务问的通信量而使系统的并行处理效率不高。 2 动态平衡策略 动态负载策略是在运行过程中将任务分配给各处理机,并对其上的任 务数进行动态调整,尽可能使系统中各处理机上的负载达到基本平衡。具 有代表性的算法有各种负载共享策略、动态投标算法及专家系统。它的 特点是能充分发挥各处理机的能力,但实现起来复杂程度高。 2 2 2 负载平衡的目的和意义 分布式系统提供了巨大的处理能力。然而,为了实现和充分利用这种能 力,需要优良的资源分配方案。负载平衡是分布式计算中的一个重要内容, 它的主要目的在于合理和透明地均衡所有节点上的负载,以使得所有节点上 的负载基本相等( 这种相等并非简单的任务数目相等,而是依据这些异构节 点的性能分派的加权相等) ,从而达到系统的综合性能最优。 2 2 3 衡量负载平衡的一些指标 由于应用程序设计者一般都对就用程序的执行需求有着较为清楚的了 解,所以可以根据与应用程序执行需求相关的几个标准来对负载平衡进行衡 量。以下是一些衡量标准: 1 1 响应时间 对应于响应时间标准的负载分配策略的目标。是最小化整个应用程 序的总体执行时间。单独减少每个程序的响应时问是不够。实际上应 第l o 页 第2 章分布式系统艘负载、f 衡概述 用程序是通过多批被同时分配的并行程序来执行的,因此运行时间最长 的程序应该首先被分配。主机到程序的分配是根据程序执行时间的下降 顺序进行的,因此执行时划最长的主机将会被分配到负载最轻、执行速 度最快的主机上。 2 文件访问 对应于文件访问标准的策略是要寻找一个主机,该主机将使得程序 被分配到它上面之后,文件访问的总丌销最小。分配决定是基于访问次 数、文件访问大小、磁盘和网络速度等参数做出的。一旦一个主机被选 择选择来执行程序,那么附加的策略就允许决定是将剩余文件中的一个 或多个进行迁移还是远程访问它们。 3 程序问的通信 使用此标准的策略是要最小化程序间通信的总开销。这在实际上等 价于减少远程通信的数量。为了实现这一目标,需要记录应用程序中每 个已被分配程序所在的位置。利用此信息就可以将通信量最大的程序放 置到相同的主机上。 4 存储器需求 在这种情况下,程序所被分配的主机必须有足够的内存来运行该程 序。这可根据被分配程序所需的内存以及每个主机的可用内存柬进行相 应的分配。存储器标准与其他的标准不同,它不允许资源的共享,它所 进行的分配是排它性的。分配到一个主机上的程序不能超过该主机的最 大物理存储容量。 5 性能标准的组合 前面的性能标准可以组合起来,以使得程序的放置可以同时根据几 个标准来进行。开始的时候,可以取出一个可用主机的集合。然后,可 以根据给定标准列表中的第一个标准去掉集合中的某些主机,利用剩余 的标准重复此操作,直到剩卜_ 最后一个主机或者所有的标准都被使用完 毕。所获得的主机就是在由程序员指定顺序的有相互关联的这些标准之 第1 i 叮 第2 章分布武系统驶负载,l t 衡概述 间的一个最好的折衷。 2 3c o i u b a 原理概述 c o r b a ( c o m m o no b j e c tr e q u e s lb r o k e ra r c h il e c l u r e ,公共剥。象请求 代理体系) 最初是对象管理组( o b j e c tm a n a g e m e n tg r o u p ,简称o m g ) 在 1 9 9 0 年1 1 月出版的对象管理体系指南中定义的。o m g 成立于1 9 8 9 年, 是一个非营利的国际性软件组织,主要致力于推广在现有技术基础上集成应 用程序的面向对象标准1 。 c o r b a 。”是o m g 提出的应用软件体系结构和对象技术规范,其核心是一 套标准的语言、接口和协议,用以支持异构环境分布式应用程序间的互操作 及独立于平台和编程语言的对象重用。 c o r b a 整体上由客户程序、公共设施、对象服务和对象请求代理( o r b ) 组成“。c o r b a 的体系结构如图2 1 所示。 图2 1c o r b a 体系结构 i 对象服务( o b j e c ts e r v i c e s ) :定义系统级对象框架,用来扩展o r b 总线,为公共设施和各种客户程序提供的基本服务,如命名服务、 事件服务、通知服务、交易服务、对象事务处理服务、生命周期服 务以及安全服务等。 2 对象请求代理( o r b - - o b j e c tr e q u e s tb r o k e r ) :定义的c o r b a 对象 第1 2 页 第2 章分布止系统发负载,卜衡概述 总线,它作为一个“软件总线”来连接网络上的不同对象,提供对 象的定位和方法调用,它是c o r b a 实现的关键,是建立分布式对象 应用的基础,也是在异构环境中应用之问交互性的基础。 3 客户程序( c l i e n t ) :山各个应用开发者自行丌发的实体,应t 【= | j 对象 使用c o r b a 提供的各种对象服务。客户方对象可以访问对象实现的 对缘引用。客户方对象只是根据对缘接口了解对象实现的逻辑结构, 并通过调用掌握对象的行为,而无须了解实现的具体方法或者与o r b 的交互情况。 4 公共设施( o b j e c ti m p e m e n t a t i o n ) :包含一系列对象实现,对象 实现的方法多种多样,不依赖于o r b 或者客户调用对象的方式。 接下来,介绍c o r b a 的主要特征。 2 3 1o m g 对象模型 o m g 在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 eg u i d e 中定义的对象模型描述了 对想外部特征的标准语义,其中对象、类型、操作、属性、对象实现等语义 与c + + 、j a v a 、e i f f e l 等面向对象程序设计语言十分相似。在该模型中,客户 程序通过一个由i d l 书写的接l j 向服务对象提出服务请求。 请求是一个特定时刻发生的事件,它携带的信息包括操作、提供服务的 目标对象引用、0 个或多个实际参数以及一个可选的请求上下文( r e q u e s t c o n t e x t ) 等。对象引用是可以有效地指称一个对象的对象名字。请求上下文 提供了可能影响请求执行的额外信息,这些信息通常与操作有关。请求表 ( r e q u e s tf o r m ) 用于发送请求,可多次求值或者执行。请求表由i d l 与特 定语言的绑定来定义,另一种形式的请求表通过调用动态调用接口d i i 创建 一个调用结构,往调用结构中添加参数后可发出调用。 在o m g 的对象模型中,对象可以被创建或者撤销。但从客- 户程序的角 度看,并没有什么特别的机制用于创建或者撤销对象,对象创建与撤销只是 发出请求的结果。客户程序通过对象引用指示新创建的对象。 2 3 2 对象请求代理o r b 第1 3 血 筇2 章分布式系统发负找,1 衡 鞔述 c o r b a 体系结构的核心就是o r bo 可以这样简单理解:o r b 就是使得 客户应用程序能调用远端对象方法的一种机制。 c l i 鲥tm 筮h i n e 甚e e rm a 曲i n e 图2 1 2o r b 模型 具体来说就是:当客户程序要调用远程对象上的方法时,首先要得到这 个远程对象的引用,之后就可以像调用本地方法一样调用远程对象的方法。 当发出一个调用时,实际上o r b 会截取这个调用( 通过客户s t u b 完成,“提 高”篇中会详细解释) ,因为客户和服务器可能在不同的网络、不同的操作 系统上甚至用不同的语言实现,o r b 还要负责将调用的名字、参数等编码成 标准的方式( 称m a r s h a l i n g ) 通过网络传输到服务器方( 实际上在同一台机器 上也如此) ,并通过将参数u n m a r s h a l i n g 的过程,传到正确的对象上( 这整 个过程叫重定向,r e d i r e c t i n g ) ,服务器对象完成处理后,o r b 通过同样的 m a r s h a l i n g u n m a r s h a l i n g 方式将结果返回给客户。 因此,o r b 是一种功能,它具备以下能力: 1 对象定位( 根据对象引用定位对象的实现) 。 2 对象定位后,确信s e r v e r 能接受请求。 3 将客户方请求通过m a r s h a l i n g u n m a r s h i n g 方式重定向到服务器对象 上。 4 如果需要,将结果以同样的方式返回。 2 3 3o m g 接口定义语言 i d l ,接口定义语言,是c o r b a 体系中的另一个重要概念。如果说o r b 使c o r b a 做到平台无关,那么i d l ,则使c o r b a 做到语言无关。 正像其名字中显示的那样,1 d l 仪仅定义接口,而不定义实现,类似于 第2 章分布= j = l = 系统发负栽3 卜衡概述 c 。p 的头文件。实际上它不是其j j 的编程语言。要用它编写应用,需要将它 映射它相应的程序设计语言上去,如映射到c + + 或j a v a 上去。映射后的代 码叫c l i e n ts t u bc o d e 和s e r v e rs k e l e t o nc o d e 。 1 d l 的好处是使高层设计人员不必考虑实现细节而只需关心功能描述。 i d l 可以说是描述性语言。设计i d l 的过程也是设计对象模型的过程。它是 编写c o i l i j a 应用的第一步,在整个软件设计过程中至关重要。 i d l 的语法很像c + + ,当然也像j a v a 。很难想像一个程序设计人员是不 懂c 或j a v a 的,所以,几乎所有的程序设计人员都能迅速理解i d l 。而这 正是i d l 设计者所希望的。 2 3 4c o r b a 对象服务 对象服务为创建对象、对象访问控制、对象跟踪和对蒙引用等提供一套 标准函数。对象服务是方便应用程序丌发人员丌发对象的必要的系统服务。 对象服务使应用程序开发人员只需要调用这些服务函数即可,而无需编写和 调用自己私有的对象服务函数。 c o r b a 对象服务包含命名服务、事件服务、通知服务以及交易服务等。 下面简要介绍各个服务。 1 命名服务 c o r b a 命名服务( n a m i n gs e r v i c e ) 是最简单也是最基本的标准c o r b a 服务。它提供从名称到对象引用的映射,给定一个名称,该服务返回一个存 储在此名称下的对象引用。这点有点像i n t e r n e t 的域名服务系统( d n s ) , 将i n t e r n e t 的域名( 如a c m e t o m ) 转换成i p 地址( 如2 3 4 2 3 4 2 3 4 2 3 4 ) 。 0 m g 命名服务和d n s 执行简单的从名称到对应查找值的映射,就像一本电话 薄中的白页,根掘姓氏来查找电话号码。 命名服务给客户提供了许多便利之处。 1 ) 客户程序可以给对象起有意义的名称而不必处理字符串化的对象引 用。 第2 章分布式系统及负载、衡概述 2 ) 通过改变在某个名称下公告的引用值,客户程序可以在不改变源码 的情况下使用不同接口的实现。客户程序使用同一个名称却歌得不 同的引用。 3 ) 命名服务可以使应用程序的组j i 访问一个应用程序的初试引用。在 命名服务中公告这些引用,可以避免引用变成字符串化的引用存储 在文件中的必要性。 命名服务为服务器能以名称的形式公告对象,而客户机通过f 确的名称 来定位对象,提供了一种简便的机制。命名服务消除了依靠带外机制传递字 符串化对象的引用的必要,为对象的引用提供了一种单独的逻辑仓库,可以 提高系统的可靠性和易维护性。 2 事件服务 c o r b a 事件服务( e v e n ts e r v i c e ) 允许应用程序使用解耦合通信模型 ( d e c o u p l e dc o m m u n i c a t i o nm o d e l ) ,不是使用严格的客户机一服务器同步 请求调用机制( c l i e n t - - s e r v e rs y n c h r o n o u sr e q u e s ti n v o c a t i o n s ) 。 事件服务允许提供者在一次单个调用的情况下向一个或者多个用户发送 消息。使用事件服务实现的提供者不需要知道消息的用户是谁;事件服务在 提供者和用户之间起中介体的作用。一个事件服务实现还保护提供者不受异 常的影响,这些异常可能是出于无法获得的,或性能很差的用户对象所造成 的。 c o r b a 事件服务模型中,提供者生成事件而使用者接收事件。提供者和 接收者都连接在一个事件通道上。事件通道将事件从提供者传送到使用者。 而且不需要提供者事先了解使用者的情况,反之亦然。事件通道在事件服务 中起着关键的作用。它同时负责提供者和使用者的注册,可靠地将事件发送 给所有注册的使用者,并且负责处理那些与没有相应的使用者有关的错误。 c o r b a 事件服务提供两利,事件发送模型:推模型( p u s hm o d e l ) 和拉模 型( p u l lm o d e l ) 。对于推模型,提供者将事件推给事件通道,而事件通道 由将事件推给使用者。图2 3 显示了推模型的事件发送。 第2 帝分布式系统及负载平衡概述 ( 服务器)( 客户机)( 服务器) ( 客户机) 事件流的方向 图2 3 推事件发送模型 对于拉模型,事件的发送方向与推模型相反:提供者从事件通道拉回事 件,而事件通道又将事件从使用者拉回来。图2 4 显示了拉模型的事件发送。 ( 客户机 ( 服务器) ( 辑户机) ( 服务器) 事件流的方向 图2 4 拉事件发送模型 事件通道允许多个提供者和使用着之间的相互连接。因为它们有些使用 推模型,有些使用拉模型,事件通道支持4 种不同的事件发送模型,分别是: 1 ) 经典的推模型 2 ) 经典的拉模型 3 ) 混合推拉模型 4 ) 混合拉推模型 3 通知服务 c o r b a 通知服务( n o t i f i c a t i o ns e r v i c e ) 保留了c o r b a 事件服务的所 有特征,包括事件通道、事件消费者和事件提供者,同时扩展了该服务。事 件服务不提供对过滤事件或者说明传输需求的支持。如果不使用过滤器的 话,所有与通道相连的消费者都不得不接收相同的消息。另外如果没有说明 第l7 _ ! :【 第2 章分布式系统发负载,卜衡概述 传输需求的能力,则所有通过通道发送的通知的传输保证都是固定在实现中 的。 通知服务增加了一些新的功能: 1 ) 通知可以定义为数掘结构。这增强了事件服务中通知的有限能力, 事件服务中,通知的类型只能是a n y 或者足由应用程序员说明的一 种类型。 2 ) 事件消费者可以使用过滤器准确地说明它们对那些事件感兴趣。过 滤器可以连接到通道巾的代理。代理将根州在过滤器中对每利一通知 内容说明的约束,把通知转发给事件消费者。 3 ) 事件提供者具有一种发现消费者对那些事件感兴趣的手段。这使它 们只创建那些满足消费者需求的事件。 4 ) 事件消费者可以发现在一个通道中由提供者供应的事件类型,这使 它们可以及时订阅新出现的事件。 5 ) 可以配置通道、代理或者某个事件的属性。这些属性包括事件传输 的r q 靠性、事件的优先级、排序需求以及放弃存储事件的策略。 6 ) 可以额外增加事件类型仓库。它将提供对事件结构的访问,使得定 义过滤约束变得非常方便。 4 交易服务 c o r b a 交易对象服务( t r a d i n gs e r v i c e ) 提供了公布和查找对象的功能 强大而又灵活的方式。当服务器公布对象时,它们把任意类型的任意数量的 属性和对象相关联。当客户机执行查找时,它们明确规定了一系列所要求属 性。交易者评估该寻找查询,并返回一系列匹配对象。 不像名字层次,交易者的对象目录不以任何形式化的方式来组织。相反, 交易服务是基于服务类型的概念。一个服务类型含

温馨提示

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

评论

0/150

提交评论