第三章-软件体系结构风格

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
不容易划分层次 跨层调用可能会损坏分层 为提高可移植性,层与层之间有虚拟机
郑州大学软件学院 赵哲
仓库系统及知识库
主要用在交换或共享大量数据的软件中 对大量素材或元素进行管理的软件,通
常用该风格 比如:数据库系统、信息检索、黑板系
统、语音和模式识别系统等
郑州大学软件学院 赵哲
黑板系统
直接存取
郑州大学软件学院 赵哲
该风格的缺点
方法调用无序,会产生不同的结果。 大数据不广播
郑州大学软件学院 赵哲
分层系统
层次系统组织成一个
层次结构,每一层为
上层服务,并作为下
层客户。在一些层次
系统中,除了一些精
心挑选的输出函数外,
内部的层只对相邻的
层可见
各种构件
用户系统 基本工具
核心层
郑州大学软件学院 赵哲
郑州大学软件学院 赵哲
基于层次消息总线的体系结构
HMB ( Hierarchy Message Bus)层次 消息总线
由北京大学杨芙清院士提出
郑州大学软件学院 赵哲
HMB风格概述
复合构件
构件
消息总线(连接件)
郑州大学软件学院 赵哲
HMB风格概述
消息总线是系统的连接件,负责消息的 分派、传递、处理结果的返回
郑州大学软件学院 赵哲
C/S三层结构
主要用途 用在数据流量大、频繁读写、逻辑性强
的软件中 例如ERP系统、图书管理系统等
郑州大学软件学院 赵哲
浏览器/服务器风格
P66 由于C/S模式客户端程序安装带来的麻
烦,客户端要求再瘦一些。 随着浏览器的兴起,C/S模式中客户端
的要求得到了满足。 客户端皮包骨头
郑州大学软件学院 赵哲
浏览器/服务器风格
Browser/Server即:B/S风格 是C/S三层结构的一种实现方式,具体
表现为: 浏览器/Web服务器/服务器
郑州大学软件学院 赵哲
B/S模式结构
客户端 浏览器
客户端 浏览器
Web服务器
数 据 库 数据库 服 务 器
郑州大学软件学院 赵哲
B/S系统优点
黑板系统。
郑州大学软件学院 赵哲
经典软件体系结构风格
管道和过滤器 数据抽象和面向对象组织 基于事件的隐式调用 分层系统 仓库系统及知识库 C2风格
郑州大学软件学院 赵哲
管道与过滤器风格
管道
过滤器
郑州大学软件学院 赵哲
管道和过滤器
每个构件都有一组输入和输出,构件读输入的 数据流,经过内部处理,然后产生输出数据流。
网络
C/S 局域网 B/S 广域网
安全 控制
能力 高
能力 低
软件 维护 信息 重用 开销 交流
不高 大 较强 小
机械 式
信息 中心
数据
重在 处理 重在 共享
郑州大学软件学院 赵哲
C/S和B/S共同的缺点
若访问量大,服务器面临崩溃的危险 如何解决? P2P的提出
郑州大学软件学院 赵哲
P2P风格
等数据流水线系统 每一步数据质量将会影响到下一步
郑州大学软件学院 赵哲
管道和过滤器风格优点
P52
郑州大学软件学院 赵哲
管道和过滤器风格缺点
P53
郑州大学软件学院 赵哲
数据抽象和面向对象组织
对象
对象
对象
对象
抽象数 据类型
对象
过程调用
郑州大学软件学院 赵哲
数据抽象和面向对象组织
大量运用面向对象的特点 此风格的组成构件为对象
用户5
任务分配-服务器
服务器(饭堂)的任务: 1. 数据安全(保证食物质量) 2. 数据并发性控制(排队打饭) 3. 数据完整性(1块钱打1块钱的饭) 4. 数据的备份和恢复(做记录)
郑州大学软件学院 赵哲
任务分配-客户端
客户端的任务: 提供用户与数据库的交互界面(一只碗) 提交和接受来自数据库的信息(红烧肉) 根据数据,执行逻辑任务(吃、消化)
体系结构风格定义了一个系统家族 体系结构风格反映了领域中众多系统所
共有的结构和语义特性
郑州大学软件学院 赵哲
经典的体系结构风格
数据流风格:批处理序列;管道/过滤器。 调用/返回风格:主程序/子程序;面向
对象风格;层次结构。 独立构件风格:进程通讯;事件系统 虚拟机风格:解释器;基于规则的系统 仓库风格:数据库系统;超文本系统;
知识源
计算
知识源
黑板 (共享数据)
知识源
知识源
内存
郑州大学软件学院 赵哲
C2风格
C2是最常用的一种软件体系结构风格 可以概括为通过连接件绑定在一起的、
按照一组规则运作的并行构件网络
郑州大学软件学院 赵哲
C2风格实例
3个构件:comUser(验证用户信息)、 comUI、comVoucher(单据相关)
郑州大学软件学院 赵哲
下节内容
正交体系结构风格 基于层次消息总线的体系结构风格 异构结构风格
郑州大学软件学院 赵哲
正交体系结构
P70 正交软件体系结构由组织层和线索构成 组织层由相同级别的构件构成 线索是子系统的特例、它由不同层次功
能的构件组成,每一条线索完成整个系 统中相对独立的一部分功能。 如果线索独立,线索间有没有互相调用, 则被称为完全正交结构
业务处理结束 数据存取程序
郑州大学软件学院 赵哲
C/S风格优点
分离客户端、服务器端,增加了系统灵 活性,易于对系统进行扩充和缩小
客户端与服务端直接相连,没有中间环 节,响应速度快
操作界面漂亮、形式多样 方便实现复杂的业务流程
郑州大学软件学院 赵哲
C/S风格缺点
要专门为客户安装程序,分布功能弱 兼容性差 成本高 客户端压力大(胖客户端)
SQL 请求开始
DBMS 执行SQL SQL 请求结束
数据层
数据登录/更新 /读取的请求
业务处理开始 数据存取请求
数据登录/更新 /读取的结果
业务处理结束 数据存取程序
功能层
郑州大学软件学院 赵哲
C/S三层结构
表示层
提供界面 检查数据
功能层
应用、逻辑相关
数据层
迅速对大量数据进行更新和检索
正交软件体系结构
正交(orthogonal):相互独立 该体系结构的特点: 1. 由不同功能的线索组成 2. 有不同抽象级别的层 3. 线索之间相互独立(正交) 4. 系统有一个公共驱动层和一个公共数据
结构
郑州大学软件学院 赵哲
正交体系结构的优点
P77 结构清晰、易于理解 易修改,易增加,可维护性强 可移植性强,重用粒度大
安装、维护、修改 全在服务器端 工作量减少 降低成本 开放性强,都可以来访问 平台无关性,可以任意扩展 信息发布和信息交流更加灵活
郑州大学软件学院 赵哲
B/S系统的缺点
应用服务器负荷过重 浪费流量(整个页面提交) 不利于大量数据处理(安全性和速度)
郑州大学软件学院 赵哲
C/S和B/S比较
郑州大学软件学院 赵哲
C2风格特点
构件的连接靠连接件 构件相对独立,依赖性少 可以将任意复杂度的构件组装在一起 连接件可以和任意数目的其他构件或连
接件相连
郑州大学软件学院 赵哲
下节课内容
客户/服务器风格 三层C/S风格 浏览器/服务器风格 P2P风格
郑州大学软件学院 赵哲
复习
管道/过滤器风格 面向对象风格 基于事件的隐式调用 分层系统 仓库及知识库 C2风格
过程调用
分层系统
层次不能乱划分,是固定的。 每一层仅向上层提供服务,仅使用下层
的服务,不跨层。 优秀的分层系统:
操作系统 网络七层架构
郑州大学软件学院 赵哲
分层系统优点
容易修改,只需更改内容,保持层与层 接口不变即可。
支持重用,可移植性高 信息隐藏
郑州大学软件学院 赵哲
分层系统缺点
1个连接件 comInput
郑州大学软件学院 赵哲
C2风格实例-录入数据
comUser
3、验证, 并告诉comInput结果
comVoucher
5、录入, 并告诉comInput结果
comUI
1、有用户输入 告诉comInput
7、显示结果
comInput
2、告诉comUser, 有用户来了,请验证。 4、收到结果,合法,告诉Voucher录入 6、告诉comUI已录入
郑州大学软件学院 赵哲
处理流程
输入数据
请求按钮
输出数据 表示层
业务处理请求和业务处 理所需的全部输入数据
业务处理开始 数据存取请求
全部处理结束
业务处理结束 业务处理程序
SQL 请求开始
DBMS 执行SQL SQL 请求结束
数据层
数据登录/更新/读取的 请求
业务处理开始 数据存取请求
数据登录/更新/读取的 结果
郑州大学软件学院 赵哲
三层C/S风格
雇了保姆 保姆的职责:跑腿、盛饭、打卡 客户:饭来张口、衣来伸手 服务器:提供所需饭菜
郑州大学软件学院 赵哲
三层C/S结构风格
源自文库
数据库服务器1
数据库服务器2 应用服务器
Internet Intranet
用户1
... ... 用户2
郑州大学软件学院 赵哲
用户n
Peer To Peer 点对点 资源不被集中在一个地方(服务器),而
是回归个人 人越多,提供资源的人越多。
郑州大学软件学院 赵哲
P2P风格
问题: 是否提供资源的人越多,速度越快? 答:否,与网络的带宽也有关系。
郑州大学软件学院 赵哲
复习题
名词解释: 构件 4+1模型 C2风格
郑州大学软件学院 赵哲
本节主要内容
客户/服务器风格 三层C/S风格 浏览器/服务器风格 P2P风格
郑州大学软件学院 赵哲
客户/服务器风格
产生背景
资源不对等,为实现数据共享而提出。
主要特点:
客户端/服务器端
重要组成部分:
数据库服务器、客户端程序、网络
郑州大学软件学院 赵哲
客户/服务器风格
郑州大学软件学院 赵哲
正交体系结构框架(3级5层)
A
第一层
B…
…C
第二层
…D …
…E …
第三层
F …G …
H…
…J
第四层
K 郑州大学软件学院 赵哲
第五层
一条完整的线索
郑州大学软件学院 赵哲
正交系统举例-播放器
主控制窗口




















菜单层 功能对话 功能定义
物理数据
郑州大学软件学院 赵哲
优势
相比两层C/S结构,三层的优势在于: 服务器安全性提高 客户端成功减肥 易于维护(若逻辑有问题,不需要重新安
装客户端) 易于开发,每层可用不同的语言。
郑州大学软件学院 赵哲
处理流程
输入数据
请求按钮
输出数据 表示层
业务处理请求和 业务处理所需的 全部输入数据
全部处理结束
业务处理开始 数据存取请求 业务处理结束 业务处理程序
打印机
PWR OK
WIC0 ACT/CH0 ACT/CH1
WIC0 ACT/CH0 ACT/CH1
ET H ACT COL
调制解调器
数据库服务器
Power/TX Link/Rx
LPT1
LPT2
COM
Print Server
其他公用设备
Internet Intranet
用户1
用户2
用户3
用户4
郑州大学软件学院 赵哲
郑州大学软件学院 赵哲
该风格的优点
面向对象的优点
郑州大学软件学院 赵哲
该风格的缺点
对象身份的依赖性 继承关系导致树状层次,该层次不利于
系统的理解和修改
郑州大学软件学院 赵哲
基于事件的隐式调用
解决对象依赖问题 构件不直接调用一个过程,而是触发或
广播一个或多个事件。系统中的其它构 件中的过程在一个或多个事件中注册, 当一个事件被触发,系统自动调用在这 个事件中注册的所有过程
软件体系结构
软件体系结构风格
郑州大学软件学院 赵哲
主要内容
软件体系结构风格概述 经典软件体系结构风格 客户/服务器风格 浏览器/服务器风格 层次风格 异构结构风格
郑州大学软件学院 赵哲
软件体系结构风格概述
软件体系结构风格style :描述某一特定 应用领域中系统组织方式的惯用模式。
这种风格的连接件就象是数据流传输的管道, 将一个过滤器的输出传到另一过滤器的输入
这里的构件被称为过滤器,这种风格的连接件 就象是数据流传输的管道,将一个过滤器的输 出传到另一过滤器的输入。
郑州大学软件学院 赵哲
管道和过滤器应用举例
ATM机 汽车牌照识别系统
图像捕捉 灰度化 拉伸 边缘处理 模板匹配 识别
郑州大学软件学院 赵哲
基于事件的隐式调用
这种风格的构件是一些模块,模块既可 以是一些过程,又可以是一些事件的集 合
应用举例:Debugger
郑州大学软件学院 赵哲
该风格优点
为软件重用提供了强大的支持。当需要 将一个构件假如现存系统时,只需注册 事件即可。
改进系统带来了方便。若需要更改构件, 不会影响到其他构件的接口。
构件挂在消息总线上,告诉总线自己感 兴趣的消息类型
由于构件通过总线进行连接,那么并不 要求各个构件“在一起”
郑州大学软件学院 赵哲
HMB风格概述
相关文档
最新文档