建议在观看过程中注意以下几个问题:
Note1:什么样的系统需求,适用于数据流体系结构风格来实现?
Note2:数据流体系结构风格的构件、连接件、约束关系?
Note3:批处理 和 管道-过滤器的区别?应用实例?
Note4:什么的系统需求,不适用与采用数据流体系结构风格?
————>Data flow is not totally free data.数据流动有什么限制?
(体系结构风格SA styless 的重点是应用)
一、软件体系结构风格
软件体系结构:体系结构其实最初来自于建筑结构的启发,例如西方的歌特式结构建筑、文艺复兴式建筑
所以“风格”————>经过长时间的时间,被证明具有良好的工艺可行性、性能与实用性,并可直接用来**遵循与模仿**
软件体系结构风格
1、描述一类体系结构
2、独立于实际爱你问题,强调了软件系统中通用的组织结构
3、在实践中被多次应用
4、是若干设计思想的综合
5、具有已经被熟知的特征,并且可以复用
所以软件体系结构风格的定义:
描述特定领域中软件系统家族的组织方式的惯用模式,反映了领域中众多系统所共有的结构和语义特性,
并指导如何将各个模块和子系统有效地组织成一个完整的系统。
Architecture style={
Component/Connector vocabulary,
Topology,Semantic Constraints
}
经典软件体系结构风格
1、独立构件
2、数据流
3、以数据为中心
4、虚拟机
5、调用-返回
所以今天我们讲解数据流软件体系结构风格中的批处理、管道-过滤器软件体系结构风格
二、数据流体系结构风格
一个直观实例:
在使用MS Excel中,改变某个单元格的值,则依赖于该单元格的其他单元格的值也会随之改变。
所以数据流体系结构风格的特征:
1、数据的可用性决定着处理(计算单元)是否执行
2系统结构由数据在个处理之间的有序移动决定
3、在纯数据流系统中,处理之间除了数据交换没有任何其他的交互
下面简单介绍一些数据流体系结构风格中的-**基本构件**
基本构件:数据处理
构件接口:输入端口和输出端口
计算模型:从输入端口读数,经过计算/处理,然后写到输出端口
数据流体系结构风格-**连接件**
连接件:数据流
单向、通常是异步、有缓冲
接口角色:reader 和 writer
计算模型:把数据从一个处理的输出端口传送到另一个处理的出入端口
数据流体系风格如图:
数据流体系结构风格–典型数据流风格
一、批处理体系结构风格
批处理体系结构风格直观结构如图:
所以批处理体系结构风格中,数据的传输方式为:数据整体传输
批处理体系结构风格-定义:
基本构件:独立的应用程序
连接件:某种类型的媒介
连接件敌营了相应的数据流图,表达拓扑结构
批处理体系结构风格的定义可以如此定义:
每个处理步骤是一个独立的程序
每一步必须在前一步结束后才能开始
数据必须是完整的,以整体的方式传递
批处理体系结构风格—应用案例:
该系统要检测两个代码的相似性,所以要进行代码检测问题的划分,而每一个划分都可以成为一个独立的处理单元,每个单元之间就会产生不同的数据传输,而且每一个处理单元需要处理的数据格式都是不一样的,所以每一个处理单元接收数据文件之后,都要进行数据格式转换,所以采用批处理体系结构来进行数据之间的传输,能很好的解决接收文件之后的数据格式转换,如果采用管道-过滤系统进行处理,则每一个处理单元在运行时,都要不断地进行数据格式的转换,所以相比下来,批处理体系结构风格更适合进行这项工作。
二、管道-过滤器体系结构风格
首先在我们开始学习管道-过滤器体系结构风格之前,我们先来看看这张图(如下图供水系统),可能你还在疑惑这两者用什么关系呢?如果你弄到了这点,我想在你接下来对于它的学习会更深刻。
想象一下,我们在学校中的时候,我使用水的时候,水的流淌是时断时续的呢?还是一直都在流淌?该图供水系统中,水是先储存在排水池中,只要我们使用,它就会向我们供水,然后送水泵又会向排水池中送水,导致我们在使用水的时候一直都是有水的,不会产生断断续续的情况,联系一下,就像这个供水系统一样,管道-过滤器体系系统风格也是这样,每个过滤器都独立处理接入的数据,然后自己输出,不会受到总体的控制,如此当有数据来的时候,过滤器就处理,然后传入下一个处理单元,如此以来,就形成了一种连续的处理过程。如图:
管道-过滤器体系结构风格定义:
数据源源不断的产生,系统需要对这些数据进行若干处理(分析、计算、转换等)
故此,要实现这样的体系结构,可以采用如下解决方案:
1、把系统分解为几个序贯的处理步骤,这些步骤之间通过数据流连接
一个步骤的输出是另一个步骤的输入
2、每个处理步骤由一个过滤构件实现
3、处理步骤之间的数据传输由管道负责
——> 每个处理步骤(过滤器)都有一组输入和输出,过滤器从管道中读取输入的数据流,经过内部处理,然后产生输出数据流并写入管道
构件:过滤器,处理数据流
一个过滤器封装了一个处理步骤
数据源点和数据终止点,可以看作是特许的过滤器
连接件:管道,连接一个源和一个目的的过滤器
管道将数据从过滤器输出移至过滤器输入 ,数据可能是ASCII字符流
拓扑:连接器定义数据流抓图
样式不变量:过滤器是独立的
从源到接收器逐步转换数据(递增的读取和消费数据流),数据到来时便被处理,不是收集然后处理,即在输入被完全消费之前,输出便产生了。
管道-过滤器体系结构风格 —过滤器
目标:将源数据变换成目标数据
从数据流-->数据流的变换
故此过滤器的特点:
无上下文信息
不保留状态
对其他过滤器无任何了解
管道-过滤器体系结构风格–管道:
管道:将数据从过滤器的输出移至过滤器的输入(或设备或文件)。
具备特点:
1、单向流
2、可能具有缓冲区
3、管道形成传输图
所以不同的管道中流动的数据流,可能具有不同的数据格式,数据在流过每一个过滤器是,被过滤器进行了丰富、
精炼、转换、融合、分解等操作,因而发生了变化。
管道-过滤器体系结构风格-应用实例
1、编译器
2、Unix管道
3、图像处理
4、星号处理
5、声音与图像处理
**管道-过滤器体系结构风格的优势(Advantage)**
1、使构件具有良好的隐蔽性和高内聚、低耦合的特点,可将整个系统的输入/输出行为看成
了多个过滤器的行为的简单合成
2、支持软件复用,只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连
接起来
3、系统维护和增强系统性能简单,新的过滤器可以添加到现有系统中来,旧的可以被改进
的过滤器替换掉
4、准许对一些如吞吐量、死锁等属性的分析,
5、支持并行执行:每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。
**管道-过滤器体系结构风格--(disadvantage)**
1、不适合处理交互的应用
2、系统性能不高,并增加了编写过滤器的复杂性
总结:
批处理VS管道-过滤器
把任务分解成一系列固定顺序的计算单元&彼此间只能通过数据传递交互
学习检测:
1【单选题】
数据流体系结构风格的特点为()。
A、无数据不工作
B、数据增量传输
C、有统一数据格式
D、存在数据中心
2【填空题】
批处理体系结构风格中,数据的传输方式为( )。
3【简答题】
请简要说明管道-过滤器体系结构风格中,过滤器相互独立的含义。
4【简答题】
请简要分析课程视频中“基于Eclipse重复代码检测工具”采用批处理体系结构风格的原因?
原文:https://blog.csdn.net/weixin_43452424/article/details/104529719
欢迎关注微信公众号:【 GoTobe 】,一起学习,一起成就那个 ta !