(计算机软件与理论专业论文)构件库及构件可视化组装环境的设计与实现.pdf_第1页
(计算机软件与理论专业论文)构件库及构件可视化组装环境的设计与实现.pdf_第2页
(计算机软件与理论专业论文)构件库及构件可视化组装环境的设计与实现.pdf_第3页
(计算机软件与理论专业论文)构件库及构件可视化组装环境的设计与实现.pdf_第4页
(计算机软件与理论专业论文)构件库及构件可视化组装环境的设计与实现.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(计算机软件与理论专业论文)构件库及构件可视化组装环境的设计与实现.pdf.pdf 免费下载

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

文档简介

揍妻 摘要 软件复用被认为是解决软件危机的条现实可彳亍的途径,软件复用目前研究 的焦点集中在枣每 牟技术。魏箨技术撼滋采焉梅枣# 缝装鲍方式搀逡应嗣程序,扶露 使软件并发走上了工、韭化的道路。构件技术研究豹内容包括;构件模型、构件描 述、构件席( 构件的存储、分类与检索) 、构件的缀装、构件的开发等。其中, 搞传的分类、硷素模式戮及较薛的缀装是当兹软佟器蛩 究兹热点秘难焘。 本文讨论了构件分类、检索的几种方法,对这几种方法进行了比较,_ 并且设 计和实现了一个基于属性值分类检索模式的构件席管理系统。本文分析了几种 主凌鲍鹣传模型:j 科3 b o 鲢、e 疆、e 0 醒+ 、e c 醚,分裂磅完了这些模型中镌终 接口的含义、构件的实现方法、构件的组装方式,并熙设计和实现了一个j a v a b c a n 构件的可视化组装环境。 关键词:构件、构件库、构件组装、撼于构件的开发( c b d ) 、软件复用 西北大学计算机幕硖士研巍生论文 a b s 廿a c l a b s t r a c t s o f t w a r er e u s ei sar e a l i s t i c 印p r o a c ht o s o l v es o r w a r ec r i s i s r e s e a r c ho f s o f t w a r er e u s ec u r r e m l yf o c u s e so nc o m p o n e n tt e c k l o l o g yc o m p o n e mt e c l l n o l o g y s u g g e s t s 哪l i c a t i o nc a i lb ed e v e l 叩e db ym e 孤s o fc o m p o n e n tc o m p o s i t i o n n l u si t d r i v e ss o f h a r ed e v e l o p m e n tt o w a r d st h em a do fi n 蛐i a l i z a t i o n r e s e a r c h o n c o i n p o n e n t t e c h n o l o g y i n c l u d e s :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 p t i 吣 c o 1 p o n c ml i b m r y ( c o m p o n e n ts t o m g e ,c o m p o n e n tc l a s s i f i c a t i o i l c o m p o n e n t r 响e v a l ) a n dc o m p o n e n tc o m p o s m o n c o m p o n e n tc l a s s j f j c a t i o 玑r e t r i e v a l a n d c o m p o n e n t c o m p o s i t i o n a r em ef o c u sa n dd i m 伽心i e so fc 哪n t r e s e a r c h 1 1 1 ep 印e rd i s c u s s e sm ed i 恐r e n tm e a i l so fc o m p o n e n tc l a s s i 丘c a t i o na n dr 删e v a l , 如dc o m p a r e sm e s em e a n s ac o m p o n e ml i b r a r ym a n a g e m e n ts y s t e mb a s e do n 甜m m e v a l u ec l a s s i f i c a t i o na n dr e t r i “a li sd e s i g n e da n dd e v e l o p e d t h i sp 叩e ra l s o a n a l y s e s s e v e r a lc o m p o n e n tm o d e l :j a v a b e a i l ,e j b ,c o m + c c m t h ed i 凰r e m m e a i l i n go f c o m p o n e n ti n t e 出c e ,d i 雠r e l l ti m p l e m e n t a t i o n o f c o m p o n e n t a n dd i 彘r e n t c o m d o s i t j o nm e t l l o d si n l e s ec o m p o n e n tm o d e l a r e d i s c u s s e d b a s i l l g o n 廿1 i s t e c h n o l o g y a v i s u a l c o n l p o s i t i o n e n v i r o i 蚰肌tf o rj a v a b e a i li sd e s i 髓e d a 1 1 d d e v e l o d e d k e y w o m s : c o m p o n e n t ,c o m p o n e n t l i b r a r y ,c o m p o n e n tc o m p o s i t i o n , c o m p o n e n t b a s e dd e v e l o p m e m ,s o 脚a r e r e l l s e 西北= :k 学计算机系硕:l 研究生论文 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研 究工作及取得的研究成果。据我所知,除了文中特别加以标注和 致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成 果,也不包含为获得酉j 盍堂或其他教育机构的学位或证书而使 用过的材料。与我一同工作的同志对本研究所做的任何贡献均已 在论文中作了明确的说明并表示谢意。 学位论文作者签名:张红倚 签字日期:加。3 年6 月g 日 第一章前言 第一章前言 l - 1 构件技术的研究现状 构件的概念最早出现在1 9 6 8 年n a r o 软件工程会议上。但是,软件复用的 思想出现的更早,如子程序,软件开发人员在开发程序时可以使用通用子程序库, 节省人力资源。 在随后的发展中,有许多复用技术的研究成果和成功的复用实践活动,但整 体上复用技术对软件开发的影响不大,其中既有技术的因素又有非技术的因素, 技术上的不成熟是主要原因。随着面向对象技术的出现并成为主流技术,为软件 复用带来新的曙光。基于构件的软件开发最初的许多思想来源于面向对象程序设 计面向对象程序设计中的模块化设计、封装性、继承层次结构、规范和实现相 分离为构件技术提供了很好的借鉴作用。 目前软件界流行的构件技术标准有:c o 础n 构件模型( c c m ) 、e j b 和 c o m 十。国内杨芙清院士等人提出了青鸟构件模型,它是青鸟系统的一部分。青 鸟系统,是我国第一个大规模的、综合软件工程支撑环境,在推动软件工业化生 产模式、促进软件产业规模形成方面做出了积极的探索,并积累了大量有益的经 验。 1 - 1 1 构件的概念 s z ,肚r s i 【i 把构件定义为“软件构件是一个仅带特定契约接口和显示语境依赖 关系的组合单元,软件构件可以独立部署,易于第三方组装”【1 ”。根据这个观 点,可以认为构件由一方定义其规格说明被另一方实现,然后提供给第三方使 用。接口是用户与构件发生交互的连接渠道,第三方只能通过构件接口的规范理 解和复用构件,接口规范也是一种“契约”,它能够精确的描述构件实现的功能 同时又不限定构件具体的实现方法,这种不确定性带来实现的灵活性。另一方面 虽然构件可以独立部署,但是一个构件可以用到其他构件或平台提供的服务,或 者说基于构件的软件系统中通常是多个构件协作完成一定的功能因此构件依赖 西北大学计算机系硕士研究生论文 第一章蓊誉 予缝装巧缝或称麓浯境( 嫩。x | ) 。 构件从形态上分为:分析构件、设计构件、编码构件和测试构件。构件组装 工其可驻嶷接支持编码稳 串懿缍装。困诧本文研究豹掏簧壤装环袋楚薅编鹅缓牵每 件进行组漩。编码构件又分为:源代码构件和二进制构件。 1 1 2 构件的描述 关于对构件的描述,荫代表性的理论模型包括:3 c 模型、耻狲0 0 t 模型和 青鸟模壁。鞋下楚对这几种模型静简要贪绍: 一、3 c 模攫 构件可以用很多方式米描述,但是理想的描述楚围绕n a c e 摁出的3 c 模型 一概念( e o 珏c e 露) 、内容( e o 珏搬敦) 积语境( n 南e x l ) 。 构件概念描述构件做什么,概念传达构件的意图,概念包括接口规范和语义 籀述嚣令部分。 构件内容描述构件是如何实现的。内容信息对般用户是隐藏的,只有需要 修改梅件的久了繇它。 语境将构件放置到它w 以应用的领域中。通过描述概念、操作和实现特征, 语境使软件工程师能够发现合适的构件来满足应用需求。 二、r e 嬲疆模型( 刻蟊模型) r e b o o t 模溅是基予已软构件的一种剿面分搬和检索模型,从各个角度即 轰l 蘑器a c 蔽) 蓊蓬稳 孛霾毪。 三、青岛模型 北大脊鸟工稷从三个视角( 形态、层次和表示) 、九个方面定义构件模型p 孙。 ( 1 ) 概念:精梅佟萌鼗豹接象播述。 ( 2 ) 操 乍援约:构件对外提供的、可被请求的服务。 ( 3 ) 接口:给出了构件的对外行为描述,分入接口和出接喇。 ( 4 ) 类蝥:精于定义“仟么值可作为操作参数”。 ( s ) 实瑗俸:这是橡 串豹矮髂实褒辩分,爨实际完藏被谤袭鼗务豹系统, 嚣乾太学诤箕搬系醺士辫究生论文 不同层次的构件可能有不同的实现方式。 ( 6 ) 构件复合:构件通过复合组成系统。 ( 7 ) 构件性质:指明构件的形态、层次和表示。 ( 8 ) 构件注释:描述和构件库相关的其他性质。 ( 9 ) 构件语景:描述构件的软、硬件使用环境和依赖关系。 青乌构件模型更多地关心构件的易理解性、封装性及构件间关系,通过为构 件提供明确的对外接口,实现服务提供者和服务请求者的分离,更多地关心构件 及其使用者间的交互,特别是对构件使用者有意义的部分。 1 1 3 和构件相关的几个概念 一、构件和端口( p o r t ) 构件的大小没有任何限制,构件既可以小到图形界面上的一个按钮,也可以 大到一个网站服务器。对于复杂构件,隐藏其内部结构显得很重要。构件将内部 结构隐藏起来,只提供给外界接口。接口可以用一组端口( p o n ) 来描述。端口 ( d o r t ) 是构件和环境进行交互的通道( 交互点) 。 构件( c o m 口o n e n t ) 图1 1 构件接口 二、连接件( c o n n e c t o r ) 和角色( r o l e ) 连接件表示构件之间的交互。和构件一样,连接件也可能非常复杂,连接件 既可以表示方法调用这种简单的概念,还可以表示抽象连接,如客户和数据库服 务器之间的s q l 连接。由于连接件可以非常复杂,因此能否独立描述它的接口 而不比考虑其内部结构就很重要。连接件的接口定义为一组角色( r o l e ) 。角色和 连接件的关系相当于端口和构件间的关系,角色是连接件和环境的交互通道( 或 西北大学计算机系硬士研究生论文 第一章前言 称为交互点) 。许多简单的连接件都是二元的( b i n a r y ) ,例如,方法调用就是一 个带有两个角色的连接件,这两个角色分别是调用者( c a l l e r ) 和被调用者( c a l l e e ) ; 通道( p i p e ) 是带有研i t e r 和f e a d e f 两个角色的连接件:事件通道是带有发送方 ( e m i t t e r ) 和接收方( r e c e i v e r ) 两个角色的连接件。 连接件( c o n t l e c t o r ) 图1 2 连接件接口 三、系统和关联( a t t a c h m e n t ) 介绍了上面几个相关概念,我们可以用它们来描述一个系统。系统的结构可 以用一组构件、一组连接件和一组关联来指定。关联用来连接构件端口和连接件 角色,那么两个构件间的连接可以用如下序列表示: c o m p o n e n ta - p o r t r 0 i e c o n n e c t o r 啪l e - c o m p o n e n tb 可能会觉得这种连接方式太复杂但是对于建模复杂的系统,这种连接方式就会 体现出优势。 图1 3 个简单的组装系统 四、构件和对象的比较 构件继承了面向对象技术中对象的许多特征,它们具有许多麸性:构件和对 象都有封装属性,它们都是通过定义好的接口访问,构件和对象都提高了软件的 复用性,它们都是对现实世界物体的抽象( 1 6 1 。 但是构件的概念比对象的概念更进一步。在面向对象的领域里,面向对象的 复用通常意味着类库的复用。为了复用一个s m a l l t a l k 类或j a v a 类,必须要熟悉 s m a l l 诅l k 语言或j a v a 语言:但是复用一个构件你不需要知道它采用了哪种编 程语言使用什么样的平台。 西北太学计算机系硕士研究生论文 4 第一章前言 构件和对象的概念容易搞混,我们来看一下构件特有的几个属性: ( a ) 构件适合描述服务,而对象适合描述功能。也就是说,对象适合描述 系统的问题域,而构件适合描述系统的功能。 ( b ) 构件的接口、实现、契约( c o n t a c t ) ,这三者是相分离的。 ( c ) 构件达到一定程度的自治,即构件从一个环境拿到另一个环境下,不 需要对构件作太大的修改甚至不需要修改就可以直接拿来使用。 ( d ) 构件必须明确表明组合关系。 ( e )构件具有可定制性,即可以根据需要对构件的属性进行修改。 除了这些,构件的粒度较粗,它可能包括一个或多个对象。它的接口也比对象复 杂。 1 2 本文主要研究内容 应用程序能够像搭建积木或者组装零件的方式进行开发,这是软件工程师一 直梦寐以求的,构件技术的研究使得这个梦想成为现实。通过组装的方式实现一 个应用程序要有两个前提:第一,要有可复用的构件,这些构件是应用程序的基 本组成部分。需要对这些构件存储、分类,合理的分类可以提高检索的效率和准 确率。第二,构件应遵循特定的模型,按照特定的方式进行组装。 因此本论文的研究内容包括两方面: 1 构件库的分类和检索。构件库是构件复用的基础。本论文讨论了构件的 几种分类、检索模式,并实现一个基于属性值分类检索模式的构件库管 理系统。 2 构件组装。本文分析了目前软件界提出的几种主流构件模型,并实现了 j a v a b e a l l 的构件组装环境。 1 3 论文组织结构 本文的结构如下: 第一章前言 本章主要分析了构件技术的研究现状,并介绍了和构件相关的几个概念。 第二章基于构件的软件开发 西北大学计算机系硕士研究生论文 第一章前言 本章主要讨论基于构件的软件开发。先是分析了基于构件的软件开发过程, 然后对当前主流的几种构件技术作了分析和比较。 第三章构件库管理系统。 本章重点分析了构件库相关的分类和检索模式,并给出了构件库管理系统 c o m p o n e n t l i b i a r y 的设计与实现。 第四章构件组装环境 本章先对构件组装和构件集成做了区分。然后对构件组装环境 c o m 口o n e n t e d i t o r 中的关键技术做了阐述。 第五章总结和展望 本章对论文做了总结,并提出了今后的研究方向。 西北大学计算机系硕士研究生论文 6 第二章基于构件的软件开发 第二章基于构件的软件开发 网络计算带领软件产业进入一个新的时代,带来机遇的同时,也带来新的问 题。新的分布式网络计算要求软件可以在不同用户、不同机器、不同区域间共享, 导致软件在规模、复杂度方面的增长,迫使软件开发要向异构工作环境、多应用 层次、可复用的工业化道路上前进,传统的软件设计思想已远远不够。 在这一背景下,构件技术出现了,并迅速成为软件界研究的新焦点。构件深 化了面向对象程序设计中对象封装的概念,强调构件的独立性、构件间的协作关 系,以及构件对环境的依赖及影响。 2 1 基于构件的软件开发过程 基于构件的开发( c o m p o n e n t b a s e dd e v e l o p m e n t ,简称c b d ) 从客户出发, 诱导需求,选择合适的体系结构风格来满足系统的目标,然后:( 1 ) 选择已有的 可复用构件;( 2 ) 对这些构件进行认证( c e r t j f y ) 以确信它们是否符合系统的 体系结构;( 3 ) 如果需要,对构件进行适应性修改;( 4 ) 对构件进行组装,形成 子系统和应用程序。 基于构件的开发是种新的软件开发方法,它是在一定构件模型的支持下, 复用构件库中的一个或多个软件构件,通过组合手段高效率、高质量地构造应用 软件系统的过程。c b d 已经成为现今软件复用实践的研究热点,被认为是最具 潜力的软件工程发展方向之一。c b d 遵循“购买而不是重新开发”的思想,让 人们从“一切从头开始”的程序开发转向构件组装。基于构件的开发任务包括构 件创建、检索和评价、适配、组装、测试和验证、配置和部署、维护和演进,以 及遗产系统( 1 e g a c y ) 的再工程等主要活动,它们与传统的软件开发方法不尽相 同。首先,c b d 采用以构件库为中心的开发模式,构件检索和构件评价是c b d 的一项关键任务,这里所指的构件库不仅仅是一个独立的数据库,而是广泛的、 一切可获得的构件资源,包括通过互联网发布的软件构件。其次,构件形成是 种在软件体系结构支持下的组装过程,也就是说,在应用领域里需要在d s s a ( 特 定领域的软件构架d o m a i n s p e c i 丘cs o 脚a r ea r c l i t e c t u r e ) 基础上将独立的构件 西北大学计算机系硕士研究生论文 7 第二章摹于构件的软件开发 组装成完整的应用系统,因此构件的匹配和一致性验证也成为c b d 的关键任务。 再次,c b d 过程中需要同一些技术标准化接轨,相同的构件可能由多个软件供 应商生产,被多个用户使用,所以构件接口、构件基础设旖必须标准化。最后, c b d 需要配置管理,即专门处理构件的集成、配置和发布的有关事宜,于是构 件的配置、适配和部署都是c b d 的关键任务。 c b d 的研究方向包括: ( 1 ) 基于构件软件工程方法的概念模型、过程模型; ( 2 ) 构件模型:研究构件的本质特征及构件间的关系: ( 3 ) 构件获取:有目的的构件生产和从已有系统中挖掘提取构件; ( 4 ) 构件描述语言:以构件模型为基础,解决构件的精确描述、理解及组装问 ( 5 ) ( 6 ) ( 7 ) ( 8 ) ( 9 ) 题; 构件库( 构件分类与检索) :研究构件分类策略、组织模式及检索策略, 建立构件库系统,支持构件的有效管理; 构件集成组装:在构件模型的基础上研究构件组装机制,包括源代码级的 组装和基于构件对象互操作性的运行级组装; 标准化:构件模型的标准化和构件库的标准化; 构件系统的安全性问题和实时( r c a l - t i m e ) 问题: 非技术因素对c b d 的影响:法律法规、商业实践、组织结构等方面的挑 战和策略。 以下是基于构件的软件开发过程: 一、需求分析 分析活动包括确定和描述系统需求。在需求过程中,应明确定义系统的界限。 c b d 中,分析活动需要完成三个任务。首先,获得系统需求和系统界限的定义; 其次,定义系统体系结构,允许构件间相互合作。因为在基于构件的开发方法中, 多个构件相互合作完成系统功能;第三,定义构件需求,允许选择或开发需要的 构件。 上面描述的方法是种理想化的过程。它假设能够精确定义构件需求,而且能 够找到满足这些需求的构件。实际上,在需求过程中我们会遇到好几个问题。根 据系统需求不是那么容易得到构件需求,而且得到的构件需求可能是不一致的、 两北入学计算机系碗1 1 研究生论文 第二搴整予鞠静躺敦饕开发 不楚分的、定义模糊的,聪查找满足这些震求的孝勾传裁更潮难。我们几乎可啦肯 窳不会找到恰好满足需求的构件。 接下柬逐到煞瓣题裁是辑孛缀装过程中豹不蒸察翘题。靼使我识找到满是需 求的构件,这些构件组装时未必拨照期望的进行交互。通常,针对某个特定的需 袋,我镪投不受溃足该嚣謇靛稳释,霞要开发瑟熬药转,这转篱琵下基予秘 孛静 开发就变成了传娩的软件开发,宅艨有的优点也就不存在了。 = 、祷件鹃选择嵇试证 ( ) 构佑的选撵 经过需求分析阶段,系统体系结构设计完成之后,软 辱开发小组会梭森需求 激磺定系绞孛瓣魑零分可以壹接蘧过整装寒完戒,针对每硬系统瓣求,开发枣组 念考虑如下问题例: 蹩否莓程瘛零秀发懿毒羹麓黎静谣竣渍是该颂嚣袋2 魁否存在商用成鼎构件( c o m m e r c i a lo f r m e s b e l f 简称c o t s ) 可以 满足该矮需求? 可用构件的接口嗣系统妁体系结构兼容吗2 选择构件爵,为了找到合适的梅件,i 馥常要确定凡个候选构件,震察姘究这 些嫉选擒谗;去簿鄂些秽系统主爨嚣求而装吝载髓件,再在剩下船这些馕选构件 中分析剔除,继续选择过程,如聚需要的话,对需求细化。这个过程称为丽向获 取懿震求工程。e 丑零m 黜 藏e n e d 域蠊2 m 魏t s e n g 强鼹照n g ;在内部稳释窝磐 部构件之间进行选择时,前提是光选择内部开发的构件,如果没肖合适的。再选 耩岁 韶捣释。翔暴考虑裂英它霾素,蠢妻产兹醛耀、维护费翅籁溪量等,这辩可 考虑优先选则外部构件。 如巢一个构件,它赋楚部分池满足蕊藏。诧辩有两释选择:戏修改梅件l 蔓逶 皮援菱;或调整攫蓬亲邋废掬件。嚣一零中方法骣起来觉攥不可恩议,但怒迫有支 持者指出这种方法的优势。除了遮两种选择,还村第三种方法就怒开发个新构 律,甄系绞开发的焦度来嚣,麴紧开始懿没有这方莲豹诗翔,这会是一种不驽豹 选择,因为会导澈需要额外的资源和部瓣时间。 ( 二) 擒傅兹译德 为了找到合避的构孛,而且够对构件进行认证,必颂以标准的方式指定构 糍她支学计舞辍系磺- + 掰 究生论空 颦二孽基于梅件耱软静毋发 件。但是,事实上通常不是这样。构件规藏包括精确定义的构件功能接口,但是 没有正式、精确地定义其它属性( 这些属性没有相应的方法) ,因此要对选择的 携搏进行浮售。谬髂过程麓摆技术秘 # 按零几个方弱。评镳豹技术方瑟包糖掏搏 集成、确认( v a l i d a t i o n ) 和认证( v e r i f i c a t i o n ) 。非技术方酾包括构件提供者的市 场逮住、梅俘维护及其它嚣 遥方寨。 当几个构件组装成一个集合体时,仅仅评估单个构件怒不够的,还需要对这 个集台俸进行评储。 对于满足需求的构件,要经过如下的步骤: ( 1 ) 构件认证( c o m p o n e n tq u a l i f i c a t i o n ) 。我们通常通过接口来了解构件, 羧强包括提供豹服务疆及谤河这贱g 昆务的方式故撩述。接翻磬不掇供掏件是否籍 合体系结构及需求的全面描述,软件工程师必须通过一个发现和分析的过程来确 试每个擒释懿逶会往。 对构件认证时,需要考虑如下因素: 驻用编程接口( a p i ) 构件的开发和集成环境。 运行时的需求,戗括资源使用、时闻、速度和网络协议。 擞务霉求。 安全特征,包括访问控制和身份骏证协议。 焱a 式设诗馁莰。毽摇黪定魏数壤或 数蕊算法懿使用。 异常处理。 ( 2 ) 构律遥应往骛浚( c o 黼p 。n e n ta 妇p 纽t i 蝴) 。体系结稳意义了所有季每 孛 构设计规则和连接方式,有些情况下,构件可能和体系缡构的设计规则褡匹配, 此时,需要对构件进行修改班满戆体系结构的需求嘲。 ( 3 ) 掏 孛缀装( e o m 弦燃tc o m p o s 碱o n ) 。对构件进幸亍组装形成一个篪大的 构件、予系统或应用程序。 ( 4 ) 掏 孛甏凝 e o 拜攀潞。球镩d 懿) 。当薮叛零豹钩传霹遐聪,替换瑗毒稳 件。 三、系统实瑷 理想的c b d 过程,通过编碣的系统实现将变为生成构件适配需要的“粘合 辫就太学诗舞规系礁士麟究生论文 第二章基于橱 牛靛软件开发 代码”( g l u ec o d e ) 。需要淀意一点,如果选择的构4 牛不适合采用的构件模溅或体 系结构,溅者构件没有正确理解,那么生成粘合代码( g l u cc o d e ) 的代价链至大 予鑫己耋赣开发构终。弱予聂发糕会拽玛豹葱费遥掌低予总开发赞用鲍5 0 , 戗是开发行胶含代码的花费大约是一行成用程序花费的3 倍。 盛要辩霉蕤癸设计翻嶷瑶一骜擒 孛,这些穆移实凌了关键豹戴务逻辚,钎对 于某个特定解决方案。 羁、系统綮成 集成就是把实现的构 牛和选择的构件缀合成软件系统,集成过程不需要大量 资源,因为它是建立在系统体系缡构的基础上,使用了部潜标准该部署标准由 搀磐框絮粒蠲于构 孛携终豹逶售撅准定义。除了这些,在系统集成中还嚣疆考虑 几方面: 稳荦 逶懿。诲多德嚣下霉簧调整毒罄 孛来逶凌系统震衷。谲整熬方法鸯壤 多种,有时只需要指定构件的参数就足够了;商时要开发一个包装器 ( 黼a p p c r ) ,琶装器警毽梅侔的输入和输密;有瞬甚至需簧掬入一个薪 构件,它控制特定的构件,确保满足系统的需求。 襞合体的重新配髓( r e c o n f i g 啪t i o n ) 。不同的集合体( 或者组台构件) 镪含一些公共款基本掏传( 相对予掏 孛集会体来说) 。将这些集合体引入 系统,可能会发嫩基本构件之间的冲突,例如集合体包含了同一个基本 臻 孛豹不目叛本。这耱情嚣下,嚣要一个慰集合傣重薮酝差豹捉潮,或 者由构件框架提供这种机制,或猎手动配置。 新击瑷静经质。不茸麓发疆 鸯箨瓣所存影响耋蜀缝合完骥。 许多基于构件的系统的一个特征就越能够动态地集成构件而不会影响系统 的执行。 轰、认试( v e f i 舭鑫蛀o n ) 靼确认( v 越i d a t i o n ) 系统提交前须认证和确认。认证就是判断系统是否满足特定的功能需求和非 韵戆嚣求戆过稳。确认藏是确保系绫瀵题客户懿翳望。 开发基于构件的系统和其它系统很相似,但憋它们之间有个驻著的麓别:基 于构佟系统的开发强调笈羯已有稳释琵不是实袋浚诗系绞e 缀显然,这穆开菱方 法有许多优点,但也存在很多缺点。采用基于构件的开发方法,首先,必须找到 强j t 大学诳撵机系硕士研究生论文 第二章基于掏俘懿软停开笈 满足指定需求的复用构件而且该构件还爨和设计的系统兼容:其次,必须确定为 了使用复用构件而多花费的时间和精力。 2 2 当前凡种主流构件技术酶比较 当前业界流行的构件技术标准有:e j b 、c o m + 和c o r b a 构件模型,其实 他们并非专门为构件而设计,它们的出发点憋以“分布”为目的,而构件的独立 性、封装性和弹构性要求构件之间存在很强的通信能力,所以第三方协调怒必要 的,恰好这些基础设施越了这样的作用,人们在研究c b d 集成组装时幽于没 有箕它的通信技术,所戳它稍自然魄成为掏 率工业标准,构件复带腻来没有指磷 一寇要分布式( 放在腋务器上) ,它看羹静逶是集畿,组装瓣技术。不过这些橡 准缀识器雩务,酃在向擒 孛方窝发震,跑细c 0 珏a e c m 标准。 2 2 1j a v a b e a n 构件模型 ( 一) 篱贫 s u n 予1 9 9 7 零提出了j a v a b e a n 构 牛模型,它在j a v a 语言的基础上第次巢 成了构件概念。这个模型的最重要特征就是简单一至少和其它业界构件模澄比起 来是这样的:j a v a b e a l l 构件模型的规范只有1 1 4 页,而c c m 规范就达n 7 2 页。 但楚规范包括的范围也很有限,尽管这样并不影响它在业界的广泛使用,尤其烃 在j a v a 界。 ( 二) 主要特征 j a v a b e a j l 成功的一个原因就是b e a nb o x ,b e a nb o x 是规范辩帝的一个饲予, 它趋s 乙黼免赞提供的j a v a b 。a l l s 潮试工兵。瓶藏翡开始就写臻:“j a v a b e 强a p l 静舀标楚定义j a v a 的一个软侔梅 擎模澎,便于第三方豹独立软传开发亵( 1 s v ) 剖建、移撞j 懿a 秘 季,最终翔户缝够援这些糖咎组装戏应蹋程彦” 6 。对基寿槐 孚进牙霹援纯埋装或组合淫予j a v a b e 张构l 牛模型:“个j a v 幽e a n 就是一个可 复羯软 孛掏悖,可在开发工舆中对这些构件进行可视化操作”【6 1 。j a v a b e a l l 主要 用_ 泉构建图形用户界面( g u l ) ,j a v a b e a n 中可对构件进行定制是它的重聚特征。 ( 三) 构件接口 尽镣j a v a b e a i l 中不使用端口( p o n ) 这个术语,但是从外部看来还可以用端 羁北夫学强舞机蓑鞍i :姘究生论文 辩二章基予掬律撼赣静嚣发 霜寒撼述b 。徽。该横型定义了4 类蜷鞠:方法( m e 墩壮d ) 、爨性( 猡嫦e 姑) 、攀 鼗瓣( e v e 嫩s o k 羚e 髑攀耱撩( # v e 溅s 廷虫) ,搴臀攘氇称老鏊琚器( | i 鼬蠡娌) 。 ( 鼹) 穗转樊耀 大多数b e 粕褥稃滠瘸一个蕊穗对藩蜜蕊褥,澍蒙封装雀祷粹牵( 图2 ia ) 。 由予使埔了命名蕊范( n v 黼镬o n ) 镂褥薅蓉方法帮掏释蓊日阕髓骧射是隐式的。 豫了遮静筠革的陵瓣,运骞露复杂豁酶赫受瓣方式 强2 ,tb ) ; t 氇装遗转 耙g 馥c y ) 对象。拯豢鑫稳黠蒙蚕鼹臻馥蠹莛且不遵守拣整瓣务惑 援携,哥骧澍宅进行毽装。毽装是避避蕊对象穷法鞭椽搏端爨蠲鼹式爨寝来实璃。 多辩象实嚣;一个辑笄母爨葑装了一个黠象集,这蘩对象臻置资终实鬣稳 耱劫疑。 辩建统实镩麴镶簸。阮窭n 对象弼毯诵蹋秘谗城乡 瀚其它瓣蒙,它镶羧予 捧券瓣蘩。 上蕊这些是从藏念凳发疆发猕述构件蜜现。可敷通过缀合不潮对象并且乎巴对 鬣鞠 奄撵瑞嚣缀迩来剁建一令构髂。 图2 1a 髓挚的_ b e 黼拘 牟实现搏 嚣匙麦擘辞募巍繁赣士磷究鬟谶变 第二囊基于捣静麴软髂开发 圈2 1b 复杂豹b e 鑫n 鞫 争实现髂 ( 五) 梅 牛组装( a s s o m b | y ) 尽管缀装是j a v a b e a n 一个最重要特援,但是该构件模型并没有提供任何特 定的组装方法。它支持不同的构件组装方式:“一些开发工具可目直接支持可视 能操作,炎诲j 酬a b e 强嶷接捶接( p l g ) 剿一起,一些开发工爨让月户霹戳方 便地写j a v a 类这些j a v a 类可以和一组b e a n 交互并控制它们。逐有些开发工具 撵供一季孛麓摹豹辫本语言,覆爱它霉浚疆褰荔途怼一缰b 髓矬编写篱级释本。” j a v a b e a i l 附带的b e a nb o x 阐明了构件交互和可视化缀装的思想。在许多商 用编程环境中己集成了该方法,如s u n 的n e tb e a n s 、i b m 静v i s l l a la 鼯和b o f l a l l d 的j b u i l 如r 。无论采用哪种开发环境,b e 8 n 的集合体可以靖作是一张构件图,参 嚣下图一阔2 2 。 图2 2 基于构件的集台体 j “鑫8 e 勰羲没芎援定缝装鹣语言氇没霄援定稳俸藕懿连接类嫠。事辞澈萄班 嚣北太学计冀规系硬士研究生论文4 棼二章莲子构件驰软俘开发 直接连到枣 牛槽上,但是县体的逡接方式取决于组装工具,例如,b e a nb o x 只 支持事件耩和不带参数的方法之间的连接,商用的些开发工具允许用户进行复 杂豹连接蕊且摄掇嚣要可以生成代避。 2 。2 。2 嚣口构件模型 ( 一) 筒介 e n t e 嘶s ej a v a b e a n s ( e 糟) 最开发稻郝著企照缀应用稔序的软件构件模型。 该模型包禽一个开放的援范,软件构 牛生产者、消费者、最终用户( 髓d u s e r ) 和软件构件模型生产者用该规范开发他们的软件产品。使用e j b 服务器、容器 帮构 孛,嚣发久受编写瘗撼程亭,这些程黪可帮署在 壬何蒺容戮b 戆系统中。 该规范定义了构件即e n t 唧r i s ej a v a b e a l l 和构件模型实现体,即容器、服务器 之蠲静一令篱萃豹会嗣。该模鍪弱确定义了簿稗鞫锋类鍪鹣生会溺凝鞋及奔器帮 服务器如何控制构件的生命周期。 e j b 纶应用程序开发入员提供了一个健壮的分布式环辚,它吴裔如下的特征: 褰务管理 避接池 状态警理 多线程 由予撬供翦这鳖鼹务,并发人员哥戮熬中赣力开发韭务程疼懿拔心臻熊。 ( 二) 企业b e a n 构件 企照b e a n 是可复霄静、服务器端骑构件,客户w 鞋远程访问和弧彳亍。在e j b 容器中进行组合和部署时,b e a n 是完全可镬己置可执行豹。企业b e a n 对企业程序 中的进程和实体遵模,如个在线的购物车、支付进程或消费者,企业b e a l l 分 必三赞基本类型:会话( s e s s i 。n ) b # 牲、实髂 e n t 磅) b e a n 和消息( m 髂s a g e d 矗v e a ) a n 。而会话b e a n 又分为有状态套话b e a n ( s 诅t e f u ls e s s i o nb e a l l ) 和无状态会 谖k 鲶( s 镪t e l e s ss e s o 拄融1 ) 。实体b e 繇氇努为蘧穆类型;e m p ( c o n t a i l l e r - m a n a g e dp e r s i s t e n c e ) 嶷体b e a n 和b m p ( b e a i l - m a n a g c dp e r s i s t e n c e ) 羹俸b e a n 。会话b e a n 主要是对一个监务逻辑过程建模,雨实俸b e 黼一簸怒对韭 努逻辑所月到的数据进行建模。消息b e a l l 是e j b 2 o 规范新增加的种b e a n 。消 嚣j t 太学计_ 肄= 帆系颈l 上辫究生论文 第二章基于构件懿较锋开发 息b e a n 把j m s 和w b 的功能集成为一体,用于在枣务中辨步操作。 随着一个会话的结束或服务器发生崩溃时,会话b e a n 的生命闵期也就终止 了,恧实铬b e a 珏爨可瑷存在,疑竣,实馋b e 粗熬生翕竭期毙会诱b 潍l 瑟长。 实体b e a n 允许多个用户之间的共事;而会话b e a n 不允许熬享,一个用户黧求提 供个会谣b e a 珏。 c m p 实体b e 弧:由容器负责生成代码将实体b e a n 实例的数据存储到夺姥器 中。b m p 实体b e a n :b e a n 的提供者编写访问数据库的代码,编写j d b c 代码, 攒入、剿狳窝查谗数据瘁中鳇实搭k a n 数据。粟躅b p 方式,b e 撼提供誊可 以自己灵满的处理实体b e a n 的持久性数据。采用c m p 方式,b e a n 提供辫可以 避凳编写炭俸b e a 娃与关系数据瘁数据访阏方蟊懿代秘,峦容器来楚建这一过程。 ( 三) 企业b e a i l 的结构 企业b e a n 构件由几个基本部分组成。企注b e 鼢只有经过三个步骤才可执行: 生产、组装和部署。企业b e a 珏包括e j b h o m e 、e j b o b j e c t 、企业b e a n 类鄹一个 部署描述文件。 众业b e a i l 构件的备组成部分 熊色需要生成的企业妇1 构例子b e a i l 件部分 b e a i l 提供者h o m e 接口( e j b h o m e ) s h o p p i n g c a r t i o m e c l a s s 远程接麓( 琢b o 毯e c t )s h o p 争泌g c 娥砖a s s 企业b e a n 类 s h o p p i n g c a n b e a n - c l a s s 主健类( + ) s h o p p i n g c a r t p k ,c l a s s x 醒l 郡警播速文l 牟( t ) s 嘲霸昭c 瞧勰l l e j b 容器域e j b 服务器h o m e 接口实现体 s h o p p i n g c a r t h o r n e s m b c l s ( e j b h o m e ) s h o 弹i n g c 硪 o m e s k e i c l a s s 远程接口露现体 s h o p p i n g c a r t s 船b c l a s s ( e m o b j e c t ) s 魏e 蟛箨c 积s k e l e l a s s ( 其中只有实体b e a n 需袋提供主键类组装者和部署者往组合阶段需要修改部 嚣描述文锌。) ( 四) e j b 容器 掰b 容器存在子企、监系统静服务器端,它是w b 构侔横蹩实现体的核心部分。 焱业b e a n 部署和运行在褰器中。窖器在b e a l l 的,圭命周期中通知b e a n 一些重要 鞭恕太学计薄枫系顽:k 研究生论文 6 第二章器子钩 萼= 魏敷昔扦发 黔段,并提供给b e 挂运幸亍环境懿些信怠。容器的主要炊贵是避蠲事务规则傈 诞b e a i l 斌行时的安全性。容器可以开始和终止事努,使嗣b e a n 窳义的事务属性 酾安全黛色竞诲( 影畦) 媛挺缝游翘。容嚣受责甄联( 1 。w + l 姆e 1 ) 秘缝,瑕铡k a 拄 对某个j a v aa p i 的访问a 无论在什么环蟪中,都撩止b e a n 访问魑特殊赘源, 懿文释象绞、箍聚窑器工鬟毽( a b s 镌矗旗瘟。w i 赶g 两o l k 疆,骛稼a 1 露t ) 、本缝 ( n 撕v e ) 库、线程管理、套接字和类装载器。 露蘸许多厂簿在稳稻静服务嚣平台上淹供了霹岂瑶瀚支持。嚣疆是j 2 慧嚣懿 部分,j 2 e e 提供了一个企业级的计算模型和逡行环境,用于开发和部鼹多层 体系结构的应用。它提供了企监计算环境所必需的各种服务,使得部署在j 2 e e 平台土豹震思翼鸯安全矬、霹扩鼹性和霹嚣搀。 鉴2 。2 。3 淄构件模塑和0 洲+ 搀 譬模型 醚+ 是在c o m 基皴上豹扩炭,它将独立于c 0 醒之努鹣交易跟务装残进 来。下谣主要介绍c o m 构件模溅。 ( 一) 接趣察绥装 c o m 接口可以看作媳c + + 艘拟类。是数据和函数的声明。c o m 不提供组 装语言,焉是摄供了一瓣篱单谤议,e 0 涟怼象酉骧蓑咫该癸谈韵态发袋袋奎援 对象和接口。所肖c 0 m 接口继承了i u n k n o w n 接翻,i u n k n o w n 接口定义了几个 鏊本的瞒数:e 聃e r yh 】:潴f a c e 、a d d r e f 稻r e l e a s e 。 ( 二) 赛现 c o m 对象是段二进制( b i n a r y ) 代礴,只嚣编译器按照二谶带i 互搽作规范 产生援璐,该我筠可鲮蕊任嚣毽序设诗疆害亲缤驾; c o m 支持两种组合技术:包含( c o n t a i n m e n t ) 和聚合( a g g 心g a t i o n ) 。使用 越舍操嚣,一令e 0 m 瓣象氡含了箕它e 0 秘对蒙,羚部辩象声翡了蠹鄢对象蕊 一些接口,这些接口的实现仅仅是对内部对象相成函数的调用,当然,对客户而 寄,是稽到一个对象。即矫部对黎。 蒙台比较复杂些。外部对象璺埋蠹郝对象豹接口,就好像是幽外邦对裂实现 了这些撩口,其实不必窳现这些接口( 4 藏避免了方法的问接调用) 。但最,为了 正蘸签避| 珏呔踯黼揍翻,聚台麴过程要求薤够竣变痨截对象袭辨部对象魏源役 鞭恕夫学计舞撬系矮i :氍竞生绝交 1 7 第二章基于构件的软件开发 正确处理i u n k n o w n 接口,聚合的过程要求能够改变内部对象和外部对象的源代 码。为了区分这两个概念,我们看一个例子: 存在一个c o m 构件a ,它实现了接口i r e u s e i n t e r f a c e ,由于新的需求,我们 又要实现一个c o m 构件b ,它既要实现接口h 即s e i n t c r f a c e ,又要实现接口 i n e w i m e r f a c e ,并且i r e u s e in t i 柚c e 接口提供的服务与a 构件i r e u s e i n c e r f k e 提供 的服务一样,因此我们考虑复用a 构件提供的服务。下面我们看一下采用包含 和聚合这两种复用方式的图。 i n e w t n t e 刍c e 包含 上图显示的是b 构件包含a 构件的方式,构件b 将客户对接口i r e u s e i n t e r f 如e 的访问转发给对构件a 的i r e u s e i i l t e r f h e 接口的访问,客户不知道构件a 的存在。 i n e w 【n t e l f h c e 聚合 上图显示的是b 构件和a 构件聚合的方式,构件b 并不实现i r e u s e i n t e r f a c e 接口, 当客户访问i r e u s e i i l t e 妇e 接口时,构件b 将构件a 的i r e u s e i n t e f f a c e 接口提供 西北大学计算机系硕士研究生论文 第二章基于掏件的软件开发 2 2 4c c m 构件模型 ( 一) 简介 c c m 是o m g 提出的目前业界最完整的构件规范。c c m 是“用于开发和部 署c o r b a 应用程序的服务器端的构件

温馨提示

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

评论

0/150

提交评论