(计算机应用技术专业论文)面向服务体系结构的软件复用技术研究与应用.pdf_第1页
(计算机应用技术专业论文)面向服务体系结构的软件复用技术研究与应用.pdf_第2页
(计算机应用技术专业论文)面向服务体系结构的软件复用技术研究与应用.pdf_第3页
(计算机应用技术专业论文)面向服务体系结构的软件复用技术研究与应用.pdf_第4页
(计算机应用技术专业论文)面向服务体系结构的软件复用技术研究与应用.pdf_第5页
已阅读5页,还剩71页未读 继续免费阅读

(计算机应用技术专业论文)面向服务体系结构的软件复用技术研究与应用.pdf.pdf 免费下载

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

文档简介

北京科技大学硕士学位论文 摘要 六十年代以来,软件生产的复杂性随着应用的需求急剧增加,使大型软件的生产出 现了很大的困难,即出现软件危机。现有的一些克服软件危机的技术当中,软件复用技 术是比较有前途的种方法。软件复用可有效地解决软件开发效率、可靠性低下和维护 开销巨大等弊端。 软件复用技术主要包括面向对象技术、组件技术、领域工程等,而随着企业级应用 的不断发展,这些技术并不能很好地解决软件复杂性问题。今天我们面临的是诸如分布 式软件、应用整合、不同平台、各种各样协议和设备等这样的系统,解决这些系统之间 的通信与集成问题已成为关注的焦点。由此面向服务的体系结构s o a 被提了出来。基于 s o a 的系统可以消除不同协议和平台带来的问题,实现应用的无缝整合。 本文从软件复用技术的发展史出发,分析了面向服务的软件体系结构出现的必然 性,并结合s o a 的理论知识,采用w e bs e r v i c e 技术,设计了适合企业应用的多层体系结 构,并在实际系统中得到运用。 首先,介绍了软件复用的基础知识和主要技术、s o 的理论知识体系、其特点和未 来发展前景等,并将传统的基于构件的复用技术与s 0 a 进行了比较。然后深入研究了s o a 在i n t e r n e t 环境下的实现技术w e bs e r v i c e ,主要包括w e bs e r v i c e 的基础知识和协议 规范:) 国儿,s o a p ,w s d l ,i d d i 。接着,在这些基本理论的指导下,结合传统的软件体 系结构分层思想,在实践的基础上构建了基于s o a 的企业应用开发的层次体系结构,该 结构共分为四层:表示层、业务逻辑层、服务层和数据层。通过服务之间的调用和组合 形成整个系统的功能和业务逻辑。最后,结合教育部科技发展中心基金在线评审系统开 发实例,根据该系统自身的特点,在j a v a 开发平台下,实践了基于s o 的企业应用开 发。基于此系统,通过对服务的复用和组装,用户可以灵活快速地开发类似的基金管理 系统。 关键词:软件复用,$ o a ,w e bs e r v i c e 北京科技大学硕士学位论文 r e s e a r c ha n da p p l i c a t i o no fs o a - b a s e ds o f t w a r er e u s et e c h n i q u e s e v e r $ i l 虻et h e1 9 6 0 s , t h ec o m p l e x i t yo f s o f t w a r ed e v e l o p m e n th a v ei n c r e a s e dd r a m a t i c a l l y u n d e rt h ed r i v eo fd e m a n di nc o m p u t e ra p p l i c a t i o n , w h i c hc a u s e dg r e a td i f f i c u l t i e si nt h e p o d u d i o no fl a r g e - s c a l es o f t w a r e ,t h a ti s , s o f t w a r ec r i s i s a m o n gt h ec u r r e n tt e c h n o l o g i e s m o s t l yu s o 正t h es o f t w a r er e u s et e c h n o l o g yi sg e n e r a l l yc o n s i d e r e dt o b eap r o m i s i n g a p p r o a c hi na v o i d i n gt h ec r i s i s i tc a ne f f e c t i v e l ys o l v ep r o b l e m su s u a l l yf o u n di ns o f t w a r e d e v e l o p m e n t , s u c h a s l o w e f f i c i e n c y a n d r e f i a b i l i t y , a n d h i g h c o s t o f m a i n t e n a n c e t h es o f t w a r er e u s et e c h n o l o g ym a i n l yi n c l u d e so b j e c t - o r i e n t e dt e c h n o l o g y ,c o m p o n e n t - b a s e dt e c h n o l o g ya n dd o m a i ne n g i n e e r i n ge t c t h e s em e t h o d s h o w e v e r , w i t ht h ec o n t i n u o u s d e v e l o p m e n to fe n t e r p r i s ea p p l i c a t i o n , c a nn o tw e l lc o p ew i t hr a p i d l yi n c r e a s i n gc o m p l e x i t yo f s o f t w a r ed e v e l o p m e n t t o d a yw ca l ef a c i n gav a r i e t yo fs y s t e m s , l i k ed i s t r i b u t e ds o f t w a r e , a p p l i c a t i o ni n t e g r a t o n , d i f f e r e n t 曲哂啦p r o t o c o l sa n de q u i p m e n t s t h ec o n c e r t i st os o l v e c n 粥s - s y s t e mc o m m u n i c a t i o na n di n t e g r a t i o n t h a w sh o ws o aw a sb o r n t h es e r v i c e - o r i e n t e d a r c h i t e c t u r e ( s o a ) c a ns o l v el a o b l e m sc a u s e db yd i f f e r e n tp r o t o c o l sa n dp l a t f o r m s , a sw e l la s b r i i g m gs e a m l e s sa p p f i c a t i o n sj n t c 掣a 觚 b e g i n n i n gw i t ht h ed e v e l o p m e n th i s t o r yo fs o f t w a r er e t k e , et e c h n o l o g y , t h i sp a p e ra n a l y s e s t h ei n e v i t a b i l i t yo ft h ee m e r g e n c eo fs 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 b a s e d0 1 1t h et h e o l yo f s o aa n dw e bs e r v i c et e c h n o l o g y , t h i sp a p e rd e s i g n sal a y e r e da r c h i t e c t u r ea d a p t i n gf o r 锄t c i p r i a p p f i c a t i o n , a n da p p f i e st h ea r c h i t e c t u r ei na r e a ls y s t e m f i r s to fa n , t h i sp a p e ri n t r o d u c e st h eb a s i ct h e o r yo fs o l m v a x er e u s ea n dp r i m a r y t e c h n o l o g i e s ,a sw e l l 罄t h eb a s i ck n o w l e d g e 蛐概t h ef e a t u r e sa n dd e v e l o p m e n tf u t u r eo f s o a , m o l e o v e rc o m p a r i n gw i t ht r a d i t i o n a l m p o n e n t - b a s e dt e c h n o l o g y t h e n , t h i sp a p e r d i s c u s s e st h ei m p l e m e n t a t i o nt e c h n o l o g yo fs o au n d e ri n t e m e t - - w e bs e r v i c e , m a i n l y i n c l u d i n gt h ef u n d a m e n t a lk n o w l e d g ea n dp r o t o c o l s :x a m , s o a p , w s d la n du d d l f o l l o w i n gt h e s et h e o r i e s , t h i sp a p e rt h e np r o p o s e sas o a - b a s e dh y e r e da r c h i t e c t u r ef o r e n t e r p r i s ea p p l i c a t i o nd e v e l o p m e n tc o m b i n i n gt h et r a d i t i o n a ll a y e r e ds o f t w a i a r c h i t e c t u r e i d e o l o g yu p o np r a c t i c e t h i sa r c h i t e c t u r ei n c l u d e sf o u rl a y e r s :p r e s e n t , i o nl a y e r , b u s i n e s s1 9 舀c 呱s e r v i c eh y e ra n dd a t al a y e r a l lt h ef u n c t i o n sa n dh i s i n e 鹞呐玳9 9 b a e t a t e dt h r o u g h t h ei n v o m t i o aa n dc o m p o s i t i o no fs e r v i c e f u l 且l l y , 崩n gt h ed c v e l q ,m e m0 ft h e 幽c e v a l u a t i o ns y s t e mf o rd o c t o r a t ef u n do ft h ee d u c a f i o am 确鲫。t e c h n o l o g yd e v e l o p i n g c e n t e ra se x a m p l e , a c c o r d i n gt ot h es y s t e m so w i lc h m c t e 蛐t h i s p a p e rc a r r i e so u tt h e 北京科技大学硕士学位论文 s y s t e mi m p l e m e n t a t i o nu n d e rt h ej a v ap l a t f o r n l b a s e do nt h es 弘l c i 呜e n o u g ht h er c l l 辩a n d a s s e m b l yo fs e r v i c e s , u s e r sc a nq u i c k l ya n df l e 硼o l yd e v e l o pt h e i ro w n f u n dm a n a g e m e n t s y s t e 札 k e yw o r d s :s o f t w a r er e u s e , s e r v i c e o r l e n t e da r c h i t e c t u r e , w e bs e r v i c e 独创性说明 本人郑重声明:所呈交的论文是我个人在导师指导下进行的研究工 作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得 北京科技大学或其他教育机构的学位或证书所使用过的材料。与我一同 工作的同志对本研究所做的任何贡献均己在论文中做了明确的说明并表 示了谢意。 签名:超越日期:迪! ! 盟 关于论文使用授权的说明 本人完全了解北京科技大学有关保留、使用学位论文的规定,即: 学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公 布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论 文。 ( 保密的论文在解密后应遵循此规定) 签名:邋导师签名:墓塾堕日期: 碑;。廖 北京科技大学硕士学位论文 引言 将软件复用技术引入到应用软件的开发,对提高软件生产效率,增强软件可靠性、 可维护性和可移植性都有重大意义。一般来说,利用可靠的复用资源开发应用系统,不 仅能很好地满足客户需求,还将直接提高企业的经济效益和社会效益。构件技术的出现 给软件开发方法带来了一次质的变革,构件作为可重用的软件资源,在软件系统的开发 上解决了重复开发的问题,提高了软件开发的效率,在一定程度上实现了软件复用,但 它还没有很好地解决软件复杂性问题。随着软件开发方法研究的发展和分布式技术应用 的深入,基于多种开发平台和工具的商业系统得到大量的应用,使得企业中的软件系统 变得日益庞大和复杂。由于传统的软件开发使用的平台、开发工具、操作系统在结构上 的紧耦合,以致这些位置上分散的独立系统逐渐形成了所谓的“信息孤岛”。为了解决 这个问题,更为了提高系统的可复用度,一种面向服务的体系结构s o 被提了出来。 使用s o a ,可以更好地复用已有模块,加快软件开发速度,并且使得可以不用考虑 各自运行平台和开发环境的差异,将旧系统中可复用的模块方便地纳入新系统。基于 s o a 的服务组件将注意力集中在业务功能上,而不关心实现这一功能的具体技术。它强 调技术无关性,关注的是实现怎样的业务功能在业务请求与响应之间随时搭建快速 通道,同时,变过去的紧耦合为松耦合,既保证系统弹性,又不失系统效率,进而实现 重复利用软件资源、快速响应市场需求变化等目标。 本文在研究面向构件和服务的软件复用技术基础上,提出实现该思想的层次体系结 构模型,然后运用现有的技术设计实现该模型的方案,最后将该方案应用到教育部科技 发展中心基金在线评审系统的开发中,完成系统的设计与实现。通过系统的具体设计, 详细展示了基于s o a 架构的应用系统实现过程以及运用s o a 思想构建系统在业务重用、 可扩展性、以及性能的可伸缩性等方面的优势。 1 北京科技大学硕士学位论文 1 课题背景 1 1 研究背景及意义 企业信息化大大提高了企业的竞争力,缩短了业务执行的周期,提高了业务交互的 效率,为企业决策未来发展方向提供了强有力的数据分析。然而,实施信息化后企业和 软件开发商又面临着新的挑战:如何在多个孤立的系统之间实现有效的信息共享,如何 对业务的新需求做出快速的响应等等。 目前在构建企业应用的时候,通常采用“独立解决方案”来进彳亍l 也就是说,对 于每个应用,都是从一次性开发的角度实施的,应用的每一个更改都需要由特定的程序 员来完成,于是将很难被再次定制。并且,当需要如遗留系统、数据库、w 曲应用这些 资源时,程序员需要一一编写连接这些资源的代码,以使得应用得以运行。所以当需要 融入新的商务流程或应用时,所有的这一切不得不从最初的系统设计开始做起。这样, 想通过跨应用集成的方式实现应用重用变得异常地困难。因为每个应用都有其自己特有 的基础架构,这些应用在部署、更改和维护上的代价都异常高昂。企业不得不为每套应 用配置特有的专业技术人员,并保持与不同技术供应商或解决方案供应商的密切联系。 同时这些应用既不能方便地继承,也不能随着企业商务的规模扩展而方便地实现应用的 规模扩展。早先出现的应用解决方案软件体系架构,比如e d i 、内容服务器、应用服务 器、传统e m ,以及那些为创建企业门户以及其他单个电子商务应用而设计的独立解决 方案都无法解决这个问题。它们之所以无能为力,是因为它们不无例外地都是基于复杂 应用连接的、不具备良好集成能力的应用开发模式,它们都是通过复杂的程序代码实现 复杂应用连接以连接用户、电子商务应用以及其他信息系统的。这样的实现方式既无法 有效地解决经常发生的电子商务流程的更改而触发的大额费用,也无法有效地解决各类 用户的定制需求。 传统的软件体系结构己经无法满足软件复杂性迅速增长的需求。业界提出面向服务 的体系结构( s o a ) 作为软件体系结构的下一个发展阶段,可以用来帮助软件开发商解 决新时期软件开发中存在的问题。s o a 可以将其现有的资产带到未来同时又构建新的应 用程序系统。一般企业应用都是以应用为出发点去设计和开发的,也就是以公司部门为 基本单位设计和开发管理系统,各个系统之问相互独立,互不相扰。随着公司规模的扩 大,独立系统的功能和数量一直都在发生着变化。单独从公司一个部门或者一个子系统 的角度去考虑,可能不会发现任何漏洞。然而,人们很快就会意识到:大多数的业务和 2 北京科技大学硕士学位论文 服务不是在一个子系统内或者一个部门就可以完成的。臌术正在迅猛的发展,子系统 的开发时间不同,所采用的技术自然也很有可能不同。一个业务请求很难在不同开发工 具实现的子系统间实现有效的调用。面向服务架构应运而生,它把子系统能够实现的功 能划分为粒度不同的服务,子系统之间的功能调用转换为服务的调用。 在各个子系统之间,功能重复的概率是很高的,人们提出各种软件复用来解决重复 开发的问题。s o a 的出现,给软件开发人员提供一个更行之有效的、复用力度更大的方 法,它将传统的技术层面的复用提升到商业逻辑层面的复用,将企业的需求划分成服 务,然后按照商业规则组合这些服务,以满足不同使用者的需求。 1 2 国内外研究状况 s o a 架构为软件体系结构注入了新的生命活力,它基于“软件变服务”思想,提 出了一种新的解决软件重用和软件集成的方案1 2 1 。通过采用面向服务的体系结构,企业 能够迅速便捷的构建开放的、模块化的、可重用、与平台无关、可扩展的应用系统。这 种模式尤其适合面向广域环境的大规模应用场景,如跨企业的电子商务系统、跨地域或 者跨部门的电子政务系统、i n t e r n e t 环境下的协同计算等等。在基于面向服务的软件体 系结构的研究中,目前业己实现了s o a 的较有代表性的工作是s u n 的j i n i 技术以及得 到各大公司广泛关注的w e b 服务技术【3 】。 作为s o a 的一种实现手段,w 曲服务提供了基于) a 订哳准接口的若干中间件,具有 完好的封装性、松散的耦合性、协议规范的标准性、以及高度的可集成性等特点,能够 很好的满足s q a 应用模式需求。目前己经有一系列基于皿胸w c b 服务标准被业界广泛 接受,形成了w e b 服务的核心技术;服务的提供者可以用w s d l ( w e bs e r v i o 曙 d e s c r i p t i o nl a n g u a g e ) 描述w e b 服务;用u d d i ( u n i v e r s a ld e s c r i p t i o n ,d i s c o v e r ya n d i n t e g r a t i o n ) 注册中心发布、注册w e b 服务;服务的请求者通过u d d i 进行查询,找到所 需的服务后可以利用s o a p ( s i m p l eo b j e c ta c c e s sp r o t o c 0 1 ) 来绑定、调用这些服务。 w e b 服务继承了) 渐l 语言的优势,是一种与开发语言、平台无关的开发技术,并采用和 支持国际公开的开放技术标准规范嗍。 传统的中间件厂商对w e b 服务的支持也是不遗余力。i b m 公司很早就推出了 w e b s p h e r e 产品,支持各种有关的w e b 服务标准;j a v a 技术的创立者s u n 公司新提出 了开放式软件架构s u no n e ,力图融合j a v a 和) 洲l 而m i c r o s o f t 公司的n e t 战略即 以x m l 为基础,其发布的v i s u a ls t u d i o n e t 将成为w e b 服务的主要产品。针对已经 3 北京科技大学硕士学位论文 公布的标准,许多大型企业开始着手对基于w e b 服务的面向服务的体系架构予以实现 和推广。 伴随着面向服务架构应用的稳健步伐,各个公司在实现各种w e bs e r v i c e s 和将已有 应用转换成面向服务架构上取得了重大的进展。在面向服务架构的研究中,研究有着眼 于整个架构设计的原则与模型的讨论,也有针对具体的服务细节进行讨论。国内外已经 有一些案例,将s o a 的设计思想应用到医疗、电信、金融等各个行业i 蜘。就w e b 服务核 心支撑技术的研究而言,存在很多有待解决的开放问题,例如,在组合w c b 服务的实施 方案中,服务组件或基本服务的定位、协调、通信及调用策略,服务执行结果的评估和 正确性验证,高效服务质量管理策略的探索及服务质量代价模型的建立等等婀。对于具 体的研究细节,服务的自动组合、服务设计的粒度、服务的契约,乃至服务的分析与设 计都是研究的热点。 1 3 本文研究内容与组织 基于以上分析,结合业界当前的研究现状,我们可以得出一个解决企业应用开发中 存在的问题的基本思路经过对大量的领域应用系统开发和应用实践的总结,人们发现 了在多数应用系统中都存在具有公共特性的结构和服务支持,它们构成了几乎所有领域 应用系统的功能核心如果从软件复用的角度来考虑,我们可以将这些公共的结构和功 能提取出来,在此基础之上进行软件架构,构建出企业应用框架模型,那么就不必每一 次都完全由零开始建立领域应用系统,从而避免了花费在设计和实现公共的标准操作和 处理之上的大量工作和投资,也就是所谓的“低层次重复开发”的工作,使得基于框架 模型之上的应用系统的开发能够更加专注在具体应用特别重要的问题上。 本文的主要研究内容就是基于以上的思路,深入的研究面向服务软件体系结构以及 企业应用中的多层架构模式,进一步剖析s o 构建软件的思想,分析s o 的相关理论与 实现的具体技术,在此基础上提出一种基于s o a 思想的软件开发层次架构设计,即适用 于整个软件行业的易于扩展、易于维护的一个实用架构模型,运用该架构模型设计出基 于面向服务体系构架的、易复用、易维护和易扩展的软件,并将其应用到教育部科技发 展中心基金在线评审系统设计和实现中。 本文的组织结构如下: 第一章介绍了企业信息化应用软件的开发现状及存在的问题,讨论了目前针对这些 问题而研究的相关理论、方法,在此基础上提出了本文的主要研究方向与内容; 4 北京科技大学硕士学位论文 第二章综述了软件复用基本理论,包括软件复用的概念、关键技术和存在的问题, 重点介绍了基于构件的软件复用技术; 第三章介绍了s o a 的理论知识构架,讨论了s o a 与构件技术的联系和区别,重点 介绍了在i n t e m e t 下实现s o a 的关键技术w e bs e r v i c e 的技术堆栈; 第四章着重讨论了基于s o a 的多层软件体系结构的架构设计,以及每一层次的架 构模式与设计实现方案; 第五章以教育部科技发展中心基金在线评审系统的开发为例,详细论述了基于 s o a 的多层软件体系结构的具体应用过程,并介绍了基于遗留系统的软件开发过程, 完成了系统开发中各层技术的选择和具体实现; 最后是总结和展望,总结了论文的研究内容,并对论文进步的研究方向进行了展 望。 5 北京科技大学硕士学位论文 2 软件复用技术 2 1 软件复用 2 1 1 软件复用基本概念 自m c i l r o y 提出软件复用概念之后,1 9 8 3 年f r e e m a n 进一步拓宽了这一概念,指出 可复用的构件不仅可以是源代码片段,而且可以是模块设计结构、规格说明和文档等 9 1 。随着研究的不断深入,特别是构件技术的实现,软件复用技术正在取得积极进展。 软件复用又称软件再用、软件重用,是一种由预先构造好的、为复用目的而设计的 软件构件来建立或者组装软件系统的过程。它的基本思想是放弃那种原始的、一切从头 开始的软件开发方式,而由公共的可复用的构件来组装系统,从而提高软件的开发效 率,增强软件的可维护性1 1 q 。相应地,可复用软件是指为了复用目的而设计的软件。软 件复用是在软件开发中避免重复劳动的解决方案,使得应用系统的开发不再采用“一切 从零开始”的模式,而是以已有的工作为基础,充分利用过去应用系统开发中积累的知 识和经验,从而将开发的重点集中于应用的特有构成成分。 随着软件复用技术的不断发展,软件复用涵盖的范围越来越广。它不仅是对软件程 序的复用,还包括对软件生产过程中其它劳动成果的复用,如项目计划书、可行性报 告、需求分析、概要设计、详细设计、源程序、测试用例、文档与使用手册甚至是整个 软件系统的架构等等。 目前对软件复用的研究范围很广,可以按复用对象、范围、方法和应用等标准对软 件复用进行分类。 依据复用的对象,可以将软件复用分为产品复用和过程复用1 1 1 1 。 1 1 产品复用又称组装式复用,指复用已有软件构件,通过构件集成( 组装) 得到新 系统。 2 ) 过程复用又称生成式复用,指复用已有的软件开发过程,使用可复用的应用生 成器来自动或半自动地生成所需系统。 其中,过程复用依赖于软件自动化技术的发展,目前只适用于一些特殊的应用领 域。产品复用是目前现实的、主流的途径。 依据对可复用信息进行复用的方式,可以将软件复用区分为黑盒复用和白盒复用。 1 ) 黑盒复用指对已有构件不需作任何修改,直接进行复用。这是最理想的复用方 式。 6 一 北京科技大学硕士学位论文 白盒复用指已有构件并不能完全符合用户需求,需要根据用户需求进行适应性 修改后才可使用。 无论自盒复用还是黑盒复用,都要花费一定的代价熟悉和掌握被复用的软件系统。 依据复用应用的领域范围,将复用分为横向复用和纵向复用1 9 1 1 1 横向复用是指复用不同应用领域中的软件元素,例如数据结构、分类算法、人 机界面构件等。标准函数库是一种典型的原始的横向复用机制。 纵向复用是指在一类具有较多公共性的应用领域之自j 进行软部件复用。 因为在两个截然不同的应用领域之间实施软件复用非常困难,潜力不大,所以 纵向复用才广受瞩目,并成为软件复用技术的真正所在。 2 1 2 软件复用关键技术 软件复用的一个关键因素是抽象。抽象是对软件可复用对象的提炼和概括,即将可 复用对象的基本属性和相应的操作从具体的语言、环境和其他细节中提炼出来。所谓对 象,广义地说,客观世界的一切事物都是对象,在计算机软件领域中,对象是客观实体 在计算机中的抽象,它是有代表客观实体的属性和行为的一个封装。软件的复用性很大 程度上取决于对可复用对象的认识深度或者说可复用对象的抽象层次。抽象层次越高、 与具体环境和特定细节越无关,则它被未来系统复用的可能性也越大f 1 3 1 。从整个开发阶 段来看,分析阶段、设计阶段、实现阶段的抽象层次是由高到低的。 软件复用有三个基本问题旧,一是必须有可复用的对象,二是所复用的对象必须是 有用的,三是复用者需要知道如何去使用被复用的对象。软件复用包括两个相关的过程: 面向复用的开发( 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 h r e u s e ) ,前者是生产可复用构件的过程,后者是利用现有的可复用构件生产新系统的 过程。解决好这几个方面的问题才能实现真正成功的软件复用。 可复用软件( 构件) 的开发是实现软件复用的基本条件,对象技术的广泛使用,提 供了建造和使用构件的概念基础和实用工具,有了可复用软件,基于构件的应用系统构 造( 集成和组装) 才能得以实现。软件的生产也可以象硬件的生产一样,在设计好框架 后通过标准的构件组装而成。一般认为构件是具有一定功能、能够独立工作或同其他构 件组合起来协调工作的程序体,一经产生,就与它的具体实现语言无关,可以认为是一 段二进制码和数据段,其内部具体实现是无法看到的。可将成熟的构件当作商品出售, 在保证开发者的利益同时最大地满足社会需求。 - 7 北京科技大学硕士学位论文 与以上几个方面的问题相联系,实现软件复用的关键因素( 技术和非技术因素) 主 要包括:软件构件技术( s o 缸3 9 t a l - ec o m p o n e n tt e c h n o l o g y ) ,领域工程( d o m a i n e n g i n e e r i n g ) 、软件构架( s o f t w a r ea r c h i t e c t u r e ) 、软件再工程( s o f 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 技 术等以及各种非技术因素。实现软件复用的各种技术因素和非技术因素是互相联系的, 它们结合在一起,共同促进软件复用的实现。 z 1 3 软件复用存在的问题 虽然软件复用技术在不断发展,但是在信息系统的开发设计中软件复用技术的应用 却面临各种问题的挑战。尽管复用的思想很简单,但复用的实现却很难,主要的问题是 当前大多数软件开发方法或者没有包含复用的概念,或者没有明确地指明在软件开发过 程的什么时候,什么地方进行复用以及如何进行复用。据统计,在我国开发的计算机信 息系统中,只有3 0 能真正体现出其价值1 1 4 】。无论是技术问题还是非技术问题,都影响 着软件复用的广泛实行。归纳起来主要有以下几方面不足: n 技术因素 构件或服务与应用系统之间的差异:一些开发者开发的构件,要做到在被另一些人 开发的系统中使用时正好合适, 从内容到对外接口都恰好相符,或者作很少的修改,这不是一件简单的事;构件或 服务要达到一定的数量,才能支持有效的复用,而大量构件或服务的获得需要有很高的 投入和长期的积累。基于复用的软件开发方法和软件过程需要一些新的理论、技术及支 持环境,目前这方面的研究成果和实践经验都不够充分。 人的因素 软件开发是一种创造性工作,长期从事这个行业的人们形成了一种职业习惯,喜欢 自己创造而不喜欢使用别人的东西,特别是当要对别人开发的软件作一些修改再使用 时,他们常常喜欢自己从头做起。 管理因素 在软件生产的管理中,从以往沿习了一些与复用的目标很不协调的制度与政策,如 计算工作量时,对复用的部分打很大的折扣,甚至不算工作量;另外,不是在项目开始 时自觉地向着造就可复用构件和服务的方向努力,而是在它完成之后,看看是否能从中 找到一些可复用元素。这些弊端妨碍了复用水平的提高和复用规模的扩大,甚至会挫伤 致力于复用的人员的积极性。 8 北京科技大学硕士学位论文 铆教育因素 在软件科学技术的教育与培训中,缺乏关于软件复用的内容,很少有这方面的专门 教材及课程,即使在其它教材及课程中提到软件复用,其篇幅及内容也相当薄弱。 另外,软件产品是一种精神产品,它的产生几乎完全是入脑思维的结果,它的 价值,也几乎完全在于其中所凝结的思想,只要人的大脑能想到的问题,都可能要 求软件去解决,人脑所能思考的问题的复杂性,远远超出了人类能制造的物质产品 的复杂性,因而使软件的复用更为困难。因此实现软件复用越来越被重视,各种技 术也不断涌现,真正地实现软件复用还是一个任重而道远的事情。 2 2 构件技术 2 2 1 构件的概念 到目前为止,国际学术界还没有一个构件的统一定义,其根本原因在于构件被看作 是软件复用的基本单位,而不同时期、不同研究人员所关注的复用类型是不同的,因此 对构件的认识也就不一样,基本上比较统一的是认为构件是应用系统中可以明确辨识的 有机构成成分嗍。作为一种软件开发技术,构件的基本理念是将软件开发过程中会重复, 用到的部分封装起来,等到有新的同样的需求时调用。 由此可见,任何在当前或将来对于开发和维护软件系统有价值的信息单元都是构 件。它可以包括软件工作产品、软件子系统、源代码构件、构架、领域分析、设计文 档、个案分析、经验教训、研究成果以及有创见的软件工程思想与表述等等。这个定义 不仅仅限于开发与维护系统用到的某个软件生命周期的成果或过程,比狭义的软件构件 意义更为广泛。可复用构件就是指具有相对独立的功能和可复用价值的构件,它对于软 件复用更是有重要的意义。构件有几个基本属性: 1 1 构件是可独立配置的单元,因此构件必须自包容。 2 1 构件强调与环境及其他构件的分离,因此构件的实现是严格封装的,外界没机 会或没要知道构件内部的实现细节。 构件可以在适当的环境中被复合使用,因此构件需要提供清楚的接1 5 1 规范,可 以与环境交互。 钔构件不应当是持续的。即构件没有个体特有的属性。 构件沿袭了对象的封装特性,但同时并不局限在一个对象,其内部可以封装一个或 多个类、原型对象甚至过程,结构是灵活的。构件突出了白包容和被包容的特性,这就 是作为软件生产线上零件的必要特征。 9 北京科技大学硕士学位论文 2 2 2 构件的管理 构件库是管理构件的工具。构件库是按照一定的语义和组织结构形成的一个构件集 合,用于对可复用构件进行存储和管理,它是支持软件复用的必要设施。实践证明,以 构件库为中心,对构件进行有效的管理,才能达到更好的支持构件重用的目的1 1 6 1 。 构件库系统应提供的主要功能有:构件的存储、管理、检索以及库的浏览与维护 等。关键是支持使用者高效而准确地发现所需的可复用构件。相关的主要技术是分类方 法和检索方法。 目前有很多构件分类和检索方法,从构件表示出发可分为人工智能方法、超文本方 法和信息科学方法三类【1 7 1 ,而根据复杂度和检索效果的不同可以分为基于文本的、基于 词法描述的和基于规约的编码和检索。在实际复用项目应用中较为成功的方法是信息科 学方法,并且以枚举、刻面、属性值、关键词和正文检索几种分类方法最为常见,其中 刻面分类方法能够表达丰富的构件信息,尤其为人关注。 2 2 3 基于构件的软件工程 基于构件的软件工程( c o m p o n e n t - b a s e ds o f t w a r ee n g m e e r i n g ,c b s e ) 与传统的软 件开发过程有很大不同,它强调应用可复用的软件构件来设计和构造应用系统。c b s e 从根本上改变了软件生产方式 t s l ,体现了f r e db r o o k s 等人支持的“购买,而非建造”的 思想。它考虑的重点从编程软件移到组装软件系统,集成已经成为考虑的焦点。这样做 的基础是假定在很多大型软件系统中存在足够多的共性,从而使得开发可重用的软件构 件来满足这些共性是值得的。c b s e 大大提高了系统开发的质量,它缩短了开发时间, 把许多复杂包封装到了特定的框架下,提高了构件使用的共享性。 从工程学角度上说基于构件的软件工程的目标是: 1 ) 降低费用:这是所有软件开发方法学的共同目标,c b s e 试图把成本效率提高 到软件复用方法的最高境界; 射方便装配:c b s e 的最大特征是实现一系列构件的装配过程; 提高复用性:全面考虑构件在多个应用系统中的复用潜力; 铆提高可定制性和适应性:开发者可以按需配置构件; 研提高可维护性:在系统中可以方便地添加、删除和修改构件。 从技术角度i 棚3 s e n 标是: 1 ) 降低耦合:耦合指构件之阃的相关性; 2 ) 提高内聚:内聚指构件内元素之间的相关性; 1 m 北京科技大学硕士学位论文 3 ) 控制粒度;系统中构件对应问题域的规模,包括构件数量和大小两个方面。 基于构件的软件工程与传统的或面向对象的软件工程相比,有显著的差异,它不是 针对某个特定的软件系统,而是针对一类软件系统的共同的特征,知识和需求1 1 9 j 。为了 实现软件重用,它强调领域工程和应用工程同时进行。领域工程是“开发构件”的过 程,应用工程是“用构件开发”的过程。 开发单个系统的软件过程称为应用工程。在应用工程中,软件开发人员的任务是针 对一组特定的需求产生一组特定的设计和实现,与此相对,在领域工程中,领域工程人 员的基本任务是对一个领域中的所有系统进行抽象。领域工程的各个阶段主要是对应用 工程中相应阶段产品的抽象,领域工程又对本领域中新系统的开发提供了支持,应用工 程重用领域工程的结果。 i i 北京科技大学硕士学位论文 3 面向服务的体系结构相关技术研究 3 1 面向服务的体系结构s 0 a 3 1 1s o a 的概念 面向服务的体系结构s o a 是一种在计算环境中设计、开发、部署和管理离散逻辑 单元( 服务) 的模型,它将应用程序的不同功能单元( 称为服务) ,通过这些服务之间 定义良好的接口和契约联系起来i 捌。接i :1 是采用中立的方式进行定义的,它独立于实现 服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以 一种统一和通用的方式进行交互。 这种具有中立的接口定义的特征称为服务之间的松耦合。松耦合系统的好处有两 点,一点是它的灵活性,另一点是,当组成整个应用程序的每个服务的内部结构和实现 逐渐发生改变时,它能够继续存在。而另一方面,紧耦合意味着应用程序的不同组件之 间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形 式的更改时,系统就显得非常脆弱。对松耦合系统的需要来自于应用程序需要根据业务 逻辑的需要变得更加灵活,以适应不断变化的环境。 传统的w c b ( h ,i m i 棚甲) 技术有效的解决了人与信息系统的交互和沟通问 题,极大的促进了b 2 c 模式的发展。w e b 服务技术则是要有效的解决信息系统之 间的交互和沟通问题,促进1 3 2 b 愿a j 的发展。s o a 则是采用面向服务的商业建模技 术,实现系统之间的松耦合,实现系统之间的整合与协同。w e b 服务和s o a 的本 质思路在于使得信息系统个体在能够沟通的基础上形成协同工作1 2 1 1 。 s o a 系统原型的一个典型例子是通用对象请求代理体系结构c o r b a ( c o m l i l o n 删c dr e q u e s tb r o k e ra r c h i t e c t u r e ) 。c o r b a 已经出现很长时间了,其定义的概念与 s o a 相似。然而,现在的s o a 因为基于一些更新的软件技术已经有所不同了,这些技术 是以可扩展标记语言x m l 为基础的。通过使用w c b 服务描述语言w s d l , 这种基于x m l 的语言来描述接口,服务己经转到更动态且更灵活的接口系统中的接口,非以前 c o r b a 中的接口描述语言d l 可比了。 3 1 2s o a 的组成元素 面向服务的服务模型如图3 1 ,其中主要有三种角色,他们分别是服务提供者、服 务调用者和服务注册中心圈。 1 二 北京科技大学硕士学位论文 图3 1s o a 服务模童 ( 1 ) 服务提供者 服务提供者是创建服务的实体,负责服务功能的具体实现,并通过注册服务操作将 其所提供的服务接口和访问信息发布到服务注艇中心以供服务调用者发现和访问服务, 当接收到服务调用者的服务请求时,执行所请求的服务。 ( 2 ) 服务调用者 服务调用者是服务执行的发起者,首先需要到服务注册中心中查找符合条件的服 务,然后根据服务接口说明信息并使用某种传输协议进行服务绑定调用,以获得需要 的功能。 ( 3 ) 服务注册中心 服务注册中心处于中心位置,它提供服务提供者注册服务、提供对服务的分类和查 找功能,以便服务调用者发现服务。 结合上面的服务模型,可得n s o a 系统中的组成元素如图3 2 所示,其中f u n c t i o n s 部分包括以下元素: 1 1t r a n s p o r t 。表示了服务提供者和服务使用者之间的消息传输所采用的协议,如 r r i p 、兀甲等。 劲s e r v i c ec o m m u n i c a t i o np r o t o c o l 。表示了服务之间通信所采用的协议。即服务提 供者和服务使用者之间如何理解双方互相发送的消息。 3 1s e r v i c ed e s c r i p t i o n 。表示如何对服务本身进行描述,如服务所需入口参数、返 回值、服务所在位置等信息。 钔s e r v i c e 。表示可被调用的服务本身。 习b u s i n e s sp r o c e s s 。表示为了达到业务需求的目的而按照规则和一定序列调用的 一组服务集合,它可以将细粒度的服务组和为粗粒度的集合。这些业务流程描 1 3 - 北京科技大学硕士学位论文 述通常有w s h b p e i 等。 6 1s e r v i c er e g i s t r y 。保存有服务数据和描述信息。服务提供者可以在此发布服务 信息,服务使用者可以在此查找

温馨提示

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

最新文档

评论

0/150

提交评论