
| BPM |
|
Mit Business Process Management (BPM) lassen sich Geschäftsprozesse in einem dynamischen IT-Umfeld formen und weiter entwickeln. So können Applikationen zu adaptiven Prozessen verknüpft werden, die die komplette Wertschöpfungskette umfassen. |
| SOA |
|
Service-orientierte Architektur (engl. Service Oriented Architecture) in der Softwarearchitektur. |
| WSDL |
|
Web Service Definition Language. WSDL gibt das Format für eine einheitliche Beschreibung eines Web Services vor, anhand derer ein solcher Service angefragt und dessen Funktionen abgerufen werden können. |
| UDDI |
|
Universal Description, Discovery and Integration protocol. UDDI spezifiziert ein universelles Format zur Verwaltung von Informationsverzeichnissen, Adressen etc. eines Web Services. |
| OASIS |
|
Organization for the Advancement of Structured Information Standards. OASIS ist eine nicht-kommerzielle Organisation, die sich um die Standardisierung von Formaten für Web Services auf der Basis von XML kümmert. |
Die schnelle Umsetzung aller Arten von geschäftlichen Aktivitäten der Unternehmen in Web Services und deren starke Verbreitung und große Vielfalt führten zu einer Vielzahl verschiedenster Möglichkeiten, solche Dienste bereitzustellen und zu verwalten. Im Laufe dieser Entwicklung wurden dazu verschiedene Plattformen geschaffen. Vielen Plattformen ist der Zeitdruck der Entwicklungen anzumerken. Änderungen und Erweiterungen waren zum Teil langfristig geplant, oft aber schnelle Reaktion auf aktuelle Anforderungen. Folglich haben wir heute eine unüberschaubare Anzahl an Sprachen und Spezifikationen zur Implementierung von Web Services.
Die Sprache XML (eXtensible Markup Language) wurde zwar bereits vor einigen Jahren eingeführt und standardisiert, es dauerte allerdings relativ lange, bis sie als universelles Format für den Datenaustausch zwischen Web Services akzeptiert wurde. Immer noch operieren viele angebotene Dienste mit eigenen, spezifischen Datenformaten und Protokollen.
Sollen verschiedene Web Services zusammenarbeiten, um gemeinsam nicht nur eine einzelne Aktivität, sondern einen kompletten Geschäftsprozess technisch abzubilden und zu realisieren, muss die Kommunikation durch interpretierende Instanzen und zu erstellende Schnittstellen unterstützt werden, die die XML-Daten in die proprietären Formate und zurück umwandeln. Das hat selbstverständlich Auswirkungen auf die Transparenz, Entwicklungszeiten und Fehlersuche.
Das SOAP-Protokoll (Simple Object Access Protocol) bildet die Basis für die Kommunikation mit unterschiedlichen Diensten, welche ihre Funktionalität und Schnittstellen in XML dokumentieren und elektronisch anbieten. Zusammen mit Web Service Definition Language (WSDL) und Universal Description, Discovery and Integration Protocol (UDDI) hat sich SOAP heute als ein wichtiger Quasi-Standard zum Datenaustausch und zur Beschreibung webbasierter Dienste etabliert.
Wichtig wäre eine verbindliche Beschreibung einer Plattform, die mit diesen Standards zusammenarbeitet. Bislang existieren hier unterschiedliche Ansätze, von denen sich keiner eindeutig durchsetzen konnte.
Eine breite Basis hat die Sprache Business Process Execution Language (BPEL): BPEL wurde von IBM, Microsoft, Sun, Oracle, BEA Systems, SAP und Siebel gemeinsam entwickelt und wird auch häufig BPEL4WS genannt (4WS steht für „for Web Services“), oder auch WS-BPEL genannt. Inzwischen wurde die Spezifikation zur Weiterentwicklung dem Standardisierungsgremium OASIS übergeben.
Geschäftsprozessen.. |
BPEL ist als Plattform für die Bereiche gedacht, in denen mit einer Service Orientierten Architektur (SOA) gearbeitet wird. Merkmale einer SOA sind:
Die Zusammenstellung von Geschäftsprozessen und deren Verwaltung wird Business Process Management genannt (BPM). Das Vorhandensein einer SOA ist also zwingende Voraussetzung für BPM. BPM hat das Ziel, die derzeit in Software eingebetteten und quasi unsichtbaren Geschäftsprozesse aus der Ebene der Applikationen herauszuholen. Sie sollen an einer zentralen Stelle sichtbar gemacht werden, dort modelliert, zusammengestellt oder gegebenenfalls geändert werden.
Bei BPM stehen Geschäftsprozesse im Vordergrund. Auch wenn die Abbildung der Geschäftsprozesse auf der technischen Ebene in XML-Dokumenten stattfindet, sollen die BPM-Verantwortlichen ohne XML-Kenntnisse Geschäftsprozesse analysieren und modellieren können. Deshalb wurde für die grafische Darstellung von den zuvor genannten Firmen ein Standard entwickelt: die Management Initiative „Business Process Modeling Notation“ (BPMN).
Dieser Standard setzt auf BPEL auf, die modellierten Prozesse werden mit BPEL auf der Ebene der Kommunikation zwischen den Web Services realisiert. In BPEL definierte, verschieden granulare Services können, einmal erstellt, immer wieder zu neuen Geschäftsprozessen zusammengestellt werden. Wie in einem Baukasten stehen die Services zur Verfügung und können schnell für andere Zwecke zusammengestellt werden, ohne dass die Ebene des Austauschs von Daten und Messages, der Aufruf von Funktionen etc. in den Blick genommen werden muss.
Das trägt wesentlich zur Flexibilisierung der Geschäftsprozesse bei.
Mit BPEL lässt sich ein Prozess beschreiben, der in der Lage ist, verschiedene Dienste zu einer Gesamtanwendung zu verknüpfen - BPEL orchestriert die Zusammenarbeit von Web Services. Im Bereich des BPM werden zwei verschiedene Kopplungsmechanismen zwischen Services unterschieden, die Choreographie und die Orchestrierung.
Von einer Choreographie spricht man, wenn die Koordination einzelner unabhängiger Services durch einen Nachrichtenaustausch realisiert wird.
Bei einer Orchestrierung gibt es eine kontrollierende Instanz, die die einzelnen Services steuert, anspricht und wie ein Dirigent den Einsatz gibt. Orchestrierung bedeutet das Zusammenspiel verschiedener Dienste, Applikationen oder Web Services, die mit Hilfe einer BPEL-basierten Prozessbeschreibung einen bestimmten Geschäftsprozess abbilden und technisch ermöglichen. Die Interaktion der verschiedenen Komponenten, die Abfrage von Daten, das Aufrufen von Funktionen und die Reaktion auf verschiedene Rückgabewerte, geschieht über die BPEL-Laufzeitumgebung.
Bei BPEL handelt es sich um eine erst kürzlich entwickelte und (noch) nicht intensiv genutzte Sprache: Daher existieren unterschiedliche Spezifikationen zur Syntax der Sprache, abhängig davon, ob die Oracle BPEL-Engine oder die IBM-Engine verwendet wird. Wenn plattformübergreifend gearbeitet werden soll, müssen einige Befehle abgewandelt werden.
Die BPEL-Syntax ist stark an XML orientiert. Wer in diesem Bereich mit den dort verwendeten Sprachen XML und WSDL arbeitet, bewegt sich auch bei BPEL im „muttersprachlichen“ Bereich. Für jeden definierten BPEL-Prozess wird ein WSDL-Dokument erstellt, in dem der genutzte Web Service definiert wird.
Will ein anderer Benutzer diesen Web Service nutzen, steht ihm bereits dessen „Bedienungsanleitung“ zur Verfügung. Diese Definition enthält die „Partner“, mit denen der Prozess kommuniziert (partnerLink), deren Kommunikationskanäle und die diesem „Partner“ möglichen Operationen.
Jedes BPEL-Dokument besteht aus einem Definitionsteil und einem Teil, der den Ablauf des Prozesses beschreibt. Konkret geschieht die Definition eines Geschäftsprozesses in drei Sektionen des BPEL Dokuments:
Die Grundstruktur eines Prozesses zeigt Abbildung 2.
<process name= „HelloWorld“> <! -- Prozess --> <partnerLinks> <! -- Dienste --> </PartnerLinks> <variables> <! -- Daten --> </variables> <sequence name = “main”> <! -- Ablaufsequenz --> <receive> <assign> <! -- Aktivitäten --> <reply> </sequence> </process> |
Für die im BPEL-Dokument aufgeführten Services gibt es eine WSDL-Schnittstellenbeschreibung. Dieses WSDL-Dokument enthält die folgenden (optionalen) Sektionen:
|
Abbildung 4 zeigt, wie ein Beispiel-Prozess in BPEL abgebildet wird: Für den Aufruf dieser Aktionen wird jeweils der entsprechende Partner, der Kommunikationskanal, die auszuführende Operation und welche Variable für diese Kommunikation verwendet werden soll, angegeben. Die so definierten Nachrichten werden im WSDL-Dokument als message definiert, entsprechen also SOAP-Nachrichten.
Abb. 4: Beispielprozess in BPEL abgebildet (vergrößern!).
Mit BPEL steht jetzt eine standardisierte, ablauffähige Sprache zur Beschreibung von Prozessen zur Verfügung, die von einer Reihe namhafter Unternehmen unterstützt wird. Für den Bereich des BPM gilt BPEL als „SQL“ im Kontext von Web Services und eröffnet, wie die Einführung von SQL vor 25 Jahren, Möglichkeiten, die einen Produktivitäts- und Innovationsschub erwarten lassen.
Die Prozesslogik wird auf einer eigenen Ebene bearbeitet, die unabhängig ist von den technischen Gegebenheiten der zu integrierenden Dienste. Die Möglichkeiten der Services sind transparent und können, wenn sie einmal definiert sind, schnell und flexibel genutzt werden. Definierte Dienste können neu zusammengestellt werden und so andere Prozesse abbilden. Das erlaubt eine effiziente Implementierung eines Geschäftsprozesses nach SOA-Prinzipien und gegebenenfalls die flexible Anpassung des Prozessverlaufs an neue Gegebenheiten. Damit können sich Unternehmen schneller als bisher Marktveränderungen anpassen.
Jeder einmal mit BPEL definierte Prozess kann in anderen Kontexten weiterverwendet werden. Die benötigten Ressourcen für Projekte der Prozess-Integration können durch BPEL stark reduziert werden.
Um BPEL produktiv nutzen zu können, sind eine stabile und performante Laufzeitumgebung, Designwerkzeuge sowie eine Konsole für die Verwaltung und das Monitoring der erstellten Prozesse nötig.
Die an der Erstellung des BPEL-Standards beteiligten Firmen bieten Lösungen zur Implementierung von BPEL an oder arbeiten an solchen. Oracle konnte sich durch die Übernahme von Collaxa eine bereits weit entwickelte BPEL-Engine sichern, die jetzt als Oracle BPEL Process Manager 2.1.2. weiterentwickelt wurde und zur Verfügung steht (siehe Abbildung 5). Der Oracle BPEL Process Manager unterstützt die Implementierung und das Arbeiten unter BPEL sowohl in der Entwicklung als auch in der Ausführung.
<! - HelloWorld BPEL Process [Generated mit ORACLE BPEL Designer] -->
<process name= "HelloWorld">
targetNamespace="http://bpelbeispiele.de"
suppressJoinFailure="yes"
xmlns:tns="http://bpelbeispiele.de"
xmlns="http://schemas.xmlsoap.org/ws/2003/business-process"
xmlns:bpelx="http://schemas.oracle.com/bpel/extensions"
xmlns:ora="http://schemas.oracle.com/xpath/extensions"
<! - ===================================================== -->
<! - PARTNER LINKS -->
<! - List of services participating in this BPEL process -->
<! - ===================================================== -->
<partnerLinks>
<! Die 'client'-Rolle repräsentiert den, |
Der Oracle BPEL Process Manager enthält die folgenden Elemente:
Über die Anforderungen hinaus, die der BPEL-Standard stellt, kann über Erweiterungen Java-Code direkt in Dokumente eingebettet werden, nicht SOAP-basierte Web Services können über das Web Services Invocation Framework in eine Prozess-Definition eingebunden werden. Damit können Dienste auch über andere Schnittstellen, Protokolle und Sprachen als im Standard BPEL vorgesehen genutzt werden, etwa Java, JCA oder E-Mail.
Diese Einordnung von Business Process Execution Language (BPEL) und die Beschreibung seiner effizienten Möglichkeiten zeigen, dass es sich durchaus lohnt, dem Standard für die Prozessintegration eine Chance zu geben. BPEL bietet die entsprechenden Möglichkeiten, wenn es darum geht, dass verschiedene Web Services zusammenarbeiten sollen, um gemeinsam nicht nur eine einzelne Aktivität, sondern einen kompletten Geschäftsprozess technisch abzubilden und zu realisieren.
Uwe Rübesamen (info@ordix.de).