Next
Previous
Contents
La solución que surge entonces es utilizar un programa que puede
intercambiar datos con el usuario a través de la WWW, ejecutado en
nuestro servidor y que por lo tanto corre en un entorno seguro y que
conocemos. Esos programas podían estar escritos y funcionando en
prácticamente cualquier sistema o lenguaje de programación.
Nuestro script típico tomaría los datos que se le han proporcionado, y
realizaría alguna acción, devolviendo como resultado una página www
que podría ser distinta dependiendo de los datos o del resultado del
proceso en nuestra máquina. Esto significa interactividad con control
en el servidor. Lo único que controla el usuario son los datos que
manda (esto también puede resultar un agujero de seguridad, pero ya
hablaremos de ello más adelante).
Hasta hace relativamente poco, la solución más accesible (y la que
probablemente siga siendo la más adoptada) es usar Perl para procesar
los datos y construir una página que se le pueda devolver al usuario.
Perl es un lenguaje interpretado que posee unas características
particularmente beneficiosas a la hora de escribir programas de este
tipo, ya que fue inicialmente concebido como una herramienta de
proceso de informes y muestra un comportamiento excelente en el
proceso de datos de cualquier tipo. De hecho, PERL es el acrónimo de
Practical Extraction and Report Language, es decir, lenguaje
de programación práctico para extracción y generación de informes.
Además Perl es completamente libre y hay desarrolladas una cantidad
muy importante de librerías de funciones que implementan casi todas
las funciones que uno pueda necesitar. Pero en este punto surgen
varios problemas:
- Cada vez que el script se tiene que ejecutar ha de iniciarse el
intérprete de Perl, lo cual resulta en una sobrecarga inicial no
despreciable. Esto limita nuestro uso del script: sólo podremos
utilizarlo en máquinas potentes o en sistemas que sepamos que van a
tener pocos usuarios simultáneos.
- El script que programemos ha de generar la página
íntegramente. Es decir, que tenemos que programar nuestro script para
que el documento resultante tenga etiquetas como <html>,
<head>, <body> etc, y en el orden adecuado. Esto tiene
repercusiones importantes a la hora del diseño de webs grandes, en los
que el mantenimiento del estilo y las plantillas no resulta un
problema trivial.
Como respuesta a estos problemas han surgido varios sistemas, algunos
de ellos dependientes de plataforma, que alivian de algún modo las
pesadillas de los webmasters y de los administradores.
- PHP/ASP.
Ahora mismo es el tipo de solución más popular. El concepto es
sencillo: dentro de las propias páginas html se incluyen unas
directivas escritas en un lenguaje especial que se ejecuta en el
servidor (accesos a bases de datos, bucles etc). PHP por supuesto
tiene la ventaja de que es libre
y que está disponible para casi todas las
plataformas y sistemas operativos, a diferencia de las Active Server
Pages de Microsoft.
- Servlets.
Son programas ejecutados en el lado del servidor que pueden correr
scripts en lenguajes como Java (Java Servlets) aunque ahora es posible
utilizar otros lenguajes interpretados como Python etc...
Perl Embebido es un módulo de extensión de Perl que nos va a permitir
la máxima interactividad posible desde el servidor usando Perl como
lenguaje de programación.
Perl Embebido supera nuestras dos dificultades principales del
siguiente modo:
- En primer lugar se ejecuta bajo mod_perl (aunque también puede
ejecutarse al estilo de los antiguos CGI's). Mod_perl es un módulo de
Apache que introduce el intérprete de Perl dentro del mismo servidor
Web y que optimiza la ejecución de aplicaciones escritas en este
lenguaje, evitando la sobrecarga de inicialización antes mencionada y
logrando un rendimiento muy superior al de otras alternativas.
- En segundo lugar y tal como reza el nombre, Perl embebido permite
incluir código Perl directamente dentro de las páginas web. Esto no
sólo resulta cómodo para el programador sino que permite la
integración con otras herramientas que el estilo Perl-CGI antiguo no
nos permitía, como por ejemplo con Website Meta Language.
Principales ventajas de Perl Embebido.
Es conveniente destacar algunas de las principales ventajas a la hora
de utilizar Perl como elemento de acceso a la base de datos, algunas
particulares del lenguaje de programación en sí y otras particulares
de la forma de introducir Perl en servidores WWW:
- Perl es un lenguaje flexible, potente, maduro y muy rápido a la hora
de escribir código.
- Existe una tremenda cantidad de módulos bien documentados que podemos
usar dentro de nuestro código y que nos permiten construir de forma
sencilla aplicaciones web que hagan casi cualquier cosa (Ej: Acceso a
bases de datos independiente de la implementación de SQL, creación
automática de imágenes, operación sobre el sistema operativo...). Y
toda esta funcionalidad se puede explotar con Perl embebido desde una
página Web.
- La ejecución sobre mod_perl es muy veloz. Varias
pruebas han revelado que es muchas veces más rápida que la de CGI's
convencionales.
- Todo el software que es necesario para hacer funcionar
mod_perl es libre y está bien documentado. Además algunas
distribuciones lo incluyen empaquetado y prácticamente listo para
usar.
- mod_perl Incluye algunas facilidades propias para
manejar aspectos particulares de la programación web que resultan muy
útiles (datos de formularios, manejo de la sesión, etc).
Quizás la ventaja más importante es que no es necesario aprender un
lenguaje de programación que sirva para una única aplicación. Perl es
multipropósito y tremendamente útil en otros campos de
utilización.
Desventajas
Sin embargo Perl embedido no está exento de desventajas, puede
resultar, a priori, un poco más difícil de utilizar que sus
rivales. Además, el lenguaje de programación Perl puede ser bastante
difícil de leer (y por tanto mantener) si no se ha documentado lo
suficiente. La premisa de Perl de poder realizar la misma cosa de
muchas maneras distintas puede llevar a que el mantenimiento del
código por parte de otro programador sea dificultosa si las cosas no
se han hecho de manera ordenada.
Next
Previous
Contents