数据流体系结构风格详解演示文稿_第1页
数据流体系结构风格详解演示文稿_第2页
数据流体系结构风格详解演示文稿_第3页
数据流体系结构风格详解演示文稿_第4页
数据流体系结构风格详解演示文稿_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

数据流体系结构风格详解演示文稿目前一页\总数四十五页\编于十四点优选数据流体系结构风格目前二页\总数四十五页\编于十四点4.1数据流体系结构风格

的基本特征目前三页\总数四十五页\编于十四点数据流风格的直观理解Adataflowsystemisoneinwhich–theavailabilityofdatacontrolstheomputation(数据的可用性决定着处理<计算单元>是否执行)–thestructureofthedesignisdominatedbyorderlymotionofdatafromprocesstoprocess(系统结构:数据在各处理之间的有序移动)–inapuredataflowsystem,thereisnootherinteractionbetweenprocesses(在纯数据流系统中,处理之间除了数据交换,没有任何其他的交互)目前四页\总数四十五页\编于十四点数据流风格的基本构件(COMPONENT)Components:dataprocessingcomponents(基本构件:数据处理)–Interfacesareinputportsandoutputports(构件接口:输入端口和输出端口)–Inputportsreaddata;outputportswritedata(从输入端口读取数据,向输出端口写入数据)–Computationalmodel:readdatafrominputports,compute,writedatatooutputports(计算模型:从输入端口读数,经过计算/处理,然后写到输出端口)目前五页\总数四十五页\编于十四点数据流风格的连接件(CONNECTOR)Connectors:dataflow(datastream)(连接件:数据流)–Uni-directional,usuallyasynchronous,buffered(单向、通常是异步、有缓冲)–Interfacesarereaderandwriterroles(接口角色:reader和writer)–Computationalmodel(计算模型:把数据从一个处理的输出端口传送到另一个处理的输入端口)目前六页\总数四十五页\编于十四点数据流风格的拓扑结构(TOPOLOGY)目前七页\总数四十五页\编于十四点数据流VS.控制流在vonNeumann的计算机体系结构中,有控制流与数据流之分;–控制流(Controlflow)–数据流(Dataflow)讨论:二者有什么区别和联系?能否分别举出几个例子?目前八页\总数四十五页\编于十四点两种典型的数据流风格Pipe-and-Filter(管道-过滤器)BatchSequential(批处理)目前九页\总数四十五页\编于十四点4.2管道与过滤器风格

PIPE-AND-FILTER目前十页\总数四十五页\编于十四点从“自来水管道系统”看Pipe-And-Filter目前十一页\总数四十五页\编于十四点基本定义语境:数据源源不断的产生,系统需要对这些数据进行若干处理(分析、计算、转换等)。解决方案:–把系统分解为几个序贯的处理步骤,这些步骤之间通过数据流连接,一个步骤的输出是另一个步骤的输入;–每个处理步骤由一个过滤器构件(Filter)实现;–处理步骤之间的数据传输由管道(Pipe)负责。每个处理步骤(过滤器)都有一组输入和输出,过滤器从管道中读取输入的数据流,经过内部处理,然后产生输出数据流并写入管道中。目前十二页\总数四十五页\编于十四点Pipe-And-Filter风格的基本构成Components:Filters—processdatastreams(构件:过滤器,处理数据流)–Afilterencapsulatesaprocessingstep(algorithmorcomputation)(一个过滤器封装了一个处理步骤)–Datasourceanddatasinkareparticularfilters(数据源点和数据终止点可以看作是特殊的过滤器)Connectors:Apipeconnectsasourceandasinkfilter(连接件:管道,连接一个源和一个目的过滤器)–Pipesmovedatafromafilteroutputtoafilterinput(转发数据流)–Dataisastreamof“objects”(数据是特定类型的“对象”流)Topology:Connectorsdefinedataflowgraph(连接器定义了数据流图,形成拓扑结构)目前十三页\总数四十五页\编于十四点1过滤器(Filter)Incrementallytransformsomeofthesourcedataintosinkdata(目标:将源数据变换成目标数据)Streamtostreamtransformation(从“数据流”“数据流”的变换)–enrichdatabycomputationandaddinginformation(通过计算和增加信息来丰富数据)–refinebydistillingdataorremovingirrelevantdata(通过浓缩和删减来精炼数据)–transformdatabychangingitsrepresentation(通过改变数据表现方式来转化数据)–decomposedatatomultiplestreams(将一个数据流分解为多个数据流)–mergemultiplestreamsintoonestream(将多个数据流合并为一个数据流)目前十四页\总数四十五页\编于十四点过滤器对数据流的五种变换类型目前十五页\总数四十五页\编于十四点过滤器读取与处理数据流的方式Incrementallytransformdatafromthesourcetothesink(递增的读取和消费数据流)–在输入被完全消费之前,输出便产生了。目前十六页\总数四十五页\编于十四点过滤器的一些基本特征Filtersareindependententities,i.e.,–nocontextinprocessingstreams(无上下文信息)–nostatepreservationbetweeninstantiations(不保留状态)–noknowledgeofupstream/downstreamfilters(对其他过滤器无任何了解)–collectionscanbeusedtobufferthedatapassedthroughpipes:files,arrays,dictionaries,trees,etc.(可使用数据缓冲区临时保存数据流)•蓄水池目前十七页\总数四十五页\编于十四点2管道(Pipe)Movedatafromafilter’soutputtoafilter’sinput(ortoadeviceorfile)(作用:在过滤器之间传送数据)–Onewayflowfromonedatasourcetoonedatasink(单向流)–Apipemayimplementabuffer(可能具有缓冲区)–Pipesformdatatransmissiongraph(管道形成传输图)不同的管道中流动的数据流,具有不同的数据格式(Dataformat)。原因:数据在流过每一个过滤器时,被过滤器进行了丰富、精练、转换、融合、分解等操作,因而发生了变化。目前十八页\总数四十五页\编于十四点管道中流动的数据类型Pipebetweentwothreadsofasingleprocess(e.g.,JavaStreams)–StreammaycontainreferencestosharedlanguageobjectsPipebetweentwoprocessesonasinglehostcomputer(e.g.,UNIXNamedPipes)–streammaycontainreferencestosharedOSobjects(e.g.,files)Pipebetweentwoprocessesinadistributedsystem(e.g.,InternetSockets)–Streamcontentslimitedto"rawbytes"–Protocolsimplementhigh-levelabstractions(e.g.,passpipesasreference,passCOBAobjectreferences)目前十九页\总数四十五页\编于十四点管道中流动的数据类型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)目前二十页\总数四十五页\编于十四点管道-过滤器风格的一些变化形式目前二十一页\总数四十五页\编于十四点数据流的分类:推式与拉式Question:whatistheforcethatmakedataflow?(是什么力量推动数据在管道中流动?)Threechoice,allwithforceemanatingfromfilters:–Push:datasourcepushesdataindownstreamdirection(推式:前面的过滤器把新产生的数据推入管道)–Pull:datasinkpullsdatafromupstreamdirection(拉式:随后的过滤器从管道中拉出所需数据)–Push/pull:afilterisactivelypullingfromupstream,computing,andpushingdownstream(推拉式:过滤器以循环的方式,从管道中拉出其输入数据,并将其处理产生的数据压入后续管道)目前二十二页\总数四十五页\编于十四点过滤器的分类:主动与被动Activefilter:driversthedataflowonthepipes.(主动过滤器:驱动数据流动,pull+push)Passivefilter:isdrivenbythedataflowonthe(input/output)pipes.(被动过滤器:被管道中的输入或输出数据流所驱动)Attention:系统中至少有一个主动过滤器(可以来自外部环境,如用户输入)目前二十三页\总数四十五页\编于十四点被动过滤器所采用的两种策略PullStrategy:Thefilterisapassiveobjectthatisdrivenbythesubsequentpipelineelementthatpullsoutputdatafromthefilter;(采用拉式策略的被动过滤器:该过滤器不会主动执行,而是在后续过滤器的“拉”动作的驱动下才执行)PushStrategy:Thefilterisapassiveobjectthatisdrivenbythepreviouspipelineelementthatpushesinputdataintothefilter.(采用推式策略的被动过滤器:该过滤器不会主动执行,而是在前续过滤器的“推”动作的驱动下才执行)目前二十四页\总数四十五页\编于十四点采用推式策略的被动过滤器目前二十五页\总数四十五页\编于十四点采用拉式策略的被动过滤器目前二十六页\总数四十五页\编于十四点一个混合型的管道-过滤器系统目前二十七页\总数四十五页\编于十四点一个混合型的管道-过滤器系统目前二十八页\总数四十五页\编于十四点带有缓冲区的混合型管道-过滤器系统目前二十九页\总数四十五页\编于十四点带有缓冲区的混合型管道-过滤器系统目前三十页\总数四十五页\编于十四点过滤器的状态停止状态:表示过滤器处于待启动状态,当外部启动过滤器后,过滤器处于处理状态。处理状态:表示过滤器正处理输入数据队列中的数据。等待状态:表示过滤器的输入数据队列为空,此时过滤器等待,当有新的数据输入时,过滤器处于处理状态。目前三十一页\总数四十五页\编于十四点Pipe-And-Filter风格的典型应用目前三十二页\总数四十五页\编于十四点Pipe-And-Filter风格的典型应用Complier(scan,parse,generatecode,..)(编译器)Unixpipes(Unix管道)Imageprocessing(图像处理)Signalprocessing(信号处理)Voiceandvideostreaming(声音与图像处理)…目前三十三页\总数四十五页\编于十四点管道-过滤器风格的例子目前三十四页\总数四十五页\编于十四点管道-过滤器风格的例子:UnixShell目前三十五页\总数四十五页\编于十四点管道-过滤器风格的例子:UnixShell目前三十六页\总数四十五页\编于十四点管道-过滤器风格的例子:编译器(1)目前三十七页\总数四十五页\编于十四点管道-过滤器风格的例子:编译器(2)目前三十八页\总数四十五页\编于十四点管道-过滤器风格的优点使得系统中的构件具有良好的隐蔽性和高内聚、低耦合的特点;允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;支持软件复用:–只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;系统维护和增强系统性能简单:–新的过滤器可以添加到现有系统中来,旧的可以被改进的过滤器替换掉;允许对一些如吞吐量、死锁等属性的分析;支持并行执行:–每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。目前三十九页\总数四十五页\编于十四点管道-过滤器风格的缺点通常导致进程成为批处理的结构–这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换;不适合处理交互的应用–当需要增量地显示改变时,这个问题尤为严重;因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。–绝大部分处理时间消耗在格式转换上目前四十页\总数四十五页\编于十四点4.3顺序批处理风格

BatchSequentialStyle目前四十一页\

温馨提示

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

评论

0/150

提交评论