(计算机应用技术专业论文)基于插件技术的软件架构设计及应用.pdf_第1页
(计算机应用技术专业论文)基于插件技术的软件架构设计及应用.pdf_第2页
(计算机应用技术专业论文)基于插件技术的软件架构设计及应用.pdf_第3页
(计算机应用技术专业论文)基于插件技术的软件架构设计及应用.pdf_第4页
(计算机应用技术专业论文)基于插件技术的软件架构设计及应用.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机应用技术专业论文)基于插件技术的软件架构设计及应用.pdf.pdf 免费下载

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

文档简介

摘要 随着计算机技术的发展,软件体系结构和开发方法也在发生着重大变化。 为了高效率地进行软件研发,开发出高质量的软件产品,人们一直在寻求更好 的软件体系结构和开发方法。插件式体系结构是一种非常灵活的组件式结构, 它把程序的功能分散在插件中来完成。插件是可独立开发的程序模块,它能够 动态地插入到系统中,并且可以被自由地删除和替换。因此它能够提高软件开 发的并行性和开发效率,降低设计开发难度,缩短开发周期,增强应用程序的 可运行性、可测试性和可维护性。 文章以蓝星多媒体教学软件为对象,对基于插件技术的软件架构的设计、 实现及应用进行了分析研究。首先,分析了基于插件技术的软件系统的原理与 运行过程,找出插件软件系统的五个关键之处,并对这五个关键点的设计模型 进行了说明。其次在基于这些设计模型的基础上提出了一种新的设计方案,并 将此设计方案应用到蓝星多媒体教学软件的开发设计之中。最后通过一个实验 证明了此技术的可行性与实用性。实践证明,基于插件技术的软件架构可以有 效地解决软件开发过程中的需求不确定问题,减少软件的研发与维护的成本, 可以让复杂度高的软件项目的管理和开发变得更加容易。 关键词:软件体系结构软件架构,插件,教学软件,接口 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 rt e c h n o l o g y , t h es o f t w a r ea r c h i t e c t u r ea n d d e v e l o p m e n tm e t h o d sa l eu p g r a d i n g w eh a v eb e e nl o o k i n gf o rs o m en e ws o f t w a r e d e v e l o p m e n tm e t h o d st os p e e du pt h es o f t w a r ed e v e l o p m e n tp r o c e s s i ti sc o n v e n i e n t t om a n i p u l a t et h ep l u g - i n s 、 也t h es u p p o r to fp l a t f o r m t h ep l u g i n sa r ed e p e n d e n t o i lt h ep l a t f o r m ,s 0i tc a ni m p r o v et h ee f f i c e n c yo fs o f t w a r ed e v e l o p m e n t ,m a k et h e d e v e l o p m e te a s ya n ds h o r t e nt h es o f t w a r ep e r i o d f u r t h e r m o r e ,i ti sa l s oh e l p f u lt ot h e s o f t w a r em a i n t e n c ea n du p d a t e r e s e a r c ho nt h ep l u g - i n sa r c h i t e c t u r ei su s e f u la n d p r a c t i c a l t h i sp a p e rh a sd o n es o m er e s e a r c ho nt h em u l t i m e d i at e a c h i n gs o f t w a r e ,r e f e t i n g t ot h ed e s i g na n da p p l i c a t i o no ft h es o f t w a r eb a s e do np l u g i n s f i r s t l y , i n t r o d u c e d t h et h e o r yo ft h ep l u g - i n sa n dt h er u n n i n gp r o c e s so ft h ep l u g - i ns y s t e m ,a n df i n d e d f i v ek e yp o i n t si nt h ea r c h i t e c t u r e a l s o ,t h em o d e lo ft h ed e s i g np o i n t sh a sb e e n i n t r o d u c e d ,l a t e r , id e s i g n e dan e ww a yt oi m p l e m e n tt h ep i n g - i ns y s t e mi nt h e m u h i m e d i at e a c h i n gs o f t w a r e a tt h es a m et i m e ,is i m u l a t e dt h ew h o l ed e s i g n p r o c e s so ft h ep l u g - i ns y s t e mb yas i m p l ee x a m p l et ot e s t i f yt h ef e a s i b i l i t yo ft h e d e s i g nw a yi nt h el a n s t a rt e a c h i n gs o r w a r e i td e m o n s t r a t e st h a tt h ea r c h i t e c t u r e b a s e do n p l u g i n s i s h e l p f u l t o i m p r o v et h ee f f i c i e n c y a n dq u a l i t yo ft h e s o t ¥w a r e f u r t h e r m o r e ,i tc a l ls a t i s f yt h ev o l m i l eu s e rn e e d sa n dd e c r e a s et h es o f t w a r e d e v e l o p m e n t c o s t t h ea r c h i t e c t u r ei n a k e st h es o f b , v a r e d e v e l o p m e n t a n d m a n a g e m e n te a s y k e yw o r d s :s o f t w a r ea r c h i t e c t u r e , p i u g - i i l ,t e a c h i n gs o f t w a r e , i n t e r f a c e 学位论文独创性声明: 本人所呈交的学位论文是我个人在导师指导下进行的研究工作 及取褥的研究成果。尽我所知,除了文中特别加以标注和致谢的地 方乡 ,论文中不包含其他人已经发表或撰写过的研究成果。与我一 同工作的同事对本研究所做的任何贡献均已在论文中作了明确的说 明并表示了谢意如不实,本人负全部责任 论文作者( 签名) : ( 注:手写亲笔签名) 学位论文使用授权说明 年舌 再j e l 河海大学、中国科学技术信息研究所、国家图书馆、中国学术 期刊( 光盘版) 电子杂志社有权保留本人所送交学位论文的复印件 或电子文档,可以采用影印、缩印或其他复制手段保存论文。本人 电子文档的内容和纸质论文的内容相一致除在保密期内的保密论 文外,允许论文被查阅和借阅。论文全部或部分内容的公布( 包括刊 登) 授权河海大学研究生院办理 论文作者( 签名) : ( 注:手写亲笔签名 | 年力移 日 河海大学硕士学位论文基于插件技术的软件架构设计及应用 1 1 课题背景 第一章绪论 随着信息技术的发展,各大中专院校以及中小学都已经建立了校园网,电脑走进 了各个教室,多媒体教室也被广泛地建立起来,虽然具备了开展信息化教育的硬件条 件,但是由于缺少软件产品的支持,信息化教育无法得到广泛的开展。 随着校园网的建立与多媒体技术的发展,学校中存在的问题主要有: 第一,设备管理困难。 多媒体教室中有投影仪、展台、音箱等多种外设,局域网内还有多台电脑及其周 边设备,校园网内的广播网也有很多的设备,此时设备的管理变得很困难。 第二,优秀师资利用率低。 在校园里也经常出现优秀师资的利用率不高的问题。由于优秀师资酌人数有限、 时间有限,上课的教室空闯有限,这些条件造成了只有很少一部分的同学能够接受到 优秀师资的教学。 第三,对多媒体技术的需求强烈。 随着多媒体技术的发展,在校园内也需要提供给老师、同学点播的数字节目;伴 随着校园内的各种重大活动,也需要能够有一个多媒体直播系统,将重大活动,如知 名教授、专家讲学,校庆与运动会等,通过校园网和i n t e m e t 实时直播出去。 因此学校需要有一个能够解决这些问题的软件产品,它可以依托现有的校园网, 利用现有的网络资源对软硬件资源进行管理,充分利用学校的各种多媒体硬件设备、 软件资源来实现普通教室的多媒体教学,同时还能够解决师资匮乏的问题,满足老师 和同学的娱乐需求与校园内重大活动的实时直播。 i ,2 多媒体教学软件的需求 多媒体教学软件的目标是:广泛应用于整个校园内的多媒体资源整合平台及教室 间交互教学的大型平台,它可以将分散于学校各处的软硬件资源( 包括电脑、投影仪、 实物展台、d v d 等) 通过网络全面串联起来,网状化管理协助学校轻松实现数字化 教学,对校园硬件设备施行全面管控,从而解决学校在多媒体教学、设备管理、资源 管理等诸方面的要求。 目前在学校中对多媒体教学软件的主要需求有: 第一,实觋对校园弼内多种硬件设备的管理。 ( 1 ) 管理员可以对系统中的所有电脑进行资产盘点,检查软硬件的情况。 河海大学硕士学位论文 基于插件技术的软件架构设计及应用 ( 2 ) 管理员可以在控制室对多媒体教室的设备进行远程管理和控制,可以实现 远程的开关机与重新启动相应的设备。 ( 3 ) 管理员可以自定义控制的范围与模型。管理员可以根据需要建立自己的管 理模型。可以对校园网内的设备进行任意组合以方便管理。 ( 4 ) 管理员或者老师可以通过软件系统直接对连接在本地的多媒体设备进行本 地的集中控制。 ( 5 ) 管理员可以对系统进行管理与配置,如实现用户管理、课表管理、对资产 进行盘点、管理系统的日志等操作。 第二,实现多媒体交互教学。 所谓的多媒体交互教学是指一个老师可以在一个班级中对多个其他班级进行授 课,同时学生可以通过这个系统向上课的老师提出问题,老师可以回答;同时学校还 可以用这个系统召开全校的视频会议。它的主要需求有: ( 1 ) 老师在进行示范教学的时候,可以让所有的用户进行点播,所有参加上课 的教室可以接收到老师的声音和图像可以接收上课老师的电脑桌面的情况,被上课的 学生如果有问题还可以和上课的老师进行交互,实现网络上的音视频交互。 ( 2 ) 老师可以自定义开会的时间或者临时组织相关的老师进行即时的视频会议。 这种方式是双向的,互相可以看到视频听到声音,接收彼此的文件。 ( 3 ) 管理员和具有权限的老师可以对其他用户实现远程的控制。 ( 4 ) 在系统中的用户可以实现文字、语音和文件的互相传送。 ( 5 ) 管理员可以实现对课表的管理。 ( 6 ) 老师和管理员可以对学生的电脑进行远程的监看。 ( 7 ) 管理员有在系统中安装中央控制设备的权限,可以删除、修改不同的多媒 体中央控制设备。 第三,实现多媒体与各种数字资源( 有线电视、v c d d v d 等) 的点播。并且实 现多媒体的实时直播。 ( 1 ) 系统可以进行数字节目的广播,数字节目广播的格式支持主流的多媒体格 式,如d a t 、m p 3 ,m p g 、m p e g 、v o b 、a s f 、a s x 、a v l 、h 2 6 4 、w m a 、w m v 、 f l a s h 、m o v 、r m 等格式文件。对t x t 、d o e 、p p t 等常用的文档格式也要支持。 ( 2 ) 系统可以实现用户对远程v c d d v d 的点播,前提是管理员开放这个权限。 ( 3 ) 系统可以实现对不同的多媒体资源进行广播,这种广播是强制的广播或者 是半公开的广播。 ( 4 ) 系统可以接入有线电视信号,所有的用户都有点播电视节目的权限。 ( 5 ) 老师可以在系统中拥有自己的空间,这个空间是由系统管理员设置分配的, 老师在上课的时候就不需要携带物理的u 盘,使用系统提供的网络空间就可以了。 ( 6 ) 在优秀师资进行示范教学的时候,所有的用户都有权限去观摩教学的情况。 2 河海大学硕士学位论文基于插件技术的软件架构设计及应用 ( 7 ) 老师上传到点播系统中的多媒体资源,有权限的老师和学生可以实现点播 观看。 ( 8 ) 在进行视频会议的时候,具有点播权限的用户可以观看会议的情况。 ( 9 ) 所有的用户都可以实现对多媒体服务器上的各种格式的多媒体资源进行点 播,包括音乐、电影以及老师的上课课件,学生只能点播不能上传,老师可以向自己 的文件夹下上传文件,管理员可以任意上传文件。 ( 1 0 ) 老师可以使用此系统进行电子备课,可以将老师的电脑桌面,声音和老师 的图像录制成一个文件,供学生课前预习或者课后进行点播复习。 1 3 需解决的问题 目前多媒体教学软件中面临的问题主要有: ( 1 ) 需求多样化且不确定。 第一,多媒体的格式多变,标准多变。多媒体教学产品不但要满足教学的需 要,而且也要满足娱乐的需要。在需求中,不但要支持d a t 、m p 3 、 m p g 、m p e g 、v o b 、a s f 、a s x 、a v i 、h 2 6 4 、w m a 、w m v 、f l a s h 、 m o v 、r m 等流媒体格式而且对t x t 、d o e 、p p t 等常用的文档格式也要 支持。但是随之多媒体技术的发展,有更多的媒体格式会不断出现, 新的标准也不断地发生变化,同时也会不断地衍生新的需求。多媒体 教学软件必须对这些薪的格式提供支持。 第二,教学的方式各有特色,没有统一的标准。多媒体教学软件的使用对象 是学校。学校有中小学、职业技术学院、大中专院校之分,学校的分 布也极其广泛,从南到北,从东到西,各个学校的教学方式都不相同, 各有特色,没有统一的模式,所以它们的需求也经常会发生变化。 ( 2 ) 节约软件研发成本,减少维护的成本。 第一,从多媒体教学软件的需求中可以看出需求很多,很庞大。如,在实现 实时的交互教学的时候,还要求可以为学校提供视频会议的服务;在 点播多媒体格式的时候还提供对有线电视、v c d d v d 等数字信号的 点播。 对于庞大的系统的开发,如果等到把功能需求中的所有功能都开发 完毕后,产品才上市,那么整个研发周期会非常长,产品的研发成本 也变得非常高。如何在保证软件质量的情况下尽可能的缩短研发周期, 即使在人力和资源不充分的情况下,在软件的研发周期内能否将软件 的主要功能开发出来,其他的不重要的功能留在以后通过补丁包的形 式进行增加,保证产品的及时上市,收回软件的研发成本。甚至在公 河海大学硕士学位论文 基于插件技术的软件架构设计及应甩 司人力资源不充分的情况下通过与第三方的厂商进行合作,帮助开发 出部分的功能。在与第三方厂商合作的时候,第三方厂商不需要知道 源代码只需遵循制定的开发标准,功能就可以被加载。 第二,延长软件的生命周期,避免二次开发。延长软件的生命周期可以有效 的降低软件开发的成本i l 】。有效的延长生命周期,就必须要求软件的 结构非常灵活,便于修改与升级维护。软件产品只有具有灵活的结构, 才能对产品在发展过程中出现的新的需求及时的处理,增强软件在新 的环境下的适应性。一个僵化的结构将会使软件的升级与维护变得非 常复杂,无法适应不断变化的环境,最后只有重新开发,增加了软件 开发与维护的成本。 第三,可以为多媒体教学软件的开发提供可复用的模块。软件复用是提高软 件开发效率,缓解软件危机的有效方式【2 】,通过提供大量可复用的功 能模块可以有效的缩短研发周期,节约软件的成本。 传统的软件体系结构在解决软件的需求不确定以及在复杂高的软件项目的开 发上显得力不从心,灵活性与可扩展性都不够口】,所以我们需要去寻找一种薪的 软件架构来帮助软件的研发。 1 4 研究方案 为了提高软件需求和软件设计的质量,软件工程界提出了需求分析工程技术和各 种软件建模技术1 4 1 。但是在需求与设计之闻仍存在一条很难逾越的鸿沟,即缺乏能够反 映做决策的中间过程,从而很难有效地将需求转换为相应的设计1 5 j 。为此,软件体系结 构概念应运而生,并试图在软件需求与软件设计之间架起一座桥梁,着重解决软件系 统的结构和需求向实现平坦地过渡的问题1 6 j 。 在传统的软件实现技术中,软件的功能在开发过程中就已经预先设定完毕,为了 解决软件发布之后用户提出的新需求,开发人员不得不对软件源代码不断增加、修改 以满足需求的不断变化,这种调整的工程复杂度和工时成本均很大,工程的完成日期 不能得到保证,而且影响了整个软件的稳定性,增加了软件的研发成本。因此,需要 采用新的可扩展的软件构造技术设计软件。大家所熟悉的a c r o b a t r e a d e r 、n e t s c a p e 、 w i n a m p 、p h o t o s h o p 等软件都采用了插件技术,这为多媒体教学软件的设计提供了一 种良好的参考模式。 插件式框架最主要的特色在于其可扩展性、灵活性和易维护性,在多媒体教学软 件的设计中引入插件的思想将有助于问题的解决,使其能够适应将来发展的需要,解 决1 3 节中提出的相关问题。 面向构件开发方法是解决软件危机的一个重要途径 7 1 。为了提高软件的复用,为 4 河海丈学硕士学位论文基于插件技术的软件架构设计及应用 多媒体教学领域提供大粒度的可复用的组件,在软件开发过程中可以研究采用使用面 向构件的软件开发方法。在w i n d o w s 平台下进行面向构件的开发首选c o m 规范,使 用c o m 进行开发对于软件的升级与维护,软件的复用都大有帮助,并且可以形成供 其他多媒体产品使用的构件库,方便其他软件的开发,缩减软件的研发成本。 1 5 本文结构与本人工作 本文的章节安排如下: 第一章,绪论。介绍了多媒体教学软件产生的背景与需求。随后以多媒体教 学软件的需求为背景,提出了面临的两个主要问题。为了解决这些 问题,文章中提出了使用插件技术的解决方案。 第二章,软件架构与插件技术概述。在这一章中主要对相关的原理进行阐述, 包括软件架构的起源与发展、定义、风格,在软件架构的风格中着 重对蓝星中使用的正交软件架构和c s 架构进行了说明。在插件技 术概述中着重对插件技术的起源与历史、插件的原理、分类、特点、 研究意义、现状进行了论述。在插件的现状中简单介绍了使用插件 技术的e c l i p s e 的应用实例,并且提出了现在使用插件技术的软件的 两个缺点。 第三章, 阐述了基于插件技术的般的软件架构的设计模型。在本章中首先 论述了一般的使用插件技术的软件的工作过程,然后针对工作过程 中的五个关键问题及其设计模型进行了论证。 第四章,说明了插件技术在蓝星中的应用。首先介绍了应用中所需的技术基 础,然后介绍了蓝星的设计结构,在设计结构的阐述中着重介绍了 第二章中软件架构的正交风格与c s 风格在蓝星中的应用情况。紧 接着分析了使用插件技术的蓝星多媒体教学软件的工作过程,并且 与第三章介绍的普通插件系统的工作过程做了对比,提出了五个要 点。然后在第三章的设计模型的基础上提出了一套新的方案,并将 其应用到了蓝星多媒体教学软件中,随后对五个要点进行了设计与 实现。最后通过一个实验验证了设计方案的可行性。 第五章,是对本文的总结与未来的工作方向的阐述。 本人的主要工作有; ( 1 ) 完成部分数据结构的定义。 表示插件图标的b u t t o n i n f o 结构体定义;插件运行时所需的参数 r u n p l u g i n 结构体定义;保存插件相关信息的c b u t t o r d n f o 类;调用插件时 所用的参数a d d l no b j e c t 结构体定义。 河海大学硕士学位论文 基于插件技术的软件架构设计及应用 ( 2 ) 接口的设计。 接口是宿主程序与插件进行通讯的协议。本人主要完成了宿主程序对插件 调用的唯一接口l a n a d d i n e n t r y 以及与此接口相关的数据结构的定义和接口 的实现。 ( 3 ) 参与了系统的分析与架构。 蓝星多媒体教学产品是集体智慧的结晶,在这个产品的分析与架构中我一 直参与其中,对系统的架构做出了自己的贡献,主要体现在插件的结构上在 插件结构的设计中最初使用导出函数的方式,但是管理起来非常不方便,经过 研究本人提出了将所有的导出函数使用一个类来管理的方案,得到了系统的采 用。 f 通过实验模拟了整个插件系统的实现过程。 通过一个具体的实验简单模拟了整个插件系统的实现过程,证明了设计方 式的可行性。 6 河海大学硕士学位论文 基于插件技术的软件架构设计及应用 第二章软件架构与插件技术综述 2 1 软件架构概述 2 1 1 软件架构起源与发展 随着计算机硬件技术的飞速发展,对计算机软件的功能、结构和复杂性提出了更 高的需求。随着软件规模和复杂性的不断增加,在软件的设计中,软件的局部和整体 的系统结构显得越来越重要,人们需要一种超越传统算法和数据结构的高层的抽象结 构来描述整个系统,提出了软件体系结构的概念。 从软件体系结构的发展历程上来看,经历了四个阶段:“无结构”设计阶段、萌芽 阶段、初级阶段、高级阶段瞵l 。 “无结构”设计阶段,这个阶段总的说来在2 0 世纪7 0 年代以前,尤其在以 a l l 6 8 为代表的高级语言出现以前,软件开发基本上都是使用汇编程序设计。尽 管此阶段软件工作者开始逐渐形成模块编程的方法,但软件投入的资金和人力无法预 测,软件完工的时间也无法确定,软件的可靠性无法控制等问题开始表露出来,软件 危机从此阶段开始出现。 萌芽阶段是以结构化软件开发技术为代表的,大概出现在2 0 世纪7 0 年代中后期, 以p a s c a l 、c o b o l 等程序设计语言和关系数据库管理系统为标志,以强调数据结构、 模块化为特征,采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。在此 阶段,软件体系结构已经是系统开发中的一个明确的概念。 初级阶段以面向对象开发技术为标志,2 0 世纪8 0 年代初,面向对象技术开始兴 起,其中b o o c h ,c o a d y o u r d o n 、o m t 和j a c o b s o n 的方法在面向对象软件开发得到了 广泛的认可。随着抽象数据类型和面向对象技术的出现,软件体系结构研究逐渐得到 了重视。这是由以下因素决定的:对象的封装降低了模块闯的藕合,为构件层次上的 软件复用提供了可能;类库的构造、分布式应用系统的设计等规模大、复杂性高的系 统,也需要对体系结构进行研究。 高级阶段以面向构件的开发技术为标志,2 0 世纪9 0 年代后期软件开发技术进入 了基于构件的软件开发阶段。软件开发的目标是软件具备很强的自适应性、互操作性、 可扩展性和可重用性,软件开发强调采用构件化技术和体系结构技术。在这一阶段中, 软件体系结构逐渐成为软件工程的重要研究领域,并最终作为一门学科得到了业界的 普遍认可。 从软件技术的发展过程来看,在各个时期,软件体系结构的问题实际上总是存在 的,但它是随着软件系统规模和复杂性的日益膨胀才逐渐表露,被人们发现和研究的。 7 河海大学硕士学位论文 基于插件技术的软件架构设计及应用 软件体系结构技术现在仍存在许多问题,如概念定义尚不统一、描述规范不能一致等 【9 】,软件体系结构技术仍有待研究、发展和完善。 2 1 2 软件架构定义 软件体系结构尚处于在发展期,对于其定义,目前学术界尚未形成统一意见”o 】, 不同学者有不同看法。论文作者介绍以下几个具有代表性的定义。 b o o c h & r u m b a u g h & j a c o b s o n 定义:体系结构是一系列重要决策的集合,这些决策 与以下内容相关:软件的组织,构成系统的结构元素及其接口的选择,这些元素在相 互协作中明确表现出的行为,这些结构元素和行为元素进一步组合构成的更大规模的 子系统,和引导这一组织包括这些元素及其接口、它们的协作,它们的组合一一 的体系结构风格。 b a s s 定义:程序或计算系统的软件体系结构是系统的一个或多个结构( s t r u c t u r e ) , 包括软件构件( c o m p o n e n t s ) 、构件的外部可视属性( p r o p e r t i e s ) 和构件之间的关系 ( r e l a t i o n s h i p s ) a g a r l a n s h a w 模型:软件体系结构= 构件,连接件,约束 。其中,构件( c o m p o n e n t ) 可以是一组代码,也可以是一个独立的程序。连接件( c o r m e c t o r ) 可是过程调用、管 道、远程过程调用等,用于表示构件之间的相互作用约束( c o n s t r a i n ) 一般为对象连接 的规则,或指明构件连接的势态和条件。 b o e b m 模型:软件体系结构= ( 构件,连接件,约束,不同人员的需求,准则 。 b a r r yb o e h m 和他的学生提出,软件体系结构包括系统构件、连接件、约来的集合, 反应不同人员需求的集合,以及准贝j j ( r e t i o n a l e ) 的集合。其中,这些准则能够说明由构 件、连接件和约束所定义的系统在实现时是如何满足系统不同人员需求的。 i e e e6 1 0 1 2 1 9 9 0 软件工程标准词汇中的义:a r c h i t e c t u r e = 构件,连接件,环境, 原理l 。体系结构是以构件、构件之间的关系、构件与环境之间的关系为内容的某一 系统的基本组织结构以及指导上述内容设计与演化的原理( p r i n c i p l e ) 。 比较上述各种体系结构的定义,可以发现,尽管各种定义都从不同的角度关注软 件体系结构,研究对象各有侧重,但其核心内容都是软件系统的结构。并且都涵盖了 如下一些实体:构件、构件之间的交互关系、限制、构件和连接件构成的拓扑结构、 设计原理与指导方针。同时,这些实体应该满足一定的限制,遵循一定的设计规则, 能够在一定的环境下进行演化。以这些实体为基础,软件休系结构能够从一个较高的 层次上反映组成系统的构件、构件之间的交互,以及构件与构件交互所形成的拓扑结 构。而且,软件体系结构应能为体系系统开发中的重要设计决策,提供不同角度的视 图,便于不同角色人员之间的交流i i “。 8 河海大学硕士学位论文 基于插件技术的软件架构设计及应用 2 1 3 软件架构风格概述 软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。它反映 了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和予系统有效地 组织成一个完整的系统。按这种方式理解,软件体系结构风格定义了用于描述系统的 术语表和一组指导构件系统的规则。一个优秀的软件,首先要选择合适的软件体系结 构风格,可以更好地促进对设计的复用。软件体系结构风格的不变部分使不同的系统 可以大粒度地共享同一个实现代码。只要系统是使用常用的、规范的方法来组织,就 可使别的设计者很容易地理解系统的体系结构。 经典的架构风格主要有数据流系统、数据抽象和面向对象系统、分层系统和数据 中心系统四大类i l ”。 新型架构风格主要有正交体系结构、三层c s 结构、b s 结构和异构结构风格以及 公共对象请求代理体系结构等等。在本文中只对与蓝星设计关系较大的正交体系结构 与c s 体系结构做介绍。 2 1 4 正交软件架构 正交软件体系结构由组织层( l a y e r ) 和线索( t h r e a d ) 的构件构成。层是由一组具有 相同抽象级另l j ( l e v e lo f a b s t r a c t i o n ) 的构件构成。线索是子系统的特例,它是由完成不 同层次功能的构件组成( 通过相互调用来关联) ,每一条线索完成整个系统中相对独立 的一部分功能。每一条线索的实现与其他线索的实现无关或关联很少,在同一层中的 构件之间是不存在相互调用的。 如果线索是相互独立的,即不同线索中的构件之间没有相互调用,那么这个结构 就是完全正交的。从以上定义,我们可以看出,正交软件体系结构是种以垂直线索 构件族为基础的层次化结构,其基本思想是把应用系统的结构按功能的正交楣关 性,垂直分割为若干个线索( 子系统) ,线索又分为几个层次,每个线索由多个具有不 同层次功能和不同抽象级别的构件构成,各线索的相同层次的构件具有相同的抽象级 别【1 4 1 。正交结构有一个公共的最上层,由它来触发各条线索运行,还有一个公共的最 低层,它包含了所有线索要使用的数据。对于大型复杂软件系统,每一条线索( 子系统) 又可以按类似的方法划分为若干条子线索( 更低一级的子系统) ,其子线索还可划分为 更低一级的子线索。最终,形成多级正交结构。 因此。可以把正交软件体系结构的主要特征归纳为: ( 1 ) 由完成不同功能的n ( n 1 ) 个线索( 子系统) 组成; ( 2 ) 系统具有m ( m 】) 个不问抽象级别的层; ( 3 ) 线索之间是相互独立的( 正交的) ; 9 河海大学硕士学位论文 基于插件技术的软件架构设计及应用 ( 4 ) 系统有一个公共驱动层( 一般为最高层) 和公共数据结构( 一般为最低层) 。 正交软件体系结构的框架如图2 1 所示: 第层 第二层 第三层 第四层 第五层 图2 1正交软件体系结构框架 图2 1 是一个三级线索、五层结构的正交软件体系结构框架图,在该图中a b d f k 组成了一条线索,a c e j k 也是一条线索。因为b 、c 处于同一层次中,所以不允许进 行互相调用;h 、j 处于同层次中,也不允许进行互相调用。一般来讲,第五层是 个物理数据库连接构件或设备构件,供整个系统公用。在软件进化过程中,对系统的 需求会不断发生变化。在正交软件体系结构中,因线索的正交性,每一个需求变动仅 影响某一条线索,而不会涉及到其他线索。这样,就把软件需求的变动局部化了。产 生的影响也被限制在一定范围内,因此实现容易。 正交软件体系结构的优点主要有: ( 1 ) 结构清晰,易于理解。正交软件体系结构的形式有利于理解。有余线索功能相 互独立,不进行互相调用,结构简单、清晰【1 5 】,构件在结构图中的位置显示了它所实 现的抽象级别和担任的功能。 ( 2 ) 易修改、可维护性强。线索之间的相互独立性使得对一个线索的修改不会影响 到其他线索f l6 】。因此,当软件需求发生变化时,可以将新需求分解为独立的自需求, 然后以线索和其中的构件为主要对象分别对各自需求进行处理,这样软件修改就很容 易实现。 l o 河海大学硕士学位论文基于插件技术的软件架构设计及应用 ( 3 ) 可移植性强、重用粒度大。因为正交结构可以为个领域内的所有应用程序所 共享,这些软件有着相同或类似的层次和线索,可以实现体系结构级的重用。 ( 4 ) 结构容易调整。系统功能的增加或减少,只需相应的增删线索组件族,而不影 响整个正交体系结构,因此能方便的实现结构调整【l7 】。 客户服务器风格适用于这样的应用程序,它的数据和处理分布在一定范围内的多 个组件上,组件之间可以通过网络相连,也可以不通过网络相连。这种风格架构的特 征包括: 服务器组件:向多个客户端提供服务,它永远处在激活状态,监听用户的请 求。 客户组件:向服务器请求服务。 连接件:通信机制,如果是网络应用则一般为基于r p c ( 远程过程调用) 的 交互协议,如果在同一机器上则一般为l p c ( 本地过程调用) 的交互协议。 理想情况下,这种访问是透明的,即客户和服务器可以运行在同一台机器上,也 可以运行在不同的机器上。 有两种特殊化的客户服务器结构:代理( b r o k e r ) 风格和p 2 p 风格。代理风格中, 服务器将其服务发布给一个代理,客户向代理访问服务,典型的例子有c o r b a 、 s o a p 、w e bs e r v i c e 等。f 2 p 风格的特点是对称的客户服务器模型,典型的饲子有 w i n d o w s 系统的架构。 使用客户服务器风格的体系结构的优点有: 有利于分布式的数据组织。 组件问是透明的,客户与服务器不用考虑对方的运行位置。 便于异质平台间的融合与匹配,客户和服务器可以运行不同的操作系统。 具有良好的可扩展性,易于对服务器进行修改、扩展或增加服务器。 这种体系架构的缺点就是客户必须知道服务器的访问标志,否则很难知道有哪些 可用的服务【1 8 1 。 但随着企业规模的日益扩大,软件的复杂程度不断提高,传统的c s 体系结构逐渐 暴露了以下缺点; ( 1 ) 开发成本较高。c s 体系结构对客户端软硬件配置要求较高,增加了整个系统 的成本。 ( 2 ) 客户端程序设计复杂。采用c s 体系结构进行软件开发,大部分工作量放在客 户端的程序设计上,客户端显得十分庞大1 1 9 j 。 ( 3 ) 软件移植困难。采用不同开发工具或平台开发的软件,一般互不兼容,不能或很 河海大学硕士学位论文基于插件技术的软件架 每设 p 厦应用 难移植到其它平台上运行。 ( 4 ) 软件维护和升级困难。采用c s 体系结构的软件要升级,开发人员必须到现场 为客户机升级,每个客户机上的软件都需维护。对软件的一个小小改动( 例如只改动一 个变量) ,每一个客户端都必须更新。 2 1 6 软件架构的作用 软件体系结构在软件开发和维护中发挥着重要作用。在软件开发中,软件工程对 软件体系结构设计支持的需求越来越迫切1 2 0 ! 。 第一,通过认识和理解体系结构可以使系统的高层次关系得到全面表达和深刻理 解1 2 ”。 第二,获得正确的体系结构常常是软件系统设计成功的关键,错误地选择可能导 致灾难性的结果吲。 第三,全面深入地理勰软件体系结构。才可以使设计者在复杂的问题面前做出正 确的抉择。 第四,系统体系结构对于复杂系统的高层次性能的分析是至关重要的。 第五,熟练掌握体系结构的概念和描述,可以使软件设计者之间、设计者和用户 之间快速方便地交流知识、经验和新设计思想】。 第六,在体系结构的全局思想指导下的任何系统维护、扩充和升级,不会因修改 和扩充而破坏整体的完整和一致性( 2 4 l 。 对于维护,以严谨的方式为系统结构和特性提供的设计文档,在软件维护阶段表 现出明显的优越性。维护中的大量时间都花费在对现存代码的理解上。如果原始的设 计结构能够得到清楚和明确的表达,特别是高层次的表达,就可以大大减少花在这方 面的时间【2 5 l 。所以,维持好设计者关于系统结构的原始意图,对于维护者在维护中始 终保持系统的完整性是十分重要的。 综上所述,软件体系结构是整个软件设计成功的基础和关键所在,它的作用在软 件生命周期的各个阶段表现如下: ( 1 ) 在项目规划阶段,粗略的体系结构是进行项目可行性、工程复杂性、工程进展、 投资规模、风险预测等的重要根据。 ( 2 ) 在项目需求分析阶段,需要从需求出发建立更深入的体系结构描述。这时的体 系结构,是开发商和客户之间进行需求交互的表达形式,也是交互所产生的结果 2 6 1 。 通过它,可以准确地表达用户的需求,以及设计对应需求的解决方法,并考察总结系 统的各项性能。 ( 3 ) 在项目设计阶段,需要从实现的角度对体系结构进行更深入的分解和描述。 河海大学硕士学位论文 基于插件技术的软件架构设计及应用 ( 4 ) 在项目实施阶段,体系结构的层次和构件是建立开发人员的组织和分工、协调 开发人员关系的依据唧。 ( 5 ) 在项目的评估阶段,体系结构是性能测试和评价的依据。 ( 6 ) 在项目维护升级阶段,对软件的任何扩充和修改都需要在体系结构的指导下进 行,以维持整体设计的合理性和正确性以及性能的可分析性,并为维护升级的复杂性 和代价分析提供依据例。 2 2 插件技术概述 2 2 1 插件技术的起源与历史 我们都知道,计算机的硬件设备是由许多插件板连接而成的,而这些插件板又是将 许多具有独立功能的集成电路插件按插件板的设计要求组装连接而成的例。各种插件 卡插到计算机主板上,通过总线让它们可以相互通信、协同工作,计算机的迅速发展 与这种结构特征及集成电路的发展是分不开的。近年来受到硬插件技术的启发,人们 开始研究软插件技术,与硬插件系统类似,软插件系统由总线( 也称宿主程序) 、接 口和插件三部分组成,如图2 2 所示 图2 2 软插件系统示意图 插件通过预先定制的接口连接到总线上。总线是一个总控程序,一般是一个线程, 负责插件之问的通信和互操作;接口负责插件的设置、初始化、启动、关闭以及数据 的传递工作;插件就是普通的程序,由界面、数据和函数组成,可以完成某种功能由 于对插件接口制定了统一的规范,系统投入运行后,用户可以根据自己的需要制作插 件,通过接口集成到系统中去。修改或淘汰某个插件时可以简单地将其卸载,而总控 程序不用修改l ,如果总控程序正在运行、修改某个插件时,不用停止运行这个总控 程序。通过这种技术,增强了系统的灵活性和可扩展性f 3 “,降低了系统维护费用,延 长了软件系统的生命周期。 河海大学硕士学位论文 基于插件技术的软件架构设计及应用 2 2 2 插件技术的原理 一个使用插件结构的软件,是由一个可执行程序和许多完成子功能的插件组成, 主要分为三个部分组成: ( 1 ) 宿主程序:w i n d o w s 平台上一般表现为一个可执行的文件( 一般为e x e 文 件) 1 3 3 1 ,这个可执行文件负责启动整个系统,将插件系统所需的插件加载到自己的进 程地址空间中,插件系统所需要的插件是一些服务性的插件,常驻进程之中。宿主程 序还必须对插件进行管理,不同产品的服务性插件的设计都不完全相同,但是对插件 进行管理的功能是一定要实现的。 ( 2 ) 插件:能够动态地插入到系统中,提供给插件系统相对简单的功能,但是 多个插件能够使系统功能完善,完成许多复杂功能的处理,是插件系统的重要组成部 分。在插件中必须提供给宿主程序调用的接1 2 1 ,当宿主程序需要调用插件的时候能够 找到这个接口,以完成与宿主程序的通讯与交互,并且使得宿主程序能够得到插件的 相关信息1 3 4 】。 ( 3 ) 接口;宿主程序和插件能够互相结合在一起工作,必须有一套互相协作的 规则和协议来使不同来源的程序互相协调工作,完成这些规则和协议的部分称为插件 系统的接口嘲。这是一个逻辑上的接口,由宿主程序和插件各完成一部分,它们共同 完成插件的插入、调用、停止以及宿主程序与插件以及插件与插件之间的交互,是插 件系统中的重要组成部分p “。 图2 3 插件系统原理图 1 4 河海大学硕士学位论文基于插件技术的软件架构设计及应用 2 2 3 插件的分类 目前应用比较普遍的插件,大致上可分为以下几类: 1 批处理式硼 类似于批命令的简单插件,它一般是文本文件,这种插件的缺点是功能比较单一、 可扩展性极小和自由度非常低: 2 脚本式1 3 7 1 使用某种语言把插件的程序逻辑写成脚本代码。而这种语言可以是p y t h o n ,或是 其他现存的己经经过用户长时阔考验的脚本语言。甚至,你可以自行设计一种脚本语 言来配合你程序的特殊需要。当然,用当今最流行的x m l 是再合适不过了。 这种形式的特点在于,稍有点编程知识的用户就可以自行修改你的脚本。这种情 况所造成的后果是不可预知的。 3 动态函数库d l l 插件功能以动态库函数的形式存在。主程序通过某种渠道( 插件编写者或某些工 具) 获得插件d l l 中的函数名,然后在合适的地方调用它们。容易造成“d l lh e l l ”。 4 聚合式 顾名思义,就是把插件功能直接写成e x e t 3 8 1 。主程序除了完成自己的职责外,还 负责调度这些“插件”。我不喜欢这种形式。这使插件与插件之间,主程序与插件之 间( 主要是这一点) 的信息交流困难了许多。巴比伦塔的失败从某种程度上讲就是信息 交流无法实现造成的。 5 c o m 组件 c o m 的产生给这个世界增添了几分活力。我们的插件需要做的只是实现程序定义 的接口。主程序不需要知道插件怎样实现预定的功能旧,它只需要通过接口访问插件, 并提供主程序相关对象的接口。这样一来,主程序与各插件之间的信息交流就变得异 常简单。并且,插件对于主程序来说是完全透明的。 2 2 4 插件技术的特点与研究意义 插件技术的特点主要有: ( 1 ) 结构清晰、易于理解。由于借鉴了硬件总线的结构,而且各个插件之闻是 相互独立的,所以结构非常清晰也更容易理解。 ( 2 ) 易修改、可维护性强。由于插件与宿主程序之问通过接口联系,就像硬件 插卡一样,可以被随时删除,插入和修改,所以结构很灵活,容易修改方 便软件的升级和维护。 ( 3 ) 可移植性强、重用粒度大。因为插件本身就是由一系列小的功能结构组成, 河海大学硕士学位论文纂于插件技术的软件架构设计及应用 而且通过接口向外部提供自己的服务,所以复用粒度更大,移植也更加方 便。 ( 4 ) 结构容易调整。系统功能的增加或减少,只需相应的增删插件,而不影响整 个体系结构,因此能方便的实现结构调整。 ( 5 ) 插件之间的耦合度较低。由于插件通过与宿主程序通信来实现插件与插件, 插件与宿主程序问的通信,所以插件之间的耦合度更低。 ( 6 ) 可以在软件开发的过程中修改应用程序。由于采用了插件的结构,可以在 软件的开发过程中随时修改插件,也可以在应用程序发行之后,通过补丁 包的形式增删插件,通过这种形式达到修改应用程序的目的。 ( 7 ) 灵活多变的软件开发方式。 可以根据资源的实际情况来调整开发的方式,资源充足可以开发所有的插 件,资源不充足可以选择开发部分插件,也可以诸第三方的厂商开发,用 户也可以根据自己的需要进行开发。 使

温馨提示

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

评论

0/150

提交评论