(计算机软件与理论专业论文)支持动态演化的软件构架描述语言研究与实现.pdf_第1页
(计算机软件与理论专业论文)支持动态演化的软件构架描述语言研究与实现.pdf_第2页
(计算机软件与理论专业论文)支持动态演化的软件构架描述语言研究与实现.pdf_第3页
(计算机软件与理论专业论文)支持动态演化的软件构架描述语言研究与实现.pdf_第4页
(计算机软件与理论专业论文)支持动态演化的软件构架描述语言研究与实现.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

(计算机软件与理论专业论文)支持动态演化的软件构架描述语言研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

支持动态演化的构架描述语言研究与实现 支持动态演化的软件构架描述语言研究与实现 【摘要】 软件构架是一种软件组成元素的拓扑结构,是软件项目相关方交互的有效手 段,是最初设计决策的体现,是粗粒度的可复用对象。软件构架描述语言采用较 为精确的特定语法规则对构架进行形式化描述,它是支持基于构架构件的软件开 发方法重要描述基础,在构件组装平台研究以及构架演化的配置管理过程中发挥 重要作用。 本文提出了一种支持动态演化的、基于x m l s c h e m a 的构架描述语言 d x a d l ( d y n a m i cx m l b a s e da r c h i t e c t u r ed e s c r i p t i o nl a n g u a g e ) 。为了更好 的对构架进行描述,d x a d l 采用分层描述策略,将需要描述的构架各个方面进行 抽象分层。在该层次模型的基础上,d x a d l 充分考察了静态构架和动态构架的区 别,将构架的描述分离成对静态构架、动态构架以及两者之间的映射三个部分的 分别描述。在对构架准确描述基础上,d x a d l 对构架版本( 分支变体) 、构架实 体元素选择、构架操作集合进行了细致的模式描述,为构架动态演化和配景管理 建立了相应描述基础。同时,d x a d l 对构架的实现映射、消息映射等与构架实现 与行为相关内容提供了易于扩展的描述模式。与此同时,文章详细阐述了d x a d l 在构件组装平台与配置管理工具的开发与应用过程中的重要描述作用,以及 d x a d l 与基于构架构件的工具与平台的应用关系。随后,作者通过一个现实工程 项目的简化实例模型,展示了其基于d x a d l 描述模式的实现,同时结合相关的配 置管理工具、构件组装工具等阐述了d x a d l 在构架设计、动态演化、配置过程中 的重要作用。最后作者对文章进行了总结并展望了未来的研究方向。 【关键字】 软件构架,实例,构件,连接器,连接,端口,接口,构架描述语言,模 式,版本,配置管理,动态演化 【分类号】t p 3 1 9 4 复旦人学硕士学位论文 4 支持动态演化的构架描述语言研究与实现 t h er e s e a r c ho nd y n a m i cx m l b a s e ds o f t w a r e a r c h i t e c t u r ed e s c r i p t i o nl a n g u a g e 【a b s t r a c t s o f t w a r ea r c h i t e c t u r ei st h ec o m p o s i t i o nt o p o l o g yo f s o f t w a r ec o m p o n e n t s i ti sa ne f f e c t i v e c o m m u n i c a t i o nm e t h o df o rs o f t w a r es t a k e - h o l d e r s ,t h er e p r e s e n t a t i o no f d e s i g nd e c i s i o na n dt h e h i g hl e v e lo f s o f t w a r er e u s e s o f t w a r ed e s c r i p t i o nl a n g u a g e ( a d l ) i sa na c c u r a t e ,s y n t a x - s p e c i f i c 。 f o r m a l i z e dd e s c r i p t i o nl a n g u a g e i ti st h ed e s c r i p t i o nb a s i sf o rs o f t w a r ea r c h i t e c t u r e - b a s e d d e v e l o p i n ga n ds o f t w a r ec o m p o n e n t sa s s e m b l i n g a n da l s oi ti st h ek e yd e s c r i p t i o nb a s i sf o r i n c o r p o r a t i n gs o f t w a r ea r c h i t e c t u r e - b a s e dd e v e l o p i n gp r o c e s si n t ot h es o r w a r ec o n f i g u r a t i o n m a n a g e m e n tt o o l s t h i sp a p e rp r e s e n t sad y n a m i c ,x m l s c h e m ab a s e ds o f t w a r ea r c h i t e c t u r el a n g u a g ec a l l e d d x a d l ( d y n a m i cx m l - b a s e da r c h i t e c t u r ed e s c r i p t i o nl a n g u a g e ) d x a d la d o p t st h el a y e r e d d e s c r i p t i o ns t r a t e g y i tp u t sd i f f e r e n ta s p e c t sa b o u tt h es o f t w a r ea r c h i t e c t u r ei n t od i f f e r e n tl a y e r s b a s e do nt h i sl a y e r e dm o d e l ,d x a d lf o c u s e so nt h ed i f f e r e n c e sb e t w e e nt h es t a t i ca n dd y n a m i c a s p e c t so f s o f t w a r ea r c h i t e c t u r ea n dd e p a r t st h es o f t w a r ea r c h i t e c t u r ed e s c r i p t i o ni n t os t a t i c s o f t w a r ea r c h i t e c t u r e ,d y n a m i cs o f t w a r ea r c h i t e c t u r ea n dt h em a p p i n gb e t w e e nt h e m b a s e do nt h e a c c u r a t ed e s c r i p t i o no f t h es o f t w a r ea r c h i t e c t u r e ,d x a d la m p l yd e s c r i b e st h ev e r s i o n ( v a r i a n t s , b r a n c h e s ) a n dt h es e l e c t i o no f s o f t w a r ea r c h i t e c t u r ec o m p o s i t i o nw h i c hi st h eb a s i sf o rs o f t w a r e a r c h i t e c t u r ec o n f i g u r a t i o nm a n a g e m e n t a tt h em e a nt i m e ,d x a d lp r o v i d e st h ee x t e n s i b l e s c h e m a sf o r t h es o f t w a r ea r c h i t e c t u r ei m p l e m e n t a t i o n ,t h em a p p i n go f m e s s a g ea n dt h es o l , w a r e a r c h i t e c t u r eo p e r a t i o n s a n dt h r o u g ht h e s e ,t h ep a p e rd e c l a r e sc a r e f u l l yt h ed x a d l si m p o r t a n t p o s i t i o ni nt h ec o m p o n e n tb a s e dc o m p o s i t i o nt o o l sa n dt h ec o n f i g u r a t i o nm a n a g e m e n tt o o l s w h a t sm o r e ,t h i sp a p e rs p e c i f i e st h er e l a t i o n s h i pb e t w e e nd x a d la n di t sr e l a t i v et o o l sa n dc a s e e n v i r o n m e n t a f t e rt h a ti tp r e s e n t sas i m p l i f i e dm o d e lo f ap r a c t i c a lp r o j e c ta sa l le x a m p l et o i l l u s t r a t eh o wt ou s et h ed x a d lr e l a t e ds c h e m a s a n da l s o ,b yt h ee x p l a n a t i o no f t h e c o r r e s p o n d i n gc o n f i g u r a t i o nm a n a g e m e n tt o o la n dt h ec o m p o n e n ta s s e m b l i n gt o o li nt h ee x a m p l e , i te x p l a i n st h ei m p o r t a n c eo f d x a d li nt h es o f t w a r ea r c h i t e c t u r ed e s i g n i n g ,t h ed y n a m i c e v o l v e m e n to f t h ea r c h i t e c t u r ea n dc o n f i g u r a t i o nm a n a g e m e n tp r o c e s s a tl a s ti tg i v e sa ni n c l u s i o n o f t h ec u r r e n t j o ba n da ne x p e c t a t i o no f t h e f u r t h e r d e v e l o p m e n to f d x a d l k e y w o r d s s o f t w a r ea r c h i t e c t u r e ,i n s t a n c e ,c o m p o n e n t ,c o n n e c t o r , l i n k ,p o r t ,i n t e r f a c e ,s o f t w a r ea r c h i t e c t u r e l a n g u a g e ,s c h e m a ,v e r s i o n ,c o n f i g u r a t i o nm a n a g e m e n t ,d y n a m i ce v o l v e m e n t 5 复旦火学硕二l 学位论文5 支持动态演化的构架描述语言研究与实现 1 引言 1 1 构架研究的起步与发展 早在2 0 世纪6 0 年代,软件研究者就已经注意到软件的整体性结构对软 件质量有重要影响。1 9 6 5 年,d i j k s t r a 提出的软件系统的结构化分析方法可 以看作是人们对于软件构架的最早的探索。3 0 多年以来,随着软件规模不断 增大软件开发进度和软件质量越来越难以控制。近年来随着构件化开发方 法和软件复用技术的发展、r 软件产品族和产品流水线的出现,软件构架日益 成为软件研究者和开发人员们关注的热点。 几十年来,人们对于软件构架研究日益深入。从早期的主程序,子过程的 主从模块调用思想的提出、数据抽象和面向对象设计的探索、各种层次模型 ( i s o ) 的建立、各种形式化构架描述方式的研究、各种描述语言的应运而 生,到今天的各种形式化构架描述语言的发展以及各种构架模式的研究,软 件构架已经成为一个快速发展的、逐渐成熟的软件工程理论研究领域。 1 2 构架研究的相关背景 1 2 1 什么叫软件构架 一直以来,人们在构架基本概念上一直存在着分歧。以下是一个较为综 合的软件构架严格定义:某个软件或计算机系统的软件构架即组成该系统的 一个或多个结构,它们构成软件的各个部分,形成这些组成元素的外部可见 属性及相互间的联系。这里所说的某个构架组成元素韵”外部可见属性”是指 别的组成元素可对该组件可做的假设,例如这个组成元素提供的功能、具备 的性能特性、容错能力、共享资源的使用等。该定义包含如下内容: 1 ) 构架决定了各个组成元素,构架反映了构架各组成元素之间如何交互的 信息,同时构架信息中必须略掉各组成元素中与交互无关内容。这样构 架首先是去除各组成元素中与交互无关的细节之后得到的系统抽象。 2 ) 定义明确指出系统可能由多个结构组成,任何一个结构都不能和构架等 同。而且任何软件系统都应该有自己的构架。 3 ) 只要某个构架组成元素行为可以从其它元素的角度观察得到或者区别 开,这样的行为就是构架的内容。正是因为这种行为的存在,才使得组 成元素交互成为可能,而这种交互正是构架的重要组成内容。 构架的定义不包含任何对于构架优劣评价,即构架评估与构架定义无 关。 6 复旦人学倒i :学位论立6 支持动态演化的构架描述语盲研究与实现 1 2 2 软件构架在软件开发过程中扮演着什么角色 我们知道,软件构架决定着一个系统的主体结构、基本功能、基本特征 和多种质量属性,构架质量是整个软件系统质量的关键因素。在软件开发的 整个过程中,软件构架都担当着重要的指导角色。 在项目开发起步阶段,粗略的构架设计就已经开始成为项目相关方之间 交流的最为有效手段,为软件项目的立项、可行性分析以及风险评估提供着 重要依据。在需求分析阶段,构架不仅是用户和设计者之间的重要交流工具, 而且构架本身也在用户和设计者的交互中也在不断求精与演化。我们知道, 不同角色的项目相关方如:客户、项目经理、开发人员等对系统的特性关注 点有很大区别。构架提供了一种各方均可以理解的共同语言,各种风险承担 者都可以通过构架的描述来表达自己关注的系统目标和特征。有关各方对于 构架的理解与描述存在着很大的差异,例如:终端用户可能更加关注的是构 架的外在表现特征,而决策人员则更关心构架性能瓶颈。这体现了构架从不 同角度观察得出的不同构架视图,突出了有关各方对软件构架的不同理解。 软件构架是系统早期设计决策的产物,在软件开发的整个生命周期中, 软件构架本身很少发生根本性的改变。构架一旦确定,将对整个系统开发起 着约束作用。因此,对构架的深入研究将会对整个系统质量属性产生重大影 响,极大的降低软件系统的开发风险。 具有相当抽象度的软件构架本身就是一种可以重用的粗粒度的软件模 型,构架复用在一定层次上大大提高软件复用的粒度;促进软件质量改善和 软件生产率提高。 1 2 3 什么叫做构架描述 1 2 3 1 构架描述的发展 2 0 世纪9 0 年代以来,人们在软件复用技术方面进行了积极、深入的研 究,基于构架、构件的开发方式已经成为主流软件开发技术。如何对构架进 行精确描述,使得构架能够成为项目相关方所理解、表达出分析所需的恰当 信息、并最终保证系统实现能够符合设计设想,逐渐成为人们关注热点。开 始的时候人们用粗略的文字、图示来表示构架。随着技术的发展,人们开始 意识到使用语言学方法对构架进行形式化精确描述的必要性。于是大量形式 化构架描述语言开始涌现。9 0 年代末,随着独立于平台与环境x m l ( 扩展 标记语言) 的完善与发展,可扩展的x m l 语言及其相关工具逐渐成为建构 构架描述语言的有力工具【e r i a m2 0 0 | b 。 一7 复旦人学硕二l 学位论文 支持动态演化的构架描述语言研究与实现 1 。2 3 2 构架描述多视图观点 从不同的角度出发,构架展现在人们面前的视图是完全不同的。对于大 型、复杂的软件系统而言,将构架进行分解,从不同视角进行有效地分析, 是非常自然的事情。因此在构架领域,有多人提出将构架进行分解的类似观 点,如:构架四视图观点,构架4 + i 视图观点 p h i i i p p e k1 9 9 5 1 等等。通过将整 个构架视图分解成为侧重点各不相同的视图,有助于对构架进行深入理解。 优秀的构架描述语言应能为构架多种视图的生成以及各种构架审计信息提 供相应描述基础。 1 2 3 3 构架描述与构架质量属性与评估 构架的质量属性可以划分为运行时可观察的质量属性( 性能、安全性、 可用性、功能性、使用性等) 和运行时不可观察属性( 可更改性、可移植性、 可重用性、可集成性、可测试性等) 。构架质量属性和软件质量属性有着较 为直接的映射关系,因此对构架质量属性的评估和分析成为软件质量控制的 关键步骤之一。成功的构架描述语言需要为构架属性描述提供方便,同时为 构架审计提供相应的数据描述模式。 1 2 4 什么日q 做构架风格 构架风格【l e n b2 0 0 1 】定义了一组符合某种构架约束条件集的构架,或者 说构架风格是一组符合其约束的构架抽象。构架风格由几个关键特征和将这 些关键特征组合在一起的约束组成,包括: 1 ) 组构件类型的集合。 。 2 ) 构件之间关系的拓扑结构约束与相关语义约束。 3 ) 连接器类型的集合 c 2 构架风格 p e y m a n1 9 9 9 是一种应用广泛的特殊构架风格,所描述的是 一个被连接器连接的并发构件的层次网络结构。能够连接到连接器上的构件 或者连接器的数量不是确定的,它规定所有构件之间的通信必须通过连接器 进行异步消息交换,因而c 2 构架描述的是一种基于消息的层次构架。c 2 构 架风格已经成功地运用在用户界面设计领域中。 构架风格与构架描述有密切关系,良好的构架描述语言应该能够方便的 描述多种不周风格的构架。在本文的实例构架模型的描述过程中,作者就采 用了广泛使用的c 2 构架风格。 1 3 软件构架描述语言 8 - 复q 火学硕:i :学位论文 支持动态演化的构架描述语言研究与实现 1 3 1 什么叫做软件构架描述语言 所谓软件构架描述语言,就是借用语言学的特定的语法来对构架进行形 式化的精确描述。原始的方框线条的组合虽然能够在一定程度上对构架进行 描述,但是这种粗略的描述方式显然不能对构件本质、构件间联系语义和系 统总体行为进行充分表述,构架描述语言与需求描述语言、编程语言建模语 言之间存在较大差异,构架描述语言一般都具有良好的形式化语法和语义, 能够对大多数构架风格类型进行良好描述。良好的构架描述语言可以增加项 目相关方对软件构架的交流与理解,促进对早期设计决策的分析,同时也有 利于构架策略的遵循与维护。尤其重要的是,构架描述语言是其他基于构件 构架的支持工具与平台例如基于构件的构架组装平台、支持构架演化的软件 配置管理工具等的重要描述基础。同时,形式化的正规构架描述语言更容易 被当作一种权威性的文档进行保存并在软件开发过程中被当作一种良构的 软件资产来复用。 1 3 2 构架描述语言的发展 尽管不同的研究人员对于软件构架描述语言的描述范围仍有较大争议, 到目前为止,已经有大量的构架描述语言相继涌现,这些构架描述语言在各 自特定的应用领域和各自关注的特征方面对软件构架进行了相应的描述,解 决了相应的问题。 1 3 2 1 传统软件构架描述语言 多年以来,构架描述语言在大量涌现过程中不断演进完善。以下列举了 一些著名的经典构架描述语言实例,并简要解释了其相关特征: 1 ) a e s o p 【g a r l a n2 9 9 5 11 m e l t o n1 】通过提供设计元素词汇集、配置规则集、 良定义语义集等机制提供了对构架风格的支持和描述,主要用于快速 构建领域特定的构架风格,为进一步的软件复用提供了相应支持。 2 ) d a r w i n m a g e e1 9 9 5 1 提出将构件作为构件类型的一种实例,采用p i 算子 来规格化构件语义。构架主要用来建模动态的、分布式系统,采用隐 式连接器。与此同时,d a r w i n 在相关工具支持【k n g1 9 9 5 方面也做了 初步的构架图形化设计支挣的尝试。 3 ) r a p i d e d a v i d c1 9 9 5 1 是基于事件、事件偏序集( p o s e t s ) 、可执行的构 架描述语言,允许仿真构架设计,并且提供仿真工具来检查基于事件 的组件行为问交互。r a p i d e 通过定义了事件模式、接口、构架和事件 模型映射来构建静态和动态构架的随机事件模型。 9 复旦大学硕一f :学位论文9 支持动态演化的构架描述语苦研究,实现 4 ) u n i c o n 是基于构架和连接器的构架描述语言,支持预先定义的内置连 接器类型【n e n a d1 9 9 7 ,并且首次提出了变体与构件可选择的概念,并 且同时有图形与文字两种等价的表达形式。 5 1c h a m ( 化学抽象机模型) 【pi n v e r a r d i1 9 9 5 1 【n e n a d1 9 9 7 1 提出构架是一种 抽象化学自动机。通过定义分子、溶液、膜以及溶液演化过程的转变 规则,来描述构架。在c h a m 中,构架被定义为处理元素、数据元素 和连接键。构架采用隐式规则描述溶液和转换规则方面的拓扑结构。 6 ) w r i g h t 【r o b e r t j1 9 9 7 注重于对构件间的交互行为进行建模分析,对构件 与连接器抽象行为进行形式化的描述,将显式的、独立于实现的连接 器类型用作交互模式,利用进程代数理论来表示构件的抽象行为,支 持对规约的一致性和完整性静态检查。出于w r i g h t 规格说明非常严格, 因此能够对被描述的构架或系统进行属性分析。 1 3 2 2 传统构架描述语言特点综述 传统的构架描述语言主要分成两种类型i n e n a d1 9 9 7 ,一类是如d a r w i n , c h a m 等,它们采用隐式的连接器,( c h a m 构架在溶液和转换规则方面的 拓扑结构是隐式的) ,因而在构架交互的封装能力方面存在根本缺陷,构架 在描述交互能力的方面显然有限。尽管研究领域依然存在对显式连接器 p e y m a n1 9 9 8 必要性的质疑,仍然有另一类构架描述语言如:w r i g h t 等将构 架的连接器组为首要模型元素,使之成为与构件等价的元素,在一定程度上 改进了对于构架描述语言对于构架组成元素之间交互的描述能力。随着时间 的发展,这些有着各自特定语法规则的传统构架描述语言在以下几方面存在 着先天的不足: 1 ) 领域局限性:大多数传统的构架描述语言都是为了解决特定领域的相 关问题而研制开发的,部分构架描述语言的研制初衷甚至和开发构架 描述语言没有任何关系,只是在软件产品开发过程中的附带产品,因 此,只能在特定的领域解决其特定的问题,无法进行领域拓展。 2 ) 语法特定性:每种构架描述语言都有自己的一套语法规则和解析工具, 不但大大加重了构架描述语言的开发成本,同时也加重了构架描述语 言应用的困难程度。 3 ) 交互困难性:由于每种构架描述语言都有自己特定的语法规则,因此 它们缺乏理解其他构架描述语言的能力,因此各种构架描述语言之间 不存在公共理解能力。 1 0 复u 人学 i ! i l + 学位论义0 支持动态演化的构架描述语苦研究j j 实现 1 3 2 3 新型构架描述语言 1 ) a c m e 【d a v i d g1 9 9 7 是一个通用的构架和构架族的构架描述语言,它把 系统描述成通过连接器实现交互关系的部件图,并把部件和连接器分 解表示成子系统,支持元素族和类型的描述,但不支持对系统行为、 功能特性、与可执行代码关系的描述,有关方面只能通过属性来描述 相关信息。a c m e 试图提供某种不同构架描述语言公用的概念集,来 整合多种构架描述语言工具,解决多种构架描述语言之间的交互性。 同时,a c m e 在一定程度上考虑了构架分析的需求。 2 ) x a r c h 【杨俊2 0 0 2 e r i cm2 0 0 1 a e r i c m2 0 0 1 b 是一个基于x m l - s c h e m a 的 新一代构架描述语言。随着技术的发展,采用x m l 技术进行各种相关 描述的优点已被认同。x a r c h 是采用x m l s c h e m a 模式为定义机制的 新型构架描述语言,因而具有相应扩展能力,能够适应不同领域的拓 展需求。x m l 初步考虑了静态构架和动态构架描述需求的区别,因此 初步实现了静态描述与动态描述的分离。同时,x a r c h 通过引入可变 体和可选体概念,在一定程度上实现了构架动态配簧能力。 1 3 2 4 构架描述语言特点综述 随着构架描述技术的发展,传统构架描述语言的缺点越来越明显, a c m e 试图改变传统构架描述语言之间无法交互的弊病。它通过选取各种构 架描述语言的公共元素集合( 交集) 的方法,试图实现各种构架描述语言之 间的互理解性,显然这在一定程度上减弱了其自身的表达能力。9 0 年代中期, 平台无关的x m l 描述技术不断发展,一些新的基于x m l 的构架描述语言 如:x a r c h ,x a d l e r i cm 2 0 0 1 c 等开始出现。由于x m l 与其相关的s c h e m a 技术与生俱来的扩展能力,基于x m l 的构架描述语言在可扩展性方面有了 长足进步。但现有所有构架描述语言普遍存在如下问题: 1 ) 多数构架描述语言仅局限于对构架的静态分析、刻画系统静态特征, 它们般只对系统静态构架拓扑结构进行描述。到目前为止只有极个 别的构架描述语言为构架动态演化 p c y m a n1 9 9 8 a p c y m 1 9 9 8 b 提供了 相应支持。极少部分构架描述语言如:d a r w i n ,r a p i d e 等能够描述构架 动态修改,这些修改也需要在重新编译以后才能融入整个构架系统, 因而并非真正意义上的动态更改。x a r c h 采用变体可选体的策略,也 只是初步解决了部分动态构架演化问题。 2 ) 大多数构架描述语言都没有很好区分静态构架与动态构架。即使有区 1 i 复门人学坝i :学位论史 支持动态演化的构架描述语者研究与实现 分,也是比较模糊、相互错杂的,例如:由多家合作单位共同合作开 发的基于x m l 的构架描述语言x a r c h ,在整合致性方面存在着较大 问题,其静态构架描述较大程度上依赖于动态构架的描述,这是不合 理的。 3 ) 几乎所有的构架描述语言都把全部精力放在构架表示中,对于构架实 现、构架评估、系统建构方面的支持,考虑很少。目前几乎没有构架 描述语言能够向用户提供良好的构架评估、不同粒度的构架视图等各 种构架相关信息表示能力。 4 )目前为止,尚未有任何种构架描述语言能够与基于构架的各种开发 工具、平台紧密整合。比如,考虑到构架描述与配置管理工具的连接, 将构架设计过程纳入到支持构架动态演化的配置管理工具中。同时, 也还没有构架描述语言能够为基于构架、构件自动化开发工具如:构 件组装工具等提供有力支持。事实上,只有当构架描述语言和基于构 架的开发工具平台整合之后,才能发挥真正作用。 1 4 本文的研究意义与动机 综上所述,随着构架研究的同益深入,大量涌现的构架描述语言在针对 各自特定的应用领域、各自关注的重要特征方面提供了相应的解决方案。但 是想从目前的构架描述语言中直接选出一个最有前途的、功能最强大、最有 用、最有可能成功的,是不可能的。近年来,随着软件规模不断扩大、面向 复用的构件化开发方法不断普及、相似软件产品族和软件流水大量出现以及 需求变更等新的软件开发要求、w e b s e r v i c e s 技术的发展,都给构架构架描 述技术提出了更多的需求。而软件构架自身作为一种高层的具有相当抽象度 的特殊软件产品,也需要相应的配置管理工具支持其演化与开发过程。如何 在软件构架描述中融入对软件构架复用、动态构架演化、构架配置管理、构 件自动化组装等支持,是本文研究重点。作者认为,构架描述需求的改变、 配置管理技术的发展、平台独立的扩展标记语言x m l 以及可扩展的s c h e m a 机制、构件组装技术等,都给构架描述语言进一步发展带来了有用的启示和 参考。 1 5 ,论文组织结构 本文的第一部分是引言部分,主要介绍了与d x a d l 构架描述语言相关 的研究背景以及与之相关的各种技术、概念如:什么叫构架、构架描述、构 架组成、构架风格和构架视图等,同时本章节对现有构架描述语言进行了相 - i2 - 复q 人学硕l + 学位论史 支持动态演化的构架描述语言研究。j 实现 关总结,并在此基础上着重提出了d x a d l 研究方向。第二部分主要介绍了 d x a d l 的层次结构和基本描述模型,同时阐述了与d x a d l 密切相关的工 具支持,包括软件工程实验壁项目组已完成的配置管理工具w i n g c m 、正在 改进的新一代构件组装工具c b a c t 、x m l 与s c h e m a 的编辑工具以及与 x m l 相关的编程接口,阐述了各种相关工具与d x a d l 之间的关系,着重 描述了d x a d l 如何与各种相关工具结合,为全套基于构架的自动化软件开 发过程提供描述支持。第三部分则按照第三章的层次结构,逐个层次、逐个 模式介绍了全套d x a d l 的构架描述模式的设计,是论文的核心部分。第四 部分通过一个现有系统的简化模型的实例,阐述了d x a d l 的应用,同时结 合相关工具,说明了d x a d l 对于系统动态演化、配置管理和构件组装的支 持,展示了d x a d l 在基于构架的软件开发过程中扮演的重要角色。第五部 分对全文的研究进行了总结并展望了未来的研究方向。第六部分则附录了几 个重要的d x a d l 相关描述模式文件。最后是参考文献与感谢。 1 3 复l t 人学坝l 。学位论史 支持动态演化的构架描述语占研究与实现 2 支持动态演化的构架描述语言d x a d l 描述模型 2 1 d x a d l 构架描述语言问题域 通过考察各种构架描述语言的特点,d x a d l 着重思考如下问题: 1 ) 考虑到采用特定语法规则的构架描述语言在领域扩展性方面的缺陷,新 一代构架描述语言需要采用一种通用的、可扩展的描述机制x m l 语 法与s c h e m a 模式来表述构架,这样可以大大提高构架描述的可扩展能 力,解决领域局限性问题,同时,也不必为特定的语法规则开发相关的 解析工具,可大幅减轻构架描述语言开发与应用成本。 2 1 如何在构架描述中融入版本( 分支、变体) 管理、发布管理等配置管理 相关概念,支持构架的动态的增加、删除、修改操作等构架动态演化的 相关能力,改善对软件产品族和产品流水线的刻画能力,促进软件开发 的过程改进和软件质量提高是本文需要着重考虑的问题。同时,考虑构 件组装工具的需求也是极具意义的。实现和相关工具平台的密切整合是 d x a d l 的最重要设计目标。 3 ) 多数构架描述语言只在构架表示、构架评估、系统建构的时候起到了相 应表示作用,很少有人将构架与系统的最终实现联系在一起。事实证明, 如果在构架描述语言中增加实现映射模式,将构架设计与相应子系统实 现对应,将会大大提高软件构架利用率,保证系统设计符合构架设计的 要求。 4 ) 构架是具有较高抽象度的软件产品,不同角色的项目相关方眼中构架视 角、构架粒度都有着很大的区别。构架描述语言应该为各种构架视图生 成、构架信息动念提供、用户相关统计信息发布等提供相应的描述机制。 这将大大提高构架的可理解性,便于项目相关方之间的交流。 5 ) 9 0 年代以来,w e b 技术的飞速发展给各种类型的商业实体提供了发现新 客户、供应流、新服务的各种机会,使得他们得到了空前的经济回报。 各种组织和商业实体都已经果断地将业务模式逐步的向i n t e r a c t 迁移。但 是,目前大多数的电子商务的应用和基于w e b 的商业服务在处理购买者、 供应商、交易市场和服务提供者之间的联系方式上各不相同,各种商业 组件的部署平台不同、通信协议不同、开发语言也不尽相同。如何方便 描述分布式、跨平台的w e b s e r v i c e 、高度可扩展的构架是构架描述语 言要考虑的需求。 2 2 新一代构架描述语言d x a d l 1 4 业i l 人学坝i j 学位沦义 1 4 支持动态演化的构架描述语言研究与,宴现 本文作者在充分研究现有的各种构架描述语言的基础上,考虑到多种描 述需求,采用现有的、已经逐步成熟的、独立于平台于实现语言的x m l ( 扩 展标记语言) 作为描述方式,利用x m l 内嵌的s c h e m a 模式的可扩展性,提 出了一种支持构架自演化( 构架动态改变) 的、支持构架配置( 发布) 管理 的、支持构件组装的、可扩展的、基于x m l 的动态构架描述语言d x a d l 。 在充分吸收现有构架描述语言成功之处以及作者对于新型配置管理技术、构 件组装技术深入研究的基础上,d x a d l 能够成功地实现对构架动态演化、 配蜃管理、构件组装的支持。同时,d x a d l 还可以容易实现对软件产品族 的刻画。 d x a d l 是一种全新的构架描述语言。可扩展的x m l s c h e m a 机制,使 得d x a d l 具有先天的可扩展能力,因此就不会产生大多数传统构架描述语 言( 如r a p i d e ,w r i g h t 等) 的领域局限性。d x a d l 通过对构架描述概念与 内容的进行抽象分层,从底到上分别定义了公共基础层( 包含公共元素描述 模式) 、基础描述层( 静态构架描述模式、动态构架描述和两者之间的映射 描述模式) 、实现映射层、配置描述层( 版本分支、变体目描述模式、操 作描述模式和选择描述模式等) 、构架消息层( 消息传递描述模式) 。通过相 应工具支持,d x a d l 为不同角色的丌发人员提供不同粒度软件构架视图。 同时,符合d x a d l 描述模式的x m l 构架描述文件可以作为软件配置管理工 具有效输入,实现对构架配置管理的能力,为整个基于构架的软件开发过程 提供全面支持。同时,作为高度可扩展的支持动态演化的构架描述语言在构 架组装过程中,也扮演着重要角色,为新一代构件组装( c b a c t ) 的成功完 成提供了构架描述基础。 2 3 d x a d l 的相关概念与技术 2 3 i d x a d l 中首要构架模型元素 尽管到目前为止,人们对于构架的认识还存在着不少差异,大多数研究 人员都一致认为构架是由构件、连接器和相关约束( 构架与连接器之间的拓 扑结构) 三部分组成,这样的构架组成具有较高的合理性。因此d x a d l 将 按此对构架从静态和动态两个方面分别进行相应描述。 2 3 1 1 构件模型( c o m p o n e n t ) 构件是构成构架的计算或数据存储单元,是软件系统的结构佬单元。是 软件功能设计和实现的承载体。从程序设计角度看,构件可以看作是模块、 类、刈象或肯一个十口关功能集合。对于构件,至少需要描述如下一些相关特 - l5 - 复口人学t i 6 ii ? 学位论义 支持动态演化的构架描述语言研究i j 实现 性,如:接e l 特性、运行特性、关联特性、动态特性。对构件内部的限制条 件越少,就越容易使用一些现成的构件。构件需要封装相应的一些复杂的功 能,保持其内部的状态信息,为了支持构架的动态演化,至少需要提供一些 动态链接、初始化的功能。 2 3 1 2 连接器模型:( c o n n e c t o r ) 连接器是规范构件间交互行为和约束关系的构件单元。构架研究者对于 连接器在构架模型中所处地位的分歧很大,不少人甚至怀疑将连接器作为构 架的首要模型元素的必要性,因此不少构架描述语言只提供隐式连接器,如 d a r w i n ,c h a m 等。对多种大型的现实系统构架结构的研究与比较,显式连 接器通过封装组件的大量有关内部通信和位置信息,如:通信接受者的数目 和身份、选择消息接受者的策略、通信实现技术的选择、构件合成的构架限 制等细节,能有效地避免大量的通信零星的散乱在各种组件之间的混乱状 态,从而大大增强系统的可移植性、透明性、分布性和可扩展性,提供了支 持软件构架动态改变与重新配置能力。同时,连接器也是用来封装需求变更 策略,使之独立与特定应用的重要实体。因此,d x a d l 把连接器作为与构 件对等的首要模型元素进行相应描述,从而充分保证了d x a d l 对构架动态 演化的支持。 2 i 基本元素关系图 2 3 1 3 端口( p o r t ) 连接器与构件之间的交互端点称为端口。端口封装了很多有关交互的细 节,例如消息队列的维护等等。 2 3 1 4 连接( 1 i n k ) 端口与端口之间的联系称为连接,连接封装了相连的两个端口相应位置 1 6 复l 1 人学坝卜学位论文 1 6 支持动态演化的构檠描述语言研究与实现 信息,为通信双方进行定位。实现连接需要两个方面的支持:一是连接得以 发生和维持的机制,一是连接必须正确、无= 义、无冲突。 2 3 1 5 接口( i n t e r f a c e ) 接口描述了一系列端口的集合,表述了一个组件或者连接器对外提供的 服务或者请求的服务的端口集合。图2 1 描述了d x a d l 中理解的构架描述 首要模型元素以及它们之间的关系。 2 3 i 6 约束 所谓约束,是指构件和连接器之间的某种拓扑结构。d x a d l 理解的构 件、端口、连接器、连接等构架组成元素遵循的某种组成构架拓扑结构的规 则集合,即为约束。约束描述了构件之间,构件与连接器之间,以及连接器 与连接器之间的组成关系和必须满足的条件。构架的约束与该构架可理解 性、动态演化能力密切相关。 2 3 2 d x a d l 分离构架的运行非运行时特征 构架有很多属性,有人按照功能将属性分为功能属性和非功能属性两大 类。这样的分类方法将会导致很多构架的重要属性直到系统出现问题时彳+ 会 被关注,存在较大缺陷隐患。而将构架的属佳划分成为运行时可见属性和运 行时不可见属性两大类的分类方法相比而言更加准确。我们很容易可以得到 这样的结论:构架在运行时与设计时表现出来的特征有很大区别,构架静态 拓扑结构和运行时动态实例拓扑结构有很大不同。静态拓扑结构主要体现了 系统组成关系,体现了一种构架组成的概念视图,比如说:我们在设计的时 候选择了某个版本( 分支、变体) 的构架实体元素;而动态拓扑结构则注重 于各构件、连接器与接口之间的交互以及构架的实现,因而和构架的运行视 图之间有着明显的映射关系,比如:当前实例化了某个构架实体元素实体类 型,某个实例当前处于的运行状态( 运彳亍、停止、休眠) 等。 图2 2 展示了一个现实的系统黄页号薄彩色排版系统的构架描述 图,包括静态( 设计时构架图) 和动态( 运行时实例图) 。在设计的时候, 我们看到的是一种系统组成结构。号簿预排子系统的构架是由相互分离的项 分析器、行分析器、用户分析器、分类分析器、定义分析器五种子构件组成 的。而在运行的时候,我们看到实例图则明显的显示了一种层次型调用结构。 在进行号簿预排的时候,总控构架首先调用子构件实例总控分析器,总 控分析器得到服务请求后,一路向下分别调用分类分析器、用户分析器、行 分析器,最后渊用至项分析器。项分析器经过计算,把返回经过返回给行分 i7 盟i 【人一侮! 二位论史 支持动态演化的构架描述语苦研究0 | 实现 析器,于是行分析器进行计算,将行分析器的分析结果一路向上传递。最后, 用户分析器得到了相应的用户分析器的分析结果。图2 2 ( 右) 所示的这种 层次型的交互关系,在设计时构架中是难以体现的。因此,d x a d l 将根据 静态描述和动态描述的不同需求,分别从动态、静态以及两者之间的映射三 个方面分别刻画构架模式。 眦蝣驴“r n e 总控分析器、多 一 暑o o 、 囱幽囱囱宙 仁分类分析器、) y j 用户分析器、) 夕 一l 一g 磐s 湍两 r 一 盥2 2 一个现宴系统的构架描述幽 2 3 3 x m l ( 扩展标记语言) 是d x a d l 的描述基础 2 3 3 1 为什么要采用x m l 来描述d x a d l x m l 得到了权威的标准化实体( w 3 c ) 、研究组织、各大厂商和个人的 大力支持。同时,大量支持x m l 的开发工具、丌发包、编程接口也不断出 现。这样,任何建立在x m l 上的描述语言就不必为词法解析耗费大量精力, 大大节约了构架拙述语言的r 丌发应用成本。x m l 将数据结构和数据显示分 离;x m l 只提供一些基本语法,没有定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论