(计算机软件与理论专业论文)基于组件的ria技术的研究.pdf_第1页
(计算机软件与理论专业论文)基于组件的ria技术的研究.pdf_第2页
(计算机软件与理论专业论文)基于组件的ria技术的研究.pdf_第3页
(计算机软件与理论专业论文)基于组件的ria技术的研究.pdf_第4页
(计算机软件与理论专业论文)基于组件的ria技术的研究.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(计算机软件与理论专业论文)基于组件的ria技术的研究.pdf.pdf 免费下载

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

文档简介

哈尔滨t 程大学硕十学位论文 i i i i 萱i i 宣i i i i i i i i i i i i i i 葺宣i i i 宣i i i i i i i i i ii i i i i i i 鼍 摘要 随着计算机网络及其相关技术的发展,b s 将成为未来软件开发的主流 模式,但除了其低成本部署和维护外,其在表现和交互方面的不足也逐渐暴 露,由此产生了具有新特性的新一代w e b 应用程序,富互联网应用程序r i a ( r i c hi n t e r a c ta p p l i c a t i o n ) 将是新一代w e b 应用的发展趋势;组件技术是提 高软件开发效率、保证软件质量、实现软件产业化的重要手段,w e b 与组件 技术的结合成为一种必然的趋势。 本文对现有的软件开发方法和传统的w e b 应用技术进行了深入的研究; 对基于组件的软件开发和传统软件开发方法进行了认真的比较。针对传统 w e b 应用程序的不足和新一代w e b 应用程序的特性,对基于组件的r i a 技 术进行研究,利用组件思想和r i a 技术实现具有富客户端、数据动态性、灵 活性等特性的w e b 应用程序开发的组件化、软件产业化。 最后本文,将基于组件的r i a 技术引入w 曲应用框架开发中,以期达到 快速开发、随需定制和丰富交互效果的目的。对基于组件的w e b 应用框架的 整体结构及关键组件进行分析和设计。基于b s 架构,借鉴c s 结构的优势, 利用r i a 技术,对现有的客户端的交互性进行改进。基于组件的开发模式, 增强了w e b 应用系统开发的可复用性,从而大大地缩短了开发周期和提高了 开发效率。 关键词:组件;r i a ;软件产业化 哈尔滨t 程大学硕士学位论文 a b s t r a c t w i t ht h ed e v e l o p m e n to fc o m p u t e rn e t w o r ka n dr e l a t e dt e c h n o l o g i e s ,t h eb s s t r u c t u r ew i l lb e c o m et h em a i n s t r e a mo fs o f t w a r ed e v e l o p m e n t h o w e v e r , e x c e p t t h el o w c o s to fd e p l o y m e n ta n dm a i n t e n a n c e ,t h es h o r t a g eo fi t sp e r f o r m a n c ea n d i n t e r a c t i n g i s g r a d 砌l ye x p o s e d b e c a u s eo ft h i s ,t h en e wg e n e r a t i o nw e b a p p l i c a t i o np r o c e d u r e 、析t l ln e wc h a r a c t e r i s t i c sa p p e a r e d t h er i a ( r i c hi n t e m e t a p p l i c a t i o n ) w i l lb et h ed e v e l o p m e n tt r e n do ft h en e wg e n e r a t i o nw e ba p p l i c a t i o n p r o c e d u r e ;t h ec o m p o n e n tt e c h n o l o g yi sa ni m p o r t a n tm e t h o dt oi m p r o v es o f t w a r e d e v e l o p m e n te f f i c i e n c y , e n s u r e s o f t w a r e q u a l i t y a n di m p l e m e n ts o f t w a r e i n d u s t r i a l i z a t i o n ,w e bc o m b i n e d 谢t hc o m p o n e n tt e c h n o l o g yw i l lb e c o m ea l l i n e v i t a b l en e r l d t h i st h e s i sd o e sa l li n d e p t hs t u d yo nt h ee x i s t i n gs o f t w a r ed e v e l o p m e n t a n dt r a d i t i o n a lw e ba p p l i c a t i o nt e c h n o l o g y ;a n dh a sa ne a r n e s tc o m p a r i s o no nt h e c o m p o n e n t - b a s e ds o r n t a r ed e v e l o p m e n ta n dt r a d i t i o n a l s o f t w a r e d e v e l o p m e n t a c c o r d i n gt ot h es h o r t a g eo ft r a d i t i o n a lw e ba p p l i c a t i o np r o c e d u r ea n dt h e c h a r a c t e r i s t i co ft h en e wg e n e r a t i o nw e ba p p l i c a t i o np r o c e d u r e ,m a k e sr e s e a r c h e s o nt h et e c h n o l o g yo fc o m p o n e n t - b a s e dr i a ,a n du s et h ec o m p o n e n tt h i n k i n ga n d r i at e c h n o l o g yt o i m p l e m e n tt h ec o m p o n e n ta n ds o f t w a r ei n d u s t r i a l i z a t i o no f w e b a p p l i c a t i o np r o c e d u r ed e v e l o p m e n t w h i c hh a st h ec h a r a c t e r i s t i co fr i c hc l i e n t a n dd a t ad y n a m i ca n df l e x i b l e a tt h el a s to ft h i st h e s i s ,t a k e st h et e c h n o l o g yo fc o m p o n e n t - b a s e dr i ai n t o t h ed e v e l o p m e n to fw e ba p p l i c a t i o nf r a m e w o r kt oa c h i e v et h ep u r p o s eo f d e v e l o p i n gq u i c k l y , c u s t o m i z i n gb a s e do nr e q u i r e m e n ta n de n r i c h i n gi n t e r a c t i v e e f f e c t s i ta l s oh a sa na n a l y s i sa n dd e s i g no nt h ew h o l es t r u c t u r eo fw e b a p p l i c a t i o nf r a m e w o r ka n ds o m ek e yc o m p o n e n t s b a s i n go nb ss t r u c t u r e , 哈尔滨t 程大学硕七学付论文 r e c u r r i n gt ot h ea d v a n t a g eo fc ss t r u c t u r ea n du s i n gt h er i at e c h n o l o g y , i t i m p r o v e so nt h ei n t e r a c t i v eo fe x i s t i n gc l i e n t t h ec o m p o n e n t b a s e dd e v e l o p i n g m o d er e i n f o r c e dt h er e u s a b l eo fw e ba p p l i c a t i o ns y s t e md e v e l o p m e n t ,s oi tc a n s h o r t e nd e v e l o p m e n tc y c l ea n di m p r o v ed e v e l o p m e n te f f i c i e n c yg r e a t l y k e y w o r d s :c o m p o n e n t ;r i a ;s o f t w a r ei n d u s t r i a l i z a t i o n 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导下, 由作者本人独立完成的。有关观点、方法、数据和文献等的 引用已在文中指出,并与参考文献相对应。除文中已经注明 引用的内容外,本论文不包含任何其他个人或集体已经公开 发表的作品成果。对本文的研究做出重要贡献的个人和集体, 均已在文中以明确方式标明。本人完全意识到本声明的法律 结果由本人承担。 作者( 签字) :监墨皇途 日期:坼 月立日 哈尔滨工程大学硕七学位论文 第1 章绪论 1 1 研究目的、意义及背景 随着计算机的广泛应用,互联网已经日益成为应用程序开发的默认平台, 用户对应用程序复杂性要求日增,但传统的w e b 应用程序对完成复杂应用方 面却始终跟不上步伐。传统的w r e b 应用程序( w e ba p p l i c a t i o n ) 是基于h t m l 页面、服务器端数据传递的模式。随着w e b 应用程序复杂性越来越高,传统 的w e b 应用程序已经渐渐不能满足w e b 用户更高的、全方位的体验要求了, 这就是被m a e r o m e d i a 公司称之为的“体验问题 ( e x p e r i e n c em a t t e r s ) 。用户 与今天中等复杂程度的w e b 应用程序交互时,其体验并不能令人满意,因为 w e b 模型是基于页面的模型,缺少客户端智能机制。而且,它几乎无法完成 复杂的用户交互( 如传统的c s 应用程序和桌面应用程序中的用户交互) 。 这样的技术使得w e b 应用程序难以使用,支持成本高,并且在很多方面无法 发挥效廖- 扪。正是由于w e b 模型发展的需要以及h t m l 技术自身的一些限 制促使了r i a 的产生。 r i a 的出现带来了重新在客户端和服务器端进行更好的平衡的机会。 r i a 中的富客户端技术提供可承载已编译客户端应用程序的运行环境,客户 端应用程序使用异步客户服务器架构连接现有的后端应用服务器,这是一种 安全、可升级、具有良好适应性的新的面向服务模型,这种模型由w e b 服务 所驱动。结合了声音、视频和实时对话的综合通信技术使富因特网应用程序 ( 砌a ) 具有前所未有的网上用户体验。 随着竞争的日趋激烈和用户需求的日益多样化,软件开发面临的挑战也 越来越多。传统的软件开发模式已经不能够适应软件业发展的需要。新一代 的软件开发要求是实现软件开发的产业化。而软件复用则是软件产业化的必 然发展趋势。软件复用的基本思想是,不必一切从零开始。组件技术正是软 件复用技术中一个成功的典范。将组件复用技术应用到软件系统的开发,能 提高系统的开发效率,保证软件的质量。基于组件的软件开发将软件开发的 哈尔滨工程大学硕十学位论文 重点由原来的软件编程转移到利用已有组件组装集成新的软件系统。软件组 件有着广泛的应用前景,特别是在i n t e m e t i n t r a n e t 环境下,使得基于组件的 软件开发成为流行的w e b 应用软件开发方式。 针对传统w e b 应用程序开发和使用中的不足,本课题在着重研究了组件 技术、软件复用技术、a j a x 技术的基础上,将基于组件的r i a 技术应用到基 于组件的w e b 应用框架的分析与设计中,一方面实现了基于组件的w e b 应 用程序的快速开发,另一方面实现了w e b 应用程序的高效、大数据量的交互, 解决了用户的体验问题。 1 2 国内外研究现状及发展趋势 1 w e b 开发的现状 基于浏览器的w e b 应用程序以其显著的优点越来越广泛的被各种应用系 统采用。b s 架构以服务器为中心,程序代码实行集中式管理,对客户端的 处理能力要求低;c s 架构应用分别部署在服务器端和客户端,其充分发挥 了客户端的处理能力,很多处理可以在客户端进行。 c s 架构的缺点主要是部署、更新的问题。b s 架构的缺点主要是受制 于h t m l 的限制,无法像c s 那样使用丰富的效果来展示数据,用户体验比 较糟糕。从c s 到b s ,这两者受限于技术本身,分别发展成了重客户端和 重服务器端的模式【3 1 。 传统的w e b 应用程序都是“瘦客户端”的,基于页面的,缺少客户端智 能性,其主要的缺点有: 过程复杂性过程复杂性是由于需要表达一个多步骤或多选项任务或 互动作用所引起的。由于h t m l 的互动性有限,一个可以在单页内表达的多 步骤任务,可能产生一份很长的页面,使用户感到混乱、笨拙而难以使用。 为了避免这种难以忍受的用户体验,需将任务按表面上看来“自然 的部分 划分成多个步骤,甚至需多个网页共同完成。这种以网页为主的用户界面通 常需要反复翻转网页,以解决在顺序步骤中有牵连性的改变。其结果是造成 缓慢、混乱而且令人感到懊恼的用户体验。 配置复杂性许多w e b 应用程序允许用户配置自己所要定制的产品。但 2 哈尔滨t 稃大学硕十学位论文 是配置产品是一个很困难的过程,因为在向用户展示所有有效的产品选项组 合时,应用程序必须能够表达出有关的复杂性。表达这些复杂性包括指出所 需条件、有效和无效组合、一些导致问题的元素以及问题的解决方法;为每 一项个人选择提供费用信息以及费用总计;还有最重要的是容许用户观看晟 后结果。这些是传统w 曲应用程序难以实现的。 反馈复杂性高度互动性的应用程序如游戏,能使反馈变得复杂,也即 指用户行动和快速移动或情节不断改变的屏幕元素之间的反馈环路。传统的 h t m l 页面一向来都可以说是无法表达这类复杂性。它所需要的是拥有高度 互动性和局部智能性的客户端应用程序,以便可以在无需刷新全页或干扰与 服务器之间的通信的情况下,响应用户的输入,改变它们的状态或界面。放 弃依赖服务器的客户机将使用户体验更具吸引力,同时也解决了反馈复杂性 的问题。 3 r i a 的发展现状 为了克服传统w e b 应用程序在交互方面的不足,在过去的两到三年中, w e b 开发人员一直是想构建一种比传统h t m l 更丰富的客户端:这是一个用 户接口,它比用h t m l 能实现的接口更加健壮、反应更加灵敏、具有更令人 感兴趣的可视化特性。r i a 技术的出现允许在因特网上以一种像使用桌面应 用程序一样简单的方式来部署富客户端程序。对于那些采用c s 架构的胖客 户端技术运行复杂应用系统和采用基于b s 架构的瘦客户端技术部署w e b 应用系统地机构来说,r i a 确实提供了一种廉价的选择。 r i a ( r i c hi n t e r n e ta p p l i c a t i o n ) 是新一代网络应用程序,它集桌面应用 程序交互性与w e b 应用程序的快速、低成本部署及互动多媒体通信的实时快 捷于一体。r i a 提供了一个强劲的技术平台,使客户机的能力复原到差不多 与桌面型计算机软件应用或传统的c s 系统中的客户机能力相似。它也可以 作为基础网络服务的互动表现层,允许用户在线和离线工作。r i a 有能力解 决各种复杂性,使复杂性的应用得以开发并且减少开发成本。 目前出现的几种比较有实力的r i a 客户端开发技术有:m a c r o m e d i a f l a s h f l e x , l a s z l o ,a v a l o n ,j a v as w t ,x u l ,b i n d o w s 铮4 1 。 短期时间内( 估计2 - 3 年时间) f l a s h f l e x 应用程序在新兴的网络应用 程序市场上可能会占有主导地位。随着时间的推移,f l a s h f l e x 应用程序的 哈尔滨丁程大学硕十学佗论文 i i i i i 一n i - - i i - 一一一 ii i i i i i i i i i 市场占有率可能会被基于a v a l o n 的应用程序慢慢蚕食。f l a s hp l a y e r 和f l e x 以后也会不断推出新版本,相对于升级操作系统或安装a v a l o n 运行环境,人 们肯定更愿意升级f l a s hp l a y e r 。f l a s h f l e x 应用程序也有其本身固有的软肋, f l a s hp l a y e r 的执行效率和对本地资源的操作是无法和a v a l o n 相比的,相对 于浏览器中的插件而言,a v a l o n 的应用程序拥有更加广阔的可操作空间和更 高的执行效率【s 1 。 1 3 论文的主要工作及组织结构 本文研究的主要内容包括:对组件复用技术和基于组件的软件开发方法 的研究:对丰富互联网技术( 刚渔) 及其发展现状进行研究,针对传统w e b 应用程序开发和使用中的不足,将基于组件的r i a 技术应用到基于组件的 w e b 应用框架的分析与设计中,以期达到快速开发,随需定制和丰富交互效 果的目的:通过应用基于组件的w e b 应用框架开发家庭奖励扶助( 救助) 信息管理系统验证系统的性能。 本文共分五章,各章的内容概述如下: 第一章首先介绍了课题研究的目的、意义及背景;国内外研究现状及发 展趋势;最后是论文的主要工作及组织结构。 第二章首先介绍了软件复用技术的产生、相关概念及复用的主要形式: 接着着重介绍组件的基本概念、组件模型、规范;最后介绍了r i a 的产生及 其基本理论。 第三章首先对r i a 的相关技术进行分析比较,总结出了r i a 的优势及其 要解决的问题;然后介绍了基于组件的w e b 应用框架的背景及性能要求;接 着对系统体系结构进行分析;最后对系统开发中的主要技术进行分析。 第四章首先对系统的整体的体系结构进行设计;接着介绍系统的关键组 件和关键过程的设计;最后是主要操作类的设计。 第五章主要是以家庭奖励扶助( 救助) 信息管理系统为例介绍了基于组 件w e b 应用框架的应用。首先对家庭奖励扶助( 救助) 信息管理系统进行分 析;然后介绍了家庭奖励扶助( 救助) 信息管理系统的实现效果及性能;最 后是下一步的研究方向。 4 哈尔滨工程大学硕七学位论文 2 1 软件复用 第2 章相关理论技术 面对日益复杂的软件系统,人们开始认识到,要真正实现软件的工业化 生产方式,达到软件产业发展所需要的软件生产率和质量,软件复用是一条 现实可行的途径。软件复用是在软件开发中避免重复劳动的解决方案,其出 发点是应用系统的开发不再采用一切“从零开始”的模式,而是以已有的工 作为基础,充分利用过去应用系统开发中积累的知识和经验,如:需求分析 结果、设计方案、源代码、测试计划及测试案例等,从而将开发的重点集中 于应用的特有构成成分。通过软件复用,在应用系统开发中充分地利用那个 已有的开发成果,可以减少软件开发活动中大量重复性工作,这样就能够提 高软件的生产效率,降低开发成本,缩短开发周期。 2 1 1 软件复用技术产生的历史背景 随着计算机应用的逐步扩大,软件需求量迅速增加,规模也日益增长, 软件规模的快速增长,带来了软件复杂度的增加和代码的几何级增长。其结 果是:大型软件的开发费用经常超出预算,完成时间也常常超过预期。庞大 的软件开发和维护费用,加上软件质量的下降,对计算机软件的发展构成了 巨大的威胁。 在1 9 6 8 年n a t o 软件工程会议上,m c l l r o y 的论文“大量生产的软件构 件 中,第一次引入了复用的概念。在此之前,子程序的概念也体现了复用 的思想。但它的目的是为了节省昂贵的内存资源,而不是为了节省开发软件 所需的人力资源。近十几年来,面向对象技术的出现,为软件复用提供了基 本的技术支持。软件复用技术重新成为研究热点,被视为解决软件危机,提 高软件生产效率和质量的现实可行的途径【6 】。 5 哈尔滨t 程大学硕十学位论文 i i i ii m m nnru i i i 萱i i i 宣暑i 宣i i i 萱i i 宣暑置i 嗣 2 1 2 软件复用的基本概念 目前,对软件复用还没有一个形式化的概念,许多研究人员从各自不同 的角度对软件复用这个概念作了说明,b i g g e r s t a f f 和r i t c h e r 认为软件复用是 在新的开发项目中使用以前已获得的概念和对象;t r a c z 认为软件具有事先 性,复用特别为复用目的而设计的软件过程,而把使用不是特别为复用目的 而设计的软件称为软件挽救用;g a m b h i r 把在多个应用中使用相同的组件称为 软件复用。 软件复用是指重复使用“为了复用目的而设计的软件 的过程【e 1 。复用 就是利用为复用目的而设计的软件部分,创建或者集成软件应用程序和系统 的过程。与之相对应的,可复用软件是指为了复用目的而设计的软件。重复 使用软件的行为还可能是重复使用“并非为了复用目的而设计的软件 的过 程,或在一个应用系统的不同版本间重复使用代码的过程,这两类重复使用 软件的行为都不属于严格意义上的软件复用。 2 1 3 软件复用的主要形式 软件复用不仅仅是对软件程序的复用,还包括对软件生产过程中其他劳 动成果的复用,如项目计划书、可行性报告、需求分析、概要设计、详细设 计、编码( 源程序) 、测试用例、文档与使用手册等等f g l 。软件复用可以从多 个角度进行考察n o l 。依据复用的对象,可以将软件复用分为产品复用和过程 复用【1 1 】。产品复用指复用已有的软件组件,通过组件集成( 组装) 得到新系 统。过程复用指复用已有的软件开发过程,使用可复用的应用生成器来自动 或半自动地生成所需系统。 软件复用还可以分为横向复用和纵向复用f 1 2 1 。横向复用( h o r i z o n t a lr e u s e ) 是指重用不同应用领域中的软件元素,例如数据结构、分类算法、人机界面 构件等,标准函数库就是一种原始的横向复用机制。纵向复用是指在一类具 有较多公共性的应用领域之间进行软件重用。 依据对可复用信息进行复用的方式,可以将软件复用区分为黑盒 ( b l a c k - b o x ) 复用和白盒( w h i t e - b o x ) 复用。黑盒复用指对已有组件不需作 任何修改,直接进行复用。白盒复用指已有组件并不能完全符合用户需求, 6 哈尔滨丁程大学硕士学何论文 萱i i i i i 宣i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i 。li i - - ii i 需要根据用户需求进行适应性修改后才可使用。 依据软件复用的实施性质和过程来看软件复用又可以分为: 1 ) 抽象技术。软件复用的关键,指对复用对象的概括和提炼,即是将 基本操作和处理对象从机器、语言和其他环境中提炼出来。抽象又 可以分为规范抽象和事项抽象两个层次。 2 ) 选择技术。完成存放、比较和检索可复用软件对象的功能。选择是 根据问题需求,在复用成分库中进行检索和匹配,以期望得到可以 复用的对象。 3 ) 实例化技术。是对类属对象进行参数设置、转换、约束或者某种形 式化的技术。通过实例化,将选定的满足问题规范的复用的实现部 分转化成可以执行的程序代码。 4 ) 集成技术。根据复用技术所提供的框架,将已经选定的已实例化的 复用对象组合完成整个软件系统的过程。 复用的下一种形态的中心是组件和基于组件的开发。组件将是软件开发 发生重大变化的主要驱动器。各个企业希望很快把业务运行在那些支持w e b 的,通过预先定义的、可以复用的组件构造而成的商务应用基础之上。虽然 这些应用可以一部分运行在客户端,一部分运行于中间层,还有部分运行在 服务器上,但组成应用的这些由不同语言编写的并由不同源头提供的组件将 会起提供应用服务。 2 2 组件 软件行业的工业化趋势导致了组件的产生。组件( c o m p o n e n t ) ,是基于 组件的软件开发中的最基本的概念,是软件系统中具有相对独立功能、可以 明确辨识、接口由契约指定、和语境有明显依赖关系、可独立部署、可组装 的软件实体,可被用来构造其它软件。广义上讲,组件可以是数据,也可以 是被封装的对象类、软件构架、文档、分析件、设计模式、测试用例等。 2 2 1 基本概念 1 组件 7 哈尔滨丁程大学硕士学何论文 什么是组件( c o m p o n e n t ) ? 一般认为,组件是指语义完整、语法正确 和有可重用价值的单位软件。结构上,它是语义描述、通信接口和实现代码 的复合体。组件可以被认为是面向对象和其他软件技术的化身,区分组件和 其他先前的技术有四个原则【口】,即封装( e n c a p s u l a t i o n ) 、多态性 ( p o l y m o r p h i s m ) 、后期连接( l a t eb i n d i n g ) 和安全性( s a f e t y ) 【1 4 】。 到目前为止,业界对组件并没有一个统一的定义。 从可复用角度定义组件: 组件是指系统中具有相对独立功能,可以明确辨,接口由契约制定,和 语境有明显的依赖关系,可以独立部署,且多为第三方提供的可以组装的软 件实体。组件必须承载某种可用的功能,并遵循某种组件模型。 从运行的角度定义组件: 组件是可在物理或逻辑设备上运行的软件实体。组件遵循某种组件模型, 可以在不修改组件的前提下按照特定的组装标准部署到特定的组件框架中。 从部署的角度定义组件: s z y p e r s k i 的组件定义强调组件的接口及上下文规约与组件的独立性一 样重要:“软件组件是仅由协约式的接口和明确的上下文依赖组成的单元 , “软件组件可以独立的部署,也可以被第三方集成”旧。 由此可以看出组件的特性: 1 ) 可重用性( r e u s a b i l i t y ) :组件可以在不同的软件系统中多次被使用。 2 ) 封装性( e n c a p s u l a t i o n ) :组件的实现对组件外部是不可见的。 3 ) 独立性( i n d e p e n d e n c e ) :各组件的功能、运行及开发是相互分离的。 4 ) 互操作性( m u t u a lm a n i p u l a t i o n ) :组件之间通过接口发送消息,实现 协同工作。 5 ) 适应性( a d a p t a b i l i t y ) :组件能在不同的软件环境中正常的工作。 2 接口 接口( i n t e r f a c e ) 是用户与组件发生交互的连接渠道,第三方只能通过组件 接口的规格说明理解和复用构件,接口规格说明也是一种“契约( c o n t r a c t ) , 它足够精确地描述组件实现的功能,同时又使组件不拘泥于一种实现方法, 这种不确定性带来多解决方案的灵活性。 组件的接口定义了组件的访问入口( a c c e s sp o i n t ) 。组件的客户通过接口 8 哈尔滨工程大学硕十学位论文 访问组件提供的服务。接口与实现的分离提供了以下灵活性: 1 ) 可以更换组件的实现而不用更改接口。 2 ) 可以为组件增加新的接口而不影响原有的接口和实现0 6 。 3 组件与对象 面向对象的主要概念【- 7 】: 1 ) 对象:软件对象是面向对象系统运行过程中的基本实体,它包括属 性及作用于属性的行为。对象是由属性及其行为所构成的封闭整体。 2 ) 类:是对一组对象的抽象,它将该组对象所具有的共性集中起来, 以说明该组对象的属性和行为。 3 ) 继承:是自动共享类、子类和对象中的方法和数据的机制。 4 ) 封装:把对象的外部特征与内部实施细节分离,使得一个对象的外 部特征对其他对象来说是可访问的,但内部实现细节对其他对象是 不可见的。 组件可以看作是在组件模型环境中的一个或多个对象的实现。一种组件 模型定义了一套组件必须遵循的规则,使其他对象可以访问该组对象实现。 对象与组件的关系( 如图2 1 所示) 。 图2 1组件与对象的关系 组件与对象的区别主要体现在以下三个方面: 1 ) 对象是用来执行应用程序的一部分;而组件不仅仅是一个规范,而 是可以实际运行的软件模块。 2 ) 组件担当一个部署单元的作用,是基于组件模型的,这种模型定义 了符合这种模型的组件所要遵循的规则。 3 ) 组件提供了一个或多个对象实现的封装。 4 框架 9 哈尔滨工程大学硕士学位论文 框架是当前软件工程领域中一个重要的概念。框架是整个或部分系统的 可重用设计,表现为一组抽象组件及组件实例间交互的方法。一个框架是一 个可复用的设计组件,它规定了应用的体系结构,阐明了整个设计、协作组 件之间的依赖关系、责任分配和控制流程,表现为一组抽象类及其实例之间 协作的方法,它为组件复用提供了上下文关系。根据类型和层次,框架可以 分为组件框架和应用框架。 组件框架与组件模型紧密相关。组件模型定义了一组组件开发需遵循的 规范,而组件框架则提供了支撑组件模型的基础结构。组件框架通常被称为 “容器”,例如在e j b 组件模型中,e j b 容器就是e j b 组件的框架。e j b 组 件部署、运行在e j b 容器中,容器为e j b 组件提供服务,并负责管理e j b 组 件的生命周期。 组件框剪通常由容器、组件和粘合剂三部分组成。容器是一个递归概念, 它也是组件。组件则是遵循容器规范、实现a p i 接口的功能部件。粘合剂主 要供容器用来组装组件之间的相互关系,其多表现为一个或多个部署描述符 和配置文件。 应用框架的概念也很简单,它并不是包含组件应用的小片程序,二是实 现了具体应用领域通用完备功能的底层服务。框架提供了所有应用期望的默 认行为的类集合。具体的应用通过重写子类或组装对象来支持应用的专用行 为。应用框架强调的是软件的设计重用和系统的可扩充性,以缩短大型应用 软件系统的开发周期,提高开发质量。应用框架更注重于面向专业领域的软 件重用。应用框架具有领域相关性,组件根据框架进行复合而生成可运行的 系统。框架的粒度越大,其中包含的领域只是就越完整。 框架的最大优势就是重用。框架可以重用代码、设计、分析。采用框架 技术进行软件开发的主要特点包括: 1 ) 领域内的软件结构一致性好; 2 ) 建立更加开放的系统; 3 ) 重用代码大大增加,软件生产效率和质量也得到了提高; 4 ) 软件设计人员要专注于领域的了解,使需求分析更充分; 5 ) 存储了经验,可以让那些经验丰富的人员去设计框架和领域组件, 而不必限于底层编程; 1 0 哈尔滨丁程大学硕士学位论文 6 ) 有利于在一个项目内多人协同工作; 7 ) 大粒度的重用使得平均开发维护费用降低,开发速度加快,而参数 化框架使得适应性、灵活性增强。 2 2 2 组件模型和组件规范 1 组件模型 组件模型是组件与其环境所必需的一组要求。组件模型定义了组件的本 质属性,规定了组件接口的结构及组件与软件体系结构、组件与组件之间的 交互机制。组件模型通常还提供创建和实现组件的指导原则,它主要关心如 何约束接口的性质,使组件共享这些接口。通过约束组件接口来实现遵循某 些“规则,从而保证组件之间的互操作性。 在学术界已经出现了很多组件模型,其中3 c 模型是学术界普遍认同的 组件模型。该模型主要从概念、内容、语境三个方面来描述组件。 1 ) 概念描述“组件做什么 ,主要包括规约和语义描述两个部分。 2 ) 内容是概念的具体实现,描述组件如何完成概念刻画的功能。 3 ) 语境刻画组件的应用环境,为组件的选用和适应性修改提供指导。 2 组件规范 组件是指语义完整、语法正确,有可重用价值的软件实体。结构上,它 是语义描述、通信接口和实现代码的复合体。它可以是一些功能模块、被封 装的对象类、软件框架及软件系统模型等。组件的结构和功能被封装在内部, 对外界提供必要的接口。为了使组件能应用在异构式分布环境中,需要对组 件作规范而详细的描述。每个组件都有基本特征、提供的功能及网络位置信 息。先对基本组件进行详细而标准的描述,在组件信息标准化的基础上,就 可以根据组件之间的协作关系生成新的复合组件及更大粒度的框架应用,甚 至是更为复杂的应用系统。 组件最重要的特征是具有独立于应用的接口。关键的是要确保组件被集 成综合到一个应用软件与组件的开发生命周期相互独立,同时在应用软件更 新一个组件时,相关组件不需要重新编译或者连接加载就可以使用。独立的 另一个重要特色是组件的执行只有通过它的接口才可见,这对于由第三方发 布的组件来说尤其重要。这意味着对组件具有详细完整的规范有相当高的要 哈尔滨t 程大学硕十学位论文 求。 组件采用了面向对象原则的方法和数据封装的原理。c h e s s m a na n d d a n i e l s 认为一个组件在其生命周期中可以有以下几种存在方式:组件规范详 述( 组件的特点和方法) ,组件接口( 规范的一个方面,是组件行为的定义) , 组件的执行( 组件规范的实现) ,组件的生成( 组件执行的配置实例) 和组件 对象( 已生成对象的实例) 。并不是所有的研究者都认为组件是o o p ( 面向 对象编程) 的扩展。相反,他们认为组件和对象之间的差别在于对象有声明, 是实例的个体,而组件没有独立的声明,是配置个体。 2 3ria 随着计算机技术和w e b 技术的发展,计算机软件的复杂度不断增加,系 统架构在软件设计和开发过程中的作用日益重要,它不仅影响系统设计和开 发的进度,还对系统的后续的开发与维护有着直接的影响。 2 3 1 应用架构的发展 无论是p c 机上的应用程序还是大型机上的计算,都由三个部分组成: 表示层、逻辑层( 包括业务逻辑和控制逻辑) 、数据处理层。从计算机诞生至 今,计算机软件的体系结构经历了三个阶段:单机、客户机服务器、浏览器 n 务器( 如图2 2 所示) 。 m r i n f l d l i i c 主机 客户机服务器 浏 1 2 哈尔滨t 程大学硕十学位论文 图2 2 计算机软件的体系结构的发展 1 单机应用架构模型 单层应用软件包含了所有的业务逻辑和控制逻辑,从后台最基本的数据 处理到前台的对用户的响应,所以应用软件往往规模比较庞大,结构比较复 杂。因此,在设计阶段,要求设计人员必须尽可能的考虑到所有的功能需求, 从复杂的逻辑结构中整理出程序设计文档;在开发阶段,由于没有分层的概 念,增加了软件开发人员之间协作的复杂度;在软件测试和维护阶段,整个 软件各个部分的高耦合性,使得对软件的局部的改动可能会影响到整体;软 件发布之后,面对新的需求,软件的可扩展性差,往往要重构整个软件结构, 软件的可复用性差。 2 客户机服务器应用架构模型 在局域网时代,单层的软件体系结构显然是不能满足要求的。于是产生 了两层的软件体系结构一客户机服务器结构( c l i e n t s e r v e r ) 。c s 结构是一 种两层的软件体系结构:第一层是在客户机系统上结合了表示层和业务逻辑; 第二层是通过网络结合了数据库服务器。 与单层体系结构相比,c s 结构把集中管理模式转化为一种服务器与客 户机负载均衡的分布式计算模式,解决了执行效率与容量不足的问题,同时 也提高了系统安全性、可扩展性和系统代码的可重用性。 3 浏览器服务器应用架构模型 浏览器服务器( b r o w s e r s e r v e r ) 结构是基于i n t e m e t 的需求而出现并 发展的。它是从传统的二层c s 结构发展起来的新的网络结构模式。在b s 模式下,表示层( p r e s e n t a t i o n ) 、应用逻辑层( b u s i n e s sl o g i c ) 、数据处理层 ( d a t am a n a g e ) 被分割成三个相对独立的单元。 1 ) 表示层主要负责人机交互,它担负着用户与应用间的对话功能。客 户端采用w e b 浏览器,执行程序从w e b 服务器下载,可以跳过w e b 服务器直接与应用服务器对象交互 2 ) 逻辑层的w e b 服务器主要负责对客户端应用程序的集中管理。应用 服务器主要负责应用逻辑的集中管理,即事务处理。 3 ) 数据库服务器主要负责数据的存储和组织、数据库的分布式管理、 数据库的备份和同步等等。 哈尔滨工程大学硕士学位论文 在i i l t e m e t 上,三层结构最常见的模型为w e b 模型,而三层结构中的应 用服务器成为w e b 服务器,是目前流行的网络软件系统结构,它正逐渐取代 c s 结构的客户端软件。 2 3 1 1 传统w e b 应用程序存在的问题 传统的w e b 应用程序主要是基于瘦客户端的客户端n 务器或浏览器n 务器模式,而瘦客户端几乎很少甚至没有包含应用程序逻辑,而主要是依靠 服务器端来处理逻辑事务,虽然这种模式具有易于管理,安全性高,低硬件 配置等优点,但仍存在一些问题: 1 灵活性差 在传统w e b 模式下,几乎所有与应用程序的交互都必须由服务器来响应。 客户端的每个动作事件都必须作为一个请求发送到服务器端,具体的逻辑处 理完全由服务器来完成。这种方式有着诸多的限制,如客户端必须等待服务 器处理完成后进行整页刷新,这样用户的交互体验非常差。 2 带宽问题 同其它任何网络一样,对用户来说,带宽的可用性是由网络中整个用户 数量来决定,对瘦客户端来说,几乎所有的处理都是由服务器端来完成,因 此,随着用户数量的增加,服务器端的处理及响应需求会急剧增加,这样必 然会导致网络堵塞,用户的可用带宽下降。 3 应用程序缺乏丰富的用户界面及高效的交互能力 图形和多媒体应用程序要求有较高的处理能力,但基于h t m l 的传统的 w e b 应用程序是无法达到丰富媒体的处理需求的,由于瘦客户端的处理是由 服务器端来执行,因此网络中的这种处理需求均由服务器负担,仅靠服务器 端来进行全部丰富媒体的处理显然是不够的。相反,胖客户端对网络带宽要 求较低,对服务器的依赖也较少,因此能提供更好的多媒体性能并能处理较 复杂的应用。 w e b 应用程序开发采用都还是传统的b s 模式,而传统的b s 模式本身 还存在着诸多的不足之处: 过程复杂性是由于需要表达一个多步骤或多选项任务或互动作用所引起 1 4 哈尔滨- t 程大学硕+ 学佗论文 - l u l l - - - - ii_i 葺i i i i i i i i i i 的。在h t m l 里,一个多步骤的任务可以在单页内表达出来。但是由于h t m l 的互动性有限,便可能产生一份很长的页面,使用户感到混乱、笨拙而难以 使用。为了避免这种难以忍受的用户体验,便需将任务在表面上看来“自然 的部分去区分成多个步骤,甚至需多个网页共同完成。这种以网页为主的用 户界面通常需要反复翻转网页,以解决在顺序步骤中有牵连性的改变。其结 果是缓慢、不自然、混乱而且令人感到懊恼的用户体验。 许多w 曲应用程序允许用户配置自己所要的定制产品可以是皮包或 是计算机,甚至是汽车等产品。但是配置产品是一项很困难的过程,因为在 向用户展示所有有效的产品选项组合时,应用程序必须能够表达出有关的复 杂性,尤其是当用户可以从数十、数百或数千选项中定制出一个产品时。表 达这些复杂性包括指出所需条件、有效和无效组合、一些导致问题的元素以 及它们的适当解决方法:为每一项个人选择提供费用信息以及费用总计( 一 旦有所更改) ;还有最重要的是容许用户观看最后结果。这些是传统w e b 应 用程序相当难以表现的。 网站内的搜索工具大多是文本性质,中间夹着一些锦上添花的图像。当 用户输入他或她的数码照相机准则,有可能是价格、以像素等,网站便接着 回复数页符合准则的产品,而大部分都是说明文本。反之,另一种方法则是 使用视觉化来简化搜索空间( 也就是提供立即和动态的视觉反馈) 。在一个视 觉化选择照相机的网站,其搜索过程可能如下:网站从一个包含所有照相机 种类图像的单屏幕开始。当用户通过复选框、游标或数据输入域来选择筛选 准则时,所有不符合准则的照相机图像将被删除,只余下符合准则的照相机 可在屏幕上看到。因此,在把选择聚焦至符合准则的数部照相机的过程中, 用户可经历一个截然不同,而且和现实生活中的购物经验更相似的体验。 高度互动性的应用程序如游戏,能使反馈变得复杂,也即是指用户行动 和快速移动或情节不断改变的屏幕元素之间的反馈环路。传统的h t m l 页面 一向来都可以说是无法表达这类复杂性。它所需要的是拥有高度互动性和局 部智能型的客户端应用程序,以便可以在无需刷新全页或干扰与服务器之间 的通信的情况下,响应用户的输入和改变它们的状态或界面。放弃如今依赖 服务器的客户机将使用户体验更吸引,同时也解决了反馈复杂性的问题。w e b 应用程序必须拥有表达复杂性的能力,以容许用户查看复杂的数据、配置多 1 5

温馨提示

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

评论

0/150

提交评论