(计算机科学与技术专业论文)internet服务的业务层故障检测算法.pdf_第1页
(计算机科学与技术专业论文)internet服务的业务层故障检测算法.pdf_第2页
(计算机科学与技术专业论文)internet服务的业务层故障检测算法.pdf_第3页
(计算机科学与技术专业论文)internet服务的业务层故障检测算法.pdf_第4页
(计算机科学与技术专业论文)internet服务的业务层故障检测算法.pdf_第5页
已阅读5页,还剩48页未读 继续免费阅读

(计算机科学与技术专业论文)internet服务的业务层故障检测算法.pdf.pdf 免费下载

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

文档简介

独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:红! i 日期:地:! :! ! 关于论文使用授权的说明 本人完全了解北京邮电大学有关保留和使用学位论文的规定,i i - 研究生在 校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保留并向国 家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅:学校 可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段 保存、汇编学位论文。 本学位论文属于保密论文,在年解密后适用本授权书。 本学位论文不属于保密范围,适用本授权书。 本人签名:剡日期:丝丝:;:! ! 导师签名: 北京邮电大学硕士研究生毕业论文i n t e m e t 服务的业务层故障检测算法 i n t e r n e t 服务的业务层故障检测算法 摘要 随着i n t e r n e t 服务的规模不断扩大、复杂性不断增大,保证服务无 故障高性能的运行面临着巨大的挑战。i n t e m e t 服务的多层次体系结 构决定了它将受到不同层次故障的影响,其中,非f a i l s t o p 的业务层 故障对服务的q o s 影响非常大。为了保证服务质量,就要在故障发 生后迅速且准确的检测出故障。当前的业务层故障检测技术普遍存在 以下问题:1 ) 过度依赖于被监测系统:i n t e r n e t 服务的频繁更新升 级,导致此类方法的准确度下降、维护成本增加;2 ) 计算复杂度过 高:规模的扩大导致数据量激增,这对检测算法的性能形成挑战。 本文研究了i n t e r n e t 服务的业务层故障的特点,分析了故障检测技 术所涉及的关键问题,并提出了新的问题解决方案。本文的主要内容 包括:1 ) 总结了i n t e r n e t 服务的层次结构及各层存在的风险,着重研 究了其业务层故障的种类及特点;2 ) 提出了一种具有“b l a c k - b o x 特性的业务层故障检测算法,这种方法既不需要修改被监测系统的源 代码也不需要预先了解其逻辑结构和实现方式;3 ) 研究了经典的子 空间分解算法主成分分析法的基本原理,详细分析了其处理可测 数据的步骤及能力。4 ) 在子空间分解算法的基础上,本文研究了传 统门限值和k m e a n s 聚类算法在故障检测阶段的应用,比较了 k m e a n s 聚类算法与传统的门限值方法的检测准确度;5 ) 最后,通 过构造一个完整的检测系统实例,本文对一个业务系统进行业务层故 障检测实验,并对结果进行了分析。 关键词:i n t e r n e t 服务,业务层故障检测,用户访问行为, 子空间分解法 北京邮电大学硕士研究生毕业论文 i n t e r n e t 服务的业务层故障检测算法 d e t e c t i o n o fa p p l i c a t i o n l e v e lf a i l u r e si n l a r g e s c a l ei n t e r n e ts e r v i c e a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fi n t e r n e ts e r v i c ea n dt e c h n o l o g y , t h e n u m b e ro fl a r g e s c a l ei n t e r n e ts e r v i c e sh a sg r o w ns i g n i f i c a n t l yi nr e c e n t y e a r s h o w e v e r , i nt h em e a nt i m e ,w e ba p p l i c a t i o n sa r eb e c o m i n g i n c r e a s i n g l yc o m p l e xa n dh a r dt om a n a g e d u et om u l t i - l e v e ls t r u c t u r e , i n t e r n e ts e r v i c em u s tb ea f f e c t e db yt h ef a i l u r e sf o r md i f f e r e n tl e v e l s p a r t i c u l a r l y , t h en o n f a i l - - s t o pa p p l i c a t i o n - l e v e lf a i l u r e sh a v eaf i r s t - - o r d e r i m p a c t o nt h eu s e r se x p e r i e n c et h a t m a yr e s u l t i n t e m p o r a r yo r p e r m a n e n ts i t ea b a n d o n m e n t t oe n s u r et h eq o si ni n t e r n e ts e r v i c e s ,i ti s c r i t i c a lt od e t e c tt h ea p p l i c a t i o n - l e v e lf a i l u r e sq u i c k l ya n da c c u r a t e l y t h e e x i s t i n gd e t e c t i o nm e t h o d sa l w a y sh a v et h ef o l l o w i n gl i m i t s :1 ) r e l a yo n t h ei n n e rs t r u c t u r eo fm a n a g e ds y s t e mg r e a t l y 2 ) c o m p u t i n gc o m p l e x i t yi s t o oh i g h i nt h i sp a p e r , w ep r o p o s eag e n e r a la p p r o a c ht od e t e c ta l lk i n d so f f a i l u r e sw h i c hm i g h to c c u ri nt h ea p p l i c a t i o n l e v e la f t e ra n a l y z i n gt h e c h a r a c t e r i s t i co fi n t e r n e ts e r v i c e t h em a i nc o n t r i b u t i o n so ft h i sp a p e ra r e 1 ) a tt h ev e r yb e g i n n i n g ,w es u m m a r i z et h el a y e r - s t r u c t u r eo fi n t e r n e t s e r v i c ea n dt h ec h a l l e n g ef a c e di ne a c hl a y e r t h e nw eh a v ead e e p a n a l y s i so nt h ec a t e g o r ya n dc h a r a c t e r i s t i co fa p p l i c a t i o n - l e v e lf a i l u r e s 2 ) w ed e s c r i b ean o v e lm e t h o df o rr u n t i m ep r o b l e md e t e c t i o nb a s e do n m e t r i c so f b l a c k b o x ”u s e rb e h a v i o r ,w h i c hr e q u i r e sn e i t h e ra d d i t i o n a l s y s t e mi n s t r u m e n t a t i o nn o rp r i o ri n p u tf r o mt h eo p e r a t o r 3 ) w ea p p l ya c l a s s i c a la l g o r i t h mt od e c o m p o s et h eh i g hd i m e n s i o n a lt r a i n i n gd a t ai n t o t w os u b s p a c e s ,w h i c hn o to n l yf o r m st h eb a s e l i n eo ft h ef o l l o w i n g d e t e c t i o n ,b u ta ls od e c r e a s et h ec o m p u t i n gc o m p l e x i t y 4 ) w ee v a l u a t e o u rm e t h o db ya p p l y i n gi tt oaj 2 e ea p p l i c a t i o np e ts t o r ea n dc o m p a r ei t w i t ha ne x i s t i n gm e t h o d t h ec o m p a r i s o ns h o w st h a to u rm e t h o dc a nf i n d o u ta l lf a i l u r ew i t hj u s taf e wf a l s ea l a r m s t h i si sv e r ym e a n i n g f u lf o rt h e f o l l o w i n g f a i l u r el o c a l i z a t i o n k e yw o r d s :i n t e m e t s e r v i c e ,a p p l i c a t i o n l e v e lf a i l u r ed e t e c t i o n , u s e rb e h a v i o r , s u b s p a c ed e c o m p o s i t i o n i n 北京邮电大学硕士研究生毕业论文i n t e m e t 服务的业务层故障检测算法 目录 第一章前言l 1 1 课题背景和意义1 1 2 本文要解决的问题和创新2 1 3 论文期间主要工作3 1 4 论文内容及结构综述4 第二章i n t e r n e t 服务的业务层故障检测技术综述5 2 1i n t e r n e t 服务5 2 1 1 业务层的层次结构及其特点5 2 1 2j 2 e e 平台6 2 1 3 负载的特点7 2 2 业务层故障简介8 2 3 业务层故障检测方法的研究现状l o 2 4 新方法的提出1 3 2 5 本章小结1 4 第三章关键问题的解决方案1 5 3 1 数据采集1 5 3 2 建立数据模型1 6 3 3 故障检测1 9 3 4 故障诊断2 2 3 5 本章小结2 3 第四章基于统计的业务层故障检测方法的实现2 5 4 1 度量指标2 5 4 2 实验环境2 6 4 2 1w e b 应用和模拟用户负载2 6 4 2 2 数据采集2 7 4 2 3 故障注入2 8 i v 北京邮电大学硕士研究生毕业论文 i n t e r a e t 服务的业务层故障检测算法 4 3 检测结果分析2 9 4 4 本章小结3 3 第五章总结与展望3 5 5 i 论文工作总结3 5 5 2 尚待研究的问题3 6 参考文献3 9 致谢4 1 v 北京邮电大学硕士研究生毕业论文 i n t e r n e t 服务的业务层故障检测算法 1 1 课题背景和意义 第一章前言 近年来,i n t e m e t 己逐渐成为大多数人日常生活中不可缺少的一部分,服务 提供商( s p ,s e r v i c ep r o v i d e r ) 开始意识到在i n t e m e t 上提供增值服务能带来潜 在的高额利润,并开发了各式各样的i n t e m e t 服务,如w e b 服务、口t v 、v o i p 等,为了维护当前客户并吸引新客户,s p s 必须为服务提供q o s ( q u a l i t yo f s e r v i c e ) 保证。但是服务相关设备,网络和服务本身都可能发生异常,从而导致服务q o s 降级,甚至服务不可用。显然,性能降级或服务不可用都将影响s p 的信誉。为 了保证q o s ,s p s 迫切需要一种有效的服务故障管理机制来检测故障发生,分 析故障原因,并尽快采取修复措施。 故障检测是故障管理的第一阶段,其目标是及时发现故障导致的外部异常 现象。故障检测机制分为两种:被动检测和主动检测。被动检测机制是通过监测 用户行为或者网络数据包,搜集并重构请求响应等方式分析已有服务会话性能, 检测出系统中潜在的故障【l 】 2 】。主动检测机制是从系统的不同位置发送主动探 针,根据探针输出结果测量特定服务性能 3 】【4 】。研究表明,与主动检测机制相 比较,被动检测机制更适合应用于i n t e m e t 服务的业务层故障检测:1 ) 因为i n t e m e t 服务的负载是无法预测( o p e n - e n d e dw o r k l o a d ) ,所以我们无法按照服务运行中 的实际使用量来测试某个i n t e m e t 服务。这样,主动检测机制将无法检测出与 i n t e m e t 服务外部负载量相关的故障;2 ) 在大规模复杂i n t e m e t 服务中,主动探 针通常无法执行所有的功能。例如在一个大型电子购物网站中,主动探针可能无 法覆盖所有的出售商品、优惠券等,执行部分请求只能检测出软件模块是否发生 故障,但是对数据库或其它和具有应用相关的模块中的故障无能为力;3 ) 在主 动检测机制中,探测站点和探针的选择都是和被监测的具体服务相关的,所以要 随着服务的更新升级而变化。但在实际情况中,为了应对市场需求,i n t e m e t 服 务更新升级的频率非常快。如果使用主动检测机制来检测系统中存在的故障,维 护费用和技术难度都会比较大。 典型的i n t e r n e t 服务是一个多层的系统,自下而上可分为:传输流量的底层 网络、操作系统、由多个应用程序组件共同组成的i n t e m e t 服务业务层。i n t e m e t 服务的多层次结构导致了它会受到各个逻辑层的故障的影响。由于各个逻辑层的 北京邮电大学硕士研究生毕业论文i n t e r a c t 服务的业务层故障检测算法 故障有着迥然不同的特点和表现形式,所以不同逻辑层所使用的故障管理策略也 存在着许多的差异,分层的故障管理模型是i n t e m e t 服务故障管理的恰当选择【5 】。 传统的故障管理主要集中在网络层故障管理,已经有许多成熟的解决方案,例如 各种基于流量分析的管理策略、基于主动探测的管理策略。业务层故障管理可以 借鉴网络层故障管理的方法,但是二者之间还是存在许多差异,例如网络层故障 管理的研究对象大多为具有实体形态的硬件设备,故障类型较为单一,如硬件异 常、链路中断、设备老化、时钟不同步等;而具体的i n t e m e t 服务从根本意义上 说是缺乏实际形态的软件,不同应用的区别在于其逻辑功能是人类思想和需求的 反映,因此应用具有多样性,所以业务层故障管理的解决方案一方面需要抽取各 类应用的共性进行研究,另一方面需要为适应应用的多样性提供灵活性支持。 故障检测是整个故障管理流程中的第一阶段,能否迅速地检测出故障是提高 i n t e r n e t 服务可用性的关键 6 】。由于存在很多只改变用户行为而不产生引发告警 或者只是使部分服务不可用的业务层故障,并且i n t e m e t 服务的规模不断扩大、 复杂性逐步提高、更新升级越来越频繁,快速的检测出i n t e r n e t 服务业务层存在 的故障仍然面临着很大的挑战。 本课题提出了一种新的检测i n t e m e t 服务的业务层故障的方法,这种方法利 用统计算法分析终端用户对i n t e m e t 服务的访问频率,从而判断是否发生业务层 故障。总的来说,本方法可分为三个阶段:数据采集阶段,数据分析阶段和故障 识别阶段。在采集阶段,我们收集了反映用户浏览行为的可测数据。用户浏览行 为能够最直观最准确的反映系统的实时状态,并且与用户行为相关的可测数据与 被监测系统自身的实现无关,所以这种类型的可测数据适合于反映频繁升级更新 的i n t e m e t 服务的实时状态。并且,由于基于终端用户访问行为的检测方法不需 要对被监测系统的源代码进行更改,所以部署和维护的代价会非常小。在数据分 析阶段,本课题采用了主成分分析算法、统计量门限值和k m e a n s 聚类算法的 基本原理。主成分分析算法是一种经典的子空间分解法,它能够快速处理高维数 据,满足故障检测的实时性要求,所以适应于规模不断扩大的i n t e m e t 服务。并 且,这种数据分析方法在数据建模时将用户的访问时间考虑在内,所以数据模型 能够反映i n t e m e t 服务的被访问频率和访问突发度。在故障识别阶段,我们尝试 了传统的统计量门限值方法和k m e a n s 聚类算法,实验证明,k m e a n s 聚类算法 的精确度要远高于传统的基于门限值的方法。 1 2 本文要解决的问题和创新 本文研究了统计学中的子空间分解算法、统计量门限值法、k - m e a n s 聚类算 法的基本原理及其在故障检测中的应用方法,在分析了i n t e r n e t 服务的业务层 北京邮电大学硕士研究生毕业论文 i n t e m e t 服务的业务层故障检测算法 故障特点的基础上,总结了在故障检测阶段如何利用统计算法分析采集到描述终 端用户访问行为的数据。着重研究了其中涉及的关键问题的解决方案,并通过一 个检测系统的实现和测试来证实该方法的可行性及其效果。本文的贡献在于:( 1 ) 总结了i n t e r n e t 服务的层次结构及各层存在的风险,着重研究了其业务层故障 的种类及特点;( 2 ) 研究了统计学中的经典子空间分解算法一主成分分析法的 基本原理,及其在故障检测阶段如何分析描述用户访问行为数据的问题;( 3 ) 研 究了传统的统计量门限值方法和k - m e a n s 聚类算法在故障识别中的应用,对比了 两者的检测效果;( 4 ) 构造一个完整的故障检测系统实例,对一个业务系统进行 故障检测实验,并对结果进行了分析。 在总结分析当前研究成果的基础之上,本文对当前i n t e r n e t 服务的业务层故 障进行了深入分析,并提出了更适合、更通用的检测方法,本文的创新点在于: ( 1 ) 以w e b 用户的访问行为作为分析对象,使检测方法在实际应用时不需要对 被监测系统做出任何修改,具有“b l a c k b o x 的特性;( 2 ) 利用统计学中的经 典算法一主成分分析法对可测数据进行处理,使检测方法能够高效的处理高维 数据,可应用于大规模i n t e m e t 服务系统中;( 3 ) 在计算当前样本与已有行为模 型之间的偏离度时,分别利用了k m e a n s 聚类算法和静态门限值法,对比了各 自的准确度和精确度。 1 3 论文期间主要工作 本人在研究生期间主要参与了一个综合故障管理系统的开发和测试工作,包 括编码实现、系统测试、系统部署等工作,核心工作集中在告警采集和告警处理 模块。通过充实的项目开发工作和大量的理论学习,本人基本领会了网络管理的 基本原理,尤其通过综合故障管理系统中告警采集和告警处理模块的设计和实 现,理解了各种故障管理的方法及其特点。 在此基础之上,我和项目组成员展开了与故障检测、故障诊断相关的研究工 作。在相关研究工作初期,项目组的主要工作集中在故障诊断方向,通过阅读大 量相关文献和模拟实验,提出了基于b n ( b a y e s i a nn e t w o r k ) 的故障诊断方法。 随着研究的深入,我们发现故障检测在整个故障管理过程中扮演着非常重要的角 色,并且目前的研究成果并不能满足实际应用中的需求。所以,在研究工作的后 期,我们主要关注于故障检测领域,通过阅读大量相关文献和模拟实验,本人对 可用于故障检测的各种方法及其应用领域有了深刻的认识和理解,着重研究了检 测i n t e m e t 服务的业务层故障所涉及的关键问题,进行了改进尝试和实验验证, 并提出新的问题。 北京邮电大学硕士研究生毕业论文i n t e r n e t 服务的业务层故障检测算法 1 4 论文内容及结构综述 本文阐述了基于统计算法的故障检测方法在i n t e m e t 服务的业务层故障管理 中的应用,介绍了使用子空间分解算法进行业务层故障检测的一般思路,并详细 分析了涉及的几个关键问题及其解决方案,最后通过一个业务故障检测的实例来 论证了该方法的可行性。大规模i n t e m e t 服务最典型的设计模式是分层结构,根 据实际运行及研究情况表明,服务的可用性及性能会受到不同层故障的影响。传 统的故障管理主要集中在网络层故障管理,已经有许多成熟的解决方案。业务层 从根本上讲是缺乏实际形态的软件,具有多样性,这也就导致业务层故障表现出 多样行、不确定性和隐蔽性。在借鉴网络层故障管理原理的基础是上,业务层故 障管理需要针对其故障特点提出新的解决的方案。 本文集中研究了业务层故障的检测方法,包含的问题有分析业务层故障的特 点、选择描述系统状态的可测数据、研究基于统计算法的故障检测方法的流程和 具体算法以及实现验证检测算法性能的仿真实验。本文的结构如下: 第一章概述,简要介绍该课题的背景,本论文要解决的主要问题和创新点, 以及本人在论文期间做的主要工作。 第二章i n t e m e t 服务的业务层故障综述,简要介绍了i n t e m e t 服务的体系结构, 深入分析了造成业务层故障的原因;另外介绍了该领域的研究现状,分析了现有 方法的优缺点及使用范围;最后简要阐述了提出新的故障检测方法的依据。 第三章关键问题的解决方案,详细阐述了基于子空间分解算法的业务层故障 检测算法,从理论上介绍了故障检测在子空间分解和故障识别两个阶段中使用的 统计算法,是本文的理论核心,第四章的仿真实验是建立在这一章研究成果的基 础之上的。 第四章基于统计的业务层故障检测方法的实现,该部分通过一个对w e b 服务 系统的故障检测实验来验证本方法的可行性。详细阐述了仿真实验的实验环境、 实验流程及每个步骤中的涉及的关键问题,最后对实验结果进行了详细分析。 第五章总结与展望,对本文提出的业务层故障检测算法所涉及的问题进行了 总结,指出了有待改进的地方,对今后i n t e m e t 服务业务层故障检测领域的研究 进行了展望。 4 北京邮电大学硕士研究生毕业论文i n t e r n e t 服务的业务层故障检测算法 第二章in t e r n e t 服务的业务层故障检测技术综述 本章首先对i n t e r a c t 服务及其业务层的体系结构、基本特点进行简要介绍, 然后着重介绍i n t e m e t 服务的业务层中可能存在的各种故障类型以及现有的针对 业务层故障的检测技术,最后简要阐述了新方法提出的依据。 2 1in t e r n e t 服务 尽管i n t e r a c t 服务包括各式各样的应用,如电子商务、搜索引擎、电子邮件、 图片共享等,但其体系结构与具体应用以及具体厂商无关。在这一小节里,我们 将简要介绍i n t e m e t 服务业务层的主要共性:层次的体系结构、中间件平台、负 载的特点。 2 1 1 业务层的层次结构及其特点 十几年前刚出现i n t e m e t 服务时,大部分i n t e r a c t 服务都是简单的、由单个 服务器支持的、基于静态w e b 页面的。但是到了今天,大规模的i n t e r n e t 服务可 能会涉及到分布在全球各个地方的上百台服务器;动态的、个性化或定制的w e b 页面也取代了原来的静态页面。为了完成单个用户请求,i n t e r n e t 服务可能会访 问分布在全球的上百台服务器。 北京邮电大学硕士研究生毕业论文i n t e m e t 服务的业务层故障检测算法 f 9 1u 1 - f 1 甄 q 国l i 负负载均衡交换机 i 囹p臼臼 l 0 訇习口 软件 应用程序数据库 服务器 进程 图2 - 1i n t e r n e t 服务体系结构【1 6 】 如图2 1 所示,i n t e m e t 服务最典型的设计模式是分层结构将系统按功 能进行分层,每层都依赖于下一层提供的功能。在每个功能层中都有多个功能节 点以及一个负载均衡器,通过负载均衡器将进入该层的流量平均分配给各个功能 节点通常情况下,当用户发起一个i n t e m e t 服务调用时,系统首先通过负载均 衡器将这个请求分配给某个功能节点,然后通过功能节点调用下层的功能节点。 为了提高服务的可用性并达到最优的性能,在每次上下层调用中,都是通过负载 均衡器来决定最终要调用的功能节点。i n t e m e t 服务业务层的典型三层结构是: 表示层、业务逻辑层、数据层。其中,表示层主要用于接收从浏览器传来的请求 并将请求交给业务逻辑层进行处理,同时将请求处理结果发送给浏览器;业务逻 辑层主要负责处理表示层传来的客户请求并对它进行处理,同时将请求结果传递 给表示层,假如需要的话还需要将处理结果交给数据层进行存储;数据层主要是 为业务逻辑层提供数据服务同时也是为了实现屏蔽数据源的变化。 2 1 2j 2 e e 平台 为了使服务业务层的代码专注于解决与功能相关的问题本身,当前的i n t e r n e t 服务都使用了中间件技术,如s u n 的j 2 e e 平台,m i c r o s o f t 的n e t 平台。我们 的故障检测技术与被检测服务所采用的中间件类别关系不大,由于文后续涉及的 i n t e r n e t 服务大都采用了j 2 e e 平台,所以这个我们将集中简要的介绍一下j 2 e e 平台。 6 北京邮电大学硕士研究生毕业论文 i n t e m e t 服务的业务层故障检测算法 j 2 e e 核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技 术层次,均有共通的标准及规格,让各种依循j 2 e e 架构的不同平台之间,存在 良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,导致企业 内部或外部难以互通的窘境。j 2 e e 平台主要具有以下几个特点: 1 ) 保留现存的i t 资产:由于企业必须适应新的商业需求,利用已有的企业 信息系统方面的投资,而不是重新制定全盘方案就变得很重要。这样,一个以渐 进的( 而不是激进的,全盘否定的) 方式建立在已有系统之上的服务器端平台机 制是企业所需要的。j 2 e e 架构可以充分利用用户原有的投资。这之所以成为可 能是因为j 2 e e 拥有广泛的业界支持和一些重要的企业计算领域供应商的参与。 每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的j 2 e e 领 域的升级途径。由于基于j 2 e e 平台的产品几乎能够在任何操作系统和硬件配置 上运行,现有的操作系统和硬件也能被保留使用。 2 ) 高效的开发:j 2 e e 允许公司把一些通用的、很繁琐的服务端任务交给中 间件供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地 缩短了开发时间。 3 ) 支持异构环境:j 2 e e 能够开发部署在异构环境中的可移植程序。基于j 2 e e 的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于j 2 e e 的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十 分关键的。j 2 e e 标准也允许客户订购与j 2 e e 兼容的第三方的现成的组件,把他 们部署到异构环境中,节省了由自己制订整个方案所需的费用。 4 ) 可伸缩性:企业必须要选择一种服务器端平台,这种平台应能提供极佳 的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户基于j 2 e e 平 台的应用程序可被部署到各种操作系统上。例如可被部署到高端u n i x 与大型机 系统,这种系统单机可支持6 4 至2 5 6 个处理器。( 这是n t 服务器所望尘莫及的) j 2 e e 领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允 许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统, 满足未来商业应用的需要。 5 ) 稳定的可用性:一个服务器端平台必须能全天候运转以满足公司客户、 合作伙伴的需要。因为i n t e m e t 是全球化的、无处不在的,即使在夜间按计划停 机也可能造成严重损失。若是意外停机,那会有灾难性后果。j 2 e e 部署到可靠 的操作环境中,他们支持长期的可用性。 2 1 3 负载的特点 在实际应用中,i n t e m e t 服务的负载量是无法预测的,业务网站经常会经历 7 北京邮电大学硕士研究生毕业论文 i n t e m e t 服务的业务层故障检测算法 突发的峰值浏览、拒绝访问攻击、蠕虫病毒等事件。峰值浏览可分为两种情况: 一,由于发生了某种特殊事件,引起大量用户集中使用服务,如2 0 0 8 年北京奥 运会、2 0 1 0 年上海世博会特设的网站,以及其他一些涉及重大商务政治活动、 大型文艺表演的专题网站。这些非常重要而又特殊的网站具有与一般网站不同的 特点:( 1 ) 大部分用户按照大型活动的时间表访问大型活动网站。例如在比赛进 行期间,业务量非常巨大且显突发性、峰值流显非稳态变化特性;( 2 ) 大型活动 进行期间,由于大部分用户所关注的目标都非常近似( 例如比赛结果) ,因此用 户的访问行为相似、访问内容非常集中。这就导致某些被关注的页面被高频率访 问,而其他页面则较少被访问。二,由于系统内部故障,导致热门服务不可用, 这时用户就会通过频繁访问进行尝试,也会引起峰值浏览。拒绝访问攻击是网络 黑客恶意向i n t e m e t 服务发起大量请求,它和蠕虫病毒的目的都是耗尽系统资源, 使系统不能正常提供服务。 2 2 业务层故障简介 由于i n t e m e t 服务的正常提供依赖于系统和网络各个部分的正常运行,依赖 于软件和硬件的正常协作,任何部分的故障都将引起i n t e m e t 服务不可用或性能 降级。因此,服务故障的成因非常复杂,涉及到协议栈多个层次,并依赖于软件 平台和硬件设备。以v o d 为例,用户在使用播放器观看视频时将涉及到所有协 议层次,从上至下分别为:业务层的媒体播放器、r t p r t c p 、t c p 、i p 和网卡 ( 链路层和物理层) 。故障将会在协议层之间传播,比如收发设备的时钟不同步, 将会造成链路层的数据帧错误;物理层的链路中断将会造成p 层的路由中断, 引起t c p 层的数据包重传,同时在业务层上将观察到大量马赛克的出现,即服 务出现了性能降级。i n t e m e t 服务本质上是软件程序,其功能可能由多个软件组 件共同提供。由于传输层以下的功能通常由操作系统和物理网卡实现,因此服务 的软件代码通常只涉及到协议栈的业务层,规定了服务的运行逻辑以及如何使用 互联网。由此可见,业务层故障是造成服务故障的主要原因之一 引起i n t e m e t 服务业务层发生故障的原因主要有两种:一,软件系统自身发 生故障;二,业务层遭受到分布式拒绝访问攻击( d i s t r i b u t e dd e n i a l o f - s e r v i c e 简, 称d d o s ) 。 在第一种情况中,软件系统自身故障可能会有很多种表现,例如导致服务器 宕机、导致服务完全不可用,但是我们这里到讨论的业务层故障的最典型表现是 软件故障只是改变了服务的语义而不影响其可用性。假设我们现在有一个分层结 构的系统,即自底向上依次为硬件、操作系统、业务层,层与层中间还有一些中 间件、库函数、标准协议等。在这个模型中,业务层故障是指只在业务层表现出 北京邮电大学硕士研究生毕业论文i n t e r n e t 服务的业务层故障检测算法 异常,而在其他下层结构中无症状的故障,通常业务层故障都不是f a i l s t o p 型( 指 故障的存在是否使得相关的服务不可用,或只是性能降低) 。图2 1 是业务层故 障的一个例子。在这个例子中,首先用户发出显示预订机票详细信息的h t l l p 请 求,然后服务器返回对应的h t l v i l 页面。但是在返回页面中,我们可以看到, 页面中并未呈现出预期的机票相关信息,而只是出现了机票的状态以及内容错误 的的机票信息。 l t i n e r a 啊 t l 霸朔黝辅嘲黪潮虢镬翰忡彬,黝黝奢糍 r c a c r v a t i o nc o d e :纛燃 囟蹬口黑 l 黟磊覆盖逶互髭戮缓缓缓翟羧缓缓缓琵缓覆霪笏缆缓滋缓缓缀嬲獭缓觋缀缓翳琵缓霪目 f r i 。o g l1 0 z s t a t u s :c o n f i n - n e d i n l b r m a tj o i q :t h a n ky o uf o rs e l e c i t i n g 图2 - 2w e b 服务中的一种业务层故障:返回的h t t p 页面中未出现预期的预订机票的详 细信息 在第二种情况中,d d o s 顾名思义就是使i n t e m e t 中的受攻击对象无法提供 或接受正常服务。如:使受攻击的主机系统瘫痪;使受攻击的主机服务失效,合 法用户无法得到相应的资源;使受攻击的主机用户无法使用网络连接等。目前, 大部分d d o s 检测方案【7 】主要是针对网络层和传输层的攻击,例如i c m p f l o o d i n g 和s y nf l o o d i n g 等,很少关注到基于业务层的d d o s 攻击。业务层d d o s 攻击是一种与高层服务相结合的攻击方法,业务层d d o s 攻击有以下两种形式: ( 1 ) h t t pf l o o d i n g 型攻击者向目标w e b 服务器发送大量h t t p 请求,请求内 容可以是正常页面、重定向页面( r e d i r e c t e dp a g e ) 、头信息( h e a d e ri n f o r m a t i o n ) 或 某些错误文档( e r r o rd o c u m e n t ) ,更复杂的可以是对动态内容、数据库查询的请求。 攻击者甚至可以模拟搜索引擎,从一个给定的h t 皿链接开始,以递归的方式 顺着指定网站上所有的链接进行访问;( 2 ) 主机资源耗尽型。攻击者用少量的 9 一堡 北京邮电大学硕士研究生毕业论文 i n t e m e t 服务的业务层故障检测算法 帅请求促使服务器返回大文件( 例如图像、视频文件等) ,或促使服务器运 行一些复杂的脚本程序( 例如复杂的数据处理、密码计算与验证等) 。这种方式 无须很高的攻击速率就可以迅速耗尽主机的资源,而且更具有隐蔽性。由此可见, 与传统的基于低层的d d o s 攻击相比,业务层d d o s 具有更加显著的攻击效 果,而且更加难以检测。这主要是由于:( 1 ) 从请求内容无法检测出攻击的异常 性;( 2 ) 现有的d d o s 检测方案都是针对工作于t c p 层及其以下层次的攻击方 式而设计的,面对业务层的d d o s 攻击,这些检测系统所看到的都是正常的口 分组、正常的t c p 连接和正常的流特征。因此,攻击请求可以顺利穿越低层的 检测与防御体系直接到达w e b 服务器。 2 3 业务层故障检测方法的研究现状 目前,多种多样的业务层故障检测方法总的来说可以分为四大类:基于规则 的故障检测方法、基于有限状态机模型的故障检测方法、基于神经网络的故障检 测方法、基于统计方法的故障检测方法。 基于规则的故障检n 8 】 在这种方法中,领域内的普通知识标识成一组规则,而与特殊情形相关的知 识则由事实组成。一个基于规则的系统由三部分组成:工作存储区、知识库和推 理引擎。 规则的一般形式为: i f t h e n 或 基于规则的系统的检测机制是一个“识别一动作的循环过程:匹配满足当 前状态的所有规则构成冲突集;选择冲突集中最优匹配规则;执行规则。这样一 个过程重复执行直到没有匹配的规则。 基于规则的事件关联方法的优点在于其表达直观,表示灵活,便于推理,格 式清晰,设计和检测方便,对于捕获确定的、发生频率高的故障,准确度和精确 度较高。缺点是其关联知识来源于固定的知识库,不能在运行过程中动态地学习 知识,通用性较差。 随着i n t e r n e t 服务规模的不断扩大和频繁的更新升级,业务层故障表现出越 来越多的不确定性,例如表现形式的不确定性,发生位置、时间的不确定性等, 这些都导致故障不能及时有效的被捕获,甚至完全无法检测。另外,由于规则制 定的复杂性,增加了故障检测系统部署和维护的开销。因此,此类技术不适用于 检测现今大规模复杂动态业务系统中存在的故障。 基于有限状态机的故障检测 9 】 状态转移分析方法运用状态转换图来表示和检测已知的可能的故障模式,即 1 0 北京邮电大学硕士研究生毕业论文i a t e r n e t 服务的业务层故障检测算法 运用系统状态和状态转移表达式来描述己知的故障模式,以有限状态机模型来表 示故障发生的过程。 图2 3 是某个检测系统的状态转移图的一部分,它以序列的方式给出了状态 转移图的各个组成部分。其中节点s i 表示系统的某个确定状态,弧线表示当事 件( e v e n t ) 发生时,系统状态的转移情况。状态转换法将系统中的故障看作一 个行为序列,这个行为序列导致系统从初始状态转入被发生故障的状态。分析时 首先针对每一种故障模式确定系统的初始状态和发生故障后的状态,以及导致状 态转换的条件,即导致系统进入故障状态必须执行的操作( 特征事件) ,然后用状 态转换图来表示每一个状态和特征事件。系统通过对事件序列进行分析来判断系 统内是否有故障发生。 图2 - 3 状态转移图示例 基于有限状态机模型的故障检测方法与基于规则的故障检测方法具有一定 的相似性,但相比较而言,基于有限状态机的方法更灵活并且更完整。基于有限 状态机模型的故障检测方法优点是检测的准确率高,时间复杂度相对较小。但是, 它也存在两点不足:一,并不是所有的故障或异常都能在合理的长度范围内被有 限状态机捕获到;二,由于状态是依一定概率转移的,状态的增加以及各个状态 间关系的复杂化导致需要学习的参数增加,并且这些参数可能会随着系统演进发 生变化这些变化都要求延长前期的离线学习时间。 基于神经网络的故障检测方法 神经网络是模拟人脑加工、存储和处理信息机制而提出的一种智能化信息处 理技术,与传统的计算机模型不同,它试图用一些简单的、大量的计算单元连接 在一起,形成网络来进行计算。神经网络由大量的处理单元组成,每个单元均可 接收大量输入,但只给出一个输出,同时这个输出可以分支、分配到许多其它处 理单元。神经网络中知识是由神经网络的结构决定的。 北京邮电大学硕士研究生毕业论文 i n t e r n e t 服务的业务层故障检测算法 基于神经网络的检测思想可用图2 4 表示,图2 _ 4 中输入层的w 个箭头代 表了用户最近使用的w 个命令,输出层预测用户将要发生的下一个动作。w 是 神经网络预测下个命令时所包含的过去命令集的大小。根据用户的代表性命令 序列训练网络后,该网络就形成了相应用户的特征表,于是网络对下一事件的预 测错误率在一定程度上反映了用户行为的异常程度。 l i 7 i v l 预溅的下一个荫 l 一 t i j - l 一1 7 i i 】隰i - 。i i - - - - - - - i i _ - - - n - g i r l i - - - - l - - - - j 图2 - 4 用于故障检测神经网络图 己有不少研究人员尝试将神经网络用于应用层故障检测检测。【l o 】采用递归 型( r e c u r r e n t ) b p 网络,在对所收集的审计记录进行分析的基础上,对系统各用户 的行为方式进行建模,并同时结合传统的专家系统进行故障检测。

温馨提示

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

评论

0/150

提交评论