AWS Flow FrameworkGrundbegriffe: Anwendungsstruktur - AWS Flow Framework für Java

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS Flow FrameworkGrundbegriffe: Anwendungsstruktur

Eine AWS Flow Framework-Anwendung besteht konzeptionell aus drei grundlegenden Komponenten: Workflow-Starter, Workflow-Worker und Activity-Worker. Eine oder mehrere Host-Anwendungen sind dafür verantwortlich, die Worker (Workflow und Aktivität) bei Amazon SWF zu registrieren, die Worker zu starten und die Säuberung durchzuführen. Die Worker setzen die Mechaniken der Workflow-Ausführung um und können auf verschiedenen Hosts implementiert werden.

Dieses Diagramm zeigt eine grundlegende AWS Flow Framework-Anwendung:

SchematischeAWS Flow Framework Anwendung
Anmerkung

Die Implementierung dieser Komponenten in drei getrennten Anwendungen ist konzeptionell praktisch. Sie können jedoch Anwendungen erstellen, um diese Funktionalität auf verschiedene Weise zu implementieren. Es ist zum Beispiel möglich, eine einzelne Host-Anwendung für die Aktivitäts- und Workflow-Worker oder getrennte Aktivitäts- und Workflow-Hosts zu verwenden. Sie können auch mehrere Aktivitäts-Worker jeweils eine unterschiedliche Reihe von Aktivitäten auf getrennten Hosts ausführen lassen und Ähnliches.

Die dreiAWS Flow Framework Komponenten interagieren indirekt, indem sie HTTP-Anfragen an Amazon SWF senden, das die Anfragen verwaltet. Amazon SWF folgenden Aktionen aus:

  • Er verwaltet eine oder mehrere Entscheidungsaufgabenlisten, mit denen die nächsten Schritte festgelegt werden, die ein Workflow-Worker ausführen soll.

  • Er verwaltet eine oder mehrere Aktivitätsaufgabenlisten, mit denen die nächsten Aufgaben festgelegt werden, die ein Aktivitäts-Worker ausführen soll.

  • Führt einen detaillierten step-by-step Verlauf der Ausführung des Workflows.

Mit demAWS Flow Framework muss sich Ihr Anwendungscode nicht direkt mit vielen der in der Abbildung gezeigten Details befassen, z. B. mit dem Senden von HTTP-Anfragen an Amazon SWF. Sie rufen einfach AWS Flow Framework-Methoden auf und das Framework übernimmt im Hintergrund die Details.

Rolle des Aktivitäts-Workers

Der Aktivitäts-Worker führt die verschiedenen Aufgaben durch, die der Workflow bewerkstelligen muss. Er besteht aus Folgendem:

  • Der Aktivitätsimplementierung. Diese enthält eine Reihe von Aktivitätsmethoden, die bestimmte Aufgaben für den Workflow ausführen.

  • Ein ActivityWorkerObjekt, das lange HTTP-Abfrageanfragen verwendet, um Amazon SWF nach auszuführenden Aktivitätsaufgaben abzufragen. Wenn eine Aufgabe benötigt wird, antwortet Amazon SWF auf die Anfrage, indem es die Informationen sendet, die für die Ausführung der Aufgabe erforderlich sind. Das ActivityWorkerObjekt ruft dann die entsprechende Aktivitätsmethode auf und gibt die Ergebnisse an Amazon SWF zurück.

Rolle des Workflow-Workers

Der Workflow-Workers orchestriert die Ausführung der verschiedenen Aktivitäten, verwaltet den Datenfluss und verarbeitet fehlgeschlagene Aktivitäten. Er besteht aus Folgendem:

  • Der Workflow-Implementierung. Diese enthält die Logik zur Aktivitätsorchestrierung, verarbeitet fehlgeschlagene Aktivitäten und so weiter.

  • Einem Aktivitäts-Client. Dieser fungiert als Proxy für den Aktivitäts-Worker und ermöglicht dem Workflow-Worker, eine asynchrone Ausführung von Aktivitäten zu planen.

  • Ein WorkflowWorkerObjekt, das lange HTTP-Abfrageanfragen verwendet, um Amazon SWF nach Entscheidungsaufgaben abzufragen. Wenn die Workflow-Aufgabenliste Aufgaben enthält, reagiert Amazon SWF auf die Anfrage, indem es die Informationen zurückgibt, die für die Ausführung der Aufgabe erforderlich sind. Das Framework führt dann den Workflow zur Ausführung der Aufgabe aus und gibt die Ergebnisse an Amazon SWF zurück.

Rolle des Workflow-Starters

Der Workflow-Starter startet eine Workflow-Instance, auch Workflow-Ausführung genannt. Er kann während der Ausführung mit einer Instance interagieren, um zusätzliche Daten an den Workflow-Worker zu übergeben oder den aktuellen Workflow-Status abzufragen.

Der Workflow-Starter startet die Workflow-Ausführung mithilfe eines Workflow-Clients. Er interagiert mit dem Workflow nach Bedarf während der Workflow-Ausführung und führt die Bereinigung durch. Der Workflow-Starter könnte eine lokal ausgeführte Anwendung, eine Webanwendung, dieAWS CLI oder sogar die seinAWS Management Console.

So interagiert Amazon SWF mit Ihrer Anwendung

Amazon SWF vermittelt die Interaktion zwischen den Workflow-Komponenten und führt einen detaillierten Workflow-Verlauf. Amazon SWF initiiert keine Kommunikation mit den Komponenten. Es wartet auf HTTP-Anfragen von den Komponenten und verwaltet die Anfragen nach Bedarf. Beispiel:

  • Wenn die Anfrage von einem Worker stammt, der nach verfügbaren Aufgaben fragt, reagiert Amazon SWF direkt an den Worker, wenn eine Aufgabe verfügbar ist. Weitere Informationen zur Funktionsweise von Abfragen finden Sie unter Abfragen von Aufgaben im Amazon Simple Workflow Service – Entwicklerhandbuch.

  • Wenn es sich bei der Anfrage um eine Benachrichtigung eines Aktivitätsarbeiters handelt, dass eine Aufgabe abgeschlossen ist, zeichnet Amazon SWF die Informationen in der Ausführungshistorie auf und fügt der Entscheidungsaufgabenliste eine Aufgabe hinzu, um den Workflow-Worker darüber zu informieren, dass die Aufgabe abgeschlossen ist, sodass er mit dem nächsten Schritt fortfahren kann.

  • Wenn die Anfrage vom Workflow-Worker zur Ausführung einer Aktivität stammt, zeichnet Amazon SWF die Informationen in der Ausführungshistorie auf und fügt der Aufgabenliste der Aktivitäten eine Aufgabe hinzu, um einen Aktivitätsarbeiter anzuweisen, die entsprechende Aktivitätsmethode auszuführen.

Dieser Ansatz ermöglicht es Mitarbeitern, auf jedem System mit einer Internetverbindung zu arbeiten, einschließlich Amazon EC2 EC2-Instances, Unternehmensrechenzentren, Client-Computern usw. Es muss nicht einmal dasselbe Betriebssystem ausgeführt werden. Da die HTTP-Anforderungen von den Workern stammen, sind keine extern sichtbaren Ports erforderlich. Worker können sogar hinter einer Firewall ausgeführt werden.

Weitere Informationen

Eine ausführlichere Erläuterung der Funktionsweise von Amazon SWF finden Sie im Amazon Simple Workflow Service Developer Guide.