UML - Diagrama de Despliegue
Un Diagrama de Despliegue es un tipo de diagrama que muestra la configuración física de hardware y software en un sistema.
Este diagrama es vital para comprender cómo el software del sistema se asigna al hardware y cómo los diferentes componentes y artefactos interactúan en el entorno de producción.
Componentes Clave
- Nodos: Representados como cubos 3D, son recursos físicos que pueden ser dispositivos de hardware o contenedores de software.
- Componentes: Elementos de software que se implementan en nodos, como bibliotecas, sistemas de bases de datos, módulos de aplicaciones, etc. En resumen, código.
- Dependencias: Las dependencias entre los componentes deben ser las mismas que las de paquetes.
Ejemplo
El siguiente diagrama representa la configuración de hardware y software de un sistema de información empresarial.
El diagrama muestra cómo un empleado accede a la información del catálogo a través de una aplicación web, que luego interactúa con un servicio web en un servidor comercial. La lógica de negocio necesaria para procesar estas consultas se maneja en un servidor de aplicaciones separado, y la información persistente reside en un servidor de base de datos dedicado.
La arquitectura sugiere una separación de preocupaciones donde las interfaces de usuario, la lógica de negocio y el almacenamiento de datos están desacoplados y residen en diferentes capas del sistema.
Nodo por Nodo:
-
PC Empleado: Este nodo representa una estación de trabajo que un empleado utiliza para interactuar con el sistema. Contiene un componente llamado “Consulta Catálogo Intranet”, una aplicación o interfaz web a través de la cual el empleado puede buscar información en el catálogo de la empresa.
-
Servidor Comercial: Este nodo muestra un servidor que tiene dos sistemas diferentes, “Sistema Ventas” y “Sistema Compras”, lo que implica que es un servidor que maneja transacciones comerciales, tanto de venta como de compra para la empresa.
-
Servidor Web: Este nodo representa el servidor que sirve las páginas web a los empleados. Contiene:
- Página JSP: Indica que el servidor web utiliza Java Server Pages para generar contenido dinámico, como parte de la “Consulta Catálogo Intranet”.
- Servicio Web Catálogo: Este servicio web maneja las solicitudes relacionadas con el catálogo y actúa como una interfaz entre la página JSP y las clases de negocio del catálogo.
-
Servidor de Aplicaciones: Este nodo es donde residen las “Clases de Negocio Catálogo”, la lógica de negocio que procesa la información del catálogo y maneja la lógica de las operaciones de consulta.
-
Servidor de Base de Datos: Este nodo aloja la “Base de datos Catálogo”, donde se almacenan los datos de los productos y servicios ofrecidos por la empresa.
-
Comunicaciones:
- HTTP: Este protocolo se usa en la comunicación entre la PC del empleado y el Servidor Web, y también entre el Servidor Comercial y el Servidor Web.
- Ethernet: La comunicación entre el servidor de aplicaciones y el servidor de base de datos se realiza a través de una conexión Ethernet, tecnología de red común para redes locales (LAN).
Propósito y Uso
- Arquitectura Física: Ilustra la arquitectura física de un sistema, incluyendo nodos, componentes, conexiones y middleware.
- Configuración de Hardware y Software: Detalla la distribución del software en el hardware y muestra cómo se comunican los diferentes elementos.
- Despliegue de Aplicaciones: Ayuda a planificar y documentar la estrategia de despliegue de las aplicaciones y sus dependencias.
Ventajas
- Claridad Operativa: Proporciona una visión clara de cómo el sistema se distribuye físicamente y cómo se espera que funcione en su entorno.
- Documentación: Sirve como documentación esencial para equipos de operaciones y soporte técnico.
- Rendimiento y Escalabilidad: Ayuda a identificar cuellos de botella potenciales y planificar la escalabilidad.
Desventajas
- Complejidad: Puede volverse complejo y difícil de mantener actualizado, especialmente en entornos dinámicos y en la nube.
- Visión Estática: Proporciona una vista estática y puede no reflejar cambios en tiempo real en el entorno de despliegue.
- Detalles a Nivel de Sistema: No es útil para describir la lógica interna del software, se centra en la distribución física.
Uso Práctico
- Ingeniería de Sistemas: Para planificar y documentar cómo se despliegan los sistemas en diferentes entornos, como desarrollo, pruebas y producción.
- Despliegue de Aplicaciones: En el despliegue de aplicaciones empresariales donde múltiples componentes deben ser coordinados.
- Infraestructura de TI: Para visualizar y gestionar la infraestructura de TI, incluyendo servidores, dispositivos de red y puntos de terminación de usuario.
Conclusiones
El Diagrama de Despliegue es una herramienta fundamental para los arquitectos de software y los ingenieros de operaciones. Ofrece una vista detallada de cómo se estructura un sistema en su entorno operativo y es esencial para cualquier proceso de despliegue de software.
A pesar de los desafíos asociados con su complejidad y necesidad de actualización constante, es invaluable para asegurar que los sistemas sean desplegados de manera efectiva y puedan escalar y operar según lo previsto.