ISAPI

Los servicios de Internet Information Server (IIS) constituyen el servidor Web de Microsoft. Microsoft Internet Information Server cuenta con la posibilidad de desarrollar aplicaciones o archivos de comandos que los usuarios remotos inician haciendo click en vínculos HTML o completando y enviando un formulario HTML. Además usando lenguajes de programación se pueden crear aplicaciones o archivos de comandos que se comuniquen con el usuario mediante páginas dinámicas HTML. Al escribir las aplicaciones o los archivos de comandos puede usar una de las dos interfaces compatible y soportadas por IIS: Interfaz de puerto de enlace o gateway común (CGI) o la Interfaz de programación de aplicaciones de Microsoft Internet Server (ISAPI).

Actualmente existen multitud de herramientas que nos permiten generar código ISAPI o CGI, e incluso ambos simultáneamente. Una limitación del servidor IIS es que los ejecutables CGI deben ser aplicaciones WIN32 de modo consola, aunque se pueden ejecutar todo tipo de aplicaciones con el procesador o intérprete adecuados. Así es posible instalar los intérpretes de Perl, Rexx, Tcl, entre otros.

Interfaz de Puerto de Enlace o Gateway Común (CGI):

Es el protocolo interprocesos estándar para escribir extensiones a servidores web. Una aplicación CGI es un ejecutable externo, que procesa las variables de entorno y la entrada estándar y genera los resultados envíandolos a la salida estándar. La programación de los CGI no es muy complicada, ya que con un compilador de C o similares y unas sencillas bibliotecas de funciones para procesar las variables de entorno se pueden crear CGI. Este metodo es el tradicional en el mundo UNIX.

Interface de Programación de Aplicaciones para Servidores de Internet (ISAPI).

IIS exhibe una Interface de Programación de Aplicaciones (API) registrada denominada Internet Server API (ISAPI) para los desarrolladores que desean crear aplicaciones Web con una lógica personalizada del lado del servidor. Con la entrada en 1995 de Microsoft en el mundo Internet y la salida al mercado de su servidor web (Internet Information Server) se abrió un nuevo campo para las aplicaciones web: el ISAPI (Internet Server Aplication Program Interface). Esta fue originalmente creada por Process Software y adoptada por Microsoft como su servidor API estándar.

IIS ofrece una alternativa a ISAPI con un marco de trabajo denominado páginas Active Server (ASP). El marco de trabajo de ASP es, en sí mismo, una extensión de ISAPI que permite a los programadores escribir una lógica del lado del servidor utilizando lenguajes de secuencias de comandos y Visual Basic. Las aplicaciones Web que se crean mediante ISAPI o ASP proporcionan soluciones HTML, ahora bien, esta en nuestras manos la decisión de con que exploradores sera compatible la aplicación. Podemos aprovechar al máximo las posibilidades de exploradores, como Internet Explorer en un entorno de intranet utilizando dichas aplicaciones web.

¿QUE ES ISAPI?

Es una tecnología que permite a los desarrolladores web ampliar la funcionalidad de sus servidores, mediante código, para ampliar los servicios que se pueden proporcionar desde el servidor. Además, permite extender las funcionalidades de Internet Information Service y es la propuesta de Microsoft de una interfaz alternativa más rápida que el CGI (Common Gateway Interface). Los programas escritos usando ISAPI habilitan a 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. Es decir, un conjunto de funciones que el servidor web pone a disposición de los desarrolladores de bibliotecas. Con el ISAPI los desarrolladores pueden crear DLL (bibliotecas de funciones) con funciones que son invocadas para determinados archivos. Si ha utilizado archivos de comandos CGI anteriormente, encontrará que las aplicaciones ISAPI tienen un mejor rendimiento porque se cargan en memoria durante la ejecución del servidor. Requieren menos tiempo de espera porque cada petición no inicia un proceso distinto.

                                       

Sin embargo, ISAPI es una API de extensión del servidor de gran rendimiento compatible con Microsoft Internet Information Server y Servicio Web punto a punto. ISAPI permite que haya respuestas dinámicas a las peticiones HTTP, en lugar de simplemente devolver archivos HTML estáticos. 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. Httpodbc.dll es el nombre de la DLL de la aplicación ISAPI que implementa el IDC.

Características de ISAPI

Permite el preprocesamiento de peticiones y el postprocesamiento de respuestas, permitiendo la administración de peticiones y respuestas con el Protocolo de transferencia de hipertexto (HTTP) que sean específicas del sistema. Aunque la escritura de software basado en ISAPI proporciona los niveles más elevados de rendimiento y flexibilidad. Los programas ISAPI son considerablemente más rápidos que las aplicaciones escritas con la especificación CGI.

Bibliotecas ISAPI

Existen dos tipos de bibliotecas ISAPI: los Filtros ISAPI y las Extensiones o Aplicaciones ISAPI. Aquellos programadores que programan con ISAPI crean directamente módulos de software extensiones ISAPI y filtros ISAPI.  Las primeras son similares en cuanto a fin a los CGI pero difieren en funcionalidad mientras que los segundos se ubican entre el servidor http y el http "socket" es decir operando ya dentro del protocolo TCP/IP, soportando procesos de filtrado, encriptado, compresión de datos y otras operaciones lógicas. 

Filtros ISAPI

Un filtro ISAPI es una biblioteca que se ejecuta en el proceso inetinfo.exe para filtrar los datos que se transmiten a y desde el servidor. Este filtro registra las notificaciones de eventos. Cada vez que se produce el evento seleccionado, el control se transfiere al filtro y el usuario puede supervisar y modificar los datos (que van desde el servidor al cliente o viceversa). Los filtros ISAPI se pueden utilizar para mejorar el registro de las peticiones HTTP ( por ejemplo, para identificar a los usuarios que se conecten a su servidor), la encriptación y compresión personalizados o los métodos de autentificación adicionales. Cuando se implementan los filtros ISAPI, todas las peticiones y respuestas deben pasar por ellos, por lo que puede verse afectado el rendimiento del sitio.  Los filtros ISAPI permiten al desarrollador escribir código que se ejecuta por el servidor web cuando el cliente solicita un archivo con una determinada extensión. Los filtros ISAPI pueden utilizarse para aplicaciones tales como: autenticación, acceso o apertura de sesión.

                                                                            

Extensiones ISAPI

Una extensión de servidor ISAPI es una biblioteca que se puede cargar y llamar a través de un servidor HTTP. Las extensiones de servidor de Internet, también denominadas aplicaciones de servidor de Internet (ISA), mejoran las capacidades de los servidores compatibles con ISAPI. Las aplicaciones ISA se invocan desde una aplicación de explorador y ofrecen una funcionalidad similar a la de una aplicación de interface de puerta de enlace común (CGI), aunque su rendimiento es considerablemente mejor.

Tambien puede combinar extensiones ISAPI con el Conector de bases de datos de Internet para crear sitios altamente interactivos.

                              

Las páginas de servidor activas (ASP) se implementan como una biblioteca de extensión ISAPI. Las páginas ASP se caracterizan por tener en un mismo archivo de extensión ASP código de script que se ejecuta en el servidor y código HTML que forma la página web. Es decir, en un mismo archivo se encuentra el HTML (apariencia de las páginas) y el código de la aplicación a ejecutar en el servidor.

ISAPI Vs. CGI

La principal ventaja de ISAPI sobre CGI es que aquel usa funciones de llamado DLL (Dinamic Link Libreries) para comunicarse con los componentes de extensión, en vez de variables de ambiente y I/O estándares, como lo hace CGI. Hay un gran peso de trabajo cuando se inician nuevos procesos en las plataformas Win32, y como los llamados DLL eliminan la necesidad de nuevos procesos, reducen con esto el tiempo de ejecución.

La diferencia entre CGI y ISAPI es que cada petición al CGI es manejada por procesos separados. Esto no es bueno cuando vas a tener muchas peticiones a la vez. Los DLL ISAPI pueden trabajar en el mismo espacio de proceso del IIS.

El diagrama siguiente ilustra diferencias entre el CGI planee y el modelo de ISAPI.

                                                              

 

[Principal]    [Infografía]     [Papers]