




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021/8/141软件体系结构及应用
4数据流体系结构风格数据流体系结构风格4全文共51页,当前为第1页。2021/8/142主要内容4.1数据流体系结构风格的基本特征4.2管道-过滤器(pipe-and-filter)4.3批处理(batchsequential)4.4批处理与管道-过滤器的比较数据流体系结构风格4全文共51页,当前为第2页。2021/8/1434.1数据流体系结构风格
的基本特征数据流体系结构风格4全文共51页,当前为第3页。2021/8/144数据流风格的直观理解Adataflowsystemisoneinwhich–theavailabilityofdatacontrolstheomputation(数据的可用性决定着处理<计算单元>是否执行)–thestructureofthedesignisdominatedbyorderlymotionofdatafromprocesstoprocess(系统结构:数据在各处理之间的有序移动)–inapuredataflowsystem,thereisnootherinteractionbetweenprocesses(在纯数据流系统中,处理之间除了数据交换,没有任何其他的交互)数据流体系结构风格4全文共51页,当前为第4页。2021/8/145数据流风格的基本构件(COMPONENT)Components:dataprocessingcomponents(基本构件:数据处理)–Interfacesareinputportsandoutputports(构件接口:输入端口和输出端口)–Inputportsreaddata;outputportswritedata(从输入端口读取数据,向输出端口写入数据)–Computationalmodel:readdatafrominputports,compute,writedatatooutputports(计算模型:从输入端口读数,经过计算/处理,然后写到输出端口)数据流体系结构风格4全文共51页,当前为第5页。2021/8/146数据流风格的连接件(CONNECTOR)Connectors:dataflow(datastream)(连接件:数据流)–Uni-directional,usuallyasynchronous,buffered(单向、通常是异步、有缓冲)–Interfacesarereaderandwriterroles(接口角色:reader和writer)–Computationalmodel(计算模型:把数据从一个处理的输出端口传送到另一个处理的输入端口)数据流体系结构风格4全文共51页,当前为第6页。2021/8/147数据流风格的拓扑结构(TOPOLOGY)数据流体系结构风格4全文共51页,当前为第7页。2021/8/148数据流VS.控制流在vonNeumann的计算机体系结构中,有控制流与数据流之分;–控制流(Controlflow)–数据流(Dataflow)讨论:二者有什么区别和联系?能否分别举出几个例子?数据流体系结构风格4全文共51页,当前为第8页。2021/8/149两种典型的数据流风格Pipe-and-Filter(管道-过滤器)BatchSequential(批处理)数据流体系结构风格4全文共51页,当前为第9页。2021/8/14104.2管道与过滤器风格
PIPE-AND-FILTER数据流体系结构风格4全文共51页,当前为第10页。2021/8/1411从“自来水管道系统”看Pipe-And-Filter数据流体系结构风格4全文共51页,当前为第11页。2021/8/1412基本定义语境:数据源源不断的产生,系统需要对这些数据进行若干处理(分析、计算、转换等)。解决方案:–把系统分解为几个序贯的处理步骤,这些步骤之间通过数据流连接,一个步骤的输出是另一个步骤的输入;–每个处理步骤由一个过滤器构件(Filter)实现;–处理步骤之间的数据传输由管道(Pipe)负责。每个处理步骤(过滤器)都有一组输入和输出,过滤器从管道中读取输入的数据流,经过内部处理,然后产生输出数据流并写入管道中。数据流体系结构风格4全文共51页,当前为第12页。2021/8/1413Pipe-And-Filter风格的基本构成Components:Filters—processdatastreams(构件:过滤器,处理数据流)–Afilterencapsulatesaprocessingstep(algorithmorcomputation)(一个过滤器封装了一个处理步骤)–Datasourceanddatasinkareparticularfilters(数据源点和数据终止点可以看作是特殊的过滤器)Connectors:Apipeconnectsasourceandasinkfilter(连接件:管道,连接一个源和一个目的过滤器)–Pipesmovedatafromafilteroutputtoafilterinput(转发数据流)–Dataisastreamof“objects”(数据是特定类型的“对象”流)Topology:Connectorsdefinedataflowgraph(连接器定义了数据流图,形成拓扑结构)数据流体系结构风格4全文共51页,当前为第13页。2021/8/14141过滤器(Filter)Incrementallytransformsomeofthesourcedataintosinkdata(目标:将源数据变换成目标数据)Streamtostreamtransformation(从“数据流”“数据流”的变换)–enrichdatabycomputationandaddinginformation(通过计算和增加信息来丰富数据)–refinebydistillingdataorremovingirrelevantdata(通过浓缩和删减来精炼数据)–transformdatabychangingitsrepresentation(通过改变数据表现方式来转化数据)–decomposedatatomultiplestreams(将一个数据流分解为多个数据流)–mergemultiplestreamsintoonestream(将多个数据流合并为一个数据流)数据流体系结构风格4全文共51页,当前为第14页。2021/8/1415过滤器对数据流的五种变换类型数据流体系结构风格4全文共51页,当前为第15页。2021/8/1416过滤器读取与处理数据流的方式Incrementallytransformdatafromthesourcetothesink(递增的读取和消费数据流)–在输入被完全消费之前,输出便产生了。数据流体系结构风格4全文共51页,当前为第16页。2021/8/1417过滤器的一些基本特征Filtersareindependententities,i.e.,–nocontextinprocessingstreams(无上下文信息)–nostatepreservationbetweeninstantiations(不保留状态)–noknowledgeofupstream/downstreamfilters(对其他过滤器无任何了解)–collectionscanbeusedtobufferthedatapassedthroughpipes:files,arrays,dictionaries,trees,etc.(可使用数据缓冲区临时保存数据流)•蓄水池数据流体系结构风格4全文共51页,当前为第17页。2021/8/14182管道(Pipe)Movedatafromafilter’soutputtoafilter’sinput(ortoadeviceorfile)(作用:在过滤器之间传送数据)–Onewayflowfromonedatasourcetoonedatasink(单向流)–Apipemayimplementabuffer(可能具有缓冲区)–Pipesformdatatransmissiongraph(管道形成传输图)不同的管道中流动的数据流,具有不同的数据格式(Dataformat)。原因:数据在流过每一个过滤器时,被过滤器进行了丰富、精练、转换、融合、分解等操作,因而发生了变化。数据流体系结构风格4全文共51页,当前为第18页。2021/8/1419管道中流动的数据类型Pipebetweentwothreadsofasingleprocess(e.g.,JavaStreams)–StreammaycontainreferencestosharedlanguageobjectsPipebetweentwoprocessesonasinglehostcomputer(e.g.,UNIXNamedPipes)–streammaycontainreferencestosharedOSobjects(e.g.,files)Pipebetweentwoprocessesinadistributedsystem(e.g.,InternetSockets)–Streamcontentslimitedto"rawbytes"–Protocolsimplementhigh-levelabstractions(e.g.,passpipesasreference,passCOBAobjectreferences)数据流体系结构风格4全文共51页,当前为第19页。2021/8/1420管道中流动的数据类型Tradeoff–compatibilityandreusability"everythingisastream"–vs.typesafety"streamofPersons,streamofTexts"Popularstreamdataformats–rawbytestream–streamofASCIItextlineswithlineseparator–recordstream(recordattributesarestrings,separatedbytabulatororcomma)–nestedrecordstream(recordattributeisinturnasequence)–streamrepresentingatreetraversal(innernodes/leafnodesenumeratedinpreorder,postorder,inorder)–typedstreamwithaheadercontainingitstypeinformation(e.g.,columnheadings)–eventstreams(eventnameandeventarguments)数据流体系结构风格4全文共51页,当前为第20页。2021/8/1421管道-过滤器风格的一些变化形式数据流体系结构风格4全文共51页,当前为第21页。2021/8/1422数据流的分类:推式与拉式Question:whatistheforcethatmakedataflow?(是什么力量推动数据在管道中流动?)Threechoice,allwithforceemanatingfromfilters:–Push:datasourcepushesdataindownstreamdirection(推式:前面的过滤器把新产生的数据推入管道)–Pull:datasinkpullsdatafromupstreamdirection(拉式:随后的过滤器从管道中拉出所需数据)–Push/pull:afilterisactivelypullingfromupstream,computing,andpushingdownstream(推拉式:过滤器以循环的方式,从管道中拉出其输入数据,并将其处理产生的数据压入后续管道)数据流体系结构风格4全文共51页,当前为第22页。2021/8/1423过滤器的分类:主动与被动Activefilter:driversthedataflowonthepipes.(主动过滤器:驱动数据流动,pull+push)Passivefilter:isdrivenbythedataflowonthe(input/output)pipes.(被动过滤器:被管道中的输入或输出数据流所驱动)Attention:系统中至少有一个主动过滤器(可以来自外部环境,如用户输入)数据流体系结构风格4全文共51页,当前为第23页。2021/8/1424被动过滤器所采用的两种策略PullStrategy:Thefilterisapassiveobjectthatisdrivenbythesubsequentpipelineelementthatpullsoutputdatafromthefilter;(采用拉式策略的被动过滤器:该过滤器不会主动执行,而是在后续过滤器的“拉”动作的驱动下才执行)PushStrategy:Thefilterisapassiveobjectthatisdrivenbythepreviouspipelineelementthatpushesinputdataintothefilter.(采用推式策略的被动过滤器:该过滤器不会主动执行,而是在前续过滤器的“推”动作的驱动下才执行)数据流体系结构风格4全文共51页,当前为第24页。2021/8/1425采用推式策略的被动过滤器数据流体系结构风格4全文共51页,当前为第25页。2021/8/1426采用拉式策略的被动过滤器数据流体系结构风格4全文共51页,当前为第26页。2021/8/1427一个混合型的管道-过滤器系统数据流体系结构风格4全文共51页,当前为第27页。2021/8/1428一个混合型的管道-过滤器系统数据流体系结构风格4全文共51页,当前为第28页。2021/8/1429带有缓冲区的混合型管道-过滤器系统数据流体系结构风格4全文共51页,当前为第29页。2021/8/1430带有缓冲区的混合型管道-过滤器系统数据流体系结构风格4全文共51页,当前为第30页。2021/8/1431过滤器的状态停止状态:表示过滤器处于待启动状态,当外部启动过滤器后,过滤器处于处理状态。处理状态:表示过滤器正处理输入数据队列中的数据。等待状态:表示过滤器的输入数据队列为空,此时过滤器等待,当有新的数据输入时,过滤器处于处理状态。数据流体系结构风格4全文共51页,当前为第31页。2021/8/1432Pipe-And-Filter风格的典型应用数据流体系结构风格4全文共51页,当前为第32页。2021/8/1433Pipe-And-Filter风格的典型应用Complier(scan,parse,generatecode,..)(编译器)Unixpipes(Unix管道)Imageprocessing(图像处理)Signalprocessing(信号处理)Voiceandvideostreaming(声音与图像处理)…数据流体系结构风格4全文共51页,当前为第33页。2021/8/1434管道-过滤器风格的例子数据流体系结构风格4全文共51页,当前为第34页。2021/8/1435管道-过滤器风格的例子:UnixShell数据流体系结构风格4全文共51页,当前为第35页。2021/8/1436管道-过滤器风格的例子:UnixShell数据流体系结构风格4全文共51页,当前为第36页。2021/8/1437管道-过滤器风格的例子:编译器(1)数据流体系结构风格4全文共51页,当前为第37页。2021/8/1438管道-过滤器风格的例子:编译器(2)数据流体系结构风格4全文共51页,当前为第38页。2021/8/1439管道-过滤器风格的优点使得系统中的构件具有良好的隐蔽性和高内聚、低耦合的特点;允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;支持软件复用:–只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;系统维护和增强系统性能简单:–新的过滤器可以添加到现有系统中来,旧的可以被改进的过滤器替换掉;允许对一些如吞吐量、死锁等属性的分析;支持并行执行:–每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。数据流体系结构风格4全文共51页,当前为第39页。2021/8/1440管道-过滤器风格的缺点通常导致进程成为批处理的结构–这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换;不适合处理交互的应用–当需要增量地显示改变时,这个问题尤为严重;因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。–绝大部分处理时间消耗在格式转换上数据流体系结构风格4全文共51页,当前为第40页。2021/8/14414.3顺序批处理风格
BatchSequentialStyle数据流体系结构风格4全文共51页,当前为第41页。2021/8/1442批处理风格的直观结构将用户输入的纸带上的数据写入磁带将磁带作为计算设备的输入,进行计算,得到输出结果打印计算结果数据流体系结构风格4全文共51页,当前为第42页。2021/8/1443批处理风格的直观结构数据流体系结构风格4全文共51页,当前为第43页。2021/8/1444基本定义Processingstepsareindependentprograms(每个处理步骤是一个独立的程序)Eachsteprunstocompletionbeforenextstepstarts(每一步必须在前一步结束后才能开始)Datatransmittedasawholebetweensteps(数据必须是完整的,以整体的方式传递)Typicalapplications(典型应用):–classicaldataprocessing(传统的数据处理)–programcompilation/computeraidedsoftwareengineering(程序编译/CASE工具)数据流体系结构风格4全文共51页,当前为第44页。2021/8/1445基本构成Components(processingsteps)areindependentprograms(基本构件:独立的应用程序)Connectorsaresometypeofmedia-traditionallymagnetictape(连接件:某种类型的媒质)Topology:Connectorsdefinedataflowgraph(连接件定义了相应的数据流图,表达拓扑结构)Eachsteprunstocompletionbeforethenextstepbegins(每一步骤必须在前一步骤完全结束之后方能开始)数据流体系结构风格4全文共5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度商铺租赁合同终止及市场租金指数挂钩协议
- 2025年度股东股份协议书:智慧城市建设项目股权分配及合作协议
- 自建房安全质量监督承包协议书(2025年度)
- 农村自建房建筑工程保险合同(2025年度)
- 二零二五年度教育机构学费返利合同
- 二零二五年度高端基金份额代持保密协议书
- 2025年度砖厂安全生产承包管理合同
- 二零二五年度汽修厂汽车维修技师职业健康检查合同
- 2025年度烟草店店铺转让与独家销售区域授权合同
- 2025年度水平定向钻施工与施工期环境保护合同
- (完整版)数字电子技术基础教案
- 小回沟矿井3.0Mt-a新建工程变更项目环评
- 汽车维修合同管理制度
- 2024中交二航局分包合同范本
- 2024年益阳医学高等专科学校单招职业适应性测试题库全面
- 2024年四川电力职业技术学院单招职业适应性测试题库新版
- (完整)低压配电柜技术规范
- 2024年注册安全工程师考试题库【含答案】
- 第2课《树立科学的世界观》第2框《用科学世界观指导人生发展》-【中职专用】《哲学与人生》同步课堂课件
- 南航航空安全员培训
- 焊接基础知识:焊接的缺陷及检验方法
评论
0/150
提交评论