12
Einführung in Oracle BPM von einem (ehemaligen) BPM-Kritiker Georg Henzler Logica Deutschland GmbH & Co. KG München Schlüsselworte: Business Process Management (BPM), Development Tools, Process Engine, Business Activity Monitoring (BAM), Business Process Modeling Notation (BPMN), Domain Specific Language (DSL) Einleitung Business-Process-Management-Tools wie Oracle BPM versprechen dramatische Effizienzsteigerung bei der Entwicklung von prozessbasierten Applikationen. Trotzdem sollte man nicht blauäugig an das Thema herangehen. Wie bei allem, sollten auch hier Vor- und Nachteile sorgfältig abgewogen und eine Strategie für den Einsatz entwickelt werden um mit BPM Erfolge zu erzielen. Begriffsdefinition BPM Unter Business Process Management allgemein versteht man Methoden, Werkzeuge und Technologien mit denen man Geschäftsprozesse erstellen, ausführen, analysieren, simulieren und kontrollieren kann. Der BPM-Ansatz stellt den Prozess in den Mittelpunkt und zielt darauf ab, unter enger Zusammenarbeit von Fachseite und IT-Spezialisten, diesen kontinuierlich zu verbessern. BPM involviert beliebige Mitarbeiter und Abteilungen aus einem Unternehmen und kann auch Zulieferer und Kunden miteinbeziehen. BPM Werkzeuge Im Kontext der Informatik geht es um die Werkzeuge, die Business Process Management effizient ermöglichen. Gute Werkzeuge bieten eine visuelle Diagrammsprache für die Prozessmodellierung. Dabei handelt es sich um eine Domain Specific Language (DSL) der Prozessdomäne, die das Arbeiten im Vergleich zur Implementierung mit General Purpose Languages wie Java oder C# erleichtert. Zentrale Funktionalität eines BPM-Werkzeugs ist die Modellierung von Prozessen. Der OMG-Standard BPMN (Business Process Modeling Notation) wird inzwischen von fast allen Tools unterstützt. Ein BPM Werkzeug bringt hierfür eine Laufzeitumgebung mit und ist dazu in der Lage, Prozessdiagramme direkt auszuführen. Dabei werden die Prozessdaten erfasst und stehen somit dem Business Activity Monitoring (BAM) zur Verfügung um Auswertungen zu erstellen. Ferner bieten die meisten Tools Simulationen an, um die

Einführung in Oracle BPM von einem (ehemaligen) BPM · PDF fileBusiness Process Management (BPM), ... Languages wie Java oder C# erleichtert. ... wogegen es sich zum Beispiel bei

  • Upload
    dongoc

  • View
    245

  • Download
    6

Embed Size (px)

Citation preview

Page 1: Einführung in Oracle BPM von einem (ehemaligen) BPM · PDF fileBusiness Process Management (BPM), ... Languages wie Java oder C# erleichtert. ... wogegen es sich zum Beispiel bei

Einführung in Oracle BPM

von einem (ehemaligen) BPM-Kritiker

Georg Henzler

Logica Deutschland GmbH & Co. KG

München

Schlüsselworte:

Business Process Management (BPM), Development Tools, Process Engine, BusinessActivity Monitoring (BAM), Business Process Modeling Notation (BPMN), Domain SpecificLanguage (DSL)

Einleitung

Business-Process-Management-Tools wie Oracle BPM versprechen dramatischeEffizienzsteigerung bei der Entwicklung von prozessbasierten Applikationen. Trotzdem sollteman nicht blauäugig an das Thema herangehen. Wie bei allem, sollten auch hier Vor- undNachteile sorgfältig abgewogen und eine Strategie für den Einsatz entwickelt werden um mitBPM Erfolge zu erzielen.

Begriffsdefinition BPM

Unter Business Process Management allgemein versteht man Methoden, Werkzeuge undTechnologien mit denen man Geschäftsprozesse erstellen, ausführen, analysieren, simulierenund kontrollieren kann. Der BPM-Ansatz stellt den Prozess in den Mittelpunkt und zieltdarauf ab, unter enger Zusammenarbeit von Fachseite und IT-Spezialisten, diesenkontinuierlich zu verbessern. BPM involviert beliebige Mitarbeiter und Abteilungen auseinem Unternehmen und kann auch Zulieferer und Kunden miteinbeziehen.

BPM Werkzeuge

Im Kontext der Informatik geht es um die Werkzeuge, die Business Process Managementeffizient ermöglichen. Gute Werkzeuge bieten eine visuelle Diagrammsprache für dieProzessmodellierung. Dabei handelt es sich um eine Domain Specific Language (DSL) derProzessdomäne, die das Arbeiten im Vergleich zur Implementierung mit General PurposeLanguages wie Java oder C# erleichtert.

Zentrale Funktionalität eines BPM-Werkzeugs ist die Modellierung von Prozessen. DerOMG-Standard BPMN (Business Process Modeling Notation) wird inzwischen von fast allenTools unterstützt. Ein BPM Werkzeug bringt hierfür eine Laufzeitumgebung mit und ist dazuin der Lage, Prozessdiagramme direkt auszuführen. Dabei werden die Prozessdaten erfasstund stehen somit dem Business Activity Monitoring (BAM) zur Verfügung umAuswertungen zu erstellen. Ferner bieten die meisten Tools Simulationen an, um die

Page 2: Einführung in Oracle BPM von einem (ehemaligen) BPM · PDF fileBusiness Process Management (BPM), ... Languages wie Java oder C# erleichtert. ... wogegen es sich zum Beispiel bei

modellierten Prozesse schon vor dem produktiven Einsatz mit verschiedenenRahmenbedingungen zu testen.

Um Prozesse sinnvoll modellieren zu können, muss ein Prozess in der Lage sein, sowohl mitBenutzern als auch mit technischen Systemen kommunizieren zu können.

Gewöhnlich werden eine Vielzahl Integrationstechnologien und Protokolle unterstützt, um aufandere Systeme zugreifen zu können (Web Services, EJB über IIOP, JMS etc.). Zusätzlichbieten die Tools normalerweise auch eine API-Schnittstelle an, um von außen steuerbar zusein.

Die Interaktion mit Benutzern kann entweder direkt durch ein vom Tool zur Verfügunggestellten Nutzerinterface oder durch Drittkomponenten, welche über die Tool-API mit derProzess-Engine kommunizieren, geschehen.

Fast alle namhaften Hersteller haben sich dem Thema BPM angenommen: LombardiTeamworks, IBM Process Server, Microsoft BizTalk und Oracle BPM sind kommerzielleProdukte, wogegen es sich zum Beispiel bei jBPM von JBoss um eine Open-Source-Alternative handelt1.

Im Folgenden wird Oracle BPM näher beleuchtet. Das Tool wurde ursprünglich von derargentinischen Firma Fuego entwickelt – manche Klassennamen erinnern noch daran – undnach der Akquisition durch BEA unter dem Namen Aqualogic BPM weiterentwickelt. ImZuge der kürzlich erfolgten Übernahme von BEA durch Oracle wurde das Tool in OracleBPM umbenannt.

Vorbehalte gegenüber BPM Werkzeugen

Hersteller von BPM Werkzeugen versprechen oft, dass durch die einfache visuelleProgrammierung jeder (im speziellen auch Fachabteilungen selbst) Prozesse erstellen undändern können soll. Aber kann BPMN allein Prozesse wirklich komplett beschreiben oderbraucht es zusätzlich Programmcode? Sind nicht doch manchmal aufgrund von technischenRahmenbedingungen technische Diagrammelemente nötig, die den fachlichen Nutzer nurverwirren? Wie sieht es mit Versionierung aus, um die Entwicklung von Prozessen im Teamzu erlauben? Wie sieht es überhaupt mit Qualitätssicherung aus, wenn die Fachseite Prozesse„agil“ verändern kann? Befinden sich die BPMN-Diagramme auf einer so hohenAbstraktionsebene, dass gar keine Fehler mehr möglich sind? Ist das Tool wirklich flexibelgenug, um allen zukünftigen Anforderungen zu genügen?

Die Oracle BPM Process Engine

Die Process Engine ist als Laufzeitumgebung für Prozesse das Herzstück des Produkts.Oracles Implementierung bietet hohen Durchsatz und Verfügbarkeit (clusterfähig) und eineVersionsverwaltung. Diese erlaubt beim Deployment festzulegen, ob bereits laufende

1 Diese Liste hat keinen Anspruch auf Vollständigkeit

Page 3: Einführung in Oracle BPM von einem (ehemaligen) BPM · PDF fileBusiness Process Management (BPM), ... Languages wie Java oder C# erleichtert. ... wogegen es sich zum Beispiel bei

Prozessinstanzen2 des zu ändernden Prozesses mit der alten Prozessversion weiterlaufensollen (immer möglich), oder ob versucht werden soll, die laufenden Instanzen auf die neueProzessdefinition zu migrieren. Dies geht natürlich nicht immer, wenn z.B. ein Prozessschrittgelöscht wird, werden die Instanzen, welche sich an dieser Stelle befinden, nicht migriertwerden können.

Herausragend sind die Fähigkeiten der Engine im Bezug auf die Integration mit anderenSystemen. Neben der für BPM-Tools klassischen Web-Service-Integration können auch allegängigen anderen Schnittstellen bedient werden: Von EJB, JMS, JMX, JNDI, SQL, MicrosoftCOM, Mail (senden und empfangen) bis zu CORBA ist alles möglich. Da das Tool selbst aufeiner Java Runtime läuft, ist es auch möglich Module direkt in Java zu programmieren und alsjar-Datei dem Prozess zur Verfügung zu stellen.

Für die Benutzung der Process Engine sind grundsätzlich zwei Szenarien denkbar: Zum einenkann das portalbasierte Standard-Benutzer-Interface (BPM WorkSpace) benutzt werden. Hierist Oracle BPM besonders stark durch die Formulare, die sich einfach im BPM Studioerstellen lassen. Alternativ kann die Process Engine durch die Process API (PAPI) komplettferngesteuert werden. Bestehende Systeme können so angepasst werden, um an neuaufgesetzten Unternehmensprozessen teilzunehmen. Natürlich ist auch eine Kombinationbeider Strategien möglich.

Anzumerken ist, dass Oracles Process Engine ausschließlich als eigenständiger Serverbetrieben werden kann und sie nicht wie z.B. jBPM auch einfach als Bibliothek zu einembestehenden Modul hinzugefügt werden kann. Dies macht aber ohnehin auch nur für kleinereProjekte Sinn.

Die Entwicklungsumgebung

Das Oracle BPM Studio basiert auf Eclipse, wodurch sich die meisten Entwickler schnellzurechtfinden dürften. Neben den bekannten Perspektiven bringt das Tool eine speziellePerspektive für die BPM-Entwicklung mit, die es erlaubt Prozesse zu modellieren. Neben denspeziellen grafischen Editoren für Prozesse und Screenflows (dazu später mehr) gibt es auchdie üblichen Code-, Property- und Outline-Editoren. Der Project Navigator spiegelt imWesentlichen die Projektstruktur im Dateisystem wieder, fügt allerdings bestimmteKontextinformationen hinzu und zeigt die Knoten mit passenden Icons an.

Ein Projekt enthält Prozesse, Screenflows, Programmcode (für Events), Nutzer-Interface-Elemente (JSP oder „Presentations“ = Formulare, die einfach in der IDE erstellt werdenkönnen), organisatorische Gegebenheiten (Rollen, Gruppen, Benutzer, Regeln, BusinessParameter), Simulationen und externe Ressourcen (deklariert die Schnittstellen zuUmsystemen).

2 Das Verhältnis zwischen Prozess und Prozessinstanz ist analog zum Konzept von Klasse und Objektinstanz:Beim Prozess handelt es sich um die allgemeingültige Beschreibung des Prozesses, bei einer Prozessinstanz umdie konkrete Ausprägung eines Prozesses.

Page 4: Einführung in Oracle BPM von einem (ehemaligen) BPM · PDF fileBusiness Process Management (BPM), ... Languages wie Java oder C# erleichtert. ... wogegen es sich zum Beispiel bei

Abbildung 1: Oracle BPM Studio

Die Werkzeugleiste enthält Icons um die Prozess Engine mit den modellierten Prozessen zustarten. Der Zugriff und Test erfolgt über den BPM WorkSpace3.

Die Diagrammsprache: BPMN

Bei der Business Process Modelling Notation (BPMN) handelt es sich um eine von der OMGstandardisierte Diagrammsprache, ähnlich den UML Prozessdiagrammen. Jeder Prozessbesitzt genau einen Start- und Endpunkt. Ein Prozess kann automatische Prozessschritte(=Aktivitäten) als auch manuelle Prozessschritte beinhalten, welche von Nutzern ausgeführtwerden.

3 Das Standard-Benutzer-Interface für die Prozessteilnehmer heißt BPM WorkSpace was nicht zu verwechselnist mit den Begriff Workspace aus der Eclipse-Welt (Set von Projekten in einem Verzeichnis).

Page 5: Einführung in Oracle BPM von einem (ehemaligen) BPM · PDF fileBusiness Process Management (BPM), ... Languages wie Java oder C# erleichtert. ... wogegen es sich zum Beispiel bei

Abbildung 2: BPMN Beispiel für Reisekostenantrag

Automatische Aktivitäten können z.B. Umsysteme aufrufen, um für diese oder eine derfolgenden Aktivitäten notwendige Informationen zu erfragen oder alternativ einfach nurinterne Zustände auswerten.

Manuelle Aktivitäten sammeln Daten durch ein Nutzer-Interface, welche später vom Prozessweiterverarbeitet werden können. Um festzulegen, von welcher Rolle eine manuelle Aktivitätbearbeitet werden soll, gibt es Schwimmbahnen (Swimlanes) worin die Aktivitätenpositioniert werden. Oft sind auch manuelle Vorgänge, welche in Umsystemen stattfinden(z.B. Wareneingang in SAP), Teil eines Prozesses. Diese können über „Message Wait“eingebunden werden. Dazu muss allerdings das Umsystem angepasst werden, um dieBenachrichtigung zu senden.

Transitionspfeile zwischen Startpunkt, Aktivitäten und dem Endpunkt bestimmen denProzessablauf. Bedingte Pfeile sind mit einer Raute gekennzeichnet. Es gibt noch weitereTransitionsarten, wie z.B. der Timer (siehe Aktivität „Send Reminder“), welcher einemanuelle Aktivität nach einer bestimmten Zeit abbricht.

Screenflows sind Subprozesse, die genau einer Rolle zugeordnet sind – daher gibt es in einemScreenflow-Diagramm keine Swimlanes. Ein Screenflow kapselt ein oder mehrere Formularefür Benutzereingaben und ermöglicht die Wiederverwendung von Formularen in einemBPM-Projekt. Eine manuelle Aktivität kann durch einen Screenflow implementiert werden.

Page 6: Einführung in Oracle BPM von einem (ehemaligen) BPM · PDF fileBusiness Process Management (BPM), ... Languages wie Java oder C# erleichtert. ... wogegen es sich zum Beispiel bei

Abbildung 3: Beispiel Screenflow

Die Implementierung hinter BPMN

Ganz ohne Programmierung kommt man jedoch auch bei der Verwendung von BPMN nichtaus. Die Diagramme beschreiben hervorragend die Abfolge von Aktivitäten undBedingungen, welche zu unterschiedlichen Prozessablaufpfaden führen, aber insbesondere fürdas Verhalten von Aktivitäten muss immer noch zusätzlich Code geschrieben werden.

Es gibt verschiedene Möglichkeiten eine Implementierung für eine Aktivität zu definieren.Dazu ist es wichtig sich vorab klarzumachen, dass für jedes Projekt ein Objektbaum ähnlichdem Document Object Model (DOM) einer HTML-Seite existiert. Es ist möglich eigeneObjekte diesem Baum hinzuzufügen. Es sind aber auch alle Projektartefakte (wie z.B. derExpenseReport, dem zusätzliche Attribute hinzugefügt werden können) in ihm verfügbar.

Für automatische Prozessschritte wird vom Tool automatisch eine Event-Methode amElternobjekt (Prozess oder Screenflow) generiert. Hier kann beliebiger Code hinterlegtwerden. Für die Programmierung steht sowohl die Bibliothek der Process Engine(Fuego.Lib.*-Klassen) als auch alle Klassen der Java-Standard-Bibliothek zur Verfügung.Programmiert wird in Java, VisualBasic.Net oder Process Business Language (PBL) –gespeichert wird ein Zwischenformat, so dass jederzeit zwischen den Sprachen gewechseltwerden kann.

Page 7: Einführung in Oracle BPM von einem (ehemaligen) BPM · PDF fileBusiness Process Management (BPM), ... Languages wie Java oder C# erleichtert. ... wogegen es sich zum Beispiel bei

Abbildung 4: Implementierung einer automatischen Aktivität

Die Implementierung von manuellen Aktivitäten ist typischerweise ein Formular in dem derNutzer Information eingibt. Für Formulare bietet Oracle BPM Studio einen mächtigenFormulareditor welcher Presentations (so heißen Formulare im Tool-Kontext) erstellt. Einermanuellen Aktivität kann entweder direkt eine Presentation oder ein Screenflow – derseinerseits eine wiederverwendbare Sequenz von Presentations darstellt – zugeordnet werden.Ein Formular wird an ein BPM-Objekt gebunden und dessen Attributen werdenEingabefeldern zugewiesen. Die Eingaben werden später dann automatisch, gemäß demAttributtyp, validiert. Für Datumswerte steht automatisch ein Date-Picker zur Verfügung.

Page 8: Einführung in Oracle BPM von einem (ehemaligen) BPM · PDF fileBusiness Process Management (BPM), ... Languages wie Java oder C# erleichtert. ... wogegen es sich zum Beispiel bei

Abbildung 5: Presentation/Formular für ExpenseReport

Das Standard-Benutzer-Interface für Prozessteilnehmer: Der BPM WorkSpace

Der BPM WorkSpace kann zum Testen einfach aus dem Oracle BPM Studio heraus gestartetwerden – er läuft dann auf einem lokalen Tomcat-Server. In Produktion werden Portletsverwendet, welche die gleiche Funktionalität bieten. Für die Testumgebung werden dieNutzer verwendet, die im Projekt definiert sind („Participants“), wogegen in derPortalumgebung natürlich die Benutzer aus dem Portal verwendet werden. Alle Portletszeigen ihre Informationen immer gefiltert für die Rolle des aktuellen Nutzers an.

Das Nutzer-Interface ist weitgehend auf spezielle Bedürfnisse anpassbar. Dies umfasst dasHTML-Layout, was durch eigene CSS-Dateien angepasst werden kann, als auch individuelleSpalten in Work Items.

Page 9: Einführung in Oracle BPM von einem (ehemaligen) BPM · PDF fileBusiness Process Management (BPM), ... Languages wie Java oder C# erleichtert. ... wogegen es sich zum Beispiel bei

Abbildung 6: BPM WorkSpace

Auf der linken Seite befindet sich das Applications-Portlet. Hier können sowohl Prozessegestartet werden („Create Expense Report“), als auch globale Aktivitäten (Global Activitiesim BPM Studio) aufgerufen werden („Show Workload“).

Das Portlet „Work Items“ enthält die zentrale Funktionalität des WorkSpace. Hier sind allefür den Nutzer relevanten Work Items (Prozessinstanzen) aufgelistet. Dies beinhaltet alleWork Items, welche noch keinem Teilnehmer (Participant) zugeordnet sind, also auch dieInstanzen, die dem Nutzer direkt zugeordnet sind. Die Zuordnung nehmen die Nutzer selbstvor („Assign to me“). Damit wird das Arbeitsaufkommen automatisch auf alle Nutzer einerRolle verteilt.

In Work Item Detail werden zusätzliche Information zu dem aktuell ausgewählten Item in derListe aufgeführt. Dies beinhaltet z.B. die Historie (Audit Trail), Bemerkungen (Notes) und diePriorität.

Um ein Work Item zu bearbeiten kann der Action-Link in der rechten Spalte der Listegeklickt werden. Damit öffnet sich in der Regel ein Formular, um Informationen vom Nutzerabzufragen und der Prozess wird zur nächsten Aktivität weitergeleitet.

Page 10: Einführung in Oracle BPM von einem (ehemaligen) BPM · PDF fileBusiness Process Management (BPM), ... Languages wie Java oder C# erleichtert. ... wogegen es sich zum Beispiel bei

Abbildung 7: Ein von Oracle BPM generiertes Formular

Der BPM WorkSpace bietet einige Features, um die Transparenz zu erhöhen. So können sichdie Nutzer die aktuelle Position ihres Work Items im Gesamtprozess ansehen und Managerkönnen sich jederzeit die Workload des Prozesses ansehen und so Flaschenhälseidentifizieren.

Page 11: Einführung in Oracle BPM von einem (ehemaligen) BPM · PDF fileBusiness Process Management (BPM), ... Languages wie Java oder C# erleichtert. ... wogegen es sich zum Beispiel bei

Abbildung 8: Show Workload zeigt die aktuell laufenden Prozessinstanzen im Diagramm

Abbildung 9: Die Prozess Map zeigt die aktuelle Position eines Work Items

Page 12: Einführung in Oracle BPM von einem (ehemaligen) BPM · PDF fileBusiness Process Management (BPM), ... Languages wie Java oder C# erleichtert. ... wogegen es sich zum Beispiel bei

Operative Aspekte

Das BPM Studio erlaubt es ein Projekt zu exportieren (Dateiendung *.exp, wobei es sicheinfach um eine gezippte Version des Projektverzeichnisses handelt). Diese Deployment Unitkann mit einem Ant-Task auf der Process Engine ausgerollt werden. Dazu müssenumgebungsspezifische Information mitgeliefert werden. Dies beinhaltet z. B. die Zuordnungvon Portalgruppen zu Rollen im BPM-Projekt, als auch die im Projekt unter ExternalResources definierten externen Abhängigkeiten wie z.B. Web Service URLs.

Zusammenarbeit im Team mit Versionskontrolle funktioniert problemlos durch dieIntegration der bereits für die Eclipse-Plattform bestehenden Plugins wie z.B. Subclipse fürSubversion. Ein BPM Projekt besteht hauptsächlich aus Xml-Dateien, die intuitiv benanntund sinnvoll in einen Verzeichnisbaum eingegliedert sind. Wenn man das Projekt gut inSubprozesse und Screenflows unterteilt, sollte man selten an den gleichen Dateien arbeiten.Merge-Konflikte treten somit selten auf.

Fazit

Oracle BPM bietet eine Process Engine, die durch ihre Integrationsmöglichkeiten undFlexibilität besticht. Mit dem WorkSpace bietet das BPM Werkzeug ein solidesportalbasiertes Standard-Benutzer-Interface, mit dem sich Prozesse schnell in der Praxis inBetrieb nehmen lassen.

Was die Erstellung der Prozess mit BPM Studio angeht, ist es sicher nicht möglich, dass dieFachabteilungen mit BPM-Tools komplett ohne die IT-Abteilung auskommen. Hierzu musstrotz intuitiv verständlichen Prozessdiagrammen zu viel programmiert und konfiguriertwerden. Positiv ist allerdings, dass es durch den Einsatz von BPM-Tools möglich wird, vielenger mit der Fachabteilung zusammenzuarbeiten. In Workshops kann einfach und für alleverständlich direkt am Prozessmodell gefeilt werden, ohne den Umweg über Spezifikationenund UML-Diagramme machen zu müssen. Dies bringt also durchaus die versprocheneAgilität.

Nicht zu unterschätzen ist allerdings der Einführungsaufwand: Zusätzliche Server werdenbenötigt und müssen installiert und konfiguriert werden. Die Anwender müssen geschultwerden. Dies gilt sowohl für die Prozessteilnehmer, die sich im Portal zurechtfinden müssenals auch für die Entwickler, die mit dem BPM Studio arbeiten.

Kontaktadresse:

Georg Henzler

Logica Deutschland GmbH & Co. KG

Nockherstr. 2D-81541 München

Telefon: +49(0)178-8866190Fax: +49(0) 178-998866190E-Mail [email protected]: http://www.logica.com/de