Einfach einmal ein Workflow oder Business Process Management-System (BPMS) ausprobieren, um Erfahrungen mit dieser Technologie zu sammeln? Das ist nicht leicht. Kommerzielle Systeme sind nicht so ohne weiteres verfügbar. Meist erfordern solche Systeme zudem eine aufwändige Installation auf einem Server. Im Open Source-Bereich gibt es mittlerweile zwar ebenfalls eine ganze Reihe von leistungsfähigen Systemen, wie z. B. jBPM von JBoss, doch bieten diese meist nur die Kernfunktionalität und erfordern erstmal einige Programmierung, um z. B. eine vernünftige Benutzungsoberfläche zu realisieren.
Eine interessante Möglichkeit bietet hier der BPMS-Hersteller Intalio. Er bietet eine frei verfügbare, lizenzkostenfreie Community Edition seines Intalio|BPMS an, die sich recht schnell und einfach installieren und ausprobieren lässt. Die Software lässt sich nach Registrierung von der Seite bpms.intalio.com herunterladen. Sie besteht aus zwei Komponenten: Dem BPMS Designer zur Modellierung und zum Entwurf der Workflows und dem BPMS Server, auf dem die Workflows anschließend ablaufen. Der BPMS Designer ist in die Entwicklungsumgebung Eclipse integriert.
Grafische Modellierung mit BPMN
Das Installationsprogramm installiert den Designer komplett mit der passenden Eclipse-Version, eine Integration in eine vorhandene Eclipse-Installation ist nicht möglich. Der Server benötigti keine Installation. Er besteht aus einem recht umfangreichen Zip-File, das lediglich entpackt werden muss. Sämtliche benötigte Software wie Applikationsserver (Apache Geronimo) und Datenbank (Apache Derby) sind bereits enthalten.
Den Einstieg erleichtern zahlreiche Tutorials, Screencasts und Beispiele, die ebenfalls auf der Seite bpms.intalio.com zu finden sind. Das Prinzip ist recht einfach: Der Workflow wird als grafisches Modell in BPMN (Business Process Modeling Notation) definiert. Zur Erstellung von Benutzerdialogen ist ein Forms Editor vorhanden. Darin lassen sich die benötigten Dialog-Elemente wie Eingabefelder, Auswahlmenüs etc. mit der Maus einfügen und nach Wunsch anordnen. Der fertige Dialog lässt sich per Drag&Drop als Aktivität in das BPMN-Modell ziehen und dort mit den vorhandenen Workflow-Aktivitäten verbinden.
Integration von Web Services per Drag&Drop
Eine Anbindung anderer Systeme erfolgt über Web Services. Hierzu wird lediglich die sogenannte WSDL-Datei (Web Services Description Language) benötigt, die den Aufruf und die Übergabeparameter des jeweiligen Web Service beschreibt. Deren Elemente können ebenfalls durch Drag&Drop in das Modell eingebunden werden, so dass der Modellierer sich nicht um technische Details kümmern muss. Schließlich muss noch bestimmt werden, welche Datenwerte in welchen Dialogfeldern angezeigt oder als Parameter übergeben werden. Auch dies wird grafisch durch Verbinden der betreffenden Datenelemente und Dialogfelder festgelegt.
Ist der Workflow fertiggestellt, so muss er auf den Server gebracht werden. Dieser – als Deployment bezeichnete – Vorgang wird im BPMS Designer mit einem Mausklick angestoßen. Ab sofort kann der Worfklow ausgeführt werden. Die Benutzung erfolgt über einen gewöhnlichen Web-Browser. Neben der Benutzungsoberfläche für die eigentlichen Anwender gibt es noch eine Web-Oberfläche für den Administrator, der die verschiedenen Prozesse und Instanzen überwachen kann.
Zero Code? Fast!
Auch wenn die Vorgehensweise vom Grundsatz her recht einfach ist und der Hersteller sein System mit dem Schlagwort „Zero Code“ bewirbt, erfordern etwas komplexere, realitätsnahe Workflow-Szenarien doch eine Menge, z. T. mühevolle Detailarbeit. Recht schnell gelangt man an den Punkt wo detaillierte XML-Kenntnisse erforderlich sind, um etwa sicherzustellen, dass nur zulässige Werte eingegeben werden können, oder um eine Datumsangabe in ein anderes Format für die Anzeige zu konvertieren. Die Formulierung komplizierter Bedingungen für den bei einer Verzweigung einzuschlagenden Pfad ist doch eher eine Aufgabe für einen Programmierer.
Als nachteilig erweist sich das Fehlen einer durchgängigen Dokumentation. Zwar gibt es viele Tutorials und Anleitungen, doch muss man sich Informationen z. T. mühsam zusammensuchen, und so manches erschließt sich erst durch Ausprobieren. Wenn alles nichts hilft, kann man seine Fragen in ein Forum stellen. Meist gibt es nützliche Hinweise von den Entwicklern. Vor Kurzem wurde auch ein deutschsprachiges Forum eröffnet.
Auch wenn die Community Edition auch für einen produktiven Einsatz genutzt werden darf, führen nicht nur die benötigten Support-Leistungen dazu, dass ein Umstieg auf eine kostenpflichtige Vollversion praktisch unumgänglich ist. So verfügt etwa die Community Version über keine richtige Benutzerverwaltung, weshalb sämtliche Benutzerinformationen mit unverschlüsseltem Passwort in eine Datei geschrieben werden müssen. Doch für einen Einsatz in Ausbildung, Forschung sowie die Erstellung von Prototypen und eine ausführliche Evaluierung ist die kostenlose Version der Software sehr gut geeignet.
Ich persönlich find noch die Oracle SOA Suite zusammen mit dem JDeveloper ganz nett, wenn man sich mal einen Einstieg in die Thematik verschaffen will. Aber im Vergleich zu Intalio fordert hier die Software doch einen wesentlich stärkeren Rechner und auf einem Notebook macht es fast keinen Spaß mehr. Soweit ich es überblicken kann, ist die Onlineversion von Oracle nicht beschränkt. Klar ist aber auch, dass man diese für einen produktiven Einsatz bezahlen muss.
Da Oracle SOA Suite einen vollständigen J2EE Server bietet, kann man da auch testweise mal eine Java Web Applikation deployen, was man sonst der Einfachheit wegen vielleicht nur auf einem Tomcat macht. Schon bei diesem kleinen Experiment sieht man sehr schnell, wie komplex die ganze SOA Materie und Technologie immer noch ist.
Als Einstieg in BPMS Technologien bzw. als OpenSource Alternative zu den kommerziellen Anbietern wie Oracle finde ich die Intalio BPM-Suite durchaus valide.
Wenn man jedoch die Funktionalität von Intalio BPMS mit einer Oracle SOA-Suite vergleicht sieht man schnell, dass Oracle mit seinem Produktportfolio (im Speziellen der BPEL-Engine) mehr Reife- und Entwicklungszeit hatte, und somit einen viel breitern Funktionsumfang abdecken kann.
Um eine BPM-Suite auf SOA-Basis in einem Unternehmen zu etablieren ist es von Vorteil den kompletten Softwarestack (Prozessdesigner, ESB, RulesEngine, ProzessEngine, WorkflowEngine, Service Registry, Service Repository, BAM) zur Verfügung zu haben. Dabei haben die „Großen“ wie IBM, BEA und Oracle NOCH die Nase vorn.
Ich denke auch, dass die großen Anbieter das umfangreichere Portfolio haben. Wegen des leichten Einstiegs und der einfachen Verfügbarkeit haben wir an der Hochschule für Lehr- und Forschungszwecke einiges mit Intalio gemacht. Ich bereite gerade ein Paper mit einem etwas umfangreicheren Beispiel vor (das ich natürlich in diesem Blog veröffentlichen werde). Dabei soll der Weg von einem fachlich ausgerichteten Modell (in ARIS) bis zum ausführbaren Workflow komplett mit allen Dialogen, Datentransformationen usw. beschrieben werden. Darin werden auch einige Erfahrungen mit Intalio beschrieben. Ich bin dann auf Ihre Kommentare gespannt, ob sich dies mit der Oracle SOA-Suite oder einem anderen System ähnlich darstellt, oder ob es im Detail doch sehr große Unterschiede gibt.