(计算机科学与技术专业论文)一种监控探针描述语言及其编译器的设计与实现.pdf_第1页
(计算机科学与技术专业论文)一种监控探针描述语言及其编译器的设计与实现.pdf_第2页
(计算机科学与技术专业论文)一种监控探针描述语言及其编译器的设计与实现.pdf_第3页
(计算机科学与技术专业论文)一种监控探针描述语言及其编译器的设计与实现.pdf_第4页
(计算机科学与技术专业论文)一种监控探针描述语言及其编译器的设计与实现.pdf_第5页
已阅读5页,还剩71页未读 继续免费阅读

(计算机科学与技术专业论文)一种监控探针描述语言及其编译器的设计与实现.pdf.pdf 免费下载

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

文档简介

国防科学技术大学研究生院硕士学位论文 摘要 随着信息化的不断发展,软件已经渗透到社会的各个领域,人们对软件的依 赖度越来越大。然而,随着软件规模和复杂度不断增加,软件故障和软件失效问 题日益严峻,给人们生活甚至国家安全带来极大的影响,因此如何确保软件安全 可靠运行受到人们的广泛关注。软件监控技术通过获取系统运行时行为并与预期 行为相比较,能有效的掌握系统的运行状况,有助于分析和定位系统故障,评估 系统性能,提高系统的可用性和可维护性,是确保系统安全可靠运行的重要途径, 对软件监控技术进行研究具有重要的理论意义和应用价值。 软件监控技术广泛应用于程序调试、系统调优以及系统正确性保证等各个方 面,在面对传统软件时取得了较好的效果。但是,软件技术不断发展,软件不断 呈现出新的特点,规模不断增大,复杂度不断提升,分布开放特性不断增强,给 软件监控技术提出了新的要求,包括实现对分布式系统的监控、简单有效的监控 探针描述方法、将软件监控与软件设计实现相结合等。 针对这些新要求,通过对软件监控技术的深入研究,课题组提出了一个分布 式软件监控模型( d s m m ) 。d s m m 主要分为监控信息获取、监控信息发布订阅以 及监控信息分析处理三个模块,监控信息获取模块完成监控探针的描述,监控能 力注入以及监控信息的获取和发送;监控信息发布订阅模块将汇集的监控信息按 需求发送到监控信息处理模块;监控信息处理模块对监控信息进行记录、分析和 显示。本文工作主要集中在监控信息获取模块,设计了一种监控探针描述语言, 并设计实现了监控探针描述语言编译器,辅助开发人员进行监控探针描述,实现 监控能力自动注入。本文的研究内容主要包括以下几个方面: 1 研究了编译技术基本原理,分析了a n t l r 技术的工作机制,将其作为本 文监控探针描述语言预编译器实现技术。深入研究了a o p 技术的基本概念及技术 特点,重点分析了a s p e c t j 的语言特性,本文选择a s p e c t j 作为监控能力注入的支 撑技术,实现了监控能力的自动注入。 2 通过深入分析软件技术发展给软件监控提出的新要求,本文设计了一种监 控探针描述语言。监控探针描述语言可以辅助开发人员在进行软件设计实现的同 时根据监控需要描述监控探针,编写的监控探针描述文件独立于目标系统的逻辑 功能代码,便于修改和维护。 3 基于a n t l r 实现了监控探针描述语言的预编译器,实现了监控探针描述 文件到监控方面代码的转换。同时,利用a s p e c t j 完成监控方面代码与目标系统代 码的编织,实现了监控能力自动注入。 在上述工作的基础上,本文采用一个生产者消费者程序对设计的监控探针描 第i 页 国防科学技术大学研究生院硕士学位论文 述语言及编译器原型系统进行了验证,测试结果表明监控探针描述语言能够简单 有效的辅助开发人员正确的描述监控探针,编译器能够正确的编译监控探针描述 文件并将生成的监控方面代码自动注入到系统中,初步证明了本文工作的可行性 和有效性。 主题词:软件监控,监控探针描述语言,分布式监控模型,a n t l r ,编译器 第i i 页 国防科学技术大学研究生院硕士学位论文 a b s t r a c t w i t ht h ec o n t i n u o u s d e v e l o p m e n t o fi n f o r m a t i o n t e c h n o l o g y s o f t w a r eh a s p e n e t r a t e di n t oa l m o s te v e r yf i e l do fs o c i e t ya n dp e o p l e sd e p e n d e n c eo ns o f t w a r ei s i n c r e a s i n g h o w e v e r , a st h es i z ea n dc o m p l e x i t yr i s e ,t h es o f t w a r ef a u l ta n df a i l u r e p r o b l e m sb e c o m em o r ea n dm o r es e r i o u s ,w h i c hp o s eg r e a ti m p a c to np e o p l e sl i v e sa n d e v e nt h en a t i o n a ls e c u r i t y a sar e s u l t ,t h ep r o b l e mo fa s s u r i n gs o f t w a r er u n n i n gs a f e l y a n dr e l i a b l yd r a w sw i d ea t t e n t i o n s b ya c q u i r i n gs o f t w a r e sl u l l t i m eb e h a v i o r sa n d c o m p a r i n gt h e mw i t he x p e c t a t i o n , s o f t w a r em o n i t o r i n gt e c h n o l o g yc a ne f f e c t i v e l yg r a s p t h es o f t w a r e sr u n n i n gs t a t u s ,h e l pt oa n a l y s i sa n dl o c a t es o f t w a r ef a i l u r e s a n di tc a l l a l s oc o n t r i b u t et oe v a l u a t et h es o f t w a r ep e r f o r m a n c ea n di m p r o v es y s t e m sa v a i l a b i l i t y a n dm a i n t a i n a b i l i t y a l lt h e s em a k es o f t w a r em o n i t o r i n ga ni m p o r t a n tw a yt og u a r a n t e e s y s t e m s s e c u r i t ya n dr e l i a b i l i t y n l u s ,i ti so fg r e a tt h e o r e t i c a ls i g n i f i c a n ta n d a p p l i c a t i o nv a l u et od or e s e a r c ho ns o f t w a r em o n i t o r i n gt e c h n o l o g y s o f t w a r em o n i t o r i n g t e c h n i q u e sh a v e b e e nw i d e l yu s e di ns o f t w a r et e s t i n g , s y s t e mt u n i n g ,s y s t e ma c c u r a c ya s s u r a n c ea n do t h e ra s p e c t s ,a n dh a v eb e e np r o v e dt ob e v e r ys u c c e s s f u l i nt h ef a c eo ft r a d i t i o n a ls o f t w a r e h o w e v e r a st h ed e v e l o p m e n to f s o f t w a r et e c h n o l o g i e s ,t h es o f t w a r ec o n t i n u o u s l yp r e s e n t sn e wf e a t u r e s ,s u c ha ss c a l e i n c r e a s i n g ,c o m p l e x i t yr i s i n g ,d i s t r i b u t i o nc h a r a c t e rg r o w i n ga n do p e n i n gu p ,w h i c h r a i s en e wd e m a n d so ns o f t w a r em o n i t o r i n gt e c h n o l o g y ,i n c l u d i n gs i m p l ea n de f f e c t i v e m o n i t o r i n ga t t r i b u t i o nd e s c r i p t i o nm e t h o d ,r e d u c i n gt h ei m p a c to nt h ep e r f o r m a n c eo f t a r g e ts y s t e m ,s u p p o r t i n gm o n i t o r i n gd i s t r i b u t e ds y s t e ma n ds o0 1 1 i nr e s p o n s et ot h e s en e wd e m a n d s ,t h r o u g hi n t e n s i v es t u d yo fs o f t w a r em o n i t o r i n g t e c h n o l o g y ,o u rr e s e a r c hg r o u pp r o p o s e ad i s t r i b u t e ds o f t w a r e m o n i t o r i n g m o d e l ( d s m m ) ,w h i c hc a nb ed i v i d e di n t ot h r e em o d u l e :m o n i t o r i n gi n f o r m a t i o n a c q u i s i t i o nm o d u l e ,m o n i t o r i n gi n f o r m a t i o np sm o d u l ea n dm o n i t o r i n gi n f o r m a t i o n p r o c e s s i n gm o d u l e m o n i t o r i n gi n f o r m a t i o n a c q u i s i t i o n m o d u l e c o m p l e t e st h e d e s c r i p t i o na n di n s t r u m e n t a t i o no fm o n i t o r i n gp r o b e sa sw e l la sm o n i t o r i n gi n f o r m a t i o n o b t a i n i n ga n dd e l i v e r i n g ;m o n i t o r i n gi n f o r m a t i o np sm o d u l es e n d st h ec o n v e r g e d m o n i t o r i n gi n f o r m a t i o nt oc o r r e s p o n d i n gp a r to ft h em o n i t o r i n gi n f o r m a t i o np r o c e s s m o d u l e ;m o n i t o r i n gi n f o r m a t i o np r o c e s sm o d u l er e c o r d s ,a n a l y z e sa n dd i s p l a y st h e m o n i t o r i n gi n f o r m a t i o n t h i sp a p e rm a i n l yf o c u so nt h em o n i t o r i n gi n f o r m a t i o n a c q u i s i t i o nm o d u l e w ed e s i g nam o n i t o r i n gp r o b ed e s c r i p t i o nl a n g u a g e ( m p d l ) a n d i m p l e m e n ti t sc o m p i l e r ,w h i c hh e l pp r o g r a md e v e l o p e rt od e s c r i b em o n i t o r i n gp r o b e s a n di n j e c tm o n i t o r i n ga b i l i t yi n t ot a r g e ts y s t e ma u t o m a t i c a l l y 髓em a i nw o r ko ft h i s a r t i c l ei n c l u d et h ef o l l o w i n ga s p e c t s : 1 i nt h i sp a p e r , w es t u d yt h eb a s i cp r i n c i p l eo fc o m p i l e t e c h n o l o g y ,a n a l y z et h e w o r k i n gm e c h a n i s mo fa n t l ra n du s ei ta st h ei m p l e m e n t a t i o nt e c h n i q u eo ft h e 第i i i 页 国防科学技术大学研究生院硕士学位论文 m p d lp r e c o m p i l e r b e s i d e s ,w em a k ed e e pr e s e a r c ho na o p sb a s i cc o n c e p t sa n di t s t e c h n i q u ef e a t u r e s a f t e ri n t e n s i v es t u d yo ft h ea s p e c t j sl a n g u a g ef e a t u r e s ,w ec h o o s e i tt ob et h eb a s et e c h n o l o g yf o rt h er e a l i z a t i o no fm o n i t o r i n ga b i l i t ya u t o m a t i c a l l y i n j e c t i n gm o d u l e 2 t h r o u g hc o m p r e h e n s i v ea n a l y s i so ft h en e wd e m a n d s t om o n i t o r i n gt e c h n o l o g y b r o u g h tu pb yt h ed e v e l o p m e n to fs o f t w a r et e c h n i q u e s ,w ed e s i g nam o n i t o r i n gp r o b e d e s c r i p t i o nl a n g u a g e ( m p d l ) m p d lc a na s s i s td e v e l o p e rt od e s i g nm o n i t o r i n gp r o b e s d u r i n gs o f t w a r ed e s i g na n di m p l e m e n t a t i o n ,a n dt h ew r i a e np r o b ed e s c r i p t i o nf i l ei s s e p a r a t e df r o mt h ef u n c t i o nl o g i cc o d eo ft h et a r g e ts y s t e m ,w h i c hm a k e si te a s yt o m o d i f ya n dm a i n t a i n 3 b a s e do nt h ea n t l r , w ei m p l e m e n tam p d lp r e c o m p i l e rw h i c hc a n t r a n s f o r mm o n i t o r i n gp r o b e d e s c r i p t i o nf i l ei n t om o n i t o r i n ga s p e c tc o d e m e a n w h i l e ,w e i m p l e m e n tt h em o n i t o r i n ga b i l i t yi n j e c t i n gm o d u l eb a s e do na s p e c t ja n da c h i e v e m o n i t o r i n gc o d ea u t o m a t i c a l l yi n s t r u m e n t a t i o n o nt h eb a s i so ft h ea b o v ew o r k ,t h i sp a p e ru s eap r o d u c e r c o n s u m e rp r o g r a mt o v e r i f yt h ed e s i g n e dm p d la n di t sc o m p i l e r t h er e s u l t ss h o wt h a tm p d lc a nh e l p d e v e l o p e rd e s c r i b em o n i t o r i n gp r o b e sc o r r e c t l ya n de f f e c t i v e l y ,a n dt h ec o m p i l e r t r a n s f o r m st h em o n i t o r i n gp r o b e sd e s c r i p t i o nf i l ei n t om o n i t o r i n gc o d ea c c u r a t e l ya n d i n s t r u m e n ti ti n t ot h et a r g e ts y s t e ma u t o m a t i c a l l y 1 1 1 i sp r e l i m i n a r i l yp r o v e st h ef e a s i b l e a n de f f e c t i v e n e s so fo u rw o r k k e yw o r d s :s o f t w a r em o n i t o r i n g ,m o n i t o r i n gp r o b ed e s c r i p t i o nl a n g u a g e , d i s t r i b u t e dm o n i t o r i n gm o d e l ,a n t l r ,c o m p i l e r 第i v 页 国防科学技术大学研究生院硕士学位论文 表2 1 表2 2 表2 3 表2 4 表2 5 表2 6 表2 7 表4 1 表4 2 表4 3 表4 4 表4 5 表4 6 表4 7 表4 8 表4 9 表5 1 表5 2 表5 3 表6 1 表6 2 表6 3 表6 4 表6 5 表6 6 表6 7 表6 8 表6 9 表6 1 0 表6 1 1 表6 1 2 表6 1 3 表目录 a n t l r 规则形式1 4 a n t l r 带参数规则形式1 4 a n t l r 带返回值规则形式1 4 a n t l r 规则扩展形式1 4 连接点种类和相应程序执行点1 9 常见切入点定义及其含义1 9 a s p e c t j 通知类型及其含义2 0 进程监控探针描述元素b n f 表示2 6 线程监控探针描述元素b n f 表示2 7 函数监控探针描述元素b n f 表示2 8 关键变量监控探针描述元素b n f 表示2 9 其他语言元素3 0 进程监控探针描述语言示例3 0 线程监控探针描述语句示例31 函数监控探针描述语句示例3 1 关键变量监控探针描述语句示例3 1 监控探针相关信息3 7 监控探针信息存储数据结构3 8 a s p e c t j 方面典型语法结构3 8 预编译器类4 l 预编译选择函数4 1 监控探针元素类4 2 监控探针链表类4 2 监控探针描述文件描述语法4 3 进程监控探针描述文法4 4 线程监控探针描述文法4 4 函数监控探针描述文法4 5 函数监控探针描述文法4 6 切入点生成函数4 7 通知生成函数4 8 监控方面代码生成函数4 9 进程监控探针描述文法2 5 0 第l h 页 国防科学技术大学研究生院硕士学位论文 表6 1 4 表6 1 5 表6 1 6 表6 1 7 表6 1 8 表6 1 9 程序元素监控探针描述文法2 5 0 监控探针描述文件描述文法2 。5 0 编译器分析类调用。5 1 基于a s p e c t j 的监控能力注入。5 2 生产者消费者监控探针描述文件5 3 监控方面代码5 5 第1 v 页 国防科学技术大学研究生院硕士学位论文 图2 1 图5 1 图5 2 图5 3 图5 4 图5 5 图6 1 图6 2 图6 3 图6 4 图6 5 图6 6 图6 7 图6 8 图6 9 图6 1 0 图6 11 图目录 a n t l r 异常体系结构1 5 m p d l 编译器框架3 3 监控探针处理流程3 4 预编译处理模块体系结构3 5 预编译选择处理流程3 6 监控能力注入模块体系结构3 9 监控探针描述文件整体语法定义4 3 程序元素监控探针语法定义4 4 进程监控探针语法4 4 线程监控探针语法4 5 函数监控探针语法4 5 关键变量监控探针语法4 6 语法分析树4 6 生产者消费者示例程序u m l 图5 3 新建监控工程向导5 4 目标系统编译5 4 目标系统运行一5 6 第v 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名:墨渣日期:2 矿哆年2 月j 夕日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书。) 日期:夕吵年7 2 月彤日 :日期:川年7 其歹和 国防科学技术大学研究生院硕士学位论文 第一章绪论 1 1 问题提出 随着计算机技术的发展和互联网络的广泛应用,社会信息化程度不断提高, 从人们的日常生活到电信、金融、交通、指挥控制等国家重要领域等,软件被广 泛使用。以与人们日常生活息息相关的电子商务为例,据统计2 0 0 8 年中国电子商 务市场规模约为3 万亿元,比2 0 0 7 年增长约4 1 7 ,目前仍保持高增长态判l 】; 在其他重要领域,如在航天方面,软件已广泛应用于运载火箭、卫星和导弹武器 系统中的制导、控制、导航、遥控和地面指挥控制等众多领域【2 】。由此可见,软件 已经渗透到社会的各个领域,人们对软件的依赖度不断增大f 3 】。但同时,随着软件 技术的发展以及社会对软件功能需求的变化,软件从最初的嵌入式系统到桌面应 用软件,再发展到大型分布式软件系统,功能不断增强,规模和复杂度不断提升, 软件失效和软件故障等问题日益增多,给人们的生活甚至是国民经济、国家安全 等带来巨大的影响。如2 0 0 7 年1 0 月,由于设计时对负载估计不足,系统设计未 采取积极预防措施,北京奥运票务系统在3 0 日当天导致数百万人未能正常订票【4 】; 在1 9 8 5 年6 月到1 9 8 7 年1 月的不到两年的时间里,t h e r a c 2 5 ( 一种通过产生高能 光束或电子流杀死人体毒瘤的医疗设备) 因为软件安全设计问题使得在数据输入过 快时导致电子流或x 光束过量使用,造成4 人死亡2 人重伤的严重后果【5 1 ;2 0 0 2 年6 月2 8 日,美国商务部国家标准技术研究所发布研究报告称每年由于软件缺陷 给美国造成的经济损失大约为5 9 5 亿美元,约占其国内生产总值的0 6 酬。因此, 如何保证软件的安全可靠运行受到人们的普遍关注,进行了广泛的研究。 针对软件的安全可靠运行问题,研究人员提出了很多解决方法,主要包括形 式化规约、形式化验证以及软件测试等。( 1 ) 形式化规约技术使用精确语义的形式 化语言在某一抽象层次上刻画软件系统应该满足的属性,可以尽早发现软件需求 和设计中存在的错误、不一致、歧义以及不完全性【7 】;( 2 ) 形式化验证技术是在形 式化规约的基础上建立软件系统及其性质的关系,即分析系统是否具有所期望性 质的过程,主要包括模型检验和定理证明两种途径【3 】。模型检验技术使用状态迁移 系统表示系统的行为,用模态时序逻辑公式描述系统的性质,使用“状态迁移系 统是否满足公式的一个模型 来描述“系统是否具有所希望的性质”,从而能够 判断一个有穷状态系统是否具备期望的性质【8 】;定理证明技术将软件系统及性质用 逻辑方法来规约,通过基于公理和推理规则组成的形式系统,以如同数学中定理 证明的方法来证明软件系统是否具备所期望的关键性质1 3 j :( 3 ) 软件测试方法通过 静态源代码分析和动态目标代码运行来判断软件是否具有所期望的性质,能够有 第1 页 国防科学技术大学研究生院硕士学位论文 效的定位和排除软件缺陷一j 。这一类部署前的技术手段能及早发现系统设计和实现 中存在的缺陷,是确保系统安全可靠运行非常重要的一环。但是上述这些方法有 其适用范围,也存在一定的局限性。形式化规约对非功能性需求和性质如适用性 易用性等很难规范清楚【l 叫;模型检验技术在针对状态空间较小的系统如小型嵌入 式软件时比较有效,但软件系统的状态组合爆炸问题使得其扩展性受到很大的制 约,定理证明则存在自动化程度不够的缺陷【3 】【1 1 】;软件测试技术基于测试用例,由 于边界条件多,环境动态变化等原因,测试用例很难覆盖所有的应用场景。 因此,系统的安全可靠运行仅靠部署前的测试或验证是不够的,软件部署后 运行时的监控和保证措施是一个重要手段。通过对软件实施合理的监控,及时获 得软件系统的状态,掌握系统的实时行为,与预期行为进行比较,能够准确分析 和定位系统的故障,判断软件是否处于健康状态。因此,软件监控技术成为保证 软件安全可靠运行的重要途径。 软件监控广泛应用于系统的正确性保证,同时在辅助测试、提高系统可用性、 可维护性等方面也发挥着重要作用。如伊利诺斯大学的面向监控编程 ( m o n i t o r i n g o r i e n t e dp r o g r a m m i n g ,m o p ) 1 2 1 使用过去时线性时序逻辑( t p l t l ) 、将来 时线性时序逻辑( r t l t l ) 以及扩展规则表达式( e r e ) 等来表达监控规约,并插入到系 统的特定位置,从而实时验证系统状态的变迁【1 3 】;宾夕法利亚大学研究出 m a c ( m o n i t o r i n ga n dc h e c k i n g ) ,采用一种比较特殊的基于语言的间隔时序逻辑去 检测程序行为,保证系统的正确运彳亍【1 4 儿”】,这两个典型研究在利用监控保证程序 正确性方面进行了深入研究。同时,运行时监控能够为软件的调试和测试收集信 息,从而辅助软件测试的进行,如文献【l6 】根据系统形式化规约自动生成测试用例, 包括测试输入以及对应的预期输出,系统在执行并处理测试输入数据时会输出相 应的事件,并将这些事件通知给事件监控器,事件监控器将其与预期输出相比较, 从而辅助进行系统测试。此外,软件监控通过监控系统状态变化并根据变化情况 采取对应的措施,能够检测故障,并及时进行故障恢复,能有效提高系统的可用 性【1 7 】。通过在真实的环境中运行,对系统的运行状况进行检测,能够获得模拟无 法得到的真实运行数据,从而提高系统的可维护性;通过检测软件运行时的各种 资源消耗情况,判断对系统性能影响的因素,还能辅助评估和提高系统的性能【l 引。 软件监控技术经历了4 0 余年的发展,在各方面的应用也比较广泛。但是,随 着软件技术的发展,软件形态特性不断变化,给软件监控技术带来新的挑战。当 前软件的发展主要呈现以下几个特点:( 1 ) 软件规模不断增大:以美国宇航局的 软件系统为例,1 9 6 3 年的水星计划系统约为2 0 0 万条指令,1 9 6 7 年的双子星座计 划系统增加到4 0 0 万条指令,1 9 7 3 年的阿波罗计划系统为1 0 0 0 万条指令,到了 1 9 7 9 年,哥伦比亚航天飞机系统达到了4 0 0 0 万条指令【l9 1 。美国国防部资助下开展 第2 页 国防科学技术大学研究生院硕士学位论文 的u l t r a - l a r g e s c a l es y s t e m 研究指出,未来的军用软件代码行数甚至会达到数十亿 行【2 0 】;( 2 ) 软件复杂度不断提升:软件复杂度的提升不仅仅体现在软件规模的增大 上,还在于软件系统模块数不断增多,各模块之间的协作交互更加复杂多变,以 银行业务系统为例,一个银行系统通常包含了传统存贷款业务、信贷管理业务、 电话银行、网上银行、支付密码核验平台、银联系统、a t m 、p o s 、事后监督系 统、现代化支付系统、中间业务平台等众多的子系统,子系统之间的交互协同非 常复杂【2 l 】;( 3 ) 分布、开放性不断增加:分布式系统应用越来越广泛,如电力监测 与控制管理系统、交通指挥控制系统等都是典型的分布式系统。同时,软件系统 所处的环境、资源等都是开放变化的,在互联网开放环境下,用户、资源可以动 态加入离开,往往无法预测单位时间内用户请求数量。以腾讯q q 为例,2 0 0 5 年 2 月,其最高同时在线人数突破1 0 0 0 万,2 0 0 7 年9 月,最高同时在线人数达到4 0 0 0 万,到2 0 0 9 年1 0 月1 0 日,同时在线突破8 0 0 0 万【2 列。由上可以看出,其同时在 线人数逐年增加,即使在很短的时间段内,其同时在线人数也是不断变化的,很 难准确预测。面对出现的这些新特性,传统软件监控技术在应用于此类软件系统 时面临着对原系统性能影响较大、对分布式系统监控的支持不足等挑战。 文献【1 6 】将监控系统定义为“观察系统行为并确定是否和给定规范相一致的系 统 ,将软件监控分为两个方面:对目标系统的监视和检查,监视是指获取系统 的运行状态,检查则是将系统运行时行为与预期行为进行比较分析,判断是否符 合给定的规范,通过监视和检查,可以实现对目标系统的监控。现有的软件监控 技术主要针对的是传统软件,主要关注程序执行的正确性检查,在实现时通常将 监视与检查逻辑合并在一起,以某种形式植入到目标系统中。但是,随着计算机 技术的不断发展,软件规模、复杂度以及分布开发特性不断增加,软件监控技术 面临新的挑战,主要包括以下几个方面: ( 一) 需要有效的分布式监控模型:分布式系统的运行是各个节点之间交互协作 的过程,仅仅针对各个节点进行监控难以反映整个分布式系统的运行状况。要掌 握系统整体状况,需要将各个节点的运行状态进行汇集和关联分析。因此,需要 设计相应的软件监控机制,将运行状态信息的获取和分析检查逻辑分离开来,以 支持进行分布节点的状态汇集和关联分析,完整准确的掌握系统的运行状况。 ( 二) 需要设计简单有效的监控探针描述手段:要获取目标系统的运行状态,植 入监控探针是一个有效手段。现有软件监控技术提出侧重于正确性保证,将系统 状态获取与分析检查逻辑合并在一起,没有定义单独的监控探针。同时,其监控 逻辑通常采用形式化描述方法,虽然具有较强的描述能力,但其实现通常比较复 杂。如何设计一种简单有效的监控探针描述方法,简单、准确的描述监控属性, 并具有一定的通用性,是软件监控技术中亟需解决的问题。 第3 页 国防科学技术大学研究生院硕士学位论文 ( 三) 如何将软件监控与软件设计实现相结合,降低监控实现的复杂度:随着软 件代码行的急剧增大,系统各个模块之间的交互越来越复杂,如果部署后再考虑 监控将会非常复杂。同时,如果监控逻辑代码散落在系统功能代码各处,与功能 逻辑代码相互纠结,对监控逻辑的修改和维护将极其困难。因此,需要将软件监 控与软件开发结合起来,在软件设计、实现、维护等开发过程的各个阶段都将软 件监控考虑进去,以有效降低监控实现和维护的难度。 本文希望通过对软件监控技术的研究,在与课题组一起提出的分布式软件监 控模型基础上,设计出一种简单有效的监控探针描述机制,这种描述机制能够支 持开发人员在系统设计实现的同时完成监控探针的描述,将监控探针与系统功能 逻辑分离开来,提供监控逻辑的自动注入能力,支持对分布式系统的监控。 1 2 1 软件监控技术的发展 1 2 研究现状 软件监控技术是随着软件技术的发展而不断发展的,软件形态不断变化,从 集中式程序到分布式系统再到构件和服务技术的兴起,软件监控技术相应的也在 不断发展。 1 ) 早期的软件监控技术:软件监控技术始于上世纪6 0 年代,早期的软件监 控技术侧重于对单个语言程序的研究,最早被用于汇编语言程序的调试,随后在 其他一些高级语言的调试中得到一定的应用。如f e r g u s o n 和b e r m e r 开发的一个 f o r t r a n 调试系统,基于b u g t r a n 语言编写相应的监视语句,并利用预处理器将其静 态嵌入到f o r t r a n 程序中,利用这些嵌入的监视代码获取信息,辅助进行调试【2 3 】; e x d a m s 则是在目标系统中插入一些监视代码,获取系统的运行时行为并将其保存 在磁带上,用于离线的调试和分析1 2 4 j 。 2 ) 面向集中式软件的软件监控技术:由于主机计算时代的终端计算能力有 限、批处理的操作模式很难实时交互等原因,早期的软件监控技术未得到广泛认 可。随着软件的发展,软件监控技术在软件调优、软件实时容错以及软件维护方 面得到广泛应用,出现了很多典型技术或项目,除1 1 节提到的m o p 及m a c 之外, 还有j m o n i t o r t 2 5 】,j a s s 2 6 1 ,d y n a m i c s l 2 7 】等。其中,i m o n i t o r 提供了一个事件规约抽 象a p i 提供给开发人员,开发人员可以利用此a p i 定义事件规范文件,包括事件 类型、事件监控器以及事件与监控器的关联规则等,其中事件类型一般包括数据 域的读写、方法调用、类对象的声明等。通过重载类加载器,在加载时实现监控 器的注入及其与事件的关联,在系统运行通过触发对应的监控器来实施监控; j a s s ( j a v aw i t ha s s e r t i o n s ) 贝, u 是通过在j a v a 程序中以断言形式嵌入需求规约,实现运 第4 页 国防科学技术大学研究生院硕十学位论文 行时的动态监控。在前期工作中,我们课题组提出了可信软件构造模型,设计实 现了一个可信软件集成开发环境t s i d e ,利用一系列的插件工具对目标系统源代 码进行分析,然后进行监控需求建模,实现监控能力的注入和监控信息的获取、 分析和展示。在t s i d e 中,软件监控的实现是在软件实现之后才考虑的,监控需 求的获取是在源代码分析的基础上得来的,完全将软件监控与软件设计实现分离 开来,实现比较复杂,同时也难以支持对分布式系统的监控。这些监控技术一般 需要手动编写监控逻辑,其监控逻辑主要完成事件的分析判断,没有单独的信息 获取处理。 3 ) 面向分布式系统的软件监控技术:互联网技术的飞速发展和广泛应用,推 动复杂分布式软件的发展,软件监控技术的研究对象开始转移到此类软件上来。 分布式软件的复杂性、分布性等特性给软件监控技术带来很大的挑战,研究人员 对其进行了相应的研究。如美国北卡罗来纳州大学提出了一种基于关系模型和历 史数据的复杂软件系统监控方法,以收集数据、分析和显示为主要目标,将监控 过程划分为传感器配置、传感器安装、提供分析规约、显示规约和执行监控过程 五个步骤【2 8 】;文献 2 9 】【3 0 提出了一种自治的自我监测监控系统,实现对分布式网 络应用的在线监控以及网络协议的快速检测,它将监控器进行分级,本地监控器 主要完成信息收集、过滤并将有效信息发送给高层监控器,高层监控器获取系统 行为信息并进行错误检查,实现了一个可扩展的、灵活有效的分层体系结构。其 他一些典型的研究还包括h i f i 3 l 】,f a l c o n l 3 2 】等。这一类软件监控技术支持对分布 式系统的监控,并开始将监视和检查逻辑分离开来,但是尚缺乏灵活简单的监视 逻辑表述方法。 4 ) 面向构件和服务的软件监控技术:构件和服务已成为构造分布式软件系统 的主流软件工程技术,针对构件和服务的监控需求日益迫切。构件监控通常通过 基于框架的代码插入、自动代码插入、自动构件封装( w r a p p i n g ) 等方法来获取 构件的行为信息【3 3 1 ,进而根据多个构件的行为状态推断出整个软件系统的行为状 态p 4 j ;服务监控则被广泛应用于服务性能测试、可用性保证、服务组合等领域。 文献【3 5 】 3 6 】设计了一种网络服务交互行为的运行时监控和验证框架,它基于模式 约束的方法定义服务交互规范,在运行时通过监控网络服务的运行时交互行为来 检验其行为是否符合预先定义的规范;文献 3 7 】则设计了一个网络服务在线监控框 架,该框架重点关注网络服务质量,通过插入探针和代理来收集服务质量敏感事 件,根据预定义的约束进行分析,评估服务质量。 软件监控技术不断向前发展以支持对新的形态的软件系统进行监控,但是大 多数侧重于程序的正确性保证,缺少对分布式各个节点的汇集和关联分析,难以 掌握系统的整体状况。同时,软件监控逻辑的实现往往比较复杂,限制了软件监 第5 页 国防科学技术大学研究生院硕士学位论文 控技术应用。 1 - 2 2 监控逻辑描述方法研究 软件监控技术随着软件形态的变化不断发展,根据不同软件系统的特性,研 究人员不断提出新的软件监控手段来应对新的挑战。但是,软件监控技术的基本 原理都具有相似之处,基本上都包括以下几个方面:( 1 ) 获取软件的运行时状态和 行为,并将监控信息合

温馨提示

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

评论

0/150

提交评论