UTP
Unidad 2: Diseño de software

En este momento estamos en la mitad de la segunda etapa del ciclo de vida de un desarrollo web, hemos aprendido sobre qué es un requerimiento, cómo levantarlos, cómo realizar su aprobación; posterior a esto aprendimos cómo plasmar estos requerimientos en diagramas gráficos para entender su complejidad y luego de esto aprendimos que los requerimientos van acompañados por datos los cuales establecemos en una base de datos y permiten consolidar información. Pero ahora aprenderemos sobre la arquitectura de software y su estructura, haciendo una analogía con la construcción de un edificio en este momento solo hemos comprado el lote donde construiremos el edificio, sabemos de cuántos pisos va ser el mismo, para qué va ser usado, hemos comprado algunos que otros materiales y contratado algunos obreros, pero ahora tenemos que cimentar nuestro edificio y para esto tenemos que realizar cálculos, análisis de qué tipo de cemento vamos a usar, cuántas vigas necesitamos y muchas cosas más que solo una buena arquitectura nos garantiza que al culminar nuestro edificio este no se vaya a caer.

Lo mismo ocurre con el software, no importa que tan bien hagamos el levantamiento de requisitos y el diseño de los datos sino escogemos la arquitectura adecuada el software se convertirá en un efecto bola de nieve que a la final lo más fácil será volver a construirlo todo de nuevo.

Por lo anterior la arquitectura de software se define como la organización fundamental de un sistema formada por sus componentes, las relaciones entre ellos y el contexto en el que se implantarán y los principios que orientan su diseño y evolución.

Componentes:

Esta compuesta por clientes y servidores, bases de datos y nivelen en sistemas jerárquico.

Interacciones:

Existens conjuntos de interacciones entre los que encontramos lladas a procedimientos, comportamientos variables y transmisión asincrona de eventos.

La arquitectura de software tiene distintos patrones de diseño arquitectónicos los cuales provee un esquema para refinar los elementos de un sistema de software o las relaciones entre ellos, existentes distintos tipos de patrones de diseño pero en el presente curso solo trataremos el modelo cliente servidor y el modelo de capas

Modelo Cliente Servidor:

lanzador
Ejemplo: Arquitectura cliente/servidor

Un servidor es una aplicación que ofrece un servicio a usuarios de una red, el servidor puede estar instalada en la misma máquina o puede estar instalada en otra máquina. Es decir un cliente puede ser al mismo tiempo un servidor si el programa esta instalado en la misma máquina. El funcionamiento del modelo cliente/ servidor es sencillo el servidor recibe solicitudes por parte de 1 cliente o distintos clientes, a partir de estas solicitudes, el servidor realiza lo que le solicitan y le devuelve un resultado al cliente.

El cliente es el ente que se encarga en el modelo cliente / servidor de generar las solicitudes, demandar peticiones y obtener información que le envia el servidor. Hay 3 tipos de clientes, cliente pesado, cliente liviano y cliente hibrido.

Cliente liviano:

Un cliente liviano hace referencia a un dispositivo de hardware o software que no usa sus recursos propios para ejecutar funciones sino que realiza una conexión a otro dispositivo de hardware o software para que ejecute y realice las peticiones. Generalmente un cliente liviano no requiere tener demasiadas características de hardware ya que no tiene que ejecutar demasiados procesos ya que el desgaste lo realiza el servidor.

Cliente Pesado:

El cliente pesado es todo lo contrario a un cliente liviano ya que las peticiones, solicitudes y requerimientos que genera el cliente los realiza el mismo y solo se comunica con el servidor para actualizar la información, insertar datos, eliminar datos entre otras cosas.

Cliente Hibrido:

Este tipo de cliente hace referencia a estaciones de trabajo que no tienen disco y por lo tanto no almacenan información, para poder realizar su función se basa en una conexión por red para realizar las funciones.

Los 3 tipos de clientes tienen sus ventajas y sus desventajas pero esta en nuestra pericia como desarrolladores web tener la capacidad de que tipo de cliente usar y en que momento.

Modelo de n Capas:

El modelo de capas propone una forma distinta de trabajar el desarrollo web, donde se busca es separar la lógica de negocios de la lógica de diseño, un ejemplo claro puede ser buscar separar la capa de datos de la capa de presnetación del usuario.

Lo que conocemos como capas no es más que un estilo de programación donde utilizamos la máxima “divida y vencerás” y donde el objetivo principal es separar los diferentes aspectos del desarrollo, tales como las cuestiones de presentación, lógica de negocio, mecanismos de almacenamiento, etc.

Esto en resumida permitirá una mejor usabilidad del código del desarrollo web, un mantenimiento más fácil de administrar y un mayor rendimiento del servidor.

Modelo N Capas
Modelo N Capas

Arquitectura Cliente/Servidor

Instrucciones:

Observa los componentes de la arquitectura cliente/servidor y sus descripciones.

Arquitectura Cliente Servidor

Cliente Es quien interactúa con el usuario simplemente un consumidor de servicios.

Solicitud El Cliente envía una solicitud al servidor.

Red Es la conexión que existe entre Cliente-Servidor.

Servidor Gestiona un recurso compartido concreto y provee los servicios para el cliente.

Respuesta El servidor responde a la solicitud del cliente.