Process Engines: Standalone oder Embedded?

Posted March 28th, 2011. Filed under Architektur

Entscheidet man sich für den Einsatz einer Process Engine zur Automatisierung der Prozessabläufe, gibt es vor der Auswahl eines Herstellers noch eine elementare Architektur-Frage zu beantworten: Soll eine eigenständige Process Engine (dann auch oft „Business Process Management Suite“ bzw. BPMS genannt) verwendet werden oder soll die Engine integraler Bestandteil einer Geschäftsanwendung sein.

Standalone Process Engine

Eine eigenständige Process Engine zeichnet sich dadurch aus, dass die Prozesse zentral gespeichert werden und mehrere Anwendungen per API (z. B. Web Services, RMI) darauf zugreifen. Diese Anwendungen sind in der Regel Web-Anwendungen oder Portale. Natürlich bringt jede BPMS eine eigene UI mit, diese wird aber aufgrund eingeschränkter Funktionen häufig nur für Admin- und Supportzwecke verwendet. Der Vorteil ist natürlich, dass unterschiedliche Anwendungen auf die zentralen Daten zugreifen können. Dies ist gerade bei bei Geschäftsprozessen wichtig, die von verschiedenen Organisationseinheiten bearbeitet werden, da jede Organisationseinheit spezialisierte Anwendungen verwendet (um nur einige zu nennen: CRM, SCM, Procurement-Systeme, Risk-Management) und so eine Integration der Prozesse in die „natürliche“ Arbeitsumgebung der Anwender möglich wird. Ein weiterer Vorteil an der Standalone-Variante ist die ganzheitliche Abbildung der Prozesse im Monitoring und Reporting. So wird eine organisations- und anwendungsübergreifende Sicht auf die Geschäftsprozesse möglich und Engstellen können analysiert und identifiziert werden.

Embedded Process Engine

Im Gegensatz dazu können Process Engines auch direkt in eine spezielle Anwendung integriert sein, man spricht dann von Embedded Process Engines. Diese Variante ist dann sinnvoll, wenn es sich um spezielle Prozesse handelt, die nur von einer Anwendung (beispielsweise einem Portal) aus Benutzerinteraktion vorsehen. Die Process Engine kann so auf die jeweiligen Anforderungen hin optimiert werden, sodass eine höhere Leistung für die jeweiligen Anwendungsfälle zu erwarten ist. Zudem entfällt der Integrationsaufwand zwischen UI und Process-Engine, da in der Regel die gleiche Technologie verwendet wird (z. B. Java-Methodenaufrufe). Weiterhin ist es im Unternehmensumfeld politisch gegenenfalls einfacher, eine Process-Engine einzuführen, wenn nur eine (die eigene) Anwendung davon betroffen ist. Aus Gesamt-Unternehmenssicht ergibt sich jedoch ein höherer Aufwand, da jede Anwendung die selben Komponenten wie Datenbank, Monitoring und Integration separat entwickeln muss. Ein weiterer Nachteil ergibt sich darin, dass die Prozessinformationen in verschiedenen Systemen verteilt sind und ggf. in ein gemeinsames Data Warehouse jeweils extrahiert werden müssen.

Die Architektur der Process Engine in der IT-Architektur sollte also zu Beginn sorgfältig geplant und bei der Auswahl eines Produkts bedacht werden. Nicht immer ist offensichlich, welche Architektur hinter einer „BPM Software“ steckt.

Klassifikation von Workflows

Posted February 17th, 2011. Filed under Themen

Wie in allen IT-Gebieten versucht die Wissenschaft zu Informationsgewinnung auch das Thema Workflows zu klassifizieren und typisieren. Dieses induktives Verfahren der Analyse versucht Erkenntnisse durch die Abstraktion auf das Wesentliche zu erlangen.

In der Literatur ist seit 1992 die folgende Unterscheidung von McCready gängig und wird seitdem immer wieder zitiert (z. B. hier):

  • Production Workflows
  • Administrative Workflows
  • Ad-hoc-Workflow

Production Workflows sind standardisierte Vorgänge, die in einer gleichen oder ähnlichen Weise durchlaufen werden und die in der Regel wertschöpfend für das Unternehmen sind (Brot-und-Butter-Geschäft). Von einem Sachbearbeiter kann der weitere Prozess-Verlauf nur durch vorab definierte Abfragen beeinflusst werden (z. B. Genehmigung: ja/nein). Eine Automatisierung mit Hilfe einer Process Engine ist in der Regel sinnvoll, relativ einfach möglich und daher wirtschaftlich.

Im Vergleich dazu sind Administrative Workflows komplexer und bilden teilstrukturierte Vorgänge ab. Das bedeutet, das der Bearbeiter die Möglichkeit hat den Vorgang an ein andereas Team weiterzuleiten, dies allerdings in der Regel durch Auswahl einer Organisationseinheit aus eines hinterlegten, aber anpassbaren Organisationsmodell. In der Regel sind im Workflow nur allgemeine automatisierte Aufgabenträger (Services) eingebunden, wie beispielsweise Dokumenten-Management oder E-Mail-Versand, nicht jedoch vorgangsspezifische Aktionen (wie etwa Bestellung einer Kreditkarte). Administrative Workflows sind klassischer Weise in der Reklamationsbearbeitung oder Auftragsabwicklung zu finden. Eine IT-Umsetzung mit Hilfe einer Process-Engine ist in der Regel ebenfalls sinnvoll, es werden aber andere Anforderungen gestellt.

Die Ad-hoc-Workflows bieten eine hohe Flexibilität nach individuellen Anforderungen. Sämtliche Vorgangslogik wird vom Bearbeiter individuell festgelegt. Es gibt also keine definierten Ablaufmuster. Zu nennen sind Vertriebsprozesse oder Personalbetreuung. Der Einsatz von Process Engines beschränkt sich auf denen reinen Transport und die Protokollierung der Vorgänge. Häufig sind Process Engines dabei Teil übergreifender Software, wie beispielsweise CRM-Systemen.

Bei der Evaluation und beim Einsatz einer Process Engine sollte aufgrund der unterschiedlichen Anforderungen eine Klassifikation der umzusetzenden Geschäftsprozesse erfolgen.

BPM-Systeme mit BPMN Unterstützung

Posted November 5th, 2010. Filed under Themen

Ich bin davon überzeugt, dass BPMN künftig eine immer dominantere Rolle bei der Prozess-Modellierung einnehmen wird. Zum einen ist es in der Grundform klar nachvollziehbar, zum anderen sind die Alternativen nicht gut genug. BPEL ist zu technisch und hat keine standardisierte Notation. Proprietäre Notationen (z. B. jPDL) werden verschwinden, da Anwender nur eine Sprache lernen wollen und sich an BPMN gewöhnen werden. Akademische Modelle (eEPKs, Petri-Netze) haben keinen internationalen Durchdringungsgrad.
Ich habe mir mal angeschaut, welche Hersteller von BPM-Systemen BPMN bereits unterstützen. Dabei sind Hersteller gemeint, die kein reines Modellierungswerkzeug anbieten, sondern (auch) eine Process Engine. Wie die Umsetzung der Prozessmodelle auf das technische Modell geschieht (z. B. interne Konvertierung in BPEL oder direkte BPMN 2.0 Unterstützung) ist dabei unerheblich, solange der Anwender davon nichts mitbekommt.

Kommerziell

  • Progress Savvion – Savvion habe ich aber auch noch nicht live gesehen. Wirkt sehr Enterprise-Lastig.
  • SAP NetWeaver BPM – SAP hat eine neue BPM Engine entwickelt. Wirkt durchdacht. Wirkt SAP-lastig (WebDynPro). Spannend wird die Integration mit den SAP Kern-Geschäftsprozessen.
  • TIBCO ActiveMatrix BPM – Komplett neu entwickelte Engine von TIBCO. Spannende Konzepte sind enthalten (z. B. Page-Flows). Unterstützt einige Patterns (z. B. 4-Augen-Prinzip) out-of-the-box. Leider noch keine produktiven Referenzen. Kostenloser Modeller (BusinessStudio) vorhanden.
  • bizagi BPM Suite – Integrierte Suite, führt zu schnellen Ergebnissen. Für kleine & mittlere Einsatzbereiche geeignet.
  • inubit BPM-Suite – Deutscher Hersteller, leider habe ich noch keine Erfahrungen. Sieht vielversprechend aus. Unterstützt BPMN 2.0

Open Source

Es gibt viele kleine Workflow Projekte im Open Source-Umfeld, komplette BPM-Systeme sind aber überschaubar:

  • jBPM 5 – Wahrscheinlich höchster Verbreitungsgrad aufgrund JBoss-Integration. Ab Version 5.0 soll BPMN 2.0 unterstützt werden. Actviti steht dagegen.
  • Activiti – einzige (mir) bekannte reine BPMN 2.0 Engine. Macht trotz Beta-Status einen sehr guten Eindruck.
  • intalio|BPMS – Open Source Software mit professionellem Service Angebot. Strategische Cloud-Ausrichtung.

Soweit eine grobe Sichtung der Marktes. Fehlt etwas? Dann bitte ein Kommentar. Ich werde mir in den nächsten Monaten einige der Tools etwas näher anschauen und ggf. einen Vergleich zwischen Open Source und kommerziellen Lösungen ziehen. Vor allem auf Activiti bin ich gespannt.

BPM-Day auf der Jax 2010

Posted May 8th, 2010. Filed under Themen

Die JAX 2010 stand ganz im Zeichen der neu eingeführten Special Days.  Am Donnerstag gab es den BPM-Day, der von Bernd Rücker (camunda services GmbH) moderiert wurde. Der Tag war insgesamt sehr gut besucht und es musste mittags sogar in einen größeren Raum  umgezogen werden. Hier eine Zusammenfassung zusammen mit meinen Eindrücken:

Den Anfang machte Bernd Rederlechner von der T-Systems mit einem Vortrag zu Chancen und Grenzen bei der Nutzung von Business Process Management. Er ging in seinen Ausführungen auf die Einführung einer Process Engine (Oracle) zur Auftragssteuerung in einem großen Telekommunikationsunternehmen ein. Der Vortrag war für den Einstieg in den Tag durchaus geeignet, da auf viele Grundprinzipien (“BPM ist in erster Linie ein Business-Thema…”) eingegangen wurde, für meinen Geschmack aber etwas zu oberflächlich und lehrbuchartig. Habe ich eigentlich schon erwähnt, dass ich mittlerweile seit 5 Monaten auf meinen DSL-Anschluss warte?

Die nächste Session wurde von Jakob Freund gehalten. Thema war “BPMN 2.0 in der Praxis: vom fachlichen Modell zum ausführbaren Prozess”. Das war insofern ganz spannend, da der Standard BPMN 2.0 noch nicht einmal in einer finalen Fassung vorliegt – wer hat es in der Praxis denn dann schon im Einsatz? Das Kern-Feature von BPMN 2.0 ist natürlich, dass der Prozess direkt von einer BPMN-Engine ausgeführt werden kann, ohne wie früher den Zwischenschritt über BPEL oder XPDL zu gehen. Jakob ging in seinen Ausführungen sehr stark auf die von camunda entworfene Vorgehensweise bei der Einführung von BPM ein, die ich als wirklich sehr gut und realitätsnah empfinde. Leider war das Thema Neuerungen in BPMN 2.0 etwas zu kurz geraden.  Fazit: Sehr guter Vortrag. Die Folien zum Vortrag gibt es hier.

Nach der Pause ging es weiter mit dem Vortrag “BPMN in der Praxis: Der Roundtrip bei 1&1 mit Open-Source-Tools” von Dr. Jörg Moldenhauer und Bernd Rücker. Die 1&1 ist ja bekannt, sehr stark auf Open Source Technologie zu setzen, so auch bei der Einführung von BPM mit der Process Engine jBPM 3 (!) in Verbindung mit jBoss ESB. Als Pilotprozess gilt wieder der Prozess zur DSL-Neukundenbestellung, der fachlich in BPMN modelliert wird, für die technische Ausführung (“Ebene 3″ nach camunda Modell) aber in jPDL noch einmal geschrieben werden muss. Der Roundtrip ist insofern interessant, dass vom Process Analyst das fachliche Modell an den Process Engineer gegeben wird, dieses umgesetzt wird und bei technischen Änderungen, die naturgemäß auftreten, vom Analyst eine Freigabe erfolgen muss. Ich persönlich würde noch weitergehen und vorschlagen, dass  vom Process Engineer auch fachliche Verbesserungsvorschläge kommen sollten, da dieser den Prozess tiefgreifend versteht. Weiterhin hat 1&1 eine sehr vernünftig klingende Infrastruktur für die SOA und BPM Plattform auf jBoss geschaffen. Interessant für diesen Blog ist, dass 1&1 einen internen Pattern-Katalog für die technische Umsetzungen geschaffen hat, die in einem Wiki gepflegt werden. Ebenfalls sehr guter Vortrag. Die Folien sind ebenfalls online.

Den Tag hat eine Session abgeschlossen, in der die Hersteller SOPERA, ORACLE und SAP ihre BPMN Werkzeuge gezeigt und alle am gleichen Beispiel ein PoC implementiert haben. Dazu ein kurzes subjektives Fazit:

  • Sopera BPM als Teil der Sopera ASF basiert auf die Open Source Engine intalio|BPM. Präsentation war OK. Die Lösung wirkt solide aber noch nicht 100% ausgereift. Ich sehe BPM bei Sopera derzeit nicht als strategisches Geschäftsfeld.
  • Oracle – Hmm, Oracle hat ja mindestens 3 verschiedene BPM-Suites. In der Vergangenheit hat Oracle sehr stark auf das aussterbende Pferd BPEL gesetzt, was man auch immer noch merkt – die Frage ist, wie es weitergeht. Es hieß, man wolle in Zukunft auf BPMN setzen. Der Vortrag war vielversprechend.
  • SAP – tja SAP hat sich in der Vergangenheit beim Thema BPM nicht besonders hervorgetan. Mit dem SAP NetWeaver Composition Environment 7.2 haben sie aber eine komplett neu implementierte Process-Engine auf Basis von BPMN hervorgebracht. Die Präsentation war wie von SAP gewohnt sehr gut und erstaunlich ehrlich. Das Produkt sieht aus, als könnte es gut werden. Bis zur Marktreife wird sicherlich noch mindestens ein Jahr vergehen (derzeit sind noch keine APIs verfügbar, und wer möchte seinen Mitarbeitern schon WebDynpro antun…). Leider keine Live-Demo, sondern nur Screencasts…

Fazit:
Die JAX 2010 hat sich gelohnt, man merkt, dass es auch sehr stark in Richtung Enterprise Architecture geht, was in meinen Augen zu begrüßen ist. Es lohnt sich aber auch in die Java Vorträge zu gehen (Adam Bien!!!). Im BPM Day wurde der Schwerpunkt auf Praxiserfahrung gelegt, große Neuerungen im BPM Umfeld gab es nicht – außer: BPEL ist tot – es lebe BPMN.

BPMN-Editoren im Vergleich

Posted March 28th, 2010. Filed under Uncategorized

Will man BPMN Diagramme erstellen, steht eine Vielzahl von Editoren und Tools zur Verfügung.

Dabei reicht das Spektrum vom reinen Visualisierungstools über spezialisierte BPMN Modellierungstools hin zu integrierten Prozessdesignern zur direkten Implementierung des Geschäftsprozesses als Workflow. Je nach Einsatzzweck ist das entsprechende Tool zu wählen.

Es werden die folgenden Tools näher betrachtet:

  • Microsoft Visio 2007 (mit BPMN 1.1 Stencils)
  • Omnigraffle 5 (mit BPMN 1.1 Stencils)
  • Process Modeler 5 von itp-commerce
  • TIBCO BusinessStudio

Um die Tools zu vergleichen, soll jeweils das Reparatur-Pattern (auf das später noch genauer eingegangen werden soll) in einem Diagramm dargestellt werden.

Visio

Microsoft Visio 2007 hat als Bestandteil von Microsoft Office eine große Verbreitung bei der Erstellung von Vektorgrafiken. Allerdings hat Mircosoft keine Unterstützung für BPMN spendiert. Eine Arbeitsgruppe des Potsdamer Hasso Plattner Instituts stellt jedoch (neben Ihrem Web-Editor Oryx) ein Stencil für BPMN 1.1 bereit.

Das Stencil beinhaltet alle BPMN 1.1 relevanten Artefakte, die soweit auch der Spezifikation entsprechen.

Das Diagram kann in alle möglichen Formaten gespeichert werden, insbesondere auch als Vektorgrafik (wichtig für Latex!).

Das Diagram sieht schlicht und elegant aus. Die Unterstützung der Software bei der Modellierung des Prozesses ist auch schlicht, der Benutzer muss genau wissen, was er tut. Es gibt keine Überprüfung, ob die modellierten Prozesse syntaktisch korrekt sind. Unkorrekte Diagramme können sehr leicht entstehen. Visio eignet sich somit also zur Dokumentation und zur Erstellung hochwertiger Vektor-Diagramme in Veröffentlichungen. Visio gibt es als kostenlose 30-Tage Version. Die Standard-Version kostet 329 EUR.

Omnigraffle Professional

Die Alternative zu Visio für den Mac ist Omnigraffle. Omnigraffle (199 EUR für die Professional Version) ist bekannt dafür, hervorragende und vor allem schöne Diagramme zu erzeugen.

Auch Omnigraffle hat vergessen, BPMN im Lieferumfang vorzusehen, aber auch hier hat das Hasso Plattner Institut ein Stencil zur Verfügung.

Screenshot:

Das folgende Diagramm ist allerdings meines Erachtens nicht so schön wie bei Visio:

Es fehlen einige Elemente im Stencil, hier am Beispiel ist es der Default-Flow.

Insgesamt ist Omnigraffle auch nur ein “Drawing-Tool” für die Diagramme, der Benutzer wird nicht geführt bei der Erstellung der Prozesse.

Process Modeler

Genau das verspricht der auf Visio basierende Process Modeler der Firma itp-commerce. Der Modeler ist auf das Erzeugen von BPMN Diagrammen spezialisiert und leistet sehr viel mehr als einfache Stencils. Darüber hinaus ist es eines der wenigen Tools, das BPMN 2.0 (mit Collaboration Diagramm) unterstützt.

Wie im Screenshot sichtbar, lassen sich Objekte nachträglich noch komfortabl verändern.

Das erzeugte Diagramm ist nicht klassisch schwarz/weiß, sondern ist in einem angenehmen Orange gehalten:

Der Benutzer wird vom Tool bei der Erstellung der Diagramme sehr gut geführt, sodass weitgehend syntaktisch korrekte Diagramme entstehen. Die Usability des Tools lässt allerdings an manchen Stellen etwas zu wünschen übrig.

Der Nachteil des Process Modeler ist, dass sowohl eine Lizenz für Visio als auch für den Process Modeler (ca. 1000 EUR) notwendig ist.

TIBCO BusinessStudio

Schließlich wollen wir uns noch ein Produkt eines Anbieters einer Business Process Management Suite näher ansehen. Der Integrationsspezialist TIBCO hat das auf der Eclipse Plattform basierende BusinessStudio als zentrales Modellierungs- und Entwicklungstool im Portfolio. Eine kostenlose Version (ohne Support) steht zum Download bereit.

Hier wird der Prozess nicht nur “gemalt”, er dient vielmehr auch als ein Modell für die IT-Implementierung des technischen Workflows.

Das Diagramm kann leider nicht als Vektorgrafik gespeichert werden (nur JPG).

Die Umsetzung der BPMN Spezifikation (1.1) ist gut. Der Benutzer wird bei der Modellierung sehr gut geführt, invalide Prozesse werden mit einer aussagekräftigen Meldung angezeigt. Wie im Beispiel sichtbar, können den Tasks schon spezielle Tyten (hier Benutzer-Task) zugeordnet werden, wie diese auch in BPMN 1.2 vorgeschlagen werden.

Der Prozess dient – wie oben angedeutet – auch direkt für die Implementierung, wobei dann die einzelnen Artefakte genauer spezifiziert werden müssen (z.B. welcher Web Service wird angesprochen). Zur Laufzeit wird der Prozess exportiert und kann in der TIBCO iProcess Engine ausgeführt werden (wenngleich dann viele Elemente von BPMN nicht verwendet werden dürfen).

Fazit

Die vier vorgestellten Tools sind natürlich nur eine Auswahl aus dem immer größer werdenden Markt entsprechender Werkzeuge. Sie zeigen jedoch die unterschiedlichen Einsatzgebiete ganz gut auf. Welches Tool das optimale ist, hängt – wie immer – von den jeweiligen Anforderungen ab.

Für die Visualisierung der Entwurfsmuster werde ich auf Visio zurückgreifen. ProcessModeler wäre eine Alternative, ist aber schlicht zu teuer. Omnigraffle hat keine vollständige Umsetzung der BPMN-Spezifikation. BusinessStudio scheidet aus, da keine Vektorgrafiken erzeugt werden können.

Was ist eigentlich BPM?

Posted January 25th, 2010. Filed under Uncategorized

Bevor wir in konkrete Entwurfsmuster einsteigen, möchte ich versuchen zu erklären, worum es überhaupt geht. Fangen beim Titel des Blogs an. “BPM-Patterns”. Es geht hier schon los: Was ist eigentlich BPM?

Der erste Treffer bei Google verweist auf eine Software zum Erstellen von Musik. Dass “Beats per Minute” in diesem Blog nicht gemeint ist, sollte klar sein.

Weiter geht’s in Wikipedia: Hier wird der Begriff Prozessmanagement verwendet und wie folgt definiert:

Prozessmanagement, auch Geschäftsprozessverwaltung oder “Business Process Management (BPM)”, beschäftigt sich mit dem Herausfinden, Gestalten, Dokumentieren und Verbessern von Geschäftsprozessen. Geschäftsprozessverwaltung synchronisiert die Bereiche Planung, Entwurf, Konstruktion, Produktion, Instandhaltung, Nachverfolgung und Anpassung in einer Organisation.

Die Hauptziele des Prozessmanagement in einem Unternehmen sind die Gestaltung und Optimierung der Folge von betrieblichen Abläufen (=Geschäftsprozess?!) um eine möglichst effiziente Durchführung der betrieblichen Wertschöpfung zu erreichen.

Übrigens: Jeder der bereits etwas optimieren wollte, weiß, dass es entscheidend für den Erfolg ist, dass man die Ergebnisse – vorher und nachher – auch messen und vergleichen kann (Stichwort: Six Sigma).

Konkret: Prime-Kunden des Online-Versandhauses Amazon erwarten, dass auch eine umfangreiche Bestellung innerhalb eines  Tages geliefert wird. Amazon muss die Bestellung in Teilaufgaben unterteilen, welche in einer bestimmten Reihenfolge bearbeitet werden. Diese können Bestellannahme,  Kommissionierung, Versand, Rechnungsstellung und Kreditkartenabrechnung sein. Die Aufgabe des Prozessmanagements ist es, den Abwicklungsprozess so zu gestalten, dass möglichst alle Kunden ihre Bestellungen rechtzeitig erhalten – kurz vor Weihnachten gelingt dies leider nicht immer :-(

Es kann nie oft genug erwähnt werden:

BPM hat im ersten Schritt nichts mit IT oder Software-Lösungen zu tun. Vielmehr wirft es die Frage auf, wie ein Unternehmen seine Aufbauorganisation und seine Ablauforganisation gestaltet. Frühestens im zweiten Schritt können die Abläufe dann IT-unterstützt effizient gestaltet werden.

Entwurfsmuster in der Geschäftsprozessmodellierung

Posted January 24th, 2010. Filed under Uncategorized

Herzlich willkommen zum neuen Blog BPM-Patterns!

In diesem Blog werde ich das Thema Entwurfsmuster in der Geschäftsprozessmodellierung behandeln und mögliche Entwurfsmuster vorstellen und zur Diskussion stellen.

Entwurfsmuster sind in der IT unter dem Begriff Design Pattern bekannt, welche vor allem im Bereich der objektorientierten Programmierung Anwendung finden.

Mein Ziel ist es, die Konzepte der Entwurfsmuster auf den Bereich der Geschäftsprozessmodellierung und des Geschäftsprozessmanagements zu übertragen.

In den folgenden Artikeln werde ich dazu Grundlagen und Konzepte vorstellen und konkrete Entwurfsmuster präsentieren, wobei ich Sie sehr gerne zur Diskussion einlade. Wenn Sie Vorschläge für weitere Entwurfsmuster haben, freue ich mich, wenn Sie mir schreiben.