Show TOC

HintergrundArten der Message-Übermittlung Dieses Dokument in der Navigationsstruktur finden

 

Es werden zwei Verarbeitungsarten eines Web-Service unterschieden:

  • Synchron

  • Asynchron

Synchrone Kommunikation

Die synchrone Kommunikation kann bei Funktionsaufrufen eingesetzt werden, die die sofortige Rückgabe von Daten an das Sendersystem erfordern.

Der Client schickt eine Message an den Server und wartet, bis er von diesem eine Antwort erhält. Die synchrone Kommunikation arbeitet mit einem einmaligen Funktionsaufruf. Dies setzt voraus, dass zum Zeitpunkt des Aufrufs auch das Empfängersystem aktiv ist und den Aufruf sofort entgegennehmen und weiterverarbeiten kann. 

Nachteil der synchronen Kommunikation ist es, dass sichergestellt werden muss, dass beide Systeme aktiv und ansprechbar sind. Andernfalls kann es zu Störungen der Prozessabläufe kommen. Probleme können insbesondere dann entstehen, wenn das Empfängersystem aus Wartungsgründen, beispielweise im Zuge eines System-Upgrades, über einen längeren Zeitraum nicht verfügbar ist.

Ein synchroner Web-Service benutzt das Request-Response Message Exchange Pattern (MEP). Der Client setzt einen Request ab und wartet auf eine Antwort vom Provider. Während dieser Zeit ist der Client blockiert. Er kann keine weiteren Aufrufe starten. Eine Transportgarantie wird bei synchronen Web-Services nicht angeboten, da der Client durch die Response eine indirekte Bestätigung bekommt, dass der Aufruf erfolgreich durchgeführt wurde. Auch die Transaktionalität ist bei synchronen Web-Services nicht gegeben. Dies bedeutet, dass jeder einzelne Aufruf direkt an den Provider geschickt und dort umgesetzt wird und nicht erst alle Aufrufe gesammelt und anschließend abgeschickt werden. Nachfolgende Aufrufe sind blockiert. Aus diesem Grund wird auch keine Sicherheit der Reihenfolge der Aufrufe gewährleistet.

Features eines synchronen Web-Service:

Feature:

Attribut:

Message Exchange Pattern

Request-Response

Blocking

Ja

Transportgarantie

Nein

Transaktionalität

Nein

Quality of Service

Nein

Asynchrone Kommunikation

Bei der asynchronen Kommunikation muss das Empfängersystem nicht verfügbar sein, wenn ein Funktionsaufruf vom Sendersystem abgesetzt wird. Das Empfängersystem kann den Aufruf auch zu einem späteren Zeitpunkt entgegennehmen und verarbeiten.

Ist ein System beispielsweise wegen eines Upgrades längere Zeit nicht aktiv, kann es die zwischenzeitlich gesendeten Daten auch zu einem späteren Zeitpunkt verarbeiten, ohne dass die Prozesse im Sendersystem gestört werden. Funktionsaufrufe werden in die Ausgangsqueue des Sendersystems gestellt. In regelmäßigen Abständen wird der Aufruf von hier wiederholt, bis er vom Empfängersystem verarbeitet werden kann.

Wird eine Bestellung an ein Lieferantensystem gesendet, hat das Sendersystem keinen Einfluss auf die Verfügbarkeit des Empfängersystems. Ist das Empfängersystem nicht verfügbar, kann das Versenden der Bestellung solange wiederholt werden, bis das Lieferantensystem wieder ansprechbar ist. Asynchrone Kommunikation sollte für Prozesse, die eine sofortige Rückantwort an das Sendersystem verlangen, nicht verwendet werden.

Bei asynchronen Web-Services arbeitet der Client nach dem Absetzen eines Service-Aufrufs weiter, ohne mit einer Blockierung auf die Antwort zu warten. Eine Antwort gibt es beim asynchronen Web-Service nicht, da das OneWay Message Exchange Pattern benutzt wird. Dadurch benötigt der Client allerdings die Sicherheit, dass seine Aufrufe beim Provider ankommen. Daher wird bei asynchronen Web-Services die Transportgarantie angeboten.

Des Weiteren erfolgen die Aufrufe auf der Client-Seite transaktional. Dies bedeutet, dass alle Aufrufe einer Transaktion bis zum Abschluss derselben gesammelt werden. So kann verhindert werden, dass Teile einer Transaktion bereits auf Provider-Seite persistiert werden, obwohl der Rest nicht mehr gesendet werden konnte. Da jeder Aufruf separat an den Provider gesendet wird, kann es vorkommen, dass Message b vor Message a eintrifft.

Um dies auszugleichen, wird Web Services Reliable Messaging eingesetzt. Eine Sequenz umschließt alle Aufrufe einer LUW und versieht sie mit Nummern. Diese werden auf der Provider-Seite ausgewertet. Dadurch wird sicher gestellt, dass Messages einer Sequenz in der richtigen Reihenfolge verarbeitet weden und es nicht zu Fehlern kommt, weil eine Aktion eine andere voraussetzt, die noch nicht eingetreten ist.

Features eines asynchronen Web-Service:

Feature:

Attribut:

Message Exchange Pattern

One Way Message

Blocking

Nein

Transportgarantie

Ja

Transaktionalität

Ja

Quality of Service

Ja (Exactly Once, Exactly Once In Order)