Geschäftsprozesse abbilden

Wann können Web Apps von Prozess-Engines profitieren?

| Autor / Redakteur: Manfred Sattler * / Stephan Augsten

Bei mehrstufigen und langfristigen Geschäftsprozessen kann man den Aufwand mithilfe einer externe Prozess-Engine reduzieren.
Bei mehrstufigen und langfristigen Geschäftsprozessen kann man den Aufwand mithilfe einer externe Prozess-Engine reduzieren. (Bild: justyre - Pixabay.com / CC0)

Wenn geschäftliche Prozesse in Webanwendungen umgesetzt werden sollen, stehen Entwicklern verschiedene Optionen zur Verfügung. Neben der individuellen Programmierung ist auch der Einsatz einer Entwicklungs- bzw. Service-Plattform möglich.

Die meisten Webapplikationen beruhen auf einer Vielzahl an Prozessen, von denen ein großer Teil die meiste Zeit „schlafend“ im Hintergrund verbringt. Der Prozess erstreckt sich über einen oft längeren Zeitraum und ruht solange, bis ein bestimmtes Trigger-Ereignis auftritt.

Sehr plastisch wird dies etwa am Beispiel eines Geschäftsprozesses innerhalb einer Online-Apotheke: Bei einer Online-Bestellung von verschreibungspflichtigen Medikamenten muss auf den Eingang eines Rezeptes gewartet werden, bevor die Ware versendet wird.

Sollte der Eingang des Rezeptes ausbleiben, muss die Bestellung jedoch verworfen werden beziehungsweise müssen weitere Aktionen folgen – beispielsweise der Versand einer Erinnerungs-E-Mail an den Besteller. Falls als Zahlungsart eine Überweisung per Vorkasse ausgewählt wurde, ist es darüber hinaus erforderlich, auf den Eingang dieser Zahlung zu warten.

Das obige Szenario zeigt ein typisches, relativ triviales Beispiel für einen Geschäftsprozess auf, der über einen längeren Zeitraum läuft, asynchron ausgelegt ist und die meiste Zeit „schläft“. Ein solches Szenario kann natürlich selbst in der jeweiligen Programmiersprache der Wahl umgesetzt werden.

Vom Aufwand her bewegt man sich dabei allerdings schon in Richtung der Entwicklung einer eigenen Prozess-Engine. Hier sollte in Projekten je nach Vorkenntnissen und Möglichkeiten immer individuell abgewogen werden, inwiefern sich dieser Aufwand am Ende lohnt und welche Vor- und Nachteile daraus entstehen

Checkliste: Wann ist der Einsatz einer Prozess-Engine sinnvoll?

Alternativ ist es möglich, die Prozesse mit einer Entwicklungs- und Service-Plattform umzusetzen.

Ergänzendes zum Thema
 
Über die Prozess-Engine simpl4

Eine Prozess-Engine lohnt sich vor allem dann, wenn die abzubildenden Prozesse alle oder einige der folgenden Merkmale aufweisen:

  • Lang laufend: Der Prozess erstreckt sich über Stunden, Tage, Wochen, Monate oder mehr.
  • Überwiegend schlafend: Der Prozess verbringt die meiste Zeit schlafend und wartet darauf, dass das nächste Trigger-Ereignis auftritt.
  • Asynchron: Es müssen asynchrone Aktionen ausgeführt werden.
  • Parallele Ausführung: Es gibt mindestens zwei (oder mehr) Wege der Überprüfung/Verarbeitung. Erst wenn alle Ausführungspfade erledigt sind, werden sie wieder vereinigt (join) und der Prozess läuft weiter.
  • Persistente Zustände: Der Prozess muss einen Serverneustart überleben (siehe auch lang laufende Prozesse).
  • Orchestrierung von Systemen und Human Tasks: Die Kommunikation zwischen verschiedenen System und/oder menschlichen Akteuren muss koordiniert werden.
  • Human Tasks: Es sind Menschen involviert und Aufgaben müssen (entsprechend ihrer Rollen/Verantwortlichkeiten) an Personen vergeben werden.
  • Komplexität der Regeln: Entscheidungen und Regeln sind nicht trivial und sollen konfigurierbar sein.
  • Nachvollziehbarkeit: Prozess-History und aktueller Status sollen jederzeit abrufbar sein.
  • Änderbarkeit: Der Prozess muss unter Umständen häuft angepasst werden.
  • Prozess-Versionierung: Mehrere Prozess-Versionen sollen gleichzeitig aktiv sein können.

Abweichend davon gibt es jedoch auch eine Reihe von Prozessen, für deren Realisierung eine Prozess-Engine nicht erforderlich ist. Bei genauerer Betrachtung handelt es sich dabei allerdings oft gar nicht um „echte“ Geschäftsprozesse, die sich ja unter anderem durch eine logische Verknüpfung mehrerer Einzeltätigkeiten definieren.

Solche „Prozesse“ sind häufig an folgenden Merkmalen erkennbar:

  • Kurz laufend: Es handelt sich um einen Prozess, der innerhalb kurzer Zeit vollständig abgeschlossen ist.
  • Durchgängig: Es werden keine Zwischenzustände erzeugt.
  • Zeitlich nonstop: Der Prozess läuft ohne zu stoppen durch und „schläft“ nicht.
  • Fehlende Komplexität: Es handelt sich um Prozesse in reinen Informationssystemen beziehungsweise reine Lesezugriffe.

Fazit:

Der Einsatz einer Prozess-Engine stellt sich für viele Softwareprojekte als sinnvoll dar. Dies gilt praktisch immer dann, wenn es darum geht, komplexere Geschäftsprozesse zu realisieren und abzubilden- was für den Großteil geschäftlich genutzter Applikationen zutreffen dürfte.

Ausnahmen bilden in erster Linie Anwendungen, die keine Koordination verschiedener Zwischenzustände erfordern, da die jeweiligen Aufgaben durchgehend und ohne Unterbrechung ausgeführt werden können.

Manfred Sattler ist Geschäftsführer der transparent solutions GmbH.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44521336 / Web Apps)