基于CAR的动态织入AOP技术

来源 :武汉理工大学 | 被引量 : 0次 | 上传用户:hisandy
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在复杂的应用系统中,往往存在一组互不关联的对象模块之间有一些共同行为动作需要处理,这些共同的行为动作可被称为“横切关注点(crosscutting concerns)”,其特点是它们都跨越系统的多个核心功能模块,例如日志记录、事务管理、性能优化、错误处理、以及设计模式等。因为这些关注的实现必须穿插在问题领域的代码中去,使得这类关注点的实现要么散乱(Scattering,一个关注点的实现在代码中到处分散)要么杂糅(Tangling,一个软件模块描述对多个关注点的实现)。而这些横切关注点无论是采用面向过程的还是面向对象的编程方式(OOP),都难以用清晰的、模块化的代码实现。 面向切面编程(AOP)能够自动地将这些横切关注点织入到面向对象的软件系统中,从而实现了横切关注点的模块化。切面是AOP的核心,就是把对一个可能横切不同的多个对象的关注点模块化,这些模块化单元就叫“切面”。AOP在帮助我们解决代码散乱和杂糅问题的同时,还有其它一些好处:(1)系统容易扩展。由于切面可以让程序员接触到多个函数的多个接触面,所以在原来的基础上很容易通过加入新的切面来扩展原有的功能。(2)升级容易。使用AOP,设计师可以推迟为将来的需求作决定,实现当前的紧要需求,而把日后更新的需求使用切面与以前的需求耦合起来。(3)更好的代码复用。新的编程技术的最终目的都是为了代码复用,AOP把每个切面实现为独立模块,模块之间的耦合是松散的,更容易理解和维护,代码的冗余也更小,更容易复用。 当然,在对象之间横向联系不很频繁的场合,AOP并不一定比OOP更有优势,甚至有时使用AOP反而不如OOP自然,所以AOP只是OOP在某些应用场合的补充而已。可以说AOP是在实现软件模块之间的松散耦合,从而提高软件的可维护性和可复用性等方面的对OOP的进一步改进。 和欣操作系统中的CAR(component assembly runtime)构件主要由其所定义的接口、构件类和相关元数据组成。基于CAR的AOP机制使用户能够在完全不用修改源代码的情况下简单而方便的动态聚合两个或多个CAR构件类,从而生成一个具有两个或多个CAR构件类所有接口实现的新构件类。实现了动态织入切面代码的AOP技术。
其他文献
网格技术的产生是为了适应当前计算资源、计算能力不断增长的需求,它的最终目标是实现网络虚拟环境上的资源共享和协同工作。数据网格的研究则是网格技术研究中的一个重要内
随着信息技术的飞速发展,数据存储容量需求急剧增长,磁盘阵列技术应运而生。虽然磁盘阵列利用多个磁盘并行存取提高了存储系统的性能,但是磁盘阵列在操作系统的引导、Cache和
近几年来,随着我国通信技术的迅速发展,电信网络的规模不断扩大,网络设备的种类和数量不断地增加,整个网络的复杂性也随之日益提高。随着网络的快速发展和业务质量要求的不断提高
随着山东省立医院信息化建设的进行,医院信息管理系统作为医院要信息化办公软件也在不断完善。作为医院中的重要枢纽—药房,可以说是整个医院的心脏,负责处理来自门诊,住院所有就
视频监控可以使人们通过网络监控远端现场发生的事情,这种系统在工业生产和社会生活的各个领域得到了广泛的应用。而采用无线网络传输的视频监控的应用范围则更为广阔,因为这
中间件系统、操作系统和数据库系统是计算机科学领域内的基础技术,很多应用系统都使用到了中间件系统或者中间件系统的概念。消息中间件是中间件技术的发展热点,它作为一个消
科技的飞速发展,需要处理的信息量迅速增加,迫切需要一种能从大量科学数据中发现有价值知识的有效方法。知识发现是研究如何从大量的、模糊的、随机的数据中,提取隐含在其中
本论文以某重点型号工程飞行控制分组件测试系统的研制为背景,探讨了在QNX实时操作系统上搭建测试平台的设计和实现方法。 飞行控制系统中的接口分组件测试设备,以工控机为
粒子群优化算法(ParticleSwarmOptimization,PSO算法)是一种基于群智能方法的演化计算技术,是进化计算领域中的一个新的分支。它的主要特点是简单、收敛速度较快,且所需领域知识
目前,随着计算机技术以及网络技术的迅速发展,信息系统也正朝着分布式与信息资源共享两个方面发展,所以如何有效地解决分布式信息系统下的信息资源共享问题,已经成为信息系统