Parties ou comment se passer des ports dynamiques

Lorsque vous developpez une application BizTalk, l’ensemble des ports de communication utilisés par l’application se trouvent referencés par cette application et meme s’il est possible de partager un meme port d’entrée ou de sortie entre 2 applications distinctes il n’est pas possible de s’abstraire totalement de la notion d’Application pour symboliser un partenaire externe à son SI avec lequel on echange des messages. Pourtant si l’on prend le cas d’un envoi de message, on pourrait trés bien imaginer de symboliser le partenaire externe (une société) comme une collection de plusieurs “Send Port” Biztalk qui pourraient etre utilisés simultanément par plusieures applications biztalk et qui n’auraient comme seuls points communs de n’envoyer des messages qu’a la meme société partenaire… C’est justement le role des “Parties”. Un Party represente ce partenaire externe.

Pourquoi rajouter une telle notion transverse aux applications dans la mesure ou l’on en n’a pas directement besoin techniquement ?

Prenons l’exemple d’un Send Port Dynamique. Vous allez vite voir ou je veux en venir … J’utilise le plus souvent un send port Dynamique pour remplacer dynamiquement son adresse car j’ai plusieurs clients qui utilisent tous le meme moyen de communication mais à des adresses différentes.

J’ai par exemple développé un web service de gestion de factures utilisé par plusieures filiales de mon entreprise. Mais chaque filiale l’a déployée chez elle pour gérer ses propres factures. La filiale Francaise recoit ses factures sur http://filialeFrance.com/Service123.svc  et la filiale irlandaise sur http://filialeIrland.com/Service123.svc .

Le routeur de factures pour les différents pays, par exemple une orchestration BizTalk, est équipée d’un send port dynamique et j’ai prévu plusieurs clés de configurations pour chacunes de ces adresses pour switcher d’une adresse à l’autre suivant le code pays promu dans mon message (XSD) de facture.

Exemple :

Key = “IR” Value = “http://filialeIrland.com/Service123.svc

Key = “FR” Value = “http://filialeFrance.com/Service123.svc

Ca marche bien sûr, mais lorque je veux rajouter un nouveau pays ou modifier l’une des adresses, je dois me rendre dans ce nouveaux fichier de configuration… Je venais justement d’expliquer fièrement au “Configuration Manager” de mon entreprise qu’on pouvait configurer l’ensemble des adresses des flux biztalk en ouvrant simplement  l’administration console ;-((( Et là je lui explique qu’il y en a aussi quelques une dans un obscur fichier de configuration auquel personne n’a accès, à par lui bien sûr ;-)

Je me dis que j’aurais préféré régler ces adresses également dans l’administration console, et bien c’est ce que j’aurais pu faire et éviter de créer un nouveau fichier de configuration si j’avais créé 2 Party comme suit :

Dans le noeux “Parties” situé sous le noeux “Application” dans l’administration console, je créé :

Un Party nommé “Filiale Irlande” avec un send port sur l’adresse : http://filialeIrland.com/Service123.svc et un critere d’identification  ”IR” (additionnal properties).

Un Party nommé “Filiale France” avec un send port sur l’adresse : http://filialeFrance.com/Service123.svc et un critere d’identification  ”FR” (additionnal properties).

Enfin je modifie mon orchestration pour supprimer ce port dynamique et le remplacer par un “RoleLink” qui me permettra de passer directement mon code pays et ce chargera d’identifier le bon Party (Filiale Française ou filiale Irlandaise en fonction du critere d’identification) et donc le bon send port d’envoi de la facture.

Bien sûr mes 2 send ports (France et Irlande) restent bien déclaré au sein de mon application de gestion de facture mais ils sont désormais statiques et enteriement parametrables depuis l’administration console.

Bien sûr ont aurait pu aussi créer ces ports statiques sans “parties” et utiliser un “filter” sur la propriete du message pour aiguiller les messages. Mais en utilisant les Parties on obtient la possibilité de regrouper fonctionnellement et transversalement aux applications tous les échanges avec un meme partenaires et de rendre identifiable ce partenaire avec plusieurs criteres. Par exemple certains flux se baseraient sur le pays de l’entreprise, d’autres sur le numero de SIRET etc…

Et surtout je peux répondre à la question suivante que vient de me poser le configuration manager de mon entreprise :

Peux tu me lister tous les flux échangés avec l’Irlande ? je dois lister tous les ports réseaux à ouvrir avec leur hébergeur…

Ce à quoi je lui réponds tout fier : Tu vas dans /Parties/FilialeIrlande/SendPorts et tout est là !!! Bon WE

Une réponse à Parties ou comment se passer des ports dynamiques

  1. [...] A l’issue de ce tutorial, vous pouvez vous rendre compte de l’utilité de déclarer des “Tiers” ou “Parties” dans BizTalk. Cette notion transverse à la notion d’application vous permet de parametrer les spécificités liées à la communication avec vos partenaires mais elle n’est pas seulement utilisable dans un cadre EDI (cf précédent post : http://huguesmoore.wordpress.com/2011/06/20/parties-ou-comment-se-passer-des-ports-dynamiques/ ). [...]

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Twitter picture

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Connexion à %s

Suivre

Get every new post delivered to your Inbox.