让找料更便捷
电子元器件
采购信息平台
生意随身带
随时随地找货
一站式电子元器件
采购平台
半导体行业观察第一站
标签:
摘要: 摘 要: 提出一种基于动态AOP的监测器模型及其实现,它能够对现有的、已在运行的系统进行最灵活和能耗最小的代码级性能分析。利用AOP动态织入机制,可在目标系统运行过程中动态添加或删除监测器,从而提高监测的灵活性。 关键词: 性能监测;AOP;IoC;织入机制 随着Internet的日益普及和电子商务的飞速发展,基于B/S的Web应用系统大量出
摘 要: 提出一种基于动态AOP的监测器模型及其实现,它能够对现有的、已在运行的系统进行最灵活和能耗最小的代码级性能分析。利用AOP动态织入机制,可在目标系统运行过程中动态添加或删除监测器,从而提高监测的灵活性。
关键词: 性能监测;AOP;IoC;织入机制
随着Internet的日益普及和电子商务的飞速发展,基于B/S的Web应用系统大量出现。在这些Web应用系统中,客户端只提供人机交互的接口而未参与实际运算,而服务器端将承担数据存储及运算的全部工作,在面对海量客户端数量的情况下,服务端的性能压力问题就尤为突出。为了保证Web应用系统的正常运行,以及系统在服务器端具有较高的性能来响应大量用户的并发访问,进行合理的性能规划和有效的性能监测就显得非常重要。性能监测的主要意义[1]是:在系统运行阶段,通过监测系统的运行情况,发现错误并对故障进行定位,从而解决开发和测试阶段中的错误。
现有的监测器存在以下不足[2-3]:监测逻辑与业务逻辑紧密耦合,可扩展性、可复用性、可维护性差;监测部件分散在目标系统中,缺乏合理的组织;监测代码写在业务代码中,不易修改;监测部件在开发阶段手动插入,不适合动态添加或删除。
本文设计并实现了一款AOP监测器,它围绕目前.NET平台下主流的Web开发框架——Asp、net MVC,除了利用AOP关注点分离原则,克服了现有监测器的不足外,还针对MVC框架的特点,实现了注入切面,不仅实现了方法级别的监测,同时还实现了针对Controller及Action级别的监测,与其他方法[2]相比,该监测方式更适合Web系统的使用。
1 性能监测的作用及主要监测对象
性能监测也可称为构件交互行为监测[4],指对构件在交互活动期间所进行的操作进行监视记录的过程。构件交互行为[5]是指在分布式构件软件中,构件以主体的身份在完成某项协作活动时,通过构件的接口在运行环境中与其他构件进行交互的活动。性能监测主要包括:软件实体间的交互行为监测、行为信息的收集、为行为诊断、预测和可信评估等提供基础数据。
对于分布式构件软件的性能监测,其各监测类型所对应的监测对象[3]如表1所示。
现有的监测器大都面向操作系统级别,其监测范围及粒度均大于Web系统的监测所需,从而导致所监测的数据不能很好地用于对系统性能的提升分析上。由于Web系统属于非连续性开放系统,基于HTTP协议的基本“请求—响应”特性,决定了其安全性及可用性均与系统的业务存在必然的联系,传统的监测器不能根据一定的业务逻辑对所采集的数据进行筛选,而只能通过海量的原始数据结合业务进行判断。这也是本课题未直接采用传统性能监测器而是进行构件设计的一个主要原因。
2 基于AOP的性能监测系统及其实现
2.1 系统结构
本文设计实现的AOP性能监测系统结构如图1所示,它由3个部分构成:目标监测系统、独立监测控制台和性能监测构件包。其中可视化部分——独立监测控制台是辅助实现动态织入的关键,也是连接目标监测系统和性能监视构件包的桥梁,它提供性能数据读写接口以实现标准化的性能数据采集,以及为目标系统扩展IoC功能提供织入控制容器。性能监测构件包提供了基本标准接口,监控器的类型和功能可以根据实际项目需要扩展新的监测组件。
2.2 相关技术介绍
本系统主要采用AOP 技术实现监测代码和业务代码松散耦合,并可在目标系统运行过程中动态添加或删除监测器。本系统主要采用的开发工具有Asp、net MVC、NInject。WEB。MVC、WMI。
面向方面编程(AOP)是美国施乐公司帕洛阿尔托研究中心在20世纪90年代提出的一种编程思想。AOP技术作为一种新兴的软件开发方法,提供了不同关注点的分离实现机制,具有可扩展性、可复用性、易理解性、易维护性等特性。本监测器利用AOP关注点分离原则,实现监测代码与业务代码松散耦合,提高目标系统的可扩展性、可复用性、易维护性;使用AOP的动态织入机制,允许动态添加、删除监测器,从而实现监测的可控性与动态性。
Asp、net MVC框架将模型、视图、控制器引入开发模型,将Web系统跟踪从页面层次提升到了面向业务的层次。NInject是一个超轻量级的依赖注入框架,具备灵活、自由的织入机制,其扩展框架NInject。WEB。MVC是专门为Asp、net MVC设计的扩展包。除了一般IoC所具备的构造函数、方法、属性注入之外,还提供了针对Controller生命周期的注入及扩展的MvcInjectApplication类。WMI是Windows的核心管理技术,本系统中多处需要提取操作系统及硬件信息,而在Windows操作系统环境下,WMI编程接口具有良好的可操作性,因此本系统的交互行为监测组件主要使用该技术实现。
2.3 系统的实现
本系统使用Visual Studio、Net2010开发,使用Asp、net MVC2.0和NInject。Web。MVC技术实现。
一般的Web系统由于页面级别和类级别往往不能包含一个完整的业务功能,因此在实现对业务功能级别的性能监测上存在着一定的复杂度。本系统围绕Asp、net MVC框架而实现,它改变Web Form框架依赖页面的Web架构模式,按照控制器和动作的方式将业务功能进行逻辑划分,使得IoC注入方式增加了控制器注入、动作注入、控制器异常注入、动作异常注入等几种方式,使得Web系统的性能监测粒度范围有了更实际的业务价值。图2为Asp、net MVC的执行流程。
上一篇:已经是第一篇
型号 | 厂商 | 价格 |
---|---|---|
EPCOS | 爱普科斯 | / |
STM32F103RCT6 | ST | ¥461.23 |
STM32F103C8T6 | ST | ¥84 |
STM32F103VET6 | ST | ¥426.57 |
STM32F103RET6 | ST | ¥780.82 |
STM8S003F3P6 | ST | ¥10.62 |
STM32F103VCT6 | ST | ¥275.84 |
STM32F103CBT6 | ST | ¥130.66 |
STM32F030C8T6 | ST | ¥18.11 |
N76E003AT20 | NUVOTON | ¥9.67 |