Distribution de messages SOAP
Il existe de nombreuses façons de gérer la distribution des messages SOAP reçus au service approprié. Les deux mécanismes les plus simples sont la répartition au niveau du transport et la répartition de l’adresse et de l’action.
Répartition au niveau du transport
Avec la répartition au niveau du transport, le serveur HTTP sous-jacent (tel que l’API HTTP) est utilisé pour gérer le routage des requêtes vers l’appareil et ses services. Le serveur fournit une URL différente pour chaque service et pour l’appareil et différents récepteurs sont inscrits pour chaque URL. Cela permet de concevoir du code de telle sorte que chaque service soit isolé de l’autre, soit en tant que composants distincts au sein du même processus, soit en tant que processus distincts.
La répartition au niveau du transport présente quelques avantages. Les messages peuvent être envoyés au composant approprié sans analyser d’abord l’enveloppe SOAP ou le corps du message. En outre, le mécanisme existant pour le routage des messages fournis par la plupart des implémentations de serveur HTTP peut être réutilisé, ce qui signifie que le code de répartition personnalisé n’est pas nécessaire. Il isole également le code de traitement SOAP entre les services, ce qui offre un niveau de sécurité, car les services sécurisés évitent que les messages transitent par le code commun.
Répartition de l’adresse et de l’action
La répartition des adresses et des actions s’appuie sur les en-têtes SOAP pour déterminer le service approprié auquel le message est distribué. Ce modèle peut également utiliser des informations supplémentaires, telles que des paramètres de référence, pour faciliter la répartition.
Ce modèle encourage la réutilisation du code dans une pile de messagerie en couches, car tout le code jusqu’au processeur SOAP est partagé par tous les services. En outre, des adresses de transport distinctes pour les services ne sont pas requises, ce qui signifie que les adresses UUID peuvent être utilisées pour les points de terminaison de service. La répartition des adresses et des actions se traduit également plus directement en modèle de programmation. Les développeurs peuvent brancher des services et des appareils dans un seul composant qui gère le routage, plutôt que d’avoir à se lier à une couche HTTP ou de créer des composants distincts pour chaque service.