




已阅读5页,还剩73页未读, 继续免费阅读
(计算机应用技术专业论文)基于构件服务的水文预报领域复用技术研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 面向对象技术出现并逐步成为主流技术,为软件复用提供了基本的技术支持。软件构件技术是分布 式对象研究领域中的重要内容,它被视为实现成功复用的关键因素之一。采用目前的一些软件构件技术 提高了软件开发的效率和质量,但是它们还存在紧密藕合、跨平台集成困难等一些问题。w e bs e r v i c e s 技术为解决这些问题提供了有效的途径,它是对象,构件技术在i n t e m e t 中的延伸。构建采用面向服务的 体系结构的领域应用,有效解决了异构构件开发技术集成的阉题,从而可以提高系统的伸缩性、可用性, 实现应用间无缝集成和信息共享,减少开发、部署的投资和时间。 水文预报领域中存在着大量的方法、函数库,且业务流程较容易划分,具有很高的复用价值。在水 文预报领域已经出现了通用函数库等一些具有复用性质的产品,在一定程度上提高了开发的效率。然而 在这些传统水文预报应用还存在着复用粒度较小、不适应w e b 应用等问题。开展适合水文预报领域应 用的复用技术研究具有重要的意义。 本文以水文预报领域为研究背景,研究适合该领域应用系统开发的有效的软件开发方法和软件体系 结构。论文的研究目标是充分利用构件复用技术,来解决水文预报领域应用系统开发过程中存在着的效 率和质量问题。在研究基于构件的开发方法和面向服务的体系结构的基础上,本文针对领域应用的需求, 提出了一个基于构件,服务的水文预报领域应用解决方案,并给出了基于此方案的洪水预报系统的开发 实例。 本文的工作主要包括咀下几方面的内容: 1 、系统研究了基于构件的软件开发方法和w e bs e r v i c e s 技术,给出了面向服务的领域构件复用过 程,实现了基于构件的开发方法和面向服务的体系结构的融合。 2 、针对水文预报这个特定领域的应用特点及传统开发中存在的问题,给出了基于构件朋务的水文 预报领域应用方案,方案将基于构件的开发方法和面向服务的体系结构合理结合起来,采用多层体系结 构,使系统具有松散耦合、异扩展、功能可重构、跨平台实现等特点,有效解决了水文预报领域应用中 存在的复用粒度不高、不合适w e b 应用等问题。 3 、在方案的指导下,选取洪水预报系统作为水文预报应用开发的一个示例,通过对典型洪水预报 系统进行需求分析,完成了洪水预报系统的设计与实现。验证了方案的正确性、可行性。 【关键字】基于掏件的开发技术c b d 、面向服务的体系结构$ o a 、w e bs e r v i c e s 、水文预报领域 a b s t r a c t i nt h ep a s ts e v e r a ly e a r s ,t h et e c h n o l o g yo fo b j e c t - o r i e n t e dh a v eb e c o m et h em a i na n dt h eb a s eo f s o f t w a r er e u s i n g s o f t w a r ec o m p o n e n ti st h ei m p o r t a n tc o n t e n to f d i s t r i b u t e d o b j e c tr e s e a r c ha n d i sr e g a r d e da s o n eo ft h ek e yf a c t o ro fs u c c e s s f u lt e n s e m a n yc o m p o n e n t ,s u c h ,c o r b a ,d c o m , e j bh a v ei m p r o v e d t h ee f f i c i e n c ya n d q u a l i t y o fs o f t w a r ed e v e l o p m e n t , b u t , i tc a r l n o t m e e t t h e w h o l e r i c e d o f d o m a i n a p p l i c a t i o n s o ,w e bs e r v i c e s i s p u tf o r w a r da n di s t h eg r o w t ho fo b j e c te n dc o m p o n e n t s i n c 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 ) h a st h ea d v a n t a g e so fs c a l a b i l i t y , a c c e s s i b i l i t ya n dm a i n t e n a n c e ,i ti s o n eo f t h ee f f i c i e n t w a y s t os o l v ep r e v i o u sp r o b l e m s t h e r e i s m a n y m e t h o d sa n d f u n c t i o n s i n t h e d o m a i n o f h y d r o l o g i c a l f o r e c a s t i n g , a n d t h e w o r k f l o w i n t h e d o m a i ni se a s yt ob ec a r v e du p 。t h ev a l u eo fr e u s i n gi sv e r y h i g ha n dm a n yr e u s a b l es y s t e mh a v ea p p e a r e d _ f o re x a m p l e ,t h e r ei sm a n yc o n l r n o nf u n c t i o nl i b r a r i e si nt h ed o m a i n h o w e v e r , m o r eo ft h er e u s ei nt h e d o m a i ni sc o d er e u s e ,a n dm o r ec l i e n t so ft h es y s t e mi sw i n d o w sa p p l i c a t i o n i tc a nn o tm e e tt h en e e do f l o n g - s c a l er e u s ea n di n t e r a c t t h er e s e a r c ho fr e u s i n gi nt h ed o m a i no fh y d r o l o g i c a lf o r e c a s t i n gi sv e r y i m p o r t a n t t h ep a p e rc o m b i n e dw i t ht h ec h a r a c t e r i s t i c so f h y d r o l o g i c a lf o r e c a s t i n gd o m a i n ,t h ep r o b l e m so ft h e d o m a i n a p p l i c a t i o nd e v e l o p m e n t a r es t u d i e d , w h i c hi n c l u d ec o m p o n e n t - b a s e d d e v e l o p m e n t , s e r v i c e o r i e n t e d a r e l f i t e c t u r ee t c ,a n dt h em e t h o d o l o g yo f a r e h i t e c t i n gw e bs e r v i c e sa p p l i c a t i o n t h e nf o c u s e do nt h ed o m a i n , am o d e li si n t r o d u c e df o rt h ed o m a i nd e v e l o p m e n t a ne x a m p l e ( f l o b d - f o r e c a s ts y s t e ma p p l i c a t i o n ) i s p r e s e n t e dt oe x p l a i nh o w t od e v e l o pa p p l i c a t i o n sb a s e do nt h em o d e l t h em a i nw o r ko f t h i st h e s i si n c l u d e s : 、 1 r e s e a r g h c o m p o n e n t - b a s e dd e v e l o p m e n t m e t h o da n dw e b s e r v i c e s ,a n a l y s et h el e a d i n gc o m p o n e n t t e c h n o l o g y a n dw e bs e r v i c e s 2 c o m b i n e dw i t ht h ec h a r a c t e r i s t i c so fh y d r o l o g i c a lf o r e c a s t i n gd o m a i n , t h ep r o b l e m so ft h ed o m a i n a p p l i c a t i o nd e v e l o p m e n ta s r a d i e d , w h i c hi n c l u d e s e r v i c e ss e l e c t i o n , s e r v i c e sr e d i r e c t i o na n ds e r v i c e c o m p o s i t i o n e t c ta n dt h em e t h o d o l o g yo f a r c h i t e c t i n gw e bs e r v i c e sa p p l i c a t i o n t h e nf o c u s e do nt h ed o m a i n , a s o l u t i o ni si n t r o d u c e df o rt h ed o m a i n d e v e l o p m e n t 3 b a s e do nt h i ss o l u t i o n ,i ti se x p l a i n e dh o wt od e v e l o pa p p l i c a t i o n so fh y d r o l o g i c a lf o r e c a s t i n g d o m a i n b yu s i n ga ne x a m p l eo f f l o o df o c a s t i l i gs y s t e m k e yw o r d s :c o m p o n e n t - b a s e dd e v e l o p m e n t , s e r v i c e s - o r i 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 ,h y d r o l o g i c a l f o r e c a s t i n gd o m a i n 河海大学硕士论文基于构件服务的水文预报领域复用技术研究与应用 1 1 研究动因 第一章绪论 在自然界中,水文现象及其要素( 如水位、流速、流量等) 遵循着其运动的 内在规律,每时每刻都在变化和演变,当人们掌握了这些水文规律,即可由实测 资料预测未来的水文现象及其特征值。作为实用水文学的一个重要组成部分,水 文预报的基础主要是利用水文学原理对水文现象进行详细的物理成因剖析,充分 了解和掌握内在的客观规律。然而由于目前对水文现象演变的物理机制尚未充分 认识,现行的水文预报方法大多是具有一定物理成因基础的经验性方法。 水文模拟就是将水文过程加以简化,将次要的与偶发的因素去掉,保留主要 的与基本规律部分,建立有物理意义的数学模型,在计算机上进行实现的过程。 而用于水文预报目的那种数学模型也就称为水文预报模型【1 】。 在水文预报领域中存在着许多预报模型,他们都遵循着水文现象中的一些规 律,存在着许多共性,而且这些预报模型中包含着许多大量的方法和函数库,存 在着极高的复用价值,研究水文预报复用可以大大提高水文预报应用系统的开发 效率和提高水文预报精度,具有十分重要的意义。 在传统水文预报领域应用开发中已经出现了一些具有复用性质的产品,比如 出现了一些较为通用的函数库或者功能模块库,在一定程度上提高了领域应用开 发的质量和效率。然而,目前还存在着以下问题: ( 1 ) 复用粒度较小。停留在方法函数库复用的级别,多为代码级复用; ( 2 ) 复用多依赖于某一具体程序语言,无法与其他语言实现的方法函数库 集成: ( 3 ) 复用多限于供自己使用,不能有效推广。从而制约了水文预报领域预 报精度的总体提高; ( 4 ) 多为桌面应用程序,不能满足分布式w e b 应用的需求。 造成以上问题的原因有多种,归纳起来主要有: ( 1 ) 缺乏统一的水文预报领域开发规范标准,不利于大粒度复用及w e b 应 用的推广; ( 2 ) 由于在水文预报领域应用中,在系统运行环境和用户应用需求上均存 在着较大差异,如何实现水文预报系统各功能模块之间的跨平台、跨语言、跨硬 件的无缝集成也成为影响软件复用的一个非常重要的因素; ( 3 ) 由于水文预报方法大多是具有一定物理成因基础的经验性方法,一种 河海大学硕士论文基于构件服务的水文预报领域复用技术研究与应用 预报计算方法可能是一位或多位专家一生研究心血的结晶,出于经济利益和版权 的考虑,许多专家不愿意对外公开其研究出来的预报方法,采取构件的开发方法 对其而言可能只能做到一次受益,无法在版权上很好的控制构件的使用,从而在 一定意义上形成了影响预报模型复用的障碍。 综上分析,由于这些原因的客观存在,不利于水文预报领域复用的开展,极 为需要开展软件复用技术在水文预报领域应用的研究。研究如何提高软件的复用 程度,减少重复开发已成为水文领域软件开发当前面临的主要问题之一。 1 2 技术背景 软件复用是软件开发中避免重复劳动的解决方案,其出发点是应用系统的开 发以已有的工作为基础,充分利用过去应用系统开发中积累的知识和经验,从而 提高软件开发的效率l l ”。同时,通过复用高质量的已有开发成果,避免了重新开 发可能引入的错误。软件复用是提高软件生产率和软件质量切实可行的途径。软 件复用通常分为产品复用和过程复用两条途径。 基于构件的复用是产品复用的主要形式,也是当前复用研究的焦点。同时, 在分布式对象研究领域,软件构件技术也是一个重要内容。当前软件构件技术被 视为实现成功复用的关键因素之一。 1 2 1 软件复用 复用概念的第一次引入是在1 9 6 8 年n a t o 软件工程会议上m c l l r o y 的论文 “大量生产的软件构件州”中。在此以前,子程序的概念也体现了复用的思想。但 其目的是为了节省当时昂贵的机器内存资源,并不是为了节省开发软件所需的人 力资源。然而子程序的概念可以用于节省人力资源的且的,从而出现了通用子程 序库,供程序员在编程时使用。例如,数学函数库就是非常成功的子程序复用的 例子。 在其后的发展过程中,有许多复用技术的研究成果和成功的复用实践活动。 但是,复用技术在整体上对软件产业的影响却并不尽如人意。这是由于技术方面 和非技术方面的种种因素造成的,其中技术上的不成熟是一个主要原因。近十几 年来,面向对象技术出现并逐步成为主流技术,为软件复用提供了基本的技术支 持。软件复用研究重新成为热点,被视为解决软件危机,提高软件生产效率和质 量的现实可行的途径1 2 】。 软件复用是指重复使用“为了复用目的而设计的软件”的过程【3 】。相应地,可 复用软件是指为了复用目的而设计的软件。与软件复用的概念相关,重复使用软 件的行为还可能是重复使用“并非为了复用目的而设计的软件”的过程,或在个 2 河海大学硕士论文基于构件服务的水文预报领域复用技术研究与应用 应用系统的不同版本间重复使用代码的过程,这两类行为都不属于严格意义上的 软件复用。 在软件演化的过程中,重复使用的行为可能发生在三个维上: 时间维:使用以前的软件版本作为新版本的基础,加入新功能,适应新需求, 即软件维护。 平台维:以某平台上的软件为基础,修改其和运行平台相关的部分,使其运 行于新平台,即软件移植。 应用维:将某软件( 或其中构件) 用于其他应用系统中,新系统具有不同功能 和用途,即真正的软件复用。 这三维中均体现了复用概念,但是,真正的复用是为了支持软件跨应用( 领 域) 的演化,使用“为复用而开发的软件( 构件) ”来更快、更好地开发新的应用系 统f 2 0 】。 软件复用可以从多个角度进行考察。依据复用的对象,可以将软件复用分为 产品复用和过程复用。产品复用类似“搭积木”( b u i l d i n gb l o c k s ) ,是复用已有的软 件构件,通过构件集成( 组装) 得到新系统。过程复用则是“生成器 式”( g e n e r a t i v e r e u s a b l ep r o c e s s o r ) 的,它基于复用已有的软件开发过程,使用可 复用的应用生成器来自动或半自动生成所需系统。过程复用是非常理想的软件复 用方式,但在目前技术发展水平下,仍是难以企及的目标。过程复用依赖于软件 自动化技术的发展,目前只适用于一些特殊的应用领域。产品复用是目前现实的、 主流的途径【2 。i 。 依据对可复用信息进行复用的方式,可以将软件复用区分为黑盒( b l a c k b o x ) 复用_ 手b 白盒( w h i t e b o x ) 复用。黑盒复用指不作修改的全部采用,已有构件恰好能 满足使用者的需求,这是理想的复用方式。白盒复用指已有构件只能满足使用者 部分需求,需要对构件进行适应性修改才可采用。而在大多数应用的组装过程中, 构件的适应性修改是必需的 2 0 】。因而,在大多数情况下,对构件的复用均是白盒 复用。 软件复用有三个基本问题,一是必须有可以复用的对象,二是所复用的对象 必须是有用的,三是复用者需要知道如何去使用被复用的对象。与软件复用相联 系,存在两种软件开发模型:面向复用的开发( d e v e l o p m e n t f o r r e u s e d m ) 和基 于复用的开发( d e v e l o p m e n tw i t hr e u s e d w r ) 。面向复用的开发产生可复用构 件,基于复用的开发利用可复用构件,两者的结合点是保存和管理可复用构件的 构件库。 与以上几个方面的问题相联系,实现软件复用的关键技术因素主要包括:软 件构件技术( 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 ea r c h i t e c t u r e ) 、软件再工程( s o f t w a r er e e n g i n e e r i n g ) 、开放系统 河海大学顺七论史 基于构件n 务的水文预报领域复用技术研究与应用 ( o p e ns y s t e m ) 、软件过程( s o 胁a r ep r o c e s s ) 、c a s e 技术等。 除了上述的技术因素以外,软件复用还涉及众多的非技术因素,如:知识产 权问题;保守商业秘密的问题;复用前期投入的经济考虑;标准化问题等等。 实现软件复用的各种技术因素和非技术因素是互相联系的。它们结合在一 起,共同影响软件复用的实现。 1 2 2 软件构件技术 软件构件技术是近年来实践软件复用思想的新兴技术,在不同角度和应用背 景下,对构件的定义也不尽相同。通常人们所提到的软件构件具有以下特点:软 件构件是具有一个或一组定义良好的接口的一段自包含软件,具有二进制可重用 性,遵从某种软件构件规范,可以与其它构件组合成一个系统并是可替换的。它 具有运行时和开发时的两个内涵,即既有运行时可访问的接口;又具有开发时可 独立提交与安装的特性。 软件构件的开发要遵从构件模型规范,构件的运行需要构件模型实现的支 持。“构件模型是一组公认的被普遍接受的私有的、国家的或者全球性的标准, 它明确定义了构件组合与交互的规范。”构件模型定义了两部分的内容:首先是 如何构造单个的构件;其次,它规定了在基于构件的系统中,构件与构件之间如 何通讯和交互1 2 u j 。 面向构件技术对一组类的组合进行封装,并代表完成一个或多个功能的特定 服务,也为用户提供了多个接口。整个构件隐藏了具体的实现,只用接口提供服 务。这样,在不同层次上,构件均可以将底层的多个逻辑组合成高层次上的粒度 更大的新构件,甚至直接封装到一个系统,使模块的重用从代码级、对象级、架 构级到系统级都可能实现,从而使软件像硬件一样,能任人装配定制而成的梦想 得以实现。 从应用角度,软件构件模型一般可以分为两种:客户端构件模型、服务器端 构件模型。 客户端构件模型:又称为桌面应用构件模型。构件粒度较小,主要用于用户 的界面元素、复合文档框架等方面。例如,s u n 的j a v a b e a n s ,微软的a c t i v e x 、 o l ea u t o m a t i o n ( 基于c o m ) 等。 服务器端构件模型:又称为分布式构件模型。构件粒度较大,一般封装有业 务逻辑,运行于三层、多层应用程序的中间层( 业务层) ,用于构建大型分布式 应用系统。当前主流分布式构件技术有:e j b 、c o r b a 、d c o m 。 此类型构件技术是当前最重要的一种软件构件技术,是分布式对象技术的发 展。 河海大学硕士论文基于构件服务的水文预报领域复用技术研究与应用 1 2 3w e bs e r v i c e s 分布式构件是面向对象、分布计算、分布式对象、中间件、网络等多种技术 的融合与发展的产物,在一定范围及一定时期内适应了现代软件的需求,适合构 建企业级的大型系统,基于分布式构件的应用具有可重用性、易维护性、可伸缩 性、健壮性等优点,并且由于出现了专门的应用服务器( 如b e a 的w e b l o g i c 、 i b m 的w e b s p h e r e 等) ,可以对分布式构件提供服务器容器管理系统级服务支持, 开发人员只需将精力更多集中于构件的业务逻辑实现方面,而不用更多考虑底层 通信、负载均衡等方面,从而简化了开发。 然而,分布式构件技术亦非完美。首先,现存的多种标准都各有所长,都有 各自的应用场合,且都有大批的追随者,所以并没有谁取代谁的趋势,只能在一 定时期共存,当各种遵从不同标准的系统需要互操作时,便出现了闯题:它们之 间难以兼容。采用桥接的方法将会大大增加系统的复杂性。其次,分布式构件技 术尚不能完美地满足i n t e m e t 应用,因为它们使用的远程调用协议都有自己的端 口,当需要跨越防火墙时将可能会出现端口被禁用、构件不能被访问问题,而且 客户与服务器的连接仍是紧耦合的方式,不能完全满足灵活性的需要。 为了解决上述问题,必须有一种标准沟通机制,可以让所有的构件模型、开 发工具、程序语言和应用系统都能够轻易地互操作,而且不会因为平台、操作系 统以及构件模型地进步而无法使用。这就是w e b 服务技术兴起的重要因素。 由于多种软件构件模型的并存,遵循不同构件模型的软件构件系统之间的互 操作出现困难,比如一个c o m 构件很难插入到一个基于e j b 的构件系统中。 w e bs e r v i c e s 技术正是在这样的背景中出现的,它又把各种软件构件封装了一层, 由于使用的是各个软件厂商都支持的标准,所以不同厂商或开发者提供的支持同 一接口的不同w e bs e r v i c e s 构件之间便可以随意互换了。c o m 这样的软件构件 是语言独立的,客户可以不必关心构件是用何种语言实现的;而w e bs e r v i c e s 构 件是“构件独立”的,客户可以不必关心它是用何种构件技术实现的,这更向前迈 进了一步。 w e bs e r v i c e s ( w e b 服务) 技术允许人们可以在i n t e m e t 或局域网中使用标 准的机制来实现分布式应用系统,而且这些分布式系统都可以彼此调用和集成, 但这种技术并不涉及服务构件的具体实现,也缺乏很多分布平台所具备的对关键 业务支持的能力,因此,w e bs e r v i c e s 技术总是和其它技术,特别是构件技术, 融合在一起,共同构建分布式应用系统。也就是说,可以将c o m 或e j b 构件包 装成w e b 服务构件,即使用c o m 或e j b 技术来实现w e bs e r v i c e s 服务构件, 借助这些成熟构件技术对关键业务支持的能力以及其它优势,而利用s o a p 协议 进行远程调用和交换数据来弥补各种构件模型不易互操作和不适合用于i n t e m e t 河海大学硕士论文 基于构件服务的水文预报领域复用技术研究与应用 的缺点。 1 3 研究工作意义 随着信息技术的发展,水利行业正在迈入一个数字化、信息化的时代,水文 预报领域计算机应用正是水利信息化的重要组成部分。由于水文预报领域自身的 特点,其应用呈现出重复性、复杂性、孤立性和难维护性,系统组成部分间进行 业务集成和信息共享困难,并且难以保证数据的一致性。如果能够提高水文预报 领域应用开发的可复用性,有效实现应用程序的跨平台、跨语言、跨硬件的无缝 集成,就能大幅度提高水文预报领域应用系统开发的效率,并且有助于水文预报 精度的总体提高,进而提高水文预报的防汛减灾效益。 采用基于构件的开发方法和面向服务的体系结构,具有伸缩性好、可用性强、 维护性好等优点,便于应用间的集成和资源共享,是解决上述问题的有效途径之 1 4 主要研究内容 分布计算技术、面向对象的软件构件技术等技术以其可重用性、易维护性、 可伸缩性、健壮性等优点得到了广大软件研究人员和系统开发人员的认可,它们 被认为是适应新型网络环境、解决软件危机的可行途径。而构建基于w e bs e r v i c e s 的领域应用,可以进一步提高系统的伸缩性、可用性,能有效实现应用间无缝集 成和信息共享,减少开发、部署的投资和时间。 本文的研究从理论性和实用性两方面着手,在分析和研究基于构件的软件开 发方法和面向服务的体系结构的基础上,结合水文预报领域应用的特点,系统分 析领域内采用基于构件绡匣务的软件开发的优势和需要解决的问题,提出一个能 满足分布异构环境系统集成和共享w e b 资源需要的应用方案_ 基于构件朋睦 务的水文预报领域应用方案”,并用它来解决水文预报应用系统开发中存在的复 用粒度较低、不适应w e b 应用等问题。 主要的工作如下: ( 1 ) 研究基于构件的软件开发方法的特点和相关分析设计技术,分析采用 基于构件的软件开发方法进行水文预报领域开发的意义及存在的问题,进而引出 解决存在问题的方案面向服务的体系结构。 ( 2 ) 研究w e bs e r v i c e s 技术的特点、关键技术及运行机制,研究面向服务 的体系结构的概念、基本特征、优点及分析设计方法,进而研究基于s o a 的进 行领域应用开发的过程。 ( 3 ) 采用基于构件n 务的思想,结合领域工程,系统的分析领域内对象层 6 河海大学硕士论文基于构件,月务的水文预报领域复用技术研究与应用 次关系,提出一个基于构件朋民务的水文预报领域应用方案。 ( 4 ) 以洪水预报系统( 水文预报领域在汛期的一种应用) 为例,在基于构 件朋叵务的水文预报领域应用方案的指导下,详细分析洪水预报系统的特点,结 合已有的洪水预报系统的模型,充分研究洪水预报系统的应用需求、数据流程及 子功能模块划分,给出具体的设计和开发过程。 1 5 本文的组织结构 本文组织如f : 第一章,绪论,阐述论文的研究背景,分析其现实意义,指出本文要进行的 主要研究内容,并介绍相关技术的研究现状。 第二章,介绍基于构件的软件开发方法的特点和相关分析设计技术,研究采 用基于构件的软件开发方法进行水文预报领域开发的意义及存在的问题,进而分 析目前的主流构件开发技术及w e bs e r v i c e s 技术在异构构件集成中的作用。在此 基础上,系统分析w e bs e r v i c e s 技术及面向服务的体系结构,并对基于构件的开 发方法和面向服务的体系结构的融合展开相应的研究。 第三章,本文以水文预报领域为背景,分析水文预报领域的应用特征、存在 的问题,提出基于构件n 务的水文预报领域应用方案,并从设计思路、总体功 能组成、系统体系结构、应用层次分析等角度对方案进行了分析,最后对其中涉 及到的一些关键技术展开了详细地分析研究。 第四章,以该方案为基础,以洪水预报系统为例,充分分析洪水预报系统的 特点、需求、数据流程和功能模块分析及相应的实现技术,并进行构件及服务划 分及给出关键技术的实现。 第五章,总结与展望。首先对论文的内容进行总结,并对开发过程中遇到的 问题进行讨论。最后列举一些需要进一步开展的工作。 7 河海大学硕士论文 基于构件棚硅务的水文预报领域复用技术研究与应用 第二章基于构件的软件开发 集软件复用,分布式对象技术,客户服务器结构和构件技术于一身的基于 构件的软件开发方法是2 0 世纪9 0 年代兴起的一种新的软件开发方法,以软件构 架为组装蓝图,以可复用软件构件为组装预制块,支持组装式软件复用,是提高 软件生产效率和产品质量、减轻人员流动副作用、缩短产品交付时间的现实有效 的途径之- - i ”】。 由于传统的软件开发方法没有考虑复用问题,因而所开发的软件系统很难用 于复用目的。软件构件的出现改变了传统软件开发方法,基于构件的开发方法是 建立在过去长期的结构化方法中的模块系统,以及近十年来的面向对象系统的基 础上的。采用基于构件的软件开发方法进行软件开发,可以提高软件的可复用性, 使软件开发摆脱以往小作坊式的生产方式,按照大规模的工业化方式进行【卯1 6 1 。 2 1 基于构件的软件开发方法c b d 软件构件是一种系统化的技术,包括软件模型、构件构架及实现技术、构件 分析和设计技术、基于构件的应用系统构造和实现技术等内容。基于构件的软件 开发主要包括构件开发和基于构件的应用系统开发两部分内容。 传统的软件开发方法过程中,有不同的软件加工模型,但开发阶段总是按照 需求分析、概要设计、详细设计、编码、测试几个阶段的顺序进行的。面向对象 的软件设计方法以数据为中心,把数据和处理操作结合为对象,系统的功能通过 对象之间的相互引用而实现。一般而言,面向对象的设计方法并不要求覆盖软件 的整个生存周期,而是以软件需求作为输入,面向对象的分析和面向对象的设计 之间的耦合更加紧密,使分析和设计两个阶段的界限变得模糊。o o a 和o o d 方 法的提出,并未彻底抛弃传统的软件生存周期概念。但是工作阶段之间紧密得多, 而且相互交错。 基于构件的软件开发( 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 ) 改变了 软件开发过程中的被动局面,使开发者可以通过制造或购买构件,利用构件组装 应用程序,是一种新的开发方法。它是在一定构件模型的支持下,复用构件库中 的一个或多个软件构件,通过组合手段高效率、高质量地构造应用软件系统的过 程 2 2 】。 c b d 是种利用可复用的软件构件建立应用系统的技术。这些构件由三部 分组成:构件实现功能说明;构件是如何工作的设计实现;在指定开发平台上可 行的传递方法( 接口) 。c b d 的开发方法总的来说是通过已有构件或自我组织开 河海大学硕士论文基于构件,服务的水文预报领域复用技术研究与应用 发的构件组装应用系统。因此,开发过程就是构件的构造、组织、选取及组装的 过程。从构件的定义及结构来说已有比较成熟的构件规范,如c o m d c o m 、 c o r b a 、e j b 等,从构件的组装集成技术来看,c o m 仍c o m 、c o r b a 、j a v a r m i 等中间件技术为构件的开发提供了完善的基础设施。从设计方法上,一些部门也 开发了一些基于构件软件开发的工具,但对于结合领域特点的系统应用的开发过 程的研究还不完善。 2 1 1c b d 的特点 c b d 是一种新兴的应用系统开发方法,吸收和发扬了面向对象技术、分布 计算技术和软件复用中的许多优秀思想。与一些传统的软件开发方法相比,c b d 的出现使应用系统的开发呈现出了许多新的特点: ( 1 ) 应用系统的开发易于从单一路径的顺序开发向多路径的并行开发的转 变,使大规模的软件生产成为可能。c b d 技术模块化的特点,使应用系统的开 发可以以构件( 模块) 为单位独立地进行设计和实现。另外,c b d 技术以构件 模型和构件构架为系统开发者之间的协议标准,极大地提高了应用系统各部分的 开发独立性和系统开发的并行性; ( 2 ) 应用系统在开发过程中不再是一个独立的系统。c b d 技术复用的特点, 使应用系统及其组成部分的设计和实现,应尽可能地利用已有的应用系统开发成 果,或为以后相似地应用系统开发提供可复用的元素。因此,应用系统的开发涉 及:对已有系统的分析,获取可复用的应用系统结构;对满足要求的现存构件的 寻找、定制及组装;对应用系统及相关系统的综合分析,发现具有潜在复用价值 的构件。通过c b d 开发方法,可以缩短应用开发的周期,降低开发费用,提高 生产率: ( 3 ) 由于一系列具有相似结构和功能的应用系统往往同时进行开发,采用 c b d 开发方法更易配置最优的解决方案,构件市场上丰富的构件使得对功能的 支持更具可选性,构件提供者的竞争也会使价格变得更低: ( 4 ) 用户在应用系统开发中扮演更加重要和积极的角色。在传统的应用开 发中,用户仅仅在系统需求分析中处于被询问者的位置,其它的许多工作都是由 系统开发人员完成。然而,在基于构件的应用系统开发过程中,用户则可以在专 业的系统分析人员协助下根据自己的实际需要,自主地选择组成应用系统的构 件,构造一个充分体现用户需求的应用系统;用户甚至能够积极地参与应用系统 的升级和维护活动。用户和系统开发人员之间的关系及其所履行的职责更加合 理。 9 河海大学硕士论文 基于构件n 务的水文预报领域复用技术研究与应用 2 1 2 基于构件的软件开发模型 传统的软件开发模型有瀑布模型,演化模型,螺旋模型,喷泉模型,增量模 型等。它们基本上都是由瀑布模型发展演化而来。这些模型的软件开发过程主要 包括问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试、交 付和维护一些典型阶段,见图2 - 1 。 图2 1 传统软件开发过程 这些传统的软件开发过程没有考虑到软件复用的问题,所以开发出的软件 难以复用,而且过程本身不支持对已有软件的复用。所以在这些系统中难以进 行系统有效的复用,已有的软件复用技术多局限在编码阶段的部分代码复用。 为了有效利用可复用软件,须改造以有软件开发过程以适应复用软件的开发。 北京大学邵维忠教授的“面向对象的系统分析”一书中提出了一个面向对象 领域并支持复用的软件开发过程 9 1 ,见图2 - 2 。过程主要分为两个部分:构件的 生产和基于构件的应用的生产。构件生产包括领域分析,构件生产,构件提交, 构架细化。基于构件的生产包括系统组装,系统开发,专用构件开发,系统测试。 两个过程通过构件框架库连结起来,在基于构件的应用生产过程中,也可能会 产生一些专有的构件,可将其存入构件库。 领域分析:其输入信息包括领域知识、领域专家经验和现有系统的技术资料。 通过领域分析,产生领域构架和对该领域可复用构件的需求认识。 构件生产:开发每一个可复用构件。其中的活动包括对各个构件的需求分析、 设计、编程和测试。在一定的技术条件和管理制度下,可形成一条构件生产线。 其输出的不仅是经过严格测试的程序构件,还应包括可在应用系统分析与设计阶 段复用的设计构件。 构件提交:按照一定的检验标准和管理制度,把可复用构件提交到构件库。 构架细化:构架细化是指对领域构件作进一步的开发,产生可用于设计模型 组装、源程序组装,甚至用于可执行程序组装的领域构架。构件的细化越接近较 低的抽象级别,其难度就越大,但在应用开发中所起到的组装效果也越强。 1 0 河海大学硕士论文基于构件,服务的水文预报领域复用技术研究与应用 系统开发:根据具体应用系统的问题域和用户需求,开发专用构件,与领域 构架和构件一起进行系统组装,最终产生应用系统。 领域塑垫塑塑 现有塑垫塾塑 领域知识 领域分析 领域框架1 士 l框架细化 塑墨墼 用户需求 构件开发 分析i 设计l 编程i 测试 构件提交 i 构件框架库l - _ _ - _ - _ _ _ _ - _ _ - - _ i _ _ 。一一 领域框架il 领域构件 蚕篓l 系统组囊 开发 1 分析。:。镂并。i 编程 专用构件开发 分析l 设计i 编程i 测试 系统 测试 系统专用构件 图2 - 2 面向对象领域的支持复用的软件的开发过程 系统组装:将领域构架、领域构件和系统专用构件组装成一个应用系统。实 际可达到的组装水平决定于领域构件的细化程度。当领域构件未经细化时,只能 在系统分析阶段组装一个分析模型,然后在这个分析模型基础上进行整个系统的 设计与编程。当领域构件细化到设计级别时,系统的分析模型和设计模型都可以 通过组装得到,然后进行系统的编程。如果领域构架的细化到了源程序级,则分 析模型、设计模型和整个系统的源程序都可以通过组装得到。目前大部分领域系 统的开发还难以达到如此理想的程度。系统组装不一定是原封不动地使用领域构 架和领域构件。现实世界是复杂的,构架与构件未必能对该领域的每一个系统都 丝毫不差的完全吻合,有时需要根据系统的具体情况对构架和构件进行特化处 理。 专用构件开发:每个系统都有一些特殊的问题需要解决。以组装为主的系统 开发方式要求把解决系统特殊问题的软件成分也做成构件的形式,使之也能像可 复用构件那样与构架进行组装。对这些构件不要求可复用,故称之为专用构件。 但是若发现其中某些构件是可复用的,即使只能在少数系统中复用,也应把它们 提交到构件库中。 系统测试:对整个系统进行测试。 应用 系统 河海大学硕士论文基于构件,服务的水文预报领域复用技术研究与应用 2 1 3 主流构件实现技术优势与不足 目前已有一些比较成熟的构件实现技术,c o r b a 、c o m d c o m 、e j b 就 是其中典型的代表。 2 1 - 3 1c o r b a c o r b a 分布计算技术是o m g 组织基于众多开放系统平台厂商提交的分布 对象互操作内容的基础上制定的公共对象请求代理体系规范。 c o b r a 标准主要分为3 个层次:对象请求代理、公共对象服务和公共设施。 最底层是对象请求代理o r b ,规定了分布对象的定义( 接口) 和语言映射,实 现对象间的通讯和互操作,是分布对象系统中的”软总线”;在o r b 之上定义了 很多公共服务,可以提供诸如并发服务、名字服务、事务( 交易) 服务、安全服务 等各种各样的服务:最上层的公共设施则定义了组件框架,提供可直接为业务对 象使用的服务,规定业务对象有效协作所需的协定规则。 c o r b a c 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 所花的时间非常短,而再往上的 版本的发布就相对十分缓慢了。在具体的应用中使用不是很多。 c o m 的本质是一种二进制代码级的集成策略。”c o m ”一词被微软技术人员 首次提出时,仅是一种编程技术的代名词,指采用c + + 虚方法表结构作为程序接 ( i n t e r f a c e ) 的二进制表示。在二进制代码级而非源代码级上的一致,使得c o m 河海大学硕士论文基于构件,服务的水文预报领域复用技术研究与应用 能够支持不同语言编写的构件间的交互。由此可见,c o m 是使软构件象对象一 样彼此交互的一种二进制标准。c o m 并没有指定任何特殊的编程语言,是“语言 独立”的。 随着i n t e m e t 时代的到来,为了适应分布式环境下的软件开发,c o m 发展 成为d c o m r 1 o 】,以支持分布式环境下构件间的动态集成。d c o m 即分布式组件 对象模型,是二进制c o m 对象在分布式网络环境下的基本扩展,建立在d e c ( 分布式计算环境) 的r p c ( 远程过程调用) 规范之上,为此人们有时也称d c o m 为o r p c ( 对象远程过程调用) 。d c o m 中,c o m 对象被设计为具有远程相互 作用的能力。o r p c 是微软使用的一套
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年辉县事业单位真题
- 2025年吐鲁番市市级机关公开遴选考试真题
- 2025江苏徐州邳州市面向毕业生招聘编制教师208人考前自测高频考点模拟试题及参考答案详解一套
- 蒸吸工岗位现场作业技术规程
- 公司纸盒制作工岗位合规化技术规程
- 2025湖北天门市顺达劳务有限公司招聘劳务派遣制药剂科调剂药师1人考前自测高频考点模拟试题及答案详解(名校卷)
- 2025年福建泉州市华侨大学分析测试中心招聘实验技术系列人员(4月)模拟试卷及答案详解(新)
- 公司涂料生产工工艺技术规程
- 电极丝制造工供应商评价配合考核试卷及答案
- 镀层工设备操作合规性考核试卷及答案
- 冠心病案例汇总
- 2022年河北邢台市中心血站招聘编外工作人员10人笔试备考题库及答案解析
- 安徽煜星体育用品有限公司环保型塑胶彩色颗粒生产线项目环境影响报告表
- 江苏省苏州市景范中学2023-2023学年九年级第一学期语文期中试卷 (word版含答案)
- 霍尼韦尔CP-BAS系统方案实用文档
- SC/T 5017-1997丙纶裂膜夹钢丝绳
- GB/T 4985-2021石油蜡针入度测定法
- GB/T 19638.1-2014固定型阀控式铅酸蓄电池第1部分:技术条件
- GB/T 14327-2009苯中噻吩含量的测定方法
- 松下panasonic-视觉说明书pv200培训
- 植物生理学(全套PPT课件)
评论
0/150
提交评论