Isolation des processus

L’API HTTP Server version 2.0 permet de créer un service plus sûr et plus fiable en isolant les processus de travail qui sont des demandes de maintenance sur 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 à celle-ci. Le processus du contrôleur lance un ou plusieurs processus worker distincts qui effectuent des E/S sur la file d’attente de requête. Le processus du contrôleur s’exécute avec des privilèges d’administration et configure la file d’attente des requêtes, tandis que le worker à privilèges inférieurs traite les demandes d’accès et de service à partir de la file d’attente des requêtes. Cette architecture prend en charge la stratégie des applications qui s’exécutent sous le « privilège minimum » et réduit le risque de vulnérabilités de sécurité introduites par du code tiers qui peut s’exécuter dans des 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 Access Control (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 worker sur la file d’attente de requêtes. Pour plus d’informations, consultez la rubrique File d’attente des demandes nommées . Le diagramme suivant montre l’architecture d’une application HTTP classique s’exécutant avec le modèle de processus worker :

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

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 de contrôleur est isolé des processus worker. 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 privilèges d’administration pour surveiller l’intégrité et configurer le service. Le processus de contrôleur crée généralement une session de serveur unique pour le service et définit les groupes d’URL sous la session serveur. Le groupe d’URL auquel une URL particulière est associée détermine la file d’attente de requête qui traite l’espace de noms désigné par l’URL particulière. Le processus du contrôleur crée également la file d’attente des requêtes et lance les processus worker qui peuvent accéder à la file d’attente des requêtes.
  • Processus de travail : les processus de travail, lancés par le processus du contrôleur, effectuent des E/S sur la file d’attente de demandes associée aux URL qu’ils traitent. L’application web se voit accorder l’accès à la file d’attente de requêtes par le processus du contrôleur dans la liste de contrôle d’accès lors de la création de la file d’attente de requêtes. 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 des requêtes. Le processus du contrôleur communique le nom de la file d’attente de requêtes au processus worker et le processus de travail ouvre la file d’attente de requêtes par nom. Les processus de travail peuvent charger des applications web tierces sans introduire de failles de sécurité dans d’autres parties de l’application.
  • File d’attente de 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 qui sont autorisés à accéder à la file d’attente des requêtes dans l’ACL lors de la création de la file d’attente de requêtes.
  • Session serveur : le processus du contrôleur crée et configure généralement une session de serveur unique pour l’application. La session serveur conserve les propriétés de configuration de l’application entière. Les groupes d’URL sont créés sous la session 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 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é.