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.