Programación web en servidores Windows

Si es usted programador tal vez se haya preguntado alguna vez por qué no es posible colocar su ejecutable en el servidor y que los clientes vean las ventanas del programa desde sus ordenadores conectados a Internet. La respuesta es que la comunicación entre ordenadores está basada sobre determinados protocolos. El HTTP es el protocolo de la Web, y por tanto la salida de nuestro ejecutable no deben ser ventanas de Windows sino código HTML.

Tal vez se pregunte porqué usar el HTTP en lugar de un protocolo que permita enviar ventanas completas tipo Windows. La respuesta es que los procesos que requieren transmisión por la Red son órdenes de magnitud más lentos que los que se producen en el interior de un ordenador. Es decir, hay que programar de forma que se minimice el tránsito de datos por la Red.

La programación para las redes TCP/IP se conoce con el nombre de programación cliente-servidor. Consiste en que nuestro programa se desdobla en dos: uno en el ordenador cliente y otro en el servidor. La parte cliente se encarga del interfaz y de la interacción con el usuario, y la parte servidor de obtener y manipular los datos. La comunicación entre ambos se produce mediante sockets (conexiones TCP) y eventualmente mediante protocolos propios desarrollados para tal efecto.

La programación cliente-servidor tradicional (como la explicada en el párrafo anterior) tiene su grado de complejidad. Sin embargo con el advenimiento de la World Wide Web se abre una nueva posibilidad: las aplicaciones para la Web. Se trata de una especialización y concreción de las aplicaciones cliente-servidor, donde tanto el cliente (el navegador) como el servidor (el servidor web), y el protocolo mediante el que se comunican (el HTTP) son estándar, y no han de ser creados por el desarrollador.

La parte de cliente de las aplicaciones web está formada por el código HTML que forma la página web, con opción a código ejecutable mediante los lenguajes de scripting de los navegadores (JavaScript, VBScript, PerlScript) o mediante pequeños programas (applets) en Java. La parte de servidor está formada por un programa o script que es ejecutado por el servidor web, y cuya salida se envía al navegador del cliente. Tradicionalmente a este programa o script que es ejecutado por el servidor web se le denomina CGI.

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), es decir, un conjunto de funciones que 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. 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.

Todo el sistema ASP no es más que una DLL del tipo ISAPI, que es invocada automáticamente para los archivos cuya extensión sea .asp. La biblioteca ASP preprocesa el archivo ASP interpretando su código como un script a ejecutar en el servidor. Sin embargo ella no interpreta directamente el código, sino que en función del lenguaje en el que está escrito, invoca a otra DLL que se encarga de ejecutar el script. Después recoge la salida y se la envía al servidor web.

Concepto de página ASP

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.

A algunos programadores esto les puede parecer confuso y poco estructurado. De hecho, parece preocupante que un webmaster diseñador gráfico y un programador de aplicaciones de bases de datos tengan que trabajar ambos sobre el mismo archivo.

Sin embargo, esto es sólo una apariencia. Una reflexión más profunda nos revela que la página ASP engloba tanto a las páginas web como a los scripts CGI. En efecto, una página ASP puede consistir sólo en código HTML (y entonces es lo mismo que una página web normal) o sólo en código ejecutable (lo mismo que un CGI). Por tanto la mezcla de código y HTML es opcional, pero muy utilizada por resultar práctica (por ejemplo, un formulario que se llama a sí mismo).

¿Qué ventajas y desventajas tiene el ASP respecto a los CGI?

Entre las ventajas podemos destacar:

  • Se puede elegir el lenguaje de programación de entre estos tres: JavaScript, Visual Basic Script y PerlScript. Incluso se pueden tener scripts en distintos lenguajes dentro de la misma página ASP. El lenguaje escogido vale con cualquier navegador, ya que se trata de código que se ejecuta en el servidor. Al navegador sólo le llega HTML.
  • Se pueden utilizar componentes del lado de servidor. Esto permite programar al estilo VisualBasic creando objetos y utilizando sus métodos y propiedades.
  • Se puede acceder a bases de datos con objetos recordset de un modo muy parecido a como se hace en Visual Basic.
  • Tiene persistencia de variables en memoria (entre distintas visualizaciones de páginas web) que se pueden asociar a cada sesión de usuario o a la aplicación en su conjunto. Esto resuelve de forma elegante uno de los mayores problemas de la programación en la web: el servidor web no tiene memoria entre la visualización de una página web y la siguiente.

En cuanto a las desventajas, no tiene ninguna. Los partidarios del Perl pueden seguir utilizando dicho lenguaje al 100% (incluyendo bibliotecas) y aprovechar las nuevas características del ASP, sin más que utilizar como lenguaje de programación el PerlScript.

Concepto de aplicación ASP

Una página ASP no es sólo un script. Se denomina aplicación ASP al conjunto de páginas ASP, páginas web, archivos gráficos, etc., dispuestos en un directorio y sus subdirectorios. Todo este conjunto de scripts y datos es el equivalente en la web a la aplicación tradicional que al final se compila en un ejecutable.

Las aplicaciones ASP tienen una raíz, que es el directorio en el que residen en el servidor, que debe tener los permisos adecuados en dicho directorio (al menos, de ejecución de scripts) y la configuración adecuada en para permitir su ejecución.

¿Dónde puedo encontrar más información?

Entre las páginas de este apartado le mostramos algunos conceptos básicos sobre ASP, así como información sobre sus objetos y métodos principales.

Para más información sobre esta tecnología le facilitamos a continuación algunos enlaces de interés:

MSDN Sitio oficial de la red de desarrolladores de Microsoft en castellano. En el mismo podrá encontrar mucha información sobre la tecnología ASP.
ASP Fácil Web con enlaces, ayudas y utilidades para ASP.
Programacion.com Web con ayudas de programación, con un apartado dedicado a ASP.
Desarrolloweb.com Otro sitio web con un apartado dedicado a esta tecnología.
ASP Help Sitio con información, facilidades y enlaces de ayuda.
Irt.org Algunas FAQ (Preguntas Frecuentes) sobre ASP.