ASIGNATURA: HERRAMIENTAS WEB
PARA AUTOR: ISAPI |
¿Qué es
ISAPI?
ISAPI (Internet
Server Application Program Interface)
Así como los escritos CGI, los programas
escritos usando ISAPI habilitan un usuario remoto para ejecutar un programa,
busca información dentro de una base de datos, o intercambia información con
otro software localizado en el servidor.
Los programas escritos usando la
interfaz ISAPI son compilados como bibliotecas de enlace dinámico (DLL - Dynamic Link Library), ya que son
cargados por el servidor Web cuando éste se inicia. Dichos programas se vuelven
residentes en memoria, por lo que se ejecutan mucho más rápido que las
aplicaciones CGI, debido a que requieren menos tiempo de uso de CPU al no
iniciar procesos separados.
Uno de los programas ISAPI más usados es
el HTTPODBC.DLL que se usa para enviar y/o devolver información hacia y desde
las bases de datos, a través de ODBC.
Extensiones
y Filtros ISAPI:
Hay 2 formas de programas de ISAPI - las extensiones y los filtros.
Extensiones de ISAPI: ser directamente de un URL tal como http://www.youdomain.com/isapi.dll. Si se asume
que se han fijado los permisos apropiados (el permiso las escrituras y Executables y el IUSR_MachineName
tiene el permiso del ejecutar NTFS) que el DLL funcionará. Un buen ejemplo de
una extensión del ISAPI son las extensiones del servidor del Frontpage.
Filtros ISAPI: Un filtro ISAPI es básicamente una librería dinámica (DLL)
reemplazable, que el servidor llama cuando se produzca una petición por parte
de un cliente. Cuando el filtro se carga por primera vez, éste comunica al
servidor el conjunto de notificaciones que atenderá. Así que, después de que se
produzca esta asignación, si se genera un determinado evento que el filtro
puede procesar, el servidor lo llamará para que lo atienda.
En un mismo servidor es posible tener varios filtros. El orden de
prioridades entre ellos se establece mediante la prioridad fijada con
anterioridad en el filtro y, si existen varios filtros con la misma prioridad,
entonces se asignará prioridad máxima al filtro que se cargó por primera vez,
asignando de forma consecuente prioridad mínima al último filtro cargado.
Dependiendo de las opciones elegidas, el filtro puede actuar en
varias operaciones del servidor. Por ejemplo, se puede actuar mientras se leen
datos de cualquier tipo desde el cliente, cuando se están procesando las
cabeceras, mientras se establecen las comunicaciones en un puerto seguro, o
cualquier otra fase que se produzca en el procesado de consultas HTTP.
Mediante la utilización de filtros ISAPI es posible mejorar
notablemente el servidor ya que permite la inclusión de esquemas de
autorización personalizados, compresión, encriptación, análisis de tráfico,
etc.
Sin embargo, los filtros ISAPI no son más que una mejora dentro del
servidor que, pese a ser importante, no es suficiente.
La evolución de las anteriores tecnologías ha dado lugar a las
denominadas páginas activas.
Campo de
Aplicación y Alcance
ISAPI es una alternativa a los ejecutables CGI, de mayor eficacia que éstos . Un servidor HTTP responde a una petición de
ejecución de CGI desde un ‘browser’ creando un nuevo
proceso y pasando a continuación los datos recibidos desde el browser mediante variables de entorno y la stdin. Los resultados recogidos por la
aplicación CGI estarán disponibles en la stdout
del nuevo proceso. El servidor HTTP crea tantos procesos como peticiones de
ejecución del CGI recibe, por lo que este sistema tiende a consumir mucho tiempo
y a requerir grandes cantidades de memoria RAM, poniendo en peligro e
rendimiento global del servidor HTTP.
A diferencia de este sistema, las aplicaciones ISAPI son DLLs (Dynamic Link Libraries) que se cargan en el mismo espacio de direcciones
que el propio servidor HTTP, lo cual supone que todos los recursos disponibles
para éste lo están también para aquéllas. Hay por tanto una sobrecarga mínima
asociada con la ejecución de estas aplicaciones, ya que cada petición de
ejecución no requiere montar un nuevo proceso.
La
interacción entre el servidor y una determinada DLL de la aplicación ISAPI se
realiza mediante una ‘extension control block’ (ECB), en lugar de hacerlo, como en el caso de CGI
mediante variables de entorno y las stdin/stdout.
Desarrollar
un programa del cgi implica el crear de un EXE con
lenguajes de programación de C, de C++, y/o del Perl.
Este archivo de EXE será ejecutado y terminado para cada petición recibida,
causando un uso excesivo de la memoria, siempre que los usuarios golpeen la
misma página repetidamente otra vez.
Este uso
excesivo de la memoria que podría traer el servidor totalmente abajo, se ha
solucionado bajo extensiones de ISAPI. Una extensión de ISAPI es un archivo
regular del DLL que expone 3 funciones especiales que es llamado por el proceso
que llama (es decir, IIS) y por lo tanto, será cargado a la memoria una vez, no
importa cómo muchos clientes van a utilizarla al mismo tiempo.
INFOGRAFIA:
• http://www.codeproject.com/isapi/isapi_extensions.asp
What an ISAPI
extension is?
En que consiste una
extensión ISAPI.
• http://www.codeproject.com/isapi/profiling_isapi.asp
Improving the
performance of ISAPI Applications – Profiling the ISAPI DLL’s
Diferencia entre
filtros y extensiones ISAPI
• http://www.iis-resources.com/modules/wfsection/article.php?articleid=9
What
is ISAPI, and what are ISAPI Filters and Extensions?
CGI contra ISAPI
• http://mipagina.cantv.net/gamendez/isapi111.htm
ISAPI
Campo, aplicación
y alcance de ISAPI
Descripción de Interfaz ISAPI
• http://www.idg.es/pcworld/articulo.asp?id=37864
Programación para Internet, intranets y extranets
Descripción
de Filtros ISAPI