Architektura przepływu danych

W architekturze przepływu danych cały system oprogramowania jest postrzegany jako seria przekształceń na kolejnych elementach lub zestawie danych wejściowych, w których dane i operacje są od siebie niezależne. W tym podejściu dane wchodzą do systemu, a następnie przepływają przez moduły pojedynczo, aż zostaną przypisane do jakiegoś miejsca docelowego (wyjście lub magazyn danych).

Połączenia między komponentami lub modułami mogą być realizowane jako strumień I / O, bufory I / O, połączenia potokowe lub inne typy połączeń. Dane mogą być przepuszczane w topologii grafu z cyklami, w strukturze liniowej bez cykli lub w strukturze drzewiastej.

Głównym celem tego podejścia jest osiągnięcie cech ponownego wykorzystania i możliwości modyfikacji. Jest odpowiedni dla aplikacji, które obejmują dobrze zdefiniowaną serię niezależnych transformacji danych lub obliczeń na uporządkowanych danych wejściowych i wyjściowych, takich jak kompilatory i aplikacje do przetwarzania danych biznesowych. Istnieją trzy typy sekwencji wykonania między modułami

  • Partia sekwencyjna
  • Tryb potoków i filtrów lub niesekwencyjny tryb rurociągów
  • Kontrola procesu

Batch Sequential

Batch sequential to klasyczny model przetwarzania danych, w którym podsystem transformacji danych może zainicjować swój proces dopiero po całkowitym przejściu poprzedniego podsystemu -

  • Przepływ danych przenosi pakiet danych jako całość z jednego podsystemu do drugiego.

  • Komunikacja między modułami odbywa się za pośrednictwem tymczasowych plików pośrednich, które mogą być usuwane przez kolejne podsystemy.

  • Ma zastosowanie do tych aplikacji, w których dane są grupowane, a każdy podsystem odczytuje powiązane pliki wejściowe i zapisuje pliki wyjściowe.

  • Typowe zastosowanie tej architektury obejmuje przetwarzanie danych biznesowych, takie jak bankowość i rachunki za media.

Zalety

  • Zapewnia prostsze podziały na podsystemy.

  • Każdy podsystem może być niezależnym programem pracującym na danych wejściowych i wytwarzającym dane wyjściowe.

Niedogodności

  • Zapewnia duże opóźnienia i niską przepustowość.

  • Nie zapewnia współbieżności i interaktywnego interfejsu.

  • Do wdrożenia wymagana jest kontrola zewnętrzna.

Architektura rur i filtrów

Podejście to kładzie nacisk na przyrostową transformację danych przez kolejny składnik. W tym podejściu przepływ danych jest sterowany przez dane, a cały system jest rozkładany na komponenty źródła danych, filtry, potoki i ujścia danych.

Połączenia między modułami to strumień danych, który jest buforem pierwszego wejścia / pierwszego wyjścia, który może być strumieniem bajtów, znaków lub dowolnego innego rodzaju. Główną cechą tej architektury jest jednoczesne i przyrostowe wykonywanie.

Filtr

Filtr to niezależny transformator strumienia danych lub przetworniki strumienia. Przekształca dane wejściowego strumienia danych, przetwarza je i zapisuje przekształcony strumień danych w potoku w celu przetworzenia przez następny filtr. Działa w trybie przyrostowym, w którym zaczyna działać, gdy tylko dane dotrą przez podłączony potok. Istnieją dwa rodzaje filtrów -active filter i passive filter.

Active filter

Filtr aktywny umożliwia podłączonym rurom pobieranie i wypychanie przekształconych danych. Działa z pasywnym potokiem, który zapewnia mechanizmy odczytu / zapisu dla ciągnięcia i pchania. Ten tryb jest używany w mechanizmach potoków i filtrów systemu UNIX.

Passive filter

Filtr pasywny umożliwia podłączonym rurom wpychanie i pobieranie danych. Działa z aktywnym potokiem, który pobiera dane z filtru i wypycha dane do następnego filtru. Musi zapewniać mechanizm odczytu / zapisu.

Zalety

  • Zapewnia współbieżność i wysoką przepustowość w przypadku nadmiernego przetwarzania danych.

  • Zapewnia możliwość ponownego użycia i upraszcza konserwację systemu.

  • Zapewnia modyfikowalność i niskie sprzężenie między filtrami.

  • Zapewnia prostotę, oferując wyraźne podziały między dowolnymi dwoma filtrami połączonymi rurami.

  • Zapewnia elastyczność dzięki obsłudze wykonywania sekwencyjnego i równoległego.

Niedogodności

  • Nie nadaje się do dynamicznych interakcji.

  • Do transmisji danych w formatach ASCII potrzebny jest niski wspólny mianownik.

  • Narzut związany z transformacją danych między filtrami.

  • Nie zapewnia możliwości współpracy filtrów w celu rozwiązania problemu.

  • Trudne do dynamicznej konfiguracji tej architektury.

Rura

Potoki są bezstanowe i przenoszą strumień binarny lub znakowy, który istnieje między dwoma filtrami. Może przenosić strumień danych z jednego filtra do drugiego. Potoki używają niewielkiej ilości informacji kontekstowych i nie zachowują żadnych informacji o stanie między wystąpieniami.

Architektura sterowania procesami

Jest to typ architektury przepływu danych, w którym dane nie są ani sekwencyjnym, ani potokowym strumieniem wsadowym. Przepływ danych pochodzi ze zbioru zmiennych, które sterują przebiegiem procesu. Rozkłada cały system na podsystemy lub moduły i łączy je.

Rodzaje podsystemów

Architektura sterowania procesem miałaby rozszerzenie processing unit do zmiany zmiennych sterujących procesem oraz a controller unit do obliczania ilości zmian.

Jednostka sterująca musi mieć następujące elementy -

  • Controlled Variable- Zmienna kontrolowana zawiera wartości dla systemu bazowego i powinna być mierzona przez czujniki. Na przykład prędkość w tempomacie.

  • Input Variable- Mierzy wkład do procesu. Na przykład temperatura powietrza powrotnego w układzie regulacji temperatury

  • Manipulated Variable - Wartość zmiennej manipulowanej jest regulowana lub zmieniana przez sterownik.

  • Process Definition - Zawiera mechanizmy manipulowania niektórymi zmiennymi procesowymi.

  • Sensor - Uzyskuje wartości zmiennych procesowych związanych ze sterowaniem i może służyć jako odniesienie zwrotne do ponownego obliczenia zmiennych manipulowanych.

  • Set Point - Jest to żądana wartość zmiennej kontrolowanej.

  • Control Algorithm - Służy do podejmowania decyzji o manipulowaniu zmiennymi procesowymi.

Obszary zastosowań

Architektura sterowania procesami jest odpowiednia w następujących dziedzinach -

  • Projektowanie oprogramowania systemu wbudowanego, w którym manipuluje się systemem za pomocą zmiennych danych sterujących procesem.

  • Zastosowania, których celem jest utrzymanie określonych właściwości wyników procesu przy zadanych wartościach odniesienia.

  • Ma zastosowanie do tempomatu samochodowego i systemów kontroli temperatury w budynku.

  • Oprogramowanie systemowe czasu rzeczywistego do sterowania samochodowymi hamulcami przeciwblokującymi, elektrowniami jądrowymi itp.