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

(计算机应用技术专业论文)分布式应用系统性能优化的研究与实践.pdf.pdf 免费下载

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

文档简介

摘要 摘要 目前,许多大型企业,政府机构,事业单位,他们的业务遍及不同的地域,同 时各个业务也相互关联。这种状况必然产生了他们在构建信息系统时采用分布式应 用系统的需求。随着分布式应用系统规模的扩大,用户访问量和计算复杂性的增大, 系统的性能( 如:响应时间、可用性和可靠性等) 决定了系统的成败。因此,性能 问题成为分布式应用系统主要解决的问题之一。 解决分布式应用系统的性能问题可以从系统架构的改进、程序优化、算法改进 等方面进行,并通过测试来分析系统性能的瓶颈,从而提高分布式应用系统的性能。 因此在系统性能优化过程中,系统性能测试也是一个重要的步骤,它是系统性能瓶 颈分析和系统性能提高与否的依据。 ,本文以中央电大教务管理系统为背景,研究分布式应用系统的性能问题。论文 基于g o s s i p 模型架构对系统原有架构进行改进,并通过使用“右边界 法来验证该 方案实施后提高系统性能的可行性,同时说明了“右边界法的使用方法。 本文最后阐述了使用存储过程技术和算法改进对程序进行优化从而提高中央电 大教务管理系统的整体性能。由于本系统是基于j 2 e e 应用模型的四层结构建立的, 并在各层运用了一系列设计模式以提高系统实现的规范化和开发效率。因此使用存 储过程方法优化程序带来的一个问题是,如何把经过存储过程的优化的程序融合到 j 2 e e 框架中,并且达到比较容易的维护和管理的目标。本文也针对这些问题,做了 有针对性地阐述。 关键词系统性能;分布式系统;数据复制技术;g o s s i p ;存储过程 a b s t r a c t 曼i l l 一 。- - - , 舅曼鼍曼寡量皇篡 a b s t r a c t a tt h et i m eb e i n g ,m a n ye n t e r p r i s e s ,g o v e r n m e n td e p a r t m e n t sh a v eo f f i c e si n d i f f e r e n tl o c a t i o n sa n dh a v er e l e v a n tb u s i n e s s e s t ow o r kc o o r d i n a t e l y , p e o p l ea l e r e q u i r e dt ob u i l du pd i s t r i b u t e di n f os y s t e m s a l o n gw i t ht h ee x p a n s i o no ft h es y s t e m s , t h ej n c r e a s i n go ft h ea m o u n to ft h ev i s i t i n ga n dc a l c u l a t i n g ,t h es y s t e mp e r f o r m a n c e ( s u c h 嬲r e s p o n s et i m e ,a v a i l a b i l i t ya n dr e l i a b i l i t y ) i st h em a i nf a c t o r t h a td e t e r m i n e st h e o u t c o m e a sar e s u l t ,p e r f o r m a n c ei s s u eb e c o m e so n eo ft h em u s t s o l v e dt a r g e t si n d i s t r i b u t e ds y s t e m s p r o b l e m st h a to c c u ri nd i s t r i b u t e ds y s t e mc a nb er e s o l v e db ys y s t e mf r a m e w o r k r e v i s i n g ,p r o g r a ma n da l g o r i t h mi m p r o v i n g ,a l s oi t sp e r f o r m a n c ec a nb ei m p r o v e db y s u r p l u st e s t i n ga n db o t t l e n e c ka n a l y z i n g s ow h i l ei ni m p r o v i n gt h ep e r f o r m a n c e s , p e r f o r m a n c et e s t i sd e f i n i t e l ya ni m p o r t a n ts t e p ,w h i c hi sa ne v i d e n c ef o rb o t t l e n e c k a n a l y z i n ga n d w h e t h e rt h ep e r f o r m a n c e sa l eb e t t e ro rn o t t h i st h e s i sw a sw r i t t e nb a s e do nt h er e s u l to fl 玎v up e r f o r m a n c er e s e a r c ho nt h e d i s t r i b u t e ds y s t e m t h ef o r m i n go fan e wf r a m e w o r ka n di t si m p l e m e n t a t i o np l a nb yu s i n g f e a t u r e so fg o s s i pf r a m e w o r k i na d d i t i o n ,t h i st h e s i su s e s “r i g h tb o u n d a r y m e t h o dt o s p e c i f i e si t sf e a s i b i l i t y ;a n dp r o v et h em e t h o dc a nb e u s e da s a l le v i d e n c ei nt h e i m p l e m e n t a t i o np l a n i na d d i t i o n ,t h i sp r o g r a mw a sa l s or e v i s e db yu s i n gs t o r e dp r o c e d u r et oi m p r o v et h e s y s t e mp e r f o r m a n c e t h i ss y s t e mi sb a s eo nj 2 e e4 - l a y e rf r a m e w o r k a n du s e dan u m b e r o fd e s i g np a t t e mi no r d e rt os t a n d a r d i z es y s t e mi m p l e m e n t a t i o na n do p t i m i z et h e d e v e l o p i n ge f f i c i e n c y b u ts t o r e dp r o c e d u r eb r o u g h tap r o b l e mt h a ti sh o w t om e r g et h e t h e s ec o d ei n t ot h ej 2 e ef r a m e w o r ka n da c h i e v et h ep u r p o s eo fe a s ym a n a g e m e n ta n d m a i n t e n a n c e t h i st h e s i sw a sa l s ow r i t t e na c c o r d i n gt ot h e s ei s s u e s k e y w o r d ss y s t e mp e r f o r m a n c e ;d i s t r i b u t e ds y s t e m ;d a t ar e p l i c a t i o nt e c h n o l o g y ;g o s s i p ; s t o r e dp r o c e d u r e i l l 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经 发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构的学位或 证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 签名鼍驾l 日期:呈丝坚互三厂 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权保 留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内 容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名: 绰 导师签名: 第1 幸绪论 1 1 课题背景及意义 第l 章绪论 随着经济的发展,市场竞争日益激烈,效率成为市场竞争中主要的因素之一。 谁有更高的效率,谁就更有可能在市场中占据主动地位。在企业和组织中合理高效 的利用信息和数据成为提高效率的一个重要手段。当今的大型企业,大都分布在全 国乃至世界各地,要整体把握并利用这些资源并非一件易事。而随着信息技术和 i n t e m e t 的飞速发展,使得分布式应用系统的信息管理的实现成为可能,亦使得企业 有效利用分布在各地的信息数据成为可能。因此分布式应用系统在现代化管理中位 置愈加重要。随之而来的是分布式应用系统的性能问题,它直接影响着信息系统的 效率。因此该系统从设计到实施,都要考虑它的性能问题。 分布式应用系统的性能和可用性面临巨大的挑战。分布式应用系统,一般都存 在着因为用户数目较多,并发服务访问量大而造成服务器的严重负载问题。超负荷 运转的服务器在提供服务时会暴露出以下方面的主要问题:服务器的服务能力远远 不能满足实际需求;服务器的服务可靠性不能保证;服务响应时间长,延迟大,无 法满足用户需求;容易造成服务器的崩溃而停止访问服务。随着计算机技术的不断 发展,计算机的软、硬件成本持续下降,使得分布式应用系统的各种技术得以发展。 这些技术可以分散分布式应用系统的负载,从而降低每台服务器的压力,使分布式 应用系统性能的提高成为可能。 , 本课题来源于中央广播电视大学远程开放教育的教务管理系统( 以下简称为“中 央电大教务管理系统 ) 。中央电大教务管理系统分为中央电大、省电大两级平台, 地理上遍布全国,以中央电大为顶层节点,下设4 4 个省级节点,其下又分别涉及到 几个至几十个分校及教学点节点,是一个典型的分布式应用系统,如图1 1 所示。 从软件体系结构的角度来讲,中央电大教务管理系统是基于j 2 e e 应用模型的四 层结构建立的,并在各层运用了一系列设计模式以提高系统实现的规范化和开发效 率。系统分为表示层、业务层、持久层和域数据层。其中w e b j l 艮务器和应用服务器 分布在同一台高性能计算机上,而数据库服务器分布在另一台高性能计算机上,通 过互联网络进行数据交换。此外用户也需通过互联网络对系统进行访问。 画画画 i 高爿i ,i 。 圉1 】中央电大教务管理系统结构图 f i g u r e i 1t h e c e n t r a l r a d i o 蚰d t vu n i v e r s i t y a d m i n i s t r a t i o ns y s t e m a r c h i t e c t u r e 对于这样一个大型的分布式应用系统来说,眭能问题成为系统是否可用的一个 关键因素。它关乎系统最终的成败。为了解狄中央电大教务管理系统的性能问题, 我们对相关理论进行了实践探索。此外,在设计时我们采用了数据复制技术,井 对一些具体问题提出了解决方案。这些均为分布式计算的理论发展提供了素材,对 我国电子商务、电子政务的大规模应用发展也具有定的参考价值。 1 2 相关领域研究状况 对一个大型分布式应用系统来说,性能问题涵恙了可靠性、可用性、一致性等 很多问题;而且很多因素也都影响若它的性能比如:软件架构、数据的放置、文 件系统、操作系统和发布数据的方法等。因此,解决分布式应用系统性能问题总的 来说要从上面五个方面3 7 ,根据系统的实际情况觯决某几方面的瓶颈问韪。 分布式系统有很多的优点,诸如:桥接物理距离,性能的提高,可剧性的提高t 回 ,盘垦一嘶画一画 虱一 第1 章绪论 自动化,降低成本,提高交互性。分布式系统有如下特征: ( 1 ) 缺乏全局时钟:在程序需要协作时,它们通过交换消息来协调它们的动作。 紧密的协调经常依赖于对程序动作发生时间的共识,但是,事实证明网络上计算机 同步时钟的准确性是会受到限制的,即没有一个正确时间的全局概念。这是由于把 通过网络发送消息作为唯一的通信方式这一事实带来的直接结果。 ( 2 ) 故障独立性:所有计算机系统都可能发生故障,般由系统设计者负责处理 可能出现的故障。但分布式系统的故障却更加独特。网络故障导致与之互联的计算 机的隔离。但这并不意味着它们停止运行。事实上,计算机中的程序不能够检测网 络是出现了故障还是网络运行的比通常要慢。同样,计算机的故障或系统中程序的 异常中止并不能马上被与之通信的其他组件感知。系统的每个组件会单独的出现故 障,而其他组件还在运行【7 】【卵。 上述这些特征都是研究分布式应用系统性能和设计分布式应用系统构架时要考 虑的因素。 分布式应用系统的本质是按照业务需求存储数据、管理数据,并按照用户需求 读出数据。因此数据的管理在分布式应用系统中也是一个关键的部分。它的性能问 题也就成为影响分布式应用系统整体性能的因素之一。在解决这种性能问题时的主 要思路是分散系统对数据访问的压力以及优化相关的程序。随着技术的日趋成熟、 计算机网络技术的飞速发展和应用范围的扩大,分布式应用系统的数据复制技术成 为人们研究的焦点。数据复制技术是解决系统性能问题的一种方式,也是分布式应 用系统中的一种应用技术。在分布式应用系统中,数据复制技术是提供高可用性和 容错的关键技术。由于受移动计算和与此相关的断接操作的影响,高可用性正越来 越引起人们广泛的兴趣。因而,与数据复制技术相关的模型和结构也被相继提出, 如:g o s s i p 体系结构、b a y o u 体系结构以及c o d a 体系结构。 此外,分布式应用系统要解决的另一个问题是大数据量的交换。这种应用需求 推动了轻量级跨平台通信的研究的发展。目前,c a u c h ot e c h n o l o g y 公司制定的 h b w s p ( h e s s i a nb i n a r yw e bs e r v i c ep r o t o c 0 1 ) 是这方面的一个重要成果。 h b w s p 规定了数据的编码标准和对r p c 的表示。它把本地格式的数据编码为二 进制数据;仅用一个字符作为结构化标记。h b w s p 封装后的数据增量明显小于s o a p 封装后的数据增量。而且,h b w s p 的编码标准为提高编码、解码性能提供了条件。 因此,h b w s p 比s o a p 更适用于分布式应用系统间大数据量的数据交换。 最后,应用一个分布式应用系统并不一定会提高其性能和效率。如果应用不当, 反而会降低效率,因此,需要在实施一个分布式应用系统方案前进行严格的系统性 能评估和系统性能测试。 北京t m k 大学t 学硕卜学位论文 要验证一种方案的性能是否有所提高通常采用在真实环境中进行系统的性能测 试。 系统性能测试是在完成框架的大部分功能的基础上,根据真实环境进行的测试。 然而使用该方法在搭建环境时需要具备大量的硬件设施,需要较长的时间,周期比 较长,在财力、人力和时间上投入较大,因此,该方法一般在系统进入实施阶段才 能进行使用。为此,我们可以首先从理论上验证分布式系统的性能提高方案是否可 行与合理,在后期再进行大量资金的投入,降低风险。 1 3 本文结构 本文将分为四个部分来阐述: 第一部分:( 第一章) 对与本课题相关的背景进行介绍, 行综述。同时介绍本课题的来源及主要内容。 第二部分:( 第二章) 分布式应用系统的数据复制技术、 相关技术理论的研究。 对相关领域的研究进 数据库技术以及一些 第三部分:( 第三章) 详细介绍了中央广播电视大学教务管理系统的业务、体 系结构,分析系统的瓶颈和系统性能优化的空间。 第四部分:( 第四章、第五章) 根据第三章的分析,有针对性的对系统的架构 层和程序层进行测试,并根据测试的结果分别分析,找到系统的瓶颈,提出相应的 解决方案,对解决方案进行讨论和完善,并使用“右边界 法验证系统性能提高的 合理性和可行性。最后,根据验证的结果,找到系统性能实施的收益平衡点与最佳 收益点。 4 第2 章分布式应用系统数据复制技术的研究 第2 章分布式应用系统数据复制技术的研究 分布式应用系统由许多自治的计算机组成,并由计算机网络连接,再配置以 分布式应用系统软件。分布式应用系统软件用以协调这些计算机的活动,使得用 户可以共享系统软件、硬件、数据等资源。分布式应用系统从用户的角度来看, 与一个计算机没有任何区别,而实际上用户操作的实现是在不同的地方完成的 2 7 1 。一个高性能的分布式应用系统,可以提高人们的工作效率,给人们的生活 带来便捷。 2 1 分布式应用系统的体系结构模型 要提高一个分布式应用系统的性能,首先需要了解分布式应用系统的体系结 构。从体系结构入手,根据实际情况确定哪些层面是瓶颈的所在,需要进行优化; 哪些层面是在优化中需要考虑的因素( 如:在本系统中,我们在设计优化应用、 服务层时要考虑网络层因素) 。一个系统的体系结构是用指定组件表示的结构, 其整体目标是确保结构能满足现在和将来可能的需求。它主要关心的是如何使系 统可靠、可管理、可适应低成本高效益 2 1 。一个简化但十分重要的分布式应用系 统模型包括计算机和网络硬件层、操作系统层、中间件层、应用和服务层四个部 分组成。如图2 1 所示。 操作系统 计算机和网络硬件 平台 图2 1 分布式应用系统中的软件和硬件服务层 f i g u r e 2 - lh a r d w a r ea n ds o f t w a r el a y e ri nd i s t r i b u t e ds y s t e m 图2 1 所示的模型为研究分布式应用系统的性能瓶颈问题提供了一个切入 北京t 业大学t 学硕f ? 学位论丈 点,宏观上确定了提高分布式应用系统性能的方向。 2 2 分布式应用系统的数据复制技术 数据复制技术是分布式应用系统中一个有效的提高性能的技术。它主要研究 如何在多个计算机中进行数据副本的维护。由于数据复制技术能够增强性能,提 高可用性和容错能力,因此它是保证分布式应用系统有效性的一个关键技术。数 据复制技术是一种增强服务的技术。它的目的包括改善服务性能,提高可用性, 和增强容错能力。 利用数据复制技术提高系统性能主要考虑以下两个因素: ( 1 ) 模型架构:一个好的数据复制模型架构,可以使数据复制建立在有保证 的理论基础上。 ( 2 ) 数据复制的可行性:数据复制架构提供了一个标准和框架,为数据复制 提供理论基础,而在实际的实施中,我们需要考虑使用何种技术来实现数据复制, 使数据复制可以提高系统性能。 2 2 1 复制技术的两种模型一被动( 主备份) 复制和主动复制 分布式应用系统的一个显著优势是容错服务,也就是说即使出现( 最多) f 个进程出现故障,系统还能够提供正确的服务。这种优势主要是依靠多个副本服 务器在网络中同时工作。目前通常有两种模型,即被动( 主备份) 复制模型和主 动复制模型。 2 3 1 1 被动( 主备份) 复制模型 在被动( 主备份) 复制模型中,任何时候都有一个主副本管理器和一个或多 个备份副本管理器。该模型的实质是,前端( f e ) 只和主副本管理器通信来得 到服务。主副本管理器负责更新操作,然后将更新传播传给其他副本管理器。如 果主副本管理器出现故障,那么某个备份副本管理器将被提升为主副本管理器。 模型如图2 2 所示。( 图中:c 为客户端,f e 为前端,r m 为副本管理器) 当用户需要执行一个操作时,系统执行的次序如下: ( 1 ) 请求:前端将请求发送给主副本管理器,请求中包括唯一标识。 ( 2 ) 协调:主副本管理器按收到请求的次序原子地执行每一个请求。同时它 会检查请求的唯一标识,如果请求已被执行了,那就简单地再次发送应答。 ( 3 ) 执行:主副本管理器执行请求并存储应答。 ( 4 ) 响应:主副本管理器将应答发给前端,前端再将应答发送给客户。 6 第2 审分布式应用系统数据复制技术的研究 图2 - 2 被动( 主备份) 模型 f i g u r e2 - 2p a s s i v e ( m a s t e rb a c k u p ) r e p l i c a t i o nm o d e l 由于主副本管理器是将操作的更新发送给备份副本管理器,所以备份只是被 动的记录这些状态。 为了能够在至多f 个进程崩溃时还能工作,被动的复制系统需要f + 1 个副本管 理器。前端不需要任何容错功能。当主副本管理器没有响应时,前端则需要查找 新的主副本管理器。 2 3 1 2 主动复制模型 主动复制模型中,每个副本管理器充当同等的角色并被组织成一个组。前端 把消息以组播的方式发送到副本管理器组中,所有副本管理器均会响应这个请 求,因此其中任何一个副本管理器发生崩溃都不会影响总体服务的性能,因为剩 下的副本管理器仍能继续正常地响应。如图2 3 所示。 1l 形众 t p 一, d j、一 、 f e - i f e i 一 一1 厂 l +澎 图2 3 主动复制模型 f i g u r e2 - 3a c t i v er e p l i c a t i o nm o d e l 对于主动复制模型,当客户请求一个操作时,系统按如下步骤操作: 7 北京t 业大学下学硕f :学位论文 ( 1 ) 请求:前端给请求加上一个唯一标识并将其组播到副本管理器组中。假 设在最坏的情况下,前端会由于崩溃而出现故障,它在收到应答之前将不会发送 新的请求。 ( 2 ) 协调:组通信系统以同样的次序将请求传送到每个正确的副本管理器中。 ( 3 ) 执行:每个副本管理器执行请求。由于它们是状态机,并且请求到来的 次序相同,因此正确的副本管理器会以相同的方式处理请求,请求应答中包括客 户的唯一标识。 ( 4 ) 响应:每个副本管理器都会将它的应答送往前端,而前端收到应答的数 量取决于故障模型的假设和组播算法。例如,如果目标是容忍崩溃故障并且组播 满足一致的协定和排序性质,那么前端可将第一个应答返回给客户,并丢弃其它 的应答。 2 2 2g o s sip 系统一复制技术的应用 2 3 2 1g o s s i p 系统概述 ” g o s s i p 系统的体系结构是一种可以实现高可用性服务的框架,也是复制技术 的具体应用,具体来说是它把数据复制到需要这些数据的客户组的临近点。从它 的名字上可以看出:副本管理器周期地使用g o s s i p 消息来传送客户的更新。 9 0 s s i p 服务提供了两种基本的操作:即查询操作和更新操作。当前端发送查 询或者更新请求给它们选择的副本管理器时,尽管副本管理器可能暂时不能和另 一个通信,系统仍然可以做出以下两个保证: ( 1 ) 随着时间的推移,每个用户最终都将会获得一致性服务:由于不能保证 实时更新和同步,用户可能查询到的是不同信息( 即对于某个副本管理器得到的 信息的新旧程度不同) ,但g o s s i p 服务可以保证在经过一段时间后,通过g o s s i p 消息传播到各个节点来保证数据的一致性。因此用户最终也会得到一致的服务。 ( 2 ) 副本管理器之间的松散一致性:所有的副本管理器最终都将收到所有的 更新。但值得注意的是,虽然g o s s i p 系统的体系结构可以用来获得顺序一致性, 但它主要是用来保证较弱的一致性。所谓较弱是指,不能保证在某个时间段内达 到一致性。因为尽管副本包含同样的更新集,但两个用户却仍可观察到不同的副 本;这样来,用户可能观察到的是过时的数据。 g o s s i p 系统的体系结构要达到的目标是保证服务的高可用性。在这种情况 下,即使用户落到一个网络分区中,但只要还有一个副本管理器在这个分区中可 以工作,那么该用户就可以继续得到服务。但是这种可用性的代价就是必须遵守 松散的一致性。 2 3 2 2 副本管理器状态 8 第2 幸分布式戍用系统数据复制技术的研究 在g o s s i p 系统中,最重要的部分是副本管理器,它是g o s s i p 系统的核心。在 不考虑应用作用时,一个副本管理器包含的主要状态信息如图2 4 所示。 ( 1 ) 值:这是由副本管理器维持的应用状态的值。每个副本管理器都是一个 状态机,它起始于一个特定的初始值,此后,它的状态就完全由更新操作来决定 了。 ( 2 ) 值的时间戳:这是代表更新的时间戳向量( 更新反映在值中) 。在该时 间戳中,每个副本管理器有一个对应的记录,当在值上执行更新操作时,它就会 被更新。 其他r m j - - i 副本时间戳、副本日志 m - s i v 汴l 息 ,7 - 一一一一一一一一一一 | z | 一。一一一 r m 时间戳表 f 副本时间戳 稳定瞧 值 | fi l 更新日志 | 更新 值时间戳 l 执行操作袁 八 、 1 、:等:。 j j | 。、i j 薯孓:_ 、。 o p e r a t i o n f e f e i d u p d a t e p f e v ( 3 ) 更新日志:只要所有的更新操作被收到了,就将会被记录在这个日志中。 一个副本管理器在日志中记录更新有两个理由:第一个理由是因为操作不稳定, 副本管理器不能进行更新操作。个稳定的更新操作可以在它的排序保证下一致 地执行。不稳定的更新必须被阻止;第二个理由是,即使更新是稳定的并且已经 在值上执行,副本管理器并没有收到已被其他所有副本管理器收到的确认,与此 同时,它以g o s s i p 消息形式传播更新。 ( 4 ) 执行操作表:同样的更新可以从前端,也可以从其他的副本管理通过 g o s s i p 消息发送到一个指定的副本管理器中。为了防止一个更新操作被执行两 次,系统将维护一个“已执行操作表 ,它包含了已经执行的更新的唯一标识, 这个唯一标识由前端提供。副本管理器将更新加入日志前,先检查这个表。 9 北京t 业大学t 学硕i j 学位论文 ( 5 ) 时间戳表:时间戳表为每一个副本管理器设置一个位置( 时间戳) ,用 来判断何时所有副本管理器均被更新。 2 3 2 3 更新的传播 g o s s i p 系统之所以可以使各个副本管理器最终达到一致性是因为它对更新的 传播。然而,它的更新传播有其独特的特点:g o s s i p 系统并不指定何时副本管理 器相互交换g o s s i p 消息,也不指定某个副本管理器如何选择其他的副本管理器来 发送g o s s i p ;消息。如果让所有的副本管理器在一个可接受的时间内收到所有的更 新,必须要有一个健壮的更新传播策略。 所有副本管理器收到某个给定更新所花费的时间取决于3 个因素: ( 1 ) 网络分区的频率和持续期间。 ( 2 ) 副本管理器发送g o s s i p 消息的频率。 ( 3 ) 选择一个副本管理器并发送g o s s i p 消息的策略。 第一个因素不在系统的控制中,尽管用户可以在某些程度上决定它们离线工 作的频率。合适的g o s s i p 交换频率仍由应用的实际情况来决定。 人们还提出了一些由合作者选择的策略。g o l d i n g 和l o n g 在他们的“基于时 间戳反熵协议 中使用了一个类似g o s s i p 的更新传播机制,考虑了随机、确定和 拓扑策略【4 1 。 随机策略是以随机的方式选择一个合作者,但是使用了加权概率来选择一些 更合适的合作者例如,邻近的合作者优于较远的合作者。g o l d i n g 和l o n g 发 现这种策略在模拟环境中工作的非常好。而确定性策略使用副本管理器的状态的 一个简单函数来选择合作者【2 】。例如,一个副本管理器可以检查它的时间戳表, 选择看上去在收到的更新中最后的那个副本管理器。 拓扑策略是将副本管理器安排为一个固定图。一种可能是网格( m e s h ) 型: 副本管理器将g o s s i p 消息发送到它连接到的其他副本管理器中。另一种是将副本 管理器组织为一个环形,每个管理器只将g o s s i p 传给它的邻节点( 比如,以逆时 针方向传递) ,这样任何一个副本管理器的更新将遍历整个环。还有一些别的拓 扑结构,如树状拓扑结构等。当然也可以根据实际情况设计拓扑结构。 像这些不同的合作者在选择策略时必须权衡通信量和高传播延时,以及单一 的故障对其他副本管理器产生影响的可能性。实际中的选择与这些因素的重要性 相关联。例如,环结构将产生较小的通信量,但可能造成高延时,这是因为g o s s i p 消息通常要遍历若干副本管理器。而且,如果某个副本管理器出现故障,那么整 个环都将不能正常工作,需要重新配置。比较而言,随机选择策略不易于出故障, 但它可能产生更新传播次数的变化。 i o 第2 审分布式应用系统数据复制技术的研究 i l1 1 , 曼曼皇曼曼舅蔓皇皇曼量曼鼍曼曼皇皇皇曼皇皇曼量舅舅皇曼 2 3 2 4g o s s i p 消息 副本管理器间的更新是通过g o s s i p 消息实现的。副本管理器可以发送包含一 个或多个更新信息的g o s s i p 消息,以便其他的副本管理器更新它们的状态。 一个g o s s i p ;? 肖息m 包含两项:日志m 1 0 9 和副本时间戳m t s 。收至l j g o s s i p 消息的 副本管理器有下面3 个主要任务: ( 1 ) 将到达的日志和它自己的日志合并。 ( 2 ) 执行更新操作。 ( 3 ) 当它知道更新已执行并且已经没有被重复的危险时,删除日志和已经执 行操作表中的记录。从日志和已经执行操作表中删除冗余条目非常重要,否则, 它们将会无限制的增长。 2 2 3 其他复制架构的简介 b a y o u 系统是复制技术的另一个应用。b a y o u 系统通过数据复制获得高可用 性,它类似于g o s s i p 系统体系结构。但b a y o u 系统采用了一个显著不同的方法, 它能够进行领域特定的冲突检测和冲突解决。而且b a y o u 系统通过一个中央控制 器来保证复制的实时性。 b a y o u 和其他复制方案的不同之处在于,它使得复制对于应用是不透明的。 它利用应用语义提高数据的可用性,同时维持一个复制状态,即我们所说的最终 顺序一致性1 2 酬。 这种方法的不足之处首先在于增加了应用程序的复杂度,它必须提供依赖检 查和合并过程。当大量的可能冲突需要检查并解决时,生成这两者都非常复杂。 第二个不足是增加了用户在日记中登记了一个时间段,后来却发现登记已经“跳 到了邻近的一个时间段,很难给出用户一个清晰的指示,哪些数据是尝试性的, 哪些数据是提交性的。 除此之外,还有c o d a 系统,它也是复制技术的一种具体应用。 通过对以上几种系统的研究,我们的系统适合使用g o s s i p 系统的技术。 2 2 4j a v a 消息服务 无论是g o s s i p 系统还是b a y o u 和c o d a 系统,都需要使用消息进行通信,在众 多技术中,j m s ( j a v a m e s s a g es e r v i c e ,j a v a 消息服务) 是一种较为流行的技术。 j m s 是一组j a v a 应用程序接口( j a v a a p i ) ,它提供创建、发送、接收、读取消 息的服务。s u n 公司和它的合作伙伴设计的j m sa p i 定义了一组公共的应用程序 接口和相应语法,使得j a v a 程序能够和其他消息组件进行通信。 j m s 是一种与厂商无关的a p i ,用来访问消息收发系统。它类似于j d b c ( j a v a d a t a b a s ec o n n e c t i v i t y ) 这里,j d b c 是可以用来访问许多不同关系数据库的a p i , 而j m s 则提供同样与厂商无关的访问方法,以访问消息收发服务。 j m s 能够通过消息收发服务( 有时称为消息中介程序或路由器) 从一个j m s 客户机向另一个j m s 客户机发送消息。消息是j m s 中的一种类型对象,由两部分 组成:报头和消息主体。报头由路由信息以及有关泼消息的元数据组成。消息主 体则携带着应用程序的数据或有效负载。根据有效负载的类型来划分,可以将消 息分为几种类型,它们分别是:简单文奉( t e x tm e s s a g e l 、可序列化的对象 ( o b j e c t m e s s a g e ) 、属性集合( m 印m e s s a g e ) 、字节流( b y t e s m e s s a g e ) 、原始值流 f s 口e a mm e s s a g e ) ,还有无效负载的消息r m e s s a g e ) 。 消息收发系统是异步的,也就是说,j v l s 客p 机可以发送消息而不必等待 回应。比较后可知这完全不问于基于r p c ( 远程过程调芹j ) 的系统。在r p c 中,客户机调用服务器上某个分布式对象的一个方法。在方法调用返回之前,该 客户机被阻塞;该客户机在执行下一条指令之前,必须等待方法调用结束。在 j m s 中,客户机将消息发送给一个虚拟通道( 主题或队列) ,而其它j m s 客户机 则预订或监听这个虚拟通道。当j m s 客户机发送消息时,它并不等待回应。它执 行发送操作,然后继续执行下一条指令。捎息可能龋终转发到一个或许多个客户 机上,这些客户机都不需要做出回应。 j a v a 消息服务支持两种消息模型;点到点( p o i n t t o - p o i n t ,简称p 2 p ) 消息和 发布订阅( p u b l i s hs u b s e f i b em e s s a g i n g ,简称p u b s u b ) 消息。j m s 规范并不要求 供应商同时支持这两种消息模型,但开发者应该熟悉这两种消息模型的优势与缺 点。 p 2 p 消息模型是在点对点之日j 传递消息时使川。如果应用程序开发者希望每 一条消息都能够被处理,那么应陔使用p 2 p 消息模型。与p u b s u b 消息模型不同, p 2 p 消息总是能够被传送到指定的位置珊j 。如图2 5 所示。 r、pqsgi 9lj 刨虽咖点国 k c k _ i t , w t e d g e * 图2 - 5 点对点通信方式 f 褂r e2 - 5p 2 p m e s s a g ew a y p u b s u b 消息模型在一到多的消息广播时使用。如果一定程度的消息传递的 不可靠性可以被接受的话,那么应用程序开发者也可【三l 使用p u b s u b 消息模型。 换句话说它适用丁所有的消息消费程序并不要求能够收到所有的信息或者消息 消费程序井不想接收到任何消息的情况。州f 1 2 - 6 所示。 刚喜 霉豳- 愚等,k i 曰 急i 舞困 l _ - _ _ j 回 幽2 - 6 发布, 丁田通信方式 f i g u r e26p u b l i s hs u b s c r i b em e s s a g ew a y 2 25 消息驱动b e a n e j b2 0 舰范定义了一种新的e y b 类型,即消息驱动的e j b ( m e s s a g e d r i v e n e j b ,简称m d b ) ,它能够以e j b 的形式作为j m s 消息的接收者。另外,使用消 息驱动b e a n 的优点是,如粜接收端,发现有个消息传米,会、即处理这个消息, 而不用等待很长段时间。消息驱动o e j b 实现一组新的接口,这组接口使得e j b 能够异步地接收和处理j m s 消息生产肴发送到队列或话题的消息。e j b 客户程序 的构造方式与普通j m s 消息生产者的构造方式完全一样,也就是说,j m s 消息生 产者不必知道消息的消费者是一个e j b p ”。 一个消息舡动b e a n 的所有的实侧都是等价的,这使料窖器能够把消息指派给 任意一个消息驰动b e a n 的实例。容器能够建立消息驱动b e a n 的缓冲池,实现消 息的并发处理;一个消息驰动b e a n 能够处理柬自多个客户程序的消息。 消息驱动b e a n f l j 实例变量可以在处理客户消息期间包含一些状态信息,例如 m s 连接、打丌的数据库连接,或者是对e j b 对象的引用。当一个消息到达,容 器调用消息驱动b e a n f 拘o n m e s s a g e 0 方法处理消息。o n m e s s a g e o 方法通常把消息 定型( c a s t ) 为五种j m s 消息类型之一,然后按照应用业务逻辑的要求处理消息。 在消息驱动b e a n 中,s e t m e s s a g e d r i v e n c o n t e x t ( ) 方法用来把一个 m e s s a e d r i v e n c o n k x t 的对象实例传递给e j b ,它是m e s s a g e d r i v e n b e a n 接口定义 中容器调用的第一个方法。m e s s a g e d r i v e n c o n t e x t 对象封装了一个e j b 消息驱 动容器上下文的接口,支持消息驱动的e j b 实例访问容器提供的运行时消息驱动 上下文对于消息驱动的e j b 来蜕,关键之一是要实现一个没有参数的e j b c r e a t e o 方法。当e j b 容器准备创建消息驱动e j b 的实例时它将调用这个方法。容器之 所以决定创建某个e j be f j 实例,可能是因为它要构造一个b e a n 实例的缓冲池,也 北京t 业大学t 学硕l j 学何论丈 可能是因为它接收到了客户的请求。这个e j b c r e a t e 0 方法和其他b e a n 上的e j b 构 造方法类似,属于e j b 实现的一种特殊的构造函数或初始化方法。 2 2 6h b w s p 技术 在复制框架中,消息使各个节点顺利通信,而通信的目的是为了各个节点数 据的复制。在网络中大规模数据复制可能会成为分布式应用系统性能的又一瓶 颈。因此需要找到一个高效的数据复制技术。 c a u c h ot e c h n o l o g y 公司制定的h bw s p ( h e s s i a nb i n a r yw e bs e r v i c e p r o t o c 0 1 ) 把本地格式数据编码为二进制数据,而且仅用一个字符作为结构化标 记。h b w s p 封装后的数据增量明显小于其他的方法( 如s o a p ) 封装后的数据增 量。而且,h b w s p 除了规定数据的编码标准以外,还规定了对r p c 的表示,是 跨平台的通信协议。因此,h b w s p 更适用于分布式应用系统间大数据量的数据 交换。 h e s s i a n1 0 1 版本的编码规范的一个子集作为外部数据表示;采用h t t p 协议 传输r p c 消息,如图2 7 所示。它具有: i - l e s s i a ab i n a r yw e bse r v i cepr o t o e o l 图2 7 一种基于h b w s p 的跨平台通信 f i g u r e 2 - 7c r o s s - p l a t f o r mc o m m u n i c a t i o no f h b w s pb a s e d ( 1 ) 结构化标记简单的外部数据表示。 ( 2 ) 轻便的用于实现h b w s p 的架构。 h b w s p 的外部数据表示包含3 个重要的特点: ( 1 ) 采用简单的结构化标记。 ( 2 ) 采用定长的字节记录值。 ( 3 ) 采用引用取代重复遇到的对象。 这3 个特点为提高编码、解码的性能创造了条件。 使用简单的结构化标记减少了编码、解码操作对内存的占用量。编码时,只 需写少量的数据,就可以标记结构;解码时,只需读少量的数据就可以确定结构。 1 4 第2 审分布式应用系统数据复制技术的研究 i , 一i l i i i i i i i ii 曼曼量 而且,简单的结构化标记减少了编码后的数据增量。 使用定长的字节记录值,解码时,就可以使用位操作从固定长度的位获得值。 这样,不仅操作简单,而且可以获得较高的性能。 使用引用取代重复遇到的对象可以避免对重复对象的编码,而且也减少了编 码后的数据量。 一 : 2 3 数据库系统和存储过程 2 3 1 数据库系统 一个分布式应用系统需要对数据库进行访问,因此数据库的访问可能是制约 分布式应用系统性能的因素之一。所以如何提高数据库访问的性能是解决系统性 能瓶颈的一个关键所在。数据库是用来满足多种类型终端用户需要的相关数据的 共享集合。这种数据的存储不依赖使用它的程序,加入新的数据,修改和检索现 有的数据都受到周密的控制,数据检索可以由多个用户用不同的方法以适当的个 人控制来进行【5 1 。这种数据的结构为实际应用开发提供了一个稳健的数据基础。 此外,建立数据库管理系统( d b m s ) 的宗旨是减少维护并在

温馨提示

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

评论

0/150

提交评论