




已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件體系結(jié)構(gòu)及應(yīng)用4數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格,主要內(nèi)容,4.1數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格的基本特征4.2管道-過濾器(pipe-and-filter)4.3批處理(batchsequential)4.4批處理與管道-過濾器的比較,4.1數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格的基本特征,數(shù)據(jù)流風(fēng)格的直觀理解,Adataflowsystemisoneinwhichtheavailabilityofdatacontrolstheomputation(數(shù)據(jù)的可用性決定著處理是否執(zhí)行)thestructureofthedesignisdominatedbyorderlymotionofdatafromprocesstoprocess(系統(tǒng)結(jié)構(gòu):數(shù)據(jù)在各處理之間的有序移動(dòng))inapuredataflowsystem,thereisnootherinteractionbetweenprocesses(在純數(shù)據(jù)流系統(tǒng)中,處理之間除了數(shù)據(jù)交換,沒有任何其他的交互),數(shù)據(jù)流風(fēng)格的基本構(gòu)件(COMPONENT),Components:dataprocessingcomponents(基本構(gòu)件:數(shù)據(jù)處理)Interfacesareinputportsandoutputports(構(gòu)件接口:輸入端口和輸出端口)Inputportsreaddata;outputportswritedata(從輸入端口讀取數(shù)據(jù),向輸出端口寫入數(shù)據(jù))Computationalmodel:readdatafrominputports,compute,writedatatooutputports(計(jì)算模型:從輸入端口讀數(shù),經(jīng)過計(jì)算/處理,然后寫到輸出端口),數(shù)據(jù)流風(fēng)格的連接件(CONNECTOR),Connectors:dataflow(datastream)(連接件:數(shù)據(jù)流)Uni-directional,usuallyasynchronous,buffered(單向、通常是異步、有緩沖)Interfacesarereaderandwriterroles(接口角色:reader和writer)Computationalmodel(計(jì)算模型:把數(shù)據(jù)從一個(gè)處理的輸出端口傳送到另一個(gè)處理的輸入端口),數(shù)據(jù)流風(fēng)格的拓?fù)浣Y(jié)構(gòu)(TOPOLOGY),數(shù)據(jù)流VS.控制流,在vonNeumann的計(jì)算機(jī)體系結(jié)構(gòu)中,有控制流與數(shù)據(jù)流之分;控制流(Controlflow)數(shù)據(jù)流(Dataflow)討論:二者有什么區(qū)別和聯(lián)系?能否分別舉出幾個(gè)例子?,兩種典型的數(shù)據(jù)流風(fēng)格,Pipe-and-Filter(管道-過濾器)BatchSequential(批處理),4.2管道與過濾器風(fēng)格PIPE-AND-FILTER,從“自來水管道系統(tǒng)”看Pipe-And-Filter,基本定義,語境:數(shù)據(jù)源源不斷的產(chǎn)生,系統(tǒng)需要對(duì)這些數(shù)據(jù)進(jìn)行若干處理(分析、計(jì)算、轉(zhuǎn)換等)。解決方案:把系統(tǒng)分解為幾個(gè)序貫的處理步驟,這些步驟之間通過數(shù)據(jù)流連接,一個(gè)步驟的輸出是另一個(gè)步驟的輸入;每個(gè)處理步驟由一個(gè)過濾器構(gòu)件(Filter)實(shí)現(xiàn);處理步驟之間的數(shù)據(jù)傳輸由管道(Pipe)負(fù)責(zé)。每個(gè)處理步驟(過濾器)都有一組輸入和輸出,過濾器從管道中讀取輸入的數(shù)據(jù)流,經(jīng)過內(nèi)部處理,然后產(chǎn)生輸出數(shù)據(jù)流并寫入管道中。,Pipe-And-Filter風(fēng)格的基本構(gòu)成,Components:Filtersprocessdatastreams(構(gòu)件:過濾器,處理數(shù)據(jù)流)Afilterencapsulatesaprocessingstep(algorithmorcomputation)(一個(gè)過濾器封裝了一個(gè)處理步驟)Datasourceanddatasinkareparticularfilters(數(shù)據(jù)源點(diǎn)和數(shù)據(jù)終止點(diǎn)可以看作是特殊的過濾器)Connectors:Apipeconnectsasourceandasinkfilter(連接件:管道,連接一個(gè)源和一個(gè)目的過濾器)Pipesmovedatafromafilteroutputtoafilterinput(轉(zhuǎn)發(fā)數(shù)據(jù)流)Dataisastreamof“objects”(數(shù)據(jù)是特定類型的“對(duì)象”流)Topology:Connectorsdefinedataflowgraph(連接器定義了數(shù)據(jù)流圖,形成拓?fù)浣Y(jié)構(gòu)),1過濾器(Filter),Incrementallytransformsomeofthesourcedataintosinkdata(目標(biāo):將源數(shù)據(jù)變換成目標(biāo)數(shù)據(jù))Streamtostreamtransformation(從“數(shù)據(jù)流”“數(shù)據(jù)流”的變換)enrichdatabycomputationandaddinginformation(通過計(jì)算和增加信息來豐富數(shù)據(jù))refinebydistillingdataorremovingirrelevantdata(通過濃縮和刪減來精煉數(shù)據(jù))transformdatabychangingitsrepresentation(通過改變數(shù)據(jù)表現(xiàn)方式來轉(zhuǎn)化數(shù)據(jù))decomposedatatomultiplestreams(將一個(gè)數(shù)據(jù)流分解為多個(gè)數(shù)據(jù)流)mergemultiplestreamsintoonestream(將多個(gè)數(shù)據(jù)流合并為一個(gè)數(shù)據(jù)流),過濾器對(duì)數(shù)據(jù)流的五種變換類型,過濾器讀取與處理數(shù)據(jù)流的方式,Incrementallytransformdatafromthesourcetothesink(遞增的讀取和消費(fèi)數(shù)據(jù)流)在輸入被完全消費(fèi)之前,輸出便產(chǎn)生了。,過濾器的一些基本特征,Filtersareindependententities,i.e.,nocontextinprocessingstreams(無上下文信息)nostatepreservationbetweeninstantiations(不保留狀態(tài))noknowledgeofupstream/downstreamfilters(對(duì)其他過濾器無任何了解)collectionscanbeusedtobufferthedatapassedthroughpipes:files,arrays,dictionaries,trees,etc.(可使用數(shù)據(jù)緩沖區(qū)臨時(shí)保存數(shù)據(jù)流)蓄水池,2管道(Pipe),Movedatafromafiltersoutputtoafiltersinput(ortoadeviceorfile)(作用:在過濾器之間傳送數(shù)據(jù))Onewayflowfromonedatasourcetoonedatasink(單向流)Apipemayimplementabuffer(可能具有緩沖區(qū))Pipesformdatatransmissiongraph(管道形成傳輸圖)不同的管道中流動(dòng)的數(shù)據(jù)流,具有不同的數(shù)據(jù)格式(Dataformat)。原因:數(shù)據(jù)在流過每一個(gè)過濾器時(shí),被過濾器進(jìn)行了豐富、精練、轉(zhuǎn)換、融合、分解等操作,因而發(fā)生了變化。,管道中流動(dòng)的數(shù)據(jù)類型,Pipebetweentwothreadsofasingleprocess(e.g.,JavaStreams)StreammaycontainreferencestosharedlanguageobjectsPipebetweentwoprocessesonasinglehostcomputer(e.g.,UNIXNamedPipes)streammaycontainreferencestosharedOSobjects(e.g.,files)Pipebetweentwoprocessesinadistributedsystem(e.g.,InternetSockets)StreamcontentslimitedtorawbytesProtocolsimplementhigh-levelabstractions(e.g.,passpipesasreference,passCOBAobjectreferences),管道中流動(dòng)的數(shù)據(jù)類型,Tradeoffcompatibilityandreusabilityeverythingisastreamvs.typesafetystreamofPersons,streamofTextsPopularstreamdataformatsrawbytestreamstreamofASCIItextlineswithlineseparatorrecordstream(recordattributesarestrings,separatedbytabulatororcomma)nestedrecordstream(recordattributeisinturnasequence)streamrepresentingatreetraversal(innernodes/leafnodesenumeratedinpreorder,postorder,inorder)typedstreamwithaheadercontainingitstypeinformation(e.g.,columnheadings)eventstreams(eventnameandeventarguments),管道-過濾器風(fēng)格的一些變化形式,數(shù)據(jù)流的分類:推式與拉式,Question:whatistheforcethatmakedataflow?(是什么力量推動(dòng)數(shù)據(jù)在管道中流動(dòng)?)Threechoice,allwithforceemanatingfromfilters:Push:datasourcepushesdataindownstreamdirection(推式:前面的過濾器把新產(chǎn)生的數(shù)據(jù)推入管道)Pull:datasinkpullsdatafromupstreamdirection(拉式:隨后的過濾器從管道中拉出所需數(shù)據(jù))Push/pull:afilterisactivelypullingfromupstream,computing,andpushingdownstream(推拉式:過濾器以循環(huán)的方式,從管道中拉出其輸入數(shù)據(jù),并將其處理產(chǎn)生的數(shù)據(jù)壓入后續(xù)管道),過濾器的分類:主動(dòng)與被動(dòng),Activefilter:driversthedataflowonthepipes.(主動(dòng)過濾器:驅(qū)動(dòng)數(shù)據(jù)流動(dòng),pull+push)Passivefilter:isdrivenbythedataflowonthe(input/output)pipes.(被動(dòng)過濾器:被管道中的輸入或輸出數(shù)據(jù)流所驅(qū)動(dòng))Attention:系統(tǒng)中至少有一個(gè)主動(dòng)過濾器(可以來自外部環(huán)境,如用戶輸入),被動(dòng)過濾器所采用的兩種策略,PullStrategy:Thefilterisapassiveobjectthatisdrivenbythesubsequentpipelineelementthatpullsoutputdatafromthefilter;(采用拉式策略的被動(dòng)過濾器:該過濾器不會(huì)主動(dòng)執(zhí)行,而是在后續(xù)過濾器的“拉”動(dòng)作的驅(qū)動(dòng)下才執(zhí)行)PushStrategy:Thefilterisapassiveobjectthatisdrivenbythepreviouspipelineelementthatpushesinputdataintothefilter.(采用推式策略的被動(dòng)過濾器:該過濾器不會(huì)主動(dòng)執(zhí)行,而是在前續(xù)過濾器的“推”動(dòng)作的驅(qū)動(dòng)下才執(zhí)行),采用推式策略的被動(dòng)過濾器,采用拉式策略的被動(dòng)過濾器,一個(gè)混合型的管道-過濾器系統(tǒng),一個(gè)混合型的管道-過濾器系統(tǒng),帶有緩沖區(qū)的混合型管道-過濾器系統(tǒng),帶有緩沖區(qū)的混合型管道-過濾器系統(tǒng),過濾器的狀態(tài),停止?fàn)顟B(tài):表示過濾器處于待啟動(dòng)狀態(tài),當(dāng)外部啟動(dòng)過濾器后,過濾器處于處理狀態(tài)。處理狀態(tài):表示過濾器正處理輸入數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。等待狀態(tài):表示過濾器的輸入數(shù)據(jù)隊(duì)列為空,此時(shí)過濾器等待,當(dāng)有新的數(shù)據(jù)輸入時(shí),過濾器處于處理狀態(tài)。,Pipe-And-Filter風(fēng)格的典型應(yīng)用,Pipe-And-Filter風(fēng)格的典型應(yīng)用,Complier(scan,parse,generatecode,.)(編譯器)Unixpipes(Unix管道)Imageprocessing(圖像處理)Signalprocessing(信號(hào)處理)Voiceandvideostreaming(聲音與圖像處理),管道-過濾器風(fēng)格的例子,管道-過濾器風(fēng)格的例子:UnixShell,管道-過濾器風(fēng)格的例子:UnixShell,管道-過濾器風(fēng)格的例子:編譯器(1),管道-過濾器風(fēng)格的例子:編譯器(2),管道-過濾器風(fēng)格的優(yōu)點(diǎn),使得系統(tǒng)中的構(gòu)件具有良好的隱蔽性和高內(nèi)聚、低耦合的特點(diǎn);允許設(shè)計(jì)者將整個(gè)系統(tǒng)的輸入/輸出行為看成是多個(gè)過濾器的行為的簡(jiǎn)單合成;支持軟件復(fù)用:只要提供適合在兩個(gè)過濾器之間傳送的數(shù)據(jù),任何兩個(gè)過濾器都可被連接起來;系統(tǒng)維護(hù)和增強(qiáng)系統(tǒng)性能簡(jiǎn)單:新的過濾器可以添加到現(xiàn)有系統(tǒng)中來,舊的可以被改進(jìn)的過濾器替換掉;允許對(duì)一些如吞吐量、死鎖等屬性的分析;支持并行執(zhí)行:每個(gè)過濾器是作為一個(gè)單獨(dú)的任務(wù)完成,因此可與其它任務(wù)并行執(zhí)行。,管道-過濾器風(fēng)格的缺點(diǎn),通常導(dǎo)致進(jìn)程成為批處理的結(jié)構(gòu)這是因?yàn)殡m然過濾器可增量式地處理數(shù)據(jù),但它們是獨(dú)立的,所以設(shè)計(jì)者必須將每個(gè)過濾器看成一個(gè)完整的從輸入到輸出的轉(zhuǎn)換;不適合處理交互的應(yīng)用當(dāng)需要增量地顯示改變時(shí),這個(gè)問題尤為嚴(yán)重;因?yàn)樵跀?shù)據(jù)傳輸上沒有通用的標(biāo)準(zhǔn),每個(gè)過濾器都增加了解析和合成數(shù)據(jù)的工作,這樣就導(dǎo)致了系統(tǒng)性能下降,并增加了編寫過濾器的復(fù)雜性。絕大部分處理時(shí)間消耗在格式轉(zhuǎn)換上,4.3順序批處理風(fēng)格BatchSequentialStyle,批處理風(fēng)格的直觀結(jié)構(gòu),將用戶輸入的紙帶上的數(shù)據(jù)寫入磁帶,將磁帶作為計(jì)算設(shè)備的輸入,進(jìn)行計(jì)算,得到輸出結(jié)果,打印計(jì)算結(jié)果,批處理風(fēng)格的直觀結(jié)構(gòu),基本定義,Processingstepsareindependentprograms(每個(gè)處理步驟是一個(gè)獨(dú)立的程序)Eachsteprunstocompletionbeforenextstepstarts(每一步必須在前一步結(jié)束后才能開始)Datatransmittedasawholebetweensteps(數(shù)據(jù)必須是完整的,以整體的方式傳遞)Typicalapplications(典型應(yīng)用):classicaldataprocessing(傳統(tǒng)的數(shù)據(jù)處理)programcompilation/computeraidedsoftwareengineering(程序編譯/CASE工具),基本構(gòu)成,Components(processingstep
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 風(fēng)力發(fā)電場(chǎng)環(huán)評(píng)報(bào)告書
- 中國(guó)兒童果味香粉行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告(2024-2030)
- 2025年中國(guó)遠(yuǎn)程智能柜員機(jī)市場(chǎng)前景預(yù)測(cè)及投資規(guī)劃研究報(bào)告
- 2025年中國(guó)畜牧機(jī)械制造行業(yè)市場(chǎng)深度分析及投資戰(zhàn)略研究報(bào)告
- 懷仁縣東作里水庫融資投資立項(xiàng)項(xiàng)目可行性研究報(bào)告(齊魯咨詢)
- 精細(xì)電路板行業(yè)深度研究分析報(bào)告(2024-2030版)
- 中國(guó)交叉帶式分揀系統(tǒng)行業(yè)市場(chǎng)前景預(yù)測(cè)及投資戰(zhàn)略研究報(bào)告
- 網(wǎng)站建設(shè)合同
- 版權(quán)代理合同
- 中國(guó)汽車應(yīng)急燈總成行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告(2024-2030)
- 村衛(wèi)生室年度校驗(yàn)工作總結(jié)
- 商務(wù)司機(jī)服務(wù)規(guī)范
- 2025年新思想概論考試題及答案
- 科學(xué)理財(cái)預(yù)防詐騙
- EPC項(xiàng)目-裝飾裝修EPC總承包工程-技術(shù)標(biāo)(實(shí)施計(jì)劃方案、實(shí)施技術(shù)方案、實(shí)施管理組織方案)
- 物業(yè)管理職責(zé)和職能
- 2025年輔警招聘考試試題庫-附答案(模擬題)
- 杭州市拱墅區(qū)2025招考社區(qū)專職工作人員高頻重點(diǎn)提升(共500題)附帶答案詳解
- 新《科學(xué)技術(shù)普及法》專題講座課件
- 博士申請(qǐng)全攻略
- (版)國(guó)家開放大學(xué)電大《組織行為學(xué)》機(jī)考終結(jié)性2套真題題庫及答案3
評(píng)論
0/150
提交評(píng)論