




已阅读5页,还剩99页未读, 继续免费阅读
(计算机软件与理论专业论文)面向网格服务的软件体系结构建模及演化研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向刚格服务的软件体系结构建模及演化研究 摘要 在计算机软件网络化和服务化的趋势下,面向网格服务的分布式软件系统 得到了迅速的发展,同时也面临着与传统软件丌发初期同样的问题,缺乏技术 手段指导软件的需求、设计导致软件产品开发和维护困难。本文着重讨论了面 向网格服务的软件体系结构的建模和演化中的关键问题和技术,对提高网格服 务环境下软件体系结构的灵活性和可靠性、降低服务变更和体系结构演化带来 的风险具有重要的理论意义和应用价值。 本文以面向网格服务应用领域的软件体系结构为研究对象,基于w r i g h t 体 系结构描述语言和通信顺序进程,定义了资源、服务、连接件等基本的网格服 务建模元素的语义,并给出了基于连接件语义的服务组合形式化描述以及一致 性检查方法。在形式语义的基础上,建立了面向网格服务的领域本体元模型, 把专业领域知识模型和网格服务的语义模型联系起来,使得传统业务模型和面 向服务的应用模型更紧密结合,为建立基于领域知识、面向网格服务的软件体 系结构模型奠定基础,并给出了建立面向网格服务软件体系结构的开发方法。 本文还对网格服务环境下软件体系结构的动态演化场景模型进行了描述,并给 出了基于连接件语义的动态演化实现框架。 全文以面向网格服务的交互式学习软件为例,从体系结构建模到演化的不 同侧面对所阐述的思想、理论和方法进行了实例说明。 关键词 网格服务,软件体系结构,通信顺序进程,动态演化,形式语义 面向叫格服务的软件体系结构硅模及演化研究 a b s t r a c t g r i ds e r v i c eo r i e n t e ds o f t w a r es y s t e m sa l ed e v e l o p i n gr a p i d l ya l o n gw i t ht h e s a m ep r o b l e m st h a tt r a d i t i o n a ls o f t w a r ed e v e l o p m e n tp r o c e s sh a df a c e db e f o r e l a c k o fe f f i c i e n tt e c h n i q u e sg u i d i n gs o f t w a r er e q u i r e m e n ta n dd e s i g nl e a d st od i f f i c u l t i e s d e v e l o p i n g s o r w a r ep r o d u c t sa n dp r o d u c tm a i n t a i n e n c e ,a si s s u f f e r i n g i n d e v e l o p i n gg r i ds e r v i c ea p p l i c a t i o n s t h i st h e s i sa r g u e de s s e n t i a lp r o b l e m sa n d t e c h n i q u e s i n m o d e l i n g a n de v o l v e m e n to fg r i ds e r v i c eo r i e n t e ds o f t w a r e a r c h i t e c t u r e ,w h i c hc o n t r i b u t e st oi m p r o v i n gf l e x i b i l i t ya n dr e l i a b i l i t yo fs o f t w a r e a r c h i t e c t u r ea n dl o w e r i n gr i s kl e v e lo fs e r v i c em o d i f i c a t i o i u sa n da r c h i t e c t u r e e v o l v e m e n t s i nr e s e a r c ho ns o f t w a r ea r c h i t e c t u r eo fg a ds e r v i c eo r i e n t e da p p l i c a t i o n s ,b a s i c m o d e l i n ge l e m e n t ss u c h 勰r e s o u r c e s s e r v i c e sa n dc o n n e c t o r sa r ed e f i n e db yw r i g h t a r c h i t e c t u r ed e f i n i t i o nl a n g u a g e ( a d da n dc o m m u n i c a t i o ns e q u e n c ep r o c e s s e s ( c s p ) af o r m a ld e s c r i p t i o na n dac o n f o r m a t i o nc h e c km e t h o do fc o n n e c t o r - b a s e d s e r v i c ec o m p o s i t i o ni sp u tf o r w a r d am e t a m o d e lo fg a ds e r v i c eo r i e n t e dd o m a i n o n t o l o g yi sc o n s t r u c t e d , w h i c hb u i l d su pac o n n e c t i o nb e t w e e nd o m a i nk n o w l e d g e m o d e la n ds e m a n t i cm o d e lo fg r i ds e r v i c e s 日l ec o n n e c t i o nt e n d st oe m e r g e t r a d i t i o n a lb u s i n e s sm o d e la n ds e r v i c eo r i e n t e da p p l i c a t i o nm o d e la n dh e l p st ob u i l d u pag a ds e r v i c eo r i e n t e da r c h i t e c t u r a lm o d e lb a s e do nd o m a i nk n o w l e d g e a d e v e l o p i n gm e t h o di sa l s op u tf o r w a r dt oi l l u s t r a t et h ep r o c e s so f c o n s t r u c t i n gag a d s e r v i c eo r i e n t e ds o t t w a r ea r c h i t e c t u r e ad y n a m i ce v o l v e m e n ts c e n a r i om o d e lo f s o r w a r ea r c h i t e c t u r ei ng r i ds e r v i c ec i r c u m s t a n c e si sa l s op u tf o r w a r d , a l o n gw i t ha f i a m e w o r kf o rd y n a m i ce v o l v e m e n tb a s e do ns e m a n t i c so f i n t e l l i g e n tc o n n e c t o r s t h i st h e s i si l l u m i n a t e si d e a s ,t h e o r i e sa n dm e t h o d so f a r c h i t e c t u r em o d e l i n ga n d e v o l v e m e n tw i t hap r a c t i c a le x a m p l eo fg a ds e r v i c eo r i e n t e di n t e r a c t i v el e a r n i n g s o f t w a r e k e y w o r d s g r i ds e r v i c e , s o f t w a r ea r c h i t e c t u r e ,c o m m u n i c a t i o ns e q u e n c ep r o c e s s ,d y n a m i c e v o l v e m e n t , f o r m a ls e m a n t i c 面向蝌格服务的软件体系结构建棱发演化研究 第一章引言 1 1 研究背景概述 1 9 6 8 年秋,北大西洋公约组织召刀= 计算机科学会议,集中讨论当时软件数 量急剧膨胀、软件需求日益复杂的情况下,计算机软件的开发维护过程中遇到 的一系列严重问题,并提出软件工程的概念,试图解决或缓解软件危机。1 9 9 5 年c l e m e n t s 提出了基于构件的软件开发( c o m p o n e n t - b a s e ds o f t w a r e d e v e l o p m e n t , c b s d ) ,并形成了以软件复用为目的、以软件构件为手段的软件 工程方法。 。 一 软件体系结构的第一次国际会议在1 9 9 5 年召开。会议对软件体系结构的命 名和软件体系结构的般概念进行了探讨,从软件体系结构的概念模式、框架 模式、动态模式和进程模式等不同的角度,对软件体系结构的基本问题展开了 讨论。 软件体系结构作为软件开发中的设计指导思想,对软件开发的成败起着至 关重要的作用。作为软件工程中的一个新的研究课题,软件体系结构是随着描 述大型复杂系统结构的需要,以及开发人员和研究者在大型软件系统研制过程 中对软件系统理解的逐步深入而发展起来的。 软件体系结构涉及多方面的内容,包括软件的组成构件和系统构架,软件 构件的选择以及相互作用、复合以及指导构件复合过程的总体模式,有关系统 功能、性能、设计以及从多种方案中进行选择的决策。 近十年来,随着互联网环境下大规模、分布式应用的迅猛发展。在计算机 软件网络化和服务化的趋势下,面向网格服务的分布式软件系统得到了迅速的 发展。共享和协作是网格的基本理念,松散耦合的网格系统能够实现广域计算 资源、数据资源和服务资源的有效聚合和按需共享。 网格技术从2 0 世纪9 0 年代中期被提出以来,经过了从高性能计算资源共 享、数据密集型应用的分布式计算环境基础设施到以开放网格服务体系结构为 基础的受管理的各类资源共享虚拟系统的演变,并通过新的w e b 服务标准与 w e b 服务结合起来,推动着网格应用向实际应用的迅速发展。 但正如传统软件开发初期一样,在开发面向网格服务的领域应用时开发人 员也同样面临着因缺乏高抽象层指导而导致软件作为一个整体的开发、维护、 演化困难等问题。过度强调服务的松耦合和独立性,而对与应用领域相关的领 域知识、特点缺乏考察和利用,通常会导致丌发一个完整的网格应用的困难, 曲向嘲 服务的软件体系结构建模及演化研究 需要花更多的时| h j 对其不同的部分进行整合和规范。因此,尽管建立在开放网 格服务体系结构之上的网格应用具有很高的可扩展性,但对于特定领域的网格 应用,我们仍然需要从一个领域应用的整体观念出发,对要开发的面向网格服 务的特定领域的应用从软件体系结构层面进行把握,并通过这一高层次的抽象 模型,对该特定应用领域内的面向网格服务的软件丌发和维护提供指导。 1 2 本文的主要内容及其意义 为了提高开发面向网格服务的领域应用的整体抽象级别,更好的支持相关 网格应用的软件体系结构建立和演化,提高建模准确性,降低演化代价和风险, 本文着重在网格服务环境下,以网格服务应用的软件体系结构为研究对象,探 讨由一组共享商业目标和领域知识的网格服务组成的软件系统的体系结构的建 模和演化中的模型表示、服务权限、配置等关键技术,并给出在网格服务环境 下软件体系结构的动态演化模型和演化的实现方法。 本文从服务和资源的形式语义、领域知识表示元模型、服务动态演化场景 模型和实现等方面,阐述了面向网格服务的软件体系结构的建模和演化中的关 键问题和技术,对提高网格服务灵活性、降低服务变更和演化带来的风险具有 重要的理论意义和应用价值。 本文的主要研究内容和创新点有: 1 1 建立了面向网格服务应用领域的本体描述元模型g s d o m m ,使之适 于描述网格环境下软件体系结构的特点,以此元模型建立基于领域知 识、面向网格服务的软件体系结构模型,并给出了建立面向网格服务 软件体系结构的开发方法; 2 1 基于w r i g h t 体系结构描述语言和通信顺序进程,形式化描述了资源、 服务、连接件等基本的网格服务建模元素的语义,并给出了基于连接 件语义的服务组合形式化描述以及一致性检查的形式化方法; 3 1 给出了在网格服务环境下软件体系结构动态演化场景模型,并给出了 基于连接件语义的动态演化实现框架; 4 1 针对面向网格服务软件体系结构中网格服务资源的不同分类,提出了 面向网格服务软件体系结构中基于角色和基于服务权限资源权限的两 种权限管理方案。 2 面向嘲格服务的软件体系结构建模及演化研究 1 3 本文的篇章结构 本文研究网格服务环境下软件体系结构的建模和演化,共分为七章,4 大 部分: 第一部分是包括第l 、2 章,以介绍研究背景、相关领域学术界研究成果和 工业界的发展进展为主,目的是展现当前相关领域的研究现状,引出本文研究 的主要内容和意义。 第二部分包括第3 、4 章,建立涵盖应用领域知识和网格服务语义模型的元 模型和基础模型,并将建模元素进行形式化描述。本部分以体系结构研究的静 态模型为主。 第三部分包括第5 、6 章,分别讨论了面向网格服务软件体系结构动态演化 的模型和实现方案。 第四部分是第7 章,是全篇的总结和展望。 各章的主要内容细述如下: 第一章统领全文,通过介绍研究背景,阐述研究面向网格服务的软件体系 结构的必要性和重要性。 第二章是相关研究的综述,包括软件体系结构概念、动态软件体系结构的 研究方法、w e b 服务和网格服务发展及其基本架构、领域知识描述方法等内容, 从全局上展现本文涉及的一些主要研究领域。 第三章提出了一个跨应用领域的面向网格服务的领域本体元模型,建立了 基本的面向网格服务软件体系结构模型,给出了体系结构中的四种主要基础服 务以及相关的基本消息,阐述了它们在整个软件体系结构中的作用,并围绕领 域知识服务给出了一种建立面向网格服务软件体系结构的开发方法。 第四章采用形式化方法描述了网格服务应用体系结构的建模要素,并掘此 给出了服务实例化、服务组合、服务分解和一致性检查的方法。 第五章讨论了面向网格服务的体系结构演化模型,包括动态权限管理模型 和场景检测服务模型。 第六章以基于连接件语义扩展为基础,给出了基于智能连接件的体系结构 动态演化实现框架。 第七章总结全文,并展望了今后的研究方向。 面向阳格j i i 务的软件体系结构建模及演化研究 第二章相关工作 本章涉及软件体系结构及其动态演化、w e b 服务和网格服务、基于本体的 领域知识表示、知识网格等基本研究点的介绍,通过展现当前的研究进展和成 果,引出本文要解决的问题和工作重心。 2 1 软件体系结构 2 1 1 软件体系结构起源和发展 软件体系结构( s o f t w a r ea r c l u t e c t u r c ) 作为软件产品高层次抽象设计的自 然进化,作为构造规模更大、功能更复杂的软件系统的重要基础,是软件工程 研究和实践的主要领域。对软件体系结构的研究可以追溯到1 9 6 8 年d i j k s t r a 对 软件分割和结构化研究;软件的层次结构被首次提出。二十世纪七十年代d p a m a s 对模块的信息隐藏和软件结构【1 】以及b o e h r n 等对元程序设计 ( m e t a - p r o g r a m m i n g ) 的论述再次引发软件体系结构的讨论。这使得人们对复 杂软件系统结构的重要性以及正确的软件结构带来的好处有了深刻认识 2 】。 专门和广泛的软件体系结构研究发展于上世纪九十年代,就软件体系结构 定义、描述、风格、演化以及软件体系结构在软件生命周期中的作用等展开了 系统的研究。软件体系结构逐渐成为软件工程的重要研究领域,并最终成为一 门学科得到了业界的普遍认同。在基于构件和体系结构的软件开发方法下,程 序开发模式也相应地发生了根本变化。软件开发不再是“算法+ 数据结构”,而 是“构件开发+ 基于体系结构的构件组装”。软件体系结构作为开发文档和中间 产品,开始出现在软件过程中,并成为软件系统和软件密集系统质量的主要决 定因素【3 】。 2 1 2 软件体系结构的定义 众多学者和组织对软件体系结构提出了多种定义,但目前尚未形成一个统 一的、公认的定义。本文采用g a r l a n & s h a w 的定义 8 0 】。 软件体系结构被表述为有关设计和说明整个系统结构的、高于算法和数据 结构等问题的设计关注层次。其模型为:软件体系结构= 构件,连接件,约 4 面向嗍格服务的软件体系结构建模及演化研究 束l 。其中,构件可以是一组代码也可以是一个独立的程序。它们或是结构相关 或是逻辑相关。构件相对独立,仅通过接口与外部相互作用,可作为独立单元 嵌入到不同应用系统中。连接件( c o n n e c t o r ) 可以是过程调用、管道、远程过 程调用等,用于表示构件之间的相互作用。它是构件的粘合剂,把不同的构件 连接起来构成体系结构的一部分。约束一般为构件连接时的规则,或指明构件 连接的势态和条件。 下面列举其他一些具有代表性的定义【4 】: 1 ) b a s s 定义:软件体系结构是系统的一个或多个结构,包括软件构件、 构件的外部可见属性和构件之间的关系 5 】。这个定义有以下含义:首 先体系结构定义了构件,体系结构是描述构件间如何相互交互,而略去 构件自身的描述信息。其次明确指出系统可以包含多个结构,但其中没 有任何一个是可以被单独称为体系结构的。最后指出了每一个软件系统 都有一个体系结构,因为每个软件系统都是由若干构件及其之间的关系 构成的。 2 ) b o o c h r u m b a u g h j a e o b s o n 定义:软件体系结构= 组织,元素, 子系统,风格 。体系结构是一系列重要决策的集合,这些决策与以下 内容相关:软件的组织:由元素和子系统组成;元素:包括构成系统的 结构元素和结构元素间相互协作中表现出来的行为元素;子系统:由结 构元素和行为元素进一步组合构成;体系结构风格:引导这一软件组织 方法。 3 ) p e r r y w o l f 定义:软件体系结构= 元素,形式,准则) 。软件体系 结构是一组具有特定形式的体系结构元素( e l e m e n t s ) 。这组元素分为三 类:处理元素( p r o c e s s i n ge l e m e n t s ) 负责完成数据加工;数据元素( d a t a e l e m e n t s ) 作为被加工的信息;连接元素( c o n n e c t i n ge l e m e n t s ) 用于把 体系结构的不同部分组合连接到一起。软件体系结构形式( f o r m ) 由专 有特性( p r o p e r t i e s ) 和关系( r e l a t i o n s h i p ) 组成,专有特性用于限制体 系结构元素的选择,关系用于限制体系结构元素组合的拓扑结构。而多 个体系结构方案中选择合适的体系结构方案往往基于一组准则 ( r a t i o n a l e ) 。 4 ) s o n i & n o r d & h o f m e i s t e r 定义:软件体系结构至少有四个不同的具体 形态,每一个形态都从不同的角度来描述系统。概念体系结构 ( c o n c e p t u a la r c h i t e c t u r e ) 用主要设计元素和他们的相互关系来描述系 统。模块互连体系结构( m o d u l ei n t e r e o n n e c t i o na r c h i t e c t u r e ) 包含两个 j 下交的结构:功能分解和分层。执行体系结构( e x e c u t i o na r c h i t e c t u r e ) 面向喇 服务的软件体系结构建模及演化研究 描述了系统的动态结构。代码体系结构( c o d ea r c h i t e c t u r e ) 描述了丌发 环境中的源程序、二进制代码和函数库等是怎样被组织的。 5 ) b o e h m 定义:软件体系结构= 构件,连接件,约束,不同人员的需 求,准则 。其中准则能够说明由构件、连接件和约束所定义的系统在 实现时是如何满足系统不同人员需求的。 6 ) i e e e6 1 0 1 2 1 9 9 0 软件工程标准词汇中的定义:软件体系结构= f 构 件,连接件,环境,原理 。体系结构是以构件、构件之间的关系、构 件与环境之间的关系为内容的某一系统的基本组织结构以及指导上述 内容设计与演化的原理( p r i n c i p l e ) 。 2 1 3 软件体系结构的意义 软件体系结构是软件系统的高级抽象,往往体现了系统开发中最早做出的 决策,是决定系统能否顺利实现的关键因素之一,具有重要的意义。这主要体 现在阻下方面【4 】: 1 ) 对于系统分析的意义:在系统分析阶段,软件体系结构发挥着巨大的作 用,一方面借助软件体系结构描述,可以使问题得以进一步抽象,使整 个系统更易于被系统分析设计人员把握,更清晰地认识系统,完善对系 统的理解。另一方面它能够帮助软件系统的各有关权益方( 用户、项目 管理人、设计开发和测试人员等) 形成统一认识,互相交流。 对软件开发的意义:软件体系结构代表了系统早期的设计决策,与开发、 设计、编码和运行维护相比,处理难度最大,对系统生命期的影响也最 大。软件体系结构是系统实现的基本约束,决定了整个软件开发过程中 的基本框架。软件体系结构对软件质量控制也有重要作用,使用软件体 系结构的一些评估技术( 如s a a m ) ,对软件体系结构加以分析,能够 对软件的某些质量特性加以预测。 3 ) 对软件复用的意义:复用是提高软件开发效率、保证软件质量的重要手 段。软件体系结构级的复用意味着体系结构的决策能在具有相似需求的 多个系统中发生影响,这比代码级的复用要有更大的好处。通过对体系 结构的抽象可以使设计者能够对一些实践证明有效的体系结构进行复 用,从而提高设计效率和可靠性。同时软件体系结构复用有利于形成完 整的软件生产线。 4 ) 对系统演化的意义:在软件系统的演化过程中,维护人员需要不断进行 调整、修改、增加新的功能或构件等工作,软件体系结构决定着系统构 6 面向时格服务的软件体系结构建摸发演化研究 件的划分和交互方式。一方面,在设计系统的体系结构之初,就应当充 分考虑到将来可能的系统演化:另一方面,在进行系统演化阶段的开发 时,由于体系结构充分地刻画了当前系统,清晰地描述了构件及其相互 关系和整个系统的框架,所以应当充分利用。软件体系结构承担了“保 证最经常发生的变动是最容易进行的”这一重担。 2 1 4 软件体系结构的形式化表示 软件系统规模和复杂性的不断增大,使得软件设计的核心已经从传统的“算 法+ 数据结构”的计算模式转向系统的总体结构。软件体系结构的提出,使得开 发人员有可能着眼于软件系统的全局组织形式,在更高的层次上把握系统各部 分之间的内在联系,以全局的、整体的角度去理解和分析整个系统的行为和特 性。 但是,要澄清关于软件体系结构的基本认识,严格和准确地描述不同组成 成分的划分、构成、特性和约束等一系列理论和设计问题,除了依靠单纯的实 践和经验这样的“创造性”思维以外,要真正的突破就必须将软件体系结构的 描述建立在精确的数学理论基础上,需要采用形式化理论的成果和应用。 形式化方法可以为软件体系结构设计给出准确的描述,可以用来描述体系 结构的构成、分解、交互以及约束特性。它提供了对体系结构元素进行比较和 使用的基础,提供对系统中时间、空间、安全性、可靠性等性能分析的方法和 标准。 目前,对于软件体系结构的形式化描述有两大类,一是将现有的形式化方 法应用到软件体系结构设计上,如z 语言,类属理论等。另一类是开发专门用 于描述软件体系结构的语言,如a c m e ,m e t a h 、r a p i d 、s a d l 、w r i g h t 等。体系 结构描述语言( a d l ) 为开发人员分析、设计软件体系结构提供了具体的语法和 概念体系结构,其中概念体系结构反映了特定领域软件体系结构的特征和方法。 下面就几种主要的软件体系结构描述语言作一比较分析。 1 ) z 语言【6 】是描述软件系统设计规约的经典语言。它主要采用形式化的 方法对软件系统的结构、功能进行规约,并通过形式化的分析与推导技 术,确保软件系统规约的正确性与完整性。运用z 语言的典型研究工作 包括信号处理系统 7 】、事件系统【8 】、管道过滤器风格【9 】、对象组装标 准【l o 】等的形式规约。然而,上述研究工作彼此独立,相互隔离,没有 基于一个通用的构件结构模型和构件模型描述的完整框架。 2 ) c h a m 化学抽象机模型【l l 】是把软件系统比喻为相互反应的化学物质, 7 面向嘲格i 】技务的软件体系结构建模及演化研究 并使用c h a m 模型来描述了软件的体系结构【1 2 】,并举例描述了编译 器的体系结构,包括顺序多阶段编译器和并行、共享存贮库的多阶段编 译器。将c h a m 的体系结构描述思想应用到构件的结构描述中,运用 重写技术和结构归纳证明方法,能够对构件的部分行为属性进行形式化 或半形式化的证明。但是c h a m 没有提供描述体系结构或软件系统的 通用方法,丌发难度很大,不能描述体系结构风格,没有提供系统配置 一致性和完整性的分析和检测机n 1 3 1 。 3 ) a c m e 1 4 :是一个通用的体系结构和体系结构族的体系结构描述语言, 它把系统描述成通过连接件实现交互关系的部件图,并把部件和连接件 分解表示成子系统。 4 ) m e t a h 1 5 :是一种特定领域的软件体系结构描述语言,主要应用在描 述导航和控制领域的软件体系结构,给出了该领域内软件体系结构的要 素范本。 5 ) a e s o p 1 6 :通过提供设计元素词汇集、配置规则集、良定义( w e l l - d e f i n e d ) 语义集等机制提供了对体系结构风格的支持和描述,主要用于快速构建 领域特定的体系结构风格,为进一步的软件复用提供了相应支持。 6 ) d a r w i n 1 7 1 8 1 :提出将构件作为构件类型的一种实例,采用演算来 规格化构件语义,以严格的形式化方法设定系统动态机制来描述高度分 布的系统结构。d a r w i n 提供延迟实例化( l a z yi n s t a n t i a t i o n ) 和直接动态实 例化( d i r e c td y n a m i ci n s t a m i a t i o n ) 两种技术支持动态演化,但存在一定的 局限性【1 9 】。d a r w i n 并未提供显式的连接件概念。它的提供 青求连接 模型仅仅支持非对称的交互模式( a s y m m e t r i c a lm o d e lo f i n t e r a c t i o n ) 。 7 ) r a p i d e 1 4 1 :是基于事件、事件偏序集( p o s e t s ) 、可执行的体系结构描 述语言,允许仿真体系结构设计,并且提供仿真工具来检查基于事件的 组件行为间交互。 8 ) u n i c o n 2 0 :u n i c o n 支持单独存在的、对称和非对称的连接件,用来规 定构件之间的交互机制。连接件运用系列角色( r o l e ) 定义交互的参与者, 而构件接口是系列扮演者( p l a y e r ) 。角色、扮演者具有类型和属性,用 来表明构件希望参与交互的性质和相关的交互细节。系统配置的时候, 构件的扮演者与连接件的角色相互关联。运用u n i c o n 提供的c o n n e c t i o n e x p e r t 和配置工具能够构造运行的软件系统。然而,u n i c o n 仅仅支持固 定的交互类型和连接件,新型交互类型必须通过编程提供新的 c o n n e c t i o ne x p e r t 才能实现。u n i c o n 没有提供描述一类系统的机制和方 法,提供的分析方法依赖于与连接件密切相关的分析工具并且同实现相 由向l 叫格服务的软件仆系结构矬模度演化研究 关。 9 1 w r i g h t 2 1 :注重于对构件问的交互行为进行建模分析,对构件与连接 件抽象行为进行形式化的描述,将显式的、独立于实现的连接件类型用 作交互模式,对并发系统的动态行为进行建模和分析。 通常,前述两类研究方法也不是独立的。在体系结构描述语言中,通常也 采用已有的形式化方法完善对体系结构要素的描述。 2 2 软件体系结构的动态演化 2 2 1 动态软件体系结构 软件体系结构是整个应用程序的基础,虽然是在应用早期设计的,但是在 应用的各个阶段都会随着需求的变化而变化,甚至可能发生在应用的运行阶段。 根据上面对体系结构的定义研究学者又引入了动态软件体系结构,动态软件体 系结构( d y n a m i c a ls o f t w a r e a r c h i t e c t u r e ) 是指可以在运行时改变结构或者行为 的软件体系结构,而这种特性通常又被称为动态演化( r u n - t i m ee v o l u t i o n ) 。基 本的动态演化有构件和连接件的增加、删除、替换和重连接等【2 2 】。 动态软件体系结构的优势,一是降低成本和风险,在一些以任务和安全为 主要因素的系统,如公共信息系统,使用动态软件体系结构,在运行时改变结 构可以减少由于改变带来的成本,同时也因为不需要离线而降低了风险;二是 增加定制来扩展体系结构的能力,很多使用了动态演化的系统都能够提供给用 户即时改变系统与用户之间交互功能的能力 2 2 】。 2 2 2 典型的动态演化技术 正因为动态体系结构的优势,因此如何使体系结构具有动态演化能力成为 研究热点,选取何种动态演化技术成为关键,以下列举了几类典型的动态演化 技术 2 3 】: 1 1 基于硬件的技术:主要应用于软件动态升级服务,使用多个冗余硬件设 备,当主设备上的软件需要升级,则启动从设备代替主设备运行,主设 备停止运行,升级后恢复。 基于过程的技术:通过形式化的描述应用系统在整个运行过程中的状 态,建立系统的状态机模型,系统每一次的演化都可以对应于状态机模 型的一次状态迁移。它的优势是可以形式化的描述动态演化的过程,是 9 面向嗍格服务的软件体系结构建模及演化研究 一种适用于程序语言级别的方法。 3 ) 基于构件的技术:这种方法首先假设系统是由构件组成的,构件与构件 之间通过连接件相互通信。在这样的系统中通过使构件自身具有动态演 化能力,即构件不仅提供服务而且提供动态演化的方法或者接口。这种 技术的优势在于在具有动态能力的构件支持下,无需增加其他工作。 4 ) 基于体系结构描述语言的技术:体系结构描述语言是对构件组成系统的 拓扑结构进行描述,它不牵涉到任何构件自身信息。这种技术是通过对 体系结构描述语言增加动态描述部分,通过语言来定义构件和构件之间 是如何互操作,构件是如何被替换的等等,用这样的手段来达到动态演 化。典型的体系结构描述语言有d y n a m i cw r i g h t ,d x a d l ,r 印i d e , u n i c o n 等。 5 ) 基于模型的技术:这类方法是通过建立一个体系结构模型,并使用这个 模型来控制构件行为,控制体系结构的结构改变和行为演化。一般这类 方法总是会选择一个领域与领域建模方法结合来建立体系结构模型,典 型的模型有c h e m 、k - c o m p o n e n t s 等。 我们将着重于基于体系结构描述语言、采用形式化方法,对面向网格服务 的软件体系结构的演化进行探讨。一些典型的动态体系结构描述语言有: c 2 s a d e l 2 4 ,描述了被连接件连接的并发构件的层次网络结构。所有构件之 间的通信必须通过连接件进行异步消息交换,是一种基于消息的层次构架描述; d y n a m i cw r i g h t 2 5 ,在w r i t 语言的基础上增加了一个对配置器( c o n f i g u r a t o r ) 的描述,通过配置器中描述的动态演化的代码控制整个构架的动态演化: d x a d l 2 6 采用x m l 语法与s c h e m a ,通过层次化模型来描述构架,分离了动 态构架和静态构架部分,提高了构架描述的可扩展能力,解决了领域局限性问 题。同时,也降低了构架描述语言的开发与应用成本。 上述描述语言和模型对面向网格服务应用领域的软件体系结构没有特别的 支持。这些a d l 都仅仅从结构的变化这一个方面来描述了体系结构的动态演 化,即动态配置( d y n a m i cr e c o n f i g u r a t i o n ) ,对体系结构动态行为的演化以及 相应的演化场景没有统一的方法支持。另外,在对体系结构动态演化中所产生 的安全性、一致性问题没有提供特别的支持,需要额外检查。最后,对分布式 环境的应用和动态演化策略的支持还不够。 0 面向例格服务的软件体系结构矬模及演化研究 2 3 领域和领域知识描述 2 3 1 领域和领域工程 目i i ,学术界和工业界对“领域”这一概念还没有精确的统一定义。一般 的,从不同的角度对领域有着不同的论述。从人工智能研究来看,领域是现实 世界中适合应用某种知识系统的人类专业活动空f f i j 2 7 ;从软件复用的的初始 研究角度来看,领域共享一组已有的或者有待开发的通用应用功能和数据i 2 8 1 , 同时具有现实世界和系统世界的属性。 通常,领域可看作是知识或活动的一个区域,表现为一组相关的系统。在 这个特定的知识区域中实践者所理解的一组概念和术语刻画了所描述的领域。 5 1 1 2 9 s e i 通过其范围、信息( 对象) 、特征和用处、及其行为或操作特性来刻画 领域f 3 0 1 。 m i l i 等则将用共同的专门技术、共同的设计或共同的市场中的一个来刻画 一个领域。如果一个领域同时满足这三个方面,那么这将是一个理想的领域。 在这个领域内解决方案的共同点被最大化,并且领域专家有充分的知识和经验 构建共同的解决方案。 2 9 1 领域工程关注如何建立一组能被软件工程师复用的软件物件( a r t i f a c t s ) 【3 1 】,其目标是对一组能被用于某一应用领域、现有和将来的软件的软件物件 进行识别、建模、构造、分类以及分发。【3 2 1 领域工程是为一组相似或相近系 统的应用工程建立基本能力和必备基础的过程,它覆盖了建立可复用软件构件 的所有活动【3 3 】。领域工程包括三个主要的阶段: 1 ) 领域分析:这个阶段的主要目标是获得领域模型( d o m a i nm o d e l ) 。领域 模型描述领域中系统之间的共同的需求 3 4 1 。这个阶段的主要活动包括确定领 域边界,识别信息源,分析领域中系统的需求,确定哪些需求是被领域中的系 统广泛共享的,哪些是可变的,从而建立领域模型。 2 ) 领域设计:这个阶段的目标是获得领域构架( d o m a i n s p e c i f i cs o f t w a r e a r c h i t e c t u r e ,缩写为d s s a ) 。d s s a 描述在领域模型中表示的需求的解决方案, 它不是单个系统的表示,而是能够适应领域中多个系统的需求的一个高层次的 设计 3 4 】。建立了领域模型之后,就可以派生出满足这些被建模的领域需求的 d s s a 。由于领域模型中的领域需求具有一定的变化性,d s s a 也要相应地具有 变化性。 3 1 领域实现;这个阶段的主要行为是定义将需求翻译到由可复用构件创建 面向刚格服务的软件体系结构矬模及演化研究 的系统的机制。根据所采用的复用策略和领域的成熟和稳定程度,这种机制可 能是一组与领域模型和d s s a 相联系的可复用构件,也可能是应用系统的生成 器。 这些阶段生成的可复用软件产品( 不同粒度和抽象层次的软件构件) 包括领 域模型、领域构架、领域特定的语言、代码生成器和代码构件等。 一般来说,领域分析方法可以通过过程( 进行分析的步骤) 、产品( 不同粒 度的构件,特别是领域模型) 和支持工具来刻画。常用的领域工程构建良好的 方法有f o d a ( f e a t u r e o r i e n t e dd o m a i n a n a l y s i s ) 方法、j o d a 联合面向对象领域 分析方法 3 5 1 、d s s a 方法 3 6 1 、o d m ( o r g a n i z a t i o nd o m a i n m o d e l i n g ) 3 7 3 8 、 s y n t h e s i s 领域分析方法【3 9 】、s t a r s 计划的r l p m ( r e u s el i b r a r yp r o c e s s m o d e l ) 【4 0 1 。不同的方法之间在所采用领域定义的基本原理、定义过程、体系 结构方针、可交互产品和可复用资产等多方面都有着各自的特色 2 9 】。 2 3 2 领域本体 领域本体是软件开发过程中所有参与者的知识基础。通常,领域本体被视 为对一般本体概念的在特定领域上的一种扩展。一般的,领域本体包含了所描 述领域内的概念以及概念间的关系。有时我们将领域本体中的概念分层次,并 引入本体公理作为语义推导的基础【4 1 】。和现实生产对应起来,通常采用领域、 关系、属性和取值四个层次即可表示领域知识的结构 4 2 】。更一般的,由于领 域划分的层次性,领域内部可以更细致的划分为子领域【4 3 】,从而形成领域本 体嵌套的结构。在跨领域,或者进行领域本体的复用时,往往会利用到领域嵌 套的特性 4 4 】,用于提高建模效率并描述更丰富的层次结构。 领域本体作为领域知识的表现形式,反映出人们认识的客观世界的规律, 包含了基本的概念、公理和推理规则。但从认识论的角度来看,尽管本体是客 观存在,但人们要能将它严格的表示出来仍然是一个创造性的过程。如图2 1 所示。 靖i参h,strl。1 = 白 三 图2 1 客观世界莆l 本体的关系 2 面向州格服务的软件体系结构建模及演化研究 2 4 网格服务和知识网格 2 4 1 从w e b 服务到网格服务 w e b 服务是自包含、自描述的模块化应用,它提供了从简单请求到复杂商 务处理的功能。一旦w e b 服务被部署,其他的应用( 包括w e b 服务) 就能够发 现并调用所部署的服务。从技术角度来看,w e b 服务描述了一系列操作的接口, 它使用标准的描述语言( x m l ) 消息传递技术封装信息,并通过网络访问这些 接口和操作,完成特定的任务。服务实现和服务接口的分离,促使基于w e b 服 务的应用成为松耦合、面向构件、跨技术的实现。w e b 服务实现了w e b 应用从 单纯的信息交互领域到服务交互领域的扩展。 网格服务进一步扩展了w e b 服务,不仅将通过统一的语言描述信息,还将 所有的计算能力,包括计算机、程序、数据、移动设备等,都抽象为服务进行 描述,以虚拟组织为单位共享计算资源。 在过去的十年中,网格相关研究和实践有着迅速的发展。作为新一代的分 布式技术,其目标是将世界上的计算能力、存储能力和其他计算机资源通过互 联网集合起来形成一台巨型的、具有强大计算和存储能力的、能够自管理的虚 拟计算机。f 4 5 全球网格论坛g g f 于2 0 0 2 年给出了以w e b 服务为基础的开发网格服务体 系结构o g s a ,把网格作为w e b 服务承载者和提供者,把分布在异构和动态环 境下的服务和资源整合在一起,试图实现网格体系结构的标准化。 随后,g g f 又给出了o g s i 作为o g s a 的实施规范。但o g s i 过分强调网 格服务和w e b 服务的差别,将资源状态封装在服务中,导致了网格服务不能与 现有的大量w e b 服务很好地融合在一起,以及其他一些兼容性问题。为了解决 o g s i 和w e b 服务的矛盾,g l o b u s 联盟和i b m 在w s - a d d r e s s i n g 协议的基础上 提出w e b 服务资源框架( w s r f ) 。w s r f 作为o g s a 的另一种实施规范,采 用“有状态资源,无状态服务”的定义,将网格服务演变成了w e b 服务和资源 文档两部分,与此同时还使用w s d l i 1 定义了o g s i 中的各项能力,对现有的 w e b 服务和x m l 工具有良好的兼容性。w s r f 的出现标志着侧重科学活动的 网格计算开始转向面向服务的信息网格。 o g s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 抚州市中石化2025秋招面试半结构化模拟题及答案油田工程技术岗
- 国家能源济源市2025秋招半结构化面试模拟30问及答案
- 中国广电漯河市2025秋招行业常识50题速记
- 中国联通贵港市2025秋招综合管理类专业追问清单及参考回答
- 中国联通山东地区2025秋招面试无领导高频议题20例
- 2025年职高冲刺考试题及答案
- 七台河市中石化2025秋招笔试行测50题速记
- 四平市中石化2025秋招笔试模拟题含答案新材料与新能源岗
- 信阳市中石油2025秋招面试半结构化模拟题及答案新材料与新能源岗
- 中国移动白银市2025秋招面试无领导高频议题20例
- 2025年老年病学住院医师规培出科考试理论笔试答案及解析
- 激光武器物理课件
- 气瓶泄漏应急演练范文大全
- 2025年REACH 250项高度关注物质SVHC清单第34批
- 2025年软件架构师专业技术考核试题及答案解析
- 八上语文第9课《天上有颗南仁东星》课件
- 2025-2026学年苏教版(2024)小学科学三年级上册(全册)课时练习及答案(附目录P102)
- DBJT15-110-2015 广东省建筑防火及消防设施检测技术规程
- 2024年BRCGS包装材料全球标准第7版全套管理手册及程序文件(可编辑)
- 公考公共基础知识培训课件
- 2025年人保非车险考试题及答案
评论
0/150
提交评论