Isolation des processus

L’API HTTP Server version 2.0 offre la possibilité de créer un service plus sûr et plus fiable en isolant les processus de travail qui sont des demandes de maintenance dans la file d’attente de requêtes. La file d’attente de requêtes est créée et gérée par un contrôleur ou un processus créateur qui contrôle strictement l’accès à celui-ci. Le processus du contrôleur lance un ou plusieurs processus de travail distincts qui effectuent des E/S dans la file d’attente de requêtes. Le processus du contrôleur s’exécute avec des privilèges d’administration et configure la file d’attente de demandes, tandis que le worker de privilèges inférieurs traite les demandes d’accès et de service à partir de la file d’attente de requêtes. Cette architecture prend en charge la stratégie des applications s’exécutant sous « privilège minimum » et réduit la possibilité de vulnérabilités de sécurité introduites par du code tiers qui peuvent s’exécuter dans les processus de travail.

L’accès à la file d’attente de demandes est accordé lorsque le processus du contrôleur crée la file d’attente de requêtes avec un nom et une liste de contrôle d’accès (ACL). Les applications web incluses dans la liste de contrôle d’accès peuvent ouvrir une file d’attente de requêtes existante par nom. Le processus créateur peut également être un processus de travail sur la file d’attente de requêtes. Pour plus d’informations, consultez la rubrique file d’attente de demandes nommées. Le diagramme suivant illustre l’architecture d’une application HTTP classique s’exécutant avec le modèle de processus de travail :

Diagramme montrant l’architecture d’une application H T T P à l’aide du modèle de processus de travail.

Les processus de travail individuels au sein de l’application sont isolés des autres processus de travail, et l’intégrité de chacun des processus de travail peut être surveillée par le processus du contrôleur. Le processus du contrôleur est isolé des processus de travail. Les composants de l’architecture HTTP sont décrits ci-dessous :

  • Processus créateur ou contrôleur : le processus du contrôleur peut s’exécuter avec, ou sans, des privilèges d’administration pour surveiller l’intégrité et configurer le service. Le processus du contrôleur crée généralement une session serveur unique pour le service et définit les groupes d’URL sous la session du serveur. Le groupe d’URL auquel une URL particulière est associée détermine les services de file d’attente de requête que l’espace de noms indique par l’URL particulière. Le processus du contrôleur crée également la file d’attente de requêtes et lance les processus de travail qui peuvent accéder à la file d’attente de demandes.
  • Processus de travail : les processus de travail, lancés par le processus de contrôleur, effectuent des E/S sur la file d’attente de requêtes associée aux URL qu’ils serviceent. L’application web est autorisée à accéder à la file d’attente de requêtes par le processus du contrôleur dans la liste de contrôle d’accès lorsque la file d’attente de requête est créée. Sauf si l’application web est également le processus créateur, elle ne gère pas le service ni ne configure la file d’attente de demandes. Le processus du contrôleur communique le nom de la file d’attente de requêtes au processus de travail et le processus de travail ouvre la file d’attente de la demande par nom. Les processus de travail peuvent charger des applications web tierces sans introduire de vulnérabilités de sécurité dans d’autres parties de l’application.
  • File d’attente des demandes : la file d’attente de requêtes est créée et configurée par le processus du contrôleur. Le contrôleur spécifie les processus autorisés à accéder à la file d’attente de requêtes dans la liste de contrôle d’accès lorsque la file d’attente de requête est créée.
  • Session serveur : le processus du contrôleur crée et configure généralement une session serveur unique pour l’application. La session de serveur gère les propriétés de configuration de l’ensemble de l’application. Les groupes d’URL sont créés sous la session du serveur par le processus du contrôleur.
  • Groupe d’URL : le processus du contrôleur crée les groupes d’URL sous la session serveur et configure le groupe d’URL indépendamment de la session du serveur. Les URL sont ajoutées au groupe par le processus du contrôleur. Les demandes sont routées vers la file d’attente de requêtes à laquelle le groupe d’URL est associé.