Workflows with Ensemble - InterSystems
Workflows with Ensemble - InterSystems
Workflows with Ensemble - InterSystems
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Workflows</strong> <strong>with</strong><br />
<strong>Ensemble</strong><br />
Michael Braam<br />
Senior Sales Engineer
Agenda<br />
• Definition Business Prozess<br />
• Business Prozesse in <strong>Ensemble</strong><br />
• Definition Workflow<br />
• Workflow in <strong>Ensemble</strong><br />
2
Teil 1<br />
BUSINESS<br />
PROZESS
Definition Business Prozess<br />
• Ein Geschäftsprozess beschreibt eine Folge von Einzeltätigkeiten, die<br />
schrittweise ausgeführt werden, um ein geschäftliches oder betriebliches Ziel zu<br />
erreichen. Im Gegensatz zum Projekt wird ein Prozess öfter durchlaufen. Ein<br />
Geschäftsprozess kann Teil eines anderen Geschäftsprozesses sein oder andere<br />
Geschäftsprozesse enthalten bzw. diese anstoßen. Geschäftsprozesse gehen oft<br />
über Abteilungs- und Betriebsgrenzen hinweg und gehören zur<br />
Ablauforganisation eines Betriebs. (Quelle: Wikipedia)<br />
• Wird häufig durch ein Flussdiagramm dargestellt<br />
• Ein BP ist kein Caché/<strong>Ensemble</strong> Prozess<br />
4
Definition Business Prozess<br />
• Merkmale<br />
• Klar definiert<br />
• Eingabe und Ausgabe sind bekannt<br />
• Die Reihenfolge der einzelnen Prozessschritte ist<br />
festgelegt<br />
• Es gibt einen Empfänger für die Prozessausgabe<br />
• Prozesse sind üblicherweise in eine organisatorische<br />
Struktur eingebettet<br />
• Der Prozess umfasst in der Regel mehrere<br />
Funktionsbereiche<br />
5
Beispiel
Teil 2<br />
ENSEMBLE<br />
PROZESSE
Prozesse in <strong>Ensemble</strong><br />
• Themen:<br />
• Was ist ein Business Prozess in <strong>Ensemble</strong>?<br />
• Wie arbeiten die verschiedenen <strong>Ensemble</strong>komponenten<br />
miteinander?<br />
• Wie erfolgt der Austausch mit externen Komponenten?
Prozesse in <strong>Ensemble</strong><br />
• Ein Business<br />
Prozess in<br />
<strong>Ensemble</strong> ist eine<br />
Klasse<br />
• Die Klasse wird<br />
anhand des<br />
Prozess-Graphen<br />
vom Management<br />
Portal oder vom<br />
Studio generiert
Prozesse zur Laufzeit<br />
• Anstoß des Business Prozesses<br />
• In <strong>Ensemble</strong> wird ein Business Prozess Objekt erzeugt<br />
• Persistent<br />
• Es gibt einen Pool von Jobs (Actors) in denen die BPs<br />
ausgeführt werden
Prozessumgebung<br />
<strong>Ensemble</strong><br />
Client Applikationen<br />
Web<br />
SOAP<br />
Java<br />
Inbound Adapter<br />
Business<br />
Services<br />
Composite<br />
Applikationen<br />
Business<br />
Prozesse<br />
Business<br />
Operationen<br />
Outbound Adapter<br />
Externe Applikationen<br />
Unternehmensdatenbanken
Nachrichten<br />
• Die einzelnen <strong>Ensemble</strong> Komponenten kommunizieren über<br />
Nachrichten (Abstraktion)<br />
• Alle Nachrichten sind persistente Objekte<br />
• Nachrichtentypen:<br />
• Request oder Response<br />
• Persistente Klasse<br />
Header<br />
Allgemeine Properties<br />
Typ: Request or<br />
Response<br />
IsError: 0 or non-0<br />
Body<br />
Anwendungsspezifisch<br />
Properties<br />
ID: number<br />
Name: string
Request/Response<br />
request<br />
Business Prozess<br />
call<br />
callrequest<br />
callresponse<br />
response<br />
call<br />
callrequest<br />
callresponse
Aufrufe im Business Prozess<br />
• Timer for synchrone Aufrufe<br />
• Sync Aktivität für asynchrone Aufrufe<br />
Asynchrone<br />
Aufrufe<br />
Sync<br />
Aktivität
Nachrichtenfluss<br />
16
Business Prozess Kontext<br />
• Objekt für die<br />
Prozessinstanz<br />
• Persistent.<br />
• Kann an jeder Stelle<br />
im Prozessablauf<br />
benutzt werden
Business Rules<br />
• “Parameter” für den Business Prozess<br />
• Vom Business Prozess aufgerufen
Teil 3<br />
DEFERRED<br />
RESPONSES UND<br />
KONTROLLFLUSS
Deferred Response<br />
• Wie werden Situationen behandelt, in denen auf die<br />
Antwort länger gewartet werden muss?<br />
• Die Antwort kommt evtl. noch über einen anderen Kanal<br />
zurück. Z.B. E-Mail..<br />
• Blockieren der Business Operation für lange Zeit ist<br />
nicht effektiv<br />
• Der Business Prozess wird informiert, dass die Antwort<br />
erst später kommen wird<br />
• <strong>Ensemble</strong> hat hierzu das Konzept der “Deferred<br />
Response”
Deferred Response<br />
• Die Business Operation generiert ein Token, über das<br />
die Antwort später dem Request zugeordnet werden<br />
kann<br />
• Das Token wird dann entweder<br />
• Zum externen System geschickt und kommt später von<br />
diesem via BS zurück<br />
• Von der BO zusammen mit einem anderen Key (z.B.<br />
Auftragsnummer) gespeichert und dann später vom BS<br />
ermittelt<br />
• Transparent für den Aufrufer
Kontrollfluss<br />
• Komplexere Business<br />
Prozesse<br />
• Kontrollstrukturen<br />
(z.B.) IF...Then...Else<br />
oder While-, DO-<br />
WHILE- und<br />
FOREACH-Schleifen<br />
sind vorhanden<br />
• Fehlerbehandlung über<br />
TRY...CATCH
Teil 4<br />
WORKFLOW
Workflow<br />
• ein Arbeitsfluss (englisch: workflow) ist eine inhaltlich abgeschlossene, zeitlich und<br />
sachlogisch zusammenhängende Folge von Funktionen, die zur Bearbeitung eines<br />
betriebswirtschaftlich relevanten Objektes notwendig sind und deren<br />
Funktionsübergänge von einem Informationssystem gesteuert werden.<br />
(Quelle: Wikipedia)<br />
• Ein Workflow wird von Menschen durchgeführt, kann<br />
aber durch ein System koordiniert werden<br />
• <strong>Ensemble</strong> unterscheidet zwischen Business Prozessen<br />
(automatisierte Abläufe) und (Human-)Workflow.<br />
24
Workflow – Bestandteil von <strong>Ensemble</strong><br />
• Automatische Integration mit Business Prozessen<br />
• Implementierung durch Konfiguration, nicht durch Entwicklung<br />
• Integration der Workflow Engine in bestehende Anwendungen<br />
• API zur Integration in eigene Anwendungen<br />
• Flexibles Dispatchen der Aufgaben<br />
• Einfaches Management<br />
• Einfaches Anpassen
Workflow und Business Prozesse<br />
• Ein (automatisierter) Business Prozess kann eine<br />
Workflow Aktivität aufrufen, um z.B. eine Behandlung von<br />
Sondersituationen zu implementieren. Z.B.<br />
(Genehmigungen von Rabatten etc.)<br />
• Ein Business Prozess kann zusätzliche Informationen<br />
aus externen Systemen bereit stellen, die dann im<br />
(Human) Workflow weiterverarbeitet werden können<br />
26
Workflow und Business Prozesse<br />
• Der Business Prozess schickt einen Request an die<br />
Workflow Operation<br />
• Dieser Request wird an einen Benutzer oder an eine Rolle<br />
weitergeleitet<br />
• Ein Benutzer kann Mitglied mehrerer Rollen sein
Workflow und Business Prozesse<br />
• Über das Request Objekt wird gesteuert, welche Informationen dem<br />
Bearbeiter im Workflow Portal angezeigt werden.
Workflow und Business Prozesse<br />
• Die Eingaben des Bearbeiters werden über das Response<br />
Objekt an den Business Prozess zurück geschickt
Individualisierbarkeit<br />
• Das Workflow Portal ist anpassbar<br />
• Die Portalseiten werden aus den Metadaten dynamisch<br />
erzeugt. Eine Kombination mit Templateseiten ist möglich<br />
• In Templates können ZEN Controls verwendet werden<br />
• Über CSS können die Portalseiten auf den jeweiligen<br />
Firmenstandard angepasst werden<br />
• <strong>Ensemble</strong> Workflow Tasks können auch für andere<br />
Technologien publiziert werden, (z.B.) XML Dokumente,<br />
Web Services, .NET, Java, C++ Objekte oder SQL
Management der Workflow Aktivitäten<br />
• Tasks können ablaufen, neu zugewiesen oder abgebrochen<br />
werden. Dies kann manuell oder automatisch erfolgen<br />
• Das Portal stellt die Funktionalität zur Verfügung, um das<br />
Workflowmanagement durchzuführen
<strong>Workflows</strong> <strong>with</strong><br />
<strong>Ensemble</strong><br />
Michael Braam<br />
Senior Sales Engineer