Accueil
Articles
Astuces
Vidéos
Actualités
Auteurs
A propos
Contact
S'enregistrer
|
S'identifier
S'identifier
Authentification invalide
N
om d'utilisateur
M
ot de Passe
S
e souvenir de moi la prochaine fois.
S'identifier
Annuler
S'enregistrer
Mot de passe oublié ?
A la découverte de BizTalk Server 2006 1/3
Développer un désassembleur pour BizTalk Server 2006 R2
Par
Kader Yildirim
publié le 02/03/2008 à 21:58, lu 5021 fois, 6 pages
0 commentaire(s)
Tags:
C#
,
BizTalk Server 2006
,
Visual Studio 2005
2 | L'exemple
1 | Introduction
2 | L'exemple
3 | Extraction des sous-documents
4 | Développement du désassembleur
5 | Test du composant
6 | Conclusion
Téléchargez le code source - 553 Kb
L'exemple
Dans un certain nombre de cas un système informatique reçoit des messages qu'il traite, transforme, enrichi... puis expédie vers un autre système. Quelques fois ce qui nous intéresse dans les messages reçus est un sous ensemble noyé au milieu d'autres informations et qui n'est pas nécessairement à la même position d'un message à l'autre.
Par exemple un système de traitement des commandes peut recevoir des fichiers de demandes en provenance de plusieurs sources, chacune contenant les données d'une commande d'un client au sein d'autres informations spécifiques à l'émetteur.
L'objectif de cet article est de vous faire découvrir le développement d'un désassembleur BizTalk qui prend en entrée n'importe quel document XML et construit un document multi-part en extrayant les fragments qui sont reconnus par des orchestrations de l'application BizTalk. Cela revient en gros à implémenter une
enveloppe
dont on ne connaît pas le schéma.
Pour cela l'utilisateur donne en paramètre au composant une liste de schémas (XSD) qui sert de pattern de recherche dans le document source.
Le schéma suivant résume ce que nous souhaitons faire :
Etape 1
: l'utilisateur précise les fragments qu'il souhaite extraire à l'aide de schémas. Ces fragments peuvent se trouver n'importe où dans le document XML dont on ne connait pas la structure à l'avance.
Etape 2
: le désassembleur extrait les fragments cibles et les remplace dans le document source par des éléments de type
<Guid>....</Guid>
qui seront utile lors de la reconstruction du document de sortie à la fin des traitements. Le nouveau message BizTalk est de type
multi-part
dont le
body
contient le message source mis à jour et les autres
parts
les fragments reconnus (un peu comme un email dont le corps serait le message source et les pièces jointes les fragments).
Si je trouve un peu de temps, dans un quatrième article, on pourra implémenter une autre technique qui consiste non plus à créer un message multi-part mais N messages reliés entre eux via un interchange.
Etape 3
: Une orchestration maître itère sur les fragments ainsi créés et appelle les sous-orchestrations capables de les traiter en fonction de leur type (XSD).
Etape 4
: les orchestrations filles reçoivent en entrée un message typé et retournent un document XML qui est le résultat de leur transformation.
Etape 5
: Nous avons un nouveau message multi-part à jour (les fragments sont remplacés par ceux provenant des orchestrations filles).
Etape 6
: un assembleur reconstitue le message de sorti en intégrant les fragments transformés dans la source c'est-à-dire le body du message multi-part.
Ainsi l'idée serait de ne plus considérer les messages comme un bloc monolithique mais plutôt comme un ensemble de petits morceaux plus stables dans le temps limitant ainsi les risques liés à l'évolution de la structure du message. De cette façon l'impact d'un changement est limité à la
structure élémentaire
Au cours de ces trois articles nous aurons l'occasion d'aborder les notions suivantes :
Receive port
Pipeline
Message box
Orchestration
Map
Send port
PS : l'objectif de ces articles est de manipuler un maximum de concepts BizTalk.
1
2
3
4
5
6
»
Démarrer une discussion
Ecrire un commentaire
Titre
Commentaire
Annuler