Deklarative Prozessmodellierung
Kategorie Promotion | 1 Kommentar »
Die Geschäftsprozessmodellierung ist besonders geeignet, wenn man klar strukturierbare Prozesse hat. Dann kann man den Gesamtablauf in Einzelschritte zerlegen und diese sinnvoll miteinander verbinden. Die täglichen Abläufe von Wissensarbeitern, also etwa Ingenieuren und Architekten, lassen sich mit Prozessmodellen aber nur schwer erfassen. Eine aktuelle Masterarbeit zeigt, wie solche Arbeitsabläufe mit deklarativen Prozessmodellen sinnvoll abgebildet werden können…
Der Bestellprozess bei einem Versandhändler wie Amazon ist ein Geschenk für jeden Prozessmodellierer, denn die beteiligten Akteure sind identifizierbar und die zur Bestellung notwendigen Einzelschritte lassen sich ableiten. Die Abhängigkeiten zwischen den Einzelschritten sind bekannt. So darf zum Beispiel die Auftragsbestätigung an den Kunden erst nach Verfügbarkeitsprüfung und Reservierung des Produkts erfolgen. Deshalb werden Bestellprozesse auch gerne als Beispiele für die Illustration von Prozessmodellierungssprachen wie BPMN und EPK verwendet.
Ganz anders sieht es aus, wenn man Prozesse modellieren will, bei denen es keine eindeutige Abhängigkeit zwischen den Einzelschritten gibt. Um zum Beispiel einen Salat zu zubereiten, muss man die einzelnen Gemüsearten waschen und schneiden. Es ist aber unerheblich, ob man zunächst jedes Gemüse erst wäscht und dann schneidet oder ob man alle Gemüse auf einmal wäscht und dann alle schneidet. Die einzige Abhängigkeit ist, dass man ein Gemüse erst schneiden darf, nachdem man es gewaschen hat. Ähnliche Probleme findet man natürlich nicht nur im professionellen Salatzubereitungswesen, sondern zum Beispiel auch in Ingenieurberufen, in denen jede Durchführung eines Geschäftsprozess (etwa Planung einer Biogasanlage) zu einem individuellen Projektvorgehen führt.
Wenn man ein Anhänger des semantischen Geschäftsprozessmanagement ist, würde man nun sagen, dass man die Prozessschritte, ihre Abhängigkeiten und den aktuellen Projektkontext ontologisch definiert, um dann mit einem Reasoner ein gültiges Vorgehen ermitteln zu lassen. Nachteil ist, dass man eine Vielzahl neuer und noch unausgereifter Technologien einführen muss.
Es geht aber auch anders. Dominique Gueniat, Mitarbeiter der Swisscom, hat in seiner Masterarbeit an der Berner Fachhochschule ein Verfahren entwickelt, um deklarative Prozessmodelle zu erfassen und auszuführen. An sich ist dies nicht neu, denn es gibt schon diverse Arbeiten auf diesem Gebiet. Neu ist aus meiner Sicht aber, dass er sowohl ein Metamodel für solch eine Modellierungssprache schafft, eine Notation definiert und einen Algorithmus entwickelt, mit dem entsprechende Modelle ausgeführt werden können.
Laut Dominiques Vorgehen muss man zunächst die einzelnen Aktivitäten erkennen und zu diesen Daten wie den Vorgänger oder erzeugte Ausgaben erheben. Um alle zu erhebenden Daten bzw. Beschreibungselemente genau zu definieren, hat Dominique ein Metamodel entwickelt, das die Beziehungen der einzelnen Elemente definiert. Er bietet auch eine einfache Notation, um die so erfassten Prozessmodelle grafisch darzustellen. Er schlägt auch ein paar Abstraktionsverfahren vor, um Details der deklarativen Prozessmodelle ausblenden zu können. In einer Art Pseudocode beschreibt er den prinzipiellen Ablauf eines Algorithmus zur Ausführung der deklarativen Prozessmodelle.
Sein Ansatz hat aber auch ein paar Nachteile. Zunächst habe ich beim Lesen seiner Arbeit eine Diskussion verwandter Arbeiten vermisst. Es ist zum Beispiel unklar, welcher Zusammenhang zu Business Rules besteht. Auch geistert eine ähnliche Idee unter dem Begriff event-based architecture (ereignisbasierte Architektur) gerade durch die Szene. Die von ihm entwickelten Diagramme ähneln Gantt Diagrammen. Gibt es einen substantiellen Unterschied zu diesen? Interessant wäre auch zu untersuchen bzw. zu beweisen, dass jedes deklarative Diagramm tatsächlich durch das von ihm vorgeschlagene Verfahren zur Abstraktion vereinfacht werden kann. Ich glaube das Vorhandensein von Algorithmen zur Erkennung von unerfüllbaren Modellen ist ebenfalls wichtig, da man als Modellierer wohl kaum noch selbst die Instantiierung nachvollziehen kann.
Trotzdem ist die Arbeit ein angenehmer Denkanstoß weg von den täglichen Prozessmodellen. Die deklarative Modellierung von Prozessmodellen ist leider noch nicht in der Praxis angekommen und da sind natürlich solche Arbeiten besonders wichtig, denn sie bieten eine integrierte Gesamtlösung. Spannend zu wissen wäre nun natürlich, in welchem Umfang die Ideen von Dominique Eingang bei der Swisscom finden.
Du schreibst, dass die deklarative Modellierung von Prozessen noch nicht in der Praxis angekommen ist. Swisscom bildet hier wohl eine Ausnahme. Die von mir beschriebene Methode ist eine Weiterentwicklung der Methode, welche den Kern unserer produktiven Prozess Engine bildet. Auch hier werden die Prozesse deklarativ beschrieben, allerdings noch nicht so konsequent wie in meiner Arbeit vorgeschlagen. Wir verwenden ein einfaches, deklaratives Prozess Modell (Prozess Template) und passen dies dynamisch mit Business Rules an die konkrete Situation einer Prozessinstanz an (http://www.ifi.uzh.ch/si-se/sise2008/slides/Tag6_Gueniat.pdf).
Bis dato wurden auf dieser Engine über 100, teilweise sehr komplexe, Prozesse implementiert. Die deklarative Modellierung von Prozessen hat sich in der Praxis in einem sehr anspruchsvollen Umfeld bestens bewährt. Es würde mich freuen, wenn meine Arbeit einen Teil dazu beitragen würde, dass die deklarative Modellierung von Prozessen vermehrt angewandt wird. In dem Sinne freut es mich sehr, dass Du meine Arbeit in Deinem BLOG erwähnst.