viernes, 2 de octubre de 2009

¿Es Internet Information Server un Servidor de Aplicaciones?

Recientemente he estado discutiendo sobre si el programa de Microsoft, Internet Information Server, se puede considerar un servidor de aplicaciones o lo catalogamos como un servidor web. En el sentido más purista de la definición de servidor de aplicaciones, puede que se quede fuera, pero si lo vemos un poco más ampliamente creo que podría incluirse como tal.

¿Que es un servidor de aplicaciones?
Es un concepto que viene del entorno java y que casas como Oracle o aplicaciones open source como JBoss, han fomentado para J2EE. Es un software que corre sobre el sistema operativo y que gestiona la lógica de negocio y el acceso a datos de las aplicaciones que alberga.
Contiene un conjunto de servicios para que las aplicaciones de java corran sobre entornos distribuidos en máquinas heterogeneas, permitiendo al programador, olvidarse tanto de la arquitectura de la máquina, como del sistema gestor de bases de datos.
Se basan en una Arquitectura Orientada a Servicios (SOA, un sitio interesante http://www.espaciosoa.net/), de tal manera que se pueden integrar rápidamente servicios que den respuesta a las aplicaciones, asegurando la escalabilidad y la robustez del sistema

¿Es IIS un servidor de aplicación?
Tal como he comentado al principio, creo que en el sentido estricto de la definición , no encajaría ya que su función es implementar el protocolo HTTP y albergar contenidos HTML.
Con la entrada de .NET Framework, cambian un poco las tornas, ya que este conjunto de librerías se integra con el IIS dotándolo de la capacidad de ejecutar aplicaciones web en el lado del servidor.
Al final si el objetivo es que el desarrollo de la aplicación sea independiente de la plataforma hardware que va a correr, se logra con .NET e IIS, ya que nos da igual que máquina sea la que soporte la aplicación siempre que tenga el Framework adecuado instalado

Especial reseña a el servidor de aplicaciones open source JBOSS (http://www.jboss.org/), que puede correr tanto en linux como en windows y que tiene una gran cantidad de paquetes que permiten gestionar multitud de servicios (cahe, ide, mensajería, portales....).
Podemos identificar la versiones de java que queremos que utilice la aplicación, defininir los data sources y una larga lista de opciones de funcionamiento del servidor