Tip:
Highlight text to annotate it
X
Hola, soy Sergio Luján Mora, profesor de informática de la Universidad de Alicante,
y en este vídeo que forma parte del curso “Introducción al desarrollo web”, te
voy a hablar de la arquitectura de una aplicación web.
Las aplicaciones web suelen tener una arquitectura cliente/servidor.
En mi libro “Programación de aplicaciones web: historia, principios básicos y clientes
web”, que lo puedes descargar en formato PDF y de forma gratuita desde esta dirección,
puedes encontrar el capítulo 3 “Arquitecturas cliente/servidor”, en el que se explican
qué son las arquitecturas cliente/servidor, se explica la separación de funciones que
se realiza en este tipo de arquitecturas y se muestran algunos modelos de distribución
en aplicaciones cliente/servidor.
La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas
se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes
de los recursos o servicios, llamados clientes. En este modelo de aplicación, la capacidad
de proceso está repartida entre el cliente y el servidor.
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.
La arquitectura cliente/servidor se puede aplicar a programas que se ejecutan sobre
un mismo ordenador, aunque sus beneficios aparecen cuando se emplea en aplicaciones
multiusuario distribuidas a través de una red de ordenadores.
Ese es el caso de las aplicaciones web, donde la aplicación está distribuida entre varios
ordenadores a través de una red de ordenadores.
El cliente ejecuta el navegador web, el servidor ejecuta el servidor web y ambos se comunican
a través de Internet por medio del protocolo HTTP.
Este mismo modelo se puede aplicar en redes privadas, y en ese caso, se suele decir que
la red privada es una “intranet”.
En los primeros años de la Web, la capacidad de procesamiento del cliente era nula, el
navegador web simplemente mostraba las páginas web que recibía del servidor web.
Sin embargo, en diciembre del año 1995, cuando el navegador Netscape Navigator introdujo
el lenguaje de script JavaScript, abrió la puerta a incorporar un mayor procesamiento
en el lado del cliente.
La importancia del procesamiento de las aplicaciones web en el lado del cliente ha aumentado considerablemente
desde el año 2005 con la expansión de AJAX, ya que el navegador web se ha convertido en
una plataforma en la que utilizamos múltiples aplicaciones, como por ejemplo, Google Docs.
Otra vez en mi libro puedes encontrar el capítulo 4 “Qué es una aplicación web”, en el
que se describen las arquitecturas típicas de las aplicaciones web. Recuerda que este
libro es del año 2002 y desde entonces han surgido nuevos tipos de arquitecturas.
Según cómo se implementen las diferentes funcionalidades de la parte servidor se pueden
dar diferentes arquitecturas.
Por ejemplo, una arquitectura muy común es “todo en un servidor”: el servidor web
y el servidor de bases de datos se alojan en el mismo servidor.
Esta arquitectura es muy básica y es la que se suele tener en un ordenador de desarrollo.
Un arquitectura mejor se logra cuando se separa el servidor web y el servidor de bases de
datos.
Algunas tecnologías de desarrollo de aplicaciones web, como por ejemplo JSP, hacen uso de un
servidor de aplicaciones.
Aquí se puede tener otra vez “todo junto” en el mismo servidor, o se pueden separar
los diferentes componentes en diferentes servidores, aunque para el cliente todo el sistema se
comporta como un único servidor.
Estas arquitecturas son adecuadas cuando el número de usuarios que acceden de forma concurrente
a la aplicación web no es muy elevado.
Pero si van a acceder varias decenas de miles de usuarios o incluso millones de usuarios
al mismo tiempo, hay que emplear arquitecturas más complejas y costosas.
Por ejemplo, desde hace años existe la posibilidad de crear granjas de servidores, también llamados
clusters, en las que no existe un único servidor web, sino múltiples servidores web, que de
cara al cliente se comportan como uno solo y son controlados por una balanceador de carga
que reparte las peticiones de los clientes entre los servidores que forman la granja.
Una granja de servidores aporta importantes ventajas: permite distribuir las peticiones
entre los diferentes servidores, por lo que el sistema puede hacer frente a un mayor número
de usuarios. Y si aumenta el número de usuarios, es fácil añadir más servidores. Además,
si un servidor falla, la disponibilidad del sistema no peligra ya que el resto de servidores
puede hacer frente a las peticiones que se reciben.
Al principio, las granjas de servidores eran costosas y sólo se las podían permitir las
grandes empresas. Sin embargo, en los últimos años ha surgido un nuevo concepto de arquitectura,
la arquitectura basada en la computación en la nube o cloud computing.
Gracias a sistemas como Amazon Web Services, es posible hacer uso de sistemas con una arquitectura
muy compleja y potente sin incurrir en costes muy elevados. Con la computación en la nube,
la plataforma de ejecución de las aplicaciones web se convierte en un servicio más que puede
ser consumido según las necesidades que existan.
¿Te interesa el tema de las arquitecturas de las aplicaciones web?
Lo siento, el estudio de los diferentes tipos de arquitecturas de aplicaciones web y sus
ventajas y desventajas se escapan de los objetivos de este curso.
Para realizar el proyecto de este curso sólo necesitas una arquitectura básica de “todo
en un servidor”.
Ya para terminar, me gustaría recordarte algunos de los sitios web en los que puedes
encontrar más información sobre mí y sobre mi trabajo, y dos formas de contactar conmigo,
a través de mi correo electrónico sergio.lujan@ua.es y a través de mi cuenta en Twitter @sergiolujanmora.
Recuerda que este vídeo forma parte del curso “Introducción al desarrollo web” que
está disponible en la dirección idesweb.es.
Muchas gracias por tu atención.