Dienstag, Juli 25, 2006
3. Expertengespräch zu SOA, BAM, BPM, CEP
Vortrag OMG - Information Days
Industrielle Produktion fachlicher Prozesse mit Hilfe der Business Process Execution Language (BPEL)
Inhalt:
a) allgemein
Die Business Process Execution Language (BPEL) bringt Bewegung in die herkömmliche Geschäftsprozessmodellierung (GPM), die bisher oft nur Dokumentationscharakter hatte. BPEL stellt das fehlende Bindeglied dar, mit dem sich der "ausführbare Geschäftsprozess" realisieren lässt. Services aus einer SOA lassen sich einfach orchestrieren, deployen und vor allen Dingen auch monitoren. Über Sensoren können Prozessdaten in Echtzeit abgegriffen werden. Beispiel: Durchschnittlich 800 Baufinanzierungen am langen Donnerstag werden erwartet. Bis Mittag nur 150 abgeschlossen. Aktiver Controlling-Eingriff möglich: Konditionen nicht ok? System nicht ok? Mitbewerberangebote besser?
b) Praxisprojekt
Dem Kunden geht die einfache Automatisierung von individuellen Prozessen allein mit BPEL nicht weit genug. Ziel ist vielmehr die "industrielle Produktion" von Prozessen, um eine für den praktischen Alltag ausreichende Umsetzungsgeschwindigkeit neuer Anforderungen erreichen zu können. Dazu wurde eine generisches System rund um die BPEL-Lösung von Oracle (BPEL Process Manager) aufgesetzt, welches eine extrem schnelle Umsetzung neuer fachlicher Prozesse erlaubt. Der Entscheidung für die Oracle Lösung ist eine gründliche Evaluierung von Produkten aller großen Hersteller wie IBM, BEA, SAP und Oracle vorausgegangen, inkl. Lasttests der implementierten prototypischen Lösungen. Ergebnis war, dass Oracle's Infrastruktur am stabilsten und am weitesten ausgereift erschien: die Oracle BPEL Engine bietet Clustering, Failover und damit optimale Skalierbarkeit und Ausfallsicherheit. Der Oracle BPEL Process Manager bietet eine herragende Designumgebung, die BPEL zusätzlich EAI und Workflow tauglich macht. Über diverse Adaptoren lassen sich wizardgesteuert Fremdsysteme einbetten (Files, Datenbanken, EJBs, Java-Klassen, JMS, JCA, Oracle Applications, etc.). Eine Workflow-Engine steht innerhalb der Oracle BPEL Laufzeitumgebung als eigener Service zur Verfügung und kann sehr konfortabel über Wizards in BPEL-Prozessflüsse eingebettet werden.
Der Vortrag erläutert die Grundlagen, Hintergründe und vor allem die technischen Kniffe, die zur Umsetzung dieser sehr generischen Sichtweise von Prozessautomation nötig waren.
Training: Oracle Content Services, BPEL and Web Services
Der erste Tag beginnt mit einem Überblick über die Positionierung der Content Services, einer Übersicht, welche Probleme überhaupt addressiert werden und einer Demo des Systems. Für beinahe alles, was über die UI getan werden kann, existieren nun Web Services. Leider wird für die Web Services noch rpc/encoded verwendet. Eine Umstellung auf document/literal ist aber in Planung. Generell gibt es nun reichlich Manager-Services, die die Funktionalitäten bündeln. Dabei kommt eine Art generische Signatur zum Einsatz: es wird konfiguriert, welche Artefakte in der jeweiligen Antwort erwartet werden und der Service stellt dann auch genau diese Artefakte und nicht mehr bereit. Interessant.
Tag 2: Intensives Basteln mit den vorhandenen Web Services. Sehr gutes Beispiel mit einer guten Musterlösung (Snippets wieder verwendbar). Es gibt zwei Kits: eins vom Development und eins vom Product Management. In letzterem befindet sich eine Art Framework, das die Arbeit mit den CS Web Services deutlich vereinfacht.
Tag 3: Integration mit Bpel. Das läuft völlig lose gekoppelt über zwei Queues (Oracle AQ). Siehe Screenshot. Leider ist aktuell auf Bpel-Seite nur eine Verwendung des Java-Embedding möglich. Aber die sich ergebenden Möglichkeiten sind sehr vielfältig...
Vortrag auf der W-Jax 2006
W-Jax: Swing Rich Clients auf Basis von Equinox
Gastvortrag an der Uni Mannheim
Vortrag auf der Jax 2006
Oracle BPEL und Oracle ESB
Nachtragsposting (Feb. 2006): Die Oracle BPEL Werkzeuge machen alle einen sehr guten Eindruck. Zum produktiven Einsatz ist allerdings dringend die Kopplung mit einem ESB nötig. Die Marketing-Aussage dazu ist nicht schwer zu finden: „Wir haben schon einen ESB.“ Aber was bedeutet das technisch? Sollte wirklich Interconnect zum ESB umgelabelt werden? Wird das die zu lösenden Probleme korrekt addressieren?
Spring RCP
Mein Bauchgefühl: da sich in diesem Projekt auch relativ wenig bewegt, kann man einiges an Konzepten dort abschauen, aber Spring RCP als Basis für eigene Rich Clients zu verwenden sehe ich aktuell nicht. Schade. Alternativ: trotzdem verwenden und als Commiter ins Projekt einsteigen....
ToDo: Als nächstes steht Eclipse RCP auf der Evaluierungsliste. Erste Projekte sind schon in Reichweite.