Realisierungsmöglichkeiten einer parallelen Verarbeitung

Sie haben einige Objekte, die parallel und unabhängig voneinander bearbeitet werden können und sollen.

In diesem Abschnitt werden drei Konzepte miteinander verglichen, um Ihnen eine Entscheidungshilfe für Ihr weiteres Vorgehen zu geben:

Tabellengesteuerte, dynamische Parallelverarbeitung

Paralleler Abschnitt

Arbeitsvorrat

Die zu bearbeitenden Objekte sind alle vom selben Typ.

Die zu bearbeitenden Objekte dürfen von unterschiedlichem Typ sein.

Die Objekte im Arbeitsvorrat dürfen von unterschiedlichem Typ sein.

Alle Objekte werden mit derselben Aufgabe, die einmal für die gesamte Liste festgelegt wird, bearbeitet. Diese Aufgabe kann sein:

Einzelschrittaufgabe mit Dialog.

Einzelschrittaufgabe ohne Dialog.

Mehrschrittaufgabe.

Jedes Objekt wird in "seinem" parallelen Abschnitt jeweils individuell, auch in mehreren Schritten, bearbeitet.

Die Objekte werden jeweils mit einer individuell zugeordneten Einzelschrittaufgabe bearbeitet. Die Einzelschrittaufgabe kann auch für alle Objekte dieselbe sein. Diese Aufgaben können sein:

Einzelschrittaufgabe mit Dialog.

Einzelschrittaufgabe ohne Dialog.

Die Objektliste muß für alle Objekte abgearbeitet werden, ehe der nächste Schritt im Workflow ausgeführt werden kann.

Abhängig von der Definition des Parallelen Abschnitts müssen nicht alle Zweige durchlaufen werden (n aus m-Logik).

Der Arbeitsvorrat muß für alle Objekte abgearbeitet werden, ehe der nächste Schritt im Workflow ausgeführt werden kann.

Der Umfang der Objektliste (= Anzahl der zu bearbeitenden Objekte) steht zur Definitionszeit noch nicht fest.

Die Anzahl der zu bearbeitenden Objekte steht zur Definitionszeit fest.

Der Umfang des Arbeitsvorrates (= Anzahl der zu bearbeitenden Objekte) steht zur Definitionszeit noch nicht fest.

Die Objektliste steht in einem mehrzeiligen Containerelement zur Verfügung.

Die Objekte stehen zur Laufzeit in den verschiedenen Containerelementen des Workflow-Containers zur Verfügung.

Der Arbeitsvorrat wird von Seiten der Anwendung außerhalb des Workflows als Liste mit Objekt-Aufgaben-Paaren zusammengestellt und als Arbeitsvorrat-Workitem (Typ A) bearbeitet.

Der Arbeitsvorrat kann als Ganzes noch zur Laufzeit bearbeitet werden: Möglich sind das Entfernen von Objekten aus der Liste, das Hinzufügen von Objekten und die Statusverfolgung bzgl. der Bearbeitung der einzelnen Einträge.

Für jedes Objekt aus der Liste wird zur Laufzeit ein Dialog-, Hintergrund- oder Workflow-Workitem (Typ W, B oder F) erzeugt, das in der üblichen Weise abgearbeitet wird.

Für jeden Schritt des parallelen Abschnitten wird zur Laufzeit ein entsprechendes Workitem erzeugt, das in der üblichen Weise abgearbeitet wird.

Für jedes Objekt aus dem Arbeitsvorrat, das mit einer Dialogaufgabe bearbeitet wird, wird zur Laufzeit ein Dialog-Workitem (Typ W) erzeugt, das in der üblichen Weise abgearbeitet wird.

Für jedes Objekt aus dem Arbeitsvorrat, das mit einer Hintergrundaufgabe bearbeitet wird, wird zur Laufzeit kein Hintergrund-Workitem (Typ B) erzeugt. Vielmehr werden aus Performance-Gründen die zugrundeliegenden Objektmethoden unmittelbar und sequentiell ausgeführt.

Terminüberwachung, Rollenzuordnung und Datenfluß können einmal definiert werden und sind dann für jedes erzeugte Workitem gleichermaßen gültig.

Terminüberwachung, Rollenzuordnung und Datenfluß werden individuell in der üblichen Weise definiert.

Terminüberwachung wird für den Arbeitsvorrat insgesamt definiert und dann an die einzelnen Dialog-Workitem, die sich aus dem Arbeitsvorrat ergeben, vererbt.

Die Empfänger können dem Arbeitsvorrat als Parameter mitgegeben werden und sind dann für alle Dialog-Workitem gültig, die sich aus dem Arbeitsvorrat ergeben. Wenn die einzelnen Aufgaben im Arbeitsvorrat mit Defaultrollen definiert sind, werden diese aufgelöst.

Ein Datenfluß zwischen Workflow-Container und den einzelnen Aufgaben im Arbeitsvorrat kann nicht explizit definiert werden, sondern wird automatisch vom System ausgeführt. Dazu müssen alle evtl. vorhandenen Elemente aus allen Aufgabencontainern jeweils namensgleich im Workflow-Container enthalten sein.