2. Arquitectura de IIS
1. Evolución de IIS
- IIS presenta 6 versiones distintas:
- desde IIS 1 en 1996 sobre Windows NT 3.51 Server.
- hasta IIS 6 sobre Windows 2003.
- Importantes cambios en arquitectura y rendimiento en las distintas versiones.
1.1 Arquitectura hasta IIS 4
- Arquitectura monolítica: ejecución en un único proceso llamado inetinfo.exe
- Aplicaciones web con DLLs vía ISAPI (Internet Services Application Programming Interface), como alternativa a CGI (Common Gateway Interface).
1.2 ISAPI vs. CGI
ISAPI |
CGI |
|
|
1.3 Arquitectura en IIS 4
- Aislamiento de procesos (process isolation)
- Permite la ejecución out-of-process.
- Aparece la metabase como repositorio de la configuración de IIS en lugar del registro de Windows.
- Mayor rendimiento al poder estar residente en memoria.
- IIS Admin Service: proceso que controla los demás servicios de IIS y gestiona la metabase.
|
![]() |
|
![]() |
1.4 Arquitectura en IIS 5
- Se refina el concepto de aislamiento de procesos, convirtiéndose en 3 niveles de Protección de Aplicación:
- Low (IIS Process): La aplicación se ejecuta in-process como parte de inetinfo.exe (como en la arquitectura monolítica inicial).
- Medium (Pooled): Es el nivel por defecto, en el que la aplicación se ejecuta out-of-process en un proceso anfitrión independiente llamado dllhost.exe, junto con las demás aplicaciones que tengan este mismo nivel de protección (aislamiento).
- High (Isolated): La aplicación se ejecuta out-of-process en un proceso dllhost.exe propio y exclusivo.
|
![]() |
|
![]() |
1.5 Arquitectura en IIS 6
Diferencias principales con respecto a IIS 5:
- Gestión de peticiones HTTP en el kernel.
- Modo de aislamiento de procesos de trabajo (Worker process isolation mode) O BIEN modo aislado de IIS 5.0
- Se admiten múltiples pools de aplicaciones configurables de forma independiente.
- Se incluye el WAS (Web Administration Service), que gestiona y configura el servicio WWW.
- HTTP.sys
- Gestiona las conexiones.
- Recibe y enruta las peticiones, asignándolas a la cola de ejecución correspondiente.
- Se ejecuta en el kernel del S.O.
- Mayor rendimiento.
- Mayor fiabilidad (no ejecuta código de usuario).
- Mayor capacidad de respuesta (puede almacenar peticiones aunque la aplicación destino esté inactiva).
- Gestiona una caché en modo kernel.
- WAS
- IIS Admin gestiona FTP, NNTP, y SMTP, pero no HTTP.
- No se permiten aplicaciones web in-process: todas se ejecutan en pools de aplicaciones.
- Configuration Manager:
- Almacena y recupera la información de sitios web de la metabase.
- Inicializa y actualiza la tabla de enrutamiento de peticiones.
- Application Pool Manager:
- Gestiona los worker processes asociados a los pools de aplicaciones.
- Se ejecuta como una instancia de svchost.exe
- Procesos de trabajo (worker processes)
- Atienden las peticiones en las colas de los grupos de aplicaciones.
- Se ejecutan como instancias de w3wp.exe
- Aíslan aplicaciones entre sí y de los procesos críticos de IIS.
- El WAS monitoriza su estado, los recicla periódicamente y puede reiniciarlos automáticamente.
- Grupos de aplicaciones (application pools)
- Un grupo de aplicaciones consiste en:
- Una cola de peticiones en modo kernel
- Uno o más procesos de trabajo
- De aquí surgen los 3 modelos que se pueden configurar en IIS 6:
- 1 proceso de trabajo con 1 aplicación web
- 1 proceso de trabajo con varias aplicaciones web
- Varios procesos de trabajo con una o varias aplicaciones web.
![]() |
![]() |
![]() |
Figura 1: Similar a las aplicaciones out-of-process de IIS 4 o a los procesos aislados de IIS 5, pero con mejor rendimiento ya que no hay trasiego de datos entre procesos distintos en modo usuario.
Figura 2: Similar a las aplicaciones con un nivel de protección medio (pooled) en IIS 5, pero en IIS 6 podemos crear tantas como sean necesarias.
Figura 3: “Web garden” à Permite que una o más aplicaciones web estén atendidas por varios procesos de trabajo y dar soporte a aplicaciones críticas.
- Ventajas de los grupos de aplicaciones:
- Permiten aislar aplicaciones entre sí
- Se requieren menos recursos que con los modelos de arquitecturas previas de IIS, permitiendo aumentar el número de aplicaciones web atendidas con un rendimiento aceptable.
- Permiten agrupar aplicaciones según criterios de afinidad o rendimiento.
Esquema global del modo de aislamiento de procesos de trabajo
Esquema global del modo aislado de IIS 5
Fichero pdf para descargar aquí.