Interview mit Daniel Meyer

Mit BPM und Java EE kann man einfach verdammt coolen Code schreiben!

Daniel Meyer

Um Java EE mit Business Process Management zu verbinden, gibt es zwar noch keinen offiziellen Standard, doch leisten Open-Source-Projekte bereits gute Dienste. Wo und wie die Kombination aus Java EE und BPM Sinn macht, verrät uns Daniel Meyer, technical Project Lead des camunda BPM Open-Source-Projektes

JAXenter: Du deckst beim Java EE Summit das Thema Business Process Management ab. Warum benötigt man das Thema BPM auf einem Java-EE-Event?

Daniel Meyer: Ein Java-EE-Entwickler kann seinen Werkzeugkasten mit BPMN und der Prozessmaschine um ein sehr mächtiges Werkzeug erweitern: Er bekommt die Möglichkeit, komplexe Abläufe zu implementieren, an denen mehrere Systeme und vielleicht auch menschliche Teilnehmer beteiligt sein können. Das wird immer wichtiger, sowohl im Kontext von gewachsenen IT-Strukturen in Unternehmen als auch darüber hinaus. Das klassische Beispiel ist die Bearbeitung einer Bestellung aus einem Shopsystem: Der Benutzer gibt die Bestellung auf, und danach muss ein komplexer Bestellprozess abgewickelt werden, der mehrere Systeme (Lager, Rechnung, Bezahlung, …) untereinander koordiniert und an definierten Stellen menschliche Teilnehmer mit einbezieht. So im Einsatz hat das zum Beispiel der Onlinehändler Zalando: Immer wenn man dort eine Bestellung aufgibt, wird diese über eine BPMN 2.0 Prozessmaschine abgewickelt. Natürlich muss es nicht immer ganz so kompliziert sein wie in diesem Fall, aber insgesamt werden diese Anforderungen mehr, und BPMN und die Prozessmaschine werden immer wichtiger.

In der Praxis merken wir, dass sich dieser Ansatz sehr gut in die Java-EE-Welt integriert und die hier vorhandenen Programmiermodelle ergänzt. Dabei bewegen wir uns offensichtlich nicht in der Mythen- und Sagenwelt, die von vielen Analysten und Herstellern um das Thema gesponnen wurde, sondern haben ganz bodenständige Technologien und Programmierpatterns vor uns. Und damit kann man einfach verdammt coolen Code schreiben, und das wollen wir bei dem Workshop auf dem Java EE Summit machen. Wenn nicht hier dann, wo sonst?

JAXenter: Siehst du eine Chance, dass es in Java EE 8 zu einer Standardisierung dieser Thematik kommen könnte?

Daniel Meyer: Ich persönlich glaube, dass das Thema das Potenzial dazu hat. Aktuell fehlt allerdings der Treiber hinter einem solchen Projekt. Das könnte verschiedene Gründe haben.

Ich vermute, dass die großen Hersteller daran kein strategisches Interesse haben. BPM ist bei denen oft Teil von teuren Zusatzprodukten oder „BPM/SOA Suiten“, und ohne entsprechenden Marktdruck werden sie diese Technologie nicht als Teil der Anwendungsentwicklungsplattform – sprich dem Java EE Application Server – bereitstellen. Außerdem sind deren Suiten oft verhältnismäßig schlecht in die Java-EE-Programmiermodelle integriert.

Die kleinen Vendors (von denen es im BPM-Kontext viele gibt) sind thematisch oft in Nischen unterwegs und/oder propagieren konträre Ansätze wie Zero-Coding.

Den einzigen Weg, den ich sehe, um eine Standardisierung zu erreichen, ist, dass wir es in der Open-Source-Welt schaffen, mehr und mehr Anwender zu finden und so den Druck auf die großen Player zu erhöhen. Dabei müssen wir selbst darauf achten, stets die Integration mit Java EE zu suchen und uns als Teil dieses Kosmos zu sehen. Wir dürfen uns nicht ablenken lassen und selbst in die oben genannten Nischen reingehen oder anfangen, Vendor-Lock-In nach dem Vorbild der großen Hersteller zu betreiben.

JAXenter: Wie kommt im Workshop euer eigenes Open-Source-Projekt camunda BPM ins Spiel?

Daniel Meyer: In camunda BPM betreiben wir einen hohen Aufwand, um unseren Nutzern eine gute Integration in Java EE zu geben. Als Ergebnis kann der Nutzer dann „ganz normale Java-EE-Anwendungen“ schreiben, in denen er eben auch BPMN 2.0 und die Prozessmaschine benutzt. Dies funktioniert in beide Richtungen: Ich kann mir in jede EE-Komponente (MDB, EJB, CDI Bean …) einfach eine Referenz auf die Process Engine per @Inject geben oder auf den aktuellen BPMN-Ausführungskontext zugreifen. In der anderen Richtung kann ich sehr einfach meine EE-Komponenten aus einem BPMN-Prozess heraus aufrufen. Eine solche Anwendung werden wir in dem Workshop Schritt für Schritt gemeinsam entwickeln und dabei verschiedene Lösungsansätze gemeinsam diskutieren und bewerten.
Weil wir bei camunda selbst eben kein großer Hersteller mit eigenem Application Server sind, testen wir unsere Plattform auch auf allen gängigen Servern. Die Teilnehmer werden das im Workshop mitgenommene Wissen nachher in ihrer eigenen Umgebung anwenden können. Das ist mir wichtig.

JAXenter: Es ist jetzt gut ein Jahr vergangen, seitdem ihr Activity geforkt und eine eigene Open-Source-BPM-Plattform gegründet habt. Wie ist das Jahr verlaufen, und was steht für dieses Jahr an?

Daniel Meyer: Ein solches Open-Source-Pojekt als kleine Firma eigenverantwortlich zu stemmen, erfordert von jedem der Beteiligten hohen Einsatz und viel Energie. Entsprechend haben wir auch ein sehr intensives Jahr hinter uns, in dem wir uns auf verschiedenen Gebieten stark weiterentwickelt haben. Dazu gehören die Professionalisierung der Entwicklung und Testinfrastruktur, Aufbau der Community (wir haben viele freie Community Events gemacht), Support, Marketing, Vertrieb und so weiter.
Das konnten wir nur schaffen, weil wir, gerade in der Kern-Produktentwicklung, ein sehr starkes Team haben, das wir dieses Jahr weiter verstärken konnten. Zugute kam uns auch, dass die Activiti Codebase für uns natürlich nicht neu war. Zu einem Teil haben wir ja unseren eigenen Code geforked 🙂 So konnten wir auch den Kern der Prozessmaschine stark weiterentwickeln und refactoren. Viel Energie haben wir auch in unsere Webanwendungen, in erster Linie Cockpit, gesteckt, eine interaktive Webanwendung für Process Monitoring und Operations. Hier kommt uns zugute, dass wir nicht „nur“ Java-Entwickler sind, sondern auch einige absolute JavaScript- und Web-Genies im Team haben.
Ich bin mir aber sicher, dass sich der Aufwand lohnt. Die Community nimmt unser Projekt an, und wir können das Produkt am Markt plazieren.
Dieses Jahr werden wir uns nicht ausruhen, wir haben uns einige spannende Projekte vorgenommen. Wir haben das Open-Source-Projekt bpmn.io gestartet, in dem wir gemeinsam mit dem Onlinehändler Zalando ein auf JavaScript basierendes BPMN-Framework für den Browser entwickeln. Ziel ist es hier, ein webbasiertes Modellierungstool zu schaffen. Im Kernprojekt beschäftigen wir uns mit ACM (Adaptive Case Management) und einem neuen Framework für die Implementierung von XML- und JSON-lastigen Integrationsprozessen. Darüber hinaus werden wir natürlich viele inkrementelle Verbesserungen und Weiterentwicklungen wie z.B. Java EE 7 Support sehen.

JAXenter: Vielen Dank für dieses Interview!

Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: