论文部分内容阅读
随着软件开发技术的不断发展成熟以及生活中对应用软件需求的不断增长,软件系统的规模也正朝着大型化和复杂化的方向演化。在软件演化的过程中,出现失效和故障的问题越来越严重,人们也因此越来越重视软件的可靠性演化。寻找一个高效、快速的能够检测软件故障并保证软件系统安全稳定运行的方法,保证软件系统的稳定演化,渐渐成为人们研究的重点。大量学者多年的研究发现,对运行时的软件系统进行监控,是一个快速而有效的保证软件系统正常稳定演化的解决方案。本研究以利用软件监控技术来保证软件系统可靠稳定运行为重点,分析了当前的软件监控技术,总结了当前软件监控技术中存在的缺点。传统软件监控技术中,模块化不太好,灵活性也比较差。这是因为监控属于非核心业务,传统的软件监控方法是将监控代码插入到核心业务代码之中,这样容易打乱核心代码的业务逻辑,引起代码纠缠和分散,不利于以后的软件维护工作。监控是一个经典的横切关注点(crosscutting concern)问题,因此,应用AOP技术可以实现监控代码与被监控对象的分离,使得监控系统在模块化和灵活性方面都得到了增强。但是,在监控集成了第三方组件的软件系统中,由于组件和AOP技术中的方面属于不同的维度,又会出现代码混乱与纠缠的问题。在本文的研究中,吸取组件技术和AOP技术的优点,提出了一个基于组件技术与AOP技术的软件监控系统结构。该结构中,将组件技术中的概念方法应用于AOP技术中,实现了一个模块化、灵活的软件监控系统。在系统结构中将监控功能封装为一个面向方面的组件,有效解决了传统监控方法中因在应用代码中插入监控功能代码所产生的代码混乱与分散问题,也避免了因在组件和方面两个维度上考虑监控问题所产生的代码混乱与分散问题。最后,本文利用Java编程技术和AspectJ技术(AOP技术的Java实现),给出了该系统在Java平台上的实现。用户可以根据自己的需求,配置监控目标,使得监控效率得到了很大提高,使用更加简单、灵活。