Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DEL SOFTWARE
Ing. Gabriela Murguia Torrez
Arquitectura del software
Elementos Arquitectonicos
llamadas a procedimientos.
comportamiento de variables.
protocolos cliente servidor.
transmisión asíncrona de eventos.
Arquitectura del software
Características
Antes de que comience un importante desarrollo de software, debemos elegir una arquitectura adecuada que
nos proporcione la funcionalidad deseada y los atributos de calidad. Por lo tanto, debemos entender
diferentes arquitecturas, antes de aplicarlas a nuestro diseño.
Arquitectura del software
¿Qué es un patrón arquitectónico?
Patrón en capas
Arquitectura del software
Arquitectura Multicapa
Arquitectura del software
Arquitectura Multicapa
Arquitectura del software
Arquitectura Multicapa
Arquitectura del software
Beneficios
Arquitectura Multicapa
Arquitectura del software
CLIENTE SERVIDOR
Cliente: Programa ejecutable que participa activamente en el establecimiento de las conexiones. Envía una petición al
servidor y se queda esperando por una respuesta. Su tiempo de vida es finito una vez que son servidas sus solicitudes,
termina el trabajo.
Servidor: Es un programa que ofrece un servicio que se puede obtener en una red. Acepta la petición desde la red, realiza
el servicio y devuelve el resultado al solicitante. Al ser posible implantarlo como aplicaciones de programas, puede
ejecutarse en cualquier sistema donde exista TCP/IP y junto con otros programas de aplicación. El servidor comienza su
ejecución antes de comenzar la interacción con el cliente. Su tiempo de vida o de interacción es “interminable”.
Los más complejos trabajan con peticiones concurrentes aún cuando una sola petición lleve mucho tiempo para ser
servida (caso del servidor ftp que debe copiar un archivo en otra máquina). Son complejos pues tienen altos
requerimientos de protección y autorización. Pueden leer archivos del sistema, mantenerse en línea y acceder a datos
protegidos y a archivos de usuarios. No puede cumplir a ciegas las peticiones de los clientes, deben reforzar el acceso al
sistema y las políticas de protección.
Arquitectura del software
Características de la arquitectura
Cliente-Servidor
Existencia de plataformas de hardware cada vez más baratas. Esta constituye a su vez
una de las más palpables ventajas de este esquema, la posibilidad de utilizar máquinas
mucho más baratas que las requeridas por una solución centralizada, basada en
sistemas grandes (mainframes). Además, se pueden utilizar componentes, tanto de
hardware como de software, de varios fabricantes, lo cual contribuye
considerablemente a la reducción de costos y favorece la flexibilidad en la
implantación y actualización de soluciones.
• Al favorecer el uso de interfaces gráficas interactivas, los sistemas construidos bajo este esquema tienen una
mayor y más intuitiva con el usuario. En el uso de interfaces gráficas para el usuario, presenta la ventaja, con
respecto a uno centralizado, de que no siempre es necesario transmitir información gráfica por la red pues
esta puede residir en el cliente, lo cual permite aprovechar mejor el ancho de banda de la red.
• Contribuye además a proporcionar a los diferentes departamentos de una organización, soluciones locales,
pero permitiendo la integración de la información.
Arquitectura del software
Desventajas
• El mantenimiento de los sistemas es más difícil pues implica la interacción de diferentes partes de hardware y de software,
distribuidas por distintos proveedores, lo cual dificulta el diagnóstico de fallas.
• Cuenta con muy escasas herramientas para la administración y ajuste del desempeño de los sistemas.
• Es importante que los clientes y los servidores utilicen el mismo mecanismo (por ejemplo sockets o RPC), lo cual implica
que se deben tener mecanismos generales que existan en diferentes plataformas.
• Hay que tener estrategias para el manejo de errores y para mantener la consistencia de los datos.
• El desempeño (performance), problemas de este estilo pueden presentarse por congestión en la red, dificultad de tráfico
de datos, etc.
Arquitectura del software
Patrón de capas
Los principios comunes que se aplican cuando se diseña para usar este estilo de arquitectura incluyen:
• Abstracción. La arquitectura basada en capas abstrae la vista del modelo como un todo mientras que provee suficiente
detalle para entender las relaciones entre capas.
• Encapsulamiento. El diseño no hace asunciones acerca de tipos de datos, métodos, propiedades o implementación.
• Funcionalidad claramente definida. El diseño claramente define la separación entre la funcionalidad de cada capa. Capas
superiores como la capa de presentación envía comandos a las capas inferiores como la capa de negocios y la capa de datos
y los datos fluyen hacia y desde las capas en cualquier sentido.
• Alta cohesión. Cada capa contiene funcionalidad directamente relacionas con la tarea de dicha capa.
• Reutilizable. Las capas inferiores no tienen ninguna dependencia con las capas superiores, permitiéndoles ser reutilizables
en otros escenarios.
• Desacople. La comunicación entre las capas está basada en la abstracción lo que provee un desacople entre las capas.
Arquitectura del software
Uso
• Capas estrictas (Strict layering). Cada capa solo puede invocar a la capa directamente debajo de a ella.
• Saltos de Capas (Layer skipping). Las capas pueden invocar otras capas más profundas que las que están directamente
debajo de ellas. Esto puede incrementar el rendimiento pero impacta la portabilidad.
• Capa de Caja Negra (Black-box layering). Los limites de las capas y sus dependencias esta definidas de forma estricta
usando interfaces, lo que soporta extensiones en run-time, intercepción y mejora la capacidad de realiza pruebas.
• Capa de Caja Blanca (White-box layering). Clases que colaboran entre los límites de las capas y están altamente acopladas.
Arquitectura del software
Arquitectura en N-capas
Este estilo de despliegue arquitectónico describe la separación de la funcionalidad en segmentos separados de forma muy
parecida al estilo de capas, pero en el cual cada segmento está localizado en un computador físicamente separado. Este
estilo ha evolucionado desde la aproximación basada en componentes generalmente usando métodos específicos de
comunicación asociados a una plataforma en vez de la aproximación basada en mensajes.
Los siguientes son los principios fundamentales del estilo de arquitectura basado en N-capas/3-capas:
Beneficios.
Los principales beneficios del estilo de arquitectura de N-capas/3-capas son: