Aislamiento de procesos

La API de HTTP Server versión 2.0 proporciona la capacidad de crear un servicio más seguro y confiable al aislar los procesos de trabajo que son solicitudes de mantenimiento en la cola de solicitudes. La cola de solicitudes se crea y administra mediante un controlador o proceso de creador que controla estrictamente el acceso a ella. El proceso de controlador inicia uno o varios procesos de trabajo independientes que realizan E/S en la cola de solicitudes. El proceso del controlador se ejecuta con privilegios administrativos y configura la cola de solicitudes, mientras que el trabajo con privilegios inferiores procesa el acceso y las solicitudes de servicio de la cola de solicitudes. Esta arquitectura admite la directiva de aplicaciones que se ejecutan con "privilegios mínimos" y reduce la posibilidad de vulnerabilidades de seguridad introducidas por código de terceros que se pueda ejecutar en procesos de trabajo.

Se concede acceso a la cola de solicitudes cuando el proceso del controlador crea la cola de solicitudes con un nombre y una lista de Access Control (ACL). Las aplicaciones web que se incluyen en la ACL pueden abrir una cola de solicitudes existente por nombre. El proceso de creador también puede ser un proceso de trabajo en la cola de solicitudes. Para obtener más información, consulte el tema Cola de solicitudes con nombre . En el diagrama siguiente se muestra la arquitectura de una aplicación HTTP típica que se ejecuta con el modelo de proceso de trabajo:

Diagrama que muestra la arquitectura de una aplicación H T T P mediante el modelo de proceso de trabajo.

Los procesos de trabajo individuales dentro de la aplicación están aislados de otros procesos de trabajo y el estado de cada uno de los procesos de trabajo se puede supervisar mediante el proceso del controlador. El proceso del controlador está aislado de los procesos de trabajo. Los componentes de la arquitectura HTTP se describen a continuación:

  • Proceso de creador o controlador: el proceso del controlador se puede ejecutar con privilegios administrativos o sin privilegios administrativos para supervisar el estado y configurar el servicio. Normalmente, el proceso de controlador crea una sesión de servidor única para el servicio y define los grupos de direcciones URL en la sesión del servidor. El grupo de direcciones URL con el que está asociada una dirección URL determinada determina a qué servicio de cola de solicitudes el espacio de nombres indicado por la dirección URL determinada. El proceso del controlador también crea la cola de solicitudes e inicia los procesos de trabajo que pueden acceder a la cola de solicitudes.
  • Proceso de trabajo: los procesos de trabajo, iniciados por el proceso del controlador, realizan E/S en la cola de solicitudes asociada a las direcciones URL que aparecen. El proceso del controlador concede a la aplicación web acceso a la cola de solicitudes en la ACL cuando se crea la cola de solicitudes. A menos que la aplicación web también sea el proceso de creador, no administra el servicio ni configura la cola de solicitudes. El proceso del controlador comunica el nombre de la cola de solicitudes al proceso de trabajo y el proceso de trabajo abre la cola de solicitudes por nombre. Los procesos de trabajo pueden cargar aplicaciones web de terceros sin introducir vulnerabilidades de seguridad en otras partes de la aplicación.
  • Cola de solicitudes: el proceso del controlador crea y configura la cola de solicitudes. El controlador especifica los procesos a los que se permite el acceso a la cola de solicitudes en la ACL cuando se crea la cola de solicitudes.
  • Sesión del servidor: el proceso de controlador normalmente crea y configura una sesión de servidor única para la aplicación. La sesión del servidor mantiene las propiedades de configuración de toda la aplicación. El proceso del controlador crea grupos de direcciones URL en la sesión del servidor.
  • Grupo de direcciones URL: el proceso de controlador crea los grupos de direcciones URL en la sesión del servidor y configura el grupo de direcciones URL independientemente de la sesión del servidor. El proceso del controlador agrega direcciones URL al grupo. Las solicitudes se enrutan a la cola de solicitudes a la que está asociado el grupo de direcciones URL.