El profesional de la información


Marzo 1999

Aplicacion Isapi para la consulta a bases de datos

Por Jamilet Miranda Navarro y Nelson López Centeno

Resumen: En este artículo se describe una aplicación WWW para recuperar información de bases de datos que contienen especificaciones de calidad de producciones del Centro de Ingeniería Genética y Biotecnología (Cigb) en Cuba. Es una DLL que cumple con la especificación Isapi, para utilizarla como una extensión al servidor WWW de Microsoft. Se empleó el entorno de programación Delphi 3.0, versión cliente/servidor para desarrollarla.

Palabras clave: WWW, Isapi, Bases de datos, Delphi, DLL, Sistema de información.

Title: An Isapi application for accessing databases.

Abstract: This article describes a WWW application for retrieving information from a database containing quality specifications for products developed at the Center for genetic engineering and biotechnology (Cibg) in Cuba. This DLL application meets Isapi specifications which are used as an extension to Microsoft’s WWW server. The client/server version of Delphi 3.0 was used to build this application.

Keywords: WWW, Isapi, Databases, Delphi, DLL, Information system.

El WWW se basa en una arquitectura cliente/servidor, donde los clientes (navegadores) interactúan con servidores de http, ftp, gopher, etc. Además existen mecanismos que permiten la conexión con servicios de información a los que los navegadores no brindan acceso directo. Estos mecanismos extienden la funcionalidad del servidor de WWW.

CGI (common gateway interface) fue el primer mecanismo que se utilizó para ejecutar programas externos en un servidor WWW. La comunicación entre el servidor y el programa externo se realiza utilizando la entrada y salida estándar y variables del entorno. CGI fue concebido para Unix, pero su uso se ha extendido a Windows NT y otros sistemas operativos1.

«CGI fue concebido para Unix, pero su uso se ha extendido a Windows NT y otros sistemas operativos»

En la figura 1 se puede apreciar el esquema de funcionamiento del WWW. En este diseño la aplicación CGI ocuparía el lugar del script o programa, y sería la intermediaria entre los datos y el servidor de WWW. La función de la aplicación CGI es interpretar la solicitud que hizo el usuario a través del navegador, extraer la información y convertirla a formato html para que sea visualizada por el navegador.

Muchos servidores de WWW proveen interfaces para la programación de aplicaciones (application program interfaces, APIs) que brindan funcionalidad similar a la de aplicaciones CGI, pero con mayor eficiencia y más posibilidades. Como ejemplo de estas APIs se puede mencionar Isapi (Internet Server API) de Microsoft y Nsapi de Netscape.

A diferencia de las aplicaciones CGI, las ISAs (aplicaciones Isapi) se ejecutan en el espacio de direcciones del servidor http y tienen acceso a todos los recursos disponibles. Las ISAs tienen menor sobrecarga ya que no requieren la creación de tareas adicionales y no consumen tiempo en la comunicación con otros procesos. Cada llamada CGI lanza un nuevo proceso, lo que conlleva cargas y descargas de información, mientras que en las ISAs la carga ocurre una sola vez, y son liberadas sólo si otro proceso necesita la memoria2.

Isapi es una DLL (dynamic link library) que es cargada y llamada por un servidor http que soporta Isapi3, por ejemplo el Microsoft Internet Information Server (IIS).

Arquitectura de una aplicación Isapi programada en Borland Delphi

Es posible usar una Isapi para escribir aplicaciones de bases de datos. Es muy usado el método de recolectar información en un formulario html y pasar estos parámetros a la DLL, ya sea usando el método get o post. Posteriormente se envía la respuesta de la consulta en html a través del servidor WWW asociado.

«Las ISAs (aplicaciones Isapi) se ejecutan en el espacio de direcciones del servidor http y tienen acceso a todos los recursos disponibles»

Para que el usuario pueda introducir su solicitud, html permite definir formularios de entrada de datos. Entre los controles soportados están: líneas de texto, palabras clave, áreas de texto, listas de opciones, casillas y botones4. El formulario se asocia con el programa intermediario que va a atender la solicitud.

Módulo web de la aplicación realizadaLa ventaja que ofrece el WWW de no instalar los códigos en las máquinas cliente para ejecutar la aplicación hace que éstas sean muy fáciles de actualizar, ya que sólo se necesita desconectar el servidor WWW y copiar la DLL (Isapi). Para ejecutar una DLL (Isapi) el usuario teclea la URL (Uniform Resource Locator) en un navegador. La DLL es ejecutada entonces en el servidor.

Este conjunto de herramientas puede ser utilizado en el desarrollo de servicios informativos para internet e intranets. Un ejemplo de este tipo de aplicaciones se presenta en este trabajo.

El Centro de Ingeniería Genética y Biotecnología (Cigb), entre otras funciones, se dedica a la producción de biofármacos. Un elemento importante para el trabajo de control de la calidad de las producciones de biofármacos lo constituye la actualización periódica de las normas establecidas por los organismos internacionales.

Cada una de estas producciones debe conservar copias impresas actualizadas de las normas específicas de su proceso productivo. Este trabajo era realizado por un grupo que distribuía periódicamente las copias impresas a los diferentes grupos de producción. La aplicación que describimos se diseñó para facilitar la actualización centralizada y distribución de esta información (especificaciones de calidad) permitiendo el acceso desde la intranet del Cigb.

De esta forma todo el personal interesado puede visualizar la información, y los responsables de producto mantener una versión impresa actualizada como lo establecen los organismos internacionales. No existió la necesidad de restringir el acceso por usuarios al no considerarse información confidencial, aunque es un requerimiento de posible implementación.

Materiales y métodos

Basándonos en las necesidades del servicio informativo a realizar y teniendo en cuenta que contamos con un servidor Windows NT 4.0 con el IIS API 3.0, escribimos la aplicación utilizando los recursos que brinda el entorno de programación Borland Delphi 3.0 para el trabajo con bases de datos.

Delphi usa el motor BDE (Borland Database Engine) para el acceso a los datos. Por esto en la figura 2 el BDE forma parte de la arquitectura planteada para la aplicación.

Además, este lenguaje de programación brinda la posibilidad de crear DLLs (Isapi) que pueden contener diferentes controles que constituyen una herramienta visual para desarrollar aplicaciones rápidas y robustas en el trabajo con bases de datos. Al crearse la Isapi, automáticamente se genera un módulo web (ver figura 3) al que se le pueden insertar controles tales como: productores de páginas html, consultas, tablas, productores de consultas, etc.

Cada aplicación contiene un único módulo web, que es el que permite a la aplicación del servidor WWW responder a los mensajes del http pasando los objetos en las acciones correspondientes.

En muchos casos se hace necesario el acceso simultáneo a varias bases de datos. Para ello se pueden usar instrucciones SQL en el control para consultas del Delphi 3.0.

Con el fin de obtener un mejor diseño de las páginas html fueron utilizadas herramientas de JavaScript, aunque se garantizó la ejecución de la aplicación desde visualizadores que no soportaran estas facilidades.

Página principal del servicio desarrollado

Resultados

Al diseñar la aplicación se tuvieron en cuenta las necesidades de los usuarios y la estructura de las tablas que contenían la información. Las especificaciones de calidad (números de parte) de las producciones se encuentran clasificadas por categorías. Por esto en la primera página del servicio (ver figura 4) se encuentra el listado de las categorías. Al seleccionar cualquiera de ellas aparece la información de sus números de parte (NP) con los datos correspondientes según sea el caso. Además se permite una búsqueda de información más general dentro de todas las categorías.

El conjunto de campos a mostrar depende de la categoría seleccionada. La opción de búsqueda que se brinda (ver figura 5) permite restringir los NPs a mostrar dentro de la categoría seleccionada. Al realizar la búsqueda es posible utilizar cadenas de los campos nombre y/o responsables del NP. Un resultado puede observarse en la figura 5. La opción “ver reporte para imprimir” ofrece la posibilidad de cambiar el formato a los datos visualizados en pantalla para el establecido por el departamento de documentación. Si el usuario desea imprimir el reporte debe usar las opciones del navegador de WWW.

«Para el acceso simultáneo a varias bases de datos se pueden usar de instrucciones SQL en el control para consultas del Delphi 3.0»

La actualización de los datos la realiza el departamento de documentación de la subdirección de calidad del Cigb periódicamente. La fecha de la última actualización se muestra en la página inicial de este servicio (ver figura 4) y cada categoría tendrá una observación de si fue o no modificada en el mes, para que cada usuario pueda comparar y saber si debe imprimir o no sus datos para cumplir con la norma de mantener su información actualizada de forma impresa.

Esta aplicación ha simplificado el proceso de actualización y distribución de las especificaciones de calidad en el Cigb y ha facilitado las posibilidades de acceso sistemático y simultáneo a la información por parte de las áreas involucradas en las etapas de elaboración de un producto.

Aplicaciones similares a la descrita pueden extenderse a otro tipo de información. En el caso de tratarse de información clasificada, sería de fácil implementación diferenciar los niveles de acceso de cada usuario.

Ejemplo del resultado de una búsqueda dentro de una categoría seleccionada

Conclusiones

El aprovechamiento de las potencialidades del WWW dentro del Cigb ha permitido elaborar aplicaciones con un buen nivel de interacción con el usuario a la vez que se ahorra tiempo y recursos en su implementación. Creemos que es importante seguir los pasos de esta tecnología que se encuentra actualmente en pleno desarrollo.

Notas

1. Gundavaram, S. “The common gateway interface (CGI)”. En: CGI programming on the world wide web. Sebastopol, CA: O’Reilly & Associates, Inc., 1996, pp. 1-8.

2. “Isapi: comparing filters, server extensions and CGI”. En: Microsoft Developper Library, 1997.

http://www.microsoft.com/msdn

3. “Creating internet and intranet applications”. En: Borland Delphi 3 Developer’s guide. Borland International, Inc., 1997.

4. Graham, IS. “Html in detail”. En: Html 4.0 sourcebook. New York: John Wiley & Sons, Inc., 1998, pp. 242-260.

Jamilet Miranda Navarro. Grupo de gestión de bases de datos.

Nelson López Centeno. Grupo de redes. Centro de Ingeniería Genética y Biotecnología. Avda. 31 / 158 y 190, Apdo. postal 6162, Cubanacán, Playa. Cuba.

jamilet.miranda@cigb.edu.cu

nelson.lopez@cigb.edu.cu

Enlace del artículo:
http://www.elprofesionaldelainformacion.com/contenidos/1999/marzo/aplicacion_isapi_para_la_consulta_a_bases_de_datos.html