(计算机软件与理论专业论文)基于构件的分布式软件体系结构及其开发工具的研究与实现.pdf_第1页
(计算机软件与理论专业论文)基于构件的分布式软件体系结构及其开发工具的研究与实现.pdf_第2页
(计算机软件与理论专业论文)基于构件的分布式软件体系结构及其开发工具的研究与实现.pdf_第3页
(计算机软件与理论专业论文)基于构件的分布式软件体系结构及其开发工具的研究与实现.pdf_第4页
(计算机软件与理论专业论文)基于构件的分布式软件体系结构及其开发工具的研究与实现.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

(计算机软件与理论专业论文)基于构件的分布式软件体系结构及其开发工具的研究与实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 , f 网络环境下的分布式系统是目前计算机软件研究和开发的热点和主流。但由 于萁周有的分布性、异构性和自治性,使得分布式系统的开发十分困难。实践表 明,通过集成( 组装) 已有软件构件得到新系统,是构造大型分布式系统的有效 途径。在这种基于构件的分布式系统开发方式中,软件体系结构是指导构件组装 的蓝图,其正确、合理与否,不仅关系到系统开发的成败和开发的效率,而且影 响到系统的维护和演化,因此软件体系结构是分布式系统设计中一个非常关键、 必须深入研究和解决的问题。 在分析当前基于构件的分布式系统开发技术的不足和问题的基础上,本文提 出了一个在软件体系结构指导下的基于构件的分布式系统构造方法 ( a r c h i t e c t u r e - b a s e dd i s t r i b u t e ds y s t e mc o n s t r u c t i o nw i t hc o m p o n e n t ,a d i s c ) ,重 点研究和讨论了将软件体系结构和基于构件的软件开发方法相结合、支持大型分 布式系统构造的原理、要求和实现途径,设计并初步实现了一个分布式系统构造 环境,并通过一个媒体流应用的例子验证了系统设计的可行性和有效性。、暑 论文所包含的研究、设计和实现工作主要有以下四个方面: ( 1 ) 设计了一个基于构件的分布式软件体系结构形式化描述语言a d e a g ,并 实现了其编译器。a d e a g 通过构件实例、连接器和构件间通过连接器建 立的绑定关系定义一个系统的体系结构。a d e a g 既支持系统结构的文本 形式定义又支持图形方式的定义。文本方式便于定义复杂的系统结构,而 图形方式直观、清晰、便于理解。 ( 2 ) 设计并实现了一个以a d e a g 为基础的分布式系统可视化工具c d i s t o o l 。 c d i s t o o l 允许用户以图形的方式对分布式系统体系结构进行构件化的分 析、设计;通过c d i s t o o l 可以将体系结构的图形表示转化为a d e a g 文 本表示,支持系统性质的分析和验证。同时,可以进一步从系统的体系结 构描述导出构件接口的d l 描述,并生成相应编程语言的框架。 ( 3 ) 对媒体流这个特定的分布式应用领域进行了领域分析、抽象,提取了面向 领域的风格模板,并扩充到c d i s t o o l 中,从而使c d i s t o o l 在特定领域的 应用更加有效。 ( 4 ) 应用c d i s t o o l 对一个媒体流领域的特定应用( 视频点播组播) 进行了分 析和设计,抽象出系统体系结构和可复用构件,生成中间件接口和底层模 板,并进行实现。通过实例表明了所完成的研究、开发和实现工作的可行 性、正确性和有效性。 关键词:构件软件体系结构分布式系统建模工具媒体流 r e s e a r c ho nd i s t r i b u t e ds o f t w a r e a r c h i t e c t u r ea n d i m p l e m e n t a t i o n o fi t sd e v e l o p m e n tt o o l a b s t r a c t n e t w o r kb a s e dd i s t r i b u t e ds y s t e m ( d s ) i so n eo fh o t s p o t s i nt h ef i e l do f c o m p u t e rs o f t w a r er e s e a r c ha n dd e v e l o p m e n t i ti sq u i t e d i f f i c u l tt od e v e l o pad s b e c a u s eo fi t sh e t e m o p h o r i s ma n da u t o n o m i s m e x p e r i e n c ei ns o f t w a r er e s e a r c ha n d d e v e l o p m e n t h a ss h o w e dt h a ta ne f f i c i e n tw a yt ob u i l dal a r g ed si st or e u s ee x i s t e d c o m p o n e n t s ,t h a ti s u s i n gc 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 ) m e t h o d i nc b s d ,s o f t w a r ea r c h i t e c t u r e ( s a ) p l a y sar o l eo fb l u e p r i n tt og u i d et h es y s t e m c o m p o s i t i o na n di n t e g r a t i o nw i t hc o m p o n e n t s s a sv a l i d i t ya n da v a i l a b i l i t yn o to n l y a f f e c t t h e s y s t e md e v e l o p m e n te f f i c i e n c y , b u t a l s od e t e r m i n et h e s y s t e m s m a i n t e n a n c ea n de v o l u t i o nc o s t s a f t e ri n v e s t i g a t i n ga n da n a l y z i n gc u r r e n tt e c h n o l o g i e so nc b s da n ds aa n d t h e i r p r o b l e m s ,i n t h e t h e s i s ,a m e t h o do fa r c h i t e c t u r e - b a s e dd i s t r i b u t e ds o f t w ”e c o n s t r u c t i o nw i t hc o m p o n e n t ,c a l l e da d i s c ,i sp r o p o s e d ad i s t r i b u t e ds a d e s c r i p t i o n l a n g u a g en a m e da d e a g a n dac o m p o n e n tb a s e dd i s t r i b u t e ds o f t w a r ed e s i g nc a s e t o o ln a m e dc d i s t o o la r ep r e s e n t e da n dd i s c u s s e d m a i nc o n t r i b u t i o n si nt h et h e s i sa r e 1 d e s i g na n di m p l e m e n t a t i o no fad i s t r i b u t e ds o f t w a r ea r c h i t e c t u r e d e s c r i p t i o n l a n g u a g ea d e a g ; 2 d e s i g na n di m p l e m e n t a t i o no fac o m p o n e n tb a s e dd i s t r i b u t e ds o f t w a r ed e s i g n t o o l k i tc d i s t 0 0 1 w i t h c d i s t o o l ,s y s t e md e s i g n e r c a nd e s c r i b et h e s y s t e m a r e h i t e c t u r ei nav i s u a l i z e dw a yw i t ht h eg u ia n dt h e g r a p h i c a ld e s c r i p t i o nc a nb e t r a n s l a t e di n t oa d e a gt e x tc o n t e x t ,b a s e do nw h i c ht h es y s t e ma n a l y s i sa n d v e f i f i c a t i o nc a l lb er e a l i z e d a n dt h ec o r b ai d ld e c l a r a t i o na n dt h e c o r r e s p o n d i n gp r o g r a m m i n gl a n g u a g em a p p i n g s c a nb e p r o d u c e d 3 e x t a n s i o nt oas p e c i f i cd o m a i n - w ec h o s em e d i as t r e a ma st h e a p p l i c a t i o n d o m a i n ,g e n e r a l i z et h es p e c i f i cd o m a i ns t y l et e m p l a t e s ,a n de x t a n dt h e mi n t o c d i s t b 0 1 4 ar e a lc a s es t u d y ( e c i n a m a ) o nv o i c eo n d e m a n d ( v o d ) k e y w o r d s :c o m p o n e n t ;s o f t w a r ea r c h i t e c t u r e ;m o d e l i n gt o o l ;m e d i as t r e a m i i y 2 9 7 g $ 独创性声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及 取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得 西北大学或其他教育机构的学位证书而使用过的材料。与我一同工作 的同志对本研究所作的贡献已经在论文中做了说明并表示了谢意。 签名: n 蕊:0 2 0 0 2 年5 月3 0 日 兰二兰! ! 坠一 第一章引论 1 1 论文研究的背景和意义 网络环境下的分布式系统是目前计算机应用系统的主流。但由于其固有的 分布性、异构性和自治性,使得分布式系统的开发十分困难。实践表明,通过 集成( 组装) 已有软件构件得到新系统,是构造大型分布式系统的现实的、有 效的途径 张世琨2 0 0 0 。在这种基于构件的分布式系统开发方式中,软件体系 结构( s o f t w a r ea r c h i t e c t u r e - s a ) 是指导构件组装的蓝图,其正确、合理与 否,不仅直接影响到系统开发的成败和开发的效率,而且影响到系统的维护和 演化,因此软件体系结构是分布式系统设计中一个非常关键、必须深入研究和 解决的问题。构件组装技术和软件体系结构的研究可追溯到7 0 年代以结构程序 设计为基础的模块互联语言( k i l l ) 、8 0 年代以面向对象技术为基础的构件描述语 言( c d l ) ,而9 0 年代的体系结构描述语言( a d l ) 则是解决构件组装问题的主要 努力,如美国犹他大学、卡内基梅隆大学m s h a w 和d g a r l a n 教授、英国伦敦 大学j k r a m e r 教授以及北京大学杨芙清教授等所主持的研究工作。 在基于构件的分布式系统开发方法中,软件体系结构是系统的高层结构描 述,它刻画了组成系统的构件和构件之间的关系。本质上,软件体系结构提供了 一种自顶向下实现基于构件的软件开发的途径。在实际应用中我们知道,软件 开发的最终目的是获得高效的可执行系统,所以,软件体系结构描述语言及其 工具环境不仅要具有体系结构的建模、描述和一些系统高层性质的验证能力, 而且应该更多地提供体系结构求精和实现功能,支持转换或组装自动化。然而, 当前的研究对后者的支持能力明显不足。因此,需要研究和开发有效的提取和 描述应用系统构件、支持体系结构求精与实现的方法和机制。 另一方面,目前的分布对象计算技术提供了一种利用现存的中间件基础设 施自底向上地实现基于构件的分布式系统开发的途径,强调使用已经开发好的 构件来构造系统。但是,当前讨论的重点局限于c o m 、c o r b a 、e j b 等二进制 构件。这些中间件技术仅仅提供了在实现层次上支持构件交互的基础机制,而 缺少指导基于构件的分布式系统开发过程的系统化的方法,特别是缺乏对高抽 象层次的构件组装的支持。 一种自然的解决方案是将软件体系结构和分布对象中间件这两种技术组合 西北大学计算机科学系硕士研究生学位论文 第一章日l 论 一一。 起来实现基于构件的分布式系统开发,因此我们提出了以软件体系结构为基础 利用构件构造分布式系统的方法( a r c h i t e c t u r e - b a s e d d i s t r i b u t e d s y s t e m c o n s t r u c t i o nw i t hc o m p o n e n t ,a d i s c ) ,其核心是一个支持分布式软件体系结构 的提取和建模的软件体系结构描述语言即a d e a g 房鼎益2 0 0 1 和一个以 a d e a g 为基础的可视化的分布式软件体系结构建模和分布式系统设计环境 c d i s t o o l ( c o m p o n e n t b a s e dd i s t r i b u t e ds o f t w a r ea r c h i t e c t u r e d e v e l o p m e n t 乃d ,) 。a d e a g 吸收了有穷状态进程( f i n i t es t a t ep r o c e s s f s p ) 语义精确 和分布对象接口描述语言( i d l ) 语法简洁的共同优点,为分布式系统设计者方 便地定义系统的体系结构,即组成系统的构件、构件接口、构件之间的交互关 系和构件的配置等提供了有效的支持。 本文的研究工作受陕西省教育厅科技攻关项目的支持( 编号0 1 z c 2 6 ) 。 1 2 研究目的与内容 本文旨在针对当前基于构件的分布式系统开发技术的不足和问题,探索将软 件体系结构和基于构件的软件开发方法相结合、支持大型分布式系统构造的可行 性和有效性,设计并实现一个高效、实用的、以软体系结构为指导的基于构件的 分布式系统设计环境。 具体研究内容主要包括如下四个方面: ( 1 ) 设计了一个基于构件的分布式软件体系结构形式化描述语言a d e a g ,并 实现了其编译器。a d e a g 将分布式系统的结构属性与其功能及通信属性 严格分离开来。通过严格的接口分离,a d e a g 实现了对系统级构件重用 的支持。a d e a g 通过构件实例、连接器和构件问通过连接器建立的绑定 关系定义一个系统的体系结构。 a d e a g 既支持系统结构的文本形式定义又支持图形方式的定义。文本方式 便于定义复杂的系统结构,而图形方式直观、清晰、便于理解。 ( 2 ) 设计并实现了一个以a d e a g 为基础的分布式系统可视化工具c d i s t o o l 。 c d i s t o o l 允许用户以图形的方式对分布式系统体系结构进行构件化的分 析、设计;通过c d i s t o o l 可以将体系结构的图形表示转化为a d e a g 文 本表示,支持系统性质的分析和验证。同时,可以进步从系统的体系结 构描述导出构件接口的i d l 描述,并生成相应编程语言的框架。 应用c d i s t o o l 可视化建模工具,大大减轻了分布式系统设计人员的认知 2 西北大学计算机科学系硕士研究生学位论文 难度,帮助设计人员发现系统中可能出现的死锁,提供对系统构件重用的支持。 生成的系统配置描述、结构视图和接口模板代码,使得系统设计人员对应用系统 的体系结构有直观、清晰的认识,极大地提高了系统的设计效率。 ( 3 ) 对媒体流这个特定的分布式应用领域进行了领域分析、抽象,提取了面向 领域的风格模板,并扩充到c d i s t o o l 中,从而使c d i s t o o l 在特定领域的 应用更加有效。 ( 4 ) 应用c d i s t o o l 对一个媒体流领域的特定应用( 视频点播,组播) 进行了分 析和设计,抽象出系统体系结构和可复用构件,生成中间件接口和底层模 板,并进行实现。通过实例表明,所完成的研究、开发和实现工作的可行 性、正确性和有效性。 1 3 论文的结构 本文第二章分析、综述了构件技术和分布式体系结构相关工作和问题,包 括构件技术、中间件平台、软件体系结构描述语言( a d l ) 等,重点评述了现有研 究成果和方法的优缺点。在第三章,研究了a d e a g 设计问题,讨论了a d e a g 的设计目标、语法和语义定义及其类型匹配等问题。第四章从系统结构、功能、 图形界面、代码生成和系统验证等方面讨论了基于a d e a g 的分布式应用系统体 系结构定义辅助工具c d i s t o o l 的设计和实现。第五章对媒体流领域进行了领域 分析,构造了媒体流领域的风格模板,并以一个实际应用为例,进行了详细的分 析、设计。通过该实例说明了a d e a g 和c d i s t o o l 设计的正确性以及如何使用 由c d i s t o o l 来设计和构造分布式媒体点播组播类应用系统的方法、过程和需要 注意的问题。第六章对所做的工作进行了总结并探讨了进一步应开展的工作。 西北大学计算机科学系硕士研究生学位论文 、一 第- i构件技术与分布式软件体系结构 本章主要分析现存的分布式设计环境对体系结构描述提供的支持、存在的问 题以及对相关概念的介绍。 2 1 分布式系统 随着网络、特别是i n t e m e t 的广泛应用,分布式系统的研究和分布式应用软 件的开发越来越受到重视。 关于分布式系统,a n d r e ws t a n e n b a u m 在 a s t 9 5 给出这样的定义:“a d i s t r i b u t e ds y s t e mi sac o l l e c t i o no f i n d e p e n d e n tc o m p u t e r s t h a ta p p e a rt ot h eu s e r so f t h es y s t e ms aa s i n g l ec o m p u t e r ”,一个分布式系统是一些独立的计算机的集合, 但是对于这个系统的用户而言,系统就像台计算机一样。这个定义有两个方面 的含义:第一,从硬件角度来讲,各个计算机都是自治的:第二,从软件角度来 讲,用户将整个系统看作是一台计算机。这两者都是必需的,缺一不可。 从系统功能来分,可将分布式系统分为分布式操作系统、分布式中间件系统 和分布式应用系统。 分布式操作系统为了隐藏分布式系统的所有细节,给用户展现单分时系 统,必须提供并行透明性、位置透明性、故障透明性。一个d o s 由一个内核和 一组提供类似于集中o s 所提供的服务的系统服务器( 进程) 。系统服务器管理 系统资源、为用户提供服务。系统服务器主要有文件服务器、目录服务器和进程 服务器等。在分布式系统发展史上,有一系列有代表性的分布式操作系统,如网 络操作系统( n o s ) 、工作站网络( n o w ) 和分布式操作系统f d o s ) 。 分布式中间件系统主要为分布式应用系统的开发和运行提供协调、支持和服 务,如早期的分布式程序设计语言( d p l ) 和目前流行的分布对象计算环境,如 c o r b a 、c 0 m d c 0 m 等,都是典型的分布式中间件系统。 随着网络的发展和普及,以网络为基础的分布式应用系统已经成为计算机应 用系统的主流。早期的分布式应用系统具有c l i e n t s e r v e r 结构,目前越来越多的 分布式应用系统建立在分布对象计算平台之上,通过分布对象代理等中间件系统 实现应用系统与平台和实现语言的无关性。 本文主要讨论的是分布式应用系统的设计和构造问题。从构件技术的角度, 一个分布式应用系统由一组相互交互、合作完成任务的构件构成。 西北大学计算机科学系硕士研究生学位论文 4 兰三兰塑堡垫查皇坌查蔓竺堡竺墨堕塑 2 2 构件技术 广义而言,构件( c o m p o n e n t ) 是预先编制好的软件模块a 由于考察角度的不同, 对构件的理解会存在着不同,因而对构件还没有一个统一的定义。从系统构造的 角度,本文给出的构件定义是:构件是一个可以被复用的、自包含的、独立于语 言、平台和具体应用的、通过公布的接口访问其功能的系统构造块。 构件包装了一系列相互关联的操作和服务。构件的基本组成是接口、实现和 部署。接口描述了构件提供和所需的服务,实现是构件功能代码部分,部署是物 理上可执行的文件。与对象不同,构件不仅定义了提供接口而且定义了需求接口, 构件只能通过其接口来访问,而不直接与别的构件通信。 构件的规模可以小到图形界面中的一个按钮,也可以大到一些复杂的部件如 文字编辑器和电子表格。 为了满足封装和复用的要求,构件必须是可封装的、可描述的、可替代的和 可扩展的。可封装是指构件实现与接口分离,只规定构件的外在接口形式,可以 通过公布的接口访问它而不关心其内部实现方法,使得构件既可用面向对象编程 语言实现,也可用非面向对象的过程语言实现;可描述性是指构件对三个重要组 成部分是可描述的,对接口的描述说明构件的行为,对实现的描述说明构件的构 造方式,对部署的描述说明了构件运行的特定环境。可替代性是指不同实现,相 同接口的构件之间可以相互替换使用,使得系统可以方便的升级与维护。可扩展 性是指可以扩充构件的服务范围,但却不影响构件的使用。 软件构件与其它可复用软件模块的区别在于,它既能在设计时使用或进行修 改,也能够在二进制执行模式时使用或修改。一个以二进制形式实现的软件构件 能够有效地嵌入其它开发商开发的构件之中。 基于构件的软件开发技术基本思想和根本目标在于构件的复用,即对已有的 构件可以在一个新的语境中不加修改,或稍加修改就可以使用。在分布式系统中, 利用构件技术可将系统中的计算语义与结构语义相分离,即:将分布式应用系统 中的功能部件与系统配置及绑定描述分离定义。这样,用构件技术构造分布式应 用,可以充分利用已有成分组装、构造出新的系统,从而大大降低开发的难度和 复杂性,提高开发效率,同时使得系统具有较好的可移植性,易于维护、扩充和 升级。 软件体系结构提供了一种自顶向下实现基于构件的软件开发的途径。在基于 构件的分布式系统开发方法中,软件体系结构( s a ) 是指导构件组装的基础,其 5 西北大学计算机科学系硕士研究生学位论文 兰三童塑堡垫查兰坌塑墨鏊! 垡墨竺塑一 正确、合理与否,直接影响系统开发的成败和开发效率。因此必须深入研究和解 决好分布式系统软件体系结构的设计、描述和分析等问题。对体系结构进行的分 析和设计包括:如何规定各构件间的交互、同步协议;系统功能如何在各组成构 件问划分,以及如何绑定各构件完成某一系统功能;系统各构件如何进行物理部 署及系统配置;系统的规模、性能和构件的互操作性如何;如何选择系统设计方 案以及确定系统的演化方向。有关软件体系结构的进一步讨论将在2 5 节进行。 另一方面,目前的分布对象计算技术提供了一种利用现存的中间件基础设施 自底向上地实现基于构件的分布式系统开发的途径,以下首先讨论和简介这一技 术。 2 3 分布对象计算技术 分布式对象技术始于9 0 年代初,已经发展成为当今分布式异构环境下建立 应用系统集成框架和标准构件的核心技术,已经在企业集成、集成化的分布式系 统管理、软件构件技术等方面发挥重要作用。 分布对象技术将分布在网络上的资源按照对象的概念来组织,每个对象都有 定义明晰的访问接口。对象不仅提供服务、能够被访问,而且自身也可能作为其 他对象的客户。分布式对象技术提供了自顶向上实现分布式系统开发的途径。 分布式对象技术强调对象的“即插即用”,即能从所提供的二进制软件对象组 件库中获取最合适的对象构造系统,高度重用现有成熟的可执行的软件代码。分 布式对象计算就是从系统集成与分布式处理要求中提出来的一种可行的解决方 案。 分布对象计算技术的基础是中间件( m i d d l e w a r e ) 设施。中件间是一种位于 客户机服务器的操作系统和应用系统之间,独立的系统软件或服务程序,管理计 算资源和网络通讯,屏蔽底层通讯和远程交互的细节,将透明的接口呈现给应用。 实现对象在网络环境下的透明分布的软件系统。中间件技术的引入,使得构件与 环境的隔离,独立性更强,为构件组装,尤其是运行级的构件组装提供了支持平 台:。? 1u q f ,实现了可插拔、可替换、可复用构件化开发。 目前最有代表性、主流的分布式对象系统有c o 砌认、e j b 和c o m d c o m 。 2 3 1c o r b a c o r b a 是对象管理组织o m g ( o b j e c tm a n a g e m e n tg r o u p ) 负责制订与发 6 西北大学计算机科学系硕士研究生学位论文 兰三兰塑壁苎查兰望苎型韭堕型苎墨堕塑一 布一种跨平台、跨语言的中间件技术规范【) m ( ,t ) “】。从体系结构角度讲,c 0 a 实现了跨主机的构件间的交互和连接,可以认为,c o r b a 是体系结构中连接器 的一个具体实现规范。 c 0 r b a 核心是对象请求代理( o r b ) 技术。通过o r b ,构件之间的交互不 必考虑网络和o s 平台的细节,实现了分布式构件之间交互的透明和无缝集成, 因此,c o r b a 可以作为分布式系统中构件的运行级中间件支持,实现分布式系 统的组装。 同时,o m g 提供的接口定义语言i d l ( i n t e r f a c ed e f i n i t i o nl a n g u a g e ) 实际 上提供了c o r b a 对象的接口的统一标准,使得用i d l 定义的对象接口成为对 象实现与客户对象透明调用之间的桥梁。i d l 是一种强类型的中性说明语言,独 立于任何程序设计语言。c o r b a 规范定义了i d l 到具体的程序设计语言的映射。 图2 1 给出了c o r b a 的体系结构框架的主要构 成和他们之间的联系。 2 3 2r m i 、j a v ab e a n s 与e n t e r p r i s ej a v a b e a n s j a v a 语言是s u n 公司公布的一种跨平台的 编程语言。由于它具有可移植、安全、面向对象、 动态执行、高性能、简单等特性,所以特别适用 于分布式计算环境。 r m i 是一个以沁“为中心的分布式对象通 矧 p & i ii 剖架 i 面硼 ii in n g i , n , n ? 、r m l 传输层j 1 p 、螂层 图2 2 r m 体系结构框架 西北大学计算机科学系硕士研究生学位论文 第二章构件技术与分布式软件体系结构 信模型 p v 2 0 0 0 。它可以看作是j a v a 的r p c ( r e m o t e p r o c e d u r ec a l l ) 机制。 它定义了一组远程接口,可用于生成远程对象。客户机可以象调用本地方法一样 调用远程对象。r m i 包括三层:桩框架层( s t u b s k e l e t o n ) 、远程引用层和传送 层。如图2 2 所示。远程引用层从r m i 存根接收序列化的数据并且处理建立在 传输协议之上的r m i 特有通信协议。其职责包括解析r m i 服务器位置,初始化 连接和激活远程服务器。r m i 传输层负责连接管理并且提供点到点之间的可靠 数据传输。一般使用的传输协议是t c p 。 r m i 与j a v a 语言和j a v a 虚拟机紧密结合在一起,所以r m 提供的编程模型 比c o r b a 要简单得多,不需要一个独立的i d l 。 j a v ab e a n s 是j a v a 语言 a g 9 8 j 的标准构件模型。b e a n 是基于j a v a 环境的, 可视的、可操纵的、可重用的构件。j a v a b e a n s 构件模型是s u n 制定的关于b e a n 的软件构件标准,规定设计所有b e a n 所依据的框架。j a v ab e a n s 被编译成可实 例化的j a v a 类,在一个可视化开发环境中无须访问构件的源代码,仅通过配置 输出属性值就能够对构件进行定制和组合,方便地构造一个合适的应用。 j a v ab e a n s 框架仅限于构造运行于单地址空间的系统,对分布式应用的构造 要使用别的技术。比如,通过低层t c p i p 、u d p i p 协议的a p i 、j a v a 远程对象 引用机制r m i ,以及用于构造多层c l i e n t s c v e r 应用的构件模型e n t e r p r i s ej a v a b e a n s 等。 e n t e r p r i s ej a v ab e a n s ( e j b ) 【m h 9 8 扩充了j a v ab e a n 构件模型,它支持多层 客户1 务器计算,在此模型中,应用语义分成了客户方的用户界面与服务器方 的后台数据库操作。这使得构件重用、应用软件系统开发的简化以及客户方与服 务器的并行操作成为可能。e 2 3 对应用分块封装,使其在一个e 1 3 “容器”中执 行,而由该容器管理并发性、事务、持久性、安全性以及引用b e a n 操作时所用 的协议。这样就有可能使应用构件在不同事务监控器、数据库、安全性环境和中 间件平台之间移植。r _ m i 对透明互操作的支持和e j b 中对环境的分离机制也为 分布式系统的构件化组装提供了很好的支持。 2 3 ,3c o m c o m ( c o m p o n e n to b j e c tm o d e l ) e e 9 8 是微软公司用于分布对象计算和基于 构件的软件开发的对象模型与中间件平台。它主要是为不同网络环境中的分布对 象提供交互的标准。 c o m 的核心是一组应用程序调用接口( a p i ) ,该接口提供了创建构件、组 装构件的方法。d c o m 是微软为支持网络环境而对c o m 进行扩充的结果,其目 8 西北大学计算机科学系硕士研究生学位论文 墨三主塑竺垫查皇坌塑垫鏊堡竺墨绝塑一一 标与c o r b a 类似,都是为了支持不同节点上,不同操作系统、不同语言的对象 进行透明交互。但c o m 的底层机制仅仅在客户建立请求阶段发挥作用,对服务 对象进行定位,而具体的调用则相应在客户对象与服务器对象之间直接进行。 每个c o m 对象都是某个类( c l a s s ) 的实例。c o m 运行环境通过一个数据 库将类标识符映射到一个能够用来创建类实例的二进制包( p a c k a g e ) 、动态连接 库或可执行模块。c o m 对象的实例化既可以在相同的地址空间,也可以在不同 地址空间。在不同地址空间实例化对象时,c o m 运行时环境透明地创建客户方 代理和服务器方存根,用以传递进程之间的对象引用。 2 4 面向领域的软件开发 通过大型软件的实际开发经验,人们逐渐认识到:在特定领域内通过运用基 于构件的开发方法,经过分析、抽象形成的构件,可以更好的实现构件的复用和 组装。 领域是指共享某种功能的系统或应用程序的集合,我们用领域模型来描述领 域中系统之间的共同需求,用特定领域软件体系结构d s s a ( d o m a i ns p e c i f i c s o f t w a r e a r c h i t e c t u r e ) 来描述在领域模型中所表示的需求的解决方案 杨芙清9 9 】。 领域工程即是指产生d s s a 及相关共性构件的过程。 特定领域软件体系结构( d s s a ) 是一个领域中的所有应用系统所共有的体 系结构,是针对领域模型中的领域需求给出的解决方案,也是识别、开发和组织 特定领域可复用构件的基础。 建立领域模型( d o m a i nm o d e l ) 是进行领域分析的主要目的。一个领域模型至 少应该包含本领域的基本知识、一个基本框架、一批可复用的领域构件以及构件 之间的交互方式。通常认为领域构架是领域解决方案的映射,它虽然没有一般性 领域知识的通用和抽象,却是大粒度构件抽象复用的基础。 通过领域工程,我们可以建立起领域模型中具有相关共性的构件,通过不断 的应用工程积累实现系统构件的演化和扩展。 2 5 软件体系结构 软件体系结构作为软件工程中的一个热门研究领域,是随着描述大型、复杂 软件系统结构的需要和开发人员在大型软件系统的研制过程中对软件系统理解 而逐步深化和发展起来的。 西北大学计算机科学系硕士研究生学位论文 笙三里塑堡茎苎兰垡塑塑堇竺笪型塑壁塑生一 软件体系结构系统高层共性的抽象,是对系统的整体结构和全局属性的规范 性描述。以软件体系结构为蓝图,可以正确进行系统的构件组装,进而可以实现 大规模、系统层次的软件复用。 2 5 1 概念 软件体系结构的思想最早由d i j s k t r a 等人提 g d 9 5 ,k a b c 9 6 ,s h a w , p e r r y 以及w o n 等人在8 0 年代末作了进一步发展和研究 g d s m 9 4 。虽然软件体系结 构已经成为软件工程研究的重点,但是由于许多研究人员都是基于自己的经验从 不同角度不同侧面对体系结构进行刻画,所以目前对软件体系结构存在着多种定 义和不同的理解 c a b b 9 5 】。 p e r r y & w o l f 等人认为,软件体系结构由一组具有特定形式的体系结构元素 构成,包括处理元素、数据元素和连接元素三种。g a r l a n & p e r r y 则指出,软件体 系结构包括一个系统的构件结构、构件间的相互关系、以及控制构件设计和演化 的原则和规范等三个方面。s h a w 和g a r l a n 认为,体系结构是对构成系统的元素、 这些元素间的交互、他们的构成模式、以及这些模式之间限制的描述 m s d g 9 6 。 为了统一起见,我们在工作中采用这样的定义:软件体系体系结构是一个系 统的高层结构共性的抽象,是建立系统时的构造模型、构造风格和构造模式。 软件体系结构屏蔽了系统设计和实现时的功能细节,着重于讨论软件系统的 总体框架,对软件系统的构造起着指导性的作用。同时,软件体系结构是系统理 解、交流和设计、实现、演化一个系统的基础。 软件体系结构开始于系统的早期设计,主要涉及以下内容:( 1 ) 系统框架及 组成软件的成份、成份间的功能分配、物理分布等;( 2 ) 软件各成份之间的相互 作用,相互之间各种约束等。软件成份的进一步复合以及指导软件复合过程的总 体模式:( 3 ) 系统的功能、性能、设计以及从多种方案及选项中进行选择的决策。 可见,软件体系结构关注的核心恰恰是基于构件的开发方式在系统分析、设计时 所必须考虑的核心问题。 2 5 2 体系结构风格 体系结构风格( a r c h i t e c t u r a ls t y l e ) 是与软件体系结构紧密相关一个概念。 软件开发是从问题域向最终解决方案逐步映射和转换的过程,体系结构风格是从 方案解决角度提供的若干经过考验的候选转换路径。 西北大学计算机科学系硕士研究生学位论文 1 0 笙三雯塑堡垫查兰坌塑苎苎型型堕望型l 一 体系结构风格定义了一组构件和连接件类型的词汇( v o c a b u l a r y ) ,以及它们 之间连接方式的一组约束 m s d g 9 6 】,从而定义了一个体系结构的框架。软件构 架风格主要是为设计经验的复用提供了技术支持。 风格为构件复用提供了巨大的支持。体系结构风格中不变的部分可以共享程 序代码,为使用和组合不同风格的构件构造系统提供指导。 在软件发展的过程中,出现了多种体系结构风格,常见的有c l i e n t s e r v e r 、 分层的体系结构( l a y e r e d ) 、分布式对象( d i s t r i b u t e do b j e c t ) 、管道和过滤器( p i p e & f i l t e r ) 、黑板系统( b l a c k b o a r d ) 等 m s d g 9 6 ,c e w k 9 6 。下面我们就广泛使 用软件构架风格作一个简单的介绍。 1 管道过滤器风格 在管道过滤器中的每一个构件都具有一组入口和一组出口,构件从其输入1 7 1 中读取数据流,并将处理过的数据送到其输出e 1 。通过输入数据流进行不断的内 部转换,数据计算逐级进行。由于后级的输入均在前一级的输出之后进行,所以 这种风格的构件又被称为过滤器,连接器负责传达数据流,是构件间的通讯管道。 最著名的管道过滤器结构是采用u n i xs h e l l 编写的程序,传统的编译器也可以被 看作是管道过滤器的结构。它们依次经过词法分析、语法分析、语义分析和代码 生成等阶段。 管道过滤器风格明显的优点是系统的输入输出行为明确,支持复用和扩展, 支持并发执行。但是这种系统的缺点是难以支持交互式的应用。 2 数据抽象和面向对象风格 在数据抽象和面向对象组织中,数据表示和与之相关的原语操作都被封装在 一个抽象的数据类型当中。我们可以称之为对象类,构件通常是这些对象类的实 例。构件负责自身的表示完整性,并通过函数或者过程调用同其他的构件进行交 互。 面向对象的系统当中,构件的表示相对独立,更改构件内部的实现可以不影 响其他构件,同时设计者可以将复杂的问题分散到一组交互代理中去解决。 面向对象系统中的一个构件同另一个构件通讯,则它必须知道通讯对象的标 识,这一点和管道过滤器是不同的。而当一个构件的标识信息发生变化的时候, 与之通信的其他构件都要发生相应的变化。 3 基于事件的隐式调用 隐式调用与显示调用不同,一个构件可以向系统发送一个或多个事件,而不 真鲎塑旦垫猩:丕笙史数基丝塑堡亘丝适盟鱼虽苤:坠塑童鲑羞塑垡担廑塑童鲑签 l 】 西北大学计算机科学系硕士研究生学位论文 兰三兰塑竺垫查兰坌查苎竺壁竺墨笙塑一 理。事件激发时,系统会自动检查所有的注册事件处理并激活响应的操作,这样 发送事件隐式的导致了其他模块的调用。 隐式调用的特点是事件在发送的时候并不知道哪些构件会做出反应,因此发 送事件的构件并不能预知事件处理的次序、内容和结构。所以,隐式调用通常也 作为显示调用的一种补充。 隐式系统的最大特点就是支持重用,新的构件很容易可以引入系统。另一个 优点是隐式系统对进化的支持,对构件的更新和更替不会影响到系统中的其他部 分。 4 层次系统风格 层次系统也是一种常见的体系结构,每一层都对上一层提供服务,除了相邻 层次之外,系统隐藏了其他层次的信息,连接子定义了层间的交互。 利用层次模型,设计者可以不断的增加系统层次的抽象程度,从而将一个复 杂的任务分解为一系列渐进的步骤。对一个层次的改动只会影响到与之相邻的层 次,因此层次结构支持系统功能的增强。保持相同接口的层次具有互换性和重用 性也是层次结构的一个特点。 但是抽象层次的正确划分也是个复杂的问题,特别是在标准化以后的层次 模型中更是这样。 2 5 3 软件体系结构的研究 目前,对软件体系结构所作的研究工作有:软件体系结构表达方式、软件体 系结构分类、特定领域软件体系结构框架的研究、软件体系结构形式化问题。 f 1 ) 体系结构的表达方式。主要目的是使用领域分析技术和工具获取有关软 件体系结构的所有特征,并创建一个通用的体系结构描述语言a d l ,用于刻画其 性质。这将为设计人员提供一个统一的方法严格定义软件系统结构,从而避免了 自然语言与框图描述可能引起的理解上的不一致,即所谓的二义性。 ( 2 ) 体系结构的分类。主要研究体系结构范畴与内容,其目的在于通过大量 的实例,考察体系结构的决策是如何受项目需求、组织目标和个人背景影响的, 从而对软件开发实践中所采用的体系结构划分原则与模式进行分类并理论化,为 开发人员提供有关体系结构选择的工程化原则。这一类研究成果将为体系结构的 评估提供有利的证据,卡内基梅隆大学开发了一种软件体系结构分析方法 ( s a a m ) ,根据所需功能和质量需求比较若干候选的体系结构。s a a m 是基于 场景的评估技术,即按照体系结构在特定情景下的执行情况进行比较。 ( 3 ) 特定领域软件体系结构框架的研究。是对一个领域中的所有应用系统所 共有的体系结构进行抽象。这一类的研究成果可为某一领域中新产品的开发提供 1 2 西北大学计算机科学系硕士研究生学位论文 篁三雯塑生垫查量坌塑苎茎壁堡墨丝塑一一 一个复用度很高的系统结构与开发模式。 ( 4 ) 软件体系结构的形式化问题。随着人们在实践中对软件体系结构理解的 逐步深刻,就需要采用严格的形式化方法刻画软件体系结构及其相关性质,这种 以数学方式描述的软件系统,使得我们可以使用计算机辅助工具对其进行推理, 以保证它的正确性。 2 5 4 软件体系结构模型及其描述语言 1 软件体系结构

温馨提示

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

评论

0/150

提交评论