软件体系结构风格(上)

上传人:宝路 文档编号:48364701 上传时间:2018-07-14 格式:PPT 页数:40 大小:490.76KB
返回 下载 相关 举报
软件体系结构风格(上)_第1页
第1页 / 共40页
软件体系结构风格(上)_第2页
第2页 / 共40页
软件体系结构风格(上)_第3页
第3页 / 共40页
软件体系结构风格(上)_第4页
第4页 / 共40页
软件体系结构风格(上)_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《软件体系结构风格(上)》由会员分享,可在线阅读,更多相关《软件体系结构风格(上)(40页珍藏版)》请在金锄头文库上搜索。

1、软件体系结构风格1软件体系结构风格(Style):描述特定系统组织方式的惯用范例, 强调组织模式和惯用范例。组织模式即静态表述的样例,惯用范 例则是反映群众多系统共有的结构和语义。软件体系结构设计的核心问题:能否达到体系结构级的 软件重用;对软件体系结构风格的研究和实践促进了对设计的复用 ,一些经过实践证实的解决方案也可以可靠地用于解决新的问 题。PS:体系结构模式 体系结构惯用描述和体系结构风格是同一个意思目的:展示软件体系结构丰富的选择空间,在此基础上对 风格选择的一些权衡2使用软件体系结构风格的优点:促进设计重用;带来巨大的代码重用;使系统更易于被他人理解;使用标准化的风格有利于系统的互

2、操作性;便于利用特有的体系结分析方法;提供特定风格的可视化。3在体系结构层次上,常出现客户机服务器系统、管道过滤器设计或者分层体 系结构等软件风格术语,这些术语一般与特定的设计方法和符号相关,如面向对象和 数据流等,虽然还没有对体系结构惯用模式实现分类,但是这种分类的轮廓已开始出 现,如下部分主要种类: 4软件体系结构风格是反复出现的组织模式和习惯用法,是对 一系列体系结构设计的抽象;软件体系结构风格是描述某一特定应用领域中系统组织方式 的惯用模式。体系结构风格定义了一个系统家族,即一个体 系结构定义一个词汇表和一组约束;词汇表包括一些构件和连接件,约束指出系统如何将这些构 件和连接件组合起来

3、;一个软件体系结构风格定义了构件和连接件类型 的符号集,以及规定它们怎样组合起来的约束集合。5讨论体系结构风格时要回答的问题:设计词汇表是什么?构件和连接件的类型是什么?可容许的结构模式是什么?基本的计算模型是什么?风格的基本不变性是什么?其使用的常见例子是什么?其优缺点是什么?体系结构风格最关键的四个要素:提供一个词汇表、 定义一套配置规则、定义一套语义解释原则和定义对基 于这种风格的系统所进行的分析。分析7种通用的风格6Garlan和Shaw对通用体系结构风格的分类:(1)数据流风格:批处理序列、管道/过滤器(2)调用/返回风格:主程序/子程序、面向对象系统、多级 分层(3)独立构件风格:

4、进程通讯、事件系统;(4)虚拟机风格:解释器、基于规则的系统;(5)知识库风格:数据库系统、超文本系统、黑板系统PS: 知识库风格也称为数据中心系统或仓库系统7经典软件体系结构管道和过滤器 数据抽象和面向对象组织 基于事件的隐式调用 分层系统 知识库 模型-视图-控制器(MVC)风格 解释器风格 客户/服务器风格(C/S) 三层C/S结构风格 浏览器/服务器风格(B/S)8管道和过滤器(PIPES AND FILTER)o产生于UNIX操作系统,适用于对有序数据进行 一系列已经定义的独立计算的应用程序;o每个构件(过滤器)都有一组输入和输出,构件 读输入的数据流,经内部处理,产生输出数据 流;

5、o连接件位于过滤器之间,起到信息流导管的作 用,称为管道;o管道和过滤器系统的输出的正确性不依赖于过 滤器的递进处理顺序。 9o管道过滤器通用结构:过滤器是一个独立实体,其间无需共享状态管线(Pipelines):限制系统的拓扑结构只能是过滤器的线性序列 有界管线(Bounded Pipes):限制了在管道中能容纳的数据量 类型定义管道(Type Pipes):明确定义在两个过滤器间的数据类 型 10o管道和过滤器风格的例子:UNIX的shell程序,如命令:cat file | grep xyz | sort | uniq out 在文件file中查找包括xyz的行 排序 去掉重行 输 出到

6、out文件中;编译器:词法分析 句法分析 语义分析 代码生 成。11o管道和过滤器的实现:将系统任务分成几个独立的处理阶段;定义每个管道传输的数据格式;决定管道的连接;设计和实现过滤器;设计出错处理;建立处理流水线。12o管道和过滤器的优点:每个过滤器都是独立的整体,相互之间的状态互 不影响;只要具备输入条件即可独立地完成自己 的处理支持功能模块的重用;过滤器并不知道它的上游 和下游的过滤器的特性;它的设计和实现不会对 与它相连的过滤器加以限制。系统容易维护和扩展支持某些特定的分析,如吞吐量和死锁检测并发性13o管道和过滤器的缺点:管线或流水线(Pipe Line):过滤器严格限制为 单输入、

7、单输出类型,系统拓扑结构只能是线性 序列;交互性比较弱兼容性相对弱;维持两个相对独立但又存在某种 关系的数据流之间的通信可能比较困难;有名管道:在过滤器之间通过有名的管道来进行 数据传送,增加了解析或反馈工作,从而降低系 统的效率。14数据抽象和面向对象组织o建立在数据抽象和面向对象的基础上,数据表示方 法及其相应操作被装到一个抽象数据类型(对象)中 ;o对象(构件)负责保持资源的完整性,对象通过函 数和过程调用(连接件)来交互;o适用于以相互关联的数据实体的标识和保护为中心 问题的应用程序。15面向对象风格的优点: 封装:对象具有信息隐藏特性,内部结构对外不可见; 继承:从具有通用特征的对象

8、开始,逐渐定义更具体对象多态:不同类型的 对象可以对相同的激励做出不同的响应16PS: 数据抽象是特殊化的面向对象风格:ADT (Abstract Data Type)只有封装特点,没有继承和多态的特点。面向对象风格的缺点:1、对象调用过程中必须要知道对象的标识,只要一个对象的 标识改变,就必须修改所有其他明确调用它的对象。2、同时要修改每一个引用了这个模块的“导入”列表,这样会 带来不可预料的副作用。17基于事件的隐式调用o基于事件(Event-Based)的风格又称为隐式调用(Implicit Invocation)风格,构件不直接调用一个过程,而是触发或 广播一个或多个事件,由系统调用为

9、这一事件注册的其他 构件的过程;o每个构件的接口不仅提供一个过程的集合,也提供一个事 件的集合;一个构件可注册多个事件,一个事件可触发对 多个构件过程的调用;o适用于涉及低耦合构件集合的应用程序,如在用户界面系 统中管理数据,在数据库管理系统中确保数据的一致性, 在编辑器中支持语法检查。18o隐式调用风格的优点为软件重用提供了强大的支持为改进系统带来了方便o隐式调用风格的缺点构件放弃了对系统计算的控制数据交换的问题既然过程的语义必须依赖于被触发事件的上下文约束 ,关于正确性的推理存在问题19分层系统o系统组织为层次结构,每一层为上层提供服务,作为下层的客 户,通常不允许跨层交互;o适应于可以按

10、照层次结构来组织不同类别的相关服务的应用程 序;o系统中构件在一些层实现了虚拟机的功能;o连接件通过决定层间如何交互的协议来定义,拓扑约束包括对 相邻层间交互的约束;o如分层通信协议,每一层提供一个抽象的功能作为上层通信的 基础,最低层只定义硬件物理连接。20例:ISO的OSI/RM (Open Systems Interconnection Reference Model) 7层模型21o分层系统的实现:为分层定义抽象准则,定义抽象层次;给每一层命名并指定它们的任务和提供的服务;为每个层定义接口、实现独立的层;确定相邻层通信、降低相邻层的耦合程度;设计错误处理策略。22o基于微内核模式构建的

11、Windows NT系统:系统服务层:子系统与NT执行程序间的接口层;资源管理层:包括对象管理、安全引用监视、进程管 理、I/O管理、虚拟存储管理、局部过程调用等模块 ;内核:负责基本功能,如中断和异常处理,多处理器 同步,线程调度;硬件抽象层:隐藏不同处理器系列机器间硬件的差异 ;硬件层;o非严格分层结构,内核和I/O管理需要直接访问硬件。23o分层系统风格的优点可以把一个复杂系统按递增的步骤进行分解支持功能强,因为每一个层至多和相邻的上下层交互,因此功 能的改变最多影响相邻的上下层。支持重用,定义一组标准接口允许各种不同的实现方法。o分层系统风格的缺点层次的划分不太容易很难找到一个合适的、

12、正确的层次抽象方法 24知识库o适用于无确定性求解策略的问题:实践中许多复杂问 题难以用数学精确地描绘和严格地分析,如医疗诊断 、法律推理、军事分析等;o解决方法依赖于积累了人类知识和经验的知识库;o知识库风格的体系结构由两种构件组成:一个中央数据结构,表示系统当前状态;一个独立构件的集合,对中央数据结构进行操作。25o对于系统中数据和状态的控制方法分两种:由输入事务选择进行何种处理,并把执行结果作为当 前状态存储到中央数据结构中,知识库为传统的数据 库型知识库;由中央数据结构的当前状态决定进行何种处理,知识 库为一黑板体系结构。o黑板反映的一种信息共享的系统,传统应用是 信号处理领域,源于1

13、970s人工智能的自然语 言处理系统HEARSAY-II。26o黑板体系结构模型通常由3部分组成:知识源:包含独立的、与应用程序相关的知识;黑板数据结构:反映应用程序求解状态的数据,按 照与应用程序相关的层次来组织;控制器:一组对公共数据结构进行协同操作的独立 程序集合,由黑板的状态驱动。27o黑板结构实现:定义问题:指出问题的领域、确定系统输入、输出, 细化系统与用户的交互要求;定义问题解空间:确定目标解的构成,列出解决方案 的不同抽象等级,找出能独立工作的完整解的部分解 ;求解过程:如何将低级中间解转换成高等解,定义在 某抽象层上如何进行启发性搜索,定义黑板词汇集, 设计系统控制,实现知识

14、库。黑板系统传统上应用在复杂信号处理解释上,如语音和 模式识别,现代编译器也是以共享信息为基础的28o解释器风格中通常有一个虚拟机,弥合程序语义所期望的与硬件 提供的计算引擎之间的差距o解释器包括正在被解释执行的伪码和解释引擎本身伪码由需要解释的源代码和解释引擎分析所得到的中间代码组成 。解释引擎:语法、解释器的定义和解释器当前执行状态解释器29模型-视图-控制器(MVC)风格o许多应用系统使用图形用户界面,MVC主要用于 处理软件用户界面开发中所面临的问题:用户界面需要经常改变;不同的用户对用户界面的表示和使用有不同的要求;同样的数据希望能以不同的形式显示给用户;o为方便界面修改和移植,应把

15、计算模型和显示模型 独立。30oModel-View-Controller将交互式应用划分为3 种构件:模型:应用程序的核心,封装内核数据与状态;视图:为用户显示模型信息,一个模型可对应多个视图 ;控制器:提供给用户进行操作的接口,每个视图与一个 控制器构件相关联。o例:Microsoft提供的Windows应用程序的文档 视图结构(Document-View Architecture)。31oMVC的实现:分析应用问题,将人机交互从核心功能中分离 开来;设计应用程序的模型构件;设计和实现每个视图;设计和实现每个控制器;创建“可安装”的控制器,增加系统灵活性。32客户/服务器风格(C/S)o客

16、户/服务器风格(Client/Server):数据和处理分布在 一定范围内的多个构件上,构件通过网络连接。o特征:服务器构件:向多个客户提供服务,永远处于激活状 态,监听用户请求;客户构件:向服务器构件请求服务;连接件:某种通信机制,通常是基于RPC (Remote Procedure Call protocol )的交互协议;理解情况下,访问是透明的。33o服务器负责有效地管理系统的资源:数据库安全性的要求;数据库访问并发性的控制;数据库前端的客户应用程序的全局数据完整性规则;数据库的备份与恢复;o客户应用程序的主要任务:提供用户与数据库交互的界面;向数据库服务器提交用户请求并接收来自数据库服务器的信 息利用客户应用程序对存在于客户端的数据执行应用逻辑要求 。oC/S特点C/S结构将应用一分为二,服务器(后台)负责数据管理,客户机(前台) 完成与用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号