软件体系结构风格.ppt_第1页
软件体系结构风格.ppt_第2页
软件体系结构风格.ppt_第3页
软件体系结构风格.ppt_第4页
软件体系结构风格.ppt_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

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

文档简介

郑州大学软件学院 赵哲,软件体系结构,软件体系结构风格,郑州大学软件学院 赵哲,主要内容,软件体系结构风格概述 经典软件体系结构风格 客户/服务器风格 浏览器/服务器风格 层次风格 异构结构风格,软件体系结构风格概述,软件体系结构风格style :描述某一特定应用领域中系统组织方式的惯用模式。 体系结构风格定义了一个系统家族 体系结构风格反映了领域中众多系统所共有的结构和语义特性,郑州大学软件学院 赵哲,经典的体系结构风格,数据流风格:批处理序列;管道/过滤器。 调用/返回风格:主程序/子程序;面向对象风格;层次结构。 独立构件风格:进程通讯;事件系统 虚拟机风格:解释器;基于规则的系统 仓库风格:数据库系统;超文本系统;黑板系统。,郑州大学软件学院 赵哲,经典软件体系结构风格,管道和过滤器 数据抽象和面向对象组织 基于事件的隐式调用 分层系统 仓库系统及知识库 C2风格,郑州大学软件学院 赵哲,管道与过滤器风格,郑州大学软件学院 赵哲,管道和过滤器,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。 这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入 这里的构件被称为过滤器,这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。,郑州大学软件学院 赵哲,管道和过滤器应用举例,ATM机 汽车牌照识别系统 图像捕捉 灰度化 拉伸 边缘处理 模板匹配 识别 等数据流水线系统 每一步数据质量将会影响到下一步,郑州大学软件学院 赵哲,管道和过滤器风格优点,P52,郑州大学软件学院 赵哲,管道和过滤器风格缺点,P53,郑州大学软件学院 赵哲,数据抽象和面向对象组织,郑州大学软件学院 赵哲,数据抽象和面向对象组织,大量运用面向对象的特点 此风格的组成构件为对象,郑州大学软件学院 赵哲,该风格的优点,面向对象的优点,郑州大学软件学院 赵哲,该风格的缺点,对象身份的依赖性 继承关系导致树状层次,该层次不利于系统的理解和修改,郑州大学软件学院 赵哲,基于事件的隐式调用,解决对象依赖问题 构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,郑州大学软件学院 赵哲,基于事件的隐式调用,这种风格的构件是一些模块,模块既可以是一些过程,又可以是一些事件的集合 应用举例:Debugger,郑州大学软件学院 赵哲,该风格优点,为软件重用提供了强大的支持。当需要将一个构件假如现存系统时,只需注册事件即可。 改进系统带来了方便。若需要更改构件,不会影响到其他构件的接口。,郑州大学软件学院 赵哲,该风格的缺点,方法调用无序,会产生不同的结果。 大数据不广播,郑州大学软件学院 赵哲,分层系统,层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见,郑州大学软件学院 赵哲,分层系统,层次不能乱划分,是固定的。 每一层仅向上层提供服务,仅使用下层的服务,不跨层。 优秀的分层系统: 操作系统 网络七层架构,郑州大学软件学院 赵哲,分层系统优点,容易修改,只需更改内容,保持层与层接口不变即可。 支持重用,可移植性高 信息隐藏,郑州大学软件学院 赵哲,分层系统缺点,不容易划分层次 跨层调用可能会损坏分层 为提高可移植性,层与层之间有虚拟机,郑州大学软件学院 赵哲,仓库系统及知识库,主要用在交换或共享大量数据的软件中 对大量素材或元素进行管理的软件,通常用该风格 比如:数据库系统、信息检索、黑板系统、语音和模式识别系统等,郑州大学软件学院 赵哲,黑板系统,郑州大学软件学院 赵哲,C2风格,C2是最常用的一种软件体系结构风格 可以概括为通过连接件绑定在一起的、按照一组规则运作的并行构件网络,郑州大学软件学院 赵哲,C2风格实例,3个构件:comUser(验证用户信息)、comUI、comVoucher(单据相关) 1个连接件 comInput,郑州大学软件学院 赵哲,C2风格实例-录入数据,comUser 3、验证, 并告诉comInput结果,comUI 1、有用户输入 告诉comInput 7、显示结果,comVoucher 5、录入, 并告诉comInput结果,comInput 2、告诉comUser, 有用户来了,请验证。 4、收到结果,合法,告诉Voucher录入 6、告诉comUI已录入,郑州大学软件学院 赵哲,C2风格特点,构件的连接靠连接件 构件相对独立,依赖性少 可以将任意复杂度的构件组装在一起 连接件可以和任意数目的其他构件或连接件相连,郑州大学软件学院 赵哲,下节课内容,客户/服务器风格 三层C/S风格 浏览器/服务器风格 P2P风格,郑州大学软件学院 赵哲,复习,管道/过滤器风格 面向对象风格 基于事件的隐式调用 分层系统 仓库及知识库 C2风格,郑州大学软件学院 赵哲,本节主要内容,客户/服务器风格 三层C/S风格 浏览器/服务器风格 P2P风格,郑州大学软件学院 赵哲,客户/服务器风格,产生背景 资源不对等,为实现数据共享而提出。 主要特点: 客户端/服务器端 重要组成部分: 数据库服务器、客户端程序、网络,郑州大学软件学院 赵哲,客户/服务器风格,郑州大学软件学院 赵哲,任务分配-服务器,服务器(饭堂)的任务: 数据安全(保证食物质量) 数据并发性控制(排队打饭) 数据完整性(1块钱打1块钱的饭) 数据的备份和恢复(做记录),郑州大学软件学院 赵哲,任务分配-客户端,客户端的任务: 提供用户与数据库的交互界面(一只碗) 提交和接受来自数据库的信息(红烧肉) 根据数据,执行逻辑任务(吃、消化),郑州大学软件学院 赵哲,处理流程,郑州大学软件学院 赵哲,C/S风格优点,分离客户端、服务器端,增加了系统灵活性,易于对系统进行扩充和缩小 客户端与服务端直接相连,没有中间环节,响应速度快 操作界面漂亮、形式多样 方便实现复杂的业务流程,郑州大学软件学院 赵哲,C/S风格缺点,要专门为客户安装程序,分布功能弱 兼容性差 成本高 客户端压力大(胖客户端),郑州大学软件学院 赵哲,三层C/S风格,雇了保姆 保姆的职责:跑腿、盛饭、打卡 客户:饭来张口、衣来伸手 服务器:提供所需饭菜,郑州大学软件学院 赵哲,三层C/S结构风格,郑州大学软件学院 赵哲,优势,相比两层C/S结构,三层的优势在于: 服务器安全性提高 客户端成功减肥 易于维护(若逻辑有问题,不需要重新安装客户端) 易于开发,每层可用不同的语言。,郑州大学软件学院 赵哲,处理流程,郑州大学软件学院 赵哲,C/S三层结构,表示层 提供界面 检查数据 功能层 应用、逻辑相关 数据层 迅速对大量数据进行更新和检索,郑州大学软件学院 赵哲,C/S三层结构,主要用途 用在数据流量大、频繁读写、逻辑性强的软件中 例如ERP系统、图书管理系统等,郑州大学软件学院 赵哲,浏览器/服务器风格,P66 由于C/S模式客户端程序安装带来的麻烦,客户端要求再瘦一些。 随着浏览器的兴起,C/S模式中客户端的要求得到了满足。 客户端皮包骨头,郑州大学软件学院 赵哲,浏览器/服务器风格,Browser/Server即:B/S风格 是C/S三层结构的一种实现方式,具体表现为: 浏览器/Web服务器/服务器,郑州大学软件学院 赵哲,B/S模式结构,郑州大学软件学院 赵哲,B/S系统优点,安装、维护、修改 全在服务器端 工作量减少 降低成本 开放性强,都可以来访问 平台无关性,可以任意扩展 信息发布和信息交流更加灵活,郑州大学软件学院 赵哲,B/S系统的缺点,应用服务器负荷过重 浪费流量(整个页面提交) 不利于大量数据处理(安全性和速度),郑州大学软件学院 赵哲,C/S和B/S比较,郑州大学软件学院 赵哲,C/S和B/S共同的缺点,若访问量大,服务器面临崩溃的危险 如何解决? P2P的提出,郑州大学软件学院 赵哲,P2P风格,Peer To Peer 点对点 资源不被集中在一个地方(服务器),而是回归个人 人越多,提供资源的人越多。,郑州大学软件学院 赵哲,P2P风格,问题: 是否提供资源的人越多,速度越快? 答:否,与网络的带宽也有关系。,郑州大学软件学院 赵哲,复习题,名词解释: 构件 4+1模型 C2风格,郑州大学软件学院 赵哲,下节内容,正交体系结构风格 基于层次消息总线的体系结构风格 异构结构风格,郑州大学软件学院 赵哲,正交体系结构,P70 正交软件体系结构由组织层和线索构成 组织层由相同级别的构件构成 线索是子系统的特例、它由不同层次功能的构件组成,每一条线索完成整个系统中相对独立的一部分功能。 如果线索独立,线索间有没有互相调用,则被称为完全正交结构,郑州大学软件学院 赵哲,正交体系结构框架(3级5层),郑州大学软件学院 赵哲,一条完整的线索,郑州大学软件学院 赵哲,正交系统举例-播放器,播放控制部分,模式控制部分,个人设置,搜索功能,主控制窗口 菜单层 功能对话 功能定义 物理数据,郑州大学软件学院 赵哲,正交软件体系结构,正交(orthogonal):相互独立 该体系结构的特点: 由不同功能的线索组成 有不同抽象级别的层 线索之间相互独立(正交) 系统有一个公共驱动层和一个公共数据结构,郑州大学软件学院 赵哲,正交体系结构的优点,P77 结构清晰、易于理解 易修改,易增加,可维护性强 可移植性强,重用粒度大,郑州大学软件学院 赵哲,基于层次消息总线的体系结构,HMB ( Hierarchy Message Bus)层次消息总线 由北京大学杨芙清院士提出,郑州大学软件学院 赵哲,HMB风格概述,郑州大学软件学院 赵哲,HMB风格概述,消息总线是系统的连接件,负责消息的分派、传递、处理结果的返回 构件挂在消息总线上,告诉总线自己感兴趣的消息类型 由于构件通过总线进行连接,那么并不要求各个构件“在一起”,郑州大学软件学院 赵哲,HMB风格概述,每个构件内部可以采用不同的风格,如管道过滤器风格、面向对象风格等。 整个HMB风格的系统可以是一套完整的系统,也可以是一个构件,郑州大学软件学院 赵哲,异构结构风格,P83 异构:不同的结构 异构体系结构 软件体系结构采用的不是单一的体系风格,而是多种软件体系风格的融合。 为什么要使用异构结构?,郑州大学软件学院 赵哲,为什么要使用异构结构,不同的结构都有不同的强项和弱势 一些结构在某一个时间段会占据统治地位,但其变动最终是绝对的 同一种体系结构下的可重用的部件和连接件在不同时期可能存在不同的标准 如果要重用原来系统中遗留下来的代码,那么就要解决与新系统结构的不协调问题。,郑州大学软件学院 赵哲,常见的异构结构,讨论B/S和C/S的异构 当传统的C/S遇到新潮的B/S: 内外有别 查改有别,郑州大学软件学院 赵哲,内外有别 模型,郑州大学软件学院 赵哲,内外有别 特点,优点:外部用户不直接访问数据库服务器、企业内部用户的交互性较强,数据查询和修改相应速度快 缺点:企业外部用户修改和维护数据时,速度慢,较繁琐,数据交互不强,郑州大学软件学院 赵哲,查改有别 模型,郑州大学软件学院 赵哲,查改有别 特点,优点:体现了B/S体系结构和C/S体系结构的共同优点 缺点:因外部用户能直接访问数据库服务器,会引发安全问题。,郑州大学软件学院 赵哲,汇总风格,经典风格 管道、过滤器风格 面向对象风格 基于事件的隐式调用 分层系统 仓库系统和知识库 C2风格 B/S、C/S 正交软件体系结构 基于层次消息总线 异构风格,郑州大学软件学院 赵哲,管道过滤器,数据流向一致 过滤器都有数据的流入和流出 过滤器可以任意交换位置或增减 缺点: 不利于交互性强的软件,郑州大学软件学院 赵哲,面向对象风格,对象独立 面向对象的优点 缺点: 对象名依赖 继承引起代码复杂,郑州大学软件学院 赵哲,基于事件的隐式调用,事件广播 方法与事件注册到一起 当事件广播时方法被调用 缺点: 方法调用无序 大数据不广播,郑州大学软件学院 赵哲,分层系统,优秀的分层系统 OS、网络七层协议 层与层之间独立 上层向下层索取服务,下层为上层提供服务 跨层不通信,郑州大学软件学院 赵哲,黑板系统,知识源独立 知识源通过改变黑板来解决问题 黑板共享数据 通常用在大数据程序中,郑州大学软件学院 赵哲,C2风格,构件独立 构建通过连接件连接,郑州大学软件学院 赵哲,主要内容,特定领域的体系结构 复习 练习题,郑州大学软件学院 赵哲,特定领域软件体系结构 P92,DSSA ( Domain Specific Software Architecture) 特定领域软件体系结构 一般的软件过程针对某个特定的软件系统,获取需求,设计架构。 DSSA关注于某个特定领域。 eg:web领域、医疗领域、金融领域等,郑州大学软件学院 赵哲,特定领域软件体系结构,具体做法:通过对某个特定领域的分析,提出典型需求,得到领域模型,设计架构,实现其组成模块 若特定软件需要,可以对照需求,配置架构,选取合适的构件,完成开

温馨提示

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

评论

0/150

提交评论