体系结构设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7
视图状态 视图方法
视图修改信息
控制器状态
控制器方法
用户输入
模型查询和更新
模型状态 模型方法
模型编辑信息
MVC模式
在MVC结构中,模型管理系统中的数据及其操作;视图 管理显示数据;而控制器管理用户的交互,并传递这些交互 给视图和模型。
该模式分离了系统的组成元素,允许它们被独立地开发 与维护,如增加或修改一个视图不需要改变模型底层数据。
设计编辑器 代码生成器
设计翻译器
项目数据仓库
程序编辑器
设计分析器
报告生成器
17
共享容器模型的优缺点: 能高效的共享数据,无须在组件之间进行数据交换。 组件一定要与容器的数据模型一致。大量信息都按照 一致的数据模型生成,进化会变的困难。 生产数据的组件不需要关心数据如何被其他组件使用。 备份、保密性、访问控制、错误恢复等活动都是容器 管理员的职责,客户程序主要集中在自己的功能上。 不同的组件对这些活动要求不同,而容器模型迫使所 有的组件使用相同的策略。 容器中出现问题会影响整个系统。 是系统的静态结构,不能展现系统运行时的组织。
External data Data Update request
View
格式化来自模型的数据 状态改变请求模型更新 显示控制器所选择的视图
Server
Web应用系统一般的体系结构
9
研究体系结构风格的意义: • 有利于发现不同系统在较高级别上的共同特性。 • 对体系结构的了解,使得在设计软件结构时选择 合适的模式,进行正确地设计。 • 使用常用的、规范的模式来组织结构,使别的设 计者易于理解、便于交流。 • 有利于较高级别上的软件复用。判断能否在不同 的软件系统中使用同一体系结构。 以下介绍几种通用的模型:
6
3 体系结构模式
体系结构风格(Styles)是构造的一种模式(Pattern), 类似于建筑行业中的建筑风格,是描述某一特定应用域 中系统组织方式的惯用模式,是对好的实践经验所做出 的格式化的抽象描述(如教材P98图6-2 MVC模式 ), 反映了领域中众多系统所共有的结构和语义特性。
下图是MVC( Model-View-Controller )模式的概念视 图,它是构建基于Web应用系统体系结构的基础。
32
Baidu Nhomakorabea
两种典型的应用类型:
事务处理应用: 以数据库为中心,处理来自客 户对信息的请求,更新数据库。如银行系统、电 子商务、信息系统、企业资源规划(ERP)系统 等。 语言处理系统: 如编译器,数据库中对命令语言 的翻译等。
事件和消息处理器
28
优点:进化较简单。新的子系统通过在事件处理器 中注册事件来达到集成。一个子系统可以在不知道其他 子系统的名字和位置的情况下激活其他子系统。(隐式 调用) 缺点:子系统不知道是否或什么时候事件将会被处 理。当一个子系统产生一个事件,它不知道哪个子系统 与该事件有关。若多个不同的子系统注册了相同的事件, 就会发生冲突。 应用:网络管理系统一般有一个事件服务器,处理 被管网络和网管系统内部发生的所有事件。其他的管理 工具如故障管理、性能管理和配置管理等工具,作为事 件服务器的客户,在服务器上注册与自己有关的事件。 当相关事件发生时,相应管理工具的过程自动被调用。
30
优点: (1)结构清晰,易于理解。 (2)易修改,可维护性强。 (3)可移植性强,重用颗粒大。
31
4 应用体系结构
前一节介绍的体系结构是应用较多的体系结 构模式。 应用体系结构的通用模型(封装了该类系统 的基本特征)能帮助我们较好地进行应用系 统的设计,通过比较相同类型的应用,达到 模型或大粒度组件的复用,并能验证应用系 统设计的有效性。
概念视图:系统的高层抽象视图,给出系统的本质 内容。 逻辑视图:显示了系统中对象类的抽象,通过该视 图可将系统需求和实体关联起来。 进程视图:显示系统运行时一组交互的进程,对于 分析系统的非功能特征很有效。 开发视图:为便于开发,将系统分解成可以由独立 开发团队实现的组件。 物理视图:即部署图,显示了系统硬件和软件组件 如何分布在处理器上。 不同视图可能会涉及到不同体系结构模式或风格。
各个应用的各种变型 应用软件层 各个应用系统 各个组件库系统 (针对特定域、特定业务) 不依赖平台的低层组件等 特定的平台软件:操作系统等
特定业务层
中间件层 系统软件层
13
Web浏览器界面 用户界面 系统登录 用户界面管理 身份验证和授权 表单和查 询管理器 打印管 理器
核心业务逻辑/应用功能
系统适用程序 支持平台(OS、 DBMS等) 通用分层体系结构
25
3.5 集中式控制模型
一个组件被指定为系统控制器,负责管理其他组的执 行。该模型根据组件是顺序执行还是并发执行又分成 两类: • 调用-返回模型 自上而下的调用, 控制始于控制层次 的顶层,往往只有 一个控制线程。优 点是容易分析与理 解系统的控制流。
26
• 管理者模型 适用于描述并发系统。一个组件被指定为系统管 理者,它控制其他系统进程的启动、终止和协调。如 下图展示了一个实时系统的集中式控制模型:
18
3.3 客户机-服务器体系结构
是分布式系统运行时的组织。该模型主要组成部分是: • 一组为其他组件提供服务的服务器。如打印服务 器、文件服务器、编译服务器、图片服务器等。 • 一组向服务器请求服务的客户机,客户机必须知 道服务器的名字及它们所提供的服务,通过远程调用使 用访问协议(如HTTP)获取服务。在某个时间内可能 有多个客户程序在在不同的计算机上并发运行。 • 一个连接客户机和服务器的网络。 大多数客户机-服务器系统实现为分布式系统,通 过互联网的协议连接在一起。 下图展示了影片资料库系统的体系结构。
21
3.4 管道-过滤器体系结构
系统运行时组织的模型,看作是对相继输入数据的一 系列变换。一批数据进入系统,流经一个个组件最后 到达终点(输出或数据库)。组件称为过滤器,能够 对数据进行渐进式的转换(一种流变换为另一种流)。 数据流的通路称为管道。(见下图) 具有该模型的典型应用是UNIX系统,连接进程时用到 管道,从一个进程到另一个进程传送文本流。 还有的应用例子:如传统的数据处理系统(如票据处 理)、传统的编译器(词法分析、语法分析、语义分 析、代码生成)、数字通信(传递文字、语音、图片、 图像等)系统。
2
1 软件体系结构设计决策
软件体系结构相关概念 软件体系结构(Architecture)是有关软件系 统如何组织的描述。体系结构为软件系统提供了一 个结构、行为和属性的高级抽象,由组件及其相互 作用、指导组件集成的模式以及模式的约束组成。
输入处理组件 获取用户账户· 验证卡 验证卡 选择服务 ATM 银行数据库服务器 账户处理组件 输出处理组件 打印明细 分发现金 验证卡 返回卡 ATM
29
3.7 正交软件体系结构
正交软件体系结构由组织层(横向)和线索(纵向) 的组件构成。
层由一组具有相同抽象级别的组件构成。线索是子系 统的特例。每一条线索完成整个系统中相对独立的一 部分功能。每一条线索的实现与其他线索的实现无关 或关联很少,同一层中的组件之间不存在相互调用 (正交)。 该体系结构的框架如下图所示。
分布式 搜索
文档 恢复
版权管 理器
记账 处理
图书馆索引 数据库1 数据库2
…
数据库n
LIBSYS系统的体系结构
14
优点: • 支持基于抽象程度递增的系统设计,可将一个复杂 的系统按功能递增的步骤进行分解。 • 具有较好的可扩展性。每一层功能的改变最多影响 相邻上下层。 • 支持软件复用。只要提供的服务接口不变,同一层 的不同实现可以交换使用。因此可定义一组标准接口, 允许有多种不同的实现方法。 不足: 并不是所有系统都会清晰地分层,高层可能直接同 底层交互。因为服务请求会在每层中被处理,所以需要 多层解释,影响到系统性能。
19
film & picture library系统的体系结构
Client 1 Client 2 Client 3 Client 4
Wide - bandwidth network
Catalogue server Catalogue
Video server Film clip files
Picture server Digitized photographs
8
Controller
管理用户请求 模型编辑 选择视图
User request or data Browser
View selection
Behavior request (state change)
Model
封装并实现功能 封装内容对象 分类所有的 WebApp状态
Client
HTML data
3
查询账户 更新账户
ATM系统的软件体系结构
设计什么样的体系结构取决于问题的应用类 型、系统如何分布、使用的体系结构风格 (模式)以及体系结构如何文档化和评估。 体系结构模型能够用来聚焦关于软件需求和 设计的讨论,并且可以用来文档化设计过程 以便作为更详细设计、实现和进化的基础。
4
2 体系结构视图
15
3.2 容器体系结构
容器模型是基于一个 共享数据库的系统模 型,该模型适合于数 据由一个组件产生而 由其他组件使用的情 形。(右图) 体系结构为该类型的 系统例子如管理信息 系统(MIS)、CAD 系统、CASE工具集、 可复用组件库等。
16
集成的CASE工具集的体系结构 以数据仓库为核心
22
23
支付信息 发出收据 票据
收据·
读票据
确认支付 检查支付 未支付信息 截止日期 发出支付 提醒
提醒
管道-过滤器模型实例
24
优点: 没有复杂的组件交互。 支持软件重用:由管道连接起来的过滤器的组合又可 看成一个过滤器,可应用到其他系统中。 易于维护:过滤器替换方便。 支持并行执行过滤器,但要考虑并行执行时数据流之 间的同步问题。 缺陷: 适用批处理方式,不适合构建交互式应用的系统。如 对图形化的用户界面,有复杂的输入输出格式、基于 事件的鼠标点击或菜单选择的控制信息,将其转换成 与数据流模型兼容的格式是困难的。
传感器进程
传动装置进程
系统控制器
计算进程
用户界面
故障处理进程
系统控制器根据状态变量决定什么时候进程应该启 动或停止。控制器总是不停的循环,检测传感器和其他进 程的事件或状态的变化。
27
3.6 基于事件驱动模型-广播模型
在集中式控制模型中,控制决策通常取决于系统的状态 变量值。事件驱动模型是通过外部产生的事件来驱动系统。 子系统在事件处理器中注册其感兴趣的事件。当事件处 理器检测到事件,查阅事件记录,然后将命令传送给所有与 此事件有关的子系统,子系统接收到命令做相应处理。(下 图) 子系统 1 子系统 2 子系统 3 子系统 4
Hypertext server Hypertext web
20
客户机-服务器模型的优缺点
优点: 分布式处理,运行角色分布在网络上的不同地点, 一般性的功能可以被所有的客户程序使用。 添加或更新一台服务器不影响系统的其他部分。 不足: 性能无法预知,依赖于网络也依赖于系统。 当服务器属于不同的机构时,存在着管理方面的问 题。
软件系统体系结构设计
体系结构设计决策 体系结构视图 体系结构模式 应用体系结构
1
软件设计模型 软件设计是将软件需求转换为软件表示的 过程,也是一个建模过程,以一系列迭代的步 骤建立不同的视图来描述系统。 主要的设计活动包括: 数据库设计、体系结构设计、接口设计、 组件级设计、部署级(Deployment-Level)的 设计。
当设计和文档化体系结构时,什么样的视图或 角度最有效? 用什么样的符号来描述体系结构? 单个体系结构模型中不可能提出所有相关的信 息,每一种模型只能显示系统的一种角度。 为了说明系统如何分解,组件如何分布,运行 时进程间如何交互,需要提供系统的多重视图。
5
需要建立什么样的视图有很多选择, Krutchen和Hofmeister建议以下几种视图:
10
3.1 分层体系结构
该模式是实现分离性和独立性的另一个方式。 系统的功能被划分成几个独立的层次,最内层 完成最基本的公用操作,向外各层逐渐进行功 能扩展,各层形成了不同功能级别的虚拟机 (Virtual Machine),每层只依赖内层中的虚 拟机提供的服务。
11
12
四层式通用软件体系结构