Architettura del flusso di dati
Nell'architettura del flusso di dati, l'intero sistema software è visto come una serie di trasformazioni su pezzi consecutivi o insieme di dati di input, in cui i dati e le operazioni sono indipendenti l'uno dall'altro. In questo approccio, i dati entrano nel sistema e quindi fluiscono attraverso i moduli uno alla volta fino a quando non vengono assegnati a una destinazione finale (output o archivio dati).
Le connessioni tra i componenti o moduli possono essere implementate come flusso di I / O, buffer di I / O, tubazioni o altri tipi di connessioni. I dati possono essere volati nella topologia del grafico con cicli, in una struttura lineare senza cicli o in una struttura ad albero.
L'obiettivo principale di questo approccio è raggiungere le qualità di riutilizzo e modificabilità. È adatto per applicazioni che implicano una serie ben definita di trasformazioni o calcoli di dati indipendenti su input e output definiti in modo ordinato, come compilatori e applicazioni di elaborazione dati aziendali. Ci sono tre tipi di sequenze di esecuzione tra i moduli:
- Batch sequenziale
- Modalità pipe e filtro o pipeline non sequenziale
- Controllo di processo
Batch sequenziale
Il sequenziale batch è un modello di elaborazione dati classico, in cui un sottosistema di trasformazione dei dati può avviare il suo processo solo dopo che il suo sottosistema precedente è stato completamente completato:
Il flusso di dati trasporta un batch di dati nel suo insieme da un sottosistema a un altro.
Le comunicazioni tra i moduli avvengono tramite file temporanei intermedi che possono essere rimossi da sottosistemi successivi.
È applicabile per quelle applicazioni in cui i dati sono raggruppati e ogni sottosistema legge i file di input correlati e scrive i file di output.
L'applicazione tipica di questa architettura include l'elaborazione dei dati aziendali come la fatturazione bancaria e delle utenze.
Vantaggi
Fornisce divisioni più semplici sui sottosistemi.
Ogni sottosistema può essere un programma indipendente che lavora sui dati di input e produce dati di output.
Svantaggi
Fornisce latenza elevata e velocità effettiva ridotta.
Non fornisce concorrenza e interfaccia interattiva.
Per l'implementazione è necessario un controllo esterno.
Architettura di tubi e filtri
Questo approccio pone l'accento sulla trasformazione incrementale dei dati per componente successivo. In questo approccio, il flusso di dati è guidato dai dati e l'intero sistema viene scomposto in componenti di origine dati, filtri, pipe e pozzi di dati.
Le connessioni tra i moduli sono un flusso di dati che è un buffer first-in / first-out che può essere un flusso di byte, caratteri o qualsiasi altro tipo di questo tipo. La caratteristica principale di questa architettura è la sua esecuzione simultanea e incrementata.
Filtro
Un filtro è un trasformatore di flusso di dati indipendente o trasduttori di flusso. Trasforma i dati del flusso di dati di input, lo elabora e scrive il flusso di dati trasformato su una pipe per l'elaborazione del filtro successivo. Funziona in modalità incrementale, in cui inizia a funzionare non appena i dati arrivano attraverso il tubo collegato. Esistono due tipi di filtri:active filter e passive filter.
Active filter
Il filtro attivo consente alle pipe collegate di inserire i dati e di estrarre i dati trasformati. Funziona con tubo passivo, che fornisce meccanismi di lettura / scrittura per tirare e spingere. Questa modalità viene utilizzata nella pipe e nel meccanismo di filtro UNIX.
Passive filter
Il filtro passivo consente ai tubi collegati di inserire ed estrarre i dati. Funziona con il pipe attivo, che estrae i dati da un filtro e li inserisce nel filtro successivo. Deve fornire un meccanismo di lettura / scrittura.
Vantaggi
Fornisce concorrenza e velocità effettiva elevata per un'eccessiva elaborazione dei dati.
Fornisce riusabilità e semplifica la manutenzione del sistema.
Fornisce modificabilità e basso accoppiamento tra i filtri.
Fornisce semplicità offrendo chiare divisioni tra due filtri qualsiasi collegati da un tubo.
Fornisce flessibilità supportando l'esecuzione sequenziale e parallela.
Svantaggi
Non adatto per interazioni dinamiche.
Un basso denominatore comune è necessario per la trasmissione di dati in formati ASCII.
Overhead della trasformazione dei dati tra i filtri.
Non fornisce ai filtri un modo per interagire in modo cooperativo per risolvere un problema.
Difficile configurare questa architettura dinamicamente.
Tubo
Le pipe sono senza stato e trasportano un flusso binario o di caratteri che esiste tra due filtri. Può spostare un flusso di dati da un filtro all'altro. Le pipe utilizzano poche informazioni contestuali e non conservano informazioni sullo stato tra le istanze.
Architettura di controllo dei processi
È un tipo di architettura del flusso di dati in cui i dati non sono né flusso sequenziale in batch né flusso pipeline. Il flusso di dati proviene da un insieme di variabili, che controlla l'esecuzione del processo. Decompone l'intero sistema in sottosistemi o moduli e li collega.
Tipi di sottosistemi
Un'architettura di controllo del processo avrebbe un file processing unit per modificare le variabili di controllo del processo e a controller unit per calcolare l'ammontare delle modifiche.
Un'unità controller deve avere i seguenti elementi:
Controlled Variable- La variabile controllata fornisce i valori per il sistema sottostante e deve essere misurata dai sensori. Ad esempio, velocità nel sistema di controllo automatico della velocità.
Input Variable- Misura un input per il processo. Ad esempio, la temperatura dell'aria di ritorno nel sistema di controllo della temperatura
Manipulated Variable - Il valore della variabile manipolata viene regolato o modificato dal controller.
Process Definition - Include meccanismi per manipolare alcune variabili di processo.
Sensor - Ottiene i valori delle variabili di processo pertinenti al controllo e può essere utilizzato come riferimento di feedback per ricalcolare le variabili manipolate.
Set Point - È il valore desiderato per una variabile controllata.
Control Algorithm - Viene utilizzato per decidere come manipolare le variabili di processo.
Aree di applicazione
L'architettura di controllo del processo è adatta nei seguenti domini:
Progettazione di software di sistema integrato, in cui il sistema viene manipolato da dati variabili di controllo del processo.
Applicazioni, il cui scopo è mantenere proprietà specifiche degli output del processo a valori di riferimento dati.
Applicabile per il controllo automatico della velocità delle auto e dei sistemi di controllo della temperatura degli edifici.
Software di sistema in tempo reale per controllare i freni antibloccaggio delle automobili, le centrali nucleari, ecc.