Arquitectura de flujo de datos
En la arquitectura de flujo de datos, todo el sistema de software se ve como una serie de transformaciones en piezas consecutivas o conjuntos de datos de entrada, donde los datos y las operaciones son independientes entre sí. En este enfoque, los datos ingresan al sistema y luego fluyen a través de los módulos uno a la vez hasta que se asignan a algún destino final (salida o un almacén de datos).
Las conexiones entre los componentes o módulos se pueden implementar como flujo de E / S, búferes de E / S, canalizaciones u otros tipos de conexiones. Los datos pueden volar en la topología del gráfico con ciclos, en una estructura lineal sin ciclos o en una estructura de tipo árbol.
El principal objetivo de este enfoque es lograr las cualidades de reutilización y modificabilidad. Es adecuado para aplicaciones que involucran una serie bien definida de transformaciones de datos independientes o cálculos en entradas y salidas definidas ordenadamente, como compiladores y aplicaciones de procesamiento de datos comerciales. Hay tres tipos de secuencias de ejecución entre módulos.
- Lote secuencial
- Modo de canalización y filtro o canalización no secuencial
- Control de procesos
Secuencial por lotes
El secuencial por lotes es un modelo clásico de procesamiento de datos, en el que un subsistema de transformación de datos puede iniciar su proceso solo después de que su subsistema anterior haya terminado por completo:
El flujo de datos transporta un lote de datos como un todo de un subsistema a otro.
Las comunicaciones entre los módulos se realizan a través de archivos intermedios temporales que pueden ser eliminados por subsistemas sucesivos.
Es aplicable para aquellas aplicaciones donde los datos se almacenan por lotes, y cada subsistema lee archivos de entrada relacionados y escribe archivos de salida.
La aplicación típica de esta arquitectura incluye el procesamiento de datos comerciales, como la facturación bancaria y de servicios públicos.
Ventajas
Proporciona divisiones más simples en subsistemas.
Cada subsistema puede ser un programa independiente que trabaja con datos de entrada y produce datos de salida.
Desventajas
Proporciona alta latencia y bajo rendimiento.
No proporciona simultaneidad ni interfaz interactiva.
Se requiere control externo para la implementación.
Arquitectura de tuberías y filtros
Este enfoque pone énfasis en la transformación incremental de datos por componente sucesivo. En este enfoque, el flujo de datos es impulsado por datos y todo el sistema se descompone en componentes de fuente de datos, filtros, tuberías y sumideros de datos.
Las conexiones entre módulos son un flujo de datos que es un búfer de primero en entrar / primero en salir que puede ser un flujo de bytes, caracteres o cualquier otro tipo de este tipo. La característica principal de esta arquitectura es su ejecución concurrente e incremental.
Filtrar
Un filtro es un transformador de flujo de datos independiente o transductores de flujo. Transforma los datos del flujo de datos de entrada, los procesa y escribe el flujo de datos transformado en una tubería para que lo procese el siguiente filtro. Funciona en modo incremental, en el que comienza a funcionar tan pronto como llegan los datos a través de la tubería conectada. Hay dos tipos de filtros:active filter y passive filter.
Active filter
El filtro activo permite que las tuberías conectadas extraigan datos y expulsen los datos transformados. Funciona con tubería pasiva, que proporciona mecanismos de lectura / escritura para tirar y empujar. Este modo se utiliza en el mecanismo de filtro y tubería de UNIX.
Passive filter
El filtro pasivo permite que las tuberías conectadas introduzcan y extraigan datos. Funciona con una tubería activa, que extrae datos de un filtro y empuja los datos al siguiente filtro. Debe proporcionar un mecanismo de lectura / escritura.
Ventajas
Proporciona simultaneidad y alto rendimiento para un procesamiento de datos excesivo.
Proporciona reutilización y simplifica el mantenimiento del sistema.
Proporciona modificabilidad y bajo acoplamiento entre filtros.
Proporciona simplicidad al ofrecer divisiones claras entre dos filtros cualesquiera conectados por tubería.
Proporciona flexibilidad al admitir la ejecución secuencial y paralela.
Desventajas
No apto 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 filtros.
No proporciona una forma de que los filtros interactúen de manera cooperativa para resolver un problema.
Difícil de configurar esta arquitectura de forma dinámica.
Tubo
Las tuberías no tienen estado y transportan un flujo binario o de caracteres que existe entre dos filtros. Puede mover un flujo de datos de un filtro a otro. Las canalizaciones utilizan un poco de información contextual y no retienen información de estado entre instancias.
Arquitectura de control de procesos
Es un tipo de arquitectura de flujo de datos en el que los datos no son secuenciales ni secuenciales por lotes. El flujo de datos proviene de un conjunto de variables, que controla la ejecución del proceso. Descompone todo el sistema en subsistemas o módulos y los conecta.
Tipos de subsistemas
Una arquitectura de control de procesos tendría una processing unit para cambiar las variables de control del proceso y un controller unit para calcular la cantidad de cambios.
Una unidad de controlador debe tener los siguientes elementos:
Controlled Variable- Variable controlada proporciona valores para el sistema subyacente y debe medirse mediante sensores. Por ejemplo, velocidad en el sistema de control de crucero.
Input Variable- Mide una entrada al proceso. Por ejemplo, temperatura del aire de retorno en el sistema de control de temperatura.
Manipulated Variable - El controlador ajusta o cambia el valor de la variable manipulada.
Process Definition - Incluye mecanismos de manipulación de algunas variables de proceso.
Sensor - Obtiene valores de las variables de proceso pertinentes al control y se puede utilizar como referencia de retroalimentación para recalcular las variables manipuladas.
Set Point - Es el valor deseado para una variable controlada.
Control Algorithm - Se utiliza para decidir cómo manipular las variables del proceso.
Áreas de aplicación
La arquitectura de control de procesos es adecuada en los siguientes dominios:
Diseño de software de sistema integrado, donde el sistema es manipulado por datos de variables de control de proceso.
Aplicaciones, cuyo objetivo es mantener propiedades específicas de las salidas del proceso en valores de referencia dados.
Aplicable para control de crucero de automóviles y sistemas de control de temperatura de edificios.
Software de sistema en tiempo real para controlar frenos antibloqueo de automóviles, centrales nucleares, etc.