Guide pratique pour implémenter un routage basé sur le contenu à l’aide des propriétés de contexte des messages
Objectif
Cette section montre comment utiliser l’itinéraire Microsoft BizTalk ESB Toolkit Designer pour créer un itinéraire qui sélectionne un destinataire de message en fonction de la propriété de contexte de message, puis achemine un message vers ce destinataire à l’aide du service de messagerie Broker d’itinéraire.
Dans cette rubrique, vous allez effectuer les étapes suivantes :
Créez un itinéraire avec un répartiteur d’itinéraires et deux services de routage avec des résolveurs statiques.
Testez l’itinéraire à l’aide de l’exemple d’application Itinerary Test Client.
Notes
Aucun service broker basé sur l’orchestration n’est fourni dans l’implémentation actuelle.
Prérequis
Les procédures décrites dans cette rubrique de procédure nécessitent l’achèvement des conditions préalables pour les activités de développement.
Étapes
Pour créer un modèle DSL d’itinéraire ESB
Dans Visual Studio, ouvrez C :\HowTos\Patterns\Patterns.sln.
Dans Explorateur de solutions, cliquez avec le bouton droit sur ItinéraireLibrary, pointez sur Ajouter, puis cliquez sur Nouvel itinéraire.
Dans la boîte de dialogue Ajouter un nouvel élément , cliquez sur ItinéraireDsl dans le volet Modèles.
Dans la zone Nom , tapez ChoiceRouter, puis cliquez sur Ajouter.
Pour configurer les propriétés de l’itinéraire
Dans Visual Studio, cliquez sur l’aire de conception de l’itinéraire ChoiceRouter . Dans le Fenêtre Propriétés ChoiceRouter, configurez les propriétés suivantes :
Dans la liste déroulante Exporter de modèle , cliquez sur Exportateur d’itinéraire XML.
Dans la section Paramètres de l’extendeur , cliquez sur le bouton de sélection (...) en regard de la propriété de fichier XML D’itinéraire .
Dans la liste déroulante Mode d’exportation , cliquez sur Strict.
Dans la boîte de dialogue Sélectionner un fichier XML , tapez C :\HowTos\Itineraries\ChoiceRouter dans la zone Nom de fichier , puis cliquez sur Enregistrer.
Notes
Cette étape vous permet d’exporter l’itinéraire au format XML vers un emplacement de fichier local. En exportant un itinéraire vers un emplacement de fichier local, plutôt que vers la base de données d’itinéraires, vous pouvez tester l’itinéraire à l’aide de l’application ESB Test Client. Vous terminerez ce processus plus loin dans cette rubrique de procédures.
Pour définir la structure de l’itinéraire
À partir de la boîte à outils, faites glisser un élément de modèle On-Ramp vers l’aire de conception. Dans le Fenêtre Propriétés OnRamp1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez ReceiveNAOrder.
Dans la liste déroulante Extendeur , cliquez sur Extendeur à rampe.
Dans la liste déroulante Application BizTalk , cliquez sur Microsoft.Practices.ESB.
Dans la liste déroulante Port de réception, cliquez sur OnRamp.Itinerary.
À partir de la boîte à outils, faites glisser un élément de modèle Service Broker D’itinéraire vers l’aire du concepteur, puis placez-le sur le côté droit de l’élément de modèle On-Ramp . Dans ItineraryBrokerService1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez RouteBrokerService.
Dans la liste déroulante Extendeur , cliquez sur Extendeur broker de messagerie.
Dans la liste déroulante Conteneur , développez ReceiveNAOrder, puis cliquez sur Recevoir des gestionnaires.
Dans la liste déroulante Nom du service , cliquez sur Microsoft.Practices.ESB.Itinerary.Services.Broker.MessagingBroker.
Cliquez avec le bouton droit sur la collection Filter , puis cliquez sur Ajouter un nouveau filtre. Dans la Fenêtre Propriétés Filter1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez ASMXFilter.
Cliquez sur la liste déroulante Implémentation du filtre , puis cliquez sur Filtre XPath.
Cliquez sur la propriété Expression , puis tapez count(/ContextProperties/Property[@name='InboundTransportLocation'][contains(., 'ProcessItinerary.asmx')]) > 0.
Cliquez avec le bouton droit sur la collection Filter , puis cliquez sur Ajouter un nouveau filtre. Dans la Fenêtre Propriétés Filter1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez WCFFilter.
Cliquez sur la liste déroulante Implémentation du filtre , puis cliquez sur Filtre XPath.
Cliquez sur la propriété Expression , puis tapez count(/ContextProperties/Property[@name='InboundTransportLocation'][contains(., 'ESB). ItineraryServices.WCF')]) > 0.
Cliquez avec le bouton droit sur la collection Resolver de l’élément de modèle RouteBrokerService , puis cliquez sur Ajouter un nouveau programme de résolution. Dans le Fenêtre Propriétés Resolver1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez ResolverBrokerRoute.
Dans la liste déroulante Implémentation du programme de résolution, cliquez sur MessageContext Resolver Extension.
Dans la boîte à outils, cliquez sur Connecteur. Faites glisser une connexion de l’élément de modèle ReceiveNAOrder vers l’élément de modèle RouteBrokerService .
À partir de la boîte à outils, faites glisser un élément de modèle service D’itinéraire vers l’aire de conception, puis placez-le sous l’élément de modèle RouteBrokerService . Dans la Fenêtre Propriétés ItineraryService1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez RouteToFileFromASMX.
Dans la liste déroulante Extendeur de service d’itinéraire , cliquez sur Extendeur de messagerie.
Notes
Cette propriété définit que le processus aura lieu dans un pipeline (messagerie). Sinon, si le processus a lieu dans une orchestration, définissez la propriété Itinerary Service Extender sur Orchestration Extender.
Dans la liste déroulante Conteneur , développez ReceiveNAOrder, puis cliquez sur Recevoir des gestionnaires.
Dans la liste déroulante Nom du service , cliquez sur Microsoft.Practices.ESB.Services.Routing.
Cliquez avec le bouton droit sur la collection Resolver de l’élément de modèle RouteToFileFromASMX , puis cliquez sur Ajouter un nouveau programme de résolution. Dans le Fenêtre Propriétés Resolver1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez ResolverFromAsmx.
Dans la liste déroulante Implémentation du programme de résolution, cliquez sur Extension du programme de résolution statique.
Dans la liste déroulante Nom du transport , cliquez sur FICHIER.
Cliquez sur la propriété Emplacement de transport , puis tapez c :\howtos\out\asmx%MessageId%.xml.
À partir de la boîte à outils, faites glisser un élément de modèle Off-Ramp vers l’aire de conception, puis placez-le à droite de l’élément de modèle RouteToFileFromASMX . Dans le Fenêtre Propriétés OffRamp1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez SendASMXOrder.
Dans la liste déroulante Extendeur , cliquez sur Off-Ramp ESB Extender.
Dans la liste déroulante Application BizTalk , cliquez sur GlobalBank.ESB.
Dans la liste déroulante Port d’envoi , cliquez sur DynamicResolutionOneWay.
À partir de la boîte à outils, faites glisser un élément de modèle service D’itinéraire vers l’aire de conception, puis placez-le entre l’élément de modèle RouteToFileFromASMX et l’élément de modèle SendASMXOrder . Dans la Fenêtre Propriétés ItineraryService1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez SendPortFilterASMX.
Dans la liste déroulante Extendeur de service d’itinéraire , cliquez sur Extendeur hors rampe.
Dans la liste déroulante Hors rampe , développez SendASMXOrder, puis cliquez sur Envoyer des gestionnaires.
Dans la boîte à outils, cliquez sur Connecteur. Faites glisser une connexion de l’élément de modèle RouteToFileFromASMX vers l’élément de modèle SendPortFilterASMX .
Dans la boîte à outils, cliquez sur Connecteur. Faites glisser une connexion de l’élément de modèle SendPortFilterASMX vers l’élément de modèle SendASMXOrder .
À partir de la boîte à outils, faites glisser un élément de modèle service D’itinéraire vers l’aire de conception, puis placez-le à droite de l’élément de modèle RouteBrokerService . Dans la Fenêtre Propriétés ItineraryService1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez RouteToFileFromWCF.
Dans la liste déroulante Extendeur de service d’itinéraire , cliquez sur Extendeur de messagerie.
Notes
Cette propriété définit que le processus aura lieu dans un pipeline (messagerie). Sinon, si le processus a lieu dans une orchestration, définissez la propriété Itinerary Service Extender sur Orchestration Extender.
Dans la liste déroulante Conteneur , développez ReceiveNAOrder, puis cliquez sur Recevoir des gestionnaires.
Dans la liste déroulante Nom du service , cliquez sur Microsoft.Practices.ESB.Services.Routing.
Cliquez avec le bouton droit sur la collection Resolver de l’élément de modèle RouteToFileFromWCF , puis cliquez sur Ajouter un nouveau programme de résolution. Dans le Fenêtre Propriétés Resolver1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez ResolverFromWCF.
Dans la liste déroulante Implémentation du programme de résolution, cliquez sur Extension du programme de résolution statique.
Dans la liste déroulante Nom du transport , cliquez sur FICHIER.
Cliquez sur la propriété Emplacement de transport , puis tapez c :\howtos\out\wcf%MessageId%.xml.
À partir de la boîte à outils, faites glisser un élément de modèle Off-Ramp vers l’aire de conception, puis placez-le à droite de l’élément de modèle RouteToFileFromWCF . Dans le Fenêtre Propriétés OffRamp1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez SendWCFOrder.
Dans la liste déroulante Extender , cliquez sur Extension ESB hors rampe.
Dans la liste déroulante Application BizTalk , cliquez sur GlobalBank.ESB.
Dans la liste déroulante Port d’envoi , cliquez sur DynamicResolutionOneWay.
À partir de la boîte à outils, faites glisser un élément de modèle service D’itinéraire vers l’aire de conception, puis placez-le entre l’élément de modèle RouteToFileFromWCFCF et l’élément de modèle SendWCFOrder . Dans le Fenêtre Propriétés ItineraryService1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez SendPortFilterWCF.
Dans la liste déroulante Extender de service d’itinéraire , cliquez sur Extender hors rampe.
Dans la liste déroulante Hors rampe , développez SendWCFOrder, puis cliquez sur Envoyer des gestionnaires.
Dans la boîte à outils, cliquez sur Connecteur. Faites glisser une connexion de l’élément de modèle RouteToFileFromWCF vers l’élément de modèle SendPortFilterWCF .
Dans la boîte à outils, cliquez sur Connecteur. Faites glisser une connexion de l’élément de modèle SendPortFilterWCF vers l’élément de modèle SendWCFOrder .
À partir de la boîte à outils, faites glisser un élément de modèle Itinerary Outport vers la bordure droite de RouteBrokerService. Dans le Fenêtre Propriétés ItineraryBrokerOutPort1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez Port WCF.
Dans la liste déroulante Filtre , cliquez sur WCFFilter.
Dans la liste déroulante Résolveur , cliquez sur ResolverBrokerRoute.
À partir de la boîte à outils, faites glisser un élément de modèle Itinerary Outport vers la bordure inférieure de RouteBrokerService. Dans le Fenêtre Propriétés ItineraryBrokerOutPort1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez PORT ASMX.
Dans la liste déroulante Filtre , cliquez sur ASMXFilter.
Dans la liste déroulante Résolveur , cliquez sur ResolverBrokerRoute.
Dans la boîte à outils, cliquez sur Connecteur. Faites glisser une connexion de l’élément modèle de port WCF vers l’élément de modèle RouteToFileFromWCF .
Dans la boîte à outils, cliquez sur Connecteur. Faites glisser une connexion de l’élément de modèle de port ASMX vers l’élément de modèle RouteToFileFromASMX .
Pour exporter le modèle à utiliser avec le client de test d’itinéraire
Notes
Vous devrez exporter l’itinéraire deux fois : une fois en XML et une fois dans la base de données pour tester le routage via le répartiteur.
Dans Visual Studio, cliquez avec le bouton droit sur l’aire de conception de l’itinéraire ChoiceRouter , puis cliquez sur Exporter le modèle.
Notes
La version XML de l’itinéraire s’ouvre dans Visual Studio.
Dans Windows Explorer, accédez à C :\HowTos\Itinéraires, puis notez la création de votre code XML d’itinéraire (ChoiceRouter.xml).
Dans Visual Studio, cliquez avec le bouton droit sur l’aire de conception de l’itinéraire ChoiceRouter , puis cliquez sur Exporter le modèle.
Dans la Fenêtre Propriétés, cliquez sur Exportateur d’itinéraire de base de données dans la liste déroulante Exporter de modèle.
Dans le Fenêtre Propriétés, définissez la propriété Base de données D’itinéraire chaîne de connexion pour qu’elle pointe vers la base de données d’itinéraires.
Dans la liste déroulante État de l’itinéraire , sélectionnez Déployé.
Dans Visual Studio, cliquez avec le bouton droit sur l’aire de conception de l’itinéraire ChoiceRouter , puis cliquez sur Exporter le modèle.
Pour tester l’itinéraire
Ouvrez l’exemple d’application Itinerary Test Client à l’aide du raccourci créé pendant les prérequis pour les activités de développement (C:\HowTos\ESB.Itinerary.Test.exe - Raccourci).
Dans le client de test d’itinéraire, désactivez la zone Utiliser le service WCF case activée, puis cliquez sur Charger l’itinéraire.
Dans la boîte de dialogue Ouvrir le fichier d’itinéraire , accédez à C :\HowTos\Itinéraires. Sélectionnez ChoiceRouter.xml, puis cliquez sur Ouvrir pour charger l’itinéraire.
Cliquez sur OK pour fermer le message « Itinéraire chargé avec succès ».
Dans le client de test d’itinéraire, cliquez sur le bouton de sélection (...) en regard de la zone Charger le message .
Dans la boîte de dialogue Sélectionner un document XML à charger , accédez à C :\Patterns\HowTos. Sélectionnez NAOrderDoc.xml, puis cliquez sur Ouvrir pour charger le message de test.
Cliquez sur le bouton Envoyer une demande . Une fois le test terminé, cliquez sur OK pour fermer le message de confirmation qui s’affiche.
Dans Windows Explorer, accédez à C :\HowTos\Out. Vérifiez que les messages ASMX%MessageID%.xml ont été écrits dans ce répertoire.
Cliquez sur la zone De test d’itinéraire client Utiliser le service WCF case activée. Dans la zone Nom de l’itinéraire , tapez ChoiceRouter, puis cliquez sur le bouton Envoyer la demande . Une fois le test terminé, cliquez sur OK pour fermer le message de confirmation.
Dans Windows Explorer, accédez à C :\HowTos\Out. Vérifiez que les messages WCF%MessageID%.xml ont été écrits dans ce répertoire.
Ressources supplémentaires
Pour plus d'informations, consultez les rubriques connexes suivantes :