管道-過濾器, Pipes and Filters是面向數據流的軟件體系結構。
它爲處理數據流的系統提供了一種結構。
單步數據處理封裝在一個過濾器中,數據在過濾器之間的管道傳輸。
以便實現對數據的多次操作。
如下圖所示:
data source(數據源),filter(過濾器)和data sink(數據匯點)三者,使用pipe(管道)進行連接
過濾器視爲組件。
管道視爲連接件。
管道將一個過濾器的輸出傳給另一個過濾器的輸入。
優點:
1.高效的並行效率(靈活使用active(主動) 過濾器)
2.過濾器可以重組/重用/可替換
3.不需要中間保存
缺點:
1.數據傳輸和轉化開銷大
2.錯誤處理複雜
過濾器有主動/被動之分(active/passive)
主動過濾器是指從上一級管道中取出pull數據
被動過濾器指接受上一級管道中的數據只接受push進來的數據
介紹幾個情況:
Write,向下一級組件寫操作(push)
data,數據流的流向
Read,向上一級組件讀(pull)
Transform,數據轉化操作
[1] 主動數據源 + 被動過濾器 + 被動數據匯點
[2] 被動數據源 + 被動過濾器 + 主動數據匯點
[3] 被動數據源 + 主動過濾器 + 主動數據匯點
[4] 被動數據源 + 多種主動過濾器 + 被動數據匯點
圖片參考B站up主,老曹同學的馬甲線,僅個人學習記錄。侵刪。