Anfrage zu einem produkt Muster

Angenommen, Sie schreiben ein Frontend für einen Online-Shop. Sie müssten Anfragen stellen, um den Warenkorb zu bekommen, Artikel in den Warenkorb zu legen, Produktdetails zu erhalten, nach einem Produkt zu suchen, alle Produkte aufzulisten usw. Check24 ist ein beliebtes deutsches Internetportal, das Angebote für viele Produkte und Dienstleistungen aggregiert, darunter Versicherungen, Banken, Versorgungsunternehmen, Mobiltelefone und Reisen. Dieser reale Code zeigt das Chain of Responsibility-Muster, in dem mehrere verknüpfte Manager und Führungskräfte auf eine Kaufanfrage reagieren oder sie an einen Vorgesetzten übergeben können. Jede Position kann über eigene Regeln verfügen, die sie genehmigen können. Der Einfachheit halber wird dieses Muster in der Regel auf rein synchrone Weise implementiert, wie bei Webdienstaufrufen über HTTP, bei dem eine Verbindung offen gehalten wird und wartet, bis die Antwort übermittelt wird oder der Timeoutzeitraum abgelaufen ist. Die Anforderungsantwort kann jedoch auch asynchron implementiert werden, wobei eine Antwort zu einem unbekannten späteren Zeitpunkt zurückgegeben wird. Wenn ein synchrones System mit einem asynchronen System kommuniziert, wird es als « Sync over async » oder « sync/async » bezeichnet. [2] Dies ist in EAI-Implementierungen (Enterprise Application Integration) üblich, bei denen langsame Aggregationen, zeitintensive Funktionen oder menschlicher Workflow ausgeführt werden müssen, bevor eine Antwort erstellt und bereitgestellt werden kann. Im folgenden Diagramm sendet die Anwendung eine Anforderung an das Gateway (1). Die Anforderung enthält ein Paket zusätzlicher Anforderungen.

Das Gateway zerlegt diese und verarbeitet jede Anforderung, indem es sie an den entsprechenden Dienst sendet (2). Jeder Dienst gibt eine Antwort an das Gateway zurück (3). Das Gateway kombiniert die Antworten der einzelnen Dienste und sendet die Antwort an die Anwendung (4). Die Anwendung stellt eine einzelne Anforderung und empfängt nur eine einzelne Antwort vom Gateway. Verwenden Sie ein Gateway, um mehrere einzelne Anforderungen in einer einzigen Anforderung zu aggregieren. Dieses Muster ist nützlich, wenn ein Client mehrere Aufrufe an verschiedene Back-End-Systeme ausführen muss, um einen Vorgang auszuführen. In einigen Fällen sind mehr als zwei Anwendungen an einer Transaktion beteiligt, z. B.

ein Käufer, Verkäufer und Versender. In diesem Fall sendet der Käufer eine Anfrage an den Verkäufer, der Verkäufer sendet eine Anfrage an den Versender und der Versender sendet eine Benachrichtigung an den Käufer. Dieses A-zu-B-zu-C-zu-A-Transaktionsmuster kann viele Transaktionen gleichzeitig verarbeiten und benötigt daher einen Mechanismus, um nachzuverfolgen, welche Nachricht wohin geht. Abbildung 13-10 gibt einen Überblick. Verwenden Sie ein Gateway, um die Chatness zwischen dem Client und den Diensten zu reduzieren. Das Gateway empfängt Clientanforderungen, sendet Anforderungen an die verschiedenen Back-End-Systeme, aggregiert dann die Ergebnisse und sendet sie an den anfordernden Client zurück. Wenn sich der BPEL-Prozess auf der Clientseite einer synchronen Transaktion befindet, benötigt er eine Aufrufaktivität. Der Port auf der Clientseite sendet die Anforderung und empfängt die Antwort.

Wie bei allen Partneraktivitäten definiert die WSDL-Datei die Interaktion. Dieser Strukturcode veranschaulicht das Chain of Responsibility-Muster, in dem mehreren verknüpften Objekten (der Kette) die Möglichkeit geboten wird, auf eine Anforderung zu antworten oder sie an das Objekt als nächstes in der Zeile weiterzugeben. Wie bei einer synchronen Transaktion benötigt der BPEL-Prozess, wenn er sich auf der Dienstseite einer asynchronen Transaktion befindet, eine Empfangsaktivität, um die eingehende Anforderung zu akzeptieren, und eine Aufrufaktivität, um entweder die angeforderten Informationen oder einen Fehler zurückzugeben. In einer asynchronen Interaktion mit einer Benachrichtigungszeit sendet ein Client eine Anforderung an einen Dienst und wartet auf eine Antwort, obwohl eine Benachrichtigung nach Ablauf eines Zeitgebers gesendet wird. Der Client wartet weiterhin auf die Antwort vom Dienst, auch nachdem der Timer abgelaufen ist. Abbildung 13-5 gibt einen Überblick. Um eine einzelne Aufgabe auszuführen, muss ein Client möglicherweise mehrere Aufrufe an verschiedene Back-End-Dienste durchführen.

This entry was posted in Non classé by karen. Bookmark the permalink.