论文部分内容阅读
摘要:建立面向方面软件体系结构模型,有助于分离软件系统中的核心关注点和横切关注点,从而简化系统的设计与维护。详细分析构建模型的三个基本元素:构件、连接件和方面构件,并通过一个网上支付实例验证该模型的理论意义和实用价值。
关键词:体系结构;方面构件;横切关注点
中图分类号:TP 文献标识码:A 文章编号:1671-7597(2011)0220071-01
随着应用软件逐渐趋于复杂化、规模化,软件体系结构理论的提出具有深刻的现实意义。面向方面软件开发(AOSD)认为:系统由核心关注点(corn concern)和横切关注点(crosscutting concern)交织构成。核心关注点是软件的功能和目标,横切关注点则是那些与核心关注点之间有横切作用的关注点,如系统日志、事务处理和权限验证等。AOSD通过分离系统的横切关注点和核心关注点,使得系统的设计和维护变得容易很多,同时也利于构件的重用,使软件生产率得以提高。
1、面向方面软件体系结构相关概念
软件体系结构在软件工程领域影响广泛,但未形成一个统一的、标准的定义,目前较为认可的看法是软件体系结构包含三要素:构件、连接件和约束(constraints)。其中描述了体系结构配置和拓扑的要求,确定了体系结构的构件与连接件的连接关系。可以表示为:软件体系结构(software architecture)=构件(components)+连接件(connectors)+约束(constraints)。构件是软件体系结构的基本元素之一,是指具有特定功能、可明确辨识的软件单位。构件需具备语义完整、语法正确、有可重用价值的特点。目前构件的具体结构及构成并没有统一标准,而且一些主要的构件技术在构件类型的选择上也不一致。连接件是促成构件间交互以及支配这些交互规则的构造模块。作为软件体系结构中第一类实体,尽管在软件体系结构中强调了连接件存在的必要性,但是关于连接件模型的研究还很少,连接件的实际应用还不成熟,业内对连接件也没有形成统一的认识。方面构件的研究目前尚处起步阶段。方面软件的概念衍生于面向方面软件体系的研发。通常认为,方面构件是封装了系统横切关注点的一类特殊的构件。
2、面向方面软件体系结构模型
面向方面软件体系结构是在传统软件体系结构的基础之上扩展了方面构件,这里讨论它的模型结构包含构件、连接件、方面构件和约束四个。其中约束描述了面向方面体系结构配置和拓扑的要求,确定了体系结构的构件、连接件和方面构件之间的连接关系,而构件、连接件、方面构件是它的三个基本的构成单元。以下对这三个构成单元的模型进行详细的设计。
2.1构件模型
构件模型构成的三个要素是:端口、接口和属性。端口:是构建与外部环境的交互枢纽,构件提出服务请求和执行服务功能都要通过端口实现。常见有两种端口一双向端口和单向端口。在使用双向端口的构件模型中,服务请求和服务提供功能可以在同一个端口中实现。本设计采用单向端口,又分为请求端口和服务端口两种类型:
1)服务端口:构件通过服务端口向其他构件提供服务。每个服务端口对应一个接口,构件通过服务端口向其他构件的请求消息进行回馈。
2)请求端口:构件通过请求端口向其他构件请求服务。构件为了实现自己的业务功能,需要通过请求端口向其他构件发送请求消息。每个请求端口也对应一个接口。
3)接口:接口是构件间交互的契约。每个接口定义了一个或多个业务功能,这些业务功能由服务端口提供,经请求端口实施。每个接口限定一个特定端口的交互功能。通常的接口类型有:Java Interface、WSDL
1.1portTypes和WSDL 2.0 Interfaces等,也可以自定义接口类型。
属性:构件具有属性。属性可以在构件使用前进行配置,它能够反映构件在交互过程中状态的变化。
2.2连接件模型
连接件的作用在于建立构件间的交互,并为构件间信息交互提供传输和路由服务。有时构件之间可以直接完成交互,體系结构中的连接件就退化为直接连接。实际应用中,情况往往复杂得多,构件间交互的处理和维持便需要连接件来实现。我们也可以把连接件看做是一种特殊的构件。连接件也具有端口,其端口根据作用分为两类:用于接收构件请求端口消息的端口称源端口(source port);向构件服务端口中输入消息的端口为目标端口(target port)。
2.3复合构件模型
构件分为子构件和复合构件。子构件不可拆分,而后者是封装了若干个子构件的负荷体。予构件间通过连接件相互连接,其端口也可做为复合构件的端口。
2.4方面构件模型
方面构件是面向方面软件体系结构的核心的构成元素。它在封装的子构件中增加了横切关注点,使传统软件体系结构的应用性能得到实质上的提升。方面构件也有服务端口、请求端口和构件属性,还有传统构件不具备的方面端口。如某个构件具有一个方面端口,那么这个构件就是方面构件。方面端口中包含若干个方面,其横切关注目标是构件,而构件能表达对象所不能表达的请求服务的能力,这就不同于面向方面编程(AOP)技术中方面的概念。AOP具有以下四个基本概念:方面、通知、切点和连接点。方面是用来描述和实现横切关注点的基本单位,由通知和切点构成;通知表述了在切点所选定的连接点处要执行的动作,常见通知类型有before、around和after等,分表代表在连接点之前、连接点附近和连接点之后执行相应的通知代码;切点是一系列连接点的集合,是方面的作用点;连接点是应用程序执行过程一个定义明确的位置,如方法调用是一种典型的连接点。前述不同使得方面端口中方面所采用的连接点模型和切点语言与传统AOP具有相当差别。连接点模型包含构件服务端口中的服务提供操作和请求端口中的服务请求操作;如果该模型包含构件的属性,将会影响构件的分装。
参考文献:
[1]刘仁义,面向网络的海量空间数据与时态空间数据模型及其应用研究[D],杭州:浙江大学,2008
[2]徐志红、边馥苓,基于事件语义的时态GIS模型[J],武汉大学学报:信息科学版,2009,27(3):311-315
关键词:体系结构;方面构件;横切关注点
中图分类号:TP 文献标识码:A 文章编号:1671-7597(2011)0220071-01
随着应用软件逐渐趋于复杂化、规模化,软件体系结构理论的提出具有深刻的现实意义。面向方面软件开发(AOSD)认为:系统由核心关注点(corn concern)和横切关注点(crosscutting concern)交织构成。核心关注点是软件的功能和目标,横切关注点则是那些与核心关注点之间有横切作用的关注点,如系统日志、事务处理和权限验证等。AOSD通过分离系统的横切关注点和核心关注点,使得系统的设计和维护变得容易很多,同时也利于构件的重用,使软件生产率得以提高。
1、面向方面软件体系结构相关概念
软件体系结构在软件工程领域影响广泛,但未形成一个统一的、标准的定义,目前较为认可的看法是软件体系结构包含三要素:构件、连接件和约束(constraints)。其中描述了体系结构配置和拓扑的要求,确定了体系结构的构件与连接件的连接关系。可以表示为:软件体系结构(software architecture)=构件(components)+连接件(connectors)+约束(constraints)。构件是软件体系结构的基本元素之一,是指具有特定功能、可明确辨识的软件单位。构件需具备语义完整、语法正确、有可重用价值的特点。目前构件的具体结构及构成并没有统一标准,而且一些主要的构件技术在构件类型的选择上也不一致。连接件是促成构件间交互以及支配这些交互规则的构造模块。作为软件体系结构中第一类实体,尽管在软件体系结构中强调了连接件存在的必要性,但是关于连接件模型的研究还很少,连接件的实际应用还不成熟,业内对连接件也没有形成统一的认识。方面构件的研究目前尚处起步阶段。方面软件的概念衍生于面向方面软件体系的研发。通常认为,方面构件是封装了系统横切关注点的一类特殊的构件。
2、面向方面软件体系结构模型
面向方面软件体系结构是在传统软件体系结构的基础之上扩展了方面构件,这里讨论它的模型结构包含构件、连接件、方面构件和约束四个。其中约束描述了面向方面体系结构配置和拓扑的要求,确定了体系结构的构件、连接件和方面构件之间的连接关系,而构件、连接件、方面构件是它的三个基本的构成单元。以下对这三个构成单元的模型进行详细的设计。
2.1构件模型
构件模型构成的三个要素是:端口、接口和属性。端口:是构建与外部环境的交互枢纽,构件提出服务请求和执行服务功能都要通过端口实现。常见有两种端口一双向端口和单向端口。在使用双向端口的构件模型中,服务请求和服务提供功能可以在同一个端口中实现。本设计采用单向端口,又分为请求端口和服务端口两种类型:
1)服务端口:构件通过服务端口向其他构件提供服务。每个服务端口对应一个接口,构件通过服务端口向其他构件的请求消息进行回馈。
2)请求端口:构件通过请求端口向其他构件请求服务。构件为了实现自己的业务功能,需要通过请求端口向其他构件发送请求消息。每个请求端口也对应一个接口。
3)接口:接口是构件间交互的契约。每个接口定义了一个或多个业务功能,这些业务功能由服务端口提供,经请求端口实施。每个接口限定一个特定端口的交互功能。通常的接口类型有:Java Interface、WSDL
1.1portTypes和WSDL 2.0 Interfaces等,也可以自定义接口类型。
属性:构件具有属性。属性可以在构件使用前进行配置,它能够反映构件在交互过程中状态的变化。
2.2连接件模型
连接件的作用在于建立构件间的交互,并为构件间信息交互提供传输和路由服务。有时构件之间可以直接完成交互,體系结构中的连接件就退化为直接连接。实际应用中,情况往往复杂得多,构件间交互的处理和维持便需要连接件来实现。我们也可以把连接件看做是一种特殊的构件。连接件也具有端口,其端口根据作用分为两类:用于接收构件请求端口消息的端口称源端口(source port);向构件服务端口中输入消息的端口为目标端口(target port)。
2.3复合构件模型
构件分为子构件和复合构件。子构件不可拆分,而后者是封装了若干个子构件的负荷体。予构件间通过连接件相互连接,其端口也可做为复合构件的端口。
2.4方面构件模型
方面构件是面向方面软件体系结构的核心的构成元素。它在封装的子构件中增加了横切关注点,使传统软件体系结构的应用性能得到实质上的提升。方面构件也有服务端口、请求端口和构件属性,还有传统构件不具备的方面端口。如某个构件具有一个方面端口,那么这个构件就是方面构件。方面端口中包含若干个方面,其横切关注目标是构件,而构件能表达对象所不能表达的请求服务的能力,这就不同于面向方面编程(AOP)技术中方面的概念。AOP具有以下四个基本概念:方面、通知、切点和连接点。方面是用来描述和实现横切关注点的基本单位,由通知和切点构成;通知表述了在切点所选定的连接点处要执行的动作,常见通知类型有before、around和after等,分表代表在连接点之前、连接点附近和连接点之后执行相应的通知代码;切点是一系列连接点的集合,是方面的作用点;连接点是应用程序执行过程一个定义明确的位置,如方法调用是一种典型的连接点。前述不同使得方面端口中方面所采用的连接点模型和切点语言与传统AOP具有相当差别。连接点模型包含构件服务端口中的服务提供操作和请求端口中的服务请求操作;如果该模型包含构件的属性,将会影响构件的分装。
参考文献:
[1]刘仁义,面向网络的海量空间数据与时态空间数据模型及其应用研究[D],杭州:浙江大学,2008
[2]徐志红、边馥苓,基于事件语义的时态GIS模型[J],武汉大学学报:信息科学版,2009,27(3):311-315