Vue d'ensemble du routage
Lors de la conception de solutions d'architecture orientées services, il est souvent utile de créer un service intermédiaire chargé du routage de messages entrants vers leurs destinations en fonction d'un jeu de règles personnalisables. Un service intermédiaire offre plusieurs avantages :
Routage basé sur le contenu
Agrégation de service
Contrôle des versions du service
Routage par priorité
Pontage de protocoles
Gestion des erreurs
Bien qu'il soit possible de créer un service intermédiaire répondant à un ou plusieurs de ces objectifs, une telle implémentation est souvent liée à un scénario ou à une solution spécifique et ne peut pas être appliquée facilement à de nouvelles applications.
Le service de routage fournit un intermédiaire SOAP générique, configurable de manière dynamique et connectable qui s'adapte aux modèles WCF de service et de canal et vous permet d'effectuer un routage en fonction du contenu des messages SOAP.
Remarque : |
---|
Le service de routage ne prend pas actuellement en charge le routage de services WCF REST. Pour router des appels REST, envisagez d'utiliser System.Web.Routing ou le routage des demandes d'applications (https://go.microsoft.com/fwlink/?LinkId=164589, en anglais). |
Routage basé sur le contenu
Le routage basé sur le contenu est la possibilité de router un message en fonction d'une ou plusieurs valeurs contenues dans le message. Le service de routage examine chaque message et le route vers le point de terminaison de destination en fonction du contenu du message et de la logique de routage que vous créez. Le routage basé sur le contenu fournit la base de l'agrégation de service, du contrôle des versions de service et du routage par priorité.
Le service de routage vous permet de configurer la logique utilisée pour effectuer un routage basé sur le contenu, ainsi que de mettre à jour la logique de routage de manière dynamique, au moment de l'exécution.
Agrégation de service
En utilisant le routage basé sur le contenu, vous pouvez exposer un point de terminaison qui reçoit des messages provenant d'applications clientes externes, puis router chaque message vers le point de terminaison interne approprié en fonction d'une valeur contenue dans le message. Cela permet d'offrir un point de terminaison spécifique à diverses applications principales, et également d'offrir aux clients un point de terminaison d'application tout en développant votre application en une variété de services.
Contrôle des versions du service
Lors de la migration vers une nouvelle version de votre solution, vous aurez peut-être besoin de maintenir l'ancienne version en parallèle pour servir des clients existants. Cela demande souvent que les clients qui se connectent à la version plus récente utilisent une adresse différente pour communiquer avec la solution. Le service de routage vous permet d'exposer un seul point de terminaison de service qui sert aux deux versions de votre solution, en routant les messages vers la solution appropriée en fonction d'informations spécifiques à la version contenues dans le message.
Routage par priorité
Lorsque vous fournissez un service à plusieurs clients, vous pouvez avoir un contrat de niveau de service (SLA) avec certains partenaires exigeant que toutes les données de ces partenaires soient traitées séparément de celles des autres clients. En utilisant un filtre qui recherche les informations spécifiques au client contenues dans le message, vous pouvez router facilement des messages de partenaires spécifiques vers un point de terminaison qui a été créé pour répondre aux exigences du contrat SLA.
Pontage de protocoles
L'une des difficultés dans les scénarios intermédiaires est que les points de terminaison internes peuvent avoir besoin d'une version du transport ou SOAP différentes de celle du point de terminaison sur lequel les messages sont reçus. Pour prendre en charge ce scénario, le service de routage peut lier des protocoles, notamment le traitement de messages SOAP avec le MessageVersion requis par le ou les points de terminaison de destination. Un protocole peut ainsi être utilisé pour la communication interne, tandis qu'un autre peut être utilisé pour la communication externe.
Gestion des erreurs
Les intermédiaires sont confrontés à une autre difficulté : que faire en cas d'erreur de transmission vers la destination ? Le service de routage vous permet de définir des points de terminaison supplémentaires utilisés pour envoyer le message en cas d'erreur de communication lors de l'envoi à la destination primaire. Cela vous permet de déployer plusieurs copies redondantes d'un service, qui serviront de sauvegarde en cas de panne réseau ou d'autres défaillances de la communication.