(计算机应用技术专业论文)基于soa的plm构件库系统的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于soa的plm构件库系统的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于soa的plm构件库系统的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于soa的plm构件库系统的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于soa的plm构件库系统的设计与实现.pdf_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

基- j 二s o a 的p l m 构件库系统的设计j 实现 摘要 运用软件构件技术来开发软件足软件企业的未来和希望之路。用构件组合最终的软 件,由构件生产企业、构件组装企业、软件服务企业的产业链将会形成,从而真正实现软 件的工业化。构件库是软件构件化发展趋势的一个产物,随着计算机网络、分布式系统的 发展和软件即服务( s a a s ) 思想的出现,传统的软件构件歼发模式开发的p l m 构件库系 统存在着通用性差、不能跨平台、柔性低、开发效率低等问题,为了克服以上缺陷,我们 引入了面向服务的架构( s o a ) 来解决这些难题,设计并实现了基于s o a 的p l m 构件库 系统。 本文首先回顾了软件复用、软件开发技术的发展历史和构件的相关理论,对构件的定 义、描述、分类、表示进行了说明,并给出了它们在p l m 构件中的具体应用实例。然后 详细阐述了s o a 的定义、特点、优点、基本框架、实现s o a 所需要的关键技术w 曲 s e r v i c e s 、j 2 e e 对w e bs e r v i c e s 的支持和对x m l 的解析技术,探讨了面向构件和面向服务 的区别与联系。在此基础上,分析了将s o a 引入p l m 构件库的可行性,设计并实现了基 于s o a 的p l m 构件库系统。在系统中,对源码级p l m 构件,用j 2 e e 的分层体系结构来 搭建系统平台,采用刻面分类模式描述构件,用x m l 语言来表示和存储构件,增强了系 统的灵活性和跨平台性;对分布式p l m 构件,采用j 2 e ew e bs e r v i c e 技术将p l m 构件或 构件库包装成服务,对外只留出公共的接口供构件使用者调用,从而屏蔽了分布式构件的 异构性,实现了跨平台、松耦合的互操作。最后总结全文,并指出下一步工作研究的重点。 随着s o a 的实现技术和标准的不断完善和p l m 领域构件的不断充实,用户可根据企 业自身的需要快速丌发出符合要求的p l m 系统。 关键字:构件,构件库,p l m ,s o a ,j 2 e ew e bs e r v i c e 基于s o a 的p l m 构件库系统的设计1 j 实现 a b s t r a c t t h et e c h n o l o g yo fs o f t w a r ec o m p o n e n t sw h i c hi su s e dt od e v e l o ps o f t w a r ei st h ef u t u r ea n d h o p eo ft h es o f t w a r ei n d u s t r y sr o a d s o f t w a r ei sc o m p o s e db yc o m p o n e n t s t h ei n d u s t r yc h a i n o ft h ec o m p o n e n tm a n u f a c t u r e r s ,c o m p o n e n t sa s s e m b l i n ge n t e r p r i s e ,s o f t w a r es e r v i n ge n t e r p r i s e w i l lb ef o r m e da n dt h ei n d u s t r i a l i z a t i o no fs o f t w a r ew i l lb er e a l l ya c h i e v e d a c c o m p a n i e db yt h e e x p a n d e dt r e n d so fs o f t w a r ec o m p o n e n t s ,c o m p o n e n tl i b r a r yi sp r o d u c e d w i t ht h ed e v e l o p m e n t o fc o m p u t e rn e t w o r k s ,d i s t r i b u t e ds y s t e ma n dt h ea p p e a r a n c eo fs a a s ( s o f l w a r e a sas e r v i c e ) , p l mc o m p o n e n tl i b r a r ys y s t e mw h i c hd e v e l o p e db yt r a d i t i o n a lm o d e lo fs o f t w a r ec o m p o n e n t s r e f l e c t sm a n yd e f e c t s ,s u c ha st h ep o o rg e n e r a l i t ya n dc r o s s - p l a t f o r m ,t h el o wf l e x i b i l i t ya n d e f f i c i e n c y i no r d e rt oo v e r c o m et h ea b o v ep r o b l e m s ,as e r v i c e - o r i e n t e da r c h i t e c t u r e ( s o a ) i s i n t r o d u c e d s u b s e q u e n t l y , p l mc o m p o n e n tl i b r a r ys y s t e mb a s e do ns o ai sd e s i g n e da n d a c h i e v e d f i r s t ,t h i sp a p e rr e v i e w st h es o f t w a r er e u s e ,t h eh i s t o r yo fs o f t w a r ed e v e l o p m e n tt e c h n o l o g y a n dt h er e l a t e dt h e o r yo f c o m p o n e n t s t h ed e f i n i t i o n ,d e s c r i p t i o n ,c l a s s i f i c a t i o na n d r e p r e s e n t a t i o n o fc o m p o n e n t si s e x p l a i n e da n dt h es p e c i f i ca p p l i c a t i o ne x a m p l e si np l m c o m p o n e n t si sg i v e n t h e na ne l a b o r a t ea c c o u n to fs o ai sg i v e no nt h ed e f i n i t i o n ,c h a r a c t e r s , b e n e f i t s ,b a s i cf r a m e w o r k ,a n dt h ek e yt e c h n o l o g yo fs o ai m p l e m e n t a t i o n w e bs e r v i c e s ,t h e k n o w l e d g ea b o u tj 2 e es u p p o r tf o rw e bs e r v i c e sa n dx m la n a l y t i c a lt e c h n o l o g y a n dd i s c u s s e d t h ed i f f e r e n c ea n dr e l a t i o no fc o m p o n e n t - o r i e n t e da n ds e r v i c e o r i e n t e d o nt h eb a s i so ft h e s e t h e o r i e s ,t h ef e a s i b i l i t yo fp l mc o m p o n e n tl i b r a r yc o m b i n a t i o no fs o ai sa n a l y z e d ;t h ep l m c o m p o n e n tl i b r a r ym a n a g e m e n ts y s t e mb a s e do ns o a i sd e s i g n e da n di m p l e m e n t e d f o rt h e p l m c o m p o n e n t so fs o u r c ec o d e ,f a c e t e dc l a s s i f i c a t i o nm o d e lu s e dt od e s c r i b ec o m p o n e n t s ,w i t h j 2 e es t r u c t u r eo ft h es y s t e mt os e tu p ,x m ll a n g u a g eu s e dt oe x p r e s sa n ds t o r ec o l a r p o n e n t s ,t h i s m e t h o dc a ne n h a n c et h ef l e x i b i l i t ya n dc r o s s - p l a t f o r mn a t u r eo ft h es y s t e m ;f o rt h ed i s t r i b u t e d p l m c o m p o n e n t s ,j 2 e ew e bs e r v i c ei su s e dt op a c k a g ep l mc o m p o n e n t so rc o m p o n e n tl i b r a r y i n t os e r v i c e ,t h ee x t e r n a lp u b l i ci n t e r f a c e sa r el e a v e df o rc a l l i n gb yt h eu s e ro fc o m p o n e n t s , t h e r e b ys h i e l d e dh e t e r o g e n e i t yo fd i s t r i b u t e dc o m p o n e n t s t h ec o o p e r a t i o no fc r o s s - p l a t f o r m a n dl o o s e l yw i l lb ea c h i e v e d f i n a l l y , t h ec o n c l u s i o ni sm a d ei nt h ee n do ft h et h e s i s ,a n dp o i n t e d o u tt h ea s p e c t sw h i c hn e e dt ob ei m p r o v e d w i t ht h ec o n s t a n ti m p r o v e m e n to fs o a t e c h n o l o g i e sa n ds t a n d a r d s ,a n dt h ee n r i c h i n go f p l md o m a i nc o m p o n e n t s ,e n t e r p r i s e sc a np r o d u c et h ea p p r o p r i a t ep l ms y s t e m r a p i d l y a c c o r d i n gt ot h e i rn e e d sw h i c hh a sg r e a ts i g n i f i c a n c eo fs p e e d i n g u pt h ec o n s t r u c t i o no f e n t e r p r i s ei n f o r m a t i o n k e yw o r d s :c o m p o n e n t ;c o m p o n e n tl i b r a r y ;p l m ;s o a ;j 2 e ew e bs e r v i c e i i 曲阜师范大学博士硕士学位论文原创性说明 ( 在口划“4 ”) 本人郑重声明:此处所提交的博士口硕士冈论文基于s o a 的p l m 构 件库系统的设计与实现,是本人在导师指导下,在曲阜师范大学攻读博士 口硕士冈学位期间独立进行研究工作所取得的成果。论文中除注明部分外不 包含他人已经发表或撰写的研究成果。对本文的研究工作做出重要贡献的个 人和集体,均已在文中己明确的方式注明。本声明的法律结果将完全由本人 承担。 作者签名:桶象 日期:z 7 弓 曲阜师范大学博士硕士学位论文使用授权书 ( 在口划“”) 基于s o a 的p l m 构件库系统的设计与实现系本人在曲阜师范大学 攻读博士口 硕士冈学位期间,在导师指导下完成的博士口硕士圈学位论 文。本论文的研究成果归曲阜师范大学所有,本论文的研究内容不得以其他 单位的名义发表。本人完全了解曲阜师范大学关于保存、使用学位论文的规 定,同意学校保留并向有关部门送交论文的复印件和电子版本,允许论文被 查阅和借阅。本人授权曲阜师范大学,可以采用影印或其他复制手段保存论 文,可以公开发表论文的全部或部分内容。 作者签名: 导师签名: 杨赢 弗穹 日期:加。7f 弓 日期:砷f 基于s o a 的p l 。m 构件库系统的设汁j 实现 1 1 研究背景 第一章绪论 产品生命周期管理( p l m ,p r o d u c tl i f ec y c l em a n a g e m e n t ) 是指管理产品从需求、规划、 设计、生产、经销、运行、使用、维修保养、直到回收再用的全生命周期中的信息与过程 i l j 。它有效集成了c a d 、c a m 、e r p 、p d m 、s c m 、c r m 等应用系统,从而成为支持企 业运行的统一的集成平台。 在我国大型企业通过从国外引进和改进p l m 系统,需要花费几百万元或更多,这对 中小企业几乎是不可能的。因此结合我国固情,将p l m 系统中用到的各功能模块按不同 的粒度开发成构件,组成p l m 系统的构件库,并搭建起p l m 系统的开发平台,用户可根 据企业自身的需要快速开发出符合实际的p l m 系统,将软件费用控制在十万元之内,这 对于加快我国企业信息化的进程意义重大。 面向服务的体系结构( s o a ) 最初由g a r t n e r 组织在1 9 9 6 年提出,用于从架构设计师 的角度构建企业级软件系统。基于s o a 的系统的组成元素是服务( 可重用的功能单元称 为服务) ,面向服务架构的系统可以方便地进行企业级整合,而且可以快速开发。 我们在传统构件库系统的基础上引入s o a ,构造了基于s o a 的p l m 构件库系统,实 现构件库系统跨平台、跨语言的互操作,使其可以被任何其它应用系统,在任何平台、任 何地方、基于任何开发语言进行访问。这样的p l m 构件库系统在网络技术迅速发展和广 泛被应用的今天具有超强的诱惑力。 1 2 国内外研究现状 当前,软件界对可复用软件构件库系统及其相关技术进行了深入的研究,并取得了不 少的成果,如r e b o o t 2 】等实际的系统,r i g l 引,n a t 0 1 4 1 等标准,a l o a f 等模型方面的 研究。美国军方与政府已经建立了c a r d s ,a s s e t 和d s r s 等多个大型构件库系统。在 国内,以青鸟工程1 5 l 为代表的众多研究项目,也j 下在对基于构件、构架的应用软件集成环 境进行研究。如浪潮推出g s p 3 。5 ,运用构件技术,已经实现了e r p 的平台化。中创软件 公司的i n f o r e a i 是基于构件的系统集成开发平台。国内外很多软件公司提供了与构件和构 件库相关的开发工具和开发环境,也提供了现成的商业构件和构件库,但关于p l m 的构 件库管理系统还没发现。 从2 0 0 5 年到2 0 0 8 年,许多高校和科研机构都对s o a 表现出了极大的兴趣,以微软、 b e a 、i b m 为代表的各大i t 厂商纷纷加入到研究s o a 的行列之中,掀起了新一轮的竞争。 堆fs o a 的阿,m 构件库系统的设计j 实现 各大i t 厂商一方面推出自己的s o a 标准和实现路线。在2 0 0 7 年1 1 月,m i c r o s o f t 公司制 定了个s o a 路线图,它基于一套代号为o s l o 的技术1 6 】;b e a 的路线图认为,s o a 从切 入点到整体架构可以分为三个阶段,建议逐步、逐渐的实现s o a ,最终实现敏捷、随需而 变的s o a ;甲骨文公司提出了s o a 的“五步走理论”。另一方面各大i t 厂商各自推出了 自己的产品,例如i b m 推出新产品w e b s p h e r e 5 0 ,b e a 推出w e b l o g i c 8 0 ,它们都声称 自己的产品可以帮助用户实现基于s o a 的企业级系统。在国内虽然s o a 还是一个新鲜的 事物,但是对s o a 的研究却在逐渐展开。进入2 0 0 7 年后关于s o a 的话题慢慢从为什么 要实施s o a 转变到如何实施s o a 。2 0 0 7 年1 0 月,i d c ( 国际数据公司) 推出( ( s o a 中国 路线图【7 1 ,它认为随着各大厂商产品技术的不断完善和相关国际标准的出台,有超过7 7 接受调查的中国企业丌始考虑或着手实现s o a 。具有前瞻性的公司正在跨越功能和部门来 拓展他们的s o a 实施,7 最终将涵盖整个企业甚至他们的合作伙伴( 供应商和客户) 。i d c 同时认为2 0 0 8 年大量中国企业会开始实施局部性s o a 应用,而目前对于企业的s o a 应 用部署多数由国外大公司如i b m 、b e a 等提供。由此可见,国内对s o a 的研究还处于起 步阶段,用户整体上还没有达到规模化的应用基于w e b 服务和s o a 架构开发来软件的阶 段,即使是企业内部的应用整合,使用s o a 的情况也不多,仅有的案例其实际意义也非 常有限,这些方面的研究工作还有待于进一步的深入。 。 构件库的设想是软件构件化发展趋势的一个产物,这种趋势有点模仿大工业生产的方 式,以构件的形成组合最终的软件。目前软件构件化还是较为宏大的远景规划。中国企业 信息化时间较短,没有很多笨重的遗留系统,反而具有了“后发优势”,因而可以在新建 系统阶段就采用标准的服务构件来搭建系统,而这些服务构件又必须来自于构件库。 1 3 本文的项目背景 本课题的项目背景为山东省信息产业专项( 关于下达2 0 0 7 年信息产业专项的通知鲁 财建指2 0 0 7 ( 9 4 ) 号) ,项目名称为:“基于s o a 的p l m 系统构件库和开发平台建设”。该 项目在传统构件库的基础上引入s o a ,主要目的就是为了能够实现p l m 构件库管理系统的 跨平台、跨语言的互操作功能,用户借助此构件库,可以加快系统的开发速度,提高系统 的成功率,进而开发出满足企业自身需要的p l m 系统。对于广大中小企业来说,p l m 构件 库是难得的开发工具,解决了开发人才不足,开发资金短缺的问题,使得尽快应用p l m 系 统成为可能。 1 4 研究的创额点 ( 1 ) 采用层次性更强的b n f 文法对p l m 构件进行了描述; ( 2 ) 设计了易于检索的p l m 构件库的刻面分类模型; 皋于s o a 的p l m 构件库系统的设汁j 实现 ( 3 ) 使用扩展性强、跨平台的树形结构语言x m l 对构件进行表示; ( 4 ) 规划了个支持s o a 的j 2 e e 四层体系结构; ( 5 ) 通过对比p l m 构件库服务模型和s o a 模型,分析并论证了将s o a 弓i 入p l m 构件 库的可行性; ( 6 ) 给出了基于s o a 的p l m 构件库管理系统的总体设计框架; ( 7 ) 通过研究实际使用的p l m 构件的特点,提出了对位于本地的、比较常用的、粒 度较小的源码级p l m 构件和位于不同服务器的、较少使用的、粒度较大的分布式p l m 构件 分别处理的思想,并给出了具体的设计与实现。 1 5 本文的主要工作 本文的研究目标是构建一个基于s o a 的p l m 构件库管理系统,并对其实现的具体环 节进行探索。 主要研究工作包括两个方面:一是理论研究方面,阐述p l m 构件的描述、分类、表 示,面向构件和面向服务的区别与联系以及被业界广泛接受的s o a 实现方案一w r e b s e r v i c e s ,研究了j 2 e e 对s o a 的支持和采用j 2 e ew e bs e r v i c e 技术来实施s o a 的具体方 案;二是具体实践方面,设计了基于s o a 的p l m 构件库系统实现对p l m 构件的有效管 理。对源码级p l m 构件,采用刻面分类模式描述构件,用j 2 e e 的分层体系结构来搭建系 统平台,用x m l 语言来表示和存储构件,使构件的存储和使用脱离了传统的数据库,增 强了系统的灵活性和跨平台性;对分布式构件,采用j 2 e ew e bs e r v i c e 技术将构件或构件 库包装成服务,对外只留出公共的接口供对方调用,从而屏蔽了分布式构件的异构性,实 现了跨平台的互操作。 1 6 论文的组织结构 本文的章节组织如下: 第一章绪论介绍课题的研究背景、国内外研究现状、项目背景、研究的创新点以及 本文的主要工作; 第二章软件复用技术阐述了软件复用的概念和意义,回顾了软件开发技术的发展历 史; 第三章软件构件技术介绍了构件的相关理论,对构件的定义、描述、分类、表示进 行了说明,并给出了它们在p l m 构件中的具体应用实例; 第四章s o a 技术阐述了s o a 的定义、特点、优点、基本模型和实现s o a 所需要的 关键技术w 曲s e r v i c e s ,着重探讨了如何在j 2 e e 平台中实施s o a ;分析了面向构件和 面向服务的区别与联系; 罐予s o a 的p l m 构件库系统的设汁j 实现 第五章基于s o a 的p l m 构件库建设介绍了项目丌发的目的,分析了在p l m 构件 库建设中引入s o a 的可能性,提出了基于s o a 的p l m 构件库系统的总体框架和设计思 想。对源码级p l m 构件的管理采用j 2 e e + x m l 的模式来实现;对分布式p l m 构件采用 j 2 e ew e bs e r v i c e 将其封装成服务,并论述了对p l m 构件服务的发布、查找和绑定过程。 第六章结束语对全文进行了总结,提出下一步要做的工作。 4 綦fs o a 的p l m 构件库系统的设计。j 实现 第二章软件复用技术 2 1 软件复用的定义及意义 软件技术从上世纪5 0 年代到现在经历了基于算法的编程技术、结构化软件开发技术、 面向对象的软件开发技术、面向构件的软件开发技术和当前的面向服务的软件开发技术。 软件的丌发是一个复杂的过程,包括可行性研究、需求分析、概要设计、详细设计、编码、 测试和维护等阶段。从头开发一个软件需要耗费大量的时间,软件系统开发中存在的大量 的重复劳动,重新做这些已经存在的工作无论是在经济上还是智力上都是毫无意义的,软 件开发者在大多数软件项目开发中存在着严重的浪费现象。随着计算机技术特别是软件工 程技术的发展,软件复用技术的出现给这个问题在一定程度上带来了解决方案,通过软件 复用,不仅提高了软件开发效率,减少分析、设计、编码、测试等过程中的重复劳动,而 且由于复用了经过充分测试的软件开发成果,避免重新丌发引入的错误,从而提高了当前 软件的质量瞵1 。 在1 9 6 8 年n a t o ( n o r t ha t l a n t i ct r a d eo r g a n i z a t i o n ,北大西洋公约组织) 软件工程会 议上,m c l l o r y 在其大量生产的软件构件论文中第一次引入了“复用”( r e u s e ) 这个概 念。软件复用( s o f t w a r er e u s e ) 是一种由预先构造好的、为复用目的而设计的软件构件 或服务来建立或者组装软件系统的过程一j 。它的基本思想是非常简单的,即在两次或多次 不同的软件丌发过程中重复使用相同或相近的软件元素的过程。软件元素可以包括需求规 格说明、设计过程、设计规格说明、程序代码、测试用例等,通常把这种可复用的元素称 作可复用构件。无论对可复用构件原封不动的使用还是作适当的修改后再使用,只要是用 来构造新软件,则都可称作复用。 自从软件复用思想产生以来,计算机科学家和软件工程师就致力于软件复用技术的研 究和实践。在4 0 多年的时间内,出现多种软件复用技术,如:库函数、模板、面向对象、 设计模式、组件、框架、构架【l0 1 。最新的软件复用技术面向服务的架构( s o a ) 可以 使企业满足短期内创建新业务的要求,它通过重复利用现有业务逻辑和数据模型,将成 本、资源和时问开销降至最低。软件复用使人们在软件开发中不必一切从零开始,提高了 软件生产率,缩短了丌发周期,降低了开发成本。软件复用中没有材料的消耗,而且软件 通过多次重用后的不断完善,其质量和可靠性也越来越高。 基十s o a 的p l m 构件瘁系统的设计j 实现 2 2 软件开发技术的发展历史 软件开发技术主要经历了四个蘑要阶段:结构化程序设计技术( s t r u c t u r e dp r o g r a m m i n g , s p ) ,面向对象的程序设计技术( o b j e c to r i e n t e dp r o g r a m m i n g ,o o p ) ,基于构件的软件开 发技术( 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 ) 以及面向服务的软件丌发技术 ( s e r v i c e o r i e n t e da r c h i t e c t u r e ,s o a ) ,其中s o a 是从面向对象、构件架构等逐步发展完 善而来的,且它们之间相互依托、相互补充、又各自适应不同的范围。 ( 1 ) 结构化程序设计技术 4 0 年前国际上发生了“软件危机,女i - 1 i b m 公司开发的o s 3 6 0 系统,美国航空公司刀= 发的飞机订票系统,都花费了上千人多年的工作量,开发周期长、而开发出来的产品却是 错误很多,难以维护和适应修改。为了解决这一难题,荷兰物理学家迪克斯特拉 ( e w d i j k s t r a ) 在1 9 6 9 年提出了“结构化程序设计方法”,其基本思想是采用“自顶向 下,逐步求精”的程序设计方法和“单入口单出口”的控制结构。“自顶向下、逐步求精” 的程序设计方法从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本程序结 构模块组成的结构化程序框图;“单入口单出口 的思想认为一个复杂的程序,如果它仅 是由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,那么这个新构造的程序一 定是一个“单入口单出口”的程序。据此我们很容易编写出结构良好、易于调试的程序来。 多年来的实践证明,结构化程序设计策略确实提高了程序的执行效率,并且由于减少了程 序的出错率,因而大大减少了维护费用,这在一定程度上缓解了“软件危机”。 ( 2 ) 面向对象程序设计技术 虽然结构化设计技术的发展有力地促进了软件的开发设计,但是它比较适合开发规模 较小的软件,随着软件规模的不断增长,这种方法开发出的软件逐渐暴露出了可维护性差、 可重用性差的缺陷。到了2 0 世纪6 0 年代后期,出现了类和对象的概念,类作为语言机制用 来封装数据和相关操作。至l j 7 0 年代前期,s m a l l t a l k 语言的出现奠定了面向对象程序设计的 基础,1 9 8 0 年s m a l l t a l k - 8 0 的诞生标志着面向对象的程序设计已进入实用阶段。进入8 0 年代 相继出现了一系列面向对象的编程语言,如c + + 等,面向对象的思想开始被人们普遍接受。 面向对象程序设计技术中的继承、封装、多念性等机制,直接为软件重用提供了支持,它 开辟了通过有效的软件复用来达到提高软件生产率的新篇章。 ( 3 ) 基于构件的软件刀= 发技术 以类为基础的面向对象技术提高了软件复用度和生产力,但是这种面向对象的方法真 正用于实际工程中开发的应用软件却很少见到,工程上的实施缺乏丌发规范,在技术上要 求开发人员的素质较高,最大的问题是被开发出来的软件难以演化,为此发展出单纯重用 的“构件和架构”技术及其理论体系。在1 9 9 8 年同本京都召开的“基于构件的软件丌发 ( c b s d ) ”国际专题学术会议上,一致认为软件开发技术离不开构件和体系结构。基于 6 基于s o a 的p l m 构件库系统的设汁j 实现 构件的软件丌发是指利用已开发完成的可复用的构件按应用需求组装形成软件应用系统 的软件丌发方法。利用此方法可以设计出质量好、可靠性高、可扩展性好、可重用性好、 可维护性好的软件,加快了软件的开发速度,降低了软件的丌发成本和维护费用,由此“软 件危机 获得了初步解决。 ( 4 ) 面向服务的软件开发技术 九十年代,随着计算机网络技术的普及,客户机服务器模式开始成为开发分布式系 统的主流技术,如火车订票、通存通取等数据大集中系统。近年来又兴起了3 层体系结构, 即在系统软件之上又增加一层软件,称为中问件,它是分布式计算的基础。三层体系结构 提供了一种分布式系统的解决方案,实现了一种紧耦合的分布式系统,组成了一个自成体 系的单个应用软件。而如何将现有的多个应用软件,通过网络将其整合成一个新的集成系 统,如电子商务的供应链、电子政务、数字地球、智能交通等,早期的技术都无法解决这 个问题。i b m 提出了s o a 解决方案,它是一种松耦合分布式系统的体系结构。它将异构平 台上应用程序的不同功能部件( 称为服务) ,通过服务之问定义良好的接口和规范,以松耦 合的方式将多个现有的应用软件通过网络将其整合成一个新系统。s o a 是理论概念模型, 并没有限定实现它的技术,目前较多采用c o r b a 、c o m d o c m 、w e bs e r v i c e s 等技术来 实现。使用这种方法开发出的软件满足了当前企业对迅速改变能力和降低成本的需要,更 易于集成和管理复杂性。由此软件复用技术的发展迈向了一个新台阶。 2 3 本章小结 本章阐述了软件复用技术产生的原因、软件复用的概念和意义,回顾了软件丌发技术 的发展历史。 祭十s o a 的p l m 构件摩系统的设计j 实现 3 1 构件技术简介 第三章软件构件技术 19 6 8 年n a t o 软件工程会议,m c l l r o y 在提交会议的论文大量生产的软件构件中提 出了“软件组装生产线”的思想。从那以后,采用构件技术实现软件复用,采用“搭积木” 的方式生产软件,成为软件开发人员长期的梦想。在互联网时代,面向构件技术将一组类 的组合进行封装成一个或多个功能的特定服务,外部为用户提供了多个接1 3 ,整个构件隐 藏了具体的实现,只有接口提供服务。这样,在不同层次上,构件均可以组合成高层次上 的粒度更大的新构件,甚至直接封装到一个系统。 现有的软件市场上,有以下几种不同的构件技术流派,它们分别是c o m d c o m 、 j a v a b e a n 、c o r b a 和n e t 。c o m d c o m 是由m i c r o s o f t 公司推出的构件接口标准,主要 是针对计算机市场上不依赖于语言的软件构件技术,目前已有大量的基于c o m d c o m 的 构件可供复用,但它们大多都依赖于m i c r o s o f t 环境,在u n i x 、m a c i n t o s h 等其它操作系统环 境下可复用的构件还很少;j a v a b e a n 是针对解决平台依赖性和语言依赖性这两个问题而提 出来的软件构件技术标准;c o r b a 是由o m g 组织于1 9 9 0 年为了解决分布式、异构的软件 和硬件环境下对象之i 司的互操作问题而提出的基于中间件的构件技术。n e t 是借鉴j a v a , 采用x m l ,并远远超出了j a v a 的新的体系,n e t 允许添加类似关键字的描述性声明来批注 编程元素的元数据,可以实现被封装的对象类、类树、功能模块、软件框架、软件构架( 或 体系结构) 、文档、分析件、设计模式等。 面向构件的开发方法以软件构件化技术来构造系统,通过组装的方式,在软件开发过 程的各个阶段复用现有的相关构件,以建造大型软件系统。该方法可以降低软件开发成本, 加快系统开发的速度,减轻大型系统的维护负担。基于构件的软件开发与传统的开发过程 相比,它在分析、设计、实现等各个阶段中所进行的工作不再是从零开始,开发人员可通 过构件库管理系统在已有的构件库中检索需要的构件,直接复用或经过简单的修改后复用 到自己的软件中。因此,构件技术的出现,使得各种技术形成的软构件可以最大程度地进 行重用,加大了软件复用的粒度,提高了复用率,大大简化了开发过程,提高了软件的开 发效率。构件技术突飞猛进的发展,为实现软件复用、解决“软件危机 带来了曙光。 3 2 构件的定义 目前,对构件的定义,软件产业界还未形成统一的认识,许多大公司和科研机构都对 构件有着不同的认识,例如: 皋于s o a 的p l m 构件库系统的设计j 实现 o m g 组织的定义:构件是一个物理的、可替换的系统组成部分,它包装了实现体且提 供了对一组接口的实现方法。 g a r t n e rg r o u p 认为:运行时构件是一个动态可绑定程序包,内含一个或多个程序作为 整体来管理,通过在运行时文档化接口存取其中的信息j 。 m i c r o s o f tc o r p o r a t i o n 的定义:构件是一个通过接口向外界提供服务的软件包。 北京大学的杨芙清教授将构件定义为应用系统中可以明确辨识的构成成分,而可复用 构件是具有相对独立的功能和可复用价值的构件f 1 2 】。 以上这些定义根据各自不同的目的,从不同的方面对构件进行了描述,对这些定义加 以归纳可以得出以下结论:构件( c o m p o n e n t ) 是可复用的、自包含的、独立于具体应用 的软件对象模块,它是封装了设计和实现的细节并且仅向外部提供接口的相对独立的可重 用软件单元,一个构件可以与其他构件组成更大规模的构件。对于构件,应当按照可重用 的要求进行设计、实现、打包、编写文档。构件应当是内聚的,可以被独立地部署并由第 三方任意地组装,并具有相当稳定的公开接口,通过这些接口来实现对构件的访问。 为了方便软构件的管理和复用,提取和设计的构件应符合一定的准则,一般要求: ( 1 ) 通用性。构件应该符合通用的接口标准。 ( 2 ) 封装性。构件必须封装自己的全部内部特征,具有原子性,是不可拆分的。构 件要具有良好的模块性、功能明确,接口简单,只能通过良好定义的接口与外部环境进行 交互。 ( 3 ) 独立性。一个构件是独立可部署的,意味着它必须能跟它所在的环境及其他构 件完全分离。因此,构件不能过多的依赖于其他构件,依赖性强,可复用度就差。 3 3 构件的描述 构件的描述方法是构件管理与检索技术的基础,构件描述模型是关于构件本质特征的 抽象描述【l3 1 。它是基于构件的软件开发和构件复用过程中的一项关键技术,它规定了一个 软件构件所需的结构和内容。一个好的构件描述模型应具备简单性、一致性、完备性、适 用性、扩展性和表达能力强等特点。 当前较好的构件描述模型主要有3 c 模型、r e b o o t 模型和青鸟构件描述模型。3 c 模型 认为一个理想的构件的描述应当涵盖三个方面的内容:概念、内容和语境。r e b o o t 的 构件采用了刻面描述策略,包括抽象、操作、操作对象、依赖四个刻面,主要针对源代码 级的构件。北京大学青鸟构件模型采用刻面分类的策略,定义了使用环境、应用领域、功 能、抽象层次、表示方法等五个刻面l l 引。 目前对构件的描述通常是采用b n f ( b a c k u sn o r m a lf o r m ) 文法来实现的,b n f 是描 述语言的形式化的数学方法,是被用来形式化定义语言的语法【l5 1 。它具有无二义性、一致 性和完整性的优点。无二义性是指对某一问题的陈述只有唯一的一个解释,可防止抽象层 9 甚于s o a 的p l m 构件库系统的设汁j 实现 次的混杂;一致性是指所陈述的内容不存在相互矛盾;完整性是指所陈述的事实全面、准 确。通过研究以上三个模型可以发现在构件的描述信息中包含着大量的构件刻面描述、分 类信息,分别在不同级别上对构件信息进行抽象。为了避免产生抽象层次的混乱,方便在 构件库中对构件进行管理,采用b n f 文法对构件进行描述是非常必要的。下面是笔者采用 b n f 文法对本文中的p l m 构件进行的描述: := := := := := := := := := := w i n d o w s l u n i x l l i n u x l m a co s l o t h e r := e r p i s c m i c r m i c a d i p d m i o t h e r := j a v a l n e t l h t m l i j s p l j a v a s c r i p tj v b s c r i p tj x m l l o t h e r := e c l i p s e l v i s u a ls t u d i o l d r e a mw e a v e r l n o t e p a d l j b u i l d e r l o t h e r := 源代码文件i 编泽打包后的文件i o t h e r := j a v a b e a n e j b i c o r b a i c o m d c o m i o t h e r 3 4 构件的分类 能否有效的对构件进行分类关系到构件的检索效率和可理解程度。目前,一些研究者 从不同的角度对构件的分类模式进行了划分:h m i h 根据复杂度和检索效果的不同,分为 基于文本的、基于词法描述的和基于规约的编码和检索三类【1 6 l ;w f r a k e s 从构件表示出发 可分为人工智能方法、超文本方法和信息科学方法三类1 1 7 i ,其中信息科学方法在实际构件 库的项目中应用较为成功,它又分为基于受控词汇表( 如枚举、刻面) 分类和基于不受控 词汇表分类两种形式,如图1 所示。在实际应用系统中,基于构件的复用应用比较成功的 l o 基于s o a 的p i ,m 构件库系统的设汁j 实现 是关键词分类、枚举分类、属性值分类和刻面分类等几种分类方法。以下是对这几种分类 方法的简要介绍: 信息科学分类l 一二歹7 一二二= = = f 基于受控鬲词茫i j 爵不麦藉酌词汇表 一= 二二二歹。一= “,夕j :、 f 类层茨方法1厂关键词法f m 味语不蔽自正文1f h 双正支抽取术语一i 二) 一”、。= 二:一、:“ f 莉面务类 f + 萃芬习再;疆丽莴森题 匡键罚为籀蔷 _ 术谙;嵛蕃夏 f 术语芫藩霸 图3 - 1 信息科学方法分类图 ( 1 ) 关键词分类 每个构件用_ 组与之相关的关键词编目。其难点在于抽取术语的精确度,通常关键词 取值是不受控的词汇表,由于缺乏上下文语境导致检索的效率和精确度也得不到保证。 ( 2 ) 枚举分类 通常将一个被关注的领域划分为不相交的子领域,依次构成层次结构。此方法有一定 的不足,任何问题之间都是有联系的,而过于严格的划分将割断问题之间的联系,反映不 了复杂问题空问的真实情况。 ( 3 ) 属性值分类 领域中的所有构件定义一组属性,然后为这些属性赋值。其缺点是构件的属性一般没 有明确的取值范围,对于相同的属性特征,不同的人可能会有不同看法,会引发构件分类 的二义性和冗余问题。 ( 4 ) 刻面分类 由一组描述构件本质特征的刻面所组成,每个刻面从不同的视角对构件库中的构件进 行精确的分类,每个刻面具有一组术语( 关键词) ,术语之间有层次关系而形成结构化的 术语空间。如图2 所示,每个构件( c ) 有一个描述( d c ) ,是根据每个刻面( f i ) 构成的有 序术语集。每一个刻面与一个术语空间相关联,能充分并明确地描述构件库中全体构件, 即每一个构件都可以用该刻面来分类。一个刻面的术语空间为有限的不定空间,即可以随 应用的需要而动态地增加和删除术语。 菇m器nentltq=ffthe ? c o m f 一1 “ 菇舻p - 鞭_ 曼 l 黼h e t r m , , :m t i1 彻t 21 是t 3 麓 。t - - , t h et h e s a u r u s t l 义溯谢舆) t 11 _ s 111 s l1 2 s l1 3 s 1i n t 1 2 _ s 1 2 1 s 1 2 2 。s 1 2 3 s 1 2 n t 10 - s l3 1 s l3 2 s 1 3 ,s 1 3 n h ec o n c e p t u a ld i s

温馨提示

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

评论

0/150

提交评论