ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:121.63KB ,
资源ID:10257622      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10257622.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件体系结构剖析.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件体系结构剖析.docx

1、软件体系结构剖析注:考生属哪种类别请划“”(博士、在校硕士、工程硕士、师资硕士、同等学力、研究生班)辽宁工程技术大学研究生考试试卷考试时间: 2015 年 7 月 5 日考试科目:考生姓名:评 卷 人:考试分数:注意事项1、考前研究生将上述项目填写清楚2、字迹要清楚,保持卷面清洁3、试题、试卷一齐交监考老师4、教师将试题、试卷、成绩单,一起送研究生学院; 专业课报所在院、系一种面向方面软件体系结构模型为了分离软件系统中的核心关注点和横切关注点, 通过引入面向方面软件开 发的思想设计了一种面向方面软件体系结构模型, 并详细分析了该模型的三个基 本构成单元, 即构件、连接件和方面构件。 最后通过一

2、个网上支付实例验证了该 模型具有一定的理论意义和实用价值。20 世纪 60年代的软件危机使得人们开始重视软件工程的研究。起初,人们 把软件设计的重点放在数据结构和算法的选择上, 然而随着软件系统规模越来越 大,对总体的系统结构设计和规格说明变得异常重要。 随着软件危机程度的加剧, 软件体系结构 (software architecture)这一概念应运而生。 软件体系结构着眼于软件 系统的全局组织形式, 在较高层次上把握系统各部分之间的内在联系, 将软件开 发的焦点从成百上千的代码上转移到粒度较大的体系结构元素及其交互的设计 上。与传统软件技术相比, 软件体系结构理论的提出不仅有利于解决软件系

3、统日 益增加的规模和复杂度的问题, 有利于构件的重用, 也有利于软件生产率的提高。 面向方面软件开发 (AOSD) 认为系统是由核心关注点 (corn concern)和横切关注点 (cross-cutting concern)有机地交织在一起而形成的。核心关注点是软件要实现的 主要功能和目标, 横切关注点是那些与核心关注点之间有横切作用的关注点, 如 系统日志、 事务处理和权限验证等。 AOSD 通过分离系统的横切关注点和核心关 注点,使得系统的设计和维护变得容易很多。Extremadura大学的 Navasa等人在 2002 年提出了将面向方面软件开发技术 引入到软件体系结构的设计中,称之

4、为面向方面软件体系结构 (aspect oriented software architecture,AO-SA) ,这样能够结合两者的优点,但是并没有给出构建 面向方面软件体系结构的详细方法。尽管目前对于面向方面软件体系结构这个概念尚未形成统一的认识, 但是一 般认为面向方面软件体系结构在传统软件体系结构基础上增加了方面构件 (aspect component这) 一新的构成单元,通过方面构件来封装系统的横切关注点。 目前国内外对于面向方面软件体系模型的研究还相对较少, 对它的构成单元模型 的研究更少,通常只关注方面构件这一构成单元。方面构件最早是由 Lieberherr 等人提出的, 它是

5、在自适应可插拔构件 (adaptive plug and play componen,t APPC) 基础之上通过引入面向方面编程 (AOP)思想扩展一个可更改的接口而形成的,但 它关于请求接口和服务接口的定义很模糊,未能给出一个清晰的方面构件模型。 Pawlak 等人提出了一个面向方面的框架,该框架主要包含了一个方面构件模型 Java方面构件 (Java aspect componen,t JAC),但该方面构件模型仅包含了切点 (pointcut),并把 AOP 中装备 (advice)集成到了切点的表达式中,它主要从实现的 角度进行了阐述, 并没有给出详细的方面构件模型。 本文没有只关注

6、面向方面软 件体系结构中方面构件这一构成单元模型,还详细分析了它的另外两个构成单 元,即构件和连接件,因为面向方面软件体系结构各部分之间是相互关联的。面向方面软件体系结构相关概念面向方面软件体系结构涉及诸多概念, 以下将分别介绍。 软件体系结构在软 件工程领域有着广泛的影响, 但当前仍未形成一个统一的、 标准的定义。 目前国 内外普遍认可的看法是软件体系结构包含构件、 连接件和约束。 其中约束描述了 体系结构配置和拓扑的要求, 确定了体系结构的构件与连接件的连接关系。 这样 就可以 把软件体系结构写成软件体系结构(software architecture)=构件 (components)+连

7、接件 (connectors)+约束 (constraints)构件是软件体系结构的基本 元素之一。一般认为,构件是指具有一定功能、可明确辨识的软件单位,并且具 备语义完整、 语法正确、有可重用价值的特点, 然而目前对于构件的具体结构及 构成并没有一个统一的标准, 而且一些主要的构件技术也没有使用相同的构件类 型。另外,当前被广泛接受的构件定义并不包含具体的软件构件模型 (software component model)。例如,Szyperski 等人给出了软件构件一个很有名的定义 :软件 构件是一个仅带特定契约接口和显式语境依赖的结构单位, 它可以独立部署, 易 于第三方整合。但是关于软件

8、构件模型有一个被普遍接受的观点是 :软件构件是一个具有服务提供和服务请求功能的软件单元。连接件是软件体系结构另一个基本的构成元素, 是用来建立构件间交互以及 支配这些交互规则的构造模块。连接件最先是由 Shaw 提出来的,她建议把连接 件作为软件体系结构中第一类实体, 用来表示普通构件之间的交互关系。 目前对 于连接件尚未形成统一的认识, 尽管在软件体系结构中强调了连接件存在的必要 性,但是关于连接件模型的研究还很少,连接件的实际应用还不成熟。面向方面软件体系结构在传统软件体系结构的基础上增加了方面构件单元。 通常认为, 方面构件是封装了系统横切关注点的一类特殊的构件。 目前关于方面构件模型的

9、研究还处于起步阶段2面向方面软件体系结构模型由于传统软件体系结构模型包含构件、 连接件和约束, 而面向方面软件体系 结构是在传统软件体系结构的基础之上扩展了方面构件, 所以面向方面软件体系 模型结构包含构件、 连接件、 方面构件和约束。 其中约束描述了面向方面体系结 构配置和拓扑的要求, 确定了体系结构的构件、 连接件和方面构件之间的连接关 系,而构件、连接件、方面构件是它的三个基本的构成单元。以下对这三个构成 单元的模型进行详细的设计。2.1构件模型构件模型由以下几个要素构成 (图 1):(1)端口构件的服务请求和服务提供功能是通过端口来实现的。 端口是构件与外部环 境进行交互的惟一通道。

10、一般的构件模型通常采用两种端口, 即双向端口和单向 端口。在使用双向端口的构件模型中, 服务请求和服务提供功能可以在同一个端 口中实现。 本文中的构件模型使用单向端口, 此种端口分为请求端口和服务端口 两种类型。(a)服务端口。构件通过服务端口向其他构件提供服务。构件通过服务端口 向其他构件的请求消息进行应答,返回响应消息。每个服务端口对应一个接口。(b)请求端口。构件通过请求端口向其他构件请求服务。构件为了实现自己 的业务功能, 需要通过请求端口向其他构件发送请求消息。 每个服务端口也对应 一个接口。(2)接口它定义了一个到多个业务功能。 这些业务功能由服务端口进行提供, 并由请 求端口进行

11、使用。 一个接口限定了一个特定端口可以进行的交互功能, 接口是构 件间交互的契约。通常的接口类型有 :Java Interface、WSDL1 1 portTypes和 WSDL 2.0Interfaces等,也可以自定义接口类型。(3)属性与类或对象相似, 构件也具有属性, 属性可以在构件使用前进行配置, 它能 够反映构件在交互过程中状态的变化2.2连接件模型 连接件是用来建立构件间交互以及支配这些交互规则的体系结构构造模块。连接件为构件间信息交互提供传输和路由服务。 在最简单的情况下, 构件之间可 以直接完成交互, 这时体系结构中的连接件就退化为直接连接。 在更为复杂的情 况下,构件间交互

12、的处理和维持都需要连接件来实现。 对于构件而言, 连接件是 构件的粘合剂,是构件交互的实现, 也可以看做是一种特殊的构件。 与构件相似, 连接件也具有端口。连接件的端口可分为两种类型,即源端口 (source port)和目 标端口 (target port)。源端口用于接收构件请求端口中的消息,目标端口用于向构 件服务端口中输入消息。连接件通常需要使用一种合适的绑定 (binding)机制,构 件的请求端口使用这种绑定机制来描述服务请求的方法, 构件的服务端口也使用 这种机制来描述构件进行请求的方式。 常用的绑定机制有 :WebService Binding 和 JMS Binding 等,

13、也可以自定义绑定机制。与构件一样,连接件也具有属性,来 表示构件间交互的状态变化,如图 2 所示。2.3复合构件模型构件可分为两种, 即原子构件和复合构件。 前者是不可再分的构件。 后者是 可再分构件, 它封装了若干个子构件。 子构件间通过连接件相互连接, 且子构件 的端口也可以暴露成为复合构件的端口, 子构件也可能是复合构件。 如图 3 所示 : 复合构件 A 包含两个子构件 B 和 D,子构件 B 和 D 通过连接件 C 进行相连,构 件 B 的服务端口 E 暴露成为复合构件 A 的服务端口 F ,其请求端口 G 暴露成为 A 的请求端口 H 。2.4方面构件模型 方面构件是面向方面软件体

14、系结构的一个核心的构成单元, 它封装了横切关 注点,这是与传统软件体系结构最大的不同之处。 图 4给出了方面构件模型, 与 普通构件一样, 方面构件也有服务端口和请求端口以及属性, 但是它还有普通构 件所没有的方面端口。 当一个构件具有一个方面端口时, 即可认为此构件就是方面构件。一个方面端口中包含若干个方面,这与一般面向方面编程 (AOP) 技术中 方面概念有所不同。面向方面编程具有以下四个基本概念 :方面 (aspect)、连接点 (joinpoint) 、通知 (advice)和切点 (pointcut)。连接点是应用程序执行过程一个定义 明确的位置, 如方法调用是一种典型的连接点。 切

15、点是一系列连接点的集合, 是 方面的作用点。 通知表述了在切点所选定的连接点处要执行的动作, 常见通知类 型有 before、around 和 after 等,分表代表在连接点之前、连接点附近和连接点 之后执行相应的通知代码。 方面是用来描述和实现横切关注点的基本单位, 由切 点和通知构成。 方面端口中的方面横切关注的是构件, 这与一般 AOP(如 AspectJ) 横切关注的对象 (object)不同,由于构件能够表达对象所不能表达的请求服务的 能力,这使得方面端口中方面所采用的连接点模型和切点语言具有很大的不同。2.4.1连接点模型该连接点模型包含两种不同类型的连接点, 即构件服务端口中的

16、服务提供操 作和请求端口的服务请求操作。 由于构件的内部结构通常被视为黑盒, 因此连接 点模型应该仅考虑构件的外部可见元素, 如构件请求端口和服务端口中的服务操 作。如果连接点模型包含构件的属性,那么它将会破坏构件的分装性。2.4.2 切点语言用来选用连接点的切点语言基于切点表达式, 表 1 给出了切点的五个组成部 分,即 component、jp_type、port、 interface 和 service,然后分别对其进行了说 明。其中, jp_type 代表选用的连接点类型,可以是请求端口中的服务、服务端 口中的服务或所有端口中的服务, 详细如表 1。表 2 给出了切点语言的一些例子,

17、其中正则表达式基于 javautil regexp 包。2.56。面向方面软件体系结构模型 面向方面软件体系结构由构件、连接件、方面构件组成,详细请参见图3基于面向方面软件体系结构模型的网上支付实例近年来,网上购物发展迅速,网上支付是消费者主要的支付手段之一,图 7 给出了基于面向方面软件体系结构的网上支付模型, 它由四个原子构件, 即一个 复合构件、两个方面构件和三个连接件组成。其中 WebClientComponent 代表客 户端构件,它可以向网上银行构件 WebBankComponent 请求 AccountService()服务,该服务有三个参数,即 username、passwor

18、d、cost,分别对应于用户的网上 银行账户名、密码及购买商品的消费金额。连接件 AccountServiceConnector用于连接客户端构件和网上银行构件, 它采 用 WebServiceBinding 绑定机制。 网上银行构件是一个复合构件, 由账户服务构件 Account-ServiceComponent、 账 户 数 据 库 连 接 件 AccountDBConnector 和 账 户 数 据 库 构 件 AccountDBComponent 组装 而成 。 其中该复 合构 件的服 务端口也 使 用接口 AccountServiceInterface,这是为了兼容客户端构件请求端口

19、使用的接口。身份验证构件 AuthenticationComponent 用于验证用户的身份信息,它通过UserInfoConnector 连接件访问用户信息数据库构件 UserInfoDBComponent。 pointcut=WebBankComponent;BankResponse;AccountServiceInterface;Accou ntService()是该方面构件的方面端口中使用切点的表达式。为了保证数据库构件 UserInfoDBComponent 和 AccountDB-Component 的安 全性,方面构件 SecurityComponent使用方面端口 Securi

20、ty 监视这两个构件的服 务端口,使得在这两个构件服务调用之前增加日志和事务功能, 而日志和事务功 能在系统中通常表现为横切关注点, 面向方面软件体系结构能够对它进行很好的 封装,便于设计和维护。 4结束语本文给出了一种面向方面软件体系结构模型, 详细设计了它的三个基本构成 单元模型,即构件、连接件和方面构件 ;最后通过一个网上支付实例验证了该模 型有效性和实用性, 为面向方面软件体系结构的实际应用奠定了一定的基础。 笔 者将继续完善该模型的相关理论,研究面向方面软件体系结构的工程化应用方 法。参考文献 :1FABRESSE L,DONY C ,HUCHARD M Foundations of

21、 a simpleand unified component-oriented languageJJournal of ComputerLanguages,Systems Structures,2008,34(2-3):130-1492LIEBERHERR K ,LORENZ D ,MEZINI M Programming with as-pectual components,T R NU-CSS-99-01 RS l :NoutheastamUniversity, 19993PAWLAK R , SERNTURIER L , DUCHIEN L D,et al JAC:an as-pect-

22、based distributed dynamic framework JSoftware Practiceand Experience,s 2004,34(12):1119-11484李千目软件体系结构设计 M北京 :清华大学出版社, 20085马亮,孙春艳软件构件概念的变迁J计算机科学,2002,29(4):28-306SZYPERSKI C,GRUNTZ D ,MURER SComponent software:be-yond object-oriented programmingM 2nd edSl:Addison-Wesley,20027LAU K K ,WANG Z Softwar

23、e component modelsJIEEE TransSoft Eng,2007,33(10):709-7248SHAW M Procedure calls are the assembly language of software in-terconnection:connectors deserve first-class statusC/Proc of InICSE Workshop on Studies of Software Design 1993:17-329NAVASA A,P REZ M A ,MURILLO J M ,et alAspect orientedsoftware architecture:a structural perspective C/Proc of Workshopon Early Aspects2002

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1