可复用方面库的构建方法及系统技术方案

技术编号:13963579 阅读:121 留言:0更新日期:2016-11-07 14:41
本发明专利技术公开了一种可复用方面库的构建方法,包括以下步骤:步骤1:设计方面库元模型;步骤2:添加抽象方面源文件到方面库;步骤3:解析抽象方面源文件,获取抽象方面的功能描述;步骤4:将获取的抽象方面的功能描述信息作为新的方面描述结点添加到XML文件中,生成新的XML文件;步骤5:通过查询算法查询XML文件,找到对应抽象方面;步骤6:从查询出的抽象方面中选择需要具体化的抽象方面,为每一个抽象切点输入具体切点定义;步骤7:将具体切点定义写到具体切点注解中,生成具体方面源文件。本发明专利技术提供了根据功能搜索抽象方面的方法,根据用户自定义具体切点自动生成具体方面的方法,提高了方面复用的效率。

【技术实现步骤摘要】

本专利技术涉及面向方面编程中方面库的构建领域,尤其涉及一种可复用方面库的构建方法及系统
技术介绍
AOP(面向方面编程)是一种关注点分离技术,基本思想是通过分别描述系统的不同关注点(属性或者兴趣)及其关系,以一种松耦合的方式实现单个关注点,然后依靠AOP环境的支撑机制,将这些关注点组织或编织成最终的可运行程序。在AOP中,关注点是一个非常重要的概念,可以定义为:为满足系统目标而必须实现的一个特定的需求或功能。软件的关注点分为两类:核心关注点(coreconcern)和横切关注点(cross-cuttingconcern)。核心关注点是指一个模块中最主要、最核心的功能,而横切关注点则是横跨多个模块的次要功能,这些功能一般都是核心功能的外围需求。例如,一个典型的企业应用程序除了实现核心业务功能之外,还必须实现一系列的横切功能。包括安全验证、日志记录、资源管理,性能监视、事务完整性和错误检测等,这些功能常常横跨多个模块。面向方面编程技术为软件开发人员提供了一种新型的编程范式,弥补了现有的面向对象技术中难以模块化横切关注点的不足,因此得到了学术界和工业界的广泛关注。AOP通过引入方面(aspect)和切点(pointcut)的概念表达模块之间的横向关系,分离横跨多个模块的关注点,从而更加清晰地划分模块的职责,提高了软件系统的可扩展性、可维护性和灵活性。AspectJ语言是目前最流行的面向方面编程语言。它是对Java语言的在面向方面的扩展,它既是一种规约语言,也是一种AOP的实现语言。AspectJ使用Java语言实现单个关注点,并通过对Java进行扩展的Aspect机制实现横切关注点,它还提供了编织(weaving)规则。AspectJ向Java语言增加了连接点,切点,通知,方面这几种特定的语言结构。这些扩展实现了AOP的核心思想,从而让使用AspectJ编程的程序能无缝集成核心关注点和横切关注点。AspectJ是Java语言语法和语义的扩展,它提供了自己的一套处理方面的关键字,这些都决定了用AspectJ构造方面库的方法具有一定的特殊性。所以AspectJ构造的方面库一直不像JBossAOP和SpringAOP那样普遍,AspectJ也并没有提供任何方面库。令人欣慰的是,AspectJ从AspectJ5版本开始提供对注释的支持,它的编辑工具AJDT中逐渐加入了对方面库的支持功能,从而使得使用AspectJ构造方面库变得越来越容易。本研究将基于AspectJ构建可复用的方面库。在编程语言发展史中,可重用库的引入很大地提高了编写程序的准确性和快速性,提高了软件重用能力,面向过程的编程和面向对象的编程都对可重用库提供了支持,那么面向方面的编程也不例外。假设已经开发了一个方面,并且感觉它适用于其他项目,那么可以泛化这个方面,并把它隔离到自己独立的项目中,形成一个库,即方面库(AspectLibrary)。方面库提供了某个功能的内部执行逻辑和基础设施,通过切入点的实例化将方面库与某个特定项目连接起来。例如提供应用程序性能监视的方面库,实现了所有性能监视相关的方法和通知,某应用程序使用该库的时候,只需要把库的切入点定义为应用特定的连接点即可,而无需关心性能监视功能的具体实现。这就是方面库的基本概念。面向方面编程作为一种优秀的编程范式,已经广泛应用与实际开发。面向方面的程序设计是指在设计阶段就将横切关注从系统中提取出来。在实现阶段,将这些横切关注封装成单独的编程模块(方面,aspect)。最后通过一定的静态或动态编织技术将这些横切关注代码自动注入回系统,从而实现了对横切关注点的封装和集中管理。因此,面向方面编程不仅要保留面向对象程序设计方法对核心关注点的封装和重用,还要能够非常有效地对横切关注点进行封装和集中管理。然而,目前关于如何对已有的封装了横切关注点的方面进行有效的描述、检索、管理等操作以达到有效复用方面的问题研究并没有得到足够重视。刘敬勇在《面向方面的可配置实时系统开发方法》中提到了从组件与方面库中选择合适的组件和方面组成可配置的实时系统。该文章提到的方面库只是根据实时系统的需求,设计了并发控制方面包、日志与恢复方面包、QoS方面包这三个方面包。并没有在更广泛的应用上对方面库进行定义和构建。面向方面编程不仅要保留面向对象程序设计方法对核心关注点的封装和重用,还要能够非常有效地对横切关注点进行封装和集中管理。然而,目前关于如何对已有的封装了横切关注点的方面进行有效的描述、检索、管理等操作以达到高效复用方面的方法研究并没有得到足够重视。
技术实现思路
本专利技术的目的是提供一种可对封装了横切关注点的方面进行有效的描述、检索、管理等操作的可复用方面库的构建方法,并提供方面库管理工具和自动生成具体方面的方法,提高面向方面编程中方面复用的效率。为实现上述目的,所采用的技术方案是:提供一种可复用方面库的构建方法,包括以下步骤:步骤1:设计方面库元模型,每个方面封装了横切关注点,将方面根据功能类型进行分类,一个方面库包含一个描述方面的XML文件;步骤2:添加抽象方面源文件到方面库;步骤3:解析抽象方面源文件,获取抽象方面的功能描述;步骤4:将获取的抽象方面的功能描述信息作为新的方面描述结点添加到XML文件中,生成新的XML文件。步骤5:通过查询算法查询XML文件,找到对应抽象方面;步骤6:从查询出的抽象方面中选择需要具体化的抽象方面,为每一个抽象切点输入具体切点定义;步骤7:将具体切点定义写到具体切点注解中,生成具体方面源文件。本专利技术所述的可复用方面库的构建方法中,每个抽象方面包括:方面名称、方面功能描述、抽象切点、通知、类型间声明、方法、属性。本专利技术所述的可复用方面库的构建方法中,抽象方面的功能描述包括方面名,抽象切点列表和通知列表。本专利技术所述的可复用方面库的构建方法中,所述XML文件的二级结点是功能分类结点,与方面的功能类型分类对应;三级结点是每个抽象方面的描述结点,其子节点包括:方面名、文件路径、功能描述。本专利技术还提供了一种可复用方面库的构建系统,包括:方面库元模型建立模块,用于设计方面库元模型,将方面根据功能类型进行分类,一个方面库包含一个描述方面的XML文件;抽象方面的功能描述获取模块,用于添加抽象方面源文件到方面库,并解析抽象方面源文件,获取抽象方面的功能描述;XML文件更新模块,用于将获取的抽象方面的本文档来自技高网
...

【技术保护点】
一种可复用方面库的构建方法,其特征在于,包括以下步骤:步骤1:设计方面库元模型,每个方面封装了横切关注点,将方面根据功能类型进行分类,一个方面库包含一个描述方面的XML文件;步骤2:添加抽象方面源文件到方面库;步骤3:解析抽象方面源文件,获取抽象方面的功能描述;步骤4:将获取的抽象方面的功能描述信息作为新的方面描述结点添加到XML文件中,生成新的XML文件;步骤5:通过查询算法查询XML文件,找到对应抽象方面;步骤6:从查询出的抽象方面中选择需要具体化的抽象方面,为每一个抽象切点输入具体切点定义;步骤7:将具体切点定义写到具体切点注解中,生成具体方面源文件。

【技术特征摘要】
1.一种可复用方面库的构建方法,其特征在于,包括以下步骤:
步骤1:设计方面库元模型,每个方面封装了横切关注点,将方面根据功能类型进行分类,一个方面库包含一个描述方面的XML文件;
步骤2:添加抽象方面源文件到方面库;
步骤3:解析抽象方面源文件,获取抽象方面的功能描述;
步骤4:将获取的抽象方面的功能描述信息作为新的方面描述结点添加到XML文件中,生成新的XML文件;
步骤5:通过查询算法查询XML文件,找到对应抽象方面;
步骤6:从查询出的抽象方面中选择需要具体化的抽象方面,为每一个抽象切点输入具体切点定义;
步骤7:将具体切点定义写到具体切点注解中,生成具体方面源文件。
2.根据权利要求1所述的可复用方面库的构建方法,其特征在于,每个抽象方面包括:方面名称、方面功能描述、抽象切点、通知、类型间声明、方法、属性。
3.根据权利要求1所述的可复用方面库的构建方法,其特征在于,抽象方面的功能描述包括方面名,抽象切点列表和通知列表。
4.根据权利要求1所述的可复用方面库的构建方法,其特征在于,所述XML文件的二级结点是功能分类结点,与方面的功能类型分类对应;三级结点是每个抽象方面的描述结点,其子节点包括:方面名、文件路径、功能描述。
5....

【专利技术属性】
技术研发人员:易顺何成万
申请(专利权)人:武汉工程大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1