Sesión 2: Arquitectura de una aplicación web


Definiciones
Aplicación web: Sistema de documentos interconectados que se acceden a través de internet, por medio de http. Este concepto también se utiliza para designar aquellos programas informáticos que son ejecutados en el entorno del navegador o que codifican con algún lenguaje soportado por el navegador, por ejemplo JavaScript y HTML, donde el navegador será el encargado de renderizar e interpretar la aplicación para ser pintada en pantalla.
Hipermedia: Corresponde a contenido como texto, imágenes, gráficos, videos, entre otros contenidos multimedia.
Hipervínculos: Tambien conocidos como enlaces o links, son quienes dan a la web su estructura. Sencillamente, es una conexión de una página a otro destino, por ejemplo, a otra página o una ubicación diferente en la misma página. Es decir, si un usuario selecciona un hipervínculo este se abre o se ejecuta en función del tipo de destino; un hipervínculo a un archivo de video se abre despliega en un reproductor multimedia y un hipervínculo a una página muestra la página en el explorador de Web.
World Wide Web - www: Es una red de contenido en línea que se le brinda formato en HTML y se accede a través de HTTP. El término se refiere a todas las páginas HTML interconectadas a las que se puede acceder a través de Internet.
  • La ubicuidad: Prácticamente, todo el mundo tiene un navegador que se ejecuta en cualquier dispositivo.
  • Compativilidad cruzada e inherente entre plataformas: Los datos que se envíen a cualquier navegador, probablemente representase sin problemas en ese navegador en la actualidad.
Middleware: Software de múltiples propósitos que proporciona servicios a las aplicaciones, fuera de lo que ofrece el sistema operativo. Cualquier software entre el kernel y las aplicaciones de usuario puede ser middleware.
HTTP: Sistema mediante el cual se transfiere información entre los servidores y los clientes. Hay una versión de http para la transferencia segura de información llamada https que puede utilizar cualquier método de cifrado siempre que sea entendido tanto por el servidor como por el cliente.
HTML: Lenguaje con el que se define el contenido de las páginas web. Básicamente se trata de un conjunto de etiquetas que sirven para definir el texto y otros elementos que compondrán una página web.

Ventajas/Desventajas
Ventajas 👍
  • Es posible ejecutar desde cualquier navegador con conexión a Internet.
  • Aplicaciones ligeras, por lo que no es necesario poseer un ordenador con altas prestaciones.
  • Relacionado con el anterior, consumen pocos recursos.
  • No hay problemas de incompatibilidad, ya que los usuarios siempre trabajan con la misma versión.
  • Casi todo el mundo puede tener acceso a la información que se gestiona en una página web.
Desventajas 👎
  • Desde el punto de vista del desarrollador, son dificiles de desarrollar y depurar.
  • Poseen un monton de píeza móviles, por ejemplo, gestionar y dar soporte a una base de datos, entender protoclos que forman de middleware.
  • Al día de hoy no puede generar un impacto considerable debido a la época en la que nos encontramos, sin embargo es menester mencionar que necesita una conexión a internet.
  • Dependiendo de la página web en la que se encuentra el usuario, algunas veces es necesario poseer una buena conexión a internet.
  • No existe soporte para gestionar y selecionar versiones, ya que siempre se mostrará al usuario la última versión.
Arquitectura y modelo Cliente-Servidor
Este es el modelo básico para describir cómo los programas cooperativos funcionan en el entorno de red. Como se puede observar, dicha arquitectura de cliente-servidor se compone de 2 dos partes.
  • Cliente: Establece una conexión con el servidor mediante una red de internet: hace la solicitud, y luego recibe recursos del servidor.
  • Servidor: Encargado de escuchar peticiones y proporcionar servicios de acuerdo a las solicitutes escuchadas.
Modelo Cliente-Servidor

En el lado del cliente, en este tipo de modelo tradicionalmente las aplicaciones no hacen mucho trabajo.
La parte de red es encargada de gestionar y controlar la transferencia de datos (el "circulo" de petición-respuesta) a través del Protocolo de Transferencia de Hipertexto o HTTP.
Cabe mencionar que, las aplicaciones se componen de una colección de programas del lado del cliente y del servidor, entre ellos páginas HTML y otros recursos, que pueden extenderse a través de múltiples servidores, o bien en toda la World Wide Web.
En este modelo el servidor es muy simple. Sin embargo, la idea de las futuras publicaciones será expandir el lado del servidor, y con ello mostrar las complejidades adicionales que son parte de una aplicación web.

Patrones de diseño
  • Patrón Cliente-Servidor
Volviendo al punto anterior, podemos observar que el modelo cliente-servidor es un modelo de patrón de diseño, ya que es una pantalla reutilizable que se puede aplicar una y otra vez.
Por tanto, se aplica en el problema de la comunicación a través de internet durante el uso de la World Wide Web, entonces el punto central de esta arquitectura es distribuir los componentes de una aplicación entre cliente y servidor de alguna manera.
  • Arquitectura N-niveles
Arquitectura 3-niveles (física)

En lo que respecta este patrón, la función delegada de la aplicación se divide entre el cliente y el servidor en niveles que son responsables de la presentación. A su vez, la arquitectura lógica tradicional de esta arquitectura se compone de las siguientes capas:

Arquitectura 3-niveles (lógica)
  • Capa de presentación: Conocida tambien como capa de usuario o interfaz gráfica, es la que ve el usuario, presenta el sistema al usuario, le comunica la información y captura la información del usuario en un mínimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). Además, debe tener la característica de ser "amigable" (entendible y fácil de usar) para el usuario. Esta capa se comunica únicamente con la capa de negocio.
  • Capa de negocio: Es donde residen los programas que se ejecutan, se reciben las peticiones del usuario y se envían las respuestas tras el proceso. Se denomina capa de negocio (e incluso de lógica del negocio) porque es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de presentación, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos almacenar o recuperar datos de él.
  • Capa de datos: Es donde residen los datos y es la encargada de acceder a los mismos. Está formada por uno o más gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio.
Nota: En una arquitectura de 3 niveles, los términos capas y niveles son totalmente distintos.
  • El término capa hace referencia a la forma como una solución es segmentada desde el punto de vista lógico.
  • En cambio, el término nivel corresponde a la forma en que las capas lógicas se encuentran distribuidas de forma física.
  • Por ejemplo:
  1. Una solución de 3 capas (presentación, lógica del negocio, datos) que residen en 1 sola computadora (Presentación + lógica + datos). Se dice que la arquitectura de la solución es de 3 capas y un nivel.
  2. Una solución de 3 capas (presentación, lógica del negocio, datos) que residen en 2 computadores (presentación + lógica por un lado; lógica + datos por el otro lado). Se dice que la arquitectura de la solución es de 3 capas y 2 niveles.
Para finalizar esta sección, veamos una arquitectura más compleja: 6-niveles.
Arquitectura 6-niveles
1. El nivel de presentación es comúnmente subdividido en 2 niveles.
  • Nivel de cliente: Componentes de IU del lado del cliente.
  • Nivel de lógica de presentación: Programas del lado del servidor para generar páginas web.
2. El nivel de aplicación es usualmente dividido en 2 niveles:
  • Nivel de lógica de negocio: Modela los objetos de negocio asociados a la aplicación.
  • Nivel de web: El servidor web propiamente.
3. El nivel de datos es a menudo subdividido en 2 niveles:
  • Nivel de datos: Los datos usados por la aplicación, algún tipo de almacenamiento de datos persistente.
  • Nivel de acceso de datos: Responsable del acceso a datos desde el nivel de datos y de pasarlos al nivel de lógica de negocio.


Referenias bibliográficas:
Aplicaciones Web | ¿Qué es un hipervínculo? | World Wide Web (WWW)  | ¿Qué es middleware?  | Qué es HTML  | Ventajas y desventajas de las aplicaciones web.Administracion de Base de Datos

Comentarios