Techniques de gestion de l'état
Les techniques d'échelonnement de plusieurs machines se basent sur l'utilisation de plusieurs copies d'un serveur d'applications ; plusieurs demandes consécutives provenant de divers clients peuvent être adressées à différents serveurs. Si chaque demande client est totalement indépendante des autres demandes client, il n'est pas important de traiter les demandes consécutives sur le même serveur. Toutefois, en pratique, les demandes des clients ne sont pas indépendantes. Un client envoie souvent une demande, attend le résultat, puis envoie un ou plusieurs autres demandes qui dépendant du résultat des demandes précédentes.
Les opérations effectuées au nom du client peuvent être de deux catégories :
- Sans état
- Un serveur traite les demandes en fonction des informations fournies avec chaque demande uniquement et ne se fonde pas sur les informations des demandes précédentes. Il n'est pas nécessaire que le serveur conserve les informations d'état entre les demandes.
- Stateful
- Un serveur traite les demandes en fonction des informations fournies avec chaque demande ainsi que des informations stockées provenant des demandes précédentes. Le serveur doit accéder aux informations relatives à l'état générées pendant le traitement d'une demande précédente et les gérer.
Pour les interactions sans état, le fait que des demandes sont traités par différents serveurs n'est pas important. Cependant, pour des interactions avec état, le serveur qui traite une demande doit accéder aux informations relatives à l'état nécessaires au traitement. Le même serveur peut traiter toutes les demandes associées aux mêmes informations d'état, ou les informations d'état peuvent être partagées entre les serveurs qui en ont besoin. Dans ce dernier cas, l'accès aux informations d'état partagées à partir du même serveur permet de minimiser le temps système de traitement associé à l'accès aux informations d'état partagées par plusieurs serveurs.
Les fonctions de distribution des charges dans le produit utilisent différentes techniques de gestion des informations d'état entre les demandes des clients :
- l'affinité de session, dont la fonction de distribution de charge reconnaît l'existence d'une session client et tente de diriger les demandes de cette session vers le même serveur,
- l'affinité entre transactions, dont la fonction de distribution de charge reconnaît l'existence d'une transaction et tente de diriger toutes les demandes associées à cette transaction au même serveur,
- l'affinité de serveur, dont la fonction de distribution de charge reconnaît que bien que plusieurs serveurs peuvent être appropriés pour une demande client donnée, il est préférable d'utiliser un serveur précis pour le traitement de cette demande.
Le gestionnaire de sessions qui fait partie de chaque serveur d'applications, stocke les informations relatives aux sessions des clients et prend en compte l'affinité de session et l'affinité de serveur pour diriger les demandes client vers les membres des clusters d'un serveur d'applications. Le service de gestion de la charge de travail prend en compte l'affinité de serveur et l'affinité entre transactions pour répartir les demandes client parmi les membres des clusters d'un serveur d'applications.