软件体系结构Chap03_风格(上)探讨.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 软件体系结构风格 § 3.1 概述 § 3.2 经典软件体系结构风格 § 3.3 公共对象请求代理体系结构 § 3.4 正交体系结构 § 3.5 基于层次消息总线的体系结构风格 § 3.6 异构结构风格 § 3.7 互联系统构成的系统及其体系结构 § 3.8 面向体系结构的架构(SOA) §3.1 概述 软件体系结构风格(Style):描述特定系统组织方式的惯用范例,强调组织模式和惯用范例。组织模式即静态表述的样例,惯用范例则是反映群众多系统共有的结构和语义。 软件体系结构设计的核心问题:能否达到体系结构级的软件重用; 对软件体系结构风格的研究和实践促进了对设计的复用,一些经过实践证实的解决方案也可以可靠地用于解决新的问题。 使用软件体系结构风格的优点: 促进设计重用; 带来巨大的代码重用; 使系统更易于被他人理解; 使用标准化的风格有利于系统的互操作性; 便于利用特有的体系结分析方法; 提供特定风格的可视化。 在体系结构层次上,常出现客户机-服务器系统、管道过滤器设计或者分层体系结构等软件风格术语,这些术语一般与特定的设计方法和符号相关,如面向对象和数据流等,虽然还没有对体系结构惯用模式实现分类,但是这种分类的轮廓已开始出现,如下部分主要种类: 软件体系结构风格是反复出现的组织模式和习惯用法,是对一系列体系结构设计的抽象; 软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束; 词汇表包括一些构件和连接件,约束指出系统如何将这些构件和连接件组合起来; 讨论体系结构风格时要回答的问题: 设计词汇表是什么? 构件和连接件的类型是什么? 可容许的结构模式是什么? 基本的计算模型是什么? 风格的基本不变性是什么? 其使用的常见例子是什么? 其优缺点是什么? 体系结构风格最关键的四个要素:提供一个词汇表、定义一套配置规则、定义一套语义解释原则和定义对基于这种风格的系统所进行的分析。 分析7种通用的风格 Garlan和Shaw对通用体系结构风格的分类: (1)数据流风格:批处理序列、管道/过滤器 (2)调用/返回风格:主程序/子程序、面向对象系统、多级分层 (3)独立构件风格:进程通讯、事件系统; (4)虚拟机风格:解释器、基于规则的系统; (5)知识库风格:数据库系统、超文本系统、黑板系统 §3.2 经典软件体系结构 3.2.1 管道和过滤器 3.2.2 数据抽象和面向对象组织 3.2.3 基于事件的隐式调用 3.2.4 分层系统 3.2.5 知识库 3.2.6 模型-视图-控制器(MVC)风格 3.2.7 解释器风格 3.2.8 客户/服务器风格(C/S) 3.2.9 三层C/S结构风格 3.2.10 浏览器/服务器风格(B/S) 3.2.1 管道和过滤器(PIPES AND FILTER) 产生于UNIX操作系统,适用于对有序数据进行一系列已经定义的独立计算的应用程序; 每个构件(过滤器)都有一组输入和输出,构件读输入的数据流,经内部处理,产生输出数据流; 连接件位于过滤器之间,起到信息流导管的作用,称为管道; 管道和过滤器系统的输出的正确性不依赖于过滤器的递进处理顺序。  管道过滤器通用结构: 过滤器是一个独立实体,其间无需共享状态 管线(Pipelines):限制系统的拓扑结构只能是过滤器的线性序列 有界管线(Bounded Pipes):限制了在管道中能容纳的数据量 类型定义管道(Type Pipes):明确定义在两个过滤器间的数据类型 管道和过滤器风格的例子: UNIX的shell程序,如命令:  cat file | grep xyz | sort | uniq out   在文件file中查找包括xyz的行 ? 排序 ? 去掉重行 ? 输出到out文件中; 编译器:词法分析 ? 句法分析 ? 语义分析 ? 代码生成。 管道和过滤器的实现: 将系统任务分成几个独立的处理阶段; 定义每个管道传输的数据格式; 决定管道的连接; 设计和实现过滤器; 设计出错处理; 建立处理流水线。 管道和过滤器的优点: 每个过滤器都是独立的整体,相互之间的状态互不影响;只要具备输入条件即可独立地完成自己的处理 支持功能模块的重用;过滤器并不知道它的上游和下游的过滤器的特性;它的设计和实现不会对与它相连的过滤器加以限制。 系统容易维护和扩展 支持某些特定的分析,如吞吐量和死锁检测 并发性 管道和过滤器的缺点: 管线或流水线(Pipe Line):过滤器严格限制为单输入、单输出类型,系统拓扑结构只能是线性序列; 交互性比较弱 兼容性相对弱;维持两个相对独立但又存在某种关系的数据流之间的通信可能比较困难; 有名

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档