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 🖥