Das Buch „Prozessgesteuerte Anwendungen entwickeln und ausführen mit BPMN“ (Anzeige) von Volker Stiehl kann man jedem ans Herz legen, der von Berufs wegen mit der Entwicklung von Anwendungen zu tun hat, die Geschäftsprozesse mit BPMS und SOA unterstützen. Zum einen stellt er eine sehr durchdachte Architektur für derartige Anwendungen vor, zum anderen hat er praktisch anwendbare Lösungsansätze und Muster (Patterns) für die typischen Fragestellungen entwickelt, die bei solchen Projekten auftreten. Diese werden anhand von Beispielprozessen konkret erläutert, so dass man sie sehr gut nachvollziehen kann. Daher eignet sich das Buch auch als Lehrbuch für fortgeschrittene Studierende der (Wirtschafts-)Informatik.
Eine prozessgesteuerte Anwendung im Sinne des Buchs unterstützt einen im Wettbewerb differenzierenden Geschäftsprozess und integriert hierfür verschiedene Backend-Systeme. Anders als Standardprozesse, die gut durch existierende ERP-Funktionalität abgedeckt sind, werden für solche individuellen und innovativen Prozesse neue Funktionalitäten benötigt, die Services aus zumeist mehreren existierenden Systemen verknüpfen. Stiehl beschreibt keinen allgemeinen SOA/BPMS-Ansatz, sondern konzentriert sich auf die besonderen Merkmale und Anforderungen prozessorientierter Anwendungen mit Beteiligung meist mehrerer Benutzer über ein Web-Frontend.
Wesentliche Merkmale seines Ansatzes sind eine konsequent top-down orientierte Vorgehensweise, die ausschließlich von den fachlichen Prozessen getrieben wird, die strikte Trennung zwischen Fachprozessen und technischen Prozessen in der Anwendung, und die durchgängige Verwendung der BPMN auf allen Ebenen.
Die Anforderungen der prozessgesteuerten Anwendung, die den fachlichen Prozess umsetzt, dienen als Grundlage für einen Servicevertrag. Dieser Servicevertrag wird durch eine Implementierungsschicht erfüllt, die wiederum die verschiedenen Backend-Systeme integriert. Es werden also nicht etwa direkt die vorhandenen Services der verwendeten Backend-Systeme wiederverwendet. Hierdurch ergäbe sich eine Abhängigkeit der prozessgesteuerten Anwendung von den Spezifika des jeweiligen Backendsystems, wie z. B. von deren Datentypen oder Nummerierungs-Schemata für Identifizierer.
Derartige Abhängigkeiten zu vermeiden ist nicht immer einfach, doch Stiehl beschreibt, wie dieses Ziel konkret zu erreichen ist. Zwar entstehen ein zusätzlicher Aufwand und gewisse Nachteile, wie eine geringere Wiederverwendbarkeit oder eine schlechtere Performance, doch ist die entstehende Anwendung wesentlich flexibler. Änderungen des Prozesses wie auch Änderungen auf Seiten der Backend-Systeme lassen sich wesentlich einfacher durchführen. Und dies ist in einem dynamischen Umfeld oftmals entscheidend.
Für die Spezifikation der Prozesse wird BPMN 2.0 verwendet – und zwar sowohl für die fachlich orientierten Prozesse der Anwendung als auch für die eher technisch getriebenen Prozesse der Implementierungsschicht. Fachliche und technische Prozesse kommunizieren hierbei mit Hilfe von Nachrichtenflüssen. Auch wenn es sich bei den fachlichen Prozessen um ausführbare Prozesse handelt, die – ebenso wie die technischen Prozesse – auf einer Process Engine laufen, enthalten sie jedoch keine technischen Details und sind damit nahe an system-unabhängigen Prozessmodellen, wie sie vom Business selbst erstellt werden. Die technischen Details finden sich sämtlich im technischen Prozess der Implementierungsschicht. Damit entfällt die viel diskutierte Transformation oder Anreicherung von fachlichen Modellen zu technischen Modellen. Stattdessen wird der fachliche Prozess modelliert, und die Technik-Seite muss ihren Prozess so aufbauen, dass er den Service-Vertrag erfüllt, d. h. die vom fachlichen Prozess verlangten Nachrichtenflüsse empfängt und sendet. Eine Änderung in einem beteiligten Backend-System kann dann komplett auf der technischen Ebene abgehandelt werden und hat keine Auswirkung auf den fachlichen Prozess.
Bei den technischen Prozessen der Implementierungsschicht nutzt Stiehl schließlich das gesamte Spektrum der BPMN 2.0-Konstrukte aus, wie z. B. Ausnahmebehandlungen, Ereignisunterprozesse, Transaktionen und Kompensationen.
Richtig greifbar wird der vorgestellte Ansatz am detailliert erläuterten Beispiel eines Bestellprozesses. Gezeigt wird die Umsetzung mit Hilfe von SAP NetWeaver Process Orchestration. Auf Grundlage der Beschreibung kann man das Ganze aber ohne weiteres auch mit einem anderen BPMS nachvollziehen. Neben den Prozessmodellen werden auch alle anderen Aspekte erklärt, wie Datentypen, Serviceverträge, Persistenz, Benutzeroberflächen, Datenfluss und Korrelationen.
Sehr nützlich für den praktischen Einsatz dürften auch die verschiedenen, in BPMN modellierten Integrations-Patterns sein. Hierzu gehört beispielsweise das Request-Reply-Integrationspattern, bei dem der technische Prozess der Implementierungsschicht eine Anfrage der prozessgesteuerten Anwendung entgegennimmt, an ein oder mehrere Backend-Systeme weiterleitet und schließlich eine Antwort versendet. Stiehl diskutiert unterschiedliche Möglichkeiten zur Ermittlung und Integration der Empfängersysteme.
Backend-Systeme, die nicht selbst aktiv Nachrichten senden, müssen gegebenenfalls mit Hilfe eines Polling-Verfahrens regelmäßig abgefragt werden. Hierfür werden verschiedene Polling-Muster präsentiert. Weitere Muster befassen sich mit der Aggregation verschiedener Nachrichten zu einer Gesamtnachricht oder dem Re-Sequencing, d. h. dem Umsortieren von Nachrichten, die in beliebiger Reihenfolge empfangen wurden, aber in einer bestimmten Sequenz benötigt werden.
Um diese und weitere Integrationspatterns kompakt und übersichtlich darzustellen kann man die BPMN-Aktivitäten mit speziellen Icons versehen. Solche Erweiterungen der Darstellung sind ja im BPMN-Standard explizit vorgesehen.
Die Verbindung von Prozessen und Geschäftsregeln, auch unter Einbeziehung analytischer Informationen, eröffnet weitere Möglichkeiten der Flexibilisierung prozessgesteuerter Anwendungen.
Auch der Bezug des vorgestellten Ansatzes zu aktuell heiß diskutierten Themen, wie Adaptive Case Management oder Cloud Computing, wird vom Autor diskutiert. Das Buch wird abgerundet durch einige Exkurse zu aktuellen Forschungsthemen, die für prozessgesteuerte Anwendungen künftig interessant werden könnten.
Stiehl, Volker:
Prozessgesteuerte Anwendungen entwickeln und ausführen mit BPMN.
dpunkt 2012
Das Buch bei amazon (Anzeige)
Nach Vergleich der Inhaltsverzeichnisse scheint eine starke Überschneidung mit Volker Stiehl’s sehr empfehlenswerter Dissertation „Composite Application Systems“ gegeben zu sein.
Ja, Teile des Buchs basieren auf der Dissertation des Autors.