Archyno
BPMNNotationsreferenz

BPMN-Gateways

Rauten, und die Markierung in jeder einzelnen. Ein Gateway leistet nie Arbeit - es entscheidet nur, wie viele der ausgehenden Pfade einen Token tragen, und genau darum dreht sich jeder Streit über einen Prozess in Wahrheit.

14 Min. LesezeitBPMN 2.03 von 7

Die kurze Antwort

  • Ein Gateway leistet keine Arbeit. Es ist das Einzige in BPMN, das die Zahl der lebenden Token ändert - alles Weitere folgt daraus.
  • Exklusiv nimmt genau einen ausgehenden Pfad, parallel nimmt bedingungslos alle, inklusiv nimmt jeden Pfad, dessen Bedingung wahr ist.
  • Ein ereignisbasiertes Gateway entscheidet nichts - es wartet, das zuerst eintretende Ereignis gewinnt, die anderen werden verworfen.
  • Zu jeder Verzweigung gehört eine Zusammenführung derselben Art. Inklusiv verzweigt in parallel zusammengeführt ist der klassische Deadlock; parallel verzweigt in exklusiv zusammengeführt lässt alles Nachfolgende zweimal laufen.
Ein BPMN-Prozess mit Gateways. Nach einem Startereignis Schaden eingegangen teilt ein paralleles Gateway in eine Aufgabe Police prüfen und eine Aufgabe Betrug prüfen. Ein zweites paralleles Gateway führt sie zusammen, dann teilt ein exklusives Gateway mit der Beschriftung gedeckt in eine Aufgabe Regulieren im Ja-Zweig und eine Aufgabe Ablehnen im Nein-Zweig.
Zwei Gateway-Arten. Das Plus teilt in Pfade, die alle laufen, und das passende Plus wartet auf beide; das Kreuz wählt genau einen Zweig, und danach gibt es nichts zu warten.

01Ein Gateway ist eine Regel über Token#

BPMNs Ausführungsmodell ist ein Token, das durch das Diagramm wandert. Ein Gateway ist das Einzige, was die Anzahl der Token verändert: eine Verzweigung kann aus einem Token mehrere machen, eine Zusammenführung mehrere wieder zu einem. Alles Weitere über Gateways folgt daraus.

Eine Anmerkung zum Namen. Die Spezifikation sagt Gateway; die meisten sagen Gate und suchen danach. Es ist dasselbe, und die Raute ist dieselbe Raute - aber in einen Diagrammtitel gehört Gateway, denn das ist das Wort, nach dem jedes BPMN-Werkzeug und jeder Reviewer liest.

Zwei Konsequenzen sind es wert, festgehalten zu werden. Erstens leistet ein Gateway keine Arbeit - es wertet Bedingungen aus, die bereits berechnet wurden, und wenn etwas geprüft werden soll, ist das eine Aufgabe vor dem Gateway. Zweitens braucht eine Verzweigung meist eine passende Zusammenführung derselben Art, denn was zusätzliche Token erzeugt hat, muss sie wieder zusammenführen, sonst laufen sie getrennt bis zum Ende.

02Die fünf Arten#

ElementNotationWas es bedeutet
Exklusiv (XOR)Raute mit X, oder leerGenau ein ausgehender Pfad wird genommen. Die Bedingungen werden der Reihe nach ausgewertet und die erste wahre gewinnt. Die Standardwahl und die, zu der man zuerst greift.
Parallel (AND)Raute mit +Jeder ausgehende Pfad wird genommen, ganz ohne Bedingungen. Als Zusammenführung wartet es auf jeden eingehenden Pfad, bevor es weitergeht.
Inklusiv (OR)Raute mit KreisJeder Pfad, dessen Bedingung wahr ist, wird genommen - einer, mehrere oder alle. Als Zusammenführung wartet es genau auf die aktivierten Pfade, was cleverer ist, als es klingt, und woher die Deadlocks kommen.
EreignisbasiertFünfeck im DoppelringEntscheidet nicht - wartet. Der Pfad, dessen Ereignis zuerst eintritt, wird genommen, die anderen werden verworfen.
KomplexRaute mit SternchenEin Notausgang für Regeln, die die anderen vier nicht ausdrücken - „weiter, wenn drei von fünf Freigaben da sind“. Selten, und meist ein Zeichen, dass der Prozess umgebaut gehört.

03Verzweigen, Zusammenführen und Join#

Dasselbe Symbol macht beide Aufgaben, und welche gerade, hängt nur davon ab, ob es mehr ausgehende oder mehr eingehende Flüsse hat. Ein Gateway mit einem Eingang und drei Ausgängen verzweigt; drei hinein und einer hinaus führt zusammen.

Das Vokabular lohnt sich festzulegen, denn für den zusammenlaufenden Fall gibt es drei Wörter. Ein zusammenlaufendes paralleles Gateway ist ein Join: es wartet auf jeden Zweig. Ein zusammenlaufendes exklusives Gateway ist ein Merge: es wartet auf nichts und lässt jedes Token durch. Beide werden als dieselbe Raute gezeichnet wie beim Verzweigen, und einen Merge einen Join zu nennen ist der Weg, auf dem ein Diagramm Arbeit als erledigt ausweist, die nie lief.

ElementNotationWas es bedeutet
Exklusiver Mergemehrere hinein, einer hinausLässt jedes Token direkt durch, sobald es ankommt. Er wartet nicht, denn es wurde ohnehin nur ein Zweig genommen.
Paralleler Join (AND-Join)mehrere hinein, einer hinausWartet auf jeden eingehenden Pfad und gibt dann ein Token aus. Dies ist das, was blockiert, und es sollte absichtlich blockieren. Es ist die Konstruktion, die in BPMN üblicherweise mit Join gemeint ist.
Inklusiver Mergemehrere hinein, einer hinausWartet genau auf die Zweige, die vorher aktiviert wurden. Verlangt, dass die Engine über den ganzen Prozess nachdenkt, und ist die Konstruktion, die sich zwischen Werkzeugen am unterschiedlichsten verhält.
Gemischtes Gatewaymehrere hinein, mehrere hinausZulässig. Unlesbar. Verzweigen Sie mit einem Gateway und führen Sie mit einem zweiten zusammen, dann sagt Ihnen das Diagramm selbst, was es tut.

04Token zählen im Diagramm oben#

Alles aus den beiden Abschnitten oben ist eine Fertigkeit: Finger auf das Startereignis legen und zählen. Hier ist der Schadensprozess vom Kopf dieser Seite, Schritt für Schritt durchgegangen, mit der Zahl lebender Token nach jedem Schritt.

  1. „Claim received“ tritt ein. Ein Token. Es sitzt auf dem Fluss in das erste Gateway.
  2. Die parallele Verzweigung. Zwei Token. Es werden keine Bedingungen ausgewertet und nichts gewählt - eine parallele Verzweigung gibt immer ein Token pro ausgehendem Fluss aus.
  3. Policenprüfung und Betrugsprüfung laufen. Weiterhin zwei. Sie sind wirklich nebenläufig: das Diagramm behauptet nichts darüber, welche zuerst fertig ist, und muss es auch nicht.
  4. Der parallele Join. Zurück auf eins. Das zuerst ankommende Token wartet dort. Kommt das zweite, verbraucht der Join beide und gibt eines aus.
  5. „Covered?“ Ein Token, ein Zweig. Ein exklusives Gateway ändert die Anzahl nie - nur, auf welchem Fluss das Token liegt.
  6. Regulieren oder ablehnen, dann das Ende. Null. Die Prozessinstanz ist fertig, wenn das letzte Token von einem Endereignis verbraucht wird.

Jetzt machen Sie es absichtlich kaputt, denn beide klassischen Fehler sind allein am Zählstand sichtbar.

Machen Sie das erste Gateway exklusiv und lassen Sie den Join parallel. Die Verzweigung gibt jetzt ein Token aus, also läuft eine Prüfung. Der parallele Join wartet weiterhin auf zwei. Auf dem zweiten Fluss kommt nie etwas an, und der Schaden bleibt für die Lebensdauer des Systems im Join stehen. Das ist der Deadlock, und er kostete eine geänderte Markierung.

Lassen Sie die Verzweigung parallel und machen Sie den Join exklusiv. Zwei Token kommen an, und ein exklusiver Merge wartet auf nichts, also gehen beide direkt durch. „Covered?“ wird zweimal ausgewertet, die Reguliersaufgabe läuft zweimal, und der Kunde wird zweimal bezahlt. Das ist schlimmer als der Deadlock, denn ein Deadlock meldet sich selbst und eine Doppelzahlung nicht.

05Das ereignisbasierte Gateway#

Ein ereignisbasiertes Gateway. Nach einer Aufgabe Dokumente anfordern führt ein ereignisbasiertes Gateway zu zwei eintretenden Ereignissen: einem Nachrichtenereignis Dokumente eingegangen und einem Zeitgeber über vierzehn Tage. Der Nachrichtenpfad führt weiter zu einer Aufgabe Schaden bewerten; der Zeitgeberpfad zu einer Aufgabe Als unvollständig schliessen.
Hier wird nichts entschieden. Das Gateway wartet, die beiden Ereignisse laufen um die Wette, und das zuerst eintretende nimmt seinen Pfad, während das andere verworfen wird.

Das ist die Konstruktion, die „wir warten auf die Unterlagen, aber nicht ewig“ in einem Bild ausdrückbar macht. Jede andere Art, das zu zeichnen - ein Timer-Randereignis an einer Warteaufgabe, eine Schleife mit Bedingung - verdoppelt entweder die Timeout-Logik oder versteckt sie.

Zwei Regeln gehören dazu. Die Ziele eines ereignisbasierten Gateways müssen eintretende Zwischenereignisse oder Receive-Aufgaben sein, nie einfache Aufgaben: das Gateway ist ein Rennen zwischen Dingen, die ankommen, und eine Aufgabe kommt nicht an. Und die Zweige müssen zeitlich wirklich exklusiv sein, was sie automatisch sind - das zuerst eintretende verwirft die übrigen.

06Bedingungen und Standardflüsse#

Bedingungen leben an den ausgehenden Sequenzflüssen, nicht am Gateway. Schreiben Sie sie als kurze Ausdrücke, die ein Leser auswerten kann - amount > 10000, policy status = active - und setzen Sie sie näher an das Gateway als an das Ziel.

Genau ein Zweig eines verzweigenden Gateways sollte der Standardfluss sein, gezeichnet mit einem kleinen Strich über dem Ende. Er wird genommen, wenn keine andere Bedingung gilt, und er verhindert, dass ein Prozess an einem Gateway stehen bleibt, weil die Daten etwas waren, womit niemand gerechnet hat.

Dazu greifen, wenn

  • Exklusiv, wenn genau ein Pfad zutrifft - meistens
  • Parallel, wenn beide Pfade laufen müssen und keiner vom anderen abhängt
  • Ereignisbasiert, wenn der Prozess wartet und etwas von außen entscheidet
  • Ein Standardfluss an jedem verzweigenden exklusiven oder inklusiven Gateway

Zu etwas anderem greifen, wenn

  • Inklusiv, wo exklusiv genügt - es kostet Klarheit und bringt Deadlock-Risiko
  • Komplex, fast immer - bauen Sie stattdessen um
  • Ein Gateway direkt nach einem Gateway ohne etwas dazwischen
  • Bedingungen als Prosaabsätze in der Flussbeschriftung

07Wenn die Antwort gar kein Gateway ist#

Wer Gateways gelernt hat, greift für jede Verzweigung der Welt danach, und das Ergebnis ist ein Diagramm, das zu 40 % aus Rauten besteht. Vier andere BPMN-Konstrukte drücken eine Entscheidung in den folgenden Fällen besser aus, und sie zu kennen ist der halbe Unterschied zwischen einem Prozessmodell, das auf eine Seite passt, und einem, das es nicht tut.

ElementNotationWas es bedeutet
Bedingter Sequenzflusskleine Raute am Anfang eines FlussesEine Bedingung direkt an einem Fluss, der eine Aufgabe verlässt, ohne Gateway. Richtig für einen optionalen Schritt - „Beleg senden, falls der Kunde einen wollte“ - und falsch, sobald es zwei davon gibt, denn es gibt keinen Platz für einen Standardfluss und nichts hindert beide am Auslösen.
Randereignisein Kreis am Rand einer AufgabeFür etwas, das laufende Arbeit unterbricht: ein Timeout, ein Fehler, ein Abbruch. Ein Gateway kann seine Frage nur zwischen zwei Aufgaben stellen, „wenn das auf halbem Weg fehlschlägt“ damit zu modellieren heißt also, eine Polling- Schleife zu erfinden, die es nicht gibt.
Ereignis-Subprozessein gepunktetes abgerundetes RechteckFür etwas, das an jeder Stelle des Prozesses passieren kann statt an einer bekannten - der Kunde storniert, die Aufsicht fordert die Akte an. Das mit Gateways zu zeichnen bedeutet ein Gateway nach jeder einzelnen Aufgabe.
Business-Rule-Aufgabeeine Aufgabe mit TabellenmarkerWenn die Entscheidung vierzig Regeln statt einer Frage ist. Eine Aufgabe, die auf eine Entscheidungstabelle zeigt, sagt „das entscheiden die Preisregeln“ und lässt die Regeln dort, wo sie ohne Neuzeichnen des Prozesses änderbar sind.

Vier Arten, eine Entscheidung auszudrücken, die keine Raute sind. Jede hält etwas vom Diagramm fern, das ein Gateway daraufgezogen hätte.

Der Test ist, ob die Verzweigung Teil des Prozesses oder Teil einer Entscheidung ist. Ein Schaden, der in die Schnellbearbeitung oder in die manuelle Prüfung geht, ist Prozess: die beiden Pfade sehen unterschiedlich aus und ein Leser muss beide sehen. In welches von neun Risikobändern ein Schaden fällt, ist eine Entscheidung: die Pfade sind danach identisch, und es aufs Diagramm zu nehmen kostet acht Rauten für eine Aussage. Siehe ein BPMN-Diagramm zeichnen dazu, wo diese Grenze in der Praxis meist liegt.

08Häufige Fehler#

  1. Parallele Verzweigung, exklusiver Merge. Die Verzweigung erzeugte zwei Token; der exklusive Merge lässt beide durch, und alles danach passiert zweimal.
  2. Inklusive Verzweigung, paralleler Join. Der Deadlock von oben. Passen Sie Ihre Gateways aneinander an.
  3. Arbeit im Gateway. Eine Raute mit der Aufschrift „Prüfen und weiterleiten“ ist eine Aufgabe und ein Gateway in einem Umriss. Trennen Sie sie.
  4. Unbeschriftete Zweige. Zwei Linien, die eine Raute verlassen, ohne dass etwas daran steht, lassen den Leser raten, und die Hälfte rät falsch.
  5. Kein Standardfluss. Die eine Eingabe, an die niemand gedacht hat, kommt an, und das Token hat keinen Weg.
  6. Einfache Aufgaben nach einem ereignisbasierten Gateway. Nicht zulässig, und meist war ein exklusives Gateway gemeint.

Gateways und Ereignisse sind die beiden Hälften der BPMN-Ablaufsteuerung: Gateways entscheiden, Ereignisse warten und unterbrechen. Ein nur mit Gateways modellierter Prozess wächst zu langen Polling-Ketten; einer, der Randereignisse dort nutzt, wo er sollte, bleibt sehr viel näher an dem, was tatsächlich passiert.

In je einer Zeile

  1. 01Ein Gateway ändert, wie viele Token existieren, und leistet selbst keine Arbeit.
  2. 02Exklusiv wählt einen Pfad, parallel nimmt alle, inklusiv nimmt die wahren.
  3. 03Das ereignisbasierte Gateway entscheidet nicht - es lässt eintretende Ereignisse um die Wette laufen.
  4. 04Zu jeder Verzweigung gehört eine Zusammenführung derselben Art.
  5. 05Inklusive Verzweigung in einen parallelen Join ist der klassische Deadlock.
  6. 06Benennen Sie das Gateway als Frage und beschriften Sie jeden Zweig mit einer Antwort.

09Häufige Fragen#

Was unterscheidet ein exklusives von einem inklusiven Gateway?

Ein exklusives Gateway, mit einem X markiert, nimmt genau einen ausgehenden Pfad. Ein inklusives Gateway, mit einem Kreis markiert, wertet jede ausgehende Bedingung aus und nimmt alle, die wahr sind - das können eine, mehrere oder alle sein.

Was tut ein paralleles Gateway?

Ein paralleles Gateway, mit einem Plus markiert, nimmt bedingungslos jeden ausgehenden Pfad, denn es hat keine Bedingungen auszuwerten. Als Zusammenführung wartet es auf einen Token an jedem eingehenden Pfad, bevor es weitergeht - so modelliert man, dass alle Zweige fertig sind.

Was ist ein ereignisbasiertes Gateway?

Ein Gateway, dessen ausgehende Pfade jeweils mit einem fangenden Zwischenereignis beginnen, wobei das zuerst eintretende Ereignis entscheidet, welcher Pfad genommen wird. So modelliert man ein Wettrennen, etwa eine Antwort oder ein Timeout, je nachdem was zuerst eintrifft.

Warum gerät ein inklusives Gateway in einen Deadlock?

Weil eine inklusive Zusammenführung genau auf die Zweige wartet, die ihre zugehörige Aufteilung aktiviert hat - und sie kann nur wissen, welche das waren, wenn die beiden sauber gepaart sind. Teilt man mit einem inklusiven Gateway auf und führt mit einem parallelen zusammen, wartet die Zusammenführung ewig auf einen Zweig, der nie lief.

Leisten BPMN-Gateways Arbeit?

Nein. Ein Gateway leitet nur Token weiter: es führt nie eine Aktivität aus und braucht nie Zeit. Was ein Gateway zu entscheiden scheint, hat die Aktivität davor berechnet, und die Bedingungen an den ausgehenden Flüssen lesen dieses Ergebnis nur.

In dieser Reihe

Passend dazu

Alle Artikel