软件体系结构ppt课件_第1页
软件体系结构ppt课件_第2页
软件体系结构ppt课件_第3页
软件体系结构ppt课件_第4页
软件体系结构ppt课件_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1,第12章软件体系结构,讲授:董兰芳研究方向:科学计算可视化图形、图像处理模式识别Telephonemail:lfdongHomepage:,2,内容,软件体系结构奠基于程序算法、数据结构和对象设计,它是系统实施的抽象描述。体系结构概括了整体系统结构、功能部件分解、部件本质和特性、部件的界面、部件之间的通讯协议和整体性布局策略及法则。良好的软件系统,必须有合理健全、内在一致的体系结构。了解软件体系结构可以帮助各种不同背景的人(包括技术人员、用户或客户、项目管理人员、投资者等)共同就系统的总体性质和要求作讨论分析,从而对将要诞生的系统取得共识。,3,软件体系结构流程处理系统层次结构客户机/服务器系统集群系统代理聚合和联邦体系结构的样式,内容,4,12.1软件体系结构,软件体系结构定义了软件的布局和总体计算部件的构成,以及这些部件(组件)之间的相互作用关系。部件包括诸如客户、服务器、数据库、程序包、过程、子过程等一切软件的组成成分。相互作用关系包括过程调用、共享变量访问、消息传递等。相互作用也包括具有十分复杂的语义和构成的关系,诸如客户/服务器的访问协议、数据库的访问协议、网络传输协议、异步事件的映射等。在系统的功能需求方面,体系结构还表达了系统需求和构成之间的对应关系,这为系统的设计提供了分析和评价的依据。在系统宏观层面上,人们所关心的是系统的非功能性需求方面的内容,诸如容量、数据吞吐量、一致性、兼容性、安全性、可靠性等,这些在体系结构中也都表达了出来。,5,12.1软件体系结构,体系结构设计与程序设计之间的侧重点不同。作体系结构设计时,主要关心的是各部件的协作、系统的总体性能、伸缩扩展能力等。在程序设计时,则集中注意一个部件、界面或子系统内的详情。体系结构的重要性在于它决定了一个系统的主体结构、宏观特性和具有的基本功能及其特性。大型建筑物设计成功的关键首先在于主体结构。同样,复杂软件设计的成功与否在于软件系统的宏观上层结构设计的正确和合理性。,6,12.1软件体系结构,软件体系结构的作用可以表现在软件设计开发的各阶段。在项目规划阶段,粗略的体系结构是进行项目可行性、工程复杂性、工程进展、投资规模、风险预测等重要根据。在项目需求阶段,需要从需求出发建立更深入的体系结构描述,这时的体系结构,是开发商和客户之间进行需求交互的表达形式,也是交互所产生的结果。通过它,可以准确地表达用户需求,以及设计对应需求的解决方法,并考察终结系统的各项性能。在项目设计阶段,需要从实现角度对体系结构进行更深入的分解和描述。在项目实施阶段,体系结构的层次和部件是建立开发人员的组织和分工、协调开发人员关系的依据。,7,12.1软件体系结构,在项目的评估阶段,体系结构是性能测试和评价的依据。在项目维护和升级阶段,对软件的任何扩充和修改都需要在体系结构的指导下进行,以维护整体设计的合理性和正确性以及性能的可分析性,并为维护升级的复杂性和代价分析提供依据。,8,12.1软件体系结构,熟悉体系结构样式可以有如下好处:把某一体系结构的总体性质和不同背景的人分享。反复把体系结构的结构和样式,应用在不同系统和环境中。比较不同的体系结构,根据其长短处,作出总体性的决策。,9,12.1软件体系结构,常见的软件体系结构的样式有:流程处理系统(pricedutalprocessingdiagram)。客户机/服务器(client/server)系统。层次系统(layeredsystem)。多级系统(multi-tiersystem)。集群(clustering)。代理(agent)。聚合(aggregate)和联邦体系(federation)。,10,内容,软件体系结构流程处理系统层次结构客户机/服务器系统集群系统代理聚合和联邦体系结构的样式,11,12.2流程处理系统,流程处理系统(proceduralprocessingsystem)以程序算法和数据结构为中心,像输送或过滤器般处理数据。每一个处理过程中,先接受输入数据,对他们进行处理(过滤),最后产生输出数据。,流程处理系统的例子,12,12.2流程处理系统,流程处理系统的优点如下:系统的总体行为,是各个处理部件的简单组合。只要输入和输出数据合适,处理部件可以在不同系统中重复使用。只要增加新的处理部件,系统可以很容易地扩展。系统可以在大规模并行计算机中运行,解决复杂的工程技术和科研难题。流程处理系统有如下缺点:它主要以一个批量处理的方式运行,不太适合交互式应用。当有大量和不同方式的输入和输出数据时,对数据的管理比较困难。,13,12.2流程处理系统,流程处理系统的软件体系结构,14,12.2流程处理系统,人脸动画的流程,15,内容,软件体系结构流程处理系统层次结构客户机/服务器系统集群系统代理聚合和联邦体系结构的样式,16,12.3层次结构,所谓层,就是一个部件或结点中的一组对象或函数,它们同心协力,提供一定范畴的服务。层状系统则是带有这些分组或层的软件系统,它常见于服务器中,里层给外层提供服务。,有三个层的结构,17,12.3层次结构,层状系统有如下优点:在部件或结点中分设层有助把复杂的问题按功能分解,使整体设计更为清晰。由于内层与外界隔绝,内层函数和服务受到有效的控制,只有界面层的对象作为界面类向外界公开。新的运算可以在界面层引入,它们把内层(核心或持久)的一些运算合起来。如果界面合适,某一个层反复用在不同地方。一个自成一体的层,也可以作为部件或结点使用。层状系统体系结构有如下缺点:层的个数多时,系统性能就会下降。因为界面函数可能通过好几层,才能到达某一内层。标准化的层界面可能变得臃肿,降低函数调用的性能。,18,12.3层次结构,层次结构的操作系统,19,内容,软件体系结构流程处理系统层次结构客户机/服务器系统集群系统代理聚合和联邦体系结构的样式,20,12.4客户机/服务器系统,PC机的出现给应用程序模型的发展带来了巨大的推动力,这时出现了客户机/服务器模式的应用程序,即应用程序的代码和资源被明确的划分为客户端和服务器端。因为PC机有了一定的处理能力,在大型机上实现的的用户界面和部分事务逻辑被移到PC机上运行(将这种PC机端的代码称为应用程序客户端),而大型机则提供部分事务逻辑处理和数据存取的功能(将这种大型机端的代码称为应用程序服务器端)。随着PC机处理能力在逐渐加大,客户端执行的任务逐渐增多,这时对服务器端的硬件要求也在逐渐地降低。,21,12.4.1视图控制模型MVC,用户界面,特别是图形用户界面,承担着向用户显示问题模型和与用户进行操作和输入/输出交互的作用。用户希望保持交互操作的稳定性,但更希望根据需要改变和调整显示的内容和形式。例如,要求支持不同的界面标准或得到不同的显示效果,适应不同的操作需求。这就要求界面结构能在不改变软件的功能和模型情况下支持用户对界面构成的调整。要做到这一点,就必须使软件的计算模型独立于界面的构成。模型视图控制器(MVC)就是一种交互界面的结构组织模式。MVC是20世纪80年代发展起来的一种面向对象的模型,核心在于数据与表示的分离。在MVC模型中,应用程序分为三个组成部分:模型(Model)、视图(View)、控制器(Controller)。,22,12.4.1视图控制模型MVC,模型这是整个模型的核心,它表示的是解决方案空间的真正的逻辑。视图这是用户界面部分,与Web应用程序一样,主管应用程序与人之间的接口。控制器该部分是用户界面与模型的接口。,23,12.4.1视图控制模型MVC,MVC模式有如下优点:可以为一个模型在运行时建立和使用多个视图,模型数据的改变,可以播放到所有的视图,使它们的显示与模型同步。可以根据需求动态地更换视图和控制器对象。可以把一个模型独立地移植到新的工作平台。模型和各个视图可以独立测试,方便整体的调试。MVC模式也有自身的缺点。例如:增加了系统结构和实现的复杂性。视图与控制器间连接过于紧密。视图对模型数据访问的效率低。很多高级的界面工具或构造器不支持MVC模式。,24,12.4.1视图控制模型MVC,时钟的MVC模式,25,12.4.2两层的客户机/服务器结构,根据事务逻辑在客户端和服务器端分配的不同,该种模型有几种形式。事务逻辑完全配置在服务器端。事务逻辑完全配置在客户机端。服务器端和客户机端都配置有事务逻辑。,调整两层客户/服务器应用模型的三种形式,26,12.4.3“瘦”客户机和对象标志,“瘦”(thin)客户机就是Web浏览器(webbrowser)和web服务器(WebServer)的结构。虽然浏览器软件占用很多的字节的磁盘空间,它仍然被认为是“轻便”(thin)的。,Web服务器和客户机的通讯,27,12.4.4基于MVC的网上应用,模型视图控制器(MVC)构架,是建立网上应用行之有效的方案,虽然细节各异,其精神都是数据与展示分离。MVC架构在网上应用有如下特征:模型方面,由Web服务器的数据集(DataSet)或其他类似对象定义,该对象由服务器的控制器对象构造,其数据来自背后的数据库或其他对象。视图方面,则由样本网页定义,其中带有一些变量。该网页与控制器对象完全分离,也可能含有在客户机一端执行的控制程序。控制器主要是在服务器里面,它按客户机的请求做出反应,调用其他对象处理要求,并把样本网页的变量以数据代替,最后把网页送回客户机,辅助控制器也可以脚本程序形式出现在样本网页中,用来查证用户输入格式,安排视图形式等。,28,12.4.4基于MVC的网上应用,使用MVC架构的网上应用,29,12.4.5三层客户机/服务器模型,三层客户/服务器应用模型,在三层的应用程序模型中,事务逻辑与用户界面和数据存取明显地分离出来,将客户端的用户界面与服务器端数据存取隔离开来,极大地改善了应用程序的可维护性。注意,虽然最常用的多层客户/服务器模型是三层模型,但是,现在已经出现了将事务逻辑层和数据存取层增加的趋势。更多更细的分层不但提高了系统的维护性能,同时也增加了系统的重用性和与分布式系统概念融合的可能性。,30,12.4.5三层客户机/服务器模型,例EDI-SEVER的体系结构图,31,12.4.6多层客户机/服务器模型,多层系统有如下好处:()因为系统的功能分布在几个级或服务器上,系统维修和扩展都比较容易。()从底层到高层,可以分级控制,对不同级的客户机提供不同水平的服务。()方便企业水平的整合。通常的作法是把中间级与企业的其它系统连接起来。()多层系统可以扩充,以服务大量同时使用系统的客户机。多层系统有以下的缺点:()各对客户机/服务器之间可能有多种不同的通讯协议。()由于数据要行经多级结点,而各个结点可能在不同的电脑和操作系统中,调试系统的整体性能就很不容易。,32,12.4.7组件对象模型和分布式组件对象技术,组件技术是继模块化、结构化、面向对象的软件开发方法后,发展起来的又一新的软件开发的方法。软件重用一直是信息业界追求的目标,人们一直希望能够象搭”积木”一样”装配”应用程序,模块设计中的模块、面向对象方法中的对象都不能够承担“积木”这种角色。组件对象模型(Componentobjectmodel,简称COM)的概念的提出,使得软件开发朝着这个希望更进一步。COM是一个二进制规范,与源代码、开发平台无关,遵照COM规范,用各种开发工具开发的组件对象之间、组件对象与应用程序之间、甚至运行在不同机器上的组件对象、应用程序之间可以相互通讯和交互。组件对象通过“接口”与应用程序或组件对象交互信息。一旦定义好接口,软件开发者可以根据业务特点选择开发工具,开发一个个组件,这些组件对象可以作为“积木”用来搭建软件。,33,12.4.7组件对象模型和分布式组件对象技术,组件对象模型的目的是程序重构。,COM的本质上仍然是客户机/服务器模式。从COM服务器实际上是组件对象的容器。COM服务器中的组件对象向COM客户提供服务。COM客户通常是EXE,也可能是DLL,甚至就是WINDOWS自己.COM客户一般应独立于COM服务器。当一个客户请求某个COM对象的服务时,客户需要传递一个类的标志符(CLSID),请求WINDOWS去查找组件对象在哪儿,找到以后把接口的指针传递给客户,WINDOWS将从注册表中查找COM服务器的位置并定位一个合适的COM对象。根据COM服务器与COM客户是否运行在同一个进程地址空间,COM服务器分为三类:进程内(In-Process)组件服务器,进程外组件服务器(Out-of-Process),远程服务器(Remote)。,34,12.4.7组件对象模型和分布式组件对象技术,In-Process服务器通常是DLL,它映射到客户的进程地址空间中运行。Out-of-Process或Local服务器通常是EXE,它与COM客户在同一个机器上,但在不同的进程地址空间运行。Remote服务器可以是EXE也可以是DLL,它与COM客户运行在不同的机器上。远程组件已经跨越了机器的边界,如果仍然用COM来描述这种模型显然是不够的。微软扩展了COM模型,推出了DCOM模型(DistributedCOM)。,进程外组件和远程组件,35,12.4.7组件对象模型和分布式组件对象技术,可以认为组件是一个独立的单元,它能够完成一套特定的功能,并具有定义明确的接口。除此之外,组件还应该具有以下的属性:(1)二进制标准。软件组件需要用于二进制级.为使其它公司使用第三方组件销售商的产品,第三方组件销售商不必发行自己的专用源代码.(2)与语言无关性。市场上有许多用于开发软件的语言,一个软件组件应该能够由大量这些语言所使用和创建.(3)位置透明性。正确的基于组件的解决方案的目标之一,是使客户程序与组件能够交互作用,不论组件放在哪里都一样.(4)版本兼容。组件必须可以在不妨碍已有的客户的情况下被升级。,36,12.4.7组件对象模型和分布式组件对象技术,使用组件有如下优点:可管理性。规模经济。明确的相关性。域的专门技术。开发周期短。,37,12.4.8组件与面向对象,与COM所具有的编程特点相比,传统的面向对象的编程具有以下的缺点:语言相关性。没有二进制标准。位置依赖性和缺乏版本兼容。在网络上实现一个分布式的应用程序时,必须虑以下原则:交互频繁的组件应相互靠近。一些组件只能运行在某台特定的计算机或只能在某个特定的位置。组件越小则在分布式就越有灵活性,但同时他们也加大了网络通讯负担。大组件减轻了网络通讯负担,但与小组件相比在分布的灵活性上又受到影响。,38,内容,软件体系结构流程处理系统层次结构客户机/服务器系统集群系统代理聚合和联邦体系结构的样式,39,12.5集群系统,在企业网、园区网还是在广域网如Internet上,业务量的发展都超出了过去最乐观的估计,上网热潮风起云涌,新的应用层出不穷,即使按照当时最优配置建设的网络,也很快会感到吃不消。各个网络的核心部分,其数据流量和计算强度之大,使得单一设备根本无法承担,而如何在完成同样功能的多个设备之间实现合理的业务量分配,使之不致于出现一台设备过忙、而别的设备却未充分发挥处理能力的情况,就成了一个问题,集群概念因此应运而生。要把多层系统扩展,服务大量的客户机,可以用一组服务器结点来联合提供服务,这样的一组服务器称为集群(clustering)。多个服务结点聚集在一起,它们有同样的功能,任意一个都可以为客户机提供服务。,40,12.5集群系统,集群结构示意图,41,12.5集群系统,在实际分配负载时,可采用的方式如下:随机式。任意选择一个结点来担当任务。轮流式。轮流任用结点来做事情。负载平分式。取工作负载最低的结点来做新的任务。负载均衡主要完成以下任务:解决网络拥塞问题,服务就近提供,实现地理位置无关性。为用户提供更好的访问质量。提高服务器响应速度。提高服务器及其他资源的利用效率。避免了网络关键部位出现单点失效。,42,12.5集群系统,DatabaseManagementNode(数据库管理结点),WebServer(网服务器),ThinClient,轻便客户机,BusinessLogicNode(商业逻辑结点),Security(保安),Dispatcher(分配器),43,内容,软件体系结构流程处理系统层次结构客户机/服务器系统集群系统代理聚合和联邦体系结构的样式,44,12.6代理,代理启动以后,就静候客户机的请求。收到请求以后,就做处理,然后给回结果,接着再等候下一个请求。从体系结构的角度,代理可以模拟企业工作流程中的行动者。,45,12.6代理,信息总线(MessageBus),代理,代理,客户机D,代理,数据库,数据库,控制结点,客户机C,客户机B,客户机A,46,12.6代理,代理体系结构的优点:在处理复杂任务时,代理体系结构有高度的灵活性,统筹多个全自动或半自动的代理的活动。系统可用渐进方式建立,并容许从原有系统逐步过渡。由于各组功能分布在不同代理,系统比较容易维修和扩展。系统很容易与多极系统合并使用,伸缩性强,便利企业水平的软件整合。,47,12.6代理,代理体系结构的缺点:由于所有活动都经共用的消息总线传送,保安的问题必须尽早设计解决。但是,如外加密码则使网络负载增加,加密和解密也会影响系统性能。消息总线要有统一的通讯协议,企业的整体计划就必须十分周详。若企业中有旧的遗留系统,就必须另下工夫,让它们与新的通讯协议适配起来。因为事项分布在多个代理处理,系统的性能调试可能比较困难。,48,内容,软件体系结构流程处理系统层次结构客户机/服务器系统集群系统代理聚合和联邦体系结构的样式,49,12.7聚合和联帮,要建立大的企业软件系统,一个方法是把多个相同或相容的结点连接起来,成为聚合(aggregate),由任何一个结点出发,只要有耐心,就可以到达聚合中任何结点。作为企业的软件系统,聚合的结点通过共同的通讯协议(communicationprotocol),分享共有的视图或其他消息。,50,12.7聚合和联帮,n12:Node,n11:Node,n7:Node,n8:Node,n1:Node,n13:Node,n6:Node,n5:Node,n2:Node,n3:Node,n10:Node,n9:Node,把多个相同或相容的结点连接而成的聚合,n4:Node,51,结点升级为“纽”,而每个需纽可以有自己的次结点。次结点只能与区纽连接,而区纽之间则结集成先前讨论的聚合。这样,需纽和次结点就形成一个庞大的联邦体系结构。,12.7聚合和联帮,52,h1:Hub,h2:Hub,h3:Hub,h4:Hub,subnode,subnode,subnode,subnode,subnode,subnode,subnode,subnode,

温馨提示

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

评论

0/150

提交评论