




已阅读5页,还剩62页未读, 继续免费阅读
(计算机应用技术专业论文)构件组装平台中构件检索以及连接子构造研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着计算机技术的飞速发展,人们对软件开发的速度和质量要求 都有了很大提高。然而,传统的“手工作坊”式的软件开发状况没有 得到根本改变,软件开发技术的发展远远落后于硬件技术的发展。作 为软件复用的一种有效手段,软件构件技术成功地将系统开发的重点 从程序设计转移到已有构件的选取、组装和部署。在构件模型的支持 下,通过复用已有的构件,软件开发者可以“即插即用”地快速构造 应用系统。这样不仅可以节省时间和经费,提高工作效率,而且可以 产生更加规范、更加可靠的应用软件。 构件组装技术是支持软件复用的核心技术,本文重点研究构件组 装平台的设计、构件分类与检索、构件复合组装以及标准化。随着构 件模型与构件库研究的不断深入,构件的分类方式和如何从构件库中 检索到满足系统需求的构件,越来越成为研究的焦点与难点。本文结 合最优分派理论提出了基于主谱分析法的构件检索算法,从理论上研 究了构件检索的特点,分析了构件检索过程,建立了统一的匹配规划 模型,最后用实验验证了该模型的有效性。 构件组装技术的另一关键在构件的连接方式。基本思想是通过 “粘合代码”或“连接子”将相关构件组合在一起,以便提供粒度更 大以及功能更齐全的功能构件,从而缩短系统的开发周期,提高系统 的灵活性、可扩展性和易维护性。本文首先分析连接子的功能结构, 然后基于模板方法模式对连接子进行具体结构设计,最后在构件组装 平台上分别实现了构件选择工具、连接子编辑工具和连接子生成工 具。 关键词构件组装,连接子,主谱分析法,构件检索 a b s t r a c t a l o n gw i t hr a p i dd e v e l o p i n go fc o m p u t e rt e c h n o l o g y , p e o p l et a k em o r e r e q u i r e m e n to ns p e e do fs o r w a r ed e v e l o p i n ga n dq u a l i t yo fs o f t w a r e h o w e v e r i th a sn ob a s i cc h a n g eo nt h es t a t u so fs o f t w a r ed e v e l o p i n g w h i c hi sl i k et r a d i t i o n a l h a n d c r a f t w o r k s h o p s o f t w a r ed e v e l o p i n g t e c h n o l o g yi sf a rb e h i n dh a r d w a r et e c h n o l o g y a sa ne f f i c i e n tm e t h o do f s o f t w a r er e u s e ,s o f tc o m p o n e n tt e c h n o l o g ys u c c e s s f u l l yf u l f i l l st h em a i n p o i n t s o fs y s t e md e v e l o p i n g ,w h i c ha r ef r o mp r o g r a m m ed e s i g nt o c o m p o n e n ts e a r c h i n g 、c o m p o n e n ta s s e m b l ya n dc o m p o n e n tt r a n s f o r m i n g u n d e rs u s t a i n i n go fc o m p o n e n tm o d e l ,r e u s i n gc o m p o n e n gs o f t w a r e d e v e l o p e rc o u l dq u i c k l yc o n s t r u c ta p p l i c a t i o ns y s t e ma sp l u ga n dp l a y s o i tc o u l dn o to n l ys a v et i m ea n de x p e n s e ,a n de n h a n c ew o r ke f f i c i e n c y , b u t a l s op r o d u c em o r es t a n d a r da n dr e l i a b l es o f t w a r e c o m p o n e n ta s s e m b l yt e c h n o l o g yi st h ec o r et e c h n o l o g yo fs o f t w a r er e u s e , t h ec o n t e n to fw h i c hc o n t a i nc o m p o n e n tf e t c h i n g 、c o m p o n e n tm o d e l 、 c o m p o n e n td e s c r i b i n gl a n g u a g e 、c o m p o n e n tc l a s s i f y i n ga n ds e a r c h i n g 、 c o m p o n e n tc o m p o u n da s s e m b l y a n d s t a n d a r d i z a t i o n a l o n g w i t l l c o n s t a n t l yd e e pr e s e a r c ho nc o m p o n e n tm o d e la n dc o m p o n e n tb a s e , c o m p o n e n tc l a s s i f ym e t h o da n dh o wt o s e a r c hc o m p o n e n ts a t i s f y i n g s y s t e mr e q u i r e m e n tf r o mc o m p o n e n tb a s e ,w h i c hg r a d u a l l yb e c o m et h e f o c u sa n d d i f f i c u l t y o fc o m p o n e n t t e c h n o l o g yr e s e a r c h t h i sp a p e r c o m b i n i n go p t i m i z a t i o n _ d i s p a t c h i n gt h e o r yp u tf o r w a r dc o m p o n e n t s e a r c h i n ga r i t h m e t i cb a s e do nm a i ns p e c t r u ma n a l y s i s ,w h i c hr e s e a r c h e s o nc h a r a c t e r i s t i c so fc o m p o n e n ts e a r c h i n gi nt h e o r y , a n a l y z e st h ec o u r s e o fc o m p o n e n ts e a r c h i n g ,a n ds e tu pau n i t i v em a t c h i n gl a y o u tm o d e l f i n a l l yi tv a l i d a t e st h ef e a s i b i l i t yo f t h i sm o d e lf r o me x p e r i m e n t a n o t h e rk e yt e c h n o l o g yo fc o m p o n e n ta s s e m b l yt e c h n o l o g yi st h em o d e o fc o m p o n e n tc o n n e c t i o n t h eb a s i ci d e ao ft h et e c h n o l o g yi su s i n g a g g l u t i n a t i o nc o d e o r c o n n e c t o r t oa s s e m b l ec o r r e l a t e dc o m p o n e n t s t o g e t h e r , i no r d e rt oo f f e rf u n c t i o n a lc o m p o n e n to fb i g g e rg r a n u l a r i t ya n d l i m o r em a t u r i t y i tm a k e st h ed e v e l o p i n gp e r i o ds h o r t e r , a n di m p r o v e st h e a g i l i t y 、e x p a n s i b i l i t ya n dm a i n t e n a n c eo fs y s t e m t h i sp a p e rf i r s t l y a n a l y z e sf u n c t i o n a ls t r u c t u r eo fc o n n e c t o r , t h e nt a k e sd e t a i ls t r u c t u r e d e s i g no nc o n n e c t o rb a s e do nt e m p l a t em e t h o dm o d e ,f i n a l l yi m p l e m e n t s c o m p o n e n ts e l e c t i o nt o o l 、c o n n e c t o re d i t o rt o o la n dc o n n e c t o rb u i l d i n g t o o li nc o m p o n e n t a s s e m b l yp l a t f o r m k e yw o r d s c o m p o n e n ta s s e m b l y , c o n n e c t o r , m a i ns p e c t r u m a n a l y s i s ,c o m p o n e n ts e a r c h i n g i i l 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢 的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不 包含为获得中南大学或其他单位的学位或证书而使用过的材料。与我 共同工作的同志对本研究所作的贡献均已在在论文中作了明确的说 明。 作者签名:灶日期:土虹年月上日 关于学位论文使用授权说明 本人了解中南大学有关保留、使用学位论文的规定,即:学校 有权保留学位论文,允许学位论文被查阅和借阅:学校可以公布学位 论文的全部或部分内容,可以采用复印、缩印或其它手段保存学位论 文:学校可根据国家或湖南省有关部门规定送交学位论文。 作者签名:幽导师签塑年上月正日 一阿 玎一 硕士学位论文第一章绪论 第一章绪论 随着软件工业的成熟和网络技术、信息技术的飞速发展,因特网上涌现出大 量可重用的构件库,怎样有效利用网上的构件资源,缩短软件开发的周期和提供 多种服务成为研究热点。 软件朝着越来越复杂和庞大的趋势发展,因此对更有效的软件开发技术的需 求十分迫切。近年来,软件体系结构、构件技术和软件复用技术等开始在软件开 发中发挥重要作用,成为软件工程领域研究的热点。在基于构件复用的开发方法 中,构件组装技术是关键,而且一直以来也是难点所在。 1 1 研究背景 1 1 1 软件复用技术的优势 软件复用【9 】的一个关键因素是抽象。抽象是对软件可复用对象的提炼和概 括,即将可复用对象的基本属性和相应的操作,从具体的语言、环境和其他细节 中提炼出来。软件的复用性很大程度上取决于对可复用对象的认识深度或者说可 复用对象的抽象层次。抽象层次越高,与具体环境和特定细节越无关,则它被未 来系统复用的可能性越大。领域分析则是进行抽象分析的有力工具。领域分析借 助特定领域、特定行业的专业技术与技能,对软件系统对象进行抽象和分类,提 炼认知的对象及其相互关系,获得系统整体结构,从而生成可复用的软件结构。 通过软件复用,在应用系统开发中可以充分地利用已有的开发成果,减少了 包括分析、设计、编码、测试等在内的许多重复劳动,从而提高了软件开发的效 率,同时,通过服用高质量的已有开发成果,避免了重新开发可能引入的错误, 从而提高了软件的质量。 软件复用有三个基本原则:1 ) 必须有可以复用的对象;2 ) 所复用的对象必 须是有用的,3 ) 复用者需要知道如何去使用被复用的对象。软件复用包括两个 相关过程:可复用软件f 7 l 的开发( d e v e l o p m e n tf o rr e u s e ) 和基于可复用软件 的应用系统构造( 集成和组装d e v e l o p m e n tw i t hr e u s e ) 。解决好这几个方面的 问题才能实现真正成功的软件复用。 可复用软件的开发是实现软件复用的基本条件,对象技术的广泛应用,提供 了建造和使用构件的概念基础和实用工具,有了可复用软件,基于可复用软件的 第1 页 硕士学位论文第一章绪论 应用系统构造才能得以实现。软件的生产也可以像硬件的生产一样,在设计好框 架后通过标准的构件组装而成。一般认为构件具有一定功能、能够独立工作或同 其他构件组合起来协调工作的程序体,一经产生,就与它的具体实现语言无关, 可以认为是一段二进制码和数据段,其内部具体实现是无法看到的,可将成熟的 构件当作商品出售,在保证开发者的利益同时最大地满足社会需求。采用构件开 发软件可以更有效地重用他人已有的劳动成果。 在复用软件设计1 3 6 j 中,如何设计合构造可复用的软件是软件设计者首先要 面对的问题。根据面向对象的设计原理,应着眼于以下几个方面:封装性、重载、 继承、聚合和多态性。 1 1 2 构件开发技术的趋势 软件系统的复杂性不断增长、软件人员的频繁流动和软件行业的激烈竞争迫 使软件企业提高软件质量、积累和固化知识财富,并尽可能地缩短软件产品的开 发周期。于是集软件复用、分布式对象计算、企业级应用开发等技术为一体的“基 于构件的软件开发i l i j 【1 2 ”。( c o m p o n e n tb 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 ) 应运 而生,这种技术以软件架构为组装蓝图,以可复用软件构件【l3 】为组装模块,支持组 装式软件的复用,大大提高了软件生产效率和软件质量。为此国内外对于这一技 术的研究正在不断深入,同时大型的软件公司( 例如s u n ,m i c r o s o f t ) 及软件组织 机构( 0 m g ) 都推出了支持构件技术的软件平台。 随着软件构件技术 2 1 的成熟,大量的构件作为现成的商品在软件市场出现, 基于构件的软件开发( c b s d ) 也作为一种新的工业化的软件开发方法被提了出 来。该方法是对以前传统开发方法的一种改变,它使得软件开发从代码开发转移 到对已测试、已使用的,并且在内部互操作的构件的集成,是软件重用【1 4 】的一 种实例。通过加强系统的灵活性以及可维护性,c b s d 可以被用来减少软件的开 发费用、快速的集成系统以及减少与支持升级大型系统相关的维护费用,从而使 软件开发者处于有利的竞争地位。该方法的基础是基于这样的假设:大型软件系 统的某些部分会不断重现;系统的公用部分应当编写一次而不是多次;公共系统 应通过重用被集成而不是一而再,再而三的重写,它体现了f r e db r o o k s 所支持的 “购买而不构造”的开发思想。在c b s d 中的构件主要是指可以通过商业手段获 取的构件( c o m m e r c i a lo f f - t h e s m l lc o m p o n e n t ,c o t ) ,主要是遵循已有的 c 0 m d c 0 m 、c o r b a 以及j a v a b e a n s 构件标准的构件、开发者可以加以剪裁 的应用框架以及已被其他应用集成或扩展的独立软件系统【1 6 1 。当今世界上许多 研究机构如美国的卡耐基梅隆大学、加拿大的国立研究委员会( n a t i o n a lr e s e a r c h c o u n e i l ) 都在积极对c b s d 展开研究。 第2 页 硕士学位论文 第一章绪论 1 2 现状与发展 1 2 1 构件规范标准 当前主流构件标准规范包括o m g t l 8 l 的c o r b a 、s u n t l 9 】的j 2 e e 和m i c r o s o f td n a 2 0 0 0 2 0 1 。 1 o m g 的c o r b a c o r b a 分布计算技术是o m g 组织基于众多开放系统平台厂商提交的分布对象 互操作内容的基础上制定的公共对象请求代理体系规范。 c o r b a 分布计算技术,是由绝大多数分布计算平台厂商所支持和遵循的系统 规范技术,具有模型完整、先进,独立于系统平台和开发语言,被支持程度广泛的 特点,已逐渐成为分布计算技术的标准。c o b r a 标准主要分为三个层次:对象请 求代理、公共对象服务和公共设施。最底层是对象请求代理o r b ,规定了分布对 象的定义和语言映射,实现对象间的通讯和互操作,是分布对象系统中的“软总 线”:在o r b 之上定义了很多公共服务,可以提供诸如并发服务、名字服务、事 务( 交易) 服务、安全服务等各种各样的服务;最上层的公共设施则定义了组件框 架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。 目前,c o r b a 兼容的分布计算产品层出不穷,其中有中间件厂商的o r b 产品,如 b e a m 3 ,i b mc o m p o n e n tb r o k e r ,有分布对象厂商推出的产品,如i o n a o b i x 和 o o c o b a c u s 等。 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 组织制定的一个用于开发和配置分布式应用的服务器端构件模型规范,它主要包 括如下三项内容: 1 ) 抽象构件模型,用以描述服务器端构件结构及构件间互操作的结构: 2 ) 构件容器结构,用以提供通用的构件运行和管理环境,并支持对安全、事 务、持久状态等系统服务的集成; 3 ) 构件的配置和打包规范,c c m 使用打包技术来管理构件的二进制、多语言 版本的可执行代码和配置信息,并制定了构件包的具体内容和基于x m l 的文档内 容标准。 总之,c o r b a 的特点是大而全,互操作性和开放性非常好。c o r b a 的缺点是 庞大而复杂,并且技术和标准的更新相对较慢,c o b r a 规范从1 0 升级到2 0 所 花的时间非常短,而再往上的版本的发布就相对十分缓慢了。在具体的应用中使 用不是很多。 2 s u n 的j 2 e e 第3 页 硕士学位论文第一章绪论 为了推动基于j a v a 的服务器端应用开发,s u n 于是在1 9 9 9 年底推出了j a v a 2 技术及相关的j 2 e e 规范,j 2 e e 的目标是:提供平台无关的、可移植的、支持并发 访问和安全的,完全基于j a v a 的开发服务器端构件的标准。 在j 2 e e 中,s u n 给出了完整的基于j a v a 语言开发面向企业分布应用规范,其 中,在分布式互操作协议上,j 2 e e 同时支持r m i 和i i o p ,而在服务器端分布式应用 的构造形式,则包括了j a v as e r v l e t 、j s p ( j a v as e r v e rp a g e ) 、e j b 等多种形式, 以支持不同的业务需求,而且j a v a 应用程序具有“w r i t eo n c e ,r u na n y w h e r e ” 的特性,使得j 2 e e 技术在发布计算领域得到了快速发展。j 2 e e 简化了构件可伸 缩的、其于构件服务器端应用的复杂度,虽然d n a2 0 0 0 也一样,但最大的区别是 d n a2 0 0 0 是一个产品,j 2 e e 是一个规范,不同的厂家可以实现自己的符合j 2 e e 规范的产品,j 2 e e 规范,是众多厂家参与制定的,它不为s u n 所独有,而且其支持 跨平台的开发,目前许多大的分布计算平台厂商都公开支持与j 2 e e 兼容技术。 e j b 是s u n 推出的基于j a v a 的服务器端构件规范j 2 e e 的一部分,自从j 2 e e 推出之后,得到了广泛的发展,已经成为应用服务器端的标准技术。s o 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 不同,它提供了事务处理的能力,自从三层结构提出以后 中间层,也就是业务逻辑层,是处理事务的核心,从数据存储层分离,取代了存储 层的大部分地位。从分布式计算的角度,e j b 像c o r b a 一样,提供了分布式技术的 基础。提供了对象之间的通讯手段。 从i n t e r n e t 技术应用的角度,e j b 和s e r v l e t ,j s p 一起成为新一代应用服务 器的技术标准,e j b 中的b e a n 可以分为会话b e a n 和实体b e a n ,前者维护会话,后 者处理事务,现在s e r v l e t 负责与客户端通信,访问e j b ,并把结果通过j s p 产生 页面传回客户端。j 2 e e 的优点是,服务器市场的主流还是大型机和u n i x 平台, 这意味着以j a v a 开发构件,能够做到“w r i t eo n c e ,r u na n y w h e r e ”,开发的应用 可以配置到包括w i n d o w s 平台在内的任何服务器端环境中去。 3 m i c r o s o f td n a2 0 0 0 m i c r o s o f td n a2 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 系列操作系统平台基础上,在扩展了分布计算模型,以及改 造b a c ko f f i c e 系列服务器端分布计算产品后发布的新的分布计算体系结构和规 范。在服务器端,d n a2 0 0 0 提供了a s p 、c o m 、c l u s t e r 等的应用支持。目 第4 页 硕士学位论文第一章绪论 前,d n a 2 0 0 0 在技术结构上有着巨大的优越性。一方面,由于m i c r o s o f t 是操作系 统平台厂商,因此d n a2 0 0 0 技术得到了底层操作系统平台的强大支持:另一方面, 由于m i c r o s o f t 的操作系统平台应用广泛,支持该系统平台的应用开发厂商数目 众多,因此在实际应用中,d n a2 0 0 0 得到了众多应用开发商的采用和支持。d n a 2 0 0 0 融合了当今最先进的分布计算理论和思想,如事务处理、可伸缩性、异步消 息队列、集群等内容。d n a 使得开发可以基于m i c r o s o f t 平台的服务器构件应用, 其中,如数据库事务服务、异步通讯服务和安全服务等,都由底层的分布对象系统 提供。 以m i c r o s o f t 为首的d c o m c o m c o m + 阵营,从d d e ,o l e 到a c t i v e x 等,提 供了中间件开发的基础,如v c ,v b ,d e l p h i 等都支持d c o m ,包括o l ed b 在内新的 数据库存取技术,随着w i n d o w s 2 0 0 0 的发布,m i c r o s o f t 的d c o m c o m c o m + 技术, 在d n a 2 0 0 0 分布计算结构基础上,展现了一个全新的分布构件应用模型。首 先,d c o m c o m c o m + 的构件仍然采用普通的c o m ( c o m p o n e n to b j e c tm o d e l ) 模型。 c o m 最初作为m i c r o s o f t 桌面系统的构件技术,主要为本地的o l e 应用服务。但是 随着m i c r o s o f t 服务器操作系统n t 和d c o m 的发布,c o m 通过底层的远程支持使 得构件技术延伸到了分布应用领域。d c o m c o m c o m + 更将其扩充为面向服务器端 分布应用的业务逻辑中间件。通过c o m + 的相关服务设施,如负载均衡、内存数据 库、对象池、构件管理与配置等等,d c o m c o m c o m + 将c o m 、d c o m 、m t s 的功能有 机地统一在一起,形成了一个概念、功能强的构件应用体系结构。而且,d n a 2 0 0 0 是单一厂家提供的分布对象构件模型,开发者使用的是同一厂家提供的系列开发 工具,这比组合多家开发工具更有吸引力。但是它的不足是依赖于m i c r o s o f t 的操作系统平台,因而在其它开发系统平台( 如u n i x 、l i n u x ) 上不能发挥作用。 表1 1 从集成性、可用性、可扩展性三个方面,给出了上述3 种主流分布计 算平台的比较结果。 表卜1 三种构件规范标准的比较 c o r b a ( c c m ) e j bd c o m 跨语言性能 好差( 限于j a v a )好 跨平台性能好好差( 限于w i n d o w s ) 网络通讯好好一般 公共服务构件 好好一般 事物处理好一般一般 消息服务一般一般一般 安全服务好好一般 目录服务好一般一般 容错性 一般一般一般 软件开发商支持度一般好好 产品成熟性一般一般好 可扩展性 好 好 一般 第5 页 硕士学位论文第一章绪论 1 2 2 构件组装技术及方法 构件技术发展的驱动力是提高软件复用水平的迫切需求。从复用已有的程序 资源到有意识地编制使于复用的程序片段【2 “,再发展到将程序片段包装为可复 用性更高的构件,组装的基本方法也因此而不断地变化与发展。面对不同的组装 场景,许多基本的方法被提出,用以解决通过组装来进行软件开发遇到的各种问 题。 1 构件组装1 3 】基本技术 1 ) 拷贝粘贴:将现有程序中的可重用代码拷贝粘贴到新的程序中,并 按需求进行适应当修改。这种技术是最原始的,复用的适应范围、能力与效率都 较差。 2 ) 模块:模块利用接口隐藏了其内部实现。根据信息隐藏原理,系统中的 模块互换不会影响其它模块,并能支持系统配置。模块的一个连接点可以是一次 过程调用,也可以是全局变量的一次访问,但是模块不支持插接功能和胶合代码。 3 ) 契约:契约是构件应该提供的服务和所需求的服务以及客户应该如何部 署构件的申明。契约提供关于构件组装的较高层次的抽象,有助于理解和重用构 件,并且支持优化机制,但契约只申明了抽象化的概念,实际操作性差。 4 ) 脚本语言:脚本语言是解释型语言,它用于说明构件如何交互和数据结 构如何在构件之间交换,但执行效率低,且不提供底层系统功能的函数,不适合 用于编写完整的应用系统。此外,脚本语言使用动态类型,只有在执行阶段才能 检测到类型错误,因而构件自身也不使用脚本语言实现,所以脚本语言主要用于 描述构件连接的抽象。 5 ) 组装语言:组装语言用于在更高层次的抽象级别上描述构件组装的框架。 概念上组装语言介于纯面向对象语言与脚本语言之间,能够灵活地处理对象和构 件,以便更好地解决构件组装的问题。当进行基于软件体系结构的构件组装时, 组装语言的作用与体系结构描述语言的作用基本相同。 6 ) 胶合:胶合技术被广泛用于处理构件接口的不匹配,其基本内涵是写一 段程序来对构件问不匹配的接口进行转换,就像将两个不能完全接插的零件用胶 粘上一样。因此这一起转换作用的程序一般又称为胶合代码。胶合代码可以在脚 本语言描述的连接抽象指导下编制,但它最终会成为应用系统的一部分。在解决 构件组装接口的不匹配方面,组装语言、脚本语言与胶合代码所处的层次是不同 的。 7 ) 包装:包装技术最先出现于面向对象语言的扩展中,用于扩展现有的类 或转换类的接口。其主要的包装形式有子类、继承、聚集等。包装技术主要用于 第6 页 硕士学位论文 第一章绪论 解决组装中的不匹配问题。 8 ) 中间格式:中间格式是系统中所有的构件遵循的某个互操作标准,它通 常基于接口定义语言和二进制代码等。 与包装技术不同,中间格式通过严格限制系统中使用的构件形式,尽可能地 避免组装不匹配问题的出现。中间格式的典型例子是软总线。软总线定义了标准 化的通信协议用于数据交换( 如用于数据交换的数据类型集合、服务调用机制 等) ,负责消息处理和执行必要的数据转换,并且提供其它服务。c o r b a o r b 是软总线的典型例子。 2 构件组装方法分类 根据组装场景的不同,构件组装方法 4 1 主要分为不同的组装层次( 源代码级的 组装和运行级组装) 和不同的组装模式( 静态组装和动态组装) 。但是,按构件在 组装时需要对构件进行的处理来分类,更能反映构件的可复用性和可组装性等方 面的技术特征。 根据构件组装时需要对构件内部细节了解的程度,可以将构件的组装方法分 为黑盒组装方法、白盒组装方法和灰盒组装方法。 黑盒组装方法是理想化的方法。该方法不需要对构件的实现细节有任何了解,也 不需要对其进行配置或修改,使用方便,安全可靠。这显然要求软件体系结构、 构件模型、描述、生产、存贮、检索、组装等环节都实现严格的标准化,而且能 够发现不同领域的构件合理粒度等。从目前研究的成果看,黑盒组装方法实现难 度大,离实用较远,但它是进行构件理论与技术研究的基础性方法。 白盒组装方法要求将构件的所有细节都展现出来,让组装人员理解后再进行 组装,并可以对构件按应用的需求进行适当的修改。从构件复用的角度分析,白 盒组装方法的存在只能是局部的和暂时的。一个可以随意修改的软件构件并不是 真正意义上的可复用产品,因为弄清一个构件并对其进行合适的修改的代价会很 高,其安全性、可靠性均得不到保证。 灰盒方法介于“黑盒”与“白盒”之间,是当前技术发展的合适选择。灰盒 组装方法通过调整构件的组装机制而不是通过修改构件来满足应用系统组装的 需求,既实现了构件组装的灵活性,又不至于使组装过程过于复杂。因此近年来 对构件组装技术的研究主要集中在灰盒方法方面。 1 2 3 基于连接子构件组装研究现状 为了实现灵活的组装,一般将软件构件划分为构件和连接子两部分,其中构 件实现功能,而连接子则实现与其它构件或系统的连接。 m i c h i h i r om a t s u m o t o 等从研究构件连接子的可靠性出发,设计了支持高度 第7 页 硕士学位论文第一章绪论 可靠的基于构件的软件开发工具。其提高可靠性的方法是自动验证求精后的需求 规约和自动生成连接子。该工具以体系树为基于构件的软件体系结构,用行为规 约投影来表示原始需求规约和精化后的描述构件关联的规约,并根据精化后的规 约中的连接子部分和原构件连接子之间的对应自动生成新的连接子。 与构件本身一样,连接予也需要复用。为了解决连接子的复用问题,b r i d g e t s p i t z n a g e l 等提出了连接子模型及构造连接子的复合方法。 b r l d g e ts p i t z n a g e l 等将连接子模型c m 定义为由构件中的应用程序代码、应 用层下面的通信库及生成的存根等、由操作系统提供的底层服务、数据或参数表 等、有关各部分调用关系的约束和有关连接子行为的形式规约构成的六元组,并 在六元组的基础上进一步分析了连接子变换的可能操作,总结出连接子变换有数 据转换、连接子拼接、添加接口、改变会话方式、连接子聚合等形式,并研究了 运用这些变换构造连接子的方法。 z h o n gw a n g 等将连接子定义为a g e n t ,并据此提出面向对象的基于多a g e n t 的构件组装m a c ( m u l t i a g e n ta d a p t e rc o m p o n e n t ) ,在此基础上研究了一种构件 自适应的装配方法,用以解决构件接口的匹配、消息处理、状态监控以及环境模 拟等问题。 在m a c 中,构件0 被定义为接口、方法集、状态空间和接口到方法的映射构成 的四元组。构件之间的通信通过适配器进行,每一个适配器g 是一个a g e n t 对象。 构件o 和适配器g 通过装配形成一个新构件( 0 = g 0 ) 。这一装配还可多重叠加 形成新的构件( g l 9 2 o = g l 0 1 - - - - 0 2 ) 。构件在组装前,必须与适配器装配在 一起,这一过程由称为“装配”的自适应技术根据主程序中的描述自动完成。 m a c 在接口匹配时,适配器将方法调用转换为消息,然后消息处理程序使用 接口适配器定位消息,最后由构件进行相应的消息处理。m a c 的消息处理既可以 将方法调用请求转换为消息,同时亦可将外部消息转换为构件方法调用。m a c 的 状态监控主要监视构件实例的状态变化,它在构件事件处理程序的前后分别加上 两个事件触发器,只要状态改变就触发相应消息。m a c 的环境模拟则为构件仿真 它需要的运行环境。 基于连接子的方法【3 2 l 体现了将构件的功能实现与其交互作用的实现分离, 从而增加构件组装的可配置性,是目前条件下实现构件动态组装的有效技术途径 之一。 连接子已经成为软件体系结构的基本元素之一。 还有以胶合代码为基础的构件组装方法: 胶合代码方法的基本出发点是解决构件在组装时出现的局部不匹配,如消息 格式的不一致等。其本质上也是一种连接子,但由于其常常表现为特定环境下的 第8 页 硕士学位论文 第一章绪论 代码,因此一般其本身很难再复用。胶合代码也可以与连接子合并使用,以解决 连接子在构件装配时的不匹配。 许多构件在设计时没有充分考虑组装的需要,往往不能将支持构件问通信的 代码从构件的功能实现中分离出来,因而不利于构件的组装与复用。虽然引入连 接子可以分离通信代码,但其通信代码和功能实现却交织在一起,通常也不便于 复用,特别是静态复用。针对这种情况,u w ea b b m a n n 等提出了基于元编程灰盒 连接子的构件组装方法,将连接子上升到元编程层次,而组装则由据此生成的胶 合代码来完成,从而既利用了连接子的技术优点,又解决了其在复用方面的不足。 1 3 现有研究工作中存在的问题 构件组装的基本思想是通过“粘合代码”或“连接件”将相关构件组合在 一起,以便提供粒度更大以及功能更齐全的功能构件,从而加快系统的开发周期, 提高系统的灵活性、可扩展性和易维护性。纵观现有的构件组装工具以及相关的 构件组装机制,如北大青鸟工程、主流的面向对象中间件的标准( 如j 2 e e 、c o r b a 、 c o m ) 等相关产品,可以发现:这些工具或理论侧重于解决基于软件体系结构的 构件组装,却难以有效的支持构件组装机制的抽象以及构件组装机制的重用,具 体表现为:1 ) 缺乏对构件组装行为的研究,一般通过图形和文本两种方式来编 辑构件描述语言,并根据构件描述语言生成构件骨架,而具体的构件组装机制需 手工填写代码维护;2 ) 过早确定构件的组装机制,一旦组装机制发生变化时, 不能进行动态配置,需改写源码、重新编译,构件组装机制灵活性差:3 ) 构件 实体与构件之间的组装机制没有有效的分开,构件组装机制可重用性差。 1 4 研究内容与组织结构 基于构件的软件开发主要是通过集成已存在的构件来展开的,构件的集成是 构造系统的核心问题,而构件集成的一个重要方面就是构件间如何有效地进行连 接,以保证构件间的冲突最小。这是决定系统性能的关键因素。 从理论上说,通过连接构件来建造系统1 3 1 】的确很诱人,因为它能充分利用现 有技术和成熟软件。但在实际应用中,由于每个构件在编制时是针对不同的需求, 并且是基于上下文的不同假设,因此在构造新系统时,如果不在构件中绑定许多 诸如通讯和控制等方面的协议,根本就无法应用此方法,但如果大量地修改构件, 又会导致严重的维护和升级问题,使得基于构件开发的许多优点被丢失。 本课题主要是完成从软件体系结构到系统组装结构描述的映射过程。其中包 含以下几个内容: 第9 页 硕士学位论文第一章绪论 1 _ 如何对构件进行有效评估,使之符合组装的需要。通过分析目前已有的 几种构件检索方法:人工智能方法、超文本方法和信息科学方法类,结合最优分 派理论【3 9 1 1 4 0 ,提出新的基于主谱分析法的构件检索算法; 2 所选构件间的接口匹配问题,主要是接口参数的数量以及类型匹配两个 方面; 3 定义好若干基本的逻辑关系描述,它们是进行逻辑描述的组成单元;连 接子的描述方法,其包括逻辑关系描述和组装描述,主要研究连接子的一般规约 模型。规范化描述接连子是使连接子作为独立构件的基础,也是使连接子工具化 的第一步。由于连接子是软件高层设计的构件,因此,它的描述不同于传统程序设 计语言中的程序单元。它所描述的不是具体的实现功能、操作等,而应该明确、 显示地描述它在体系结构中所扮演的抽象角色。如何对连接子的功能结构和具体 实现模板进行有效设计,是解决构件连接的关键问题。 本文组织结构如下:第一章介绍了课题背景和研究内容;第二章阐述了构件 组装过程以及构件组装支撑平台的整体结构;第三章讨论了构件检索机制及其算 法,构造了统一的构件匹配模型;第四章设计并实现了构件间连接子的逻辑与物 理结构,并引入软件设计模式中的模板方法模式到连接子设计当中,在这一章中, 还简要介绍了构件选择、连接子编辑和生成工具的框架结构。最后一章对全文进 行了总结,展望了本领域今后的研究方向。 1 5 本章小结 本章首先介绍了软件复用和构件技术的发展趋势,以及构件技术在当今软件 开发技术中的重要地位。接着介绍了课题研究现状和研究内容,特别是现在比较 流行的基于连接子的构件组装。随后分析了国内外专家学者在构件组装领域内所 取得的成果以及存在的问题。最后说明了论文研究内容与组织结构。 第1 0 页 硕士学位论文第二章构件组装平台系统设计 第二章构件组装平台系统设计 软件构件组装技术是基于构件软件开发的核心技术,构件必须经过组装才能 形成软件系统。如何将构件组装成软件受到需求定义、软件体系结构【6 】【引、构件 模型【5 】【1 5 】、构件粒度、组装场景和运行环境等要素的制约。反过来,使这些因素 尽可能地有利于构件的组装,则更为关键。构件组装从构件生产到服务的反方向 对构件技术的发展形成强大的约束,因此构件组装是构件技术研究的重点与难 点。 构件组装基础研究瞄】的范围主要包括构件组装基本原理与基本技术和实现 技术两个方面。经过长期的努力,上述两个方面均取得一定的进展。这些进展不 但推动了构件组装实现技术的发展,也对软件科学与技术的发展做出了贡献。 2 1构件组装工作流程 构件组装总体流程口4 】:给定任务软件模型软件结构【1 0 l 一组装结构 组装实现测试部署。 构件组装平台总体流程如图2 1 : 图2 - 1 构件组装平台总流程 第1 l 页 硕士学位论文 第二章构件组装平台系统设计 由图2 - 1 可知整个构件组装分为五个部分,分别是用户需求的输入分析【2 3 】、 构件搜索与获取、构件匹配选择、构件组装和程序校验和执行。 2 1 1 用户需求的输入分析 在系统用户界面中,由于用户只关心自己所需程序的功能,所提出的请求往 往带有一定的不确定性和模糊性。为了帮助用户更准确地提交请求,需要提供友 好的输入界面。通过提供主题词表和图文导航目录等方法让用户通过输入界面提 交有限定的非歧义的请求,为在相应的范围内高效获取可用构件创造条件。用户 选定的关键词或图标及相关联关系是用户所需程序的初步描述,对用户请求的分 析就是将问题按照应用领域和求解规则进行分解,将要解决的问题分解成小的模 块,找出他们之间的依赖关系,直到各子问题可以通过某个构件或某些构件的组 合实现为止。用户请求分析与构件搜索、获取紧密联系,如果找不到相应的实现 构件,就需要根据搜索结果重新调整分解策略,直到获得满足要求的问题分解与 构件组装方案睇”。 2 1 2 构件搜索与获取 通过对用户计算需求的分析,得到初步的构件组装方案,方案中的构件描述, 形成构件搜索条件。搜索条件由构件的应用领域、功能描述、类别、接口特征等 方面的属性组合而成,构件搜索代理的数量根据构件搜索任务的大小决定。构件 搜索代理首先访问构件目录服务器,通过目录访问协议查询构件目录信息库,得 到相关或相近构件的位置信息。然后构件搜索代理在提供构件的库服务器问自主 移动并与库服务器进行快速的本地交互,得到包含待选构件的资源文件,转交给 下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 法治思想面试题及答案
- 护士交班考试题及答案
- 乡镇副职面试题及答案
- 预防感冒面试题及答案
- 恐惧死亡测试题及答案
- 家电公司法律事务管理办法
- 家电公司声誉风险管理规定
- 2.4圆周角(第1课时圆周角定理)(教学课件)数学苏科版九年级上册
- 保安执勤装备使用课件
- 保安岗位知识培训课件
- 老年上消化道出血急诊诊疗专家共识(2024版)解读
- 化工过程安全管理导则AQT 3034-2022知识培训
- 水库闸门维修合同范例
- 2024届新高考语文高中古诗文必背72篇 【原文+注音+翻译】
- 车辆运输协议书
- 家庭成员及主要社会关系的政审材料
- 光伏设计施工图总说明
- 网络设备项目验收方案
- 2024年首届全国“红旗杯”班组长大赛考试题库1400题(含答案)
- 《婚姻家庭辅导服务规范》
- 高铁保洁报告
评论
0/150
提交评论