arquitectura de software. tema 2
TRANSCRIPT
WDSSeminario de Arquitectura de Software
Ing. Rene Lazo [email protected]
Sumario...
●TEMA 3. Perte 1. Estilos arquitectonicos○Estilos de Flujo de Datos
■Tubería y filtros○Estilos Centrados en Datos
■Arquitecturas de Pizarra o Repositorio●TEMA 2: El análisis - El diseño y La arquitectura
de software
Contexto problemico
●Necesito hacer un sistema que permita procesar datos por lotes, en un workflow de eventos. cada unidad de procesamiento se especializa en una funcion espesifica. Existe la necesidad de que el flujo de navegacion sea configurable dinamicamente
●Que solucion dar (...)
●Un (pipeline) tuberia-filtro es una arquitectura que
conecta componentes computacionales (filtros) a
través de conectores (pipes)
●De modo que las computaciones se ejecutan a la
manera de un flujo.
●Los datos se transportan a través de las tuberías
entre los filtros, transformando gradualmente las
entradas en salidas.
Estilos de Flujo de Datos. Tuberio - Filtro
Estilos de Flujo de Datos. Tuberio - Filtro
●Cada paso se ejecuta hasta completarse antes que se
inicie el paso siguiente.
●Ejemplo
○ 1 - Obtiener la información del producto de la base de datos de
catálogo
○ 2 - Procesar la dirección del comprador
○ 3 - Resolver la modalidad de pago
○ 4 - Confeccionar la factura
○ 5 - Realizar el envío del pedido.
●Cada etapa de la tarea representa una categoría
de trabajo.
Estilos de Flujo de Datos .Tuberio - Filtro
●Cuando user este estilo ...
○Se puede especificar la secuencia de un número
conocido de pasos.
○No se requiere esperar la respuesta asincrónica de
cada paso.
○Se busca que todos los componentes situados
corriente abajo sean capaces de inspeccionar y actuar
sobre los datos que vienen de corriente arriba (pero
no viceversa).
Tuberio - Filtro
●Ventajas del estilo ...
○Es simple de entender e implementar.
○Fuerza un procesamiento secuencial.
○Es fácil de envolver (wrap) en una transacción
atómica.
○Los filtros se pueden empaquetar, y hacer
paralelos o distribuidos.
○Simplifica considerablemente la solucion el control
de corrección de un objeto de fecha).
Tuberio - Filtro
●Desventajas del estilo ...
○Puede resultar demasiado simplista,
especialmente para orquestación de servicios que
podrían ramificar la ejecución
○No maneja con eficiencia construcciones
condicionales, bucles y otras lógicas de control de
flujo
○Eventualmente pueden requerirse buffers de
tamaño indefinido
Tuberio - Filtro
●Desventajas del estilo ...
○No apto para manejar situaciones interactivas, sobre
todo cuando se requieren actualizaciones
incrementales de la representación en pantalla.
○La independencia de los filtros implica que es muy
posible la duplicación de funciones de preparación que
son efectuadas por otros filtros (por ejemplo,el
control de corrección de un objeto de fecha, o el
formato de un XML)
Contexto problemico
●Se desea hacer un sistema que permita ir mostrando en un tablero de control la evolucion de varios procesos concurrentes que se interrelacionana a traves de una fuente de unica de datos, para dar solucion a una problematica. Es importante determinar que no existe acoplamiento de datos de las unidades procesadoras, es decir la concurrencia no es problematica. Pero debe existir un mecanismo actualizacion a los procesos de computos implicados.
Que solucion dar (...)
Estilos Centrados en Datos . Pizarra o repositorio
●En esta arquitectura hay dos
componentes principales:
○Una estructura de datos que representa el
estado actual
○Una colección de componentes
independientes que operan sobre él.
Estilos Centrados en Datos . Pizarra o repositorio
●En base a esta distinción se han definidos
dos subcategorías principales del estilo
■Si los tipos de transacciones en el flujo de
entrada definen los procesos a ejecutar, el
repositorio puede ser una base de datos
tradicional.
■Si el estado actual de la estructura de datos
dispara los procesos a ejecutar, el repositorio es
lo que se llama una pizarra pura o un tablero de
control.
Estilos Centrados en Datos . Pizarra o repositorio
Estilos Centrados en Datos . Pizarra o repositorio
●Cuándo se utiliza: ○Problemas no susceptibles de tratarse
analíticamente○Reconocimiento de patrones, aprendizaje de
máquina, data mining○Firmas, reconocimiento de iris, rostro, etc○Tableros de control○Repositorios de informacion y control de versiones
●Ejemplos de usabilidad○Procesamiento de señales○Repositorios○Redes neuronales, algoritmo genético, ○Agentes autónomos
Estilos Centrados en Datos . Pizarra o repositorio
●Ventajas del estilo ...
■Es la solucion arquitectonicas de problemas
computacionalmente complejos.
■Apto para manejar situaciones interactivas, sobre
todo cuando se requieren actualizaciones
incrementales de la representación en pantalla.
■La concurrencia de la fuente de datos permite la
independencia de los elementos computacionales
que integran el sistema
Estilos Centrados en Datos . Pizarra o repositorio
●Desventajas del estilo ...
■Poco generalizado
■Complejo de implementar
■Dificil de resolver problemas de concurrencia,
semaforos y abrazos fatales. Lo que complejiza
hacer framework genericos para aplicaciones de
este tipo
○Existe una tendencia de las arquitecturas de flujos
de datos como tuberia-filtro a comportanse o
implementar las potencialidades de este estilo