WS-Reliable Messaging


WS-Reliable Messaging (kurz WS-RM) ist ein Protokoll, das den zuverlässigen Empfang von SOAP-Nachrichten erlaubt. Möglich macht dies ein zusätzlicher Vermittler, jeweils auf der Seite von Empfänger und Sender. Dabei läuft eine Kommunikation folgendermaßen ab:
  1. Der Sender schickt seine Nachricht an seinen Vermittler (Reliable Messaging Source – RM Source).
  2. Der Vermittler initiiert eine Verbindung mit dem Vermittler des Empfängers (Reliable Messaging Destination – RM Destination) der Nachricht.
  3. Ist die Verbindung aufgebaut wurden, verschickt der Vermittler die vom Sender erhaltene Nachricht an den Vermittler des Empfängers.
  4. Anschließend bestätigt der Vermittler des Empfängers den Erhalt der Nachricht.
  5. Im letzten Schritt stellt der Vermittler des Empfängers die Nachricht dem Empfänger zu.
Der Vermittler übernimmt dabei zwei wichtige Funktionen. Zum einen Mal bestätigt er den Erhalt und zum anderen stellt er sicher, dass der Empfänger die Nachricht auch erhält. Darüber hinaus kann der Empfänger auch sicherstellen, dass die Nachrichten in der Reihenfolge ankommen, in der sie auch verschickt wurden. Dafür existieren vier Liefergarantieren.

Liefergarantien (Delivery assurances )

  1. AtLeastOnce: Jede Nachricht wird mindestens einmal zugestellt. Das bedeutet gleichzeitig auch, dass eine Nachricht mehr als nur einmal zugestellt werden kann, sodass der Empfänger auch Nachrichtenduplikate erhalten kann. Falls eine Nachricht nicht zugestellt werden kann, muss eine Fehlermeldung von einem der Vermittler gemeldet werden.
  2. AtMostOnce: Jede Nachricht wird höchsten einmal zugestellt. Das bedeutet im Umkehrschluss zwar, dass keine Duplikate ankommen darüber hinaus aber auch, dass die Nachricht überhaupt nicht ankommt.
  3. ExactlyOnce: Jeder Nachricht wird genau einmal zugestellt. Falls eine Nachricht nicht zugestellt werden kann, muss einer der Vermittler einen Fehler melden. Eine Nachricht geht nie verloren und kommt auch nicht mehrfach an. Diese Liefergarantie ist das „logische UND“ der beiden oberen Garantien.
  4. InOrder: Die Nachrichten werden vom Empfänger-Vermittler an den Empfänger in der Reihenfolge geschickt, in der sie der Sender an seinen Vermittler verschickt hat. Diese Garantie kann mit den anderen oberen Garantien kombiniert werden.
WS-Reliable Messaging baut auf das Sequenz-Konzept. Konkret bedeutet das, dass Nachrichten von Sender zum Empfänger in Sequenzen „eingepackt“ verschickt werden. Dabei besitzt jede Sequenz eine einzigartige Identifikation (unique identifier – also eine URI). Darüber hinaus hat jede Nachricht eine einzigartige Identifikationsnummer (Message Number) im Kontext ihrer Sequenz. Diese Nachrichtennummer startet bei 1 und wird jeweils um 1 für jede weitere Nachricht erhöht. Durch diese Nummerierung ist es einfach fehlende oder doppelte Nachrichten zu erkennen und vereinfacht zudem die Bestätigungsgeneration und –verarbeitung. Später können dann gleich ganze Bereiche bestätigt werden, sodass nicht jede einzelne Nachricht eine Bestätigung benötigt. Wird z.B. 1-7 und 9-14 bestätigt, dann sind alle Nachrichten von 1 bis 14 angekommen, bis auf die Nachricht mit der Nummer 8. Ein zusätzliches Feld (LastMessage) signalisiert zudem, ob es sich um die versendete Nachricht um die letzte handelt.

Quelle:
  • http://specs.xmlsoap.org/ws/2005/02/rm/ws-reliablemessaging.pdf


Artikel vom 25.02.2014

Kommentare zum Artikel

comments powered by Disqus