




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
娃十c 2 构架风格的构件组l 皴研究 基于c 2 构架风格的构件组装研究 【摘要1 着构件技术的不断发展,基于构件的软件开发方法研究逐渐成为软件工程 领域的一个研究热点。软件的开发方式已经从早期的结构化分析设计方法发展到 面向对象方法,直到现在的最新的基于构件的软件开发方法。在新的开发方法中, 软件构件成为构造软件系统的基本模块,如何将这些相对独立的软件构件f 确、 有效地组装成高质量的软件系统已成为基于构件软件工程的一个重要课题j j 本文围绕c 2 这种特定风格的软件构架,对构件组装涉及的多个方面进行了 全面的研究。首先,作者以软件构架为系统模型,阐述了一个支持配置管理的软 , 件构架x m l 描述方法。f 在此基础之上提出基于该构架配置描述模型的构件组装 自动化方法。在构件动态组装方面,文中将研究的重点放在c 2 构架中的多版本 构件组装及构件的运行时动态配置。j 对于构件组装的正确性分析与验证,文中结合c 2 构架风格,提出了以x m l 描述构件行为,并以此为基础利用 - c 方法验证构件组装得到系统的无死锁性。 最后,作者还讨论了在分布式环境下的软件构件的组装和管理,并用j a v a 及兰堕实现了一个支持c 2 构架风格的分布式系统组装的面向对象框架。妊 框架支持运行时分析i 式系统中构件组装信息的获取,以及运行时构件、连接器的 组装管理。十 【关键字】 软件构架? 软件构1 ,l :、构件匀l 装 构架风格:连接器一 【分类号】 t p 3 1 9 婊十c 2 构柴风格的构件纽装研究 r e s e a r c ho ns o f t w a r ec o m p o n e n ti n t e g r a t i o n i nc 2a r c h i t e c t u r a ls t y l e 【a b s t r a c t 】 w i t ht h e r a p i dd e v e l o p m e n t o fs o f t w a r e c o m p o n e n tt e c h n o l o g y ,t h e c o m p o n e n t b a s e ds o f t w a r ed e v e l o p m e n t ( c b s d ) h a sb e c o m eah o ts p o to fc u r r e n t s o f t w a r ee n g i n e e r i n gr e s e a r c h t h ed e v e l o p m e n tm e t h o dh a se v o l v e df r o ms a s dt o o o a d ,a n dn o wt ot h em e t h o db a s e do ns o f t w a r ec o m p o n e n t i nc b s d ,s o f t w a r e c o m p o n e n t sb e c o m et h eb u i l d i n g - b r i c k o fs o f t w a r e s y s t e m h o wt o c o n s t r u c t a p p l i c a t i o ns y s t e m sb yi n t e g r a t i n gs o f t w a r ec o m p o n e n t sc o r r e c t l ya n de f f i c i e n t l y h a sb e c o m ea ni m p o r t a n tt o p i ci nc b s d f o c u s e do na p a r t i c u l a ra r c h i t e c t u r a ls t y l r c 2 ,t h er e s e a r c hw o r ki n t h i s p a p e rd i s c u s s e dc o m p o n e n ti n t e g r a t i o ni n v a r i o u sa s p e c t s f i r s t ,w ep r o p o s e da n i m p l e m e n t a t i o no fs o f t w a r ec o m p o n e n ti n t e g r a t i o na u t o m a t i o n i nc 2a r c h i t e c t u r a l s t y l e b a s e do nt h es o f t w a r ea r c h i t e c t u r es y s t e mm o d e l ,t h ec o m p o n e n ti n t e g r a t i o n a u t o m a t i o ni s a n a l y z e db o t h i n s t a t i ca n dd y n a m i ce n v i r o n m e n t o no n eh a n d , a c c o r d i n gt o t h ec l o s ec o r r e s p o n d e n c eb e t w e e na na r c h i t e c t u r a lm o d e la n di t s i m p l e m e n t a t i o n ,t h ea u t h o rp r e s e n t sac o n f i g u r a t i o nm a n a g e m e n t a w a r es o f t w a r e a r c h i t e c t u r em o d e lu s i n gx m lt os u p p o r tc o m p o n e n ti n t e g r a t i o nf r o mt h ei n f o r m a t i o n o fd e s i g n t i m em o d e l o nt h eo t h e rh a n d ,t h ed y n a m i cc o m p o n e n ti n t e g r a t i o nt o p i c s , s u c ha sm v c d y n a m i cc o m p o n e n tu p d a t i n g a r ea l s od i s c u s s e d a sf a ra st h ea n a l y s i sa n dv e r i f i c a t i o nf o rc o m p o n e n ti n t e g r a t i n gi sc o n c e r n e d ,t h i s p a p e rp r o p o s eu s i n gx m la s t h ed e s c r i p t i o n l a n g u a g eo f s o f t w a r ec o m p o n e n t b e h a v i o ri nc 2a r c h i t e c t u r a ls t y l e ,b a s e do nw h i c ht h ej - cm e t h o dc a nb ea p p l i e dt o v e r i f yt h ed e a d - l o c kf r e e d o m o ft h eo v e r a l ls y s t e m t h ei s s u eo fc o m p o n e n ti n t e g r a t i o na n dm a n a g e m e n ti nd i s t r i b u t e ds y s t e mi sa l s o d i s c u s s e di nt h i sp a p e r w ec r e a t e da no b j e c t o r i e n t e df r a m e w o r kf o rc o n s t r u c t i n g d i s t r i b u t e ds y s t e mi nc 2s t y l e t h ef r a m e w o r ki si m p l e m e n t e di nj a v a ,u s i n gr m i c o m p r e h e n s i v c i y t h es y s t e mc o n s t r u c t e do n t h ef r a m e w o r kh a st h e f o l l o w i n g c h a r a c t e r i s t i c s :t h es u p p o r tf o rm a n i p u l a t i n gc o m p o n e n ti n t e g r a t i o na n dm a n a g e m e n t i nad i s t r i b u t e de n v i r o n m e n t 【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 ,s o f t w a r ec o m p o n e n t ,c o m p o n e n ti n t e g r a t i o n a r c h i t e c t u r a ls t y l e ,s o f t w a r ec o n n e c t o r 堆j 。c 2 捣架j 扎惭的f ;j 仆纰装圳究 1 引言 自从计算机诞生以来,软件危机问题一直困扰着软件的开发与维护。软件危 机是指在计算机软件丌发和维护过程中所遇到的一系列的严重问题。这些问题不 只是“不能j 下常运行”的软件才有的,实际上几乎所有的软件都不同程度的存在 这些问题。概括的说,软件危机包含下述几个方面的问题:如何开发软件,怎么 满足对软件r 益增长的需要,如何维护数量不断增长的已有软件。总的来说软件 危机贯穿于软件丌发的整个生命周期中,“软件工程”就是在这种需求下产生 的。 “软件工程”一词在1 9 6 8 年首次出现,不断出现的软件危机促进了软件工 程的研究与发展。软件产业发展到今天,所面临的软件系统规模越来越大,功能 越来越复杂,同时软件开发失败率高,时间和预算超过预期标准的现象屡屡出现。 随着软件设计的重点从选择合适的数据结构和算法转移到更高抽象层次的 系统结构和模块,软件的开发方法也从传统的结构化开发方法过渡到面向对象方 法,直到现在成为研究热点的基于构件的软件开发方法。 在基于构件的软件开发中,软件构架是对组成系统的构件、构件之问的相互 作用,构件组合的模式及这些模式上的约束的描述。软件构架指定了系统的组织 结构和拓扑结构,并显示了系统实现与构成系统的元素之问的对应关系。当软件 构件成为了构造应用系统的基本模块,如何在构架的基础之上采用f 确有效的方 式组装构件成为基于构件软件工程中的一个重要课题。另外,分布式技术的发展 也给软件构件组装提出了新的课题,如何实现分柿式环境下的运行时动态组装和 管理也成为构件组装所要解决的重要问题。 文章的组织结构: 小文神! 第二章州顾了丰勾件身l 装的1 l 荚技术。存第三章讨论了构件纠i 装聊f 究的 内7 # j 水文的研究疗向,为了更好的f l ! 解构什组装f ,的诸多问题,订! 这章安排 了c 2 构架m 椿的特点分析。第四章闸述了软f l :构架描述模型与构件爿l 装的关系, 提了旗】:构架批述的构f , = 组装臼动化方法。第,“章闸述了软件构架t i l n q 动态构 什纠【装,包括多版本构件的绑l 装和构1 l :f 1 9 动态配霄。第六章提 l 了蜒j j x m l = - , j 什行为舰约的软什升l 装分析方法。文尊的讹七章洋细介绍了个川j 二史现c 2 i x l 7 门分n 】j 系统的软什h e 架,该榧架j i 彳支4 分自,式环境卜的构f i :f 1 1 装及竹;l i ! l 门 j j j 能。如八啦总结全文。 壮j :c 2 均禁j n 恪的f ;j 什纰址f l j | 宄 2 构件组装相关技术简介 2 1 软件复用技术 软件复用的概念是从1 9 6 8 年的n a t o 软件工程会议a 二d o u g hm c l l r o y 提出了 “形式化的软件复用”的概念后逐步确立的。至今软件复用已有了近三十年的发 展经历,复用的对象也从早期的代码复用扩展到对软件开发过程中的一切有价值 的信息的复用,包括需求规约、设计、源代码、测试计划、测试用例和文档等。 近三十年的实践证明,软件复用可以有效地提高软件的质量和生产率,是解决当 前“软件危机”的一条比较切实可行的途径。 软件复用从广义上讲,是指在新的情况和环境下,特定的技术、概念和系统 成分可被再次使用的能力。复用范围跨越软件生命周期的各个阶段,复用部件包 括生命周期各阶段的成果。具体的说,软件复用是领域知识、领域模型、软件需 求说明书、概要设计和详细设计说明书、功能模块、测试计划、测试用例和程序 代码等可复用部件的复用。 复用的方法大致可分为两大类:产品复用( p r o d u c tr e u s e ) 和过程复用 ( p r o c e s sr e u s e ) 。前者侧重于复用软件生命周期各个阶段的成果,通过直接组合 可复用构件得到新的软件产品:后者主要采用自动化生成技术,侧重于用生成器 的方法自动产生系统。 2 2 构件( c o m p o n e n t ) 技术 2 2 1 构件基本概念 构件是指用以构筑软件系统的可以复用的软件元素,s z y p e r s k i 对构件下的定 义是:软件构件是一个组合的单元,它具有明确的接口规范和上下文依赖( a s o f t w a r ec o m p o n e n ti sau n i to fc o m p o s i t i o nw i t hc o n t r a c t u a l l ys p e c i f i e di n t e r f a c e s a n de x p l i c i tc o n t e x td e p e n d e n c i e s ) 。构件通常表现为不同的形态,形态的差异体 现在结构的组织方式和依赖的方法学范型上。典型的构件形态有: 1 ) 类( c l a s s ) 以类为单位进行封装而得到的构件,这是最基本的构件 单元。 2 ) 类树( c l a s s t r e e ) 以一个抽象类为根,若干继承该抽象类的具体子 类( 也可能是抽象子类) 为节点的一棵树。这样的一棵树被封装为构件,对外 实现了具体子类的隐蔽。根类提供了该类树的对外接口规约。 3 ) 框架( f r a m e w o r k ) 一个框架由一组协作构件组成,阐明了整个设 计、构件问依赖及成员构件的责任分布。这些成员构件通常是子框架、类树或类, 垠j - c 2 构禁h 格的 勾r i 灿轧圳九 人多以抽象的形式j 现,实现细:竹放在具体子类小,构成了一个抽象设计,f :旧 的具体子类可产生对设计的不同实现。 4 ) 设计模式( d e s i g np a t t e r n ) 设计模式是对经验的显式表示,每个设 计模式描述了一个反复出现的问题以及该问题解法的核心内容,它命名、抽象并 标识了一个通用设计结构的关键部分,使得它可以用来创建一个可复用的面向对 象的设计。设计模式作为可复用构件体现了较高层次的设计思想复用。 5 ) 构架( a r c h i t e c t u r e ) 应用系统体系结构的显式表示。构架具有领域 相关性,构件根据构架进行复合而生成可运行的系统。构架是一类特殊的构件, 可视为框架用于拙述一个应用系统时的极限状态。 2 2 2 构件模型( c o m p o n e n ti o d e l ) 构件模型( c o m p o n e n tm o d e l ) 详细说明了构件开发者必须遵循的标准和协 议。具体来说,一个构件模型通常包含以下的内容: ( 1 ) 构件类型构件的类型可以根据它实现的接口来定义。构件模型要求构件 实现一个或多个接口,通过这样的方式一个构件模型就可以被看作定义了一个或 多个构件类型。 ( 2 ) 交互方案构件模型将确定如何定位构件,使用什么交互协议,取得什么 样的包括安全、事务在内的服务质量。 ( 3 ) 资源绑定确定构件绑定上一个或多个资源的过程以及绑定的方式。 目前已经在产业界广泛应用的构件模型有: c o m p o n e n to b j e c tm o d a l ( c o m ) c o m 是m i c r o s o f t $ 4 定的可以支持多个接口,构件之h j 动念绑定的构件模型。 c o m 是一种运行时环境,同时也是一个公开的标准,目前主要是在w i n d o w s 平台 上使用。 e n t e r p r i s ej a v ab e a n ( e j b ) s u n 公司的e j b 定义了构造分布式系统的服务器端构件的规范。e i b 是j a v a2 p l a t f o r me n t e r p r i s e 的一部分。它通过一种中立的对象通讯协议提供对事务和安全 的支持。 c o m m o n0 b j e c tr e q u e s tb r o k e r a r c h i t e c t u r e ( c o r b a ) c o r b a 是9 0 年代初d 4 0 m g 开始制定的一个标准,o m g 通过制定对象管理 规范提供集成应用开发的公共框架。规范描述的主要的需求包括了在分布式环境 下基于对象的软件构件的可复用性、移植性和交互性。 j l :j c 2 均禁j 孔 一的f ;= i 灿裴川( 2 2 3 构件的描述 要设计、丌发和复川一个构件首先必须埘构件进行描述,构件的描述是通过 构件模型和构件描述语言来实现的。构件模型是构件的抽象描述,是构件描述语 言的基础,构件模型集中体现了设计者的思想。当前学术界使用的构件模型有3 c 模型、r e b o o t 模型等,这些模型抽象、易扩展但无具体的标准和实现方法。产 业界的构件模型包括上面介绍的c o r b a ,c o m 、d c o m 和e j b 。构件描述语言 是用以对构件进行拙述的语法和语义的形式化系统,目前所使用的构件描述语言 有l r r 、a c t 、c d l 、m e l d 、c i d e r 、l i l e a n n a 和r e s o l v e 等。 2 3 构架与构架风格( a r c h it e c t u r a ls t y l e ) 2 3 1 基本概念 软件构架是一个系统的视图,该视图描述以下内容:系统的主要构件,构件 相对系统其他部分的可见行为,以及为了达到系统预定的功能构件之间所采取的 交互和协作关系。通常,构架所设计到的问题包括系统的整体组织、全局的控制 结构、通信、同步和数据访问的协议,涉及元素( 软件成分) 的功能分配、元素 的组合( c o m p o s i t i o n ) 、伸缩( s c a l i n g ) 、性能以及对多种设计方案的合理选择。软 件构架包括了系统元素的描述、元素之间的交互、用于指导元素的构造的模式和 这些模式的约束。 一个构架风格定义了具有相同组织结构的一系列软件系统,并定义了构件和 连接器类型的列表和一套构件连接的约束。一种构架风格代表了一种软件设计成 分进行组织的特定的模式,因此它决定了一个系统的家族。 a na r c h i t e c t u r a ls t y l ed e f i n e sav o c a b u l a r yo fc o m p o n e n ta n dc o n n e c t o rt y p e sa n d as e to fc o n s t r a i n t so nh o wi n s t a n c e so ft h e s et y p e sc a rb ec o m b i n e di nas y s t e mo r f a m i l yo fs y s t e m s 具体地说构架风格决定了能用在该风格实例中的构件和连接器以及关于它 们如何使用的一个约束的集合。构架风格的使用能提高设计和代码的可复用度 有助于他人理解一个系统的组织结构。 2 3 2 构架描述语言( 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 ) 一种构架描述语言具备的能力可以从以下几个方面来考虑: ( 1 ) 表示能力( r e p r e s e n t a t i o n ) 表示能力是一种a d l 所必须具有的描述复杂软件构架的能力,a d l 必须具 有一个清晰的词汇表来标识系统元素和系统结构。这种表达能力包括采用一套合 坫十c 2 构柴风情的构r f l l 驶m 究 通的符号系统和消晰的逻辑,是所有其他能力的i m 提条件。虽然现有f l , j a d l 已经 构成了一个很大的家族,但是大部分a d l 都具有相似的词汇表构件、连接器 和约束,同时这些元素也可以通过增加其属性的方法加以扩展。 ( 2 ) 分析能力 通常特定的a d l 支持特定类型的分析,系统的设计者为了对系统构架作多方 面的分析,会将一种a d l 描述的构架转换为另一种a d l 的描述,a c m e 这种构架 转换语言( a d li n t e r c h a n g el a n g u a g e ) 就是用来完成这项工作。 ( 3 1 视图 软件工程认为软件成功的一个关键因素是建立对系统的一致理解。软件构架 必须提供多样化的视图以便各个层次的人的观察和理解。交流是对软件构架的最 重要的要求之一。 ( 4 ) 协作与复用 软件开发r 益成为分布性的工作,这种分布性的重要表现是地理分布和网络 的使用。这样,a d l 应该尽可能地支持广为接受的软件工具。 2 4 基于构件的软件开发 所谓基于构件的开发方法是指将软件系统的丌发过程看作在构架的指导下 用构件组装软件系统的过程的软件开发方法。基于构件的软件丌发方法通过增加 系统的灵活性和可维护性,可以减少开发的费用,缩短系统的开发周期,减少系 统的维护费用。 对十外发的组织方式来说,系统化的软件复用改变r 软件外发的模型、方法、 技术和过程,s e i 的d a v i dc a r n e y ,j o h nf o r e m a n 对基于构件软件丌发过程作了如 图2 一l 所示的描述 4 。在基于构件的软件开发中,软件的生命周期被分为丌发可 复用产品的生命周期和使用可复用产品的开发目标系统的生命周期。同时,软件 丌发的组织形式和管理方式对应于这两个生命周期也有所变化。其目的在于通过 系统化的软件复用形成软件的工业化生产线,通过不同项目,不同开发人员之问 的分工合作,达到缩短工期,降低成本和适应变化的目的。 1 构件的生产2 构件的选取3 构件接u 适配4 构件的纽装5 构件的替换 l ! i 2 1 ,基丁构什的软什开发( d a y i dc a r n e y 。j o h nf o r e m a n s e t ) 9 杜,二c 2 捣架风格的构件纰皴研究 3 构件组装研究 构件的描述和组装是软件复用中一个主要的研究方向,构件组装的研究与构 件批述的研究有着紧密的联系。构件描述与组装的研究可以追溯到7 0 年代p a r n a s 所提出的模块,早期的研究工作主要集中在模块互联语言。进入8 0 年代,研究重 点开始转向构件描述语占,进入9 0 年代后,构件描述语言同时具有描述构件和构 件子系统的能力。在我国国家九五项目的“青鸟”项目中提出的应用系统集成组 装环境软件生产线系统就包括了青鸟构件模型及其构件描述语言,用于软件 复用的软件构件库。基于构件的软件工程化开发方法和支撑工具等方面的研究。 本文在仔细分析了一种特定的构架风格c 2 构架风格的基础之上,将c 2 构架风格下的构件组装的多方面的内容作了详细的阐述。首先,文中对构件组装 的自动化支持进行了研究,提出了基于x m l 构架配簧描述的构件自动组装,另外, 作者对构件的运行时动态组装作了深入的探讨;其次,文中利用7 x m l 技术来描 述构件规约信息。而构件组装验证的所需的构件行为信息就是从这些结构化的信 息中抽取:最后,对构件组装研究的一个重要的领域分布式环境下的构件组 装作了研究,在这一领域作者将中间件技术同软件构架相结合,实现了分布式环 境下支持c 2 构架风格中构件组装的框架。 3 1x m l 在构件组装中的运用 本文中构件自动化组装的实现是通过构架描述信息来驱动的,而构件组装的 验证又是以构件规约研究为基础的。无论是组装自动化还是组装验证,它们都面 临着一个相同的问题:信息的结构化表示,也就是构架配置信息和构件规约信息 的表示。在本文中对于构架描述和构件的行为规约都利用了x m l 技术 3 1 1x m l 简介 1 9 9 6 年,万维网协会( h t t p :w w w w 3 c o r g ) 开始设计一种可扩展的标记语言, 使其能够将s g m l 的灵活性和强大功能与已经被广泛采用的h t m l 结合起来。这 种语言后来变成x m l 语言,x m l 继承了s g m l 的规范,而且实际上就是后者的 一个子集。1 9 9 8 年2 月,x m l l 0 成为w 3 c 的推荐标准。x m l 是一种界定文本数 据的简便而标准的方法。x m l 的标记用来说明你所描绘的概念,而属性则是用 1 0 壮十c 2 构架风格的构件组l 姨i i j f 究 来控制他们的结构,x m l 的数据描述机制是一种共享信息的强大途径 ( 1 ) 它是丌放的,x m l 能够在不同的用户和程序之问交换数据 ( 2 ) 它具有自描述特性 ( 3 ) 无需事先协调,我们就可以在程序之自j 共享数据 3 1 2 一种基于x m l 的构架描述语言 x m l 用来描述构架信息的能力可以从以下几个方面来考虑: ( 1 ) 使用x m l 能够清晰地描述构架中的元素和它们之间的关系,而且x m l 具 有良好的可扩展性,可以很好的支持将来a d l 语言定义上的变化。 ( 2 ) 分析( a n a l y s i s ) 特定的分析技术总是与一种特定的 d l 结合在一起的,对于构架在不同构 架描述语言之间的转换需要一个公共标准。对于x m l 来说,由于是一种协议标准, 现在已经有许多的解析器支持这个标准,所以这些解析器就成为完成构架分析的 转换工具的最佳选择。 ( 3 ) 视图 x m l 从一开始诞生起,就将数据获取作为其有机组成成分。x m l 提供了利用 数据对象的方法,它还提供了类似s q l 的结构化查询方法,使得数据操纵能力空 前强大。还有x s l ,如同s c r i p t 那样,可以对查询结果进行过滤、格式化、嵌 入其他标识符集合等复杂工作,使结果呈现多样化。 ( 4 ) 协作与复用 x m l 本身就是网络时代的产物摹于x m i 。的a d i 。麻用程宇将非常容易和清 晰地在网络上进行发布和互相交流。x m l 还具有继承、扩展等能力,这使得复用 更加成功。 3 1 3 构件规约与x m l 技术 构件规约( c o m p o n e n ts p e c i f i c a t i o n ) 包含了对构件的相关信息,构件行为 规约是指对构件内部行为的规约说明,对构件行为的规约描述主要出于三个方面 的考虑: 第一是出于构件验证的考虑,为了减少系统中的构件不匹配情况,需要对构 件进行验证。 第二是为了更好的复用构件,一个软件产品成为可复用构件的一个重要的前 提是:检索到这个构件要比重新构造这个构件更容易。构件需要有一种形式化的 方法来描述其行为,在这种严格的规约下有利于在容量庞大的构件库检索到需要 的构件。 堆十c 2 j ! | 架风f 持的构件纰皴埘究 第三,构件规约可以成为代码生成工具的输入,利用代码自动生成工具可以 从构件行为规约中导出代码框架或是部分的实现代码。 目前用来对构件行为进行规约说明的形式化方法有公理标记,女! l a n n a ,代数 标记,如o b i ,还有基于抽象模型的标记,如z 语言。在构件抽象的四个层次当 中,构件的舰约是发展相对成熟的一个层次,构件规约的研究要早于软件构架的 研究。考虑到m l 文档在分析、扩展和复用方面的种种优点,同构架的描述方法 一样,本文采用了x m l 来描述构件的行为,使用x m l 中的s c h e m a 来定义规约文 档的“格式”。 3 2 分布式环境下的构件组装与中间件技术 在基于构件的软件开发中,对连接器的建模和实现是完成系统构件组装和实 现构件交互协议的关键。构件之问通常通过连接器耦合,连接器在构件之间起到 消息传递的作用,具体的实现方法包括了消息路由、共享变量、远程方法调用等 等。随着网络技术的发展,计算越来越趋向分布式,系统的实现往往将一些分布 式的、异质的、地址空间独立的计算构件通过松散的耦合组合在一起。大量中问 件技术的出现满足了分布式构件的组装要求,本文将结合中间件技术和软件构架 技术,讨论分布式软件构架风格的中问件框架实现及构件组装的相关问题。 文中提出的框架将使用中间件技术实现分布式构架中的连接器,主要从以下 几个方面来考虑: ( 1 ) 中间件具有跨线程、跨进程和跨网络的特点。 ( 2 ) 中间件产品一般都有内建的提供构件之间数据传输的协议。 ( 3 ) 有些中间件提供了连接器过滤、路山和广播消息的功能。 对于可以用来实现连接器的众多中间件技术,在选择的时候中间件应该具有 以下基本的特点: ( 1 ) 进程间通讯的支持 分布式的应用建立在运行于不同的线程、不同的进程和不同的主机上的构 件。 ( 2 ) 软件连接器的特征 中间件技术提供进程之间数据交换的手段,但是软件连接器的功能要求更 高:事件路由( 广播、组播和点对点) ,事件过滤和事件登记。c o t s 中间件一般 不具备这些连接器的高级特征,需要提供额外的机制来来实现分布式环境下连接 器的这些特征。 ( 3 ) 平台和语言支持 肇十c 2 掏架风格的构件l l l 狄l j f 究 软件构架,特别是c 2 构架j x l 格在设计时就考虑到支持分粕式环境的丌发, 系统中的构件可以用不同的语言独立开发,运行在不同的平台上。中间件之阳j 的 交互技术将更好的支持多语言多平台的实现。 ( 4 ) 通讯方式 如同构架中连接器的种类众多一样,中间件的通讯方式也是多种多样,有 r p c ( r e m o t ep r o c e d u r ec a l l ) ,消息传递,对象引用传递等等。如果利用某种中 问件件技术在实现连接器时存在较大的困难,那这种中间件就不是一个很好的选 择。 3 3c 2 构架风格 本文对构件在运行时动态组装的研究是基于一种特定的构架风格c 2 构 架风格,之所以选择c 2 构架风格作为研究的对象是由于c 2 构架的自身特点。在 本文的这一章中对c 2 构架的特点做了详细的分析,这部分内容也是理解本文在 构件动态组装与管理方面研究工作的基础。 c 2 是一种基于分层结构、事件驱动的软件构架风格。c 2 构架中的基本元素 是构件( c o m p o n e n t ) 、连接器( c o n n e c t o r ) 和构架拓扑( c o n f i g u r a t i o n ) 。 c 2 中的每个构件有一个顶端端口和一个底端端口,每个连接器也定义有顶 端端口和底端端口,但是数量没有限制,具体同绑定在上面的构件和连接器的数 量有关。c 2 构架风格的拓扑约束的特点是通信与计算的分离:构件之间不能直 接相连,构件之问通过与连接器相连完成消息通信,连接器也可以亢接同连接器 相连。处于底层的构件向处于高层的构件发出服务请求消息( r e q u e s t ) ,消息经 过各层上的连接器路由后到达相应的构件。处理结束后,由该消息处理构件将通 知消息( n o t i f i c a t i o n ) 经连接器传送到底层发出请求的构件。 幽3 一l ,1 2 2 构架风格 坫十c 2f ;j 禁风格的f j j 件f 1 i 轧州究 3 3 1c 2 构件内部结构 c 2 , = l j 件的结构将通信和处理分离,由一个内部对话框接受来自外部的所有 通知和请求,然后将这些接收到的消息映射到内部对象的操作。对话框将构件的 内部对象和系统中其余部分的变化隔离开来。当内部对象的状态发生改变,该构 件的通知消息往下广播。下方的构件对话框将解释这一通知消息,然后激发他们 内部对象的相应操作。这种隐式的调用减少了通信构件之问的依赖。 翻3 2 ,c 2 构件内部结构 3 3 2c 2 构架中的消息机制 在c 2 构架中所有构件之问的通信都通过连接器的异步消息交换。因为所有 的消息传递部足芹步的,f 勾f t - 的组装控制被大大地简化。 酗3 3 。q 构架中的消息传递 3 3 3 c 2 构架风格的特点 c 2 构架风格主要有以下的特点: 1 4 硅卜c 2 构架风浒的构什量1 l 伙川冗 ( 1 ) 向下独立性( s u b s t r a t ei n d e p e n d e n c y ) 在整个构架中,构件只知道处于它上层的构件而不知道它下层的构件。构件 通过发送请求消息来利用上层构件的服务,而构件与下层构件的通讯是隐式的。 这种“向下独立性”就是指一个构件只看到在它上层的构件,而不用意识到 下层构件的存在。越靠近的上层,依赖性就越大。“向下独立性”对于增强构件 的可替代性和复用性是很重要的。 ( 2 ) 消息通讯机制 消息传递是构件之间的通讯的唯一方式。这种消息传递是异步的,尤其适合 于g u i 的应用程序。因为g u i 程序大多允许并发、多用户、任意执行次数,这些 特征都需要异步通讯。 ( 3 ) 多线程( m u l t i t h r e a d e d ) 组成系统的构件有自己的控制线程,多线程的方式除了支持多任务的并发系 统的构造,也给c 2 构架带来了有效的动态控制,可以支持系统运行时构件的增 加和删除,也就是说,c 2 中的线程模型给c 2 构架的动态演化提供了支持。 ( 4 ) 地址空间独立( n oa s s u m p t i o no f s h a r e da d d r e s ss p a c e ) c 2 构架中并不要求系统中的构件连接器共享相同的地址空间。c 2 构架风格 是一种软件结构的拓扑抽象,不仅可以用来构造g u i 的桌面系统,而且独立的地 址空间可以用来构造分布式的软件系统。 ( 5 ) 实现与构架的分离( i m p l e m e n t a t i o ns e p a r a t e f r o ma r c h i t e c t u r e ) c 2 构架风格规定了系统中的构件连接器以及拓扑约束,因此只是一种软件 构架风 各的规范可以以不同的方式映射到具体的实现形式。 坫1 。c 2 掏架j n 齐的构件灿坯卅咒 4 基于构架描述的构件组装 4 1 软件构架在构件组装中饷作用 支持配置管理的构架描述模型将逻辑层次的实体,如构件、连接器的构架拓 扑看作主要的被管理的对象实体,将物理层次上的实体( 源文件) 看作是第二层 次上的被管理对象实体。模型的中心实体是软件构架,它包括了系统中的构件、 连接器和它们之问的拓扑关系。 在对c b s e 发展现状的研究中,人们发现构件的复用需要多方面技术的支持, 这些技术包扩构件的文档化,构件的组装,构件的适配和构件的特化。 在c b s e 中,构件组装的描述是:构件组装是使用一个构件基础设施来组织 构件装配的过程,这个基础设施提供了从众多单独的构件到软件系统的绑定。 c o m p o n e n ti n t e g r a t i o ni st h ea s s e m b l yo fc o m p o n e n t su s i n g ac o m p o n e n t i n f r a s t r u c t u r et h a tp r o v i d e st h eb i n d i n gt of o r mas y s t e mf r o mt h ed i s p a r a t e c o m p o n e n t s 软件构架在软件系统的丌发和维护过程中有重要的作用。软件构架的描述是 对软件构件和构件之白j 的关系在系统较高的层次上作了定义。软件构架可以用来 生成系统的实现、驱动系统组装和支持系统测试。 软件构架在软件构件组装活动中的角色和两者的关系可以用以下几点来概 括: 1 ) 软件构架描述确定了软件系统的整体结构,它可以用来作为组织构件设 计和实现文档的中心文档( c e n t r a ld o c u m e n t ) 2 ) 从软件过程的角度来看,特别是对于增量型软件过程( i n c r e m e n t a l s o f t w a r ep f o c e s s ) ,需要在软件丌发的过程当中保持一致性。当需求发生变化时, 被组装的构件和构件的组装方式也会作相应的变化。这种软件生命周期中对构件 组装的“跟踪能力”需要由构架来组织和支持。 3 ) 对现有的软件构架描述进行扩展,加入对软件对象的配簧管理信息,如 版本、变更控制的服务。这种经配置管理扩展的系统模型能更好的驱动构件的组 装过程。 批1 c 2 构架m 齐的 ;: 件组址川冗 图4 1 ,软件构架与构件组装 4 2 现有构架描述运用于构件组装的不足 在本文中,我们选择了软件构架作为支持构件组装中的系统模型的基础。但 是这种模型对于构件的组装还存在着一些问题: 首先,构件的组装方式与组装环境有关,不同的平台,不同的应用要求将软 件构架根据这些不同的条件映射到其中的某一种组装形式,也就是说,需要有表 达软件构架族的功能,单一的构架表示提高了复用的难度。 其次,现有的构架描述模型缺乏对配最管理的支持。软件构件在开发的过程 小会经历演化的过程,构什演化上要足指构f l n j 更新,对外表现为构什的功能和 行为发生变化。既可以表现为构件功能的加强和完善,也可以表现为更新后的构 件可以工作在新的环境之下。因此构件的组装自动化要求系统的描述具有识别不 同版本构件,并依据不同条件选择合适版本的构件。 另外,构架描述中缺乏从组装的构件元素到实现的映射,这种映射的缺乏影 响了组装的自动化实现。 4 3 支持软件配置管理的软件构架模型 为了实现上述的“支持软件配置管理的软件构架模型”,需要定义模型文档 中的词汇表和词汇表的规则,在x g l 的相关技术中有两种实现方法,一个是使用 d t d ,另一种是使用s c h e m a 。考虑到x m l s c h e m a 完全使用x m l 作为描述手段, 具有很强的描述能力、扩展能力和处理维护能力。我们可以为模型中的元素建立 各自的s c h e m a ,以后的构架描述文档的编写都将基于这些已定义好的s c h e m a 。 艰j c 2 构架风懈的 j = j 件灿城圳究 水文1 1 】利川版本化的构架层次上f l ;j t h 象来支持配置管理和构件组装。这种抽缘 和软件构架有着非常相似的地方,这种抽象模型中的元素同样也包括了构件、交 互和约束,但是这些元素都存在多个版本,这些元素包括构件,也包括构架本身。 版本化的软件构架将软件构架和版本控制的概念结合在了一起。构架提供了 软件过程中的系统结构信息,软件配置管理和软件组装都需要了解他们所操作的 系统结构信息。比如说要更换系统中的一个构件,需要对知道这个构件的版本信 息而不只是知道单个的文件版本信息。这种按照软件结构来管理的方式更加符合 软件丌发过程,管理中的术语和开发中的术语相一致。 一个支持配置管理的软件构架描述模型应该包含以下的元素: 丧4 1 支持配拦管理的欹仆陶粲描述摸喇 下面我们来分析一下在软件构架中与实例相关的模型,见下图: 牡十c 2 构架风格的构件组驶圳宄 幽4 - - 2 ,软忭构架中实例相关的模型 首先,构架配置被赋予一个版本号,这样的构架配最应该包含组成软件实体 的构件、连接器类型和实例,他们之问的拓扑结构,对于构架中出现的每一个元 素又包含了他们各自的版本信息。 版本节点( v e r s i o nn o d e ) 用来表示构件、连接器、接口的版本树中的某个节 点,u 土就足某个具体的版奉| 弓。每个肖点色含的信息包括版本信息、版奉倒- i l 口0 父节点信息和版本树中的予节点信息。每个构架元素的所有版本节点构成整个版 本树或版本图。 g u a r d 用来表示卫哨条件,当条件满足时,可以用来表示构架发生的变化( 比 如说一个可选的构件被包括到构架中,或者是表示构架将选择其中某个元素的一 个另一个变体) 。 o p t i o n a l 用来容纳构架中可选的构件连接器或者连接的条件组合。 构架元素类型还有可变体v a r i a n t 的形式,可变体的存在往往是因为构架元素 在不同的环境之下的实现,比如在不同的平台上的实现。在构件组装时需要根据 卫哨条件来确定具体是可变体中的哪一种类型。 坫十c 2 构架风格的构件组址州究 4 4 基于x m l 的构架描述与构件组装 4 4 1 构架描述驱动构件组装 x m l 作为一种构架描述语言,具有许多的优点,它结构化的信息表示方式 便于分析和复用,考虑到x m l 构架描述的这些优点,本文提出了将构件描述的 x m l 文本数据来驱动构件的组装。 整个组装分为两个阶段: ( 1 )支
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国电梯能量回馈单元行业投资前景及策略咨询研究报告
- 2025年中国王浆冻干粉行业投资前景及策略咨询研究报告
- 2025年中国港式钵仔糕行业投资前景及策略咨询研究报告
- 2025年中国油溶性透明铬合染料行业投资前景及策略咨询研究报告
- 2025年中国正压防爆配电盘行业投资前景及策略咨询研究报告
- 2025年中国机械成套设备配件行业投资前景及策略咨询研究报告
- 2025年中国抗菌防蛀产品行业市场调查、投资前景及策略咨询报告
- 山西散装水泥仓管理制度
- 团工委工作目标管理制度
- 公司法务督察部管理制度
- 2024家庭医生式服务签约协议书
- 江苏省南师附中2024届高一数学第二学期期末教学质量检测试题含解析
- 教师礼仪与沟通技巧(山东联盟)智慧树知到期末考试答案章节答案2024年潍坊学院
- 产业园企业服务规范及管理办法模板
- 莎士比亚戏剧赏析智慧树知到期末考试答案章节答案2024年北京师范大学
- (正式版)SHT 3046-2024 石油化工立式圆筒形钢制焊接储罐设计规范
- 2023年山东济南市初中学业水平考试地理试卷真题(答案详解)
- 国开专科《建筑制图基础》形考作业1-4试题及答案
- GA/T 2015-2023芬太尼类药物专用智能柜通用技术规范
- 志愿服务证明(多模板)
- 《销售员的角色定位》课件
评论
0/150
提交评论