收藏 分享(赏)

第6章体系结构设计.ppt

上传人:cjc2202537 文档编号:1041196 上传时间:2018-06-07 格式:PPT 页数:38 大小:282KB
下载 相关 举报
第6章体系结构设计.ppt_第1页
第1页 / 共38页
第6章体系结构设计.ppt_第2页
第2页 / 共38页
第6章体系结构设计.ppt_第3页
第3页 / 共38页
第6章体系结构设计.ppt_第4页
第4页 / 共38页
第6章体系结构设计.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

1、1,第6章 软件体系结构设计,体系结构设计决策体系结构视图体系结构模式应用体系结构,2,软件设计模型 软件设计是将软件需求转换为软件表示的过程,也是一个建模过程,以一系列迭代的步骤建立不同的视图来描述系统。 主要的设计活动包括: 数据库设计、体系结构设计、接口设计、组件级设计、部署级(Deployment-Level)的设计。,3,6.1 软件体系结构设计决策,软件体系结构相关概念 软件体系结构(Architecture)是有关软件系统如何组织的描述。体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由组件及其相互作用、指导组件集成的模式以及模式的约束组成。,验证卡,输入处理组件,ATM

2、,银行数据库服务器,账户处理组件,ATM系统的软件体系结构(教材图6-15),获取用户账户,验证卡,选择服务,查询账户,更新账户,验证卡,输出处理组件,ATM,打印明细,分发现金,返回卡,4,设计什么样的体系结构取决于问题的应用类型、系统如何分布、使用的体系结构风格(模式)以及体系结构如何文档化和评估。体系结构模型能够用来聚焦关于软件需求和设计的讨论,并且可以用来文档化设计过程以便作为更详细设计、实现和进化的基础。,5,6.2 体系结构视图,当设计和文档化体系结构时,什么样的视图或角度最有效?用什么样的符号来描述体系结构?单个体系结构模型中不可能提出所有相关的信息,每一种模型只能显示系统的一种

3、角度。为了说明系统如何分解,组件如何分布,运行时进程间如何交互,需要提供系统的多重视图。,6,概念视图:系统的高层抽象视图,给出系统的本质内容。逻辑视图:显示了系统中对象类的抽象,通过该视图可将系统需求和实体关联起来。进程视图:显示系统运行时一组交互的进程,对于分析系统的非功能特征很有效。开发视图:为便于开发,将系统分解成可以由独立开发团队实现的组件。物理视图:即部署图,显示了系统硬件和软件组件如何分布在处理器上。不同视图可能会涉及到不同体系结构模式或风格。,需要建立什么样的视图有很多选择,Krutchen和Hofmeister建议以下几种视图:,7,6.3 体系结构模式,体系结构风格(Sty

4、les)是构造的一种模式(Pattern),类似于建筑行业中的建筑风格,是描述某一特定应用域中系统组织方式的惯用模式,是对好的实践经验所做出的格式化的抽象描述(如教材P98图6-2 MVC模式 ),反映了领域中众多系统所共有的结构和语义特性。下图是MVC( Model-View-Controller )模式的概念视图,它是构建基于Web应用系统体系结构的基础。,8,视图修改信息,模型查询和更新,模型编辑信息,用户输入,控制器状态控制器方法,模型状态模型方法,视图状态视图方法,MVC模式,在MVC结构中,模型管理系统中的数据及其操作;视图管理显示数据;而控制器管理用户的交互,并传递这些交互给视图

5、和模型。 该模式分离了系统的组成元素,允许它们被独立地开发与维护,如增加或修改一个视图不需要改变模型底层数据。,9,Browser,Controller管理用户请求模型编辑 选择视图,Model 封装并实现功能 封装内容对象 分类所有的WebApp状态,View 格式化来自模型的数据 状态改变请求模型更新 显示控制器所选择的视图,Client,Server,User request or data,HTML data,View selection,Data,Update request,External data,Behavior request (state change),Web应用系统一

6、般的体系结构,10,研究体系结构风格的意义: 有利于发现不同系统在较高级别上的共同特性。 对体系结构的了解,使得在设计软件结构时选择合适的模式,进行正确地设计。 使用常用的、规范的模式来组织结构,使别的设计者易于理解、便于交流。 有利于较高级别上的软件复用。判断能否在不同的软件系统中使用同一体系结构。 以下根据本教材介绍几种通用的模型:,11,6.3.1 分层体系结构,该模式是实现分离性和独立性的另一个方式。系统的功能被划分成几个独立的层次,最内层完成最基本的公用操作,向外各层逐渐进行功能扩展,各层形成了不同功能级别的虚拟机(Virtual Machine),每层只依赖内层中的虚拟机提供的服务

7、。,12,13,四层式通用软件体系结构,Web浏览器界面,系统登录,表单和查询管理器,打印管理器,分布式搜索,版权管理器,记账处理,文档恢复,图书馆索引,数据库1,数据库2,数据库n,LIBSYS系统的体系结构(教材图6-7),用户界面,用户界面管理身份验证和授权,核心业务逻辑/应用功能 系统适用程序,支持平台(OS、DBMS等),通用分层体系结构(教材图6-6),15,优点: 支持基于抽象程度递增的系统设计,可将一个复杂的系统按功能递增的步骤进行分解。 具有较好的可扩展性。每一层功能的改变最多影响相邻上下层。 支持软件复用。只要提供的服务接口不变,同一层的不同实现可以交换使用。因此可定义一组

8、标准接口,允许有多种不同的实现方法。 不足: 并不是所有系统都会清晰地分层,高层可能直接同底层交互。因为服务请求会在每层中被处理,所以需要多层解释,影响到系统性能。,16,6.3.2 容器体系结构,容器模型是基于一个共享数据库的系统模型,该模型适合于数据由一个组件产生而由其他组件使用的情形。(右图)体系结构为该类型的系统例子如管理信息系统(MIS)、CAD系统、CASE工具集、可复用组件库等。,17,集成的CASE工具集的体系结构 以数据仓库为核心,18,共享容器模型的优缺点:能高效的共享数据,无须在组件之间进行数据交换。组件一定要与容器的数据模型一致。大量信息都按照一致的数据模型生成,进化会

9、变的困难。生产数据的组件不需要关心数据如何被其他组件使用。备份、保密性、访问控制、错误恢复等活动都是容器管理员的职责,客户程序主要集中在自己的功能上。不同的组件对这些活动要求不同,而容器模型迫使所有的组件使用相同的策略。容器中出现问题会影响整个系统。是系统的静态结构,不能展现系统运行时的组织。,19,6.3.3 客户机-服务器体系结构,是分布式系统运行时的组织。该模型主要组成部分是: 一组为其他组件提供服务的服务器。如打印服务器、文件服务器、编译服务器、图片服务器等。 一组向服务器请求服务的客户机,客户机必须知道服务器的名字及它们所提供的服务,通过远程调用使用访问协议(如HTTP)获取服务。在

10、某个时间内可能有多个客户程序在在不同的计算机上并发运行。 一个连接客户机和服务器的网络。 大多数客户机-服务器系统实现为分布式系统,通过互联网的协议连接在一起。 下图展示了影片资料库系统的体系结构。,20,film & picture library系统的体系结构,21,客户机-服务器模型的优缺点,优点:分布式处理,运行角色分布在网络上的不同地点,一般性的功能可以被所有的客户程序使用。添加或更新一台服务器不影响系统的其他部分。不足:性能无法预知,依赖于网络也依赖于系统。当服务器属于不同的机构时,存在着管理方面的问题。,22,6.3.4 管道-过滤器体系结构,系统运行时组织的模型,看作是对相继输

11、入数据的一系列变换。一批数据进入系统,流经一个个组件最后到达终点(输出或数据库)。组件称为过滤器,能够对数据进行渐进式的转换(一种流变换为另一种流)。数据流的通路称为管道。(见下图) 具有该模型的典型应用是UNIX系统,连接进程时用到管道,从一个进程到另一个进程传送文本流。还有的应用例子:如传统的数据处理系统(如票据处理)、传统的编译器(词法分析、语法分析、语义分析、代码生成)、数字通信(传递文字、语音、图片、图像等)系统。,23,24,读票据,确认支付,发出收据,检查支付截止日期,发出支付提醒,票据,支付信息,未支付信息,收据,提醒,管道-过滤器模型实例,25,优点:没有复杂的组件交互。支持

12、软件重用:由管道连接起来的过滤器的组合又可看成一个过滤器,可应用到其他系统中。易于维护:过滤器替换方便。支持并行执行过滤器,但要考虑并行执行时数据流之间的同步问题。缺陷:适用批处理方式,不适合构建交互式应用的系统。如对图形化的用户界面,有复杂的输入输出格式、基于事件的鼠标点击或菜单选择的控制信息,将其转换成与数据流模型兼容的格式是困难的。,26,6.3.5 集中式控制模型,一个组件被指定为系统控制器,负责管理其他组的执行。该模型根据组件是顺序执行还是并发执行又分成两类: 调用-返回模型,自上而下的调用,控制始于控制层次的顶层,往往只有一个控制线程。优点是容易分析与理解系统的控制流。,补充几种体

13、系结构模型(6.3.56.3.7):,27, 管理者模型 适用于描述并发系统。一个组件被指定为系统管理者,它控制其他系统进程的启动、终止和协调。如下图展示了一个实时系统的集中式控制模型:,传感器进程,传动装置进程,计算进程,用户界面,故障处理进程,系统控制器,系统控制器根据状态变量决定什么时候进程应该启动或停止。控制器总是不停的循环,检测传感器和其他进程的事件或状态的变化。,28,6.3.6 基于事件驱动模型-广播模型 在集中式控制模型中,控制决策通常取决于系统的状态变量值。事件驱动模型是通过外部产生的事件来驱动系统。 子系统在事件处理器中注册其感兴趣的事件。当事件处理器检测到事件,查阅事件记

14、录,然后将命令传送给所有与此事件有关的子系统,子系统接收到命令做相应处理。(下图),29,优点:进化较简单。新的子系统通过在事件处理器中注册事件来达到集成。一个子系统可以在不知道其他子系统的名字和位置的情况下激活其他子系统。(隐式调用) 缺点:子系统不知道是否或什么时候事件将会被处理。当一个子系统产生一个事件,它不知道哪个子系统与该事件有关。若多个不同的子系统注册了相同的事件,就会发生冲突。 应用:网络管理系统一般有一个事件服务器,处理被管网络和网管系统内部发生的所有事件。其他的管理工具如故障管理、性能管理和配置管理等工具,作为事件服务器的客户,在服务器上注册与自己有关的事件。当相关事件发生时

15、,相应管理工具的过程自动被调用。,30,6.3.7 正交软件体系结构,正交软件体系结构由组织层(横向)和线索(纵向)的组件构成。层由一组具有相同抽象级别的组件构成。线索是子系统的特例。每一条线索完成整个系统中相对独立的一部分功能。每一条线索的实现与其他线索的实现无关或关联很少,同一层中的组件之间不存在相互调用(正交)。该体系结构的框架如下图所示。,31,优点: (1)结构清晰,易于理解。 (2)易修改,可维护性强。 (3)可移植性强,重用颗粒大。,32,6.4 应用体系结构,前一节介绍的体系结构是应用较多的体系结构模式。应用体系结构的通用模型(封装了该类系统的基本特征)能帮助我们较好地进行应用

16、系统的设计,通过比较相同类型的应用,达到模型或大粒度组件的复用,并能验证应用系统设计的有效性。,33,两种典型的应用类型:,事务处理应用: 以数据库为中心,处理来自客户对信息的请求,更新数据库。如银行系统、电子商务、信息系统、企业资源规划(ERP)系统等。语言处理系统: 如编译器,数据库中对命令语言的翻译等。,34,事务处理系统,事务是为达到某个目标的相关的操作序列。事务处理系统用来处理用户对数据库查询或请求,并对数据库更新的系统。该系统是交互式系统,允许数据库中的信息被多个远程用户异步访问。,输入/输出处理,应用相关逻辑,请求,事务,事务管理器(嵌入DBMS)内,完成信号,DB,事务处理应用

17、的概念体系结构,输出,35,ATM系统的软件体系结构,事务处理系统可以组织成“管道-过滤器”体系结构。该系统由两部分组成: ATM软件:处理用户输入及系统显示输出。 账户处理软件:位于银行数据库服务器上。,验证卡,输入组件,ATM,银行数据库服务器,账户处理组件,获取用户账户,验证卡,选择服务,查询账户,更新账户,验证卡,输出组件,ATM,打印明细,分发现金,返回卡,36,用户计算机上的浏览器,提供应用服务,如现金转帐、生成银行结算单和工资单等,提供数据管理服务,37,6.4.2 信息系统,信息系统涉及到与共享数据库(大信息库)交互,如图书馆书目库、航班时刻表等。,用户界面(UI),用户通信,

18、身份验证,信息检索和修改,事务管理数据库,信息系统体系结构概念模型,Web浏览器(实现用户接口),登录,身份验证,数据表格和菜单管理,数据有效性验证,信息安全管理,病人信息管理,数据导入和导出,报告生成,事务管理和持久数据的存储,MHC-PMS系统的体系结构,38,电子商务系统常用的多层体系结构,表示层: Web服务器负责对所有用户通信,用户接口是Web浏览器实现的。应用逻辑层:应用服务器负责实现与应用相关的逻辑,包括检索请求、业务规则的处理等。如支持“购物车”相关活动,完成一个事务中所有项目的支付。数据层:数据库服务器负责管理数据的存入和检出。,表示层,应用逻辑层,数据管理层,Web服务器 应用服务器 数据库服务器,用户请求,信息请求,数据存取请求,数据存取响应,响应,格式化响应,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报