




已阅读5页,还剩58页未读, 继续免费阅读
(计算机软件与理论专业论文)基于web服务和软件体系结构的构件组装技术的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈尔滨工程大学硕士学位论文 捅矍 基于构件的软件工程能够有效地提高软件开发的质量和效率,丽构件组 装技术是实现基于构件的软件工程的关键。快速发展的i n t e m e t 计算平台与 软件工程的结合更使软件工程具有了更广阔的发展空间。w e b 服务是下一代 软件系统的核心技术之一,同时本文从软件体系结构的角度出发,分析了目 前国际流行的和最新的软件体系结构,给出了支持w e b 服务、插头插座式体 系结构和基于灵巧连接件体系结构的构件模型,分别定义了初级组装和高级 组装的概念,并在此基础上结合插头插座式体系结构和基于灵巧连接件的体 系结构提出了一种对构件首先进行初级组装,然后进行高级组装的构件组装 框架,在系统设计时首先对系统进行分析,将系统划分为相对独立的子系统, 对各个子系统所需使用的构件进行服务分析,将具有对偶服务的构件进行初 级组装,然后根据基于灵巧连接件体系结构的要求进行商级组装。这种组装 方式可以保持基于灵巧连接件体系结构和插头插座式体系结构的优点,同时 降低系统因全部使用基于灵巧连接件体系结构的接口和控制的复杂性。为提 高软件重用率、软件开发效率和质量提供了可能。同时将组装人员分为初级 组装人员和高级组装人员,使不同人员关注同一构件的不同侧面,从而为人 员的分工、协作打下了良好的基础。 关键词:软件工程;软件复用;软构件技术;构件组装技术;w e b 服务;软 件体系结构 堕玺鎏三堡銮主堡圭兰堡鲨兰 a b s t r a c t c o m p o n e n tb a s e ds o f t w a r ee n g i n e e r i n gc a ne f f e c t i v e l yi m p r o v et h es o f t w a r e d e v e l o p i n gq u a l i t ya n de f f i c i e n c y , a n dt h ec o m p o s i t i o nt e c h n i q u ei so n eo ft h ek e y p o i n t s o ft h ec o m p o n e n tb a s e ds o f t w a r e e n g i n e e r i n g t h ec o m b i n a t i o no f f a s t - d e v e l o p e di n t e m e ta n ds o f t w a r ee n g i n e e r i n gb r i n g st h es o f t w a r ee n g i n e e r i n g g r e a ts p a c ef o rd e v e l o p i n g ,w e bs e r v i c ei so n eo f t h ec o r et e c h n o l o g i e so f t h en e x t g e n e r a t i o nd i s t r i b u t e ds o f t w a r es y s t e m s ,m e a n w h i l e ,f r o mt h ep o i n to fs o f t w a r e a r c h i t e c t u r e ,t h ei n t e m a t i o n a lp r e v a l e n ta n dt h en e w e s ts o f t w a r ea r c h i t e c t u r e sa r e a n a l y z e di n t h i sp a p e ra n dac o m p o n e n tm o d e lw h i c hs u p p o r t sw e bs e r v i c e , p l u g s o c k e ta n das m a r t - c o n n e c t o r - b a s e ds o f t w a r ea r c h i t e c t u r ei sp r o p o s e da n d t h ec o n c e p t so fb a s i ca n da d v a n c e dc o m p o s i t i o n sa r ed e f i n e da n dac o m p o n e n t c o m p o s i t i o nf r a m e w o r ki sp r o p o s e d t h i sc o m p o s i t i o nf r a m e w o r km a i n t a i n st h e a d v a n t a g e so fb o t ht h ea r c h i t e c t u r e sa n dt h ec o m p l e x i t yr e d u c t i o no fi n t e r f a c ei s c o n t r o l l e d ,p r o v i d e st h ep o s s i b i l i t yo fi n c r e a s i n gs o f t w a r er e u s a b i l i t y , d e v e l o p i n g e f f i c i e n c ya n dq u a l i t y t h ec o m p o s i t i o np e r s o n n e la l ed i v i d e di n t ot w o g r o u p s ,s o t h e yc o n c e md i f f e r e n ta s p e c t so f t h ec o m p o n e n t s ,w h i c hc a nh e l pa b o u tt h ef u t u r e w o r k k e y w o r d s :s o f t w a r e e n g i n e e r i n g ;s o f t w a r er e u s e ;s o f t w a r e c o m p o n e n t ; c o m p o n e n tc o m p o s i t i o n ;w e bs 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 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导 下,由作者本人独立完成的。有关观点、方法、数据和文 献的引用已在文中指出,并与参考文献相对应。除文中己 注明引用的内容外,本论文不包含任何其他个人或集体已 经公开发表的作品成果。对本文的研究做出重要贡献的个 人和集体,均已在文中以明确方式标明。本人完全意识到 本声明的法律结果由本人承担。 作者( 签字) : 立丛 日期:撕年2 月2 2 曰 堕玺鎏三堡盔主堡圭兰垡笙苎 第1 章绪论 随着软件技术的不断发展,软件设计的核心已经超越了传统的“数据结 构+ 算法= 程序”的设计模式,取而代之的是“构件开发+ 基于体系结构的 构件组装”的思想。随着软件规模的不断扩大,软件开发的质量和效率越来 越成为软件人员关注的焦点。基于构件的软件工程( c o m p o n e n tb a s e d s o i t w a r ee n g i n e e r i n g ,简称c b s e ) 被认为是解决这一问题的有效方法。基于 构件的软件工程是在软件复用和软件构件技术的基础之上发展起来的一种软 件系统开发方法。软件复用是在软件开发与应用中避免重复劳动的解决方案, 其出发点是应用系统的开发不再采用一切“从零开始”的模式,而是以已有 的工作为基础,充分利用过去应用系统开发中积累的知识、经验与产品,其 核心是软件构件技术。软件构件技术是以构件为研究对象,以构件的制作、 管理、组装以及与之相关的一系列活动为主要研究活动的技术,其核心技术 是构件的组装技术。目前,国内外对于软件构件技术的研究方兴未艾,一些 研究成果已经被应用于软件项目的开发过程中,但是,软件构件技术仍然还 不成熟,特别是在构件组装技术方面,理论研究同实际应用之间还有一段很 长的距离。因此,对于软件构件技术,特别是对于构件组装技术的研究在今 后一段时间里仍然是人们研究的热点。 1 1 课题背景 2 0 世纪9 0 年代以来,信息技术范围内最具深远影响的技术进步是i n t e m e t 的出展和普及,并迅速发展成为当今世界上覆盖面最广、规模最大、信息资 源最丰富的计算机信息网络,深刻地改变了传统的技术以及应用、业务和产 业模式。目前,计算机应用已经全面进入i n t e m e n t 时代。i n t e r n e t 作为一个 技术复杂的网络平台,促进了新的底层技术、新的操作系统、新的编程语言、 新的软件开发方法学和新的应用领域的出现。为更有效地进行i n t e m e t 上的 软件开发,充分利用i n t e m e t 的潜力,需要屏蔽网络的复杂性和异构性,使 l 哈尔滨工程大学硕士学位论文 人们能够跨越网络透明地访问各种信息资源并协同处理,实现“t h en e t w o r k i sc o m p u t e r ”的概念。软件形态也必须适应和利用这种变化。 在软件复用技术的研究和应用过程中,人们越来越重视软件的高层结构, 以使这种结构能应用于不同的软件开发之中,从而提高软件复用的粒度。软 件体系结构便是在这种目的的驱动下产生和发展的。在构件组装中,软件体 系结构定义了组成系统的构件与构件之间相互作用的关系。体系结构是系统 实现的蓝图,为构件的集成组装提供基础和上下文。 不同的软件系统,对于构件组装技术的应用方式会有所不同。目前,对 于构件组装技术的应用还多半停留在手工组装的阶段,半自动化甚至自动化 的构件组装的实现还有待时日。本文着眼于构件表示,组装框架以及与之相 关的技术理论的研究,为实现构件组装自动化进行一些理论上的探讨。 1 2 国内外研究现状 软件重用( s o f t w a r er e u s e ,又称软件复用或软件再用) 的概念对于大家 并不陌生。早在1 9 6 8 年的n a t o 软件工程会议上就已经提出可复用库的思 想。软件复用技术是c b s e 的支撑技术,而软件构件技术则是c b s e 的核心 技术。在那次会议上,m e l l r o y 在论文大量生产的软件构件中提出“软件 组装生产线”的思想后,采用构件技术实现软件复用,采用“搭积木”的方 式生产软件,成为软件开发人员的梦想。 九十年代中后期,面向对象技术的出现和互联网时代的到来,为软件构 件技术的研究和应用提供了良好的技术支持和实践平台,构件的概念得到了 更大的扩充,由当初的子程序到现在的系统级抽象,构件技术正在走向成熟。 面向对象技术对一组类的组合进行封装,隐藏了具体的实现细节,只是通过 接口向外提供服务和请求环境的服务。互联网的出现,大大增加了应用软件 的复杂性,软件开发人员采用分层的思想,通过将一个大的系统分割成不同 层次的模块,并采用构件的方式来实现这些模块,然后将这些构件组装成为 一个大的系统软件,不仅达到了合理分工,提高工作效率的目的,而且这样 做出来的系统还具有很高的质量。可以说,是面向对象技术和互联网促进了 软件复用和软件构件技术,特别是构件组装技术的发展。 2 堕玺鎏三堡盔主鎏圭主譬笙銮 近年来,对于构件组装技术的研究和应用正朝着多角度、全方位的方向 发展。有的人主张从软件体系结构的角度来研究构件组装技术,有的人则从 基于a g e n t 的角度来研究构件组装技术,还有的人希望能够开发出一种构件 组装自动机,从而达到构件组装自动化的目标,等等。构件组装技术已经在 图形用户界面设计、第四代语言和编译器构造等成熟领域中取得了定程度 的成功。目前,对于构件组装技术的研究主要集中在以下几个方面: ( 1 ) 件规范化及其描述规范化; ( 2 ) 件组装框架及其描述规范化; ( 3 ) 构件组装操作及其描述规范化; ( 4 ) 构件组装描述语言; ( 5 ) 可视化的构件组装平台; ( 6 ) 构件的封装; ( 7 ) 构件组装技术的应用。 在构件规范化方面,学术界和业界已经取得一定的成果,如o m g 的 c o r b a 、m i c r o s o f t 的c o m 、s u n 的j a v a b e a n e j b 。但是,对于构件的描述 的规范化还没有统一,采用什么样的形式来描述构件,需要描述构件的那些 方面的属性,依赖于不同公司的构件组装平台。这样的描述,不利于构件在 不同的组装平台上进行快捷的组装。但有一点可以肯定的是,尽管不同的构 件组装平台对于构件的描述要求不样,主要的描述还是差不多,这又给构 件描述规范化留下了可能性。 软件开发人员在开发一个系统的时候,往往要设计出这个系统的框架, 构件组装同样需要这样的框架,并且需要用某种语言精确、正确的描述出来, 这样才能作为构件组装自动机的输入。构件组装自动机就是根据以上的三种 描述来组装系统。但是,目前还没有出现那种通用性较强的构件组装平台, 一般的构件组装都是通过客户程序员采用手工的方法实现的。 构件组装操作是构件组装技术的一个重要研究课题。构件与构件之间不 仅仅会出现简单的组装操作,而且也会出现复合的组装操作。目前,对于构 件组装操作的研究已经有的进展,诸如什么样的组装操作是不可再分的简单 的组装操作,什么样的组装操作是可以通过简单的操作复合而成,但是,一 个最小的、完备的、正确的简单组装操作集到底应该包括哪些组装操作还没 3 哈尔滨工程大学硕士学位论文 有定论。对于构件组装操作的描述也没有达到统一的规范化程度,这些描述 是构件组装自动机的必需描述。 在构件组装描述语言方面,国外已有许多的研究,如b m l ( b e a n m a r k u p l a n g u a g e ) 和c o m l ( c o m p o n e n tm a r k u pl a n g u a g e ) 。这些语言都要求具有 平台无关性,但是都仅仅是对组装的描述,不涉及与之相关的信息。 国内从事这方面的研究的机构也有不少,比较有名气的如北京大学软件 工程研究所、中国科学院软件研究所、上海普元、互联网实验室。其中,北 京大学软件工程研究所的青鸟工程已经取得了丰富的成果,在构件组装体系 结构,构件组装的机制以及构件组装的行为推导方面都均有成果发表。中科 院软件所在构件技术方面的主要研究成果是信息化基础软件核心平台。上海 普元把互联网相关技术同先进的构件复用技术以及可视化开发技术完美地结 合起来,创造了一套具有国际先进水平的面向构件的互联网的应用基础平台 e o s 。互联网实验室于2 0 0 4 年1 月1 6 日发布了面向构件的互联网应 用基础平台研究报告是目前国内较为详细的关于构件技术研究的专业报告。 其它的机构在构件组装技术方面也有不少研究成果,但都只是对与构件组装 相关的技术的研究,还没有真正实现构件组装的自动化。可以预见,组装自 动化将是今后对软件构件技术,特别是对构件组装技术的研究重点。 1 3 课题所完成的工作和本文的组织结构 1 3 1 课题所做的工作 针对本文前面在课题背景一节中提到的问题以及当前软件构件技术的研 究热点,本文在如下方面开展研究工作: ( 1 ) 对于构件组装时的接口进行一定的研究; ( 2 ) 提出一个基于w e b 服务软件体系结构的构件模型; ( 3 ) 给出一个在i n t e m e t 计算环境下进行构件表示和查找的方法: ( 4 ) 提出一种构件组装描述语言; ( 5 ) 给出一个构件组装系统的整体框架的设计; 4 堕玺鎏三堡盔兰璧土主垡笙三 ( 6 ) 给出不同形式构件的组装方式。 1 3 2 本文的组织结构 本文的组织结构安排如下: 第1 章是绪论,介绍本文的课题背景、国内外研究现状和本文的工作以 及对本文的组织安排。 第2 章对相关技术进行了介绍,包括软件复用与软件构件技术、w e b 服 务、x m l 语言和软件体系结构。 第3 章是本文的主体部分,首先对构件组装技术进行了概述;接着给出 构件的模型以及基于此的连接件模型;在第四节,给出了在l n t e m e t 环境下 基于w e b 服务的构件的查找方法;第五节阐述了基于软件体系结构的构件组 装;第六节给出了一种基于软件体系结构的构件组装的集成框架;最后给出 了构件组装的描述语言。 第4 章也是本文的主体部分之一,在本章中,作者给出了基于第三章讨论 的应用实例。 在结论中,对本文的内容给出一个总结,并在此基础之上提出以后可能 的研究方向。 堕玺鎏三翟盔主鎏圭主垡鎏銮 第2 章相关技术 软件复用的核心技术是软件构件技术,软件构件技术的核心技术是构件 组装技术,因此,要研究构件组装技术,首先就必须了解什么是软件复用和 软件构件技术。本文对于构件组装技术的研究是基于w e b 服务和软件体系结 构的,因此,对于w e b 服务和软件体系结构的了解也是必要的。 2 1 软件复用技术 通常情况下,应用软件系统的开发过程包含以下几个阶段:需求分析、 设计、编码、测试、维护等。当每个应用系统的开发都从头开始时,其中必 然存在大量的重复劳动,如:用户需求获取、需求分析和设计、编码、测试 相文档工作等方面都会有重复i l 】。 软件复用是在软件开发中避免重复劳动的解决方案,出发点是应用系统 的开发不再采用一切“从零开始”的模式,而是以已有的工作为基础,充分 利用过去应用系统开发今积累的知识和经验,如:需求分析结果、设计方案、 源代码、测试计划及测试案例等,从而将开发的重点集中于应用的特有构成 成分。 2 1 1 软件复用的定义 软件复用是指在开发新的软件系统时,对已有软件的重新使用。该软件 可能是已存在的软件,也可能是专门设计的可复用构件。从软件工程角度看, 软件复用发生在构造新的软件系统的过程中。例如,在一个程序的构造期间, 对已存在的源代码的使用就是软件复用。但在程序执行期间重复调用某段源 代码,则不属于软件复用;另外,程序的重复运行、为完成分布处理而进行 的拷贝也不属于软件复用。最为系统的、最为工程化的软件复用活动是基于 复用库的软件复用。一般来说,基于复用库的软件复用过程可归纳为以下几 6 哈尔滨工程大学硕士学位论文 步:( 1 ) 认知:即认识到可以有复用的机会;( 2 ) 分解及抽象;( 3 ) 分类并建立复 用库;( 4 ) 检索与选择;( 5 ) 对复用库中的构件具体化;( 6 ) 重新组装。软件的可 复用性是指某软件产品在构造新的软件系统的过程中能再次被使用的能力 埘。这个定义表明软件复用必须包括两个方面的内涵f 3 】: ( 1 ) 可复用软件是指为了复用目的而设计的软部件,这些软部件不仅仅 表现为代码,它还可以是:分析、设计、测试数据、原型、计划、文档、模 板、框架等等: ( 2 ) 系统地使用这些软部件作为构筑模块,来建立新的系统或者更高层 次上的软部件。 以下的类比有助于进一步说明软件复用的概念,在软件演化的过程中, 重复使用的行为可能发生在三个维上i l l : ( 1 ) 时间维:使用以前的软件版本作为新版本的基础,加入新的功能, 适应新需求,即软件维护: ( 2 ) 平台维:以某平台上的软件为基础,修改其和运行平台相关的部分, 使其运行于新平台,即软件移植; ( 3 ) 应用维:将某软件( 或其中构件) 用于其它应用系统中,新系统具 有不同功能和用途,即真正的软件复用。 这三种行为中都重复使用了现有的软件,但是,真正的复用是为了支持 软件在应用维的演化,使用“为复用而开发的软件( 构件) ”更快、更好地开 发新的应用系统。 2 1 2 软件复用的形式及分类 软件复用的形式( 或手段) 很多,复用的级别有大有小。主要有以下几 种: ( 1 ) 源代码模块或者类一级的复用。这是最基本的软件复用形式。 ( 2 ) 二进制形式的复用。如组件复用。 ( 3 ) 组装式复用。比如:把好几个应用程序的功能集成在一起。例如, 要建立一个门户站点应用,登陆用户既可以查询天气情况,又可以查看股市 行情,还可以在线购物。这些功能由不同网络应用服务供应商提供,通过这 7 堕玺鎏三垄盔誊鎏圭主笙笙塞一 种组装式复用,就可以非常容易地把上述功能都集成到新的门户站点中。 ( 4 ) 分析级别复用。 ( 5 ) 设计级别复用。 ( 6 ) 软件文档复用。 为软件复用分类比较困难,因为软件复用技术众多,一种复用技术可以 包括多种复用形式。比如说:框架即可以包括代码级复用,也可以包括设计 级重用。按照软件复用所应用的领域范围,可以将软件复用分为横向复用和 纵向复用口1 。 ( 1 ) 横向复用是指复用不同领域中的软件元素,例如数据结构、分类算 法、人机界面构件等。标准函数库是一种典型的原始的横向复用机制。 ( 2 ) 纵向复用是指在类具有较多公共性的应用领域之间进行软部件 的复用。其活动主要包括三个步骤:首先进行域分析,根据应用领域的特 征及相似性预测软部件的可复用性;然后进行软部件的开发,并对具有复 用价值的软部件进行一般化,以便它们能够适应新的类似的应用领域;最 后将软部件及其文档保存在软部件库里,成为可供后续项目使用的可复用资 源。 按照复用的对象,可以将软件复用分为产品复用和过程复用f l l 。 ( 1 ) 产品复用指复用已有的软件构件,通过构件集成( 组装) 得到新的 系统。它是目前现实的、主流的复用途径。 ( 2 ) 过程复用指复用已有的软件开发过程,使用可复用的应用生成器来 自动或半自动地生成所需要的系统。过程复用依赖于软件自动化技术的发展, 目前只适用于些特殊的应用领域。 按照复用方法对软件复用进行分类,同按照复用对象对软件复用进行分类所 得到的结果几乎一样,这是因为,组合式复用只能是对产品进行组合,而过 程式复用,目前的实现方法就是生成器。因此,目前可以认为这两种分类方 法是等价的。 按照复用的方法,可以将软件复用分为组合式复用和生成式复用【d 】。 ( 1 ) 组合式复用。这种复用方法对已有构件不作修改或作部分修改,就 将构件组装在起,从而构造出新的目标系统或者更高一级的构件。u n i x 中的s h e l l 语言和管道采用的就是典型的组合式复用思想,其它如子程序技 8 堕玺鎏三堡盔兰堡圭主垡笙銮 术、软件i c 技术等也是采用组合式复用的例子。 ( 2 ) 生成式复用。生成式复用技术利用可复用的模式,通过应用生成器 产生新的程序或程序段,产生的程序可以看作是模式的实例。程序编译器即 是典型的生成式复用的例子。生成复用的复用效率一般比较高,但是实现起 来比较困难。其研究重点在于如何形式化地表示特定领域的规格说明语言、 系统处理过程及元生成器等。 按照对可复用信息进行复用的方式,可以将软件复用分为黑盒复用和白 盒复用t ”。 黑盒复用指对已有的构件不作任何修改,直接进行复用。这是一种理想 的复用方式。 白盒复用指已有构件不能完全符合用户的需求,需要根据用户需求进行 适应性修改后才可以复用。多数复用是这种形式的复用,这是因为多数构件 都不能完全同用户的需求吻合,其适应性修改是必需的。 2 1 3 实现软件复用的相关因素 实现软件复用的关键因素( 技术因素和非技术因素) 主要包括软件构件 技术( s o f t w a r ec o m p o n e n tt e c h n o l o g y ) 、领域工程( d o m a i ne n g i n e e r i n g ) 、 软件构架( s o f t w a r e a r c h i t e c t u r e ) 、软件再工程( s o t t w a r e r e e n g i n e e r i n g ) 、开 放系统( o p e ns y s t e m ) 、软件过程( s o f t w a r ep r o c e s s ) 、c a s e 技术和各种非 技术因素。各种因素互相联系,互相影响,共同影响软件复用的实现,其 关系如图2 1 所示。 ( 1 ) 软件构件技术。构件是指应用系统中可明确辨识的构成成分,而可 复用构件是指具有相对独立的功能和可复用价值的构件。本文将在2 2 节中, 对软件构件技术进行详细的叙述。 ( 2 ) 软件构架。研究软件构架对于进行高效的软件工程具有非常重要的 意义:通过这一研究,有利于发现不同系统在较高级别上的共同特性:获得 正确的构架对于进行正确的系统设计非常关键;对各种软件构架的深入了解, 使得软件工程师可以根据一些原则在不同的软件构架之间作出选择;从构架 的层次上表示系统,有利于系统较高级别性质的描述和分析。特别重要的是, 9 哈尔滨工程大学硕士学位论文 在基于复用的软件开发中,为复用而开发的软件构架可以作为一种大粒度的、 抽象级别较高的软件构件进行复用,而且软件构架还为构件的组装提供了基 础和上下文,对于成功的复用具有非常重要的意义。 ( 3 ) 领域工程。领域工程是为一组相似或相近系统的应用工程建立基本 能力和必备基础的过程,它覆盖了建立可复用软件构件的所有活动。领域工 程包括三个主要的阶段:领域分析、领域设计和领域实现。其产品( 可复用 的软件构件) 包括:领域模型、领域构架、领域特定的语言、代码生成器和 代码构件。 ( 4 ) 软件再工程。软件复用中的一些问题与现有系统密切相关。如:现 有软件系统如何适应当前技术的发展及需求的变化,采用更易于理解的、适 应变化的、可复用的系统软件构架并提炼出可复用的软件构件? 现存大量的 遗产软件系统( l e g a c ys o t t w a s e ) 由于技术的发展,正逐渐退出使用。如何对这 些系统进行挖掘、整理。得到有用的软件构件? 已有的软件构件随着时间的流 逝会逐渐变得不可使用。如何对它们进行维护,以延长生存期,充分利用这 些可复用构件? 等等。软件再工程正是解决这些问题的主要技术手段。 ( 5 ) 开放系统技术。开放系统技术是在系统的开发中使用接口标准,同 时使用符合接i z i 标准的实现。当前以解决异构环境中的互操作为目标的分布 对象技术是开放系统技术中的主流技术。该技术使得符合接口标准的构件可 以方便地以“即插即用”的方式组装到系统中,实现黑盒复用。 ( 6 ) c a s e 技术。c a s e 技术与软件复用技术相关的主要研究内容包括: 在面向复用的软件开发中,可复用构件的抽取、描述、分类和存储:在基于 复用的软件开发中,可复用构件的检索、提取、组装及度量等。 ( 7 ) 非技术因素。非技术因素包括机构组织、管理方法、开发人员的知 识更新、知识产权等。 2 1 4 软件复用技术的发展方向 i n t e m e t 无疑是2 0 世纪末伟大的技术进展之一,为我们提供了一种全球范 围的信息基础设施。这个不断延伸的网络基础设施,形成了一个资源丰富的 计算平台,构成了人类社会的信息化、数字化基础,成为我们学习、生活和 1 0 堕玺鎏三堡态兰堡主兰g 笙銮 工作的必备环境。如何在未来i n t e r n e t 平台上进一步进行资源整合,形成巨 型的、高效的、可信的和统一的虚拟环境,使所有资源能够高效、可信地为 所有用户服务,成为软件技术的研究热点。 i n t e m e t 平台具有如下基本特征:无统一控制的“真”分布性;节点的高度自 治性;节点链接的开放性和动态性;人、设备和软件的多重异构性;实体行为 的不可预测性;运行环境的潜在不安全性;使用方式的个性化和灵活性;网络 连接环境的多样性等。因此,i n t e m e t 平台和环境的出现,对软件形态、技术 发展、理论研究提出新的问题,也提供了新的契机。 传统软件的开发基于封闭的静态平台,是自顶向下、逐步分解的过程, 因此传统软件的开发,基本都是首先确定系统的范围( 即s c o p i n g ) ,然后实施 分而治之的策略,整个开发过程处于有序控制之下。而未来软件系统的开发 所基于的平台是一个有丰富基础软件资源但同时又是开放、动态和多变的框 架,开发活动呈现为通过基础软件资源组合为基本系统,然后经历由“无序” 到“有序”的往复循环过程,是动态目标渐趋稳态。未来软件基本模型由于 所处平台的特性和开放应用的需求而变得比任何传统的计算模型都更为复 杂,软件生命周期由于“无序”到“有序”的循环而呈现出不同于传统生命周期 概念的“大生命周期概念”,程序正确性由于目标的多样化而表现为传统正确 性描述的一个偏序集,软件体系结构侧重点从基于实体的结构分解转变为基 于协同的实体聚合,软件生产过程和环境的变化导致基于i n t e m e t 的面向用户 的虚拟工厂的形成1 3 0 i 。 ( 1 ) 由软件工程的发展方向不难看出,软件复用技术也不可能仅仅局限 于封闭的单机环境下,也会向着以i n t e m e t 为平台的方向发展。 2 。2 软件构件技术 图2 1 实现软件复用的关键因素 构件是指应用系统中可以明确辨识的构成成分,而可复用构件是指具有 相对独立的功能和可复用价值的构件。 可复用构件应具备以下属性: 有用性:必须提供有用的功能; 可用性:必须易于理解和使用; 质量:自身及其变形必须能正确工作; 适应性:应该易于通过参数化等方式在不同语境中进行配置; 可移植性:应能在不同的硬件平台和软件环境中工作 随着对软件复用理解的深入,构件的概念已不再局限于源代码构件,而 是延伸到需求、系统和软件的需求规约、系统和软件的构架、文档、测试计 划、测试案例和数据以及其他对开发活动有用的信息。这些信息都可以称为 可复用软件构件m 。 1 2 堕玺鎏三堡盔兰堡圭兰堡笙苎 要深入理解、掌握软件构件技术,应该从软件构件的概念入手,了解软 件构件技术包括哪些具体的研究内容,最重要的一点是要知道构件的发展方 向。 2 2 1 软件构件的概念 软件构件是本文研究的内容和基础,因此,有必要对软件构件的基本概 念做下了解。 早期的研究人员主要关注源程序代码的复用,将软件构件理解成为某种 可复用的程序代码片断,现在一般它们称为代码件。代码件的表现形式有: 子程序,程序包,模板等【5 l 。 后来,研究人员认识到复用的范围并不局限于编码阶段,而是可以贯穿 于整个软件开发过程,包括分析、设计、实现、测试四个阶段,每一个阶段 都会产生相应的文档或者软件产品,这些文档或者产品都具有复用的价值, 因此,软件构件应该包括分析件、设计件、代码件、测试件等多种类型。这 个时期的软件构件定义为:可以被复用的软件实体,它可以是设计、代码或 软件开发过程中的其它产品嘲。 九十年代以后,随着分布对象、w e b 、j a v a 、4 g l 、可视化开发工具以 及基于构件的软件开发( c b s d ) 的发展,国际学术界对软件构件的概念又 有了新的认识,研究人员相继提出了若干新的软件构件的定义,其中有代表 性的包括【5 】: ( 1 ) 1 9 9 6 年e c o o p 会议上提出的定义:软件构件是一个具有规范接 口和确定的上下文依赖的组装单元,软件构件能够被独立部署和被第三方组 装。 ( 2 ) s z y p e r s k i 在1 9 9 8 年给出的定义:软件构件是可单独生产、或取、 部署的二进制单元,它们之间可以互相作用构成个功能系统。 ( 3 ) c m u s e i 的f e l i xb a c h m a n 等人在2 0 0 0 年5 月的份关于基于构 件的软件工程的报告中给出的定义:构件是一个不透明的功能实现,能够被 第三方组装,符合一个构件模型。 ( 4 ) o m g 的定义:构件是一个物理的、可替换的系统组成部分,它包 1 哈尔滨工程大学硕士学位论文 装了实现体且提供了对一组接口的实现方法【5 】。 软件构件( s o f t w a r ec o m p o n e n t ) 在中文中有好几个同义词,如:软构 件、软组件、软部件等等,在本文中,这几个名词指的是同一个概念。由于 不同时期,不同的研究人员所关注的软件复用的类型不同,到目前为止,软 件构件还没有一个统一的定义。 上面这些定义都是描述性的定义,它们都包含了以下几个共同的因素: 构件是二进制功能单元、符合构件模型( 或具有规范接口) 、允许不同构件开 发商开发的构件进行组装。 分析软件构件概念的历史变化与现在的多样理解,本文作者认为,对于 软件构件的概念可以从两个层次上来把握,即广义上的软件构件与狭义上的 软件构件。 软件构件可分为可复用构件和不可复用构件。剖析一个应用软件系统, 可以发现其中有3 类构成成分h 】: ( 1 ) 用的基本构件,如,数据结构,用户界面元素等等; ( 2 ) 域共性构件,指的是仅在该应用软件所属领域内经常出现的构件; ( 3 ) 用专有构件,指的是仅在该应用软件中出现的特定构件。可复用构件 指前两者,通常情况下软件构件指可复用构件。 2 2 2 软件构件技术的研究内容 软件构件技术是支持软件复用的核心技术,是近几年来迅速发展并受到 高度重视的一个学科分支,其主要研究内容包括 1 1 : ( 1 ) 构件获取:有目的的构件生产和从已有系统挖掘提取构件; ( 2 ) 构件模型:研究构件的本质特征及构架间的关系; ( 3 ) 构件描述语言:以构件模型为基础,解决构件的精确描述、理解及组 装问题; ( 4 ) 分类与检索:研究构件分类策略、组织模式及检索策略,建立构件库 系统,支持构件的有效管理: ( 5 ) 构件复合组装:在构件模型的基础上研究构件组装机制,包括源代码 级的组装和基于构件对象互操作性的运行级组装; 1 4 堕玺鎏三堡盔兰堡圭主垡笙苎 ( 6 ) 标准化:构件模型的标准化和构件库系统的标准化。 2 2 3 主流软件构件规范 软件构件技术要想实现商业价值,还必须在公认的软件构件模型的基础 之上,提出实用、标准的软件构件规范。目前,主流的软件构件技术标准规 范有微软提出的m i c r o s o f t d n a 2 0 0 0 、o m g 提出的c o r b a 、s u n 公司提出 的j 2 e e 。它们为应用软件的开发提供了可移植性、异构性的实现环境和健壮 平台,结束了面向对象中的开发语言混乱的局面,解决软件复用在通信、互 操作等环境异构的瓶颈问题。 1 o m g 的c o r b a c o r b a ( c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e 公共对象请求代理 体系结构) 是由o m g 组织制订的一种标准的面向对象应用程序体系规范。 或者说c o r b a 体系结构是对象管理组织( o m g ) 为解决分布式处理环境 ( d c e ) 中,硬件和软件系统的互连而提出的一种解决方案;o m g 组织是一个 国际性的非盈利组织,其职责是为应用开发提供一个公共框架,制订工业指 南和对象管理规范,加快对象技术的发展。o m g 组织成立后不久就制订了 o m a ( o b j e c tm a n a g e m e n t a r c h i t e c t u r e ,对象管理体系结构1 参考模型,该模型 描述了o m g 规范所遵循的概念化的基础结构。o m a 由对象请求代理o r b 、 对象服务、公共设施、域接口和应用接口这几个部分组成,其核心部分是对 象请求代理o r b ( o b j e c tr e q u e s tb r o k e r ) 。对象服务是为使用和实现对象而 提供的基本服务集合;公共设施是向终端用户应用程序提供的一组共享服务 接口;域接口是为应用领域服务而提供的接口;应用接口是由开发商提供的 产品,用于它们的接口,不属于o m g 标准的内容。o r b 提供了一种机制, 通过这种机制,对象可以透明的发出请求和接收响应。分布的、可以互操作 的对象可以利用o r b 构造可以互操作的应用。 o r b 可看作是在对象之间建立客户服务关系的一种中间件。基于o r b , 客户可以透明的调用服务对象提供的方法,该服务对象可以与客户运行在同 一台机器上,也可以运行在其他机器上通过网络与客户进行交互。o r b 截取 客户发送的请求,并负责在该软件总线上找到实现该请求的服务对象,然后 1e 哈尔滨工程大学硕士学位论文 完成参数、方法调用,并返回最终结果。 c o r b ac c m ( c o r b ac o m p o n e n tm o d e l ) 技术是在支持p o a 的c o r b a 规范( 版本2 3 以后) 基础上结合e j b 当前规范的基础上发展起来的。c o r b a 构件模型是o m g 组织制定的一个用于开发和配置分布式应用的服务器端构 件模型规范,它主要包括如下3 项内容: ( 1 ) 抽象构件模型,用以描述服务器端软构件的结构及构件间互操作的 结构; ( 2 ) 构件容器结构,用以提供通用的构件运行和管理环境,并支持对安 全、事务、持久状态等系统服务的集成; ( 3 ) 构件的配置和打包规范,c c m 使用打包技术来管理构件的二进制、 多语言版本的可执行代码和配置信息,并制定了构件包的具体内容和基于 x m l 的文档内容标准。 c o r b a 在面向对象的标准化和互操作上迈出了坚实的一步。使用 c o r b a ,用户能在不知道软件和硬件平台以及网络位置的情况下透明的获取 信息;c o r b a 自动进行许多网络规划任务如对象注册、定位、激活:多路 径请求;分帧和错误处理机制;并行处理以及执行操作;作为面向对象系统 中的通信核心,c o r b a 为当代的计算环境中带来了真正意义上的互联: c o r b a 定义了一种面向对象的软件构件构造方法,使不同的应用可以共享 由此构造出来的软件构件:每个对象都将其内部操作细节封装起来,同时又 向外界提供了精确定义的接口,从而降低了应用系统的复杂性,也降低了软 件开发费用;c o r b a 的平台无关性实现了对象的跨平台引用,开发人员可 以在更大的范围内选择最实用的对象加入到自己的应用系统之中;c o r b a 的语言无关性使开发人员可以在更大的范围内相互利用别人的编程技能和成 果,是实现软件复用的实用化工具。c o r b a 的缺点是庞大而复杂,并且技术 和标准的更新相对较慢,c o b r a 规范从1 0 升级到2 0 所花的时间非常短, 而再往上的版本的发布就相对十分缓慢了。在具体的应用中使用不是很多 7 1 1 9 9 口 2 s u n 的j 2 e e j 2 e e 是美国s u n 公司刚刚推出的一种全新概念的模型,与传统的互联网 应用程序模型相比有着不可比拟的优势。当今许多企业都需要扩展他们的业 1 6 堕玺鎏三堡查主耍圭主堡笙銮 务范围,降低自身经营成本,缩短他们和客户之间的响应时间,这就需要存在 一种简捷,快速的服务于企业,合作伙伴和雇员之间。典型的说,提供这些服 务的应用软件必须同企业信息系统( e i s ) 相结合,并提供新的能向更为广阔 的用户提供的服务。这些服务要具备以下的特点:高可用性:来满足现在的 全球商业环境;安全性:保护用户的隐私和企业数据的安全;可依赖性和可扩 展性:保证商业交易的正确和迅捷。 通常这些服务是由分布的应用程序组成的,包括前端数据端和后端数据 源以及它们之间的一层或几层,这些中间层提供了把商业功能和数据与e i s 相结合的功能。这些中间层把客户端从复杂的商业逻辑中分离出来,利用成 熟的i n t e r n e t 技术使用户在管理上所花费的时间最小化。 j 2 e e 正式降低了开发这种中间层服务的成本和复杂程度,因而使得服 务可以被快速的展开,并能够更轻松的面对竞争中的压力。j 2 e e 通过定义一 种标准的结构来实现它的优势。 j 2 e e 应用程序模型起始于j a v a 程序语言和j a v a 虚拟机,他们提供的不 断提高的便携性,安全性和开发人员能力的提高是应用程序模型的基础。应 用程序模型通常包括j a v a b e a n 组件模型,j a v a b e a n 是的为普通功能编写基于 j a v a 技术的代码更加容易,利用j a v a b e a n 的开发工具可以可视的定制,组合 这些组件。 s u ne j b 技术是在j a v ab e a n 本地构件基础上,发展的面向服务器端分布 应用构件技术。它基于j a v a 语言,提供了基于j a v a 二进制字节代码的重用 方式。e j b 给出了系统的服务器端分布构件规范,这包括了构件、构件容器 的接口规范以及构件打包、构件配置等的标准规范内容。e j b 技术的推出, 使得用j a v a 基于构件方法开发服务器端分布式应用成为可能。从企业应用多 层结构的角度,e j b 是业务逻辑层的中间件技术,与j a v a b e a n s 不同,它提 供了事务处理的能力,自从三层结构提出以后,中间层,也就是业务逻辑层, 是处理事务的核心,从数据存储层分离,取代了存储层的大部分地位 1 0 f i l l 。 3 微软的m i c r o s o f td n a 2 0 0 0 m i c r o s o f td n a 2 0 0 0 ( d i s t r i b u t e di n t e r n e ta p p l i c a t i o n s ) 是m i c r o s o f t 在推出 w i n d o w s 2 0 0 0 系列操作系统平台基础上,在扩展了分布计算模型。目前, d n a 2 0 0 0 在技术结构上有着巨大的优越性。一方面,由于m i c r o s o f t 是操作 1 7 堕玺鎏三堡盔耋鎏圭兰垡笙銮 系统平台厂商,因此d n a2 0 0 0 技术得到了底层操作系统平台的强大支持; 另一方面,由于m i c r o s o f t 的操作系统平台应用广泛,支持该系统平台的应用 开发厂商数目众多,因此在实际应用中,d n a2 0 0 0 得到了众多应用开发商 的采用和支持。d n a2 0 0 0 融合了当今最先进的分布计算理论和思想,如事 务处理、可伸缩性、异步消息队列、集群等内容。d n a 使得开发可以基于 m i c r o s o f t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年纺织工程师实操考核的试题及答案
- 决胜中考物理试题及答案
- 2024年设计师职业规划试题及答案
- 广告设计师考试设计流程管理题及答案
- 公司法 司法试题及答案
- 探讨2024年美术设计师考试题型试题及答案
- 机床初级考试试题及答案
- 广告设计师的教学与培训方法 试题及答案
- 三天面试题及答案
- 汶上二招试题题库及答案
- 苗木资产评估报告书
- 乡村规划设计课件
- 大学生爱国教育十讲(中国海洋大学)知到智慧树章节答案
- 非标自动化述职报告
- 信息检索与利用课件 第2章 信息检索
- 信息安全网络隔离装置-SGI-NDS200用户操作手册
- 智慧树知到《海洋文明》章节测试答案
- 新能源汽车产业链分析
- 5G与远程手术技术
- 石灰岩购买协议
- -小学英语人称代词与物主代词讲解课件(共58张课件).课件
评论
0/150
提交评论