Arborescence logique (assemblage de messages)
L'arborescence logique est la représentation interne d'un message et est également appelée assemblage de messages.
Lorsqu'un message arrive à l'adresse IBM® App Connect Enterprise, il est réceptionné par un nœud d'entrée configuré dans le flux de messages. Pour que le message puisse être traité, il doit être interprété par un ou plusieurs analyseurs qui créent une représentation d'arborescence logique à partir du flot de bits des données du message.
Le format d'arborescence contient un contenu identique au flot de bits à partir duquel il est créé, mais il est plus facile de le manipuler dans le flux de messages. La plupart des noeuds de flux de messages intégrés fournissent une interface qui vous permet d'interroger et de mettre à jour le contenu des messages dans l'arborescence et d'effectuer d'autres actions sur les messages et les bases de données pour vous aider à fournir la fonction requise dans chaque noeud.
Plusieurs interfaces sont fournies:
- ESQL, un langage de programmation que vous pouvez coder dans les noeuds Calculer, Base de donnéeset Filtrer .
- Java™, un langage de programmation que vous pouvez coder dans le noeud JavaCompute .
- Les mappages, méthode graphique permettant d'effectuer une transformation des structures d'entrée vers les structures de sortie, sont disponibles dans le noeud Mappage .
- XSL, un langage de transformation XML que vous pouvez utiliser dans le noeud XSLTransform .
La structure arborescente créée par les analyseurs syntaxiques est largement indépendante de tout format de message (par exemple, XML). La seule exception à cette règle est la sous-arborescence créée dans le cadre de l'arborescence de messages pour représenter le corps du message. Cette sous-arborescence est dépendante des messages et son contenu n'est pas décrit plus en détail ici.
Le nœud d'entrée crée cet ensemble de messages, qui se compose des arbres suivants :
- Arborescence de messages
- Arborescence d'environnement
- Arborescence d'environnement local
- Arborescence de listes d'exceptions
- Arbre contextuel
La première de ces arborescences est remplie avec le contenu du flux binaire du message d'entrée. Les autres arbres sont initialement vides.
Chacun des arbres créés possède un élément racine (dont le nom est spécifique à chaque arbre). Chaque arborescence est constituée d'un certain nombre d'informations discrètes appelées éléments. L'élément racine n'a pas de parent et pas d' éléments apparentés (les éléments apparentés sont des éléments qui partagent un seul parent). La racine est parent d'un certain nombre d'éléments enfant . Chaque enfant doit avoir un parent, peut avoir zéro ou plusieurs frères et sœurs et peut avoir zéro ou plusieurs enfants.
Les arbres sont créés pour les nœuds d'entrée et les analyseurs syntaxiques intégrés et définis par l'utilisateur.
Le noeud d'entrée transmet l'assemblage de messages qu'il a créé aux noeuds de traitement de messages suivants dans le flux de messages:
- Tous les nœuds de traitement des messages peuvent lire les arbres.
- Vous pouvez coder ESQL dans les noeuds Database et Filter , ou utiliser des mappages dans les noeuds qui prennent en charge cette interface pour modifier les arborescences Environment et LocalEnvironment uniquement.
- Le noeud Calculer diffère des autres noeuds en ce qu'il comporte à la fois un assemblage de messages d'entrée et au moins un assemblage de messages de sortie. Configurez le noeud de traitement pour déterminer les arborescences qui sont incluses dans l'assemblage de messages de sortie ; l'arborescence d'environnement est une exception car elle est toujours conservée de l'assemblage de messages d'entrée à l'assemblage de messages de sortie.
Pour déterminer laquelle des autres arborescences est incluse, vous devez spécifier une valeur pour la propriété Mode de calcul du noeud (affichée dans l'onglet Avancé). L'action par défaut concerne uniquement le message à créer. Vous pouvez spécifier n'importe quelle combinaison de message, LocalEnvironment, et ExceptionList arborescences à créer dans l’assembly de messages de sortie.
Si vous souhaitez que l'assemblage de messages de sortie contienne une copie complète de l'arborescence de messages d'entrée, vous pouvez coder une seule instruction ESQL SET pour effectuer la copie. Si vous souhaitez que le message de sortie contienne un sous-ensemble de l'arborescence de messages d'entrée, codez ESQL pour copier les parties de votre choix. Dans les deux cas, votre choix du mode de calcul doit inclureMessage.
Si vous souhaitez que l'assemblage de messages de sortie contienne tout ou partie du contenu de l'arborescence d'entrée LocalEnvironment ou ExceptionList , codez le code ESQL approprié pour copier les informations que vous souhaitez conserver dans cette arborescence. Votre choix de Mode calcul doit inclure Environnement local, ou Exception, ou les deux.
Vous pouvez également coder ESQL pour remplir le message de sortie, Environnement, LocalEnvironment, ou ExceptionList arborescence avec des informations qui ne sont pas copiées de l’arborescence d’entrée. Par exemple, vous pouvez extraire des données d'une base de données ou calculer le contenu à partir des données de message d'entrée.
- Vous pouvez produire des résultats similaires dans le noeud JavaCompute . Pour plus d'informations, voir Écrire Java.
Si des messages sont enregistrés lorsqu'ils passent par un flux de messages, vous pouvez afficher et éditer les fichiers d'assemblage de messages stockés à l'aide de l' éditeur d'assemblage de messages. Vous pouvez également utiliser les assemblages de messages enregistrés dans des tests d'unité pour vos flux de messages et vos noeuds de flux de messages. Pour plus d'informations, voir Développer des tests d'intégration et l' éditeur Message Assembly.