(计算机软件与理论专业论文)构件检索及组装技术应用研究.pdf_第1页
(计算机软件与理论专业论文)构件检索及组装技术应用研究.pdf_第2页
(计算机软件与理论专业论文)构件检索及组装技术应用研究.pdf_第3页
(计算机软件与理论专业论文)构件检索及组装技术应用研究.pdf_第4页
(计算机软件与理论专业论文)构件检索及组装技术应用研究.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(计算机软件与理论专业论文)构件检索及组装技术应用研究.pdf.pdf 免费下载

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

文档简介

构件检索及组装技术应用研究 构件检索及组装技术应用研究 摘要 “软件危机”的出现使人们认识到软件开发必须脱离手工作坊模 式,不断提高软件产品的质量和软件开发的效率,借鉴其它传统工业 的发展经验,软件复用技术是解决这一问题的有效方法。通过软件复 用,消除了包括分析、设计、实现、测试等软件开发过程中的重复劳 动,提高了软件开发效率,通过复用已有的开发成果,避免了由于重 新开发可能引入的错误,从而可以不断提高软件产品的质量。 软件构件是目前支持产品复用的有效形式,它受到了学术界和产 业界的广泛重视。构件作为一个可以独立交付的软件单位,具有相对 独立的功能和复用的价值,随着对软件复用理解的深入,构件的概念 已经超出了源代码的范畴,软件开发过程中各个阶段的产品,如用户 需求,设计文档,软件架构,测试用例等,都可以作为软件构件来复 用。构件技术的不断发展与成熟为软件开发提供了新的方法学,围绕 构件技术也展开了大量的研究,在一些领域也得到了有效的应用,软 件构件技术研究的不断深入,必然会导致软件生产方式的变革,极大 的提高软件生产的效率和软件产品质量。 本文依托一个实验构件库系统d u c l ,对以上闯题进行了较为深入 的研究,在实现该系统的基础上,本文的主要工作还体现在以下几个 方面: ( 1 ) 采用面向对象的分析设计方法为构件的设计提供指导,从u m l 构件检索及组装技术应用研究 描述的业务用例和业务实体中识别出高内聚、低耦合的业务构 件。以u m l 语言描述的业务用例模型和业务实体模型作为输 入,通过改进的聚类分析算法识别出两类业务构件,进而设计 出业务构件的接口,得出两类业务构件的设计规格说明,同时 提供了一种简单的度量构件粒度的方法。 ( 2 ) 通过对比现有构件模型之间的差异,分析各自的优缺点,在 d u c l 系统中引入了一种扩展的构件模型,使得构件互操作变 得简单。同时针对构件互操作问题如:编程语言不同、访问方 式差异,持久性机制不一致,运行平台各异等,提出了一种统 一访问构件的方案,通过构件包装器使客户端独立于具体的构 件模型,提供与具体构件模型的映射。 ( 3 ) 对构件的分类检索技术进行研究,重点研究刻面分类方案,对 d u c l 系统中构件检索的刻面索引技术进行了全面阐述。在 o r d p a t h 文档节点标记方法基础上提出了一种刻面构件检索的 索引机制,能够加速值匹配和路径匹配过程,在检索效率和屏 蔽不同刻面分类方案影响上均能达到满意的效果。 本文首先对基于构件的软件开发过程和相关技术进行简单介 绍,接下来部分重点阐述面向对象的构件设计、构件库的分类检索机 制以及构件的组装框架等内容,最后对所做的工作进行总结与展望。 关键词:软件复用,构件库,软件构件,构件检索,构件组装 构件检索及组装技术应用研究 r e s e a r c ho ns o f t w a r ec o m p o n e n tr e t r i e v a la n da s s e m b l y a b s t r a c t a f t e r “s o f t w a r ec r i s i s ”p e o p l et h i n km o r ea b o u th o wt oi m p r o v et h e q u a l i t ya n de f f i c i e n c yo fs o f t w a r e i tp r o v e st h a ts o r w a r er e u s ei sag o o d c h o i c e ,a p p l i c a t i o ns y s t e mi sb u i l du p o nw h a ta l r e a d ye x i s t ,s ow ec a n f o c u so na p p l i c a t i o ns p e c i f i cp a r t s ,r e p e a t e dw o r ki na n a l y s i s ,d e s i g n , i m p l e m e n ta n dt e s ti sa v o i d e db ys o r w a r er e u s e ,e f f i c i e n c ya n dq u a l i t y a r ea l s oi m p r o v e d s o f t w a r e c o m p o n e n t i sad e l i v e r a b l es o f t w a r e u n i t ,i t h a s i n d e p e n d e n tf u n c t i o n a l i t ya n dr e u s ev a l u e s o f t w a r ec o m p o n e n tn o to n l y c o n t a i n ss o u r c ec o d eb u ta l s or e q u i r e m e n t ,d o c u m e n t ,a r c h i t e c t u r e ,t e s t c a s ee r e c o m p o n e n tt e c h n o l o g y p r o v i d e s an e wm e t h o d o l o g yf o r s o f t w a r ed e v e l o p m e n t ,t h e r ea r eal o to f r e s e a r c h e so ni ta n dt h e r ea r ea l s o s u c c e s s f u lc o m p o n e n tb a s e da p p l i c a t i o n s t h i s p a p e r i sb a s e du p o nr e s e a r c hw o r ki v ed o n eo na l l e x p e r i m e n t a lc o m p o n e n tl i b r a r yd u c l ,t h em a i nw o r kih a v e d o n e c o n t a i n s , i ag u i d e l i n ef o rc o m p o n e n td e s i g nb a s e du p o no o a ,i t si n p u ti su s e c a $ ea n dc l a s sd i a g r a m ,i t so u t p u ti s c o m p o n e n t ss p e c i f i c a t i o n a n e a s yw a y t om e a s u r et h eg r a n u l a r i t yo f c o m p o n e n ti sa l s op r o v i d e d i i an e wc o m p o n e n tm o d e li si n t r o d u c e d ,a n dc o o p e r a t i o nb e t w e e n v 1 - 构件检索及组装技术应用研究 c o m p o n e n t sb e c o m e se a s i e r , f o rt h ee x i s t i n gc o m p o n e n t st h a th a v e d i f f e r e n tc o m p o n e n tm o d e l s ,w r a p p e ri su s e dt om a k ec o m p o n e n t s i n d e p e n d e n to fp r o g r a m m i n gl a n g u a g e ,p e r s i s t e n c em e c h a n i s ma n d o p e r a t i o n a lp l a t f o r m i i i ,r e s e a r c h0 nc l a s s i f ya n dr e t r i e v ec o m p o n e n t ,e s p e c i a l l yo nf a c e t e d b a s e dc l a s s i f i c a t i o ni s d o n e ,t h i sp a p e ri n t r o d u c e s t h ei n d e x m e c h a n i s mu s e di nd u c l ,b a s e do nn o 如l a b e l sn a m e do r d p a t h , i tc a na c c e l e r a t ev a l u e b a s e da n d p a t h - b a s e dq u e r y , i ti se f f e c t i v ea n d c a l lw o r kw e l lw i t hd i f f e r e n tc l a s s i f i c a t i o ns c h e m e s t h i sp a p e rf i r s t g i v e sab r i e fi n t r o d u c t i o no fc o m p o n e n tb a s e d s o f t w a r e d e v e l o p m e n t a n dr e l i e d t e c h n o l o g y , t h e n c o m e st h e o b j e c t - o r i e n t e dc o m p o n e n td e s i g n , i n d e xu s e d i nd u c l ,a n dt h e f r a m e w o r ko fc o m p o n e n ta s s e m b l y , t h ew o r kih a v ed o n ei sc o n c l u d e d a n dia ms u r ec b dh a sag o o d p r o s p e c t k e yw o r d s :s o f t w a r er e u s e ,c o m p o n e n tl i b r a r y , s o f t w a r ec o m p o n e n t , c o m p o n e n tr e t r i e v a l ,c o m p o n e n ta s s e m b l y 构件检索及组装技术应用研究 东华大学学位论文原创性声明 本人郑重声明:我恪守学术道德,崇尚严谨学风。所呈交的学位论文。是本人在导师的 指导下,独立进行研究工作所取得的成果。除文中已明确注明和引用的内容外。本论文不包 含任何其他个人或集体已经发表或撰写过的作品及成果的内容。论文为本人亲自撰写,我对 所写的内容负责,并完全意识到本声明的法律结果由本人承担。 靴篙者篇摩毫日期: 护年月 构件检索及组装技术应用研究 东华大学学位论文版权使用授权书 学位论文作者完全了解学校有关保留,使用学位论文的规定,同意学校保留并向国家 有关部门或机构送交论文的复印件和电子版,允许论文被查阅或借阅本人授权东华大学可 以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等 复制手段保存和汇编本学位论文 保密口,在年解密后适用本版权书。 本学位论文属于 不保密口。 哼苫:抖 j 拟目:畸;囝j 日 锦州 玺窿 军。 脚硪 构件检索及组装技术应用研究 1 ,1 软件构件技术 第一章绪论 软件复用是在软件开发中避免重复劳动的解决方案。通过软件复用,可以提 高软件开发的质量和效率。面向对象技术的出现和发展,为软件复用提供了基本 的技术支持。软件构件的概念共生于软件复用。在1 9 6 8 年北大西洋公约组织软 件工程会议上就提出了软件复用概念,还制定了整套软件复用的指导性标准, 其中包含了利用标准软件构件实现软件复用的基本思路。在这次会议上,m c l l o r y 在题为“m a s s - p r o d u c e ds o f t w a r e c o m p o n e n t s ”的报告中提出了软件构件、构件工 厂等概念【2 1 。 对软件构件的认识也是一个随着时问不断发展的过程。在2 0 世纪7 0 - - 8 0 年 代,软件构件主要指可复用的程序代码片断,一般称为代码件,这一时期软件生 产考虑的主要问题是如何充分地利用已有的源程序代码、子程序库和类库来提高 软件开发的效率。此时的代码件主要有子程序、程序包等。到2 0 世纪9 0 年代, 软件构件包括分析件、设计件、代码件、测试件的概念被广泛认同。由于软件复 用的多样性,又将复用分为产品复用和过程复用。随之产生了许多新的概念,如 设计模式、框架、软件体系结构等。1 9 9 5 年,w i l lt r a e z 提出构件应该具有以下 属性:有用性,构件必须提供有用的功能;可用性,构件必须易于理解和使用; 质量,构件及其变形必须能够正确工作:适应性,构件应该易于通过参数化等方 式在不同语境中进行配置:可移植性,构件应该能够在不同运行平台和软件环境 中工作。 随着i n t e r a c t 和分布式对象技术以及基于构件的软件开发技术的发展,对构 件的认识又有了新的变化,出现了若干新的软件构件的定义,其中比较有代表性 的有: “软件构件是一个不透明的功能实现,能被第三方组装,符合一个构件模型” - - b a e h m a n 等,卡内基梅隆大学软件工程研究所( c m u s e i2 0 0 0 ) “构件是一个带有契约化接口和显式上下文依赖的组装单元,它能被独立发 布并且可以被第三方组装”m 日mw a n g 等,波音公司1 9 9 9 第1 页 构件检索及组装技术应用研究 “构件是一个通过接口向外界提供服务的软件包”微软公司1 9 9 7 这些定义说明了软件构件是单独开发并且具有特定功能的软件单位,用于与 其它构件及支撑环境组装成应用系统,也反映了构件的3 个基本特征:单元特征, 构件不是完整的应用程序,需要组装;复用特征,构件的特征在于实现软件复用, 需要规范;商品特征,构件是预制的知识服务,需要封装。 软件构件的概念从提出到在业界形成一定的共识,经历了几十年的演化。与 计算机硬件技术的发展相比,进展缓慢。计算机硬件虽然十分复杂,但建立在技 术复用思想基础之上的开放性、标准化技术体系,实现了技术的不断有效积累和 开放竞争的市场,进而形成了以高效率和低成本为基本特征的现代化成熟生产工 业,而计算机软件的生产却面临着高失败率,超时等困难,软件资源的多元化, 应用环境的复杂性和多交性是软件危机的本质。如何借鉴硬件技术发展的成功经 验,是软件构件技术需要研究的问题。 1 。2 基于构件的软件开发过程 基于构件的软件工程是指用装配可重用软件构件的方法来构造应用程序。它 包含了系统分析、构造、维护和扩展的各个方面,在这些方面中都是以构件方法 为核心的。基于构件的软件工程的主要目标是通过集成构件来开发系统、开发可 复用的构件及通过定制和替换构件为维护和更新系统等提供支持。它的基本宗旨 是软件系统可以通过选择构件,在一个定义良好的软件架构内进行构件组装以生 成系统。它不同于传统的方法,如系统开发一切从零开始。商业构件可以由不同 的开发者使用不同的语言在不同的平台下进行开发。商业构件可以从构件库中选 取、检验,经过组装、部署以形成目标系统。 用构件来构建系统,为不同的系统需求开发构件所需要建立的方法及过程不 仅涉及开发维护方面,而且与整个构件和系统的开发周期相关,特别是构件特有 的方面如构件规约、组装等,与传统的软件重用方法比较,基于构件的软件工程 有以下特点; ( 1 ) 即插即用,构件可以方便地集成于框架中,不用修改代码,也不用重新 编译。 第2 页 构件检索及组装技术应用研究 c 2 ) 以接口为核心,构件的接口和实现是分离的,构件通过接口实现与其他 构件交互与组装,构件的具体实现被封装在内部,组装者只关心接口, 不必知道其它实现细节。 ( 3 ) 标准化,构件的接口必须严格地标准化,这是构件技术成熟的标志之一。 目前,主要的构件标准有m i c r o s o f t 的c o m ,d c o m ,s u n 的e j b ,o m g 的c o k b a 。计算机界很久以来就有用构件来装配成应用软件的想法, 但始终未能成为现实,其中主要的原因是构件标准的缺乏。正是由于出 现了以上较为成熟的构件标准,才使得基于构件的软件工程得以实现。 ( 4 ) 构件可以通过市场销售和分发,大量成熟的构件可以通过市场购得,市 场的竞争机制也可以保证构件生产质量的提高和价格的降低。 基于构件的软件系统是通过组装构件而形成应用系统,因此它的生命周期与 传统的软件开发生命周期有一些区别,由以下几部分组成:构件需求分析,构件 开发,构件验证,构件定制,系统集成,系统测试,系统维护。 构件需求分析是发现和理解文档、确认和管理构件需求的过程,构件需求分 析的目标是得到完整的、一致的和与构件实现功能相关的需求。需求分析包括4 个步骤:需求收集和定义、构件模型和需求确认,该阶段的输出是用户需求文档。 构件开发是通过生成具有良好功能、高质量的构件实现需求的过程。其目标 是最终的构件产品、接口和文档。构件产品能够正确地实现需求,应该有良好的 行为和灵活的接口。 构件验证包括,构件外购,构件选取一根据需求,兼顾功能和可靠性选择合 适的构件;构件测试一验证构件能否满足需求。 构件定制包括,为特定的需求更改构件;为了能够在特定的平台下运行对构 件进行必要的改变;更新构件以得到更好的性能和更高的质量,构件定制的且标 是对开发的构件做必要的修改使其能使用于特定的环境或者与其它构件更好的 合作。 系统集成是在系统体系结构下,集成已选取的构件形成整个系统,其目标是 一个由构件组装而成的最终系统。 系统测试是评估系统能否满足规定要求,确定和纠正系统实现过程的缺陷的 过程。 第3 页 构件检索及组装技术应用研究 系统维护是系统交付以后所提供的对系统维护的过程。其目标是通过纠正错 误,改善性能及适应环境的改变为最终用户提供一个高效的产品和服务。 1 3 构件技术研究的内容 构件技术研究基于构件软件工程的概念模型和过程模型,有以下研究方向: 构件模型,研究构件的本质特征及构件间的关系。 构件获取,有目的的构件生产和从已有系统中挖掘提取构件。 构件描述语言,以构件模型为基础,解决构件的精确描述、理解及组装问题。 构件的分类检索和构件库,研究构件分类策略、组织模式及检索策略建立构件 库系统,支持构件的有效管理。 构件的集成组装,在构件模型的基础上研究构件组装机制,包括源代码级的组装 和基于构件对象互操作的运行对组装。 1 4 本文的组织 第一章介绍构件相关技术和基于构件的软件开发过程; 第二章主要对构件库系统d u c l 的系统框架、数据模型等进行阐述; 第三章介绍构件的模型与表示,分析了当前几种主流的构件模型,并对构件 模型进行了扩展,弓l 入了一种面向对象豹构件设计方法。 第四章讨论构件的分类检索技术,重点研究刻面分类方案,并对d u c l 系 统中构件检索的刻面索引技术进行了分析。 第五章研究构件的适配组装技术,对异构构件的组装模型进行了研究,介绍 在d u c l 系统中利用构件包装器实现异构构件组装框架。 第六章中对本文研究的内容进行了总结和展望。 第4 页 构件检索及组装技术应用研究 第二章相关技术研究 2 1 构件技术与模式框架 软件复用从最初的子系统调用开始,经历了结构化方法和面向对象技术的发 展,逐步形成了类库、框架、模式等多种方法、多种层次的软件复用。通过不断 提高软件生产力来降低软件生产成本,提高软件品质,满足不断发展和变化的应 用需求的需要。 由于构件技术的发展和成熟,出现了大批“商用现成品”供应商。他们为 软件提供用于组装完整系统的软件构件,这些系统可以是应用系统,也可以是基 础软件。设计模式技术的发展和应用,使软件开发的经验得以方便地复用,软件 开发的过程变为“工业化流程”,出现了专门从事离岸开发的“软件工厂和车问”。 软件框架技术的出现和应用使专门从事提供软件应用框架或基础结构成为可能 他们为软件开发商或系统集成商针对领域应用提供半成品软件,在此基础上针对 最终客户的具体需求进行客户化再开发。设计模式技术还使软件生产过程中的设 计者和实现者的交流和沟通变得方便,也促进了信息管理咨询业的发展。 子程序复用以及类库复用是针对代码级的复用,构件则不仅在代码级,还可 以在二进制码和功能复甩,系统设计者复用构件时不需要了解构件的结构和编 码,只需要其功能和组装接口。设计模式库和应用框架库的复用则是针对软件分 析、设计和实现的各个环节成果进行复用。在软件开发过程中利用模式能够在较 短的时间内复用以往的软件开发经验,使用模式的好处主要体现在以下三个方 面: ( 1 ) 模式是已经被证实的解决方案,模式是实践的总结,它提供的解决方案 是经过不同时间、不同项目反复解决的相似问题后才最终确定的,因此 模式提供了强大的可重用机制,避免了开发者和设计者的重复投资。 ( 2 ) 模式提供了交流的词汇表。模式不仅为软件设计者提供一个交流的共同 的词汇,同时提供了一种与开发者进行交流的方式软件设计者和开发 者不但可以通过学习和理解模式来创造自己的词汇,而且随着新词汇的 记载而增加设计词汇。 第5 页 构件检索及组装技术应用研究 ( 3 ) 约束解决方案的范围。使用模式可以将解决方案约束或限定在一定的范 围内,这个范围正好是设计可阻实现的范围,模式要求开发者确定实现 的边界,超出这个边界就破坏了模式与设计的一致性就可能导致错误 设计模式d 1 使人们可以更加简单方便地复用成功的设计和体系结构,将已证 实有效的技术实现方式表述为设计模式会使新系统开发者更加容易理解其设计 思想,模式一般包含以下几个要素: ( 1 ) 模式名称,用一两个词来描述模式的问题、解决方案和效果。通过命名 一个新横式,增加我们的设计词汇。基于模式词汇表。软件工程师之闻 就可以讨论模式并在文档编写时利用它们。模式名可以帮助设计者思考 以及设计者之间交流设计恩想和设计结果。 ( 2 ) 模式问题,描述应该在何时使用模式。它解释了设计问题和问题存在的 前因后果,可能描述特定的设计问题,也可能描述了导致不灵活设计的 类或对象结构。 ( 3 ) 解决方案,描述设计的组成部分,它们之间的相互关系及各自的职责和 协作方式。它并不描述一个特定而具体的设计或实现,而是提供抽象问 题的描述和怎样用一个具有一般意义的元素( 类或对象) 组合来解决这 个问题。 ( 4 ) 效果,描述了模式应用的效果及使用模式应权衡的问题。模式效果包括 它对系统的灵活性、扩充性、可以执行性韵影响,歹l j 出这些效果对理解 和评价模式很有帮助。 设计模式在粒度和抽象层次上各不相同,可以在多个抽象的层次和多个领域 内定义模式,常见的软件模式分类有:设计型模式、构架型模式、分析型模式、 创建型模式、结构型模式和行为型模式。e r i c hg a m m a 等提出了两条分类准则: 目的准则,模式是用来完成什么工作的:范围准则,模式主要用于类还是用于对 象。模式依据其目的可分为;创建型( c r e a t i o n a l ) 、结构型( s t r u c t u r a l ) 和行为 型( b e h a v i o r a l ) 三种。刨建型模式与对象的创建有关:结构型模式处理类与对 象的组合 行为型模式对类或对象怎样交互和怎样分配职责进行描述。模式依据 范围可分为类模式和对象模式,类模式处理类和子类之问的关系,通过继承建立。 是静态的,在编译时就确定下来了,对象模式处理对象间的关系,这些关系在运 第6 页 构件检索及组装技术应用研究 行时刻是可变的,具有动态性。e r i c h g a m m a 等( g o f ) 在“设计模式“一文中 提出了2 3 个设计模式,并依据两条分类准则分别分类,模式分类如下表所示。 表2 - 1 模式分类 目的 创建型结构型 行为型 类 工厂方法( f a c t o r ym e m o d )适配器( a d a p t e r )解释器( i n t e r p r e t e r ) 模板方法( t e m p l a t e ) 抽象工厂( a b s t r a c tf a c t o r y )适配器( a d a p t e r )职责链( c h a i no f r c s p ) 范 生成嚣c o u i l d e o桥接( b r i d g e l 命令( c o m m a n d ) 对 原型( p r o t o t y p e )复合( c o m p o s i t e )迭代器( i t e r a t o r ) 单件( s i n g l e t o n )装饰( d e c o r a t o r )中介者( m e d i a t o r ) 围 象 外观( f a c a d e l备忘录( m e m e n w ) 享元:;( f l y w e i g h t ) 观察者( o b s e r v e r ) 代理( p r o x y ) 状态( s t a t e ) 策略( s t r a t e 盈,) 访问;老 ( v i s i t o r ) 框架是一类可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、 协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类及其实例之 间的协作的方法,它为构件的复用提供了上下文。框架的主要优点是提供了改善 软件模块性、一致性、扩展性和“反转控制”的手段,进而提高软件的重用和品 质保证。现在框架专注于具体的业务单元和应用领域,特别是c o r b a ,j 2 e e 和微软的n e t 等框架的出现和成熟,它 1 封装了构建一个分布式应用的基础服 务和功能组件,使软件开发工程师把注意力集中在业务分析,而不用考虑每层结 构的实现,能够更快的开发出高质量的系统以满足应用需求。 框架的开发不是一件容易的事,它是一个需要领域和设计经验的反复过程。 设计模式可以简化这个过程。因为它提供了对过去经验的抽象。框架能够高度抽 象同一个领域内的问题,进而降低开发难度和强度。因此,在软件开发过程中把 框架和模式配合起来使用,可以极大地提高软件的重用。框架和模式都是提高软 件复用的技术手段,它们之间相互联系但又有所侧重。设计模式比框架更抽象。 应用框架能够以代码的形式表示,而设计模式只有其实例才能表示为代码。框架 能够使用程序设计语言写出来能够被直接执行和复用,雨设计模式的每一次复 用,都需要被实现。设计模式是比框架更小的体系结构元素,一个典型的框架包 括了多个设计模式。框架比设计模式更加特征化,框架总是针对一个特定的应用 第7 页 构件检索及组装技术应用研究 领域,而设计模式一般经过了多个应用领域的检验。 框架是面向对象的类库的扩展,框架由一个应用相关联构件家族组成,这些 构件协同工作形成了框架的基本结构骨架,并在此基础上通过构件的组合进一步 构建一个完整的应用系统。类库构件没有应用领域特征,可以在较小的范围内重 用,它们应用层次较低,在一般系统中普遍使用。在系统设计的实际过程中,框 架和类库是两种互为补充的技术。如果说类库通常是代码重用,而设计模式是设 计重用,那么框架则介于两者之间,部分代码重用,部分设计重用,有时分析也 可重用。类库、框架等是软件开发过程中常用的几种提高软件质量、降低开发工 作量的有效软件复用技术。要利用好这些技术,尤其是模式和框架还面临许多挑 战,这是一个巨大工程,前期的难度和工作量都较大,是一个长时问的积累。同 时还要考虑部件的集成性、可维护性,最重要的是标准的建立。 2 2 构件技术与w e b 服务 w e b 服务是指由企业发布的完成其特别商务需求的在线应用服务,其它公司 或应用能够通过i n t e m e t 来访问并使用这项在线服务。w e b 服务技术促进了 i n t e m e t 上企业之间的协作,使用w e b 服务可以使合作伙伴的信息系统之间更容 易地进行通信。 w e b 服务技术随着分布式技术而迅速发展,传统的分布式对象模型:公用对 象请求代理架构( c o r b a ) 、分布式组件对象模型( d c 0 m ) 、远程方法调用( r m i ) 已不适用于极端异构的i n t e m e t 环境。因为它们各自有一套独立的体系结构和私 有协议,不同模型的应用系统之间通信十分不便;客户端与服务端必须紧密耦合, 一旦服务端的接口和执行方式发生变化,客户端将无法执行。 w e b 服务是一种新的面向服务的体系结构,其中定义了一组标准协议,用于 接口定义、方法调用、基于i n t e m e t 的构件注册以及各种应用的实现。同传统的 分布式模型相比,w e b 服务体系的主要优势在于:协议的通用性,w e b 服务利 用标准的i n t e m e t 协议( 如h t t l , ,s m t p 等) ,解决的是面向w e b 的分布式计算, 而c o r b a 、d c o m 、r m i 使用私有的协议,解决企业内部的对等实体间的分布 式计算;完全的平台、语言独立性,w e b 服务进行了更高程度的抽象,只要遵守 w e b 服务的接口即可进行服务的请求与调用。而c o r b a 、d c o m 、r m i 等模型 第8 页 构件检索及组装技术应用研究 要求在对等体系结构间才能进行通信。例如,c o r b a 需要每个连接点都使用对 象请求代理( 0 r b ) :d c o m 需要每个连接点都使用w i n d o w s 平台;r n i i 需要 每个连接点都使用j a v a ,否则双方是不能通信的。 在电子商务市场中,要求所有的参与者都采用一个基于某种语言和平台的模 型是不现实的。而w e b 服务结合了面向组件方法和w e b 技术的优势,利用标准 协议和x m l 数据格式进行通信,具有良好的普适性和灵活性。在i n t e r n e t 这个 巨大的虚拟计算环境中,任何支持这些标准的系统都可以被动态定位以及与网络 上的其它w e b 服务交互,任何客户都可以调用该服务而不管它们处在何处,突 破了传统的分布式计算模型在通信、应用范围等方面的限制,允许企业和个人快 速、廉价地建立和部署全球应用。 w 曲服务是一种能够被描述并通过网络发布、发现和调用的自包含、自描述、 松散耦合的软构件,在w e b 服务的体系中,所有的应用实体都被抽象成服务。 其中包括三个实体和三种操作:服务提供者,服务请求者,服务代理;与w 曲 服务有关的操作有以下三种:发布,服务提供者需要首先将服务进行一定的描述 并发布到注册服务器上,在发布操作中。服务提供者需要通过注册服务器的身份 验证,才能对服务描述信息进行发布和修改;查找,服务请求方根据注册服务器 提供的规范接口发出查询请求,以获取绑定服务所需的相关信息;绑定,服务请 求方通过分析从注册服务器中得到的服务绑定信息,包括服务的访问路径、服务 调用的参数、返回结果、传输协议、安全要求等,对自己的系统进行相应配置, 进而远程调用服务提供者所提供的服务。w e b 服务的结构如下图所示。 查找 w s d l , 绑定 卜 图2 - 1w e b 服务结构 第9 页 构件检索及组装技术应用研究 w e b 服务以技术栈的形式规范了体系中的各类关键技术,包括服务的描述、发布、 发现以及消息的传输等,w e b 服务采用的各种技术如下表所示: 表2 - 2 w 西艇务技术拽 工作流w s f l 统一描述、发现、集成 u d d i 服务描述w s d l 消息 s o a p 可扩展标记语言 x m l 传输协议h t t p 等 w e b 服务不同于已有的构件对象模型及相关的对象模型协议,如c o r b a 和 i i o p 、c o m 、d c o m 和r m i ,w e b 服务可以用任何语言编写,并且可以使用h t t p 访问,从技术上看一个w e b 服务可以通过任何t c p i p 网络访问,只要网络中 使用s o a p 标准集成,使用w s d l 标准进行自描述,使用u d d i 标准在一个公 共的或者私有的目录中注册和发现。h t t p 提供了分布式应用之间的通信机制, x m l 定义了数据交换和描述的格式,s o a p 是调用w e b 服务的协议,w s d l 描 述w e b 服务的格式,而u d d i 是注册、查找和使用w e b 服务的中枢组织。 2 3 构件库技术与d u c l 系统介绍 可复用构件的表示、存储、检索是构件库和软件复用的重点,基于分布式的 应用越来越广泛,分布式构件技术如e j b ,d c o m ,c o r b a 也得到了广泛应用 分布式构件库系统d u c l 能够保存和管理多形态、多层次的可复用软件构件, 将面向复用的软件开发和基于复用的开发结合起来,构件库自身也支持分布式应 用,用户可也通过浏览器或者客户端远程访阀该系统。为了对d u c l 系统有更 全面的了解,下面就系统所涉及的有关概念进行简单描述。 ( 1 ) 构件 d u c l 系统中的构件定义为软件开发过程中不同阶段( 分析、设计、编码 测试、部署、维护等) 所产生的不同形态( 类、框架等) ,不同表示( 源代码、 二进制文件) 的软件实体。在本文第5 部分构件的合成与组装中,构件主要是指 源代码或二进制文件形式的类、框架等。 第l o 页 构件检索及组装技术应用研究 ( 2 ) 构件库的角色 d u c l 构件库系统主要面向分布式应用,对采用分布式技术的构件进行管 理,它并不针对特定的应用领域。 ( 3 ) 构件库的用户 构件库用户是指从d u c l 构件库获取复用服务的用户。用户所感兴趣的应 用领域和构件种类不尽相同,他们所具有的复用经验也不一样,他们可以在不同 的地理区域通过统一的用户界面来访问构件库系统。用户的数量和访问频度可以 不受限制。 ( 4 ) 构件的复用成本 我们把单个构件对用户的复用成本定义为检索成本、获取成本、理解成本、 修改成本和组装成本的总和,单个构件对构件库的复用成本定义为获取成本、评 价认证成本、分类存储成本的总和,由于用户的访问数量巨大,因此建立和维护 构件分类索引的成本远远小于由此减少的用户检索理解成本。 ( 5 ) 构件库的数据模型 我们为d u c l 构件库中的构件提供了一个统一的数据模型,为了满足不同 构件库之间的互操作要求,并屏蔽模型变化对访问接口的影响,需要建立更灵活 的系统架构和提供映射机制。 ( 6 ) 构件的类型和数量 d u c l 构件库中的构件形态和实体表示都可能不相同,构件的数量巨大,并 且可以不断更新变化,需要自动工具辅助人工进行构件的分类检索。 2 3 1d u c l 系统框架 d u c l 构件库系统主要由构件的存储管理、分类检索、适配组装等几部分组 成,各部分功能简介如下: ( 1 ) 存储管理 d u c l 构件库系统的基本功能是存储构件和构件相关信息,构件的描述信息 定义构件的功能和用途,还可以精确定义构件的语义,通过提取构件相同特征对 构件分类,构件的分类信息也被存储,构件还有一些相关属性需要存储,包括构 第1 i 页 构件检索及组装技术应用研究 件的版本、历史信息,名称,作者等,构件的类型包括类、框架、模块等,构件 的存在形式可以是源代码或是二进制代码等。 ( 2 ) 分类检索 构件的分类检索是d u c l 构件库的一个研究重点,目前应用比较广泛的是 基于信息科学的方法,包括枚举、刻面、属性值、关键词,正文检索等,刻面分 类方法是把术语置于一定的语境中,并从反映构件本质特征的不同视角( 刻面) 对构件进行分类,每个刻面中有一组术语,术语间由于有一般特殊关系和同义词 关系而形成结构化的术语空间。构件的描述术语仅限在给定的刻面之中选取,在 术语空间中游历可以帮助复用者理解相关领域,术语空间可以演变。在青鸟构件 库中目前有5 个刻面,应用环境、应用领域、功能、抽象层次、表示方法,d u c l 构件库系统中从用户检索构件时最感兴趣的角度出发,定义了构件描述的刻面方 案,同时结合属性值方法等对构件分类检索。 ( 3 ) 适配组装 构件检索的结果通常并不能满足所有要求,对于与需求相关或相近的构件, 需要通过构件的适配方法使之满足需求。同时由于构件模型的异构性和运行平台 的异构性,导致了构件互操作问题的出现。利用已开发完成的商业构件或可复用 构件组装形成应用系统,必须首先解决好这些问题,在d u c l 构件库的组装框 架中通过构件包装器使客户端独立于具体的构件模型,提供了与具体构件模型的 映射机制 适配组装框架 i构件分类检索 图2 - 2 d u c l 系统框架图 第1 2 页 构件检索及组装技术应用研究 2 。3 2d u c l 数据模型 d u c l 构件库系统中的构件采用统一的数据模型,构件的实体表示可能是有 结构的或无结构的,对于有结构的实体可以进行基于内容的检索和版本控制,构 件目录信息包括描述性信息和组织性信息,描述性信息包括构件的大小、版本、 发布时间等属性,组织性信息包括构件类之问、构件与构件类之间、以及构件之 间的关系,构件d 可以用于库中唯一标识构件,可以定义在分布的多库环境中 全局唯一标识u i d ,下图给出了d u c l 构件库系统采用的数据模型。 2 3 3d u c l 中构件的描述 图2 - 3 构件数据模型 在d u c l 系统中,对构件的描述从多个方面进行,这些描述信息彼此不重叠, 从而减少描述信息的冗余,为了提高描述的效率和有效性,采用自动或半自动的 方式辅助人工生成。定义了构件的刻面描述支持基于刻面的检索,为了进一步自 动适配和组装构件的需要,对构件的接口信息进行形式化的描述。对于构件中已 包含的描述信息采用自动生成的方法,提高了描述的精度和效率。 我们从用户在检索构件时最感兴趣的角度出发,定义了构件描述的刻面方 案, ( 1 ) 应用领域:构件可用于的业务领域和子领域,如p o s ,c a i 等。 ( 2 ) 操作系统环境:该构件运行时必须依赖的操作系统环境,如w i n d o w s , 第t 3 页 构件检索及组装技术应用研究 u n i x 等。 ( 3 ) 容器类型:该构件运行依赖的容器,如n e t ,j 2 e e 等。 ( 4 ) 构件形态:构件的存在形态,如源代码,二迸制文件等。 对构件的接口描述主要实现以下功能,在工具支持下实现自动或半自动构件复 合,利用接口描述中的形式化信息进行构件验证,利用规约匹配技术进行构件查 询。我们借鉴了青鸟系统嘲中构件描述语言,对构件的接口信息进行形式化描述, 下面给出了描述的b n f 范式。 c o m p o n e n td e f i n i t i o n :;c o m p o n e mn a m e i n t e r f a c e i m p l e m e n t a t i o n i n t e r f a c e := i n t e r f en a m e p r o v i d e r m e t h o dd e c l * r e q u i r em e t h o dd e e p 】 【p m t o c o ld e f i n i t i o n c o m p o n e n ts t a t e m e t h o dd e c l7 - n e p m t o c :0 ld e f i n i t i o n := p r o t o c o i s t a t ed e f i n i t i o n * s t a t ed e f i n i t i o n := s t a t en a m e t r a n s i t i o n * s t a t en a m e := ( i n i t ) 】n a m e t r a n s i t i o n := 【c o m p o n e mt e r m 】 d i r o e t i o n c o m p o n e n tt e r m := n a m el d e n t i t yc o n s t r a i n tt e r m i d e n t i t yc o n s t r a i n tt c r m := i d + d f l e e t i o n := + l c o m p o n e n ts t a t e :i di d e n t i t yl i s t i m p l e m e n t a t i o n := m e t h o dd e p m e t h o dd e f := n a m e ( p a r al i s t * ) c o n d i t i o n 】 c o n d i t i o n :2p r e c o n d i t i o np o s tc o n d i t i o n c o m 构件定义了二进制的兼容规范,可以通过直接分析其二进制内容获取 构件中包含的描述信息。同时内省( i n t r o s p e c t i o n ) 或反射( r e f l e c t i o n ) 机制能够将 构件的内部结构( 属性、方法、事件) 展现给外部,c o m 构件可以通过i u n k n o w 接口中的q u e r y i n t v r f a c e 方法,j a v a , b e a n 不需要构件开发者做这种额外的工作, 第1 4 页 构件检索及组装技术应用研究 开发者对构件的属性、方法、事件的命名遵守一定规范,通过标准j a v a b e a n a p i 就可以了解到构件内部信息。因此构件的描述信息采用自动生成的方式完成。 2 4 本章小结 本章首先介绍

温馨提示

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

评论

0/150

提交评论