Rubrique précédente: Tolérance de navigationRubrique suivante: Tolérance de correspondance


Transactions logiques

Une transaction logique s'affiche sous forme de noeud unique dans une conversation. Une transaction logique comprend une métatransaction et une ou plusieurs transactions spécifiques.

Lorsqu'une transaction logique s'affiche dans la recherche de réponse à une demande particulière, la métatransaction est consultée. La métatransaction détermine si cette transaction veut répondre à la demande donnée. Si la métatransaction décide de répondre à la demande, toutes les transactions spécifiques devront indiquer si elles souhaitent répondre à la demande. Si aucune des transactions spécifiques ne veut répondre à la demande, la réponse sélectionnée sera celle de la métatransaction.

Cette logique peut être exprimée par le code fictif suivant :

pour chaque transaction logique \{
 
si (la demande de métatransaction correspond à la demande donnée) \{
// ce noeud gérera la demande pour chaque transaction spécifique dans ce noeud \{
si (la transaction spécifique correspond à la demande donnée) \{
la réponse est renvoyée à partir de la transaction spécifique
\}
\}
// Transaction spécifique introuvable pour la demande spécifique
la réponse est renvoyée à partir de la métatransaction
\}
\}

Ultérieurement, une métatransaction physique contient une liste de transactions spécifiques et une liste de métatransactions enfants. Cette dernière permet de structurer les métatransactions en arborescence décisionnelle.