建议在观看过程中注意以下几个问题: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 !

Data Flow style(数据流体系风格)相关推荐

  1. Spring系列学习之Spring Cloud Data Flow 微服务数据流

    英文原文:https://cloud.spring.io/spring-cloud-dataflow/ 目录 Spring Cloud数据流 概览 社区实现 快速开始 ?构建Spring Spring ...

  2. Spring Cloud Data Flow 中的 ETL

    来源:SpringForAll社区 1 概述 Spring Cloud Data Flow是一个用于构建实时数据管道和批处理过程的云原生工具包. Spring Cloud Data Flow已准备好用 ...

  3. Spring Cloud Data Flow流处理入门-5

    流处理入门 Spring Cloud Data Flow 提供了 70 多个预构建的流应用程序,您可以立即使用它们来实现常见的流用例.在本指南中,我们使用其中两个应用程序来构建一个简单的数据管道,该管 ...

  4. [当人工智能遇上安全] 2.清华张超老师 - GreyOne: Discover Vulnerabilities with Data Flow Sensitive Fuzzing

    您或许知道,作者后续分享网络安全的文章会越来越少.但如果您想学习人工智能和安全结合的应用,您就有福利了,作者将重新打造一个<当人工智能遇上安全>系列博客,详细介绍人工智能与安全相关的论文. ...

  5. Spring Cloud Data Flow

    Spring Cloud Data Flow 1 Spring Cloud Data Flow 介绍 2 Local Server for development 3 Data Flow Server ...

  6. Spring Cloud Data Flow 简介

    Spring Cloud Data Flow 介绍 1.Data flow 是一个用于开发和执行大范围数据处理其模式包括ETL,批量运算和持续运算的统一编程模型和托管服务. 2.对于在现代运行环境中可 ...

  7. Spring Cloud Data Flow系列教程架构-2

    架构 Spring Cloud Data Flow 简化了专注于数据处理用例的应用程序的开发和部署. 主要概念: 数据流的服务器组件. 服务器组件可以为流和批处理作业部署的应用程序类型. 已部署应用程 ...

  8. Pivotal发布Spring Cloud Data Flow 1.5版本

    Pivotal发布了Spring Cloud Data Flow 1.5版本,这是一款用于构建实时数据服务的项目,该版本的新功能包括: \\ 对用户界面改进\\t 更新的Spring Cloud St ...

  9. Spring Cloud Data Flow手动安装

    前言 Spring Cloud Data Flow 2.4.2 win7 简介 Microservice based Streaming and Batch data processing for C ...

  10. [论文阅读] (03) 清华张超老师 - GreyOne: Discover Vulnerabilities with Data Flow Sensitive Fuzzing

    数据流敏感的漏洞挖掘方法 Discover Vulnerabilities with Flow Sensitive Fuzzing Chao Zhang 清华大学 2nd International ...

最新文章

  1. 取消MySQL timestamp列默认ON UPDATE CURRENT_TIMESTAMP
  2. 推荐算法-聚类-DBSCAN
  3. 在 OpenGL ES 2.0 上实现视差贴图(Parallax Mapping)
  4. Day-4: Python函数
  5. excel实战应用案例100讲(十五)-在Excel中对Python进行操作完美工具PyXLL-Jupyter
  6. html盒模型中border的写法,HTML+css盒子模型案例(圆,半圆等)“border-radius” 简单易上手...
  7. 编译moveit!时缺失manipulation_msgs相关文件
  8. 后期处理之一:雾蒙蒙风景照片处理技巧
  9. 浅析变长数组(VLA)和动态数组
  10. python之路_mysql数据操作1
  11. 大数据分析中的四大数据类型
  12. 嵌入式研发项目管理的方法论
  13. 概率模型中的 报童问题 matlab求解
  14. ISE14.7固化程序(生成.mcs文件再固化)
  15. 读《大数据时代》有感
  16. python opencv图像叠加/图像融合/mask掩模
  17. 间隔一段时间重复自动登录网站、定时自动登录网站的软件 —— 定时执行专家,无需复杂编程,简单配置即可使用
  18. english learning fengshui
  19. 死磕源码系列【springboot项目打印is not eligible for getting processed by all BeanPostProcessors (for example: n
  20. 4.如何用代码写计算数学问题

热门文章

  1. redis的lpush、rpush、rpop、lpop位置的简单理解
  2. es 安装拼音分词器 以及使用
  3. SAP成都研究院非典型程序猿,菜园子小哥:当我用UI5诊断工具时我用些什么
  4. 解决路由器中继不能连中文ssid问题
  5. bootmgr快速修复win7_这可能是史上最简单的一键安装虚拟机win7系统了
  6. 本地微信公众号授权登录获取code步骤
  7. 怎样自学编程php语言,如何自学软件编程
  8. “银行卡三要素验证”—派遣工工资表单零差错
  9. 使用阿里云接口进行银行卡三四要素实名认证(阿里云api接口java)
  10. 水面反光如何拍摄_反光倒影的摄影怎么拍?