Modelo de Control ===> 05
1. Control Centralizado: Control de flujo entre componentes
Modelo Call-Return:
Simple, predecible, bloqueante y con complejo manejo de excepciones.Modelo Administrado:
No bloqueante, procesos coordinados, lógica centralizada, con posibles cuellos de botella.
2. Control Basado en Eventos: Descentralizado y no bloqueante, maneja eventos generados externamente
Transmisión Múltiple: Modelo Publicador-Suscriptor (Pub-Sub)
Componentes distribuidos, publican servicios, gatillan y suscriben eventos.
- Ventajas: Activación descentralizada de componentes, componentes distribuidos, evolución simple.
- Desventajas: Respuesta incierta, varios manejadores y no se sabe cuál elegir.
Manejo de Interrupciones:
Tiempo real y respuesta inmediata, no bloqueante, procesamiento en paralelo, maneja la desventaja del anterior.
Descomposición Modular
Componentes divididos en módulos, lo que posibilita la visualización del modelo de control.
1. Modelo de Objetos:
Clases débilmente acopladas, interfaces bien definidas, objetos creados a partir de clases, coordinan operaciones entre objetos.
2. Modelo de Flujo de Datos:
Descomposición en procesos funcionales, dependencia entre procesos, flujo predeterminado, adecuado para procesamiento en batch.
Arquitecturas de Dominio Específico
Modelos específicos para algún dominio.
1. Arquitecturas Genéricas:
Generalización de sistemas reales, análisis de sistemas existentes.
2. Arquitecturas de Referencia:
Idealización de una arquitectura específica, estándar de facto en sus dominios.
Patrones de Arquitectura
Soluciones de diseño recurrentes a problemas comunes en la arquitectura de software.
Ventajas y Desventajas de los Patrones de Arquitectura
- Ventajas: Organización de componentes, separación de responsabilidades, reducción de errores, reutilización de componentes, uso de estándares.
- Desventajas: Curva de aprendizaje, complejidad técnica, estructura rígida, uso de herramientas externas.
Descripción de un Patrón
Nombre – Contexto (situación que origina la necesidad) – Requerimiento (fuerzas presentes en el contexto) – Solución (estructura de componentes y comportamiento)
Contexto:
Ámbito de la NECESIDAD.
- Descripción de las situaciones (general o detallada) que la originan. (DIFÍCIL DE PRECISAR)
Requerimiento:
LO QUE SE DEBE RESOLVER.
- Fuerzas presentes en el contexto: PROPIEDADES – REQUISITOS – RESTRICCIONES.
Solución:
Balance de fuerzas.
- Estructura (componentes – relaciones).
- Comportamientos (organización de componentes).
- Priorización de fuerzas.
Clasificación de Patrones ===> 06
Patrones Simples: Capas – Tubos – Pizarrón – Repositorios
1. Capas (Layers):
Estructura de aplicaciones descomponiéndolas en tareas con diferentes niveles de abstracción.
Contexto:
Sistema jerárquico con diversos niveles de acción.
Problema:
Organización inadecuada genera problemas de escalabilidad y mantenibilidad.
Solución:
Esquema multicapa con comportamientos TOP-DOWN o BOTTOM-UP.
- Capa base con nivel de abstracción más BAJO.
- Avanzar capa a capa.
- Componentes estructurados en módulos relacionados.
- Ventajas: Componentes estandarizados, cambios afectan nivel local, reutilización de capas/componentes.
- Desventajas: Cambios afectan en cascada, ineficiencia, complejo de definir.
- Ejemplo de Capas:
- Interfaz de Usuario
- Validaciones
- Aplicación
- Interfaz de Sistema Externo
- Acceso a Datos
- Datos
2. Tubos y Filtros:
Estructura aplicaciones en actividades para procesar flujos de datos en que cada actividad es un filtro que está unido por un tubo a los filtros contiguos.
Requerimientos:
Descomponer el procesamiento en una serie de actividades (FILTROS) que transforman datos de entrada (recibidos desde un tubo) en datos de salida (entregados por un tubo).
Transformaciones independientes y sin estado.
=> Cada ACTIVIDAD es un FILTRO.
=> Los TUBOS conectan un FILTRO con el siguiente.
Solución: ===> 07
- Tubo: Conecta origen de datos con un filtro, filtro con filtro, filtro y salida. Esquema FIFO (First-In, First-Out).
- Filtro: Aplica procesos de transformación de datos de entrada en datos de salida. Flujo que solicita datos (filtro anterior) y flujo que entrega datos (filtro siguiente).
- Los FILTROS INDEPENDIENTES no comparten estado, desconocimiento de otros filtros, ACTIVO o PASIVO.
- Ventajas: Arquitectura flexible, no requiere archivos intermedios, filtros reutilizables, procesamiento paralelo y construcción independiente.
- Desventajas: Información no compartida, ineficiencia en la comunicación de datos, errores afectan el flujo de procesamiento.
3. Pizarrón (Blackboard):
Útil cuando no hay una solución completa y específica para un problema. Participan varios sistemas que aportan conocimiento (IA, reconocimiento de imágenes, toma de decisiones).
Contexto:
Dominio en el que no hay una solución completa.
Problema:
Conocimiento parcial de la solución. Cada solución requiere un paradigma diferente, abarcando muchas especialidades. No es factible una solución completa, se requieren soluciones parciales.
Solución:
Conjunto de sistemas independientes, donde cada uno se especializa en una parte del problema.
- Almacenamiento centralizado de la información.
- Monitoreo centralizado del estado del sistema.
- Decisiones centralizadas de acción a seguir basadas en el progreso alcanzado.
- Determinar solución ACEPTABLE o INSOLUBLE.
- Ventajas: Arquitectura flexible, eficiencia en el procesamiento paralelo, construcción independiente, integración de sistemas colaborativos.
- Desventajas: Información no compartida directamente, conversión de datos ineficiente, controlador complejo y posible cuello de botella, sobrecarga de procesamiento.
4. Repositorios:
Separa la lógica del negocio de la fuente de datos, lo que implica independencia de datos. Guarda grandes volúmenes de datos que deben ser compartidos.
- Ventajas: Arquitectura flexible, independencia de datos, desarrollo independiente, reutilización, modularidad y paralelismo.
- Desventajas: Sobrecarga en el procesamiento, disminuye la eficiencia al agregar una capa más. Riesgo de acoplamiento de componentes [git].
