10 de octubre de 2012

Ventajas de las páginas web dinámicas

En el desarrollo de un proyecto web, generalmente tenemos la opción de publicar páginas web estáticas o páginas web dinámicas. Pero cuales son las diferencias y/o ventajas de las páginas web dinámicas vs las páginas estáticas.

Como veremos la decisión de usar un tipo u otro de página web, no es algo en blanco y negro. Primero, necesitamos conocer cual es la ventaja de usar una u otra alternativa en la programación web.

¿Cual es la diferencia?

Página Web Estática o Dinámica:

Acudiendo a los conceptos básicos, una aplicación web es un software donde su salida se vuelca en un Explorador o Browser de Internet.

También, las aplicaciones web, son conocidas como aplicaciones de cliente liviando o cliente ligero, para diferenciarlas de otras aplicaciones que no corren dentro del espacio de un Explorador. Tomemos los ejemplos típicos:
  • Aplicaciones de cliente ligero: Gmail es una aplicación web, donde toda la interfaz gráfica de control, está soportado por el propio Explorador, de hecho podría decirse que el Explorador forma parte de nuestra aplicación.
    Por mencionar tan sólo un aspecto, los controles gráficos como el botón "enviar correo" están definidos por el propio explorador, por lo tanto no es necesario programar su funcionalidad interna desde cero.
  • Aplicaciones de cliente pesado: Google Earth es una aplicación de cliente pesado, donde esta no se ejecuta en el espacio del Explorador.
    Por lo tanto, la aplicación Google Earth debe desarrollar toda la estructura para la ejecución en su lado cliente, en un sistema operativo dando. En consecuencia, la aplicación cliente de Google Earth será particular, según el sistema operativo del visitante.
Una aplicación web, independiente de su complejidad, entrega su salida como un contenido HTML. Desde ese punto de vista, no son diferenciables las páginas web dinámicas de las páginas web estáticas, en el contexto del despliegue al usuario final.
Entonces, ¿Cual es la diferencia?, la diferencia sucede en el ámbito del servidor.

Páginas web dinámicas vs estáticas

Las páginas web dinámicas, son generadas en el servidor por la ejecución del lenguaje Script (PHP, Ruby, Python, Perl, ASP.NET) sobre el cual se encuentran programadas y el resultado de esa ejecución es una salida HTML despachada al navegador.
En cambio, una página web estática es un archivo de texto HTML, que el servidor despacha hacia el navegador. En este sentido, una página web estática requiere menos procesamiento del lado servidor, pues este sólo necesita localizar el archivo HTML, leerlo y despacharlo al navegador.

Diferencias entre páginas dinámicas con las estáticas: Origen de las páginas estáticas

Conociendo las diferencias, podemos decir que las páginas web dinámicas se hicieron necesarias, en el momento en que la cantidad de contenido creció a un nivel importante, y esto se expresaba en la práctica, en un número enorme de archivos HTML dispersos en diversos directorios, haciendo muy difícil su administración.
En ese momento, surgió la necesidad de separar el contenido en una estructura mejor adaptada para su administración, y la mejor opción fue usar una base de datos para gestionar el contenido.
Así una página web dinámica, es básicamente una script en el servidor que obtiene el contenido de una base de datos y traduce ese contenido en una salida HTML. Entonces, podemos entender, desde su origen, a las páginas web dinámicas, como una aplicación en el servidor web que su ejecución capturan desde la base de datos el contenido y lo despachan como HTML.

Páginas Dinámicas: como Aplicación Web

De este modo, la tecnología evolucionó en la medida que los usuarios deseaban disponer servicios similares a los aplicaciones instaladas en sus computadores, pero ahora en la Internet.

Esto impulsó, mediante las páginas web dinámicas, el generar las aplicaciones en la web que proveyeran de una experiencia de usuario cercana a las aplicaciones de escritorio. Dando una gran ventaja a los usuarios, de disponer de los servicios ya no atados a sus computadores, servicios como: Dropbox, Delicious, por mencionar algunos buenos ejemplos.

En la práctica, hoy en día la gestión de contenidos es una de las principales tareas del desarrollador web dejando de lado todo el resto del universo de las aplicaciones web. En este aspecto, podemos restringir el foco y analizar cuando conviene el usar Páginas web dinámicas vs estática.

Aplicaciones Híbridas

A la hora de diseñar o programar la gestión de contenidos, no estamos forzados a una decisión general entre la publicación dinámica o estática.

De hecho muchas, dentro de una aplicación web conviven páginas dinámicas con estáticas. Pero hay un tipo de gestores de contenidos que funcionan de un modo híbrido, donde la administración de contenidos sucede sobre páginas dinámicas y su publicación queda confinada a páginas estáticas. Estas aplicaciones híbridas son útiles en la generación de:
Muy empleados, en la publicación de campañas publicitarias en la web, donde el contenido promocional es de cortar vigencia, y no es de interés mantenerlo complicando innecesariamente su gestión. Algunos CMS's (Sistemas Administradores de Contenidos), generalmente multisitios, usan este mecanismo, por ejemplo:
  • MovableType: Es un CMS multisitios, que se gestiona desde una interfaz back-end usando páginas dinámicas, pero en su publicación se genera archivos de texto HTML puro.

Ventajas de la Publicación Estática vs Dinámica

La publicación estática, o simplemente la generación de archivos de texto HTML, presenta una ventaja clara frente a las páginas dinámicas. Esta se refiere a que no requiere un procesamiento mayor del lado del servidor, lo cual es un factor crucial en sitios web de alto tráfico.

El problema que tiene la publicación estática, es que la generación de los archivos HTML puede ser un proceso bastante lento, y muchas veces se prefiere usar un sistema eficiente de CACHE apoyando a las páginas dinámicas.

Conclusión

La decisión de usar una publicación dinámica vs estática en sistemas administradores de contenido web, debe ser cuidadosamente estudiada. Considerando factores como:
  • Cual es la carga de trabajo en el proceso de actualización de información.
  • Que complejidad se genera al manejar distintas versiones de un mismo contenido HTML, particularmente frente a la gran cantidad de dispositivos móviles.
  • El nivel de Vigencia de la información.
  • Y las condiciones de tráfico junto a las limitaciones de Hardware y Servicios de Telecomunicaciones.
Estos aspectos mencionados, juntos a otros, condicionan a fin de cuenta los limites presupuestarios de un proyecto y hacen la decisión de usar páginas web estáticas o dinámicas una tarea delicada,