UNIVERSIDAD ABIERTA Y A DISTANCIA DE MEXICO
ALFREDO DE JESUS CORDOVA ABARCA Nombre del alumno
ESTILOS Y PATRONES APLICABLES A LA ARQUITECTURA DE SOFTWARE Materia
Vistas de la Arquitectura de Software Tema
INGENIERIA EN DESARROLLO DE SOFTWARE CARRERA
DESARROLLO
La principal característica de un patrón arquitectónico es la comunicación de diseños. Una característica es un rasgo distintivo que sólo posee algo (un objeto, persona, animal, entre otros) o un grupo de ellos. Otras características que se pueden enumerar respecto a los patrones de diseño, son:
No reinventan soluciones a patrones conocidos. Rehúsan el conocimiento experto relativo a un diseño
Personas inexpertas pueden fácilmente hacer un diseño de alta calidad gracias a los patrones.
Se tienen menores errores al modelar la arquitectura de la solución debido al uso de diseños ya probados y que solucionaron problemas similares. Los diseños que están probados son fácilmente mantenibles.
A partir de los patrones, el software puede diseñarse para tener ciertas características deseadas por el cliente o que la misma solución necesite. Además de la lista presentada, se debe tener en cuenta algo muy importante: cuando se trata de características de patrones de software no toda aquella solución que tenga un cierto parecido a esta lo es. Deben hacerse pruebas (de compatibilidad entre soluciones, de similaridad, de homogeneidad, entre otras) a problemas que tienen las mismas premisas, y si es aplicable, se considerará un patrón. Sin embargo, deberá pasar además una serie de pruebas aplicadas única y particularmente a los patrones. Antes de estas pruebas, la mencionada solución no dejará de ser un patrón-primigenio.
Cuando un patrón haya pasado el conjunto de pruebas que haya que aplicar, tendrá las siguientes características:
Solucionar un problema: si no puede hacer más allá de tener principios o estrategias abstractas, entonces no será patrón.
Ser un concepto probado: como el punto anterior, si no ofrecen soluciones plenamente demostrables, entonces no será patrón.
La solución no es obvia: un patrón busca soluciones a problemas complejos de forma que abstraen dentro de sí soluciones pequeñas para cada parte del problema o de forma indirecta.
Describe participantes y relaciones entre ellos: se describe de manera clara y detallada un sistema completo, no sólo módulos aislados. El nivel de complejidad puede crecer sin causar problema para el patrón arquitectónico.
El patrón tiene un componente humano significativo: la principal razón de fabricar (o diseñar) software es para facilitar el trabajo humano, de manera directa o indirecta.
Otra característica necesaria de los patrones arquitectónicos, mas no suficiente, es la repetición, si no la tiene entonces no es un patrón.
En términos formales se definirá que:
La repetición se debe tomar como una característica cuantitativa La utilidad y adaptabilidad como características cualitativas. Si bien es cierto:
La arquitectura cliente-servidor es un patrón arquitectónico de sistemas distribuidos (“Se define un sistema distribuido como aquel en el que los componentes de hardware y software, localizados en computadoras unidas mediante una red, comunican y coordinan sus acciones sólo mediante el paso de mensajes”), en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, es quien le da respuesta.
Arquitectura de sistema:
Modelo cliente servidor
o El modelo puede o no estar en la misma máquina del cliente.
o Tanto servidores como clientes pueden ser iterativos o concurrentes.
Servicios proporcionados por múltiples servidores
o Los servidores pueden dividir el conjunto de objetos en los que está basado el servicio y distribuírselos entre ellos mismos.
o Pueden mantener réplicas de los objetos en cada máquina
Servidores proxy y caches
o Un cache es un almacén de objetos de datos utilizados recientemente.
o Los caches pueden estar ubicados en los clientes o en un servidor Proxy que se puede compartir desde varios clientes.
o El propósito de los servidores proxy es incrementar la disponibilidad y las prestaciones del servicio, reduciendo la carga en las redes de área amplia y en los servidores WEB.
Procesos peer to peer.
o Todos los procesos desempeñan tareas semejantes, interactuando cooperativamente como iguales para realizar una actividad distribuida o cómputo sin distinción entre clientes y servidores
o Los procesos pares mantienen la consistencia de los recursos y sincroniza las acciones a nivel de aplicación.
Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras. En esta arquitectura la
capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema. La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma. Una disposición muy común son los sistemas multicapa en los que el servidor se descompone en diferentes programas que pueden ser ejecutados por diferentes computadoras aumentando así el grado de distribución del sistema. La red cliente-servidor es una red de comunicaciones en la cual los clientes están conectados a un servidor, en el que se centralizan los diversos recursos y aplicaciones con que se cuenta; y que los pone a disposición de los clientes cada vez que estos son solicitados. Esto significa que todas las gestiones que se realizan se concentran en el servidor, de manera que en él se disponen los requerimientos provenientes de los clientes que tienen prioridad, los archivos que son de uso público y los que son de uso restringido, los archivos que son de sólo lectura y los que, por el contrario, pueden ser modificados, etc. Este tipo de red puede utilizarse conjuntamente en caso de que se esté utilizando en una red mixta.