
資料流架構
在資料流架構中,整個軟體系統被視為一系列對連續輸入資料塊或集合的轉換,其中資料和操作彼此獨立。在這種方法中,資料進入系統,然後依次流經各個模組,直到被分配到最終目的地(輸出或資料儲存)。
元件或模組之間的連線可以實現為I/O流、I/O緩衝區、管道或其他型別的連線。資料可以在具有迴圈的圖拓撲中流動,也可以線上性結構(無迴圈)或樹型結構中流動。
這種方法的主要目標是實現可重用性和可修改性。它適用於涉及一系列定義良好的獨立資料轉換或計算(對有序定義的輸入和輸出進行計算)的應用程式,例如編譯器和業務資料處理應用程式。模組之間有三種類型的執行序列:
- 批處理順序
- 管道和過濾器或非順序流水線模式
- 過程控制
批處理順序
批處理順序是經典的資料處理模型,其中資料轉換子系統只有在其前一個子系統完全完成後才能啟動其程序:
資料流將一批資料作為一個整體從一個子系統傳遞到另一個子系統。
模組之間的通訊透過臨時中間檔案進行,這些檔案可以由後續子系統刪除。
它適用於資料批次處理的應用程式,每個子系統讀取相關的輸入檔案並寫入輸出檔案。
這種架構的典型應用包括業務資料處理,例如銀行和公用事業計費。

優點
提供更簡單的子系統劃分。
每個子系統都可以是一個獨立的程式,對輸入資料進行處理併產生輸出資料。
缺點
提供高延遲和低吞吐量。
不提供併發性和互動式介面。
需要外部控制才能實現。
管道和過濾器架構
這種方法強調透過連續元件對資料進行增量轉換。在這種方法中,資料流由資料驅動,整個系統分解為資料來源、過濾器、管道和資料接收器元件。
模組之間的連線是資料流,它是一個先進先出緩衝區,可以是位元組流、字元流或任何其他型別的流。這種架構的主要特點是其併發和增量執行。
過濾器
過濾器是一個獨立的資料流轉換器或流轉換器。它轉換輸入資料流的資料,對其進行處理,並將轉換後的資料流寫入管道,供下一個過濾器處理。它以增量模式工作,只要資料透過連線的管道到達,它就開始工作。有兩種型別的過濾器:**主動過濾器**和**被動過濾器**。
主動過濾器
主動過濾器允許連線的管道拉入資料並推送轉換後的資料。它與被動管道一起操作,被動管道提供用於拉取和推送的讀/寫機制。此模式用於UNIX管道和過濾器機制。
被動過濾器
被動過濾器允許連線的管道壓入資料並拉出資料。它與主動管道一起操作,主動管道從過濾器拉取資料並將資料推送到下一個過濾器。它必須提供讀/寫機制。

優點
為大量資料處理提供併發性和高吞吐量。
提供可重用性並簡化系統維護。
提供可修改性和過濾器之間的低耦合。
透過提供連線由管道連線的任何兩個過濾器之間的清晰劃分來提供簡單性。
透過支援順序和並行執行來提供靈活性。
缺點
不適合動態互動。
需要低公分母來以ASCII格式傳輸資料。
過濾器之間資料轉換的開銷。
沒有提供一種方法讓過濾器協同互動來解決問題。
難以動態配置此架構。
管道
管道是無狀態的,它們承載存在於兩個過濾器之間的二進位制或字元流。它可以將資料流從一個過濾器移動到另一個過濾器。管道使用少量上下文資訊,並在例項化之間不保留狀態資訊。
過程控制架構
這是一種資料流架構,其中資料既不是批處理順序也不是流水線流。資料流來自一組變數,這些變數控制程序的執行。它將整個系統分解成子系統或模組,並將它們連線起來。
子系統型別
過程控制架構將具有用於更改過程控制變數的**處理單元**和用於計算更改量的**控制器單元**。
控制器單元必須具有以下元素:
**受控變數** - 受控變數為底層系統提供值,應由感測器測量。例如,巡航控制系統中的速度。
**輸入變數** - 測量輸入到過程中的值。例如,溫度控制系統中迴風溫度。
**操縱變數** - 操縱變數值由控制器調整或更改。
**過程定義** - 它包括操縱某些過程變數的機制。
**感測器** - 獲取與控制相關的過程變數的值,可以用作反饋參考來重新計算操縱變數。
**設定點** - 它是受控變數的期望值。
**控制演算法** - 用於決定如何操縱過程變數。
應用領域
過程控制架構適用於以下領域:
嵌入式系統軟體設計,其中系統由過程控制變數資料操縱。
目標是將過程輸出的指定屬性維持在給定參考值上的應用程式。
適用於汽車巡航控制和建築溫度控制系統。
即時系統軟體,用於控制汽車防抱死制動系統、核電站等。