En la arquitectura de flujo de datos, todo el sistema de software es vista
como una serie de transformaciones en piezas consecutivas o conjunto de datos de entrada, donde los datos y las operaciones son independientes entre sí. En este enfoque, los datos de entrada en el sistema fluyen a través de los módulos a la vez hasta que se asignan a un destino final (salida o un almacén de datos). Las conexiones entre los componentes o módulos pueden implementarse como corriente de E / S, hilo, u otros tipos de conexiones. Los datos se pueden volar en la topología gráfico con los ciclos, en una estructura lineal sin ciclos, o en una estructura de tipo árbol. El objetivo principal de este enfoque es lograr las cualidades de reutilización y modificabilidad. Es adecuado para aplicaciones que involucran una serie bien definida de las transformaciones de datos independientes o cálculos en la entrada y la salida ordenada definida como compiladores y aplicaciones de procesamiento de datos de la empresa. Hay:
secuencial por lotes
Tubo y filtro o modo de canalización no secuencial
Secuencial por lotes
Secuencial por lotes es un modelo de procesamiento de datos clásico, en el que un subsistema de transformación de datos puede iniciar su proceso sólo después de su subsistema anterior es completamente a través de: El flujo de datos lleva un lote de datos en su conjunto de un subsistema a otro. Las comunicaciones entre los módulos se llevan a cabo a través de archivos intermedios temporales que se pueden eliminar por subsistemas sucesivas. Es aplicable para aquellas aplicaciones en las que se procesan por lotes de datos, y cada subsistema lee los archivos de entrada relacionados y escribe los archivos de salida. aplicación típica de esta arquitectura incluye el procesamiento de datos de la empresa, como la banca y la facturación de servicios públicos. Ventajas Normalmente, Batch secuencial proporciona divisiones más simples en subsistemas. Cada subsistema puede ser un programa independiente que trabaja en los datos de entrada y de la producción de datos de salida. Desventajas No proporciona la concurrencia y la interfaz interactiva proporciona más bien alta latencia y bajo rendimiento. Además, se requiere un control externo para la ejecución. Tubo y filtro de Arquitectura Este enfoque pone énfasis en la transformación gradual de los datos por componentes sucesivos. En este enfoque, el flujo de datos es conducido por datos y todo el sistema se descompone en componentes de origen de datos, filtros, tuberías, y los sumideros de datos. Las conexiones entre los módulos son de flujo de datos que es primero en entrar / primero de salida de búfer que puede ser flujo de bytes, caracteres o cualquier otro tipo de este tipo. La característica principal de esta arquitectura es su ejecución concurrente. Filtrar Un filtro es un transformador de corriente de datos o la transmisión en transductores independientes. Transforma los datos de la corriente de datos de entrada, lo procesa, y escribe el flujo de datos transformado en un tubo para el siguiente filtro de procesar. Funciona de un modo gradual, en el que comienza a trabajar tan pronto como llegan los datos a través del tubo conectado. Hay dos tipos de filtros: Ventajas Tiene las siguientes ventajas - Proporciona la concurrencia y de alto rendimiento para el procesamiento de datos excesiva. Proporciona capacidad de reutilización y simplifica el mantenimiento del sistema. Proporciona capacidad de modificación y baja de acoplamiento entre los filtros. Proporciona simplicidad, ofreciendo claras divisiones entre los dos filtros conectados por tubería. Proporciona flexibilidad mediante el apoyo a la ejecución, tanto secuencial y paralela. Desventajas Tiene algunas de las siguientes desventajas - No es adecuado para interacciones dinámicas. Se necesita un denominador común bajo para la transmisión de datos en formatos ASCII. Sobrecarga de transformación de datos entre los filtros. No proporciona una manera para filtros para interactuar en cooperación para resolver un problema. Difícil de configurar esta arquitectura dinámicamente. Tubo: Los tubos están sin estado y llevan flujo binario o carácter que existe entre dos filtros. Se puede mover una corriente de datos a partir de un filtro a otro. Tubos usan un poco de información contextual y retienen ninguna información de estado entre instancias.