




已阅读5页,还剩59页未读, 继续免费阅读
(计算机科学与技术专业论文)大规模事务处理系统中动态部署的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
里堕型兰垫查奎兰翌窒生堕兰垡兰塞 摘要 当今,信息系统向分布式演变,复杂程度越来越高。例如,单个服务器的吞 吐率和可用性已经成为瓶颈问题,为了提高系统的性能和可用性,许多分布式应 用需要采用冗余服务技术,这增加了系统和管理的复杂性;又例如,系统需要适 应应用需求的变化,这种变化在系统设计阶段往往是不可预知的,系统必须在运 行时刻动态地调整,以满足应用需求的变化。因此,如何在中间件层次有效支持 分布式系统的管理,特别是动态管理,满足当前分布式应用在性能、伸缩性和可 用性等方面的迫切要求,是一个具有理论意义和实用价值的研究课题。 现有的管理中间件缺乏对动态管理机制的支持。本文以c o r b a 中间件的动 态特性为背景,结合大规模事务处理系统的研制,提出了动态管理中间件的体系 结构,设计了动态部署模块。论文阐述了该体系结构和动态部署模块的特点,着 重讨论了动态管理中间件的若干关键技术,包括服务对象状态管理技术、动态部 署过程中一致性控制技术、系统管理中的自动维护技术和日志管理技术等。本文 提出的动态部署模块在大规模事务处理系统中得到验证。 关键字:管理中间件,动态部署,在线扩展,对象状态管理,截获器 第1 页 国防科学技术大学研究生院学位论文 a b s t r a c t n o w a d a y s ,t h ei n f o r m a t i o ns y s t e mh a se v o l v e di n t od i s t r i b u t e ds y s t e mw h o s e c o m p l i c a t i o n i s i n c r e a s i n gc o n s i s t e n t l y f o re x a m p l e ,t h et h r o u g h p u t a n dt h e a v a i l a b i l i t yo ft h es i n g l es e r v e rh a sb e c o m eab o t t l e n e c k i no r d e rt oi m p r o v es y s t e m p e r f o r m a n c ea n da v a i l a b i l i t y , m o r ea n dm o r ed i s t r i b u t e da p p l i c a t i o n sa d o p tt h e t e c h n o l o g yo fr e d u n d a n ts e r v e r s ,w h i c hi n c r e a s e st h ec o m p l i c a t i o no ft h es y s t e ma n d i t sm a n a g e m e n t a tt h es a m er i m e ,t h es y s t e me v o l v e sa c c o r d i n gt ot h ec h a n g eo f a p p l i e dr e q u i r e m e n t ,a n dt h i sk i n do fc h a n g er e m a i n su n k n o w nd u r i n gt h ed e s i g n p h r a s e o ft h es y s t e m t os a t i s f yt h i s ,d y n a m i cd e p l o y m e n tc o u l dm o d i f yt h e c o n f i g u r a t i o no ft h es y s t e md u r i n gr u n t i m e s o ,i ti sar e s e a r c hw o r ko fg e n e r a la n d p r a c t i c a ls i g n i f i c a n c et os o l v et h ep r o b l e mo fm a n a g e m e n tf o rd i s t r i b u t e ds y s t e m e f f e c t i v e l yi nm i d d l e w a r el a y e r , e s p e c i a l l yd y n a m i cm a n a g e m e n t ,t os a r i s f yt h eu r g e n t d e m a n d so fp e r f o r m a n c e , s c a l a b i l i t y a n da v a i l a b i l i t yi n c u r r e n td i s t r i b u t e d a p p l i c a t i o n s t h em a n a g e m e n tm i d d l e w a r ei sl a c ko fd y n a m i cm a n a g e m e n tm e c h a n i s m a c c o r d i n gt ot h ed e v e l o p m e n to ft h em a s s i v et r a n s a c t i o np r o c e s s i n gs y s t e m ,t h i s a r t i c l ep u t sf o r w a r das t r u c t u r eo fm a n a g e m e n tm i d d l e w a r ea n dd e v i s e sad y n a m i c d e p l o y m e n tm o d u l eb a s i n go nc o r b a t h e nw ed e s c r i b et h e i rc h a r a c t e r i s t i c sa n d p l a c ee m p h a s i so nt h ek e yp o i n t so ft h em a n a g e m e n tm i d d l e w a r e ,i n c l u d i n gt h e d i s c u s s i o no ft h eo b j e c ts t a t em a n a g e m e n t ,t h el o gm a n a g e m e n t ,t h et e c h n o l o g yo f a u t o m a t i cm a i n t e n a n c ea n dh o wt os o l v et h r e ea s p e c t so fc o n s i s t e n c yp r e s e r v a t i o n r e q u i r e m e n t s t h ed y n a m i cd e p l o y m e n t m o d u l ei nt h i sa r t i c l eh a sb e e nv e r i f i e di nt h e m a s s i v et r a n s a c t i o np r o c e s s i n gs y s t e m k e y w o r d s :m a n a g e m e n tm i d d l e w a r e o b j e c ts t a t em a n a g e m e n t d y n a m i cd e p l o y m e n t , o n l i n es c a l a b i l i t y , i n t e r c e p t o r 国防科学技术大学研究生院学位论文 图目录 图1 1 大规模事务处理系统2 图2 1a f l s 应用模型9 图2 2c o r b a 2 3 规范中的截获器模型10 图2 3 请求级截获器1 1 图3 1 动态管理中间件的体系结构一1 2 图3 2 系统监测模块的结构1 5 图3 _ 3 系统部署模块的构成17 图3 4 添加对象示意图一1 9 图3 5 添加服务对象的顺序图一1 9 图3 6 删除对象示意图2 0 图3 7 删除对象的顺序图2 1 图3 8 对象迁移示意图2 1 图3 , 9 对象替换示意图。:2 2 图3 1 0 对象替换的顺序图2 3 图4 1 对象分别处在四种状态时和用户交互示意图2 6 图4 2 服务对象状态变更图2 7 图4 3 数据加载的功能拓扑图一3 0 图4 4 数据加载的对象拓扑图3 1 图4 5 对象a 与b 之间的交互动作3 4 图5 1 系统动态部署模块内部组织3 6 图5 2 注册m l 接口的使用流程3 9 图5 3 对象状态转换流程4 l 图5 4 d y n a m i c d e p l o y m a n a g e r 类图4 1 图5 5l o gv i e w 的数据结构4 3 图5 6 事件内容结构图4 3 图5 ,7o b r s t o r a g e m a n a g e r 接口描述4 4 图5 8 系统自动维护模块工作流程4 5 第i i i 页 国防科学技术大学研究生院学位论文 第i v 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书雨使用过的材料。与我一圊工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意。 学位论文题目:态趣搓皇查矬翌丕统生型查叠墨曲盟窒量塞塑 学位论文作者签名:一一鲜血一 日期:2 铲年2 月彳自 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书。) 学位论文作者签名:拳童丝日期:喈年,三月z 7 日 作者指导教师签名锄:! 丝一 日期:一哗仁月,。日 里堕型兰垫查盔兰旦塞生堕堂垡丝苎 第一章绪论 1 1 研究背景 随着分布计算技术的发展,尤其是c o r b a 、c o m d c o m 和e j b j 2 e e 等技 术的成熟,分布计算中间件已经广泛地应用于经济、工业和科研等方面,异构系 统的互连和互操作问题已经得到了较好的解决。人们开始更多地关注于分布式应 用的可靠性、可用性、可扩展性和可维护性。而在实际应用中,由于分布式系统 的规模越来越大,构件越来越多,导致系统管理问题日益突出,特别体现在适应 应用需求的动态变化方面,所以动态系统管理问题面临更大的挑战。主要体现在 以下几个方面: 1 系统的演化是随着系统运行和应用需求的变化而变化,而这种变化在系 统设计阶段是不可知的。所以,很有可能在系统实际运行后,发现最初 的设计是不符合要求的,或者发现系统的最初设计不能满足性能上的需 求等等。此时需要对系统进行动态的调整,也就是对系统进行动态的部 署,把当前系统从一种状态转变到另一种状态, 2 对系统而言,潜在的用户数量是未知的,同时,用户的访问规律也在不 断地发生变化。例如:在系统初期,用户可能注重数据的加载能力,大 量的数据不停地提交给系统,这时系统就应该提供更多的加载服务;而 在系统后期,用户可能把视线投向数据的查询能力上面,大量的查询请 求不断地提交至系统。这个时候,如果不对系统的资源进行动态的调配, 就可能造成系统的查询瓶颈,也使大量的加载服务没有被充分的使用, 造成了资源的浪费。 面对这样的管理问题,本文针对大规模事务处理系统,主要对系统管理问题 中的动态部署管理进行了研究与实现,下面就大规模事务处理系统进行简要的介 绍。 图1 。1 描述了本课题组正在完成的大规模事务处理系统,该系统平台是用于 开发并行海量数据库系统的分布式大规模事务处理中间件,它提供对海量数据的 并行加载和存储、海量数据的并行查询分析功能。它由多个局部自治的数据库管 理系统和一组中间件组成,中间件用于对这些数据库进行管理,并为用户的管理 和操作提供统一视图。其分布计算环境采用了目前被广泛支持和采用的分布对象 计算标准c o r b a ( c o m m o no b j e c tr 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 标准的s t a r b u s 4 1 ( 国防科大自主研制) 作为系统开发和运行平台,以保证系统 的可扩展性、可维护性、可配置性和对异构性的要求。s t a r b u s 是个遵循c o r b a 规范的分布式软件计算平台,使用s t a r b u s 创建的分布式应用是开放、灵活的, 第1 页 国防科学技术大学研究生院学位论文 结构上是先进的模块化结构,支持应用开发者配置和改变功能,而不需要修改应 用代码。并且应用之间可以进行跨平台的互操作。 图1 1 大规模事务处理系统 大规模事务处理系统采用多数据库技术、并行数据库技术、分布式对象计算 技术以及分布式事务处理技术。对多个异构自治数据库进行管理和调度。它由多 种不同功能的服务对象构成,为了实现容错和负载平衡,该系统还采用冗余服务 技术,服务对象数量上升到1 0 0 多个,并且随着应用规模的扩大,服务对象的数 量将达到了更高的量级。同时,由于应用模式的变更,系统还需要在线进行资源 的动态调整。 但是,大规模事务处理系统对系统的监测、动态部署和q o s ( q u a l i t yo f s e r v i c e ) 方面没有给予足够的重视,这主要体现在以下几个方面: 1 配置和动态部署问题:配置是指在系统运转的生命期内对资源如何分配, 其内容包括配置系统运行环境、服务对象的分布、应用服务器和数据库 的规模等。动态部署是指在系统运行过程中通过对系统监测结果的分析 将系统资源进行动态调整,使得系统运行在最优状态,例如对系统资源 实体的在线添加、去除、迁移、替代等。 2 系统监测问题。监测问题体现在如何收集不同层次的信息,并将这些信 息作为管理工具可用的信息。监测有助于及时、准确地发现系统的性能 瓶颈,定位错误,并为动态管理提供必要的信息。 3 系统自动维护问题。由于大规模事务处理系统中服务对象种类和数量众 多,服务对象之间的连接关系复杂,服务对象之间存在优先级等,使维 护变得很困难。如何在发生故障时,使系统自动或半自动的恢复是自动 维护首要解决的问题。 通过对系统运行状态的监测,并对获取到相关信息进行分析,监测可以为管 第2 页 国防科学技术大学研究生院学位论文 理员对系统配置、部署和维护提供依据。可以说监测是系统管理的基础,系统配 置是监测的依据,而动态管理和自动维护则是对监测的结果进行实施的一种手 段。 针对大规模事物处理系统的特点,本文主要在动态部署方面进行了研究,设 计并实现了个基于c o r b a 的动态管理中间件,着重讨论了动态管理中间件的 若干关键技术,包括服务对象状态管理技术、动态部署过程中一致性控制技术、 系统管理中的自动维护技术和日志管理技术等。为了方便系统管理员及时掌握系 统的运行情况,对现有的运行规模进行动态的调整,本文还需要系统监测服务“” 的支持。 1 2 研究现状 近年来,如何在中间件中提供相应的管理机制和管理工具已经成为研究的热 点问题。针对管理问题的实际需要,本节在此重点讨论动态部署中一致性问题解 决机制的研究现状。 j e f f k r a m e r 和j e f f m a g e e 对动态部署作了大量的研究工作“”“。在他们的理 论中,系统被看作是一个有向图,图中节点是实体,实体之间用线相连。在这种 模型中,他们假设在一对实体之间最多只有一个连接,实体间只能通过事务相互 影响各自的状态。一次事务只能在两个实体间进行,并且事务只能被交互的两个 实体之中的一个开启。他们还定义了事务之间的依赖关系:如果说事务t 依赖事 务t t ,t 2 ,t n ,那么事务t 只有在事务t l 一1 2 一n l 都完成以后才能够执行;反之, 则称事务t 不依赖事务t l ,t 2 ,协。在此定义下,如果要替换实体q ,那么所有可 能直接或间接地和它进行交互的实体都必须进入被动的状态( p a s s i v es t a t e ) ,当 然实体q 也必须进入被动状态,这时就说实体q 进入了可以进行动态部署的安 全状态而可以执行替换操作。在j e f fk r a m e r 和j e f fm a g e e 的方法中,即使规模 很小动态部署操作都会给系统的执行带来很多的影响。这种方法还给应用程序的 设计者施加很重的负担,因为应用程序设计者必须实现对象进入被动状态的操 作。 在m o a z a m i g o u d a r z i 的方法中,假设系统中的构件不能同时执行多个事务, 也就是说,一个构件在同一时间只能参与一个事务。那么,当一个构件没有参与 事务处理时,我们可以通过阻止这个构件的执行而使构件进入被动状态。这样的 好处是,我们不需要实现一个命令来驱使一个构件进入被动状态。但与此同时, 也缩小了系统可使用的范围,因为系统中的构件不能同时参与两个或两个以上的 事务。这就意味着在基于c o r b a 的系统中我们不能使用重进入( r e e n t r a n c e ) 和 多线程( m u l t i t h r e a d i n g ) 技术。 在b i d a ne t a 1 的方法中“,动态部署的功能并不完全在中间件层实现,它还 第3 页 国防科学技术大学研究生院学位论文 需要客户端应用程序和服务对象的支持。这就要求客户端和服务端必须是多线程 的,并且拥有一个重配置线程( r e c o n f i g u r a t i o nt h r e a d ) 。 这些解决方案的一个共同特点是使用配置信息,通常使用详细的配置图作为 交互一致性保持算法的输入。在这些算法中,使用配置信息冻结一些实体,以驱 动系统到达可以进行动态部署的安全状态。但是这种方法可能冻结发启阻碍系统 抵达安全状态的请求的所有实体,使用此类方法,极大的干扰了系统的正常活动, 增加了开销。同时,更改客户端和服务端也加大了管理系统开发的工作量,破坏 了系统的完整性。 在本文设计的方案中,实施动态部署的粒度在服务对象一级而不是在系统一 级。只要某个服务对象进入安全状态就可以对其实施动态管理,减小了系统在动 态部署过程中的开销。同时,为了解决动态部署过程中一致性问题,本文提出服 务对象状态管理技术。 1 3 本文工作 本文基于特定系统,针对管理问题中最重要的动态部署问题,设计并实现一 个使用标准c o r b a 特性的动态部署模型,实现了对象在线的添加、删除、迁移 和替换。主要的工作体现在如下几个方面: 1 针对大规模事务处理系统,分析动态部署过程所面临的一致性问题以及 致性问题的解决方案。 2 设计一个基于大规模事务处理系统的管理系统框架,讨论系统的工作原 理。 3 重点对管理系统框架中的动态部署模块进行了设计和实现。 4 研究并实现了对象的状态管理,实现对象在线的添加、删除、迁移和替 换操作。 5 实现了系统的自动维护、日志管理以及对象库管理三种功能。 1 4 论文结构 全文共分为七章。 第章:绪论。主要介绍课题的研究背景、研究现状、研究内容与研究目标, 以及论文的组织情况。 第二章:对动态部署的相关支撑技术进行介绍。 第三章:设计一个基于大规模事务处理系统管理系统框架,着重介绍系统的 工作原理。在此基础上,对动态部署体系结构进行设计。 第四章:介绍对象状态管理机制和动态部署的实施方法,重点讨论如何解决 动态部署中一致性的问题。 第4 页 一璺堕型兰垫查奎堂竺壅尘堕兰垒笙奎 第五章:介绍动态部署模块的实现技术。 第六章:对动态部署模块进行功能测试,并对测试结果进行分析。 第七章:总结与展望,说明工作的特点和成效。在此基础上,确定今后研究 的发展方向,并对曰后的工作及前景进行展望。 第5 页 里堕型堂垫查盔堂竺塞生堕堂垡丝壅 第二章相关技术 2 1 动态部署技术 动态部署的目标“”是在线更新、在线演化,它要求在不停机的情况下允许系 统从当前的状态更新到下一种状态,并且保证在更新的过程中,对系统带来的影 响要尽可能的低。 系统的演化随着系统运行和应用需求的变化而变化,而这种变化在系统的设 计阶段是不可知的。当发现系统的配置信息不满足系统的实际运行要求,或监测 到系统的异常时,系统必须在运行时刻动态地调整,以满足应用需求的变化。在 动态部署过程中,被配置的服务对象将受到影响,而其它服务对象将继续保持其 原来的状态。 动态部署操作包括如下四类: - 添加:在系统中增加一个新的对象; 一删除:将一个对象从系统中删除; 迁移:对象从一个位置迁移到系统中另外一个位置上; 替换:对象被新的对象替换、新的对象在新环境中运行,但可能有与旧 对象不一样的功能和q o s ( o u a l i t yo f s e r v i c e ) 属性; 动态部署的一个重要要求是保持系统的一致性。为了确保系统的正确性,必 须满足下面三个条件1 : 1 系统满足结构完整性要求( s t r u c t u r a li n t e g r i t y ) 2 系统中的实体处于相互一致性状态( m u t u a l l yc o n s i s t e n ts t a t e s ) 3 保证系统状态的一致性( i n v a r i a n t s ) 2 1 1 结构完整性( s t r u c t u r a li n t e g r i t y ) 系统的动态部署将影响系统的结构完整性,例如,考虑在c o r b a 模型o ”中, 一个对象被另外一个对象所替代,那么无论在动态部署期间或者是在动态部署之 后,客户都可以正常的调用被替换的对象。也就是说,为保证系统结构的完整性, 必须要满足如下两个条件: 1 客户对象能够与新的服务对象进行交互,即客户能够获取到新服务对象 的引用。 2 新的服务对象的接口必须满足被替换对象的接口,即要满足接口兼容性。 接口兼容性是假设v a l 和v 2 是对象a 的两个不同版本,如果v a 2 的接口 与v a l 相同或者v a 2 派生于v a l ,那么我们认为版本v a l 和v a 2 是兼容的,否 则是非兼容的。对于非兼容的两个不同版本的对象,可以用如下两种方法之一来 第6 页 里堕型兰垫查奎堂婴壅生堕兰垡笙苎 满足系统的结构完整性: 1 对此对象的所有客户进行重配置。 2 为此对象提供一个包装版本,能够把请求翻译给新版本的对象。包装版 本的接口要和被替换的对象借口兼容。 在上面提到的第一类方法中,隐藏的客户数量是未知的,如果要对所有的客 户进行重新配置,工作量将是巨大的。第二类方法则只需改动服务端,用户感知 不到真正执行请求的对象的接口已经发生了变化,但是这种方法却增加了系统的 复杂性。 由于系统的状态变更,对象的引用发生了变化,客户所使用的对象引用已 经无效,从对象引用中解析出来的对象l p 地址、端口号和k e y 值已经不是新对 象所拥有的。为了在动态部署后,重新建立对象连接,j e f f k r a m e r 和j e f f m a g e e 在他们的方法中提供一个逻辑中心点,用于查询对象引用失效的对象。 2 1 2 相互一致性( m u t u a l l yc o n s i s t e n ts t a t e s ) 分布式系统中的对象彼此之间要想成功交互,就必须处于相互一致性状态。 如果对象间每次完成的交互都导致一次明确定义的一致的状态间的转换,那么说 对象处于相互一致性状态。交互是对象之间影响彼此状态的唯一方式。 作为示例,考虑对象a 调用对象b 的一个操作。如果a 和b 对它们之间的交互 有同样的认定,那么说a 和b 处于相互一致性状态。具体来说,或者它们都感知 这次调用成功执行,或者它都感知这次调用失败。例如,假设在对象a 向对象b 发送请求后决定使用b 1 对b 进行替换,那么,要使系统保持交互一致的状态,则 必须满足如下三个条件之一: 1 中断此次请求,并通知a 。 2 b 接收到请求,完成该请求并将结果发送给a ,而后再使用b 1 来替换b 。 3 使用b 1 来替换b ,b l 处理该请求,并将处理结果发送给a 。 如果以上行为均未发生,a 也许永远处于等待应答状态。 对于相互一致性的问题,有一种常用的解决机制。为此,我们引进术语“受 影响的实体”( a f f e c t e de n t i t i e s ) i t 2 1p 用来标示那些在动态部署过程中被替换、 删除和迁移的实体。在动态部署完成后,为保证系统的相互一致性,大部分方法 都规定,只有系统处于重配置安全状态( r e c o n f i g u r a t i o n s a f es t a t e ) 时“”,动态部 署过程才允许执行。这时,系统中受影响的实体都处于独立和稳定的状态,并且 没有一个处于交互之中。 有两种策略可以使系统进入重配置安全状态3 。一种方法是通过监测系统的 执行过程而使系统达到重配置安全状态,另外一种方法是通过驱动而使系统达到 重配置安全状态。在前一种方法中,系统是否可以达到重配置安全状态依赖于应 用程序的动作,如果实体间的交互动作持续地进行,那么这种方法就不能保证系 第7 页 国防科学技术大学研究生院学位论文 统可以进入重配置安全状态,从而系统重配置操作将不能够进行。在一种方法中, 重配置算法负责保证安全状态的到达。 2 1 3 状态一致性( i n v a r i a n t s ) 对象按状态属性可以分为有状态和无状态对象。一个对象o ,任取它的一个 执行操作序列a 1 1 ,a l t ,a s s ,a n n ( a im e t h o ds e t ) ,如果任意 调换其中两个操作的顺序,例如,使得o 的执行序列变为:a 1 1 ,a s r , a r s ,a n n ,o 执行每一个操作的结果都不变,那么就被称为无状态( s t a t e l e s s ) 对象,反之则称有状态对象( s t a t e f u l ) 。对于无状态的对象,对象的替换和迁移 不需要考虑对象状态的传递,不存在状态一致性问题。而对于有状态的对象而言, 对象在替换和迁移后必需保持原有的状态,如何获取受影响对象的状态,以及如 何设置新替换和迁移对象的状态是保持状态一致性必须解决的问题。同时,什么 时候去获取、设置对象的状态也是必须考虑和解决的问题。 2 2a f l s a f l s 是基于c o r b a 的负载平衡服务器0 1 。它为软件开发人员提供了一组 a p i ,并实现了对多个冗余分布的应用服务器对象和多类型服务对象的管理,它能 够根据应用服务器的负载来调度客户请求,从而达到提高系统吞吐率的目的。 a f l s 能够自动的检测请求其管理的应用服务器,并及时发现被管理的应用服务 器运行时的失效,避免客户继续访问失效的应用服务器。 如图2 2 所示,a f l s 可以管理多个地理上分布的冗余服务器,图中多个s e r v e r 为冗余的应用服务器,这些应用服务器可以为不同类型的服务器,也可以是相同 类型的服务器。所有的s e r v e r 启动后向a f l s 注册,请求a f l s 管理,并定期向 a f l s 报告负载信息。当a f l s 接收到客户请求时,根据各服务器的负载情况, 透明地将客户请求重定向到一个合适的服务器上。其中a f l s 由主备两个负载平 衡器( l o a db a l a n c e r ) 构成,但在逻辑上对于客户和服务器是一个整体。 这个过程中a f l s 管理了多个分布的应用服务器,通过冗余的应用服务器提 高了系统的吞吐率,同时通过检测所管理的应用服务器,能将失效的应用服务器 从系统中删除。使用a f l s 这种体系结构,可以动态的扩展服务器的规模,也就 是说系统规模动态的可伸缩。 a f l s 采用双负载平衡服务器,因此在其中一个服务器失效情况下,并不影 响系统运转。但管理员应及时发现平衡服务器的失效,及时将其重启,以避免出 现同时失效情况的发生。 第8 页 里堕型兰垫查盔兰至壅生堕兰垡笙塞 图2 1a f l s 应用模型 2 3 截获器技术 在1 1 中已经阐述,动态管理中间件中的一个关键技术是服务对象状态管理 技术。而c o r b a 规范中的截获器技术。1 为实现服务对象状态管理提供了便捷的 解决方法。本节将重点介绍截获器的基本概念和原理。 2 3 1 截获器概念 截获器是c o r b a 2 3 规范提出的一种重要思想,它可以将o r b 服务插入到 对象调用路径中。采用截获器技术可以使o r b 内部的服务明确分离,实现不同 o r b 服务的独立与共存。截获器提供了一种将可移植的o r b 服务增加到遵循 c o r b a 规范的对象系统的高度灵活的方法。准确的说,c o r b a 规范中引入的 截获器技术是为了要在o r b 内核能够便携的加入o r b 服务这一目的而提出的。 所以截获器技术所解决的就是在o r b 内核中加入o r b 服务遇到的问题。 2 3 2 截获器的模型 一个截获器可以负责执行一个或者多个o r b 服务。逻辑上讲,在一个客户 第9 页 国防科学技术大学研究生院学位论文 和一个目标对象之间的调用( 和应答) 路径中,可以插入一个截获器。在 c o r b a 2 3 的规范中定义了两类截获器( 如图2 3 ) : 客户方 客户方 请求级 c 截获器 客户方 请求级 c = 冷ic j 消息级 截获器 客户方 消息级 截获器截获器 l o r b 冈饮 l o r b 图2 2c o r b a 2 3 规范中的截获器模型 1 请求级截获器:负责处理给定的请求( 请求是有明确语义的数据结构,其 中包含请求i d 、目标对象i d 、目标对象接口名、方法名、输入参数 等) 。 2 消息级截获器:负责发送和接收消息( 消息是非结构化的缓冲区,即请求 经过g i o p 编码后的数据结构,其含义对程序是透明的) 。 2 3 3 请求级截获器 请求级截获器在逻辑上位于o r b 的顶层( 如图2 4 所示) ,并可以通过调用它 们的接口安装到o r b 中。请求级截获器分为客户方请求截获器和服务方请求截 获器。前者安装于客户方o r b ,它能截获流出的请求、上下文以及应答和异常。 后者安装于服务方o r b ,它能截获流入的请求、上下文以及应答和异常。截获器 可以在请求处理过程的不同时间点( 称之为截获点) 执行操作。图2 3 中显示了这 些截获点。在不同的截获点,o r b 调用客户方或服务方截获器的相应方法。 第1 0 页 国防科学技术大学研究生院学位论文 截获点: 1 s e n dr e q u e s f f s c n dp o l l 2 r e c e i v er e q u e s ts e r v i c ec o n t e x t s 3 r e c e i v er e q u e s t 4 s e n d _ r e p l y s e n d _ e x c e p t i o n s e n d , o t h e r 5 r e c e i v er e p l y r e c e i v ee x c e p t i o n r e c e i v eo t h e r 图2 3 请求级截获器 第1 1 页 国防科学技术大学研究生院学位论文 第三章动态部署模块的设计 本章将结合大规模事务处理系统的研制,提出了动态管理中间件的体系结 构,并对该体系结构中的配置模块、监测模块及动态部署模块的功能进行了详细 的介绍。同时重点设计了动态部署模块,阐述该模块的特点和动态部署的操作。 3 1 动态管理中间件的体系结构 在讨论动态部署模块之前,本文先要对动态管理中间件的体系结构进行设 计。设计动态管理中间件的体系结构的目的是为了让该结构可以高效、稳定地支 持系统的动态部署操作。可以说,设计一个好的动态管理中间件的体系结构是设 计一个好的动态部署模块的基础。 本文的第一章中已经提到:监测是系统管理的基础,系统配置是监测的依据, 而动态部署和维护则是对监测的结果进行实施的一种手段。相应地,动态管中间 件主要包括三大部分( 如图3 1 ) : 图3 1 动态管理中间件的体系结构 从图中可以看出,相关的功能都被分组到一定的层次。较高层次的模块依赖 于较低层次的模块提供的信息。具体的说,系统动态部署模块所执行的动作依赖 于系统监测模块的监测结果,而监测模块在判断系统是否出现异常时所依据的是 系统配置模块所提供的配置信息。 3 1 1 系统配置模块 系统配置模块主要用于对系统进行初始化,配置系统的运行状况,该模块是 系统运行的基础。配置的内容包括配置系统的运行环境、服务对象的分布和对系 第1 2 页 国防科学技术大学研究生院学位论文 统的监测参数进行配置等,具体地说,系统配置模块需要完成4 方面功能: 1 系统运行所需应用服务器的配置。应用服务器的配置指的是系统包含哪些 服务器,它们运行什么操作系统,提供什么语言,可以运行什么数据库应 用程序等。 2 系统所需服务对象的配置。服务对象配置指的是系统由哪些功能的服务对 象组成,这些服务对象需要运行在什么操作系统上,需要什么语言的支持, 能够访问何种数据库等。 3 服务对象部署配置。服务对象部署配置指的是在什么服务器上部署何种功 能的对象,对象部署的数量是多少,对象运行环境是什么,对象运行的参 数是什么,初始状态是什么等。 4 系统的监测信息配置。系统的监测信息配置指的是系统在监测时,对服务 器和数据库监测的频率,监测的粒度,以及是否启动系统的自动维护功能 等。 一般而言,系统配置主要是用户对系统运行状态的一种期望,即通过配置, 指定系统以何种方式、何种状态运行,而系统实际运行状态并不一定和配置状态 一致,配置状态只是一种期待状态,而运行状态是一种事实。为了讨论的方便, 本文后续部分将系统配置状态称为系统的期待状态。 3 1 2 系统监测模块 系统监测模块“”是一个集信息采集与传输、数据处理和决策支持于一体的综 合系统。该监测系统具有四个功能: 1 服务对象状态监测:主要监测服务对象当前运行状态,服务对象负载( 请 求数、请求的平均处理时间、c p u 占有量、内存占有量) ,服务对象流量 ( 所处理记录数) 。 2 服务器节点状态监测:包括对所有服务器的监测,这些服务器包括数据库 服务器、运行大规模事务处理服务对象的服务器、运行管理服务对象和工 具的服务器和终端、以及所涉及的局域网系统,监测内容为:各个服务器 的性能、d i s ki o 、d i s ks p a c e 、网络状态、对象信息及进程信息。 3 数据库节点状态监测:监测所有数据库当前运行状态,监测数据库系统的 流量( 各日志表在指定时间段内成功加载的记录数以及加载不成功的记录 数,指定时间段内加载成功的记录总数和加载不成功的记录总数) 。 4 定位错误和分析:当发生错误时,帮助系统管理员或者管理工具定位系统 的错误:监测整个系统的运行情况,判断用户的使用模式的变更,在不干 扰正常业务运行的前提下,找寻系统的性能瓶颈,并给出修改和优化建议。 系统监钡4 模块的结构如图3 2 所示:各部分功能如下: 服务代理s a ( s e r v e r a g e n t ) :依附在服务对象实例上的探测器对象,对服 第1 3 页 国防科学案夭学研究生院学位论文 务对象实例及o r b 本身进行监测并获取被监测实体的通信消息以及相关信息。 本机管理者h m ( h o s tm a n a g e r ) :h m 通过s a 收集驻留在本服务器主机上 所有服务对象实例信息,收集主机本身的运行状态信息,并经过数据预处理后将 结果信息传递给监测中心;接受监测中心发出的指令并下达到本主机的每个代理 服务s a ,使s a 按照用户的要求工作。 监测中心:根据收集的信息分析系统是否按照系统配置的要求正常运行;依 据系统策略要求进行信息处理,并将处理完的信息送往错误分析及故障定位器、 负载性能分析器等,最后通过g u i 将系统运行情况动态显示给用户;按照用户指 令通过h m 设置s a 的工作方式;各种信息的存储、监测日志的记录、系统参数 设置以及提供系统配置的编辑等等。 g u h 接受信息管理中心提供的信息并将系统状态以各种表现形式呈现给观 察者,提供通用历史趋势图、实时数据表、动态棒形图、动态x y 曲线图、功 能拓扑图、对象状态拓扑图、报警信号等,用户还可以根据需要定制各种特色的 可视化画面。 错误分析及故障定位:通过获取的信息进行错误分析,并帮助管理员进行故 障定位。 负载性能分析:计算并分析系统负载平衡状态,分析是否出现性能瓶颈,并 提出解决的建议。 策略管理器:策略是套指导和确定如何监测、分析和处理信息的业务规则。 策略管理的目标是确保业务规则总是得到遵循。 数据存储:提供系统日志和系统配置的存储和读取机制。 o m ( o b j e c tm a n a g e r ) :服务对象类管理者,在监测系统中每一类服务对象 都有一个管理者o m ,它为服务对象类提供管理接口,集中管理每个服务对象类 的各个实例。 第1 4 页 国防科学技术大学研究生院学位论文 图3 2 系统监测模块的结构 3 1 3 系统动态部署模块 系统动态部署模块主要负责实施动态部署操作。该模块主要由对象状态管理 模块和部署模块两部分组成。对象状态管理模块的功能是获取和设置服务对象的 状态。部署模块是系统动态部署模块中的核心部分,它负责实施系统的动态部署 操作,实现了系统在运行时刻动态地添加、删除、迁移和替换对象,并保证系统 在执行动态部署过程中,对系统的影响尽量的低。当发生如下几种情况时,将进 行系统的动态调整: 1 系统第一次部署时。在系统进行第一次部署之前,没有任何服务对象提 供服务,没有任何业务在运行,也就是说,整个系统处于初始状态。在 部署过程中,要注意服务对象的层次关系( 优先级) ,按照一定顺序启动 服务对象。 2 发现系统最初的设计不合理时。系统的演化是随着系统运行和应用需求 的变化而变化,而这种变化在系统设计阶段是不可知的。所以,很有可 能在系统实际运行以后,发现最初的设计是不符合要求的,或者发现系 统的最初设计不能满足性能上的要求等等。 3 用户访问模式变更时。对系统而言,潜在的用户数量是未知的,同时, 用户的访问规律也会不断地发生变化。例如:在系统初期,用户所注重 的是数据的加载能力,大量的数据不停地提交给系统,这时系统就应该 提供更多的加载服务:而在系统后期,用户可能把视线投向数据的查询 第1 5 页 国防科学技术大学研究生院学位论文 能力上面,大量的查询请求不断地提交至系统,而加载的规模相对变得 较小。这个时候,如果不对系统的资源进行调配,就可能造成系统的查 询瓶颈,也使大量的加载服务没有被充分的使用,造成了资源的浪费。 4 服务对象长时间运行后。服务对象在长时间、高负荷运行后,可能占用 了系统大量的资源,而没有进行及时地释放。如果继续下去,该服务对 象就可能对用户的请求不敏感,也就是说,用户的访问延迟将会变大。 当这种情况发生时,应该对服务对象进行关闭重启操作使服务对象释放 所有占用的资源。 前面已经提到,在j e f f k r a m e r 和j e f f m a g e e 的方法中,即使规模很小的动态 部署操作都会给系统开来很大的开销。而本文现在所讨论的这种方法避免了这种 情况。后文中,将具体进行这方顽的讨论。 3 2 动态部署模块的设计 本节将在前面动态管理中间件体系结构的基础上,针对大规模事务处理系 统,以高可靠性、可扩展性、可维护性和满足一致性为目标,设计并且实现一个 基于c o r b a 的分布式动态部署服务模块。并详细讨论该模块的构成和动态部署 的操作方式。 3 2 1 动态部署模块的设计原则 对系统动态部署模块的设计要尽量满足下面几点; 增量演化的正确性。当系统从一种状态演化到另外一种状态后,必须保证这 种状态演化的正确性。 伸缩性。随着用户访问模式的变化和访问数量的变更,系统所提供的服务也 可以迸行相应的伸缩。 对系统的正常运行带来最小的影响。设计的关键之处就是在系统执行动态部 署时,对系统的影响要尽量的小。 透明性。动态部署对系统用户而言应该是完全透明的。 c o r b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB65T 3706-2015 汽车内饰件 干热大气暴露试验方法
- DB65T 3625-2014 一种用于奶业追溯条形码编码规范
- (2024年秋季版)七年级道德与法治下册 第二单元 感受现代生活 第五课 飞天梦想 第三框 我们的路还很长说课稿 人民版
- 中石油秋招试题及答案解析
- 管理学试题及标准答案
- 2025年智能仓储机器人智能货架调整技术创新分析
- 活动2 勤洗手讲卫生教学设计-2025-2026学年小学劳动北师大版一年级-北师大版
- 2025企业合同、薪酬集体协议文本
- 2025年顶管施工试题答案及答案
- 中国女足考试题目及答案
- 蔬菜抗营养成分流失工艺考核试卷及答案
- 电能计量装置安装接线规则
- EN61238-1额定电压36kV电力电缆用压接和机械连接器 试验方法和要求
- 专利法全套ppt课件(完整版)
- 自动插件机操作指导书
- 2020年全球森林资源评估
- 培智三年级上册生活数学全册教案
- 高考作文卷面书写
- 船舶驾驶台资源管理bridge team management
- 心律失常介入培训教材课后练习及答案
- 大小球分拣传送机械控制系统设计
评论
0/150
提交评论