Der Mustercode 'SCA Nodes' besteht aus zwei Nachrichtenflüssen, die folgende Aktionen ausführen:
Der erweiterte Mustercode weist einen zusätzlichen Nachrichtenfluss auf, der folgende Aktion ausführt:
Im folgenden Übersichtsdiagramm werden die Beziehungen zwischen den Nachrichtenflüssen in WebSphere Message Broker und dem Geschäftsprozess in WebSphere Process Server veranschaulicht.
Dieser einfache Nachrichtenfluss enthält die folgenden Knoten:
Der Broker empfängt über den HTTP-Transport eine Anforderung in Form einer URI von einem Browser-Client.
Der JavaCompute-Knoten führt folgende Aktionen aus:
Wählen Sie im Browser-Client den Typ der Überweisungsanforderung aus, geben Sie den Geldbetrag ein, der überwiesen werden soll, und klicken Sie auf Übergeben.
Durch die Übergabe des Formulars werden diese Eigenschaftswerte über HTTP an einen anderen Nachrichtenfluss gesendet, der am HTTP-Port empfangsbereit ist.
Dieser Nachrichtenfluss enthält die folgenden Knoten:
Der Nachrichtenfluss empfängt die Eigenschaftswerte als MIME-Nachrichtenteile.
Ein JavaCompute-Knoten verarbeitet diese Eigenschaftswerte, indem er aus dem Betrag eine XML-Anforderungsnachricht erstellt und die SCA-Operation der lokalen Umgebung mit dem Typ der Überweisungsanforderung überschreibt.
Die Anforderungskennung wird in den Benutzerkontext kopiert, sodass sie nicht verloren geht, wenn die Antwortnachricht beim Knoten 'SCA Asynchronous Response' ankommt. Diese Kennung ist für die Rückantwort an den anfordernden Client erforderlich.
Die Überweisung kann in diesem Stadium auch validiert werden. Wenn ein ungültiger Betrag oder kein Betrag angegeben wird, wird die Ausnahmebedingung 'MbUserException' generiert. Wenn die Validierung fehlschlägt, wird die Benutzerausnahmebedingung über das Fehlerterminal weitergegeben. Die Ausnahmebedingungsnachricht wird in eine Antwortnachricht an den anfordernden Client eingefügt. Klicken Sie auf OK, um zum Banküberweisungsformular weitergeleitet zu werden, sodass ein korrekter Betrag angegeben werden kann.
Wenn die Validierung erfolgreich ist, wird die XML-Nachricht mit der Überweisungsanforderung an einen SCAAsyncRequest-Knoten weitergeleitet. Dieser Knoten sendet die Nachricht an den angegebenen SCA-Service, der per Hosting von WebSphere Process Server bereitgestellt wird. Dieser SCA-Service enthält die Geschäftslogik für die Verarbeitung des Sparkontos.
Nachdem die Anforderung verarbeitet wurde, wird eine XML-Antwortnachricht für die Überweisung an WebSphere Message Broker zurückgesendet, wo sie vom entsprechenden SCAAsyncResponse-Knoten verarbeitet wird. Wenn die Banküberweisungsanforderung erfolgreich verarbeitet wurde, wird der neue Kontostand des Sparkontos in die Antwortnachricht eingefügt. Wenn die Banküberweisungsanforderung nicht erfolgreich war, wird der vorherige Kontostand des Sparkontos verwendet.
Die Anforderungskennung wird auch von der lokalen Umgebung abgerufen und in den Zielordner kopiert, sodass die Antwortnachricht an den anfordernden Client zurückgesendet werden kann.
Das Sparkonto wird per Hosting in WebSphere Process Server bereitgestellt. Es umfasst folgende Komponenten:
Diese Komponenten sind in einem Assemblierungsdiagramm miteinander verbunden:
Die Implementierung des Geschäftsprozesses ist in zwei Teile aufgeteilt, die den zwei Operationsanforderungen entsprechen:
Wenn die eingehende XML-Nachrichtenanforderung die Überweisung von Geld auf das Sparkonto anfordert, werden die Geschäftsprozessvariablen über diese Nachricht initialisiert. Der Kontostand des Sparkontos wird über eine Java-Schnittstelle aus einer Datei gelesen und dem Konto wird der angeforderte Betrag gutgeschrieben. Dieser neue Kontostand wird dann wieder über die Java-Schnittstelle in die Datei geschrieben und es wird eine Nachrichtenantwort mit den relevanten Werten aus den Geschäftsprozessvariablen erstellt und an das aufrufende Programm zurückgesendet.
Wenn die eingehende XML-Nachrichtenanforderung die Überweisung von Geld auf das Girokonto anfordert, werden die Geschäftsprozessvariablen über diese Nachricht initialisiert. Der Kontostand des Sparkontos wird über eine Java-Schnittstelle aus einer Datei gelesen und das Konto wird mit dem angeforderten Betrag belastet. Wenn der neue Kontostand größer-gleich null ist, wird der neue Kontostand über die Java-Schnittstelle wieder in die Datei geschrieben. Wenn der neue Kontostand kleiner als null ist, bleibt der vorherige Kontostand in der Datei. Es wird eine Nachrichtenantwort mit den relevanten Werten aus den Geschäftsprozessvariablen erstellt und an das aufrufende Programm zurückgesendet.