Extensiones del servidor

Extensiones del servidor

La mayoría de los servidores de internet ofrecen extensiones en el servidor para extender la funcionalidad de las aplicaciones Web, dando posibilidad de acceder a bases de datos, presentar anuncios rotativos, ...

Un ejemplo de extensiones podemos tenerlo en las que ofrece el Intenet Information Server (IIS): SSI, ISAPI, IDC y ASP

SSI

Presentes en la mayoría de los servidores Web, las directivas de inclusión del servidor (SSI) indican al servidor Web que inserte en una página HTML el contenido de otro archivo. El uso de archivos incluidos es una forma cómoda de almacenar en un único archivo información que se utiliza en varias páginas. Por ejemplo, podría utilizar directivas SSI para insertar un aviso de copyright en todos los documentos de su sitio Web.

ISAPI

Internet Server Application Programming Interface (ISAPI) proporciona una serie de interfaces que pueden usarse para crear extensiones y filtros para el IIS. ISAPI es una librería de funciones para programar extensiones en forma de librería DLL que extiendan la funcionalidad del servidor, son los equivalentes a los módulos enlazables al servidor en otros servidores Web.

Microsoft dice que ISAPI tiene una serie de ventajas sobre el modelo CGI: mejora el rendimiento, baja sobrecarga, carga rápida y mejor escalabilidad. Funcionalmente hace lo mismo que un CGI, si el cliente HTTP demanda una funcionalidad ISAPI, la DLL es cargada (el lugar del ejecutable .EXE de un CGI) siempre que ya no lo esté y la DLL realiza el trabajo pedido por el cliente. Una DLL (Dinamic Link Library, biblioteca de enlace dinámico) es una característica de la familia de sistemas operativos Microsoft Windows que permite almacenar las rutinas ejecutables, que normalmente cumplen una función o un conjunto de funciones específicos, independientemente como archivos con la extensión .dll y cargarlas sólo cuando el programa las necesita. Esto ahorra memoria durante la ejecución del programa y permite volver a utilizar el código.

La mejora viene porque a la hora de atender una petición la DLL está ya en memoria y no es necesario crear un nuevo proceso y gestionarlo, sólo se crea un ECB (Extension Control Block) con los datos de la petición para procesarlos, un CGI tomaría los datos de las variables de entorno del sistema a través de un nuevo proceso creado.

Lo que no dice Microsoft es que muchos sistemas operativos comparten código en memoria, es decir, no repiten el código del programa en memoria con el consiguiente consumo de memoria extra, lo que hace que la diferencia entre gestionar un ECB y un proceso nuevo puedar ser, siempre según qué sistema operativo, muy pequeña, y entonces el modelo ISAPI no sea más que una extensión ideada para el IIS que no presenta grandes diferencias de rendimiento con el modelo CGI en otros sistemas operativos.

IDC

El IDC o Conector de bases de datos de Internet es una herramienta que puede utilizarse para enviar consultas a una base de datos, dar formato a los datos devueltos en una página HTML y devolver la página a un explorador. Los exploradores de Web (como Internet Explorer u otros exploradores) emiten peticiones al servidor de Internet mediante HTTP. El servidor Web responde con un documento en formato HTML.

El acceso a las bases de datos se realiza mediante un componente del servidor Web llamado Conector de bases de datos de Internet (IDC). Técnicamente, el Conector de bases de datos de Internet, Httpodbc.dll, es una DLL ISAPI que utiliza ODBC para tener acceso a las bases de datos. ODBC (Open Database Connectivity, conectividad abierta de bases de datos) es una interfaz de programación de aplicaciones que permite a las aplicaciones tener acceso a datos desde diversas especificaciones estándar de orígenes de datos para acceso a bases de datos multiplataforma, es decir, permite acceder a datos almacenados independientemente del sistema que los aloje.

IDC sirve para insertar, actualizar y eliminar información de la base de datos según la información proporcionada por el usuario en una página Web. Esta funcionalidad ha sido incluída en las páginas ASP, con lo que se espera un detrimento del uso del IDC en favor de ASP, por ofrecer mayor potencia y flexibilidad.

ASP

Las Active Server Pages (ASP) permiten ejecutar código (VBScript o JavaScript) en el servidor, son archivos que contienen etiquetas HTML, texto y comandos de secuencias de comandos y pueden llamar a componentes ActiveX del servidor para que realicen tareas, como la conexión con bases de datos o contenidos interactivos.

Las secuencias de comandos ASP comienzan a ejecutarse cuando un explorador solicita un archivo .asp al servidor Web. El servidor Web llama a ASP, que lee el archivo solicitado desde el principio hasta el final, ejecuta los comandos que encuentre y envía una página Web al explorador, es lo mismo que un CGI pero ejecutado en forma de código VBScript o JavaScript con objetos ActiveX.

Puesto que las secuencias de comandos se ejecutan en el servidor y no el cliente, el servidor Web hace todo el trabajo necesario para generar las páginas Web que envía a los exploradores. No tiene que preocuparse de si un explorador puede o no procesar las secuencias de comandos: el servidor Web hace todo el proceso de las secuencias de comandos y transmite el código HTML estándar al explorador. Las secuencias de comandos del servidor no se pueden copiar, ya que sólo se devuelve al explorador el resultado de la secuencia de comandos. Sus usuarios no pueden ver los comandos de la secuencia de comandos que crearon la página que están viendo.

Los comandos de las secuencias de comandos se distinguen del texto mediante delimitadores. Un delimitador es un carácter o una secuencia de caracteres que marca el principio o el final de una unidad. En el caso de HTML, dichos delimitadores son los símbolos menor que (<) y mayor que (>), que enmarcan las etiquetas HTML.

ASP utiliza los delimitadores <% y %> para enmarcar los comandos. Dentro de los delimitadores puede incluir cualquier comando válido dentro del lenguaje de secuencia de comandos que esté utilizando. El ejemplo siguiente muestra una página HTML sencilla que contiene un comando de secuencia de comandos:

<HTML>
<BODY>
Esta página se actualizó por última vez el <%= Now %>.
</BODY>
</HTML>

La función Now de VBScript devuelve la fecha y la hora actuales. Cuando el servidor Web procesa esta página, reemplaza <%= Now %> con la fecha y la hora actuales y devuelve la página al explorador:

Esta página se actualizó el 8/1/97 2:20:00 PM.

¿ Qué se puede hacer con ActiveX y ASP ?

Con los componentes ADO (ActiveX Data Objects) que IIS incorpora con ASP puede accederse a bases de datos a través de ODBC, presentar alternativamente una serie de imágenes y proporcionar un vínculo entre la imagen mostrada y otra dirección URL, acceso a ficheros en el servidor, contadores en páginas Web, ... un conjunto de funcionalidades que vemos cuando navegamos por Internet.

¿ CGI o ASP ?

Aplicaremos un criterio similar a la hora de elegir entre JavaScript y VBScript para el cliente, si va a trabajar en un entorno Microsoft, ASP se integrará mejor con el servidor Web (IIS), si lo que quiere es desarrollar algo general para Internet independientemente del servidor Web, CGI será lo más adecuado.

No hay que olvidar que los programas CGI pueden ser ejecutables y que las páginas ASP se interpretan en el servidor, con lo que si el proceso que debe hacer el servidor es pesado (cálculos intensos, generación de gráficos, análisis de datos, ...) CGI será la única opción viable por ser un programa ejecutable más del servidor.

Para una referencia completa del las extensiones de los distintos servidores consulte la documentación de los mismos, además puede buscar en:


Página principal
Última revisión: 21 de abril de 2000