已阅读5页,还剩62页未读, 继续免费阅读
(计算机应用技术专业论文)基于mvc的混合型软件体系结构的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京科技大学硕士学位论文 摘要 软件体系结构是软件的骨架,是软件系统开发的基础a s 和b s 是广泛地应用于 分布式系统的两种结构随着应用系统规模的日渐庞大,硬件环境以及用户需求日益复 杂,产生了一种综合了c s 结构和b s 结构优点的软件体系结构混合软件体系结构。 这种混合软件体系结构正广泛地应用在分布式系统设计中。设计模式描述了系统面临的 问题以及问题的解决方案。设计模式能有效地解决软件设计的复用问题,可以使软件复 用从代码复用提升到软件开发各阶段知识的复用。m v c 设计模式作为一种面向对象的设 计模式,它将用户问题域划分为三个部分:模型、视图和控制器,各部分明确分工,密 切协作,降低了系统模块的耦合度。 通常在应用系统中,不同角色用户,有着不同的职责的同时也处于不同的应用环境, 因此对他们对所开发系统的功能、性能以及运行方式等方面的要求有所差异。为了解决 这一问题,本文采用了混合型软件结构来设计系统,同时通过合理的结构划分,使得c 7 s 结构和b s 结构的优点得到充分地利用。较之混合软件体系结构,m v c 设计模式是一种 更小粒度的解决方案,所以本文在层次型的b 届和c 愿混合体系结构中使用m v c 思想 来分离系统结构。这么做不仅使得软件系统的结构更加清晰,还增强软件系统的可复用 能力和扩展能力。 本文分另对m v c 设计模式、混合型体系结构进行迸一步的讨论。在此基础上,本 文提出了基于m v c 设计模式的混合体系结构的设想、实现策略和实现技术。本文的研 究背景是科技发展中心的博士点基金综合管理系统( d f i m s ) ,本文所提出的基于m v c 的混合型软件体系结构的实现策略和实现技术,最终应用于博士点基金综合管理系统的 开发中。 关键词:软件体系结构、b s 、c s 、设计模式、m v c 北京科技大学硕士学位论文 s o f l w a j ea r c h i t e c l u r ei st h ef i , a m e w o r ko ft h es o f 啊a r ea n dt h ef o u n d a t i o no ft h es o f t w a r e d e v e l o p m e n t 1 1 碡c 哦峨俗e r v 盯a n dt h eb f 拥噶e s o n 嘲? a ”t w oo ft h em o 醴p o p u l a r a r c h 咖e s 啦脚缸t h ed i s 啊b u d l 唱s y s t e m w t ht h e 伽曲f 蓟唱o fa p p l i c a t i o n ss c a l e , t h e i n a e a s i n go ft h ec o m p l e x i t yb o t ho ft h eh a r d w a r ee n v r o n m e n ta n d1 1 8 e r sr e q u i r e m e n t , al l c w a r c h i t e c t u r e , t h em i x e ds o f t w a r ea r c h i t e c t u r e , c o m e sf o r t h 1 t 凼m i x e ds o f t w a r ea r c h i t e c t u r e , i n t e g r a t i n gt h ea d v a n t a g eo ft h eb sa n dt h ec sa r c h i t e c t u r e , i sw i d e l yu s e di nt h ed i s m l o u t i n g s y s t e m ad e s i g np a t t e r nd e s c n b e sap r o b l e ma n dt h es o l u t i o n st ot h ep r o b l e mw h i c hy o um e e t d u r i n gt h es o f t w a r ed e v e l o p m e n t i tn o to n l yc a ne f f e c t i v e l ya n de f f i c i e n t l ys o l v et h em a t t e ro f t h es o n w a r er e u s eb u ta l s oc a np r o m o t et h es o r w a r er e t l s eh - o r et h ec o d i n gr e a i s et ot h el e s o t l r o e r e u s ed u r i n gt h e 。w h o l es o f t w a r ed e v e l o p m e n t a sa l lo b j e c t - o r i e n t e dd e s i g np a t t e r n , m v c d i v i d e st h er e g i o no ft h ep r o b l e m si n t ot h r e ep a l s - m o d e l , c o n t r o l l e ra n dv i e w , t h o s ep a r t s d i v i d e t h e w o r k c l e a r l y a n d c o o p e r a t e n e a r l y t o r e d u c e t h e d e g r e e o f c o u p l i n g o f t h ea p p l i c a t i o n g e n e r a l l ys p e a k i n g d i f f e r e n tk i n d so fu 船i sh a v ed i f f e r e n tr o l e sa n da r ci nd i f f e r e n t e n v i r o n m e n t s s ot h e yh a v et h ed i f f e r e n tr e q u i r e m e n t st ot h et a r g e ta p p l i c a t i o ns y s t e m , s u c ha s t h es y s t e m sp e r f o r m a n c e t h es y s t e m sa r c h i t e c t u r e , t h ew a ys y s t e mm n s , a n ds oo n 1 1 st h e s i s u s e st h em i x e ds o f t w a r ea r c h i t e c t u r et os o l v et h i sk i n do fp r o b l e ma n dm a k ew e l lu s eo ft h e a d v a n t a g eo ft h e 聃a n dt h e 邙a r c h i t e c t u r eb yt h er e a s o n a b l ep a r t i t i o no ft h es y s t e m o r g a n i z a t i o n c o m p a r e dt 0t h em i x e d s o f t w a r ea r c h i t e c t u r e 。m v cd e s i g np a n e mi sas m a l l e r k i n do fs o l u t i o n s ot h i st h e s i su s e st h em v c t h i n k i n gt od i v i d et h em i x e d s o f t w a r ea r c h i t e c t u r e w h i c hi sc o m p o s e do fh i e r a r c h i e s d o i n gt h i sc a l lm a k et h es t r u c t u r eo fs o f t w a r es y s t e mm o l e d e a r l ya n d a l s oc a ne n h a n c et h es o f t w a r es y s t e m sa b i l i t i e so f r e u s ea n de x t e n s i o n a f t e rt h ed e e p l ya n a l y z e da n dr e s e a r c h e dt h em v c d e s i g np a t t e r na n dt h em i x e ds o f l w a r e a r c h i t e c t u r e ,t h i st h e s i sp r o v i d et h et h o u g h t , t h es t r a t e g i e sa n dt h et e c h n o l o g i e so fa p p l y i n gt h e m v c d e s i g np a t t e mt ot h em i x e ds o f t w a r ea r c h i t e c t u r e 1 1 i eb a c k g r o u n dp 炳e c to ft h i st h e s i si s t h e “d o c t o rf u n di n t e g r a t i o nm a n a g e m e n ts y s t e m ”a l lt h es t r a t e g i e sa n dt e c h n o l o g i e so f a p p l y i n gt h em v cd e s i g np a t t e r nt ot h em i x e ds o f t w a r ea r c h i t e c t u r ei nt h i st h e s i sa l ea p p l i e do n t h er e a l i z a t i o no f t h ed o c t o rf i l n di n t e g r a t i o nm a n a g e m e n ts y s t e m 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 ,b s ,c s ,d e s i g np a t t e r n 独创性说明 本人郑重声明:所呈交的论文是我个人在导师指导下进行的研究工 作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得 北京科技大学或其他教育机构的学位或证书所使用过的材料。与我一同 工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表 示了谢意。 鹕:惘醐:丘必 关于论文使用授权的说明 本人完全了解北京科技大学有关保留、使用学位论文的规定,即: 学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公 布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论 文。 ( 保密的论文在解密后应遵循此规定) 獬:懈 导师签名:丢岛u日期:么! 2 。 北京科技大学硕士学位论文 引言 自上个世纪4 0 年代软件诞生以来,虽然软件产业一直保持着高速发展,但其状况仍 是不尽如人意。起初,人们把软件设计的重点放在数据结构和算法上。随着软件系统规 模越来越大、越来越复杂,人们开始采用工程化的方法来开发软件,即使用软件工程的 方法开发软件。但是随着软件危机程度的日益加剧,现有的软件工程方法已不再能很好 地满足人们的要求。正是这种不良状况,以至于在2 0 世纪九十年代中期,业界对软件产 业的状况做出诸如“如果说成功意味着成本、进度、质量、特性集和创造利润等方面均 达到了客户期望的话,那么只有1 0 的软件项目取得了成功1 1 p 之类不乐观的评价。 随着对软件工程领域的深入研究,人们越来越清楚地认识到:对于大规模的复杂软 件系统来说,总体的系统结构设计和规格说明比起软件算法设计和数据结构选择已经变 得重要得多。在此种背景下,人们认识到软件体系结构的重要性,并认为对软件体系结 构的系统、深入的研究将会成为提高软件生产率和解决软件维护问题的新的最有希望的 途径。一般来讲,一个系统的软件体系结构是由一组计算构件、构件之间的交互连接件 以及构件和连接件如何结合在一起的约束限制的描述组成的【2 l 。客户和服务器、数据库、 层次系统中的层都是构件的实例。软件体系结构不仅指定了系统的组织结构和拓扑结构, 而且还显示了系统需求和构成系统元素之间的对应关系,提供一些设计决策的基本原珲。 所以说,软件体系结构的设计是整个软件开发过程中关键的一步。 与此同时,随着软件的丌发技术得到不断更新和改进,为了提高软件的刀= 发效率、 向软件开发产业化发展,软件开发正在走软件产品的模块化和可复用性的道路。而目i ;i 软件工程领域的热门问题设计模式就是实现软件模块化、提高软件可复用性和提高 软件开发效率这一目标的一个行之有效的方法。所谓的设计模式是人们在长期的软件开 发实践中,总结出了一些解决特定问题的有效方法,并加以总结提炼,在碰到类似问题 时,就可以直接复用以前的方法印。因此,为了解决企业应用中的非功能性需求,促进 个业应用系统的产品化,设计模式在企业应用中的研究及应用j 下越束越受到人们的重视, 而且也是非常紧迫必要的。 本文将在软件体系结构和设计模式的理论知识的指导下,延续c s 和b s 混合体系 结构以及m v c 设计模式的思想,并对它们在实际项目中的应用进行进一步的研究和实 践。 北京科技大学硕士学位论文 1 课题背景 1 1 软件体系结构的研究现状及意义 软件总是有体系结构的,不存在没有体系结构的软件。体系结构( a r c h i t e c t u r e ) 一 词在英文里就是“建筑”的意思。把软件比作一座楼房,从整体上讲,是因为它有基础、 主体和装饰,即操作系统之上的基础设施软件、实现计算逻辑的主体应用程序、易于使 用的人机交互界面程序。从细节上来看,每一个程序也是有结构的早期的结构化程序 就是以语句组成模块,模块的聚集和嵌套形成层层调用的程序结构,也就是体系结构。 结构化程序的程序( 表达) 结构和( 计算的) 逻辑结构的一致性及自顶向下的开发方法 自然而然地形成了体系结构。由于结构化程序设计时代程序规模不大,通过强调结构化 程序设计方法学的“自顶向下、逐步求精,并注意模块的耦合性就可以得到相对良好的 结构0 所以软件体系结构并未得到特别地研究1 4 1 。 1 软件体系结构的研究现状 目前,软件体系结构领域仍在迅速地发展,越来越多的研究人员正在把注意力投向 软o r - c a 系结构的研究。从软件体系结构研究的现状来看,当前的研究和对软件体系结构 的描述,在很大程度上来说还停留在非形式化的基础上唧。软件构架师们仍然缺乏必要 的工具,这种工具应该是显式描述的、有独立性的形式化工具。此外,当前用于对软件 体系进行规格描述的模型、标记法和工具仍是很不正规。尽管这些不正规的模型是有用 的,为使之更为精确和健壮,在很多方面的研究工作还需要继续进行。 关于软件体系结构的研究工作主要在国外展开的,国内到目前为止对于软件体系结 构的研究尚处在起步阶段。软件体系结构在国内未引起人们广泛注意的原因主要有两点 同: ( 1 ) 软件体系结构从表面上看起来是一个老话题,似乎没有新东西。 ( 2 ) 与国外相比,国内对大型和超大型复杂软件系统开发的经历相对较少,对软件 危机的灾难性体会没有国外深刻,因而对软件体系结构研究的重要性和必要性的认识还 不很充分。 2 软件体系结构的研究意义 软件体系结构设计是整个软件丌发过程中关键的一步。对于当今世界上庞大而复杂 的系统来说,没有一个合适的体系结构而要有一个成功的软件设计几乎是不可想象的【s j 。 不同类型的系统需要不同的体系结构,甚至一个系统的不同子系统也需要不同的体系结 构。体系结构的选择往往会成为一个系统设计成败的关键。所以研究软件体系结构,对 开发出高质量的稳定的软件系统有以下的特殊意义1 3 1 1 4 1 1 5 1 : 北京科技大学硕士学位论文 ( 1 ) 通过认识和理解体系结构可以使系统的高层次关系得到全面表达和深刻理解。经 过多年的软件开发实践,今天开发的软件系统同以前的系统常常有相似之处,识别相似 系统的通用结构模式,有助于理解系统之间的高层联系,使得新系统可以作为以前系统 的变种来构造。 ( 萄正确的体系结构是软件系统设计成功的决定因素,错误选择体系结构将会导致灾 难性后果。 ( 3 ) 全面深入地理解软件体系结构,便于开发人员在复杂问题面前选择合理的设计方 案。 ( 4 ) 系统体系结构对于复杂系统的高层性质的分析和描述极为重要。 国熟练掌握体系结构的概念和描述,可以使软件设计者之间、设计者和用户之间快 速方便地交流知识、经验和新的设计思想。 ( 回在体系结构的全局思想指导下的任何系统维护、扩充和升级,不会破坏整体的完 整性和一致性。 1 2 设计模式研究现状及意义 1 设计模式研究现状 设计模式是一个新兴的研究领域,同时也是一个热点研究领域。国外从9 0 年代初就 有人开始关注软件代码模式。自从“四人组”设计模式问世,引起了国外软件工程 界对设计模式的极大关注。此后,设计模式成了软件工程领域中的热门研究课题。目前, 国外软件工程界正把设计模式应用于软件体系结构、设计、编码和软件开发的过程和组 织等,其理论成果主要体现在从1 9 9 4 年开始的“程序设计模式语言( p a t e ml a n g u a g e so f p r o g r a m m i n g p l o p ) ”年会论文集中。国内对于设计模式的了解基本上是从1 9 9 6 年开始的, 对设计模式的研究也就最近几年才开始,至于设计模式在企业应用领域的研究及运用则 是刚刚起步 7 1 。 目前对设计模式的研究及其研究成果仍然存在一些问题:已有的设计模式涉及的范 围有限:设计模式大多没有清楚明确的应用指南,比较难以运用,而且也没有任何可以帮 助开发人员检查模式使用是否正确的机制:设计模式中本质、抽象的东西太少等等1 8 1 。 2 设计模式研究意义 为什么要研究设计模式呢,研究设计模式的意义是什么? 在软件丌发中使用设计模 式有以下几点的好处i 埘: 北京科技大学硕士学位论文 首先,设计模式为开发者提供了一个很好的设计经验,模式中所描述的解决方案是 人们从不同角度对一个问题进行研究,然后得出来的最通用、最灵活的解决方案,其有 效性是经过大量的实践检验的。 其次,设计模式为软件重用提供了一条途径。每个设计模式都可以是软件设计中的 可重用元素或单元。多个模式可以组合起来构成完整的系统。这种基于模式的设计具有 更大的灵活性,可扩展性和更好的可重用性。 再次,设计模式的基本思想是将程序中的可变部分和不可变部分进行分离,尽量减 少对对象之间的藕合度,从而某个对象的修改,不会导致其它对象的变动,使季导由修改 带来的影响缩小到最小。 可以预见,在今后的软件开发中设计模式的应用将越来越广泛。所以研究设计模式 在软件设计中的使用。是一个很有潜在意义的工作。 1 3 本文研究内容与组织 本文分为以下几个部分: 第一章:介绍本文的课题背景。 第二章:分别论述了c s 、b s 以及两者混合的软件体系结构的知识,以及它们在实 际应用中的特点和问题。 第三章:阐述了设计模式的相关理论,进一步介绍m v c 模式的具体构造,以及本 文对m v c 内容的理解 第四章:论述了基会综合管理系统的需求分析。 第五章:论述了系统设计的内容。 第六章:论述了系统的实现。 第七章:结论 北京科技大学硕士学位论文 2 混合型软件体系结构研究 2 1 软件体系结构概述 自从软件系统首次被分成许多模块,模块之间有相互作用,组合起来有整体的属性, 就具有了体系结构。好的开发者常常会使用一些体系结构模式作为软件系统结构设计策 略,但他们并没有规范地、明确地表达出来,这样就无法将他们的知识与别人交流。软 件体系结构是设计抽象的进一步发展,它更好地满足了理解软件系统,开发更大、更复 杂的软件系统的需要。如同土木工程进入到现代建筑学一样,软件也从传统的软件工程 进入到现代面向对象的软件工程,研究整个软件系统的体系结构,寻求构建最快、成本 最低、质量最好的构造过程。 软件体系结构虽脱胎于软件工程,但其形成同时借鉴了计算机体系结构和网络体系 结构中很多宝贵的思想和方法。最近几年,软件体系结构研究己完全独立于软件工程的 研究,成为计算机科学的一个最新的研究方向和独立学科分支。软件体系结构研究的主 要内容涉及软件体系结构描述、软件体系结构风格、软件体系结构评价和软件体系结构 的形式化方法掣1 0 l 。解决好软件的重用、质量和维护问题,是研究软件体系结构的根本 目的。 2 1 1 软件体系结构的定义 虽然软件体系结构己经在软件工程领域中有着广泛的应用,但迄今为止还没有一个 被大家所公认的定义。许多专家学者从不同角度和不同侧面对软件体系结构进行了刻画, 具有代表性的软件体系结构的定义如下: 定义1 :软件体系结构由具有特定形式的体系结构元素或者设计元素组成,包括处 理元素、数据元素、连接元素三类f 1 1 】。这个定义使得体系结构的内涵进一步扩大,它包 括了模块和模块之问的控制关系。 定义2 :一个程序或计算系统的软件体系结构包括一个或一组软件构件、软件构件 的外部可见特性及相互关系1 1 2 1 “软件外部的可见特性”,是指软件构件提供的服务、性 能特点、错误处理、共享资源使用等等。这样定义的目的在于强调软件体系结构必须从 系统中抽象出一些信息( 否则我们将没有观察软件体系结构的视点,而是在观察整个系 统) ,同时保留足够的信息作为分析、决策、减少风险的基础。 软件体系结构是关于软件的结构概念和设计决策的集合,它必须首先以有效的方式 满足重要的外部功能,质量要求,产品系列、问题以及解决领域的内部要求。 定义3 :g a d a n & s h a w 模型把软件体系结构抽象概括为1 1 3 1 : 北京科技大学硕士学位论文 软件体系结构= 组件艘口连接器约束 ,具体定义如下; 组件:可计算性的元素,它们共同构成了软件的体系结构,通常软件体系结构可分 解为子系统,子系统又可进步的分解( 如子子系统,模块等) 。大粒度的体系结构组 件包括客户端。服务器等。 接口:一种特殊的体系结构元素,它定义了一组组件的交互点,定义良好的接口可 以保证组件之间本质的关系,在某些体系结构定义中,接口是隐含定义的,并不明确出 现。 连接器:体系结构组件问的逻辑连接。连接器与接口的一个不同在于接口是组件本 身提供的供外部组件交互用的交互点,而连接器本身是一个独立体,而且它的两端连接 的应该是组件的接口。 约束:组件与其关系之间所必须满足的条件和限制。约束把体系结构与系统需求联 系起来。 广义地讲,软件体系结构也是一种可重用构件,但是它与普通构件的区别是:它不 是解决软件的某个局部问题,而是描述软件的总体结构,它描述了一类软件的总体构成 情况,包括该软件由哪些主要部分构成以及各部分之间关系,但是不涉及每个部件的细 节1 1 4 1 。 软件体系结构不仅指定了系统的组织结构和拓扑结构,而且还显示了系统需求和构 成系统的元素之间的对应关系,提供一些设计决策的基本原理【l s l 。一般地说,体系结构 模型辨明了构件和构件在交互中的结构和语义的差异。这些体系模型通常又被组合起来 定义更大的系统。理想情况下,不同的体系结构描述的元素是独立定义的。因此,它们 可以在不同的上下文中重复使用【1 6 1 。这样,体系结构建立的这些单独的元素规格说明就 可以被建造成体系结构级的予系统。 如今,越来越多的人们认识到有效的软件系统开发方法必须要有体系结构级的设计 设施,坚实的软件结构体系基础将直接带来开发和维护上的巨大效率。体系结构的作用 表现在如下的几方面1 1 7 l : ( 1 ) 风险承担者之间的交流媒介。软件构架是一种常用的、在较高层次上对系统的抽 象,绝大多数系统的风险承担者都以此作为彼此理解、达成共识或相互沟通的基础。 ( 2 ) 早期设计决策。软件架构是所开发系统的最早期设计决策的体现,而这些早期决 策对系统的后续开发、使用和维护具有重要的影响。这也是能够对所开发系统进行分析 的最早时间点。 北京科技大学硕士学位论文 ( 3 ) 可传递的系统抽象。软件构架是关于系统结构及系统各组件工作机制的相对精 简、却又能突出反映问题的模型。这种模型可以在多个系统之间传递,特别是可以应用 到具体相似需求的系统中,并能够促进更大规模的重用 因此,软件体系结构便于软件设计师之间通信,最大程度的保证系统的早期设计决 策的正确性,并且,基于软件体系结构的复用为软件复用开拓了一条道路。 2 1 2 软件体系结构的发展 在软件体系结构的演化过程中,经历了从集中式构架到分布的c l i e n t s e r v e r 结构, 从分布的c l i e n t s e r v e r 结构再到三层或多层的结构并持续向前发展的历程,而整个转换 过程都伴随着计算机硬件技术、通信技术和软件系统规模与复杂程度的不断增强f 1 7 1 ( 1 s l 。 ( 1 ) 集中式软件体系结构 与最初的大型中央主机相适应,最初的软件结构体系也是m a i n f l a m e 结构,该结构 下客户、数据和程序被集中在主机上,通常只有少量的g u i 界面,对远程数据库的访问 比较困难。这种软件体系结构是和当时的计算机软、硬件技术相适应的,但随着p c 的 广泛应用,这种结构逐渐在应用中被淘汰。 ( 2 ) 二层软件体系结构 在8 0 年代中期出现了二层软件体系结构,c l i e n t s e r v e r 发展初期的一种结构。在这 种结构中应用程序的处理在客户( p c 机) 和服务器( m a i n f r a m e 或s e r v e r ) 之间分担; 请求通常被关系型数据库处理,p c 机在接受到被处理的数据后实现显示和业务逻辑;系 统支持模块化丌发,通常有g u i 界面。这种二层结构曾因为其较好的灵活性而得到了极 其广泛的应用。但对于现在应用越来越复杂的大型软件系统而占,这种结构在系统的部 署和扩展性方面还是存在着不足。 ( 3 ) 多层结构软件体系结构 随着i n t e m e t 的发展,分布式应用系统应该具有更好的适应性、集成性和伸缩性,从 而满足日益增长的业务需求和业务条件。这一需求导致了中l 甘j 件和多层软件体系结构作 为一种新的技术的兴起。最仞产生了新的一种更具生命力的,并被广泛采用的体系结构, 这就是为我们所知的“三层结构”b m ,s 结构。 随着中日j 件技术的大量引用和使用,促进了软件体系结构在分层模型上更进一步的 发展,形成了一种多层的软件体系结构1 1 9 1 。如图2 1 所示: 北京科技大学硕士学位论文 塞 不 层 生 务 层 图2 1 软件体系结构的分层模型 在图2 1 中,使用水平分层和垂直分层的架构的方式来爻现软件能力,从而构成了 一个软件体系结构的立方体模型。这样的一个集成软件体系结构清晰地分离了领域软件 开发和业务应用软件开发。同时也清晰地分离了在业务应用软件开发中的表示和业务、 数据和模型的差异,从而使得软件的可重用性、可维护性、灵活性都得到了极大地提高, 最终能够满足一个大型的、高要求的、业务日益变化和发展的企业级应用的要求。 2 1 3 软件体系结构的研究热点 对软件体系结构的研究目前主要可以分为两大类。一类是由基础研究团体引导的偏 重于理论性的尝试,如体系结构风格( a r c h i t e c t u r es t y l e ) 和体系结构描述语言a d l ( a r c h i t e c t u r ed e s c r i p t i o nl a n g u a g e ) 。另一类是在软件开发实践中提出的如设计模式 ( d e s i g np a t c m ) 、框架( f r a m e w o r k ) ,特定领域软件体系结构d s s a ( d o m a i ns p e c i f i c s o f t w a r e a r c h i t e c t u r e ) 和标准体系结构等1 1 9 1 。 软件体系结构目前较活跃的研究的热门方向包括: ( 1 ) 软件体系结构形式基础的研究; ( 2 ) 针对软件体系结构描述中特有的问题研究新的专门的高级语言; ( 3 ) 建立用于度量和评价软件体系结构的模型和方法; 数据层 北京科技大学硕士学位论文 ( 4 ) 建立面向专门领域的软件体系结构范例库。 ( 5 ) 把软件体系结构从目前的直觉和经验状态过渡到理论。 本文研究的软件体系结构是一种混合型的结构,它是一种结合了c s 和b s 体系结 构风格的一种新型软件体系结构。所以在下一节中,本文将分别对c s 和b s 的体系结 构风格进行分析和论述。 2 2 ( 辂软件体系结构 c s 软件体系结构,即客户机硐艮务器( c l i e n t s e r v e r ) 结构,是为实现资源共享而提 出来的,是2 0 世纪九十年代成熟起来的技术。最初出现的是二层c s 结构,但随着应用 相同规模的扩大,二层c s 结构越来越不能满足分布式应用和软件整体性能的要求,所 以二层c s 结构逐渐地向三层c s 结构过渡。 c s 结构下服务器与所有的客户端直接相连,数据库放置在服务器端。客户端提出 访问数据库的请求,由服务器响应这些请求,对后台数据库进行操作,按要求把查询结 果返回给客户端。而且服务器要对客户的访问权限进行审查,对数据库进行保护等。客 户端的任务是负责人机交互,所以需要安装相应的客户端程序,一般相对较为复杂,对 于网络管理增加了难度。在基于c s 模式的应用系统中,数据层放在服务器端,表示层 放在客户端【1 9 1 。而应用层既可以放在服务器端,也可以放在客户机端。由此产生了几种 不同的c s 结构:以前端为主的两层c s 结构、以后端为主的两层c s 结构以及三层c s 结构。 2 2 1 二层c s 结构 二层c s 结构把应用主要分为两个部分:客户机和服务器。表示层和应用逻辑层被 组合在一起,运行在客户端,通过网络连接访问远程数据。借助a p i 接口,如标准的数 据库语言,客户端的应用程序从数据库中读取数据。执行程序的运算逻辑,然后把数掘 送回数据库f 2 0 ! 。这种应用模型一般适用于小规模用户的单一数据库且有安全快速的网络 环境下运行。 ( 1 ) 以f 拇端为主的两层c s 结构 把应用层放在客户机上实现的c 届结构,是以前端为主的两层c s 结构( 如图2 2 所示) 。以前端为主的两层c 熔结构是最早期的c s 结构。该结构中,后端服务器( 一 般是数据库服务器) 只提供数据服务,应用层和表示层的工作都由前端客户机来完成。 基于这种结构来实现应用系统时,丌发和调试过程一般比较容易。但当连接到服务器端 的客户机数目增加时,网络数掘传输的负担将加重。 北京科技大学硕士学位论文 c l i e n t 图2 2 以前端为主的二层c s 结构图2 , 3 以后端为主豹二层c s 结构 ( 2 ) 以后端为主的两层c s 结构 把应用层放在服务器段实现的c s 结构是以后端为主的两层c i s 结构( 如图2 3 所 示) 。在这种结构中,后端服务器不仅提供数据层服务迩提供应用层服务,而前端的客户 机只提供表示层服务。服务器端以数据库的形式提供数掘层服务,应用层服务一般借助 存储过程和触发器来实现。存储过程实现了应用的数据处理功能,并且编译后存放在数 据库服务器中。客户机要执行相应的应用层功能时,只要调用服务器上相应的存储过程 即可。存储过程减少了客户机和服务器之间的连接次数,同时还减少了向服务器提交的 处理请求数据的大小,所以可以在一定程度上提高效率。但这种结构使得服务器的负载 加重,而且存储过程和触发器的开发和调试也要比通常的客户端程序要麻烦。 2 2 2 三层a s 结构 随着应用相同规模的扩大,二层c s 结构越来越不能满足分布式应用和软件整体性 能的要求,所以二层c s 结构逐渐地向三层c s 结构过渡。新的三层a s 结构是由表示 层、中j b j 层、数据层三层组成,其结构图如图2 4 所示阎。 北京科技大学硕士学位论文 图2 4 三层哪结构图 在这种结构中,表示层是系统与用户的接口部分,负责用户与应用程序的交互。它 接受用户的输入、请求,并将结果返回给用户,表示层根据用户的操作调用相廊的业务 逻辑,它一般只与中间层交互而不直接访问后台数据库。中间层,又称应用逻辑层,通 常为应用服务器,中间层是应用逻辑处理的核心,是具体应用的实现,是连接客户和数 据库服务器的中介和桥梁。它响应用户发来的请求,执行某种应用逻辑任务,同时中日j 层向数据库服务器发送s q l 请求,数据库服务器将结果返回给应用服务器,最终将数据 和结果返回给客户l 。应用服务器在物理上可与数据库服务器在同一台机器上,也可在 不同的机器上。数据层,通常是的d b m s ,数据层实现数据的存储、数掘的访问控制、 数据完整性约束和并发控制等。 2 3b s 软件体系结构 b r o w s e r s e r v e r 实际上是三层c s 的一种网络实现,它是把三层c s 的表示层( 客 户用户界面) 用标准的w e b b r o w s e r :取代,中日j 层用了一个w e b 服务器,就成了 b r o w s e r s e r v e r ,简称b s 结构,结构图如图2 5 所示。 北京科技大学硕士学位论文 图2 5b s 体系结构图 它简化了客户端,它无需像c s 模式那样在不同的客户机上安装不同的客户应用程 序,而只需安装通用的浏览器软件i 捌,而不用自行开发g u i 。以浏览器替代了传统c s 结构中的g u i ,就克服了c s 结构的系统更新升级繁重的缺陷。因为在b s 结构下,升 级系统时不需要对每个客户机都进行更新,而只需要将w e b 服务器上的内容升级即可。 同时,由于b s 结构基于t c p i p 协议,因此b s 结构的应用系统可以运行于i n t e r n e t 之 上,使得系统克服了空日j 和地域的限制,可以在任何地方访问系统,实现灵活的分布式 应用。 近几年还出现了多层的b s 结构,所谓多层b s 结构就是将三层b s 结构中应用层 从w e b 服务器中分离出来,专门放到一个w e b 应用服务器上。w e b 服务器只负责为 客户机提供界面服务,而w e b 应用服务器负责所有的业务逻辑处理。多层b s 结构一 方面可以使系统的负载更加均衡,另一方面也使系统开发中的界面设计和业务逻辑处理 完全独立,系统刀:发过程更易组织和推进。c 届结构和b s 结构的特点都非常明显。但 具体采用c s 结构还是b s 结构还要依赖于具体应用的要求。这也是为什么目i ; 两种结 构都有很大的应用市场的原因。 北京科技大学硕士学位论文 2 4 耶与哪的e 匕较分析 下面将从以下几个方面对c s 结构和b 届结构进行比较分析。 ( 1 ) 系统硬件条件 c s 一般建立在专用的网络环境中( 如小范围里的网络环境) ,局域网之间在通过 专门的服务器提供连接和数据交换服务。引s 建立的硬件环境比较灵活,尤其是b r o w s e r 端对硬件环境的要求更是简单,基本上只要有操作系统和浏览器就行因此b s 结构比 c s 结构有更强的适应范围。 ( 2 ) 支持开发的工具 c s 结构的开发的工具多且功能强劲。多数情况下,利用c s 结构可以在比较短的 时间内开发出一个使用方便的应用系统。目前c 搐结构的系统开发工具有j b u i l d e r ,v i s u a l s t u d i o ,d e l p h i ,p o w e r b u i l d e r 等。利用这些先进的开发工具,人们可以从大量繁杂的编 程劳动中解脱出来,而且可以设计出十分友好的人机界面。另外,目前许多c a s e 工具 都支持c s 开发,可以将设计结果与开发工具结合起来,确保能准确地满足用户的需求 2 5 1 。相对c s 结构,b s 结构的开发工具的开发能力还不够完善,主要是调试工具不是 特别强。在界面的设计、信息的组织、代码的维护和重用方面也不够成熟。例如在a s p 开发工具中,很少有工具支持a s p 程序的代码调试功能,所以开发人员常常要手动编写 代码后,手动进行调试和测试,出现问题除非是原始的开发人员,否则其它人很难找出 错误,并及时的进行修复。 ( 3 ) 系统性能 在以i j 端为主的c s 结构中,客户机每次数据处理都要与服务器建立连接并进行数 据传输,因此客户机与服务器之间的数据传输频繁,网络负担较重,同时也降低了系统 的性能。而在以后端为主的c s 结构中,网络传输量得到了降低,但加重了服务器的负 担,系统对服务器的内存、c p u 处理能力等要求较高。三层c s 结构尽管避免了服务器 的瓶颈问题,但应用服务器和数据库服务器之间的数据传输量仍与以d f 端为主的c s 结 构一样,而且客户机的每次数据处理还增加了一次中间处理过程。因此,在c 届结构的 系统中,系统性能更多地取决于具体应用,同种结构对于不同应用可能有较大的差别闭。 b ,s 结构的系统性能主要取决了网络速度。因为b s 结构的系统一般运行于i n t e m e t 上, 而目前i n t e m e t 的速度还远比不上局域网的速度,因此,b s 结构的系统性能一般都低于 c s 结构的系统。 ( 系统可维护性 由于c s 结构中每个客户端都安装了独立于服务器的客户端应用程序,因此每次系 统升级都要重新安装所有客户端上的应用程序,使得维护工作非常繁重。同时,c s 结 北京科技大学硕士学位论文 构的系统的任何部分发生修改都会导致整个系统的修改,需要重新编译并在每个客户 端重新安装程序,使得系统可维护性较差。b 搭结构的可维护性要好得多首先,b $ 结 构中,应用处理都放在了后端的w e b 服务器上,所有客户端的界面都是浏览器,因此 在系统升级时只需更新w e b 服务器上的程序,客户端不需作任何修改。其次,b 届结构 的表示层、应用层和数据层之间独立性高,要修改系统功能时,只需要扩充w e b 服务 器上的应用层即可,基本上不会影响客户端和数据库服务器。 ( 习信息安全性 c 器一般面向的用户群范围比较固定,所以相对b 落结构来说信息的安全控制能力 很强。一般高度机密的信息系统比较适宜使用( 裕结构。b 届的用户群范围比较广,对 安全的控制能力相对比较弱,它一般适用用来发布公开的信息。不过随着计算机的安全 认证技术和授权使用技术的不断发展,这几年来b 幅结构的系统也得到了广泛的使用。 但是系统技术情况下a s 的安全性较之b s 结构的安全性要好得多。 ( 6 ) 系统可移植性 c s 系统一般都具有专用性,其采用的标准一般只是内部的标准,不具有通用性, 这也使得c s 结构的应用系统很难移植。而b 播系统在可移植性方面要好得多。这尾因 为b ,s 系统的客户端主要是遵循 哪协议标准的浏览器,因此客户端可以自由地选择 不同的浏览器,包括不同平台上的浏览器。 2 5b 岱和c 塔混合型结构研究 2 5 1混合型结构的起源 在实际应用中,越来越多的软件工程师发现无论是传统的c s 结构还是后起的b s 结构都并非十全十美,都有美中不足之处。概括起来说,c 搭结构一般是基于局域网l a n 环境的。数据传输采用t c p 1 1 ,协议,具有较强的数据操纵和事务处理能力,对能较好地 保障数据安全性。虽然c $ 结构由两层到三层( 多层) 性能大有提高,但仍有一些缺点, 如:处与局域网内具有封闭性,不适宜使用的终端分布松散的需求中;开发成本高、硬 件成本也较高、兼容性差、客户端仍然需要安装,维护不易、升级困难、用户界面不统 一等等。而b s 结构则具有更大开放性和通用性。b 届结构的客户端软件简化到只需要 安装一个统一的浏览器软件,简单易行且极大方便了网络管理。b s 结构它不仅易于维 护、开发成本低、培训成本大大下降、而且保护企业的原有投资,更具有扩展性好、移 植性强、最大程度地实现资源共享等诸多优点。b $ 结构系统采用t c p i p 协议和h 兀p 协议, r t t r p 协议的格式是h 眦l 文本形式,传输量大,会影响系统的效率;另外,以 文本格式传输,除非进行严格的信息加密,否则信息系统的安全性难以保证【揸】。 北京科技大学硕士学位论文 由此可见,b s 和c s 是各有千秋。随着分布式应用系统规模的日渐庞大,运行的 硬件环境日渐多样化以及用户需求日益复杂化,产生了一种同时具备c s 和b s 两种结 构优点的新的软件体系结构吲s 和b s 混合的软件体系结构。这种c s 和b s 混合 的软件体系结构,将c 搭和b s 结构融于一体,不仅发挥了c s 结构事务处理能力强效 而且利用了b s 结构的分散灵活的特点。c s 和b 届混合结构系统如图2 6 所示。 图2 6 混合型软件体系结构图 由图2 6 可见,这种混合式系统的体系结构是可以容纳不同地域、不同网络结构的, 采用不同应用程序开发工具开发的,在功能上相对独立的子系统。混合结构的构造原则 及技术实现丁f 是基于上述b s 模式的先进性和c s 模式的成熟性。这种运行模式将c s 和b s 模式融于一体,不仅发挥了c s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电站高压试验操作工规程
- 2025-2026学年湖南省怀化市初中生物七年级期末下册高分预测素养提升题(附答案)
- PCN制程变更通知专项考试题(含详细答案)
- 事故善后及家属安抚工作方案
- 内蒙古鄂尔多斯市达拉特旗第十二中学2027届数学八年级第一学期期末统考模拟试题含解析
- 2025-2026学年湖北省恩施市初中历史八年级期末上册自测黑金考题(附答案)
- OT运维技术考核试题(含详细答案)
- OpenStack 高频面试题及详细答案(实战版)
- 危化油墨清洗剂管理员规程
- 空分装置加温解冻操作工规程
- 大数据技术毕业论文
- 脑梗死2025诊疗指南
- 中免集团面试题目及答案
- 【人教pep版】六年级英语阅读理解50题篇训练题(含答案解析)
- 化工液氨充装质量保证手册
- 教育部《2025年“校园餐”专项整治》专题培训
- 上课课件-《食品物流学》(和东芹)
- 《椭圆的几何性质》第1课时名师课件
- JBT 6434-2024 输油齿轮泵(正式版)
- 金工实训-车工
- 万历十五年读书报告
评论
0/150
提交评论