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: Aufgabe mit Dialog Aufgabe ohne Dialog Workflow |
Jedes Objekt wird in "seinem" parallelen Abschnitt jeweils individuell, auch in mehreren Schritten, bearbeitet. |
Die Objekte werden jeweils mit einer individuell zugeordneten Aufgabe bearbeitet. Die Aufgabe kann auch für alle Objekte dieselbe sein. Diese Aufgaben können sein: Aufgabe mit Dialog Aufgabe ohne Dialog |
|
Die Objektliste muss entweder komplett abgearbeitet werden oder bis die angegebene Endebedingung erfüllt ist. |
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 Arbeitsvorrats-Workitem 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 Workitem erzeugt, das in der üblichen Weise abgearbeitet wird. Bei einer dynamischen Parallalität einer Aktivität handelt es sich um ein Dialog-, Hintergrund- oder Workflow-Workitem. Bei einem dynamischen Parallelität an einem Block um ein Block-Workitem. |
Für jeden Schritt des parallelen Abschnitten wird zur Laufzeit ein entsprechendes Workitem erzeugt, das in der üblichen Weise abgearbeitet wird. |
Für jeden Eintrag aus dem Arbeitsvorrat, der mit einer Dialogaufgabe bearbeitet wird, wird zur Laufzeit ein Dialog-Workitem erzeugt, das in der üblichen Weise abgearbeitet wird. Für jeden Eintrag aus dem Arbeitsvorrat, der mit einer Hintergrundaufgabe bearbeitet wird, wird die zugrundeliegende Objektmethoden unmittelbar und sequentiell ausgeführt. Es wird kein Hintergrund-Workitem erzeugt. |
|
Terminüberwachung, Regeln zur Bearbeiterermittlung und Datenfluß können einmal definiert werden und sind dann für jedes erzeugte Workitem gleichermaßen gültig. |
Terminüberwachung, Regeln zur Bearbeiterermittlung und Datenfluß werden individuell in der üblichen Weise definiert. |
Terminüberwachung wird für den Arbeitsvorrat insgesamt definiert und dann an die einzelnen Dialog-Workitems, 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-Workitems gültig, die sich aus dem Arbeitsvorrat ergeben. Wenn die einzelnen Aufgaben im Arbeitsvorrat mit Defaultregeln definiert sind, werden diese aufgelöst. Ein Datenfluß zwischen Workflow-Container und den Aufgabencontainern der 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. |