Geschäftsprozesse mit JBoss

Als Standard für Modellierung, Entwicklung und Automatisierung von Geschäftsprozessen hat sich in den letzten Jahren das Business Process Modell and Notation (BPMN) etabliert. Die aktuelle Enterprise-Version des JBoss Business Rules Management Systems (BRMS) unterstützt jetzt die Version 2.0 des Modellierungsstandards.

Bei der in der Vergangenheit von JBoss unterstützten Spezifikationssprache Business Process Execution Language (WS-BPEL) steht mit der Orchestrierung von Webservices vor allem die technische Sicht im Vordergrund. Im Gegensatz dazu betont BPMN die visuelle Darstellung und die Verständlichkeit für Anwender im Vordergrund. Damit schlägt BPMN eine Brücke zwischen fachlicher Sicht und IT.

Business Process Model and Notation

Zur Modellierung von Geschäftsprozessen existieren einige Spezifikationssprachen mit unterschiedlicher Ausrichtung. Die Business Process Modeling Notation wurde 2001 ent-wickelt, um eine besonders für Fachanwender verständliche Spezifikationssprache zu schaffen. Ursprünglich von einem IBM-Mitarbeiter entwickelt, ist BPMN seit 2006 ein von der Object Management Group (OMG) definierter Standard.

Seit März 2011 liegt BPMN in der Version 2.0 vor. Als eine wichtige Neuerung legt der Standard auch ein XML-basiertes Format fest, in dem Diagramme gespeichert und ausgetauscht werden können. Daher wird das Acronym seitdem offiziell als Business Process Model and Notation gedeutet.

Das definierte XML-Format erlaubt, erstellte Diagramme zwischen verschiedenen Systemen auszutauschen, wenn diese Systeme standardkonform arbeiten. Schon vor der endgültigen Fixierung der Version 2.0 haben die ersten Hersteller mit der Umsetzung begonnen, so dass inzwischen eine vielfältige Landschaft von Modellierungswerkzeugen bereitsteht.

Elemente von BPMN 2.0

Abbildung 1 zeigt die wesentlichen Darstellungselemente von BPMN:

Abbildung 1: Elemente von BPMN
  • Die Rechtecke repräsentieren die Arbeitsschritte (sowohl manuelle als auch automatisierte) des Prozesses. Hier findet die eigentliche Arbeit statt. 
    • Das grün dargestellte Rechteck rechts oben repräsentiert einen Unterprozess, der an anderer Stelle definiert werden kann.
  • Das auf der Spitze stehende Quadrat mit dem '+' bildet eine Verzweigung.
  • Die runden Symbole entsprechen Ereignissen. Jeder Prozess muss mindestens ein Startereignis (hier grün) und mindestens ein Endereignis (hier rot) haben. 
  • Das Symbol mit der Uhr stellt ein Zwischenereignis dar. Im vorliegenden Beispiel würde der Prozess beim Erreichen des Uhr-Symbols erst zu einem definierten Zeitpunkt weiterlaufen. Andere Zwischenereignisse können beispielsweise Fehler- oder Eskalationssituationen oder erwartete und versendete Nachrichten darstellen.

Ein einfaches Anwendungsbeispiel

Abbildung 2 zeigt einen einfachen Prozess zur Kreditentscheidung. Der Prozess wird durch den Eingang eines Kreditantrags gestartet. Anschließend wird der Antrag durch Bestandsdaten angereichert.

 
Abbildung 2: Ein einfacher Prozess zur automatischen Kreditentscheidung

Dies geschieht, wie durch das Zahnradsymbol oben rechts im Rechteck angezeigt, durch den Aufruf eines Webservice. Im nächsten Schritt wird anhand eines Regelwerks der Risikogehalt des Geschäfts ermittelt.

Abhängig vom Risikogehalt verzweigt der Prozess im nächsten Schritt. Soweit der Risikogehalt gering ist, wird versucht, den Antrag automatisch zu entscheiden. Der Entscheidungsvorgang selbst wird als Subprozess an anderer Stelle detailliert beschrieben. Soweit im Verlauf der automatischen Entscheidung Probleme festgestellt werden, soll der Antrag in der Folge manuell entschieden werden. Dies wird durch das Fehlersymbol, Blitz im doppelten Kreis (hier orange), dargestellt.

Wird ein Antrag in der manuellen Antragsentscheidung befürwortet, so wird er anschließend vom Bereich Marktfolge abschließend geprüft. Um die unterschiedlichen Verantwortungen darzustellen, wurden diese beiden Schritte in sogenannten Swimlanes dargestellt. Swimlanes stellen die an einem Prozess beteiligten Rollen oder Verantwortlichkeiten dar, alle Swimlanes zusammen bilden den Pool.

Unterschiedliche Detaillierungsgrade für unterschiedliche Anforderungen

Die Darstellung aus Abbildung 2 enthält genügend Details für eine grobe Dokumentation des Prozesses, tatsächlich sind jedoch einige Abläufe – z.B. eine Eskalation, wenn der Bereich Markt mit einer Ablehnung des Bereichs Marktfolge nicht einverstanden ist – bisher nicht berücksichtigt. Zudem wird man zusätzliche Fehlerbehandlungen einführen wollen.

Um den Prozess mit Hilfe einer Process Engine automatisiert zu unterstützen, werden die einzelnen Arbeitsschritte noch mit weiteren Definitionen angereichert. So wird beispielsweise festgelegt, welcher Webservice mit welchen Parametern im Schritt Bestandsdaten aufgerufen wird. Entsprechend ist auch festzulegen, wie das Regelwerk für die Einstufung des Risikogehalts aussehen soll. Auch die zugrundeliegenden Daten müssen beschrieben werden. Dazu bietet das Framework von jBPM Unterstützung.

jBPM - Business Process Management in JBoss

 
Abbildung 3: JBoss Enterprise BRMS 3.0

JBoss bettet die Unterstützung für Prozessmanagement in das Business Rule Management System (BRMS) ein.

Die Unterstützung für Geschäftsprozessmanagement umfasst dabei 

  • die Modellierung. 
  • die Anreicherung 
  • und die Ausführung der Prozesse.

JBoss Enterprise BRMS 3.0 bietet zwei Möglichkeiten für die Modellierung von Geschäftsprozessen. Zum einen kann die Modellierung in der Web-Oberfläche erfolgen:

Modellierung über die Web-Oberfläche

 
Abbildung 4: Modellierung mit dem Process-Designer

Mit der Oberfläche kann der Prozess nicht nur modelliert, sondern auch um andere für die Ausführung nötige Beschreibungen ergänzt werden. So können beispielsweise die nötigen Parameter und der Aufruf für den Webservice hinterlegt werden. Für User-Tasks kann hier definiert werden, welche User oder Usergruppen für die Ausführung zuständig sind. Für die Umsetzung können zudem Formulare generiert und mit den Daten des Prozesses verknüpft werden.

Einfache Prozesse können auf diese Art und Weise vollständig umgesetzt und automatisiert werden, denn die Oberfläche erlaubt auch das Deployment des Prozesses für die Process Engine. Anschließend kann der Prozess über die Konsole gestartet und auch überwacht werden. Sollen Prozesse in größerem Umfang verwaltet werden, können Console und Designer auch in Unternehmensportale eingebunden werden.

Modellierung in Eclipse

Für anspruchsvollere Prozesse mit komplexeren Teilaufgaben bietet sich die Erstellung mit JBoss Developer Studio an. Die Eclipse-basierte Oberfläche erlaubt die graphische Modellierung der Prozesse. Hier steht die Integration mit in Java programmierten Modulen im Vordergrund. Zudem bietet Developer Studio auch Unterstützung für das Debugging und den Test.

Ansprechpartner: Dr. Klaus Schröder; Turn on Javascript!