Gamarod JavaScript - Rutinas JavaScript Efectos javascript Codigos javascript Rutinas JavaScript

Programacion




Todo sobre Cgi - Tutorial de CGI

Tutorial de CGI






Desde la aparición de esta nueva tecnología, se ha venido discutiendo mucho sobre el tema. Sin embargo, aún surgen muchas dudas sobre los pros y contras de cada tecnología.

Desde que Microsoft lanzó al mercado su Visual Studio 97 y junto él uso de algo llamado Páginas Activas del Servidor (o ASP, por su sigla en inglés: Active Server Pages), se ha gestado toda una intriga en torno a qué es mejor si la ejecución de scripts en el servidor usando CGI o ASP.

El tema en sí resulta ser bastante más complejo. Cuando queremos utilizar tecnología de Internet para intercambiar información dentro de nuestra empresa y montar lo que se denomina una Intranet, indefectiblemente nos surge la necesidad de poder ejecutar aplicaciones a partir de información ingresada a través de páginas HTML. En definitiva debemos crear y administrar procesos que interactúen con los usuarios.

Este es el momento cuando debemos decidir cual va a ser la metodología a utilizar. Es decir, a qué tipo de programación vamos a ceñirnos. De hecho, ya ha pasado el tiempo en el que programar se limitaba a hacer un análisis simplemente enfocado a la resolución de problemas concretos que tan sólo concernían al sistema. Bajo esta nueva realidad de centralización de procesos en servidores Web y múltiples plataformas del lado del cliente, ha llevado a que se considere con más detenimiento elementos tales como: qué cantidad de hebras habrán de ejecutarse por vez y de quién es la responsabilidad de administrar las mismas.

Como en todas las cosas de la vida, el proceso de cambio y purificación de métodos para lograr una solución óptima al respecto, ha venido sufriendo un inevitable devenir que ha sido acorde a las realidades. Primeramente, recordemos que lo único que se pretendía lograr era obtener alguna forma de capturar y procesar información ingresada por el usuario a través de Forms HTML, devolviendo al cliente algún resultado.

En estas circunstancias es que surgieron los llamados scripts CGI (Common Gateway Interface). Bajo ese acrónimo, se encerraba la posibilidad de desarrollar aplicaciones que decodificaban los elementos enviados desde el cliente y procesar la información devolviendo los datos hacia la salida estándar de vuelta al cliente. De esta forma, en el servidor se define un directorio que aloja los scripts, el cual queda configurado en el servidor como el lugar desde donde se ejecutarán al ser invocados desde algún Form en HTML (<Form Method=”Post” Action=”/cgi-bin/script” > Donde SCRIPT es el nombre del ejecutable). Una vez que dicho scripts son invocados, se ejecutan en el servidor y luego vuelcan la información hacia el cliente.

Analicemos pues, como funcionan los programas CGI. Primeramente, el usuario solicita su ejecución a través del Form en HTML. Una vez ejecutado, surgen algunas contras. Primeramente, el código se ejecuta siempre fuera del servidor Web.

Esto sin dudas es una contra porque lo que se carga en memoria es el mismo proceso una y otra vez, cada vez que el programa es invocado. De esta forma, con cada proceso que se crea, nuevos recursos de memoria son asignados a él cada vez que el usuario hace click en el botón SUBMIT del Form HTML. A su vez, el mismo proceso se elimina tan pronto como se envia la respuesta por HTTP. A este procedimiento se lo denomina OUT-OF-PROC o proceso externo al servicio web.

Por otra parte, la forma en la que se comunican dos aplicaciones CGI es a través de archivos de E/S. Al comienzo, en lenguajes como Visual Basic que no poseían la capacidad de leer de la entrada estándar (stdin) o escribir hacia la salida estándar (stdout) -como es el caso de PERL o C- este proceso se llevaba a cabo a través de llamadas a una API que permitía dejar o tomar datos de los archivos INI. Evidentemente, nos referimos a un tiempo pretérito cuando no existían los COM o DCOM.

Si bien la técnica descrita fue ampliamente utilizada, de hecho también se ha transformó en una desventaja en tanto la creación de tantos archivos intermedios generaba un cuello de botella a nivel de acceso a los discos.
Finalmente, si a través de un programa CGI debemos acceder a algún motor de base de datos, el mismo también se carga con cada llamada al programa y se descarga cada vez que se cierra la aplicación. Esto también implica tiempo y recursos (Estamos de acuerdo que se podría llegar a levantar alguna base de datos independientemente y luego simplemente ejecutar consultas. El artículo plantea el análisis para el peor de los casos).

Por otra parte, analicemos cuales son las ventajas de los CGI, si es que las hay. Primeramente, no hay que perder de vista que los scripts CGI fueron creados con el único objetivo inicial de resolver una tarea de recolección de información por parte del servidor. En su tarea batch, el CGI podría decirse que es útil. Si hablamos de un sitio parcialmente estático o que no centre toda su aplicación de una forma absolutamente interactiva, podríamos aún considerarlo como una alternativa viable.

A su vez, si de hecho los scripts se programan en lenguajes potentes y rápidos como C, C++ o Perl, esto hace que las apliaciones no consuman tantos recursos. Además, los scripts CGI son cien por cien portables. Es decir que como se ejecutan sobre cualquier servidor y sólo reciben código HTML (ya sea por el método POST o GET) y eventualmente devuelve código también en HTML, esto los hace absolutamente independientes del tipo de servidor que se desee utilizar. Por último, los CGI son una tecnología muy probada y su popularidad surgió a partir del surgimiento de lenguajes como PERL, que permitió la creación rápida de aplicaciones basadas en dicho paradigma.

Ahora veamos que nos ofrecen las Páginas Activas del Servidor o ASP. Esta tecnología surgió con Microsoft como dijimos al comienzo y por tanto, su principal desventaja (amén de todas las ventajas que se describirán a continuación), es que dependen de un sistema operativo. Esto quiere decir que fueron creadas para funcionar sobre servidores Windows NT con IIS (Internet Information Server ).

Antes de analizar las ventajas, entendamos bien el concepto que hay detrás de las Páginas de Servidor Activas. ASP es en sí una tecnología que se utiliza para la realización de scripts. A través de la misma, se pueden crear aplicaciones web dinámicas e interactivas.

Una página ASP es en esencia una página HTML que contiene código que será ejecutado del lado del servidor y procesado por el Web Server antes de que el cliente reciba la información. Es decir que el cliente lo que recibe es código HTML puro. Esa programación se puede combinar a su vez con XML, COM y HTML.

De esta forma, cada vez que el cliente solicita una archivo .asp del servidor, se ejecuta primero el código dentro de dicha página y luego se envía el resultado formateado de dicha página al cliente. Así pues, dentro de ese código tanto se pueden utilizar elementos de XML como se pueden hacer llamadas a componentes COM para acceder a otro tipo de información.

¿Cuáles son las ventajas del uso de las Páginas Activas del Servidor?. Pues bien, la primera y más importante es que el cliente no tiene acceso nunca al código que se ejecuta. Los scripts CGI clásicos han sido el principal objetivo de los hackers por su alta vulnerabilidad, ya que a través de los Forms se envía información que llega al servidor como flujo de STDIN. Este conocimiento conjugado con astucia y tenacidad, conforman la puerta número uno de entrada a los sistemas.

Por otra parte, otra ventaja importante yace en el hecho de que las páginas se ejecutan dentro del propio servidor Web (IIS) en lo que se denomina IN-PROC. Es decir, no salen a tomar recursos de memoria fuera del servidor web, como lo hacen los CGI; lo cual permite un mejor aprovechamiento del sistema de hebras con el que cuenta Windows NT. Además, si a esto le sumamos una óptima reutilización de objetos por parte del propio administrador del IIS, obtenemos un entorno bastante más optimizado en lo que concierne a utilización de recursos.

Finalmente, las Páginas Activas permiten a su vez el acceso a bases de datos a través de objetos que administran esas llamadas. Por tanto, tampoco se desperdician recursos a ese nivel. El concepto en sí convengamos que es intersante. En lo que respecta a su utilización y/o difusión, está evidentemente en crecimiento.

Es una tecnología relativamente nueva y la razón por la cual quizá en estos tiempos de cambios aún no ha permitido que popularice en su totalidad, radica en su baja portabilidad y en la existencias de demasiados sitios ya establecidos con scripts CGIs aún funcionales. Su aceptación como estándar ya es un hecho. Su uso generalizado, una muy posible realidad.




Informe (Cgi) de Wilman Arambillete


 
Valora este artículo   Malo Excelente  

Han valorado este artículo de Cgi. 64 usuario(s).
Valoración media: Tutorial

Este artículo ha sido leído ( 10595 veces ).
Fecha: 4/17/2003


Agregar comentario | (0) comentarios
trucos Cgi Recomendar este artículo Cgi
Foros sobre Cgi
Cgi
Imprimir Cgi
artículo Cgi Agregar a Favoritos este artículo Cgi


Cgi
Artículos Relacionados

• Utilizando el FormMail Cgi

• Introducción a PHP

• Tutorial de CGI