数据流体系结构风格ppt课件.ppt_第1页
数据流体系结构风格ppt课件.ppt_第2页
数据流体系结构风格ppt课件.ppt_第3页
数据流体系结构风格ppt课件.ppt_第4页
数据流体系结构风格ppt课件.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件体系结构及应用4数据流体系结构风格,1,主要内容,4.1数据流体系结构风格的基本特征4.2管道-过滤器(pipe-and-filter)4.3批处理(batchsequential)4.4批处理与管道-过滤器的比较,2,4.1数据流体系结构风格的基本特征,3,数据流风格的直观理解,Adataflowsystemisoneinwhichtheavailabilityofdatacontrolstheomputation(数据的可用性决定着处理是否执行)thestructureofthedesignisdominatedbyorderlymotionofdatafromprocesstoprocess(系统结构:数据在各处理之间的有序移动)inapuredataflowsystem,thereisnootherinteractionbetweenprocesses(在纯数据流系统中,处理之间除了数据交换,没有任何其他的交互),4,数据流风格的基本构件(COMPONENT),Components:dataprocessingcomponents(基本构件:数据处理)Interfacesareinputportsandoutputports(构件接口:输入端口和输出端口)Inputportsreaddata;outputportswritedata(从输入端口读取数据,向输出端口写入数据)Computationalmodel:readdatafrominputports,compute,writedatatooutputports(计算模型:从输入端口读数,经过计算/处理,然后写到输出端口),5,数据流风格的连接件(CONNECTOR),Connectors:dataflow(datastream)(连接件:数据流)Uni-directional,usuallyasynchronous,buffered(单向、通常是异步、有缓冲)Interfacesarereaderandwriterroles(接口角色:reader和writer)Computationalmodel(计算模型:把数据从一个处理的输出端口传送到另一个处理的输入端口),6,数据流风格的拓扑结构(TOPOLOGY),7,数据流VS.控制流,在vonNeumann的计算机体系结构中,有控制流与数据流之分;控制流(Controlflow)数据流(Dataflow)讨论:二者有什么区别和联系?能否分别举出几个例子?,8,两种典型的数据流风格,Pipe-and-Filter(管道-过滤器)BatchSequential(批处理),9,4.2管道与过滤器风格PIPE-AND-FILTER,10,从“自来水管道系统”看Pipe-And-Filter,11,基本定义,语境:数据源源不断的产生,系统需要对这些数据进行若干处理(分析、计算、转换等)。解决方案:把系统分解为几个序贯的处理步骤,这些步骤之间通过数据流连接,一个步骤的输出是另一个步骤的输入;每个处理步骤由一个过滤器构件(Filter)实现;处理步骤之间的数据传输由管道(Pipe)负责。每个处理步骤(过滤器)都有一组输入和输出,过滤器从管道中读取输入的数据流,经过内部处理,然后产生输出数据流并写入管道中。,12,Pipe-And-Filter风格的基本构成,Components:Filtersprocessdatastreams(构件:过滤器,处理数据流)Afilterencapsulatesaprocessingstep(algorithmorcomputation)(一个过滤器封装了一个处理步骤)Datasourceanddatasinkareparticularfilters(数据源点和数据终止点可以看作是特殊的过滤器)Connectors:Apipeconnectsasourceandasinkfilter(连接件:管道,连接一个源和一个目的过滤器)Pipesmovedatafromafilteroutputtoafilterinput(转发数据流)Dataisastreamof“objects”(数据是特定类型的“对象”流)Topology:Connectorsdefinedataflowgraph(连接器定义了数据流图,形成拓扑结构),13,1过滤器(Filter),Incrementallytransformsomeofthesourcedataintosinkdata(目标:将源数据变换成目标数据)Streamtostreamtransformation(从“数据流”“数据流”的变换)enrichdatabycomputationandaddinginformation(通过计算和增加信息来丰富数据)refinebydistillingdataorremovingirrelevantdata(通过浓缩和删减来精炼数据)transformdatabychangingitsrepresentation(通过改变数据表现方式来转化数据)decomposedatatomultiplestreams(将一个数据流分解为多个数据流)mergemultiplestreamsintoonestream(将多个数据流合并为一个数据流),14,过滤器对数据流的五种变换类型,15,过滤器读取与处理数据流的方式,Incrementallytransformdatafromthesourcetothesink(递增的读取和消费数据流)在输入被完全消费之前,输出便产生了。,16,过滤器的一些基本特征,Filtersareindependententities,i.e.,nocontextinprocessingstreams(无上下文信息)nostatepreservationbetweeninstantiations(不保留状态)noknowledgeofupstream/downstreamfilters(对其他过滤器无任何了解)collectionscanbeusedtobufferthedatapassedthroughpipes:files,arrays,dictionaries,trees,etc.(可使用数据缓冲区临时保存数据流)蓄水池,17,2管道(Pipe),Movedatafromafiltersoutputtoafiltersinput(ortoadeviceorfile)(作用:在过滤器之间传送数据)Onewayflowfromonedatasourcetoonedatasink(单向流)Apipemayimplementabuffer(可能具有缓冲区)Pipesformdatatransmissiongraph(管道形成传输图)不同的管道中流动的数据流,具有不同的数据格式(Dataformat)。原因:数据在流过每一个过滤器时,被过滤器进行了丰富、精练、转换、融合、分解等操作,因而发生了变化。,18,管道中流动的数据类型,Pipebetweentwothreadsofasingleprocess(e.g.,JavaStreams)StreammaycontainreferencestosharedlanguageobjectsPipebetweentwoprocessesonasinglehostcomputer(e.g.,UNIXNamedPipes)streammaycontainreferencestosharedOSobjects(e.g.,files)Pipebetweentwoprocessesinadistributedsystem(e.g.,InternetSockets)StreamcontentslimitedtorawbytesProtocolsimplementhigh-levelabstractions(e.g.,passpipesasreference,passCOBAobjectreferences),19,管道中流动的数据类型,Tradeoffcompatibilityandreusabilityeverythingisastreamvs.typesafetystreamofPersons,streamofTextsPopularstreamdataformatsrawbytestreamstreamofASCIItextlineswithlineseparatorrecordstream(recordattributesarestrings,separatedbytabulatororcomma)nestedrecordstream(recordattributeisinturnasequence)streamrepresentingatreetraversal(innernodes/leafnodesenumeratedinpreorder,postorder,inorder)typedstreamwithaheadercontainingitstypeinformation(e.g.,columnheadings)eventstreams(eventnameandeventarguments),20,管道-过滤器风格的一些变化形式,21,数据流的分类:推式与拉式,Question:whatistheforcethatmakedataflow?(是什么力量推动数据在管道中流动?)Threechoice,allwithforceemanatingfromfilters:Push:datasourcepushesdataindownstreamdirection(推式:前面的过滤器把新产生的数据推入管道)Pull:datasinkpullsdatafromupstreamdirection(拉式:随后的过滤器从管道中拉出所需数据)Push/pull:afilterisactivelypullingfromupstream,computing,andpushingdownstream(推拉式:过滤器以循环的方式,从管道中拉出其输入数据,并将其处理产生的数据压入后续管道),22,过滤器的分类:主动与被动,Activefilter:driversthedataflowonthepipes.(主动过滤器:驱动数据流动,pull+push)Passivefilter:isdrivenbythedataflowonthe(input/output)pipes.(被动过滤器:被管道中的输入或输出数据流所驱动)Attention:系统中至少有一个主动过滤器(可以来自外部环境,如用户输入),23,被动过滤器所采用的两种策略,PullStrategy:Thefilterisapassiveobjectthatisdrivenbythesubsequentpipelineelementthatpullsoutputdatafromthefilter;(采用拉式策略的被动过滤器:该过滤器不会主动执行,而是在后续过滤器的“拉”动作的驱动下才执行)PushStrategy:Thefilterisapassiveobjectthatisdrivenbythepreviouspipelineelementthatpushesinputdataintothefilter.(采用推式策略的被动过滤器:该过滤器不会主动执行,而是在前续过滤器的“推”动作的驱动下才执行),24,采用推式策略的被动过滤器,25,采用拉式策略的被动过滤器,26,一个混合型的管道-过滤器系统,27,一个混合型的管道-过滤器系统,28,带有缓冲区的混合型管道-过滤器系统,29,带有缓冲区的混合型管道-过滤器系统,30,过滤器的状态,停止状态:表示过滤器处于待启动状态,当外部启动过滤器后,过滤器处于处理状态。处理状态:表示过滤器正处理输入数据队列中的数据。等待状态:表示过滤器的输入数据队列为空,此时过滤器等待,当有新的数据输入时,过滤器处于处理状态。,31,Pipe-And-Filter风格的典型应用,32,Pipe-And-Filter风格的典型应用,Complier(scan,parse,generatecode,.)(编译器)Unixpipes(Unix管道)Imageprocessing(图像处理)Signalprocessing(信号处理)Voiceandvideostreaming(声音与图像处理),33,管道-过滤器风格的例子,34,管道-过滤器风格的例子:UnixShell,35,管道-过滤器风格的例子:UnixShell,36,管道-过滤器风格的例子:编译器(1),37,管道-过滤器风格的例子:编译器(2),38,管道-过滤器风格的优点,使得系统中的构件具有良好的隐蔽性和高内聚、低耦合的特点;允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;支持软件复用:只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;系统维护和增强系统性能简单:新的过滤器可以添加到现有系统中来,旧的可以被改进的过滤器替换掉;允许对一些如吞吐量、死锁等属性的分析;支持并行执行:每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。,39,管道-过滤器风格的缺点,通常导致进程成为批处理的结构这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换;不适合处理交互的应用当需要增量地显示改变时,这个问题尤为严重;因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。绝大部分处理时间消耗在格式转换上,40,4.3顺序批处理风格BatchSequentialStyle,41,批处理风格的直观结构,将用户输入的纸带上的数据写入磁带,将磁带作为计算设备的输入,进行计算,得到输出结果,打印计算结果,42,批处理风格的直观结构,43,基本定义,Processingstepsareindependentprograms(每个处理步骤是一个独立的程序)Eachsteprunstocompletionbeforenextstepstarts(每一步必须在前一步结束后才能开始)Datatransmittedasawholebetweensteps(数据必须是完整的,以整体的方式传递)Typicalapplications(典型应用):classicaldataprocessing(传统的数据处理)programcompilation/computeraidedsoftwareengineering(程序编译/CASE工具),44,基本构成,Components(processingsteps)ar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论