Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Web Services Reliable Messaging  Dokument im Navigationsbaum lokalisieren

Bei der Verwendung von Web Services in unternehmenskritischen Anwendungen ist ein zuverlässiger Nachrichtenaustausch unbedingte Voraussetzung. Der Standard Web Services Reliable Messaging (WS-RM) gewährleistet, dass der Nachrichtenaustausch korrekt abgeschlossen wird, ohne dass Nachrichten verloren gehen oder dupliziert werden. WS-RM stellt einen zuverlässigen Nachrichtenaustausch auch dann sicher, wenn beispielsweise bei einer Bestellung die Verbindung zum Netzwerk verloren geht.

Um die Übertragung von Nachrichten zu garantieren und auch die korrekte Reihenfolge der eingehenden Nachrichten zu kontrollieren, sieht das WS-RM-Protokoll vor, eine oder mehrere Nachrichten zu Sequenzen zusammenzufassen.

Sequenzen erhalten eine eindeutige Identifikation. Nachrichten innerhalb einer Sequenz werden fortlaufend durchnummeriert. Der WSRM-Sequenz-Header in der SOAP-Nachricht identifiziert die Sequenz, zu der eine Nachricht gehört.

Die WS-Reliable-Messaging-Implementierungen auf Sender- und Empfängerseite stellen sicher, dass Nachrichten sicher übertragen werden. Voraussetzung dafür ist, dass eintreffende Nachrichten vom Empfänger quittiert werden. Dazu definiert die Spezifikation das Format für ein Acknowledgement, das der Empfänger dem Sender zur Bestätigung zusendet. Der Sender wartet auf die Bestätigung und sendet die Nachricht gegegebenenfalls so lange noch einmal, bis er die Bestätigung erhält.

Diese Grafik wird im zugehörigen Text erklärt

Sequenzen werden von der Anwendung angelegt, geöffnet, geschlossen, aktiviert und terminiert (siehe: Programmieren mit Sequenzen).

Zur Vermeidung unnötiger Netzwerkkommunikation muss der Empfänger den Empfang nicht jeder Nachricht einzeln quittieren, sondern kann in einem Acknowledgement ganze (nicht zwingend zusammenhängende) Bereiche quittieren - also zum Beispiel zurückmelden, dass die Nachrichten 1,3 und 5 korrekt eingegangen sind.

Da Nachricht 2 und 4 nicht bestätigt wurden, werden sie erneut gesendet. Die Sequenz wird erst dann beendet, wenn der erfolgreiche Eingang auch dieser Nachrichten zurückgemeldet wurde.

Die Nachrichtenpersistenz ist nicht an das WS-RM-Protokoll geknüpft und muss von der WS-RM-Implementierung übernommen werden.

Die WS-RM-Implementierung des AS ABAP sieht vor, dass auf der Consumer-Seite entweder alle oder kein Aufruf einer Transaktion an den Provider gesandt werden. Auf der Provider-Seite wird jeder Aufruf in einer separaten Transaktion ausgeführt. Für jede einzelne Nachricht wird ein COMMIT WORK abgesetzt.

Diese Grafik wird im zugehörigen Text erklärt

Ein Fehler in einer Nachricht bewirkt, dass die Prozessierung der Sequenz abgebrochen wird. Im Fall eines Abbruchs oder Fehlers kann mit Hilfe des Sequenz-Monitors eine Sequenz beendet oder erneut gestartet werden. (siehe: Sequenzen überwachen).

Detaillierte Informationen zu WS-RM finden Sie im OASIS Standard zu  Web Services Reliable Messaging.

Ende des Inhaltsbereichs