Transactions distribuées
Les systèmes de traitement des transactions distribués sont conçus pour faciliter les transactions qui englobent des ressources hétérogènes liées aux transactions dans un environnement distribué. Si elle est prise en charge par un système de traitement de transaction distribué, votre application peut associer dans une unité transactionnelle des activités aussi diverses que la récupération d'un message dans une file d'attente MSMQ (Microsoft Message Queuing), le stockage du message dans une base de données Microsoft SQL Server et la suppression de toutes les références existantes à ce message dans une base de données Oracle Server. Dans la mesure où elles englobent de multiples ressources de données, il est important que les transactions distribuées appliquent les propriétés ACID pour maintenir la cohérence des données entre les différentes ressources.
Un système de traitement de transactions distribué comprend plusieurs entités qui coopèrent comme le décrivent les sections qui suivent. Il s'agit d'entités logiques qui peuvent résider sur le même ordinateur ou sur des ordinateurs distincts.
Analyseurs de traitement de transactions
Un analyseur de traitement de transactions est un logiciel qui est situé entre une application liée aux transactions et une collection de ressources. Il rentabilise au maximum les activités du système d'exploitation, rationalise les communications réseau et connecte plusieurs clients à plusieurs applications susceptibles d'accéder à plusieurs ressources de données.
Au lieu d'écrire une application qui gère un environnement distribué de plusieurs utilisateurs, vous écrivez une application constituée de demandes de transaction distinctes. L'analyseur dimensionne votre application en fonction de vos besoins.
Le coordinateur de transactions distribuées (DTC, Distributed Transaction Coordinator) est l'analyseur de traitement des transactions de Microsoft Windows 2000.
Gestionnaires de transactions
Au cours d'une transaction distribuée, chaque ressource participante possède un gestionnaire de transactions local qui assure le suivi des transactions entrantes et sortantes sur cet ordinateur. L'analyseur de traitement des transactions assigne à un gestionnaire de transactions la tâche supplémentaire qui consiste à coordonner toutes les activités entre les gestionnaires de transactions locaux. Le gestionnaire de transactions chargé de la coordination des activités de transaction est appelé gestionnaire de transactions racine ou coordinateur de transactions.
Un gestionnaire de transactions coordonne et gère toutes les fonctions de traitement des transactions mais il n'est pas équipé pour gérer les données directement. Les activités liées aux ressources sont gérées par des gestionnaires de ressources.
Gestionnaires de ressources
Un gestionnaire de ressources est un service système qui gère des données permanentes ou durables dans des bases de données, des files d'attente de messages durables ou des systèmes de fichiers transactionnels. Le gestionnaire de ressources stocke des données et effectue des récupérations d'urgence.
SQL Server et Message Queuing fournissent des gestionnaires de ressources qui participent aux transactions distribuées. Oracle, Sybase, Informix, IBM (pour IBM DB2) et Ingres fournissent également des gestionnaires de ressources compatibles avec leurs produits de bases de données.
Dispenseurs de ressources
Un dispenseur de ressources gère un état non durable qui peut être partagé. Par exemple, le dispenseur de ressources ODBC (Open Database Connectivity) gère des pools de connexions à des bases de données et récupère chaque connexion lorsqu'elle n'est plus nécessaire.