2010-12-08 86 views
3

Je suis en train de concevoir une solution Biztalk qui nécessite que les applications clientes s'abonnent et reçoivent uniquement un certain sous-ensemble de messages d'événement en fonction de leurs autorisations d'utilisateur. L'abonnement sera effectué via un routage basé sur un sujet ou un contenu. Le client s'abonnera une fois et recevra de nombreux messages jusqu'à ce qu'il choisisse de se désabonner.Éléments d'abonnement définis par le client BizTalk

Les applications clientes seront numérotées dans les 100s et les rubriques réservées pourraient changer régulièrement, donc la définition d'un port d'envoi individuel depuis Biztalk pour chaque destinataire n'est pas une solution viable.

J'ai pensé que je pourrais construire un service de courtier de messages supplémentaire qui détient les abonnements individuels des clients et distribue les messages envoyés à partir d'un port biztalk.

J'ai également vu qu'un modèle de liste de destinataires peut être construit en utilisant des orchestrations. Cela me semble toujours suivre un modèle de demande-réponse et je suis après un message de souscription à plusieurs messages d'événements retournés. Ma solution de courtier de messages me semble doubler sur ce que Biztalk devrait être bon donc j'imagine qu'il me manque quelque fonctionnalité importante quelque part. Quelqu'un at-il déjà essayé une telle application et peut-il donner quelques conseils? Devrais-je investir dans la boîte à outils ESB comme solution? J'ai jeté un oeil sur le net mais rien ne le rend très clair pour ce type de modèle d'abonnement à un sujet.

Merci, Phil

Répondre

2

Ne jetez un oeil à la boîte à outils ESB. Vous pouvez utiliser la fonctionnalité d'itinéraire qu'il ajoute à BizTalk, soit avec l'un des résolveurs intégrés (par exemple, UDDI), soit avec votre propre résolveur personnalisé. Cela vous permet de router les messages en fonction de la configuration (stockée dans les règles de gestion ou ailleurs).

Vous trouverez une vidéo de présentation orientée développeur de la boîte à outils ESB sur MSDN, qui constitue une introduction décente au processus de conception et à l'outillage. Il y a aussi plusieurs autres vidéos utiles.

Votre scénario spécifique peut être accompli avec un seul itinéraire, comme décrit here. Utilisez un pipeline de réception avec le composant ESB Dispatch Disassembler, configurez plusieurs résolveurs et, pour chaque résolveur, un nouveau message est généré.

Il y a aussi deux échantillons à regarder:

  1. The Itinerary On-Ramp Sample - construit un ensemble d'en-têtes SOAP qui contiennent l'itinéraire que vous créez dans le client de test, charge le fichier de message spécifique à partir du disque, ajoute l'itinéraire en-têtes au message, et le soumet à l'ESB par l'intermédiaire d'une rampe d'accès pour traitement. - Ajoute également des en-têtes SOAP contenant l'itinéraire vers le message, qui est soumis à l'ESB via une rampe de lancement pour traitement. Une orchestration de courtier analyse les paramètres de son étape d'itinéraire, récupère une collection de résolveurs associés à l'étape d'itinéraire et, pour chacun de ces résolveurs, résout le point de terminaison du service. Après cela, l'orchestration active les instances d'orchestration ServiceDispatcher appropriées pour distribuer les messages de demande sortants.

Vous devriez aussi regarder « How to: Route a Single Message to Multiple Recipients Using an Itinerary Routing Slip » ou peut-être chercher dans la création d'un service de messagerie itinéraire personnalisé (documentation is here).