Diseño Arquitectónico 🏛
Actividad Principales
Decisiones 🤔
Salida
Requisitos no funcionales
Estructuración del sistema
Descomposición modular
Modelado del control
Modelo estructural estático
Modelo de proceso dinámico
Modelo de interfaz
Modelo de relación
Modelo de distribución
Rendimiento
Protección 🛡
Disponibilidad
Mantenibilidad ♻
Organización del Sistema
Modelo de depósito o repositorio
Modelo cliente-servidor
Modelo de capas o máquina abstracta
Ventajas☺
Desventajas☹
Compartición eficiente
Ligera abstracción el manejo de datos
Centralización
Integración directa
Modelo de datos común
Difícil integración de subsistemas externos
Dificulta la evolución
Estandarización de políticas
Dificultad para distribuir
Componentes
Modelo C/S 2 Capas 2️⃣
Modelo C/S 3 Capas 3️⃣
Conjunto de servidores
Conjunto de clientes 👥
Red 🌐
Modelo cliente grueso
Modelo cliente delgado
Ventajas☺
Interfaz migra a PC 💻
Aplicación actúa como servidor y administrador
Desventajas☹
Gran carga de procesamiento
Gran cantidad de tráfico
Desaprovecha poder de máquinas
Ventajas☺
Distribuye procesamiento lógico y presentación
Aprovecha capacidad de procesamiento
ATM no conectada directamente a DB
Desventajas☹
Administración más compleja
Aumenta coste de mantenimiento
Componentes
Administración de datos
Servicios de aplicación
Presentación
Ventajas☺
Desventajas☹
Arquitectura cambiable y portable
Capa se puede reemplazar por otra
Cambio de capas solo afecta a adyacentes
Solo hay que re-implementar capas más internas
Difícil de estructurar
Rendimiento puede verse afectado por los múltiples niveles
Descomposición Modular
Modelo orientado a objetos
Modelo de flujo de datos
Modelado de Control
Control centralizado
Control dirigido por eventos
Modelos de transmisión
Modelos dirigidos por interrupciones
Sistemas distribuidos
Peer to Peer (P2P)
Sistemas orientados a servicios
Sin distinción entre cliente y servidor
Aprovechan potencia computacional
Ejemplos: Kazza, eMule, Messenger, ICQ
Baja protección y autentificación 🛡👎
Dos tipos
Arquitectura descentralizada
Arquitectura semicentralizada
Tolerante a fallos
Nodos como servidores
Servicio web
Representación estándar
Servicio independiente
Información accesible
Componentes
Proveedor de servicios
Solicitante de servicio
Ventajas ☺
Pagar en función de uso
Aplicaciones más pequeñas 🤏
Construcción a medida
Estándares: SOAP, WSDL, UDDI
Sistema es un conjunto de componentes que se comunican entre ellos 🗣
Módulos con estado privado y operaciones definidas 🔐
Mejor reutilización
Difícil representar entidades complejas
Módulos funcionales
Datos fluyen de una función a otra
Intuitivo 👍
Modelo llamada-retorno
Modelo del administrador
No es modelo estructural
Llama a subrutinas para pasar por niveles del árbol 🎄
Sencillo analizar flujos de control
Excepciones complicadas de gestionar
Componente administrador controla según variable de estados
Módulos se ejecutan en paralelo
Restricciones de tiempo estrictas ⏰
Ventajas☺
Desventajas☹
Evolución relativamente sencilla
Cualquier subsistema activa a otro
Subsistema implementado de forma transparente
Subsistema desconoce sobre manejo e interés
Subsistema decide que evento requiere
Controlador asegura envió de eventos
Utilizado por ORBs
Interrupciones
Varios tipos de interrupciones con controlador definido
Interrupción asociada con dirección de memoria donde se almacena controlador 🧠
Interruptor de hardware transfiere control
Controlador inicia o detiene procesos 🛑
Útiles para sistemas de tiempo real ⌛
Da respuestas rápidas a eventos
Complejo de programar 👨💻
Difícil de validar
Cantidad de interrupciones limitadas por hardware 🖥