软件体系结构复习内容.doc软件体系结构
第 5 讲: 体系结构风格(一)
内容简介:
概述
管道/过滤器风格
仓库风格和黑板风格
分层系统风格
客户服务器风格
软件体系结构风格(模式)定义:
一些特定的元素按照特定方式组成的结构, 它有利于解决上下文环境里的特定问题。
描述了一族系统,他们拥有一个类似的结构
定义了构件(如客户端、服务器)的字典
刻画了构件的主要任务和交互方式
软件体系结构风格与设计模式等的区别
程序设计样式
设计模式
体系结构风格
重点
开发原则、可实现性
重用、概念完整性
重用、概念完整性
抽象层次
程序
构件
体系结构
使用
直接可用
直接可用
有约束和指导作用
体系结构风格作用
促进设计重用
带来代码重用
使系统易于理解
有利于系统的互操作性
体系结构风格分类
固定术语类
管道和过滤器的风格
仓库风格和黑板风格
分层系统风格
客户服务器风格
数据抽象和面向对象风格
基于事件的风格
模型-视图-控制器风格
解释器风格(虚拟机风格)
参考模型类
编译器的顺序参考模型和并行参考模型
信息系统的参考模型
管道/过滤器风格
构件:
过滤器(对数据进行处理)
连接件:
管道(传输数据)
过滤器
过滤器
过滤器
过滤器
过滤器
过滤器
图5-1 管道和过滤器风格体系结构
管道
管道
管道
管道
管道
管道
管道
应用:
Unix 的Shell程序 cat file |grep xyz |sort |uniq 〉 out
编译器
信号处理
编译器从逻辑上可以分成若干阶段,每个阶段把源程序从一种表示变换成另一种表示
优点:
允许构造松散结构的系统
过滤器的重用很方便
易于扩展和修改
缺点:
导致批处理风格的系统设计
交互性不强
同步比较困难
应用范围比较狭隘
仓库风格和黑板风格
构件:
中央数据结构(当前状态)
独立构件(对数据进行处理)
运作方式:
主动式:构件自己决定操作
被动式:由数据仓库的当前状态来决定调用构件(黑板系统)
黑板系统三大部分
知识源
黑板数据结构
控制器
知识源
知识源
知识源
知识源
知识源
黑板
共享数据
知识源
知识源
知识源
知识源
存储器
计算
直接存取
图5-2 黑板风格的体系结构
应用:
语音识别
模式识别
三维分子结构建模
优点:便于多客户共享大量数据,它们不用关心数据何时有的、谁提供的、怎样提供的;
既便于添加新的作为知识源代理的应用程序,也便于扩展共享的黑板数据结构。
缺点:不同的知识源代理对于共享数据结构要达成一致,而且,这也造成对黑板数据结构的修改较为困难——要考虑到各个代理的调用;
需要一定的同步/加锁机制保证数据结构的完整性和一致性,增大了系统复杂度。
分层系统风格
一个分层风格的系统按照层次结构组织,每一层向它的上层提供服务。
内核层
用户
基本功能
可用系统
过程调用
不同元素组合
图5-3 分层系统的体系结构
图10-5 Windows 2000的网络体系结构
图10-7 Windows 2000网络体系结构中的TCP/IP
应用:OSI-ISO七层模型
操作系统
数据库系统
TCP/IP网络协议
优点:由于对层次的邻接层数目进行了限制,所以系统易于改进和扩展;
每一层的软件都易于重用,并可为某一层次提供多种可互换的具体实现;
分层系统所支持的设计体现了不断增加的抽象层次,这样,一个复杂问题的求解被分解为一系列递增的步骤。
缺点:系统的分层可能会带来效率方面的问题;
应当如何界定层次间的划分是一个较为复杂的问题。
构件:客户构件
服务器构件
连接件:进程间通信机制
两种特殊的客户服务器风格
代理
服务器的服务交给一个代理,由代理来向客户提供服务
代表性应用:CORBA SOAP WebService UDDI
P2P
客户服务器对称,既是客户又是服务器
代表性应用: BT, Emule, Kazza
应用:
大量的信息管理系统
优点:有利于分布式的数据组织;
构件间是位置透明的,客户和服务器都不用考虑对方的运行位置;
便于异质平台间的融合与匹配,客户和服务器可以运行不同操作系统;
具有良好的可扩展性,易于对服务器进行修改、扩展或增加服务器;
缺点:客户必须知道服务器的访问标识,否则很难知道有哪些可用服务。
分层系统风格实例
数据抽象和面向对象风格
基于事件的风格
模型-视图-控制器风格
解释器风格(虚拟机风格)
信息系统的参考模型
体系结构风格的选择
分层系统风格实例
软件体系结构复习内容 来自淘豆网m.daumloan.com转载请标明出处.