Inhaltsverzeichnis:
- Im Klartext
- Fallstudie
Organisationen, die bereits EAI-Middleware-Produkte (Enterprise Application Integration) zur Automatisierung von Geschäftsprozessen oder zur Integration verschiedener Legacy-Umgebungen eingesetzt haben, sind wahrscheinlich bereits mit dem Konzept der Orchestrierung vertraut. In diesen Systemen erleichtert ein zentral gesteuerter Satz von Workflow-Logik die Interoperabilität zwischen zwei oder mehr verschiedenen Anwendungen. Eine gängige Implementierung der Orchestrierung ist das Hub-and-Spoke-Modell, mit dem mehrere externe Teilnehmer eine Schnittstelle zu einer zentralen Orchestrierungs-Engine herstellen können.
Eine der treibenden Anforderungen bei der Entwicklung dieser Lösungen bestand darin, die Zusammenführung großer Geschäftsprozesse zu ermöglichen. Mit Orchestrierung lassen sich unterschiedliche Prozesse anbinden, ohne die ursprünglich automatisierten Lösungen einzeln neu entwickeln zu müssen. Orchestrierung schließt diese Lücke durch die Einführung neuer Workflow-Logik. Darüber hinaus kann der Einsatz von Orchestrierung die Komplexität von Lösungsumgebungen erheblich reduzieren. Die Workflow-Logik ist abstrahiert und einfacher zu pflegen, als wenn sie in einzelne Lösungskomponenten eingebettet ist.
Die Rolle der Orchestrierung erweitert sich in serviceorientierten Umgebungen. Durch die Verwendung von Erweiterungen, die es ermöglichen, Geschäftsprozesslogik über Dienste auszudrücken, kann Orchestrierung Geschäftslogik in einem standardisierten, servicebasierten Format darstellen und ausdrücken. Bei der Entwicklung serviceorientierter Lösungen bietet dies eine äußerst attraktive Möglichkeit, die Logik, die den zu automatisierenden Prozess darstellt, unterzubringen und zu steuern.
Orchestrierung nutzt die von Service-Designs angestrebte intrinsische Interoperabilität weiter, indem potenzielle Integrationsendpunkte in Prozesse bereitgestellt werden. Ein Schlüsselaspekt für die Positionierung der Orchestrierung innerhalb von SOA ist die Tatsache, dass Orchestrierungen selbst als Dienste existieren. Aufbauend auf Orchestrierungslogik standardisiert daher die Prozessdarstellung in einer Organisation, während das Ziel der Unternehmensföderation und der Förderung der Serviceorientierung angegangen wird.
Abbildung 6.32. Eine Orchestrierung steuert fast jede Facette einer komplexen Aktivität.
Eine primäre Branchenspezifikation, die die Orchestrierung standardisiert, ist die Web Services Business Process Execution Language (WS-BPEL). Dieses Buch erkennt WS-BPEL als wichtige Erweiterung der zweiten Generation an und verwendet daher seine Konzepte und Terminologie als Grundlage für eine Reihe von Diskussionen zur Geschäftsprozessmodellierung.
Hinweis
WS-BPEL ist der neueste Name für diese Spezifikation, die auch als BPEL4WS und nur BPEL bekannt ist. Eine Übersicht über die Hauptbestandteile der WS-BPEL-Sprache und eine Diskussion darüber, wie die Namensänderung zustande kam, finden Sie in Kapitel 16.
Im Klartext
Nachdem Chuck, Bob, Jim und ich erfolgreich mehrere Autos zusammen gewaschen haben, beschließen wir, unsere eigene Firma zu gründen. Wir formalisieren die Schritte in unserem Autowaschprozess, so dass wir mit verschiedenen Arten von Autos mit unterschiedlichen Reinigungsanforderungen umgehen können.
Unser Prozess ist daher von folgenden neuen Anforderungen betroffen:
- Wir entscheiden uns, zusätzliche Hilfe während der Stoßzeiten zu mieten. Dadurch werden bis zu zwei weitere Mitglieder in unser Team aufgenommen.
- Da wir kein Risikokapital für dieses Geschäft haben, treffen wir eine Vereinbarung mit einer örtlichen Tankstelle. Im Austausch für die Verwendung eines Teils ihres Grundstücks für unseren Autowaschbetrieb, Wir erklären uns bereit, während der Stoßzeiten beim Gaspumpen zu helfen.
Unser einfacher Autowaschprozess ist jetzt deutlich komplizierter geworden. Der Prozess ist nicht mehr festgelegt, da er sich aufgrund verschiedener Bedingungen und Ereignisse jederzeit ändern kann.
- Wenn unsere zusätzlichen Mitarbeiter eintreffen, wird die Aufgabenverteilung des gesamten Teams geändert.
- Wenn Tankstellenpersonal zusätzliche Hilfe benötigt, sind wir verpflichtet, ein oder mehrere unserer Autowaschteams zu entsenden, um ihnen zu helfen.
Diese Beispiele beziehen sich auf vorhersagbare Bedingungen, die täglich auftreten. Unser Betrieb ist weiterhin von einigen Einschränkungen betroffen:
- Wenn unser Cashflow unter einen bestimmten Betrag fällt, können wir uns keine Teilzeitkräfte leisten.
- Wenn es regnet, werden alle Arbeiten ausgesetzt (was auch zu einem verringerten Cashflow führt).
Diese Einschränkungen führen zu Bedingungen, die weniger häufig vorkommen, die wir jedoch immer berücksichtigen müssen. Um diesen potenziellen Situationen gerecht zu werden, haben wir einen Plan erstellt, der unseren erweiterten Prozess abbildet und alternative Prozesse für den Umgang mit häufigen und ungewöhnlichen Bedingungen bietet.
Dieser Plan ist im Wesentlichen ein Workflow, der einzelne Schritte mit Prozessen und Teilprozessen verbindet, die nach Entscheidungspunkten partitioniert sind. Dieser aufwendige Workflow beinhaltet unseren ursprünglichen Prozess mit dem Prozess der Tankstelle und dem erweiterten Prozess, der sich aus der Ankunft unserer Teilzeitarbeiter ergibt. Dieser Workflow ist im Wesentlichen eine Orchestrierung, die die einzelnen Prozessanforderungen und die zugehörigen Ressourcen, Teilnehmer, Ereignisse, Geschäftsregeln und Aktivitäten verwaltet.
6.6.1. Geschäftsprotokolle und Prozessdefinition
Die Workflow-Logik, die eine Orchestrierung umfasst, kann aus zahlreichen Geschäftsregeln, Bedingungen und Ereignissen bestehen. Zusammen stellen diese Teile einer Orchestrierung ein Geschäftsprotokoll her, das definiert, wie Teilnehmer zusammenarbeiten können, um den Abschluss einer Geschäftsaufgabe zu erreichen. Die Details der Workflow-Logik, die durch eine Orchestrierung gekapselt und ausgedrückt werden, sind in einer Prozessdefinition enthalten.
6.6.2. Prozessdienste und Partnerdienste
Identifiziert und innerhalb einer Prozessdefinition beschrieben sind die zulässigen Prozessbeteiligten. Zunächst wird der Prozess selbst als Dienst dargestellt, was zu einem Prozessdienst führt (der zufällig ein anderes unserer Servicemodelle ist, wie in Abbildung 6.33 gezeigt).
Abbildung 6.33. Ein Prozessdienst, der die Funktionalität von drei Partnerdiensten koordiniert und verfügbar macht.
Andere Dienste, die mit dem Prozessdienst interagieren dürfen, werden als Partnerdienste oder Partnerlinks bezeichnet. Abhängig von der Workflowlogik kann der Prozessdienst von einem externen Partnerdienst oder von anderen Partnerdiensten aufgerufen werden (Abbildung 6.34).
Abbildung 6.34. Der Prozessdienst ruft, nachdem er zuerst von einem Partnerdienst aufgerufen wurde, dann einen anderen Partnerdienst auf.
6.6.3. Basisaktivitäten und strukturierte Aktivitäten
WS-BPEL unterteilt die Workflow-Logik in eine Reihe vordefinierter primitiver Aktivitäten. Grundlegende Aktivitäten (receive, invoke, reply, throw, wait) stellen grundlegende Workflow-Aktionen dar, die mit der Logik strukturierter Aktivitäten (sequence, switch, while, flow, pick) zusammengestellt werden können. Wie diese Aktivitäten verwendet werden können, um die tatsächliche Geschäftsprozesslogik auszudrücken, wird in Kapitel 16 untersucht.
6.6.4. Sequenzen, Flows und Links
Grundlegende und strukturierte Aktivitäten können so organisiert werden, dass die Reihenfolge ihrer Ausführung vordefiniert ist. Eine Sequenz richtet Gruppen verwandter Aktivitäten in einer Liste aus, die eine sequentielle Ausführungsreihenfolge bestimmt. Sequenzen sind besonders nützlich, wenn ein Teil der Anwendungslogik vom Ergebnis eines anderen abhängt.
Flows enthalten auch Gruppen verwandter Aktivitäten, führen jedoch zu unterschiedlichen Ausführungsanforderungen. Teile der Anwendungslogik können gleichzeitig innerhalb eines Flows ausgeführt werden, was bedeutet, dass nicht unbedingt eine Gruppe von Aktivitäten warten muss, bevor eine andere beendet wird. Der Flow selbst wird jedoch erst beendet, wenn alle gekapselten Aktivitäten die Verarbeitung abgeschlossen haben. Dies gewährleistet eine Form der Synchronisation zwischen der Anwendungslogik, die sich in einzelnen Flows befindet.
Verknüpfungen werden verwendet, um formale Abhängigkeiten zwischen Aktivitäten herzustellen, die Teil von Flows sind. Bevor eine Aktivität vollständig abgeschlossen werden kann, muss sie sicherstellen, dass alle Anforderungen, die in ausgehenden Links zuerst festgelegt wurden, erfüllt sind. In ähnlicher Weise müssen die Anforderungen, die in eingehenden Links enthalten sind, zuerst erfüllt werden, bevor eine verknüpfte Aktivität beginnen kann. Regeln, die von Links bereitgestellt werden, werden auch als Synchronisationsabhängigkeiten bezeichnet.
6.6.5. Orchestrierungen und Aktivitäten
Wie wir bereits definiert haben, ist eine Aktivität ein Oberbegriff, der auf jede logische Arbeitseinheit angewendet werden kann, die von einer serviceorientierten Lösung ausgeführt wird. Der Umfang einer einzelnen Orchestrierung kann daher als komplexe und höchstwahrscheinlich langfristige Aktivität eingestuft werden.
6.6.6. Orchestrierung und Koordination
Orchestrierung, wie sie durch WS-BPEL dargestellt wird, kann das WS-Coordination Context Management Framework vollständig nutzen, indem der Koordinierungstyp WS-BusinessActivity integriert wird. Diese Spezifikation definiert Koordinierungsprotokolle zur Unterstützung komplexer, lang andauernder Aktivitäten.
6.6.7. Orchestrierung und SOA
Die Geschäftsprozesslogik ist die Wurzel von Automatisierungslösungen. Orchestrierung bietet ein Automatisierungsmodell, bei dem die Prozesslogik zentralisiert und dennoch erweiterbar und zusammensetzbar ist (Abbildung 6.35). Durch den Einsatz von Orchestrierungen werden serviceorientierte Lösungsumgebungen inhärent erweiterbar und adaptiv. Orchestrierungen selbst schaffen in der Regel einen gemeinsamen Integrationspunkt für andere Anwendungen, was eine implementierte Orchestrierung zu einem wichtigen Integrationsfaktor macht.
Abbildung 6.35. Orchestrierung in Bezug auf andere Teile von SOA.
Diese Eigenschaften führen zu einer erhöhten organisatorischen Agilität, weil:
- Die durch eine Orchestrierung gekapselte Workflow-Logik kann an zentraler Stelle modifiziert oder erweitert werden.
- Die zentrale Positionierung einer Orchestrierung kann das Zusammenführen von Geschäftsprozessen erheblich erleichtern, indem der Klebstoff, der die entsprechenden Automatisierungslösungen miteinander verbindet, abstrahiert wird.
- Durch die Etablierung potenziell umfangreicher serviceorientierter Integrationsarchitekturen kann Orchestrierung auf grundlegender Ebene die Entwicklung eines vielfältig föderierten Unternehmens unterstützen.
Orchestrierung ist ein Schlüsselelement, um einen Föderationszustand innerhalb einer Organisation zu erreichen, die verschiedene Anwendungen enthält, die auf unterschiedlichen Computerplattformen basieren. Fortschritte in der Middleware ermöglichen es, Orchestrierungs-Engines selbst vollständig in serviceorientierte Umgebungen zu integrieren.
Das Konzept der serviceorientierten Orchestrierung nutzt alle Konzepte, die wir bisher in diesem Kapitel besprochen haben. Für viele Umgebungen werden Orchestrierungen zum Herzstück von SOA.
Fallstudie
Die Reihe von Schritten, die wir im vorherigen Fallstudienbeispiel in eine Geschäftsaktivität integriert haben, zeigte, wie TLS das WS-BusinessActivity-Protokoll verwendete, um einer lang andauernden, komplexen Aktivität Kontextverwaltung und Ausnahmebehandlung hinzuzufügen. Obwohl der Umfang einer Geschäftsaktivität einen Geschäftsprozess darstellen kann, bietet TLS kein Standardmittel zum Ausdruck der zugrunde liegenden Workflowlogik. Dazu verwendet TLS eine WS-BPEL-Orchestrierung (Abbildung 6.36).
Abbildung 6.36. Der erweiterte TLS-Bestellabgabeprozess wird durch eine Orchestrierung verwaltet und umfasst zahlreiche potenzielle Partnerorganisationen.
Die Orchestrierung etabliert eine umfassende Prozesslogik, die die Geschäftstätigkeit umfasst und diese noch weiter ausbaut, um zusätzliche Interaktionsszenarien mit mehreren Anbieterdiensten zu steuern. Wenn beispielsweise ein Kreditor eine Bestellung nicht ausführen kann, wird dem nächsten Kreditor in der Zeile dieselbe Bestellung gesendet. Dieser Zyklus wird wiederholt, bis entweder ein Lieferant den Auftrag vollständig abschließen kann (innerhalb bestimmter Preisbeschränkungen) oder bis alle Lieferanten abgefragt wurden. In letzterem Fall bewertet das System einfach das beste Angebot auf dem Tisch, indem es eine Formel anwendet, die den Preis, den Prozentsatz der auszufüllenden Bestellung und die Rückstandsbedingungen berücksichtigt.
Die Orchestrierungslogik verwaltet alle Aspekte des Prozesses, einschließlich der Einbeziehung mehrerer Anbieterpartnerdienste sowie der Geschäftsaktivität, die bei der Verarbeitung eines PO einsetzt.
ZUSAMMENFASSUNG DER WICHTIGSTEN PUNKTE
- Eine Orchestrierung drückt eine Geschäftsprozesslogik aus, die normalerweise einer einzelnen Organisation gehört.
- Eine Orchestrierung erstellt ein Geschäftsprotokoll, das eine Geschäftsprozessdefinition formal definiert.
- Die Workflow-Logik innerhalb einer Orchestrierung ist in eine Reihe grundlegender und strukturierter Aktivitäten unterteilt, die in Sequenzen und Flows organisiert werden können.
- Orchestrierung wurde das „Herz von SOA“ genannt, da es ein Mittel zur Zentralisierung und Steuerung eines großen Teils der Inter- und Intra-Anwendungslogik durch ein standardisiertes Servicemodell darstellt.