BizTalk Server Pattern Wizard
L'équipe BizTalk Server annonce aujourd'hui la sortie de l'outil BizTalk Server Pattern Wizard publié par Jon Flanders sur CodePlex il y a pourtant déjà quelques temps. Ce projet permet notamment de capitaliser, partager et réutiliser les bonnes pratiques d'implémentation des orchestration dans BizTalk Server par l'ajout de templates de projet dans Visual Studio. Une douzaine d'implémentations sont dors et déjà disponibles dans cette version :
-
Async Aggregation
-
Inverse Direct Bound Port
-
First In First Out
-
Splitter
-
Interrupter Pattern
-
Terminate
-
Retry Pattern
-
Non-uniform Sequential Convoy
-
Calling Pipelines
-
Parallel Convoy
-
Filter
-
Uniform Sequential Convoy
-
Message Broker
-
Suspend With Retry
-
Error Handling
J'avoue avoir été séduit par le concept puisque se rapprochant fortement de l'implémentation de Design Pattern tels que Web Service Software Factory, Smart Client Software Factory ... et permettant d'accélérer les développements dans le respects des patterns (ou anti-patterns d'ailleurs) établis.
Prenons un exemple simple de besoin de création d'un batch séquentiel avec BizTalk (file de message FIFO). Une fois les templates installés, vous retrouverez dans la fenêtre de sélection de projet de Visual Studio une nouvelle rubrique nommée "Pattern Templates" :

Dans notre cas, sélectionnez le template BizTalkFIFOPatternWizard et validez. Un wizard se lance et permet en quelques clics de déterminer l'ensemble des éléments nécessaires à la construction de l'orchestration.

Sélectionnez l'élément déclencheur de l'arrêt du traitement. Dans notre cas, la sélection du Timeout suffit à l'exemple et sera majoritairement utilisé. Toutefois, l'élément "Command terminaison" peut être intéressant dans les processus métier dont l'arrêt est décris par l'arrivé d'un message de fin.
Cliquez ensuite sur Next pour valider le choix et passer à la sélection du schéma XSD décrivant le type de message à traiter.

Sélectionnez maintenant l'assembly contenant la définition de vos message puis le schéma du message en tant que tel. Valider la sélection en cliquant sur Next.

Dernièr élément de ce wizard consiste à fournir l'identifiant de corrélation utilisé par l'orchestration BizTalk pour faire le lien entre un message et une instance de l'orchestration. La propriété BTS.ReceivePortID garantie dans notre cas que tout message provenant d'une même source sera traité par l'orchestration puisque unique et n'évoluant pas dans le temps.
Une fois le wizard complété et validé, un projet de type BizTalk est généré contenant une orchestration dont le design est le suivant :

On remarquera qu'en quelques clics très simples, nous avons gagné un temps considérable de glisser / déposer et configuration de propriétés sur les ports et les messages. Je ne parle même pas des risques d'erreurs dans l'implémentation de ce type de fonctionnalité ...
... à quand l'implémentation d'un BizTalk Server Software Factory ! 
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :