construisons ENSEMBLE

integration d'architectures de systemes d'informations et technologies internet

Présentation générale et théorique Biztalk

Définition d'un EAI (Enterprise Application Intégration)

Un peu de théorie

          Un EAI constitue une architecture logicielle permettant :

          1) Connectivité entre plusieurs systèmes hétérogènes.

          2) Gestion des échanges de données entre ces systèmes en temps réel.

          3) Urbanisation des différents systèmes constitutifs dun système dinformation.

 

Biztalk Server un vrai chef dorchestre

 

          Dans cette présentation nous allons partir d'un cas simple pour montrer les différentes briques de Biztalk.

          Prenons le cas dune entreprise appelée « Hello World » vendant des produits quelconques.

          Le process de vente est le suivant:

 

Et en pratique que fait biztalk ?

          Biztalk va permettre au vendeur de connaître l'état de stock du produit x pour informer le client d'une éventuelle commande.

          Biztalk va, dans le cas, où le stock ne permet pas d'honorer la commande, commander lui-même le produit auprès des fournisseurs.

          Biztalk va permettre de centraliser les données provenant des différents entrepôts.

 

Solution Biztalk et environnement de développement

 

          Biztalk est avant tout un projet .net contenu dans une solution.

          Dans cette solution, nous avons effectué 4 séparations que nous allons regarder une à une. Ces parties constituent les principales parties de Biztalk:

-          Les schémas

-          Les messages

-          Les mappings

-          Les orchestrations

Nous évoquerons de manière séparée les functoïdes, les ports physiques et les pipelines.

 

Les schémas

 

          Les schémas constituent des fichiers xsd. Il faut savoir que Biztalk ne fonctionne en interne qu'avec du xml et le coeur de Biztalk ne comprend que ce langage.

          Comme chacun sait un xsd est une définition de schéma xml permettant de contrôler la validité et la cohérence du xml s'y rapportant.

          Le schéma xsd se rapproche dune DTD (définition du type de document) à quelque chose près, c'est que le xsd est un xml.

 

          Nous remarquons dans cet exemple que nous avons :

          - Un entête comme un fichier xml

          - Une élément racine (Root)

          - Des sous éléments

          - Des attributs

          - Des types associés à chacun deux (string, integer ..)

Pour Biztalk le schéma est un moyen de comprendre l'extérieur.

Revenons à notre cas :

-          Lors de lachat du produit par le client. Le vendeur va interroger son ordinateur via une application en insérant les références produit, la quantité souhaitée, le prix.

-          Le système va générer un fichier xml.

-          Biztalk va traiter linformation en faisant appel à dautres systèmes afin de connaître l'état des stocks. Un fois la réponse obtenue, il va générer la réponse afin que le vendeur puisse traiter la commande cliente. Nous ne montrerons pas dans cette présentation l'aspect réponse.

 

Les messages

 

          Les messages représentent l'unité au sein de Biztalk. Un message est une instance de schéma en quelque sorte, et symbolise le flux à l'intérieur des orchestrations Biztalk.

          Ce sont les composants qui vont être traités dans Biztalk. Un message pourra être modifié, agrégé ou découpé. Il pourra de manière générale, être modifié en une unité compréhensible par un autre système avec un formalisme différent.

          Un message est lié à un schéma. Le schéma permet en quelque sorte de typer un message. Nous pourrons ainsi faire la distinction entre un message A et un message B.

 

Les mappings

 

          Les mappings comme son nom lindique permettent de transformer un schéma par un autre, soit en agrégeant le message, soit en transformant sa structure afin d'être compréhensible par autre système. Il est, par ailleurs, possible de modifier les données à la volée au moment du mapping en utilisant des functoïds.

          Dans l'exemple ci-dessus la transformation est simple et n'apporte pas forcément de valeur ajoutée.

 

Les Functoïds

          Reprenons le mapping précédent:

          Nous avons rajouté un functoïd.

          Un functoïd est une fonction permettant de modifier les champs lors dun mapping.

          Il peut être d'ordre mathématique comme ici mais logique, database etc. Il y a la possibilité d'accéder à la base de données pour récupérer une donnée et l'intégrer dans le message de destination.

          Si un functoïd nexiste pas dans la bibliothèque proposée par Microsoft. Il est possible de créer ses  propres functoïds.

 

Les orchestrations

conduct3

 

          Biztalk est effectivement un vrai chef d'orchestre dans la mesure où il va orchestrer les flux transitant par lui.

          Il va recevoir par l'intermédiaire dun port de réception un message défini par un schéma. Ce message va être transformé et va emprunter selon des règles, tel ou tel chemin. Une fois le cheminement du message terminé il sera envoyé vers un port de sortie « sendPort ». Afin d'envoyer un retour à l'application cliente.

          Plusieurs actions sont possibles dans une orchestration, comme réaliser des actions en parallèle, créer des délais d'attentes etc. Une boite à outil est disponible comme pour une application .net classique.

 

 

Les orchestrations :

          Constituent le moteur de règles des messages en transit.

          Permet d'effectuer la relation entre plusieurs systèmes en agrégeant plus ou moins les messages de manière à être compréhensibles par les systèmes cibles.

          Tous les messages en transites sont du xml.

          Lorsque, dans une orchestration, Biztalk reçoit un fichier plat, celui-ci passe dans un pipeline qui réalise la pré transformation du fichier plat en une donnée xml. 

          Les ports d'entrées et de sorties physiques sont configurés dans la console d'administration Biztalk. Ils utilisent des Adapters pour accéder aux différents systèmes de différentes technologies. Adaper pour sql, pour SAP, pour webService, pour fichier, pour Sharepoint...

Un petit trou normand ?

 

 

 

Les Adapters

 

 

          Les adapters permettent la relation avec différentes technologies de la plus simple à la plus complexe (SQL Server, SAP..).

          Cest l'entité qui va permettre la communication avec plusieurs protocoles (SMTP, SOAP ..)

          Ils sont utilisés par les ports physiques.

Les pipelines

Les pipelines constituent comme son nom lindique:

          Un canal de communication pour le message en transit.

          Il permet de réaliser certains traitements comme le décryptage, le découpage, le parsing des messages. Ceci avant toute entrée et après tout sortie de l'orchestration.

          Les pipelines servent aux découpages des messages de manière unitaire. Il faut savoir que le découpage peut se faire au sein d'une orchestration mais que ce traitement est plus couteux et moins performant que dans un pipeline.

          Le pipeline peut être développé en C# et Visual Studio offre un projet template pour créer ses propres  pipeline dans le but d'une customisation éventuelle.

 

Les Ports physiques

          Dans une orchestration Biztalk, nous définissons des ports « logiques ».

          Ces ports logiques devront être configurés dans la console dadministration en ports physiques rattachés à des adapters.

          Un port physique est la définition intégrale du moyen qu'utilisent les messages pour être récupérés. On y définit par exemple les connections sql, les répertoires où l'on va chercher les fichiers etc.

On peut leur associer un tracking sur les messages et effectuer un filtrage.

L'Administration Biztalk

          La console dadministration permet de vérifier le statut des composants Biztalk.

          Il permet de démarrer/Arrêter les services (ports, orchestrations).

          Configurer les ports physiques et les lier au adapter.

          De configurer le tracking (pour les ports).

 

Conclusion

          Biztalk est un EAI robuste. Aucun message n'est perdu. Il utilise pour cela la base de données pour enregistrer tous les messages. La base de données s'appelle la messageboxDb.

          Biztalk s'appuie principalement sur du xml et des schémas associés pour travailler.

          Il faut faire attention à certains développements pouvant être couteux en performance.

          Cest un EAI qui a besoin de grandes ressources matérielles pour tourner correctement et efficacement.

 

Sébastien GERMOND

Consultant Biztalk Server / . Net

http://www.iasiti.com