




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件体系结构及应用4数据流体系结构风格 主要内容 4 1数据流体系结构风格的基本特征4 2管道 过滤器 pipe and filter 4 3批处理 batchsequential 4 4批处理与管道 过滤器的比较 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 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 批处理风格的直观结构 将用户输入的纸带上的数据写入磁带 将磁带作为计算设备的输入 进行计算 得到输出结果 打印计算结果 批处理风格的直观结构 基本定义 Processingstepsareindependentprograms 每个处理步骤是一个独立的程序 Eachsteprunstocompletionbeforenextstepstarts 每一步必须在前一步结束后才能开始 Datatransmittedasawholebetweensteps 数据必须是完整的 以整体的方式传递 Typicalapplications 典型应用 classicaldataprocessing 传统的数据处理 programcompilation computeraidedsoftwareengineering 程序编译 CASE工具 基本构成 Components processingsteps areindependentprograms 基本构件 独立的应用程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年4月重庆医科大学附属第三医院招聘医师、医技、护理、行政、其他岗位模拟试卷有答案详解
- 2025嘉兴市保安服务有限公司招聘2人考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025年攀枝花市盐边县事业单位春季引才考核的模拟试卷及1套参考答案详解
- 2025河南郑州智能科技职业学院招聘考前自测高频考点模拟试题附答案详解(模拟题)
- 2025湖北武汉大学中南医院咸宁医院咸宁市第一人民医院招聘15人模拟试卷有答案详解
- 2025年福建省龙岩市武平县招聘教育卫生干部10人模拟试卷有答案详解
- 2025安徽蚌埠市《固镇县任桥镇2025年面向全县公开招聘村级后备干部》考前自测高频考点模拟试题及1套参考答案详解
- 山西省【中职专业高考】2025年中职高考对口升学(理论考试)真题卷【农林牧渔大类】模拟练习
- 2025广东珠海市香洲区招聘卫生健康系统事业单位人员10人及完整答案详解一套
- IBI-325-生命科学试剂-MCE
- 热射病护理病例讨论
- 软装事业部成本控制计划
- 2025年江苏二级造价工程师考试《建设工程造价管理基础知识》真题(含答案)
- 光伏土建培训课件
- 爱心义卖班会课课件
- 化验员职业技能培训考试题库及答案(含各题型)
- 2025年广东省中考历史试题卷(含答案详解)
- 大米直播促销活动方案
- 阴挺的中医护理
- 2025-2030中国便携式卫星通信终端行业前景动态与投资战略研究报告
- 过敏反应的防治与治疗讲课件
评论
0/150
提交评论