(计算机应用技术专业论文)web应用服务器多层次可重配体系结构.pdf_第1页
(计算机应用技术专业论文)web应用服务器多层次可重配体系结构.pdf_第2页
(计算机应用技术专业论文)web应用服务器多层次可重配体系结构.pdf_第3页
(计算机应用技术专业论文)web应用服务器多层次可重配体系结构.pdf_第4页
(计算机应用技术专业论文)web应用服务器多层次可重配体系结构.pdf_第5页
已阅读5页,还剩61页未读, 继续免费阅读

(计算机应用技术专业论文)web应用服务器多层次可重配体系结构.pdf.pdf 免费下载

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

文档简介

摘要 w e b 应用服务器多层次可重配体系结构 摘要 随着因特网迅速发展,网络软件平台已成为当今软件技术发展主 流趋势和竞争焦点,其核心和关键是位于中间层的w - e b 应用服务器。 w 曲应用服务器是在w r e b 计算环境下产生的一种新型中间件,为w - e b 应用提供一系列运行时基础服务,并具有高可伸缩性、高可用性、高 可靠性和高效等特性。w r e b 应用服务器具有良好的应用前景,可广泛 应用于企业信息化、电子商务、电子政务等领域。 w r e b 应用服务器自产生以来,得到工业界和学术界的普遍关注, 已成为最近几年最热门的软件类型,被认为是自从关系型数据库以来 最令人激动的企业应用技术。针对w r e b 应用这一主流发展趋势以及 w r e b 应用服务器的软件基础设施作用,本文选择w e b 应用服务器的重 要关键技术问题进行研究。 论文对w 曲应用服务器的研究热点和关键技术的现状进行分析。 为了满足w r e b 计算动态性所带来的不断变化的需求,w 曲应用服务器 需具备在运行期间可动态重配的能力。论文建立了w r e b 应用服务器的 动态重配模型d r ,并设计了一种动态重配算法,驱使系统逐步进入 重配安全状态,从而维持系统重配前后的结构完整性、交互状态和应 用状态的一致性。基于反射中间件技术,结合微内核技术和组件技术, 设计覆盖w 曲应用服务器整个生命周期的多层次重配体系结构。该体 系结构支持d r 模型,具有较好的可扩展性、灵活性和开放性。 上述若干关键问题的解决方案和技术已在j 2 e e 应用服务器中实 i 北京化工大学硕十学位论文 现。目前,已通过了s u nj p s 的所有功能测试,支持j 2 e e l 3 规范, 并通过了j 2 e e 应用服务器性能测试基准e c p e r f 所要求的各项性能指 标。 关键词:w 曲应用服务器,动态可重配模型,多层次可重配体系 结构,微内核 摘要 m u i j r i l a y e rr e c o n f i g u r a b l e a r c h i t e c t u r ef o rw e ba p p l i c a t i o ns e r v e r a b s t r a c t w t ht h ee x p l o s i v ed e v e l o p m e n to fi n t 锄e t ,s o 腑a r cp l a t f o 衄sf o r w r e b 印p l i c a t i o n sh a v eb e e nt h em a i n s t r e a mc a t e g o 巧i ns o r w a r ei r l d u s t 移 t h ec o r ea n dk e ye l e m e n to ft h ep l a t f o r mi sw - e ba p p l i c a t i o ns e r y e r ( a s ) ,w h i c hr e s i d e sa tt h em i d d l et i e ri nt h et h r e e t i e rc l i e n t s e n r e r a r c h i t e c t l l r e a ss o l v e st h ep r o b l e m si n 印p l 姐n gt r a d i t i o n a lm i d d l e w a r e t ow | e bc o m p u t i n ge n v i r o n m e n ta n dp r o v i d e sas e r i e so fm n - t i m es e i c e s t 0s u p p o r tf o r 、7 v r e b 印p l i c a t i o n s w a sh 懿ah u g ep o t 伽【t i a lm a r k e t ,a 1 1 di t c a nb eu s e dt ot ob u i l de n t e 印r i s em a n a g e m e n ts y s t e m ,e - c o m m e r c e ,a n d e 。g o v e m m e n ts y s t e m a t t e n t i o nt ot h en e w c a t e g o 巧o fm i d d l e w a r eh a sb e e n d r a 、nf 而mt h e a c a d e m i aa n ds o r w a r ei n d u s t ua r e ri tw a sb o m i ti sc o n s i d e r e dt ob e o n eo ft h em o s te x c i t i n gm i l e s t o n e so fe n t e 印r i s es o 小a r et e c l l l l o l o g y s i n c et h er e l a t i o n a ld a t a b a s ea n dh a sb e c o m ev e 巧p o p u l a ri n 也el 懿tf e w y e a r s 1 om e e tt h eu 唱e n tn e e df o r a sa n dc a t e rf o rt h em a i n s t r e 锄 t r e n do fw r e b 印p l i c a t i o n s ,t h i st h e s i so u t l i n e ss o m ek e yi s s u e si n d e v e l o p i n gw s t oc a t e rf o ra ni n c r e a s i n g l yd i v e r s er a n g eo fq o sd e m a l l d s ,ad y n 锄i c m 北京化工大学硕 :学位论文 r e c o n f i g u r a t i o nm o d e lf o r a s s ,r e f e r r e dt oa sd r ,i sp r e s e n t e d ,a n da r u n t i m er e c o n f i g u r a t i o na l g o r i t h mi sd e s i g n e dt od r i v et h es y s t e mt ob e r e c o n f i g u r a t i o n s a f e s t a t e f o rt h e p u 巾o s e o f p r e s e r v i n g t 1 1 e r e c o n f i g u r a t i o nc o n s i s t e n c y am u l t i - p h a u s er e c o n f i g u r a b l ea r c h i t e c t u r ei s i m r o d u c e do nt h eb a s eo fd rm o d e l ,s u p p l e m e n t e db yt h em a m a g eo f m i c r o k e m e lt e c l l i l o l o g ya n dr e f l e c t i o nt e c l l i l o l o g y i nt h ea r c h i t e c t u r e , w si sv e 巧o p e na n dn e x i b l et os u p p o nd 印l o 弘n t t i m ec o n f i g u r a b i l i 缈 a n dm n t i m er e - c o n f i g u 砒i l i 咄 aj 2 e e 印p l i c a t i o ns e r v e ri s i m p l e m e n t e d t h ea p p r o a c h e s 觚d s o l u t i o n st h et h e s i sp r o p o s e da i ea p p l i e dt ot h ed e s i g na n di i n p l e m e n t a t i o n o ft h es e e rp r o d u c t a tp r e s e n t ,i th a sp a s s e da l l 血et e s tc 弱e si ns u n p e t s t o r et e s ts u i t e a l lt h es t r e s s i n gt e s tc a s e si ne c p e r fb e n c h i i l a r kh a v e b e e np a s s e da l s o i tc a i lb e u s e dw i d e l yi ns m a ua n dm i d d l e s i z e d e n t e 印r i s e s k e yw o r d s :w r e ba p p l i c a t i o ns e n ,e r ,d y n a m i cr e c o n f i g u r a t i o n m o d e l ,m l l l t i - l a y e rr e c o n f i g u r a b l ea r c h i t e m l r e ,m i c r o k e m e l 北京化工大学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本 论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文 的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本 人完全意识到本声明的法律结果由本人承担。 作者签名日期:壁星:! :三鱼 关于论文使用授权的说明 学位论文作者完全了解北京化工大学有关保留和使用学位论文 的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属北 京化工大学。学校有权保留并向国家有关部门或机构送交论文的复印 件和磁盘,允许学位论文被查阅和借阅;学校可以公布学位论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编 学位论文。 保密论文注释:本学位论文属于保密范围,在上年解密后适用 本授权书。非保密论文注释:本学位论文不属于保密范围,适用本授 权书。 作者签名: 导师签名: 日期:2 墨:! :兰垒 日期:竺墨:三二出 第一章引言 第一章引言 w 曲应用服务器是w 曲计算环境下产生的中间件平台,为运行和管理w 曲 应用提供一系列运行时服务( 如消息、事务、安全、负载平衡等) 。作为一种新型 中间件,w 曲应用服务器为w 曲应用屏蔽底层服务的具体实现细节和运行环境 的差异,降低开发w 曲应用的复杂性,缩短开发周期,提高软件的重用程度。 绝大多数w 曲应用均受益于此,但在满足w c b 应用和计算环境对系统不断变化 的q o s 需求方面,w 曲应用服务器遇到了挑战【l 捌: ( 1 ) 一般情况下,用户很难使用w 如应用服务器的全部功能和服务,可能仅 使用部分功能,多余的功能不仅浪费用户的投资,而且浪费系统资源和存储空间, 为此,w 曲应用服务器功能必须是可定制,满足“w h a ty | o un e e di sw h a ty 0 ug e t ( w 呵m g ) 的要求p ,4 j ; ( 2 ) 由于不可能完全预先满足用户所有的q o s 需求,w 曲应用服务器不仅需 支持应用级功能的定制,而且能在运行期间根据系统自身的状态、动态替换系统 所提供的服务实现从而自适应地控制系统的行为。如为了提高系统高可用性和整 体性能,用户可能替换负载度量和负载平衡策略【5 】; ( 3 ) 对于一些长期运行在w 曲应用服务器上的关键业务应用如电信交换软 件、电子商务系统等,很短暂的停机可能给企业带来巨大的经济损失和安全隐患。 为此,w 曲应用服务器需具备不问断运行的能力,易维护性好,可用性高。在运 行期间可对系统进行维护,在不影响其它服务的前提下,动态添加、删除、更新 服判6 1 ,也是提高系统的可用性一种方法。 为了满足上述可定制性、高可用性、自适应性和易维护性需求,w 曲应用服 务器需开放部分底层实现,让应用和服务动态感知底层内部状态,动态替换底层 服务实现,提供一个可动态重配的开放、灵活的体系结构【2 ,7 。1 0 】。 动态可重配( d ”锄i cr e c o n f i g u r a t i o n ) 【1 0 。6 】是指系统在运行期间更改其自身 结构后不需重新编译就可以不断演化的能力【r 7 。1 9 1 。与设计期间不同,动态可重配 给系统的运行的影响应该很小,或者没有,这样,系统就不需要离线运行或重新 启动。 第二章背景知识 第二章背景知识 2 1本课题相关领域的历史 2 1 1 讹bs e r vic e s w 曲s e 耐c e s 是一种用于分布式环境的新的计算模式。它描述了一组用于分 布应用程序交互的协议和规范,允许w 曲站点放置可编程的元素以实现基于w 曲 的分布计算和处理。由于w 曲s e 州c 髓采用x m l ( e x t e 鹏i b l em a r k u pl 觚g u a g e ) , s o a p 等平台无关的技术作为基础,使异构性不再是阻碍分布式应用的障碍。虽 然它诞生不久,但已经在短短的时间内飞速发展并展示了在电子商务等方面的广 阔应用前景。【硎 2 1 2w e b 应用服务器 w 曲应用服务器是在w r e b 计算环境下产生的一种新型中间件,为创建、部 署、运行、集成和管理w 曲应用提供名字解析、负载平衡、事务控制、失效恢 复、容错、安全等一系列运行时基础服务,并具有高可伸缩性、高可用性、高可 靠性和高效等特性。它屏蔽了底层操作系统的差异,为大型网络化应用系统提供 运行支撑环境,降低软件复杂度和难度,避免重复劳动,提高可重用程度,加快 软件开发的进度,提高软件开发的成功率和软件质量,并大大降低了软件的维护 难度。w 曲应用服务器具有良好的应用前景,可广泛应用于企业信息化、电子商 务、电子政务等领域。 w 曲服务器性能是整个w 曲系统的关键环节,提高w 曲服务器的性能也是 长久以来人们一直关注的课题。关于w 曲负载,除了对w 曲负载的特征进行分 析以便在评测时更好地再现真实负载之外,还要考虑w 曲服务器所在的网络环 境下负载的情况。人们不仅要求服务器满足正常的工作负载要求,而且在高峰时 期依然要保持较高的吞吐量。但是,服务器在高负载的情况下的性能表现往往低 于人们的期望。 2 2 本课题相关领域的现状 目前,b e aw 曲l o 西c 和m mw 曲s p h e f e 等大多数主流w 曲应用服务器,都 基于一体化体系结构和黑盒抽象机制进行设计,存在开放性和灵活性低等不足。 c o m d c o m 通过m a r s h m 接口定制编集( m a r s h a l l i i l g ) 和反编集( u n m a r s h 砒l i n g ) 3 北京化工大学硕:学位论文 过程,提供一种可扩展、灵活的远程激活体系结构如文献【2 l 】设计的c o m e r a 。 尽管增加了一些开放、灵活的特性,但对可定制和动态可重配的支持程度有限, 很难满足需求的不断变化,特别是应用对系统所提供的基础服务的需求的变化。 而本文设计的多层次可重配体系结构,覆盖了w 曲应用服务器整个生命周期的 不同阶段,具备了在服务器部署期间、运行期间在多个层次( 重配层、元服务层、 基础服务层和应用层) 对系统进行定制、动态重配的能力。根据变更需求,不同 重配角色可以对原有的基础服务进行重新设计和优化、开发和部署,从而满足应 用对系统基础服务的o o s 需求。 2 3 本课题的创新之处 论文对w 曲应用服务器的研究热点和关键技术的现状进行分析。为了满足 w 曲计算动态性所带来的不断变化的需求,w 曲应用服务器需具备在运行期间 可动态重配的能力。论文建立了w 曲应用服务器的动态重配模型d r ,并设计了 一种动态重配算法,驱使系统逐步进入重配安全状态,从而维持系统重配前后的 结构完整性、交互状态和应用状态的一致性。基于反射中间件技术,结合微内核 技术和组件技术,设计覆盖w 曲应用服务器整个生命周期的多层次重配体系结 构。该体系结构支持d r 模型,具有较好的可扩展性、灵活性和开放性。 上述若干关键问题的解决方案和技术已在j 2 e e 应用服务器中实现。目前, 已通过了s u nj p s 的所有功能测试,支持j 2 e e l 3 规范,并通过了j 2 e e 应用服 务器性能测试基准e c p e r f 所要求的各项性能指标。 2 4本文结构 本文第三章介绍动态重配的基本概念,对重配管理需解决的问题进行了讨 论;第四章给出了w 曲应用服务器的动态重配模型( d r ) 与算法,定义了重配 操作原语,并给出了服务重配一致性约束;第五章首先介绍反射中间件,描述微 内核设计模式,设计w 曲应用服务器的微内核,介绍微内核封装的基本服务以 及一种服务可重配的框架;然后在d r 模型的基础上,设计覆盖w 曲应用服务 器整个生命周期内的可多层次重配的体系结构;第六张重点介绍重配层服务的系 统结构,并给出动态重配服务的若干实现技术;第七章结合d r 模型,定义了进 行多层次重配的不同角色;第八章从静态配置到服务动态配置给出了多层次重配 的示例以及相应的重配脚本;第九章从w 曲应用服务器与反射中间件两个方面 的相关工作进行分析和比较;最后,第十章是本文总结。 4 第三章动态莺配基本概念 3 1动机 第三章动态重配基本概念 为了满足新的需求、适应新技术的不断发展和新环境的出现,大多数软件系 统在其生命周期内经历多次修改和变化,然而如果关闭这些软件系统并重新启动 的话,有可能会带来不能接受的延迟、高昂的代价或不可承受的风险。所以出于 经济( 如电子商务、银行、证券等) 或安全( 国防等) 方面的原因,不能停止这 些关键业务系统( 比如交通控制、电话交换或某些具有高可用性的公共信息系统) 去修改和变动已有的部件或子系统,它们必须在运行期间进行配置和更新。对系 统的修改并不只是由外在的实体如用户或系统设计人员进行简单的配置,而可能 是技术的不断进步促使系统本身内在的动态重配。 3 2 动态重配的若干因素 动态重配在运行期间改变系统的逻辑结构或物理结构( 如增加、删除、替换 节点、逻辑部件以及部件之间的交互关系等) ,使得系统能从当前的配置环境演 化到另一配置环境。由于可能涉及从底层操作系统层到应用层的多个层次、从系 统分析到系统实现的软件生命周期中多个阶段,动态重配有许多因素需要考虑 u 7 1 。这些因素决定了重配行为的方式、复杂性以及有效性。 ( 1 ) 重配时间:重配行为可以发生在编译前、运行前、部署期间和运行期间。 前两种是静态配置,后两种则都发生在系统运行之后,我们通称为动态重配。相 对于静态配置,处理动态配置更复杂。 ( 2 ) 重配范围:重配行为对系统的组成实体的影响程度。这里的实体可以是 一个对象或对象组、组件或组件组、子系统、功能模块、绑定关系或绑定关系集 合等。例如,在重配过程中,有些需要阻塞整个系统的执行,而一些大规模分布 式应用则阻塞部分相关的组件。最理想的情况是重配根本不影响系统其它部分和 用户。 ( 3 ) 重配类型:根据重配行为触发的条件,动态重配大致可以分为两类瞄】: 规划型重配和演化型重配。规划型重配行为( 如嵌入的失效恢复功能等) 是在系 统设计阶段预先可知的,在运行过程中当某个条件满足时触发。而演化型重配行 为则不同,是一些无法事先预见的事件( 如用户行为、系统维护、部件更新等) 引起的结构性改变,可以满足不断变化的q o s 需求。 ( 4 ) 重配操作:几乎所有的重配语言或系统都提供了四个最基本的重配操作: 组件的创建、删除,连接的创建和删除。有时候需要检测重配行为的触发条件, 5 北京化工大学硕上学位论文 需要有一些查询、检测组件状态、行为、结构等方面的操作。在重配过程还需保 存和装载组件的上下文状态数据的操作。此外,还可能需要一系列管理系统元数 据的操作。 ( 5 ) 重配策略:将重配的变化如何应用到系统中。如在一个操作中用一个新 的组件瞬时替换旧的组件,而另外一种策略则逐步应用配置变化,以便系统在到 达最终重配状态前逐步保存一系列中间临时状态。一种与前两种都不同的策略则 允许系统的多个版本并行运行,当重配完成后,通过验证每个版本的最终状态判 定重配是否正确执行。 ( 6 ) 变更规约:影响重配机制的动态变更能力、重配方式、执行重配行为的 复杂性和难度。重配对象的粒度和抽象的级别影响重配管理的信息量和重配过程 的执行效率。变更规约方式大致有两种,一种只指定系统重配的初始状态和最终 状态,而重配所需进行的实际操作都由运行系统自己决定,显然这种方式实现起 来具有很大的困难。另外一种则指定一系列重配操作( 如有序或无序) 和相应的 规则,系统决定在何条件如何选择、排列重配操作以及其它一些必要的步骤,从 而保证重配操作的正确执行。 ( 7 ) 重配约束:必须保持重配前后系统的一致性。大致有结构完整性 ( s 仃i 】c n l 阳li n t e 鲥勺,) 、相互状态一致性( m u t u a l l yc o i l s i s t e n ts 协t 铭) 、应用状态不变 性( a p p l i c a t i o n s t a t ei n v 撕a n t j s ) 三个约束。 ( 8 ) 关注点分离:系统的功能性行为与动态重配行为的分离程度。如果分离 程度高,而并不是相互“交织 在一块,则相互影响就小。目前可以通过反射、 a o p 、自适应程序设计、组合过滤和多维关注点分解等技术【2 3 】实现。 ( 9 ) 错误与例外处理:在重配过程中,系统处理错误或例外的能力。不管发 生什么错误、例外,系统应该保持一致的状态,要么恢复系统的状态,要么就完 成整个重配。 3 3动态可重配参考模型 文献【1 9 】描述了一个通用的动态重配参考模型,如图3 1 所示。该模型将系统 描述为一个有向图,图的节点是系统的组件,边是组件之间的连接。该模型假定 任何两个组件之间至少有一个连接。一个事务是沿着一个连接的两个组件之间的 消息交换序列。从节点n 指向节点m 的弧表示所有沿着这条弧的事务均是由节 点n 启动。假定事务会在一个限定的时间内完成,并通知事务启动者是否完成。 这些假定能保证在给定的时间内,系统能达到一个一致状态。如果一个事务t 的 完成依赖其它事务t l ,t 2 ,则称该事务是依赖性的,记为仉1 t 2 。否则称t 为独立的。 6 第三章动态重配基本概念 c o n r i g u 阳t i o n c h a n g s 图3 1 动态重配参考模型 f i g 3 - 1d ”a l i l i cr e c o n f i g u m t i o n 概c e dm o d e l 给定当前系统配置( c o r 血g u r 砒o ns p e c i 6 c a t i o n ) 和需配置的变更 ( c o n f i g u r a t i o nc h 姐g e s ) ,一个验证过程检查是否将变更部分或全部地应用系统, 并产生新的系统配置。这里的检查包括从简单的语法检查到深层次的语义( 如配 置后的系统是否死锁等) 。重配管理器( c o n f i g u r 撕o nm 觚a g e r ) 根据变更要求产 生相应的重配指令后,由操作系统执行对当前系统的重配。重配管理器按照如下 动态重配算法进行重配: ( 1 ) 根据变更规范,计算需要保持状态一致性的节点集合; ( 2 ) 在第一步获得的节点集中计算必须“f r o z e n 的节点子集; ( 3 ) 向第二步获得的节点子集中的节点发送“f r o z e n 消息,并等待所有 的回应; ( 4 ) 通知操作系统执行重配操作指令; ( 5 ) 使新创建和“f r o z e n 的节点恢复正常的处理,响应客户的请求。 3 4重配管理需解决的问题 重配管理控制系统的重配过程,其主要功能包括:1 ) 指定的变更行为最终 完成,并有效;2 ) 重配的约束得到满足;3 ) 确保参与重配活动的实体( 如服务、 服务的调用者等) 仍然处于“正确 的状态,满足一致性需求: ( 1 ) 系统必须满足它的结构完整需求; ( 2 ) 系统中的实体之间状态交互的一致需求; ( 3 ) 应用状态不变性需求; 3 5结构完整 7 北京化t 大学硕卜学位论文 重配行为是一种“入侵型 过程,可能破坏系统结构中实体之间的关系,也 可能打乱这些实体集成在一起的方式。为了避免重配行为对系统结构完整性的影 响,必须有一种好的机制和措施保证结构的正确性。例如,在w 曲应用服务器 中,可能有多个客户c 1 ,c 2 ,c i l 调用另外一个服务对象s 的操作,如果通 过重配后,服务对象s 被另一服务对象s 所替换。从系统“正确性 来说,不管 是重配前还是重配后,c l ,c 2 ,c l l 在不感知后端重配行为的情况下都能调用 服务对象的操作。从系统结构完整性角度来说,须满足下面两个条件: ( 1 ) 客户c 1 ,c 2 ,c n 能新服务对象s 进行交互,能重新获得s 的引用: ( 2 ) 服务对象s 具有与服务对象s 兼容的接口,c l ,c 2 ,c i l 可通过原来 的接口激活s 提供的操作。 3 5 1 交互状态一致 上述结构完整性主要考虑系统中实体之间的静态结构,而交互状态一致则主 要针对实体之间的动态交互的一致性。交互操作是实体间相互改变对方状态的唯 一方式。如果实体之间的每次交互在完成后,交互行为所涉及的各个部分均处于 一致的状态,我们称这些实体是交互状态一致的。下面以对象a 调用对象b 为例 说明。 对象a 向对象b 发送一个调用请求,如果b 对a 的请求不响应,但又给a 返回不能响应的消息,a 就有可能永远等待b 的返回结果。这样a 和b 就不是交 互状态一致。交互状态一致是指:要么a 向b 发送调用请求被成功地处理,要么 两者都被通知请求处理失败。假定a 向b 发送了一个调用请求r 后,重配管理 器将b 用b 替换,为了满足交互状态的一致性,须进行如下的一些处理: 1 )要么放弃请求r ,同时a 对象被通知请求r 处理失败; 2 )要么在重配前b 接受请求r ,处理完请求任务,并将结果返回给a 后, 才用b 替换b ; 3 )要么在替换前保存请求r ,b 替换b 后,由b 处理r ,并将处理结果返回 给a 。 如果用其它方式处理,a 与b 就不是交互状态一致的,对象a 就可能永久地 在等待b 对请求r 的处理结果。 为了实现交互状态的一致性,重配管理器必须提供一种维护和实现交互状态 的机制,该机制主要包括两方面: ( 1 ) 重配控制状态的保存和恢复:在重配前,需将实体的控制状态保存,在 重配后,恢复实体的状态,以便重配后的实体能在原状态继续处理那些在重配前 被迫中断的交互请求。这些状态信息包括调用请求的堆栈、计数器、线程上下文 8 第三章动态藁配摹本概念 信息等。这些信息与具体的实现语言、环境有很大关系,特别在异构的环境下, 实体的两个不同实现版本之间这些状态的映射关系很复杂,实现起来难度大。 ( 2 ) 系统可重配状态的维护。为了保证交互状态的一致性,重配行为只要在 系统处于可重配状态( 或者重配安全状态) 时才进行。当系统处于可重配状态时, 重配行为涉及到的实体处于一种自包容和稳定的状态,并且与其它实体不进行任 何交互。当然,不同的重配系统可能对可重配状态有不同的定义。 图3 2 描述了重配方法的种类。大致可以分为两类:一类是被动型,通过观 测系统的状态,当系统处于可重配状态时,启动重配过程,另一类是驱动型。则 促使系统逐步进入可重配状态后,才启动重配。对于前一类,可重配状态依赖系 统自身的行为。例如,有些实体之间会不断地进行交互,这样就很难保证系统能 达到可重配状态;而对于驱动型,是否达到可重配状态是由重配管理器的重配 算法驱动。 驱动型又可以分为放弃型和完成型。在重配过程中,前者放弃实体之间已有 的交互,实体自身进行错误恢复处理,要求开发人员提供一种错误或例外的回滚 机制。由于不具有透明性,加大了开发人员的工作量和难度,使用此类重配方法 的应用范围受到很大的限制。而完成型则能保证重配前的交互请求要么在重配前 全部完成,要么在重配后全部完成。 动态重配方法 被动型 重配前完成型重配后完成型 图3 2 动态重配方法种类 f i 9 3 2l ( i n d so fd y n 柚1 i cr e c o n f i g l 】忱t i o nm e m o d s 3 5 2 应用状态不变性 应用状态是指一个实体或实体子系统内部的状态。例如,在w 曲应用服务 器中,名字服务保存系统中的名字和引用之间的映射关系,这种不变的映射关系 是动态重配需要维持。如果在替换名字服务后,将这种映射关系丢失或发生变化, 9 北京化工大学硕上学位论文 那么客户就不能通过名字查找对象的引用,这个w 曲应用服务器以及运行在其 上的应用系统均会瘫痪。如何维持应用状态的不变性,是动态重配中的一个难题。 由于不同的应用有各自的状态,其状态的描述方式、语义可能均不同,不可能为 所有的实体状态提供一种通用的机制。例如,对于一个产生唯一标识符的服务来 说,虽然其产生唯一标识的策略在重配前后可以不一样,但“所有标识符必须在 系统的生命期内是全局唯一的 就是标识服务的不可变的特性。很明显,其维持 的不变性与名字服务中的不同,其语义亦不同。 为了维持这种不变性,名字服务需要在重配前保存这种映射关系以及关系中 的元素,标识服务则需要保存以前所有产生过的标识符号。尽管这两个服务处理 的对象不同,但系统均需提供一种可操作应用内部状态的机制,在重配前,保存 应用内部状态数据,重配后重新装载这些状态。 3 5 3 重配对系统的影响 在重配过程中,一些参与重配的系统实体可能部分或完全不可用,从而可能 影响系统的功能,甚至可能降低系统的性能。系统受到影响的程度决定于进行动 态重配的风险和额外的开销。例如,如果动态重配中某些不可用的服务导致安全 事故,动态重配则不宜进行。 文【1 3 1 8 ,2 2 盈】研究了如何评估动态重配对系统的影响。例如,有些方法通过系 统功能满足q o s 需求的数目决定其值,而有的则通过在重配过程中受影响的实 体数目评估。虽然上述方法从不同的角度量化重配对系统的影响,但最终决定其 影响度的还是应用自身,因为每个应用都有其各自不同的特点和要求,此外,应 用采用的重配算法亦不同,而算法中参与重配的实体之间的耦合程度以及实体的 交互时间等都可能影响重配对系统的影响。 l o 第p n q 章w e b 应用服务器的动态重配 第四章w e b 应用服务器的动态重配 w 曲应用服务器自从产生以来,作为一种网络分布计算的通用基础平台得到 了广泛的应用,许多基于组件的应用系统( 如电子商务、电子政务等) 纷纷建立 在此基础平台上。w 曲应用服务器为这些应用系统提供了一系列的基础服务( 如 事务、安全、命名、组件容器等服务) 。从体系结构的角度看,w 曲应用服务器 中实际上包含了三个层次的部件:支持某种组件模型( 如e j b 、c c m 等) 的应 用部件、为这些应用部件提供基础服务的部件以及为基础服务提供服务的底层公 共部件。上述动态重配模型描述的是一个通用的系统重配模型,其重配对象大多 数属于应用层实体,虽然很有代表性,但由于w 曲应用服务器具有多层次的特 点,而层次之间还存在相互的依赖关系,重配对象的层次越低,与上层的一致性 和相互依赖关系就更难维护,其处理更复杂,实现技术更不同,所以不能将上述 通用模型直接应用到整个w 曲应用服务器中。鉴于j 2 e e 是一种规范,其开放性 好,以及j a v a 的优势,本文重点研究j 2 e e 应用服务器基础服务的动态重配。 4 1w e b 应用服务器对动态重配的需求 w 曲应用服务器为w 曲应用提供一系列基础服务,对这些基础服务进行动 态重配,需满足如下需求: ( 1 ) 对e j b 组件的影响最小化:重配基础服务的目的是使得基于e j b 组件的 应用在运行期间满足不断变化的需求,动态重配不能影响组件与客户、组件与容 器、组件与基础服务以及组件之间的相互调用方式和约束,兼容j 2 e e 的规范, 尽可能对e j b 组件的影响最小化。 ( 2 ) 透明性高:基础服务的动态重配需对客户端开发人员完全透明,而对基 础服务开发人员,透明性尽可能地高。 ( 3 ) 正确性:动态重配后,系统处于“正确的状态”,其行为与没有进行重配 活动所期望的行为一样,满足3 2 4 中描述的一致性需求; ( 4 ) 对系统影响最小化:尽管动态重配对系统的影响是不可避免,但需尽可 能缩短重配时间,降低重配对其它服务、组件、应用的影响,尽可能地减少重配 对客户正常调用操作的额外开销,系统的整体响应时间不会受到太大的影响; ( 5 ) 通用性:动态重配可广泛应用不同类型的服务:系统提供的基础服务、 用户自定义的服务。这些服务可以是单线程,也可以是多线程。 4 2w e b 应用服务器的动态重配操作 北京化工大学硕士学位论文 w 曲应用服务器的重配实体是为组件提供的基础服务或用户自定义的服务。 其重配操作主要包括:服务的创建、服务的删除以及服务的替换。本文不考虑分 布环境下服务的迁移操作。 4 2 1 服务的创建 如图4 1 ,该操作允许w 曲应用服务器在运行期间就可以创建一个服务,其 难点是如何在运行期间动态装载其所需的资源如二进制文件,客户又如何激活服 务所提供的操作。 4 2 2 服务的删除 _ - _ - _ - 图4 1 服务创建 f i g 4 - 1c 陀a t i o no fs e r v i c e 该操作允许w 曲应用服务器在运行期间就可以删除一个服务,服务删除后, 所有对该服务的引用将不可在再用,所以在所有服务删除前,服务须处于一种可 安全删除的状态,不存在客户对它的引用,其它服务亦不依赖于它。图4 2 描述 了服务删除的过程。 图4 - 2 服务删除示意图 f 追4 - 2d e l e t eo fs e n ,i 1 2 第p q 章w e b 虑用服务器的动态重配 4 2 - 3 服务的替换 服务替换操作使得一个服务在运行期间被另一新版本服务所替换。服务被替 换后,应透明地处理客户对服务的引用,新旧版本两个服务不同之处在于各自 采用了不同的实现策略,从而满足不断变化的q o s 需求。例如,新版本可能修 正了原版本的错误;也可能采用优化、改进的算法如负载平衡算法;也可能使用 更少的系统资源;在j a v a 运行环境中,新版本可能使用i 接口进行本地调用, 提高系统的处理性能。图4 _ 3 是服务替换的示意图。 相对于前两个重配操作,服务的替换处理起来更复杂,因为它不仅要维持重 配前后应用状态的一致性,而且需要检测新旧两个版本是否兼容。一般地来说, 同一服务类型的服务之间可以替换,但如果互相之间不兼容,其替换难度就很大。 _ 一一- 图4 - 3 服务替换 f i g 4 3s u b s t i t u t i o no fs e 州c e 4 3w e b 应用服务器动态重配模型 1 3 图4 - 4w e b 应用服务器动态重配过程 f i g 4 - 4d y n a m i cr e c o n 矗g u r a t i o np r o c e s so fw e ba p p l i c a t i o ns e r v e r s u b s t i t u t i o n 在上述动态重配参考模型基础上,设计w 曲应用服务器动态重配模型d r ( d y n 锄i cr e c o n f i g u r a t i o nm o d e l ) 。其重配过程如图4 4 所示。该模型主要对基 础服务进行重配。系统配置信息( c o n f i g u r a t i o ni n f o m l a t i o n ) 主要描述w e b 应用服务器的所有配置信息,以及相互之m 的依赖义系。动态重配的操作 ( r e c o n f i g u r a t i o nc o m m a n d s ) 包括服务的创建、删除、替换以及服务叫相瓦依赖关 系的创建和删除。重配i 焚计活动( r e c o n g u r a t i o nd e s i 印a c t i v i t i e s ) 指定重配的 变更舰约( c h a n g es p e c m c a t i o n ) 和变更约束( c h a n g ec o n s t r a i n s ) ,变更规约包 括哪些服务参与,重配操作等。变更约束指定重配日订、后重配所需满足的条件。 p r e v a l i d a t i o n 和p o s t v a i i d a t i o n 分别检查藿配自,j 、后是否满足变史约束。服务重配 管理器( s e r v i c e sr e c o n f i g u r a t i o nm a n a g e r ) 负责产生重配操作,将、v 用服务器从 当前配置状态i 重配到配置状态i + 1 。服务重配管理器是整个模型中最重要的部 分,它需负责将执行的变更应用到应用服务器中,产生新的系统配置,同时还需 满足变更约束。为了便于讨论,f 面给出一些定义和假定。 定义4 1 ( 服务) 定义为s e r v i c e = ,其中: f 1 1i d 为服务的唯一标识; f 2 1a 是服务的状态集合,服务的状态是指服务的诸多属性及其相应数据值 对的集合; f 3 ) 八足服务所提供的方法集合; 1 4 第四章w e b 应用服务器的动态重配 ( 4 ) i p 是消息输出端口集; ( 5 ) r p 是消息输入端口集,m r 、i 心= 巾;服务接收到消息后,由服务的方法 在有限的时间内处理完消息,并通知消息发送者; 定义4 2 ( 服务实例) 定义为h l s t 锄= , 其中: ( 1 ) n 锄e 为服务实例的唯一标识; ( 2 ) s d 是服务实例所实现的服务的标识: ( 3 ) h i l p l 是服务的实现体,可以是一个二进制包如j a r 、d l l 、e x e 文件等; ( 4 ) f 是服务实例踪迹,踪迹是指作用在服务实例上的一串服务方法的序列; ( 5 ) 6 为映射,6 :a _ a ,且对于空序列,6 ( ) 为服务的初始状态。当前状 态为6 ( f ) : ( 6 ) 瑙是服务实例的重配状态,删e a c t i v e ,b 1 0 c k e d ) ,其中活动状态( a 出v e ) 表示服务实例可以发送、接收和处理消息;阻塞状态( b l o c k e d ) 表示服务实例可 以接收和处理消息,但不发送消息,并且已发送的消息均被处理。 设s s 为所有服务的集合,s i s 为所有服务实例的集合,s i s 。为实现服务s 的 所有服务实例集合,为服务实例所实现的服务,i p s 。i 为服务实例s i 的消息输出 端口集,i 冲s s i 为服务实例s i 的消息输入端口集;设s i 。,s i b 为不同的服务实例, m ( s i 。,s i b ) 为服务实例s i 。通过其m 端口发送到另一服务实例s i b 的r p 端口的所 有消息构成的集合。 定义4 3 ( 服务实例依赖关系) 定义为= 0 ) , 如果s q 满足下列条件,则称s q 为依赖关系非空路径: ( 1 ) v j l ,m ) s j s j + l ; ( 2 ) ( s m ,s 1 ) 萑,即s m 不依赖于s l 设s q d = s ms m 1 s 2 s 1 称s q d 是s q 的反方向路径。 定义4 5 ( 重配命令) 定义为增加、删除、替换服务实例,改变服务实例依赖 关系的动作,其操作原语如下: ( 1 ) 凹e a t es :创建服务实例s ; ( 2 ) r 钿o v es :删除该服务实例s : ( 3 ) l i i l l 【 :创建服务实例s 1 对服务实例s 2 的依赖关系; ( 4 ) u i l l i i l k :删除服务实例s 1 对服务实例s 2 的依赖关系; ( 5 ) b l o c ks :阻塞服务实例s ,l 冲s 。中的端口接收消息,而口s 。中的端口不 发送消息; ( 6 ) 枷v a _ t es :激活服务实例s ,使服务处于激活状态; 1 5 北京化工大学硕 :学位论文 其中s ,s l ,s 2 均是服务实例。 重配命令改变服务实例的重配状态,服务实例的重配状态转换图如图4 5 所 示,b l o c k 将服务实例的状态从活动状态转换为阻塞状态,枷v a t e 操作则反之。 而u i l l i i l k 、r e l n o v e 等则在阻塞状态对服务实例进行操作。 图4 5 服务重配状态转换 f i g 4 - 5s w i t c ho ft h er o n f i g 嘞d s t a t 锄e n t 锄o n gs e r 访。瞄 重配命令有时需满足一种时序关系,使得命令c 必须在执行命令c 后才执行。 例如,如果服务实例幽,则命令r 咖o v es 不能在r e m o v cs 命令前执行。对于 那些不存在时序关系的重配命令,可以并行执行。 给定服务实例s ,设s 所依赖的服务实例集合为d s s ( s ) = s ls s ,s s i s ) , 所有依赖于s 的服务实例集合为c l i e n t s (

温馨提示

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

评论

0/150

提交评论