Conocer las diversas maneras de organizar una aplicación web
En este módulo didáctico se hablará de las maneras de organizar aplicaciones mweb y de cómo hacer que puedan funcionar a pesar de estar sujetas al comportamiento caótico e imprevisible de Internet.
Primero se caracteriza la demanda de estos servicios y cómo medirla en una situación real. Después se describen las formas de organizar las aplicaciones en servidores web y también se profundiza en su funcionamiento. Seguidamente se presentan formas distribuidas de servicio:
servidores intermediarios proxycache,
redes de distribución de contenidos que no dejan de ser extensiones o
servicios que facilitan las tareas de los servidores de aplicaciones y que permiten un funcionamiento más óptimo de Internet. Finalmente se presentan las aplicaciones orientadas a servicios y computación bajo demanda que a día de hoy están cambiando el funcionamiento global de Internet.
Objetivos
Las competencias que se alcanzarán fruto del trabajo de este módulo didáctico
son las siguientes:
1. Conocer las características de la demanda que tiene que satisfacer un servidor web.
2. Conocer las diversas maneras de organizar una aplicación web y los modelos que existen, según varios criterios.
3. Conocer las características y el funcionamiento de cada modelo.
4. Poder elegir la mejor opción en cada situación y valorar las implicaciones del montaje que hay que hacer.
Características de la demanda de páginas web
El tráfico de web es el responsable de un buen porcentaje del tráfico de Internet. Esta tendencia ha ido creciendo gradualmente desde que apareció la web (protocolo HTTP), y hoy día el tráfico HTTP predomina respecto del resto de los protocolos, y hay una gran población de usuarios “navegantes” que pueden generar una cantidad inmensa de peticiones si el contenido es interesante. La organización de un servicio web conectado a Internet requiere tener en cuenta las características de la demanda que pueda tener que atender.
Por otro lado, la web (HTTP) es un servicio muy reclamado por todo tipo de organizaciones para publicar información, como puede verse en la tendencia de crecimiento del número de servidores web en Internet, que ha sido exponencial, tal y como muestra la figura 3.
Para completar este análisis de las tendencias a la Red, las figuras 5.a y 5.b nos muestran por un lado el incremento exponencial del número de huéspedes que acceden a la Red y por otra, el auge de las redes sociales como Facebook con un incremento muy elevado del número de usuarios en muy poco tiempo.
La popularidad de los servidores web también es muy variable. Un mismo sitio web puede recibir muy pocas visitas durante mucho tiempo y, de repente, recibir más peticiones de las que puede servir: es un tráfico a ráfagas
Un servidor puede recibir aludes repentinos de tráfico. Por ejemplo, por las estadísticas del siguiente servidor web sabemos que, después de que se anunciara en la página de noticias salshdot.org, experimentó un exceso de visitas tan elevado que el servidor se bloqueó.
Un servidor web puede tener miles de documentos y, sin embargo, recibir la mayoría de las peticiones por un único documento. En muchos casos, la popularidad relativa entre distintos sitios web o entre diferentes páginas de un cierto sitio se rige por la ley de Zipf (George Kingsley Zipf, 1902-1950).
El ejemplo más famoso es la frecuencia de palabras en inglés. En 423 artículos de la revista Time (245.412 palabras), the es la que más aparece (15.861), of está en segundo lugar (7.239 veces), to en tercer lugar (6.331 veces), y con el resto forman una ley potencial con un exponente cercano a 1.
Una distribución de popularidad Zipf forma una línea recta cuando se dibuja en una gráfica con dos ejes en escala logarítmica, que resulta más fácil de ver y comparar que la gráfica en escala lineal, tal y como puede verse en la figura 8.
Muchos estudios muestran que las visitas de páginas web siguen una distribución de Zipf. La figura 9 muestra las visitas en www.sun.com durante un mes de 1996. La página principal recibió prácticamente 1 millón de visitas, mientras que la página de la posición 10.000 de popularidad sólo recibió una visita aquel mes. La gráfica de visitas sigue la curva de Zipf excepto para los valores menos populares, lo cual seguramente se debe al hecho de que el periodo de observación no fue lo bastante largo.
Como resumen, diferentes estudios del tráfico web contribuyen a definir un perfil típico o reglas a ojo de la web –según M. Rabinovich y O. Spatscheck (2002):
El tamaño medio de un objeto es de 10-15 kbytes, y la media de 2-4 kbytes. La distribución se decanta claramente hacia objetos pequeños, aunque se encuentra una cantidad nada despreciable de objetos grandes (del orden de Mbytes).
La mayoría de los accesos a la web son por objetos gráficos, seguidos de los documentos HTML. El 1-10% son por objetos dinámicos.
Una página HTML incluye de media diez imágenes y múltiples enlaces a otras páginas.
Un 40% de todos los accesos son para objetos que se considera que no se pueden inspeccionar
La popularidad de objetos web es muy diferente: una pequeña fracción de objetos es la responsable de la mayoría de los accesos, siguiendo la ley de Zipf
El ritmo de acceso para objetos estáticos es muy superior al ritmo de modificación
En una escala de tiempo inferior al minuto el tráfico web es a ráfagas, por lo cual valores medidos con medias durante algunas decenas de segundo son muy poco fiables
Un 5-10% de accesos a la web se cancelan antes de finalizar.
Prácticamente todos los servidores utilizan el puerto 80.
Cada sitio web es un poco distinto, y puesto que un servidor web es un sistema complejo y, por lo tanto, difícil de modelar, resulta conveniente hacer experimentos tanto para ver cómo los niveles de carga (peticiones de páginas web) crecientes afectan a nuestro servidor, como para observar periódicamente el comportamiento de un servidor web analizando los diarios (logs) que puede generar.
Para probar el rendimiento de un servidor web, normalmente se utiliza algún programa que, instalado en otro computador, genere un ritmo de peticiones equivalentes para medir el efecto de las visitas simultáneas desde distintos clientes. El ritmo de peticiones puede configurarse de una manera ligeramente distinta para cada herramienta, pero el objetivo es ser estadísticamente equivalente a la demanda real que el servidor pueda experimentar durante su funcionamiento normal. Esto recibe el nombre de carga sintética
Hay muchas herramientas. A continuación se describen brevemente tres herramientas populares y gratuitas:
Microsoft Web Application Stress (WAS) es una herramienta de simulación para Windows diseñada para medir el rendimiento de un sitio web. Tiene en cuenta las páginas generadas dinámicamente (ASP) en un servidor web de Microsoft
Apache JMeter, una aplicación Java para medir el rendimiento de documentos y recursos estáticos y dinámicos (archivos, servlets, scripts Perl, objetos Java, consultas de bases de datos, servidores FTP, etc.), que simula distintos tipos de carga extrema de la Red, del servidor o de un objeto concreto.
Surge de la Universidad de Boston: una aplicación Java que genera peticiones web con características estadísticas que simulan con mucha precisión la demanda típica de un servidor web.
Durante el funcionamiento normal del servidor, es conveniente supervisar la demanda y el rendimiento del servicio para detectar su degradación (responde muy lentamente por exceso de peticiones o tráfico) o situaciones críticas (sobrecarga: no responde).
SIGUE APRENDIENDO DESCARGANDO EL ARCHIVO