WS-AtomicTransaction – Entwicklung mobiler Anwendungen, Webservices, SOA-Architektur – Technologie
Zum Inhalt springen

WS-AtomicTransaction – Entwicklung mobiler Apps, Webservices, SOA-Architektur

Anzeigen

WS-AtomicTransaction (WS-AT) ist ein interoperables Transaktionsprotokoll. Es ermöglicht den Fluss verteilter Transaktionen durch die Verwendung von Webdienstnachrichten und koordiniert interoperabel über heterogene Transaktionsinfrastrukturen hinweg. WS-AT verwendet das zweiphasige Ausführungsprotokoll, um ein atomares Ergebnis zwischen verteilten Anwendungen, Transaktionsmanagern und Ressourcenmanagern zu erstellen.

Die bereitgestellte Implementierung von WS-AT in Windows Communication Foundation (WCF) umfasst einen Protokolldienst, der in den Transaktionsmanager Microsoft Distributed Transaction Coordinator (MSDTC) integriert ist. WCF-Anwendungen können Transaktionen über WS-AT an andere Anwendungen weiterleiten, einschließlich interoperabler Webdienste, die mit Technologie von Drittanbietern erstellt wurden.

Wenn eine Transaktion zwischen einer Client-Anwendung und einer Server-Anwendung abläuft, wird das verwendete Transaktionsprotokoll durch die Bindung bestimmt, die der Server auf dem ausgewählten Client-Terminal bereitstellt. Einige für WCF bereitgestellte Bindungen geben standardmäßig das OleTransactions-Protokoll als Transaktionsweitergabeformat an, während andere standardmäßig die WS-AT-Spezifikation verwenden. Sie können die Auswahl des Transaktionsprotokolls innerhalb einer bestimmten Bindung auch programmgesteuert ändern.

Die Wahl des Protokolls beeinflusst:

  • Das Format der Nachrichtenheader, die zum Weiterleiten der Transaktion vom Client zum Server verwendet werden.
  • Das Netzwerkprotokoll, das zum Ausführen des zweiphasigen Ausführungsprotokolls zwischen dem Client-Transaktionsmanager und der Servertransaktion verwendet wird, um das Transaktionsergebnis aufzulösen.

Wenn sowohl der Server als auch der Client mit WCF geschrieben sind, müssen Sie WS-AT nicht verwenden. Stattdessen können Sie die standardmäßige NetTcpBinding-Konfiguration mit aktiviertem TransactionFlow-Attribut verwenden, die das OleTransactions-Protokoll verwendet.

Diese Spezifikation definiert die folgenden Protokolle für atomare Transaktionen.

Abschluss: Das Beendigungsprotokoll startet den Bestätigungsprozess. Basierend auf den angemeldeten Teilnehmern jedes Protokolls beginnt der Koordinator mit 2PC Volatile und steigert sich bis zu 2PC Dauerhaft. Das Endergebnis wird dem Initiator signalisiert.

Zwei-Phasen-Verpflichtung (2PC): Das 2PC-Protokoll koordiniert registrierte Teilnehmer, um eine Bestätigungs- oder Stornierungsentscheidung zu treffen, und stellt sicher, dass alle Teilnehmer über das Endergebnis informiert werden. Das 2PC-Protokoll hat 2 Varianten:

  • Flüchtiger 2PC: Der Teilnehmer, die flüchtige Ressourcen wie einen Cache verwalten, müssen sich bei diesem Protokoll registrieren.
  • Langlebig, 2 Stück: Teilnehmer, die dauerhafte Ressourcen wie eine Datenbank verwalten, müssen sich bei diesem Protokoll registrieren.

Ein Teilnehmer kann sich für mehr als eines dieser Protokolle registrieren, indem er mehrere Registrierungsnachrichten sendet.